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 does JPedal solve?

Our JPedal customers tell us the top 3 reasons they buy JPedal over commercial and free alternatives are:-

Display PDF files in Java

JPedal provides a complete Java PDF Viewer which is easy to integrate and customise into your Java applications.

Convert PDF to image

JPedal includes a Java PDF Renderer which converts PDF Documents into image files in multiple image formats.

File security

JPedal runs on your Computers. It is not a cloud service and makes no calls outside. So your customer files are always secure.

What do other developers think?

Who else uses JPedal?

Adobe
Jive
Interwork
Abacus
IText
DigiSigner
Stampli
Versitech

How It Works

Add the IDRsolutions repository to your pom.xml file:

CopyCopied!
<repositories>
    <repository>
        <id>IDRsolutions</id>
        <name>IDR Solutions</name>
        <url>https://maven.idrsolutions.com</url>
    </repository>
</repositories>
                

Add the JPedal dependency to your pom.xml file:

CopyCopied!
<dependencies>
    <dependency>
        <groupId>com.idrsolutions</groupId>
        <artifactId>jpedal-trial</artifactId>
        <version>2023.01</version>
    </dependency>
</dependencies>
                

Add the IDRsolutions repository to your build.gradle file:

CopyCopied!
repositories {
    maven {
       url = "https://files.idrsolutions.com/dl/maven/"
    }
}
                

Add the JPedal dependency to your build.gradle file:

CopyCopied!
dependencies {
    implementation 'com.idrsolutions:jpedal-trial:2023.01'
}
 
 
                

Your download has started

Join our Discord server if you have any questions

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

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

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 inhouse JPedal Developers on email or via our online portal.

Modern Java usage

JPedal has a modern codebase which 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.

Are you ready to try JPedal now?

Add the IDRsolutions repository to your pom.xml file:

CopyCopied!
<repositories>
    <repository>
        <id>IDRsolutions</id>
        <name>IDR Solutions</name>
        <url>https://maven.idrsolutions.com</url>
    </repository>
</repositories>
                

Add the JPedal dependency to your pom.xml file:

CopyCopied!
<dependencies>
    <dependency>
        <groupId>com.idrsolutions</groupId>
        <artifactId>jpedal-trial</artifactId>
        <version>2023.01</version>
    </dependency>
</dependencies>
                

Add the IDRsolutions repository to your build.gradle file:

CopyCopied!
repositories {
    maven {
       url = "https://files.idrsolutions.com/dl/maven/"
    }
}
                

Add the JPedal dependency to your build.gradle file:

CopyCopied!
dependencies {
    implementation 'com.idrsolutions:jpedal-trial:2023.01'
}
 
 
                

Your download has started

Join our Discord server if you have any questions