核心用法
md2pdf-converter 是一款面向中文用户的离线 Markdown 转 PDF 工具,核心命令为:
bash scripts/md2pdf-local.sh input.md output.pdf
首次运行会自动从国内镜像(npmmirror.com)下载约 68MB 的 Emoji 资源缓存至 ~/.cache/md2pdf/emojis/,后续完全离线可用。技术链路为 Pandoc 将 Markdown 转为 HTML,再通过 Lua 滤镜将 Emoji 字符替换为本地 PNG 图片引用,最终由 WeasyPrint 结合专业 CSS 样式渲染为 PDF。
显著优点
1. 完整 Unicode 支持:内置 AR PL UMing CN 等中文字体,解决 CJK 字符渲染难题
2. 彩色 Emoji 渲染:采用 Google 风格 64px PNG 图集,告别黑白符号
3. 离线可用:首次下载后无需网络,适合内网或隐私敏感环境
4. 国内友好:默认使用 npmmirror 镜像,下载稳定快速
5. 专业排版:自动添加页码、代码高亮、表格与引用块样式
潜在局限
- Emoji 范围受限:仅支持 emoji-datasource-google 15.0.0 约 3600 个表情,新增 Unicode 表情显示为字符
- 环境依赖较重:需同时安装 Pandoc、WeasyPrint 及中文字体包
- 首次配置门槛:Linux 用户需手动处理字体与 Python 依赖
- 无实时预览:纯命令行工具,修改-查看循环效率低于 GUI 方案
适合人群
- 技术写作者:需要将 Markdown 文档转为正式 PDF 报告
- 国内开发者:受限于网络或安全策略,需离线工具链
- 运维/安全团队:生成含 Emoji 的审计报告或运维手册
- 学术用户:处理含中文字符的 LaTeX 替代方案
常规风险
- 依赖完整性:WeasyPrint 对系统库(Pango、cairo)版本敏感,跨平台部署易出现渲染异常
- 字体版权:AR PL UMing 为开源字体,但商业场景需确认授权范围
- 缓存污染:手动修改
~/.cache/md2pdf/可能导致 Emoji 显示异常,需定期校验 - 输入安全:Markdown 中内嵌 HTML/CSS 可能被 WeasyPrint 执行,处理不可信来源文档时需预过滤