ftl文件模板图片_JAVAWEB使用FreeMarker利用ftl把含有图片的word模板生成word文档,然后打包成压缩包进行下载...

本文介绍如何利用Java的FreeMarker库和FTL文件模板将含有图片的Word模板转换成Word文档,并进一步打包成压缩文件供下载。首先,准备XML模板,用${name}等占位符替换内容,Base64编码处理图片。然后,将XML文件改扩展名为FTL,通过FreeMarker的后台代码生成Word文档。最后,使用Zipper工具类创建压缩包,将生成的Word文档打包成ZIP供用户下载。
摘要由CSDN通过智能技术生成

引入jar包,freemarker.jar、apache-ant-zip-1.8.0.jar(制作压缩包使用)

或者maven

org.freemarker

freemarker

2.3.23

org.apache.ant

ant

1.8.0

1、准备ftl模板,先在一个word中模板排版好,然后另存为-保存成“Word 2003 XML文档” 后缀名是.xml的文件

注:模板中的值要使用占位符进行填充 ,如下图所示,“name”名称是根据后台代码来的,这里可以换成自己的

然后生成.xml文件后,可以利用网上格式化工具格式化看下 生成的模板文件是否正确,占位符“${name}”必须是完整的,中间不能含有其他字符

如果word模板中含有图片,图片在xml文件中展现的形式是Base64格式的 ,包含在和中,把Base64删掉,替换成占位符,我这里使用的是“${photo}”(和中除了占位符不能有其他代码,也不能换行,主要是下面两个标签内都不能有其他标签)

如果没有和标签的话,就是在模板中没有把图片放进去,需要把图片也放进去模板中,然后生成xml文件

${photo}

如果是多张图片的时候,就在模板文档里面放多张图片,然后看生成的模板样子,内容都是可以循环的,把共同部分拿出来,然后使用标签进行循环遍历,有些字段循环也是不一样,如下图所示,每个人可能模板不一样。

2、然后把保存的wordExport.xml文件 后缀名改成.ftl文件

3、后台代码

导出word工具类

WordUtils.javapackagetestword;

import java.io.*;importjava.util.Map;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importfreemarker.template.Configuration;importfreemarker.template.Template;importsun.misc.BASE64Encoder;public classWordUtils {//配置信息,代码本身写的还是很可读的,就不过多注解了

private static Configuration configuration = null;//这里注意的是利用WordUtils的类加载器动态获得模板文件的位置//private static final String templateFolder = WordUtils.class.getClassLoader().getResource("../../").getPath() + "WEB-INF/templetes/";

public File exportMillCertificateWord(HttpServletRequest request, HttpServletResponse response, Map map,String title,String templateFolder,String toDirFloder) throwsIOException {

configuration= newConfiguration();

configuration.setDefaultEncoding("utf-8");//模板所在文件夹

configuration.setDirecto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值