iText7 PDF 生成中文实战教程:5 分钟从 Hello World 到生产级文档

📅 2026/8/21 20:20:14
iText7 PDF 生成中文实战教程:5 分钟从 Hello World 到生产级文档
iText7 PDF 生成中文实战教程5 分钟从 Hello World 到生产级文档【免费下载链接】itext7-in-mandariniText7文档的汉化版本项目地址: https://gitcode.com/gh_mirrors/it/itext7-in-mandarin用 Java 后端服务生成合同 PDF最头疼的往往不是代码而是资料iText7 官方文档全英文模块划分、字体编码讲得很细但翻完依然找不到一套能直接跑通的示例。itext7-in-mandarin 就是 iText7 官方教程的汉化版本仓库里的示例都是可直接运行的 IDEA 工程等于一本 iText7 PDF 生成的中文手册。 它是什么为什么读这份汉化仓库仓库把官方三套教程拆成三个目录逐章翻译并给每章配套了可运行示例。许可证核心库走 AGPL 开源协议商业闭源使用需追加 itext-licensekey 2.0.4 商业密钥。语言/平台Java 6 与 .NETC#每个 Maven 构件对应一个 Java jar 或 .NET DLL。版本基线示例 pom.xml 锁定在 7.0.3/7.0.4 时代跟着 7.1.x 新版做之前要先核对 API 差异。差异化官方英文版逐句对照翻译且每章对应一个 IDEA 工程clone 后无需额外配置即可运行。内容结构guide 是快速上手 7 章buildingblocks 讲基础构建块进阶pdfHTML 讲 HTML 转 PDF 插件guide2 是可运行的 IDEA 版示例。上图是guide2/examples/iText3/第三章示例使用的 675×450 图片素材教程会带你把它一步步排进页面。 五分钟跑通如何生成你的第一个 PDF先 clone 示例仓库教程里的工程都能在仓库内直接验证git clone https://gitcode.com/gh_mirrors/it/itext7-in-mandarin依赖写四个构件即可com.itextpdf 下的 kernel、io、layout、forms版本统一锁定 7.0.4io 会被 kernel 自动引入forms 和 pdfa 分别只在表单、归档场景需要。下面 12 行代码生成一个含一行 Hello World 的 PDFimport 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(); } }运行 main 后工作目录多出 hello.pdf阅读器打开是 A4 白页上一行 Helvetica 文本。 iText7 PDF 生成核心能力速览挑出仓库示例里离日常工作最近的四个功能点。用 3 行代码生成中文 PDF中文防坑三件套就是CJK 字体 IDENTITY_H 编码 嵌入PdfFont zh PdfFontFactory.createFont( fonts/SimSun.ttf, PdfEncodings.IDENTITY_H, true); document.add(new Paragraph(iText7 中文 PDF).setFont(zh));适用场景发票、报表、合同等一切中日韩内容完整演示在guide2/examples/iText1/。把 CSV 数据变成自动分页的表格Table接收 float 数组定义列宽比例用addHeaderCell()添加的表头行会在新页面自动重复跨页无需手写分页逻辑。适用场景数据库查询结果导出C01E04_UnitedStates 示例逐行读了 50 个州的数据进表格。填写、修改并压平 AcroForm 表单forms 模块逐字段读写已有表单C04E05_FlattenForm演示压平后表单锁定为普通内容。适用场景电子签章归档、批量回写表单示例集中在guide/examples/chapter4/。PDF/A 归档与 PDF/UA 无障碍一步到位pdfa 模块加一句pdf.setTagged()文档即带语义结构可被读屏软件识别再配合setLang()与 XMP 元数据满足 PDF/UA。适用场景长期存档、无障碍合规演示在guide/chapter7/。第三章渲染器示例用这类 675×450 的图片组合出整页版式讲解渲染事件与页面流。⚠️ 踩坑提醒iText7 PDF 生成最常见的 4 个坑PdfFont 跨文档第二次生成抛PdfException: Pdf indirect object belongs to other PDF document→ PdfFont 只跟踪单个文档的字形子集不能跨文档 → 缓存 FontProgram每次文档用PdfFontFactory.createFont(fontProgram, PdfEncodings.WINANSI, true)新建。中文空白乱码PDF 里俄文、韩文、中文直接消失 → 默认 Helvetica WinAnsi 编码只覆盖 256 个字符 → 换 CJK 字体文件并传PdfEncodings.IDENTITY_H嵌入参数传 true。跨平台字体错位同一文件 Windows 与 Linux 显示不同字体 → 字体未嵌入阅读器回退到操作系统已装字体 → 非 14 种标准 Type 1 字体时createFont第三个参数恒为 true。商用漏配 license key基于 AGPL 模块做了商业产品却未设密钥 → 要么开源代码要么购买商业许可 → 添加 itext-licensekey 2.0.4 依赖与 iText 私有仓库配置密钥。 延伸与生态教程之外的三个目录都是可深挖的生态资产pdfHTML官方 HTML/CSS 转 PDF 插件7 章中文教程在pdfHTML/tutorial/从convertToPdf()到字体与媒体查询。guide2 示例工程guide2/examples/iText1到iText7共 7 个 IDEA 工程覆盖教程全部示例clone 即可运行。buildingblocks 进阶系列官方 Building Blocks 教程的中文翻译讲字体嵌入、编码选择、Style 样式复用等进阶主题。font-asian 构件独立的 CJK 字体支持 artifact涉及中日韩字体的示例按需添加版本同样锁 7.0.4。API 细节与版本变更建议继续在官方文档、社区和示例仓库中跟进本仓库的中文翻译与工程可作为常驻入口。【免费下载链接】itext7-in-mandariniText7文档的汉化版本项目地址: https://gitcode.com/gh_mirrors/it/itext7-in-mandarin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考