Я использую dompdf для сохранения html-страницы в формате pdf по php. Я использую персидские символы на моей странице html (на самом деле php-странице), но когда я пытаюсь сохранить его в формате pdf, экспорт выглядит просто как «?????» 🙁 Я искал всю сеть, и я нашел конфигурацию для символов unicode https://github.com/dompdf/dompdf/wiki/UnicodeHowTo#configure-dompdf-for-unicode-support в " dompdf_config.inc.php " или "dompdf_config.custom.inc.php", но проблема в том, что я НЕ МОГУ НАЙТИ такой файл во всей папке dompdf и во всей моей файловой системе. Пожалуйста, скажите мне, где это или что я должен делать. что-то еще, что я должен использовать dompdf из-за его фантастической совместимости с CSS.
Это Export. http://img.ruphp.com/php/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
). FYI, вы не можете просто отказаться от TTF / UFM в вашем каталоге шрифтов. dompdf должен записывать информацию о шрифте, чтобы использовать его. Кроме того, файл показателей AFM в этом случае не будет работать, потому что это указывает кодировку ANSI Windows на шрифт. Кодировка 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
Чтобы включить персидские символы, вы должны включить поддержку Unicode.
define("DOMPDF_UNICODE_ENABLED", true);
Вы можете также установить DOMPDF_FONT_DIR
и DOMPDF_DEFAULT_FONT
, просто чтобы убедиться, что используемый вами шрифт поддерживает символы Unicode.