Class: PDF::Reader::Stream
- Inherits:
-
Object
- Object
- PDF::Reader::Stream
- Defined in:
- lib/pdf/reader/stream.rb
Overview
An internal PDF::Reader class that represents a stream object from a PDF. Stream objects have 2 components, a dictionary that describes the content (size, compression, etc) and a stream of bytes.
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#hash ⇒ Object
Returns the value of attribute hash.
Instance Method Summary collapse
-
#initialize(hash, data) ⇒ Stream
constructor
Creates a new stream with the specified dictionary and data.
-
#unfiltered_data ⇒ Object
apply this streams filters to its data and return the result.
Constructor Details
#initialize(hash, data) ⇒ Stream
Creates a new stream with the specified dictionary and data. The dictionary should be a standard ruby hash, the data should be a standard ruby string.
38 39 40 41 42 |
# File 'lib/pdf/reader/stream.rb', line 38 def initialize (hash, data) @hash = hash @data = data @udata = nil end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
34 35 36 |
# File 'lib/pdf/reader/stream.rb', line 34 def data @data end |
#hash ⇒ Object
Returns the value of attribute hash.
33 34 35 |
# File 'lib/pdf/reader/stream.rb', line 33 def hash @hash end |
Instance Method Details
#unfiltered_data ⇒ Object
apply this streams filters to its data and return the result.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/pdf/reader/stream.rb', line 45 def unfiltered_data return @udata if @udata @udata = data.dup if hash.has_key?(:Filter) = [] if hash.has_key?(:DecodeParms) = Array(hash[:DecodeParms]) end Array(hash[:Filter]).each_with_index do |filter, index| @udata = Filter.new(filter, [index]).filter(@udata) end end @udata end |