Comment compresser des PDFs en C#

Comment compresser des PDF en C# avec IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF offre de puissantes fonctions de compression PDF en C# qui réduisent la taille des fichiers en compressant les images intégrées et en optimisant les structures arborescentes des PDF, ce qui rend les documents plus faciles à gérer pour le stockage et le partage tout en maintenant la qualité.

La compression PDF réduit la taille des documents PDF afin de les rendre plus faciles à gérer pour le stockage, le partage et la transmission. Que vous travailliez avec des PDF générés à partir de HTML ou des fichiers PDF existants, la compression est essentielle pour optimiser le traitement des documents.

Les images représentent généralement la majeure partie de la taille des fichiers PDF. IronPDF offre des fonctions de compression qui réduisent la taille des images intégrées et optimisent la structure arborescente souvent présente dans les PDF comportant beaucoup de tableaux. Ces techniques fonctionnent de manière transparente avec les PDF créés par diverses méthodes, notamment les conversions URL vers PDF et conversions de fichiers HTML.

Démarrage rapide : Compresser des fichiers PDF avec IronPDF

Réduisez la taille des fichiers PDF à l'aide des outils de compression d'IronPDF. Chargez votre PDF avec PdfDocument.FromFile et appelez CompressAndSaveAs pour compresser et enregistrer votre PDF optimisé en une seule étape. Ce processus garantit une réduction significative de la taille du fichier tout en préservant sa qualité.

  1. Installez IronPDF avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPdf
  2. Copiez et exécutez cet extrait de code.

    PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer


Veuillez noterLes méthodes de compression précédentes telles que CompressImages, CompressStructTree et Compress(CompressionOptions) sont obsolètes.

Comment compresser les images dans les PDF?

La qualité de compression JPEG accepte des valeurs allant de 0 (compression maximale) à 100 (perte minimale), le moteur sous-jacent déterminant comment la valeur est appliquée. La compréhension de ces niveaux est utile lorsque vous travaillez avec des PDF contenant des images intégrées ou lorsque vous devez gérer les polices et les graphiques.

  • 90 % et plus : haute qualité
  • 80%-90% : qualité moyenne
  • 70%-80% : faible qualité

Expérimentez différentes valeurs pour équilibrer la qualité et la taille du fichier. La réduction de la qualité varie en fonction du type d'image d'entrée : certaines images présentent une perte de clarté plus importante que d'autres. Cela est particulièrement important lorsque vous travaillez avec des images provenant d'Azure Blob Storage ou que vous créez des PDF avec des filigranes personnalisés.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40);
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40)
$vbLabelText   $csharpLabel

Quels résultats puis-je attendre de la compression d'images ?

Réduit de 39.24% !

Comparaison de fichiers entre compressed.pdf (449 KB) et nonCompress.pdf (739 KB) démontrant les résultats de la compression d'image

Comment fonctionne le paramètre de qualité ?

Le paramètre quality dans CompressAndSaveAs contrôle la qualité d'encodage JPEG appliquée à chaque image intégrée. Passez un entier de 0 (compression maximale, qualité la plus basse) à 100 (compression minimale, qualité la plus élevée), ou null pour ignorer complètement la compression d'image.

IronPDF ré-encode et redimensionne automatiquement les images pendant la compression, donc aucune option supplémentaire n'est nécessaire. Les valeurs plus basses produisent des fichiers plus petits mais peuvent introduire des artefacts visibles — expérimentez pour trouver le bon équilibre pour votre contenu.


Comment compresser l'arborescence d'un PDF?

Cette fonctionnalité réduit la taille des fichiers PDF en supprimant l'arborescence créée par le moteur Chrome. Pour l'activer, transmettez removeStructureTree: true comme troisième paramètre de CompressAndSaveAs. Elle est plus efficace avec les PDF générés par le moteur Chrome contenant des données de table importantes. Certains moteurs de rendu produisent des PDF sans cette structure, ce qui rend la fonctionnalité inefficace dans ces cas. Cette technique est précieuse lorsqu'il s'agit de travailler avec des mises en page complexes ou de fusionner plusieurs PDF avec des éléments structurels redondants.

La suppression de l'arborescence peut affecter la mise en évidence du texte et l'efficacité de l'extraction. Tenez compte de ce compromis lorsque vous appliquez la compression, en particulier si les utilisateurs doivent extraire du texte et des images à partir de PDF compressés.

Test CompressAndSaveAs with tree structure removal using this PDF with table data.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-tree-structure.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", null, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("table.pdf")

' Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", Nothing, True)
$vbLabelText   $csharpLabel

Quelle réduction de la taille des fichiers la compression de la structure arborescente permet-elle d'obtenir?

Réduit de 67.90% ! Ce pourcentage augmente avec les PDFs de table plus volumineux.

Comparaison de fichiers montrant les résultats de la compression entre table.pdf (52 KB) et table.pdf (162 KB)

Comment appliquer les deux méthodes de compression ensemble?

CompressAndSaveAs gère la compression d'image et de structure arborescente en un seul appel — transmettez une valeur quality et définissez removeStructureTree sur true. Cette approche combinée est particulièrement efficace pour les PDF complexes contenant des images et des données structurées, tels que les rapports avec graphiques ou les documents avec tableaux et graphiques intégrés.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, True)
$vbLabelText   $csharpLabel

Quels paramètres accepte CompressAndSaveAs ?

  • outputPath (chaîne) : Le chemin d'accès au fichier où le PDF compressé sera enregistré.

  • quality (int?, 0–100): Qualité JPEG appliquée à chaque image intégrée. Les valeurs plus basses produisent des fichiers plus petits. Saisissez null pour désactiver complètement la compression d'image.

  • removeStructureTree (booléen, valeur par défaut false) : Lorsque true, supprime l'arborescence de la structure PDF afin de réduire davantage la taille du fichier. Particulièrement efficace pour les PDF générés en HTML contenant des tableaux.

Tenez compte de votre cas d'utilisation lors de l'application de la compression. À des fins d'archivage, la qualité peut primer sur la taille du fichier. La distribution sur le web peut nécessiter des fichiers plus petits. Affinez les paramètres selon que vous travaillez avec des documents conformes au format PDF/A ou des PDF standard.

Comment compresser des fichiers PDF sans les enregistrer sur le disque dur ?

Dans de nombreux scénarios concrets, tels que les réponses d'API, les fonctions cloud ou les pièces jointes d'e-mails, l'écriture d'un PDF compressé sur disque est inutile ou impraticable.

CompressPdfToBytes renvoie le PDF compressé sous forme de tableau d'octets, vous donnant un contrôle total sur la façon dont la sortie est stockée ou transmise. Les deux CompressPdfToBytes et CompressPdfToStream acceptent un paramètre optionnel CompressionMode qui contrôle la manière dont la compression est effectuée.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-bytes.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as byte array
byte[] compressedBytes = pdf.CompressPdfToBytes();

File.WriteAllBytes("compressed.pdf", compressedBytes);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as byte array
Dim compressedBytes As Byte() = pdf.CompressPdfToBytes()

File.WriteAllBytes("compressed.pdf", compressedBytes)
$vbLabelText   $csharpLabel

Quelles sont les options de mode de compression disponibles ?

Les différents environnements de déploiement présentent des contraintes différentes en matière d'accès disque et de performances. L'énumération CompressionMode vous permet de choisir le bon compromis.

  • Automatic (par défaut) : Sélectionne la méthode de compression optimale en fonction des capacités du système. Tente d'abord HighQuality et revient à FastMemory si l'accès au disque est restreint.

  • FastMemory: Effectue la compression entièrement en mémoire sans E/S disque. Option la plus rapide, mais elle n'applique ni rééchantillonnage ni sous-échantillonnage de l'image, ce qui entraîne des fichiers de sortie plus volumineux.

  • HighQuality: Applique une compression maximale en utilisant un accès disque temporaire. Génère des fichiers de sortie de taille minimale avec une optimisation d'image complète. Nécessite des autorisations d'écriture sur le répertoire temporaire du système.

Si vous avez besoin d'un Stream au lieu d'un tableau d'octets, utilisez CompressPdfToStream. Ceci est utile lors de la redirection directe vers une réponse HTTP, un téléchargement vers un stockage cloud ou tout flux de travail basé sur un flux continu.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-stream.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as Stream
using var compressedStream = pdf.CompressPdfToStream();

File.WriteAllBytes("compressed.pdf", compressedStream.ToArray());
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as Stream
Using compressedStream = pdf.CompressPdfToStream()
    File.WriteAllBytes("compressed.pdf", compressedStream.ToArray())
End Using
$vbLabelText   $csharpLabel

CompressPdfToBytes et CompressPdfToStream sont désormais disponibles sur toutes les plateformes IronPDF , y compris Java, Node.js et Python.

Prêt à voir ce que vous pouvez faire d'autre? Consultez notre page de didacticiels ici : Fonctionnalités supplémentaires

Questions Fréquemment Posées

Dans quelle mesure la compression permet-elle de réduire la taille des fichiers PDF ?

IronPDF peut réduire la taille des fichiers PDF jusqu'à 75 % grâce à la compression des images et à l'optimisation de la structure. Dans l'exemple présenté, un fichier a été réduit de 39,24 % grâce à des techniques de compression d'images.

Comment IronPDF compresse-t-il les PDFs en C# ?

IronPDF gère la compression via une méthode unique : CompressAndSaveAs . Elle réduit la taille des images intégrées en utilisant une qualité JPEG configurable (0–100) et peut, en option, supprimer l’arborescence interne du PDF en définissant removeStructureTree: true , ce qui est particulièrement efficace pour les documents contenant de nombreux tableaux.

Quels niveaux de qualité dois-je utiliser pour la compression JPEG dans les PDF ?

IronPDF prend en charge une qualité de compression JPEG allant de 1 % à 100 %. Les niveaux recommandés sont les suivants : 90% et plus pour la haute qualité, 80%-90% pour la qualité moyenne, et 70%-80% pour la basse qualité. Le réglage optimal dépend de l'équilibre entre la taille du fichier et les exigences de qualité visuelle.

Puis-je compresser un PDF en une seule ligne de code ?

Oui, IronPDF permet la compression PDF en une seule ligne de code : PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40); Cela charge un PDF, compresse les images à 40% de qualité et enregistre le résultat.

La compression fonctionne-t-elle avec les PDF créés à partir de HTML ?

Oui, les fonctions de compression d'IronPDF fonctionnent de manière transparente avec les PDF créés par diverses méthodes, notamment les conversions de chaînes HTML en PDF, les conversions d'URL en PDF et les conversions de fichiers HTML, ainsi qu'avec les fichiers PDF existants.

Quels sont les types de contenu qui bénéficient le plus de la compression PDF ?

Les images représentent généralement la majeure partie de la taille des fichiers PDF, ce qui fait des documents contenant beaucoup d'images des candidats idéaux pour la compression. En outre, les PDF comportant des structures de tableaux complexes bénéficient de la fonction de compression des arbres de structure d'IronPDF.

Est-il possible de compresser un PDF sans l'enregistrer sur le disque ?

Oui, IronPDF propose les méthodes CompressPdfToBytes et CompressPdfToStream qui renvoient le PDF compressé sous forme de tableau d'octets ou de flux. Ces deux méthodes acceptent un paramètre optionnel CompressionMode avec les options Automatic, FastMemory ou HighQuality.

La compression PDF est-elle disponible dans d'autres langages que C# ?

Oui, CompressPdfToBytes et CompressPdfToStream sont désormais disponibles sur toutes les plateformes IronPDF , y compris Java, Node.js et Python.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 18,560,885 | Version : 2026.4 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPdf
exécuter un échantillon Regardez votre code HTML se transformer en PDF.