场景解决方案2026年6月27日

用 Markdown 写文档,怎么交付成 Word 或 PDF?

你用 Markdown 写得很爽,但客户、老师、同事只收 Word 或 PDF。本文讲清 Markdown 转 Word/PDF 的三类方法(复制粘贴、命令行 pandoc、浏览器转换)各自的坑,以及长文档、图片、字体怎么处理不翻车。

你习惯用 Markdown 写作,纯文本、可版本管理、专注内容;但下游只认 Word 或 PDF。问题不在 Markdown,而在"怎么把一份结构化的纯文本,无损地变成带排版的交付物"。方法有三类,坑各不相同。

文章核心论点配图

为什么不能直接把 Markdown 当 Word 发?

因为 .md 是源码、.docx/.pdf 是排版成品,两者是不同层级的东西。.md## 标题 只是一个标记,对方电脑上若没有渲染器,看到的就是一串带 # 的纯文本,没有字号、没有目录、没有页码。客户、导师、行政同事的工作流是 Office 和 PDF,给他们 .md 等于给了一份"半成品"。

所以交付的本质是一次格式转换:把 Markdown 的结构(标题、列表、代码、表格、图片)映射到目标格式对应的排版元素上。做得好不好,全看转换方式选得对不对。

Markdown 转 Word / PDF 有哪几种方法?

主流有三类,按"省事程度"和"可控程度"排开:

方法 适合场景 代价
复制渲染结果粘贴进 Word 一两段短内容 带网页样式,字号/行距常错位
命令行 pandoc / wkhtmltopdf 批量、自动化、自定义模板 需安装环境、记参数、处理字体
浏览器在线转换 偶尔转单个文件、要立刻就要 超长文档受浏览器内存限制

三者没有绝对优劣:要进 CI 流水线批量出 PDF,pandoc 是正解;只是偶尔把一份 .md 交出去,装 pandoc + 调参的成本远高于直接在浏览器转一下。

用浏览器把 .md 转 Word/PDF 怎么做?

如果你只是偶尔交付,最省事的是浏览器在线转换:不装环境、不记参数、不操心跨平台字体。把 .md 拖进 Markdown 转换工具,右侧选目标格式,点开始转换即可下载。它的几个关键点:

  • PDF 默认用专业排版字体(思源宋体一类),代码块带语法高亮、表格有清晰边框,是"能直接发邮件给客户"的水准;
  • Word 输出是真正的 .docx 结构,不是"HTML 改后缀",样式可以在 Word 里二次编辑;
  • 亮/暗双主题:同一份 .md 可选亮色(适合打印/客户)或暗色(适合截图/分享);
  • 源稿不上传:转换在浏览器本地完成,源文件和导出文件都不离开你的设备。

转换前先修一下格式,能少很多麻烦

转换效果差,很多时候根因是源 Markdown 本身格式不规范:标题 # 后漏空格、列表缩进不一致、有序列表全写成 1.。这些在渲染器里可能"碰巧"显示正常,但换一个转换引擎就可能解析错位。

所以正式交付前,先把 .md 过一遍 Markdown 格式检查工具,一键修复标题空格、列表缩进、行尾空格等问题,再去转换,结果会稳定很多。这一步尤其适合处理"别人发来的、格式很乱的 .md"。

图片、长文档、字体怎么处理?

这三处是转换最容易翻车的地方,逐一说清:

  • 本地图片:用转换工具的"插入图片"按钮添加,会内嵌进导出文件;Markdown 里引用的远程图片 URL 会在转换时尝试加载,若对方服务器有 CORS 限制,会用占位图替代而不是让整个转换失败。
  • 长文档:80–150 页的学位论文级别通常稳定;200+ 页建议先按二级标题拆成多个 .md 分别导出再合并,避免单次浏览器内存压力。
  • 字体:中文交付优先选内置的专业宋体/黑体,避免用系统里某个别人没有的字体——PDF 会嵌入字体所以没问题,但若是给别人继续编辑的 Word,最好用通用字体。

边界:什么时候该用 pandoc 而不是浏览器

如果你要做的是批量、自动化、强模板定制——比如每天从一堆 .md 自动生成统一模板的 PDF、要精确控制页眉页脚和参考文献样式、要接进 CI——那么命令行 pandoc + LaTeX 模板才是正解,可控性远超浏览器方案。浏览器转换的甜点区是"个人、偶发、要立刻拿到结果"的单文件交付。判断标准很简单:会不会重复做、要不要精确控版式,会且要就上 pandoc,否则浏览器更划算。

小结

Markdown 交付成 Word/PDF,本质是一次结构化格式转换。记住:别用"复制渲染结果粘贴"这种带样式的脏办法;偶尔交付用浏览器转换最省事,转换前先用格式检查修一遍源码;批量自动化再上 pandoc。把图片、长文档、字体这三个坑提前处理好,交付出来的文件就能直接发出去。

本文用到的工具

常见问题

用对工具不会乱。标题层级、列表、代码块、表格都会映射成 Word 对应的样式结构。容易乱的是『复制粘贴渲染结果』这种做法——它带的是网页样式,进 Word 后字号行距常常错位。直接做 .md → .docx 的结构化转换更稳。