Pular para o conteúdo principal

Reduzindo o tamanho de arquivos pdf

Muitas vezes um arquivo em pdf é gerado com alta resolução, por exemplo, resolução fotográfica, com a finalidade de se obter uma impressão de ótima qualidade, entretanto, caso você só precise ler o seu conteúdo, a legibilidade não fica prejudicada se sua resolução for reduzida e você ganha espaço de armazenamento no seu dispositivo e ainda ganha tempo se for preiso enviar esse arquivo para outra pessoa. 

Sugerimos aqui dois métodos via linha de comando no Linux. O comando usado no método 2 é mais simples mas é sempre bom ter mais de uma opção.

Método 1: usando GhostScript

1. Se ainda não tiver instalado o ghostscript:
$ sudo apt install ghostscript
 
2. Reduza com:  
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

-dPDFSETTING pode assumir os seguintes valores:

  • /screen: seleciona saída de baixa resolução semelhante à configuração "Tela otimizada" do Acrobat Distiller (até a versão X).
  • /ebook: seleciona saída de resolução média semelhante à configuração de "eBook" do Acrobat Distiller (até a versão X).
  • /printer: seleciona saída semelhante à configuração "Otimizada para impressão" do Acrobat Distiller (até a versão X).
  • /prepress: seleciona saída semelhante à configuração "Prepress Optimized" do Acrobat Distiller (até a versão X).
  • /default: seleciona a saída destinada a ser útil em uma ampla variedade de usos, possivelmente à custa de um arquivo de saída maior.

Método 2: use ps2pdf

1. Reduza com:
$ ps2pdf -dPDFSETTINGS=/screen input.pdf output.pdf 

A Figura ilustra a redução no tamanho de um pdf que originalmente tinha 6,5 MiB



 

Comentários

Postagens mais visitadas deste blog

Matemática no terminal de comandos

Precisa fazer um cálculo rápido sem ter que abrir nenhuma aplicação gráfica como, por exemplo, uma planilha de cálculo? O terminal de comandos do Linux é ideal para esses casos. Para cálculos com ponto flutuante usando somente o terminal de comandos temos diversas opções como o comando bc , por exemplo. O comando bc (basic calculator) é utilizado para cálculos com precisão arbitrária e possui a vantagem de já vir instalado em qualquer distribuição Linux, portanto, sem a necessidade de instalar nada! Além do bc, as linguagens de programação de modo geral são ricas em recursos matemáticos e algumas podem ser executadas interativamente no terminal.  Neste artigo mostraremos exemplos de cálculos usando o bc , gnuplot , Python , Scilab, R , Julia, bash e zsh . Operadores matemáticos Para realizarmos os cálculos, precisamos saber a sintaxe básica e que símbolos são usados para representar os operadores matemáticos. Soma, subtração, mu...

QBASIC no Linux

Problema:   Você encontrou um diretório com antigos programas feitos em QBASIC e quer rodá-los no Linux. Como fazer? Estratégia: 1) Obtenha um emulador do DOS, por exemplo, o dosbox 2) Obtenha o QBASIC na versão desejada 3) Faça o emulador DOS considerar o diretório onde se encontra o executável do QBASIC como drive C: Como fazer?   Supondo que está usando o Ubuntu ou Mint e afins, os 3 passos da estratégia podem ser assim implementados: * Passo 1: Abra um terminal de comandos e digite (após o $) $ sudo apt-get install dosbox * Passo 2: Caso você só tenha os arquivos fonte e não tenha o compilador QBASIC, você poderá baixá-lo daqui . Se já tiver o QBASIC, vá direto ao próximo passo. * Passo 3: 3.1) Deixe o QBASIC em ~/qbasic (só uma sugestão). No meu caso, eu não precisei baixar pois eu já tinha uma pasta com a seguinte estrutura:  /home/richard/Laboratorio/programacao/qbasic Nesse caso eu criei um link de ~/qbasic apontando para o local c...

Encontrar texto em arquivos pdf

Problema : Você tem zilhões de artigos (papers) em pdf mas quer saber se uma certa sequência de texto (palavra ou frase) está escrita neles. Por exemplo, suponhamos que a frase a ser pesquisada é "fitting" Solução 1: via pdfgrep (mais recomendada)     No terminal de comandos, (trocando "richard" pelo seu nome do usuário), digite: $  find ~ -name '*.pdf' -exec pdfgrep -H -i 'fitting' {} \; Para indicar quantas ocorrências em cada pdf: find ~ -name '*.pdf' -exec pdfgrep -c -H -i 'fitting' {} \; | awk -v FS=":" -v OFS="\t" '$2>0 { print $2, $1 }' | sort -hr Para mostrar somente a primeira ocorrência no pdf: $  find ~ -name '*.pdf' -exec pdfgrep -H -i -m 1 'fitting' {} \; Solução 2: via pdftotext     Nota: pode apresentar mensagens de erro quando há problemas na conversão para texto     No terminal de comandos digite: $  find ~ -name '*.pdf' -exec sh -c 'pdftotext "{}"...