从 python 控制台这有效:
convert -quality 100 in.pdf out.png
Run Code Online (Sandbox Code Playgroud)
但是当我像这样将该命令添加到我的 Python 脚本时:
Popen(['convert', '-quality 100', 'in.pdf', 'out.png'])
Run Code Online (Sandbox Code Playgroud)
我得到:
unrecognized option `-quality 100'
Run Code Online (Sandbox Code Playgroud)
如果我将该参数更改为'-quality=100'我仍然收到错误。
我试着像这样修复它:
Popen(['convert', '-quality', '100', 'in.pdf', 'out.png'])
Run Code Online (Sandbox Code Playgroud)
它运行但无法生成out.png.
更新:最后一个版本正在运行。我原先一定是打错了。
每个参数都有自己的列表元素,所以第二个变体是正确的。
您应该记住,在调用communicate完成之前,该命令可能仍会运行(尽管在您的情况下不太可能)。returncode在调用communicate 后检查程序是否遇到任何错误(如格式错误的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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9998 次 |
| 最近记录: |