Импорт пользовательского шрифта в Laravel DOMPDF 0.8.3 / Laravel 5.8 - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь импортировать свой собственный шрифт VAGRounded_BT.ttf в Laravel Dompdf.Я изменил каталог в config / dompdf.php, также font_cache на public / fonts /.Но я не могу отобразить шрифт в моем PDF.

Несколько предлагаемых решений в интернете мне не помогают.Я не могу найти проблему, соответственно, как импортировать мой шрифт.Я пробовал разные шрифты, такие как Lato или Roboto, но всегда одинаковые.

Изменения в config / dompdf.php

        "font_dir" => storage_path('public/fonts/'), 

        "font_cache" => storage_path('public/fonts/'),

Функция контроллера:

    public function deliveryDetailsPDF($delivery_id){

        $header   = Delivery::where('id',$delivery_id)->first();
        $details  = Delivery::getDeliveryDetails($delivery_id);

        $pdf = \PDF::setOptions([
                      'isHtml5ParserEnabled'=> true,
                      'isRemoteEnabled' => true,
                    ])
                    ->loadView('delivery.pdf',compact('header','details'))
                    ->stream();


        return $pdf;
    }

Блок стилей в заголовке файла Blade delivery / pdf.blade.php:

  <style>
    @font-face{
        font-family: VAGBlack;
        src:url('/fonts/VAGRounded_BT.ttf');
        /* src:url({{ storage_path('fonts\VAGRounded_BT.ttf') }}) format("truetype"); */
    }


    h1, h2 {
      font-family:VAGBlack;
      font-size: 14pt;
      color:black;
    }
    </style>

В сгенерированном PDF все еще используется Arial.Как мне достичь своей цели?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 июня 2019

Вам нужно быть немного более явным в вашей декларации @font-face. Попробуйте следующее:

@font-face{
    font-family: VAGBlack;
    src: url('/fonts/VAGRounded_BT.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

Я указал жирный шрифт, потому что это стиль элементов h1 и h2. Если вы не укажете вес и стиль:

  • Я не уверен, что Dompdf зарегистрирует шрифт.
  • Даже если Dompdf зарегистрировал шрифт, он не будет использовать его для элементов H1 и H2, поскольку он не зарегистрирован для использования со жирным шрифтом.
...