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). Масштабуються нескінченно без втрати якості. Більшість експортів CAD, діаграм та графіків у 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), специфічні для CAD метадані
PDF/VT Транзакційний друк зі змінними даними Оптимізовано для персоналізованих поштових розсилок великого обсягу

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


Лінеаризовані PDF (оптимізовані для вебу)

"Лінеаризований" або "оптимізований для вебу" PDF перевпорядковує тіло так, щоб об'єкти першої сторінки з'являлися на початку файлу. Веб-переглядач може відобразити сторінку 1 після завантаження лише перших ~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 за допомогою прив'язки PDFium на Rust (той самий рушій, що використовується у переглядачі 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. Усі права захищені.

Зроблено в Америці з для людей у всьому світі