Ghostscript Python 不输出也不报错

1 投票
2 回答
5120 浏览
提问于 2025-04-16 19:28

没有生成tif格式的图片,谁能帮我看看问题出在哪里?我没有收到任何错误提示。现在我看到的消息是ghosscript正在运行,但还是没有输出tif文件。从输出信息来看,我现在看到的是'GPL Ghostscript 9.02 (2011-03-30)\n版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。\n这个软件不提供任何保证:详细信息请查看PUBLIC文件。\n' 看起来离解决问题又近了一步。

我根据评论的建议进行了修改**

from subprocess import Popen, PIPE,STDOUT

output = Popen([
    r'C:\Program Files (x86)\gs\gs9.02\bin\gswin32c.exe',
   '-dNOPAUSE',
   '-dBATCH',
   '-sDEVICE=tiffg4',
    '-dDEBUG',
   '-r196X204',
   '-sPAPERSIZE=a4',
   '-sOutputFile=%s' % (r'C:\Python25\pdfmining\page.tif'),
    '%s' %(r'C:\Python25\pdfmining\nca.pdf'),

],stdout=PIPE,stderr = STDOUT).communicate()[0]

2 个回答

1

你的代码有一些问题:

  1. 你需要使用原始字符串,这样反斜杠就不会被当作转义字符处理。

    比如说,应该用 r'C:\Python25\pdfmining\nca.pdf' 而不是 'C:\Python25\pdfmining\nca.pdf'

  2. self._ 在这里看起来不太对劲:'self._C:\Program Files (x86)\gs\gs9.02\bin'

  3. 你似乎把目录和可执行文件名当作两个不同的参数传递了。它们应该合在一起,作为可执行文件的完整路径。

  4. 你可能还想捕获 stderr,这样你就能看到错误信息,比如可以用 stderr=STDOUT 把错误输出和正常输出合并在一起。

5

我没有看到你命令里的输入文件。请在最后加上输入文件的完整路径(可以是PDF、PostScript、封装的PostScript或AI格式),这样你的TIFF文件就能生成了...

另外,记得去掉 -q 这个选项。它是告诉Ghostscript保持安静,不输出信息。

最后,你可以在命令行里加上 -dDEBUG。这个选项会让Ghostscript输出很多调试信息。

撰写回答