6
我使用Ghostscript將PDF文件的第一頁光柵化爲JPEG。爲避免創建臨時文件,將PDF數據傳送到Ghoscripts的標準輸入中,並且JPEG在標準輸出上「排空」。直到GS接收到無效的PDF數據爲止,這個管道就像一個魅力一樣:不是按照我的預期報告stderr上的所有錯誤消息,而是將一些消息寫入stdout。防止Ghostscript將錯誤寫入標準輸出
重現:
$ echo "Not a PDF" >test.txt
$ /usr/bin/gs -q -sDEVICE=jpeg -dBATCH -dNOPAUSE -dFirstPage=1 -dLastPage=1 \
-r300 -sOutputFile=- - < test.txt 2>/dev/null
Error: /undefined in Not
Operand stack:
Execution stack:
...
注意2>/dev/null
上面並沒有抑制錯誤消息。 Ghostscript的文檔已經警告說,寫入標準輸出需要使用-q
標誌來抑制標準輸出上的消息,但我仍然在這裏錯過了一些東西。
謝謝,pipitas - 這正是我所期待的。但是,我必須明確指定'-sstdout =/dev/null',因爲'%sstderr'會在當前目錄中創建一個類似命名的文件。 爲了將來的參考,這裏是討論補丁的原始郵件列表主題: http://www.ghostscript.com/pipermail/gs-code-review/2001-March/000273.html – 2010-08-03 08:12:35
這裏有一個錯字。它應該是'%stderr'沒有雙s – 2015-07-09 22:28:15
Thx,@EdwardB,你是對的。我修好了它。 – 2015-07-09 22:35:08