尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
html-pdf-chrome 实战指南:HTML 转 PDF
html-pdf-chrome 实战指南HTML 转 PDF【免费下载链接】html-pdf-chromeHTML to PDF or image (jpeg, png, webp) converter via Chrome/Chromium项目地址: https://gitcode.com/gh_mirrors/ht/html-pdf-chrome导出的 PDF 排版总跑版、截图脚本总抢跑页面加载html-pdf-chrome 是一款基于无头 Chrome 渲染的 HTML转PDF 工具把一段 HTML 或一个 URL 交给真实的 Chrome 内核输出 PDF 或 PNG/JPEG/WebP 图片接口全量 TypeScript 标注。 快速上手最小配置完成第一次转换最短路径指到一台已经跑着的 Chrome 的端口传进 HTML调toFile落盘。如果你完全不给 host 和 port它会自动拉起一个 Chrome、用完即杀——适合一次性尝鲜但每次启动都有固定开销不适合放进生产链路。import * as htmlPdf from html-pdf-chrome; const options: htmlPdf.CreateOptions { port: 9222 }; const pdf await htmlPdf.create(pHello, world!/p, options); await pdf.toFile(test.pdf);生成后直接打开文件先确认链路通了再谈调参。返回的 CreateResult 还能用toBase64()、toBuffer()、toStream()转换后面要过 HTTP 时Buffer 或 Stream 更方便。 按场景使用三种任务各改哪几个参数不同任务只是在同一个 CreateOptions 配置对象上多改两三个参数下面的三节各对应一个具体任务。报表怎么印成带页眉页脚的正式 PDF正式文档看三样纸张、边距、页码。landscape切横竖排paperWidth/paperHeight定纸型单位是英寸四个 margin 管四边留白。要页码就得先把displayHeaderFooter打开再给页眉页脚写模板——模板里用date、title、url、pageNumber、totalPages这几个 class 名占位Chrome 打印时会自动替换需要 Chrome 65 及以上。一个坑模板里的图片必须 base64 内联外部路径不会生效。const options: htmlPdf.CreateOptions { port: 9222, printOptions: { displayHeaderFooter: true, footerTemplate: span classpageNumber/span / span classtotalPages/span, paperWidth: 8.5, paperHeight: 11, marginTop: 0.4, marginBottom: 0.4, marginLeft: 0.4, marginRight: 0.4, }, };只打印特定区间时用pageRanges写1-5这类范围scale用来整体微调内容大小。网页怎么拍指定尺寸、移动端的截图只要配置里带上screenshotOptions输出就从 PDF 变成图片不写 format 默认 png。要 jpeg 或 webp 就显式指定jpeg 可以配quality控压缩。想只截页面的一部分用clip给 x、y、width、height 画个框。想拍移动端效果就再挂一组deviceMetricswidth、height 写清视口deviceScaleFactor设 2 能让像素密度翻倍mobile: true触发移动端模拟。最常见的尺寸翻车原因就是漏了 deviceMetrics——不设置时 Chrome 用默认视口截出来的图不是你想要的宽。生产环境怎么连接并稳住 Chrome生产上让 Chrome 单独常驻别依赖库每次现起。用 pm2 托管最合适崩了自动拉起无头版空闲内存大约 65MB成本很低。pm2 start google-chrome --interpreter none -- \ --headless --disable-gpu \ --hide-scrollbars \ --remote-debugging-port9222代码侧只需把 options 的 port 写成同一个端口。其余参数按环境裁剪即可唯一硬性要求是--remote-debugging-port和配置对上。另有一条安全边界这个库不该接受不可信的用户输入别让终端用户直接把 URL 传进来。⚡ 配置速查关键参数与建议取值下表只列最常用的几项没列出的都有默认值开箱能跑。参数作用建议取值host / port连接 Chrome 调试端口的地址两者都不填则自动拉起指向常驻实例的 9222chromePath自动拉起时指定 Chrome 可执行文件路径系统默认即可找不到再填chromeFlags自动拉起时的启动参数默认已含无头、禁 GPUprintOptionsPDF 打印选项核心纸张、四边边距、页眉页脚报表类四边边距都写全screenshotOptions截图格式、质量、裁剪范围默认 png需压缩用 jpeg qualitydeviceMetrics模拟设备宽高与移动端模式移动端给 mobile: true deviceScaleFactor: 2completionTrigger转换前的等待条件看页面特性见下一节timeout整体超时毫秒到点报错退出复杂页面给 30000clearCache加载前清空 Chrome 缓存内容不确定就置 truecookies注入页面的 Cookie登录态页面必配extraHTTPHeaders随请求附带的 HTTP 头带 Authorization 等鉴权用runtimeConsoleHandler / runtimeExceptionHandler接收页面 console 消息与未捕获异常的回调生产环境建议都接上落日志⏱️ 页面准备好了吗五种等待机制怎么选抢跑的本质是转换发生在页面就绪之前。先诊断你的页面慢在哪个环节环节能说出来对应的 CompletionTrigger 等待机制就选得出来。慢在哪个环节用这个写法示例渲染时长不确定但两三秒内总能好Timernew CompletionTrigger.Timer(3000)内容要等某个元素出现在 DOM 里Elementnew CompletionTrigger.Element(#app, 5000)页面自己会在完成时派发自定义事件Eventnew CompletionTrigger.Event(ready, #app, 10000)只需网络与渲染都平息下来LifecycleEventnew CompletionTrigger.LifecycleEvent(networkIdle)JS 会在页面里置一个全局变量表示完成Variablenew CompletionTrigger.Variable(pageLoaded, 8000)两条常识一是每个触发器的第二个参数是它自己的超时默认只有 1000 毫秒不改很容易撞见 CompletionTrigger timed out.所以务必显式写二是 Variable 默认盯一个叫 htmlPdfDone 的全局变量你在页面脚本里把数据渲染完把它置为 true工具侦测到就会继续。页面不落在上面任何一类也可以继承基类自己写判定逻辑。️ 生产避坑清单连接、超时、内存生产环境最常出的问题都围绕连接、时间、内存三件事合并成一张清单连接复用别让库每次生成都现起 Chrome启动开销远大于一台常驻实例超时档位简单静态页 5~10 秒、复杂 SPA 30~60 秒、图片密集页 60 秒以上timeout 管整体时长触发器的超时管等待时长两层会叠加内存与缓存开clearCache避免打印到旧缓存内容Chrome 定期重启防止长期运行后内存漂移连不上调试端口九成是端口没监听或配置写错先确认再怀疑库运行中途断连它会抛 ConnectionLostError中文乱码在 HTML 头部加meta charsetUTF-8多数乱码是编码没声明结语最短路径是先跑通上面的示例、确认端口能连、文件能生成再去 src/CreateOptions.ts 对照完整参数注释按需加配置。【免费下载链接】html-pdf-chromeHTML to PDF or image (jpeg, png, webp) converter via Chrome/Chromium项目地址: https://gitcode.com/gh_mirrors/ht/html-pdf-chrome创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Mojo 编程语言正式开源:Python 超集的性能承诺,AI 原生语言进入新阶段

Mojo 编程语言正式开源:Python 超集的性能承诺,AI 原生语言进入新阶段

摘要:2026 年 8 月 18 日,Modular 在 ModCon 2026 大会上宣布 Mojo 语言正式开源,编译器与工具链源码以 Apache 2.0(含 LLVM Exceptions)许可发布至 GitHub。这是 Mojo 从「开放社区、封闭编译器」走向真正开源的关键转折,社区第一次可以逐行审查、自行构建,「Python 性能 系统…

📅 2026/11/7 4:37:30
2026硬核AI论文软件推荐|PaperXie一站式解决毕业论文所有难题

2026硬核AI论文软件推荐|PaperXie一站式解决毕业论文所有难题

在高校学术审核愈发严格的当下,论文写作早已不是单纯的文字创作,从开题构思、初稿撰写、查重降重,到格式排版、配图优化、答辩准备,繁琐的流程让无数毕业生倍感内耗。随着AI技术普及,各类AI论文工具层出不穷&#xff0…

📅 2026/10/27 17:28:34
同样用Copilot做财报分析,为什么别人的报告更专业?关键在提示词细节

同样用Copilot做财报分析,为什么别人的报告更专业?关键在提示词细节

很多职场人在用Microsoft Copilot处理商务文档、财务分析、并购尽调等工作时,都会遇到一个共性问题:明明都是AI生成内容,别人的报告数据详实、结构完整、可直接落地,自己的输出却空洞笼统、细节缺失、无法复用。 其实差距不在于工…

📅 2026/10/30 6:58:21
MORE NEWS

更多资讯

📰

哪里的低压电工证便宜还能全国通用

哪里的低压电工证便宜还能全国通用 实操考试心里没底怕挂科,这几乎是每一位想考低压电工证的学员心里最真实的声音。尤其是对于许昌的应届工程类毕业生来说,低压电工证不仅是一份工作入场券,更是关系到未来职业发展的关键。但面对【哪里的低压电工证便宜】…

📰

考电工证学历证明报名费多少钱

电工证报名需要学历证明吗?良心建议来了! 你还在为考电工证学历证明发愁吗?电工证是特种作业操作证的一种,是很多建筑、电力、安装类岗位的“门槛证”,没有它根本找不到好工作。尤其是现在,很多企业、项目单位都明确要求持证上岗,…

📰

电工证复审会有提醒吗保姆级教程

电工证复审会有提醒吗保姆级教程 你现在正拿着电工证找工作,却担心证书会不会过期?别急,今天我就从郑州金水区市政公用工程从业者的角度,手把手教你搞定电工证复审的问题,还顺带讲讲报考、补办、变更这些事,全是干货,别眨眼。…

📰

特种工网上报名流程怎么走?含金量高的证才好找工作

特种工网上报名流程怎么走?含金量高的证才好找工作 你还在为没有特种作业证发愁?找工作时被拒,项目开工前卡壳,连个入场资格都拿不到。特种作业证,不仅关系到能不能上工,还直接影响你的薪资含金量。很多人以为特种作业证只是个“纸片”,但真正干这行的…

📰

高级电工证 三级证到期换证流程

工地太忙根本没时间复习考试?高级电工证三级证真实经历告诉你怎么应对 那天早上,我正站在濮阳某工地的配电箱前,手里拿着一沓线路图,脑子里却全是 高级电工证三级证…

📰

湖州初级电工证报名费多少钱 良心建议来了

湖州初级电工证报名费多少钱 良心建议来了 你是不是正在为找不到电工工作发愁?是不是刚出校门就被告知“没有电工证不能上岗”?别急, 湖州初级电工证 是你必须拿下的一张通行证,而我今天就给你一个 良心建议…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬