news 2026/4/19 22:06:58

我开源了一个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/4/18 8:29:20

[NISACTF 2022]ezstack

第一次打CTF——PWN篇学习笔记1132位的ret2text,偏移值为0x484,在ida中查找system和/bin/sh的地址,编写脚本得到flagssize_t shell() {_BYTE buf[72]; // [esp0h] [ebp-48h] BYREF ​system("echo Welcome to NISACTF");return rea…

作者头像 李华
网站建设 2026/4/17 12:06:35

Halcon条码技术详解(含 Halcon 应用示例)

条码技术详解(含 Halcon 应用示例) 一、一维码(线性条码) 1. 定义 一维码是由规则排列的条(低反射率部分)和空(高反射率部分)组成的标记,通过条空组合表达信息&#x…

作者头像 李华
网站建设 2026/4/17 12:13:15

基于SpringBoot的计算思维与人工智能学习网站设计与实现_3270a91w

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/4/17 8:08:02

Labview实现四工位相机同时扫二维码、HTTP协议Mes上传及汇川PLC通讯协议

Labview四工位相机同时扫二维码HTTP协议Mes上传汇川PLC通讯协议最近在项目里搞了个超有意思的事儿,用Labview实现了四工位相机同时扫二维码,还结合了HTTP协议进行Mes上传以及汇川PLC通讯协议。这一套下来,整个生产流程都变得高效又智能啦&…

作者头像 李华
网站建设 2026/4/19 14:16:23

Miniconda环境导出与导入:实现团队协作无缝对接

Miniconda环境导出与导入:实现团队协作无缝对接 在人工智能项目开发中,最令人头疼的问题之一莫过于“在我机器上明明能跑”的尴尬局面。你辛辛苦苦调通的模型,在同事那里却因为某个包版本不兼容直接报错;新成员入职第一天&#xf…

作者头像 李华
网站建设 2026/4/18 13:12:57

计算机组成原理(20) 第五章 - 总线

一、 总线定义​​​​​二、总线特性三、总线分类3.1 串行总线和并行总线串行总线与并行总线是计算机系统中两种核心的数据传输总线架构,核心差异在于数据位的传输方式:串行总线逐位传输数据,并行总线多位同时传输数据。两者在传输速度、硬件…

作者头像 李华