如何 5 分钟用 iText7 生成第一份 PDF
2026/8/22 8:11:09 网站建设 项目流程

如何 5 分钟用 iText7 生成第一份 PDF

【免费下载链接】itext7-in-mandariniText7文档的汉化版本项目地址: https://gitcode.com/gh_mirrors/it/itext7-in-mandarin

一个具体需求:把数据变成能直接发给客户的 PDF

当产品经理甩过来一句"把这批订单数据导出成 PDF 发给客户"时,你会发现自己缺的不是数据,而是一个能在 Java 后端稳定生成 PDF 的工具。iText7 就是干这个的:一个用 Java 写 PDF 的开源库,能从最基础的段落文字做到表单填写和文档合并。而这个仓库 itext7-in-mandarin 是 iText7 官方文档的完整汉化版本,不用啃英文教程,照着中文译文就能一路写代码。内容分成 guide(入门)、buildingblocks(进阶)、pdfHTML(HTML 转 PDF)三块,下面从最急的那件事开始——先让第一份 PDF 跑出来。

五分钟上手 iText7 PDF 生成:从克隆到第一份文件

先克隆仓库:git clone https://gitcode.com/gh_mirrors/it/itext7-in-mandarin,用 IDEA 打开,里面 guide2/examples/iText1 就是一个现成的 Maven 工程,HelloWorld 示例在 C01E01_HelloWorld.java。当然,你也可以在自己的项目里照下面两步走。

Maven 添加 iText 依赖

📦 第一步是配依赖。创建 PDF 至少需要 kernel(管 PDF 文件结构)、io(管文件读写)、layout(管把内容排进页面)三个包,把下面这段贴进 pom.xml 的 dependencies 里:

<dependency> <groupId>com.itextpdf</groupId> <artifactId>kernel</artifactId> <version>7.1.15</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>io</artifactId> <version>7.1.15</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>layout</artifactId> <version>7.1.15</version> </dependency>

跑一次mvn clean compile,Maven 会把这三个 jar 自动拉下来,依赖就算配好了。

Java 生成 PDF 的最小示例

下面的代码是最小的 iText7 PDF 生成例子:建一个写文件器、一个文档容器、塞一行文字,然后关闭:

import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Paragraph; public class HelloWorld { public static void main(String[] args) throws Exception { PdfWriter writer = new PdfWriter("hello.pdf"); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf); document.add(new Paragraph("Hello World!")); document.close(); } }

运行后,工作目录里会多出一个 hello.pdf,打开就是一行 "Hello World!",恭喜,iText7 已经在你手里跑通了。

发票、多栏排版、表单:三个高频场景

能跑一行字之后,问题是还能做什么。仓库里最常出现的场景有三个。一是发票和报表:guide 教程里演示 Paragraph 和 Table 的组合,pdfHTML/tutorial 部分更直接,让你用 HTML 加 CSS 描述发票样式再转成 PDF。二是多栏排版:guide2/examples/iText3 里的 C03E01_NewYorkTimes 模拟了报纸版式,用 ColumnDocumentRenderer 把图片和文字排成三栏。三是交互表单:guide/chapter4 讲注解和 AcroForm,让用户在 PDF 里点击链接、填写字段。

生成不报错的四个习惯

💡 新手踩的坑基本集中在四处,照着改就能避开。1)文档用完必须document.close(),否则文件可能残缺甚至打不开。2)写中文要先解决字体:加 font-asian 依赖或用本地字体文件创建 PdfFont,否则中文会变成一串串方框,guide/chapter1 里有专门章节。3)输出路径要自己管理,示例里统一用 DEST 常量加mkdirs()建目录,这个写法值得抄。4)依赖按功能加:forms 只给表单用、pdfa 只给归档文档用、sign 只给签名用,guide2/examples/iText1/pom.xml 里每行都有注释标明用途,按需取用即可。

想走更远,看看这几个扩展

除了核心库,仓库里还整理了三块值得看的内容。pdfHTML 是 HTML/CSS 转 PDF 的官方插件,配套中文教程在 pdfHTML/tutorial,适合做发票和网页归档;buildingblocks 逐类拆解 iText 的基础构建块,适合把 Hello World 之后往上走一层;guide2 则整套翻译成了 IDEA 工程,七个章节的示例可以直接右键运行,不用自己搭环境。

下一步,试试把 Paragraph 换成 Table,生成一份带表格的订单报表,发给你的"客户"。

【免费下载链接】itext7-in-mandariniText7文档的汉化版本项目地址: https://gitcode.com/gh_mirrors/it/itext7-in-mandarin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询