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