Method: PDF::Reader::Encoding#initialize

Defined in:
lib/pdf/reader/encoding.rb

#initialize(enc) ⇒ Encoding

Returns a new instance of Encoding.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/pdf/reader/encoding.rb', line 35

def initialize(enc)
  if enc.kind_of?(Hash)
    self.differences=enc[:Differences] if enc[:Differences]
    enc = enc[:Encoding] || enc[:BaseEncoding]
  elsif enc != nil
    enc = enc.to_sym
  end

  case enc
    when nil                   then 
      load_mapping File.dirname(__FILE__) + "/encodings/standard.txt"
      @unpack = "C*"
    when "Identity-H".to_sym   then 
      @unpack = "n*"
      @to_unicode_required = true
    when :MacRomanEncoding     then 
      load_mapping File.dirname(__FILE__) + "/encodings/mac_roman.txt"
      @unpack = "C*"
    when :MacExpertEncoding    then 
      load_mapping File.dirname(__FILE__) + "/encodings/mac_expert.txt"
      @unpack = "C*"
    when :PDFDocEncoding       then 
      load_mapping File.dirname(__FILE__) + "/encodings/pdf_doc.txt"
      @unpack = "C*"
    when :StandardEncoding     then 
      load_mapping File.dirname(__FILE__) + "/encodings/standard.txt"
      @unpack = "C*"
    when :SymbolEncoding       then 
      load_mapping File.dirname(__FILE__) + "/encodings/symbol.txt"
      @unpack = "C*"
    when :UTF16Encoding        then 
      @unpack = "n*"
    when :WinAnsiEncoding      then 
      load_mapping File.dirname(__FILE__) + "/encodings/win_ansi.txt"
      @unpack = "C*"
    when :ZapfDingbatsEncoding then 
      load_mapping File.dirname(__FILE__) + "/encodings/zapf_dingbats.txt"
      @unpack = "C*"
    else raise UnsupportedFeatureError, "#{enc} is not currently a supported encoding"
  end
end