网页转高清长图
使用本机已安装的 Chrome、Edge 或 Chromium,把一个 HTML 文件或网页网址渲染成完整的高清长图。适合将学习笔记、报告页、海报页和其他网页内容导出为适合公众号、小红书或朋友圈分享的 PNG/JPG 图片。
使用前提
- Node.js 18+
- 本机已安装 Chrome、Edge 或 Chromium
- 首次使用需要安装
puppeteer-core,不会额外下载浏览器
标准流程
- 将包含本文件的目录记为 Skill 目录,并切换到该目录。
- 如果
node_modules/puppeteer-core不存在,安装依赖:
bash
npm install --no-audit --no-fund
- 执行渲染:
bash
node render.js \
--input "<HTML 文件路径或 http(s) 网址>" \
--out "<输出图片路径>" \
--width 1000 \
--scale 2
- 读取脚本输出的 JSON,并向用户返回:
- 图片文件路径out
- 图片像素尺寸pxWidth×pxHeight
- 文件体积fileMB
参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--input |
本地 HTML 文件路径或 http(s):// 网址 |
必填 |
--out |
输出的 .png、.jpg 或 .jpeg 路径 |
必填 |
--width |
页面 CSS 宽度,建议 700–1440 | 1000 |
--scale |
像素倍数,建议 2 或 3 | 2 |
--format |
png 或 jpeg |
根据输出后缀判断 |
--quality |
JPEG 画质,范围 1–100 | 92 |
--chrome |
手动指定浏览器可执行文件路径 | 自动查找 |
推荐预设
- 公众号或通用长图:
--width 1000 --scale 2 - 手机竖版阅读:
--width 700 --scale 3 - 桌面网页存档:
--width 1440 --scale 2 - 文件过大:改用
--format jpeg --quality 90,或降低--scale
安全边界
- 只渲染用户明确提供或授权访问的本地文件和网址。
- 不要自行读取浏览器 Cookie、登录状态或私人页面。
- 网页会在本机浏览器中执行其脚本;处理不可信网址时保留 Chrome 沙箱,不要添加
--no-sandbox。 - 不要在未获得用户允许时上传生成的图片或网页内容。
排错
NO_CHROME:没有找到浏览器。使用--chrome "<浏览器路径>",或设置CHROME_PATH。MISSING_PUPPETEER:依赖尚未安装。在 Skill 目录运行npm install --no-audit --no-fund。INVALID_INPUT:本地文件不存在,或网址不是有效的http(s)地址。- 页面内容不完整:确认外部资源可访问;对于依赖本地开发服务器的页面,应使用服务器网址作为
--input。