Puppeteer PDF 渲染器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/puppeteer-pdf-renderer。
技能介绍
先解决什么问题
把网页变成 PDF,看起来只是一句 page.pdf() 的事,实际工程里却处处是坑:长页面被截断、表头在翻页后消失、分栏内容被硬生生劈开、登录后的页面一抓就是空白,或者输出的 PDF 里字体与线上渲染不一致。这个技能关注的是「从真实页面拿到可用于归档、分发、打印的成品 PDF」,而不是简单地截图存档。
它如何工作
- 真实浏览器渲染:由 Puppeteer 启动无头浏览器,页面先完成 JavaScript 执行与资源加载,再走 Chromium 自带的 PDF 生成能力。因此
page.pdf()输出的是矢量文本而非位图,打印缩放后依然清晰。 - 自定义页眉与页脚:通过参数注入页眉、页脚模板,可以放上文档标题、章节名、页码、生成时间等信息,避免事后手工给 PDF 补页码。
- 可控的分页行为:支持通过 CSS 分页规则与打印媒体设置控制断页位置,例如让章节标题不与正文分离、让表格不被切断。
- 认证页面也能渲染:支持以 Cookie 注入的方式进入需要登录的页面,先恢复会话状态,再对目标页面执行渲染,适合内部报表、后台详情页这类不对外开放的资源。
适用边界与注意点
- PDF 走的是 Chromium 的
Page.printToPDF能力,不是 CSS Paged Media 的完整实现,少数打印样式(如break-inside的部分行为)需要在实际页面中验证后再上线。 - Cookie 注入依赖会话仍然有效,Cookie 过期、CSRF 令牌失效都会导致渲染出未登录页面,必要时在渲染前重新获取凭据。
- 依赖远程接口动态加载的页面,建议显式等待关键内容出现后再触发打印,否则 PDF 里可能只留下骨架屏。
- 被渲染站点的
robots.txt、服务条款与访问频率限制仍需自行评估,批量导出前先确认是否有授权。 - 该能力源自 Puppeteer 上游文档,同时存在基于 Puppeteer 的 MCP server 可用于浏览器自动化与调试场景。
使用场景
- 客服要在工单系统里导出登录后的问题详情,保留网页版式和分页,用于归档和传给开发排查。
- 后端工程师要把监控面板导出为交付用 PDF,页脚带生成时间与页码,并避免图表被切断。
- 文档工程师要为在线帮助手册生成打印版,章节标题不与正文分离,页眉显示当前章节名。
- 数据分析师要把内网报表导出给外部评审,先注入会话 Cookie 再渲染,输出矢量文本便于复用。
适合人员
- 后端工程师需要把内部系统或接口文档渲染成可交付 PDF,并注入登录 Cookie 访问受限页面。
- 前端工程师要验证长页面分页效果,控制表头和图片不被切断,并导出样例给设计确认。
- 文档工程师要把在线手册和帮助中心内容固化为可打印版本,补上章节标题、页码与页眉。
- 内容运营要归档后台详情页和报表,先恢复会话再导出,便于后续检索或外部分享。