Как найти название шрифта в PDF с помощью pdffonts

Что такое pdffonts?
pdffonts — это утилита командной строки, входящая в состав библиотеки Poppler. Она извлекает из PDF-файла информацию о шрифтах, включая:
- имя шрифта;
- тип шрифта (Type1, TrueType, CID и т.д.);
- статус встраивания (embedded / not embedded);
- сведения о подмножестве (subset);
- используемую кодировку;
- местоположение/объект шрифта (object ID).
Poppler — свободная библиотека для рендеринга и анализа PDF. pdffonts не извлекает файлы шрифтов для установки, но даёт необходимые метаданные, чтобы определить, какие шрифты использованы.
Установка pdffonts
Установите инструментный набор Poppler (в нём есть pdffonts) в зависимости от вашей дистрибуции.
Debian / Ubuntu / производные:
sudo apt install poppler-utilsArch Linux:
sudo pacman -S popplerFedora / CentOS / RHEL и производные:
sudo dnf install poppler-utilsПосле установки команда pdffonts доступна в терминале.
Как анализировать шрифты в PDF
Базовый синтаксис:
pdffonts [опции] pdffile.pdfГде [опции] — флаги (см. ниже), а pdffile.pdf — путь к файлу (абсолютный или относительный).
При запуске pdffonts она читает конфигурацию xpdfrc в домашней директории (~/.xpdfrc). Если файл не найден, утилита ищет системный конфиг в /usr/local/etc.
Простейший пример — получить список шрифтов в файле lorem-ipsum.pdf:
pdffonts lorem-ipsum.pdfРезультат похож на таблицу с колонками: name, type, encoding, emb, subset, uni, object id.
Вы увидите имя шрифта, тип, кодировку, указание, встроен ли шрифт, признак подмножества, поддерживает ли Unicode и object ID.
Анализ определённых страниц
Если нужно просмотреть шрифты только на части документа, используйте флаги -f (first) и -l (last):
pdffonts -f 1 -l 3 lorem-ipsum.pdfКоманда вернёт шрифты, встречающиеся на страницах 1–3. Для первой страницы укажите -f 1 -l 1.
Обработка зашифрованного PDF
Если файл защищён паролем, pdffonts принимает:
- -opw — owner password (пароль владельца)
- -upw — user password (пароль пользователя)
Примеры:
pdffonts -opw password lorem-ipsum.pdf
pdffonts -upw password lorem-ipsum.pdfПередавайте пароль в командной строке аккуратно — в некоторых системах история команд сохраняется. Лучше использовать защищённые оболочки или ввод параметров внутри безопасных скриптов.
Когда pdffonts не сработает (ограничения)
- Сканированные PDF (растровые изображения страниц): в документе нет шрифтов, только пиксели — pdffonts ничего не покажет.
- Встроенные обфусцированные или модифицированные шрифты могут иметь непонятные имена или кодировки.
- Если шрифт не встраивался, вы увидите, что emb = no; это значит, что документ ссылается на системный шрифт, и точной копии в файле нет.
- Некоторые PDF-конструкторы могут использовать нестандартные таблицы кодировки, что затрудняет интерпретацию вывода.
Альтернативные подходы
- pdfimages + OCR: извлечь страницы как изображения и прогнать через OCR/инструмент распознавания шрифтов.
- FontForge: открыть PDF в FontForge для анализа и — при успехе — экспорта шрифтов (если позволено лицензией).
- Онлайн-сервисы идентификации шрифтов по изображению (WhatTheFont и подобные) для визуальных совпадений.
- Платные редакторы (Adobe Acrobat Pro) предоставляют расширенную информацию и визуальный просмотр встраиваемых шрифтов.
Практическая методика: шаги, чтобы определить и подтянуть шрифт
- Запустите pdffonts на полном файле: pdffonts file.pdf. Посмотрите колонку name и emb.
- Если emb = yes, используйте object ID и инструменты (pdfdetach, mutool) для извлечения — только если лицензия шрифта позволяет.
- Если emb = no, попробуйте распознать имя шрифта и найти его в системах типа Google Fonts или у производителя шрифта.
- Для сканированных PDF выполните pdfimages + OCR или отправьте изображение в сервис идентификации шрифтов.
- Проверьте лицензию шрифта перед использованием или распространением.
Чек-лист по ролям
- Дизайнер:
- проверить emb и subset; если subset, уточнить, какие глифы включены.
- найти семейство шрифта и подобрать запасные (fallback).
- Разработчик/DevOps:
- установить poppler-utils в CI/на сервере для автоматической проверки PDF-артефактов.
- не хранить пароли в логах.
- Системный администратор:
- убедиться, что poppler регулярно обновлен; следить за зависимостями безопасности.
Быстрый справочник команд (cheat sheet)
# Обзор всех шрифтов
pdffonts file.pdf
# Только страницы 10–20
pdffonts -f 10 -l 20 file.pdf
# Защищённый owner/user пароль
pdffonts -opw ownerpass file.pdf
pdffonts -upw userpass file.pdfКритерии приёмки
- Вы можете перечислить все имена шрифтов, использованные в документе.
- Для встроенных шрифтов вы видите emb = yes.
- Для заданного диапазона страниц вы получаете только шрифты, применённые на этих страницах.
Короткий глоссарий
- Встраивание (embedded) — шрифт сохранён внутри PDF.
- Subset (подмножество) — в файл включены только использованные глифы, имя шрифта обычно получает префикс/суффикс.
- object ID — идентификатор объекта в структуре PDF, связанный со шрифтом.
Важные замечания
Важно соблюдать лицензионные ограничения: даже если шрифт встроен, его извлечение и дальнейшее использование может быть запрещено лицензией. Для автоматизации в CI не храните пароли в открытом виде.
Короткое резюме
pdffonts — быстрый способ получить метаданные о шрифтах внутри PDF. Он не заменяет визуальную проверку и часто не справляется со сканированными PDF, но идеально подходит для аудита и диагностики проблем с отображением шрифтов в документах.
Summary:
- pdffonts показывает имя, тип, встраивание и кодировку шрифтов в PDF.
- Используйте -f/-l для страниц и -opw/-upw для паролей.
- При отсутствии встроенных шрифтов применяйте OCR/визуальную идентификацию.
Примечание: перед извлечением шрифтов всегда проверяйте лицензию на использование.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента