跳到主要内容
实用工具2026-10-20Begin5 分钟阅读

Word 转 Markdown 怎么转才干净:两条路线与格式保真对照

把 Word 文档转成 Markdown,直接复制粘贴必然乱:粗体变样式残留、表格成图片、标题级别全丢。干净的做法有两条路线——pandoc 命令行(批量、可脚本化)和浏览器本地转换(零安装、文档不出机器)。两条路线底层面对的是同一组格式难题,本文逐一拆解;赶时间的可以直接用 Word 转 Markdown 工具,在浏览器里完成转换,文件不上传。

为什么「复制粘贴」永远不干净

Word 的文档模型是样式驱动的:一段文字「看起来是标题」,可能是因为套了 Heading 2 样式,也可能是手工加大字号加粗。Markdown 是语义标记:## 就是二级标题,不存在「看起来像」。

所以转换的本质是一次语义猜测:转换器必须判断「这个加粗大字」到底是不是标题。pandoc 和浏览器工具走的是同一条路径——先把 docx 解析成带语义的中间格式(HTML),再映射到 Markdown。样式残留越多的文档,猜测越难。

路线一:pandoc(命令行,适合批量)

pandoc input.docx -t gfm -o output.md
  • -t gfm 输出 GitHub Flavored Markdown,表格、删除线、任务列表兼容性最好;
  • --extract-media=./assets 把图片抽到本地目录而不是内联;
  • 批量转换直接 for 循环:for f in *.docx; do pandoc "$f" -t gfm -o "${f%.docx}.md"; done

适合采编团队、静态站点迁移这类一次性处理几百篇的场景。

路线二:浏览器本地转换(适合含敏感内容的文档)

合同扫描件、内部评审稿、未公开的方案书——这类文档传第三方在线转换器有泄露风险。浏览器本地方案的全部计算都在你自己的机器上完成,拔掉网线照样能转:

  1. 打开 docx 转 Markdown 工具;
  2. 拖入 .docx 文件(Word 2007 及以上);
  3. 选择图片处理方式(保留内联或丢弃为占位符);
  4. 复制结果或下载 .md 文件。

文档不会被上传——这不是承诺,是架构:整个转换管线跑在浏览器进程里,没有后端可以接收文件。反向需求(Markdown 回填 Word 交付格式)用 Markdown 转 Word 工具 同样在本地完成。

格式保真对照表

Word 元素转换结果备注
标题样式(Heading 1-6)# ~ ######✅ 样式套用正确时无损
手工加粗大字(非样式标题)普通段落⚠️ 语义无法恢复,需手动升级
表格GFM 管道表格✅ 规则表格无损
合并单元格的复杂表格退化/拆散⚠️ Markdown 表格模型不支持合并
图片base64 内联或抽离体积见下节
自动编号列表普通有序列表✅ Markdown 自带编号,不保留 Word 的编号样式
脚注GFM 脚注语法 [^1]部分平台渲染不支持
批注/修订丢失转换前先「接受所有修订」
公式(OMML)丢失或转 LaTeX(pandoc)两条路线对公式支持都有限
SmartArt / 艺术字丢失或降级为纯文本建议先截图

三个最常见的坑

坑一:旧版 .doc 直接报错

.doc 是二进制 OLE 格式,和 .docx(OOXML,ZIP 包 XML)是两代技术。所有现代转换器只吃 OOXML——遇到 .doc 先在 Word/WPS 里「另存为 .docx」。工具端对 .doc 会直接提示这条路径而不是静默转出乱码。

坑二:图片把文件撑爆

图片内联(base64)能让单个 .md 文件自包含,但一张 2MB 的截图 base64 后约 2.7MB,十张图的文档转出来十几 MB,编辑器卡顿、git 仓库膨胀。规则:要自包含选内联,要长期维护选抽离图片目录。一次性贴 wiki 可以内联;进版本库的文档建议抽离。

坑三:自动编号变「手写编号」

Word 的自动编号是「样式 + 计数器」,转成 Markdown 后变成 1. 2. 3. 字面量——看起来一样,但 Word 里加一项全文自动重排,Markdown 里得手动改。这是格式模型的根本差异,无解,知道就好。

实现注记 / Implementer's note

浏览器版工具的管线是 mammoth(docx → 语义 HTML)+ turndown + GFM 插件(HTML → Markdown),两个库都是动态 import——打开工具页的瞬间不加载转换库,拖入文件的瞬间才拉取,首屏零成本。图片开关的默认值选了「保留」:内联 base64 虽然体积大,但「转出来的文件发给别人打不开图」比「文件大」更伤。mammoth 的转换警告(比如丢了不支持的元素)会原样透传到结果区,不吞——用户有权知道丢了什么。旧 .doc 的拒绝文案写明了出路(另存为 .docx),因为「报错 + 指路」比「静默降级」诚实。

FAQ

转换后表格全乱了怎么办?

大概率是合并单元格。Markdown 表格模型(包括 GFM)不支持 rowspan/colspan,复杂表格要么拆成多张简单表,要么保留为图片,要么改用 HTML 表格嵌入。

公式能转吗?

pandoc 可以把 OMML 公式转成 LaTeX(--to markdown 方言),浏览器路线对公式基本无能为力。重度公式文档建议直接在 LaTeX/Typst 里重写。

100 页的大文档会卡吗?

浏览器本地方案处理几十 MB 的 docx 没有压力(解析在本地内存完成),瓶颈通常在编辑器打开超大 .md 文件——超长文档建议按章节拆分转换。PDF 方向的转换(合并/拆分/压缩)可以配合 PDF 工具全家桶 的路线完成。

会上传我的文件吗?

不会。转换代码在你的浏览器里运行,文件内容不离开本机——可以在断网状态验证:拔网线后工具依然完整工作。


这篇转换路线笔记来自 ToolVault 工具匣的文档转换工具实现过程,两条路线的差异都在开发中实测过。

补充注记

mammoth 的 docx→HTML 映射表里,样式名是中英文环境敏感的(「标题 1」vs "Heading 1"),WPS 生成的文档偶尔带私有样式名——工具没有穷举映射,而是依赖 mammoth 的样式等级嗅探兜底,实测对主流模板覆盖良好,非主流模板的残留样式以警告形式提示人工复核。