Для того, чтобы корректно отображать хинди символы в формате PDF вам нужно проверить несколько вещей:
1. Убедитесь, что PHP использует MBstring (по умолчанию включено)
2. Убедитесь, что вы используете DOMPDF 0.6.0 или выше
3. Проверьте настройки
При использовании Dompdf 0.6.x установите DOMPDF_ENABLE_UNICODE в значение true. По умолчанию Dompdf 0.7.0 и выше включены.
Вам понадобится доступ на чтение и запись в каталог шрифтов и каталог кеша шрифтов. По умолчанию эти каталоги находятся в каталоге dompdf (dompdf/lib/fonts для обоих). В Dompdf 0.6.x это будут константы конфигурации DOMPDF_FONT_DIR и DOMPDF_FONT_CACHE. В Dompdf 0.7.0 и выше обязательно установите значение параметров fontDir и fontCache (например, $dompdf->set_option("fontDir", "/my/font/dir");
).
Если вы загружаете шрифт через @font-face
, убедитесь, что у вас также есть доступ для чтения/записи во временный каталог. В Dompdf 0.6.0 проверьте конфигурацию конфигурации DOMPDF_TEMP_DIR. В Dompdf 0.7.0 и выше установите параметр tempDir.
Также, если вы загружаете какие-либо ресурсы через HTTP, убедитесь, что включена удаленная загрузка ресурсов. В Dompdf 0.6.0 проверьте конфигурацию конфигурации DOMPDF_ENABLE_REMOTE. В Dompdf 0.7.0 и выше установите параметр isRemoteEnabled.
4. Загрузить опорный шрифт в DOMPDF
Самый простой и рекомендуемый метод загрузки шрифтов использует декларацию @font-face
CSS.
На сегодняшний день самым простым способом начать пользоваться будет использование шрифтов Google, поскольку все, что вам нужно сделать, это ссылка на таблицу стилей.Для Hind font вы бы просто добавить следующую строку в ваш документ головы:
<link href="https://fonts.googleapis.com/css?family=Hind:400,700&subset=devanagari,latin-ext" rel="stylesheet">
К сожалению Dompdf does not support numeric weights шрифтов. Так как Google определяет размер шрифта, вы не можете использовать его с Dompdf вплоть до 0.8.1. Вы можете взломать проблему, но самый простой способ - загрузить шрифты.
В вашем документе таблицы стилей:
@font-face {
font-family: Hind;
font-style: normal;
font-weight: normal;
src: url(http://example.com/hind.ttf) format('truetype');
}
Примечание: Не забудьте define the various weights and styles вы хотите поддержать.
5. Установить атрибут font-family
стиля для вашего текста к шрифту вы загрузили
В вашем стиле таблицы стилей документа соответствующего контейнер с соответствующим семейством шрифтов. Например, если вы хотите, чтобы весь документ, чтобы использовать шрифт можно просто добавить следующую строку в ваш документ таблицы стилей:
* {
font-family: Hind, DejaVu Sans, sans-serif;
}
Это все покрыто в Unicode How-to.
Какая версия dompdf? Вам понадобится v0.6.0, чтобы использовать шрифты хинди. – BrianS