Laravel DomPdf添加自定义字体

时间:2017-04-26 13:59:31

标签: php laravel dompdf

我正在尝试使用Laravel在Dompdf中使用OLD英文字体。 我已经在laravel视图中插入了字体。但是在生成pdf时它似乎无法正常工作。我尝试编辑dompdf> vendor> ... / dompdf_font_family_cache.dist.php File.But没有运气,

任何人都可以建议解决方案。

提前致谢。

5 个答案:

答案 0 :(得分:6)

  1. 在Laravel项目的存储文件夹中创建一个字体目录。 (存储空间/字体)
  2. 将.otf或.ttf文件放置在storage / fonts目录中。
  3. 在您的view / html中,使用Laravel提供的storage_path方法添加@ font-face规则。

    @font-face {
        font-family: 'Your custom font name';
        src: url({{ storage_path('fonts\your-custom-font.ttf') }}) format("truetype");
        font-weight: 400; // use the matching font-weight here ( 100, 200, 300, 400, etc).
        font-style: normal; // use the matching font-style here
    }
    
  4. 将字体家族规则添加到css中,如下所示

    body {
        font-family: "Your custom font name";
    }
    

希望这会有所帮助。

答案 1 :(得分:3)

我也试图包含自定义字体。 我在视图中包含了字体(使用@ font-face声明),但是当我尝试生成pdf时,它在AdobeFontMetrics.php中给了我一个ErrorException。 我通过在laravel项目的存储文件夹中创建一个fonts文件夹来解决。 所以现在我有:

> storage
    > app
    > fonts
    > framework
    > logs

我希望它会有所帮助

答案 2 :(得分:1)

@font-face {
font-family: 'Journal';
src: url('yourwebsite.com/journal.ttf")}}') format('truetype');
}
.typed {
font-family: 'Journal';
}
<p class='typed'>Signature</p>

确保把你的字体名称写成这样font: Journal;它会起作用。

在您的存储文件夹下添加字体文件夹。

答案 3 :(得分:0)

Set font into html page which is load in Dompdf
    <html>
    <head>
      <style>
      @font-face {
        font-family: 'Helvetica';
        font-weight: normal;
        font-style: normal;
        font-variant: normal;
        src: url("font url");
      }
      body {
        font-family: Helvetica, sans-serif;
      }
      </style>
    </head>
    <body>
      <p>hello world</p>
    </body>
    </html>

答案 4 :(得分:0)