java实现docx,pdf文件动态填充数据

一,引入pom
根据需求引入自己所需pom

org.apache.poi poi 4.1.1 org.apache.poi poi-ooxml 4.1.1 org.jxls jxls 2.6.0 ch.qos.logback logback-core org.jxls jxls-poi 1.2.0 fr.opensagres.xdocreport fr.opensagres.xdocreport.core 2.0.2 fr.opensagres.xdocreport fr.opensagres.xdocreport.document 2.0.2 fr.opensagres.xdocreport fr.opensagres.xdocreport.template 2.0.2 fr.opensagres.xdocreport fr.opensagres.xdocreport.document.docx 2.0.2 fr.opensagres.xdocreport fr.opensagres.xdocreport.template.freemarker 2.0.2 org.freemarker freemarker 2.3.30 com.itextpdf itext7-core 7.2.5 pom com.itextpdf itextpdf 5.5.6

二 docx文件配置域

docx文件:打开文件菜单,找到插入,点击文档部件,选择域,根据需求选择对应的域名,一般文字填充选择邮件合并:MERGEFIELD ${key},点击确定(记住这个key)

三代码实现docx文件填充

根据文件路径获取URL
根据url获取文件流 
注册xdocreport实例
创建xdocreport上下文对象
填充文本变量 key为填充的取值key,
保存本地或浏览器下载

注意:如果文档配置了域但是变量没有设置值为null时会报错java实现docx,pdf文件动态填充数据_第1张图片
四 pdf配置域

首先你要有一个工具可编辑pdf我用的 福昕高级PDF编辑器,找到菜单下面就是域可以填充圆,对钩和文本,单选,多选等
java实现docx,pdf文件动态填充数据_第2张图片

五 代码实现pdf文件填充

 根据文件路径获取URL
 填充数据直接用Map即可
 构造pdf阅读器 构造输入输出器
 构造pdfDocument实例
 设置为a4纸张大小
 替换参数
 最后返回流或者byte[]

java实现docx,pdf文件动态填充数据_第3张图片

你可能感兴趣的:(java,pdf,word)