#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). Вам придется изменить свою таблицу стилей, чтобы использовать только «жирный» или «обычный» для обозначения веса шрифта.