Comment compresser des fichiers PDF en Python
La méthode CompressImages d'IronPDF permet aux développeurs Python de réduire la taille des fichiers PDF en compressant les images intégrées avec des paramètres de qualité ajustables, ce qui contribue à optimiser le stockage et à accélérer le partage de documents sans sacrifier la lisibilité.
Démarrage rapide : Compresser des fichiers PDF en Python
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import PdfDocument
# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
Flux de travail minimal (5 étapes)
- Installer la bibliothèque Python nécessaire pour compresser les fichiers PDF
- Chargez un document PDF avec
PdfDocument - Appelez
CompressImagesavec un entier de qualité (1-100) - Sauvegardez le fichier de taille réduite en utilisant
SaveAs - Examinez la sortie dans n'importe quel visualiseur PDF pour confirmer la qualité
Les fichiers PDF sont largement utilisés pour le stockage et le partage de documents, mais ils peuvent devenir encombrants avec de grandes tailles de fichiers. Télécharger ou envoyer par email un rapport de 10 Mo est sensiblement plus lent que de partager un équivalent de 2 Mo, et les coûts de stockage s'accumulent lorsque les volumes de documents sont élevés. La compression PDF traite de cela en réduisant la taille du fichier tout en gardant le contenu lisible.
Ce guide montre comment utiliser IronPDF pour compresser des fichiers PDF en Python. Des exemples de code pratiques couvrent à la fois la compression d'images standard et la compression avancée basée sur la résolution, de sorte que vous pouvez choisir l'approche qui convient à votre pipeline. Que vous travailliez avec des conversions HTML en PDF ou des documents existants, la même API de compression s'applique.
Qu'est-ce qu'IronPDF et pourquoi l'utiliser pour la compression des PDF?
IronPDF est une bibliothèque PDF Python qui gère la création, la lecture, l'édition, et l'optimisation des documents PDF. Elle fonctionne avec les fichiers générés à partir de zéro, convertis à partir de HTML, ou chargés depuis le disque. Son API de compression cible les images, qui sont le contributeur principal aux grandes tailles de fichiers PDF.
La méthode CompressImages accepte un entier de qualité compris entre 1 et 100 et un booléen facultatif qui réduit les images à leur résolution visible. Ce design à double paramètre vous permet d'ajuster précisément la compression : un tableau de bord de rapport à fort trafic pourrait utiliser une qualité de 70 pour garder les visuels nets, tandis qu'un système d'archives interne pourrait utiliser une qualité de 40 pour maximiser les économies de stockage. La bibliothèque gère tout l'encodage en interne, donc aucune dépendance supplémentaire n'est requise.
IronPDF fait partie de l'Iron Suite, qui couvre la création de documents, le traitement des codes-barres, l'OCR, et l'archivage ZIP, le tout depuis une installation Python partagée. Pour les développeurs utilisant déjà IronPDF pour créer des PDFs à partir de zéro, la compression s'intègre naturellement comme une étape de suivi avant de sauvegarder ou de distribuer des fichiers.
Comment installer IronPDF en Python ?
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
:ProductInstall
Après l'installation, configurez votre clé de licence pour les environnements de production. IronPDF inclut un essai gratuit de 30 jours qui couvre toutes les fonctionnalités, y compris la compression, sans carte de crédit requise. La page du package PyPI répertorie les notes de version les plus récentes et les détails des dépendances.
Comment compresser les fichiers PDF en using IronPDF ?
Passez un entier de qualité à CompressImages pour réduire la taille des images intégrées dans l'ensemble du document. Les entiers plus bas produisent des fichiers plus petits au détriment de la fidélité des images ; les entiers plus élevés préservent plus de détails. L'exemple ci-dessous montre à la fois un appel de compression standard et un appel avancé qui réduit également la taille des images à leur taille visible.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
from ironpdf import PdfDocument
# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")
# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
Que signifient les paramètres de compression?
CompressImages accepte deux paramètres :
- Qualité (obligatoire) : Un entier de 1 à 100. Une valeur de 100 conserve la qualité d'image originale sans appliquer de compression. Les valeurs entre 40 et 80 couvrent la plupart des cas d'utilisation pratiques, avec 60 étant un point de départ courant pour les documents à usage général.
- Adaptation à la taille visible (facultatif) : une valeur booléenne dont la valeur par défaut est
False. LorsqueTrue, chaque image est rééchantillonnée pour correspondre à ses dimensions de rendu sur la page. Ceci ajoute un second passage de réduction sur la compression de qualité, produisant des fichiers plus petits. Notez que les pages réduites ou imprimées à une résolution DPI plus élevée par la suite peuvent présenter des artefacts.
Après l'enregistrement, comparez le fichier compressé à l'original dans un visionneur de PDF pour confirmer que la qualité répond à vos exigences. Pour d'autres exemples de modèles, consultez la page Exemples de compression PDF.
À quoi ressemble le PDF avant la compression?
![]()
Comment le PDF apparaît-il après la compression ?
![]()
La comparaison montre une réduction de 458 Ko à 357 Ko (environ 22 %) en utilisant une qualité de 60. Les fichiers avec une plus grande proportion de contenu photographique atteignent généralement des réductions plus importantes que les fichiers dominés par du texte ou des graphiques vectoriels.
Comment appliquer la compression par lot à plusieurs fichiers PDF ?
Le traitement d'un dossier de fichiers PDF suit la même API : parcourir chaque fichier .pdf, le charger avec PdfDocument, appeler CompressImages et enregistrer le résultat. La fonction ci-dessous encapsule ce modèle dans un utilitaire réutilisable.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
import os
from ironpdf import PdfDocument
def batch_compress_pdfs(input_folder, output_folder, quality=60):
"""
Compress all PDF files in a folder.
Args:
input_folder: Path to folder containing source PDFs
output_folder: Path where compressed PDFs will be saved
quality: Compression quality (1–100); default is 60
"""
# Create the output folder if it does not exist
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"compressed_{filename}")
try:
pdf = PdfDocument(input_path)
pdf.CompressImages(quality)
pdf.SaveAs(output_path)
print(f"Compressed: {filename}")
except Exception as e:
print(f"Error compressing {filename}: {e}")
Le bloc except empêche qu'un seul fichier corrompu ou protégé par un mot de passe n'interrompe l'ensemble du lot. Journaliser le nom de fichier avec le message d'exception facilite l'identification des fichiers nécessitant un examen manuel. Pour des pipelines à plus grand volume, envisagez de diviser le dossier en morceaux et de les traiter en threads parallèles.
Quels réglages de qualité devez-vous utiliser pour la compression PDF ?
Le bon réglage de qualité dépend de l'utilisation prévue du PDF après compression. Trois plages couvrent les scénarios les plus courants.
Haute qualité (70–90) : Les documents destinés à l'impression ou à la distribution formelle profitent de rester dans cette plage. Le texte reste net et les schémas restent lisibles aux résolutions standard d'impression. La réduction de la taille de fichier est modeste, généralement de 10 à 25 %, mais la sortie est indistinguable de la source pour la plupart des lecteurs.
Qualité moyenne (50–70) : Cette plage convient à la livraison web et aux pièces jointes par e-mail. Le contenu photographique montre un adoucissement mineur à un examen attentif, mais la réduction de la taille de fichier (souvent de 25 à 50 %) améliore significativement les temps de chargement et la délivrabilité des e-mails. La plupart des systèmes de gestion de documents et des téléchargements de portails fonctionnent bien à une qualité de 60.
Compression agressive (30–50) : Les archives internes, les sauvegardes de stockage à long terme, et les documents qui ne seront pas imprimés peuvent utiliser cette plage. À une qualité de 40, les images sont sensiblement plus douces, mais le texte rendu par le moteur PDF (plutôt qu'intégré en tant qu'images) reste parfaitement net. Cette approche est également appropriée pour les documents qui seront convertis en images et redimensionnés avant affichage.
Comment vérifier les résultats de compression en Python ?
La vérification de la taille du fichier de sortie par programmation permet de s'assurer que la compression a atteint votre objectif avant que le fichier ne passe à l'étape suivante du pipeline. La fonction intégrée os.path.getsize de Python renvoie le nombre d'octets pour n'importe quel chemin d'accès à un fichier ; la vérification ne nécessite donc aucune bibliothèque supplémentaire.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
import os
from ironpdf import PdfDocument
# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")
pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")
compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100
# Report results to confirm compression was effective
print(f"Original: {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction: {reduction_pct:.1f}%")
La sortie donne un pourcentage de réduction clair qui peut être journalisé ou comparé à un seuil. Si la réduction est inférieure aux attentes, le document peut contenir peu ou pas d'images intégrées. Dans ce cas, la taille du fichier restera pratiquement inchangée quel que soit le paramètre de qualité, puisque CompressImages ne cible que les images matricielles. Le texte et les graphiques vectoriels ne sont pas affectés par cette méthode.
Quelles sont les prochaines étapes pour la compression PDF en Python ?
La méthode CompressImages d'IronPDF offre aux développeurs Python une API unique et bien ciblée pour réduire la taille des fichiers PDF. Ajustez le paramètre de qualité pour équilibrer les économies de stockage avec la fidélité visuelle, et ajoutez le booléen de mise à l'échelle de résolution pour un second passage de réduction lorsque les dimensions de sortie sont fixes. Pour un aperçu plus large de ce que gère IronPDF, consultez la page aperçu de la bibliothèque PDF Python.
Commencez votre essai gratuit pour tester la compression ainsi que l'ensemble complet des fonctionnalités d'IronPDF, y compris la conversion HTML en PDF, les signatures numériques, la gestion des formulaires, et la fusion de documents. À la fin de la période d'essai, consultez les options de licence pour trouver le plan qui convient à votre déploiement.
Prêt à voir ce qu'IronPDF peut faire d'autre ? Explorez le tutoriel PDF Python complet pour un guide détaillé des capacités principales d'IronPDF.
Questions Fréquemment Posées
Comment installer IronPDF pour compresser des PDF en Python ?
Exécutez pip install ironpdf dans votre terminal. IronPDF for Python nécessite que le SDK .NET 6.0 soit installé d'abord. Après l'installation, importez PdfDocument depuis le package ironpdf pour commencer à compresser des PDF.
Quel est le code de base pour compresser un fichier PDF en Python ?
Chargez le fichier avec PdfDocument("votre-fichier.pdf"), appelez CompressImages(60) avec un entier de qualité de 1 à 100, et sauvegardez le résultat en utilisant SaveAs("compressed.pdf"). Ajustez la valeur de qualité pour équilibrer la taille du fichier avec la fidélité d'image.
Comment le paramètre de qualité affecte-t-il la compression des PDF ?
Le paramètre de qualité CompressImages va de 1 à 100. Les valeurs plus faibles produisent des fichiers plus petits avec un adoucissement d'image plus visible. Les valeurs plus élevées préservent plus de détails au prix d'un fichier plus grand. Les valeurs entre 40 et 80 couvrent la plupart des cas d'utilisation pratiques, 60 étant un point de départ courant.
Puis-je passer un second argument à CompressImages ?
Oui. Passer True comme second argument indique à IronPDF de rééchantillonner chaque image à ses dimensions visibles sur la page avant d'appliquer la compression de qualité. Cela ajoute un second passage de réduction et produit des fichiers plus petits, mais les pages mises à l'échelle ou imprimées à une DPI plus élevée ensuite peuvent montrer des artefacts.
La compression PDF affecte-t-elle le texte et les graphiques vectoriels ?
CompressImages cible les images raster intégrées dans le PDF. Le texte rendu par le moteur PDF et les graphiques vectoriels ne sont pas affectés par cette méthode, donc les documents avec peu ou pas d'images intégrées montreront une réduction de taille minimale.
Comment vérifier la réduction de taille de fichier en Python ?
Utilisez os.path.getsize("compressed.pdf") pour récupérer le nombre d'octets du fichier sauvegardé et comparez-le à l'original. Diviser la différence par la taille originale donne le pourcentage de réduction sous forme de flottant.
Quelle plage de qualité est la meilleure pour la livraison web ?
Un paramètre de qualité entre 50 et 70 convient à la plupart des scénarios de livraison web et d'e-mail. Cette plage réduit généralement la taille du fichier de 25 à 50 pour cent tout en gardant le contenu photographique visuellement acceptable pour la lecture à l'écran.

