Browse our documentation online in PDF or HTML format and get the latest release notes.
Browse our documentation online in PDF or HTML format and get the latest release notes.
The PDFreactor documentation consists of:
The documentation is included in the PDFreactor installation package, available here.
Documentation for previous versions.
Is PDFreactor a desktop application for end-users to create PDFs from any kind of documents?
No, PDFreactor is a tool designed for the automatic and high-performant creation of PDF documents on servers.
Is PDFreactor a replacement for Adobe Acrobat or similar desktop software tools?
No, PDFreactor is no replacement for Adobe Acrobat or similar desktop software tools, as PDFreactor requires a host application (e.g. ERP, database, e-Commerce) on a web server in which it is integrated. As part of the host application’s functionality PDFreactor can be used to stream PDF documents – generated from HTML or XML data – over the web.
Into what environments can I integrate PDFreactor?
PDFreactor features APIs in the following languages:
What is the typical integration scenario for PDFreactor?
Server-side PDF creation using PDFreactor as part of host applications (e.g. ERP, database, e-Commerce) on a Java web application server in order to print or stream PDF documents – generated from HTML or XML sources – over the web.
How Do I Set The License Key?
The PDFreactor license key has to be set in your PDFreactor integration. Just copy the contents of the license key file (“licensekey.txt”) and set it on the configuration object as a string like this:
Integrators that use the PDFreactor Web Service with one of the appropriate APIs can also just copy the licensekey.txt file to the “PDFreactor/jetty/lib/ext” directory where it will be used automatically by PDFreactor.
How many licenses do I need to purchase?
As written in the PDFreactor Software License Agreement a PDFreactor license can only be used on 1 (one) physical or virtual machine or isolated software container. So for each production machine you require one license.
For non-personal use, you require a CPU license. Depending on the number of CPU cores, each license consists of a number of license packs. One license pack is valid for up to 4 CPU cores.
For example, a server with 6 CPU cores requires a single PDFreactor license with two license packs. Two servers with 2 CPU cores each require two PDFreactor licenses with one license pack each.
If you are going to use PDFreactor on a non-commercial basis, you can request a Free Personal license here.
Other License Types
In addition to the CPU and Non-Commercial licenses, we also offer Corporate and OEM licenses. For information about Corporate and OEM licenses, please contact us at firstname.lastname@example.org.
What is the PDFreactor Demo Application for?
The PDFreactor Preview application, which is installed on your machine through the PDFreactor installers, is for testing and demonstration purposes only. It allows you to easily and quickly experience the capabilities of PDFreactor.
The PDFreactor Preview application offers a PDF preview. You can create each PDF document on-the-fly and save it to your computer. The document’s source code and inline style sheets (used in some of the sample documents) can be modified in order to experience the styling-based processing model of CSS.
How is PDFreactor integrated?
What is the simplest way to integrate PDFreactor using the Java API?
PDFreactor can be integrated with just these few lines of Java code:
PDFreactor pdfReactor = new PDFreactor();
Configuration config = new Configuration();
Result result = pdfReactor.convert(config);
byte pdf = result.getDocument();
See also the chapter Using the Java library in the PDFreactor Manual.
Can I run PDFreactor on a system without a graphical environment such as X11 oder Xfvb?
Yes. To run PDFreactor on a system without a graphical environment you should enable headless mode in Java. To do so, you should set the Java system property “java.awt.headless” to “true”.
How can I convert large documents when using the PDFreactor web service and one of the available wrapper APIs?
For example, to increase the memory to 2GB, change the parameter to “-Xmx2048m” and restart the web service.
How can PDFreactor connect to a server using HTTPS?
PDFreactor can connect to servers using the HTTPS protocol. However, Java requires the server’s certificate to be imported. To avoid that you can use a more convenient approach by setting the HTTPS mode of the PDFreactor configuration to “lenient”:
Are there any options to set the resolution of the generated PDFs?
PDFreactor does not create documents with a fixed resolution. Images are embedded at their original resolution while text is stored as references to the glyphs in the true type font, which makes it resolution independent. Therefore there are no “resolution” settings.
The resolution at wich PDFreactor lays out documents is 96 pixels per inch (as defined by CSS). This can be changed by using the API methods “setPixelsPerInch” and “setPixelsPerInchShrinkToFit”. Keep in mind that these do not affect lengths specified in physical units like “inch” or “cm”.
Which fonts are supported?
PDFreactor supports TrueType fonts (TTF) and OpenType fonts (OTF). The fonts are automatically embedded into the generated PDF documents. Please note that using OpenType fonts requires at least Java 7.
Which PDF version does PDFreactor produce?
The PDF version of PDF files created with PDFreactor is 1.4. Some advanced functionalities of PDFreactor may introduce elements from later versions.
PDF/A documents created with PDFreactor are conformant to the PDF/A-1a or the PDF/A-3a specification.
Do I get a discount for being an educational institute?
We offer a 30% discount for educational institutes such as schools, colleges or universities.
Do I need a license for my test and development environment?
Generally test and development servers do not have to be licensed, but only as long as they are used to develop and test the integration of PDFreactor into your application and not for the creation of production PDFs in any form.
Customers who have a valid PDFreactor license with an active 1 Year Support & Maintenance subscription are welcome to request a special PDFreactor license for test, development purposes at email@example.com. They will receive a full license key which is valid during the subscription period. Renewing can be done as often as required. You are not allowed to use your unlimited full license key on your test and development servers.
Why does PDFreactor ignore my style sheet?
This can have a variety of reasons. Please make sure that the style sheet can be reached via the specified URL. Also, PDFreactor will only apply style sheets with the media type “print” or without media type. Style sheets with media type “screen” for example will be ignored.
How do I activate SSL for the PDFreactor Web Service?
By default, the PDFreactor Web Service does provide SSL and is accessible only via HTTP. If a secure HTTPS connection is required, you can enable SSL in PDFreactor’s Jetty server by following these steps:
1. Create a Self-Signed PKCS12 Keystore
You can skip this section if you already have an SSL certificate for your Jetty server.
To create a self-signed certificate, execute the following commands on the command line (note: you will require openssl and key tool):
For simplicity you can use the same password for all commands. If you are using different passwords, make sure to use the appropriate password when configuring the “start.ini” (see below).
IMPORTANT: if you are using a self-signed certificate, some clients (especially browsers) need to accept the certificate before they can make calls over SSL to your server. These calls will fail due to security restrictions if the certificate was not accepted by the client first.
2. Import the PKCS12 Keystore in Jetty
If the Jetty keystore already exists, remove or rename it before creating the new keystore.
3. Enable SSL in Jetty
You can now use the keystore you created to configure SSL in Jetty. Since you will have to enter the password for your keystore in the “start.ini” file, we recommend creating a hash from your password first. You can do this as follows:
Now open the start.ini file (found in /PDFreactor/jetty) and edit/uncomment the following section:
# SSL Configuration
The [password] should be replaced by the hash you created using the org.eclipse.jetty.util.security.Password as described above. If you are using a MD5 hash of your password or your password in plain text instead, change the “OBF” prefix to “MD5” or remove it.
After you changed the start.ini, restart the PDFreactor Web Service like this:
sudo /PDFreactor/bin/pdfreactorwebservice restart
After restarting, you can now access the REST API of the PDFreactor Web Service securely at “https://localhost:8443/service/rest”.