Optimisation efficace de PDF avec Ghostscript CLI
Pour réduire la taille d’un PDF avec Ghostscript, créez une version candidate distincte et
comparez-la avec l’original avant de la partager. Le préréglage /ebook constitue un point de départ
pour les documents contenant de grandes images, mais une conversion réussie peut aussi produire un
fichier plus volumineux. Ce guide conserve les deux fichiers et vous donne un moyen de décider si
la version candidate est utile.
Décider s’il est approprié de réécrire le PDF
Le périphérique pdfwrite de Ghostscript construit un nouveau PDF à partir des opérations de dessin du
fichier d’entrée. Il ne se contente pas de compresser les octets d’origine. Artifex explique
pourquoi cela peut modifier des fonctionnalités du document et
augmenter la taille du fichier.
Utilisez ce flux de travail pour une copie de partage jetable d’un document dont vous pouvez vérifier l’apparence. Conservez les originaux signés : la copie réécrite ne conserve pas leurs signatures numériques valides. Si vous avez besoin de formulaires remplissables, de balises d’accessibilité et d’un ordre de lecture, de pièces jointes ou d’une conformité archivistique, utilisez un flux de travail qui préserve et valide explicitement ces fonctionnalités. L’examen des pages rendues ne permet pas d’établir qu’elles ont été conservées. Les liens, les signets, le texte interrogeable et les métadonnées doivent aussi être vérifiés si vous en dépendez.
Installer Ghostscript
Vous avez besoin de Ghostscript, des commandes pdfinfo et pdftoppm de Poppler, de Bash et d’un visionneur
PDF. Sous Ubuntu, les paquets s’appellent ghostscript et poppler-utils. Utilisez des paquets maintenus et
notez vos versions :
gs --version && pdfinfo -v && pdftoppm -v
Les commandes ci-dessous ont été testées sous Linux avec Ghostscript 10.07.1 et Poppler 26.08.0, ainsi qu’avec Ghostscript 10.02.1 et Poppler 24.02.0 d’Ubuntu 24.04. Ce sont des exemples Bash ; l’exécution sous Windows et macOS n’est pas couverte ici.
Créer une version candidate sans écraser un résultat précédent
Travaillez dans un répertoire contenant votre PDF sous le nom original.pdf. Conservez ce fichier pendant
toute la comparaison. Exécutez l’intégralité de ce bloc dans Bash, parenthèses comprises :
(
set -eu
pdfinfo ./original.pdf
mkdir ./pdf-review
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook \
-dCompatibilityLevel=1.7 -dAutoRotatePages=/None \
-dNOPAUSE -dBATCH -dPDFSTOPONERROR \
-sOutputFile=./pdf-review/candidate.pdf -f ./original.pdf
)
L’appel initial à pdfinfo vérifie que Poppler peut lire le fichier d’entrée. mkdir n’a
délibérément pas d’option -p : si pdf-review existe déjà, le bloc s’arrête avant l’exécution de
Ghostscript, même sans terminal interactif. Votre résultat précédent et original.pdf restent intacts.
Les parenthèses limitent la portée de set -eu à ce bloc.
-sDEVICE=pdfwrite sélectionne la sortie PDF. /ebook peut réduire le niveau de détail des images ; PDF 1.7
et la désactivation de la rotation automatique des pages sont des choix explicites pour cet essai.
-dNOPAUSE -dBATCH évite les invites entre les pages et quitte après le traitement. -dPDFSTOPONERROR demande à
Ghostscript de s’arrêter sur les erreurs PDF au lieu de tenter sa récupération habituelle, comme le
décrit la documentation d’utilisation.
Aucun des deux programmes n’est un validateur PDF complet. Lisez les éventuels avertissements et,
si la conversion échoue, considérez tout ce qui reste dans pdf-review comme incomplet.
Comparer les tailles de fichier
Une fois la conversion réussie, comparez le nombre réel d’octets et le nombre de pages :
wc -c ./original.pdf ./pdf-review/candidate.pdf
pdfinfo ./original.pdf && pdfinfo ./pdf-review/candidate.pdf
Les deux premières lignes wc indiquent les tailles individuelles ; la ligne total les
additionne. Dans les deux rapports pdfinfo, comparez Pages et Page size. Un nombre d’octets
inférieur n’excuse ni une page manquante ni un changement de taille inattendu. Pour les documents
aux formats de page mixtes, vérifiez aussi chaque page dans votre visionneur.
Effectuez le rendu des deux documents avec Poppler, indépendamment de Ghostscript :
(
set -eu
mkdir ./pdf-review/previews
pdftoppm -r 150 -png ./original.pdf ./pdf-review/previews/original
pdftoppm -r 150 -png ./pdf-review/candidate.pdf ./pdf-review/previews/candidate
)
Cette commande écrit un PNG par page, avec des préfixes original- et candidate- correspondants. Elle
refuse de réutiliser un répertoire previews existant. Ouvrez côte à côte les images correspondantes
et examinez le petit texte, les traits fins, les photographies, les couleurs et l’orientation des
pages. Ces aperçus à 150 dpi aident à repérer les changements visibles ; ouvrez aussi les PDF au
niveau de zoom prévu pour la lecture ou faites-en une épreuve au format d’impression prévu.
Essayez de sélectionner et de rechercher du texte, et de suivre les liens importants dans la
version candidate.
N’utilisez la version candidate que si elle est plus petite et réussit les vérifications
nécessaires à votre document. Sinon, continuez à utiliser l’original. Les PDF textuels ou
vectoriels déjà compacts peuvent grossir, et un scan fortement compressé peut n’offrir que peu de
gain. Pour essayer un autre réglage, renommez le répertoire de revue afin de conserver cet essai,
puis relancez à partir de original.pdf. Recompresser une version candidate avec perte peut supprimer
davantage de détails.
Préréglages d’optimisation PDF
Voici les cibles de sous-échantillonnage pour la couleur et les niveaux de gris dans les versions testées. Les définitions des préréglages de Ghostscript spécifient aussi des réglages distincts pour les images monochromes :
| Préréglage | Cible couleur et niveaux de gris | Points de vigilance |
|---|---|---|
/screen | 72 dpi | Les détails fins des images peuvent disparaître. |
/ebook | 150 dpi | Vérifiez les scans et le petit texte dans les images. |
/printer | 300 dpi | Vérifiez les couleurs et les polices pour l’imprimante prévue. |
/prepress | 300 dpi | Ne garantit pas que le document est prêt pour l’impression. |
Le sous-échantillonnage utilise aussi un seuil de résolution ; il ne redimensionne pas chaque
image à la cible. Ces préréglages modifient plus que la résolution, notamment la gestion des
couleurs et des polices. /prepress n’est pas un commutateur de qualité maximale. Pour une exigence
précise concernant les images, utilisez les
réglages d’image individuels
plutôt que d’ajouter d’autres préréglages.
Choisir un niveau de compatibilité
L’exemple demande explicitement PDF 1.7 après avoir sélectionné /ebook. N’utilisez un niveau plus
ancien que si un destinataire l’exige. N’abaissez pas la version PDF uniquement pour obtenir un
fichier plus petit : cela peut désactiver des fonctionnalités de compression, et une sortie
inférieure à PDF 1.4 peut forcer la conversion des pages transparentes en bitmaps. Consultez les
limitations de pdfwrite
avant de modifier ce réglage.
Pour une collection de PDF, évaluez des documents représentatifs avant d’automatiser la conversion. Prévoyez un emplacement de sortie distinct pour chaque fichier d’entrée et comparez les résultats individuellement ; un scan réussi en dit peu sur un dessin vectoriel ou un formulaire.
Erreurs courantes et solutions
- Une commande est introuvable : installez le paquet correspondant et vérifiez que son
exécutable se trouve dans
PATH. Poppler fournit les deux commandes d’inspection utilisées ici. File existsrenvoyé parmkdir: la protection contre l’écrasement a fonctionné. Examinez l’essai précédent et renommez son répertoire avant d’en commencer un autre. N’ajoutez pas-ppour contourner la protection.- Fichier d’entrée manquant, chiffré ou corrompu : vérifiez le nom du fichier et ouvrez l’original dans un visionneur. Si nécessaire, procurez-vous une copie source lisible et autorisée. N’utilisez pas une conversion partielle.
- Substitution de polices ou apparence inattendue : privilégiez une nouvelle exportation du document source avec ses polices incorporées. Un fichier plus petit dont le texte a changé n’est pas un résultat acceptable.
- Permission refusée ou disque plein : utilisez un répertoire de travail accessible en écriture et disposant d’assez d’espace pour le nouveau PDF et les aperçus de pages. Gardez l’essai échoué à part lorsque vous réessayez.
Note sur les licences
Ghostscript est disponible sous licence AGPL et sous licence commerciale. Si vous prévoyez de le distribuer avec une application ou d’exploiter un service, consultez les informations de licence d’Artifex pour cet usage.
