Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
Discover the Best PDF Library for Your Java Application. In this article, we'll explore how a Java PDF library can enhance your project and compare the top two libraries based on their features, licensing costs, and their tutorials. In the past, working with PDF files in Java was challenging, but with technological advancements, there are now numerous Java APIs available for managing them.
The two libraries that we'll be examining are:
Both libraries offer the ability to create, edit, and print PDF files in Java. In this comparison, we'll concisely evaluate their combined capabilities, codebase, and ease of installation.
First, let's take a look at IronPDF.
IronPDF for Java creates and manages PDF files. It allows developers to read, create, and edit PDF files without the need for Adobe software. Developers can add custom headers and footers, add signatures, and other security restrictions. Full multithreading and asynchronous support help IronPDF achieve high performance when developers need it.
IronPDF for Java offers several PDF production and manipulation tools, allowing developers to quickly bring their Java applications up to speed.
HTML-to-PDF Conversions: This feature enables the generation of PDF documents HTML files, MVC views, web forms, and URLs.
PDF Imaging: This feature allows developers to create PDFs from images and to extract images from PDFs.
PDF Editing: IronPDF can add watermarks, headers, footers, backgrounds, and foregrounds, add and remove pages, and more.
PDF Content Extraction: IronPDF can extract text and images from PDFs (extracting text from embedded PDF images could require the use of the IronOCR library.
Compatibility: IronPDF for Java is compatible with Java 8+ and all modern operating systems and IDEs.
OpenPDF is an open-source, free Java library with a dual LGPL and MPL license, specifically designed for working with PDFs. It allows for the generation and manipulation of PDF documents, as well as editing existing documents and extracting content. OpenPDF is a convenient tool when working with PDF documents, whether creating new ones or editing existing ones.
Create PDFs and Print: OpenPDF lets you create new PDF documents from scratch and to use the Java printing API to print a PDF file.
Split and Merge: OpenPDF can split a single PDF into many files or merge multiple PDF files into a single PDF file.
Extract Text: OpenPDF let you extract text from PDF files and PDF form.
Signing: OpenPDF also lets its developers digitally sign a PDF.
Save as Image: OpenPDF can save PDFs as image files, such as JPEG or PNG.
Office to PDF: OpenPDF can convert MS Word, MS PowerPoint and MS Excel to PDF documents.
Parsing HTML: It also offers to Parse HTML file into PDF file.
Installing IronPDF for Java is a straightforward process, even for new Java developers.
To use IronPDF for Java, you'll need an IDE. In this article, we'll use JetBrains IntelliJ IDE for installation and examples.
To start, open JetBrains IntelliJ IDE and create a new Maven project.
A new window will appear. Enter the name of the project and click on the 'Finish' button.
After clicking 'Finish', a new project will open and the default pom.xml file will be opened. This is great because we need to add the Maven dependencies of IronPDF for Java to this file.
Add the following dependencies to the pom.xml file.
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.9.1</version>
</dependency>
Once you add the dependencies to the POM.xml file, a small icon will appear in the upper right corner of the POM.xml file.
Click on this icon to install the Maven dependencies of IronPDF for Java. This process can take a few minutes, depending on your internet connection.
Installing OpenPDF is similar to the installation of IronPDF for Java.
To start, open JetBrains IntelliJ IDE and create a new Maven project
A new window will appear. Enter the name of the project and click on the 'Finish' button.
After clicking 'Finish', a new project will open and the default pom.xml file will be displayed. This is good, as we need to add the Maven dependencies of OpenPDF.
Add the OpenPDF dependency to the dependencies section of the pom.xml file.
<dependencies>
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.30</version>
</dependency>
</dependencies>
When you add the repository and dependency code, a small icon will appear in the top right corner of the pom.xml file.
Click on the icon to install the OpenPDF for Java dependencies. After a few minutes, it will be installed and ready for use.
In addition to user appeal, PDF also offers several technical benefits. PDF files are platform independent and can be read on any operating system or device. They also preserve formatting and layout, ensuring that the document appears the same no matter who opens it. PDF files are also compact and can be easily shared and stored. By using PDF in your Java application, you can provide your users with an efficient and well-supported document format that offers a wide range of functionality and compatibility.
Here, we will discuss how to create a new PDF file using both IronPDF and OpenPDF libraries.
Creating and editing PDF files using IronPDF for Java is easy and only requires a few lines of code. The following is an example:
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
Creating a new PDF file can be done Using OpenPDF, shown below is the code used to do just that:
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfName;
import com.lowagie.text.pdf.PdfString;
import com.lowagie.text.pdf.PdfWriter;
public class main {
/**
* Generates a PDF file with the text 'Hello World'
*/
public static void main(String [] args) {
System.out.println("Hello World");
Document document = new Document();
try {
PdfWriter.getInstance(document,
new FileOutputStream("HelloWorld.pdf"));
document.open();
document.add(new Paragraph("Hello World"));
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
}
Web pages are frequently accessed by people. There are several sites that you may want to check regularly. Visiting the website every time may not be feasible. If you need to access the information frequently, it's more convenient to store it as a document that you can access anytime from your phone or laptop. PDF format is a better option as it provides the benefits of password protection, making the document secure.
Converting HTML to PDF is one of the most commonly used features of PDF libraries and is used by almost every developer due to its benefits. In this section, we will discuss the coded examples for both IronPDF for Java and OpenPDF.
IronPDF's state-of-the-art renderer provides seamless conversion of HTML to PDF in three different methods.
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("index.html");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> Example of HTML to PDF using IronPDF for Java </h1> IronPDF for java is robust Java API for creating, converting and manipulating PDF files");
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
try {
myPdf.saveAs(Paths.get("url.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
The IronPDF library offers advanced rendering capabilities for converting HTML to PDF in three different ways for a seamless conversion experience.
On the other hand, OpenPDF only provides the option for parsing HTML files to PDF files, lacking the crucial feature of converting URL to PDF, which could put it at a disadvantage compared to other libraries.
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.html.HtmlParser;
import com.lowagie.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.io.IOException;
public class main {
/**
* Generates an HTML page with the text 'Hello World'
*
* @param args no arguments needed here
*/
public static void main(String [] args) {
System.out.println("Parse Hello World");
try (Document document = new Document()) {
PdfWriter.getInstance(document, new FileOutputStream("contact.pdf"));
document.open();
HtmlParser.parse(document, main.class.getClassLoader().getResourceAsStream("contact.html"));
} catch (DocumentException | IOException de) {
System.err.println(de.getMessage());
}
}
}
Converting images to PDF is advantageous. One benefit is that you can make photographs into a more legible and transferable format. Another benefit is that it significantly reduces the file size while maintaining image quality.
Using IronPDF, you can easily convert any image format into PDF file.
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class main {
public static void main(String [] args) {
Path imageDirectory = Paths.get("assets/images");
List<Path> imageFiles = new ArrayList<>();
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
for (Path entry : stream) {
imageFiles.add(entry);
} PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
} catch (IOException exception) {
throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
imageDirectory,
exception.getMessage()),
exception);
}
}
}
OpenPDF also offers image to PDF conversion but on limited formats. these formats are PNG, JPG, and TIFF.
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class main {
public static void main(String [] args) {
System.out.println("Images");
// step 1: creation of a document-object
Document document = new Document();
try {
// step 2:
// we create a writer that listens to the document
// and directs a PDF-stream to a file
PdfWriter.getInstance(document, new FileOutputStream("Images.pdf"));
// step 3: we open the document
document.open();
// step 4:
document.add(new Image("11.png") {
});
Image jpg = Image.getInstance("11.png");
}
catch(DocumentException | IOException de) {
System.err.println(de.getMessage());
}
// step 5: we close the document
document.close();
}
}
IronPDF for Java is a powerful PDF library that can be used for both personal and commercial purposes. It offers a variety of licensing options for developers, including single project licenses, SaaS and OEM redistribution, and licenses for multinational corporations. The cost of the Lite package starts at $749 USD, which includes a perpetual license, 30-day money-back guarantee, and a year of software support and upgrades. One of the advantages of IronPDF is that it has no recurring costs, meaning that once purchased, the license can be used for lifetime use.
In developer projects, licensing options play a crucial role. OpenPDF is open-source software, licensed under the terms of the LGPL and MPL open-source license. This means that anyone using an application that utilizes OpenPDF (even over a business network or the internet) may be entitled to a complete copy of the program's source code if licensed under LGPL and MPL, making it ideal for academic purposes. However, for commercial projects, it's always recommended to contact OpenPDF for an estimate of any associated costs.
Java developers and IT professionals can easily integrate PDF into their Java applications using the IronPDF library. It offers a wide range of features, including formatting PDF files, generating charts and graphs, converting HTML and images to PDF, splitting and merging PDF files, and modifying PDF documents. IronPDF supports all Java versions starting from Java 8 and also JVM languages such as Java, Kotlin, and Scala. The library is also equipped with enhanced security features for PDF documents.
OpenPDF is an open-source, free Java library with an LGPL and MPL license. It allows for the creation and modification of PDF documents and extraction of content from them. Although OpenPDF is useful for producing new PDF documents or editing existing ones, it does not have as many features as IronPDF for manipulating PDF files.
It's not possible to compare IronPDF and OpenPDF solely based on their licensing, as one is a commercial library and the other is open-source. However, in terms of features, OpenPDF has limited options for manipulating PDF files. On the other hand, IronPDF for Java provides a free trial for developers to test the library and its advanced features.
IronPDF offers many more features than OpenPDF. Additionally, IronPDF provides a large amount of documentation, which makes writing code with the library very straightforward. OpenPDF tends to produce lengthy and complex code, and there is very little documentation available for it.
OpenPDF's HTML to PDF conversion is not suitable for large HTML files and it does not support URL to PDF conversion.
9 .NET API products for your office documents