Compress PDF using Java

Compress and reduce a PDF file size by up to 90%

Features of Our Compress PDF for Java

The Compress PDF Java library by ConvertAPI is a tool that allows for the compression and reduction of PDF file sizes by up to 90%. This Java library optimizes PDF quality by compressing text, graphics, images, subsetting fonts, and optimizing document structure. It offers various parameters for customization, including compression presets, color and grayscale image compression, and options to remove elements like bookmarks, annotations, forms, and embedded files from the PDF. The Java library also provides options for optimizing the PDF for web viewing and preserving the PDF/A standard.

Lightning-Fast Compression

Shrink your PDFs in just a few seconds without compromising quality.

Advanced Image Recompression

Force image recompression to ensure even pre‑compressed images get smaller.

Compression without losing quality

Maintain visual quality of the original file while dramatically reducing file size.

Preserve Fonts & Vectors

Compression keeps text, fonts, and vector graphics sharp.

Multiple Compression Levels

Choose from predefined compression presets or set up your own settings.

Secure by Design

File compression is encrypted and compliant with ISO, GDPR, and HIPAA.

Integrate using Java

Easy Compress PDF integration programmatically using our simple Java SDK

Install ConvertAPI library using Maven

Add the ConvertAPI Java client dependency com.convertapi.client to your pom.xml.

Authenticate

Sign up for a free account and authenticate the library using your Secret key or API token.

Customize Parameters

Set up the conversion parameters, and copy the auto-generated code snippet in your account dashboard.

Try the Compress PDF conversion online

Try it Free

Customizable Parameters

Fine-tune your automation with these powerful conversion options

Compression preset Collection

Choose a compression level from the available presets. If a preset is selected, all other compression options will be ignored. These presets are optimized for various use cases, such as balancing file size and quality.

Available values:   Not set - advanced properties used Text - 20 image DPI, lowest quality, highest compression Archive - 40 image DPI, low quality, high compression Web - 75 image DPI, medium quality, high compression Ebook - 150 image DPI, high quality, medium compression Printer - 300 image DPI, high quality, low compression

Image resolution Integer

Set the maximum image resolution in DPI.

Image quality Integer

Set image quality in percentage.

Remove forms Bool

Remove PDF forms from the PDF file.

Remove duplicates Bool

Remove duplicate fonts and color profiles from the PDF file.

Remove piece information Bool

Remove piece information dictionaries like Adobe Illustrator or Photoshop private data.

Remove embedded files Bool

Remove embedded/attachments files from the PDF file.

Remove structure information Bool

Remove all structure information from the PDF document.

Remove metadata Bool

Detach the XMP metadata embedded in the document from its catalog, clear all properties in all schemas, and remove metadata from marked content.

Remove unused resources Bool

Remove references to resources such as fonts, images, patterns.

Unembed base fonts Bool

Specifies whether to remove the base fonts from the PDF file.

Subset embedded fonts Bool

Output PDF should only contain font characters utilized in the original document, and any unused glyphs from all fonts in the document should be removed.

Optimize content Bool

Optimize page content streams in the PDF file.

Linearize Bool

Linearize PDF file and optimize for fast Web View.

Preserve PDF/A Bool

Preserve the PDF/A standard in the PDF file.

A detailed guide to PDF Compression using Java

Our PDF Compression API can reduce the document size up to 99% of the original while preserving the same visual quality as the original PDF. You can compress your PDF documents with Java using our ConvertAPI library for Java programming language with no effort at all.

PDF compression made easy for Java

Our PDF Compression API reduces document size by optimizing its structure, removing redundant objects, re-encoding images, subsetting fonts, and squeezing the document's size for sharing or long-term storage. It can linearize the document for fast web-view rendering as well as preserve the PDF/A standard. It can also handle password-protected documents. Although our service works via REST API, we have created a wrapper library for Java, so you can compress your PDF documents without writing complex logic and explicit HTTP calls. In this tutorial, we will run through the steps needed to compress PDFs using Java.

How to compress a PDF using Java?

  1. Install the ConvertAPI library for Java
  2. Get your API secret key
  3. Set up the conversion parameters
  4. Copy the auto-generated code snippet

Install ConvertAPI Java library

First, you will need to install our CovnertAPI client library for Java. You can do that using Maven. Simply add the following dependency to your pom.xml file:

<dependency>
    <groupId>com.convertapi.client</groupId>
    <artifactId>convertapi</artifactId>
    <version>2.9</version>
</dependency>

Get your API secret key

Next, you'll want to grab your API secret key. To get the key please sign up for a free ConvertAPI account. You will receive 250 free conversions instantly and will be ready to go!

Get your API secret key

Once you have our library installed and found your secret, set it in the configuration like so:

Config.setDefaultSecret("your-api-secret");

Set up the compression parameters

ConvertAPI is designed to be super simple to implement. You don't even need to code anything - we will get everything done for you. Visit our PDF Compression API page and set up the compression parameters using our live demo tool. Click on the "Advanced properties" and you will see a complete list of parameters to suit your needs. You can test the compression by clicking the "Post" button.

Grab the auto-generated code snippet

Once you are happy with the compression result, you will find the auto-generated code snippet at the bottom of the page! A PDF compression example in Java might look something like this:

Config.setDefaultSecret("your-api-secret");
ConvertApi.convert("pdf", "compress",
    new Param("File", Paths.get("/path/to/sample.pdf")),
    new Param("ColorImageCompression", "jpx"),
    new Param("ColorImageQuality", "70"),
    new Param("ColorImageThresholdDpi", "150"),
    new Param("ColorImageResampleDpi", "100"),
    new Param("RemoveBookmarks", "true"),
    new Param("RemoveAnnotations", "true"),
    new Param("RemoveForms", "true"),
    new Param("RemovePageLabels", "true"),
    new Param("RemoveLayers", "true"),
    new Param("RemoveArticleThreads", "true"),
    new Param("RemoveNamedDestinations", "true"),
    new Param("UnembedBaseFonts", "true"),
    new Param("SubsetEmbeddedFonts", "true"),
    new Param("Linearize", "true")
).get().saveFilesSync(Paths.get("/path/to/result/dir"));

Advanced PDF Compress techniques in Java

As you may already noticed, using our converters is relatively simple. Nevertheless, it provides some more advanced options. For example, our Java library allows you to convert local files, remote files accessible by a URL, or even file streams. Let's see that in action.

Compress a local file

Compressing a local file is the most straightforward way to go. Specify the path of a file from your machine and set the destination folder for the compressed result like so:

Config.setDefaultSecret("your-api-secret");
ConvertApi.convert("pdf", "compress",
    new Param("File", Paths.get("/path/to/my_file.pdf"))
).get().saveFilesSync(Paths.get("/path/to/result/dir"));

Compress a remote file

You can compress a remote file accessible via the URL. Please make sure that the file is publicly accessible (does not require authentication) and is linking to an actual PDF file with the appropriate "application/pdf" content-type header.

Config.setDefaultSecret("your-api-secret");
ConvertApi.convert("pdf", "compress",
    new Param("File", "https://cdn.convertapi.com/cara/testfiles/document-large.pdf")
).get().saveFilesSync(Paths.get("/path/to/result/dir"));

Compress a file stream

To gain the most performance benefits, you might consider working with file streams. To compress a PDF by passing a file stream as a "File" parameter, please have a look at this code example:

Config.setDefaultSecret(getenv("your-api-secret"));

// Creating file data stream
InputStream stream = Files.newInputStream(new File("src/main/resources/sample.pdf").toPath());

System.out.println("Compressing stream of PDF data");
CompletableFuture<ConversionResult> result = ConvertApi.convert("pdf", "compress",
        new Param("file", stream, "sample.pdf")
);

Path pdfFile = Paths.get(System.getProperty("java.io.tmpdir") + "/compressed.pdf");
result.get().saveFile(pdfFile).get();

You can find more useful examples in our GitHub examples folder.

Conclusion

Compressing files with Java is a piece of cake using ConvertAPI, especially when it comes to PDF documents. Our service provides a fully customizable document compression API that can be implemented using Java programming language in a couple of minutes. You can read more about our Java library in our docs. Happy coding!

Integrate within minutes

Our user-friendly interactive demo enables you to easily set up and test the conversion from your account dashboard with just a few simple clicks.

Set up Compress PDF parameters

Upload your PDF document that you wish to convert, and set up any additional conversion parameters using our intuitive and user-friendly interface. You can fine-tune and adjust the conversion parameters to suit your needs with no technical knowledge required.

Get Started for Free

Download the Conversion Result

When you have your conversion parameters set up, you can run the conversion and download the converted document to evaluate the Compress PDF conversion quality. You can further adjust the parameters if needed, until you are satisfied with the result.

Get Started for Free

Copy Auto-Generated Code Snippet

Once you are happy with the conversion result, you can copy the auto-generated code snippet to your project and use it to perform the conversion programmatically. This will save you time and effort, and you will be able to focus on your project development.

Get Started for Free

Businesses trust us

Highest rated File Conversion API on major B2B software listing platforms: Capterra, G2, and Trustpilot.

"ConvertAPI has been a game-changer for our document automation workflows. Their conversion accuracy and API reliability are unmatched in the industry for over 7 years."

"ConvertAPI is a reliable, cost-effective solution with a proven track record of stability. It has grown significantly in maturity, adopting enterprise-grade practices over the years."

"We've integrated ConvertAPI across our entire document processing platform. The performance is exceptional and the support team is always responsive. Highly recommended!"

Data security is our top priority

We ensure that all document processing is handled securely in the cloud, adhering to industry-leading standards like ISO 27001, GDPR, and HIPAA. To enhance security even further, we can ensure that no files or data are stored on our servers and never leave your country.

Learn more about security

Ready to Streamline Your File Conversions?