Ghostscriptを使用してPDFファイルの最初のページをJPEGにラスタライズしています。一時ファイルの作成を回避するために、PDFデータはGhoscriptsのstdinにパイプされ、JPEGはstdoutで「ドレイン」されます。このパイプラインは、GSが無効なPDFデータを受信するまで魅力のように機能します。予想どおりstderrですべてのエラーメッセージを報告する代わりに、代わりに一部のメッセージをstdoutに書き込みます。
再現するには:
$ 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のドキュメントでは、stdoutに書き込むには、stdoutのメッセージを抑制するためのフラグが必要であるとすでに警告されてい-q
ますが、それでもここで何かが欠落しているようです。