需求:将网页内容导出为pdf文件其中包含文字,图片echarts图
使用itext将html生成pdf中文换行问题解决方案
本文内容是参考以上地址内容对需求的实现
//获取响应对象输出流并返回
废话不多说进入正题!
本文重點在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈)
(ps:大神的东西太深奥~~懵逼了
一周才搞定,为了方便后来在更加简单清晰的学习,楼主写下这篇博客感谢大神给了我个完善和进步的机会,也希望后来在继续完善)
先说一下思路:由于我们是要用word来解析带图片的富文本(说白了就是解析一段html当然这段html代码是包含img标签:图片),so...传统的word模板导出(word另存为xml,在修改后缀为ftl)是行不通的因為他解析不了html代码(至少我目前没有找到这方便的解决方案,大神勿喷~)这样的话我就要换用一种模板来处理这个模板:word模板另存为mht格式,再修改后缀为ftl剩下的就是后台操作了,找到你存富文本的字段(html代码)获取里面的img标签找到图片,并把图片解析为base64字符串填充箌我们只做的模板上就ok了,大体思路就这样了
一、模板制作(这个很重要)
创建word文件:我这里用第二个content来显示我们要的富文本,然後将我们的word文件另存为mht文件
最后我们就拿到我们要的mht模板了,这仅仅是个开始...各位看官往下看
打开我们的mht文件并处理:在我们的文件里媔找到下面这些东西如果没有找到呢?....这个问题我就只有呵呵了
全文检索gb2312把他改成utf-8,同时需要加上3D前缀,对应着格式来改 一般就这两种:
提示:所有的都要改成utf-8(你不改也是可以的)
然后保存一下再把文件的后缀名改成ftl格式的就ok了(模板处理到此结束)
这个大家不陌生吧?陌生的自己打脸去下面的那三个我依然懵逼
四、导出word(带富文本图的哟)
到此~导出word带富文本图片的功能就借宿了,详细代码我放在附件里面(这里着重讲mht模板的一些改动处理富文本的java代码我就没有单独贴出来了哈,demo里面有哦)
有完整的demo大家放心不会像我一样懵逼┅周了 哈哈
开玩笑的~!话说我从开始到完整的做出来 还是花了5天左右的时间,
最后在再给大家扩展一下:一个word 出现多个富文本并且每个富文本有多个图片的思路:
简单说一下 ,其实就是在处理下一个富文本的时候 要拿到上一个富文本里面处理中的"imagesBase64String" 再把它累加起来
各位看官!搞懂这个是不是觉得单纯的图片导出太简单了哇 哈哈(话说我还没用过单纯的图片导出)