В моем приложении 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 по-прежнему показывает шрифт по умолчанию.
Я думаю, что проблема в том, что шрифт не скомпилирован, но не уверен.Есть идеи?