Markdown 转 PDF
左边写 Markdown,右边实时预览,一键下载分页排版的 PDF,导出的文字可以直接选中复制。文件不会离开你的浏览器。
怎么把 Markdown 转成 PDF?
把 Markdown 粘贴到上方编辑器,选好纸张尺寸,点击「生成 PDF」即可直接下载,导出的是真实文本而不是截图,可以选中和搜索。如果习惯命令行,安装 Pandoc 和一个 PDF 引擎后执行 pandoc report.md -o report.pdf,同样可以在本地完成转换。
pandoc report.md -o report.pdfPandoc 读取 report.md,在同一目录生成分好页的 report.pdf,标题、列表、表格和代码块都按打印版式排布。
在线使用 Markdown 转 PDF
参数设置
Markdown 源码
预览
Markdown 转 PDF 示例
欢迎使用 MDUtil 的 Markdown 转 PDF 工具!
功能特性
- 转换后的 PDF 文字可选中、可搜索
- Markdown 实时预览
- 代码语法高亮
- 支持表格、列表等常用元素
- 可自定义纸张尺寸与方向
- 生成后立即下载
代码示例
function generatePdf() {
console.log("正在把 Markdown 转换为 PDF……");
}
表格示例
| 元素 | 是否支持 | 示例 |
|---|---|---|
| 标题 | ✓ | # 一级标题 |
| 加粗 | ✓ | 粗体文字 |
| 斜体 | ✓ | 斜体文字 |
| 列表 | ✓ | - 列表项 |
| 代码块 | ✓ | code |
提示:在左侧编辑 Markdown,右侧查看预览,确认无误后点击「生成 PDF」。
数学公式示例
- 一元二次方程求根公式:
- 质能方程:
Markdown 转 PDF 的几种做法
下面每种方式都能产出 PDF,区别在于安装成本、排版控制力,以及对原文结构的还原程度。按使用频率来选即可。
浏览器直接转换(零安装)
最快的方式:把 Markdown 贴进上方编辑器,确认预览无误后下载。适合临时文档,也是公司电脑装不了工具链时唯一可行的办法。
# 季度报告
## 核心数据
- 收入环比增长 12%
- 流失率降至 1.8%
| 指标 | Q1 | Q2 |
| ---- | --- | --- |
| MRR | 82k | 94k |生成一份 A4 版式的 PDF,标题、列表和表格各就各位,文字可以选中、复制和搜索。
Pandoc + LaTeX 引擎
还原度最高的方案,也是大多数人说「pandoc markdown 转 pdf」时指的做法。可以获得真正的排版效果,以及自动目录、参考文献和交叉引用。
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 宏。
pandoc report.md -o report.pdf \
--pdf-engine=weasyprint \
--css=print.css同一份文档经由 HTML + CSS 渲染,print.css 里的 @page 规则、页边距和字体决定最终版式。
VS Code(Markdown PDF 插件)
文档本来就在仓库里时最顺手。装上 Markdown PDF 插件,不用离开编辑器就能导出当前文件。下面这段工作区配置用来固定输出格式。
// .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 最省事。
npx md-to-pdf report.md
npx md-to-pdf --stylesheet print.css "docs/**/*.md"第一条命令生成 report.pdf;第二条把 docs/ 下所有 Markdown 用同一份打印样式表转换一遍。
强制分页
Markdown 本身没有分页语法,这是转 PDF 时最容易踩的坑。通用做法是插入一段原始 HTML。
摘要到这里结束,仍在第一页。
<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
放入 Markdown
在左侧编辑器输入或粘贴 Markdown,也可以点导入按钮,从本地载入已有的 .md 文件。
核对实时预览
右侧会随输入即时重绘。长文档建议保持「同步滚动」开启,预览会跟着光标走。
设置纸张格式
按最终打印或归档的场景,选择 A4、Letter 或 A3,再决定纵向还是横向。
生成 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 这类专门的抽取工具。
能转换多大的文档?
没有硬性限制,但生成过程运行在浏览器主线程上,几百页的文档会明显变慢,内存占用也会短时升高。把超大手册按章节拆开转换,体验会流畅很多。