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.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout