PDFSub
ЦеныAPIMergeCompressEditE-SignБанковские выпискиБлог
Вернуться в блог
РуководствоФормат PDFСтандарты PDFPDF/APDF/XPDF/UAАнатомия

Формат PDF: Анатомия, Слои и Стандарты

16 мая 2026 г.
T
Todd Lahman
Founder, PDFSub

Что на самом деле находится внутри PDF? Размеченная диаграмма и глоссарий, охватывающие четыре физических раздела (заголовок, тело, xref, трейлер), шесть уровней контента (текст, изображения, шрифты, аннотации, векторы, подписи), метаданные и стандарты ISO (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT), построенные поверх.


PDF — это не единое целое. Это бинарный контейнер с определенной структурой на диске, набором уровней контента, уложенных внутри этого контейнера, и семейством стандартов ISO, построенных поверх базовой спецификации. Откройте его в HEX-редакторе, и структура будет видна в открытом тексте в первых строках. Откройте его в просмотрщике, и слои отобразятся вместе как одна страница.

Это руководство представляет собой размеченный справочник: физическая структура файла, уровни контента, которые содержит тело, метаданные, окружающие все, и стандарты (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT), которые ограничивают его для конкретных случаев использования.

Anatomy of a PDF file: header, body objects, cross-reference table, trailer, content layers, and metadata

Хотите использовать эту диаграмму в своем блоге? Скопируйте этот код для вставки:


Четыре Физических Раздела

Каждый PDF-файл на диске имеет одинаковую четырехчастную структуру в следующем порядке:

1. Заголовок (Header)

Первая строка файла. Всегда начинается с %PDF- с последующим номером версии:

%PDF-1.7

Версии варьируются от 1.0 (выпущена в 1993 году) до 2.0 (выпущена в 2017 году, текущая). За заголовком следует строка комментария с бинарными байтами, которые сигнализируют FTP и другим транспортным средствам, что это бинарный файл.

2. Тело (Body) - Косвенные Объекты

Основная часть файла. Каждая страница, шрифт, изображение, аннотация и поле формы являются нумерованными косвенными объектами:

1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
 
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
 
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobj

Каждый объект имеет идентификатор (число перед 0 obj), номер поколения (0, используется для инкрементальных обновлений) и полезную нагрузку между << и >> для словарей или stream и endstream для бинарных потоков (данные изображения, данные шрифта, сжатый контент).

Объекты ссылаются друг на друга с помощью синтаксиса <id> <gen> R (например, 3 0 R означает «объект 3, поколение 0»). Именно так страница ссылается на используемый ею шрифт, или каталог ссылается на корень дерева страниц.

3. Таблица Перекрестных Ссылок (xref)

Таблица поиска по смещению байтов. Для каждого объекта в теле xref записывает его абсолютную позицию в байтах в файле:

xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 n

Это то, что делает PDF-файлы доступными для случайного доступа. Просмотрщик может прочитать xref, перейти непосредственно к смещению байтов объекта 3 и отобразить эту страницу, не анализируя остальную часть файла. Именно поэтому PDF-файлы с одной главой открываются мгновенно, даже если исходный файл состоит из 500 страниц.

4. Трейлер (Trailer)

Последний раздел. Сообщает парсеру, где найти xref и какой объект является корневым:

trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOF

Значение startxref — это смещение в байтах таблицы xref. Маркер %%EOF — это фактический конец файла. Трейлеры делают возможными инкрементальные обновления: добавление нового xref + трейлера в конце позволяет добавлять объекты, не перезаписывая весь файл.


Шесть Уровней Контента

Внутри тела контент хранится на шести уровнях. Каждая отображаемая страница PDF представляет собой композицию этих уровней:

1. Текст

Команды позиционирования глифов и ссылки на шрифты, а не текстовые строки. PDF хранит инструкции вроде «нарисовать глиф 42 из шрифта F3 в позиции (120, 540)», а не «нарисовать букву А здесь». Именно поэтому текст можно выделять и искать: просмотрщик обратным образом сопоставляет идентификаторы глифов с кодовыми точками Unicode через отображение ToUnicode (или CMap для шрифтов CJK).

Когда у текста отсутствует отображение ToUnicode, возникает классическая проблема «PDF с выделяемым текстом, который копируется как мусор». Текст виден, но отображение глиф-Unicode сломано или отсутствует.

2. Изображения

Хранятся как встроенные потоки в одном из нескольких форматов:

  • JPEG (фильтр DCTDecode): фотографии, наиболее распространенный
  • JPEG2000 (JPXDecode): более высокая степень сжатия, менее распространенный
  • PNG-эквивалент (фильтр FlateDecode + Predictor): скриншоты, линейная графика
  • CCITT Group 4 (фильтр CCITTFaxDecode): черно-белый сканированный текст, используется в архивных сканах
  • JBIG2 (фильтр JBIG2Decode): бинарные изображения, часто встречается в документах с OCR

Изображения могут быть понижены в разрешении, пересжаты или заменены без влияния на другой контент.

3. Шрифты

Встроены как полные программы шрифтов, подмножества (включены только используемые глифы) или ссылаются по имени (должны быть установлены в системе просмотрщика). Подмножества являются стандартом — это значительно уменьшает размер файла. Поддерживаемые форматы шрифтов: Type1, TrueType, OpenType и CIDFont (для CJK).

Когда на шрифт ссылаются, но он не встроен и не установлен в системе просмотрщика, просмотрщик заменяет его похожим шрифтом — что обычно выглядит неправильно. PDF/A требует встраивания всех шрифтов, чтобы предотвратить это.

4. Аннотации

Выделения, комментарии, ссылки, штампы, водяные знаки и поля форм — все это аннотации. Они накладываются поверх контента страницы и могут быть добавлены, отредактированы или удалены без изменения самой страницы.

Поля форм — это особый случай: интерактивная аннотация-виджет (видимая часть) плюс словарь поля (часть данных). Когда вы заполняете форму и сохраняете ее, изменяются только словари полей — сама страница остается неизменной.

5. Векторная Графика

Линии, фигуры, кривые и пути, нарисованные операторами, похожими на PostScript (moveto, lineto, curveto). Масштабируются бесконечно без потери качества. Большинство экспортов САПР, диаграмм и графиков в PDF — это векторная графика.

6. Цифровые Подписи

Подписи, основанные на PKI, привязанные к диапазонам байтов файла. Словарь подписи указывает: «байты от 0 до 12 547 и от 14 200 до конца файла подписаны» — небольшой диапазон посередине зарезервирован для самого значения подписи. Любое изменение подписанных диапазонов байтов делает подпись недействительной, что позволяет PDF обнаруживать подделку после подписания.

Некоторые PDF-файлы имеют несколько подписей, наложенных как инкрементальные обновления — каждый подписант подписывает файл таким, каким он был на момент получения, сохраняя цепочку.


Метаданные: Две Параллельные Системы

PDF имеет две системы метаданных, которые часто не совпадают:

Стандартный Словарь /Info

Хранится в трейлере. Поля: Title, Author, Subject, Keywords, Creator (приложение, в котором пользователь создал документ), Producer (приложение, сгенерировавшее PDF), CreationDate, ModDate. Строки в открытом тексте, легко читаемые любым инструментом для работы с PDF.

Поток Метаданных XMP

Отдельный XML-поток (Adobe XMP, основанный на RDF/XML), который поддерживает более богатые схемы: Dublin Core, IPTC, пользовательские схемы предметной области (цветовые профили, регистрации авторских прав, версионирование рукописей).

Современные генераторы PDF записывают в обе системы. Старые PDF имеют только /Info. Некоторые PDF имеют устаревший /Info от предыдущей версии и точный XMP от недавнего редактирования — или наоборот. При аудите PDF на соответствие требованиям или для криминалистической экспертизы проверяйте обе системы.


Стандарты ISO, Построенные на Основе PDF

Базовая спецификация PDF — это ISO 32000. Несколько производных стандартов ограничивают PDF для конкретных случаев использования:

Стандарт Использование Ограничения
PDF/A Долгосрочное архивирование Все шрифты встроены, нет JavaScript, нет аудио/видео, цветовые пространства независимы от устройства. Уровни соответствия: PDF/A-1, A-2, A-3 (допускает вложения файлов)
PDF/X Полиграфическое производство Цвета CMYK, встроенные шрифты и цветовые профили, нет прозрачности (PDF/X-1a) или контролируемая прозрачность (PDF/X-4)
PDF/UA Доступность Дерево тегов структуры, языковые метаданные, альтернативный текст для изображений, логический порядок чтения
PDF/E Инженерное дело 3D-модели (форматы U3D, PRC), метаданные, специфичные для САПР
PDF/VT Персонализированная транзакционная печать Оптимизировано для высокообъемной персонализированной почтовой рассылки

PDF может одновременно соответствовать нескольким стандартам — PDF/A-2u (архивирование с отображением Unicode) плюс PDF/UA (доступность) — это обычное явление для государственных и юридических архивов.


Линеаризованные PDF (Оптимизированные для Веб)

«Линеаризованный» или «оптимизированный для веб» PDF переупорядочивает тело так, чтобы объекты первой страницы появлялись в начале файла. Веб-просмотрщик может отобразить первую страницу, загрузив всего около 50 КБ, вместо ожидания загрузки всего файла. Трейлер дублируется в начале, плюс таблица подсказок, которая сообщает просмотрщику, где начинается каждая страница.

Большинство современных генераторов PDF поддерживают линеаризацию как опцию «Сохранить для веба». Формат увеличивает размер файла на 2-5% в обмен на быструю отрисовку первой страницы при медленном соединении.


Шифрование и Разрешения

PDF-файлы могут быть зашифрованы паролем (или сертификатами) и наделены гранулированными разрешениями: печать, копирование текста, изменение, заполнение форм, извлечение для доступности. Шифрование хранится в словаре /Encrypt трейлера.

Сила шифрования развивалась: RC4 40-бит (ранние PDF, сегодня тривиально взламываются), RC4 128-бит (все еще слабые), AES-128, AES-256. Оригинальная реализация RC4 в Acrobat 5 была публично взломана в 2001 году; современное шифрование PDF (AES-256, PDF 2.0) надежно при использовании с сильными паролями.

Примечание: «Разрешения» носят рекомендательный характер. Просмотрщик, который их уважает, будет их применять. Просмотрщик, который их игнорирует (или инструмент, который удаляет шифрование), — нет.


Как PDFSub Читает PDF

PDFSub обрабатывает PDF-файлы с помощью привязки Rust к PDFium (тот же движок, который используется в просмотрщике PDF браузера Chromium), а также PaddleOCR для сканированных документов. Подробности архитектуры и сравнение с облачными инструментами см. в разделе Браузер против Облачных Решений для Безопасности PDF.

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

  • PDF в Excel — извлекает текст и таблицы, сохраняет координаты
  • OCR PDF — добавляет слой поиска текста к сканированным PDF
  • PDF в Word — переформатирует текст в редактируемые абзацы
  • Сжать PDF — понижает разрешение изображений, подмножества шрифтов

Для рабочих процессов архивирования см. Как Конвертировать PDF в PDF/A.


Читать Дальше

  • ISO 32000-2 (спецификация PDF 2.0) — авторитетный справочник, доступен по платной подписке
  • Архивы Справочника Adobe PDF — бесплатный справочник по PDF 1.7
  • PDF Association — отраслевая рабочая группа, бесплатные статьи и файлы для тестирования соответствия

По темам, специфичным для PDF: Руководство по Соответствию PDF для Юристов, Руководство по Конвертации PDF/A.

Вернуться в блог

Вопросы? Свяжитесь с нами

PDFSub

Все необходимые инструменты для работы с PDF и документами в одном месте. Быстро, безопасно и конфиденциально.

Соответствует GDPRСоответствует CCPAГотовность SOC 2
Работает на PDFSub Engine

Инструменты для PDF

  • Объединить PDF
  • Разделить PDF
  • Изменить порядок страниц
  • Страниц на листе
  • Просмотрщик PDF
  • Извлечь страницы
  • Извлечь изображения
  • Заменить изображение
  • Повернуть PDF
  • Удалить страницы
  • Добавить водяной знак
  • Редактировать PDF
  • Поставить штамп на PDF
  • Заполнение форм PDF
  • Обрезка страниц
  • Изменить размер страницы
  • Добавить нумерацию страниц
  • Верхние и нижние колонтитулы
  • Сжать PDF
  • Сделать доступным для поиска
  • Clean Scanned PDF
  • Photo to Document
  • Auto-Crop PDF
  • Восстановить PDF
  • Редактировать метаданные
  • Удалить метаданные
  • PDF в Word
  • Word в PDF
  • PDF to Excel
  • Excel в PDF
  • PDF в PowerPoint
  • PowerPoint в PDF
  • HTML в PDF
  • HTML to Text
  • HTML to Markdown
  • PDF в HTML
  • EPUB в PDF
  • PDF в EPUB
  • Текст в PDF
  • RTF в PDF
  • PDF в RTF
  • PDF в текст
  • ODT в PDF
  • PDF в ODT
  • ODS в PDF
  • PDF в ODS
  • ODP в PDF
  • PDF в ODP
  • Конвертация в PDF/A
  • Создать PDF
  • Пакетное преобразование
  • PDF в изображение
  • Изображение в PDF
  • PDF в PNG
  • PNG в PDF
  • HTML to PNG
  • HTML to JPEG
  • HTML to WEBP
  • SVG в PDF
  • PDF в SVG
  • TIFF в PDF
  • WEBP в PDF
  • HEIC в изображение
  • WEBP в JPG
  • WEBP в PNG
  • Image Converter
  • ODG в PDF
  • Защитить паролем
  • Разблокировать PDF
  • Редактировать PDF
  • Электронная подпись PDF
  • Share Document
  • Сравнить PDF
  • Извлечь таблицы
  • Конвертер банковских выписок
  • Извлечение счетов
  • Сканер квитанций
  • Анализатор финансовых отчетов
  • OCR — Извлечь текст
  • Преобразование рукописного текста
  • Суммаризировать PDF
  • Перевести PDF
  • Чат с PDF
  • Извлечь данные
  • Дизайн-студия

Продукт

  • Все инструменты
  • Функции
  • Банковские выписки
  • API
  • Цены
  • FAQ
  • Блог

Поддержка

  • О нас
  • Центр поддержки
  • Контакты
  • FAQ

Юридическая информация

  • Политика конфиденциальности
  • Условия использования
  • Политика использования файлов cookie

© 2026 PDFSub. Все права защищены.

Сделано в Америке с для людей по всему миру