2010-01-28 11 views
19

¿Alguien sabe de cualquier API (comercial o de código abierto) que pueda generar/editar presentaciones de PowerPoint 2007/2010 a través de Java. Tengo una plantilla en el formato de PowerPoint 2007/2010 que necesito editar/actualizar. Hasta ahora he estado convirtiendo el archivo .pptx a xml y luego editando y almacenando nuevamente como .pptx. Pero el archivo se corrompe al abrirlo.Generar archivo de PowerPoint 2007/2010 utilizando Java

¿Alguien conoce algún otro método o API que lo haga en Java?

+0

Supongo que * en realidad * se corrompe mientras se guarda y que aparece el mensaje al abrirlo. Dicho esto, OpenOffice.org se basa en Java ... –

Respuesta

5

Sí. Mira esto http://poi.apache.org/, acaban de lanzar la versión 3.6 que ahora es compatible con documentos de formato de Office 2007. La mejor parte es que es gratis!

7

docx4j (licencia de apache) ahora incluye un componente pptx4j, que puede abrir/editar/guardar documentos pptx.

9

Lo hemos hecho de forma programática (fuente cerrada en este momento, lo siento) por lo que podría ser de ayuda, pero tenga cuidado con algunos inconvenientes.

Una es que el proyecto POI (al menos cuando lo vimos el año pasado), era bastante incompleto. No hizo Gráficos PPTX, que es la característica que queríamos. De hecho, el sitio de POI puede no estar actualizado, pero no parece ser compatible con el formato de PowerPoint 20087 (http://poi.apache.org/slideshow/index.html). Todo el mundo recomienda este proyecto, pero nuestra evaluación fue que era bastante inútil para generar archivos de PowerPoint 2007 a través de Java. Tu kilometraje puede variar.

Apose también tenía algunas limitaciones significativas cuando lo miramos; no hacer Gráficos en PowerPoint 2007 siendo el problema de bloqueo para nosotros.

Otro problema es que PowerPoint 2007 puede tener errores. Hemos tenido varios archivos PPT producidos progamáticamente que causaron bloqueos, pero cuando probamos, descubrimos que podemos reprogramar y bloquear con simples documentos PPTX creados en PowerPoint 2007, es decir, no nuestro código.

Al final, hicimos lo siguiente: desempaquetó una plantilla de archivo de PowerPoint en una carpeta, luego a pedido, llenó la plantilla XML con nuevos valores, lo comprimió, renombró varios elementos & se lo entregó al usuario como un PPTX válido. Funciona bien, salvo el extraño bloqueo de PowerPoint cuando las personas editan el archivo. Si hubiera mercado para eso, creo que podríamos empaquetar el código como un servicio web (es decir, xml/csv -> PPTX) o armar un paquete comercial, pero no lo haríamos gratis.

0

Para generar una presentación de PowerPoint a partir de un archivo de plantilla, puede usar PPT Templates.

Esta biblioteca proporciona una API fluida para reemplazar las variables dentro de la plantilla 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 esta biblioteca, se puede procesar texto y las imágenes en la plantilla.

Cuestiones relacionadas