Sha256: 0257374b4a46bd3e39b0982b20bbdefbabad4f17d661c8d8423c3e28fbf945c9
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true require_relative 'format10' require 'stringio' module TTFunk class Table class Post # Version 2.0 is used for fonts that use glyph names that are not in the # set of Macintosh glyph names. A given font may map some of its glyphs to # the standard Macintosh glyph names, and some to its own custom names. # A version 2.0 `post` table can be used in fonts with TrueType or CFF # version 2 outlines. module Format20 include Format10 # Get glyph name for character code. # # @param code [Integer] # @return [String] def glyph_for(code) index = @glyph_name_index[code] return '.notdef' unless index if index <= 257 POSTSCRIPT_GLYPHS[index] else @names[index - 258] || '.notdef' end end private def parse_format! number_of_glyphs = read(2, 'n').first @glyph_name_index = read(number_of_glyphs * 2, 'n*') @names = [] strings = StringIO.new(io.read(offset + length - io.pos)) until strings.eof? length = strings.read(1).unpack1('C') @names << strings.read(length) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ttfunk-1.8.0 | lib/ttfunk/table/post/format20.rb |