Es gibt Anwendungsfälle, in denen im ZPL-Drucker ein vorbedrucktes Etikett zum Einsatz kommt. Das können zum Beispiel Logos sein, oder farbig hinterlegte Flächen.
Mit heutigen Tinten- und Laserdruckern kann man diese Vordrucke leicht mit eindrucken, um so immer Blanko-Etiketten oder Blanko-Papier nutzen zu können. Das ist in der Regel auch wirtschaftlicher, als die Nutzung vorbedruckter Etiketten oder Papiere - zumindest bei kleineren Druckmengen.
In der Ressource mit dem Namen 'SM' (Source Mapping) werden die Einzugschächte festgelegt. Dort gibt es als dritten Parameter Verweise auf eine Ressource mit dem Namen 'MM' (Medium Modifications). Darüber lässt sich ein Vordruck ansteuern.
( SM /* media Source Mapping */ /* +-- drawer id ! +-- paper format as in PF resource ! ! (0 means invalid setting) ! ! ! ! +-- modification as in MM resource ! ! ! +-- drawer selection string ! ! ! ! +-- drawer eject string ! ! ! ! ! */ ( 1, $4134, 0, "$1B&l1H", "$0C" ), /* drawer 1 */ ( 2, $4134, 1, "$1B&l4H", "$0C" ), /* drawer 2 */ ( 3, $4134, 0, "$1B&l5H", "$0C" ), /* drawer 3 */ ( 4, $4134, 0, "$1B&l20H", "$0C" ), /* drawer 4 */ ( 5, $4134, 0, "$1B&l21H", "$0C" ), /* drawer 5 */ ( 6, $0000, 0, "", "" ), /* reserve drawer */ ( 7, $0000, 0, "", "" ), /* reserve drawer */ ( 8, $0000, 0, "", "" ), /* reserve drawer */ ( 9, $0000, 0, "", "" ), /* reserve drawer */ ( 99, $4134, 0, "$1B&l2H", "$0C" ) /* manual feed */ ),
Das konkrete Aussehen eines Vordrucks wird durch eine Folge von PCL- oder HP/GL-Sequenzen bestimmt, die in der Ressource mit dem Namen 'MM' (Medium Modifications) angegeben werden. In dieser Ressource lassen sich im Prinzip beliebig viele Gruppen mit Vordrucken anlegen.
Ein Vordruck wird - wie der Name auch suggeriert - vor dem Druck des eigentlichen Etiketts ausgegeben. Es ist natürlich klar, dass ein Vordruck keine Sequenzen enthalten darf, die den Auswurf eines Papiers erzeugen. 1) 2)
In dem Beispiel hier werden zwei Vordrucke definiert. Der erste druckt einen Rahmen aus gestrichelten Linien für ein Etikett von 4×6 Zoll - quasi als Ausschneidehilfe. Der zweite Vordruck färbt den Hintergrund der linken Hälfte eines Etiketts von 4×6 Zoll in einem blassen Gelbton. 3)
( MM /* Medium Modifications */ ( 1, /* modification id */ /* Draw broken border line for a standard 4 x 6 inch label */ "$1B&l+0u+0Z" /* setup logical page position */ "$1B&l6d1E" "$1B*pxY" /* setup graphic area position */ "$1B*c2927x4390Y" /* graphics block 4" x 6" */ "$1B*c0T" /* set picture frame anchor point */ "$1B%1B" /* enter HP/GL mode */ "IN;IR0,100,0,100;" /* initialize */ "SC0,1.69333,0,-1.69333,2;" /* scale to 1/600" */ "PU0,0;" /* move to upper left */ "WU0;PW0.05;SP1;LT2,2,1;" /* define line */ "ER2439,3658;" /* border 4" x 6" (both * 1.016) */ "$1B%0A" /* leave HP/GL mode */ ), ( 2, /* modification id */ /* Coloured background for left half of a standard 4 x 6 inch label */ "$1B&l+0u+0Z" /* setup logical page position */ "$1B&l6d1E" "$1B*pxY" /* setup graphic block position */ "$1B*v6W$00$03$08$08$08$08" /* prepare rgb palette */ "$1B&p1I" "$1B*v255a255b150c3I" /* define a light yellow */ "$1B*v3S" /* select as foreground colour */ "$1B*c609a1829b0P" /* draw box 2" x 6" (both * 1.016) */ "$1B*r0U" /* back to black/white palette */ "$1B*v0S" /* select black as foreground colour */ ) ),
Bei Bedarf können wir gerne bei der Definition von Vordrucken behilflich sein.