image language-agnostic ms-office powerpoint openoffice.org

image - Extracción programática de diapositivas como imágenes de una presentación de PowerPoint(.PPT)



language-agnostic ms-office (6)

Dado su requerimiento de ejecutar en Linux, probablemente es más fácil automatizar OpenOffice.org.

Exportar como HTML le dará una imagen JPEG o PNG con una calidad configurable para cada diapositiva.

Dada una presentación de PowerPoint en formato .ppt , ¿cuál es la mejor manera de programar y usar solo el software de código abierto para extraer una representación de imagen (en .jpg o .png ) de cada diapositiva de la presentación?

La aplicación se ejecutará en un entorno de servidor Linux, por lo que la instalación de Microsoft Office o Keynote no es una opción.

La funcionalidad que quiero lograr programáticamente es similar a:

  • Funcionalidad de exportación de Keynote ( File > Export... > Pictures > JPEG )
  • La función Guardar como JPEG de PowerPoint ( Save As > Other Formats > JPEG )

Hace años, usé Slide Splitter para Impress para esta misma necesidad. Trabajó también con diapositivas ppt y exportando a .jpeg.


Probablemente debería darle una oportunidad a unoconv . Según la página del manual , "unoconv es una utilidad de línea de comandos que puede convertir cualquier formato de archivo que OpenOffice pueda importar, a cualquier formato de archivo que OpenOffice sea capaz de exportar".

Entonces, para convertir ppt a, digamos, png, haces:

unoconv -f png some-slides.ppt

Si eso falla, puedes probar JODConverter o PyODConverter de Art of Solving. Por ejemplo, puede usar JODConverter desde la línea de comando:

java -jar lib/jodconverter-cli-2.2.0.jar document.ppt document.png



Si utilizar una API web es una opción, probaría la API de Google docs . Puede cargar un documento ppt y luego descargarlo de nuevo en cualquiera de los formatos compatibles, incluidos pdf y png.


Apache POI es una biblioteca de Java, pero tiene una utilidad de línea de comandos para convertir archivos PPTX a archivos PNG.

Para ejecutarlo, invoque este comando dentro de la raíz de la carpeta de descarga binaria de la biblioteca:

java -cp "poi-3.10-FINAL-20140208.jar;poi-ooxml-3.10-FINAL-20140208.jar;poi-ooxml-schemas-3.10-FINAL-20140208.jar;ooxml-lib/dom4j-1.6.1.jar;ooxml-lib/stax-api-1.0.1.jar;ooxml-lib/xmlbeans-2.3.0.jar;lib/commons-codec-1.5.jar;lib/commons-logging-1.1.jar;lib/log4j-1.2.13.jar" org.apache.poi.xslf.util.PPTX2PNG presentation.pptx

No es 100% perfecto. Noté que no le gusta WordArt o las imágenes que se han recortado desde PowerPoint.