产品比较

IronPDF For Java与iTextPDF itext7 for Java的比较

Kannaopat Udonpant
坎那帕·乌东攀
2023年一月15日
分享:

如今,由于技术的不断进步,开发人员可以从更好的解决方案中获益。

软件开发流程的未来在于自动化。 长期以来,PDF 文件一直是开发人员的难题。 当处理PDF时(即制作内容和将其他格式的内容转换为PDF),需要考虑许多因素。 随着大量旨在帮助读取、编写、创建甚至转换多种格式 PDF 的库的开发,这些需求现已得到满足。

本文将比较两个最受 Java 开发人员欢迎的用于编辑、打印和创建 PDF 文件的 PDF 库:

  • IronPDF Java Library:一个专注于从HTML生成PDF的Java PDF库。
  • ITextPDF 库:Java 优先的开源库,专注于使用可编程 API 生成 PDF。

    在介绍转换和处理 PDF 的性能费用之前,我们将研究这两个库的功能,以便确定哪个库最适合您的应用程序。 此外,还将记录每个库的持续时间,以便日后研究。

安装 IronPDF for Java

要安装IronPDF for Java,只需将其声明为依赖项即可。 要将IronPDF定义为依赖项,请在您的pom.xml中添加以下内容:

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

注意:您可以手动下载 .jar:

  1. 访问 IronPDF for Java Maven Repository 以进入 Maven Repo 页面。

  2. 提取压缩文件的内容。

  3. 创建一个文件夹并复制 zip 文件夹中的内容。

  4. 打开 Eclipse IDE。

  5. 创建一个新的 Java 项目。

  6. 在类路径中添加 IronPDF .jar 文件。

  7. 完成项目创建向导。 就是这样!

IronPDF 功能

借助强大的 IronPDF PDF 库,开发人员可以快速制作、阅读和处理 PDF。 IronPDF 以 Chrome 引擎为核心,提供大量实用而强大的功能,包括将 HTML5、JavaScript、CSS 和图像文件转换为 PDF 的能力。 IronPdf 还能添加独特的页眉和页脚,并能精确地按照网页浏览器中的显示方式创建 PDF 文件。 IronPdf 支持各种网页格式,包括 HTML、ASPX、Razor View 和 MVC。 IronPDF 的主要属性如下:

  • 使用 Java 程序轻松创建、阅读和编辑 PDF、
  • 从任何具有用户代理、代理、Cookie、HTTP 标头和表单变量设置的网站 URL 链接创建 PDF,以支持使用 HTML 登录表单进行登录、
  • 删除已有 PDF 出版物中的照片、
  • 在 PDF 中添加文本、照片、书签、水印和其他元素、
  • 合并和分割多个 PDF 文档的页面、
  • 将媒体类型文件(包括 CSS 文件)转换为文档。

安装 ITextPDF Java

ITextPDF 可在iTextPDF 网站免费下载。 该库根据 AGPL 软件许可模式开源。

要将iText库添加到您的应用程序中,请在pom.xml文件中包含以下Maven仓库。

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.2</version>
</dependency>
XML

直接下载 iTextPDF .jar 文件,直接下载 slf4j.jar 文件。 要使用这些库,请将 iTextPDF .jar 文件添加到系统的类路径中。

IText 库功能

  • 从 HTML、XML 和图像(png、jpg 等)创建 PDF
  • 在 PDF 文档中添加书签、页码和标记
  • 将一个 PDF 文件拆分为多个 PDF 文件,或将多个 PDF 文件合并为一个 PDF 文件
  • 以编程方式编辑 PDF 表单
  • 为 PDF 添加文本、图像和几何图形

使用 iTextPDF Java 将 HTML 字符串转换为 PDF

在 iText for Java 中,HTMLConverter 是用于将 HTML 转换为 PDF 的主要类。

HTMLConverter中有三个主要方法:

  • convertToDocument,返回一个Document对象
  • convertToElements,返回一个 IElement 对象的列表
  • convertToPdf 处理将 HTML 内容转换为 PDF。 此方法接受 HTML 输入作为StringFileInputStream,并返回FileOutputStreamDocument对象。
package com.hmkcode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.html2pdf.HtmlConverter;

public class App 
{
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href="hmkcode.com">hmkcode.com</a>";

    public static void main( String [] args ) throws FileNotFoundException, IOException  
    {
    HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));

        System.out.println( "PDF Created!" );
    }
}
JAVA
IronPDF For Java 与 iTextPDF itext7 for Java 的比较 - 图1

使用 IronPDF for Java 将 HTML 字符串转换为 PDFs

IronPDF中的PdfDocument类提供了多个静态方法,可以让Java开发人员从各种来源生成HTML文本。 其中一种方法是PdfDocument.renderHtmlAsPdf方法,它将HTML标记字符串转换为PDF文档。


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

使用 ITextPDF Java 将 HTML 文件转换为 PDF

convertToPdf 方法可以用于将任何 HTML 文件转换为 PDF。

图像和 CSS 文件可以包含在 HTML 文件中。不过,它们必须在 HTML 文件中的相同位置。我们可以使用 ConverterProperties 类来设置引用的 CSS 和图像的基础路径。 当 HTML 文件资产位于不同的目录中时,这将非常有用。

考虑包含以下标记的 index.html。

<html>
<head>
    <title>HTML to PDF</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <h1>HTML to PDF</h1>
    <p>
        <span class="itext">itext</span> 7.1.9 
        <span class="description"> converting HTML to PDF</span>
    </p>
    <table>
        <tr>
            <th class="label">Title</th>
            <td>iText - Java HTML to PDF</td>
        </tr>
        <tr>
            <th>URL</th>
            <td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
        </tr>
    </table>
</body>
</html>
<html>
<head>
    <title>HTML to PDF</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <h1>HTML to PDF</h1>
    <p>
        <span class="itext">itext</span> 7.1.9 
        <span class="description"> converting HTML to PDF</span>
    </p>
    <table>
        <tr>
            <th class="label">Title</th>
            <td>iText - Java HTML to PDF</td>
        </tr>
        <tr>
            <th>URL</th>
            <td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
        </tr>
    </table>
</body>
</html>
HTML

下面的源代码可将 index.html 文件转换为 PDF 文件:

package com.hmkcode;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.html2pdf.HtmlConverter;

public class App 
{
    public static void main( String [] args ) throws FileNotFoundException, IOException  
    {
    HtmlConverter.convertToPdf(new FileInputStream("index.html"), 
            new FileOutputStream("index-to-pdf.pdf"));

        System.out.println( "PDF Created!" );
    }
}
JAVA
IronPDF For Java与iTextPDF itext7 for Java的比较 - 图2

使用 IronPDF for Java 将 HTML 文件转换为 PDF

IronPDF的PdfDocument.renderHtmlFileAsPdf方法用于将位于计算机或网络文件路径上的HTML文件转换为PDF。

PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
JAVA

使用 IronPDF for Java 在 PDF 文件中添加图像

您可以使用IronPDF的PdfDocument.fromImage方法将一组图像渲染为单个PDF文件。下面的示例在位于不同文件系统路径的一小组图像上使用此方法。

// Create an ArrayList containing the list of images that you want to combine
// into ONE PDF document
Path imageA = Paths.get("directoryA/1.png");
Path imageB = Paths.get("directoryB/2.png");
Path imageC = Paths.get("3.png");
List<Path> imageFiles = new ArrayList<>();
imageFiles.add(imageA);
imageFiles.add(imageB);
imageFiles.add(imageC);

// Convert the three images into a PDF and save them. 
PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
JAVA

使用 ITextPDF Java 为 PDF 添加图像

下面的完整代码示例使用 iText 将当前工作目录中的两张图片转换成一个 PDF 文件。

import java.io.*;

// Importing iText library packages
import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;

public class InsertImagePDF {
public static void main(String [] args) throws IOException {
        String currDir = System.getProperty("user.dir");

        // Getting path of current working directory
        // to create the pdf file in the same directory of
        // the running java program
        String pdfPath = currDir + "/InsertImage.pdf";

        // Creating path for the new pdf file
        PdfWriter writer = new PdfWriter(pdfPath);

        // Creating PdfWriter object to write the PDF file to
        // the path
        PdfDocument pdfDoc = new PdfDocument(writer);

        // Creating a Document object
        Document doc = new Document(pdfDoc);

        // Creating imagedata from image on disk(from given
        // path) using ImageData object
        ImageData imageDataA = ImageDataFactory.create(
        currDir + "/imageA.jpg");
        Image imgA = new Image(imageDataA);
        ImageData imageDataB = ImageDataFactory.create(
        currDir + "/imageB.jpg");
        Image imgB = new Image(imageDataB);

        // Creating Image object from the imagedata
        doc.add(imgA);
        doc.add(imgB);

        // Adding Image to the empty document
        doc.close();

        // Close the document
        System.out.println("Image added successfully and PDF file created!");
    }
}
JAVA
IronPDF For Java 与 iTextPDF itext7 for Java 的比较 - 图3

许可

iTextSharp 是开源软件,已获得 AGLP 许可。

IronPDF For Java与iTextPDF itext7 for Java的比较 - 图4

这确保了任何使用包含 iTextSharp 的应用程序的人都有权获得该应用程序源代码的完整副本,即使他们是通过公司网络或互联网这样做的。

IronPDF For Java 与 iTextPDF itext7 for Java 的比较 - 图5

如果您打算将其用于商业应用,请直接联系 iText 讨论许可证的定价。

IronPDF For Java 与 iTextPDF itext7 for Java 的比较 - 图6

IronPdf 可免费用于开发,也可随时授权用于商业部署。 IronPDF 许可详情适用于单个项目使用、个人开发人员、代理商和全球公司,以及用于 SaaS 和 OEM 再分发。 所有许可证均包含30天退款保证、一年的产品支持和更新、开发/暂存/生产的有效性,并且提供永久许可证(一次性购买)。

Lite 套餐的定价从 $749 起.

  • 开发人员可以无限制地使用该库进行开发。 就一般许可而言,费率非常经济实惠。
  • 一年无限期免费支持。
  • 此外,还可提供免费试用版,以获得授权。
  • 所有许可证均提供 30 天退款保证。
  • 许可证在所有环境(开发、预备、生产等)中均有效。
  • 许可证包括一年的无条件支持。
  • IronPdf 许可证只需一次性购买。
    IronPDF For Java 和 iTextPDF itext7 for Java 的比较 - 图 7

IronPDF 与 iText 对比

iText 和 IronPDF 之间有几个显著的不同之处。

iText 的 API 是围绕编程模型构建的。 在这种模式下,对 PDF 属性和内容的操作更加低级和细化。 虽然这给了程序员更多的控制权和灵活性,但也需要编写更多的代码来实现用例。

IronPdf 的 API 是围绕优化开发人员的工作效率而构建的。 IronPDF 简化了 PDF 编辑、操作、创建和其他复杂任务,开发人员只需几行代码即可完成这些任务。

结论

Iron Software 的所有客户都可以选择购买整套软件包,只需点击两下即可。 您目前可以从Iron Software Suite购买全部五个库,并享受每个库的持续支持,所需费用仅相当于套件中两个库的价格。

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
IronPDF for Java 与 Apache PDFBox 的比较
下一步 >
IronPDF For Java与Aspose.PDF For Java的比较