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
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.
42 43 44 45 46 |
# File 'lib/pdf/reader/stream.rb', line 42 def initialize(hash, data) @hash = TypeCheck.cast_to_pdf_dict!(hash) @data = data @udata = nil end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
37 38 39 |
# File 'lib/pdf/reader/stream.rb', line 37 def data @data end |
#hash ⇒ Object
Returns the value of attribute hash.
37 38 39 |
# File 'lib/pdf/reader/stream.rb', line 37 def hash @hash end |
Instance Method Details
#unfiltered_data ⇒ Object
apply this streams filters to its data and return the result.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/pdf/reader/stream.rb', line 49 def unfiltered_data return @udata if @udata @udata = data.dup if hash.has_key?(:Filter) = [] if hash.has_key?(:DecodeParms) if hash[:DecodeParms].is_a?(Hash) = [hash[:DecodeParms]] else = hash[:DecodeParms] end end Array(hash[:Filter]).each_with_index do |filter, index| @udata = Filter.with(filter, [index] || {}).filter(@udata) end end @udata end |