我一直在试图find有效的方式来转换文档,如doc,docx,ppt,pptx为pdf。 到目前为止,我已经尝试过docsplit和oowriter
,但都花了10秒钟才能完成大小为1.7MB的pptx文件的工作。 任何人可以提出一个更好的方法或build议,以改善我的方法吗?
我曾经尝试过:
from subprocess import Popen, PIPE import time def convert(src, dst): d = {'src': src, 'dst': dst} commands = [ '/usr/bin/docsplit pdf --output %(dst)s %(src)s' % d, 'oowriter --headless -convert-to pdf:writer_pdf_Export %(dst)s %(src)s' % d, ] for i in range(len(commands)): command = commands[i] st = time.time() process = Popen(command, stdout=PIPE, stderr=PIPE, shell=True) # I am aware of consequences of using `shell=True` out, err = process.communicate() errcode = process.returncode if errcode != 0: raise Exception(err) en = time.time() - st print 'Command %s: Completed in %s seconds' % (str(i+1), str(round(en, 2))) if __name__ == '__main__': src = '/path/to/source/file/' dst = '/path/to/destination/folder/' convert(src, dst)
输出:
Command 1: Completed in 11.91 seconds Command 2: Completed in 11.55 seconds
环境:
更多工具结果:
尝试从你的Python代码调用unoconv ,我的本地机器花了8秒钟,我不知道它是否足够快,
time unoconv 15.\ Text-Files.pptx real 0m8.604s
Pandoc是一个很棒的工具,可以快速完成你想要的任务。 由于您使用Popen来有效地提取工具的命令,所以写入工具的语言并不重要(Pandoc是用Haskell编写的)。
不幸的是,我没有时间做一个完整的基准测试,但是你可能想看看我的Python工具包xtopdf来创建PDF。 它不会执行所有你想要的转换,有些转换有一定的限制,但可能是有用的。 xtopdf链接:
关于xtopdf的在线演示 – 它是什么,它做什么,平台,功能,用户,用途等的一个很好的总结: http : //slid.es/vasudevram/xtopdf
Bitbucket上的xtopdf: https ://bitbucket.org/vasudevram/xtopdf
许多博客文章展示了如何使用xtopdf用于各种目的,包括许多显示如何使用它来将不同的输入格式转换为PDF: http : //jugad2.blogspot.com/search/label/xtopdf
HTH,Vasudev Ram
对于doc和docx(但不是ppt / pptx),您可以在OnlineDemo / docx_to_pdf在线试用我们的独立(但商业化)高保真渲染引擎
以“高保真度”来说,我的意思是从底层设计到具有与Microsoft Word相同的行和段落,制表符等。