Указать шрифт с помощью Dompdf?

#php #css #fonts #dompdf

#php #css #шрифты #dompdf

Вопрос:

Я загрузил небольшой пример сюда. Он состоит из 3 файлов.

Я хотел бы использовать DOMPDF для отображения Laravel-представления на стороне сервера. Я понял, что шрифт, который я использую Open Sans , не работает, поэтому я сделал более простой тест, который показывает ту же проблему.

Если вы попытаетесь вызвать index.php , вы получите этот PDF, в котором Lorem заголовок не отображается с помощью Open Sans .

введите описание изображения здесь

composer.json

 {
    "name": "nowox/test-dompdf",
    "require": {
        "dompdf/dompdf": "^0.8.3",
        "webfontkit/open-sans": "^1.0"
    }
}
  

index.php

 <?php

require 'vendor/autoload.php';

use DompdfDompdf;
use DompdfOptions;

$options = new Options();
$options->set('defaultFont', 'Open Sans');
$options->set('fontDir', 'vendor/webfontkit/open-sans/fonts');

$dompdf = new Dompdf($options);
$dompdf->loadHtml(file_get_contents('template.html'));


$dompdf->setPaper('A4');
$dompdf->render();
$dompdf->stream();
  

index.html

 <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="vendor/webfontkit/open-sans/open-sans.min.css"/>
        <style>
        * {
            font-family: 'Open Sans';
        }
        h1 {
            font-family: 'Open Sans';
        }
        </style>
    </head>
    <body>
        <h1>Lorem</h1>
        <p>Lorem ipsum</p>
    </body>
</html>
  

Ответ №1:

Dompdf (до версии 0.8.3 включительно) не поддерживает числовые веса шрифтов (см. выпуск # 675). Вам придется изменить свою таблицу стилей, чтобы использовать только «жирный» или «обычный» для обозначения веса шрифта.