CHAPTER 3
114
Syntax
02 0002 00
02 0002 01
02 0002 02
02 0002 03
02 0002 04
02 0002 05
02 0002 06
02 0002 07
01 1323 0
endstream
endobj
xref
00
trailer
<< /Size 100
/Prev 2664
/XRefStm 4899
/Root 1 0 R
/ID …
>>
startxref
5640
%%EOF
% Entry for object 3 (in object stream 2, index 0)
% Entry for object 4 (in object stream 2, index 1)
%…
% Entry for object 10 (in object stream 2, index 7)
% Entry for object 11 (0x1323 = 4899)
% The update xref section, at offset 5640
% There are no entries in this section.
% Offset of previous xref section
The example illustrates several other points:
•
The object stream is unencoded and the cross-reference stream uses an ASCII
hexadecimal encoding for clarity. In practice, both streams would be Flate-en-
coded. Also, the comments shown in the cross-reference table in the above ex-
ample are for illustrative purposes; PDF comments are not legal in a cross-
reference table.
•
The hidden objects, 2 through 11, are numbered consecutively. In practice,
there is no such requirement, nor is there a requirement that free items in a
cross-reference table be linked in ascending order until the end.
•
The update cross-reference table contains no entries, which is not a require-
ment but is reasonable. A PDF creator that uses the hybrid-reference format
creates the main cross-reference table, the update cross-reference table, and the
cross-reference stream at the same time. Objects 12 and 13, for example, are not
compressed. They might have entries in the update table. Since objects 2 and
11, the object stream and the cross-reference stream, are not compressed, they