class TTFunk::Subset::Windows1252
Public Class Methods
new(original)
click to toggle source
Calls superclass method
TTFunk::Subset::Base::new
# File lib/ttfunk/subset/windows_1252.rb, line 9 def initialize(original) super @subset = Array.new(256) end
Public Instance Methods
covers?(character)
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 22 def covers?(character) Encoding::Windows1252.covers?(character) end
from_unicode(character)
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 31 def from_unicode(character) Encoding::Windows1252::FROM_UNICODE[character] end
includes?(character)
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 26 def includes?(character) code = Encoding::Windows1252::FROM_UNICODE[character] code && @subset[code] end
to_unicode_map()
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 14 def to_unicode_map Encoding::Windows1252::TO_UNICODE end
use(character)
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 18 def use(character) @subset[Encoding::Windows1252::FROM_UNICODE[character]] = character end
Protected Instance Methods
new_cmap_table(_options)
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 37 def new_cmap_table(_options) mapping = {} @subset.each_with_index do |unicode, cp1252| mapping[cp1252] = unicode_cmap[unicode] if cp1252 end # yes, I really mean "mac roman". TTF has no cp1252 encoding, and the # alternative would be to encode it using a format 4 unicode table, # which is overkill. for our purposes, mac-roman suffices. (If we were # building a _real_ font, instead of a PDF-embeddable subset, things # would probably be different.) TTFunk::Table::Cmap.encode(mapping, :mac_roman) end
original_glyph_ids()
click to toggle source
# File lib/ttfunk/subset/windows_1252.rb, line 51 def original_glyph_ids ([0] + @subset.map { |unicode| unicode && unicode_cmap[unicode] }) .compact.uniq.sort end