Чтобы правильно отображать символы хинди в 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 вы просто добавили бы следующее в свой заголовок документа:
<link href="https://fonts.googleapis.com/css?family=Hind:400,700&subset=devanagari,latin-ext" rel="stylesheet">
К сожалению, Dompdf не поддерживает числовой вес для шрифтов. Поскольку именно так 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');
}
Примечание. Не забудьте определить различные веса и стили, которые вы хочу поддержать.
<сильный>5. Установите атрибут стиля font-family
для вашего текста на загруженный вами шрифт
В таблице стилей вашего документа настройте соответствующий контейнер с соответствующим семейством шрифтов. Например, если вы хотите, чтобы весь документ использовал шрифт, вы можете просто добавить следующее в таблицу стилей документа:
* {
font-family: Hind, DejaVu Sans, sans-serif;
}
Все это описано в руководстве по Unicode.
person
BrianS
schedule
14.08.2013