Bir PDF dosyasının ilk sayfasını JPEG'ye kopyalamak için Ghostscript kullanıyorum. Geçici dosyalar oluşturmaktan kaçınmak için PDF verileri Ghoscripts'ın stdin'ine aktarılır ve JPEG stdout'ta "boşaltılır". Bu pipeline, GS'nin geçersiz PDF verileri almasına kadar bir çekicilik gibi çalışır: stderr'de beklediğim gibi tüm hata iletilerini bildirmek yerine, iletilerin bir kısmını stdout yerine yazıyor. Ghostscript'in hatalardan standart çıktıya yazılmasını engelleyin
yeniden oluşturmak için:$ 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:
...
Not 2>/dev/null
Yukarıdaki hata iletileri bastırmak değil. Ghostscript'in belgeleri, stdout'a yazmanın, stdout üzerindeki mesajları bastırmak için -q
bayrağını gerektirdiği konusunda uyardı, ancak hala burada bir şey eksik görünüyor.
Teşekkürler, pipitas - tam olarak aradığım şey bu. '-sstdout =/dev/null' ifadesini açık bir şekilde belirtmeliydim, ancak, '% sstderr' geçerli dizinde benzer bir dosya oluşturduğundan. Gelecekte başvurmak için, düzeltme ekini gönderen orijinal posta listesi dizesi: http://www.ghostscript.com/pipermail/gs-code-review/2001-March/000273.html –
Orada bir yazım hatası var. –
Thx, @EdwardB olmadan,% stderr olmalıdır, siz haklısınız. Onardım. –