DiarioNet

A vista de sua janela pode ser a liberdade

Juntando PDFs pela linha de comando

fazer um comentário »

(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/

Escrito por xvr2k3rds

7 Fevereiro, 2008 às 11:26 pm

Publicado em Notícia

Deixe uma resposta