Crie um PDF otimizado para internet

Versão em inglês.

=Básico= Os PDFs gerados pelo Scribus são otimizados para impressão em gráficas, sendo que o Scribus sofre bastante para garantir que uma saída impressa será idêntica em diferentes gráficas. O preço pago por essa consistência é o tamanho do arquivo PDF gerado, diversas vezes maior que um PDF "tradicional" teria. Essa dica mostra uma maneira de reduzir o tamanho do arquivo, assim você pode disponibiliza-lo na internet ou até mesmo o distribuír pelo correio eletrônico.

Minha esposa edita uma newsletter que é distibuída principalmente através de correio eletrônico ou pela internet (mas alguns volumes também são impressos em preto e branco, numa gráfica rápida barata). Depois que sua máquina com Windous faleceu e ela não poderia mais utilizar o Distiller e o PageMaker, eu a conveci a usar o Scribus no Linux e, ocasião a parte, as coisas funcionaram muito bem (ela adora a versão CVS do Scribus muito mais que a 1.2).

Sendo enviado através de correio eletrônico, uma newsletter deve possuir aproximadamente 1 MB, ou menos. Já que as opções de diminuição do tamanho de arquivo do Scribus (sublistando fontes e diminuindo a resolução das imagens) não atingia esse requesito (eu preciso tentar novamente para dar um parâmetro), eu procurei uma maneira de usar um arquivo PostScript e então um PDF que conseguise dar uma melhor compressão. Os passos seguintes fazem um bom e surpreendente trabalho:


 * 1) Exporte o arquivo como PDF (1.3 ou 1.4), embarcando todas as fontes no documento, sem a opção de sub-listar e de alterar a resolução das imagens. O arquivo resultante foi um pdf de aproximadamente 2.8 MB.
 * 2) Converta para PS (PostScript) usando pdftops -level3 (a exportação de PDF do Acrobat 7 não irá funcionar - use o Xpdf/pdftops). Agora o arquivo está imenso (não especificado pelo autor do artigo, mas, provavelmente, entre 20MB e 50MB).
 * 3) Converta novamente para PDF usando o Ghostscript (sublistando fontes, diminuindo a resolução das imagens - isto deve ser feito com o gs 8.x ou posterior). Temos então um arquivo por volta de 500KB.
 * 4) Se você sentir que é necessário, use o pdfopt para linear seu PDF, assim o Acrobat Reader pode iniciar mostrando a primeira página do documento enquanto as outras páginas são carregadas (eu nunca tentei esse recurso).

Como você pode ver, o arquivo resultante é cinco vezes menor.

E agora a parte misteriosa: O novo arquivo PDF não é somente menor, mas também é "mais bonito" (para leitura na tela) em alguns aspectos:


 * Eu achei que o novo PDF parece estar muito mais bonito no Acrobat 7 (mas não no Xpdf ou Gv), mas isso pode variar de caso para caso.
 * Fontes True-Type não estavam suavizadas no arquivo original, mas estão no novo. De qualquer jeito, em um teste simples de documentos, a suavização funcionou para ambos os arquivos PDF. então eu não sei qual foi o problema em primeiro lugar.
 * A marcação e a busca de texto no antigo não funciona muito bem no Acrobat, com várias lacunas entre os textos marcados (devido ao modo que o Scribus assegura o posicionamento preciso do texto) e praticamente nenhuma no Xpdf. O novo arquivo funciona perfeitamente em ambos os programas.
 * As imagens são muito escuras no Acrobat com o PDF antigo, mas são boas no novo. O Xpdf mostra ambos da mesma forma.
 * Há um lado negativo: Como resultado da transformação, no Xpdf, caracteres non-ascii (como é ou ç) são perdidos. O Acrobat Reader 7 ou o Gv não tem esse problema, então talvez seja um bug no Xpdf/Poppler.
 * Ainda, a transformação faz com que os marcadores (favoritos) e similares sejam perdidos. O script de automação preenche algumas das meta-informações automaticamente: Eu tentei extrair e restaurar os marcadores, mas a saída resultante é um PDF que causa problemas com o Acrobat Reader 7.

Você pode ver a saída do Acrobat de ambos arquivos aqui.

=Informações adicionais=


 * Se alguém estiver querendo passar o arquivo resultante num analisador de PDF, pode tentar usando a última edição da newsletter.

=Script de Automação= Você pode executar o script de automação criado especialmente para isso.