Пример иллюстрирует страницу с миниатюрой и двумя комментариями
3 0 obj
<<
/Type /Page
/Parent 4 0 R
/MediaBox [0 0 612 792]
/Resources <<
/Font << /F3 7 0 R /F5 9 0 R /F7 11 0 R >>
/ProcSet [/PDF] >>
/Thumb 12 0 R
/Contents 14 0 R
/Annots [23 0 R 24 0 R]
>>
endobj
Три ключа объекта Page: Dur (время показа), Hid (скрытие страницы) и Trans (описывает «эффект» при переходе к данной странице) - содержат информацию, которая используется только в режиме «презентации» и игнорируется в противном случае.
Миниатюры (Thumbnail). PDF-документ может включать миниатюрные схемы страниц. Миниатюра задается значением ключа Thumb объекта страницы. Структура миниатюры подобна, за небольшими исключениями, структуре изображения (см. ниже).
Комментарии (Annotations). Комментарии - это заметки или другие объекты, которые связаны со страницей, но описываются отдельно от дескриптора страницы. PDF поддерживает несколько видов комментариев: текстовые, гипертекстовые связи, видео- и аудиоинформацию.
Если страница содержит комментарии, то они сохраняются в массиве как значение Annots ключа объекта страница. Каждый комментарий - объект типа dictionary. Основными ключами комментария являются: Type, Subtype, Rect. Другие ключи, определяющие цвет (С), заголовок (T), рамку (Border или BS) и т.п., не являются обязательными.
Дерево закладок - Outline tree (bookmarks tree). Структура предоставляет пользователю возможность иметь доступ к различным видам публикации по имени. Активация outline entry (или bookmark - закладки) «переносит» на новый вид, заданный в так называемом «описании места назначения» (destination description) для bookmark. Закладки часто образуют иерархическую структуру. Если документ включает закладки, они доступны по ключу Outlines в Catalog-объекте. Значение этого ключа - корень дерева закладок. Закладка верхнего уровня содержит связный список. В процессе просмотра закладки появляются в той последовательности, в какой они входят в данный список. Основные атрибуты этого объекта типа dictionary: Count (общее количество открытых закладок), First (ссылка на начало списка), Last (ссылка на конец списка).
Пример:
21 0 obj
<<
/Count 6
/First 22 0 R
/Last 29 0 R
>>
endobj
Атрибуты закладки: Title - название, Dest типа array или name - место назначения (Destination), A - действие, выполняемое при активации закладки, Parent - ссылка на закладку верхнего уровня иерархии, Prev - ссылка на предыдущую закладку, Next - ссылка на следующую закладку.
Пример:
22 0 obj
<<
/Parent 21 0 R
/Dest [3 0 R /Top 0 792 0]
/Title (Document)
/Next 29 0 R
/First 25 0 R
/Last 28 0 R
/Count 4
>>
endobj
Место назначения (Destinations). Комментарии и закладки могут определять место назначения, которое состоит из страницы, места на странице и масштаба показа страницы. Назначение может быть представлено явно как массив или посредством имени. В первом случае значениями ключа Dest являются непосредственно данные о странице - Page, Top, Bottom, Left, Right, Zoom, в различных комбинациях задающие страницу и показанный на ней «прямоугольник». Поименованные места назначения (тип string или name) часто применяются, когда закладка ссылается на другой файл. Catalog документа может содержать ключ Names со значениями, каждое из которых представляет собой дерево, подобное дереву страниц. «Листья» содержат пары из strings и косвенных объектов, которые и являются destinations.
Дерево имен (Name tree). Дерево имен похоже на дерево страниц, но листья содержат пары string (имен) и объектов. Такое дерево применяется для организации поименованных мест назначения. Оно состоит из узлов трех видов: корень, промежуточное, листья. Корень содержит атрибуты Kids-массив и Limits-массив. Лист содержит Limits и массив Names (форма массива name value name value ..., где value - косвенная ссылка на объект). Имена в дереве сохраняются только в листьях.
Информационный объект типа dictionary (Info dictionary). Как упоминалось выше, trailer документа может включать ссылки на Info dictionary, который содержит информацию о публикации. Значения строковых атрибутов этого объекта представляют собой информационное окно документа в Acrobat. В качестве атрибутов используются: Author, CreationDate, ModDate, Creator, Title, Subject, Keywords.
Статьи (article threads). Публикация может включать несколько статей (article threads), каждая из которых, в свою очередь, может содержать несколько фрагментов - bead. Статьи (threads) сохраняются в массиве как значение ключа Threads в Catalog-объекте. Каждая статья и ее фрагменты представляют собой объекты dictionary. Атрибуты статьи: F (определяет первый фрагмент), I (содержит информацию о статье, подобен Info dictionary). К атрибутам фрагмента относят: T (ссылка на статью), V (ссылка на предыдущий фрагмент), N (следующий фрагмент), P (страница, на которой размещается фрагмент), R (прямоугольник положения фрагмента на странице).
Также в структуре выделяют Формы (Acrobat Forms), Аудиоинформацию, Спецификацию файла (File specification), Шрифт (Font), и Внешние объекты - External Objects (XObjects - поименованные ресурсы. PDF поддерживает три типа таких объектов: Images, Forms и PostScript language fragments, которые используют подтип Image).
*Еще более подробно здесь:
http://www.hi-edu.ru/e-books/xbook081/01/part-004.htm#i643