小编Had*_*dzo的帖子

Puppeteer npm 如何从本地文件设置字体

我想在使用 puppeteer 节点模块渲染 PDF 时从本地文件加载字体。

使用网络字体对我有用,但这不满足要求。

我的环境:

  • 节点:v10.18.1,
  • 傀儡师:“傀儡师”:“^2.0.0”,
  • Chromium:Chromium 79.0.3945.88 Fedora 项目,
  • 操作系统:CentOS Linux 8.0.1905 版(核心)

这是我到目前为止尝试过的代码:使用@font-face 加载字体、更改 networkidle 的值、设置超时、设置用于字体更新的事件侦听器。事件我设置此回调以获取返回“Open Sans”但呈现的 PDF 文件不是 Open Sans 字体的字体属性。

const puppeteer = require('puppeteer');
const chromiumExecutablePath = '/bin/chromium-browser';

let document = `
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>

            @font-face {
                font-family: "Open Sans";
                font-style: normal;
                font-weight: 400;
                src: local("Open Sans") url("/opt/www/webapp/resources/packed/OpenSans-Regular.eot");
                src: local("Open Sans") url("/opt/www/webapp/resources/packed/OpenSans-Regular.woof") format("woff"),
                     local("Open Sans") url("/opt/www/webapp/resources/packed/OpenSans-Regular.ttf") format("truetype");
            }

            html, body { …
Run Code Online (Sandbox Code Playgroud)

javascript css fonts node.js puppeteer

11
推荐指数
1
解决办法
2724
查看次数

标签 统计

css ×1

fonts ×1

javascript ×1

node.js ×1

puppeteer ×1