1. 开源框架支持
- 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文档。
2. 实现方案
| — | 格式复杂 | 格式简单 |
|---|---|---|
| 数据量大 | docx4j+freemarker | docx4j或PDFBox |
| 数据量小 | docx4j | PDFBox |
##2.1 纯数据生成PDF
-
docx4j,适用于生成格式简单或格式复杂且数据量小的PDF文档; 2.Apache PDFBox,适用于生成格式简单且数据量小的PDF文档。
-
docx4j docx4j是一个开源Java库,用于创建和操作Microsoft Open XML(Word docx,Powerpoint pptx和Excel xlsx)文件。它类似于Microsoft的OpenXML SDK,但适用于Java。docx4j使用JAXB来创建内存中的对象表示,程序员需要花时间了解JAXB和Open XML文件结构 。
// word对象
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
// 文档主体
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
// 换行符
Br br = objectFactory.createBr();
// 段

这篇博客介绍了Java中生成PDF文档的方法,包括使用iText、Apache PDFBox和docx4j等开源框架。重点讲解了如何通过模版+数据的方式生成PDF,涉及到FreeMarker与docx4j的结合使用,以及Word到PDF的转换和PDF合并的步骤。
最低0.47元/天 解锁文章
7204

被折叠的 条评论
为什么被折叠?



