从 python 控制台这有效:
convert -quality 100 in.pdf out.png
但是当我像这样将该命令添加到我的 Python 脚本时:
Popen(['convert', '-quality 100', 'in.pdf', 'out.png'])
我得到:
unrecognized option `-quality 100'
如果我将该参数更改为 '-quality=100',我仍然会遇到错误。
我试过这样修复它:
Popen(['convert', '-quality', '100', 'in.pdf', 'out.png'])
运行但未能生成 out.png。
更新:最新版本正在运行。我一定是最初打错了。
请您参考如下方法:
每个参数都有自己的列表元素,所以第二个变体是正确的。
你应该记住,直到调用 communicate完成后,该命令可能仍会运行(尽管在您的情况下这不太可能)。调用 communicate 后检查 returncode 以查明程序是否遇到任何错误(如格式错误的 PDF 文件等)。
此外,imagemagick convert 将多页 PDF 写入多个 PNG 文件(out-0.png、out-1.png)。检查那些是否存在。使用 -append 来抑制该行为。
import subprocess
Popen = subprocess.Popen
s = Popen(['convert', '-quality', '100', 'in.pdf', '-append', 'out.png'])
s.communicate()
if s.returncode != 0:
raise OSError('convert error')
