PDF生成方案比较
开源框架支持
iText:生成PDF文档,还支持将XML、Html文件转化为PDF文件
Apache PDFBox:生成、合成PDF文档
docx4j:生成docx、pptx、xlsx文档,支持转换为PDF格式
比较
- iText开源协议为AGPL,而其他两个框架协议均为Apache License V2.0
- 使用PDFBox生成PDF就像画图似的,文字和图像根据页面坐标画上去的,需要根据字数手动换行
- docx4j用来生成docx文档,提供了将WORD文档转换为PDF文档的功能,并不能直接生成PDF文档
应用 | 格式复杂 | 格式简单 |
---|---|---|
数据量大 | docx4j+freemarker | docx4j或PDFBox |
数据量小 | docx4j | PDFBox |
鉴于iText的协议为AGPL具有极强的传染性,本文以Apache PDFBox为例来讲解
pdfbox通过pdf模板生成PDF文件
本人在项目中遇到的是基于pdf的form表单模板来生成pdf文件
- Apache PDFBox Github:https://github.com/apache/pdfbox
通过Maven引入依赖
|
|
使用示例
- 准备好表单数据
- 加载pdf模板文件
- 加载自定义字体
- 遍历表单属性并填充值
- 导出PDF文件
|
|