Md2pdf WeasyPrint

Markdown 转 PDF 技能。将 Markdown 文件转换为精美的 PDF 文档,完美支持中文、代码高亮、自定义样式。

安装

概览

什么是Md2pdf WeasyPrint

Md2pdf WeasyPrint 是一套把 Markdown 文档直接转换成 PDF 的方案,核心推荐路径是基于 WeasyPrint 完成渲染。它面向的不是复杂出版流程,而是开发文档、说明材料、知识库导出这类高频需求:输入一个 .md 文件,就可以得到带排版的 PDF。证据包里给出的重点很明确,这个方案主打中文显示、代码块呈现和样式完整度,尽量避开传统 Markdown 转 PDF 时最常见的几类麻烦,例如中文乱码、依赖过重、需要额外折腾 LaTeX 环境。

和很多“能转就行”的脚本不同,这套方案把可读性放在了比较靠前的位置。它会先把 Markdown 解析成 HTML,再结合 CSS 样式生成 PDF,因此标题层级、表格、引用块、列表、链接、图片、代码块这些常见 Markdown 元素都能一起处理。尤其是中文部分,默认依赖 Noto Sans CJK 字体来保证显示效果,官方描述里也把“完美中文支持、无乱码”作为最核心的卖点之一。对于经常写中文技术文档的人来说,这一点往往比单纯“支持导出 PDF”更关键。

从工具形态看,Md2pdf WeasyPrint 并不只是一个单独命令,还包含了较完整的脚本封装。推荐使用的 shell 脚本会在首次运行时自动安装 Python 依赖,并自动检测和安装中文字体;如果需要,也可以直接调用 Python 脚本完成转换。除了 WeasyPrint 这条主线,证据包里还保留了 Pandoc 和浏览器打印的备选方式,但整体定位非常清楚:如果目标是获得稳定的中文 PDF 输出和相对专业的版式,优先使用 WeasyPrint。

核心功能特点

  1. 基于 WeasyPrint 的 Markdown 转 PDF 流程,不依赖 LaTeX,整体环境更轻量。
  2. 中文支持是核心优势,默认使用 Noto Sans CJK 字体,重点解决乱码和方块字问题。
  3. 内置较完整的排版样式,覆盖多级标题、引用块、列表、链接、图片、表格等常见 Markdown 内容。
  4. 代码块支持语法高亮,并采用深色主题;表格也提供表头、斑马纹和圆角等美化效果。
  5. 提供脚本化封装,首次运行可自动安装 markdown、weasyprint 及中文字体,适合直接接入批量转换流程。

适用场景

这类工具最适合的,是“内容本来就写在 Markdown 里,但最终需要一个更正式、更稳定分发格式”的场景。比如团队在 README、项目文档、接口说明、内部规范、培训材料中已经大量使用 Markdown,如果要发给不方便直接看源码仓库的人,或者需要归档、打印、发送附件,PDF 依然是更通用的输出格式。Md2pdf WeasyPrint 在这里的价值,不只是把文本转成另一个文件格式,而是尽量保留结构和阅读体验,让技术内容从“源文件”变成“可交付文档”。

它也很适合中文技术写作占比高的环境。证据包里反复强调中文字体自动安装和无乱码输出,这说明它特别针对中文文档转换的痛点做了处理。对于需要包含中文标题、正文说明、代码示例、表格清单的开发团队、运维团队或技术支持团队来说,这种默认可用的中文 PDF 输出,会比需要手动配置字体和 LaTeX 的传统方案省事得多。如果文档里经常混合代码块、表格、引用和列表,内置 CSS 样式也能减少后续再排版的工作量。

另外,它还适合需要脚本化、批量化处理的工作流。证据包明确给出了批量转换多个 Markdown 文件、把脚本集成到目录处理流程中的用法,这意味着它不只是给个人临时导出一份 PDF 用,也能嵌入日常自动化任务。比如定期把文档目录统一导出成 PDF 存档,或者在一套既有脚本里批量生成对外分发版本,都会比较顺手。若团队已经有 LaTeX 环境,也可以考虑 Pandoc 方案;但如果优先级是快速落地、中文稳定和依赖简单,WeasyPrint 方案显然更贴近它的主要适用面。