Je propose ici un outil en ligne de commande, qui peut être facilement groupé avec des boucles dans les langages de script intégrés sous Windows, Linux, OS X, etc.
ImageMagick prend en charge les fichiers PDF et dispose d'une resize
option avec son outil de conversion . Je ne l'ai jamais utilisé personnellement, mais vous pouvez essayer de jouer avec.
Vous pouvez également utiliser l' compress
option (il y a un exemple ici ):
Faire pivoter un PDF
$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf
Cela suppose un PDF soutenu par TIFF. Le paramètre de densité est important car sinon ImageMagick sous-échantillonne l'image (pour une raison quelconque). L'ajout de l'option de compression permet de réduire la taille globale du PDF, sans perte de qualité.
Pour les PDF multipages, vous pouvez utiliser pdftk
, puis utiliser mogrify
depuis ImageMagick pour convertir chaque page en place:
$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf
Pour convertir des fichiers PDF avec ImageMagick, vous devez avoir GhostScript installé.
ImageMagick peut convertir des fichiers PDF multipages. Bien que la mogrify
conversion soit en place, je vous recommande de l'utiliser convert
afin de pouvoir conserver les originaux en cas d'accident.
J'ai fait quelques tests sur votre exemple de PDF fourni. Cela a très bien fonctionné pour moi:
convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf
La densité par défaut est 72
DPI. En le réglant plus haut, nous pouvons obtenir une résolution plus élevée et donc une qualité acceptable. Il avait l'air bien 150
et était un peu plus petit, mais si vous voulez répondre à une gamme de PDF 200
devrait fonctionner.
La compression JPEG doit soit automatiquement choisir un niveau ou à défaut 92
sur une échelle de 1
à 100
avec 100
être le meilleur. En le réglant sur 20
, il semble presque aussi bon que l'original (un peu plus flou et le petit texte en bas est un peu difficile à lire, mais il était à l'origine de toute façon).
Ces options apporter votre 1.7MB échantillon jusqu'à 0,5 Mo , tout en gardant lisible. Vous pouvez expérimenter un peu.
Si vous voulez une taille plus petite (à la fois du fichier et de l'image / PDF), vous pouvez utiliser -resize #%
, par exemple -resize 75%
. Sur votre exemple de PDF, cela rend cependant les petits caractères en bas à peu près illisibles.
Si vous manquez d'espace, en particulier pour les PDF multipages, vous pouvez compresser davantage en ajoutant les fichiers à une archive ZIP (ou autre). Cela a ramené la taille du fichier à 0,43 Mo sur ce PDF de test (la réduction de la qualité de compression JPEG a un effet beaucoup plus drastique). Vous pouvez également diviser le fichier PDF en pages avec pdftk
, comme @glallen l'a suggéré dans sa modification, ou diviser l'archive et la recombiner à l'autre extrémité.
2 Mo est également une limite de pièce jointe assez petite, vous voudrez peut-être examiner d'autres fournisseurs de messagerie. De mémoire, GMail fournit plus de 10 Mo par e-mail.
Ces options, et bien plus, sont entièrement documentées sur leur site Web .
JPEG
? Comment ça s'estresize
passé? Avez-vous un exemple de fichier (non sensible) avec lequel nous pourrions jouer? Le sous-échantillonnage est-il acceptable?density
... Je jure que je peux lire et suivre les instructions! Un peu gêné maintenant: S Merci d'avoir pris le temps de m'aider BobAinsi, à
convert
partir d'ImageMagick produira un PDF tramé et de nombreuses personnes seraient intéressées à conserver les graphiques vectoriels et le texte intacts afin que seules les images intégrées soient compressées. Donc, une bonne alternative à la compression consiste à utilisergs
unghostscript
exemple d'utilisation du package :dans le paramètre de commande ci-dessus:
-dPDFSETTINGS=/ebook
est important. Il peut avoir 3 valeurs:la source