MDUtil

Markdown 转 PDF

粘贴 Markdown 或 AI 回答,设置纸张和页边距,保存为文字可复制、带公式和代码高亮的 PDF,内容不会上传。

会打开浏览器的打印窗口,请把目标打印机选为「另存为 PDF」。

Markdown

531 个字符47 行

预览

项目简介:野外记录 App

负责团队: 调研工具组 · 更新: 3 月 12 日

目标

让野外调研人员在没有网络时也能记录观察结果,回到有网络的地方再自动同步。

范围
  1. 每条记录包含文字、照片和 GPS 位置
  2. 离线状态下可连续使用一周
  3. 把一天的记录导出为 PDF 报告
进度
阶段周数状态
调研2已完成
原型4进行中
试点6计划中
存储空间

每天记录 nn 条、每条带 pp 张照片时,需要的空间约为

S=n×(0.4+2.5 p) MBS = n \times (0.4 + 2.5\,p) \ \text{MB}
{
  "syncInterval": "15m",
  "keepOffline": "7d",
  "photoQuality": 0.8
}

4 月第二周开始实地测试。

附录:同步规则
  • 两台设备修改同一条记录时,以最后一次修改为准
  • 照片只在连接 Wi-Fi 时上传

能处理什么

文字可以复制
PDF 里是真实的文字,可以搜索、复制,读屏软件也能朗读,链接仍然可以点击。
公式和代码
$E = mc^2$ 这样的 LaTeX 公式正常排版,代码块保留语法颜色,过长的行在页面内自动换行。
分页和页码
在单独一行写 \newpage,后面的内容就从新的一页开始。Chrome 和 Edge 会在页面底部打印页码。
纸张和页边距
支持 A4、美式信纸、Legal、A3、A5,可以纵向或横向,页边距有窄、标准、宽三种。
表格完整
表格保留各列的对齐方式,表格的行不会被拆到两页,标题和后面的正文留在同一页。
流程图、图片和中文
Mermaid 流程图以清晰的矢量图打印,中文使用系统字体并嵌入 PDF,换一台电脑打开也能正常显示。

其他把 Markdown 转成 PDF 的方法

Pandoc

Pandoc 在命令行里转换,对排版的控制最细。它默认通过 LaTeX 生成 PDF,需要先安装 TeX Live 或 MiKTeX 这样的 TeX 发行版。

pandoc report.md -o report.pdf --pdf-engine=xelatex -V CJKmainfont="Noto Serif CJK SC" -V geometry:margin=2cm

中文需要用 XeLaTeX 并指定中文字体,Windows 上可以换成 SimSun,macOS 上可以换成 Songti SC。不想安装 LaTeX 的话,可以让 HTML 引擎生成 PDF,用 CSS 控制样式:--pdf-engine=weasyprint --css print.css。

VS Code

安装 Markdown PDF 插件,打开文件后在命令面板运行 Markdown PDF: Export (pdf)。插件第一次运行时会下载 Chromium。

Typora 和 Obsidian

Typora 使用「文件 → 导出 → PDF」。Obsidian 打开笔记后,在命令面板运行「导出为 PDF」。

批量转换

md-to-pdf 在终端里用无界面的 Chrome 转换,每个 PDF 保存在对应的 Markdown 文件旁边:

npx md-to-pdf report.md
npx md-to-pdf docs/*.md

常见问题

怎么把 Markdown 转成 PDF?

把 Markdown 粘贴到上面,选择纸张大小,点击「保存为 PDF」,在打印窗口里选择「另存为 PDF」。PDF 由浏览器在你的设备上生成。

为什么会弹出打印窗口?

PDF 由浏览器的打印引擎生成,文字、字体、公式和流程图都按预览的样子排版,文字也保持可以选中。把目标打印机选为「另存为 PDF」即可。

怎么去掉页面上的日期和网址?

这是浏览器在开启页眉和页脚时加上的。Chrome 和 Edge 在打印窗口的「更多设置」里取消勾选「页眉和页脚」;Safari 和 Firefox 取消勾选「打印页眉和页脚」。

怎么手动分页?

在单独一行写 \newpage 或 \pagebreak,前后各空一行。后面的内容会从新的一页开始,预览里用虚线标出分页位置。

为什么没有页码?

页码依靠 Chrome 和 Edge 支持的打印规则。在 Safari 和 Firefox 中,可以在打印窗口勾选「打印页眉和页脚」,使用浏览器自带的页码。

手机上能保存 PDF 吗?

可以。iPhone 和 iPad 上点「保存为 PDF」,在打印选项页面点分享按钮,选择「存储到“文件”」。安卓手机把打印机选为「另存为 PDF」。

文档会上传到服务器吗?

不会。预览和 PDF 都在你的浏览器里生成,Markdown 不会离开你的设备。

需要改用 Pandoc 吗?

经常用脚本批量转换,或者文档需要参考文献和 LaTeX 排版时,Pandoc 更合适,命令见上文。这个页面不用安装任何软件,保存之前就能看到效果。