Mammoth:高效便捷的.docx到HTML转换器
Mammoth是一个专门设计用来将.docx文档(如Microsoft Word、Google Docs和LibreOffice创建的文档)转换为HTML的工具。它的目标是通过利用文档中的语义信息来生成简洁、干净的HTML,而忽略其他细节,如字体、字号和颜色等呈现样式。
由于.docx和HTML之间的结构差异较大,对于复杂的文档,转换可能无法完美无瑕。Mammoth在文档中只使用样式进行语义标记时表现最佳。
以下是目前支持的功能特性:
- 标题(如 Heading 1 转换为 h1 元素)
- 列表
- 自定义docx样式到HTML的映射,例如将
WarningHeading
转换为h1.warning
- 表格,忽略表格本身的格式,但保留文本的格式
- 脚注和尾注
- 图像
- 粗体、斜体、下划线、删除线、上标和下标
- 链接
- 换行
- 文本框,内容作为单独段落出现在原段落之后
- 注释
在线演示与安装
最简单尝试Mammoth的方式是使用网页版演示,只需克隆仓库并运行make setup
,然后在浏览器中打开browser-demo/index.html
。
要安装Mammoth,可以通过npm:
npm install mammoth
此外,Mammoth还提供了Python、WordPress、Java/JVM和.NET等平台的版本。
使用指南
命令行接口 (CLI)
你可以通过指定.docx文件及其输出文件路径来转换文件:
mammoth document.docx output.html
如果没有指定输出文件,输出将被写入标准输出。
图片处理
默认情况下,图片以内联方式包含在输出HTML中。如果指定了--output-dir
,图片会被保存为单独的文件。
样式映射
自定义样式映射可通过--style-map
参数读取文件,例如:
mammoth document.docx output.html --style-map=custom-style-map
Markdown支持
Markdown支持已弃用,建议生成HTML后使用独立库将其转换为Markdown,以获得更好的效果。
库级操作
在Node.js或浏览器环境中,可以常规方式引入Mammoth:
var mammoth = require("mammoth");
或者,使用mammoth.browser.js
这个包含了Mammoth和其依赖项的单一JavaScript文件。如果未找到模块系统,mammoth
将作为全局变量存在。
基本转换
要转换现有.docx文件为HTML,可调用mammoth.convertToHtml()
:
var mammoth = require("mammoth");
mammoth.convertToHtml({path: "path/to/document.docx"})
.then(function(result){
var html = result.value;
var messages = result.messages;
})
.catch(function(error) {
console.error(error);
});
自定义风格映射与图像处理器
可以通过传递一个带有styleMap
属性的选项对象自定义样式映射。还可以通过设置convertImage
选项改变图片处理方式。
Mammoth是你理想的选择,它能帮助你轻松地从.docx格式过渡到HTML,尤其适用于那些注重内容结构而非视觉表现的场合。其简洁的API和广泛的平台支持使其成为跨平台文档转换的理想工具。立即尝试Mammoth,提升你的文档处理效率!