IronPDF How-Tos PDF Compression How to Compress PDFs Chaknith Bin Updated:July 28, 2025 PDF compression refers to the process of reducing the file size of a PDF (Portable Document Format) document. This compression is applied to make the PDF file more manageable for storage, sharing, and transmission, especially when dealing with large or image-rich documents. Images typically occupy a significant portion of PDF file sizes because they are generally larger in size compared to text and other content. IronPdf offers PDF compression features that compress the embedded images and reduce the tree structure that often accompanies table data in PDFs. Get started with IronPDF Start using IronPDF in your project today with a free trial. First Step: Start for Free How to Compress PDFs Download the C# library for PDF compression from NuGet Import an existing PDF or render a new PDF Use the CompressImages method to reduce image sizes in the PDF Utilize the CompressStructTree method to minimize the PDF's tree structure Export the compressed PDF document Compress Images Example The way resizing JPEGs works, 100% quality has almost no loss, and 1% is a very low-quality output image. 90% and above: considered high-quality 80%-90%: considered medium-quality 70%-80%: considered low-quality Feel free to explore various values to understand the trade-off between quality and file size. It's important to note that the quality reduction will vary based on the type of input image, and certain images may experience more noticeable clarity reduction than others. :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 Compress Images - Size Comparison Reduced by 39.24%!! Understanding Image Compression Options Let's delve into the details of our image compression options: ShrinkImage: This feature scales down the image resolution based on its visible size in the PDF document. By doing so, it significantly reduces the size and quality of the images, optimizing them for efficient storage and transmission. HighQualitySubsampling: This setting determines the chroma subsampling method used for image compression. Selecting "True" utilizes 4:4:4 chroma subsampling, ensuring a higher quality image with full color detail. Conversely, choosing "False" employs 4:1:1 chroma subsampling, which sacrifices some color detail to further reduce the image size. Chroma subsampling is a crucial technique in digital image compression, aimed at reducing the data required to represent an image while preserving its visual quality. It achieves this by selectively reducing the resolution of color information (chrominance) while maintaining the full resolution of brightness information (luminance). In "4:4:4" chroma subsampling, each pixel retains its own color information, resulting in no loss of color detail. Conversely, in "4:1:1" chroma subsampling, the color information is subsampled at a lower resolution, reducing color detail but also reducing file size. Compress Tree Structure Example This feature is used to reduce the size of the PDF by minimizing the tree structure created by the Chrome Engine. It works well with PDFs generated by the Chrome Engine from HTML containing extensive table data. Some PDF rendering engines might output PDFs without this tree structure, making the feature not effective. The downside of removing all this tree structure is that for some PDFs, highlighting text or extracting may not work as effectively. Let's use the PDF with table data to test the CompressStructTree method. :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 Compress Tree Structure - Size Comparison Reduced by 67.90%!! This percentage increases with larger table PDFs. Advanced Compression Methods IronPdf also has a Compress method that can be used to configure both image compression and tree structure compression, making compressing documents easier than ever. :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 Explore Available Options CompressImages: Controls whether existing images in the document are compressed using JPG encoding. It defaults to false. RemoveStructureTree: Removing the structure tree can significantly reduce the disk space used by the document. However, it may negatively impact text selection, particularly in complicated documents. JpegQuality: Specifies the JPEG quality (ranging from 1 to 100) to be used during image compression. It defaults to 42. HighQualityImageSubsampling: This property determines whether to use 4:4:4 chroma subsampling for higher image quality (true) or 4:1:1 chroma subsampling to further reduce image size (false). ShrinkImages: Scaling down the image resolution can drastically reduce the size and quality of the images in the document. Ready to see what else you can do? Check out our tutorial page here: Addtional Features Frequently Asked Questions What is PDF compression? PDF compression refers to the process of reducing the file size of a PDF document to make it more manageable for storage, sharing, and transmission. How can PDFs be compressed effectively? Using tools like IronPDF, PDFs can be compressed by reducing the size of embedded images and minimizing the tree structure that accompanies table data in PDFs. How can I get started with PDF compression using a .NET library? To get started, you can download a .NET library like IronPDF for PDF compression from NuGet, import an existing PDF or render a new one, use the library's methods such as CompressImages and CompressStructTree, and export the compressed PDF. What is a method to reduce image sizes in PDFs? A method like CompressImages in IronPDF reduces image sizes in a PDF by adjusting the quality parameter, allowing a balance between image quality and file size. How can the size of the PDF's tree structure be minimized? The CompressStructTree method, available in libraries like IronPDF, reduces the size of the PDF by minimizing the tree structure created by the Chrome Engine, which is effective for PDFs with extensive table data. What is chroma subsampling in image compression? Chroma subsampling reduces the data needed for an image by lowering the resolution of color information while maintaining brightness resolution. 4:4:4 subsampling retains full color detail, whereas 4:1:1 reduces color detail to decrease file size. What are some advanced compression methods available? Advanced compression methods, such as those offered by IronPDF, include a Compress method which allows configuration of both image and tree structure compression, making it easier to compress documents with various settings. What factors affect the quality of compressed images in PDFs? The quality of compressed images can be affected by the JPEG quality setting and the choice between high-quality or lower-quality chroma subsampling. Higher JPEG quality and 4:4:4 chroma subsampling retain more image detail. What is the impact of removing the structure tree in PDFs? Removing the structure tree can significantly reduce the PDF's file size, but it may negatively impact text selection and extraction in complex documents. What is the role of the JpegQuality parameter in PDF compression? The JpegQuality parameter specifies the level of image quality during compression, ranging from 1 to 100. A lower value results in more compression but lower image quality. Chaknith Bin Chat with engineering team now Software Engineer Chaknith is the Sherlock Holmes of developers. It first occurred to him he might have a future in software engineering, when he was doing code challenges for fun. His focus is on IronXL and IronBarcode, but he takes pride in helping customers with every product. Chaknith leverages his knowledge from talking directly with customers, to help further improve the products themselves. His anecdotal feedback goes beyond Jira tickets and supports product development, documentation and marketing, to improve customer’s overall experience.When he isn’t in the office, he can be found learning about machine learning, coding and hiking. Reviewed by Jeffrey T. Fritz Principal Program Manager - .NET Community Team Jeff is also a Principal Program Manager for the .NET and Visual Studio teams. He is the executive producer of the .NET Conf virtual conference series and hosts 'Fritz and Friends' a live stream for developers that airs twice weekly where he talks tech and writes code together with viewers. Jeff writes workshops, presentations, and plans content for the largest Microsoft developer events including Microsoft Build, Microsoft Ignite, .NET Conf, and the Microsoft MVP Summit Ready to Get Started? Free NuGet Download Total downloads: 14,631,247 View Licenses