Comment compresser les PDF

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

par Chaknith Bin

La compression PDF est le processus de réduction de la taille d'un fichier PDF (Format de document portable) document. Cette compression est appliquée pour rendre le fichier PDF plus facile à gérer pour le stockage, le partage et la transmission, en particulier lorsqu'il s'agit de documents volumineux ou riches en images.

Les images occupent généralement une part importante de la taille des fichiers PDF, car elles sont généralement plus volumineuses que le texte et les autres contenus. IronPDF offre des fonctions de compression des PDF qui permettent de compresser les images intégrées et de réduire la structure arborescente qui accompagne souvent les données des tableaux dans les PDF.


Bibliothèque NuGet C# pour PDF

Installer avec NuGet

Install-Package IronPdf
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

Bibliothèque NuGet C# pour PDF

Installer avec NuGet

Install-Package IronPdf
ou
Java PDF JAR

Télécharger DLL

Télécharger la DLL

Installation manuelle dans votre projet

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

Première étape :
green arrow pointer

Découvrez IronPDF sur NuGet pour une installation rapide et un déploiement facile. Avec plus de 8 millions de téléchargements, il transforme PDF avec C#.

Bibliothèque NuGet C# pour PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Envisagez d'installer le IronPDF DLL directement. Téléchargez et installez-le manuellement pour votre projet ou sous forme de GAC : {{lienDllAfficher}}

Installation manuelle dans votre projet

Télécharger la DLL

Exemple de compression d'images

Selon le mode de redimensionnement des JPEG, une qualité de 100 % n'entraîne pratiquement aucune perte, et 1 % est une image de sortie de très faible qualité.

  • 90% et plus : considéré comme de haute qualité
  • 80%-90% : qualité moyenne
  • 70%-80% : considéré comme de faible qualité

    N'hésitez pas à explorer différentes valeurs pour comprendre le compromis entre la qualité et la taille du fichier. Il est important de noter que la réduction de la qualité varie en fonction du type d'image d'entrée, et que certaines images peuvent présenter une réduction de la clarté plus importante que d'autres.

: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.CompressImages(40);

pdf.SaveAs("compressed.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

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

' Compress images in the PDF
pdf.CompressImages(40)

pdf.SaveAs("compressed.pdf")
VB   C#

Compression d'images - Comparaison de la taille

Réduit de 39,24%!!

Compression d'images - comparaison de taille

Comprendre les options de compression d'image

Entrons dans les détails de nos options de compression d'image :

ShrinkImage : Cette fonction réduit la résolution de l'image en fonction de sa taille visible dans le document PDF. Ce faisant, il réduit considérablement la taille et la qualité des images, les optimisant pour un stockage et une transmission efficaces.

HighQualitySubsampling : Ce paramètre détermine la méthode de sous-échantillonnage chromatique utilisée pour la compression de l'image. La sélection de "True" utilise le sous-échantillonnage chromatique 4:4:4, ce qui garantit une image de meilleure qualité avec des couleurs détaillées. À l'inverse, le choix de "Faux" utilise le sous-échantillonnage chromatique 4:1:1, qui sacrifie certains détails des couleurs pour réduire davantage la taille de l'image.

Le sous-échantillonnage chromatique est une technique cruciale dans la compression d'images numériques, qui vise à réduire les données nécessaires pour représenter une image tout en préservant sa qualité visuelle. Il y parvient en réduisant de manière sélective la résolution des informations sur les couleurs (chrominance) tout en maintenant la résolution complète des informations relatives à la luminosité (luminance).

Dans le sous-échantillonnage chromatique "4:4:4", chaque pixel conserve ses propres informations de couleur, ce qui n'entraîne aucune perte de détails de couleur. Inversement, dans le sous-échantillonnage chromatique "4:1:1", les informations sur les couleurs sont sous-échantillonnées à une résolution inférieure, ce qui réduit les détails des couleurs mais aussi la taille du fichier.


Exemple de structure arborescente compressée

Cette fonctionnalité est utilisée pour réduire la taille du PDF en minimisant l'arborescence créée par le moteur Chrome. Elle fonctionne bien avec les PDF générés par le moteur Chrome à partir de HTML contenant de nombreuses données sous forme de tableaux. Certains moteurs de rendu PDF peuvent produire des PDF sans cette structure arborescente, ce qui rend la fonction inefficace.

L'inconvénient de la suppression de toute cette arborescence est que, pour certains PDF, la mise en évidence du texte ou l'extraction peuvent ne pas fonctionner aussi efficacement.

Utilisons le tableau.pdf pour tester la méthode CompressStructTree.

: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.CompressStructTree();

pdf.SaveAs("compressedTable.pdf");
Imports IronPdf

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

' Compress tree structure in PDF
pdf.CompressStructTree()

pdf.SaveAs("compressedTable.pdf")
VB   C#

Compression de l'arborescence - Comparaison de la taille

Réduit de 67,90%!! Ce pourcentage augmente avec la taille du tableau PDF.

Compression d'une structure arborescente - comparaison de taille

Méthodes de compression avancées

IronPDF dispose également d'une méthode Compress qui peut être utilisée pour configurer à la fois la compression d'image et la compression de structure d'arbre, ce qui rend la compression de documents plus facile que jamais.

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

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

CompressionOptions compressionOptions = new CompressionOptions();

// Configure image compression
compressionOptions.CompressImages = true;
compressionOptions.JpegQuality = 80;
compressionOptions.HighQualityImageSubsampling = true;
compressionOptions.ShrinkImages = true;

// Configure tree structure compression
compressionOptions.RemoveStructureTree = true;

pdf.Compress(compressionOptions);

pdf.SaveAs("compressed.pdf");
Imports IronPdf

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

Private compressionOptions As New CompressionOptions()

' Configure image compression
compressionOptions.CompressImages = True
compressionOptions.JpegQuality = 80
compressionOptions.HighQualityImageSubsampling = True
compressionOptions.ShrinkImages = True

' Configure tree structure compression
compressionOptions.RemoveStructureTree = True

pdf.Compress(compressionOptions)

pdf.SaveAs("compressed.pdf")
VB   C#

Explorer les options disponibles

  • CompressImages : Contrôle si les images existantes dans le document sont compressées à l'aide de l'encodage JPG. La valeur par défaut est false.
  • RemoveStructureTree : La suppression de l'arbre de structure peut réduire de manière significative l'espace disque utilisé par le document. Cependant, elle peut avoir un impact négatif sur la sélection du texte, en particulier dans les documents complexes.
  • JpegQuality : Spécifie la qualité JPEG (de 1 à 100) à utiliser lors de la compression de l'image. La valeur par défaut est 42.
  • HighQualityImageSubsampling : Cette propriété détermine s'il faut utiliser le sous-échantillonnage 444 chroma pour une meilleure qualité d'image (vrai) ou 411 chroma subsampling pour réduire davantage la taille de l'image (faux).
  • ShrinkImages : La réduction de la résolution de l'image peut réduire considérablement la taille et la qualité des images dans le document.

Chaknith Bin

Ingénieur logiciel

Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.