Node-Html-Pdf 自定义压缩字体无法正确呈现
Node-Html-Pdf custom condensed fonts not rendering correctly
我正在使用 node-html-pdf 库在 Node.js 上使用 Heroku 将 html 页面呈现为 PDF。我在使用自定义系统字体 Open Sans Condensed 时遇到问题。我无法使用网络字体,因为每个字符都被呈现为 svg,导致大小增加了 10 倍,所以我在本地安装了字体(作为 Mac 上的字体和 Heroku 的 .fonts 目录中的字体) .问题是 Mac 和 Heroku 上的两种字体都被拉长了而不是压缩了。在本地浏览器中呈现 html 时,字体呈现正确,但当通过 html-pdf 时,字体被拉伸。
这是一个样本css正在使用
*, html, body {
margin:0;
padding:0;
font-family: 'Open Sans Condensed';
font-weight: 300;
font-stretch: condensed;
}
在没有 font-strech property
的情况下尝试过,但仍然没有成功。同样的事情发生在不同的压缩字体上,比如 Avenir。附加正确的渲染:
渲染不正确:
很明显,问题是 Heroku 或任何其他基于 Linux 的服务器不支持该字体 Mac。这会导致字体被框架抽出,或者显示不正确的字体。不幸的是,没有解决方案,只能选择不同的字体或设置 Mac 服务器并使用该服务器生成 PDF。
我正在使用 node-html-pdf 库在 Node.js 上使用 Heroku 将 html 页面呈现为 PDF。我在使用自定义系统字体 Open Sans Condensed 时遇到问题。我无法使用网络字体,因为每个字符都被呈现为 svg,导致大小增加了 10 倍,所以我在本地安装了字体(作为 Mac 上的字体和 Heroku 的 .fonts 目录中的字体) .问题是 Mac 和 Heroku 上的两种字体都被拉长了而不是压缩了。在本地浏览器中呈现 html 时,字体呈现正确,但当通过 html-pdf 时,字体被拉伸。
这是一个样本css正在使用
*, html, body {
margin:0;
padding:0;
font-family: 'Open Sans Condensed';
font-weight: 300;
font-stretch: condensed;
}
在没有 font-strech property
的情况下尝试过,但仍然没有成功。同样的事情发生在不同的压缩字体上,比如 Avenir。附加正确的渲染:
渲染不正确:
很明显,问题是 Heroku 或任何其他基于 Linux 的服务器不支持该字体 Mac。这会导致字体被框架抽出,或者显示不正确的字体。不幸的是,没有解决方案,只能选择不同的字体或设置 Mac 服务器并使用该服务器生成 PDF。