Java全后台生成带图表的PDF(目前只能运行在Windows)

这篇博客介绍如何在Java后台不通过前端,利用freemarker、jfreechart和jacob库,从模板Word文档生成包含图表的PDF。首先创建Word模板,然后将Word转换为XML并替换数据,接着使用${属性名称}填充内容,处理表格和图片,最后将修改后的模板生成PDF。
摘要由CSDN通过智能技术生成

    工作中,遇到这样的需求,在不经过前端的情况下,后台生成PDF,并且PDF带图带表。

    首先声明下,本人是基于前人的基础,综合而成,纯手打,劳动不易,转载请注明,谢谢!

先说明下创作的思想,按模板生成Word文档,将Word装换成PDF,主要使用到freemarker,jfreechart,jacob下面就是具体的步骤

1.创建一个Word,该Word就是你最终PDF要求的样式,注意图片直接把截图粘上去就行,其他你需要填充的数据自己随便造一下就好,最好用相同的文字格式,不然后续怕混淆,例如不要用:你好ab123等,不怕麻烦的请无视

2.将Word另存为XML文件,格式选择Word 2003 XML文档(不要存最新版本

3.修改Word文档中你需要替换的东西,文字部分直接用${属性名称},类似于EL表达式${name},表格部分需要将找到对应的表格部分的XML位置,一般为<w:tr >标签开头,将其他重复的表格的XML删除(表头不要删除),只留一个进行循环,在表格的<w:tr >标签开始前面加上<#list 列表对象 as 列表对象的别名>,输入的内容以${别名.对象属性},结尾部分</w:tr>加上</#list>,图的部分直接用类似文字形式代替,注意不能有任何空格,下面是几张例图

表格开头

表格的输入内容

表格结尾

图片(图片不能有空格)和文本输入

4.将修改后的文件的后缀名改为XX.ftl文件

5.将需要的数据生成Map形式,例如:map.put(“aa”,名称)map.put(“aa”,列表)

6.java后台调用模板,将这些数据填充进去,生成Word文档

7.将该Word文档生成PDF文件

下面附上相关的代码

<!-- word转pdf包,需要配合对应的dll文件ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值