2010-01-28 5 views
19

Qualcuno sa di qualsiasi API (commerciale o open source) in grado di generare/modificare PowerPoint 2007/2010 presentazioni attraverso Java. Ho un modello nel formato PowerPoint 2007/2010 che ho bisogno di modificare/aggiornare. Finora ho convertito il file .pptx in xml e poi lo ho modificato e archiviato come .pptx. Ma il file viene danneggiato durante l'apertura.Generare PowerPoint 2007/2010 file usando Java

È qualcuno a conoscenza di qualsiasi altro metodo o API che fare questo in Java?

+0

Suppongo che * effettivamente * venga danneggiato durante il salvataggio e che venga visualizzato il messaggio all'apertura. Detto questo, OpenOffice.org è basato su Java ... –

risposta

5

Sì. Controlla questo http://poi.apache.org/, hanno appena rilasciato la versione 3.6 che ora supporta i documenti in formato Office 2007. La parte migliore è che è gratis!

7

docx4j (licenza Apache) include ora un componente pptx4j, che può aprire/modificare/salvare i documenti pptx.

9

L'abbiamo fatto a livello di codice (closed source al momento, sorry) quindi potrebbe essere in grado di aiutare, ma attenzione a un paio di grattacapi.

Uno è che il progetto POI (almeno quando abbiamo guardato l'anno scorso), era piuttosto incompleta. Non ha fatto grafici PPTX - che è l'unica caratteristica che volevamo. Il sito POI potrebbe non essere aggiornato, ma non sembrano supportare il formato PowerPoint 20087 (http://poi.apache.org/slideshow/index.html). Tutti raccomandano questo progetto, ma la nostra valutazione è stata che era praticamente inutile per generare file di PowerPoint 2007 tramite Java. La tua milizia può variare.

Apose aveva anche alcune limitazioni significative quando l'abbiamo guardato; non fare grafici in PowerPoint 2007 è il problema di blocco per noi.

Un altro problema è che PowerPoint 2007 può essere piuttosto buggato. Abbiamo avuto una serie di file PPT prodotti in modo progammatico che hanno causato blocchi, ma durante i test, abbiamo scoperto che siamo in grado di riprodurre crash e blocchi con semplici documenti PPTX creati in PowerPoint 2007, vale a dire non il nostro codice.

Alla fine, abbiamo eseguito la seguente operazione: Disimballato un file PowerPoint "modello" in una cartella, quindi su richiesta, riempito il modello XML con nuovi valori, zippato, rinominando vari elementi & consegnato all'utente un PPTX valido. Funziona OK, a parte lo strano arresto di PowerPoint quando le persone modificano il file. Se ci fosse un mercato per questo, immagino che potremmo impacchettare il codice come un webservice (i.e xml/csv -> PPTX) o mettere insieme un pacchetto commerciale, ma non lo faremo gratuitamente.

0

per generare una presentazione di PowerPoint da un file di modello, è possibile utilizzare PPT Templates.

Questa libreria fornisce un'API fluente di sostituire le variabili all'interno del template PPT:

try(FileOutputStream out = new FileOutputStream("generated.pptx")) { 
    new PptMapper() 
    .text("variable", "Hello") 
    .text("other_variable", "World!") 
    .processTemplate(PptTemplateDemo.class.getResourceAsStream("/title.pptx")) 
    .write(out); 
} 

Con questa libreria, è possibile elaborare il testo e le immagini nel modello.