Im convert4print ZPL-Emulator ist die Zuordnung von Schriftnamen zu Schriften Bestandteil des Anpassungsbereichs, und kann so bei Bedarf modifiziert werden.
Eine Modifikation ist hin und wieder notwendig, weil sich die im Markt befindlichen PCL-Drucker bezüglich ihrer Schriftausstattung und deren Handhabung doch unterscheiden. Der ZPL-Emulator wurde deshalb so angelegt, dass er einerseits mit druckerresidenten Schrften schon sehr gute Druckergebnisse erzielen kann, andererseits wurde er aber auch mit einer Bibliothek von ladbaren Schriften ausgestattet, die ein Druckbild noch näher am Original ermöglicht.
Da im ZPL Schriften unabhängig voneinander in Höhe und Breite skaliert werden können, genau das aber nicht in PCL unterstützt wird, muss der ZPL-Emulator auf die Nutzung von HP-GL/2 (HP Graphic Language, Vektor Graphik) ausweichen. Bei der genauen Umsetzung von HP-GL/2 unterscheiden sich die Druckerhersteller, sodass leider nicht jede Schrift auf jedem Drucker einsetzbar ist.
Abweichungen im Schriftbild sind aber nicht notwendigerweise negativ zu bewerten. Es gibt viele Etikettendesigns, in denen eine abweichende Schrift ein besser lesbares und optisch gefälligeres Druckbild erzeugt.
Die Ressoure mit dem Namen 'FS' schafft die Verbindung zwischen den Schriftkennungen im ZPL ('0' bis '9', 'A' bis 'Z') zu den Schriften des verwendeten Druckers. Referenzen auf Druckerschriften erfolgen über die sogenannte 'PCL Typeface ID'.
Nummern im Bereich 8000 bis 9000 sind keine druckerresidenten Schriften, sondern welche, die aus einer internen Schriftenbibliothek des Emulators in den Drucker geladen werden können. 1)
Zur leichteren Wartbarkeit sind vor der eigentlichen Ressource zunächst zwei Namen für die Proportionalschrift ('PROP') und für die Monospaced-Schriften ('MONO') definiert. Soll etwa statt mit 'Letter Gothic' mit 'Courier' gedruckt werden, ist hier der Name 'MONO' einfach auf 4099 zu definieren. 2)
Die Dimensionen der einzelnen Schriften sind die aus der ZPL-Dokumentation für Drucker mit 8 Punkten pro Millimeter Auflösung. Ausnahme sind die beiden OCR-Schriften, weil diese speziell für PCL-Drucker entworfen wurden.
Obwohl ZPL zwischen Bitmap- und skalierbaren Schriften unterscheidet, werden vom Emulator ausschliesslich skalierbare Schriften verwendet. Dadurch wird die 'Treppenbildung' beim Vergrössern von ZPL-Bitmap-Schriften vermieden. Auch existiert ein Mechanismus, der die mitunter grossen Zeichenabstände der Bitmap-Schriften des Originaldruckers etwas mildert, sodass der Eindruck einer 'Sperrschrift' weniger stark ist.
#define PROP 8280 /* 8280 - Trumv Condensed (download) */ /* 8193 - DejaVu Sans (download) */ /* 52 - Univers Condensed (printer resident) */ #define MONO 4102 /* 4099 - Courier (printer resident) */ /* 4102 - Letter Gothic (printer resident) */ /* 8195 - DejaVu Mono (download) */ /* 8196 - Roboto Mono (download) */ /* 8205 - Fira Mono (download) */ /* 8207 - OCR-A (download) */ /* 8208 - OCR-B (download) */ ( FS /* Font Substitutions */ /* single font substitutions (all dots given for 203.4 dpi printhead) */ /* +-- zpl font id ! +-- font height (dots) ! ! +-- font width (dots) ! ! ! +-- intercharacter gap (dots) ! ! ! ! +-- baseline (dots) / for proportional computed ! ! ! ! ! +-- font attribute (2 - uppercase, 1 - bitmap) ! ! ! ! ! ! +-- internal font id ! ! ! ! ! ! ! */ /* ZPL scalable fonts */ ( 48, 15, 12, 0, 0, 0, PROP ), /* '0' Triumvirate Bold Condensed */ ( 80, 20, 18, 0, 0, 0, PROP ), /* 'P' */ ( 81, 28, 24, 0, 0, 0, PROP ), /* 'Q' */ ( 82, 35, 31, 0, 0, 0, PROP ), /* 'R' */ ( 83, 40, 35, 0, 0, 0, PROP ), /* 'S' */ ( 84, 48, 42, 0, 0, 0, PROP ), /* 'T' */ ( 85, 59, 53, 0, 0, 0, PROP ), /* 'U' */ ( 86, 80, 71, 0, 0, 0, PROP ), /* 'V' */ /* ZPL bitmap fonts */ ( 65, 9, 5, 1, 7, 1, MONO ), /* 'A' */ ( 66, 11, 7, 2, 11, 1, MONO ), /* 'B' */ ( 67, 18, 10, 2, 14, 1, MONO ), /* 'C' */ ( 68, 18, 10, 2, 14, 3, MONO ), /* 'D' */ ( 69, 26, 18, 2, 23, 1, 8208 ), /* 'E' (OCR-B) to internal OCR-B */ ( 70, 26, 13, 3, 21, 1, MONO ), /* 'F' */ ( 71, 60, 40, 8, 48, 1, MONO ), /* 'G' */ ( 72, 24, 17, 2, 21, 3, 8207 ), /* 'H' (OCR-A) to internal OCR-A */ ( 64, 16, 12, 0, 0, 0, 4099 ) /* font by name */ ),
Abhängig vom vorherrschenden Einsatzzweck des ZPL-Emulators bieten sich drei Basiskonfigurationen an:
MONO | PROP | Bemerkung |
---|---|---|
4102 | 52 | Nutzung der druckerresidenten Schriften 'Letter Gothic' und 'Univers Condensed'. Erzeugt die mit Abstand kleinste Menge ab Druckdaten. Das Druckbild ist ähnlich zum Original. Geht mit allen PCL-Druckern. |
4102 | 8280 | Die Nutzung von 'Letter Gothic' und 'Trumv' ist ein guter Kompromiss für den Einsatz in West- und Ost-Europa (ohne Kyrillisch). Ergibt ein Druckbild, das viel dichter am Original ist. Geht mit allen PCL-Druckern. |
8205 | 8193 | Beim Einsatz von Unicode ist die Kombination 'Fira Mono' und 'DejaVu Sans' die beste Option. Allerdings ist die Menge der erzeugten Druckdaten erheblich. Das Druckbild ist ähnlich zum Original. Drucker muss Unbound-Unicode-Schriften unterstützen. |
In der Ressource mit dem Namen 'GF' sind Skalierungsfaktoren hinterlegt, die beim Zeichnen von Texten Anwendung finden. Damit lassen sich die Laufweiten der einzelnen Buchstaben in weiten Grenzen anpassen. 3)
Die Zuordnung der Skalierungsfaktoren erfolgt über die 'PCL Typeface ID'. Die Kennung '$FFFF' gilt für alle nicht aufgeführten Schriften. Grössere Werte machen die Schrift schmaler bzw. niedriger. Kleinere Werte machen die Schrift breiter bzw. höher.
( GF /* Graphic Font (printer) */ ( 8193, 620, 400 ), /* DejaVu Sans */ ( 8194, 620, 400 ), /* DejaVu Serif */ ( 8195, 284, 300 ), /* DejaVu Mono */ ( 8196, 284, 300 ), /* Roboto Mono */ ( 8205, 284, 260 ), /* Fira Mono */ ( 8207, 338, 300 ), /* OCR-A */ ( 8208, 338, 300 ), /* OCR-B */ ( 8280, 468, 368 ), /* Trumv */ ( 52, 390, 320 ), /* Univers condensed */ ( 4099, 236, 300 ), /* Courier */ ( 4102, 236, 300 ), /* Letter Gothic */ ( $FFFF, 572, 400 ) /* all others */ ),
Im Anpassungsbereich gibt es einen Parameter, der darüber entscheidet, ob die hier konfigurierten Schriften in ihrer normalen oder in ihrer fetten Variante 4) gedruckt werden sollen. Das ist nicht nur im Zusammenhang mit dem Verbrauch von Toner oder Tinte durchaus von Bedeutung, sondern kann insbesondere auch die Lesbarkeit kleinerer Schriftgrössen deutlich verbessern.