В PDF вместо кириллицы квадраты: как проверить шрифты
Если в сгенерированном PDF вместо кириллицы квадраты, проверяйте цепочку по порядку: исходные символы, фактически выбранный шрифт, наличие нужных глифов и встраивание в итоговый файл. Установка шрифта на компьютер разработчика ещё не подтверждает переносимость документа. После исправления проверьте отдельно внешний вид, поиск и копирование текста на другом согласованном устройстве.
Не меняйте кодировку наугад
Сначала убедитесь, что генератор получил именно нужную строку. Если в исходных данных уже потеряны буквы, замена шрифта не вернёт их. Если строка корректна, а ошибка появляется только в документе, переходите к настройке вывода. По одному виду квадратов нельзя достоверно определить причину без проверки этих слоёв.
Для диагностики используйте короткую учебную строку без персональных данных. Например: «Ель, ёж, счёт № А-7, 125 ₽». Это не реквизиты реального документа. Сравните её до передачи генератору и в готовом PDF, не выгружая клиентскую базу и содержимое рабочих отчётов в общедоступный сервис проверки.
Название семейства не подтверждает фактический шрифт
В документации fpdf2 различаются встроенные стандартные шрифты и подключаемые Unicode-шрифты. Для нужных символов требуется шрифт с соответствующими глифами. В этой библиотеке его добавляют и затем выбирают; наличие одноимённого системного шрифта само по себе не означает, что библиотека использует именно его.
Это пример конкретного генератора, а не универсальный набор методов для любой библиотеки. В своём проекте установите, какой файл реально загружается, где он находится при выпуске и доступен ли процессу формирования отчёта. Не принимайте отображаемое в шаблоне название за доказательство успешного подключения.
Если PDF создаётся на сервере или внутри готового образа приложения, проверяйте состав именно этой поставки. Файл, лежащий в личной папке разработчика, не становится частью серверного окружения автоматически. Такие зависимости стоит явно учитывать в разработке обработки документов, чтобы новый выпуск не возвращал ошибку после переезда.
Развилка диагностики по наблюдаемому результату
Таблица не ставит диагноз по картинке. Она выбирает следующий слой проверки и показывает, какой вывод пока делать рано.
| Наблюдение | Что проверить | Учебное действие | Что это подтверждает | Чего ещё не доказывает |
|---|---|---|---|---|
| Строка неверна до формирования PDF | Источник и преобразование текста | Сравнить заранее известную строку перед генератором | На входе уже есть расхождение | Встраивание другого шрифта исправит исходные данные |
| Латиница видна, кириллица заменена | Реально выбранный шрифт и покрытие символов | Вывести короткий смешанный набор | Проблема воспроизводится на конкретном наборе | По одному виду установлен точный механизм ошибки |
| Обычный текст виден, жирный нет | Файл и выбор нужного начертания | Сформировать одну строку в каждом требуемом стиле | Различие связано с выбранным способом вывода | Все начертания уже включены в поставку |
| На одном устройстве хорошо, на другом иначе | Шрифты конечного PDF и зависимости просмотра | Открыть тот же файл в согласованной второй среде | Есть проблема переносимости или воспроизведения | Каждое расхождение вызвано только шрифтом |
| Внешне всё читается, поиск не находит слово | Текстовый слой и извлечение символов | Найти и скопировать учебную строку | Внешний вид и текстовое поведение расходятся | Преобразование букв в картинки решит задачу поиска |
Глифы, начертания и встраивание — разные проверки
Наличие символа проверяйте в том шрифте, который действительно используется. Для отчёта на русском одного теста латинского алфавита недостаточно. Добавьте в набор «ё», знак номера, применяемые валюты и пунктуацию. Если документ поддерживает другие языки, составьте отдельный согласованный набор, а не объявляйте одну успешную строку проверкой всего Unicode.
Проверьте нужные начертания в заголовках, таблицах и примечаниях. Руководство fpdf2 отдельно описывает добавление файлов разных стилей. У вашего инструмента механизм может отличаться, но в приёмке остаётся тот же вопрос: тот ли ресурс используется для каждого участка документа. Не считайте работающее обычное начертание проверкой жирного и курсивного.
Встраивание решает другую задачу — включение шрифтовых данных в PDF. fpdf2 описывает встраивание используемого подмножества Unicode-шрифта. В настройках Adobe PDF также различаются полное встраивание и подмножество. Поэтому отметка subset сама по себе не означает ошибку: нужно проверить присутствие нужных символов и итоговое поведение файла.
Лицензию проверяют до распространения
Не любой шрифт, доступный на компьютере, разрешено включать в серверную поставку или передаваемый документ. Документация Adobe отдельно отмечает ограничения встраивания со стороны шрифта. Для конкретного файла нужно прочитать его условия и проверить применимый режим использования; переключатель экспорта не создаёт отсутствующее право.
Сохраните источник шрифта, его версию и условия, на которые опирается проект. Если используется другой файл с похожим названием, это уже новая зависимость для проверки. Не снимайте ограничения и не меняйте служебные флаги ради успешного экспорта. При несовместимых условиях подберите разрешённую замену и повторите испытание макета.
Испытание конечного файла
- Сформируйте учебный документ с известными русскими строками, нужными знаками и всеми используемыми начертаниями. Сохраните ожидаемый текст отдельно.
- Проверьте фактическое подключение ресурсов в среде генерации. Зафиксируйте используемые файлы и разрешённый способ их распространения.
- Откройте итоговый PDF и исследуйте сведения о шрифтах доступным инструментом. Сопоставьте результат с настройками генератора, не ограничиваясь названием семейства в шаблоне.
- Выполните поиск слова с «ё» и скопируйте строку в текстовое поле. Сравните символы с исходным образцом.
- Откройте тот же PDF на другом согласованном устройстве, где нет специально подготовленного окружения разработчика. Отдельно проверьте печать, если она входит в задачу.
- После замены шрифта пересмотрите таблицы и переносы. Изменение ресурса может потребовать повторной приёмки документа по геометрии, даже когда буквы уже читаются.
Не заменяйте исправление картинкой текста
Если отчёт нужен для поиска, копирования или дальнейшей обработки, эти функции остаются отдельными критериями. Визуальная подмена текста изображением не выполняет их автоматически. Не принимайте только снимок страницы: запросите конечный документ и воспроизводимый учебный набор. Разработчик должен показать, какой слой был исправлен.
Ошибку экспортера можно разбирать в рамках разработки веб-приложения, а подготовку и передачу документов — через автоматизацию документооборота. Для следующего выпуска оставьте короткий проверочный комплект вместе с требованиями к ресурсам. Он позволит обнаружить возвращение ошибки до того, как клиент получит нечитаемый отчёт.
Вопросы и ответы
Почему в PDF появляются квадраты вместо букв?
Причины могут относиться к исходным данным, выбранному шрифту, отсутствующим глифам или формированию файла. Проверяйте их последовательно на известной учебной строке, не определяя причину только по виду символа.
Как проверить кириллицу и encoding в сгенерированном PDF?
Сначала сравните текст перед генератором с ожидаемым. Затем отдельно проверьте отображение, поиск и копирование в конечном документе: визуально правильные буквы не подтверждают корректность всех этих функций.
Нужно ли встраивать шрифты в PDF?
Для переносимого отчёта нужно определить подходящую модель встраивания и проверить итоговый файл. Учитывайте поддержку символов и лицензию конкретного шрифта; наличие подмножества не является автоматическим признаком неисправности.
Читайте также
Лицензия на шрифты для сайта: что проверить
ПоддержкаПочта с кириллицей: домен и имя ящика — разные проверки
РазработкаПодпись вебхука: что проверить до изменения заказа
РазработкаЗагрузка файла частями: как проверить сборку после обрыва
РазработкаДизайн-макет в Figma: что проверить до передачи в вёрстку
РазработкаБаланс игровой валюты вырос сам: как проверить журнал начислений и трат