Mit den Methoden der Klasse TFF können Geometrien von True Type Fonts gelesen werden. Die Klasse TTF muss mit |LOAD geladen werden. Die Methoden eignen sich insbesonder um Geometrien von True Type Fonts vom Typ Symbol zu lesen.
Die True Type Fonts werden durch die Klasse TTF über folgendes Java-Programm gelesen.
ICS_DIR\system\bin\ttf2itf.jar
Informationen zu diesen Java-Program werden angezeigt mit:
java -jar ttf2itf.jar
Gelesene Fonts werden in der Map TTF.FONTS abgelegt. Die Map weist folgende Struktur auf.
Komponente | Typ | Beschreibung |
TTF.FONTS.<fontname> | map | Pro gelesenen Font fontname ein
Eintrag. |
TTF.FONTS.<fontname>.NAME | string | Name des Fonts. |
TTF.FONTS.<fontname>.STYLE | string | Style des Fonts. |
TTF.FONTS.<fontname>.TYPE | string | Type des Fonts. TEXT oder
SYMBOL . |
TTF.FONTS.<fontname>.SIZE | int | Pointgrösse des Fonts. |
TTF.FONTS.<fontname>.CHARACTERS | map | Map mit Characters des Fonts als ASCII-Code. |
TTF.FONTS.<fontname>.CHARACTERS.<char> | list | Liste der Geometrien des Characters. |
Methode | TTF.READ_FONT [s fontname, s style, i pointsize] [b status] |
Beschreibung | Liest den True Type Font
fontname im Style
style mit der Pointgrüsse
pointsize . Kann der Font gelesen werden,
gibt die Methode TRUE zurück, ansonsten
FALSE . Als style
werden folgende Werte unterstützt:
plain|italic|bold|bold,italic|symbol . Für
Symbol-Fonts sollte symbol verwendet
werden. |
Beispiel |
|
Methode | TTF.READ_FONT2 [s fontname, s style, i pointsize, r offsetx, r offsety] [b status] |
Beschreibung | Wie
TTF.READ_FONT . Zusätzlich kann ein
Offset offsetx offsety definert werden,
um den das Zentrum - der Origin - der Geometrien verschoben
wird. offsetx offsety sind Faktoren
bezogen auf die Fontbox des Fonts. |
Beispiel |
|
Methode | TTF.READ_CHARACTER_GEOMETRY [s fontname, s style, i|s character] [li geometries] |
Beschreibung | Diese Methode liest die
Geometry eines Characters character eines
Fonts. Der Character kann als String oder als Integer des
ASCII-Codes übergeben werden. Die Methode bring eine Liste
der Geometrien des Characters zurück oder
NULL , falls der Character nicht gelsen
werden kann. Der Font muss vorgängig einmal mit
TTF.READ_FONT oder
TTF.READ_FONT2 gelesen werden. |
Beispiel |
|
Methode | TTF.WRITE_FONT_OBJECT_FILE [s fontname, s style, s file] [b status] |
Beschreibung | Schreibt einen mit
TTF.READ_FONT oder
TTF_READ_FONT2 gelesenen Font als Object
in ein File. |
Beispiel |
|
Methode | TTF.READ_FONT_OBJECT_FILE [s file] [s style, s fontname, b status] |
Beschreibung | Liest einen mit
TTF.WRITE_FONT_OBJECT_FILE geschriebenen
Font. Wenn der Status TRUE ist, wird
zusätzlich der Fontname und der Style zurückgegeben.
TTF.READ_FONT_OBJECT_FILE ist schneller
als TTF.READ_FONT oder
TTF.READ_FONT2 . Zusammen mit
TTF.WRITE_FONT_OBJECT_FILE eignet sich
die Methode um einmal gelesene Fonts in einem File
abzuspeichern und wiederholt schneller zu lesen. |
Beispiel |
|
Methode | TTF.DISPLAY_FONT [] [] |
Beschreibung | Zeigt alle gelesenen Fonts an. |
Beispiel |
|
|LOAD TTF ! read font !---------- 'Wingdings_Standard' 'symbol' 10 -0.5 -0.5 TTF.READ_FONT2 => VAR.STATUS IF VAR.STATUS NOT THEN ERROR 'could not read font' HALT END_IF ! display font !------------- ! display fonts DISPLAY TTF.FONTS ! display font Wingdings_Standard DISPLAY TTF.FONTS.Wingdings_Standard ! display font Wingdings_Standard characters DISPLAY TTF.FONTS.Wingdings_Standard.CHARACTERS ! display font Wingdings_Standard character geometries &TTF.FONTS.Wingdings_Standard.CHARACTERS MAPRESET WHILE &TTF.FONTS.Wingdings_Standard.CHARACTERS MAPSCAN DO => VAR.CHAR => VAR.LIST DISPLAY 'Geometry if character:,VAR.CHAR &VAR.LIST RESET_READ WHILE &VAR.LIST READ_NEXT DO => VAR.GEOM VAR.GEOM DISP END_WHILE END_WHILE ! reading character A by character !--------------------------------- 'Wingdings_Standard' 'symbol' 'A' TTF.READ_CHARACTER_GEOMETRY => VAR.LIST IF &VAR.LIST IS_NOT_NULL THEN VAR.LIST DISP END_IF ! reading character A by character ASCII code 65 !----------------------------------------------- 'Wingdings_Standard' 'symbol' 65 TTF.READ_CHARACTER_GEOMETRY => VAR.LIST IF &VAR.LIST IS_NOT_NULL THEN VAR.LIST DISP END_IF