以PowerPoint演示文稿(.PPT)编程提取幻灯片作为图像

时间:2010-09-28 15:21:40

标签: image language-agnostic ms-office powerpoint openoffice.org

.ppt格式提供PowerPoint演示文稿,以编程方式和仅使用开源软件的最佳方式是提取每张幻灯片的图像表示(例如.jpg.png)在演讲中?

该应用程序将在Linux服务器环境中运行,因此无法安装Microsoft Office或Keynote。

我想以编程方式实现的功能类似于:

  • Keynote的导出功能(File > Export... > Pictures > JPEG
  • PowerPoint的另存为JPEG 功能(Save As > Other Formats > JPEG

7 个答案:

答案 0 :(得分:22)

您应该尝试unoconv。根据{{​​3}},“unoconv是一个命令行实用程序,可以将OpenOffice可以导入的任何文件格式转换为OpenOffice能够导出的任何文件格式。”

因此,要将ppt转换为png,请执行以下操作:

unoconv -f png some-slides.ppt

如果失败,您可以尝试使用Art of Solving中的man pageJODConverter。例如,您可以从命令行使用JODConverter:

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

答案 1 :(得分:3)

鉴于您需要在Linux上运行,自动化OpenOffice.org可能最容易。

导出为HTML将为您提供每张幻灯片具有可配置质量的JPEG或PNG图像。

答案 2 :(得分:2)

多年前,我使用Slide Splitter for Impress来满足同样的需求。也使用了ppt幻灯片并导出到.jpeg。

答案 3 :(得分:1)

如果使用网络API是一种选择,我会尝试google docs API。您可以上传ppt文档,然后以任何支持的格式下载,包括pdf和png。

答案 4 :(得分:1)

Apache POI是一个Java库,但有一个command-line utility用于将PPTX文件转换为PNG文件。

要运行它,请在库的二进制下载文件夹的根目录中调用此命令:

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

它并非100%完美 - 我注意到它不喜欢艺术字或从PowerPoint中裁剪过的图像。

答案 5 :(得分:0)

您可以使用PDFCreator(虽然在Wine上)

答案 6 :(得分:0)

我们可以使用imagemagick将pptx转换为pdf,然后将pdt转换为JPEG图像。这是在Ubuntu上对我有用的东西。

首先,我们需要安装几个软件包:

apt update && apt install libreoffice imagemagick ghostscript

现在,使用以下命令将pptx文件转换为PDF:

soffice --headless --convert-to pdf test.pptx

生成的PDF文件名为test.pdf。然后我们可以使用imagemagick将PDF转换为jpeg图像:

# you can tweak density and quality to change the quality of generated images.
convert -density 150 test.pdf -quality 80 output-%3d.jpg

如果在运行上述命令时遇到错误。编辑/etc/ImageMagick-6/policy.xml并更改以下行:

<policy domain="coder" rights="none" pattern="PDF" />

<policy domain="coder" rights="read|write" pattern="PDF" />

参考:此答案基于帖子here