没有得到任何输出或错误ghostscript python
Posted
技术标签:
【中文标题】没有得到任何输出或错误ghostscript python【英文标题】:Not getting any output or errors ghostscript python 【发布时间】:2011-06-13 13:51:54 【问题描述】:没有生成 tif 图像有人看到错误吗?我没有收到任何错误。我现在看到 ghosscript 正在运行的消息,但仍然没有得到输出 tif。从输出我现在得到 'GPL Ghostscript 9.02 (2011-03-30)\nCopyright (C) 2010 Artifex Software, Inc. 保留所有权利。\n此软件不提供任何保证:有关详细信息,请参阅文件 PUBLIC。\n'越来越近了
已按照 cmets 的建议进行了修改**
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]
【问题讨论】:
你试过从命令行手动运行它吗? 格式稍有不同,但我可以试试,您是建议尝试查找错误吗? 当然。许多程序检测它们是否从命令行运行并相应地修改它们的输出。您可能还想丢失-q
开关,因为这可能会抑制有用的信息。我寻找了它的反面——某种冗长的开关——但在在线文档中找不到它。
【参考方案1】:
我没有看到您的命令的输入文件。将输入文件(PDF、PostScript、Encapsulated PostScript 或 AI)的完整路径添加为最后一个参数,您的 TIFF 应该会生成...
另外,删除-q
。它告诉 Ghostscript 保持'安静'。
最后,您可以在命令行中添加-dDEBUG
。它告诉 Ghostscript 输出大量的调试信息。
【讨论】:
谢谢我认为这是我遵循正常格式但忘记用逗号分隔两个文件的根本问题,我添加了调试并将我的代码更改为现在将最后一个文件作为最后一个参数.从调试输出中我收到此错误:Ghostscript 9.02: **** 无法打开文件 "C:\\Python25\\pdfmining\\page.tif" 。\n%Resolving: [6 0]\nError: /ioerror in --showpage-..... 等我不确定带有双 \\ 的输出是否仅用于输出或格式问题。这也没有意义,因为那是输出文件?它应该创造它。随便 nvm 刚刚修复了它 :),去掉了 s 周围的 " " '-sOutputFile="%s", @Kurt Pfeifle 调试信息,您没有时间阅读。是否可以将其写入日志文件?【参考方案2】:您的代码存在一些问题:
您需要使用原始字符串,以便反斜杠不会被视为转义序列。
例如r'C:\Python25\pdfmining\nca.pdf'
而不是 'C:\Python25\pdfmining\nca.pdf'
。
self._
在这里看起来格格不入:'self._C:\Program Files (x86)\gs\gs9.02\bin'
看起来您将目录和可执行文件名作为单独的参数传递。它们应该一起作为可执行文件的路径。
您可能还想捕获stderr
以便看到错误消息,例如使用stderr=STDOUT
将stderr 输出与stdout 连接起来。
【讨论】:
做了更改,仍然没有输出文件将在代码中添加上面以反映它。 @user 您需要从子流程模块导入 STDOUT。顺便说一句,您没有为文件名添加原始字符串。 是的,现在有了标准输出,我至少在输出中看到了一条错误消息 interjay,编辑的协议是什么,我应该保留原来的,然后在下面有第二个版本的更改代码吗?以上是关于没有得到任何输出或错误ghostscript python的主要内容,如果未能解决你的问题,请参考以下文章
Ghostscript 设置 - 将任何 jpg 转换为 pdf 时出错
AttributeError:“Ghostscript”对象没有属性“_instance”