转换器

Markdown 转 PDF 转换器

Markdown 转 PDF 是一款浏览器打印转换器:粘贴 Markdown,选好纸张大小和主题,然后用打印 / 另存为 PDF。文档在本地打印,不上传任何内容。

# Quarterly Research Report

中文摘要 · 日本語要約 · 한국어 요약

This note mixes Latin, CJK, a table, math, and a code sample.

## Results

| Region | Revenue |
| --- | --- |
| 東京 | ¥12.4M |
| 서울 | ₩980M |
| 上海 | ¥9.1M |

The growth rate is $r = \frac{\Delta x}{x}$.

```python
def growth(previous: float, current: float) -> float:
    return (current - previous) / previous
```

如何操作

如何把 Markdown 转 PDF

可以粘贴什么

  • 支持任意 Markdown:CommonMark,外加 GitHub Flavored Markdown 的表格、任务列表和删除线
  • 渲染在你的浏览器中进行 —— 输入时不会上传任何内容
  • 预览、复制或下载都无需账号
  • 没有固定大小上限;超大的文档受浏览器内存限制
Markdown 转 PDF:把 Markdown 渲染成 PDF 页面

为什么使用

为什么用这款 Markdown 转 PDF 转换器

一个 Markdown 文件本身没有页面几何信息。这款转换器加上纸张大小、页边距和分页规则,再把结果交给你浏览器的打印引擎。

本地打印,不上传任何内容

PDF 来自你浏览器的打印引擎。Markdown 永远不会离开你的设备。

纸张大小与页边距

打印前选择 A4 或 Letter、纵向或横向,以及普通、窄或宽的页边距。

适配不同文档的主题

Github、document 和 compact 主题会改变字体、间距和代码块配色,而不改变 Markdown 本身。

页码

在每一打印页的角落或居中加上页码,样式与当前主题匹配。

感知 CJK 的字体栈

打印样式表把中文、日文和韩文系统字体排在拉丁回退字体之前,适配混排文字的报告。

与 API 相同的 HTML 渲染器

文档由与 POST /v1/convert/markdown/html 相同的净化 HTML 构建,再包进你的浏览器会转成 PDF 的打印 CSS。

问题所在

为什么 Markdown 打印前需要分页规则

Markdown 没有页面几何信息

一个 Markdown 文件描述的是标题和段落,不是纸张大小、页边距,或页面应该在哪里断开。

长表格和代码块断得很糟

没有分页规则,一行表格或一个围栏代码块可能在打印页底部被切成两半。

CJK 与混排文字需要合适的字体

中文、日文和韩文文本在不同浏览器和操作系统之间,可能回退成缺失字形或不同的断行行为。

转换 Markdown 为 PDF:复制粘贴后的错乱文本与干净的 Markdown 结构对比

保留什么

这款 Markdown 转 PDF 转换器保留什么

页面大小与页边距
一个 @page 规则会在你的浏览器打开打印对话框之前设定纸张大小(A4 或 Letter)、方向和页边距。Source: CSS Paged Media Module
标题可以另起一页
一级标题默认可以分页到新的一页,所以每个顶层章节都干净地开始;文档的第一个标题不会。Source: CSS Paged Media Module
表格与代码避免页中断开
表格和围栏代码被标记为不在内部断开,所以浏览器会把整块移到下一页,而不是把它劈开。Source: CSS Paged Media Module
用 CSS 计数器做页码
可选的页码由一个 CSS 页面计数器生成,定位在页面页脚的左、中或右。Source: CSS Paged Media Module
与 API 相同的净化 HTML
可打印文档由 POST /v1/convert/markdown/html 所用的同一套净化 CommonMark 与 GFM HTML 构建。Source: CommonMark Spec

这款 Markdown 转 PDF 转换器背后的打印 CSS· markitdown.ai 打印样式表:github 主题、A4、开启页码

@page { size: A4 portrait; margin: 25mm; }@page { @bottom-center { content: counter(page); font-size: 10pt; color: var(--md-muted); } }h1 { break-before: page; }article.md-document > h1:first-child { break-before: auto; }table, pre { break-inside: avoid; }

使用场景

Markdown 转 PDF 的使用场景

凡是 Markdown 笔记需要变成一份别人不用 Markdown 阅读器就能打开的分页文件的地方。

报告与研究笔记

把一份 Markdown 报告变成分页 PDF,发给没有 Markdown 阅读器的人。

多语言文档

用感知 CJK 的字体栈,打印混有中文、日文或韩文文本的拉丁文字笔记。

从 README 做快速讲义

为文档或 README 生成一份可打印版本,无需安装单独的 PDF 工具。

归档一条 Markdown 笔记

在笔记进一步变化之前,存下一份带日期、分页的快照,不必把它上传到任何地方。

在线 Markdown 转 PDF:把 PDF 用于报告、打印和归档

浏览器打印

这款工具在你的浏览器里构建一份可打印文档,并交给浏览器自己的打印 / 另存为 PDF 对话框。服务端 PDF 生成已在规划中但尚未上线,所以 API 目前没有 PDF 端点。如果你今天就需要从自动化流水线得到 PDF,用 POST /v1/convert/markdown/html 渲染净化 HTML,再用你自己掌控的工具打印那段 HTML,或者交互式地使用本页处理一次性文档。如果服务端端点将来上线,这一节会更新;在那之前,请把浏览器打印路径当作本产品 Markdown 转 PDF 唯一受支持的途径。

纸张、页边距、主题

纸张大小和页边距决定段落、表格和代码在每一页上有多少空间:更窄的页边距每页装得更多,却可能让一张密集的表格显得拥挤;更宽的页边距读起来更舒服,代价是页数增加。三个主题会改变字体、间距和代码块背景,而不触碰 Markdown 本身,所以切换主题是一种安全的方式,用来对比一份紧凑的内部笔记和一份面向外部读者的文档。每次改动后都要检查分页预览,因为在短笔记里看起来没问题的设置,放到更长的报告里可能就把一张表推到分页处。

  • A4 适合大多数非美国读者;Letter 适合以美国为中心的文档。
  • 窄页边距每页装更多内容;宽页边距读起来更舒服。
  • 页码能让一份打印装订的报告保持顺序。

多语言与代码

混有中文、日文或韩文字符的 Markdown,取决于实际打印它的那台机器上装了哪些字体,所以同一份文件在两台电脑上可能分页略有不同,即便 Markdown 源完全一样。在你将要打印的设备上检查预览,尤其是长报告,一个缺失的字形可能把标题推到错误的页面上。代码块和又长又不断开的 URL 表现类似:它们被标记为避免在行中间断开,所以浏览器会把整块移到下一页,而不是把一个读者可能复制的命令从中间劈开。

FAQ

Markdown 转 PDF 常见问题

Markdown 转 PDF 会上传我的文本吗?

不会。在本地打印——生成 PDF 不上传任何内容;它完全来自你浏览器的打印引擎。

有服务端的 Markdown 转 PDF API 吗?

目前没有。POST /v1/convert/markdown/pdf 不存在,调用它会返回 404。用 POST /v1/convert/markdown/html 渲染 HTML 再打印它,或使用本页的浏览器工具。

可以选择 A4 或 Letter 吗?

可以。纸张大小、方向、页边距和页码都是编辑器里的本地选项。

它能处理中文、日文或韩文文本吗?

打印样式表把 CJK 系统字体排在拉丁回退字体之前。打印前先检查分页预览,因为字体可用性因设备而异。

标题总是另起一页吗?

默认情况下,一级标题会分页到新的一页,文档里的第一个标题除外;这一行为可以关闭。

把 Markdown 打印成 PDF 需要账号吗?

不需要。粘贴、预览和打印都不需要登录。

以后会有服务端生成的 PDF 文件吗?

服务端 PDF 生成已在规划中。今天本页使用你浏览器的打印对话框,没有服务端 PDF 端点。

随时将 Markdown 转换为 PDF。

免费试用——无需注册。