在 Laravel 刀片中生成的 PDF 中未显示字体真棒图标

Posted

技术标签:

【中文标题】在 Laravel 刀片中生成的 PDF 中未显示字体真棒图标【英文标题】:Font awesome icon not showing in generated PDF in Laravel blade 【发布时间】:2019-08-01 11:27:53 【问题描述】:

我在 html 中使用了 Font Awesome 图标,效果很好。但是当我生成这个 HTML 的 PDF 时,所有的 CSS 和 HTML 工作正常,只有 Font Awesome 图标没有显示。

$pdf = PDF2::loadView('templates.'.$request->template_code, ['section' => $section])
    ->setOption('page-size', 'A4')
    ->setOption('margin-bottom', '0mm')
    ->setOption('margin-top', '0mm')
    ->setOption('margin-right', '0mm')
    ->setOption('margin-left', '0mm');

$fileName = 'resumes/'.str_slug($section['info']['data']['first_name']).'-'.$user->id.'.pdf';

Storage::disk('public')->put($fileName, $pdf->output());

return Storage::disk('public')->url($fileName);

在这里,我在 Laravel 控制器中生成 PDF,并在刀片中使用这样的 Font Awesome 图标。

<i class="fa fa-star checked"></i>

我正在使用 Font Awesome CDN 版本。如何在我的 pdf 中显示图标?

【问题讨论】:

Cdn 字体在 pdf 中不起作用,添加字体很棒 link 自定义字体 希望能帮到你***.com/questions/30453168/… @MohammadMalek 我已经尝试过该解决方案。不适合我 @kerbholz 将在 pdf 中 【参考方案1】:

你需要添加 fontawesome 使用内联样式在你的刀片中添加 html &lt;head&gt; 标签

<style>
    @font-face 
        font-family: 'fontawesome3';
        src: url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype');
        font-weight: normal;
        font-style: normal;
    
    .fa3 
        display: inline-block;
        font: normal normal normal 14px/1 fontawesome3;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    

</style>

然后由前缀 fa3 在你的blad中使用

<i class="fa3 fa-star checked"></i>

【讨论】:

以上是关于在 Laravel 刀片中生成的 PDF 中未显示字体真棒图标的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 将生成的 Pdf 保存在队列中

使用 Laravel php 刀片后,如何让数据显示在浏览器中? [关闭]

使用 PDFBOX 生成的 PDF 中未正确显示已保存的文本字段值

MPDF pdf 未在任何浏览器中打开,Codeigniter 中未显示错误

生成PDF,但在swift ios的webView中未检索到文件

Laravel 路由动态路由控制器到刀片模板