pdf — я не могу найти dompdf_config.inc.php или dompdf_config.custom.inc.php для настройки & quot; DOMPDF_UNICODE_ENABLED & quot; правда

Я использую 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();

3

Решение

Похоже, вы используете dompdf 0.7.0, который больше не использует файл конфигурации dompdf_config.inc.php. Поддержка Unicode всегда включена в этом выпуске.

Для отображения символов, используемых в вашем примере кода, необходимо убедиться, что:

  1. Вы предоставляете шрифт, который поддерживает эти символы (что похоже дело).
  2. Этот dompdf имеет возможность чтения и записи во временный каталог, каталог шрифтов и каталог кэша шрифтов. Вы можете установить их, используя $dompdf->set_option('option', 'value'); (где вариант будет tempDir, fontDir, или же fontCache).
  3. Шрифт доступен для dompdf и имеет формат TTF.
  4. Вы правильно оформляете свой контент, чтобы использовать ваш шрифт. Трудно понять, не видя ваш CSS.

К вашему сведению, вы не можете просто выбросить 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; }
1

Другие решения

Чтобы установить любую опцию DOMPDF, вы должны определить именованную константу.
Все доступные варианты можно найти здесь: http://pxd.me/dompdf/www/setup.php

Чтобы включить персидские символы, вы должны включить поддержку юникода.

define("DOMPDF_UNICODE_ENABLED", true);

Вы можете установить DOMPDF_FONT_DIR а также DOMPDF_DEFAULT_FONT также, просто чтобы убедиться, что используемый шрифт поддерживает символы Юникода.

0

По вопросам рекламы [email protected]