Java中使用iText生成PDF

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 iText 以及为什么需要它?

iText 是一个用于 Java 的强大库,旨在创建和处理 PDF 文档。它允许以编程方式生成 PDF 文件,添加文本、图像、表格、表单和注释。该库广泛应用于企业应用程序中,用于自动化报告、发票、合同和其他文档。iText 的主要优势在于对 PDF 内容和结构的完全控制。

安装 iText

要在 Maven 项目中连接 iText,请在 pom.xml 中添加依赖项:

<dependency>    <groupId>com.itextpdf</groupId>    <artifactId>itext7-core</artifactId>    <version>7.2.5</version>    <type>pom</type></dependency>

对于 Gradle:

implementation 'com.itextpdf:itext7-core:7.2.5'

iText 的主要功能

  • 从头创建 PDF: 添加段落、表格、图像。
  • 处理表单: 填充和提取 AcroForms 中的数据。
  • 加密和保护: 设置密码,限制打印或复制。
  • 将 HTML 转换为 PDF: 使用 html2pdf 模块。
  • 合并和拆分页面: 处理多个文档。

Java 代码示例

让我们创建一个包含文本和表格的简单 PDF:

import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.element.Table;

public class PdfGenerator { public static void main(String[] args) throws Exception { String dest = "example.pdf"; PdfWriter writer = new PdfWriter(dest); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf);

// 添加标题 document.add(new Paragraph("Hello, World!"));

// 创建一个 3x2 的表格 Table table = new Table(3); table.addCell("Name"); table.addCell("Age"); table.addCell("City"); table.addCell("Anna"); table.addCell("25"); table.addCell("Moscow"); table.addCell("Ivan"); table.addCell("30"); table.addCell("Saint Petersburg");

document.add(table); document.close(); System.out.println("PDF created: " + dest); }}

何时使用 iText

该库非常适合以下场景:

  • 在 Web 应用程序(Spring Boot、Java EE)中生成报告和发票。
  • 自动化文档工作流:合同、证书、货运单。
  • 创建供用户填写的交互式 PDF 表单。
  • 将 HTML 模板转换为 PDF 用于打印或分发。

iText 是 Java 中处理 PDF 的事实标准。替代方案:Apache PDFBox(更底层)和 Aspose.PDF(商业软件)。

推荐