自定义字体粗体粗细在Dompdf中不起作用

时间:2020-07-21 17:14:59

标签: php dompdf

我正在使用Dompdf从Wordpress网站上通过电子邮件生成和发送PDF。我正在尝试使用自定义字体,而normal的字体粗细工作正常,但是bold却无法正常工作。

这是我的HTML变量的样子:

$html =
'<html>
  <body>
    <style>
    @font-face {
      font-family: "Proxima Nova";
      font-weight: normal;
      font-style: normal;
      src: url(' . get_template_directory() . '/fonts/ProximaNova-Reg.woff2) format("woff2"), url(' . get_template_directory() . '/fonts/ProximaNova-Reg.woff) format("woff");
    }
    @font-face {
      font-family: "Proxima Nova";
      font-weight: bold;
      font-style: normal;
      src: url(' . get_template_directory() . '/fonts/ProximaNova-Bold.woff2) format("woff2"), url(' . get_template_directory() . '/fonts/ProximaNova-Bold.woff) format("woff");
    }
    body,html {font-family:"Proxima Nova";}
    </style>
    <table>
      <thead>
        <tr>
          <th>Test</th>
          <th>Test</th>
          <th>Test</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Test</td>
          <td>Test</td>
          <td>Test</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>';

当我打开生成的PDF时,将以Proxima Nova字体正确显示td,而没有显示th。奇怪的是,如果我只是使用wp_mail通过电子邮件将HTML发送给自己,则粗体字体可以正常工作。仅在PDF中不起作用。有什么想法吗?

电子邮件截屏:
enter image description here

PDF中的屏幕截图:
enter image description here

我没有在本地安装字体

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,有一次我使用的是TrueType字体粗细的normal版本,而不是bold。显然php-font-lib只能从ttf文件生成兼容字体,而不能从woff生成兼容字体。当我将两个声明都切换到ttf时,它生成了必要的文件,并且现在两个权重都在起作用。