利用Poi-tl将富文本Html转换为Word文件
DEMO地址:https://gitee.com/xuwangcheng/html-to-word
2019年的时候业务需要把前台的富文本html数据转换为WORD文档,百度了下,网上多数方案都是通过直接将整个html转换为web视图版的word,但是自己这边的需求是需要将很多很多个不同的富文本html嵌套组合到一起,并且还需要动态的增加标题,图片等内容,故WEB版的word方案舍弃。
后来百度发现了poi-tl(http://deepoove.com/poi-tl/), 发现居然可以直接模版化word进行生成,反复研究了下个人的需求,最终采用的方案如下:
- 使用poi-tl模版化word,通poi-tl的嵌套模板功能动态生成文档标题及目录;
- 使用jfreeChart动态生成统计图片,通过poi-tl模板参数传入;
- 使用Jsoup解析富文本,通过poi-tl自定义策略将html各种标签转换为poi的word对象。
整理了下代码,希望能够给也有我这样需求的朋友提供下思路。
关于扩展标签解析处理
在com.xuwangcheng.html2word.handler包下新建对应的处理类,继承BaseHtmlTagHandler,实现getMatchTagName和handleHtmlElement方法即可。
关于具体的代码实现,需要你先要了解poi-tl的一些用法,参考http://deepoove.com/poi-tl/ 。
目前已经实现了,table,img,span,sup等标签,其他标签转换看个人需求自行实现,如果你有实现好的代码,欢迎PR,帮助更多的朋友。
有问题欢迎通过QQ,微信联系,联系方式在码云个人主页。
利用Poi-tl将富文本Html转换为Word文件相关推荐
- Java实现多文件上传下载,kindeditor富文本保存为word文件,文件列表分页显示
介绍 SpringBoot+Thymeleaf+Mybaits项目部分功能, 实现文件的多文件上传和下载,以及将kindeditor富文本内容保存为.doc文件 文件上传/创建后以列表形式显示,并且可 ...
- 百度富文本添加导入word文件
百度富文本导入word 1.编辑器修改 (可选) 1.1在 ueditor/config.json 中添加代码块 /* 上传word配置 */"wordActionName": & ...
- poi下载,富文本html转word,及微软office打不开问题
maven导入包: <dependency><groupId>org.apache.poi</groupId><artifactId>poi</a ...
- Java 富文本内容转化word导出
一.需求: 当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的. 如:<h1>标题头</h1><h2>第二个标题</h2><a ...
- java freemarker 图片_java通过freemarker导出包含富文本图片的word文档
废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...
- 富文本转换字符串 php,php 如何将一个富文本字符串生成word文档?
问题描述 我现在有一个富文本字符串, 比如$str=" qqq啊啊啊啊啊百度网址 ": 中间我省去了大量的图片base64的编码. 问题出现的环境背景及自己尝试过哪些方法 相关代码 ...
- java 富文本html 转 word(带图片处理
1.配置依赖 <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free< ...
- Java 实现HTML富文本导出至word完美解决方案
Java 实现HTML富文本导出至word完美解决方案 **需求: 最近用java开发一个申报管理系统,里面有一个根据申请书的模板填写项目申报信息的功能,并将项目申请书word导出功能.** 1: 动 ...
- 【Apache POI】Java Web根据模板导出word文件
最近工作中遇到一个需求:根据word模板文档导出word文件. 查阅了一些资料,发现Apache POI可以实现文档读写的功能,于是就研究了一下,总结如下: Apache-POI在线Javadoc:h ...
最新文章
- 2019年上半年收集到的国外人工智能发展详情文章
- oracle 00966,oracle错误代码一览表
- C++11 多线程 基础
- 河北二本计算机专业排名,河北省最好的二本财经类大学有哪些
- WebDriver高级应用实例(3)
- Go应用中优雅处理Error的几个技巧
- Win10错误代码0x80070541是怎么回事
- 项目管理必备文档大全:这14个项目文档你还不会写?
- js return加分号_js分号的重要性
- UNIX/Linux的传奇历史
- u盘文件名乱码linux,U盘文件夹变空文件夹的文件名乱码的修复方法
- Ubuntu安装Times NewRoman字体
- word转PDF图片失真
- 网易笔试题 寻找第K大
- k8s master节点状态为 NotReady问题解决
- 关闭休眠扩大c盘空间
- python医药数据_采集万方医药方向的期刊+文章+作者信息(数据量千万级)
- Squeezenet官方源代码解析
- 利用ggplot2绘制功能富集气泡图
- 广东中考数学不允许使用计算机,上070821对苏州市数学中考两次禁用计算器的反思终稿.doc...
热门文章
- 叶武滨老师时间管理学习感悟
- 操作系统真象还原实验记录之实验七:加载内核
- java源码怎么使用,系列篇
- SQL 的日期函数 day() 、month()、year()
- 摇杆控制方向原理_手游摇杆(零)摇杆设计原理
- 基于ZigBee的智能家居安全监控系统设计
- SQL Server 2005通过端口1433连接到主机127.0.0.1的TCP/IP连接失败解决方案
- matlab的pnpoly,PNPoly 算法
- VBA 等待1S 处理方法
- golang学习十:网络编程