Get started with Java
This guide walks you through the steps to use a code example, and then explains how to integrate the Toolbox add-on into your application with the Java programming language.
Request trial or full license
The Toolbox add-on requires a license key for both evaluation and full use. To request a license key, follow these steps:
- Contact the sales team through the Contact page and mark the Toolbox add-on as the product of your interest for a trial license.
If you already have a license key and you need to copy it, review Find the license key.
Prerequisites
The Toolbox add-on for Java requires Java version 8 or higher.
Getting started with a sample project
Learn how to use the Toolbox add-on using a Java code example. The ImageExtraction example extracts all images and image masks from a PDF document. Use similar steps to run any other code example from the toolbox-examples-java repository.
Compile and run the sample
To compile and run the sample, follow these steps:
-
Clone the toolbox-examples-java repository:
git clone https://github.com/pdf-tools/toolbox-examples-java.git -
Find your license key. For more information, review Find the license key.
-
In the
ToolboxImageExtraction.javafile, replace the string"YOUR_LICENSE_KEY"with your license key:Sdk.initialize("YOUR_LICENSE_KEY", null);Use the license key in the same format you copied it. Include the less-than (
<) and greater-than (>) signs. -
Navigate to the
ImageExtractioncode example:cd toolbox-examples-java/ImageExtraction -
Create an output directory:
mkdir output_images -
Compile the Java source file:
- macOS and Linux
- Windows
javac -cp jar/com.pdftools.toolbox.jar:. ToolboxImageExtraction.javajavac -cp jar/com.pdftools.toolbox.jar;. ToolboxImageExtraction.java -
To extract all images and image masks from the sample PDF file
ImageCollection.pdfto the output directory/output_images, run the following command:- macOS and Linux
- Windows
java -cp jar/com.pdftools.toolbox.jar:bin:. ToolboxImageExtraction ImageCollection.pdf /output_imagesjava -cp jar/com.pdftools.toolbox.jar;bin;. ToolboxImageExtraction ImageCollection.pdf /output_images
The code example takes:
- The input and output files represented as a file name, a file path with the file name, or the output directory.
- Both file paths (input and output) can be relative or absolute.
Review the following snippet with a placeholder and compare it to the last step of the previous procedure:
- macOS and Linux
- Windows
java -cp jar/com.pdftools.toolbox.jar:bin:. ToolboxImageExtraction INPUT_FILE OUTPUT_DIRECTORY
java -cp jar/com.pdftools.toolbox.jar;bin;. ToolboxImageExtraction INPUT_FILE OUTPUT_DIRECTORY
You can apply a similar procedure described in this tutorial for other code examples. For more information, see Code samples page.
Integrate the SDK into your application
Integrate and initialize the Toolbox add-on into your application by following the instructions in the following sections.
Add the SDK to your project
- Maven
- Manual
The Toolbox add-on for Java is available on Maven. To add the Toolbox add-on for Java to your project, select your operating system and system architecture and add the following to your pom.xml:
- linux-x64
- osx-arm64
- osx-x64
- win-x64
- win-x86
- win-arm64
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>linux-x64</classifier>
<type>so</type>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>osx-arm64</classifier>
<type>dylib</type>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>osx-x64</classifier>
<type>dylib</type>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>win-x64</classifier>
<type>dll</type>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>win-x86</classifier>
<type>dll</type>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.pdftools</groupId>
<artifactId>toolbox</artifactId>
<version>1.5.0</version>
<classifier>win-arm64</classifier>
<type>dll</type>
</dependency>
- Download the Toolbox add-on for Java product kit, and then unzip the file.
- Add the
jarfile to your project’s classpath. - Copy the
libfolder containing the native binary files to your project, for example<project-dir>/lib.
Load the Toolbox add-on
The Toolbox add-on for Java requires you to load the underlying native binary files suitable for your operating system and system architecture at runtime.
- Maven
- Manual
There are two ways how to load the Toolbox add-on for Java with Maven:
-
If you are consuming Java libraries directly from the local Maven repository, load the native binary files using the following code:
- linux-x64
- osx-arm64
- osx-x64
- win-x64
- win-x86
- win-arm64
System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-linux-x64.so");System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-osx-arm64.dylib");System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-osx-x64.dylib");System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-win-x64.dll");System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-win-x86.dll");System.load(System.getProperty("user.home") + "/.m2/repository/com/pdftools/toolbox/1.5.0/toolbox-1.5.0-win-arm64.dll"); -
Alternatively, use the system library path:
-
Add the Toolbox add-on
libdirectory to the system library path.- Windows: Environment variable
PATH - Linux and macOS: Defined by
LD_LIBRARY_PATH - Or specify the path using the VM arg
-Djava.library.path=.
- Windows: Environment variable
-
Load the library using:
- linux-x64
- osx-arm64
- osx-x64
- win-x64
- win-x86
- win-arm64
System.loadLibrary("toolbox-1.5.0-linux-x64");System.loadLibrary("toolbox-1.5.0-osx-arm64");System.loadLibrary("toolbox-1.5.0-osx-x64");System.loadLibrary("toolbox-1.5.0-win-x64");System.loadLibrary("toolbox-1.5.0-win-x86");System.loadLibrary("toolbox-1.5.0-win-arm64");
-
In the default configuration of the Toolbox add-on, the lib directory has the following structure:
lib
├── linux-x64
├── osx-arm64
├── osx-x64
├── win-x64
└── win-x86
└── win-arm64
If you are using the default directory structure, load the library from the respective subfolder in lib directory appropriate for your operating system and system architecture.
There are two ways to load the Toolbox add-on for Java manually:
-
Load the Toolbox add-on using the system library path:
-
Add the directory for your operating system to the system library path.
- Windows: environment variable
PATH. - Linux and macOS: defined by
LD_LIBRARY_PATH. - Specify the path using the Java VM argument
-Djava.library.path=.
- Windows: environment variable
-
Load the library from the system’s library path by using:
System.loadLibrary("PdfTools_Toolbox");
-
-
Alternatively, load the Toolbox add-on by specifying the absolute path:
- linux-x64
- osx-arm64
- osx-x64
- win-x64
- win-x86
- win-arm64
System.load(new File("lib/linux-x64/libPdfTools_Toolbox.so").getAbsolutePath());System.load(new File("lib/osx-arm64/libPdfTools_Toolbox.dylib").getAbsolutePath());System.load(new File("lib/osx-x64/libPdfTools_Toolbox.dylib").getAbsolutePath());System.load(new File("lib/win-x64/PdfTools_Toolbox.dll").getAbsolutePath());System.load(new File("lib/win-x86/PdfTools_Toolbox.dll").getAbsolutePath());System.load(new File("lib/win-arm64/PdfTools_Toolbox.dll").getAbsolutePath());
Note the difference between:
System.load(..): Loads the library from an absolute file path.System.loadLibrary(..): Load the library from the system’s library path.
If you are shipping your application, ensure to ship it with the native binary files.
Note that you must load the native binary files from the file system and cannot load them from within a jar file or other bundle.
Initialize the SDK
The Toolbox add-on always requires a license key to operate (unlike the Pdftools SDK). Without a valid license, every Toolbox add-on function call fails with LicenseError: No license key was set.
Contact the Pdftools sales team through the Contact page to get a full license.
To initialize the Toolbox add-on with your license key, follow these steps:
-
Find your license key. For more information, review Find the license key.
-
Call
Sdk.initializeonce at application startup, before any other Toolbox add-on method call:Sdk.initialize("YOUR_LICENSE_KEY", null);Replace
YOUR_LICENSE_KEYwith your license key. Use the license key in the same format you copied it. Include the less-than (<) and greater-than (>) signs.
To get a working reference with the Sdk.initialize method, follow these steps:
- On the Code samples page, clone a sample repository. For example, clone toolbox-examples-java and navigate to
toolbox-examples-java/ImageExtraction. - Find the
Sdk.initializemethod in the main Java file of the sample. For example: Extract all images and image masks from a PDF sample includesSdk.initializemethod in theToolboxImageExtraction.javafile. - Replace the
"insert-license-key-here"placeholder in the sample with your license key. Include the less-than (<) and greater-than (>) signs.
Implement your use case
- Find more use cases and code examples on the Code samples page.
- For more technical information about the Toolbox add-on for Java, consult the Java technical notes.