首页 > 解决方案 > 粗体字重不适用于 dompdf 中的 Google 字体

问题描述

我正在使用 dompdf 将 HTML 代码转换为 pdf。我正在使用 Google 字体并像这样导入它们:

@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800&display=swap');

当我在我的 CSS 中使用它们时:

    h1, h3, .text {
      font-family: 'Open Sans';
      font-weight: 400;
    }

我得到了正确字体的文本。现在,当某些文本像标题或某些粗体文本一样是粗体时,它们不会获得正确的字体粗细。当我将字体粗细更改为 400 以上时,它们不再起作用。

有谁知道如何在 dompdf 中使用多种字体粗细?

标签: cssdompdfgoogle-webfonts

解决方案


在Dompdf 0.8.4发布之前,不支持数字字体粗细。如果您使用的是 0.8.4 之前的 Dompdf 版本,则不能使用用数字权重定义的字体。

@import此外,虽然支持数字字体粗细,但在使用规则时,Dompdf 如何解析 Google 字体 URL 似乎存在错误。(参考问题 2054)。您可以改用链接元素来解决此问题。

像下面这样的东西应该可以工作:

<html>
<head>

  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800&display=swap" rel="stylesheet">

  <style>
    .opensans {
      font-family: 'Open Sans';
      font-weight: 400;
    }
</style>

</head>

<body>
  <h1 class="opensans">The quick red fox jumped over the large brown log.</h1>
</body>
</html>

推荐阅读