2

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'])
4

3 に答える 3

3

最後の2つのパラメーターが結合されているため、機能しません。これは、端末で実行するのと実質的に同じですが、動作gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg '-sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf'することは期待できません。

これらの最後の2つを分離すると、機能するはずです。

output = Popen(['gs', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=jpeg', '-sOutputFile=/home/user/output2.jpg', '/home/user/downloads/test.pdf'])
于 2010-12-02T03:31:46.293 に答える
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 )
于 2010-11-17T08:39:49.973 に答える
1

これはうまくいきました(python):

os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf')
于 2010-12-02T03:13:59.033 に答える