Mammoth:Java/JVM的高效.docx转HTML工具
Mammoth是一款强大的开源工具,专为Java和JVM环境设计,可以将Microsoft Word、Google Docs以及LibreOffice创建的.docx文档转换为简洁的HTML。它的核心理念是利用文档中的语义信息进行转换,忽略不必要的细节,如字体、字号和颜色等样式信息。例如,它会将标记为"Heading 1"的段落转换为<h1>
标签,而非复制其原始样式。
该项目旨在应对.docx和HTML之间结构的巨大差异,尽管对于复杂的文档,转换可能并不完美。但如果你仅依赖样式来对文档进行语义化标注,那么Mammoth的表现将非常出色。
主要特性包括:
- 标题(Headings)
- 列表(Lists)
- 自定义.docx样式到HTML的映射,比如将
WarningHeading
映射为<h1>.warning
- 表格(Tables)
- 脚注和尾注(Footnotes and Endnotes)
- 图像(Images)
- 粗体、斜体、下划线、删除线、上标和下标(Bold, Italics, Underlines, Strikethrough, Superscript and Subscript)
- 链接(Links)
- 换行(Line Breaks)
- 文本框(Text Boxes)
安装与使用
Mammoth已上线Maven Central,只需简单地在你的pom.xml
中添加以下依赖:
<dependency>
<groupId>org.zwobble.mammoth</groupId>
<artifactId>mammoth</artifactId>
<version>1.5.0</version>
</dependency>
此外,该工具还支持JavaScript(浏览器和Node.js)、Python、WordPress和.NET平台。
基本使用
要将现有的.docx文件转换为HTML,首先创建一个DocumentConverter
实例,然后调用convertToHtml
方法,传入File
对象即可。例如:
import org.zwobble.mammoth.DocumentConverter;
import org.zwobble.mammoth.Result;
DocumentConverter converter = new DocumentConverter();
Result<String> result = converter.convertToHtml(new File("document.docx"));
String html = result.getValue(); // 获取生成的HTML
Set<String> warnings = result.getWarnings(); // 获取转换过程中的警告信息
自定义映射和图像处理
你可以通过addStyleMap
方法添加自定义风格映射,并通过imageConverter
方法设置自定义的图像处理器,以改变默认的行为,如如何处理图片链接或自定义HTML元素。
Mammoth提供了灵活的API,如DocumentConverter
类的一系列方法,供你在转换过程中实现更精细的控制,包括处理评论、修改默认样式行为等。
总体而言,Mammoth是一个实用且易用的库,无论你是开发者还是内容创作者,都能轻松地将你的.docx文档转化为适应现代Web的HTML。无论是用于博客、网站还是其他在线内容发布,Mammoth都是值得信赖的得力助手。