Определение шрифтов в PDF-документах
Чтобы узнать, какой шрифт используется в PDF, откройте файл в Adobe Acrobat Reader, перейдите в Файл → Свойства → вкладка Шрифты. Там будет указан полный список использованных гарнитур, их тип и статус встраивания. Если Acrobat недоступен, используйте консольную утилиту pdffonts или инструменты разработчика в браузере Chrome.
PDF — это формат финальной верстки, который часто «прячет» исходные данные о шрифтах ради компактности или защиты авторских прав. Однако в большинстве случаев информацию можно извлечь легальными методами без специального платного ПО.
Краткий ответ: Самый надежный способ для обычного пользователя — встроенная функция «Свойства документа» в любом современном PDF-ридере. Для дизайнеров и разработчиков предпочтительнее утилита pdffonts.
Способ 1: Через свойства документа (Adobe Acrobat / Foxit)
Это самый простой метод, не требующий установки дополнительного софта, если у вас уже есть любая программа для чтения PDF.
Инструкция для Adobe Acrobat Reader DC:
- Откройте PDF-файл.
- Нажмите комбинацию клавиш
Ctrl + D(Windows) илиCmd + D(macOS). Либо выберите в меню: Файл → Свойства (File → Properties). - Перейдите на вкладку Шрифты (Fonts).
- В списке вы увидите:
- Имя шрифта (например,
ArialMT,TimesNewRomanPS-ItalicMT). - Тип (TrueType, Type 1, CID Font).
- Кодировку (WinAnsi, Identity-H).
- Статус встраивания (Embedded, Subset).
- Имя шрифта (например,
Что означают статусы:
- Embedded (Встроенный): Полный файл шрифта находится внутри PDF. Документ будет отображаться корректно на любом устройстве.
- Subset (Подмножество): Встроены только те глифы (символы), которые реально используются в тексте. Это экономит место, но редактировать такой текст, добавляя новые буквы, может быть сложно.
- Not Embedded (Не встроен): Шрифт не сохранен в файле. Если у зрителя нет этого шрифта в системе, он будет заменен на стандартный (например, Arial или Times New Roman), что может сломать верстку.
Если имя шрифта выглядит странно (например, ABCDE+Roboto-Light), префикс перед плюсом (ABCDE+) означает, что это подмножество. Само название шрифта — Roboto-Light.
Способ 2: Консольная утилита pdffonts (для продвинутых пользователей)
Если вам нужно быстро получить список шрифтов из множества файлов или вы работаете в Linux/macOS/Windows (WSL), используйте инструмент pdffonts из пакета Poppler. Он дает более чистый и структурированный вывод, чем графические интерфейсы.
Установка:
- macOS:
brew install poppler - Linux (Ubuntu/Debian):
sudo apt-get install poppler-utils - Windows: Скачайте бинарные файлы Poppler с официального сайта или используйте Chocolatey:
choco install poppler
Использование:
Откройте терминал в папке с файлом и введите:
pdffonts document.pdf
Пример вывода:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
AAAAAA+Roboto-Regular TrueType WinAnsi yes yes no 12 0
BBBBBB+OpenSans-Bold TrueType WinAnsi yes yes no 15 0
Times-New-Roman Type 1 Standard no no no 20 0
Расшифровка столбцов:
- emb: Да/Нет (встроен ли шрифт).
- sub: Да/Нет (является ли шрифт подмножеством).
- uni: Да/Нет (поддерживает ли Unicode, важно для кириллицы и спецсимволов).
Способ 3: Через браузер Google Chrome
Если под рукой нет ни Acrobat, ни консоли, можно использовать встроенные средства разработчика в браузере Chrome. Этот метод менее точен для сложных PDF, но работает для простых документов.
- Откройте PDF-файл перетаскиванием в окно Chrome.
- Нажмите
F12(илиCtrl + Shift + I), чтобы открыть Инструменты разработчика. - Перейдите на вкладку Sources (Источники) или Network (Сеть), иногда шрифты видны во вкладке Elements, если PDF отрендерен как HTML-слой (зависит от версии Chrome и типа PDF).
- Более надежный вариант в Chrome:
- Нажмите правой кнопкой мыши на текст в PDF (если он выделяется).
- Выберите Просмотреть код (Inspect).
- В панели стилей (Styles) найдите свойство
font-family.
Браузеры часто заменяют оригинальные имена шрифтов на системные аналоги при рендеринге. Этот метод подходит для быстрой проверки, но не для точной идентификации редких гарнитур.
Что делать, если шрифт не определяется
Иногда в списке шрифтов пусто, или текст вообще не выделяется. Это происходит в двух случаях:
1. Текст переведен в кривые (Outlines)
Дизайнеры часто конвертируют текст в векторные контуры, чтобы гарантировать идентичное отображение. В таком случае текста как такового нет — есть набор линий.
- Решение: Визуально сравните начертание с популярными шрифтами через сервисы вроде WhatTheFont или FontSpring Matcherator. Автоматически извлечь имя шрифта невозможно.
2. Текст является изображением (скан)
Документ был отсканирован, и слой распознавания (OCR) отсутствует.
- Решение: Используйте OCR-сервисы (ABBYY FineReader, Adobe Acrobat Pro с функцией распознавания текста). После распознавания шрифты могут определиться, но чаще всего они будут заменены на стандартные системные.
3. Зашифрованный документ
Если файл защищен паролем от копирования, свойства могут быть скрыты.
- Решение: Легальные методы обхода защиты зависят от наличия прав владельца. Если вы являетесь автором документа, снимите защиту через настройки безопасности в Acrobat Pro.
Сравнение методов определения шрифтов
| Метод | Точность | Сложность | Подходит для |
|---|---|---|---|
| Свойства PDF (Acrobat/Foxit) | Высокая | Низкая | Быстрой проверки единичных файлов |
| pdffonts (Poppler) | Очень высокая | Средняя | Пакетной обработки, работы разработчиков |
| Браузер Chrome | Средняя | Низкая | Экстренной проверки без доп. софта |
| Визуальный поиск (по картинке) | Низкая | Высокая | Текста в кривых или сканов |
Часто задаваемые вопросы (FAQ)
Можно ли извлечь сам файл шрифта (.ttf/.otf) из PDF?
Да, если шрифт встроен полностью (Embedded). Инструменты вроде pdffonts показывают наличие, а специальные утилиты (например, mutool extract или скрипты на Python с библиотекой PyPDF2) позволяют вытащить бинарные данные шрифта. Однако извлеченный шрифт может иметь ограничения лицензии.
Почему вместо названия шрифта я вижу аббревиатуры вроде QKZLZY+?
Это префиксы подмножеств. PDF генерирует случайный набор букв перед именем шрифта, чтобы избежать конфликтов имен при объединении документов. Игнорируйте символы до знака +.
Определятся ли кириллические шрифты корректно? Да, если документ сверстан правильно и использует Unicode-кодировку (Identity-H или UTF-8). В старых PDF с кодировкой WinAnsi кириллица может отображаться некорректно или требовать ручной проверки таблицы символов.
Безопасно ли загружать PDF в онлайн-сервисы для анализа шрифтов?
Если документ содержит персональные данные, коммерческую тайну или подписи, не используйте онлайн-конвертеры и анализаторы. Используйте локальные инструменты: Acrobat Reader, Foxit или pdffonts.