PostHeaderIcon Reduzindo o tamanho de arquivos PDF através da linha de comando.

Recentemente, precisei submeter uns arquivos no formato PDF para um site. Entretanto, o sistema tinha uma limitação com relação ao tamanho dos arquivos PDF que deveriam ser submetidos. Tentei utilizar algumas opções do editor de textos que eu havia utilizado para criar os arquivos PDF com tamanho menor, mas, infelizmente, não obtive sucesso. Ainda que essa solução funcionasse, eu deveria repeti-la, pelo menos, 15 vezes, manualmente. Foi nesse momento que resolvi encontrar uma nova solução através através do "sabre de luz" de todo administrador e usuários mais avançados do mundo Linux: a linha de comando.

A solução pode ser feita através do Ghostscript, um antigo e bem poderoso pacote de ferramentas que já vem instalado em muitas distribuições Linux. Para reduzir um arquivo PDF, usando o gs, utilizei o seguinte comando:

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \

     -dNOPAUSE -dQUIET -dBATCH \ 

     -sOutputFile=ArquivoReduzido.pdf ArquivoOriginal.pdf

Em poucos instantes, você tem o seu arquivo PDF com o tamanho significativamente menor. O mais interessante, entretanto, para evitar um trabalho repetitivo, é combinar esse comando em um pipe para, por exemplo, converter diversos arquivos PDF de uma única vez. Por exemplo, considerando que no diretório /tmp/PDFs estão todos os arquivos com extensão ".pdf" a serem reduzidos que devem ser armazenados no diretório /tmp/PDFzinhos, basta executar a seguinte linha de comando:

$ cd /tmp/PDFs ; ls *pdf |  xargs -t -i gs -sDEVICE … … … \

   -sOutputfile={}  /tmp/PDFzinhos/{}

(Substitua os "… … …" por todo o restante do comando gs mostrado anteriormente)

Pronto! Tudo devidamente reduzido de uma única vez!

Ainda é possível melhorar ainda mais o uso dessa linha de comando, incorporando-o a um script com diversos recursos legais. Entretanto, deixo isso como um exercício para vocês! :-)

Acho que é isso. Até a próxima!

Leave a Reply