Previous Next


                                         114
CHAPTER 3                                                                          Syntax



     02 0002 00              % Entry for object 3 (in object stream 2, index 0)
     02 0002 01              % Entry for object 4 (in object stream 2, index 1)
     02 0002 02              %…
     02 0002 03
     02 0002 04
     02 0002 05
     02 0002 06
     02 0002 07              % Entry for object 10 (in object stream 2, index 7)
     01 1323 0               % Entry for object 11 (0x1323 = 4899)
  endstream
  endobj

  xref                             % The update xref section, at offset 5640
  00                               % There are no entries in this section.
  trailer
      << /Size 100
          /Prev 2664               % Offset of previous xref section
          /XRefStm 4899
          /Root 1 0 R
          /ID …
      >>
  startxref
  5640
  %%EOF

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

Previous Next