我开源了一个Markdown转PDF工具

92 阅读2分钟

我开源了一个Markdown转PDF工具

本文共 833 字,阅读预计需要 2 分钟。

Hi,你好,我是Carl,一个本科进大厂做了2年+AI研发后,裸辞的AI创业者。

写了一篇技术文档,发给甲方。对方说:「能不能转成PDF?我们电脑没有Markdown编辑器。」你手动复制到Word,调格式调了半小时,图片还丢了。

这篇文章分享一个我开源的一个小工具:

Carl-AI-Lab/MarkdownToPDF

一行命令解决这个问题。

之所以会做这个小工具,是我在私发前面的「市场调研工作流」资料时,许多小白并没有markdown编辑器,而且markdown文档在手机上阅读也并不方便。

痛点:Markdown分发的尴尬

Markdown 是程序员的「母语」。写文档、写博客、写需求,全靠它。

但一旦要把 .md 文件发给非技术同事、客户、甲方,问题就来了:

对方电脑没装 Markdown 编辑器,打开是一堆 # 和 *

复制到 Word,代码块样式全崩,图片链接失效

用在线转换器,排版像被狗啃过

我自己被折磨过几次后,决定写个工具一劳永逸。

方案对比:PDF vs Word

一开始我考虑转 Word(.docx)。写了一版基于 Pandoc 的脚本,能跑,但效果一般:

样式高度依赖 reference.docx 模板

复杂表格、代码高亮经常「水土不服」

不同版本 Word 打开,排版可能不一致

后来换成转 PDF,效果好太多:

用浏览器渲染 HTML,再「打印」成 PDF

样式稳定,所见即所得

图片直接嵌入,跨平台分发零障碍

所以我主推 MarkdownToPDF,Word 版本作为备选保留。

转为PDF的效果:

三步上手

整个工具就一个 Python 脚本,用 Playwright(Chromium 内核)做渲染。

安装依赖

Bash pip install -r requirements.txt python3 -m playwright install_deps chromium python3 -m playwright install chromium

单文件转换

Bash python3 convert_md_to_pdf_playwright.py -i input.md -o output.pdf

批量转换

不带参数运行,自动递归扫描当前目录下所有 .md 文件:

Bash python3 convert_md_to_pdf_playwright.py

工具已开源,欢迎使用和反馈。

github.com/Carl-AI-Lab…

我是Carl,我们下期再见