在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
发现最适合您 Java 应用程序的 PDF 库。 在本文中,我们将探讨 Java PDF 库如何增强您的项目,并根据其功能、许可成本和教程对排名前两位的库进行比较。 过去,在 Java 中处理 PDF 文件具有挑战性,但随着技术的进步,现在有许多 Java API 可用于管理 PDF 文件。
我们要研究的两个库是
这两个库都能用 Java 创建、编辑和打印 PDF 文件。 在本比较中,我们将简明扼要地评估它们的综合能力、代码库和安装便捷性。
首先,让我们来看看 IronPDF。
IronPDF for Java 可创建和管理 PDF 文件。 它允许开发人员阅读、创建和编辑 PDF 文件,而无需使用 Adobe 软件。 开发人员可以添加自定义页眉和页脚、添加签名和其他安全限制。 全面的多线程和异步支持有助于 IronPDF 在开发人员需要时实现高性能。
IronPDF for Java 提供了多种 PDF 制作和操作工具,使开发人员能够快速将他们的 Java 应用程序升级。
HTML 到 PDF 转换: 该功能可从 HTML 文件、MVC 视图、Web 表单和 URL 生成 PDF 文档。
PDF Imaging: 该功能允许开发人员从图像中创建 PDF 并从 PDF 中提取图像。
PDF 编辑: IronPDF 可以添加水印、页眉、页脚、背景和前景,添加和删除页面等。
PDF 内容提取: IronPDF 可从 PDF 中提取文本和图像(从嵌入的 PDF 图像中提取文本可能需要使用IronOCR 库).
兼容性: IronPDF for Java 兼容 Java 8+ 以及所有现代操作系统和集成开发环境。
OpenPDF 是一个开源、免费的 Java 库,具有 LGPL 和 MPL 双许可证,专门用于处理 PDF。 它允许生成和处理 PDF 文档,以及编辑现有文档和提取内容。 无论是创建新文档还是编辑现有文档,OpenPDF 都是处理 PDF 文档的便捷工具。
创建 PDF 和打印: OpenPDF 可让您从头开始创建新的 PDF 文档,并使用 Java 打印 API 打印 PDF 文件。
拆分与合并: OpenPDF 可将一个 PDF 拆分为多个文件,或将多个 PDF 文件合并为一个 PDF 文件。
提取文本: OpenPDF 可让您从 PDF 文件和 PDF 表单中提取文本。
签名: OpenPDF 还允许其开发人员对 PDF 进行数字签名。
保存为图像: OpenPDF 可将 PDF 保存为 JPEG 或 PNG 等图像文件。
Office to PDF: OpenPDF 可将 MS Word、MS PowerPoint 和 MS Excel 转换为 PDF 文档。
解析 HTML: 它还提供将 HTML 文件解析为 PDF 文件的功能。
安装 IronPDF for Java 是一个简单明了的过程,即使是新的 Java 开发人员也不例外。
要使用 IronPDF for Java,您需要一个集成开发环境。在本文中,我们将使用 JetBrains IntelliJ IDE 进行安装和示例。
首先,打开 JetBrains IntelliJ IDE 并创建一个新的 Maven 项目。
一个新窗口将会出现。 输入项目名称并单击 "完成 "按钮。
单击 "完成 "后,将打开一个新项目,并打开默认的 pom.xml 文件。 这很好,因为我们需要在此文件中添加 IronPDF for Java 的 Maven 依赖项。
在 pom.xml 文件中添加以下依赖项
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.9.1</version>
</dependency>
将依赖项添加到 POM.xml 文件后,POM.xml 文件的右上角会出现一个小图标。
点击此图标安装IronPDF for Java的Maven依赖。 这个过程可能需要几分钟,具体取决于您的网络连接。
安装 OpenPDF 与安装 IronPDF for Java 相似。
首先,打开 JetBrains IntelliJ IDE 并创建一个新的 Maven 项目
一个新窗口将会出现。 输入项目名称并单击 "完成 "按钮。
单击 "完成 "后,将打开一个新项目,并显示默认的 pom.xml 文件。 这很好,因为我们需要添加 OpenPDF 的 Maven 依赖项。
在 pom.xml 文件的依赖项部分添加 OpenPDF 依赖项。
<dependencies>
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.30</version>
</dependency>
</dependencies>
添加版本库和依赖代码后,pom.xml 文件的右上角会出现一个小图标。
单击图标安装 OpenPDF for Java 依赖项。 几分钟后,即可安装并投入使用。
除了对用户有吸引力之外,PDF 还具有一些技术优势。 PDF 文件与平台无关,可在任何操作系统或设备上阅读。它们还保留了格式和布局,确保无论谁打开文档,文档的外观都是一样的。 PDF 文件也很小巧,便于共享和存储。 通过在 Java 应用程序中使用 PDF,您可以为用户提供一种高效且支持良好的文档格式,它具有广泛的功能和兼容性。
在此,我们将讨论如何使用 IronPDF 和 OpenPDF 库创建新的 PDF 文件。
使用 IronPDF for Java 创建和编辑 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> ~Hello World~ </h1> Made with IronPDF!");
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
使用 OpenPDF 可以创建新的 PDF 文件,下图是用于创建 PDF 文件的代码:
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.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();
}
}
网页是人们经常访问的内容。 您可能需要定期查看几个网站。 每次访问网站可能并不可行。 如果您需要经常访问信息,将其存储为可随时通过手机或笔记本电脑访问的文档会更方便。PDF 格式是一个更好的选择,因为它提供了密码保护功能,使文档更加安全。
将 HTML 转换为 PDF 是 PDF 库最常用的功能之一,由于其优点,几乎每个开发人员都会使用。 在本节中,我们将讨论 IronPDF for Java 和 OpenPDF 的编码示例。
IronPdf 最先进的渲染器可通过三种不同的方法将 HTML 无缝转换为 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.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();
}
}
}
IronPDF 库提供先进的渲染功能,可通过三种不同方式将 HTML 转换为 PDF,实现无缝转换体验。
另一方面,OpenPDF 只提供了将 HTML 文件解析为 PDF 文件的选项,缺少将 URL 转换为 PDF 的关键功能,这可能使其与其他库相比处于劣势。
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());
}
}
}
最好能将图片转换为 PDF 格式。 这样做的好处之一是,您可以将照片制作成更清晰易懂、更易于传播的格式。 这样做的另一个好处是,在保持图像质量的同时大大减小了文件大小。
使用 IronPDF,您可以轻松地将任何图像格式转换为 PDF 文件。
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 还提供图像到 PDF 的转换,但格式有限。 这些格式为 PNG、JPG 和 TIFF。
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
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 是一个功能强大的 PDF 库,可用于个人和商业目的。 它为开发人员提供了多种许可选项,包括单个项目许可、SaaS 和 OEM 再分发以及跨国公司许可。 Lite 软件包的起价为 $749 美元,其中包括永久许可证、30 天退款保证以及一年的软件支持和升级服务。 IronPDF 的优势之一是没有经常性费用,这意味着一旦购买,许可证可以终身使用。
在开发人员项目中,许可选项起着至关重要的作用。 OpenPDF 是开源软件,采用 LGPL 和 MPL 开源许可证条款。 这意味着使用 OpenPDF 应用程序的任何人(即使是在企业网络或互联网上)如果获得 LGPL 和 MPL 许可,您将有权获得程序源代码的完整副本,这使其成为学术用途的理想选择。 但是,对于商业项目,我们建议您联系 OpenPDF 以估算相关费用。
Java 开发人员和 IT Professional 可以使用 IronPDF 库轻松地将 PDF 集成到他们的 Java 应用程序中。 它提供了广泛的功能,包括格式化 PDF 文件、生成图表和图形、将 HTML 和图像转换为 PDF、分割和合并 PDF 文件以及修改 PDF 文档。 IronPDF for Java 支持从 Java 8 开始的所有 Java 版本,也支持 Java、Kotlin 和 Scala 等 JVM 语言。 该库还为 PDF 文档配备了增强的安全功能。
OpenPDF 是一个开源、免费的 Java 库,采用 LGPL 和 MPL 许可。 它可以创建和修改 PDF 文档,并从中提取内容。 尽管 OpenPDF 对于制作新的 PDF 文档或编辑现有文档非常有用,但它在操作 PDF 文件方面的功能不如 IronPDF 多。
IronPDF 和 OpenPDF 无法仅根据其授权进行比较,因为一个是商业库,另一个是开源库。 然而,就功能而言,OpenPDF 在处理 PDF 文件方面的选项有限。 另一方面,IronPDF for Java 提供了一个免费试用许可证在翻译过程中,译者还必须为开发人员提供一个测试库及其高级功能的平台。
IronPDF 提供比 OpenPDF 更多的功能。 此外,IronPdf 提供了大量的文档,这使得使用该库编写代码变得非常简单。 OpenPDF 往往会产生冗长而复杂的代码,而且可用的文档很少。
OpenPDF 的 HTML 到 PDF 转换不适合大型 HTML 文件,也不支持 URL 到 PDF 的转换。