The Wayback Machine - https://web.archive.org/web/20201109114217/https://github.com/funny-node/html2image
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

README.md

html2image

一个利用 puppeteer 将 html 转为图片的服务

适用于一些无法很好地解析富文本的场景,可以将富文本转为图片后供前端渲染

安装

先确保安装 node 环境 (version >= 8)

# 依赖安装
$ npm install

# 启动服务
$ npm start

服务默认跑在 8888 端口,端口冲突可自行修改

目前的使用形式是截图直接通过 path 参数保存在服务器,所以程序需要和调用程序的服务部署在同一台服务器上,也可以自行修改程序,返回 buffer 或者 base64,然后再自行保存(调用 page.screenshot() 方法,不添加 path 参数,默认会返回 buffer,也可以进行配置,返回 base64)

使用

服务启动后,默认接口地址即为 ip:8888,接受 post 请求

post 请求对象需提供三个参数

  • html {String} 富文本 html 字符串
  • width {Number} 需要生成的图片宽度
  • path {String} 保存的路径
  • return: {Object}
    • code {Number} 200 为保存成功,201 为保存失败

具体使用方式可查看 example 文件夹

CentOS 里部署

如需要在 CentOS 里部署,我遇到的几个坑如下:

  1. npm install 在下载 puppeteer 的某个过程会提示没有权限,尝试用 sudo npm install
  2. 用 pm2 启动服务后,马上 error,查看 pm2 log,是因为 CentOS 部署需要安装额外的模块,参考 这里,我将其列出的 Dependencies 全部用 yum 安装后解决(某些教程可能会让你用 ldd 命令查看缺失的模块,但是 这里例出的名称不一定就是直接可用来安装的名称,具体查看 这篇文章
  3. 继续报错,提示需要加上 --no-sandbox,参考 这里
  4. 截止目前应该可以正常截图了,但是少部分中文会无法显示,参考 给 CentOS 安装中文字体备用)(有的服务器可能根本没有安装中文,就应该先安装中文,但是我的情况是中文已经安装过了,可以用 locale 查看安装的语言)

About

将 html 转为图片存储的 Node.js 服务

Resources

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.