class TTFunk::Subset::Unicode8Bit
Public Class Methods
new(original)
click to toggle source
Calls superclass method
TTFunk::Subset::Base::new
# File lib/ttfunk/subset/unicode_8bit.rb, line 7 def initialize(original) super @subset = { 0x20 => 0x20 } @unicodes = { 0x20 => 0x20 } @next = 0x21 # apparently, PDF's don't like to use chars between 0-31 end
Public Instance Methods
covers?(character)
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 30 def covers?(character) @unicodes.key?(character) || @next < 256 end
from_unicode(character)
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 38 def from_unicode(character) @unicodes[character] end
includes?(character)
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 34 def includes?(character) @unicodes.key?(character) end
to_unicode_map()
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 18 def to_unicode_map @subset.dup end
unicode?()
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 14 def unicode? true end
use(character)
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 22 def use(character) unless @unicodes.key?(character) @subset[@next] = character @unicodes[character] = @next @next += 1 end end
Protected Instance Methods
new_cmap_table(_options)
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 44 def new_cmap_table(_options) mapping = @subset.each_with_object({}) do |(code, unicode), map| map[code] = unicode_cmap[unicode] map end # since we're mapping a subset of the unicode glyphs into an # arbitrary 256-character space, the actual encoding we're # using is irrelevant. We choose MacRoman because it's a 256-character # encoding that happens to be well-supported in both TTF and # PDF formats. TTFunk::Table::Cmap.encode(mapping, :mac_roman) end
original_glyph_ids()
click to toggle source
# File lib/ttfunk/subset/unicode_8bit.rb, line 58 def original_glyph_ids ([0] + @unicodes.keys.map { |unicode| unicode_cmap[unicode] }).uniq.sort end