Réduire la taille d’un PDF sur Linux

Il y a quelques temps, j’avais écrit un article pour alléger un document PDF. Il faut reconnaitre qu’Openoffice.org crée des PDF avec de l’embonpoint.

J’ai découvert récemment que Ghostscript possédait une option permettant de spécifier comment allait être utilisé le document, que ça aidait fortement à réduire la taille finale, et qu’il était prévu pour les documents PDF.

Il y a trois possibilités principales:

  • Votre document doit être utilisé sur un écran
  • Votre document doit être imprimé sur une imprimante de bureau
  • Votre document sera imprimé sur une imprimante professionnelle (tirage chez un imprimeur)

Un moniteur informatique possède une résolution typique d’une centaine de DPI (pixels par pouces). Ce qui signifie que sur un pouce d’écran il y a une centaine de pixels. Traditionnellement, la résolution utilisée pour des images destinées à l’écran est de 72 DPI. Or, si votre image est à 300 DPI, c’est complètement inutile ! Pour un pouce, vous aurez donc 228 pixels en trop qui prendront de la place dans votre document.

Pour une impression de bonne qualité, une image entre 150 et 200 DPI est suffisante. Si votre image fait 300 DPI, elle est inutilement trop grande.

Si vous avez installé ghostscript, une seule ligne de commande pourra vous rendre bien des services, en particulier si vous devez envoyer vos documents par mail:


gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -sOUTPUTFILE=PDFdeSortie.pdf -f PDFaAlleger.pdf

Remplacez bien sûr, PDFdeSortie et PDFaAlleger par le nom voulu et le nom de votre document.

l’option -dPDFSETTINGS peut prendre les valeurs suivantes:

  • /screen pour un document destiné à l’écran
  • /ebook pour une qualité entre screen et printer (suite aux commentaires de l’article)
  • /printer pour un document destiné à l’impression
  • /prepress pour un document destiné à l’impression professionnelle

Pour info, j’ai utilisé l’option /screen pour un PDF de 40Mo et j’ai obtenu (après une bonne minute de traitement) un PDF de 5.1 Mo.

Le document obtenu s’ouvre bien plus rapidement et la qualité des pages, si elle a légèrement souffert, reste largement suffisante pour lire le texte et les images.

Avec l’option /printer, la taille du document obtenu est de 13.5 Mo sans perte de qualité visible à l’œil par rapport au document d’origine. Mais le document est quand même plus rapide à l’ouverture.

Alléger ou réduire la taille d’un PDF

Les fichiers PDF générés par les programmes sous linux ont une fâcheuse tendance à l’embonpoint.

Il est conseillé de ne pas dépasser 150 dpi dans les réglages d’exportation ou d’impression afin de ne pas avoir un trop gros document, mais parfois, ce n’est pas suffisant pour obtenir un fichier assez léger pour être envoyé par mail.

Voici les commandes à utiliser pour alléger un document PDF

J’ai un document PDF qui servira d’exemple. La taille de base de ce document est de 26.4Mo.

Méthode 1: utiliser l’imprimante PDF de cups pour choisir les réglages

Il faut bien sûr que cups-pdf soit installé sur votre système.

Ouvrez le documents PDF avec votre lecteur de PDF, choisissez de l’imprimer sur l’imprimante PDF, et allez régler les options de manière à imprimer en 150 dpi.

Le nouveau document généré atteint alors une taille de 17.8Mo.

Méthode 2: passer par postscript pour regénérer un PDF léger

Ouvrez un terminal dans le dossier où se trouve votre PDF et entrez la commande suivante, en remplaçant foo par le nom de votre document:

pdftops -paper A4 foo.pdf

vous obtenez, après un temps plus ou moins long, un fichier foo.ps de taille supéroeure à votre PDF d’origine (34.8Mo dans mon cas)

ps2pdf13 foo.ps

Vous obtenez alors un fichier PDF (qui a remplacé votre PDF d’origine, attention à garder votre original au chaud!) très fortement allégé. Dans mon cas, le PDF final fait 1Mo, soit 26 fois moins que le document d’origine!

C’est très appréciable, n’est ce pas?