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