产品比较

IronPDF for Java与OpenPDF的比较

发布 2023年三月10日
分享:

发现最适合您 Java 应用程序的 PDF 库。在本文中,我们将探讨 Java PDF 库如何增强您的项目,并根据其功能、许可成本和教程对排名前两位的库进行比较。过去,在 Java 中处理 PDF 文件非常具有挑战性,但随着技术的进步,现在有许多 Java API 可用于管理 PDF 文件。

我们要研究的两个库是

这两个库都能在 Java 中创建、编辑和打印 PDF 文件。在本比较中,我们将简明扼要地评估它们的综合能力、代码库和安装难易程度。

首先,让我们看看 IronPDF。

IronPDF for Java

IronPDF for Java 可创建和管理 PDF 文件。它允许开发人员读取、创建和编辑 PDF 文件,而无需使用 Adobe 软件。开发人员可以添加自定义页眉和页脚、添加签名和其他安全限制。全面的多线程和异步支持可帮助 IronPDF 在开发人员需要时实现高性能。

IronPDF 功能

IronPDF for Java 提供多种 PDF 制作和处理工具,使开发人员能够快速将其 Java 应用程序升级到最新版本。

HTML 到 PDF 转换: 该功能可生成 PDF 文档 HTML 文件、MVC 视图、Web 表单和 URL。

PDF Imaging: 该功能允许开发人员从图像中创建 PDF,并从 PDF 中提取图像。

PDF 编辑: IronPDF 可以添加水印、页眉、页脚、背景和前景,添加和删除页面等。

PDF 内容提取: IronPDF 可以从 PDF 中提取文本和图像。 (从嵌入的 PDF 图像中提取文本可能需要使用 IronOCR 库.

兼容性: IronPDF for Java 兼容 Java 8+ 以及所有现代操作系统和集成开发环境。

OpenPDF

OpenPDF 是一个开源、免费的 Java 库,具有 LGPL 和 MPL 双许可证,专门用于处理 PDF。它允许生成和处理 PDF 文档,以及编辑现有文档和提取内容。无论是创建新文档还是编辑现有文档,OpenPDF 都是处理 PDF 文档的便捷工具。

OpenPDF 功能

创建 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 安装

安装 IronPDF for Java 的过程非常简单,即使是新 Java 开发人员也能轻松上手。

要使用 IronPDF for Java,您需要一个集成开发环境。在本文中,我们将使用 JetBrains IntelliJ IDE 进行安装和示例。

首先,打开 JetBrains IntelliJ IDE 并创建一个新的 Maven 项目。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 1:JetBrains IntelliJ IDE

JetBrains IntelliJ 集成开发环境

这时会出现一个新窗口。输入项目名称,然后点击 "完成 "按钮。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 2:新项目名称

新的 JetBrains IntelliJ 项目

点击 "完成 "后,将打开一个新项目,并打开默认的 pom.xml 文件。这非常好,因为我们需要在该文件中添加 IronPDF for Java 的 Maven 依赖项。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 3:已打开 pom.xml 文件的新项目

新项目的 pom.xml 文件

在 pom.xml 文件中添加以下依赖项

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2024.9.1</version>
</dependency>

将依赖项添加到 POM.xml 文件后,POM.xml 文件的右上角会出现一个小图标。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 4:文件右上角显示的商城图标

在 IntelliJ 中,每当添加或修改依赖关系时,POM 文件的右上角就会出现一个小 Maven 图标。

点击该图标安装 IronPDF for Java 的 Maven 依赖项。此过程可能需要几分钟,具体取决于您的网络连接。

OpenPDF 安装

安装 OpenPDF 与安装 IronPDF for Java 相似。

首先,打开 JetBrains IntelliJ IDE 并创建一个新的 Maven 项目

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 5:新 Maven 项目

IntelliJ 中的新 Maven 项目

这时会出现一个新窗口。输入项目名称,然后点击 "完成 "按钮。

A Comparison Between IronPDF for Java and OpenPDF for Java - Figure 6: 新项目窗口

新项目窗口

单击 "完成 "后,将打开一个新项目,并显示默认的 pom.xml 文件。这很好,因为我们需要添加 OpenPDF 的 Maven 依赖项。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 7:在 JetBrains IDE 中打开的 pom.xml

在 IntelliJ 中,使用新建项目向导创建新项目后,pom.xml 文件会自动打开。

在 pom.xml 文件的依赖项部分添加 OpenPDF 依赖项。

<dependencies>
<dependency>
    <groupId>com.github.librepdf</groupId>
    <artifactId>openpdf</artifactId>
    <version>1.3.30</version>
</dependency>
</dependencies>
XML

添加版本库和依赖代码后,pom.xml 文件的右上角会出现一个小图标。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 8:打开 pom.xml 的 JetBrains IDE 窗口

的 pom.xml 文件。

单击图标安装 OpenPDF for Java 依赖项。几分钟后,它就会安装完毕并可供使用。

创建一个新的 PDF 文件

除了对用户的吸引力,PDF 还具有一些技术优势。PDF 文件与平台无关,可在任何操作系统或设备上阅读。它们还能保留格式和布局,确保无论谁打开文档,文档的外观都是一样的。PDF 文件还非常小巧,便于共享和存储。通过在 Java 应用程序中使用 PDF,您可以为用户提供一种高效且支持良好的文档格式,它具有广泛的功能和兼容性。

下面,我们将讨论如何使用 IronPDF 和 OpenPDF 库创建新的 PDF 文件。

使用 IronPDF 创建新的 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"));
        }
    }
JAVA
IronPDF for Java 与 OpenPDF for Java 的比较 - 图 9:打开 pom.xml 的 JetBrains IDE 窗口

使用 IronPDF 生成的 PDF

使用 OpenPDF 创建新的 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.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();
    }
}
JAVA
IronPDF for Java 与 OpenPDF for Java 的比较 - 图 10:使用 OpenPDF 生成 PDF

使用 OpenPDF 生成的 PDF

将 HTML 转换为 PDF

网页是人们经常访问的内容。有几个网站您可能需要定期查看。每次都访问网站可能不太可行。如果您需要经常访问信息,将其存储为文档会更方便,您可以随时通过手机或笔记本电脑访问。PDF 格式是一个更好的选择,因为它提供密码保护,使文档安全。

将 HTML 转换为 PDF 是 PDF 库最常用的功能之一,由于其优点,几乎每个开发人员都会使用。在本节中,我们将讨论 IronPDF for Java 和 OpenPDF 的编码示例。

使用 IronPDF 将 HTML 转换为 PDF

IronPDF 先进的渲染器可通过三种不同的方法将 HTML 无缝转换为 PDF。

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"));
    }
}
JAVA
IronPDF for Java 与 OpenPDF for Java 的比较 - 图 11:使用 IronPDF 将 HTML 输出为 PDF

使用 IronPDF 将本地 HTML 文件转换为 PDF 的结果

将 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.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"));
    }
}
JAVA
IronPDF for Java 与 OpenPDF for Java 的比较 - 图 12:使用 IronPDF 将 HTML 输出为 PDF

使用 IronPDF 将 HTML 字符串转换为 PDF 的结果

URL 到 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();
        }
    }
}
JAVA
IronPDF for Java 与 OpenPDF for Java 的比较 - 图 13:使用 IronPDF 将 HTML 输出为 PDF

使用 IronPDF 将 Amazon.com 网页转换为 PDF

使用 OpenPDF 将 HTML 转换为 PDF

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());
        }
    }
}
JAVA
A Comparison Between IronPDF for Java and OpenPDF for Java - Figure 14: 使用 OpenPDF 将 HTML 转换为 PDF

使用 OpenPDF 将 HTML 转换为 PDF

图像到 PDF 转换器

将图像转换为 PDF 有很多好处。好处之一是可以将照片转换成更易读、更易传输的格式。另一个好处是,它能在保持图像质量的同时大大缩小文件大小。

使用 IronPDF 将图像转换为 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);
        }
    }
    }
JAVA
A Comparison Between IronPDF for Java and OpenPDF for Java - Figure 15: 使用 IronPDF 将图像转换为 PDF

使用 IronPDF 将图像转换为 PDF

使用 OpenPDF 将图像转换为 PDF

OpenPDF 还提供图像到 PDF 的转换,但格式有限。

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();
    }
}
JAVA
A Comparison Between IronPDF for Java and OpenPDF for Java - Figure 16: 使用 OpenPDF 将图像转换为 PDF

使用 OpenPDF 将图像转换为 PDF

定价和许可

IronPDF for Java 是一款功能强大的 PDF 库,可用于个人和商业目的。它为开发人员提供了多种许可选项,包括单个项目许可、SaaS 和 OEM 再分发以及跨国公司许可。精简版软件包的起价为 $749 美元,其中包括永久许可证、30 天退款保证以及一年的软件支持和升级服务。IronPDF 的优势之一是没有经常性费用,这意味着一旦购买,许可证可终身使用。

IronPDF for Java 与 OpenPDF for Java 的比较 - 图 17:IronPDF 许可

IronPDF 许可证

在开发人员项目中,许可选项起着至关重要的作用。OpenPDF 是开源软件,根据 LGPL 和 MPL 开源许可证条款授权。这意味着任何使用 OpenPDF 应用程序的人 (即使是在企业网络或互联网上) 如果获得 LGPL 和 MPL 许可,则用户有权获得程序源代码的完整副本,这使其成为学术用途的理想选择。但是,对于商业项目,建议联系 OpenPDF 以估算相关费用。

结论

Java 开发人员和 IT 专业人员可以使用 IronPDF 库轻松地将 PDF 集成到他们的 Java 应用程序中。它提供了广泛的功能,包括格式化 PDF 文件、生成图表和图形、将 HTML 和图像转换为 PDF、分割和合并 PDF 文件以及修改 PDF 文档。IronPDF 支持从 Java 8 开始的所有 Java 版本以及 Java、Kotlin 和 Scala 等 JVM 语言。该库还为 PDF 文档配备了增强的安全功能。

OpenPDF 是一个开源、免费的 Java 库,采用 LGPL 和 MPL 许可。它允许创建和修改 PDF 文档,并从中提取内容。虽然 OpenPDF 对于制作新的 PDF 文档或编辑现有文档非常有用,但它在操作 PDF 文件方面的功能不如 IronPDF 多。

IronPDF 和 OpenPDF 两者之间的比较不能只看它们的授权,因为一个是商业库,而另一个是开源的。不过,就功能而言,OpenPDF 在处理 PDF 文件方面的选项有限。另一方面,IronPDF for Java 提供了一个 免费试用 供开发人员测试库及其高级功能。

与 OpenPDF 相比,IronPDF 提供了更多的功能。此外,IronPDF 还提供了大量的文档,这使得使用该库编写代码变得非常简单。OpenPDF 往往会产生冗长而复杂的代码,而且可用的文档很少。

OpenPDF 的 HTML 到 PDF 转换不适合大型 HTML 文件,也不支持 URL 到 PDF 的转换。

< 前一页
IronPDF for Java 与 Qoppa Software – Java PDF Library 的比较
下一步 >
IronPDF for Java与Spire.PDF Java的比较

准备开始了吗? 版本: 2024.9 刚刚发布

免费 Maven 下载 查看许可证 >