在 Ubuntu 中 运行 时,Puppeteer 无法呈现表情符号
Puppeteer failed to render emojis when running in Ubuntu
我有一个使用 puppeteer 截取 DOM 组件并输出图像的脚本。在 MacOS 上一切正常,但是当我在 Ubuntu 上 运行 时,表情符号变成了一个矩形。有谁知道为什么会这样?
- MacOS:(您可以在其中看到火箭表情符号)
- Ubuntu:(emoji变成长方形)
多个来源 (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,输出文件的大小将显着增加。
我有一个使用 puppeteer 截取 DOM 组件并输出图像的脚本。在 MacOS 上一切正常,但是当我在 Ubuntu 上 运行 时,表情符号变成了一个矩形。有谁知道为什么会这样?
- MacOS:(您可以在其中看到火箭表情符号)
- Ubuntu:(emoji变成长方形)
多个来源 (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,输出文件的大小将显着增加。