Estou sugerindo uma ferramenta de linha de comando aqui, que pode ser facilmente agrupada com loops nas linguagens de script incorporadas no Windows, Linux, OS X, etc.
O ImageMagick suporta PDFs e tem uma resize
opção com sua ferramenta de conversão . Eu nunca o usei pessoalmente, mas você pode tentar brincar com isso.
Você também pode usar a compress
opção (há um exemplo aqui ):
Girar um PDF
$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf
Isso pressupõe um PDF suportado por TIFF. O parâmetro de densidade é importante porque, caso contrário, o ImageMagick faz uma amostragem reduzida da imagem (por algum motivo). A adição da opção de compactação ajuda a manter o tamanho geral do PDF menor, sem perda de qualidade.
Para PDFs de várias páginas, convém pdftk
usar o mogrify
ImageMagick para converter cada página no local:
$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf
Para converter arquivos PDF com o ImageMagick, você precisa ter o GhostScript instalado.
O ImageMagick pode converter PDFs de várias páginas. Embora mogrify
a conversão seja feita no lugar, recomendo que você use convert
para manter os originais em caso de acidente.
Fiz alguns testes no seu exemplo de PDF fornecido. Isso funcionou muito bem para mim:
convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf
O padrão de densidade é 72
DPI. Ao defini-lo mais alto, podemos obter uma resolução mais alta e, portanto, qualidade aceitável. Parecia bom 150
e era um pouco menor, mas se você deseja atender a vários PDFs, 200
deve funcionar.
Compressão JPEG deve ou auto escolher um nível ou padrão para 92
em uma escala 1
da 100
com 100
sendo o melhor. Definindo-o como 20
, parece quase tão bom quanto o original (um pouco mais confuso e o pequeno texto na parte inferior é um pouco difícil de ler, mas era originalmente de qualquer maneira).
Estas opções trazer o seu 1.7MB amostra até 0.5MB , mantendo-lo legível. Você pode experimentar um pouco.
Se você deseja um tamanho menor (tanto do arquivo quanto da imagem / PDF), pode usar -resize #%
, por exemplo -resize 75%
. No seu exemplo de PDF, isso torna as letras pequenas na parte inferior praticamente ilegíveis.
Se você ainda estiver com pouco espaço, principalmente para PDFs de várias páginas, poderá compactar ainda mais adicionando os arquivos a um arquivo ZIP (ou outro). Isso reduziu o tamanho do arquivo para 0,43 MB no PDF de teste (a redução da qualidade da compactação JPEG tem um efeito muito mais drástico). Você também pode dividir o arquivo PDF em páginas com pdftk
, como @glallen sugeriu em sua edição, ou dividir o arquivo e recombinar na outra extremidade.
2 MB também é um limite de anexo bastante pequeno; talvez você queira procurar outros provedores de email. De memória, o GMail fornece mais de 10 MB por email.
Essas opções e mais estão totalmente documentadas em seus sites .
JPEG
? Como acabouresize
? Você tem um arquivo de amostra (não sensível) com o qual podemos brincar? A amostragem é aceitável?density
... Juro que posso ler e seguir as instruções! Um pouco envergonhado agora: S Obrigado por dedicar um tempo para me ajudar. Bob #Portanto, o
convert
ImageMagick produzirá PDF rasterizado e muitas pessoas estariam interessadas em manter o gráfico vetorial e o texto intocados, para que apenas as imagens incorporadas sejam compactadas. Uma alternativa tão boa para fazer a compactação é usar o exemplo de usogs
do pacoteghostscript
:no parâmetro de comando acima:
-dPDFSETTINGS=/ebook
é importante. Pode ter 3 valores:fonte