Как настроить работу кириллицы в dompdf 2.0.4?

Как исправить проблему с отображением кириллицы в dompdf после обновления до новой версии без использования Composer?
  • 31 января 2024 г. 9:50
Ответы на вопрос 2
Dompdf — это библиотека на PHP, которая позволяет генерировать PDF из HTML. Киррилица, как и другие многоязычные символы, может требовать дополнительной настройки для корректного отображения. Вот что вы можете сделать, чтобы настроить работу кириллицы в dompdf:

1. Используйте шрифты, поддерживающие кириллицу.

Чтобы убедиться, что кириллица отображается корректно, вам необходимо использовать шрифт, который поддерживает эти символы.

2. Конвертируйте нужные шрифты для использования в dompdf.

Dompdf требует, чтобы шрифты были в формате, с которым может работать библиотека. Вы можете использовать инструмент `load_font.php`, который шёл в комплекте с более старыми версиями dompdf, чтобы конвертировать и загрузить нужные шрифты. Хотя для новых версий dompdf (возможно, начиная с 0.7.0 и выше) этот инструмент был заменён другим подходом.

Начиная с dompdf 0.7.0, рекомендуется использование его с Composer, который автоматически управляет зависимостями и классами. Но если вы не используете Composer, вам придётся делать это вручную.

3. Настройте HTML с правильным указанием шрифта для элементов.

В вашем HTML (или CSS) убедитесь, что вы правильно ссылаетесь на шрифт для элементов, содержащих кириллицу.

```html
<style>
@font-face {
    font-family: 'your-custom-font';
    font-style: normal;
    font-weight: normal;
    src: url(path-to-your-font/your-custom-font.ttf) format('truetype');
}
body, h1, h2, h3, p {
    font-family: 'your-custom-font', sans-serif;
}
</style>
```

Убедитесь, что в вашем CSS вы указали правильный путь к шрифту и правильно назначили шрифт элементам страницы.

4. Установите соответствующую кодировку в HTML.

```html
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
```

5. Указание опции и настроек DOMPDF.

Установите для экземпляра DOMPDF необходимые опции, такие как установка кириллического шрифта по умолчанию для генерации PDF:

```php
$options = new \Dompdf\Options();
$options->set('defaultFont', 'your-custom-font');
$dompdf = new \Dompdf\Dompdf($options);
```

Для более старых версий dompdf вы бы устанавливали это через конфигурационный файл dompdf или напрямую перед генерацией PDF:

```php
$dompdf->set_option('defaultFont', 'your-custom-font');
```

После выполнения всех этих шагов кириллический текст должен корректно отображаться в вашем PDF-документе. Если вы столкнётесь с проблемами после выполнения этих шагов, стоит также проверить логи ошибок и доступность шрифта на сервере.
появилась проблема что не читает кирилицу

"Доктор, у меня проблема" - сказал старый партизан. И больше никакой информации не выдал!

Ладно, погадаем на гуще. Если раньше все работало и ТС качал (откуда-то) некую "новую версию", можно предположить пальцем в небо, что к этой скачанной версии тупо приложены шрифты без кириллицы. В mPDF шрифт можно подложить буквально при генерации, указав путь. Как там в dompdf - надо гуглить.
Похожие вопросы