用途:将单个 Markdown 文件转换为出版级 PDF,针对中文技术报告等真实场景迭代,解决常见 MD→PDF 转换缺陷。
主要能力:reportlab 主引擎支持封面、目录、页眉页脚、扉页整页图、封底横幅/声明/版权、水印、PDF 侧边书签与命名锚点;代码块保留缩进与换行;表格按内容比例分配列宽(最小 18mm);中英混排自动切换字体;多主题配色。回退引擎 pandoc + XeLaTeX 适合复杂宽表格、LaTeX 级排版,或用户选择 latex-clean 时作为主引擎。
必要用法:python md2pdf/scripts/md2pdf.py --input report.md --output report.pdf --title "My Report" --author "Author Name" --theme warm-academic。除 --input 外均可选,有默认值。转换前须用 AskUserQuestion 一次性交互询问设计风格、扉页、水印、封底。主题含 warm-academic、classic-thesis、tufte、ieee-journal、elegant-book、chinese-red、ink-wash、github-light、nord-frost、ocean-breeze、latex-clean、consulting-navy。回退示例:pandoc input.md -o output.pdf --pdf-engine=xelatex -V CJKmainfont="Songti SC" -V mainfont="Palatino" -V monofont="Menlo" -V geometry:margin=2.5cm -V fontsize=11pt --toc -V toc-title="目录" -V documentclass=article。
适用场景:含中日韩与拉丁混排、围栏代码块、Markdown 表格、嵌套列表的 .md 报告;需要封面、目录或水印的文档;宽多列表格或需 LaTeX 质量排版时可走 pandoc 回退。
限制:仅接受 Markdown 输入,HTML、DOCX 需先用 pandoc --wrap=none 等转为 markdown;内嵌 HTML 块按文本透传。pandoc 回退无封面、不支持扉页/封底;符号警告可忽略;依赖 reportlab(pip install reportlab --break-system-packages),回退需 pandoc 与含 XeLaTeX 的 TeX 发行版。其他未提供。