【发布时间】:2014-01-20 10:08:42
【问题描述】:
我一直在尝试找到转换文档的有效方法,例如doc、docx、ppt、pptx转pdf。到目前为止,我已经尝试过 docsplit 和 oowriter,但两者都花费了超过 10 秒的时间来完成 pptx file 大小为 1.7MB 的工作。任何人都可以建议我更好的方法或建议来改进我的方法吗?
我尝试过的:
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
环境:
- Linux - Ubuntu 12.04
- Python 2.7.3
更多工具结果:
- jodconverter 耗时 11.32 秒
【问题讨论】:
-
请注意,这不是一个真正的基准。单一的结果没有意义。结果应计算为多次试验的平均值,并且至少应显示标准偏差。
-
@BartoszKP 感谢您的澄清。我选错词了。
-
好吧,既然您对效率感兴趣,那么“基准”是正确的词,因为这是衡量效率的工具。所以你的代码是错误的,而不是文字:)
-
Microsoft 和 PDF 格式都非常复杂。 11 秒可能并不过分。
-
如果您在 shell 中而不是在 Python 中运行这些命令,会有什么不同吗?也就是说,如果你在没有 Python 的情况下运行
/usr/bin/docsplit pdf --output dst src。
标签: python pdf ubuntu document-conversion docsplit