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.
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:
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 angelieferten 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 vollkommen 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. |