java 通过模板替换pdf_java通过模板生成docx,docx再转pdf

这篇博客介绍了如何使用Java通过模板生成docx文档,然后将其转换为PDF。首先,通过Freemarker和XML处理将数据动态填入docx模板。接着,利用工具将docx转换为PDF。主要涉及的步骤包括:解压docx获取document.xml,使用Freemarker替换模板数据,重新打包docx,最后将docx转换为PDF。
摘要由CSDN通过智能技术生成

后面两篇对导出做出来改进以及详细操作:

第二篇:  java通过模板生成docx(2)

第三篇:java 导出word 利用freemarker指令更改xml 导出word docx文档 (3)

本篇思路:通过模板导出word doc容易,网上资料很多,大概就是将doc后缀改成xml文本打开通过freemarker指令标记${} 通过java代码动态写入。

导出docx用以上方法不行,docx本质为压缩文件,通过解压取出document.xml(和doc用xml打开中间部分一样) ,取出后修改在写入,生成docx 最后通过工具将docx 转成pdf

流程: docx文档------取出docx中的document.xml ---------xml中的数据替换

freemarker指令标记${}----------通过freemarker和map填充数据到xml ----------生成docx文件 --------------docx转pdf

1.

新建一个docx文档,放在D盘命名test_template.docx

2.用winrar打开

test_template.docx,取出word/document.xml

3.代码:这个类是把内容填充到xml

import freemarker.template.Configuration;

import freemarker.template.Template;

import freemarker.template.TemplateException;

import java.io.File;

import java.io.IOException;

import java.io.Writer;

import java.util.Map;

public class XmlTplUtil {

private static XmlTplUtil tplm = null;

private Configuration cfg = null;

private XmlTplUtil() {

cfg = new Configuration();

try {

// 注册tmlplate的load路径

// 这的路径是xml的路径

cfg.setDirectoryForTemplateLoading(new File("d:/"));

} catch (Exception e) {

}

}

private static Template getTemplate(String name) throws IOException {

if (tplm == null) {

tplm = new XmlTplUtil();

}

return tplm.cfg.getTemplate(name);

}

/**

*

* @param templatefile 模板文件

* @param param 需要填充的内容

* @param out 填充完成输出的文件

* @throws IOException

* @throws TemplateException

*/

public static void process

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值