java freemarker 图片_java通过freemarker导出包含富文本图片的word文档

废话不多说,进入正题!

本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈)

(ps:大神的东西太深奥~~懵逼了

220e1449d7d980f037b98b541db3e979.png

一周才搞定,为了方便后来在更加简单,清晰的学习,楼主写下这篇博客,感谢大神给了我个完善和进步的机会,也希望后来在继续完善)

先说一下思路:由于我们是要用word来解析带图片的富文本(说白了就是解析一段html,当然这段html代码是包含img标签:图片),so...传统的word模板导出(word另存为xml,在修改后缀为ftl)是行不通的,因为他解析不了html代码(至少我目前没有找到这方便的解决方案,大神勿喷~),这样的话我就要换用一种模板来处理这个模板:word模板另存为mht格式,再修改后缀为ftl。剩下的就是后台操作了,找到你存富文本的字段(html代码)获取里面的img标签,找到图片,并把图片解析为base64字符串,填充到我们只做的模板上就ok了,大体思路就这样了

一、模板制作(这个很重要)

提示:这里模板用office word来做,不要用wps

创建word文件:

1d711969707572048c5c60570d9c6132.png,我这里用第二个content来显示我们要的富文本,然后将我们的word文件另存为mht文件,

最后我们就拿到我们要的mht模板了,这仅仅是个开始...各位看官往下看

f08a5b1050e03c3b3ac8f17314f07bcd.png

打开我们的mht文件并处理:在我们的文件里面找到下面这些东西,如果没有找到呢?....这个问题,我就只有呵呵了

java freemarker 图片_java通过freemarker导出包含富文本图片的word文档_第1张图片

${imagesBase64String} 和 ${imagesXmlHrefString}这两个是我们手动加进去的,简析富文本图片的核心就在这里(反正我也是蒙的~)

4d2be8c71312c1bef011da091463edeb.png

全文检索gb2312把他改成utf-8,同时需要加上3D前缀,对应着格式来改 一般就这两种:

和Content-Type: text/html; charset=3D"utf-8"

79df6f10fcc7b87001ffaf35fbe9e2e1.png

提示:所有的都要改

你可能感兴趣的:(java,freemarker,图片)