1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
module TTFunk
class Table
class Cmap < Table
attr_reader :version
attr_reader :tables
def self.encode(charmap, encoding)
result = Cmap::Subtable.encode(charmap, encoding)
# pack 'version' and 'table-count'
result[:table] = [0, 1, result.delete(:subtable)].pack("nnA*")
return result
end
def unicode
@unicode ||= @tables.select { |table| table.unicode? }
end
private
def parse!
@version, table_count = read(4, "nn")
@tables = []
table_count.times do
@tables << Cmap::Subtable.new(file, offset)
end
end
end
end
end
require 'ttfunk/table/cmap/subtable'
|