PDF::API2::Basic::TTF::Cmap3pm
Character map table
Overview
Looks after the character map. For ease of use, the actual cmap is held in a hash against codepoint. Thus for a given table:
$gid = $font->{'cmap'}{'Tables'}[0]{'val'}{$code};
Note that $code should be a true value (0x1234) rather than a string representation.
Instance variables
The instance variables listed here are not preceeded 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 preceeded 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
|
A hash keyed by the codepoint value (not a string) storing the glyph id |
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)
Finds a Unicode table, giving preference to the MS one, and looks up the given Unicode codepoint in it to find the glyph id.
$t->find_ms
Finds the a Unicode table, giving preference to the Microsoft one, and sets the "mstable" instance variable to it if found. Returns the table it finds.
$t->ms_enc
Returns the encoding of the microsoft table (0 => symbol, etc.). Returns undef if there is no Microsoft cmap.
$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
$t->XML_element($context, $depth, $name, $val)
Outputs the elements of the cmap in XML. We only need to process val here
@map = $t->reverse([$num])
Returns a reverse map of the table of given number or the Unicode cmap. I.e. given a glyph gives the Unicode value for it.
is_unicode($index)
Returns whether the table of a given index is known to be a unicode table (as specified in the specifications)
Releases
3 releases since Debian 3.1 (Sarge); the text changed 2 times.