2011-06-13 65 views
1

没有tif图像正在生成任何人都看到错误?我没有收到任何错误。我现在看到ghosscript正在运行的消息,但仍然没有得到输出tif。从输出我现在得到'GPL Ghostscript 9.02(2011-03-30)\ n版权所有(C)2010 Artifex软件公司保留所有权利。\ n此软件附带无担保:请参阅PUBLIC文件了解详情。\ n'越来越近没有得到任何输出或错误ghostscript python

编辑所做的更改通过意见的建议**

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] 
+0

您是否尝试过从命令行手动运行它? – 2011-06-13 14:00:32

+0

格式稍有不同,但我可以尝试,您是否建议尝试查找错误? – user291071 2011-06-13 14:02:35

+0

当然。许多程序会检测它们是否从命令行运行并相应地修改它们的输出。你可能也想失去'-q'开关,因为这可能会抑制有用的信息。我寻找它的反面 - 某种冗长的开关 - 但在联机文档中找不到它。 – 2011-06-13 14:12:22

回答

3

我没有看到您的命令的输入文件。将完整路径添加到输入文件(PDF,PostScript,封装PostScript或AI)作为最后一个参数,并且应该生成TIFF ...

此外,请删除-q。它告诉Ghostscript保持'安静'

最后,您可以将-dDEBUG添加到您的命令行中。它告诉Ghostscript输出大量的调试信息。

+0

谢谢我认为这是我遵循正常格式的基本问题,但忘记用逗号分隔两个文件,我添加了调试并对我的代码进行了更改,现在将最后一个文件作为最后一个参数。从调试输出我得到这个错误:Ghostscript 9.02:****无法打开文件“C:\\ Python25 \\ pdfmining \\ page.tif”。\ n%解决:[6 0] \ n错误:/ioerror在--showpage -.....等我不知道如果与双\ \的输出仅用于输出或格式问题。这也没有意义,因为那是输出文件?它应该创造它。任何虽然 – user291071 2011-06-15 19:17:19

+0

nvm只是修复它:),摆脱了“”'-sOutputFile =“%s”周围s, – user291071 2011-06-15 19:25:59

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加入与标准输出stderr输出看到错误消息,例如。

+0

进行了更改,仍未输出文件将在代码中添加以反映它。 – user291071 2011-06-13 14:04:33

+0

将相应地更改代码并合并路径和可执行文件名称,而不是通过添加STDOUT来查看您的意思,得到NameError:name'STDOUT'未定义,添加上面的stdout时。 – user291071 2011-06-13 14:12:44

+0

@user您需要从子流程模块导入STDOUT。顺便说一句,你没有为文件名添加一个原始字符串。 – interjay 2011-06-13 14:15:41

相关问题