This is an unreleased development preview and may change without notice.

Dependencies

PDFBox has the following basic dependencies:

Commons Logging is a generic wrapper around different logging frameworks, so you'll either need to also use a logging library like log4j or let commons-logging fall back to the standard java.util.logging API included in the Java platform.

Optional components

PDFBox does not ship with all features enabled. Third party compoenets are necessary to get full support for certain functionality.

JAI Image I/O

PDF supports embedded image files, however support for some formats require third party libraries which are distributed under terms incompatible with the Apache 2.0 license:

These libraries are optional and will be loaded if present on the classpath, otherwise support for these image formats will be disable and a warning will be logged when an unsupported image is encountered.

Maven dependencies for these components can be found in parent/pom.xml. Please make sure that any third party licenses are suitable for your project.

Encryption and Signing

Encrypting and sigining PDFs requires the bcprov and bcmail libraries from the Legion of the Bouncy Castle. These can be included in your Maven project using the following dependencies:

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15on</artifactId>
    <version>1.53</version>
</dependency>

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcmail-jdk15on</artifactId>
    <version>1.53</version>
</dependency>

Java Cryptography Extension (JCE)

256-bit AES encryption requires a JDK with "unlimited strength" cryptography, which requires extra files to be installed. For JDK 7, see Java Cryptography Extension (JCE). If these files are not installed, building PDFBox will throw an exception with the following message:

JCE unlimited strength jurisdiction policy files are not installed