2012-11-15 14 views
5

Sono in una situazione in cui devo creare una presentazione di PowerPoint in modo programmatico e servire il file ppt risultante attraverso un'applicazione Web, preferibilmente utilizzando Rails, JavaScript o Ruby. È possibile? Se sì, come e con quali strumenti?Creare una presentazione in PowerPoint con Rails

Sono aperto a qualsiasi suggerimento su come affrontare al meglio questo problema. Grazie!

+1

Ha bisogno di essere un file PowerPoint o sarebbe la creazione di una presentazione HTML che viene eseguito in un browser a schermo intero essere sufficiente? – Bergi

+0

Deve essere un file powerpoint. – MalSu

+0

OK; quindi stai parlando di serveride JavaScript? – Bergi

risposta

4

http://tomasvarsavsky.com/2009/04/04/simple-word-document-templating-using-ruby-and-xml/

Se è possibile creare il modello e popolare i valori, prendere in considerazione questo approccio.

Office Open formati di file XML

nuovi formati di file Office (.docx, .xlsx, .pptx) sono fondamentalmente una raccolta di file XML zippato. Ci siamo concentrati sui file di Word (.docx) ma questo approccio funzionava con qualsiasi altro tipo di file . Le specifiche per il formato pesa in diverse pagine. Produrre un file da zero senza una libreria di tipo appositamente progettata per gestire tutte le complessità del formato sarebbe piuttosto un'attività di . Invece, abbiamo redatto i modelli in Word e abbiamo posizionato i marcatori per dire al nostro motore dei modelli dove inserire i valori. Abbiamo creato le proprietà del documento che fanno riferimento ai valori dei dati e li abbiamo aggiunti come campi nel documento nel punto in cui devono essere inseriti i valori . Ad esempio, potremmo avere campi come:

label_tag #{data[:user].name} 
label_tag #{data[:user].address} 
label_tag #{data[:booking].number} 
label_tag #{data[:booking].items.collect{|i| i.name}.join(‘,’)} 

In caso contrario, ci fu un tentativo (WIP caricato tre anni fa, non mi aspetto che per essere completato, ma dovrebbe essere benfecial nella creazione di un approccio per creare diapositive) sulla creazione di diapositive di PowerPoint. Ecco un esempio del codice

https://github.com/jpoz/rubypoint/blob/master/lib/rubypoint/presentation.rb

def new_slide 
    RubyPoint::Slide.new(self) 
end 
+0

Grazie! Ne parlerò stasera! – MalSu

+0

Questa è una guida perfetta, lo accetto come risposta, grazie! – MalSu

+0

Hai trovato una soluzione usando questo? Ho un problema simile – Joelio

4

Questo rubino gemma sembra più maturo rispetto a quello indicato nella risposta accettata corrente.

https://github.com/pythonicrubyist/powerpoint http://rubygems.org/gems/powerpoint

require 'powerpoint' 

@deck = Powerpoint::Presentation.new 

# Creating an introduction slide: 
title = 'Bicycle Of the Mind' 
subtitle = 'created by Steve Jobs' 
@deck.add_intro title, subtitle 

# Creating a text-only slide: 
# Title must be a string. 
# Content must be an array of strings that will be displayed as bullet items. 
title = 'Why Mac?' 
content = ['Its cool!', 'Its light.'] 
@deck.add_textual_slide title, content 

# Creating an image Slide: 
# It will contain a title as string. 
# and an embeded image 
title = 'Everyone loves Macs:' 
image_path = 'samples/images/sample_gif.gif' 
@deck.add_pictorial_slide title, image_path 

# Specifying coordinates and image size for an embeded image. 
# x and y values define the position of the image on the slide. 
# cx and cy define the width and height of the image. 
# x, y, cx, cy are in points. Each pixel is 12700 points. 
# coordinates parameter is optional. 
coords = {x: 124200, y: 3356451, cx: 2895600, cy: 1013460} 
@deck.add_pictorial_slide title, image_path, coords 

# Saving the pptx file to the current directory. 
@deck.save('test.pptx') 
Problemi correlati