class HexaPDF:: XRefSection
Parent | HexaPDF::Utils::ObjectHash |
---|
Manages the indirect objects of one cross-reference section or stream.
A PDF file can have more than one cross-reference section or stream which are all daisy-chained together. This allows later sections to override entries in prior ones. This is automatically and transparently done by HexaPDF
.
Note that a cross-reference section may contain a single object number only once.
See: HexaPDF::Revision
, PDF2.0 s7.5.4, s7.5.8
Constants
- Entry¶
One entry of a cross-reference section or stream.
An entry has the attributes
type
,oid
,gen
,pos
andobjstm
and can be created like this:Entry.new(type, oid, gen, pos, objstm) -> entry
The
type
attribute can be:- :free
-
Denotes a free entry.
- :in_use
-
A used entry that resides in the body of the PDF file. The
pos
attribute defines the position in the file at which the object can be found. - :compressed
-
A used entry that resides in an object stream. The
objstm
attribute contains the reference to the object stream in which the object can be found and thepos
attribute contains the index into the object stream.Objects in an object stream always have a generation number of 0!
See: PDF2.0 s7.5.4, s7.5.8
Public Class Methods
Creates a compressed cross-reference entry. See Entry
for details on the arguments.
Public Instance Methods
Adds a compressed entry to the cross-reference section.
See: ::compressed_entry
Adds a free entry to the cross-reference section.
See: ::free_entry
Adds an in-use entry to the cross-reference section.
See: ::in_use_entry
Calls the given block once for every subsection of this cross-reference section. Each yielded subsection is a sorted array of cross-reference entries.
If this section contains no objects, a single empty array is yielded (corresponding to a subsection with zero elements).
The subsections are dynamically generated based on the object numbers in this section.
Merges the entries from the given cross-reference section into this one.