DESCRIPTIONLots of useful functions to save my fingers, especially for trivial tables
FUNCTIONSThe following functions are exported
($val, $pos) = TTF_Init_Fields ($str, $pos)Given a field description from the "DATA" section, creates an absolute entry in the fields associative array for the class
TTF_Read_Fields($obj, $dat, $fields)Given a block of data large enough to account for all the fields in a table, processes the data block to convert to the values in the objects instance variables by name based on the list in the "DATA" block which has been run through "TTF_Init_Fields"
TTF_Unpack($fmt, $dat)A TrueType types equivalent of Perls "unpack" function. Thus $fmt consists of type followed by an optional number of elements to read including *. The type may be one of:
c BYTE C CHAR f FIXED F F2DOT14 l LONG L ULONG s SHORT S USHORT v Version number (FIXED)
Note that "FUNIT", "FWORD" and "UFWORD" are not data types but units.
Returns array of scalar (first element) depending on context
$dat = TTF_Out_Fields($obj, $fields, $len)Given the fields table from "TTF_Init_Fields" writes out the instance variables from the object to the filehandle in TTF binary form.
$dat = TTF_Pack($fmt, @data)The TrueType equivalent to Perl's "pack" function. See details of "TTF_Unpack" for how to work the $fmt string.
($num, $range, $select, $shift) = TTF_bininfo($num)Calculates binary search information from a number of elements
TTF_word_utf8($str)Returns the UTF8 form of the 16 bit string, assumed to be in big endian order, including surrogate handling
TTF_utf8_word($str)Returns the 16-bit form in big endian order of the UTF 8 string, including surrogate handling to Unicode.
XML_hexdump($context, $dat)Dumps out the given data as a sequence of <data> blocks each 16 bytes wide
XML_outhintsConverts a binary string of hinting code into a textual representation
make_circle($f, $cmap, [$dia, $sb, $opts])Adds a dotted circle to a font. This function is very configurable. The parameters passed in are:
- Font to work with. This is required.
- A cmap table (not the 'val' sub-element of a cmap) to add the glyph too. Optional.
- Optional diameter for the main circle. Defaults to 80% em
- Side bearing. The left and right side-bearings are always the same. This value defaults to 10% em.
There are various options to control all sorts of interesting aspects of the circle
- Number of dots in the circle
- Number of curve points to use to create each dot
- Unicode reference to store this glyph under in the cmap. Defaults to 0x25CC
- Postscript name to give the glyph. Defaults to uni25CC.
- Radius of each dot.
BUGSNo known bugs
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.