Array of flight status cards with subtle differences in color and content, in isomorphic perspective Array of flight status cards with subtle differences in color and content, in isomorphic perspective
Java PDF Library

A Reliable PDF Processing Library for Java

A powerful solution for batch processing, manipulating, and editing PDF documents.

Securely and irrecoverably remove PDF text and images.

Ensure compliance with GDPR, HIPAA, and other privacy laws.

Rapidly process redactions across large batches of PDFs.

Combine separate PDFs into one unified document.

Change page orientation to correct for landscape layouts.

Insert and delete specific pages, add custom cover sheets, and more.

Use our proprietary Instant JSON format or XFDF to import and export large amounts of annotation data.

Permanently apply annotations by batch-flattening all changes to prevent further revision.

Extract user data from PDF form fields in XFDF.

Render PDF documents to be saved in your preferred image format.

Rapidly convert PDF documents or individual pages to high-fidelity bitmaps of any size.

Ensure precise file structure retention, with text layout and tables appearing exactly as shown in the original PDF.

Simplify the form filling workflow.

Automate data entry into your database.

Extract data from form fields in a document.

Improved Accessibility

Accelerated Text Extraction

Process Automation


Built for Easy Integration


Using PSPDFKit for Java

PSPDFKit can be integrated with just a few lines of code, and it comes with a rich API, which allows for complete customization.

// Initialize PSPDFKit with your activation key.

// Open a document to work on.
File file = new File("assets/default.pdf");
PdfDocument document = new PdfDocument(new FileDataProvider(file));

// Add a new stamp annotation.
JSONObject jsonObject = new JSONObject();
jsonObject.put("bbox", new float[]{0, 0, 100, 50});
jsonObject.put("pageIndex", 0);
jsonObject.put("type", "pspdfkit/stamp");
jsonObject.put("stampType", "Approved");
jsonObject.put("opacity", 1);
jsonObject.put("v", 1);

// Export the changes to Instant Document JSON.
File jsonFile = new File("out/instantOutput.json");
if (jsonFile.createNewFile()) {
	document.exportDocumentJson(new FileDataProvider(jsonFile));

// Render the first page and save to a PNG.
BufferedImage image = document.getPage(0).renderPage();
File pngfile = new File("out/test.png");
boolean success = ImageIO.write(image, "png", pngfile);

Knowledge Base


Explore our comprehensive documentation and guides.


Join webinar sessions with our developer teams.


Come read more about what goes on inside PSPDFKit.

Use Case Comparison

Which One Is For You?

PSPDFKit Processor, Libraries for Java and .NET, and Server were created with different use cases in mind. Check out the short comparison below to see which one is for you.

Documentation Learn how to get up and running using Libraries for your project.
View Documentation

Latest from the Blog

Explore more
TUTORIALS  |  Development • How To • PDF • Java

Printing a PDF with Java

DEVELOPMENT  |  PDF • Development • How To • .NET • Java

Stop Wasting Bandwidth with PDFs - Transfer Changes with Instant JSON

TUTORIALS  |  PDF • Development • How To • Java

How to Combine OCR with Redaction in Java

Ready to Get Started?

Free Trial