2011-06-13 70 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

相關問題