Формат PDF

 

Формат PDF (Portable Document Format) - переносимый формат документов, разработанный компанией Adobe Systems, используется как основа для создания электронных изданий в среде программного пакета Adobe Acrobat. Формат PDF - это файловый текстовой формат, предназначенный для представления публикаций или других документов на любой аппаратной платформе и в любой операционной среде. PDF-файл содержит PDF-публикацию и специальные данные.

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

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

Формат PDF представляет текст и графику, используя модель формирования изображений языка программирования полос PostScript. Графическими объектами могут быть тексты и формы публикаций, векторные и растровые изображения и т.д. Графические объекты могут быть любого цвета.

Операторы создания страниц PDF подобны операторам языка PostScript. Главное отличие состоит в том, что PDF не программный язык, он не содержит процедур, переменных и т.п.

Характерными особенностями PDF-файла являются:

 

- PDF-файл может содержать объекты, подобные гипертекстовым ссылкам, доступные только при интерактивном просмотре;

- для упрощения процесса описания страниц PDF не использует конструкции программных языков;

- PDF создает определенную структуру файла, которая позволяет программным приложениям иметь доступ к любой части документа;

- PDF-файл содержит информацию о размерах шрифта и т.п.;

- PDF-файл не может быть прямо преобразован в PostScript-публикацию для печати;

- PDF-файл строится на основе либо 7-битового ASCII-файла, либо на базе бинарного файла. Если это ASCII-файл, в нем используются только печатные символы 7-битового ASCII-кода, пробел, табуляция, возврат каретки и перевод строки. В случае бинарного файла могут быть использованы все символы 8-битового кода. Считается, что ASCII-код - наиболее удобный для переноса вид кодировки.

Для уменьшения размера файла PDF использует различные методы сжатия изображений:

- JPEG - для полноцветных иллюстраций и изображений в градациях серой шкалы;

- CCITT - для черно-белых изображений;

- LZW - для компрессии и декомпрессии текстового материала.

Все эти методы оперируют с двоичными данными, которые затем могут быть закодированы в коде ASCII. Для обеспечения независимости от шрифтов PDF-файл содержит описание для каждого шрифта, использованного в публикации. Описание включает название, кегль (размер) и стиль шрифта. В режиме просмотра публикации, если шрифт, использованный в документе, доступен, то он используется. Если недоступен, то заменяется на подобный с тем же кеглем и другими характеристиками. Некоторые шрифты могут встраиваться в PDF-публикацию.

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

Обычный PDF-файл содержит четыре раздела:

- заголовок (header);

- «тело файла» (body);

- таблицу перекрестных ссылок (cross-reference table);

- trailer.

 

Заголовок. Первая строка PDF-файла определяет номер спецификации PDF, которой придерживается данный файл (текущая - 1.2% PDF-1.2).

Тело файла. Содержит последовательность косвенных объектов, входящих в состав публикации. Объекты - это компоненты публикации: страницы, изображения, шрифты. Комментарии могут быть во всем PDF-файле. Их синтаксис совпадает с синтаксисом комментариев в PostScript, они начинаются с % и заканчиваются символом конца строки.

Таблица перекрестных ссылок. Таблица содержит информацию о каждом объекте в файле в виде одной строки описания места объекта в файле. PDF-файл содержит таблицу, состоящую из одного или более разделов. Если нет изменений или добавлений в файл, таблица состоит из одного раздела. В противном случае в ее состав добавляется новый раздел.

Trailer позволяет программному приложению при чтении PDF-файла быстро находить таблицу перекрестных ссылок и специальные объекты. Приложения должны читать PDF-файл с конца. Последняя строка содержит маркер конца файла %%EOF; две предшествующие строки - ключевое слово startxref и байт смещения от начала файла к началу слова xref в последнем разделе таблицы ссылок в файле. Trailer dictionary предшествует этой строке.

Пошаговая коррекция документа. Содержимое PDF-файла может быть изменено без переписывания всего файла. Изменения можно внести в конец файла, сохраняя его первоначальное содержание. Когда файл модифицируется, добавляются новые или измененные объекты, раздел таблицы ссылок и новый trailer. Удаленные объекты остаются неизменными в файле, но помечаются как удаленные в таблице ссылок.

Шифрование документа. Документы или публикации могут быть зашифрованы для защиты их содержимого от несанкционированного доступа. Доступ к защищенному содержимому документа контролируется специальным «механизмом», определенным в таблице dictionary шифрования - значение Encrypt ключа в dictionary trailer.

Защита данных в файле PDF состоит из двух шагов: вычисление ключа, который должен использоваться, чтобы закодировать данные, и шифрование данных. Ключ является строкой (string) из пяти байтов. Для шифрования используется RC4 - симметричный алгоритм, который может применяться как для шифрования, так и для дешифрования. Алгоритм RC4 не меняет длины данных.

Структура PDF-публикации. PDF-публикация может быть описана как иерархия объектов, содержащихся в «теле» PDF-файла.

Основными объектами в этой иерархии являются таблицы dictionary. Связи в иерархии представлены парами ключ - значение, в которых значение - косвенная ссылка на родитель-ский или дочерний объект. Например, объект Catalog, который является «корнем» иерархического дерева, содержит «ключ страниц» и соответствующее ему значение - косвенную ссылку на объект корень «дерева» страниц (Pages tree).

Каждая страница документа включает ссылки на свои изображения, миниатюры и комментарии, которые появляются на странице. Trailer PDF-файла, описанный выше, определяет место объекта Catalog в виде значения корневого ключа (Root) в trailer. Кроме того, trailer задает с помощью ключа Info место информационной таблице dictionary публикации, т.е. структуре, которая содержит общие сведения о документе.

Формат PDF используется как основа представления данных при создании электронных изданий с помощью технологий Adobe Systems в среде программного пакета Adobe Acrobat.