富文本转word
- 环境
- 使用poi-tl-ext的原因
- 富文本转word代码
环境
<dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version>
</dependency>
- poi-tl-ext已经包含了poi,poi-tl等jar包,所以无需重复导入
- poi-tl文档链接
- poi-tl-ext github链接
使用poi-tl-ext的原因
- 对比poi原生来说简单方便操作
- 对比收费软件来说,开源免费,而且效果也很牛
富文本转word代码
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的操作,还可以自定义插件,也是牛的
- 富文本部分内容如下
<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> </p>\n" +"<p><span style=\"font-size: 14pt;\"> <span style=\"color: #ba372a;\">为进一步规范公司安全宣传和教育培训工作,不断提高公司员工安全生产意识和安全素质,增强安全生产法制观念,有力推动公司安全生产基础建设、安全生产诚信建设、安全生产标准化建设和企业安全文化建设,确保今年的安全生产目标指标的实现,特制定本计划如下:</span></span></p>
- 导出内容如下