Class: PDF::Reader::Filter::AsciiHex
- Inherits:
-
Object
- Object
- PDF::Reader::Filter::AsciiHex
- Defined in:
- lib/pdf/reader/filter/ascii_hex.rb
Overview
implementation of the AsciiHex stream filter
Instance Method Summary collapse
-
#filter(data) ⇒ Object
Decode the specified data using the AsciiHex algorithm.
-
#initialize(options = {}) ⇒ AsciiHex
constructor
A new instance of AsciiHex.
Constructor Details
#initialize(options = {}) ⇒ AsciiHex
Returns a new instance of AsciiHex.
7 8 9 |
# File 'lib/pdf/reader/filter/ascii_hex.rb', line 7 def initialize( = {}) @options = end |
Instance Method Details
#filter(data) ⇒ Object
Decode the specified data using the AsciiHex algorithm.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pdf/reader/filter/ascii_hex.rb', line 14 def filter(data) data.chop! if data[-1,1] == ">" data = data[1,data.size] if data[0,1] == "<" data.gsub!(/[^A-Fa-f0-9]/,"") data << "0" if data.size % 2 == 1 data.scan(/.{2}/).map { |s| s.hex.chr }.join("") rescue Exception => e # Oops, there was a problem decoding the stream raise MalformedPDFError, "Error occured while decoding an ASCIIHex stream (#{e.class.to_s}: #{e.to_s})" end |