View, Convert, Print and Process PDF Files in Java

JPedal is a Java PDF Library that makes it easy for developers to display, convert, print and parse PDF files in Java.

What problems do Developers solve with JPedal?

JPedal makes it much easier to work with PDF files from Java. Common tasks can all be solved with a few lines of code pasted into your application. And because IDRsolutions have been actively developing the software for over 20 years, it works with all those problem PDF files out there.

Convert PDF to Image or Thumbnail

JPedal provides a completely automated solution to convert PDF to image at any size in multiple image file formats.

Find out how→
View PDF Documents

JPedal's Java Swing PDF Viewer makes light work of multi-page display, searching, printing and annotation editing.

Find out how→
Print PDF Documents

JPedal fully supports Java Printing Services and will print to any printer installed on a server with Java 8 or later.

Find out how→
Extract Text from PDF

JPedal includes tools to allow you to extract text from PDF files.

Find out how→
Extract Images from PDF

JPedal allows you to Extract Images from PDF at the highest possible quality.

Find out how→
Search Text inside PDF Files

JPedal allows you to search PDF files for any text string (with support for wildcards and Regular Expressions) from Java.

Find out how→
Access PDF Metadata

JPedal provides access to PDF file metadata including document properties, page sizes, outlines, page count, etc

Find out how→
Read PDF Form data

JPedal supports both XFA and AcroForms and can directly access PDF forms data in Java.

Find out how→
Add and Edit Annotations

JPedal can add and edit the full range of PDF Annotations in PDF files.

Find out how→
Merge/Split PDF Documents

JPedal can delete pages from a PDF document and also merge or split existing documents.

Find out how→
Fix poor PDF files

JPedal has an optimiser which can remove unused pages and fix lots of issues found in broken or poorly created PDF files.

Find out how→
Keep content secure

JPedal runs on your computers. It makes no calls out or uses any third party libraries. So your files are always secure.

Find out how→

Who else uses JPedal?

Adobe
Jive
Interwork
Abacus
IText
DigiSigner
Stampli
Versitech

How It Works

It solves the following problems with addition of just a few lines of code:

ExtractClippedImages.writeAllClippedImagesToDir("inputFileOrDirectory", "outputDir", "outputImageFormat", new String[] {"imageHeightAsFloat", "subDirectoryForHeight"});
ExtractTextAsWordList.writeAllWordlistsToDir("inputFileOrDirectory", "outputDir", -1);
Viewer viewer = new Viewer();
viewer.setupViewer();
viewer.executeCommand(ViewerCommands.OPENFILE, "pdfFile.pdf");
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);

What do other developers think?

Why buy JPedal?

Performance and Reliability

JPedal is typically 3-4 times faster than alternatives and includes lots of optimisations to improve performance and reduce memory usage.

Easy Setup and Integration

JPedal includes lots of sample code and APIs for easy integration into your code. Adding a feature into your code is usually cutting and pasting 2-3 lines of code.

Simple Licensing Terms

JPedal can be used on a server or OEM license basis for a one-off fee with optional yearly support and access renewal. We tell you the prices on our website.

Premium Support

Support is provided quickly and directly by our in-house JPedal Developers on email or via our online portal.

Modern Java usage

JPedal uses Java 8 as a minimum whilst also taking advantage of later versions using Java's multi-release jar functionality.

Source Code Access

JPedal OEM customers get full source code access to JPedal as well as the binary jar.

No third party libraries

JPedal does not use any third party Java libraries so there are no issues from security flaws in other software.

Run on-premise or in cloud

JPedal can be run on your servers (it does require an internet connection) or setup on a Cloud server.

Regular releases

JPedal has a nightly build for critical fixes/testing, and we test/release a new stable build every 6 weeks.

Are you ready to try JPedal now?