Module: HexaPDF::Font::TrueType::Table::Post::Format2
- Defined in:
- lib/hexapdf/font/true_type/table/post.rb
Overview
‘post’ table format 2
Class Method Summary collapse
-
.mapper(glyph_name_index, names) ⇒ Object
:nodoc:.
-
.parse(io, length) ⇒ Object
:call-seq: Format2.parse(io, length) -> glyph_names.
Class Method Details
.mapper(glyph_name_index, names) ⇒ Object
:nodoc:
178 179 180 181 182 183 184 185 186 187 188 189 |
# File 'lib/hexapdf/font/true_type/table/post.rb', line 178 def self.mapper(glyph_name_index, names) #:nodoc: lambda do |glyph_id| name_index = glyph_name_index[glyph_id] if !name_index nil elsif name_index <= 257 Format1::GLYPH_NAMES[name_index] else names[name_index - 258] end end end |
.parse(io, length) ⇒ Object
:call-seq:
Format2.parse(io, length) -> glyph_names
Parses the format 2 post subtable from the given IO at the current position and returns the contained glyph name map.
169 170 171 172 173 174 175 176 |
# File 'lib/hexapdf/font/true_type/table/post.rb', line 169 def self.parse(io, length) end_pos = io.pos + length num_glyphs = io.read(2).unpack1('n') glyph_name_index = io.read(2 * num_glyphs).unpack('n*') names = [] names << io.read(io.getbyte).force_encoding(::Encoding::UTF_8) while io.pos < end_pos mapper(glyph_name_index, names) end |