font::ttf::name(3)
NAME
Font::TTF::Name - String table for a TTF font
DESCRIPTION
- Strings are held by number, platform, encoding and lan
guage. Strings are accessed as: - $f->{'name'}{'strings'}[$number][$platform_id][$encod
- ing_id]{$language_id}
- Notice that the language is held in an associative array
due to its sparse nature on some platforms such as
Microsoft ($pid = 3). Notice also that the array order is
different from the stored array order (platform, encoding,
language, number) to allow for easy manipulation of
strings by number (which is what I guess most people will
want to do). - By default, $Font::TTF::Name::utf8 is set to 1, and
strings will be stored as UTF8 wherever possible. The
method "is_utf8" can be used to find out if a string in a
particular platform and encoding will be returned as UTF8.
Unicode strings are always converted if utf8 is requested.
Otherwise, strings are stored according to platform:
***WARNING NON-UTF8 is deprecated and utf8 strings has- become the default***
- You now have to set <$Font::TTF::Name::utf8> to 0 to get
the old behaviour. - Apple Unicode (platform id = 0)
- Data is stored as network ordered UCS2. There is no
encoding id for this platform but there are language
ids as per Mac language ids. - Mac (platform id = 1)
- Data is stored as 8-bit binary data, leaving the
interpretation to the user according to encoding id. - Unicode (platform id = 2)
- Currently stored as 16-bit network ordered UCS2. Upon
release of Perl 5.005 this will change to utf8 assum
ing current UCS2 semantics for all encoding ids. - Windows (platform id = 3)
- As per Unicode, the data is currently stored as 16-bit
network ordered UCS2. Upon release of Perl 5.005 this
will change to utf8 assuming current UCS2 semantics
for all encoding ids.
INSTANCE VARIABLES
- strings
- An array of arrays, etc.
METHODS
$t->read
Reads all the names into memory
$t->out($fh)
Writes out all the strings
$t->XML_element($context, $depth, $key, $value)
Outputs the string element in nice XML (which is all the
table really!)
$t->XML_end($context, $tag, %attrs)
Store strings in the right place
is_utf8($pid, $eid)
Returns whether a string of a given platform and encoding
is going to be in UTF8
find_name($nid)
Hunts down a name in all the standard places and returns
the string and for an array context the pid, eid & lid as
well
BUGS
- · Unicode type strings will be stored in utf8 for all
- known platforms, once Perl 5.6 has been released and I
can find all the mapping tables, etc.
AUTHOR
- Martin Hosken Martin_Hosken@sil.org. See Font::TTF::Font
for copyright and licensing.