Vous êtes ici : Accueil / Développement / Shell Unix / Optimiser un fichier PDF sous Linux

Optimiser un fichier PDF sous Linux

Par Pierre-Yves Landuré Dernière modification 04/04/2013 05:33

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