什么是 Java HTML 转 Word?
在 Java 开发中,经常需要将 HTML 内容动态生成为 Word 文档(.docx 格式)。这在报表导出、邮件模板、文档自动化等场景中非常实用。
常用实现方式
以下是几种常见的 Java 实现 HTML 转 Word 的方法:
- Apache POI + Flying Saucer (XHTMLRenderer):将 HTML 转换为 PDF 后再转为 Word(间接);或直接使用 XHTML 渲染为 DOCX。
- Docx4j:支持从 XHTML 生成 Word 文档,对样式兼容性较好。
- 自定义解析器:通过 Jsoup 解析 HTML,再用 POI 构建 Word 内容(适用于简单结构)。
示例代码(使用 Docx4j)
以下是一个简单的 Java 示例,使用 docx4j 将 XHTML 转为 Word:
import org.docx4j.convert.in.xhtml.XHTMLImporterImpl;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
String xhtml = "<html><body><h1>Hello from HTML!</h1></body></html>";
WordprocessingMLPackage wordMLPackage = XHTMLImporterImpl.convert(xhtml, null);
wordMLPackage.save(new java.io.File("output.docx"));
需添加 Maven 依赖:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>11.4.9</version>
</dependency>
注意事项
HTML 转 Word 并非完全保真,复杂布局(如 Flex、Grid)、CSS 动画、JavaScript 等无法保留。建议使用语义清晰、结构简单的 HTML 片段。