GhostScript - Reduzindo o tamanho de arquivos PDF pelo terminal

Publicado por Fábio Berbert de Paula em 04/12/2012

[ Hits: 24.393 ]

Blog: https://fabio.automatizando.dev

 


GhostScript - Reduzindo o tamanho de arquivos PDF pelo terminal



Hoje precisei enviar um arquivo PDF como anexo em formulário. Meu problema era o seguinte: o PDF escaneado tinha 7mb e o limite de upload do site era 2mb. Eu precisava reduzir o tamanho do arquivo.

Uma rápida pesquisada no Google e encontrei a solução. Fico imaginando se em outros sistemas operacionais a coisa é tão simples assim. :)

Para reduzir o tamanho de um arquivo PDF, execute:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dNOPAUSE -dBATCH -sOutputFile=novo.pdf velho.pdf

Onde novo.pdf é o novo arquivo que será criado e velho.pdf é o antigo, o grande.

Entendendo o comando:
  • gs :: Ou GhostScript, um interpretador e visualizador de arquivos PS e PDF.
  • -sDEVICE :: Determina o dispositivo de saída do comando. Como estamos gerando um arquivo PDF, usaremos o dispositivo built-in pdfwrite;
  • -dCompatibilityLevel :: Determina o nível de compatibilidade do PDF. Neste caso o level 1.3 é compatível com o Acrobat Reader 3 ou superior. Level 1.4 por exemplo já seria compatível apenas com Acrobat Reader 5 ou superior.
  • -dNOPAUSE :: Desabilita o prompt (pausa) ao final de cada página processada.
  • -dBATCH :: Processamento em batch. Caso omita esta opção, após o processamento você cairá no interpretador gs e precisará digitar "quit" para sair.

Meu arquivo foi reduzido de 7mb para 1.1mb!

Fui.

Outras dicas deste autor

PHP - Como comparar duas strings case insensitive

Servidor web via linha de comando com Node.js (http-server)

Resolvendo problema de renderização de fontes no Firefox [Debian]

Convertendo imagem .BIN para .ISO com bchunk

Obtendo a soma do tamanho os arquivos listados com "du"

Leitura recomendada

Atualizar ClamAV, atualizações (de segurança e sistema) e mostrar versão do Debian

Vídeo interessante sobre o strace no GNU/Linux

Exemplos de uso do comando SCP

O comando tree - listar diretórios em formato árvore

Como matar (fechar) um programa por meio de ssh, em uma outra máquina

  

Comentários
[1] Comentário enviado por jaac em 10/04/2014 - 12:56h

Valeu pela dica!
precisava enviar um curriculo, com um design diferenciado por causa da vaga, e o arquivo tinha 25 Mb!

Após este processo, o arquivo ficou com 700Kb!

Muito obrigado!

[2] Comentário enviado por lilomg em 26/07/2015 - 13:53h

No caso deste comando, como faria para converter todos os arquivos pdf dentro de um diretório para outro diretório?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts