Webseiten-Werkzeuge

Benutzer-Werkzeuge


Gateway

Der ZPL-Konverter kann auch für die Erzeugung von PDF-Dateien oder Bildern eingesetzt werden, um Etiketten per E-Mail weiterzugeben, zu archivieren oder diese gar in andere Dokumente einzubetten. Dazu dient im convert4print ein zum Konverter passendes sogenanntes Gateway.

Ein Gateway unterscheidet sich vom normalen ZPL-Konverter dadurch, dass es keine Daten an einen Drucker weitergibt, sondern die Druckdaten in einer Datei ablegt. Zusätzlich wird noch eine zweite Datei erzeugt, in der alle Textfragmente innerhalb der Druckdaten gesammelt werden: die Index-Datei.

Sind beide Dateien erzeugt, führt das Gateway eine bei seiner Konfiguration festgelegte Befehlszeile aus. In der Regel ist dies der Start eines Skripts, das in einer beliebigen Programmiersprache formuliert sein kann. Für den Einsatz mit convert4print bieten sind PHP, Perl und PowerShell an.

Dieses Skript bestimmt dann auch die eigentliche Aufgabe des Gateways, indem es die Dateien archiviert, an eine E-Mail anhängt, oder tut, was sonst noch notwendig ist.

Aus Gründen der Vereinfachung ist sichergestellt, dass immer nur ein Skript je Zeiteinheit ausgeführt wird. 1)

Gateways arbeiten in convert4print immer mit einer festen Geschwindigkeit von 1200 Seiten (hier Etiketten) pro Minute. Es gibt keine Geschwindigkeitsklassen wie beim Konverter für Drucker. Das ist natürlich nur ein theoretischer Wert, weil letztlich der Aufruf und die Laufzeit des Skripts den realen Durchsatz bestimmen. 2)

Index-Datei

Aufgabe der Index-Datei ist, einem Skript, dass vom Gateway zur Weiterverarbeitung der Etiketten aufgerufen wird, Informationen über den Inhalt des Etiketts zur Verfügung zu stellen. Mit diesen Informationen kann das Skript Ent­scheidungen über den weiteren Verarbeitungsprozess abhängig vom Etiketteninhalt treffen. Ein simples Beispiel wäre, dass eine erzeugte PDF-Datei einen Namen mit der Lieferscheinnummer aus dem Etikett bekommen soll.

Prinzipiell könnte das auch durch Analyse der abgelegten Druckdaten erfolgen, dies wäre aber extrem schwierig, weil manche Texte nur buchstabenweise ausgegeben werden, und weil eventuell Barcodes ohne Klartextzeile dekodiert werden müssten.

In der Index-Datei wird zu jedem gefundenen Textfragment aus den Druckdaten (Text oder Barcode) ein Index erzeugt. Dieser ist eine in eckigen Klammern eingefasste zehnstellige Hexadezimal, deren erste zwei Stellen die Seitennummer - hier die Etikettnummer - darstellt. Dieser Seitenzähler läuft je Druckauftrag modulo 256.

Nach der Seitennummer folgt die Y-Koordinate des gefundenen Fragments. Die Masseinheit für diese Koordinate sind 1/360 Zoll und sie wird als eine vierstellige Hexadezimal dargestellt. Die letzten vier Hexadzimalziffern stellen die X-Koordinate des Fragments dar. Die Masseinheit sind ebenfalls 1/360 Zoll.

Eine Besonderheit stellen Zeilen dar, deren Y-Koordinate die Hexadezimalzahl 'CCCC' ist. Dies sind keine Texte aus den Druckdaten, sondern die Inhalte von ZPL-Kommentaren, die somit auch zur Steuerung eines Skriptes herangezogen werden können. Die X-Koordinate ist einfach ein Kommentarzähler (je Etikett).

Neben diesen Indices gibt es in der Index-Datei noch einige weitere Zeilen, die mit einem in eckigen Klammern einge­fassten Text beginnen. Die Zeilen, die mit '[c4p]', '[ZPLGate]' und '[Param]' 3) beginnen, beschreiben Zusatzinformationen zum Gateway, dass diese Index-Datei erzeugt hat. Diese Information werden eventuell im Supportfall benötigt.

Eine Zeile mit '[Page]' zeigt das Ende eines Etiketts an. Die Zeile mit '[End]' markiert das Ende des Druckdatenstroms.


Beispiel für den Inhalt einer Index-Datei:

[c4p]134676745
[ZPLGate]4.1.0.6
[Param]1.0;10.1.17.59;31.01.20 15:52:06
[01CCCC0001]Retoure
[01088E0366]DPD
[010096003C]Äußerlich nicht erkennbare Schäden müssen DPD innerhalb von 7 Tagen nach Ablieferung
[0100B40087]schriftlich gemeldet werden. / Damage not recognizable on the outside has to be
[0101FE00D2]reported in writing to DPD within 7 days after delivery.
[010087012C]Muster GmbH
[0100870177]Stefan Muster
[01008701C2]Mustergasse 19
[010087020D]Tel. 492945597870
[01008702A3]DE-59194
[01038402A3]Musterstadt
[01005A0357]Referenz
[01005A0393]nummer 1:
...
[0106AE012C]DE - 70597 Stuttgart
[0108E8012C]DPD GeoPost (Deutschland) 
[0108AC012C]Depot    0171
[010870012C]Carl-Benz-Str. 17
[010834012C]DE-00171 Ludwigsburg
[0107F8012C]Tel:+49-(0) 71 41-30 03-0
[0107BC012C]Fax:+49-(0) 71 41-30 03-9 99
[0104B006BD]DPD 10:00
[0100780771]0171
[01007807DA]Track
[01021C078F]6300 1502 36 P
[0108340771]AM1
[01083407DA]Service
[0102850807]DE-0159
[01004B09BA]B18
[0102EE09C9]179 - DE - 59494
[0101E00A32]02/10/2009 03:01 20090907 0171  AEB-PX 0.9
[0107AD09BA]71
[0100D20A8C]ê%0â05949401716300150236179276
[01020D0D20]0059 494 0171 6300 1502 36 179 276 A
[Page]
[End]



1)
Die Skripte haben eine maximale Laufzeit von fünf Minuten. Danach werden sie zwar nicht abgebrochen, aber dann wird das nächste Skript gestartet, falls ein weiterer Druckauftrag vorliegt. Sind die Aufgaben eines Skripts so komplex, dass sie im Minutenbereich laufen, sollte das vom Gateway gestartete Skript die eigentliche Arbeit an einen parallelen eigen­ständigen Prozess abgeben. Dann sind natürlich alle Herausforderungen (Synchronisation, Ressourcenzugriff, etc), die mit Parallelität auftreten, selbst auszuprogrammieren.

2)
In der Praxis sind bei einfachen Aufgaben Durchsätze von 50 bis 60 Dokumente pro Minute realistisch. Es ist auch klar, dass viele einzelne Etiketten den Durchsatz drücken, verglichen mit Dokumenten, die mehrere Etiketten enthalten.

3)
Die Zeichenkette nach '[Param]' enthält am Zeilenende auch Druckdatum und Zeit!

convert4print/zpl/gateway.txt · Zuletzt geändert: 2020-07-23 08:32 (Externe Bearbeitung)