WeasyPrint HTML 与 CSS PDF 生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/weasyprint-html-css-pdf-document-generator。
技能介绍
为什么需要专门的 HTML→PDF 工具
直接用浏览器打印 PDF 常遇到三类问题:内容跨页时段落被截断、页眉页脚与正文混淆、移动端布局在纸张上完全失真。更棘手的是,复杂 CSS(如 position: fixed)在分页场景下行为不可预测,开发者往往要写大量特例代码。
WeasyPrint 的工作机制
该技能基于 WeasyPrint 库,核心是用 Python 实现的 原生 CSS 布局引擎,直接解析 HTML 与 CSS,不依赖 WebKit 或 Gecko。关键能力包括:
- 精确分页控制:通过
page-break-before、break-inside等属性管理分页时机,避免元素被切断 - 打印样式支持:支持
@page规则定义页眉(@top-center)、页脚(@bottom-right)及动态页码计数器 - 响应式排版:复用
@media断点规则,让同一套样式适配不同纸张尺寸(如 A4、Letter)
适用边界与注意事项
- 要求 Python 3.10+ 运行环境,支持 CPython 与 PyPy
- 需系统安装字体与 Cairo 依赖,否则中文等非拉丁字符可能无法渲染
- 复杂 CSS 特性(如
transform、Web Animations)暂不支持,需提前验证样式兼容性
使用场景
- 后端开发者需要将 HTML 报告转换为带页码和页眉的 PDF 文件交付给业务方
- 前端工程师希望将响应式 Web 页面按 A4 纸张尺寸精确排版为可打印文档
- 技术文档团队需要将 Markdown 文档渲染为格式统一的 PDF 电子书供下载
- 设计师需要把 HTML 原型稿导出为分页正确的 PDF 交付印刷
适合人员
- 后端开发者,需要将 HTML 订单模板渲染为带流水号页眉和页码的 PDF 发票
- 技术文档工程师,需要将 markdown 文档批量转换为带目录页和页眉的 PDF 手册
- 前端工程师,需要调试 CSS 打印样式并导出符合印刷标准的 PDF 设计稿