Webseiten-Werkzeuge

Benutzer-Werkzeuge


Schriften

Im convert4print ZPL-Emulator ist die Zuordnung von Schriftnamen zu Schriften Bestandteil des Anpassungs­bereichs, 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) aus­weichen. 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 aufge­fü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.

1)
Die eingesetzte Schriftenbibliothek basiert auf der für print2forms entwickelten Bibliothek. Sie nutzt daher ausschliesslich Unicode kodierte Schriften. Dadurch kommt es bei länderspezifischen Zeichen (über hex 7F) zur Zeit noch zu Darstellungs­problemen in der Ablaufverfolgung, weil diese in convert4print noch nicht Unicode UTF-8 unterstützt. Schriftbeispiele können im print2forms-Wiki angesehen werden.

2)
Es ist nicht zwingend, dass alle Monospaced-Schriften auf die gleiche Druckerschrift abgebildet werden müssen.

3)
Dies ist manchmal dann notwendig, wenn die Druckausgabe zur Konvertierung als Bilddatei oder als PDF an einen externen Konverter weitergereicht wird. Dass hier unterschiedliche Faktoren zum Einsatz kommen, liegt daran, dass die Schriften nicht alle mit dem gleichen 'Layout' erstellt wurden - das betrifft leider auch verschiedene Druckerher­steller. Die Zeichengrössen innerhalb der Zeichenzelle sind verschieden. Weil ZPL aber die tatsächliche Buchstaben­grösse und nicht die Grösse der Zeichenzelle als Referenz nimmt, sind hier immer einmal wieder Anpassungen notwendig.

4)
Beide Schriftvarianten sind in der Schriftenbibliothek des Emulators vorhanden. Ausnahme: OCR-A und OCR-B.

convert4print/zpl/schrift.txt · Zuletzt geändert: 2020-03-13 11:05 (Externe Bearbeitung)