Перейти к содержимому
Все статьи
Разработка

В PDF вместо кириллицы квадраты: как проверить шрифты

·27 октября 2026 г.· 6 мин чтения
Сколько будет стоить ваш проект?Рассчитать стоимость

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

Не меняйте кодировку наугад

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

Для диагностики используйте короткую учебную строку без персональных данных. Например: «Ель, ёж, счёт № А-7, 125 ₽». Это не реквизиты реального документа. Сравните её до передачи генератору и в готовом PDF, не выгружая клиентскую базу и содержимое рабочих отчётов в общедоступный сервис проверки.

Название семейства не подтверждает фактический шрифт

В документации fpdf2 различаются встроенные стандартные шрифты и подключаемые Unicode-шрифты. Для нужных символов требуется шрифт с соответствующими глифами. В этой библиотеке его добавляют и затем выбирают; наличие одноимённого системного шрифта само по себе не означает, что библиотека использует именно его.

Это пример конкретного генератора, а не универсальный набор методов для любой библиотеки. В своём проекте установите, какой файл реально загружается, где он находится при выпуске и доступен ли процессу формирования отчёта. Не принимайте отображаемое в шаблоне название за доказательство успешного подключения.

Если PDF создаётся на сервере или внутри готового образа приложения, проверяйте состав именно этой поставки. Файл, лежащий в личной папке разработчика, не становится частью серверного окружения автоматически. Такие зависимости стоит явно учитывать в разработке обработки документов, чтобы новый выпуск не возвращал ошибку после переезда.

Развилка диагностики по наблюдаемому результату

Таблица не ставит диагноз по картинке. Она выбирает следующий слой проверки и показывает, какой вывод пока делать рано.

НаблюдениеЧто проверитьУчебное действиеЧто это подтверждаетЧего ещё не доказывает
Строка неверна до формирования PDFИсточник и преобразование текстаСравнить заранее известную строку перед генераторомНа входе уже есть расхождениеВстраивание другого шрифта исправит исходные данные
Латиница видна, кириллица замененаРеально выбранный шрифт и покрытие символовВывести короткий смешанный наборПроблема воспроизводится на конкретном набореПо одному виду установлен точный механизм ошибки
Обычный текст виден, жирный нетФайл и выбор нужного начертанияСформировать одну строку в каждом требуемом стилеРазличие связано с выбранным способом выводаВсе начертания уже включены в поставку
На одном устройстве хорошо, на другом иначеШрифты конечного PDF и зависимости просмотраОткрыть тот же файл в согласованной второй средеЕсть проблема переносимости или воспроизведенияКаждое расхождение вызвано только шрифтом
Внешне всё читается, поиск не находит словоТекстовый слой и извлечение символовНайти и скопировать учебную строкуВнешний вид и текстовое поведение расходятсяПреобразование букв в картинки решит задачу поиска

Глифы, начертания и встраивание — разные проверки

Наличие символа проверяйте в том шрифте, который действительно используется. Для отчёта на русском одного теста латинского алфавита недостаточно. Добавьте в набор «ё», знак номера, применяемые валюты и пунктуацию. Если документ поддерживает другие языки, составьте отдельный согласованный набор, а не объявляйте одну успешную строку проверкой всего Unicode.

Проверьте нужные начертания в заголовках, таблицах и примечаниях. Руководство fpdf2 отдельно описывает добавление файлов разных стилей. У вашего инструмента механизм может отличаться, но в приёмке остаётся тот же вопрос: тот ли ресурс используется для каждого участка документа. Не считайте работающее обычное начертание проверкой жирного и курсивного.

Встраивание решает другую задачу — включение шрифтовых данных в PDF. fpdf2 описывает встраивание используемого подмножества Unicode-шрифта. В настройках Adobe PDF также различаются полное встраивание и подмножество. Поэтому отметка subset сама по себе не означает ошибку: нужно проверить присутствие нужных символов и итоговое поведение файла.

Лицензию проверяют до распространения

Не любой шрифт, доступный на компьютере, разрешено включать в серверную поставку или передаваемый документ. Документация Adobe отдельно отмечает ограничения встраивания со стороны шрифта. Для конкретного файла нужно прочитать его условия и проверить применимый режим использования; переключатель экспорта не создаёт отсутствующее право.

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

Испытание конечного файла

  1. Сформируйте учебный документ с известными русскими строками, нужными знаками и всеми используемыми начертаниями. Сохраните ожидаемый текст отдельно.
  2. Проверьте фактическое подключение ресурсов в среде генерации. Зафиксируйте используемые файлы и разрешённый способ их распространения.
  3. Откройте итоговый PDF и исследуйте сведения о шрифтах доступным инструментом. Сопоставьте результат с настройками генератора, не ограничиваясь названием семейства в шаблоне.
  4. Выполните поиск слова с «ё» и скопируйте строку в текстовое поле. Сравните символы с исходным образцом.
  5. Откройте тот же PDF на другом согласованном устройстве, где нет специально подготовленного окружения разработчика. Отдельно проверьте печать, если она входит в задачу.
  6. После замены шрифта пересмотрите таблицы и переносы. Изменение ресурса может потребовать повторной приёмки документа по геометрии, даже когда буквы уже читаются.

Не заменяйте исправление картинкой текста

Если отчёт нужен для поиска, копирования или дальнейшей обработки, эти функции остаются отдельными критериями. Визуальная подмена текста изображением не выполняет их автоматически. Не принимайте только снимок страницы: запросите конечный документ и воспроизводимый учебный набор. Разработчик должен показать, какой слой был исправлен.

Ошибку экспортера можно разбирать в рамках разработки веб-приложения, а подготовку и передачу документов — через автоматизацию документооборота. Для следующего выпуска оставьте короткий проверочный комплект вместе с требованиями к ресурсам. Он позволит обнаружить возвращение ошибки до того, как клиент получит нечитаемый отчёт.

Вопросы и ответы

Почему в PDF появляются квадраты вместо букв?

Причины могут относиться к исходным данным, выбранному шрифту, отсутствующим глифам или формированию файла. Проверяйте их последовательно на известной учебной строке, не определяя причину только по виду символа.

Как проверить кириллицу и encoding в сгенерированном PDF?

Сначала сравните текст перед генератором с ожидаемым. Затем отдельно проверьте отображение, поиск и копирование в конечном документе: визуально правильные буквы не подтверждают корректность всех этих функций.

Нужно ли встраивать шрифты в PDF?

Для переносимого отчёта нужно определить подходящую модель встраивания и проверить итоговый файл. Учитывайте поддержку символов и лицензию конкретного шрифта; наличие подмножества не является автоматическим признаком неисправности.

Нужна помощь с проектом?

Обсудим задачу и предложим решение — от сайта до SaaS и защиты.

Связаться