字体在 HTML 中工作但不呈现 PDF Dompdf v0.8.0

Fonts work in HTML but not rendered PDF Dompdf v0.8.0

我知道有一大堆有些相关的主题,但我似乎找不到相同的主题和/或包含解决我问题的解决方案。

我正在向 dompdf 发送一个 HTML 文档,其中包含嵌入的 CSS 以及字体声明和 class 定义。这些字体位于同一台服务器上,我尝试了相对路径和绝对路径,但似乎无法使它们正常工作。

我在 HTML 文档的头部包含以下内容,然后发送到 dompdf。

<style type="text/css">
    @font-face {
        font-family: "Roboto";
        font-weight: normal;
        font-style: normal;
         src: url( "http://localhost/resources/fonts/Roboto/Roboto-Regular.ttf") format('truetype');
     }
      .font_alpha { font-family: "Roboto";}`

    /* .... Other css rules here ... */

</style>

当我回显 html 而不是将其发送到 dompdf 时,我可以看到应用了 .font_alpha class 的任何元素的字体都是正确的,在检查器中还显示它正在使用网络资源,但当我在 html 上调用以下内容时,字体没有得到应用。

//This is where I would display the html directly for testing
//echo $report_html; exit;

$dompdf = new DOMPDF();
$dompdf -> load_html( $report_html );
$dompdf -> set_paper( $this -> paper_size, $this -> paper_orientation );
$dompdf -> render();
$dompdf -> output();

pdf 正确生成,所有 css 格式均来自正确应用的其余规则,除了字体。

老实说,我不确定是否需要以其他方式安装这些字体,例如使用 cmd 行 load_font.php 第三方库。基于我认为我可以理解 0.8.0 版本,我不需要,对吗?

有什么建议或意见吗?

Dompdf 的 CSS 解析逻辑可能有点挑剔。 URL 字符串前面的 space 使 Dompdf 出错。如果您将 CSS 修改为 src: url("http...") format('truetype');,它应该会按预期工作。