Що таке файл PDF? | База знань

Вступ

Як ви вже знаєте зі статті про “PDL”, PDF — це статична мова опису сторінок, яка має сувору незмінну структуру.

PDF є однією з, якщо не найпопулярнішою мовою опису сторінок, завдяки величезній різноманітності функцій, які розробники з Adobe додали до її специфікації. Крім того, Adobe також надає людям інструменти, здатні реалізувати ці функції в документах. Ця стаття є коротким оглядом синтаксису, структури та функцій PDF.

Що таке файл PDF?

Початкова мета розробки PDF або скорочено Portable Document Format полягала в тому, щоб створити формат документа, який задовольняв би численні вимоги обміну цифровими документами в апаратно-незалежних і незалежних від роздільної здатності середовищах. Ці вимоги включають інтерактивний перегляд, високопродуктивну навігацію, низьку зайнятість дискового простору, спільну роботу над документами, підтримку різного медіаконтенту, шифрування, підписання, створення форм, презентації тощо. Незважаючи на початковий намір надати підприємствам вичерпний формат для обміну цифровими документами, функції високоякісного друку також були додані до специфікації, хоча пізніше.

Синтаксис файлу PDF

PDF має модель зображення, отриману від моделі PostScript, також використовує 1-2 символи, довгі оператори, а також у форматі AI, а також має постфіксний синтаксис BNF, де всі необхідні операнди йдуть перед оператором.

operand1...operandm operator

Окрім довжини оператора, існують деякі відмінності між операторами PDF і PostScript. У PDF усі необхідні операнди мають передувати операторам, тоді як у Postscript операнди отримуються зі стеку PostScript. У PDF оператор не повертає результат, як це може бути в PostScript. Оператор PDF виконує певну дію для створення сторінки, наприклад малювання графіки чи тексту, або встановлює деякі властивості в графічному середовищі. У PostScript всю роботу виконують оператори.

Зазвичай більшість вмісту PDF-файлів стискається за допомогою кодування Flate, і цей спосіб є двійковим. Окрім стиснення PDF-файли також можна зашифрувати, щоб обмежити доступ до вмісту документа. Тому весь файл слід розглядати як двійковий. Лише у випадку, якщо PDF-файл не стиснутий і не зашифрований і не містить бінарного вмісту, такого як зображення, звук, відео тощо, його можна вважати текстовим.

Об’єкти специфікації PDF

У специфікації PDF об’єкт є синонімом типу, тоді як у PostScript є типи, які можуть бути примітивними та складними, і останні можна назвати «об’єктами». Тому всі типи в PDF, прості чи складні, є об’єктами. Мова PDF складається з логічних значень, цілих чисел, дійсних чисел, імен, рядків, масивів, словників і потоків. Рядки можуть бути у буквальному або шістнадцятковому форматі, як показано нижче.

( This is a string )
<4E6F762073686D6F7A206B6120706F702E>

literal format
hexadecimal format

Масиви обмежуються квадратними дужками. Він включає підтип Rectangle - масив з 4 елементів.

Словники зберігають дані в парах ключ-значення, де ключ — це ім’я або рядок (для словника імен), а значення — об’єкт або посилання на об’єкт. Він узятий у подвійні кутні дужки. У словниках є поле Тип, яке показує, які дані зберігаються в певному словнику.

<< /Type /Example
  /Subtype /DictionaryExample
  /Version 0 . 01
  /IntegerItem 12
  /StringItem ( a string )
  /Subdictionary << /Item1 0 . 4
    /Item2 true
    /LastItem ( not ! )
    /VeryLastItem ( OK )
  >>
>>
endobj

Об’єкти можуть бути прямими і непрямими. Непрямі об’єкти – це ті, на які можна посилатися з інших об’єктів за їхнім ідентифікатором.

Непрямі об’єкти PDF Потоки - це об’єкти, які зазвичай містять двійкові або закодовані дані. Вони нерозбірливі для людини та не мають обмежень щодо довжини. Зазвичай потоки PDF-файлів містять стиснений вміст сторінки, зображення чи інші носії. Об’єкт потоку складається з прямого словника з довжиною потоку та масиву фільтрів, які використовуються для кодування потоку, і закодованих даних після ключового слова потік.

181 0 obj
  <<
    /Length 473 0 R
    /Subtype /Image
    /Width 2
    /Height 19
    /BitsPerComponent 8
    /ColorSpace /DeviceGray
    /Filter [/ASCII85Decode /FlateDecode]
  >>
stream
Gb"[2*s<F2i'/7_!,1%/hZ~>
endstream
endobj

Оператори PDF

Оператори — це свого роду прямі об’єкти, які створюють графіку сторінки і, як ми згадували раніше, представлені ключовими словами з 1 або 2 букв. Існує два типи операторів PDF:

* executing actions or setting properties of the graphics state.

PDF operator

x y m
x y l
x1 y1 x2 y2 x3 y3 c
h
x y width height re
a b c d e f cm
S
s
f
F
W
font size Tf
charSpace Tc
q
Q
lineWidth w
lineCap J
font size Tf
charSpace Tc

Description

почати новий підшлях, перемістивши поточну точку до координат (x, y)
додати відрізок прямої лінії від поточної точки до точки (x, y)
додати кубічну криву Безьє до поточного шляху
закрити поточний підшлях
додати прямокутник до поточного шляху
змінити поточну матрицю перетворення шляхом об’єднання зазначеної матриці
гладити доріжку
той же, але близький шлях
заповнити шлях
той же, але близький шлях
змінити поточний контур відсікання, перетинаючи його з поточним контуром
встановіть шрифт тексту на font і розмір шрифту тексту на size
встановіть інтервал між символами на charSpace
зберегти поточний стан графіки в стеку стану графіки
відновити стан графіки зі стеку стану графіки
встановити ширину лінії в графічному стані
встановити стиль верхньої частини лінії в графічному стані
встановіть шрифт тексту на font і розмір шрифту тексту на size
встановіть інтервал між символами на charSpace

* grouping

PDF operator

BT...ET
BI...EI
BMC...EMC
BX...EX

Description

початок і кінець текстового об'єкта
початок і кінець об'єкта зображення
початок і кінець послідовності позначеного вмісту
початок і кінець розділу сумісності

Спеціальними видами операторів групування є BX…EX. Вони охоплюють частини вмісту сторінки, де неідентифіковані об’єкти мають бути проігноровані. Таким чином, вони є еквівалентами псевдокоментарів AI %_.

Структура файлу PDF

PDF-файл має чотири обов’язкові структурні елементи.

Структура файлу PDF

  1. Однорядковий заголовок, де записується версія мовою PDF

%PDF-1.5

  1. Тіло, що містить об’єкти документа. Будова тіла буде описано далі в цій статті.

  2. Таблиця перехресних посилань. Використовується для швидкого довільного доступу до об’єктів документа. Він містить зсув у байтах до початку об’єктів від початку файлу.

xref
0 6
0000000003 65535 f
0000000017 00000 n
0000000081 00000 n
0000000000 00007 f
0000000331 00000 n
0000000409 00000 n

  1. Трейлер, вказує на останню таблицю перехресних посилань і містить загальну кількість об’єктів у таблицях перехресних посилань, Ідентифікатор документа та посилання на:

trailer
  <<
    /Size 15
    /Root 2 0 R
    /Info 1 0 R
  >>
startxref
6224

Нова таблиця перехресних посилань і трейлер додаються після кожного оновлення документа. Про нього буде розказано далі в статті.

Структура документа

PDF-документ має деревоподібну структуру, де коренем є словник каталогу.

Структура документа PDF

Каталог містить посилання на піддерево опису сторінок, піддерево структури та інші піддерева та листові вузли рівня документа.

2 0 obj
  << /Type /Catalog
    /Pages 3 0 R
    /Outlines 4 0 R
    /PageMode /UseOutlines
    /ViewerPreferences 5 0 R
    /OpenAction [6 0 R /Fit]
  >>
endobj

Дерево сторінок містить упорядкування вузлів дерева сторінок і вузлів сторінок. Саме деревоподібна структура набору сторінок разом з алгоритмом пошуку дозволяє швидко переміщатися між тисячами сторінок, щоб знайти потрібну.

Потік вмісту сторінки PDF

Сторінка словника містить посилання на потік вмісту, який можна стиснути, як показано на малюнку вище, або розпакувати. В останньому випадку ми побачимо оператори PDF у зрозумілому для людини тексті, як на малюнку нижче.

7 0 obj
  <<
    /Length 8 0 R
  >>
stream
1 0 0 1 0 0 cm
0 0 m
595 0 l
595 842 l
0 842 l
h
W
n
q
/Alpha1 gs
0 0 0 rg
0 0 0 RG
0 J
q
0.96593 0.25882 -0.25882 0.96593 0 0 cm
1 0 0 1 0 0.25882 cm
0.02 w
-0.96593 0 m
0 -0.25882 l
0 -0.25882 0 -0.25882 0 -0.25882 c
0.14294 -0.25882 0.25882 -0.14294 0.25882 0 c
0.25882 0.14294 0.14294 0.25882 0 0.25882 c
h
S
Q
endstream
endobj

Окрім масиву дочірніх вузлів (це може бути дерево сторінок або вузли сторінок) Сторінки, словник містить посилання на словник ресурсів, який, у свою чергу, посилається на шрифти, набори процесів, зображення (XObject) тощо.

9 0 obj
  <<
    /ProcSet 10 0 R
    /XObject 11 0 R
    /Font 12 0 R
    /ExtGState 13 0 R
  >>
endobj

Анотації та інші піддерева буде випадково згадано в розділі «Функції».

особливості

Графічні можливості формату PDF

Немає сенсу згадувати про загальні для більшості мов опису сторінок можливості малювання графіки та тексту. Ми просто зазначимо, що багатство підтримуваних шрифтів і колірних просторів таке ж, як і в PostScript.

Fonts

- Adobe Type 0
- Adobe Type 1
- Compact Fonts (CFF)
- Chameleon
- TrueType
- CID-keyed

Color spaces

- DeviceGray
- DeviceRGB
- DeviceCMYK
- DeviceN
- Розділені кольори
- Spot
- на базі CIE

Прозорість

PDF підтримує прозорість.

Зовнішні файли

Будь-який мультимедійний файл або файл документа можна вставити в PDF або посилатися на нього з документа.

Гіперпосилання

У PDF підтримуються гіперпосилання.

Виборчий та інтерактивний перегляд

PDF дозволяє показувати лише ті частини вмісту та його вигляд, які необхідні для певного використання, і приховувати інші. Це корисно, наприклад, під час імпорту графіки Adobe Illustrator, яка містить шари, деякі з яких необхідні для роботи в Adobe Illustrator, але не потрібні для перегляду в Adobe Acrobat Reader. Іншим випадком виборчого погляду може бути стаття, написана різними мовами або представлена ​​для користувачів з обмеженими можливостями, але збережена в одному документі. Також можливі різні варіанти використання: один вид для перегляду, оформлення та друку.

Інтерактивний перегляд PDF-файлу включає такі можливості:

Анотація – це свого роду плаваюча коробка, що містить деякі нотатки, звук, відео чи інший вміст.

Інтерактивна навігація

Навігацію між різними частинами документів можна реалізувати кількома способами:

Переміщення вікнами перегляду і приховування окремих частин документа реалізовано за допомогою словників Viewport і NavigationNode.

Поступове оновлення

Усі зміни, внесені в PDF-документ, додаються до документа без видалення попереднього вмісту. І кожного разу, коли документи змінюються, додаються нові посилання (таблиця перехресних посилань) і трейлер. Нова таблиця перехресних посилань містить посилання на додані або видалені об’єкти та на попередню таблицю перехресних посилань. Такий механізм дозволяє зібрати остаточний вміст документа і, в той же час, зберегти попередні стани документа.

Продуктивність

Висока продуктивність навігації по сторінках забезпечується деревоподібною структурою Pages і ефективним алгоритмом пошуку. Однак його можна збільшити, об’єднавши повторювані графічні елементи в один об’єкт під назвою Form XObject і використовуючи один об’єкт у всіх необхідних місцях. Існує також спосіб оптимізувати весь документ для високопродуктивного перегляду. Це лінеаризація. Лінеаризація спочатку була винайдена для ефективного перегляду PDF-документів, доступних через Інтернет. Лінеаризований PDF-документ доступний лише для читання, будь-які зміни в ньому вимагатимуть повторної лінеаризації.

Висока продуктивність навігації між об’єктами документа реалізована таблицями перехресних посилань, які зберігають зміщення об’єктів від початку файлу.

Компресія

Стиснення PDF-документів, як правило, у плоскому кодуванні, дозволяє створювати великі документи з відносно низьким обсягом дискового простору. Наприклад, файл специфікації PDF, який містить 758 сторінок із планом, ескізами, зображеннями та таблицями, має розмір близько 9 Мб.

Безпека

Документи PDF можна зашифрувати, щоб надати диференційований доступ лише певним користувачам, і їх можна підписати. Функція цифрового підпису дозволяє ідентифікувати особу користувача та вміст документа. Цифровий підпис прив’язує стан документа, коли він підписується інформацією користувача. Цифровий підпис може бути будь-якої форми: від чисто математичного до сканування сітківки, якщо передбачено відповідний обробник підпису.

Інтерактивні форми

Він використовується для збору інформації від користувачів. Інтерактивні форми або так звані AcroForms можуть перевіряти, форматувати та надсилати дані користувача на сервер.

Презентація

У форматі PDF існує кілька засобів представлення:

Медіаконтент

До PDF-документів можна додавати зображення, звуки, відеокліпи та 3D-графіку.

Дані вилучення

PDF дозволяє додавати певну розмітку, яка надає зовнішнім програмам можливість видобувати необхідні дані. Документ із такою розміткою називається Tagged PDF.

Додрукарська підтримка

Підготовка до публікації включає друкарські позначки, кольороподіл, наміри виведення та трепінг.

Для чого корисний файл PDF?

Основним застосуванням PDF-документів є електронний обмін документами та перегляд у різних середовищах.

Як створити файл PDF?

Створення та редагування PDF-документів можливе в автономних програмах Adobe Acrobat.

Як відкрити файл PDF?

Ви можете відкривати та переглядати PDF-файли в автономній програмі Adobe Acrobat Reader або в браузері Google Chrome за допомогою плагіна PDF. Також вам допоможуть такі прості утиліти, як Sumatra PDF, Foxit Reader або Free PDFReader. Інший спосіб - перегляд PDF-файлів онлайн, наприклад, на Google Drive.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.