Juntando PDFs pela linha de comando
(Esse artigo requer conhecimento de terminal Linux e Windows)
Uma das coisas que o formato PDF resolveu foi digitalizar minhas impressões.
Voce paga um boleto bancario na internet e ao invés de imprimir o comprovante voce apenas “PDFliza” ele. Ok, vamos parar com neologismo, voce digitaliza sua impressão e quando requerido voce imprime ou envia por email para outra pessoa.
Mas existe um problema que massacra muita gente :
E quando eu tenho não apenas um PDF, mas vários e até mesmo de proporções diferentes (uns no modo paisagem e outros em modo retrato) e preciso junta-los num único PDF ?
Existem poucos programas escritos para esse propósito, mas há uma maneira eficiente de fazer isso no Linux usando o Ghostscript, vejamos.
Primeiramente ponha os arquivos PDF que queira junta-los numa única pasta e usando o terminal caminhe até ela :
cd /pasta/onde/estao/os/pdf
Vamos criar um arquivo texto com o conteúdo dos PDFs existentes nessa pasta :
ls -1 *.pdf >relacao.txt
Voce acabou de criar um arquivo de nome relacao.txt com os nomes dos arquivos .pdf que serão juntados, veja esse exemplo :
contas_em_atraso_de_execao.pdf
dez-darf-simples.pdf
dez-fgts-sem-tomador.pdf
dez-gps.pdf
dez-inss-gps.pdf
dez-simples-nacional.pdf
dpvat-2008.pdf
estatistica_de_recebimento.pdf
ipva-2008.pdf
licenciamento-2008.pdf
recibo-fgts.pdf
A ordem acima será respeitada ao juntar os PDFs, se voce quer uma ordem diferente, basta reeditar este arquivo colocando as linhas na ordem desejada.
Porfim, agora vem a hora de usar o ghostscript, friozinho na barriga ? Que nada, veja como é moleza :
gs -sDEVICE=pdfwrite -dSAFER -dBATCH -dNOPAUSE -sOutputFile=/tmp/juntar_tudo.pdf @relacao.txt -c -q
Rapaz, voce acabou de criar um /tmp/juntar_tudo.pdf com todos os PDFs alistados em relacao.txt. Se voce tem poucos PDFs e acha que não compensa criar um arquivo relacao.txt voce pode simplesmente relacionar os nomes de arquivos em PDF na própria linha de comando, apenas substitua @relacao.txt pelos nomes dos arquivos PDFs que pretende juntar.
No Windows, o principio é o mesmo, mas naturalmente voce precisa instalar o ghostscript para Windows, e na hora de gerar os PDFs deve executar pelo cmd do Windows :
c:\gs\gs8.54\bin\gswin32.exe -sDEVICE=pdfwrite -dSAFER -dBATCH -dNOPAUSE -sOutputFile=c:\temp\juntar_tudo.pdf @c:\temp\relacao.txt -c -q
Parabens ! Voce é um hacker no terminal Linux e Windows agora. Já faz algo que poucos aplicativos sabem fazer ou custam uma fortuna.
Conclusão
Voce não somente junta PDFs, mas pode juntar Postscripts normais também.
Com um pouquinho de curiosidade e voce pode mudar sDevice e produzir no resultado da junção um arquivo em outro formato como png/jpeg/bitmap. Um hacker por exemplo poderia produzir um jpeg dum PDF e usar um conversor OCR para recuperar um texto protegido. Enfim, com o ghostscript há muitas funcionalidades.
fonte: http://hamacker.wordpress.com/2008/01/31/juntando-pdfs-na-linha-de-comando/