Optimiser un fichier PDF sous Linux
Les PDF créés par des bibliothèques du type de TCPDF ou FPDF ne sont pas optimisés pour l'impression, ou même pour le téléchargement. Une simple ligne de commande permet de corriger ce problème.
Ce guide a été testé avec les distributions suivantes :
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
- Ubuntu 10.04 Lucid Lynx
- Ubuntu 11.04 Natty Narwhal
Prérequis
Installez les logiciels nécessaires à la manipulation:
command apt-get install poppler-utils ghostscript
Optimisation
Optimisation sans perte de qualité
Renseignez le nom du fichier que vous souhaitez optimiser:
PDF_FILE="original.pdf"
Renseignez le nom du nouveau fichier optimisé:
OPTIMIZED_PDF_FILE="optimized.pdf"
Optimisez le fichier PDF :
command pdftops \ -paper match \ -nocrop \ -noshrink \ -nocenter \ -level3 \ -q \ "$PDF_FILE" - \ | command ps2pdf14 \ -dEmbedAllFonts=true \ -dUseFlateCompression=true \ -dProcessColorModel=/DeviceCMYK \ -dConvertCMYKImagesToRGB=false \ -dOptimize=true \ -dPDFSETTINGS=/prepress \ - "$OPTIMIZED_PDF_FILE"
Remarque: Cette ligne de commande est assez complexe. L'option de pdftops "-level3" est capitale, car elle améliore de manière radicale les performances de ps2pdf. De plus, le PDF généré est destiné à l'impression et utilise des couleurs CMJN.
Pour aller plus loin, consultez la documentation de ps2pdf : PostScript-to-PDF converter.
Réduire la taille du PDF en diminuant la qualité des images
Renseignez le nom du fichier que vous souhaitez optimiser:
PDF_FILE="original.pdf"
Renseignez le nom du fichier optimisé créé :
SHRINKED_PDF_FILE="shrinked.pdf"
Transformez votre fichier PDF haute définition en fichier PDF basse définition non utilisable pour l'impression :
command pdftops \ -paper match \ -nocrop \ -noshrink \ -nocenter \ -level3 \ -q \ "$PDF_FILE" - \ | command ps2pdf14 \ -dEmbedAllFonts=true \ -dUseFlateCompression=true \ -dOptimize=true \ -dProcessColorModel=/DeviceRGB \ -dUseCIEColor=true \ -r72 \ -dDownsampleGrayImages=true \ -dGrayImageResolution=72 \ -dAutoFilterGrayImages=false \ -dGrayImageDownsampleType=/Bicubic \ -dDownsampleMonoImages=true \ -dMonoImageResolution=72 \ -dMonoImageDownsampleType=/Bicubic \ -dDownsampleColorImages=true \ -dColorImageResolution=72 \ -dAutoFilterColorImages=false \ -dColorImageDownsampleType=/Bicubic \ -dPDFSETTINGS=/prepress \ - "$SHRINKED_PDF_FILE"
Remarque: Les PDF générés par cette ligne de commande ont une résolution de 72 dpi. Ils ne possèdent pas une qualité suffisante pour une impression, mais son normalement adaptés à la lecture sur écran.
Remerciements
- Je souhaite remercier Tuxicoman qui m'a donner les pistes à suivre dans son article Compresser un PDF.
- Merci à John pour son article ImageMagick CMYK to RGB.