Class: Idml::Render::FontReferenceResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/idml/render/font_reference_resolver.rb

Overview

Resolves IDML font references (family names, font Self IDs, or CharacterStyleRange#applied_font values) to PostScriptNames. Built from the document's Fonts.xml (FontFamily → Font entries). Used by TextFrameRenderer to select per-run fonts.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table) ⇒ FontReferenceResolver

Returns a new instance of FontReferenceResolver.



38
39
40
# File 'lib/idml/render/font_reference_resolver.rb', line 38

def initialize(table)
  @table = table
end

Class Method Details

.build(package) ⇒ Object



10
11
12
# File 'lib/idml/render/font_reference_resolver.rb', line 10

def self.build(package)
  new(build_table(package))
end

.build_table(package) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/idml/render/font_reference_resolver.rb', line 14

def self.build_table(package)
  return {} unless package&.fonts

  table = {}
  package.fonts.font_family.each do |family|
    register_family(table, family)
  end
  table
end

Instance Method Details

#resolve(reference) ⇒ Object

Resolve a font reference (family name, font name, or Self ID). Returns the PostScriptName or nil if not found.



44
45
46
47
48
# File 'lib/idml/render/font_reference_resolver.rb', line 44

def resolve(reference)
  return nil unless reference

  @table[reference]
end