How to Compress PDF Files in Python

PDF files are widely used for document storage and sharing, but they can become cumbersome due to their large file sizes. This can create challenges when it comes to sharing or uploading PDF documents, as well as managing storage resources efficiently. To overcome this obstacle, you can employ PDF compression techniques to reduce the size of PDF files.

In this guide, we will delve into utilizing IronPDF, to compress PDF files effectively. We will present you with practical code examples that you can readily incorporate into your own projects, enabling you to compress PDF files and optimize their size efficiently.

IronPDF: PDF Library

Welcome to the world of IronPDF, a robust and versatile Python PDF library that empowers users to harness the full potential of PDF files. Whether you're creating, manipulating, compressing, or reading PDFs, IronPDF has got you covered. It offers an array of powerful features to streamline your PDF workflows.

One standout feature of IronPDF is its exceptional compression capability. It enables you to compress existing PDFs, effectively reducing file sizes while maintaining impeccable PDF quality. This is particularly advantageous when dealing with large documents that require swift sharing over the internet or via email.

Install IronPDF via Pip

To install IronPDF using pip, simply use the following command:

 pip install ironpdf

Please note
IronPDF Python relies on IronPDF .NET library, specifically .NET 6.0, as its underlying technology. Therefore, it is necessary to have the .NET 6.0 SDK installed on your machine in order to use IronPDF Python. Download the .NET 6.0 SDK from the official Microsoft website.

PDF Compression with IronPDF in Python

The below Python code utilizes the IronPDF library to compress PDF documents.

from ironpdf import *

pdf = PdfDocument("Image based PDF.pdf")

# Quality parameter can be 1-100, where 100 is 100% of original quality

# Second optional parameter can scale down the image resolution according to its visible size in the PDF document. Note that this may cause distortion with some image configurations
pdf.CompressImages(90, True)

The code reads an existing PDF document called "Image based PDF.pdf" from the relative directory. It then proceeds to compress the images within the PDF and saves the compressed version as "document_compressed.pdf" in the same relative directory.

Additionally, the code showcases an alternative approach where the images in the PDF are compressed and the resulting PDF file is saved as "Compressed.pdf". The second optional parameter provides the ability to scale down the image resolution based on its visible size within the PDF document.

Feel free to compare the compressed file with the original PDF to observe the difference in file size and image quality.

Before Compression

Original PDF

After Compression

Compressed PDF Output


IronPDF is a cost-effective and powerful tool designed to compress PDF files in Python. It offers a wide range of features, including page rotation, HTML to PDF conversion, and image manipulation. These combined capabilities make IronPDF an excellent choice for developers who require a comprehensive and budget-friendly solution for compressing PDFs.

Starting from just $749, IronPDF provides developers with an affordable licensing option, ensuring access to high-quality software without breaking the bank. With its reliable and robust PDF optimization functionality, IronPDF offers a hassle-free solution for developers in need of efficient PDF compression capabilities.