【问题标题】:Puppeteer failed to render emojis when running in UbuntuPuppeteer 在 Ubuntu 中运行时无法渲染表情符号
【发布时间】:2020-12-07 03:47:14
【问题描述】:

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

  • MacOS:(可以看到火箭表情符号的地方)

  • Ubuntu:(表情符号变成矩形)

【问题讨论】:

    标签: ubuntu puppeteer chromium


    【解决方案1】:

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

    sudo apt install fonts-noto-color-emoji
    

    更新:从 Ubuntu 18.04 开始可以这样做

    【讨论】:

    • 是的,我在 ubuntu 16.04 LTS 中查看了 fonts-noto-color-emoji,但我找不到安装它的方法。但是在我切换到 ubuntu 18.04 LTS 之后,我可以做sudo apt install fonts-noto-color-emoji,然后 puppeteer 可以很好地渲染图像。
    【解决方案2】:

    如果你碰巧使用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 而不是截屏,则输出文件的大小会显着增加。

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2020-12-28
      • 2013-06-25
      • 2014-07-27
      • 2019-03-25
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多