The Java PDF Library Developers Trust in Production

JPedal is a pure Java PDF library with no native dependencies, transparent pricing, and support directly from the developers who built it.

What JPedal offers

JPedal is a pure Java PDF library — no native binaries, no third-party dependencies, no JNI. Runs on any JVM, on-premise or in the cloud, Java 17+.

PDF rendering to image, embedded PDF viewer, text extraction and search, PDF manipulation, digital signing, redaction, form handling (AcroForms and XFA), annotations, and PDF inspection. Most integrations are 2–3 lines of code.

See the API documentation →

Who uses JPedal

JPedal ships inside Adobe ColdFusion and is used in production by Stampli, DigiSigner, and Abacus Research, alongside hundreds of teams building document workflows, legal platforms, and enterprise applications.

In continuous development since 1999, with customers from 2003 still running it in production.

See pricing →

Why developers switch to JPedal

Developers evaluating Java PDF libraries typically try IcePDF, Ghostscript, or PDFBox first, hit a wall, then switch to JPedal. IcePDF has no commercial backing. Ghostscript requires a native process bridge to your JVM. PDFBox has no viewer and no commercial support. iText's AGPL license requires open-sourcing commercial applications; its commercial license charges per CPU.

Read our Java PDF library buyer's guide →

Just looking for some code?

WritableAnnotation[] annotations = new WritableAnnotation[2];
annotations[0] = new SquareAnnotation(1, 10, 10, 100, 100);
annotations[1] = new CircleAnnotation(2, 10, 10, 100, 100);
AnnotationWriter.writeAnnotations(inputFile, outputFile, annotation);
ConvertPagesToImages.writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir", "bmp", 1.33f);
final PdfManipulator pdf = new PdfManipulator();
pdf.loadDocument(new File("inputFile.pdf"));
pdf.writeDocument(new File("outputFile.pdf"), "encryptionPassword".getBytes());
pdf.closeDocument();
ExtractClippedImages.writeAllClippedImagesToDir("inputFileOrDirectory", "outputDir", "outputImageFormat", new String[] {"imageHeightAsFloat", "subDirectoryForHeight"});
final PdfUtilities utilities = new PdfUtilities("path/to/exampleFile.pdf");

try {
    if (utilities.openPDFFile()) {
        // Returns a String containing all metadata fields for the document
        final String documentPropertiesAsXML = utilities.getDocumentPropertyFieldsInXML();

        // Returns the total page count as an int
        final int totalPageCount = utilities.getPageCount();

        for (int i = 1; i != totalPageCount; i++) {
            // Get the page dimensions for the specified page in the given units and type
            final float[] pageDimensions = utilities.getPageDimensions(i, PdfUtilities.PageUnits.Pixels, PdfUtilities.PageSizeType.CropBox);

            // Returns the image data as a String for the specified page
            final String xImageDataForPage = utilities.getXImageDataForPage(i);
        }
    }
}
catch (final PdfException e) {
    e.printStackTrace();
}
utilities.closePDFfile();
ExtractTextAsWordList.writeAllWordlistsToDir("inputFileOrDirectory", "outputDir", -1);
ConvertPagesToImages.writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir", "bmp", 1.33f);
java -jar launcher.jar
Viewer viewer = new Viewer();
viewer.setupViewer();
viewer.executeCommand(ViewerCommands.OPENFILE, "pdfFile.pdf");
final PdfManipulator pdf = new PdfManipulator();
pdf.loadDocument(new File("inputFile.pdf"));
pdf.addPage(1, PaperSize.A4_LANDSCAPE);
pdf.addText(1, "Hello World", 10, 10, BaseFont.HelveticaBold, 12, 1, 0.3f, 0.2f);
pdf.addImage(1, new BufferedImage(), new float[] {0, 0, 100, 100});
pdf.rotatePage(1, 90);
pdf.apply();
pdf.writeDocument(new File("outputFile.pdf"));
PrintPdfPages print = new PrintPdfPages("C:/pdfs/mypdf.pdf");

if (print.openPDFFile()) {
    print.printAllPages("Printer Name");
}
ArrayList<Float[]> resultsForPages = FindTextInRectangle.findTextOnAllPages("/path/to/file.pdf", "textToFind");

Everything a Java PDF library needs to do

Java Viewer
  • 100% Java PDF and Image Viewer
  • Customisable UI and L & F
  • Programmable API
  • Search and navigation
  • Single and multipage views
  • Simple to Localize
  • 3 lines of code to add
  •  
Learn more
Rasterize
  • PDF to BufferedImage
  • PDF to AVIF
  • PDF to HEIC
  • PDF to JPEG/JPEG2000
  • PDF to PNG
  • PDF to TIFF
  • PDF to WEBP
  •  
Learn more
Print PDF
  • All Acrobat output options
  • Client and server printing
  • Define multiple paper sizes
  • Fast draft print mode
  • Full JPS support
  • Page ranges
  • Page scaling / rotation
  •  
Learn more
Process Documents
  • Digital signing
  • Extract embedded files
  • Encrypt
  • Merge
  • Optimize / remove unused objects
  • Redact text
  • Sanitize
  • Split
Learn more
Manipulate Pages
  • Add
  • Copy
  • Delete
  • N-up
  • Remove
  • Resize
  •  
Learn more
Extract Content
Learn more
Interaction
  • Access raw form data
  • AcroForms
  • Add/delete/edit/read values
  • Annotations
  • Flatten layers
  • Read raw XFA data
  • XFA Forms
Learn more
PDF Inspector
  • COS tree
  • Decoded / raw stream data
  • Object dictionaries
  • Outlines
  • Raw text
  • Single step debugging
  •  
Learn more

Who else uses JPedal?

Adobe logo
Jive logo
Interwork logo
Abacus logo
DigiSigner logo
Stampli logo
Versitech logo
InSign logo

JPedal is absolutely easy to use and it provided the best results of all libraries we tested over the years. We need to create renditions of PDF files so that people can view them conveniently in the browser.

- Roman K. (Developer at German Digital Big Data Platform)

Key Benefits of the JPedal Java PDF Library

Runs in Your JVM, No Native Dependencies

JPedal runs in the same JVM as your application: no native process bridges, no distribution complexity, no transitive dependency conflicts, no inherited CVEs. Tools like Ghostscript require a separate native process wired to your JVM, bringing version mismatches and failure modes you won't see until production. One jar.

One-Off Licensing, Published Pricing

JPedal offers a simple, one-off server or OEM licensing model for customers with an optional recurring annual support/maintenance fee after 12 months.Prices are on the website and there are no sales call required to find out what it costs.

Support From the Developers

Support comes directly from the engineers who write and maintain JPedal, not a front-line ticket queue. That includes during your trial: if something doesn't work on your documents during evaluation, contact us and we'll look at it. Customers often buy after we fix a problem during their trial.

3× Faster Than Alternatives

JPedal is typically three times faster than PDFBox on rendering and extraction workloads, with memory optimisations designed for server-side batch processing at volume.

Source Code Access for OEM

OEM customers get full source code access alongside the binary jar. That means you can inspect exactly what the library does, modify it for your use case, and are never stuck waiting on a black box.

25+ Years of PDF Expertise

IDRsolutions has been building PDF software since 1999. JPedal handles the edge cases that trip up less battle-tested libraries: malformed documents, complex font rendering, and legacy PDF versions. Learn more in our Build vs. Buy PDF library guide.

Support for JPedal is done extremely well and for continuously using the software, what the customer needs is good support for the issues we face. And it is superb in that respect.

- Developer (Large Multinational Corporation)

Why Do Companies Buy Software From IDRsolutions?

It all adds up to faster development times and lower total cost of ownership
1

Building PDF & Image Libraries Since 1999

27 years of Java expertise in PDF and image processing. Used in production by Adobe, Citi, Lufthansa and Pearson.

2

Supported by the Actual Developers

Questions go straight to the engineers who wrote the code and can give you a real answer, not a scripted response.

3

Independently Owned and Not for Sale

Privately owned and bootstrapped since 1999. This allows us to focus on our customers, products and team.

4

Faithful Conversion, Optimised Output

Converted content matches the source PDF and is optimised for the target format. Output is clean HTML or properly compressed images.

5

100% Java, Zero External Dependencies

Built on our own tech stack, with no JNI, C extensions, or third-party libraries. That means no supply-chain CVEs, and no license audits.

6

Simple and Transparent Licensing

Clear prices with no mandatory sales calls before you can see a number. There are no hidden per-document charges or renewal surprises.

JPedal vs Other Java PDF Libraries

Feature PDFBox iText JPedal
PDF rendering quality Basic N/A High-fidelity
Embedded Java PDF viewer No No Yes (Swing)
PDF to HTML conversion No No Yes
Text extraction Yes Yes Yes
Digital signatures Yes Yes Yes
AcroForm / XFA handling AcroForms only AcroForms only Both
Native dependencies None None None
Rendering performance Baseline N/A ~3x faster
License Apache 2.0 (free) AGPL / per-CPU commercial One-off fee, published pricing
Support Community only Commercial (no published pricing) Direct from developers

Read the full PDFBox vs JPedal comparison →   |   Read the full iText vs JPedal comparison →

Frequently asked questions

Which versions of Java does JPedal support?

JPedal supports Java 17 and above, and is regularly tested against the latest LTS releases. It runs on any JVM platform including cloud-hosted environments such as AWS and Azure.

What is the best Java PDF library for commercial use?

PDFBox is free but has no viewer and no commercial support. iText requires open-sourcing your application under AGPL, or paying per-CPU for commercial use. JPedal covers rendering, viewing, extraction, and manipulation with a one-off license and direct developer support.

Does JPedal have any third-party dependencies?

No. JPedal is a pure Java library with no required third-party dependencies — no native binaries, no JNI, no transitive classpath conflicts. One jar is all you need.

Can I get access to the JPedal source code?

Yes — All customers get access to the full jar version and OEM customers also receive full source code access.

During my evaluation the team was very helpful when answering my questions, and solved any issues I faced.

- Sohaib from SlashNext

Try JPedal for Free

Test it against your actual PDFs, including the ones that don't render correctly in other tools. If something doesn't work during your trial, we'll look at it.