Class: PDF::Reader::ObjectStream
- Inherits:
-
Object
- Object
- PDF::Reader::ObjectStream
- Defined in:
- lib/pdf/reader/object_stream.rb
Overview
provides a wrapper around a PDF stream object that contains other objects in it. This is done for added compression and is described as an “Object Stream” in the spec.
Instance Method Summary collapse
-
#[](objid) ⇒ Object
: (Integer) -> ( | PDF::Reader::Reference | | PDF::Reader::Token | | Numeric | | String | | Symbol | | Array | | Hash[untyped, untyped] | | nil | ).
-
#initialize(stream) ⇒ ObjectStream
constructor
: (PDF::Reader::Stream) -> void.
-
#size ⇒ Object
: () -> Integer.
Constructor Details
#initialize(stream) ⇒ ObjectStream
: (PDF::Reader::Stream) -> void
12 13 14 15 16 17 |
# File 'lib/pdf/reader/object_stream.rb', line 12 def initialize(stream) @dict = stream.hash #: Hash[Symbol, untyped] @data = stream.unfiltered_data #: String @offsets = nil #: Hash[Integer, Integer] | nil @buffer = nil #: PDF::Reader::Buffer | nil end |
Instance Method Details
#[](objid) ⇒ Object
: (Integer) -> ( | PDF::Reader::Reference | | PDF::Reader::Token | | Numeric | | String | | Symbol | | Array | | Hash[untyped, untyped] | | nil | )
29 30 31 32 33 34 35 36 37 |
# File 'lib/pdf/reader/object_stream.rb', line 29 def [](objid) if offsets[objid].nil? nil else buf = PDF::Reader::Buffer.new(StringIO.new(@data), :seek => offsets[objid]) parser = PDF::Reader::Parser.new(buf) parser.parse_token end end |
#size ⇒ Object
: () -> Integer
40 41 42 |
# File 'lib/pdf/reader/object_stream.rb', line 40 def size TypeCheck.cast_to_int!(@dict[:N]) end |