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

标签 php html css fonts dompdf

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

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

我在 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 类的任何元素的字体都是正确的,在检查器中它还显示它正在使用网络资源,但当我调用以下命令时在 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(s) 正确生成,所有 css 格式均来自正确应用的其余规则,除了字体。

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

任何建议或意见?

最佳答案

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

关于php - 字体在 HTML 中工作但不呈现 PDF Dompdf v0.8.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696968/

相关文章:

jQuery 计算图像高度没有 css 或高度属性集?

php - 使用 Javascript 读取 session 值

html - 用于将 html 转换为图像的自定义代码,可以将其传递给 blob 并在其他屏幕中呈现为图像

javascript - IFrame 与 Script.. 哪个更适合调用游戏关卡?

html - 图片未显示在 Twitter Bootstrap 模板中

html - 无法删除右边距

php - 从表单获取信息并使用 php 写入 xml 文件?

php - 动态行中的MySQL数据透视表查询

php - MYSQL 连接两个具有相同字段值的表字段,但如果另一个字段与另一个字段不匹配,则仍将包含

javascript - 如何获取 div 加载时的图像尺寸