通过Python将PPT转换为PNG
我想用Python把PPT文件转换成png或者其他图片格式。
这个问题在StackOverflow上有人问过,但大多数建议是用无头的X服务器运行OpenOffice,这让我上次用的时候非常头疼。(主要是因为OpenOffice经常崩溃,导致一些难以重现的错误。)
有没有其他的方法呢?(希望只用Linux命令行工具和纯Python来实现。)
1 个回答
一个基本的工作流程:
首先,把你的PPT文件转换成PDF格式,可以使用PowerPoint自带的PDF打印机或者OpenOffice里的PDF转换工具。
接下来,使用Ghostscript把PDF文件转换成PNG或者其他图片格式(大概是像这样:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r100 -sOutputFile=out.png in.pdf
)。
你可以用Python来写个脚本来实现这个过程(并通过Uno/COM来控制OpenOffice或Microsoft PowerPoint),或者用任何你想用的脚本。
据我所知,目前没有Python库可以直接处理PPT文件或者把PDF文件转换成PNG格式。
关于OpenOffice崩溃的处理,我建议捕捉异常,并在发生这种情况时尝试重启OpenOffice(可能还要跳过这个文件,把它加入一个需要手动处理的可疑文件列表)。
你可能会觉得这篇文章 http://www.linuxjournal.com/node/1007788 很有趣,因为它提供了一个类,可以使用现有的OpenOffice实例进行连接,或者在需要时启动一个新的实例,操作起来很透明。文章里还有一个例子,展示了如何把xls文件转换成csv格式(http://www.linuxjournal.com/content/convert-spreadsheets-csv-files-python-and-pyuno),你可以用这个作为你想要进行转换的基础。