Вы не можете найти этот объект, поскольку он хранится в сжатом потоке вместе с рядом других объектов.
Как всегда, вы должны начать с чтения таблицы перекрестных ссылок xref
. Вы найдете, что это также сжато; см. 7.5.8 Потоки перекрестных ссылок в ISO PDF 32000-1: 2008:
7.5.8.1 Общие сведения
Начиная с PDF 1.5, информация о перекрестных ссылках может храниться в потоке перекрестных ссылок, а не в таблице перекрестных ссылок.
startxref
указывает на словарь
6628 0 obj
<<
/W [1 4 1]
/Info 1 0 R
/Root 2 0 R
/Size 6629
/Type /XRef
/Filter /FlateDecode
/Length 3996
/DecodeParms <<
/Columns 6
/Predictor 12
>>
>>
stream
... (compressed data) ..
endstream
и распаковка показывает
index entry 0: 0 0 255
index entry 1: 2 3 0
index entry 2: 1 15 0
index entry 3: 1 3981 0
index entry 4: 2 3 1
index entry 5: 1 197 0
index entry 6: 2 3 2
index entry 7: 2 3 3
index entry 8: 2 3 4
index entry 9: 2 3 5
.. etc. ..
Первым числом в записи является ее статус: 0
"не используется", равно f
в обычной таблице внешних ссылок, 1
равно n
в обычной таблице и 2
означает, что объект сжат в еще одном потоке. См. Ссылку на ISO для полного значения.
Из этого вы можете видеть, что запись /Root
в объекте # 2 имеет смещение 15 (десятичное число), а ваши /Pages
, # 4 находятся в сжатом потоке в позиции # 1. И действительно, распаковка показывает ожидаемое
4 0 obj @ 3 % "Pages"
<<
/Type /Pages
/Count 364
/Kids [
9 0 R 10 0 R ]
>>
endobj