arm架构的服务使用node-html-to-image

368 阅读1分钟

需求: 服务端根据前端传入的文字生成表格数据,并进行图片拼接,最终输出成png格式的图片

思路: 由于我使用的是nodejs服务端,从而使用了node-html-to-image来完成这个需求。

node-html-to-image相关资料:node-html-to-image - npm (npmjs.com)

如果你的服务器采用的是arm架构的话,使用node-html-to-image会出现错误,原因是node-html-to-image内部会启动puppeteer来处理截图的操作,而puppeteer需要启动chrome浏览器进程,但是chrome浏览器并没有提供支持arm架构的发布版本!!

这一点在puppeteer官网上也有描述

故障排除 | Puppeteer 中文网 (nodejs.cn)

image.png

解决办法: 采用开源的chromium浏览器代替chrome浏览器

ubuntu系统可以直接安装chromium浏览器

sudo apt-get install chromium-browser

检查浏览器的路径, 启动文件获取路径

whereis chromium-browser

代码修改

安装pupperteer-core

npm i pupperteer-core

代码修改:

image.png

中文支持

如果你的服务器中没有中文字体文件,则需要手动将字体文件放到 /usr/share/fonts 路径下:

image.png