PDF файлов формат – какво е PDF файл?
Portable Document Format (PDF) е вид документ, създаден от Adobe през 1990 г. Целта на този файлов формат беше да въведе стандарт за представяне на документи и други справочни материали във формат, който е независим от приложния софтуер, хардуера, както и от операционната система. Файловият формат PDF има пълната способност да съдържа информация като текст, изображения, хипервръзки, полета за формуляри, мултимедия, цифрови подписи, прикачени файлове, метаданни, геопространствени характеристики и 3D обекти в него, които могат да станат част от изходния документ.
В повечето случаи съществуващите документи се конвертират в PDF, вместо да се създава нов PDF от нулата. Но това не означава, че няма софтуер за създаване или манипулиране на PDF файлове.
(Трябва да споделите нещо за PDF файловия формат? Можете да публикувате своите констатации в секцията Новини за PDF файлов формат.)
PDF файлов формат - Кратка история
Бърз преглед на времевата линия за формирането на PDF файл по отношение на времевата линия е както следва:
1993 - Adobe Systems предоставя PDF спецификациите безплатно
2008 - PDF беше пуснат като отворен стандарт на 1 юли 2008 г. и беше публикуван от Международната организация по стандартизация като ISO 32000-1:2008.
2008 - Adobe публикува публичен патентен лиценз за права без възнаграждения във формат ISO 32000-1 за всички патенти, притежавани от Adobe, които са необходими за създаване, използване, продажба и разпространение на PDF съвместими реализации.
Първата версия на PDF, обозначена като PDF 1.0, която по-късно премина през ревизии до PDF 1.7. PDF 1.7, който стана ISO 32000-1, включва някои нестандартизирани патентовани технологии, както и Adobe XML Forms Architecture (XFA) и JavaScript разширение за Acrobat. Беше на 28 юли 2017 г., когато беше публикуван PDF 2.0, известен като ISO 32000-2:2017, който не включва никакви нестандартизирани технологии.
Спецификации на PDF файловия формат
PDF файлът е набор от байтове, които могат да бъдат групирани в токени според синтаксичните правила, определени от PDF спецификациите. Един или повече токени се комбинират, за да образуват синтактични единици от по-високо ниво, главно обекти, които са основните стойности на данни, от които се изгражда PDF документ.
Файлова структура на PDF файлове
Съдържанието на PDF файла е подредено в следната последователност във файла.
|Заглавка | Тяло | Таблица за кръстосани препратки | Трейлър
Заглавка на PDF файл
Независимо от PDF версията, PDF файлът започва със заглавка, съдържаща уникален идентификатор за PDF и версията на формата като %PDF-1.x, където x варира от 1-7.
Тяло на файла
Тялото на PDF файл се състои от поредица от индиректни обекти, представящи съдържанието на документа. Обектите, както е описано по-горе, представляват компоненти на документа като шрифтове, страници и примерни изображения. Започвайки с PDF 1.5, тялото може също да съдържа потоци от обекти, всеки от които съдържа последователност от непреки обекти.
Таблица за кръстосани препратки
Таблицата за кръстосани препратки съдържа информация, която позволява произволен достъп до индиректни обекти във файла, така че не е необходимо целият файл да се чете, за да се намери конкретен обект. Таблицата трябва да съдържа едноредов запис за всеки индиректен обект, указващ отместването в байта на този обект в тялото на файла. (Започвайки с PDF 1.5, част или цялата информация за кръстосани препратки може алтернативно да се съдържа в потоци за кръстосани препратки.
Трейлър на файла
Трейлърът на PDF файл позволява на съобразения читател бързо да намери таблицата за кръстосани препратки и определени специални обекти. Съответстващите читатели трябва да четат PDF файл от края му. Последният ред на файла трябва да съдържа само маркера за край на файла, %%EOF. Двата предходни реда съдържат, по един на ред и в ред, ключовата дума startxref и отместването на байта в декодирания поток от началото на файла до началото на ключовата дума xref в последната секция за кръстосана препратка.
PDF обекти
PDF файлът включва няколко различни типа обекти, които са от следните типове
- Булеви стойности - представляващи условно вярно или невярно
- Числа - цели и реални стойности
- Низове - съдържа символи в скоби
- Имена - започват с напред/знак, напр. /ASomewhatLongerName води до ASomewhatLongerName
- Масиви - PDF поддържа едномерни масиви. Масиви с по-високи измерения могат да бъдат конструирани чрез използване на масиви като вложени елементи
- Речници - колекция от обекти като двойки ключ-стойност. Може да има нула записи.
- Потоци - представлява последователност от байтове, които могат да бъдат и с неограничена дължина
- Нулев обект - представлява нулева стойност
Може да има други обекти като коментари, които се въвеждат със знака % и може да съдържат 8-битови знаци.
Непреки обекти
Всеки обект в PDF файл може да бъде етикетиран като индиректен обект. Косвените обекти получават уникален идентификатор на обект, чрез който други обекти могат да се отнасят към него. Кръстосаните препратки към тях се поддържат в индексна таблица и се маркират с ключовата дума xref, която следва основното тяло и дава отместването в байта на всеки непряк обект от началото на файла.
Линейни и нелинейни PDF оформления
PDF оформленията се категоризират като Lnear и нелинейни в зависимост от целевите приложения и други фактори.
Нелинейни - Нелинейните PDF файлове използват по-малко дисково пространство в сравнение с линейните PDF файлове. PDF страниците на документа се намират в разпръсната форма в PDF файла и затова нелинейните файлове са по-бавни в сравнение с линейните файлове.
Линеен PDF – Насочени към онлайн зрители на PDF файлове, линейните PDF файлове са конструирани по такъв начин, че да се записват на диск по линеен начин. Това не изисква добавки за браузър, за да се зареди целият документ преди показване.
Преглед на обекти
Както споменахме, PDF тялото е колекция от обекти, споменати по-горе. PDF се основава до голяма степен на PostScript без функциите за управление на езиците за програмиране като if и loop команди. Командите, издадени от Postscript код за генериране на графично съдържание, се събират и токенизират в допълнение към всички файлове, графики или шрифтове, препратени от документа. Цялото това съдържание се натрупва в един файл, което води до съставен PostScript изход.
Текст
Текстът в PDF е представен от текстови елементи, които всъщност се показват с глифове от шрифтове. Глифът е графична форма и подлежи на всички графични манипулации, като трансформация на координати. Поради значението на текста в повечето описания на страници, PDF предоставя средства от по-високо ниво за удобно и ефективно описване, избиране и изобразяване на глифове.
Графика
Графичните оператори, използвани в потоците от PDF съдържание, описват външния вид на страниците, които трябва да бъдат възпроизведени на растерно изходно устройство. Съоръженията са предназначени както за принтер, така и за дисплей. Графичните оператори образуват шест основни групи:
- Графичните оператори на състояние манипулират структурата на данните, наречена графично състояние, глобалната рамка, в която се изпълняват другите графични оператори. Състоянието на графиката включва матрицата на текущата трансформация (CTM), която картографира координатите на потребителското пространство, използвани в рамките на поток от PDF съдържание, в координати на изходно устройство. Той също така включва текущия цвят, текущия изрязващ път и много други параметри, които са имплицитни операнди на операторите за рисуване.
- Операторите за изграждане на път определят пътища, които определят форми, траектории на линии и региони от различни видове. Те включват оператори за започване на нов път, добавяне на линейни сегменти и криви към него и затварянето му.
- Операторите за рисуване на пътя запълват път с цвят, рисуват щрих по него или го използват като граница за изрязване.
- Други оператори за рисуване рисуват определени самоописващи се графични обекти. Те включват примерни изображения, геометрично дефинирани нюанси и цели потоци от съдържание, които на свой ред съдържат последователности от графични оператори.
- Текстовите оператори избират и показват символни глифове от шрифтове (описания на шрифтове за представяне на текстови знаци). Тъй като PDF третира глифовете като общи графични форми, много от текстовите оператори могат да бъдат групирани с операторите за графично състояние или рисуване. Въпреки това, структурите от данни и механизмите за работа с описания на глифове и шрифтове са достатъчно специализирани.
- Операторите за маркирано съдържание свързват логическа информация от по-високо ниво с обекти в потока на съдържание. Тази информация не засяга изобразения външен вид на съдържанието; полезно е за приложения, които използват PDF за обмен на документи.