Laravel DomPdf использовать пользовательский шрифт - проблема компиляции? - PullRequest
0 голосов
/ 27 сентября 2019

В моем приложении Laravel я использую laravel-dompdf для создания файла PDF.

Для этого я делаю следующее:

public function getPdf($generateView = false)
{
    $fontFilePath = storage_path('fonts/SouthernAire_Personal_Use_Only.ttf');
    $fontFileExists = file_exists($fontFilePath);
    $fontInfo = [
        'fontFilePath' => $fontFilePath,
        'fontFileExists' => $fontFileExists
    ];

    $data = [
        'title' => "Hello World",
        "fontInfo" => $fontInfo
    ];

    if ($generateView) {
        return view('testPdf', $data);
    } else {
        $pdf = PDF::loadView('testPdf', $data);
        return $pdf->download("test.pff");
    }
}

Файл блейда, который я использую, выглядит следующим образом:

<code><!DOCTYPE html>
<html>
<head>
    <title>{{ $title }}</title>

    <style>
        @font-face {
            font-family: 'SouthernAire_Personal_Use_Only';
            src: url({{ $fontInfo['fontFilePath']) }}) format("truetype");
        }
        div.myFont {
            font-family: "SouthernAire_Personal_Use_Only";
            color:red;
            font-size: 30px;
        }
        div.myFont2 {
            font-family: Amatic;
            color: blue;
            font-size: 30px;
        }
    </style>
</head>
<body>
    <h1>{{ $title }}</h1>
    <div class="myFont">Test different font</div>
    <div class="myFont2">Test different font 2</div>
    <pre>
        {{ var_dump($fontInfo) }}
    

Динамический шрифт не используется ни в обычном представлении, ни в pdf.
Простодля сравнения, я проверил с помощью шрифта, который я установил.В этом случае я вижу правильный шрифт, но только в режиме просмотра - PDF по-прежнему показывает шрифт по умолчанию.

Я думаю, что проблема в том, что шрифт не скомпилирован, но не уверен.Есть идеи?

...