乐于分享
好东西不私藏

AI直接把.md变成出版级PDF,太狠了(附教程)

AI直接把.md变成出版级PDF,太狠了(附教程)

Markdown 直接变出版级PDF,不需要 LaTeX,不需要浏览器,不需要配置文件。一个 Python 脚本搞定。


最近在 GitHub 上看到一个叫 any2pdf(也叫 md2pdf)的项目,来自开发者 lovstudio,它的思路很直接——

AI Agent 输出的是 Markdown,那为什么不直接让 Markdown 变成一等输入,一步到位转到 PDF?

它能干什么

一句话:把 .md 文件变成专业排版的 PDF。

不是那种”勉强能用”的转换。是带封面、目录、书签、水印、页眉页脚的那种。

具体支持这些:

功能
说明
中英文混排
CJK/Latin 字体自动切换,不会出现方框乱码
代码块
语法高亮,保留缩进
表格
自动调整列宽
封面页
标题、作者、日期、版本号,一键生成
目录
可点击跳转的 TOC
书签
PDF 侧边栏导航
水印
自定义文字水印
页眉页脚
页码、自定义内容
14 种主题
Nord、GitHub Light、中国红、水墨、海洋……

底层就一个依赖:reportlab。pip 装一下就行。

没有 LaTeX 的重量级依赖,不用配字体文件,不用写模板。SKILL.md 里把每个参数怎么用、踩过什么坑、主题配色参考都写得清清楚楚——AI 读完了就知道怎么调用。

怎么装

如果你用的是 Claude Code / Cursor / Copilot 这类支持 Agent Skill 的工具:

npx skills add lovstudio/any2pdf

一行。完事。

装完之后,你只需要对 AI 说一句话:

“把这个 report.md 转成 PDF,用 Nord 主题,加上水印’内部资料'”

它就会自动调用 md2pdf.py,生成一份专业 PDF。整个过程你不需要知道参数是什么、脚本在哪、Python 怎么跑——Agent 全帮你处理了。

这就是 Skill 这个形式最妙的地方:把使用门槛降到了”说人话”的级别。

当然,你也可以使用类似Buddy这里工具里安装使用:

手动下载md2pdf压缩包,在类似Buddy的skills文件夹里解压文件使用skill-creator帮我安装md2pdf技能  .skills/md2pdf

20+ 个 CLI 参数覆盖标题、作者、日期、版本、页面尺寸、是否生成封面/目录/书签等所有排版需求。

SkillWink 上的文档

https://www.skillwink.com/skill/9700

列出了完整的参数表和 10+ 种内置主题预览。

和其他方案比怎么样

市面上 Markdown 转 PDF 的路子不少,每条都有坑:

Pandoc + LaTeX:功能最强,但 TeX Live 光安装就要好几个 G,配置起来够喝一壶的。而且中文支持需要额外装 ctex 宏包,遇到问题排查成本很高。

VS Code 插件(Markdown PDF):方便是方便,但中文排版质量一般,代码块容易截断,复杂表格直接变形。适合简单笔记,出不了正式报告。

这个我使用过,做不了原格式排版)

WeasyPrint 方案(CSDN 上有人介绍过一个 md2pdf.py,

https://blog.csdn.net/weixin_42148809/article/details/155591006

基于 HTML/CSS 渲染,样式灵活但依赖重,自动安装 weasyprint 在 Windows 上经常翻车。

在线转换器:md2pdf.cc 之类的纯前端方案,零安装,但公司文档你敢传到别人的服务器上吗?

any2pdf 的定位很清晰:不追求 Pandoc 那种全能,专注”AI Agent 场景下的 Markdown → 专业 PDF”这一个事。reportlab 纯 Python 渲染,跨平台,依赖轻量,CJK 原生支持。

它不做 HTML 中间层,不走浏览器渲染,就是 Markdown 解析完直接画到 PDF 上。路径短,出错面小。

我觉得它最适合谁

几类人可能会觉得这东西顺手:

  1. 用 AI 写技术文档的人。
    AI 输出 Markdown 是常态,但你总不能把 .md 文件丢给老板或者客户吧?转一下 PDF,体面。
  2. 需要批量出报告的。
    配合 Agent Skill 的自动化能力,一批 .md 文件统一主题、统一格式批量输出。
  3. 不想折腾排版工具的开发者。
    一个 pip install + 一个 Python 脚本,没有多余的东西。

不适合的场景也说说:如果你需要复杂的学术排版(公式多、交叉引用、参考文献),LaTeX 还是老大,这个替代不了。它解决的是”80% 的日常 PDF 需求”这一块。

快速上手示例

假设你有一份 report.md,想转成带封面的中国红主题 PDF,你直接在已安装any2pdf技能的客户带来用自然语言下发任务。

然后,对话启动后会向用户做一个需求调研,有四个需求调研问题;根据需求选择风格即可。
以下就是我转成pdf的效果截图,可以完整呈现md的排版风格;

想加水印?加 --watermark "机密"。

想换 Nord 极简风?--theme nord。

全部 CLI 参数和主题配色可以直接看项目的GitHub仓库:

https://github.com/lovstudio/any2pdf

或者看skill文件:

https://raw.githubusercontent.com/lovstudio/any2pdf/main/SKILL.md

写得很详细。

MIT 开源 · Python 3.8+ · pip install reportlab 即可运行