核心用法
html-to-pdf 是一个基于 Puppeteer 的 HTML 转 PDF 转换工具,支持命令行和程序化两种使用方式。用户既可以将本地 HTML 文件转换为 PDF,也能直接抓取网页 URL 生成 PDF 文档。
基础用法:
- CLI 模式:
node scripts/html-to-pdf.js input.html output.pdf [format] - 程序化调用:通过
convertHtmlToPdf(input, output, options)函数实现,支持异步/await 语法
核心功能涵盖:
- 本地 HTML 文件与远程 URL(http/https)双源输入
- 多种页面格式(A4、Letter、A3、A5 等)
- 自定义边距、缩放比例、横竖向切换
- 背景色/背景图打印控制
- 页眉页脚自定义(支持页码变量如
pageNumber) - 指定页码范围导出
显著优点
1. 功能全面:基于成熟 Headless Chrome 方案,渲染还原度高,支持现代 CSS 特性
2. 接口友好:同时提供 CLI 和 JavaScript API,适应不同场景
3. 配置灵活: margins、scale、headerTemplate 等细粒度参数满足专业排版需求
4. 生态稳定:Puppeteer 由 Google Chrome 团队维护,社区活跃
潜在缺点与局限性
- 环境依赖:需安装 Node.js 及 Chromium(Puppeteer 自动下载但体积大,约 100MB+)
- 资源占用:转换过程内存消耗较高,大批量任务需考虑性能优化
- 无可视化界面:纯代码工具,非技术用户上手门槛较高
- 网络依赖:转换外部 URL 时需处理超时、反爬虫等网络问题
- 安全报告缺失:当前安全认证为占位符,未实际执行漏洞扫描
适合人群
- 开发者/DevOps:需要集成 PDF 生成功能至工作流或 CI/CD 流水线
- 数据工程师:将 HTML 报表、数据可视化页面批量转为 PDF
- 技术写作者:导出技术文档、API 文档为可分发格式
- 前端工程师:实现"打印/下载 PDF"业务功能
常规风险
| 风险类别 | 说明 |
|---------|------|
| **供应链风险** | 依赖 Puppeteer 及 Chromium,需关注版本兼容性 |
| **XSS/代码注入** | 转换不可信 HTML/URL 时,可能执行恶意脚本(建议启用沙箱或白名单) |
| **资源耗尽** | 并发转换大页面可能导致内存溢出,需限制并发数 |
| **隐私泄露** | URL 转换可能携带 Cookie、LocalStorage,处理敏感页面需谨慎 |
总体评价
这是一款面向技术用户的专业级 HTML 转 PDF 方案,功能完备且可扩展性强,适合有 Node.js 基础的开发者集成。建议生产环境补充完整安全扫描,并实施输入内容过滤机制。