DESCRIPTIONLooks after the character map. The primary structure used for handling a cmap is the Font::TTF::Segarr which handles the segmented arrays of format 4 tables, and in a simpler form for format 0 tables.
Due to the complexity of working with segmented arrays, most of the handling of such arrays is via methods rather than via instance variables.
One important feature of a format 4 table is that it always contains a segment with a final address of 0xFFFF. If you are creating a table from scratch this is important (although Font::TTF::Segarr can work quite happily without it).
INSTANCE VARIABLESThe instance variables listed here are not preceded by a space due to their emulating structural information in the font.
- Number of subtables in this table
- An array of subtables ([0..Num-1])
Each subtables also has its own instance variables which are, again, not preceded by a space.
- The platform number for this subtable
- The encoding number for this subtable
- Gives the stored format of this subtable
- Gives the version (or language) information for this subtable
- This points to a Font::TTF::Segarr which contains the content of the particular subtable.
$t->readReads the cmap into memory. Format 4 subtables read the whole subtable and fill in the segmented array accordingly.
Format 2 subtables are not read at all.
$t->ms_lookup($uni)Given a Unicode value in the MS table (Platform 3, Encoding 1) locates that table and looks up the appropriate glyph number from it.
$t->find_msFinds the Microsoft Unicode table and sets the "mstable" instance variable to it if found. Returns the table it finds.
$t->out($fh)Writes out a cmap table to a filehandle. If it has not been read, then just copies from input file to output
@map = $t->reverse([$num])Returns a reverse map of the table of given number or the Microsoft cmap. I.e. given a glyph gives the Unicode value for it.
- No support for format 2 tables (MBCS)
AUTHORMartin Hosken <http://scripts.sil.org/FontUtils>.
LICENSINGCopyright (c) 1998-2014, SIL International (http://www.sil.org)
This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE.