Acabei de aprender que os arquivos PDF podem ser compactados para reduzir o tamanho do disco.
- Eu queria saber como saber se um arquivo PDF já foi compactado?
- Quais aplicativos / comandos podem ser usados para compactar ou descompactar um arquivo PDF?
Meu ambiente é Linux Ubuntu 10.10.
Algumas tentativas não dão resultados satisfatórios:
Aqui estão os resultados de tentar
pdftk
:$ pdftk 3.pdf output 5.pdf uncompress $ pdftk 3.pdf output 3comp.pdf compress $ ls -l 3.pdf 3comp.pdf 5.pdf -rwxrwx--- 1 root plugdev 8652269 2011-07-30 12:27 3comp.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 16829828 2011-07-30 12:27 5.pdf
As propriedades dos arquivos mostram que todos eles não são otimizados.
Resultados da conversão para ps e depois para o pdf:
$ pdf2ps 3.pdf 3.ps $ ps2pdf 3.ps 3c.pdf $ ls -l 3.pdf 3.ps 3c.pdf -rwxrwx--- 1 root plugdev 8808946 2011-07-30 13:14 3c.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 122375966 2011-07-30 13:14 3.ps
file
. Deve mostrar se o arquivo está compactado ou não.$file 3.pdf
é3.pdf: PDF document, version 1.4
Respostas:
em resumo:
Para saber se já está compactado:
strings your.pdf | grep /Filter
Para (des) compactar um PDF, use QPDF
explicação:
A palavra-chave "Filtro" dentro de um arquivo pdf é um indicador do método de compactação usado. Alguns deles são:
(copiado daqui ).
No entanto, dada a estrutura complexa de arquivos do PDF, na maioria das vezes, parte (ou "fluxo") do PDF já será compactada de alguma forma (e será exibida ao grepping / Filter) enquanto outra parte não será, portanto não há resposta SIM / NÃO para a pergunta se o PDF está compactado.
Uma maneira de superar isso seria adicionar a
-c
opção ao grep, que retorna o número de ocorrências, para que você possa ver relativamente quão bem está compactado. por exemplo, se retornar menos de 10, será bastante não compactado.strings
"large
.pdf" | grep -c /Filter
Outra propriedade relacionada ao tamanho em PDFs é se eles foram otimizados para acesso rápido, com PDFs "otimizados" sendo de tamanho maior, para citar a wikipedia :
Você pode verificar se o PDF está otimizado usando
pdfinfo your.pdf
.fonte
qpdf
epdftk
faz mais ou menos a mesma coisa com relação à compactação, mas tambémqpdf
pode otimizar (além de muitas outras coisas).O pdftk é uma ferramenta para executar algumas operações em arquivos PDF, como compactação / descompactação:
fonte
pdfinfo file.pdf
informa se um PDF é otimizado . No entanto, não tenho certeza se isso significa compactado ou não.Encontrei o método de compactação no arquivo pdf. Abra o PDF com o editor de texto. Execute um CCITT de pesquisa ou localização, se não for encontrado, digite JPEG, Flate, JBIG2, LZW, RZ e RLE e ZIP.
Parece pior do que é! Muito fácil de encontrar o método de compactação do fluxo de dados.
fonte
Basta verificar suas propriedades; dirá se o arquivo está compactado ou não.
fonte