Sto utilizzando Ghostscript per rasterizzare la prima pagina di un file PDF in JPEG. Per evitare la creazione di file temporanei, i dati PDF vengono reindirizzati allo stdin di Ghcrripts e il file JPEG viene "svuotato" sullo stdout. Questa pipeline funziona come un incantesimo fino a quando GS riceve dati PDF non validi: invece di segnalare tutti i messaggi di errore su stderr come mi sarei aspettato, scrive comunque alcuni dei messaggi su stdout.Impedisci a Ghostscript di scrivere errori sull'output standard
di riprodursi:
$ 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:
...
Annotare il 2>/dev/null
sopra non elimina i messaggi di errore. La documentazione di Ghostscript già avvertiva che scrivere su stdout richiede il flag -q
per sopprimere i messaggi sullo stdout, ma mi sembra che manchi ancora qualcosa qui.
Grazie, pipitas - questo è esattamente quello che stavo cercando. Ho dovuto specificare esplicitamente '-sstdout =/dev/null', tuttavia, dato che'% sstderr' creerebbe un file con nome simile nella directory corrente. Per riferimento futuro, ecco il thread originale della mailing list che discute la patch: http://www.ghostscript.com/pipermail/gs-code-review/2001-March/000273.html –
C'è un errore di battitura laggiù. Dovrebbe essere '% stderr' senza il doppio s –
Thx, @EdwardB, sei corretto. L'ho riparato. –