通过python将PPT转换为PNG
我想使用 Python 将 PPT 转换为 png 或其他图像格式。
这个问题已经在 SO 上被问过,但本质上建议在无头 X 服务器中运行 OpenOffice,这在我上次使用它时绝对是痛苦的。 (主要是由于 OO 崩溃导致难以复制错误。)
还有其他方法吗(希望仅使用 Linux CLI 实用程序,并在其之上使用纯 Python?)
I want to convert PPT to png, or other image formats using Python.
This question has been asked on SO, but essentially recommends running OpenOffice in headless X server, which was an absolute pain last time I used it. (Mostly due to hard to replicate bugs due to OO crashing.)
Is there any other way, (Hopefully using Linux CLI utilities only, and pure Python above them?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本工作流程:
使用 PowerPoint 中的 pdf 打印机或 OpenOffice 内置 PDF 转换器将您的 ppt 转换为 pdf
使用ghostscript将pdf转换为png或其他图像格式(类似于
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r100 -sOutputFile=out.png in.pdf
) p>您可以使用 Python 编写脚本(并使用 Uno / COM 试点 OOo / MSPP),或任何您想要的脚本。
据我所知,没有Python库处理PPT文件或将PDF文件转换为PNG。
至于 OOo 崩溃处理,我会捕获异常并在发生此类事件时尝试重新启动 OOo(并且可能会跳过该文件,将其添加到需要手动处理的可疑文件列表中)。
您可能会发现这篇文章 http://www.linuxjournal.com/node/1007788 很有趣它提供了一个类,该类使用现有的 OOo 实例来连接或启动一个实例(如果需要)以透明的方式。它带有 xls -> 的示例csv 转换 (http://www.linuxjournal.com /content/convert-spreadsheets-csv-files-python-and-pyuno),可以用作您想要尝试的转换的基础。
A basic workflow :
convert your ppt to pdf by using a pdf printer from PowerPoint or OpenOffice's built in PDF converter
use ghostscript to convert the pdf to png or other image format (something along the line of
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r100 -sOutputFile=out.png in.pdf
)You can use Python to script this (and pilot OOo / MSPP using Uno / COM), or any script you want.
As far as I know, there is no Python library handling PPT files or converting PDF files to PNG.
As for the OOo crash handling, I would catch Exceptions and attempt a restart of OOo when such event occurs (and probably skip the file, adding it to a list of suspicious files requiring manual processing).
You may find this article http://www.linuxjournal.com/node/1007788 interesting as it provides a class which uses an existing OOo instance to connect or launches one if required in a transparent fashion. It comes with an example of xls -> csv conversion (http://www.linuxjournal.com/content/convert-spreadsheets-csv-files-python-and-pyuno) which can be used as a basis for the conversion you want to attempt.