Що таке 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 formathexadecimal 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-файлів містять стиснений вміст сторінки, зображення чи інші носії. Об’єкт потоку складається з прямого словника з довжиною потоку та масиву фільтрів, які використовуються для кодування потоку, і закодованих даних після ключового слова потік.
181 0 obj << /Length 473 0 R /Subtype /Image /Width 2 /Height 19 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/ASCII85Decode /FlateDecode] >>streamGb"[2*s<F2i'/7_!,1%/hZ~>endstreamendobj |
Оператори PDF
Оператори — це свого роду прямі об’єкти, які створюють графіку сторінки і, як ми згадували раніше, представлені ключовими словами з 1 або 2 букв. Існує два типи операторів PDF:
* executing actions or setting properties of the graphics state.
PDF operator x y mx y lx1 y1 x2 y2 x3 y3 chx y width height rea b c d e f cmSsfFWfont size TfcharSpace TcqQlineWidth wlineCap Jfont size TfcharSpace Tc | Description почати новий підшлях, перемістивши поточну точку до координат (x, y)додати відрізок прямої лінії від поточної точки до точки (x, y)додати кубічну криву Безьє до поточного шляхузакрити поточний підшляхдодати прямокутник до поточного шляхузмінити поточну матрицю перетворення шляхом об’єднання зазначеної матрицігладити доріжкутой же, але близький шляхзаповнити шляхтой же, але близький шляхзмінити поточний контур відсікання, перетинаючи його з поточним контуромвстановіть шрифт тексту на font і розмір шрифту тексту на sizeвстановіть інтервал між символами на charSpaceзберегти поточний стан графіки в стеку стану графікивідновити стан графіки зі стеку стану графікивстановити ширину лінії в графічному станівстановити стиль верхньої частини лінії в графічному станівстановіть шрифт тексту на font і розмір шрифту тексту на sizeвстановіть інтервал між символами на charSpace |
* grouping
PDF operator BT...ETBI...EIBMC...EMCBX...EX | Description початок і кінець текстового об'єктапочаток і кінець об'єкта зображенняпочаток і кінець послідовності позначеного вміступочаток і кінець розділу сумісності |
Спеціальними видами операторів групування є BX…EX. Вони охоплюють частини вмісту сторінки, де неідентифіковані об’єкти мають бути проігноровані. Таким чином, вони є еквівалентами псевдокоментарів AI %_.
Структура ПДФ файлу
PDF-файл має чотири обов’язкові структурні елементи.
- Однорядковий заголовок, де записується версія мовою PDF
%PDF-1.5 |
Тіло, що містить об’єкти документа. Будова тіла буде описано далі в цій статті.
Таблиця перехресних посилань. Використовується для швидкого довільного доступу до об’єктів документа. Він містить зсув у байтах до початку об’єктів від початку файлу.
xref0 60000000003 65535 f0000000017 00000 n0000000081 00000 n0000000000 00007 f0000000331 00000 n0000000409 00000 n |
- Трейлер, вказує на останню таблицю перехресних посилань і містить загальну кількість об’єктів у таблицях перехресних посилань, Ідентифікатор документа та посилання на:
- попередня таблиця перехресних посилань, якщо їх у файлі декілька;
- Корінь документа, представлений словником Каталогу;
- Словник метаінформації з полями Автор, Творець, Назва, Ключові слова, дата створення та модифікації;
- Словник шифрування, якщо документ зашифрований.
trailer << /Size 15 /Root 2 0 R /Info 1 0 R >>startxref6224 |
Нова таблиця перехресних посилань і трейлер додаються після кожного оновлення документа. Про нього буде розказано далі в статті.
Структура документа
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 у зрозумілому для людини тексті, як на малюнку нижче.
7 0 obj << /Length 8 0 R >>stream1 0 0 1 0 0 cm0 0 m595 0 l595 842 l0 842 lhWnq/Alpha1 gs0 0 0 rg0 0 0 RG0 Jq0.96593 0.25882 -0.25882 0.96593 0 0 cm1 0 0 1 0 0.25882 cm0.02 w-0.96593 0 m0 -0.25882 l0 -0.25882 0 -0.25882 0 -0.25882 c0.14294 -0.25882 0.25882 -0.14294 0.25882 0 c0.25882 0.14294 0.14294 0.25882 0 0.25882 chSQendstreamendobj |
Окрім масиву дочірніх вузлів (це може бути дерево сторінок або вузли сторінок) Сторінки, словник містить посилання на словник ресурсів, який, у свою чергу, посилається на шрифти, набори процесів, зображення (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.