Sha256: a320b3c88d328a3bd0535cd2d8c27739facc28c887b0412a0918477a1707c53b
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true module TTFunk # Encodes a CFF-based OpenType font subset to its binary representation. class OTFEncoder < TTFEncoder # Optimal table order according to OpenType specification. OPTIMAL_TABLE_ORDER = ['head', 'hhea', 'maxp', 'OS/2', 'name', 'cmap', 'post', 'CFF '].freeze private # CFF fonts don't maintain a glyf table, all glyph information is stored # in the charstrings index. Return an empty hash here to indicate a glyf # table should not be encoded. def glyf_table @glyf_table ||= {} end # Since CFF fonts don't maintain a glyf table, they also don't maintain # a loca table. Return an empty hash here to indicate a loca table # shouldn't be encoded. def loca_table @loca_table ||= {} end def base_table @base_table ||= TTFunk::Table::Simple.new(original, 'BASE').raw end def cff_table @cff_table ||= original.cff.encode(subset) end def vorg_table @vorg_table ||= TTFunk::Table::Vorg.encode(original.vertical_origins) end def tables @tables ||= super.merge( 'BASE' => base_table, 'VORG' => vorg_table, 'CFF ' => cff_table, ).compact end def optimal_table_order # DSIG is always last OPTIMAL_TABLE_ORDER + (tables.keys - ['DSIG'] - OPTIMAL_TABLE_ORDER) + ['DSIG'] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ttfunk-1.8.0 | lib/ttfunk/otf_encoder.rb |