Criando arquivos pdfs com tamanho reduzido e boa qualidade a partir de imagens

Publicado por Marcos Alves Pintar em 14/12/2015

[ Hits: 1.922 ]

 


Criando arquivos pdfs com tamanho reduzido e boa qualidade a partir de imagens



O problema

A utilização de imagens digitais ao invés do papel é cada vez mais comum. Empresas, governos e até o Judiciário estão migrando para o formato digital, e assim surge a necessidade crescente de mecanismos para tornar os arquivos menores e mais legíveis, por razões obvias.

Para agravar, vários órgãos impõem limites ao tamanho dos arquivos, fazendo com que os usuários por vezes tenham dificuldades no preparo da documentação. Criar um arquivo pdf hoje é algo fácil, mas com o tamanho que queremos e boa qualidade é algo que por vezes demanda um certo trabalho.

Neste artigo veremos com a utilização de dois programas simples como criar arquivos pdfs de tamanho reduzido e com boa qualidade.

A solução

Vamos utilizar dois programas: mozjpeg e img2pdf.

O primeiro é uma versão do formato jpeg desenvolvido pela Fundação Mozilla. Mais detalhes no site do projeto:
Trata-se de uma ferramenta bastante eficiente, que reduz bastante o tamanho do arquivo jpeg sem perda considerável de qualidade.

No Arch, a melhor opção é instalar o pacote mozjpeg-opt via AUR. Desta forma os arquivos ficarão na pasta /opt e não interferirão na biblioteca jpeg já instalada no sistema, que é uma dependência de boa parte dos programas e pode gerar coisas imprevisíveis caso substituída.

Utilizando o yaourt, basta o comando:

# yaourt -S mopzjpeg-opt

O segundo é um programa que empacota a imagem para o formato pdf com a mínima adição de tamanho. Mais detalhes no site do projeto:
No Arch, a instalação pode ser feita também via yaourt já que o pacote está no AUR:

# yaourt -S img2pdf-git

A seguir veremos como criar os arquivos pdf usando os dois programas.

Colocando a mão na massa

Uma vez instalados os dois programas devemos primeiro criar uma imagem jpeg usando o mozjpeg.

Exemplo de utilização:

/opt/mozjpeg/bin/cjpeg -optimize -smooth 6 -quality 50 -progressive -outfile OUTPUT.jpeg INPUT.jpeg

O parâmetro -quality é o que determina o tamanho do arquivo final e a qualidade. Quanto menor o valor, menor e menos nítida a imagem. Em geral, 30 é um bom número.

Mais detalhes no site do projeto.

Agora é só converter para pdf usando o img2pdf.

Exemplo de utilização:

img2pdf -d 300 OUTPUT.jpeg -o OUTPUT.pdf

Reparem que o arquivo pdf gerado será apenas pouca coisa maior do que o arquivo jpeg.

Conclusão

As duas ferramentas facilitam em muito a criação de arquivos pdf de tamanho reduzido e boa qualidade.

Vale dizer que versões do Windows 7 e possivelmente distros Linux antigas parecem apresentar problemas de exibição com arquivos pdfs criados por este método. A causa provável parece ser falta de compatibilidade com o formado jpeg. Sistemas com Windows 8 e superior ou distros Linux modernas funcionam sem problemas.

Na próxima vou postar um script que cria arquivo pdfs a partir de imagens automaticamente usando as duas ferramentas, podendo-se opcionalmente definir o tamanho máxima de cada página do arquivo pdf e também o tamanho máximo do arquivo pdf em si. O script é tão "chique" que usa todos os núcleos do processador para descobrir a compactação ideal.

Até a próxima e obrigado por lerem o texto.

Outras dicas deste autor

Fazendo o Processo Judicial Eletrônico (PJe) funcionar no Linux

GPU Accelerated Flash Player - Acelerando o Flash no Firefox via GPU

Leitura recomendada

Conexão de tabelas temporárias com PHP + MySQL

Utilizando split e cat para maninpular arquivos

Configurando a placa Wireless AR5006EG do Toshiba A215-S4747 no Ubuntu 7.10

Servidor apt-get para o disco local

Diminuindo a listagem de kernels do GRUB no Ubuntu 9.10

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts