DOMPDF не кэширует некоторые шрифты

Я хочу использовать в моем PDF-файле 5 разных шрифтов (все они TrueType). Вчера я добавил один из них как @font-face и скопировал файл в /storage/fonts (я использую barryvdh / laravel-dompdf, поэтому он установлен по умолчанию). .Ufm был создан и добавлен в dompdf_font_family_cache.php, все работало нормально.

Сегодня я хотел добавить остальные шрифты, я создал отдельные @font-face свойства, скопировал шрифты, но файлы .ufm не были созданы, поэтому их нельзя использовать в PDF.

Google Fonts можно добавить без проблем, и они сохраняются в кеше!

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <style>
            @page {
                margin:0;
                padding:0;
            }
            @font-face {
                font-family: 'font1';
                src: url('/storage/fonts/font1.ttf') format('truetype');
                font-weight: normal;
                font-style: normal;
            }
            @font-face {
                font-family: 'font2';
                src: url('/storage/fonts/font2.ttf') format('truetype');
                font-weight: normal;
                font-style: normal;
            }
            .font1{
                text-align: center;
                font-family: 'font1', sans-serif;
            }
            .font2{
                font-family: 'font2', sans-serif;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <div class="font1">This font is cached</div>
            <div class="font2">This font isn't</div>
        </div>
    </body>
</html>

Я нахожусь на локальном сервере WAMP (PHP 5.6.25), Laravel 5.3, DOMPDF 0.8 с laravel-dompdf.

Что мне не хватает?


person Ozwald    schedule 16.03.2017    source источник


Ответы (1)


Удалить все файлы в storage\fonts

Разрешить DOMPDF создавать там шрифты

sudo chmod -R 755 storage/fonts

Создайте новый PDF-файл для восстановления шрифтов.

person João Mantovani    schedule 16.03.2017
comment
Хорошо, ты поставил меня на правильный путь. Я удалил все из каталога /storage/fonts, поместил файлы в каталог public и назвал эти URL-адреса в @font-face. Все шрифты кешированы и готовы, теперь я понимаю, как это работает. :) Спасибо за помощь! - person Ozwald; 16.03.2017
comment
Нет проблем, Рад, что помог тебе! - person João Mantovani; 16.03.2017
comment
Привет @ João, я тоже пробовал это, но новый шрифт, который я добавил, не кэшируется в каталоге storage / fonts. Я поместил новый шрифт в каталог public / fonts, включил его в файл просмотра PDF и создал новый PDF, но он все еще не кэшируется в хранилище. Я использую laravel 5.5, не могли бы вы помочь мне разобраться в этом. - person Kamal Paliwal; 13.06.2018
comment
Вы пытались вручную поместить шрифты в хранилище / шрифты и восстановить PDF-файл? - person João Mantovani; 13.06.2018
comment
Вы должны попробовать комментарий выше или просто попытаться сослаться на шрифт с какого-нибудь компакт-диска. вот так: <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> - person João Mantovani; 13.06.2018
comment
Я попытался включить шрифт, используя этот формат src: url ('{{url (/fonts/fireflysung.ttf)}}') ('truetype'); то есть в каталоге public / fonts. Да, я пробовал использовать какую-то внешнюю ссылку, например cdn или что-то еще, и она работает нормально, но что мне делать, чтобы использовать ее должным образом, т.е. она должна автоматически генерировать файлы кеша в хранилище / шрифтах. - person Kamal Paliwal; 14.06.2018
comment
Извините, я больше не использовал этот плагин, поэтому не знаю, что вам сказать. Если вы попытаетесь поместить шрифты в общую папку, а не в папку для хранения, и будете ссылаться на шрифты в шаблоне лезвия? Примерно так: src: url('{{ public_path('fonts/OptimusPrinceps.tff') }}'); Проверьте этот ответ, чтобы получить дополнительную информацию: stackoverflow.com/questions/36966953/ - person João Mantovani; 14.06.2018
comment
Еще одна попытка - проверить, может ли laravel найти шрифты fireflysung, используя хранилище - person João Mantovani; 14.06.2018