DESCRIPTION
Looks 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 VARIABLES
The instance variables listed here are not preceded by a space due to their emulating structural information in the font.- Num
- Number of subtables in this table
- Tables
- An array of subtables ([0..Num-1])
Each subtables also has its own instance variables which are, again, not preceded by a space.
- Platform
- The platform number for this subtable
- Encoding
- The encoding number for this subtable
- Format
- Gives the stored format of this subtable
- Ver
- Gives the version (or language) information for this subtable
- val
- This points to a Font::TTF::Segarr which contains the content of the particular subtable.
METHODS
$t->read
Reads 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_ms
Finds 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.BUGS
- No support for format 2 tables (MBCS)
AUTHOR
Martin Hosken <http://scripts.sil.org/FontUtils>.LICENSING
Copyright (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.