Markdown 转 PDF
免费 Markdown 转 PDF:左边写、右边实时预览,支持表格、任务列表、代码和 Mermaid 流程图,一键保存为 PDF,也能用分享链接把文档发给别人。无需注册,内容不上传。
- 实时预览
- 支持流程图
- 一键存 PDF
- 分享链接
🔒 所有计算都在你的浏览器内完成,数据不会上传到任何服务器。
什么时候会用到
- 技术文档与 README:把 Markdown 文档转成排版整齐的 PDF,交给客户或领导。
- 简历与作品集:用 Markdown 写简历,标题与表格自动排版,保存为 PDF 投递。
- 会议纪要与笔记:从 Notion、Obsidian、语雀导出或复制的 Markdown 直接粘贴转 PDF。
- 流程图与系统架构:用 Mermaid 画流程图、时序图,和文字一起导出成 PDF。
使用说明
- 在左边输入或粘贴 Markdown,或点击“打开文件”读取 .md 文件,右边会实时显示排版效果;不熟悉语法可以先点“示例”看看。
- 以 ```mermaid 开头的代码块可以画流程图、时序图等图表,会直接显示在预览中。
- 点击“导出 PDF”打开打印窗口,“目标打印机”选择“另存为 PDF”后保存。
实际示例
文档第一行是“# **项目** 周报 2026/10”时,点击“导出 PDF”后打印窗口的默认文件名是“项目 周报 2026 10”:加粗符号会去掉,文件名不能用的斜杠换成空格。没有 H1 时改用第一个标题,例如只有“## 会议记录:Q3?”时文件名是“会议记录:Q3”;完全没有标题则用“文档”。
粘贴 <img src="logo.png" onerror="alert(1)">、[点我](javascript:alert(1)) 和一段 <script>,清洗后只剩 <img src="logo.png"> 和一个没有链接地址的“点我”文字,<script> 整段删除,预览中不会执行任何代码。
任务列表“- [x] 完成”“- [ ] 待办”会变成两个复选框,一个已勾选、一个未勾选,都不能点击,PDF 中也照样显示。另外“第一行”直接换行接“第二行”只会排在同一段(与 GitHub 相同),要分段请空一行。
结果怎么看
- 右边预览就是 PDF 的内容:打印时只输出预览区,网站页头、按钮和编辑框都不会出现。深色模式下预览是深色,但 PDF 始终是白底深色字。
- 图表位置出现红色错误框,说明那段 Mermaid 语法有误,框内有错误信息和源代码,修正后会自动重绘;错误框也会被打印出来,导出前请先检查。
- 在打印窗口中勾选“背景图形”才会打印表格标题行和代码区的浅色底;勾选“页眉和页脚”会在每页加上网址、日期和页码。
- 表格、代码、图表和引用会尽量不跨页,标题也不会单独留在页底;但单个区块比一页还长时仍会被分开。
原理与计算方法
- 转换:用 marked 按照 GitHub Flavored Markdown(GFM)规范把 Markdown 转成 HTML,支持表格、删除线、任务列表和自动链接,单个换行不会换行。
- 安全:转换出的 HTML 一律先经过 DOMPurify 清洗再放进页面,删除 <script>、onerror 等事件属性、javascript: 链接和 iframe,另外禁止 <style> 和表单控件,防止粘贴的内容执行代码或破坏页面。
- 图表:只有内容包含 ```mermaid 代码块时才下载 Mermaid 图表程序(体积较大,下载一次后复用),以 strict 安全级别绘制成 SVG;画过的图会缓存,输入时其他图不必重绘。
- 导出:“导出 PDF”调用浏览器的打印功能,打印样式(@media print)只保留预览区,使用 A4 纸、上下 16 mm、左右 15 mm 页边距,并固定使用浅色配色;PDF 默认文件名取自文档的第一个 H1。
适用限制
- PDF 由浏览器的打印功能生成,不同浏览器的分页位置、字体和页眉页脚会有差异;手机需要在打印或分享菜单里选择保存为 PDF,步骤因系统而异。
- 不支持数学公式(LaTeX)、脚注、自动目录和代码语法高亮,标题也不会变成 PDF 书签。
- 图片只能用网址(https://…)引用,无法读取你电脑里的文件路径;网络图片需要联网才会显示。
- 还没加载过 Mermaid 图表程序时,离线状态下普通 Markdown 仍可转换,但图表会提示无法加载。
常见问题
怎么手动分页?
在需要分页的位置单独一行输入 <div style="break-after: page"></div>,前后各空一行,后面的内容就会从新的一页开始。
PDF 顶部出现网址和日期,怎么去掉?
那是浏览器添加的页眉和页脚。在打印窗口的“更多设置”里取消勾选“页眉和页脚”即可。
支持哪些 Mermaid 图表?
流程图(flowchart)、时序图(sequenceDiagram)、甘特图(gantt)、类图、状态图、饼图等 Mermaid 支持的图表都可以用。语法有误时,预览会在该处显示错误信息和源代码。
我的文档会被上传吗?
不会。转换、预览、生成 PDF 都在你的浏览器里完成,内容不会发送到服务器,也不会被保存,关闭页面就没了。
可以把 Markdown 文档分享给别人吗?
可以。按“复制分享链接”,原文会压缩后放在网址的 # 后面,对方打开就看到同样的预览,可以直接保存为 PDF;这一段不会发送到服务器。文档很长、链接太长时会提示改用文件分享。
Notion 或 Obsidian 的笔记可以转成 PDF 吗?
可以。从 Notion“导出 → Markdown”或在 Obsidian 复制内容后粘贴即可;Obsidian 的 [[双向链接]] 等专属语法不支持,会按原文显示。
可以在 PDF 里放图片吗?
可以用  插入网络图片地址;电脑本地的图片路径浏览器读取不到,需要先上传到图床或网站。
Markdown 是什么?
用简单符号标记格式的纯文本写法,例如 # 是标题、** 包起来是加粗、- 开头是列表。写起来比 Word 快,也方便用 Git 管理版本。
参考来源
- GitHub Flavored Markdown Spec — GitHub
- Printing — MDN Web Docs
- Usage — Mermaid