any2pdf 用于将 Markdown 文档转换为排版质量较高的 PDF,基于 Python 的 reportlab 库实现,面向中文技术报告等中英混排场景。
用途:把 .md 转成 .pdf;为用户已有的 Markdown 报告/文档做专业排版;处理含中日韩字符与拉丁文字混排、围栏代码块、表格、嵌套列表、本地或远程图片、Obsidian callout、emoji、数学公式的文档;生成封面页、目录与水印。
主要能力:字体系统在 macOS 使用 Palatino(拉丁正文)、Songti SC(中日韩正文)、Menlo(代码),Linux 自动回退;以 _font_wrap() 为中英文字符串套 font 标签实现自动切换;_draw_mixed() 处理封面、页眉页脚等画布上的中英混排;esc_code() 保留代码缩进与换行;表格按内容长度分配比例列宽,最小 18mm;ChapterMark 生成 PDF 侧边书签与命名锚点;_preprocess_md() 拆分被合并的标题;本地、相对、file:// 与远程图片按正文框缩放,失败时显示替代文字;Obsidian 风格 > [!NOTE] 呈现为主题化提示框;显示公式可用 matplotlib mathtext 生成图片,或以样式化文本回退;emoji 可用缓存的 Twemoji PNG 或本地 emoji 字体回退。主题包括 warm-academic、nord-frost、github-light、solarized-light、paper-classic、ocean-breeze 等,另可指定主题 JSON 文件。
使用方式:转换前需先用 AskUserQuestion 以交互方式确认设计风格、扉页图片、水印、封底物料等选项;随后命令为 python md2pdf/scripts/md2pdf.py --input report.md --output report.pdf --title "My Report" --author "Author Name" --theme warm-academic 除 --input 外参数均可选。常用参数含 --theme、--theme-file、--cover、--toc、--page-size(A4 或 Letter)、--frontispiece、--banner、--watermark、--header-title、--footer-left、--stats-line、--stats-line2、--edition-line、--disclaimer、--copyright、--code-max-lines。多数选项也可写在文件顶部 frontmatter,显式 CLI 参数优先。
依赖与限制:需 pip install reportlab --break-system-packages,公式渲染可选 pip install matplotlib --break-system-packages;Ubuntu/Debian 建议安装相关字体包。运行前会读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文,字段解析顺序为当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值,且只使用 Manifest 声明的字段。具体其他限制、费用与平台支持资料暂未提供。