Я использую dompdf, чтобы сохранить HTML-страницу в формате PDF на php. Я использую персидские символы в моей html-странице (на самом деле это страница php), но когда я пытаюсь сохранить ее в формате pdf, экспорт выглядит как «?????» :(. Я искал всю сеть, и я нашел конфигурацию для символов Юникода https://github.com/dompdf/dompdf/wiki/UnicodeHowTo#configure-dompdf-for-unicode-support в «dompdf_config.inc.php» или же «Dompdf_config.custom.inc.php» файл. но проблема в том, что я не могу найти такой файл во всей моей папке dompdf и во всей моей файловой системе. Пожалуйста, кто-нибудь, скажите мне, где это или что я должен сделать. что-то еще, что я должен использовать dompdf из-за его фантастической совместимости CSS. Благодарю.
Это экспорт.
http://i.stack.imgur.com/nYAzW.png
Это мой код
require("dompdf/autoload.inc.php");
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml("<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/scorestyle.css\">
</head>
<body><div>
<div id=\"showscorediv\"><table><tbody><tr class=\"scoresubject\"><th colspan=\"2\">کارنامه ارزیابی</th></tr><tr class=\"scorecategory\"><th>شاخص ها</th><th>امیتاز ها</th></tr><tr><td><span class=\"level_0\">شاخص های کیفی</span></td><td class=\"scoretd\">62</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با تیم کاری</span></td><td class=\"scoretd\">10</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با محصول</span></td><td class=\"scoretd\">28</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با بازار</span></td><td class=\"scoretd\">24</td></tr><tr><td><span class=\"level_0\">شاخص های کمی</span></td><td class=\"scoretd\">60</td></tr><tr><td><span class=\"level_1\">شاخص های تولیدی</span></td><td class=\"scoretd\">20</td></tr><tr><td><span class=\"level_1\">شاخص های درآمدی</span></td><td class=\"scoretd\">14</td></tr><tr><td><span class=\"level_1\">شاخص های هزینه ای</span></td><td class=\"scoretd\">26</td></tr><tr class=\"scoresubject\"><th>امتیاز کل</th><th>122</th></tr></tbody></table>
</div>
</div></body></html>");
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();
Похоже, вы используете dompdf 0.7.0, который больше не использует файл конфигурации dompdf_config.inc.php. Поддержка Unicode всегда включена в этом выпуске.
Для отображения символов, используемых в вашем примере кода, необходимо убедиться, что:
$dompdf->set_option('option', 'value');
(где вариант будет tempDir
, fontDir
, или же fontCache
).К вашему сведению, вы не можете просто выбросить TTF / UFM в ваш каталог шрифтов. dompdf должен записать информацию о шрифте, чтобы использовать его. Кроме того, файл метрик AFM в этом случае не будет работать, так как это указывает на кодировку Windows ANSI на шрифте. Кодировка Windows ANSI не поддерживает символы в вашем образце. Dompdf использует формат метрик UFM для поддержки Unicode.
Утилиты, которые были включены в предыдущие версии dompdf, больше не включены в 0.7.0. Пока вы соответствуете требованиям использования @font-face
заявление, что вам не нужны никакие внешние утилиты. Однако при необходимости вы можете найти совместимую версию скрипта load_font.php в проект dompdf-utils.
Поскольку вы используете 0.7.0 (который был только что выпущен), большая часть информации в Интернете может устареть, поэтому вы можете прочитать о том, как ее использовать:
Наконец, dompdf включает в себя шрифт (DejaVu), который может поддерживать ваших персонажей. Попробуйте добавить следующее в свою таблицу стилей, чтобы у вас был запасной вариант, если ваш собственный шрифт не работает:
* { font-family: BZar_0, DejaVu Sans, sans-serif; }
Чтобы установить любую опцию DOMPDF, вы должны определить именованную константу.
Все доступные варианты можно найти здесь: http://pxd.me/dompdf/www/setup.php
Чтобы включить персидские символы, вы должны включить поддержку юникода.
define("DOMPDF_UNICODE_ENABLED", true);
Вы можете установить DOMPDF_FONT_DIR
а также DOMPDF_DEFAULT_FONT
также, просто чтобы убедиться, что используемый шрифт поддерживает символы Юникода.