用途:从受版本控制的 HTML/CSS 模板生成精美 PDF,适用于发票、报告、提案、简报、合同式文档、单页文档、可打印指南等自有新 PDF,不适用于编辑已有 PDF、OCR 提取、JS 重度网页截图或底层矢量绘图。
主要能力:以“HTML 模板 + 打印 CSS + 数据 → WeasyPrint → PDF → QA → 发布”为核心工作流;支持 Jinja2 数据注入、@page 与 print 媒体查询、mm 单位、CSS grid/table 布局、tabular-nums 数字对齐、长值换行等打印优先样式;提供渲染脚本模式与 QA 清单。
使用方式:安装 Python venv 后执行 pip install -r requirements.txt,依赖 weasyprint==68.1、Jinja2>=3.1、pypdf>=5.0;Debian/Ubuntu 需安装 libpango-1.0-0、libpangoft2-1.0-0、libharfbuzz-subset0、fontconfig、fonts-dejavu-core 等原生依赖。用 Python 脚本读取模板与 JSON 数据渲染 PDF,再通过 WeasyPrint 警告检查、pdfinfo 页数与页面尺寸检查、pdftotext 文本提取、浏览器预览和视觉重叠检查完成 QA。发布时可输出静态目录,用任意静态托管(GitHub Pages、Cloudflare Pages、Netlify、nginx、S3 等)供评审。
适用场景:需要可复用、可测试、可版本控制的业务文档模板,且希望比 Markdown 默认导出更美观的 PDF。
限制:WeasyPrint 并非完整 Chrome 克隆,部分浏览器 CSS 不支持;避免在真实内容上使用绝对定位装饰;长 IBAN、邮箱、ID 需 overflow-wrap:anywhere;固定 297mm 高度加内边距易产生空白页;需固定渲染器版本与字体以保证可复现;截图不能替代日志、页数、文本提取等检查。具体收费、价格、平台与效果资料暂未提供。