Dan*_*ner 6 stdout ghostscript stderr
我正在使用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:
...
Run Code Online (Sandbox Code Playgroud)
请注意,2>/dev/null上述内容不会抑制错误消息.Ghostscript的文档已经警告过,写入stdout需要使用-q标志来抑制stdout上的消息,但我似乎仍然缺少一些东西.
Kur*_*fle 14
如果你想真正沉默Ghostscript,修改你的命令行如下:
/usr/bin/gs -q \
-sstdout=%stderr \
-sDEVICE=jpeg \
-dBATCH \
-dNOPAUSE \
-dLastPage=1 \
-r300 \
-sOutputFile=- \
- < test.txt 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
添加-sstdout=%stderr允许重定向Postscript stdout,同时仍允许驱动程序写入stdout.(自2001年9月22日起,该补丁在Ghostscript中)
| 归档时间: |
|
| 查看次数: |
7041 次 |
| 最近记录: |