码孖 AI HTML 转 PDF
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_82aab149/mm-html-to-pdf。
技能介绍
要解决什么问题
把 HTML 交给 wkhtmltopdf 或浏览器「打印为 PDF」,常见结果是布局漂移、Flex/Grid 对不齐、背景色被吃掉,或 SPA 还没渲染完就导出成空白页。若文档依赖 @page 定纸张与边距、Web 字体和 SVG,更需要与浏览器一致的渲染路径,而不是另一套半残的 HTML 引擎。
技能如何工作
本技能通过 Playwright 无头 Chromium 打开 HTML,再调用原生 PDF 导出。JavaScript 会执行,wait_until='networkidle' 用于尽量等动态内容就绪;与纯静态转换器不同,适合带交互渲染结果的页面。
核心入口是 skill 目录下的 scripts/html_to_pdf.py,典型流程:
- 单文件转换:指定 HTML 路径与输出 PDF
- 遵循 CSS
@page:HTML 里写了size、margin时,配合--prefer-css-page-size,让 PDF 尺寸与边距跟样式表一致 - 批量:对目录内多个 HTML 依次处理(每个文件独立起一个 Chromium 实例)
- 可选能力包括自定义页眉页脚、横向(宽表)、Letter 尺寸与边距等 CLI 参数
CSS 侧完整支持 @page、flexbox、grid、Web 字体、SVG、@media print;背景色需保留 print_background,勿误加 --no-background。
适用边界与注意点
- 路径:图片等相对资源需能解析(绝对路径或合适的
file://基础 URL),否则 PDF 会缺图 - 字体:系统无字体时优先用 Google Fonts 或
@font-face嵌入 - 体积:高分辨率内嵌图会显著增大 PDF,需在 HTML 侧压缩
- 可选文字:扫描件或整页图片内容不可选中是正常现象,需 OCR 另处理
- Linux/Docker:Chromium 依赖若缺失,需按 Playwright 文档安装系统库后再
playwright install chromium
使用场景
- 技术文档或报告已是带 `@page` 的 HTML,需要按 A4 边距导出与浏览器预览一致的 PDF 归档
- 仓库里有一批静态 HTML 报表页,要在 CI 或本机一次性生成同名 PDF 交付给客户
- 宽表格页面在浏览器里横向排版才完整,需把该 HTML 导出为横向 PDF 而非截断列
- SPA 或含异步数据的 HTML 仪表盘,需在 JS 渲染完成后再生成 PDF,避免空白或缺块
适合人员
- 维护内部 wiki 或手册,要把最终 HTML 版式固定成 PDF 发版的文档工程师
- 前端负责发票/对账单等打印模板,需验证 Flex/Grid 与背景色在 PDF 中与线上一致
- 运维或数据团队在 Docker/Linux 跑批处理,要把定时生成的 HTML 快照落成标准 PDF 文件
- 需要自定义页眉页脚与页码的合规材料,从单一 HTML 源导出正式 PDF 的法务或行政支持