# bruce-md2word

> bruce-md2word 把 Markdown 报告、方案和技术说明导出为 Word，支持中文排版、Mermaid 图表转图片和可编辑数学公式，提供 Skill、独立 CLI 与 DSH 插件。

- 原文：https://bruc3van.com/projects/bruce-md2word/
- 作者：Bruce Van
- 分类：文档工作流
- 内容更新：2026-10-03
- 适合谁：已经用 Markdown 写稿，想让 AI Agent 或命令行把报告、方案交付为 Word 的人。
- 预期结果：拿到可继续编辑的 DOCX、实际文件路径和转换警告，再用 Word 或 WPS 检查后交付。

- [GitHub 源码与安装说明](https://github.com/bruc3van/bruce-md2word)
- [相关指南](https://bruc3van.com/playbooks/vibe-writing/)

## Markdown 写好了，怎样交付成 Word？

bruce-md2word 面向已经用 Markdown 写好的报告、方案、会议纪要和技术说明。它将正文、标题、列表和表格转换成可编辑的 Word 内容，提供中文排版预设，并把 Mermaid 图表与 LaTeX 公式一起处理，减少复制到 Word 后重新整理格式的工作。

它既能由具备命令执行能力的 AI Agent 通过 Skill 调用，也能直接在命令行使用；DSH 用户可以安装插件，通过 `word_export` 导出。三种入口使用同一转换引擎。

## 中文排版、图表和公式分别怎么处理？

| 内容 | 导出结果 | 交付前检查 |
| --- | --- | --- |
| 中文正文、标题、列表和表格 | A4 页面与中文排版预设，文字和表格可编辑 | 字体、分页和表格列宽 |
| Mermaid 图表 | 在运行机器上渲染为 PNG 并嵌入 | 中文字体、图中文字大小与布局 |
| LaTeX 数学公式 | 转换为 Word 原生公式，可继续编辑 | 复杂公式是否完整、有无转换警告 |

图表图片和可编辑公式是两种不同的结果。需要修改图表节点时，应修改原始 Mermaid，再重新导出。可以在仓库的[导出效果示例](https://github.com/bruc3van/bruce-md2word#导出效果)中查看中文排版、图表与公式的成品截图和 Markdown 源文件。

## Markdown 与 Word 成品效果对比

bruce-md2word 的三组示例分别展示中文排版、Mermaid 图表和数学公式。左侧是对应 Markdown 的节选，右侧是实际导出的 Word 第 1 页；手机端按输入、输出顺序排列。点击图片可查看大图。

截图由项目作者于 **2026-09-22** 在 Windows 上使用 Microsoft Word 原生渲染、officecli 截取，采用默认样式，未手工调整 Word 排版。以下图片是仓库原图的 WebP 压缩版；[截图生成说明与复现命令](https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/docs/assets/README.md)保留了原始记录。这三份展示样例与下方 31 KB 测评样本不同。

### 分级标题、列表和表格如何保留？

中文 Markdown 中的标题层级、任务列表和表格，在 Word 成品中呈现为分级标题、项目符号和有表头的表格。示例内容为虚构项目。

<div class="export-comparison">
<div class="export-input">
<p><strong>输入 · Markdown 节选</strong></p>
<pre><code># 项目进展报告&#10;&#10;## 一、阶段成果&#10;&#10;### 1. 内容组织&#10;&#10;- 按背景、进展、问题和计划组织报告。&#10;- 使用分级标题呈现层次，突出关键结论。&#10;&#10;### 2. 任务进展&#10;&#10;| 工作事项 | 当前状态 | 下一步安排 |&#10;| --- | --- | --- |&#10;| 需求梳理 | 已完成 | 确认验收范围 |</code></pre>
<p><a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/fixtures/showcase/中文排版.md">查看完整 Markdown 样本</a></p>
</div>
<figure class="export-result">
<a href="https://bruc3van.com/images/bruce-md2word/word-chinese.webp" aria-label="查看中文排版 Word 截图大图">
<img src="https://bruc3van.com/images/bruce-md2word/word-chinese.webp" srcset="https://bruc3van.com/images/bruce-md2word/word-chinese-720.webp 720w, https://bruc3van.com/images/bruce-md2word/word-chinese.webp 1429w" sizes="(max-width: 760px) calc(100vw - 48px), 460px" width="1429" height="2021" loading="lazy" decoding="async" alt="bruce-md2word 导出的项目进展报告，包含分级标题、项目列表、任务表格和引用段落" />
</a>
<figcaption>输出 · Word 第 1 页。来源：bruce-md2word 项目示例，2026-09-22。<a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/docs/assets/word-chinese.png">查看原始 PNG</a>。</figcaption>
</figure>
</div>

### Mermaid 代码怎样变成 Word 图表？

流程图中的判断分支、中文标签和连接关系被渲染为图片，时序图展示用户、Agent 与导出工具的交互。修改节点时需要编辑 Mermaid 源码后重新导出。

<div class="export-comparison">
<div class="export-input">
<p><strong>输入 · Markdown 节选</strong></p>
<pre><code>```mermaid&#10;flowchart LR&#10;  A[整理资料] --&gt; B{资料完整？}&#10;  B --&gt;|是| C[交付报告]&#10;  B --&gt;|补充| A&#10;```</code></pre>
<p><a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/fixtures/showcase/Mermaid图表.md">查看完整 Markdown 样本</a></p>
</div>
<figure class="export-result">
<a href="https://bruc3van.com/images/bruce-md2word/word-mermaid.webp" aria-label="查看Mermaid图表 Word 截图大图">
<img src="https://bruc3van.com/images/bruce-md2word/word-mermaid.webp" srcset="https://bruc3van.com/images/bruce-md2word/word-mermaid-720.webp 720w, https://bruc3van.com/images/bruce-md2word/word-mermaid.webp 1429w" sizes="(max-width: 760px) calc(100vw - 48px), 460px" width="1429" height="2021" loading="lazy" decoding="async" alt="bruce-md2word 导出的 Word 页面，上半部为中文资料处理流程图，下半部为用户、Agent 和导出工具的时序图" />
</a>
<figcaption>输出 · Word 第 1 页。来源：bruce-md2word 项目示例，2026-09-22。<a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/docs/assets/word-mermaid.png">查看原始 PNG</a>。</figcaption>
</figure>
</div>

### LaTeX 公式导出后是什么样？

分式、求和、积分、矩阵和中文分段条件以数学排版显示。项目说明其输出为 Word 原生公式；截图只能展示外观，是否可编辑仍应打开 DOCX 验证。

<div class="export-comparison">
<div class="export-input">
<p><strong>输入 · Markdown 节选</strong></p>
<pre><code>$$&#10;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}&#10;$$&#10;&#10;$$&#10;\sum_{i=1}^{n}i=\frac{n(n+1)}{2}&#10;$$</code></pre>
<p><a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/fixtures/showcase/数学公式.md">查看完整 Markdown 样本</a></p>
</div>
<figure class="export-result">
<a href="https://bruc3van.com/images/bruce-md2word/word-math.webp" aria-label="查看数学公式 Word 截图大图">
<img src="https://bruc3van.com/images/bruce-md2word/word-math.webp" srcset="https://bruc3van.com/images/bruce-md2word/word-math-720.webp 720w, https://bruc3van.com/images/bruce-md2word/word-math.webp 1429w" sizes="(max-width: 760px) calc(100vw - 48px), 460px" width="1429" height="2021" loading="lazy" decoding="async" alt="bruce-md2word 导出的数学模型说明，展示求根公式、求和、积分、矩阵和带中文条件的分段函数" />
</a>
<figcaption>输出 · Word 第 1 页。来源：bruce-md2word 项目示例，2026-09-22。<a href="https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/docs/assets/word-math.png">查看原始 PNG</a>。</figcaption>
</figure>
</div>

## 同一份复杂 Markdown，三种 Skill 的效果如何？

以下为项目作者在 README 中公布的**单次转换记录**：同一份约 31 KB Markdown，包含标题、表格、六类 Mermaid 图和 6 个公式，每个 Skill 各运行一次。耗时是当次任务全流程时间，并非转换引擎基准测试；bruce-md2word 的时间包含首次安装 CLI。

| 本次使用的 Skill | README 记录的成品表现 | 全流程用时 | 本次限制与问题 |
| --- | --- | --- | --- |
| bruce-md2word | 标题、表格和六类图的结构与布局保留较完整；6 个公式为可编辑 Word 公式 | 148.3 秒 | 两张图缩小后文字偏小，31 页成品有部分留白 |
| documents:documents（Codex） | 主要文字、表格和普通图片可用；Mermaid 保留节点与关系文字，但未还原方向和布局 | 381.8 秒 | 临时编写 Python 转换与制图代码；缺少 soffice.exe，规定的渲染验收未完成；部分公式结构简化 |
| docx（Anthropic） | 有动态目录和原生脚注；普通图片与表格大体可用，Mermaid 布局未还原 | 312.8 秒 | 临时编写并调试 JavaScript；初始文件经 Word 修复另存，块公式和表格内图片仍有缺陷 |

**如何解读：** 这份记录反映专用 Markdown 转换工具与两种通用 Word 制作 Skill 在一个样本上的表现。通用 Skill 的结果取决于 Agent 临时编写的脚本，不代表其在其他任务中的上限；也不能据此推导普遍速度排名。

来源：[项目 README 的单次实际转换测评](https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/README.md#单次实际转换测评)，本页于 2026-10-03 整理。该公开记录未列出完整测试硬件、模型、Skill 版本和原始计时日志，本页未独立复测，也不据此计算提速比例或作独立评测背书。

## 选择哪种使用方式？

| 你的工作方式 | 入口 | 需要准备什么 |
| --- | --- | --- |
| 让 AI Agent 写稿并交付 Word | Skill + CLI | 支持命令执行的 Agent，以及 Node.js 24 或 26 |
| 自己在终端导出，或接入脚本 | 独立 CLI | Node.js 24 或 26 和包管理器 |
| 已经在使用 DeepSeek Harness | DSH 插件 | 按当前项目说明确认宿主兼容范围及服务要求 |

独立 CLI 不需要启动 DSH。依赖安装后，转换不要求 Office、Python、浏览器或在线转换服务；中文图表需要运行机器具备中文字体。最新环境要求和安装命令以项目仓库为准。

## 第一份文档怎么导出？

先按仓库说明安装 Skill 或 CLI，再准备一份 Markdown 和它引用的本地图片。已安装 CLI 时，可以运行：

```sh
bruce-md2word docs/报告.md --strict -o output/项目报告.docx
```

也可以把下面的要求交给 Agent：

> 请使用 bruce-md2word 将 docs/报告.md 严格导出为 Word，返回实际文件路径和所有警告；如果导出失败，先说明错误与需要修正的内容，不要把未生成的文件当作交付结果。

成功时，CLI 返回包含实际路径和警告的 JSON。同名文件会自动编号，所以要使用返回的路径，而不是猜测文件名。显式指定输出目录时，父目录需要存在。文件保存在执行 CLI 或 DSH 服务的机器上；使用云端 Agent 时，不一定在你的电脑上。

## 严格模式通过，就能直接交付吗？

还需要打开成品检查。`--strict` 会拒绝保存检测到内容降级的文档，例如图片缺失或不支持的图表语法；通过只表示没有检测到这类降级。事实、引用、实际分页和图表可读性仍需人工核对。

Mermaid 支持部分图表类型的常用语法，不覆盖全部语法；网络图片不会自动下载，SVG 图片输入不受支持。遇到警告时，先修正 Markdown、图片路径或图表，再重新导出，保留原始稿件方便后续修改。

## 文档会上传到哪里？

默认 CLI 和 DSH 项目模式在运行它们的机器上完成转换，不调用大模型 API，也不需要转换服务的 API Key。安装与更新依赖时会访问软件源。如果 Agent 本身在云端生成或读取文档，其数据处理仍受对应平台规则约束，不能把“转换在本地运行”理解为整个 Agent 工作流都不联网。

## 和另外几个文档工具怎么选？

- 已有 Markdown，需要中文排版、图表和公式的 Word 成品：使用 bruce-md2word。
- 在浏览器里直接保存 AI 对话：看 [Chat2Word](https://bruc3van.com/projects/chat2word/)。
- 先把 Office 或 PDF 资料转成 Markdown：看编辑器扩展 [DocuGenius](https://bruc3van.com/projects/docugenius/) 或命令行工具 [Bruce Doc Converter](https://bruc3van.com/projects/bruce-doc-converter/)。

从整理资料到写稿、核对和交付的完整流程，见 [AI 文档写作与导出](https://bruc3van.com/playbooks/vibe-writing/)。

## 项目文档与使用限制

- [截图生成方式与日期](https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/docs/assets/README.md)
- [项目 README](https://github.com/bruc3van/bruce-md2word/blob/1c0cdb1a5cb0e154731f832e62da34e455ac73c7/README.md)

内容更新：2026-10-03。正文依据所列 README 的固定提交整理；内容更新日期不代表已核验最新版本。最新版本与安装要求见项目仓库。

Mermaid 图表嵌入为图片，不能在 Word 中直接编辑节点；公式转换为 Word 原生公式。严格模式检查转换完整性，不代表事实正确或排版已验收，不提供自定义 Word 模板接口。
