跳到正文
妙盒博客
返回

为什么 Markdown 导出 PDF 不能只是“打印一下”

把 Markdown 导成 PDF,最直觉的办法是打开预览页,再选择“打印”或“另存为 PDF”。如果只是临时留一份副本,这通常已经够用。

但准备打印、归档或正式发送时,人们期待的不只是“得到一个能打开的文件”:标题最好能成为 PDF 书签,代码块不能被页面边缘截断,中文不能突然缺字,纸张大小和页边距也应该稳定。屏幕上看着正常,并不代表这些要求会自动成立。

妙盒笔记因此没有把 PDF 当作网页预览的截图,而是把 Markdown 重新排成适合纸面阅读的文档。导出后得到的是有明确页面尺寸、标题层级和版式规则的 PDF,而不是依赖当前窗口宽度的一次打印结果。

网页会伸缩,PDF 必须先做决定

网页可以随着窗口变宽或变窄,图片和段落也能继续向下延伸。PDF 不一样:每一页从一开始就有固定边界。

这意味着导出时必须提前回答一组问题:一段代码放不下时怎样换行,标题能否留在下一段旁边,图片过大时怎样缩放,长表格跨页后还能不能读。系统打印只能记录浏览器当时给出的结果,却不一定理解一篇笔记的结构。

标题书签也是同样的道理。页面上字号更大的文字,打印之后可能仍然只是“看起来像标题”;专门排版则可以保留标题层级,让读者在较长的 PDF 中直接跳转。

所以,PDF 导出并不是把同一画面换一个文件后缀。它要把适合滚动阅读的内容,重新解释为适合翻页、打印和离线保存的内容。

用户得到的是稳定的纸面版本

在妙盒笔记中,PDF 导出会单独处理标题书签、页面版式和字体,并支持模板化输出。它适合把一篇较长的笔记保存下来,也适合生成需要发送、打印或归档的版本。

这里的“稳定”不是承诺每台设备都产生像素完全相同的页面,而是让关键规则不取决于导出时恰好打开了多宽的窗口。例如:

对用户来说,最重要的变化不是背后用了哪一种技术,而是导出结果可以离开应用独立使用。关闭妙盒笔记之后,PDF 仍然是一份有完整页面结构的文档。

为什么 PDF 不会和网页一模一样

重新排版也意味着必须接受差异。

网页擅长链接、交互组件和可以随窗口变化的布局;PDF 擅长固定页面、打印和长期保存。笔记中的网页片段、远程图片或特殊样式,不一定能原样进入纸面。与其假装两种媒介完全相同,更可靠的做法是为不能直接转换的内容规定清楚的处理方式。

例如,网页代码不能被 PDF 当成一个小浏览器继续运行。保留可读的原始内容,往往比静默丢失更诚实。如果一份内容必须保留网页交互,发布成网站会比导成 PDF 更合适。

这也是“打印预览”和“排版导出”的真正区别:前者尽量复制眼前的页面,后者先判断另一种媒介需要什么,再生成对应结果。

什么时候系统打印已经够用

并非所有 Markdown 都需要专门的 PDF 管线。

临时分享几段文字、保存一张当前页面的快照,或者只在自己的设备上查看时,系统打印更快,也更简单。专门导出会增加字体、图片、分页和模板的处理成本,结果也不会保留网页的所有动态能力。

当一份文档开始依赖目录书签、固定纸张、较长代码、中文字体或可重复的版式时,这份成本才值得。此时 PDF 已经不只是内容的副本,而是一种需要单独完成的成品。

导出不是把写作的最后一个画面封存下来,而是让同一份内容在另一种媒介里重新变得可读。