Class: Pdfrb::Model::Type::XRefStream

Inherits:
Cos::Stream show all
Defined in:
lib/pdfrb/model/type/xref_stream.rb

Overview

Cross-reference stream (s7.5.8, PDF 1.5+). Doubles as the trailer dict in PDF 1.5+ documents.

Instance Attribute Summary

Attributes inherited from Cos::Stream

#stream

Attributes inherited from Object

#document, #gen, #oid, #value

Instance Method Summary collapse

Methods inherited from Cos::Stream

#decoded_stream, #encoded_stream=, #initialize

Methods inherited from Cos::Dictionary

#[], #[]=, arlington_available?, arlington_default, arlington_key_to_symbol, arlington_loaded_for?, arlington_mark_loaded, arlington_object, arlington_one_type_to_ruby, arlington_required?, arlington_types_to_ruby, arlington_version, define_field, define_field_from_arlington, #delete, #each, each_field, #each_raw, #empty?, field, #initialize, #key?, #keys, lookup_type, own_fields, #pdf_type, register_type, type_map, #validate

Methods inherited from Object

#==, define_type, #deref, #indirect?, #initialize, #must_be_indirect?, #pdf_type, pdf_type

Constructor Details

This class inherits a constructor from Pdfrb::Model::Cos::Stream

Instance Method Details

#encryptObject



16
# File 'lib/pdfrb/model/type/xref_stream.rb', line 16

def encrypt; self[:Encrypt]; end

#encrypted?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/pdfrb/model/type/xref_stream.rb', line 23

def encrypted?
  !!encrypt
end

#field_widthsObject



31
32
33
34
35
36
37
38
# File 'lib/pdfrb/model/type/xref_stream.rb', line 31

def field_widths
  return [0, 0, 0] unless w

  arr = w.is_a?(Pdfrb::Model::PdfArray) ? w.to_a : w
  return [0, 0, 0] unless arr.is_a?(Array) && arr.size == 3

  arr
end

#filterObject



21
# File 'lib/pdfrb/model/type/xref_stream.rb', line 21

def filter; self[:Filter]; end

#idObject



18
# File 'lib/pdfrb/model/type/xref_stream.rb', line 18

def id; self[:ID]; end

#incremental?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/pdfrb/model/type/xref_stream.rb', line 27

def incremental?
  !!prev
end

#indexObject



20
# File 'lib/pdfrb/model/type/xref_stream.rb', line 20

def index; self[:Index]; end

#infoObject



17
# File 'lib/pdfrb/model/type/xref_stream.rb', line 17

def info; self[:Info]; end

#prevObject



14
# File 'lib/pdfrb/model/type/xref_stream.rb', line 14

def prev; self[:Prev]; end

#rootObject



15
# File 'lib/pdfrb/model/type/xref_stream.rb', line 15

def root; self[:Root]; end

#sizeObject



13
# File 'lib/pdfrb/model/type/xref_stream.rb', line 13

def size; self[:Size]; end

#subsection_indexObject



40
41
42
43
44
45
46
47
# File 'lib/pdfrb/model/type/xref_stream.rb', line 40

def subsection_index
  return [[0, size || 0]] unless index

  arr = index.is_a?(Pdfrb::Model::PdfArray) ? index.to_a : index
  return [[0, size || 0]] unless arr.is_a?(Array)

  arr.each_slice(2).to_a
end

#typeObject



12
# File 'lib/pdfrb/model/type/xref_stream.rb', line 12

def type; self[:Type]; end

#wObject



19
# File 'lib/pdfrb/model/type/xref_stream.rb', line 19

def w; self[:W]; end