A Reliable Java PDF Library
A powerful solution for batch processing, manipulating, and editing PDF documents.
Trusted By
Redaction
Permanently Remove Sensitive, Confidential, or Privileged Information from PDFs
Search for personally identifiable information and redact it automatically or stage it for redaction at a later point. You can use out-of-the-box presets or create custom search patterns using regular expressions. Frequently used in e-discovery, e-disclosure, legal, financial, healthcare, and government applications.

-
Secure and irrecoverable removal of PDF text and images
-
Ensure compliance with GDPR, HIPAA, and other privacy laws
-
Rapidly process redactions across large batches of PDFs
Document Editor
Merge, Add/Remove, Split, and Rotate Pages
Access powerful low-level controls for merging PDFs, adding or deleting pages, appending cover sheets, and rotating pages. Assemble multiple documents into a single unified PDF for easier distribution and recordkeeping. Ensure document uniformity across all business processes.


Annotation Editing
Import and Export Annotations to XFDF and Instant JSON
Extract annotation data from large volumes of PDF documents for exporting to a database. Optimize for speed and network traffic by transmitting only the user’s edited changes via XFDF or Instant JSON.

-
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

PDF Rendering
High-Fidelity Rendering of PDF Documents
Access the same powerful rasterizing engine that annually processes billions of documents for our customers worldwide. Easily integrate accurate document and page rendering into your existing workflows. Render large batches of PDFs to commonly used image file types.

-
Render and save PDF documents as JPG, PNG, or WEBP
-
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
Form Filling
Read and Write Form Fields with an Easy-to-Use API
Our Forms component enables you to programmatically read and write form values. Simply build a model of your data and call a single API to fill out forms.
-
Simplify the form filling workflow
-
Automate data entry into your database
-
Extract data from form fields in a document

OCR
Use OCR to Unlock Inaccessible Text
Our OCR processor quickly enhances raster and vector PDFs to give you interactable text,
unlocking the full suite of PDF tools available.
Find out more →

-
Improved Accessibility
-
Accelerated Text Extraction
-
Process Automation
Deployment
Built for Easy Integration

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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // Initialize PSPDFKit with your activation key. PSPDFKit.initialize("YOUR_LICENSE_KEY_GOES_HERE"); // 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); document.getAnnotationProvider().addAnnotationJson(jsonObject); // 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); |
Which One Is for You?
PSPDFKit Libraries for Java and .NET, Processor, and Server were all created with different use cases in mind. Check the short comparison below to see which one is for you.
-
Ships as part of your application.
-
Headless, API-only operations.
-
Doesn't require a backend.
-
Document processing happens on the client running your app.
-
Ideal for adding core PSPDFKit functionality to Java and .NET apps.
-
Integrates with your existing backend infrastructure.
-
Doesn't store documents or document information.
-
Doesn't require a backend.
-
Is easier to scale horizontally.
-
Ideal for headless batch processing of documents.
-
Integrates with PSPDFKit for Web.
-
Provides optional document collaboration tools.
-
Stores documents, document changes, and additional information.
-
Requires a database and document storage backend.
-
Ideal for collaboration and manual document manipulation.
Looking for PSPDFKit Libraries for .NET instead?