Class: Pdfrb::Model::Type::FontEncoding

Inherits:
Cos::Dictionary show all
Defined in:
lib/pdfrb/model/type/font_encoding.rb

Overview

Font Encoding dict (s9.6.1). Base encoding + per-glyph differences table for Type 1 fonts.

Instance Attribute Summary

Attributes inherited from Object

#document, #gen, #oid, #value

Instance Method Summary collapse

Methods inherited from Cos::Dictionary

#[], #[]=, arlington_available?, arlington_default, arlington_key_to_symbol, arlington_loaded_for?, arlington_mark_loaded, arlington_object, arlington_one_type_to_ruby, arlington_required?, arlington_types_to_ruby, arlington_version, define_field, define_field_from_arlington, #delete, #each, each_field, #each_raw, #empty?, field, #initialize, #key?, #keys, lookup_type, own_fields, #pdf_type, register_type, type_map, #validate

Methods inherited from Object

#==, define_type, #deref, #indirect?, #initialize, #must_be_indirect?, #pdf_type, pdf_type

Constructor Details

This class inherits a constructor from Pdfrb::Model::Cos::Dictionary

Instance Method Details

#base_encodingObject



9
# File 'lib/pdfrb/model/type/font_encoding.rb', line 9

def base_encoding; self[:BaseEncoding]&.to_sym; end

#differencesObject



10
# File 'lib/pdfrb/model/type/font_encoding.rb', line 10

def differences; self[:Differences]; end

#each_difference(&block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/pdfrb/model/type/font_encoding.rb', line 21

def each_difference(&block)
  return enum_for(:each_difference) unless block

  return unless differences.is_a?(Array)

  current_code = nil
  differences.each do |entry|
    if entry.is_a?(Integer)
      current_code = entry
    else
      yield current_code, entry
      current_code = current_code ? current_code + 1 : nil
    end
  end
end

#glyph_for(char_code) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/pdfrb/model/type/font_encoding.rb', line 37

def glyph_for(char_code)
  result = nil
  each_difference do |code, name|
    result = name if code == char_code
  end
  result
end

#has_differences?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/pdfrb/model/type/font_encoding.rb', line 17

def has_differences?
  !!differences && (!differences.is_a?(Array) || !differences.empty?)
end

#mac_expert?Boolean

Returns:

  • (Boolean)


14
# File 'lib/pdfrb/model/type/font_encoding.rb', line 14

def mac_expert?; base_encoding == :MacExpertEncoding; end

#mac_roman?Boolean

Returns:

  • (Boolean)


13
# File 'lib/pdfrb/model/type/font_encoding.rb', line 13

def mac_roman?; base_encoding == :MacRomanEncoding; end

#standard?Boolean

Returns:

  • (Boolean)


15
# File 'lib/pdfrb/model/type/font_encoding.rb', line 15

def standard?; base_encoding == :StandardEncoding; end

#win_ansi?Boolean

Returns:

  • (Boolean)


12
# File 'lib/pdfrb/model/type/font_encoding.rb', line 12

def win_ansi?; base_encoding == :WinAnsiEncoding; end