写点什么

转换 Html(富文本编辑器) 到 docx 的 Java 工具类

作者:alexgaoyh
  • 2024-06-11
    河南
  • 本文字数:882 字

    阅读完需:约 3 分钟

背景

  本文是基于 Java 语言,引入 POI 从而提供将富文本编辑器内的 html 内容转换为 docx 的方式。

效果

  图像备份: 访问


代码

  引入 pom 坐标


    <dependency>        <groupId>cn.net.pap</groupId>        <artifactId>pap4j-common-docx</artifactId>        <version>0.0.1</version>    </dependency>
复制代码


  测试方法


    @Test    public void html2DocxTest() {        // 这里是从富文本编辑器里面获得的一个 html。        String editorHTML = "<p><font color=\"#067d17\">pap.net.cn&nbsp; &nbsp;内容1&nbsp; &nbsp;</font><span style=\"color: rgb(6, 125, 23);\">pap.net.cn</span><span style=\"color: rgb(6, 125, 23);\">&nbsp;</span></p><p><font color=\"#067d17\">内容2&nbsp;</font><img src=\"https://foruda.gitee.com/avatar/1676898910937495644/73661_alexgaoyh_1578916342.png!avatar200\" style=\"width: 200px;\"><font color=\"#067d17\"> 内容3</font></p><p><span style=\"color: rgb(6, 125, 23);\">pap.net.cn</span><span style=\"color: rgb(6, 125, 23);\">&nbsp; &nbsp;</span><font color=\"#067d17\">内容4&nbsp; &nbsp;</font><span style=\"color: rgb(6, 125, 23);\">pap.net.cn</span><span style=\"color: rgb(6, 125, 23);\">&nbsp;</span></p>";        boolean b = Html2DocxUtils.html2docx2UsingPOI(new StringBuffer(editorHTML), "OUT.docx");        assertTrue(b);    }
复制代码

对比

  在实际开发过程中,最开始计划使用 documents4j 进行转换,但是此方法依赖 Microsoft office,客户环境有可能千奇百怪,故在实际线上环境部署过程中,不再使用此方法,而改为使用 poi 进行转换处理。


    IConverter converter = LocalConverter.builder().build();    converter.convert(htmlInputStream).as(DocumentType.HTML).to(outputStream).as(DocumentType.DOCX).execute();    converter.shutDown();
复制代码

总结

  本方法依赖 poi 4.1.2 版本,支持 HTML 中存在三方的图像 URL。

参考

  1. http://pap-docs.pap.net.cn/

  2. https://gitee.com/alexgaoyh/pap4j-boot3/


发布于: 刚刚阅读数: 5
用户头像

alexgaoyh

关注

DevOps 2013-12-08 加入

https://gitee.com/alexgaoyh

评论

发布
暂无评论
转换Html(富文本编辑器)到docx的Java工具类_html_alexgaoyh_InfoQ写作社区