Python中Ghostscript的语法
我在Linux上安装了python-ghostscript。可以在命令行中运行gs命令,它能把pdf文件转换成jpg格式。下面是可以正常工作的代码:
~$ gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf
我想在Python中运行这个过程,但我搞不清楚语法。我没有收到错误提示,但就是没有任何反应。我试着去了解Popen和subprocess,但我不明白为什么我调用的gs进程没有运行,也没有生成文件。
output = Popen(['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf'])
3 个回答
1
这个方法有效(用Python写的):
os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf')
1
为了找出问题出在哪里,你可以这样来查看标准输出:
import sys, subprocess
args = ['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf']
output = Popen( args, stdout = sys.stdout, stderr = sys.stderr )
3
你最后的两个参数是连在一起的,所以它不能正常工作;这就像在你的终端里运行 gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg '-sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf'
,你肯定不会指望它能正常工作。
把最后两个参数分开,它就应该能正常工作了:
output = Popen(['gs', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=jpeg', '-sOutputFile=/home/user/output2.jpg', '/home/user/downloads/test.pdf'])