导出包含富文本内容和图片的word和pdf

这里主要提到是需要注意的几个地方,适合已经研究过使用过freemarker+xml方式导出word的伙伴们,在此基础上应该一看就明白。若看不懂请自行查找导出word的资料,资料很多,这里主要是记录下导出包含富文本内容和图片的方式,以便后续自查。

需求是需要按照特定模板导出word,其中有些功能模块的内容是使用ckeditor编辑器填写的,这就涉及到了导出时要兼容富文本所包含的html标签,
这里多说两句:有两种情况
一、导出内容不包含富文本内容和富文本中增加的图片的情况,大体使用freemarker+xml方式,制作模板步骤:用office的word(据说WPS做得模板不可用,未亲测)做导出模板–>另存为xml格式文件—>再直接改后缀名为ftl放入项目中。我是先用的freemarker+xml方式导出word,发现解析不了html,又改用的freemarker+mht方式。因为他解析不了html代码,所以导出富文本内容没有合格结构是乱的,图片也无法显示
在这里插入图片描述
二、导出内容包含富文本和图片,大体使用freemarker+mht方式,制作模板步骤:用office的word(据说WPS做得模板不可用,未亲测)做导出模板–>另存为mht格式文件—>再直接改后缀名为ftl放入项目中
下面我们着重介绍下第二中情况:

本人做的时候也是网上各种查资料,特此感谢两篇文章大家也可以看下 文章一 文章二
特别感谢其中一位博主,还提供了源码包,放入项目中只需要根据项目实际情况调整下图片路径和导出word方式即可。

  • 1、做模板

首先第一步是制作模板,模板步骤见上面,制作模板时也可以不用占位符使用常量占位,到程序中知道显示位置再改成${} 占位符也是一样的。使用1111或者aaa的常量,个人感觉模板排查起来要方便些
在这里插入图片描述

  • 2.处理mht文件

打开我们的mht文件并处理,我使用EditPlus查看编码,很多编辑器都可以打开看代码,需要注意的是,模板生成时有时占位符${content!’’}有可能会被word自身的标签截断,因为mht文件有时候会自动换行,会在单词中间加上= 号 或者在{ 等符号与单词之间加上一些mht文件的样式,我们都要删掉,不删掉可能会造成模板异常,

  • 2.1在模板中找到下面截图中的代码

在这里插入图片描述
${imagesBase64String} 和 ${imagesXmlHrefString}这两个占位符是我们手动加进去的,简析富文本图片的核心就在这里,按照这个位置加进去即可

  • 2.2全文检索gb2312把他改成utf-8,看到前面加上3D前缀的要保留mht文件很多地方都是以3D为标识的

在这里插入图片描述

  • 2.3 在模板文件中找到Content-Location: file:///C:/B2260B68/file7736.files,并记录下来,后面代码中要用到

在这里插入图片描述
到这里模板文件就做完了,后缀名改为ftl放入项目中,如何取值或者list循环取值,判断等等都是freemarker规则,跟ftl一样使用

  • 3、下面主要介绍代码中主要的几部分,详细的请下载源码包查看
  • 代码中有下图中的代码块,设置的值就是上面在模板文件中找到的,相匹配上就可以了,后三项具体为
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值