« Compressez mon PDF » a 100 réponses dans les résultats de recherche, et chacune n’a qu’à moitié raison. La vérité : la compressibilité du PDF est fortement liée à son « type de contenu ». Un PDF numérisé de 5 Mo peut se compresser à 800 Ko ; le même PDF en texte seul de 5 Mo peut ne se compresser qu’à 4,7 Mo.
Cet article utilise des données de compression réelles de 4 types typiques de PDF pour expliquer : de quoi est composé un fichier PDF, combien de chaque partie est compressible, et pourquoi un compresseur local basé navigateur ne peut jamais égaler le GhostScript de bureau.
Anatomie d’un Fichier PDF
Un fichier PDF comporte 4 composants :
- Flux de texte — texte à l’intérieur du PDF, stocké sous forme de vecteurs (pas d’images)
- Flux d’image — images à l’intérieur du PDF, généralement compressées JPEG/PNG, possiblement non compressées
- Polices — fichiers de polices intégrés (parfois réintégrés, parfois intégrés en sous-ensembles)
- Métadonnées — auteur, logiciel créateur, historique des modifications
La compression fait essentiellement 4 choses : re-compresser les images (réduire les flux d’image), réécrire les dictionnaires de polices (supprimer les glyphes inutilisés), Déflater les flux de texte (type zip), supprimer les métadonnées redondantes.
L’outil pdf-lib côté navigateur fait principalement #4 (nettoyage des métadonnées) et le cas simple de #1 (nettoyage des métadonnées des JPEG déjà compressés). Ce qu’il ne peut pas faire : re-coder les images numérisées non optimisées, forcer la mise en sous-ensembles des polices, restructurer profondément le graphe d’objets PDF.
Taux de Compression Réels pour 4 Types de PDF
Type 1 : PDF Numérisés
Caractéristiques : Chaque page est une image haute résolution (généralement 200-300 DPI, compressée JPEG). 90 % du volume du fichier provient du flux d’image.
Compression attendue : 30-70 %
Exemple : Contrat numérisé de 5 Mo → 1,5-3,5 Mo
Pourquoi le navigateur ne peut pas : Compresser des PDF numérisés nécessite de re-coder les JPEG (baisser la qualité de 85 à 70, ou convertir en WebP), ce qui exige de décoder l’image d’origine. Les outils du navigateur ont une capacité limitée ici, donc notre v1 ne prend pas en charge ce type de compression. Les outils de bureau (GhostScript, Adobe Acrobat, Foxit) le font, au prix de l’installation d’un logiciel.
Contournement manuel : Exportez chaque page en JPEG (à l’aide d’un lecteur PDF ou de pdf-lib), puis [compressez les images](URL vers le compresseur d’images) à la qualité 70, puis assemblez les JPEG en un nouveau PDF en utilisant un PDF vide comme cadre. Manuel, lent, mais ça marche.
Type 2 : PDF en Texte Seul
Caractéristiques : Les flux de texte dominent. Les polices sont intégrées en sous-ensembles. Quasiment pas d’images.
Compression attendue : 2-10 %
Exemple : Rapport de recherche de 1 Mo (sans images) → 0,9-0,98 Mo
Pourquoi le navigateur peut le faire : Nettoyage des métadonnées + Déflation des flux de texte. C’est ce que fait useObjectStreams: true de pdf-lib.
Type 3 : PDF Mixtes (texte + images)
Caractéristiques : Pensez aux manuels de produits, rapports, diaporamas exportés en PDF — il y a des graphiques, du texte, des images de couverture.
Compression attendue : 10-30 %
Exemple : Manuel de produit de 8 Mo → 5,6-7,2 Mo
Pourquoi le navigateur peut en faire une partie : Le nettoyage des métadonnées + la Déflation des flux de texte fonctionnent à plein. La partie image — si les images étaient déjà compressées (JPEG qualité 80+) — le navigateur ne peut pas compresser davantage. Si les images à l’intérieur sont en PNG ou en JPEG de haute qualité, en théorie il y a de la marge.
Type 4 : PDF Chiffrés
Compression attendue : 0 % (le contenu chiffré ne peut pas être compressé)
Pourquoi : Après chiffrement, le contenu est un flux d’octets aléatoire. Tout algorithme de compression significatif devient inutile dessus. Vous devez déchiffrer → compresser → rechiffrer (si vous avez encore besoin du chiffrement).
Pourquoi les Outils Locaux Ne Surpasseront Jamais le GhostScript de Bureau
GhostScript (gs) est le couteau suisse de la compression PDF. Ses capacités principales :
- Restructuration complète du graphe d’objets PDF — ré-entrelace le contenu des pages, les polices, les images pour une meilleure mise à jour incrémentale (nous ne pouvons pas faire ça)
- Re-codage des images — re-code JPEG/PNG vers une qualité plus agressive (nous ne pouvons pas faire ça)
- Mise en sous-ensembles des polices — intègre uniquement les caractères réellement utilisés dans le document (nous ne pouvons pas — nécessite un moteur de rendu)
- Filtrage de flux — passe à un niveau zlib plus efficace (nous faisons du deflate de base)
GhostScript est une installation de 200 Mo avec des tonnes de paramètres en ligne de commande (-dPDFSETTINGS=/screen pour compression maximale, /prepress pour qualité maximale). Les navigateurs ne peuvent rien faire de tout ça — TypeScript s’exécute dans un sandbox sans pipeline de rendu PDF bas niveau.
Comment Notre v1 Compresse
Le bouton « Compresser » de notre mode Compresser des Outils PDF fait 3 choses :
useObjectStreams: true— fusionne plusieurs objets PDF en un seul flux compressé. Économise empiriquement 5-15 % du volume.- Supprimer la page par défaut — pdf-lib ajoute une page blanche par défaut ; nous ne le faisons pas.
- Supprimer les métadonnées redondantes — comme
Producer,Creator,ModDate— si les outils en aval n’en ont pas besoin, les supprimer.
Si vous compressez un PDF et ne voyez pas de changement significatif (par exemple, 5 Mo → 4,95 Mo), l’outil vous dit poliment « ce PDF est déjà bien compressé ». C’est un retour honnête — pas « je l’ai compressé, donc il a réduit de 30 % », mais « votre PDF n’a plus rien à réduire ».
Plans v2
Nous évaluons :
- L’API expérimentale de re-codage d’images de
@pdf-lib/original(la communauté a un PR, pourrait arriver dans le main en 2026 Q3) - Rendu avec worker
pdfjs-dist+ canvas → WebP — rendre chaque page via PDF.js, exporter en WebP, réempaqueter. C’est la version transformée en outil du contournement manuel #1 ; coût significatif de bundle (+30 Mo)
Avant la v2, si vous avez besoin d’une compression agressive, il n’y a pas de raccourci — installez un outil de bureau (GhostScript, PDFsam, NAPS2) ou utilisez un service en ligne payant (smallpdf, ilovepdf).
Pratiques Recommandées
- Vérifiez le type d’abord — ouvrez le fichier dans votre lecteur PDF, jugez rapidement (tout texte ? tout images ? mixte ?)
- N’attendez pas de miracle — les PDF en texte seul ne se compressent pas. Ne compressez pas en boucle (chaque cycle économise une quantité minimale tout en prenant plus de temps)
- Petits lots — compressez 10 ou moins à la fois, attendez le résultat, puis le lot suivant
- Ouvrez et vérifiez après compression — rouvrez le PDF compressé et feuilletez-le. Il n’y a pas de test visuel « ça a l’air bon » ; il n’y a que le test visuel « feuilleter réellement chaque page ».
Essayez notre mode Compresser des Outils PDF. Il vous dit honnêtement combien il a économisé.