Laravel каталог пользовательских шрифтов dompdf - PullRequest
0 голосов
/ 28 февраля 2020

Я установил laravel -dompdf (v0.8.5), чтобы создавать файлы PDF для пользователей, и хочу использовать какой-то другой шрифт.

Мне удается сделать это, объявив этот шрифт внутри блейда. file:

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

    <style>
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Regular.ttf')}}) format("truetype");
        }
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Bold.ttf')}}) format("truetype");
            font-weight: bold;
        }

Когда я генерирую PDF (из браузера), я получаю дополнительную запись в storage/fonts/dompdf_font_family_cache.php:

'jaldi' => array(
    'normal' => $fontDir . '/jaldi-normal_f26068eedd4182fc16a39c0f4c1a4678',
    'bold' => $fontDir . '/jaldi-bold_b51d304a463ce577b3942eb308c7c1ff',
),

Моя проблема в том, что новые файлы генерируется в каталоге шрифтов , который является частью моего git хранилища. Поэтому, когда я делаю то же самое в другой среде (dev или prod), статус git больше не ясен.

Я пытался изменить целевой каталог в config/dompdf.php файле конфигурации :

  "font_cache" => storage_path('tmp/font-cache/'),

  "temp_dir" => storage_path('tmp/font-cache/'),

Тем не менее, новые файлы создаются в каталоге шрифтов.

Есть идеи?

1 Ответ

0 голосов
/ 29 апреля 2020

Я не знаю, нормальное ли это поведение, но я нашел решение, которое работает для меня.

Я создал две директории в директории storage - fonts и fontsCache: * 1006 Каталог *

  • fonts содержит файлы шрифтов ttf
  • fontsCache Каталог пуст, доступен для записи (chmod 777) и исключен из моего хранилища (.gitignore)

Файл config/dompdf.php содержит следующую конфигурацию:

"font_dir" => storage_path('fontsCache/'),
"font_cache" => storage_path('fontsCache/')

С другой стороны, файл blade содержит следующий код:

    <style>
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Regular.ttf')}}) format("truetype");
        }
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Bold.ttf')}}) format("truetype");
            font-weight: bold;
        }

Таким образом Я храню разделение между файлами, которые контролируются моим хранилищем, и файлами, которые генерируются на лету dompdf.

...