Webseiten-Werkzeuge

Benutzer-Werkzeuge


Unicode

Der convert4print ZPL-Emulator verfügt standardmässig auch über eine Unterstützung zur Nutzung von Unicode in multi­nationalen Anwendungen unter Verwendung der Kodierung UTF-8 (ZPL-Kommando '^CI28'). 1)

Wie beim original Zebra-Drucker benötigt der Emulator dafür besondere Schriften mit erweitertem Zeichen­umfang. Bei Zebra wird dafür eine ladbare TrueType-Schrift 'Swiss 721' zur Verfügung gestellt. Aus Lizenzgründen kann der Emulator diese Schrift natürlich nicht mitführen.

Stattdessen bietet er in seiner Schriftenbibliothek die beiden freien Schriften 'DejaVu Serif' und 'DejaVu Sans' als Ersatz an. 2) 3) Die erstgenannte Schrift entspricht als Schrift mit Serifen in ihrem Schriftbild in etwa der 'Swiss 721'. Die alternative 'DejaVu Sans' ist dazu das serifenlose Pendant, das in der Regel bei kleineren Schriftgrössen deutlich besser lesbar ist.

Welche Schrift konkret zum Einsatz kommt, wird im Anpassungsbereich in der Ressource 'RF' festgelegt. In der Ressource ist eine Zuordnung von Schriftnamen zu den Typeface IDs der internen Schriftenbibliothek definiert.

Weil im Zweifelsfall nicht klar ist, unter welchem Namen im Etikettendesign die Schriften erwartet werden, gibt es hier die Möglichkeit, die Namen anzupassen. Es ist dabei egal, ob die Schrift im Etikett mit der Erweiterung .FNT' oder '.TTF' genutzt wird - es wird nur nach dem Namen gesucht.

Diese Schriftnamen werden im Kommando '^CW' und '^A@' verwendet.

( FR                                             /* Download Font Replacement */
 
    ( "TT0003M_", 8194 ),                                     /* DejaVu Serif */
    ( "TT0004M_", 8193 ),                                      /* DejaVu Sans */
    ( "TT000SC_", 8300 )                      /* Noto Sans Simplified Chinese */
),



Eine Besonderheit innerhalb der Ressource bildet der letzte Eintrag für die Schrift 'Noto Sans'. Hier handelt es sich um eine serifenlose Schrift, die auch chinesische und japanische Schriftzeichen anbietet. 4) Da hier die lateinischen Alphabete nicht voll­ständig enthalten sind, sollte die Schrift wirklich nur zur Ausgabe von Texten in Chinesisch oder Japanisch genutzt werden. Es wird der Standard 通用规范汉字表 (Tōngyòng Guīfàn Hànzì Biǎo) unterstützt.

Wird mit Unicode gearbeitet, muss zur Vermeidung von Kodierungsproblemen der Bitmap-Schriften auf einzelnen PCL-Druckern in der Ressource 'FS' eine der Schriften aus der Schriftenbibliothek zum Einsatz kommen. Die Bitmap-Schriften unterstützen dann ebenfalls das ZPL-Kommando '^CI28'!

Das sollte dann also in etwa so aussehen:

#define MONO 8205    /*  8205 - Fira Mono (download)         */


Ein Unterschied der drei Schriften DejaVu Sans, DejaVu Serif und Noto Sans zu den restlichen Schriften der Bibliothek ist, dass ihre zugehörigen Fettschriften eine grössere Laufweite haben. Das ist beim Etikettendesign entsprechend zu berücksichtigen. Insbesondere sollte durch Verwendung des Kommandos '~SD' (Set Darkness) sichergestellt werden, dass eventuelle spätere Modifikationen an den Grundeinstellungen das Design nicht zerstören.


Ein Unicode-Beispiel mit Bitmap-Schriften:

Unicode1.zpl
^XA
^CFF,40,10
^CI0
^FO10,150^AFN,15,10^FDUNICODE using CI28 and UTF-8 encoding^FS
^FO10,260^FDRoman:     ABCDEFGHIJKLMNOPQRSTUVWXYZ^FS
^CI28
^FO10,330^FDLatin:     ĀāĂ㥹ĆćČčĎďđĒēĖėĘęĚĞğĢģŚśŞŞŠšŢţ^FS
^FO10,400^FDCyrillic:  ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМН^FS
^FO10,470^FDEastern:   ŠŚŤŽŹŁĄŞŻĽľŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎ^FS
^FO10,540^FDGreek:     ΆΈΉΊΌΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫ^FS
^FO10,610^FDTurkish:   ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎĞÑÒÓÔÕÖ×ØÙÚÛÜİŞ^FS
^PQ1
^XZ


Hinweis:

Die Bitmap-Schriften müssen bei Nutzung des ZPL-Kommandos '^CI28' mit einer der Schriften DejaVu Mono, Roboto Mono oder Fira Mono simuliert werden!

(Das funktioniert bei manchen Druckern auch mit der 'Letter Gothic' oder 'Courier', aber nur in den seltenen Fällen, in denen druckerintern diese Schriften im Format 'Unbound Unicode' zur Verfügung stehen und auch so verwaltet werden.)



Beispiel mit skalierbaren, geladenen Schriften:

Unicode2.zpl
^XA
^CI28
^LT200
^CFF
^CWH,B:TT000SC_.FNT
^CWJ,TT0004M_.TTF
 
^FX This is the section for asian languages.^FS
 
^FO20,50^FDChinesisch:^FS
^AHN,40,40^FO20,100^FDTotal net value / 总计不含税金额^FS
^A@N,40,40,TT000SC_^FO20,150^FDDelivery date / 交货日期: 05.05.2019^FS
 
^FO20,550^FDJapanisch:^FS
^A@N,50,50,TT000SC_^FO20,600^FD小打も積もれば大木を倒す^FS
 
^FX This is the section for some other languages.^FS
 
^FO20,250^FDGriechisch:^FS
^A@N,30,30,TT0003M_
^FO20,300^FDΑκάλεστος συμπέθερος δεν βρίσκει που να κάτσει.^FS
 
^FO20,400^FDPolnisch:^FS
^AJN,30,30^FO20,450^FDW niżach mógł zjeść truflę koń bądź psy.^FS
 
^FO20,700^FDKyrillisch:^FS
^AJN,30,27^FO20,750^FDСъешь ещё этих мягких французских булок, да выпей чаю^FS
 
^XZ


Hinweis:

Im Beispiel ist zu sehen, dass die Referenz auf die Schrift wahlweise mit der Endung '.TTF' oder '.FNT' erfolgen darf.

Standardmässig stehen alle Schriften auf dem Laufwerk 'B:' zur Verfügung. Falls das Etikett ein anderes Laufwerk adressiert, wird stattdessen immer Laufwerk 'B:' verwendet.



1)
Die beiden auf original Zebra-Druckern noch verfügbaren Kodierungen UTF-16BE ('^CI29') und UTF-16LE ('^CI30') werden nicht unterstützt, weil sie in der Praxis so gut wie nie benutzt werden. UTF-8 ist der Standard.

2)
Der Zeichenumfang umfasst neben nahezu allen lateinischen Alphabeten auch Kyrillisch und Armenisch. Details zum Zeichenumfang dieser und der anderen Schriften finden sich im print2forms Wiki.

3)
Die Schriften enthalten teilweise auch arabische Zeichen. Da aber die kontextabhängigen Satzregeln im Konverter nicht implementiert sind, lassen sich diese Schriftzeichen nur nutzen, wenn exakt die jeweilige Zeichen­variante adressiert wird. Die hebräischen Zeichen lassen sich nicht nutzen, weil im Konverter die andere Schreib­richtung nicht implementiert ist.

4)
In Wirklichkeit ist dies ein Satz aus vier Schriften, weil die Praxis gezeigt hat, dass viele PCL-Drucker grosse Probleme bekommen, sobald eine Schrift einmal mehr als 10.000 Zeichen enthält. Abgesehen davon enthält 'Noto Sans' auch Zeichen aus der Unicode 'Supplementary Ideographic Plane' (Codes 00020000-0002A6DF), was von PCL prinzipiell nicht unterstützt wird. Deshalb wurde auch diese Plane in eine eigene Schrift ausgelagert - die be­troffenen UTF-8 Codes werden umkodiert. Im Einzelfall muss vor der Nutzung immer getestet werden, ob ein konkreter PCL-Drucker bei dieser komplexen Schrift überhaupt mitspielt.

convert4print/zpl/unicode.txt · Zuletzt geändert: 2020-03-13 14:23 (Externe Bearbeitung)