目标:使用python 3.6.1将ppt转换为pdf
场景:Windows服务器中未安装MS Office
使用的代码:
gfortran
遇到错误:
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 = 'C:\xxx\ppt'
dst = 'C:\xxx\ppt\destination'
convert(src, dst)
有谁知道如何解决此错误? 或者在这种情况下有用的任何其他python库。
答案 0 :(得分:0)
由于您在Windows上运行,因此命令/usr/bin/docsplit pdf --output %(dst)s %(src)s
不会转换PPT,因为它似乎适用于Linux。 Popen可能在处理该命令时遇到问题,导致错误。
在Windows上的命令行中将PPT转换为PDF有点难。我认为你最好的选择是to install LibreOffice and run with headless mode。还有a SuperUser question on it提问者最终使用C#interop库,但我认为这需要安装Microsoft Office。
感谢。