在 Ubuntu 中 运行 时,Puppeteer 无法呈现表情符号

Puppeteer failed to render emojis when running in Ubuntu

我有一个使用 puppeteer 截取 DOM 组件并输出图像的脚本。在 MacOS 上一切正常,但是当我在 Ubuntu 上 运行 时,表情符号变成了一个矩形。有谁知道为什么会这样?

多个来源 (1, 2, 3) 建议在 Ubuntu 上使用 fonts-noto-color-emoji 字体来解决此问题:

sudo apt install fonts-noto-color-emoji

更新:可以从 Ubuntu 18.04

开始更新

如果你恰好在使用chrome-aws-lambda(即:使用云函数执行Puppeteer),你可以在实例化浏览器后立即加载字体:

const chromium = require('chrome-aws-lambda');

const browser = // ...
await chromium.font('https://raw.githack.com/googlei18n/noto-emoji/master/fonts/NotoColorEmoji.ttf');

但是请注意,该字体将近 10 MB。如果不是截屏而是生成 PDF,输出文件的大小将显着增加。