需求: 服务端根据前端传入的文字生成表格数据,并进行图片拼接,最终输出成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)
解决办法: 采用开源的chromium浏览器代替chrome浏览器
ubuntu系统可以直接安装chromium浏览器
sudo apt-get install chromium-browser
检查浏览器的路径, 启动文件获取路径
whereis chromium-browser
代码修改
安装pupperteer-core
npm i pupperteer-core
代码修改:
中文支持
如果你的服务器中没有中文字体文件,则需要手动将字体文件放到 /usr/share/fonts 路径下: