md-2-pdf

📄 Markdown 一键转专业 PDF

基于 ReportLab 将 Markdown 文档转换为专业格式 PDF,支持完整语法渲染与自动分页,适合技术文档导出场景。

收藏
10.7k
安装
2.6k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

md-to-pdf 是一个命令行工具,依赖 uv 运行环境,通过 Python ReportLab 库将 Markdown 文件转换为格式规范的 PDF 文档。基本调用格式为 uv run scripts/md-to-pdf.py input.md,可通过 -o 指定输出路径,-v 开启详细日志。工具会自动识别并跳过 YAML frontmatter,专注于内容渲染。

显著优点

1. 完整 Markdown 支持:覆盖 H1-H6 标题层级、粗斜体、行内/块级代码、有序/无序/任务列表、表格、超链接、引用块、分隔线等全部核心语法
2. 专业排版输出:自动页码页脚、代码块背景高亮、表格边框对齐,生成适合打印或分发的正式文档

3. 零配置即用:单文件脚本设计,无需复杂依赖安装,通过 uv 直接执行

4. Unicode 友好:完整支持 Emoji 和特殊字符,适应国际化内容

潜在缺点与局限性

  • 依赖外部运行时:必须预装 uv 工具链,环境准备成本高于纯二进制方案
  • Python/ReportLab 性能瓶颈:大文档(>100页)转换速度较慢,内存占用随内容线性增长
  • 主题定制受限:当前为固定样式,无法通过 CSS 或配置文件自定义字体、配色、页边距
  • 无交互功能:不支持目录点击跳转、表单字段、数字签名等高级 PDF 特性
  • 图像处理能力弱:Markdown 中的图片仅作占位或简单嵌入,无自适应缩放、矢量图优化

适合人群

  • 开发者/技术写作者:快速导出 README、API 文档、技术规范
  • 学术研究人员:将 Markdown 论文草稿转换为投稿格式
  • 项目管理:生成带有任务列表的会议纪要与进度报告
  • 任何需要将轻量级标记语言转为正式 PDF 交付物的场景

常规风险

  • 依赖供应链风险:ReportLab 及 uv 的更新可能引入破坏性变更
  • 编码问题:非 UTF-8 源文件可能导致乱码或转换失败
  • 路径遍历:若脚本未对 -o 参数做严格校验,恶意输入可能覆盖系统关键文件
  • 资源耗尽:极端大文件转换时可能触发系统 OOM,建议分页处理长文档

md-2-pdf 内容

scripts文件夹
手动下载zip · 7.9 kB
md-to-pdf.pytext/plain
请选择文件