The Java PDF Library Developers Trust in Production
JPedal is a pure Java PDF library for rendering, text extraction, viewing, manipulating and processing — with no native dependencies, transparent pricing, and direct support 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. It runs on any JVM, on-premise or in the cloud, and supports Java 17+.
Core capabilities: 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. All accessible via a clean Java API — most integrations are 2–3 lines of code.
See the API documentation →Who uses JPedal
JPedal is used in production by Adobe (in ColdFusion), Stampli for PDF rasterization, DigiSigner for contract display, and Abacus Research in their ERP platform — alongside hundreds of development teams building document workflows, legal platforms, and enterprise applications.
It has been in continuous development since 1999 and we have customers from 2003 still using it in production environments.
See pricing →Why not iText or PDFBox?
iText's open-source license is AGPL — deploying it commercially requires open-sourcing your application. The commercial alternative has no published pricing. PDFBox is open-source and reliable for basic use cases, but has no viewer component, limited rendering fidelity on complex PDFs, and no commercial support.
JPedal covers the full use case — rendering, viewing, text extraction, manipulation. Prices are on the website. Support comes directly from the engineers who wrote the code.
Read our Java PDF library buyer's guide →Just looking for some code?
Viewer viewer = new Viewer();
viewer.setupViewer();
viewer.executeCommand(ViewerCommands.OPENFILE, "pdfFile.pdf");ConvertPagesToImages.writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir", "bmp", 1.33f);ExtractTextAsWordList.writeAllWordlistsToDir("inputFileOrDirectory", "outputDir", -1);ConvertPagesToImages.writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir", "bmp", 1.33f);ArrayList<Float[]> resultsForPages = FindTextInRectangle.findTextOnAllPages("/path/to/file.pdf", "textToFind");PrintPdfPages print = new PrintPdfPages("C:/pdfs/mypdf.pdf");
if (print.openPDFFile()) {
print.printAllPages("Printer Name");
}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();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);ExtractClippedImages.writeAllClippedImagesToDir("inputFileOrDirectory", "outputDir", "outputImageFormat", new String[] {"imageHeightAsFloat", "subDirectoryForHeight"});java -jar jpedal.jar --inspect "inputFile.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"));Everything a Java PDF library needs to do
JPedal is a 100% Java solution with no third-party code.
Java Viewer
- 100% Java PDF and Image Viewer
- Single and multipage views
- Search and navigation
- Customisable UI and L & F
- Simple to Localize
- Programmable API
- 3 lines of code to add
Rasterize
- PDF to BufferedImage
- PDF to AVIF
- PDF to JPEG/JPEG2000
- PDF to HEIC
- PDF to PNG
- PDF to TIFF
- PDF to WEBP
Print PDF
- Client and server printing
- Full JPS support
- Define multiple paper sizes
- Page scaling / rotation
- All Acrobat output options
- Page ranges
- Fast draft print mode
Process Documents
- Digital signing
- Extract embedded files
- Merge
- Optimize
- Remove unused objects
- Redact text
- Sanitize
- Split
Extract Content
- Images
- Marked / Structured content
- Metadata
- Outlines
- Raw text
- Text search
Interaction
- Annotations
- AcroForms
- XFA Forms
- Add/delete/edit/read values
- Access raw form data
- Read raw XFA data
- Flatten layers
PDF Inspector
- COS tree
- Object dictionaries
- Decoded / raw stream data
- Outlines
- Raw text
- Single step debugging
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
No Third-Party Dependencies
JPedal has no required third-party Java libraries. There are no transitive dependency conflicts to resolve, no CVEs inherited from other projects, and no licensing complications from bundled code. One jar, clean classpath.
Transparent, One-Off Pricing
JPedal is licensed per server or OEM for a one-off fee — not per user, not per document, not annually unless you want support and update renewal. Prices are published on the website. No sales call required to find out the cost.
Support From the Developers
Support comes directly from the engineers who write and maintain JPedal — not a front-line ticket queue. Issues get answered by someone who can actually fix them, typically within hours.
3× Faster Than Alternatives
JPedal is typically three times faster than comparable Java PDF libraries 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 blocked by a black-box dependency.
25+ Years of PDF Expertise
IDRsolutions has been building PDF software since 1999. JPedal handles the edge cases — malformed documents, complex font rendering, legacy PDF versions — that trip up newer or less battle-tested libraries.
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 TCO
1
Proven Java PDF Expertise
25 years of deep technical knowledge delivering robust, reliable
solutions that work.
2
Direct Developer Support
Get answers directly from the actual software Developers in hours, not
weeks.
3
Long-Term Partnership Focus
Small company committed to your success, not quarterly revenue
targets.
4
Developer-First Design
Clean APIs and practical functionality over flashy features that don't
solve real problems.
5
Predictable Costs, Lasting Value
Transparent pricing with no hidden fees, plus regular updates and new
features included.
Proven Java PDF Expertise
25 years of deep technical knowledge delivering robust, reliable solutions that work.
Direct Developer Support
Get answers directly from the actual software Developers in hours, not weeks.
Long-Term Partnership Focus
Small company committed to your success, not quarterly revenue targets.
Developer-First Design
Clean APIs and practical functionality over flashy features that don't solve real problems.
Predictable Costs, Lasting Value
Transparent pricing with no hidden fees, plus regular updates and new features included.
During my evaluation the team was very helpful when answering my questions, and solved any issues I faced.
- Sohaib from SlashNext