Comment compresser les PDF

Chaknith related to Comment compresser les PDF
Chaknith Bin
octobre 26, 2023
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

La compression PDF désigne le processus de réduction de la taille de fichier d'un document PDF (Portable Document Format). 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 propose des fonctions de compression des PDF qui permettent de compresser les images intégrées et de réduire l'arborescence qui accompagne souvent les données des tableaux dans les PDF.

Commencez avec IronPDF

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

Première étape :
green arrow pointer



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")
$vbLabelText   $csharpLabel

Compression d'images - Comparaison de la taille

Réduit de 39,24% !!

Compression'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 fonctionnalité 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 d'images. 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 sélectivement la résolution des informations de couleur (chrominance) tout en maintenant la résolution complète des informations de 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 PDF avec les données de table 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")
$vbLabelText   $csharpLabel

Compression de l'arborescence - Comparaison de la taille

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

Compresser la structure de l'arbre - 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 la structure arborescente, rendant la compression des 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")
$vbLabelText   $csharpLabel

Explorer les options disponibles

  • CompressImages : Contrôle si les images existantes dans le document sont compressées en utilisant l'encodage JPG. La valeur par défaut est false.
  • RemoveStructureTree : Supprimer l'arborescence de structure peut réduire considérablement 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 (allant de 1 à 100) à utiliser lors de la compression d'images. La valeur par défaut est 42.
  • HighQualityImageSubsampling : Cette propriété détermine s'il faut utiliser le sous-échantillonnage de chrominance 444 pour une qualité d'image supérieure (true) ou le sous-échantillonnage de chrominance 411 pour réduire davantage la taille de l'image (false).
  • ShrinkImages : Réduire la résolution des images peut réduire considérablement la taille et la qualité des images dans le document.
Chaknith related to Explorer les options disponibles
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.