0

我正在使用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。附加正确的渲染: 屏幕截图 2017-10-16 在 21 55 31

和一个不正确的渲染:
屏幕截图 2017-10-16 在 21 55 11

4

1 回答 1

-2

显然,问题在于 Heroku 或 Mac 期望的任何其他基于 Linux 的服务器不支持该字体。这会导致字体被框架绘制出来,或者显示不正确的字体。不幸的是,没有解决方案希望选择不同的字体或设置 Mac 服务器并使用该服务器生成 PDF。

于 2018-01-06T14:08:46.033 回答