yous
@yous

Dompdf не работает шрифт Dejavu sans?

<?php
header('Content-type: text/html; charset=UTF-8');
require_once ($_SERVER['DOCUMENT_ROOT'].'/libs/vendor/autoload.php');

use Dompdf\Dompdf;
ob_start();
?>
<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
		
		<style type="text/css">
			* {
				font-family: "dejavu sans", serif; // если изменить на другой шрифт, то будет работать
			}
			html,body {
				margin: 10px 30px;
				padding: 0;
				position: relative;
			}
		</style>
	</head>
	<body>
тест test
	</body>
</html>
<?
$html = ob_get_clean();

//$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');

$dompdf = new Dompdf();
 
//дефолтный шрифт - dejavu sans, т.к. он поддерживает кириллицу
$dompdf->set_option('fontDir', $_SERVER['DOCUMENT_ROOT'].'/libs/vendor/dompdf/lib/fonts');
$dompdf->set_option('defaultFont', 'dejavu sans'); // если убрать то работает
//даём возможность читать внешние ссылки (для отображения картинок извне)
$dompdf->set_option('isRemoteEnabled', true);
$dompdf->set_option('isJavascriptEnabled', false);
//запихиваем html-ку в преобразователь
$dompdf->loadHtml($html,'UTF-8');
//ставим A4 вертикально
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF - рендерим
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream('sfd.pdf',array('Attachment'=>0));


бред какой-то, в одном проекте работает в другом нет...

Ставлю через композер, беру пример из гита. PDF тупо не может сформироваться если указать шрифт Dejavu sans.
если указать любой другой или вообще абрукадабру написать, то pdf формируется, но поддержки кириллицы нет.
шрифт в папке есть.
что за фигня?
php7.1 dompdf 0.8.2
  • Вопрос задан
  • 1754 просмотра
Пригласить эксперта
Ответы на вопрос 1
harmakit
@harmakit
Да, у самого с dompdf были проблемы..
Попробуй со шрифтом ArialUni

Устанавливать через load_font.php
php load_font.php arial arialuni.ttf

Статья про решение проблем с Юникодом: Ссылка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы