一个用搭积木的方式构建pdf的框架(基于pdfbox/fop)
master分支将作为稳定版本发布,develop分支将会不定期进行更新,欢迎大家提供宝贵意见,QQ交流群:15018726
x-easypdf是一个基于pdfbox/fop二次封装的框架,目前拥有两大模块:【pdfbox模块】与【fop模块】。【pdfbox模块】主打pdf编辑功能,以组件化的形式进行pdf的构建;【fop模块】主打pdf导出功能,采用数据源的方式对xsl-fo模板进行转换,同时提供java对象的方式构建dom模板文档,即使完全不懂xsl-fo的语法,也能轻松上手写出对应的模板。两个模块均可单独使用,也可以结合使用,帮助开发者快速生成pdf文档。
v3.0.0
jdk 1.8+
-
- 简单智能
自动换行与分页
- 表单填写
内置文档表单填写器(可填写表单中的文本域)
- 图像转换
内置文档图像器(可将文档整个转换为图片,或将文档中的某几页转换为图片)
- 文档提取
内置文档提取器(可提取文档中的文本与图片)
- 文档替换
内置文档替换器(可替换文档中的图片)
- 文档分析
内置文档分析器(可分析文档中的文本与图片信息,包含坐标、内容、字体大小等)
- 文档拆分
内置文档拆分器(可将文档按照页码拆分成一个或多个文档)
- 数字签名
内置文档签名器(可对文档进行数字签名)
- 内置字体
内置细体 | 正常 | 粗体三种开源中文字体(华为鸿蒙字体)
- 组件丰富
内置水印、页眉、页脚、文本、图片、表格、矩形、圆形、线条、布局、条形码(一维码/二维码)等组件
-
- 基于模板生成
- 内置多种数据源(xml 数据源、thymeleaf 数据源、freemarker 数据源、jte 数据源、document 数据源)
- 提供面向对象的方式生成模板(document 数据源)
- 灵活的扩展性
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf-pdfbox</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf-fop</artifactId>
<version>3.0.0</version>
</dependency>
mvn clean install
// 创建文档
Document document = PdfHandler.getDocumentHandler().create();
// 设置使用字体
document.setFontName("微软雅黑");
// 创建页面
Page page = document.createPage();
// 创建文本域
Textarea textarea = new Textarea(page);
// 设置文本
textarea.setText("Hello World!");
// 渲染文本
textarea.render();
// 添加页面
document.appendPage(page);
// 保存文档
document.save("E:\\PDF\\pdfbox\\document\\hello-world.pdf");
// 关闭文档
document.close();
TemplateHandler.Document.build().addPage(TemplateHandler.Page.build().addBodyComponent(TemplateHandler.Text.build().setText("hello world"))).transform("E:\\PDF\\fop\\document\\hello-world.pdf");
更多教程,请查看文档
为往圣继绝学,一个人或许能走的更快,但一群人会走的更远。