news 2026/6/10 16:33:25

我开源了一个Markdown转PDF工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
我开源了一个Markdown转PDF工具

我开源了一个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

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

https://github.com/Carl-AI-Lab/MarkdownToPDF

我是Carl,我们下期再见

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:11:05

采购计划没抓手?两小时,我搭了一套以销定采的供应链系统

很多公司在做供应链的时候,总觉得自己不是没有数据,就是没有方法。最后变成一句话:计划没抓手,采购全靠经验,结果一拍脑袋就要货,一拍屁股又让供应商等等等等。那天我去看一家工厂的流程,销售预…

作者头像 李华
网站建设 2026/6/10 9:45:08

构建个人专属知识库:访答知识库深度解析与实战指南

构建个人专属知识库:访答知识库深度解析与实战指南 在信息爆炸的时代,高效管理个人知识已成为提升工作效率的关键。本地私有知识库因其数据安全、离线可用等优势,正受到越来越多人的青睐。在众多选择中,知识库以其独特的定位和功能…

作者头像 李华
网站建设 2026/6/10 14:18:35

8个课堂汇报神器,本科生AI工具推荐与使用攻略

8个课堂汇报神器,本科生AI工具推荐与使用攻略 论文写作的“三座大山”:时间、重复率与效率的困境 对于本科生来说,课堂汇报和论文写作从来都不是轻松的任务。从选题到文献综述,从框架搭建到内容撰写,每一个环节都充满了…

作者头像 李华
网站建设 2026/6/10 15:52:42

“从可控性到自主反思”这个短语,似乎描述了一种从外部控制(或自我控制)向内在自主反思的转变过程

“从可控性到自主反思”这个短语,似乎描述了一种从外部控制(或自我控制)向内在自主反思的转变过程。这在心理学、人工智能(AI)和教育等领域都有深刻的体现,代表了个体或系统从被动受控、依赖外部约束&#…

作者头像 李华
网站建设 2026/6/10 15:52:22

SQL中表删除与表修改

表删表drop table [if not exist] students;表修改ALTER语句使用 ALTER TABLE 语句追加, 修改, 或删除列的语法add增加字段:alter table students add [column] dateT date;设置默认值:alter table students add dateT date DEFAULT "2025-12-12&qu…

作者头像 李华