Markdown 转 PDF

左边写 Markdown,右边实时预览,一键下载分页排版的 PDF,导出的文字可以直接选中复制。文件不会离开你的浏览器。

免费 · 无需注册 · 全程在浏览器内运行最后更新

怎么把 Markdown 转成 PDF?

把 Markdown 粘贴到上方编辑器,选好纸张尺寸,点击「生成 PDF」即可直接下载,导出的是真实文本而不是截图,可以选中和搜索。如果习惯命令行,安装 Pandoc 和一个 PDF 引擎后执行 pandoc report.md -o report.pdf,同样可以在本地完成转换。

markdown
pandoc report.md -o report.pdf

Pandoc 读取 report.md,在同一目录生成分好页的 report.pdf,标题、列表、表格和代码块都按打印版式排布。

在线使用 Markdown 转 PDF

参数设置

纸张尺寸
页面方向

Markdown 源码

预览

Markdown 转 PDF 示例

欢迎使用 MDUtil 的 Markdown 转 PDF 工具!

功能特性

  • 转换后的 PDF 文字可选中、可搜索
  • Markdown 实时预览
  • 代码语法高亮
  • 支持表格、列表等常用元素
  • 可自定义纸张尺寸与方向
  • 生成后立即下载

代码示例

function generatePdf() {
  console.log("正在把 Markdown 转换为 PDF……");
}

表格示例

元素是否支持示例
标题# 一级标题
加粗粗体文字
斜体斜体文字
列表- 列表项
代码块code

提示:在左侧编辑 Markdown,右侧查看预览,确认无误后点击「生成 PDF」。

数学公式示例

  • 一元二次方程求根公式: x=b±b24ac2ax = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
  • 质能方程: E=mc2E = mc^2

Markdown 转 PDF 的几种做法

下面每种方式都能产出 PDF,区别在于安装成本、排版控制力,以及对原文结构的还原程度。按使用频率来选即可。

浏览器直接转换(零安装)

最快的方式:把 Markdown 贴进上方编辑器,确认预览无误后下载。适合临时文档,也是公司电脑装不了工具链时唯一可行的办法。

markdown
# 季度报告

## 核心数据

- 收入环比增长 12%
- 流失率降至 1.8%

| 指标 | Q1  | Q2  |
| ---- | --- | --- |
| MRR  | 82k | 94k |

生成一份 A4 版式的 PDF,标题、列表和表格各就各位,文字可以选中、复制和搜索。

Pandoc + LaTeX 引擎

还原度最高的方案,也是大多数人说「pandoc markdown 转 pdf」时指的做法。可以获得真正的排版效果,以及自动目录、参考文献和交叉引用。

markdown
pandoc report.md -o report.pdf \
  --pdf-engine=xelatex \
  --toc \
  -V geometry:margin=1in

输出带自动目录、页边距 1 英寸的排版级 PDF。前提是安装 TeX 发行版(TeX Live、MacTeX 或 MiKTeX),占用 1–4 GB 磁盘空间。

Pandoc 不装 LaTeX

不想为了导出 PDF 装几个 GB 的 TeX,可以让 Pandoc 改用基于 HTML 的引擎,这样排版直接用普通 CSS 控制,不必写 LaTeX 宏。

markdown
pandoc report.md -o report.pdf \
  --pdf-engine=weasyprint \
  --css=print.css

同一份文档经由 HTML + CSS 渲染,print.css 里的 @page 规则、页边距和字体决定最终版式。

VS Code(Markdown PDF 插件)

文档本来就在仓库里时最顺手。装上 Markdown PDF 插件,不用离开编辑器就能导出当前文件。下面这段工作区配置用来固定输出格式。

markdown
// .vscode/settings.json
{
  "markdown-pdf.type": ["pdf"],
  "markdown-pdf.format": "A4",
  "markdown-pdf.displayHeaderFooter": true
}

在命令面板执行「Markdown PDF: Export (pdf)」,会在 report.md 旁边生成 report.pdf。首次导出较慢,因为插件要先下载内置的 Chromium。

Node 命令行批量转换

需要在 CI 里把整个文档目录一次性转完,而不是逐个手动导出时,用 Node 转换器配合 glob 最省事。

markdown
npx md-to-pdf report.md
npx md-to-pdf --stylesheet print.css "docs/**/*.md"

第一条命令生成 report.pdf;第二条把 docs/ 下所有 Markdown 用同一份打印样式表转换一遍。

强制分页

Markdown 本身没有分页语法,这是转 PDF 时最容易踩的坑。通用做法是插入一段原始 HTML。

markdown
摘要到这里结束,仍在第一页。

<div style="page-break-after: always;"></div>

# 附录 A

基于 HTML / Chrome 的转换器会让「附录 A」另起一页;LaTeX 和纯文本渲染器会忽略这个 div,依赖它之前请先验证输出。

各种 Markdown 转 PDF 方案怎么选

选哪种取决于你更在意零配置、精确排版,还是能在构建流水线里稳定复现。下面是常见方案的实际表现。

平台支持情况说明
本页转换器即开即用无需安装、不上传文件。可设置纸张尺寸和方向,暂不支持自定义字体与页边距。
Pandoc完全可控还原度最高,支持目录与参考文献,但需要另外安装 PDF 引擎。
VS Code较好Markdown PDF 插件可导出当前文件,首次运行会下载内置 Chromium。
Obsidian内置支持文件 → 导出为 PDF,所见即所得,连主题样式一起导出。
Typora内置支持文件 → 导出 → PDF,可配置页眉、页脚和页码模板。
浏览器打印部分支持在任意渲染后的 Markdown 页面按 Cmd/Ctrl+P。免费即时,但分页位置和背景色不太可控。
GitHub / GitLab不支持两者都没有 PDF 导出功能,只能打印渲染后的页面,或把源码贴到转换器里。

如何用本工具把 Markdown 转成 PDF

  1. 放入 Markdown

    在左侧编辑器输入或粘贴 Markdown,也可以点导入按钮,从本地载入已有的 .md 文件。

  2. 核对实时预览

    右侧会随输入即时重绘。长文档建议保持「同步滚动」开启,预览会跟着光标走。

  3. 设置纸张格式

    按最终打印或归档的场景,选择 A4、Letter 或 A3,再决定纵向还是横向。

  4. 生成 PDF

    点击「生成 PDF」。文档在浏览器本地构建并立即下载,导出的文字可以选中和搜索。

常见问题

导出的 PDF 里文字能选中和搜索吗?

可以。转换器写入的是真实文本对象,而不是把预览截成图片,因此生成的 PDF 和普通文本文档一样,可以选中、复制、搜索,也能被检索工具索引。

该用 Pandoc 还是在线的 Markdown 转 PDF 工具?

如果经常转换,需要自动目录、参考文献或精确排版,并且不介意安装 PDF 引擎,就用 Pandoc。临时导出一份文档、公司电脑装不了软件、或者希望几秒钟拿到结果,用在线工具更划算。

VS Code 里怎么把 Markdown 转成 PDF?

安装 Markdown PDF 插件,打开文件后在命令面板执行 Markdown PDF: Export (pdf)。不想装插件的话,可以打开内置预览,右键选择打印并另存为 PDF,还原度略低但零依赖。

我的 Markdown 会被上传到服务器吗?

不会。预览和 PDF 生成全部由浏览器端的 JavaScript 完成,内容不会被传输、存储或记录日志,因此处理内部文档、草稿和客户资料都是安全的。

Markdown 转 PDF 时怎么强制分页?

Markdown 本身没有分页语法,需要插入一段原始 HTML:一个带 page-break-after: always 样式的 div。走 HTML 渲染的转换器会生效,基于 LaTeX 的则会忽略它,务必先检查输出结果。

图片会出现在导出的 PDF 里吗?

图片会在实时预览中正常显示。下载的 PDF 侧重文本内容,包括标题、段落、列表、表格、代码块和引用,因此体积小且全文可选中。图片较多的文档,建议改用浏览器打印预览区域来保留图像。

表格、代码块和数学公式能正确转换吗?

表格、围栏代码块、引用块以及有序无序列表都会在 PDF 中排版。LaTeX 公式在预览里会正常渲染,但进入 PDF 后是纯文本形式,公式密集的论文更适合用 Pandoc 配合 XeLaTeX。

为什么导出的 PDF 里中文显示不出来?

PDF 标准内置字体只包含拉丁字形,中文、日文、韩文和西里尔字母可能因此丢失。可以用 Pandoc 配合 XeLaTeX 并指定思源黑体、Noto Sans CJK 这类含中文字形的字体,或者直接用浏览器打印预览区域,这样会使用系统字体。

可以把 PDF 反过来转成 Markdown 吗?

本工具是单向的。PDF 转 Markdown 难得多,因为 PDF 保存的是定位好的字形而不是文档结构,标题、列表和表格都得靠推断还原。可以试试 MarkItDown、Marker 这类专门的抽取工具。

能转换多大的文档?

没有硬性限制,但生成过程运行在浏览器主线程上,几百页的文档会明显变慢,内存占用也会短时升高。把超大手册按章节拆开转换,体验会流畅很多。