Class: Pdfrb::Filter::ASCIIHexDecode

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/pdfrb/filter/ascii_hex_decode.rb

Overview

ASCIIHexDecode (s7.4.2). Hex string -> bytes. EOD marker >.

Class Method Summary collapse

Class Method Details

.decoder(bytes, _parms, _document) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/pdfrb/filter/ascii_hex_decode.rb', line 17

def decoder(bytes, _parms, _document)
  nibbles = +""
  bytes.each_byte do |b|
    ch = b.chr
    break if ch == ">"

    nibbles << ch if HEX.key?(ch)
  end
  nibbles << "0" if nibbles.length.odd?

  [nibbles].pack("H*").force_encoding(Encoding::BINARY)
end

.encoder(bytes, _parms, _document) ⇒ Object



30
31
32
33
# File 'lib/pdfrb/filter/ascii_hex_decode.rb', line 30

def encoder(bytes, _parms, _document)
  hex = bytes.unpack1("H*")
  "#{hex}>".force_encoding(Encoding::BINARY)
end