Java 实现HTML富文本导出至word完美解决方案

 **需求: 最近用java开发一个申报管理系统,里面有一个根据申请书的模板填写项目申报信息的功能,并将项目申请书word导出功能。**

1: 动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式
1.1: 这种方式仅仅适用于简单变量替换,但是生成的 xml 实在是太乱了,整理就得整理半天,而且一旦要修改模板,那简直就是灾难,据说还不兼容 WPS
1.2: 所以就找到了以下可以直接用 word 文档作为模板的方法,进行变量替换后,从而达到word导出效果。但是存在以下几个问题:
[ 问题 ]
1: 由于我们有些字段内容是采用富文本编辑器(百度的UEditor)填写的,里面有附件的上传(主要是图片)。针对图片,HTML的img标签有一个src的属性,这个src是服务器的图片资源路径。这个如果要显示这个图片的话,客户的机器必须要保证联网,这样造成word不能离线存档。
2: 由于导出的html网页格式,打开word后,默认显示的视图模式为WEB版式视图;
由于以上问题:寻找到了一套解决方案

1.1: 先把word模板做出来,变量最好用特殊字符代替,比如 ( #, $, & );
1.2: 将模板另存为 mht格式,修改文件后缀为ftl;
另存为mht后,会出现格式问题,需要自己手动调整,否者文字样式,格式就没啦!!这时先将模板编码改成UTF-8,后再改汉字乱码

1.3: 使用文本编辑器把特殊字符替换成变量 ,变量语法我使用的是‘freemarker语法;
freemarker学习语法链接
1.4: (注意带有图片内容需要替换以下几处)


1.5: 根据变量和模板生成word;
代码下载地址
代码下载链接

private String nextPartId 对应模板中位置

private String docSrcLocationPrex 对应模板中位置

Java 实现HTML富文本导出至word完美解决方案相关推荐

  1. java根据html生成word文档,Java之HTML富文本导出WORD(不含图片)

    一.需求: 我们在使用富文本编辑器来编辑文本的时候,文本会自带HTML的标签比如 等来修饰字体样式. 比如ueditor.kindeditor等富文本编辑器. 那么,我们如何将富文本编辑器里的内容导出 ...

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

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...

  3. Java 富文本内容转化word导出

    一.需求: 当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的. 如:<h1>标题头</h1><h2>第二个标题</h2><a ...

  4. 富文本转换字符串 php,php 如何将一个富文本字符串生成word文档?

    问题描述 我现在有一个富文本字符串, 比如$str=" qqq啊啊啊啊啊百度网址 ": 中间我省去了大量的图片base64的编码. 问题出现的环境背景及自己尝试过哪些方法 相关代码 ...

  5. vue2.0 通过v-html指令渲染的富文本无法修改样式的解决方案

    vue2.0 通过v-html指令渲染的富文本无法修改样式的解决方案 参考文章: (1)vue2.0 通过v-html指令渲染的富文本无法修改样式的解决方案 (2)https://www.cnblog ...

  6. html加载富文本_富文本图片懒加载解决方案

    图片懒加载,作为性能优化的一部分,想必我们并不陌生. 在React.Vue项目中,我们都可以引入对应的NPM包处理图片懒加载,如 lazyload.react-lazyload.vue-lazyloa ...

  7. asp.net2.0导出pdf文件完美解决方案【月儿原创】

    asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.28 PDF简介:PDF(P ...

  8. Java实现多文件上传下载,kindeditor富文本保存为word文件,文件列表分页显示

    介绍 SpringBoot+Thymeleaf+Mybaits项目部分功能, 实现文件的多文件上传和下载,以及将kindeditor富文本内容保存为.doc文件 文件上传/创建后以列表形式显示,并且可 ...

  9. java 富文本html 转 word(带图片处理

    1.配置依赖 <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free< ...

最新文章

  1. 《大话移动 APP 测试》
  2. 32和64位jvm_我应该使用32位还是64位JVM?
  3. android 编译主机,Android】源码编译 ---zzz
  4. android 启动多个进程,Android开启多进程
  5. 【树莓派搭建个人网站】环境配置
  6. 用scikit-learn和pandas学习线性回归,XGboost算法实例,用MSE评估模型
  7. 汇编(五):第一个汇编程序
  8. ## STM32——闪烁灯程序
  9. Quartz简介及应用场景
  10. SQL中查询MySQL的版本
  11. QT(6)-QStandardItemModel
  12. 简单探寻GCC编译器背后的故事
  13. 程序员抛弃大厂涌进工厂!南洋理工海归:这里上班比整天盯着电脑有意思的多!...
  14. 手机直面屏与曲面屏有什么区别?,很多人都不知道
  15. 声称代码已开源却迟迟没更新,网友等了好几个月,最终一怒之下把作者挂网上
  16. [C++复健日常] for_each
  17. Xpdf 中文字体解决方案(TTF字库) - 图文教程
  18. trace系列4 - kprobe学习笔记
  19. selenium 爬抖音
  20. 数商云SCM系统供应商全生命周期管理,助力建筑材料企业快速定位合适供应商

热门文章

  1. 研究生坑导师行为大赏!导师为了让大弟子毕业,不得已自写论文...
  2. 程序员吐槽工资和Bug数量挂钩!网友:不写代码就能最高绩效
  3. 从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本
  4. 银行客户管理系统的实现
  5. 中e管家要不断改变理财方式和心态
  6. 消息中间件rabbitMQ之第二种消息模型(work quene)
  7. 参考PR创建PO净价被信息记录覆盖问题
  8. 关于__irq的使用
  9. java解析本地.geoJson地理信息,根据经纬度找到所在区域(全程Chatgpt3.5交互写代码,附gpt交流记录)
  10. 维特比软信息译码——高斯信道/瑞丽信道