Статья: Очерк по поводу создания PDF-файлов
0000002439 00000 n
0000002558 00000 n
0000000024 00001 f
0000002751 00000 n
0000002831 00000 n
0000000000 00001 f
0000002915 00000 n
0000002955 00000 n
0 27 Эти цифры обозначают следующее :
0 - первый object number в таблице
27 - количество элементов таблицы
Первый элемент таблицы всегда иммет вид "XXXXXXXXXX 65535 f" где X это цифра, а 65535 это значение по умолчанию для первого элемента в таблице. Символ "f" обозначает "free", то есть объект не используется Ссылки на объекты, которые используются, в конце имеют символ "n"
Разберем элемент данной таблицы.
Первые 10 цифр — это смещение от начала файла до начала объекта.
0000000016 означает что через 16 байт от начала файла Вас встретит первое упоминание об объекте то есть, например, 4 0 obj
Вторые пять цифр — это номер генерации файла. Если файл только что создан, то они всегда нули. Если файл модифицируется, то это число увеличивается на единицу. То есть, 0000000024 00001 f
Канонический, только что созданный PDF файл, имеет только одну таблицу. Но, если файл редактируется, то таких таблиц может быть очень много.
Взаимосвязь таблиц осуществляется при помощи последнего элемента <trailer> и кодового слова startxref
Канонический, только что созданный PDF файл, имеет только одну таблицу, после таблицы идет элемент trailer
А после трайлера идет кодовое слово startxref, указывающее на смещение от начала файла до начала таблицы, вот пример.
trailer
<<
/Size 3
>>
startxref
173
%%EOF
Это значит, что через 173 байта от начала документа, будет присутствовать кодовое слово xref. Но, если файл был отредактирован, то последний в файле трайлер будет иметь вид:
xref