Class Origami::XRef
In: sources/parser/xreftable.rb
Parent: Object

Class representing a Cross-reference information.

Methods

new   to_s   to_xrefstm_data  

Classes and Modules

Class Origami::XRef::Section
Class Origami::XRef::Subsection

Constants

FREE = "f"
USED = "n"
LASTFREE = 65535

Attributes

generation  [RW] 
offset  [RW] 
state  [RW] 

Public Class methods

Creates a new XRef.

offset:The file offset of the referenced Object.
generation:The generation number of the referenced Object.
state:The state of the referenced Object (FREE or USED).

[Source]

    # File sources/parser/xreftable.rb, line 78
78:     def initialize(offset, generation, state)
79:     
80:       @offset, @generation, @state = offset, generation, state
81:     
82:     end

Public Instance methods

Outputs self into PDF code.

[Source]

     # File sources/parser/xreftable.rb, line 100
100:     def to_s
101:       off = ("0" * (10 - @offset.to_s.length)) + @offset.to_s
102:       gen = ("0" * (5 - @generation.to_s.length)) + @generation.to_s
103:       
104:       "#{off} #{gen} #{@state}" + EOL
105:     end

[Source]

     # File sources/parser/xreftable.rb, line 107
107:     def to_xrefstm_data(type_w, field1_w, field2_w)
108: 
109:       type_w <<= 3
110:       field1_w <<= 3
111:       field2_w <<= 3
112: 
113:       type = ((@state == FREE) ? "\000" : "\001").unpack("B#{type_w}")[0]
114: 
115:       offset = @offset.to_s(2)
116:       offset = '0' * (field1_w - offset.size) + offset
117:       generation = @generation.to_s(2)
118:       generation = '0' * (field2_w - generation.size) + generation
119: 
120:       [ type , offset, generation ].pack("B#{type_w}B#{field1_w}B#{field2_w}")
121:     end

[Validate]