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 35
|
require 'ttfunk/table/post/format10'
require 'stringio'
module TTFunk
class Table
class Post
module Format20
include Format10
def glyph_for(code)
index = @glyph_name_index[code]
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))
while !strings.eof?
length = strings.read(1).unpack("C").first
@names << strings.read(length)
end
end
end
end
end
end
|