离线Markdown转PDF转换器,基于Pandoc与WeasyPrint,支持完整Unicode及本地表情缓存,可将Markdown转为专业级PDF...
标记下到 PDF 转换器( 完成版本)是一项面向实际任务的技能,主要用于Overview.;Convert Markdown 文件到专业 PDF , 并有 FUL Unicode 支持 , 中文字体, 以及彩色的 emojis (3660 emojis 包括全部)。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
使用 完整的 Unicode 支持、中文字体及 彩色 emoji(共 3660 个 emoji,含全部变体),将 Markdown 文档转换为专业级 PDF。基于 Pandoc + WeasyPrint 实现,并内置本地 Twemoji 缓存,首次运行后即可离线工作。
将一个 Markdown 文件转换为 PDF:
bash scripts/md2pdf-local.sh input.md output.pdf
仅首次运行时:从 GitHub 下载约 150MB 的 emoji 资源(Twemoji 14.0.0)。后续运行完全离线。
示例:
bash scripts/md2pdf-local.sh report.md report.pdf
~/.cache/md2pdf/emojis/emoji_mapping.json)~/.cache/md2pdf/
├── emojis/ # 3660 个彩色 PNG 文件
│ ├── 0023-fe0f-20e3.png
│ ├── 1f600.png
│ └── ...
└── emoji_mapping.json # Emoji 到文件名的映射表
{
"🙀": "1f600.png",
"⌛": "0023-fe0f-20e3.png",
...
}
Python 脚本 generate_emoji_mapping.py 扫描全部 Twemoji 文件,构建 emoji 字符与 PNG 文件名之间的精确映射关系。该机制确保即使对肤色、地区标识符等复杂变体,也能实现准确的 emoji 替换。
主用中文字体:AR PL UMing CN
备用字体:Noto Sans SC、Noto Sans CJK SC、Microsoft YaHei
等宽字体:Menlo、Monaco
若中文字符显示异常,请确认已安装 AR PL UMing CN 字体:
# Ubuntu/Debian sudo apt-get install fonts-arphic-uming # 检查是否已安装 fc-list | grep "AR PL UMing"
ls ~/.cache/md2pdf/emojis/ls ~/.cache/md2pdf/emoji_mapping.jsonrm -rf ~/.cache/md2pdfls ~/.cache/md2pdf/emojis/1f600.png此问题已在 v2.0 中 修复。如仍出现黑白 emoji,请执行以下操作:
确认您正在使用 v2.0 脚本:
grep "TWEMOJI_VERSION" scripts/md2pdf-local.sh # 应输出:TWEMOJI_VERSION="14.0.0"
清除缓存并重新生成:
rm -rf ~/.cache/md2pdf bash scripts/md2pdf-local.sh test.md test.pdf
请安装缺失的依赖项:
# Ubuntu/Debian sudo apt-get install python3-weasyprint # 或使用 pip 安装 pip3 install weasyprint
若 generate_emoji_mapping.py 执行失败:
# 检查 Python 版本 python3 --version # 应为 Python 3.6 或更高版本 # 检查 emoji 缓存目录 ls ~/.cache/md2pdf/emojis
md2pdf-local.sh —— 主转换脚本,自动完成 emoji 缓存与映射
generate_emoji_mapping.py —— 生成 emoji 查找表的 Python 脚本
使用方式:可从任意路径直接执行(脚本内部使用绝对路径):
bash /path/to/skills/md2pdf-converter/scripts/md2pdf-local.sh input.md output.pdf
核心特性:
| 特性 | v1.0(旧版) | v2.0(新版) |
|---|---|---|
| Emoji 来源 | emoji-datasource-google | Twemoji 14.0.0 |
| Emoji 数量 | 约 2000–3000 | 3660 |
| 彩色显示 | ❌ 不稳定 | ✅ 稳定 |
| 变体支持 | ❌ 不完整 | ✅ 完整 |
| 映射准确性 | ⚠️ 较低 | ✅ 高 |
| 离线支持 | ✅ 首次运行后可用 | ✅ 首次运行后可用 |
| 首次运行体积 | 约 68MB | 约 150MB |
相关专题
热门下载
相关下载
精品课程
共13课时 | 3.7万人学习
共30课时 | 4.4万人学习
共10课时 | 1.5万人学习