Webseiten-Werkzeuge

Benutzer-Werkzeuge


ZPL-Testausdrucke anzeigen

Anforderung

Genau wie im Beitrag PCL-Testausdrucke anzeigen in den Anforderungen beschrieben, gibt es natürlich auch für Etikettendrucker den Wunsch, für die Tests mit print2forms nicht Testetiketten auf dem realen Drucker zu erzeugen, sondern die erzeugten Etiketten während des Entwurfsprozesses direkt am Bildschirm betrachten zu können.

Zumindest für Etikettendrucker des Herstellers Zebra ist dieser Wunsch erfüllbar.

Genau wie für die PCL-Drucker, kann auch hier das Hilfsprogramm p2fViewer.exe genutzt werden, allerdings mit einer anderen Skriptdatei.

Realisierung

Im Internet gibt es einen sehr brauchbaren Online-ZPL-Viewer mit dem Namen Labelary, der einen Grossteil der ZPL-Kommandos sehr gut emuliert und wahlweise eine PNG-Bilddatei oder eine PDF-Datei erzeugt.

Der Konverter auf dem der Viewer letztlich basiert, wird auch als Web-Service zur Verfügung gestellt.

Die Idee für eine ZPL-Anzeige in print2forms ist nun die, mit Hilfe von p2fViewer.exe die vom Client erzeugten ZPL-Daten abzufangen, und die resultierende Datei an den Web-Service zu senden, damit dieser daraus eine PNG-Datei macht, die man mit Windows Boardmitteln anzeigen kann.

Um den Web-Service zu nutzen, bietet Labelary eine ganze Reihe von Möglichkeiten an, einen entsprechenden HTTP-Request abzusetzen. Für die Lösung, die hier vorgestellt werden soll, haben wir uns für die Nutzung von curl entschieden, weil so eine einfache Batch-Datei für die Windows-Commandshell ausreicht.

Der Einfachheit halber gehen wir davon aus, dass alle notwendigen Dateien in einem Verzeichnis C:\View installiert sind. Das reduziert die Pfadlänge entsprechend 1) und vermeidet eine ganze Reihe sonst notwendiger Hochkommata. Dort soll auch das Verzeichnis mit curl liegen (die curl.exe und die libcurl-x64.dll für 64-Bit Systeme, ansonsten curl.exe und die libcurl.dll für 32-Bit Systeme). Ausserdem die Batch-Datei mit den Kommandos, wie unten beschrieben.

In der Kommandozeile des Programms p2fViewer.exe wird jetzt statt wie bisher kein Programm, sondern eine Batch-Datei mit Befehlen für die Windows-Commandshell aufgerufen (die Hochkommata sind wichtig!): 2)

 cmd /s /c ""C:\View\makepng.bat" "%1"" 

Das Spool-Verzeichnis des p2fViewers muss auf C:\View gesetzt werden. Diese Batch-Datei selbst enthält folgende Befehle:

makepng.bat
C:\View\curl\bin\curl --silent --request POST http://api.labelary.com/v1/printers/8dpmm/labels/4x6/0/ --form file=@C:\View\View.pcl >C:\View\Seite-1.png
%SystemRoot%\System32\rundll32.exe "%ProgramFiles(x86)%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen C:\View\Seite-1.png
del Seite-1.png
del %1


Als erstes wird curl aufgerufen, um aus der ange­lieferten ZPL-Datei eine PNG-Datei zu erzeugen. Die PNG-Datei erhält dabei der Einfachheit halber immer den Namen Seite-1.png.

In der URL des HTTP-Requests ist im Pfad die Angabe '4×6' zu erkennen. Dies ist die Etikettengrösse in Zoll. Bei Bedarf muss die Grösse natürlich angepasst werden. Dezimalzahlen mit Dezimalpunkten sind erlaubt.

Die Druckerauflösung ist auf 203 dpi (8 dpmm - dots per millimeter) eingestellt. Das ist für eine Anzeige voll­kommen ausreichend und reduziert die Grösse der Bilddatei auf das erforderliche Minimum.

Anschliessend wird der Bildbetrachter aus dem Windows-Verzeichnis (nur eine DLL) aufgerufen und gewartet, bis der Benutzer den Bildbetrachter schliesst. Sobald das der Fall ist, werden die erzeugte PNG-Datei und die ZPL-Datei gelöscht.

Hinweise

  • Natürlich kann man auf ähnliche Weise wieder eine Lösung bauen, die PDF-Dateien verwendet. Das hat den Vorteil, dass der Web-Service von Labelary dann auch mehrseitige Dokumente erzeugt, falls der ZPL-Datenstrom mehrere Etiketten enthält. So können dann auch ganze Etikettenserien betrachtet werden.

    Meist scheitert dieses Vorhaben aber am nächsten Hinweis, welshalb hier im Wiki auf eine Vorstellung verzichtet wurde.
  • Es soll natürlich nicht verschwiegen werden, dass diese Lösung auch einen Datenschutz relevanten Aspekt hat. Letztlich werden die ZPL-Daten via Internet unverschlüsselt an einen fremden Rechner übertragen. Daher sollte die Lösung nur beim Entwurfsprozess und auch da nur mit unbedenklichen Testdaten und niemals mit echten Kundendaten eingesetzt werden.



1)
Natürlich darf auch jedes andere Verzeichnis gewählt werden, in dem Rechte zum Ausführen von Programmen zur Verfügung stehen.

2)
Bitte mindestens den Build 149 von p2fViewer.exe einsetzen, um zu vermeiden, dass ein zusätzliches Fenster für die Commandshell aufgeht.
print2forms/tips/tip80.txt · Zuletzt geändert: 2023-05-23 12:07 (Externe Bearbeitung)