【JAVA poi-tl-ext 富文本转word】

富文本转word

环境

  • jdk 1.8
bash 复制代码
<dependency>
    <groupId>io.github.draco1023</groupId>
    <artifactId>poi-tl-ext</artifactId>
    <version>0.4.16</version>
</dependency>

使用poi-tl-ext的原因

  • 对比poi原生来说简单方便操作
  • 对比收费软件来说,开源免费,而且效果也很牛

富文本转word代码

bash 复制代码
public class RichTextParser {
    public static void parseToDocx(String content, FileOutputStream fileOutputStream) throws IOException {
        HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();
        Configure configure = Configure.builder()
                .bind("key", htmlRenderPolicy)
                .build();
        Map<String, Object> data = new HashMap<>();
        data.put("key", content);
        XWPFTemplate.compile("D://input.docx", configure).render(data).writeAndClose(fileOutputStream);
    }
}
  • content 富文本内容
  • fileOutputStream 输出流,例如输出到本地磁盘D://2.docx上面
  • D://input.docx 是一个模板docx
  • key 是用来绑定富文本内容(可以任意起名字只要能和代码模板对应即可),由于我需要导出的富文本内容是随机且不定格式,所以使用一个key包裹即可
  • HtmlRenderPolicy 就是poi-tl-ext中富文本导出为word的操作插件,这里需要吹捧一下作者,真的好牛
  • poi-tl 还存在各种其他插件,例如表格插件等,适用于各种导出word的操作,还可以自定义插件,也是牛的
  • 富文本部分内容如下
html 复制代码
<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><strong>xxx年度安全生产教育培训工作计划</strong></span></p>\n" +
                "<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 10pt; color: #e67e23;\">(模板,可上传企业自有制度或修改模板)</span></span></p>\n" +
                "<p>&nbsp;</p>\n" +
                "<p><span style=\"font-size: 14pt;\">&nbsp; &nbsp; &nbsp; &nbsp;<span style=\"color: #ba372a;\">为进一步规范公司安全宣传和教育培训工作,不断提高公司员工安全生产意识和安全素质,增强安全生产法制观念,有力推动公司安全生产基础建设、安全生产诚信建设、安全生产标准化建设和企业安全文化建设,确保今年的安全生产目标指标的实现,特制定本计划如下:</span></span></p>
  • 导出内容如下
相关推荐
短剑重铸之日7 分钟前
《SpringBoot4.0初识》第五篇:实战代码
java·后端·spring·springboot4.0
heartbeat..10 分钟前
Spring MVC 全面详解(Java 主流 Web 开发框架)
java·网络·spring·mvc·web
-西门吹雪12 分钟前
c++线程之std::async浅析
java·jvm·c++
a努力。23 分钟前
国家电网Java面试被问:最小生成树的Kruskal和Prim算法
java·后端·算法·postgresql·面试·linq
朝九晚五ฺ25 分钟前
从零到实战:鲲鹏平台 HPC 技术栈与并行计算
java·开发语言
CUIYD_198927 分钟前
Freemarker 无法转译 & 字符
java·开发语言·spring
自在极意功。34 分钟前
简单介绍SpringMVC
java·mvc·springmvc·三层架构
superman超哥35 分钟前
Rust Vec的内存布局与扩容策略:动态数组的高效实现
开发语言·后端·rust·动态数组·内存布局·rust vec·扩容策略
Evand J37 分钟前
【MATLAB例程,附代码下载链接】基于累积概率的三维轨迹,概率计算与定位,由轨迹匹配和滤波带来高精度位置,带测试结果演示
开发语言·算法·matlab·csdn·轨迹匹配·候选轨迹·完整代码
Yuiiii__39 分钟前
一次并不简单的 Spring 循环依赖排查
java·开发语言·数据库