GENF

Das Kommando GENF war eine Besonderheit der Kyocera-Drucker der ersten Generation. Da keine direkte Unterstützung für skalierbare Schriften vorhanden war, implementierte die Fa. Kyocera ein Kommando, mit dem man aus drei im Drucker abgespeicherten Schriften eigene Schriftschnitte in der erforderlichen Grösse erzeugen konnte. Im Kommando konnte angegeben werden, ob die Schrift (algorithmisch) fett oder kursiv gemacht werden sollte.

Das Kommando GENF erzeugte unter einer bestimmten Schriftnummer diese neue Schrift, die dann mit dem Kommando FONT zur Benutzung ausgewählt werden konnte.

Mit der Einführung richtiger skalierbarer Schriften in verschiedenen Schnitten wurde die Unterstützung des Kommandos GENF aufgegeben.

Es existieren aber immer noch genügend Anwendungen, die das Kommando GENF erzeugen, sodass im Prescribe-Emulator eine Möglichkeit eingebaut wurde, auch mit diesem alten Kommando umzugehen.

Der grundlegende Ansatz hier ist der, mit Hilfe einer Funktion zum Austausch von Zeichenketten im Druckdatenstrom, das Kommando GENF durch ein entsprechendes SFNT Kommando zu ersetzen.

Zu diesem Zweck kann im Anpassungsbereich eine Ressource mit dem Namen IF (Input Filter) angelegt werden. Die Struktur und die Möglichkeiten dieser Ressource sind sehr komplex. In diesem Kontext ist aber nur interessant, dass nach zwei Zeichenkette eine beliebige Menge von Gruppen angegeben werden kann, die eine auszutauschende Zeichenkette und ihre zugehörige Ersatzzeichenkette definieren. Aus bestimmten Gründen ist es notwendig, dass die Ersatzzeichenkette selbst wieder in Klammern eingeschlossen werden muss.

Im Beispiel unten ist der Austausch zweier GENF Kommandos zu sehen.

( IF                                                          /* Input Filter */
 
  /* The following two sequences will be attached at the beginning and the
     end of the incoming data stream. This means they will also pass through
     the emulator.
  */
 
  "",                                                /* initialization string */
  "",                                                   /* termination string */
 
  /* A sequence of string replacements can be located here. */
 
  ( "GENF 201, 'DYNAMIC1', 10,32,126,32,1,0,0,0,0,0;",
       (  "SFNT 'Helvetica', 10, 201, 277, 1, 0;" ) ),
 
  ( "GENF 202, 'DYNAMIC2', 10,32,126,32,1,0,0,0,0,0;",
       (  "SFNT 'Times-Rom', 10, 202, 277, 1, 0;" ) )
),


Hinweise