Tl; dr
pdfunite
pode causar erro caso o descritor de arquivo que contém a saída padrão do comando em execução na substituição do comando esteja vazio no momento em que for lido.
Então é melhor você usar uma alternativa para pdfunite
; como você tem ghostscript
instalado, você pode usar gs
:
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=~/Desktop/2016-03-12.pdf Welcome.pdf <(enscript <<<"echo foo" -p -) Rooftops.pdf Announcements.pdf ComeAliveDryBones.pdf Benediction.pdf Dismissal.pdf
Se eu entendi corretamente, você estava muito perto:
pdfunite Welcome.pdf <(enscript <<<"Have a seat" -p - | ps2pdf - -) Rooftops.pdf Announcements.pdf ComeAliveDryBones.pdf Benediction.pdf Dismissal.pdf ~/Desktop/2016-03-12.pdf
O token <<<"Have a seat"
no comando enscript
redirecionará a entrada padrão de enscript
para a string e o token -p -
fará com que o comando enscript
seja impresso na saída padrão;
Usar <()
em vez de ()
fará com que todo o token <()
seja substituído pelo descritor de arquivo que contém a saída padrão do comando executado em <()
(AKA substituição de processo), usando -
em vez de output.pdf
fará ps2pdf
imprimir o PDF na saída padrão em vez de em um arquivo.
Mas o problema com essa abordagem é que pdfunite
pode resultar em erro caso o descritor de arquivo que contém a saída padrão do comando em execução na substituição do comando esteja vazio no momento em que for lido . / p>
Então é melhor você usar uma alternativa para pdfunite
; como você tem ghostscript
instalado, você pode usar gs
:
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=~/Desktop/2016-03-12.pdf Welcome.pdf <(enscript <<<"echo foo" -p -) Rooftops.pdf Announcements.pdf ComeAliveDryBones.pdf Benediction.pdf Dismissal.pdf
% enscript <<<"foo" -p - | ps2pdf - foo.pdf
[ 1 page * 1 copy ] left in -
% gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=foobar.pdf foo.pdf <(enscript <<<"bar" -p -)
[ 1 page * 1 copy ] left in -
GPL Ghostscript 9.16 (2015-03-30)
Copyright (C) 2015 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Loading NimbusMon-Bol font from /usr/share/ghostscript/9.16/Resource/Font/NimbusMon-Bol... 4726404 3142423 2470576 1091522 3 done.
Loading NimbusMon-Reg font from /usr/share/ghostscript/9.16/Resource/Font/NimbusMon-Reg... 4759732 3269347 2490768 1100127 3 done.
%
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=foobar.pdf foo.pdf <(enscript <<<"bar" -p -)
corrige corretamente foo.pdf
e um documento contendo a palavra "barra" gerada pelo script PostScript gerado por enscript <<<"bar" -p -
.