Etikettenvorlagen

Eine Druckerbefehlsdatei der Bibliothek Etiketten: ihr Name und ihre Zeichenkodierung, der Editor der Druckerbefehle und der Dateiimport, die Grammatik der Platzhalter, die installierte Windows-Warteschlange und die Testsendung.

Als Markdown ansehen

Eine Etikettenvorlage ist eine Zeile der Bibliothek Etiketten (Process > Vorlagen > Etiketten): eine Druckerbefehlsdatei (ZPL, EPL, CPCL oder jede andere RAW-Befehlssprache) mit Platzhaltern {{NAME}} an den Stellen, an die ein Wert des Laufs gehört. Ganter Lab sendet die Bytes an eine RAW-Warteschlange von Windows und setzt die Platzhalter ein; es deutet die Druckersprache nie, stellt sie nicht dar und zeigt keine Vorschau, das Layout selbst wird also im Werkzeug des Druckerherstellers entworfen. Das Ändern verlangt Process verwalten; die ganze Seite ist untätig, solange eine Einheit läuft, und eine Testsendung wird abgewiesen, solange die Runtime gestoppt ist. Eine neue Vorlage entsteht leer, heißt "Etikett" ("Etikett 2" und so weiter) und druckt nichts, bis sie Befehle hält: Jeder Weg, der erzeugt oder sendet, weist eine leere Vorlage ab.

Die Seite besteht aus fünf Karten, in der Reihenfolge, in der gearbeitet wird: Identität und Zeichenkodierung, die Befehle, die darin gefundenen Platzhalter, wie eine Datei in einem Etikettenprogramm vorbereitet wird, und die Testsendung.

Vorlage

Feld Was es ist Werte / Vorgabe Wirkung
Name Der Name, den die Bibliothek und jeder Etikettenbefehl zeigen. Text; wird übernommen, sobald das Feld verlassen wird. Ein leerer Name wird abgewiesen ("Eine Etikettenvorlage braucht einen Namen.") und der vorherige Name bleibt.
Zeichenkodierung Wie die gespeicherten Bytes als Text zurückgelesen werden und wie jeder eingesetzte Wert kodiert wird. UTF-8 (Vorgabe), Latin-1, ASCII. Sie zu ändern schreibt die bearbeitbaren Befehle in der neuen Kodierung um; ein Zeichen, das die neue Kodierung nicht darstellen kann, wird abgewiesen ("Die Befehle bleiben in UTF-8. Zeile 3 enthält 'é', was ASCII nicht darstellen kann.") und die Kodierung bleibt. Undurchsichtige Befehle behalten ihre Bytes und werden schlicht unter der neuen Erklärung erneut gelesen.

Druckerbefehle

Bedienelement Was es tut
Der Editor Ein Textfeld in Festbreitenschrift, das die Befehle hält, mit einer ZPL-Form als Beispiel im leeren Feld. Das Tippen prüft laufend mit (die Liste der Platzhalter und jede Ablehnung folgen dem Text); das Feld zu verlassen speichert. Ein abgewiesener Entwurf bleibt mit seinem Grund auf dem Bildschirm und wird nicht gespeichert; eine andere Vorlage zu öffnen verwirft ihn. Einen Text zu speichern, der den gespeicherten Bytes gleicht, ändert nichts.
Datei importieren… / Datei ersetzen… Holt eine Druckerbefehlsdatei herein (.zpl, .epl, .epl2, .cpcl, .prn, .lbl, .txt). Die Bytes werden in die Konfiguration kopiert und der Dateiname wird für die Rückverfolgbarkeit behalten: Das Original zu verschieben oder zu löschen wirkt sich auf die Vorlage nicht aus. Eine leere Datei und eine Datei über 2 MiB werden abgewiesen, und eine Datei mit fehlerhaften Platzhaltern ebenso.

Befehle sind nur so lange als Text bearbeitbar, wie sie den Hin- und Rückweg Byte für Byte überstehen: Sie dekodieren unter der erklärten Kodierung, kodieren wieder zu denselben Bytes, beenden jede Zeile auf dieselbe Weise (alles LF oder alles CR LF; ein importierter Stil mit CR LF wird bei jedem Speichern wiederhergestellt) und tragen kein Steuerzeichen außer dem Tabulator und dem Zeilenende. Befehle, die eine dieser Prüfungen nicht bestehen, bleiben undurchsichtig: Der Editor wird durch den Grund ersetzt ("Das Byte 0x1B an der Position 12 ist kein UTF-8-Text.", "Die Zeilenenden sind gemischt: Manche Zeilen enden mit CR LF und andere allein mit LF.") und die Bytes ändern sich nur dadurch, dass die Datei ersetzt wird. Eine Zeile unter der Karte sagt, was gespeichert ist: "Es ist noch nichts gespeichert.", "Importiert aus labels.zpl · 1,2 KiB · Zeilenenden CR LF bleiben erhalten" oder "Hier geschrieben · 240 B".

Erkannte Platzhalter

Die Platzhalter, die in den gespeicherten Befehlen gefunden wurden, in der Reihenfolge ihres ersten Auftretens. Ein Platzhalter ist ein striktes {{NAME}} in ASCII: Der Name beginnt mit A bis Z, setzt sich mit A bis Z, 0 bis 9 oder Unterstrich fort, ist höchstens 64 Zeichen lang und schließt mit }}. Alles, was mit {{ öffnet und der Grammatik nicht folgt, wird mit seiner Byteposition und der gebrochenen Regel abgewiesen ("Fehlerhafter Etikettenplatzhalter an der Byteposition 40: Der Name darf allein A-Z, 0-9 oder Unterstrich enthalten."). Jedes Byte außerhalb eines Platzhalters bleibt erhalten, und das Einsetzen geschieht einmal und nie rekursiv.

Eine Vorlage ohne Befehle liest sich "Noch keine Befehle. Schreiben Sie die Druckerbefehle oben, oder importieren Sie eine Datei, die aus einem Etikettenprogramm exportiert wurde. Bis dahin druckt diese Vorlage nichts."; eine Vorlage mit Befehlen und ohne Platzhalter liest sich "Es wurden keine Platzhalter gefunden: dieses feste Etikett sendet jedes Mal dieselben Bytes und verwendet keine Daten des Laufs." und ist eine gültige Vorlage. Jeder verschiedene Platzhalter braucht in jedem Etikettenbefehl, der die Vorlage benutzt, eine Quelle; ein wiederholter Platzhalter erhält denselben Wert. Die Karte schließt mit der stehenden Regel: Ganter Lab prüft die Syntax der Platzhalter, nicht die Befehle des Herstellers. Speichern Sie nur Befehle, denen Sie vertrauen; sie können das Verhalten des Druckers ändern.

Eine Vorlage in einem Etikettenprogramm vorbereiten

Eine zugeklappte Erinnerung an den Arbeitsweg:

  1. Erstellen Sie das Etikettenlayout im Werkzeug des Druckerherstellers, zum Beispiel ZebraDesigner.
  2. Setzen Sie Platzhalter von Ganter Lab wie {{SERIAL}} oder {{RESULT}} in Text- oder Barcodeinhalte.
  3. Exportieren Sie die druckfertige Befehlsdatei, zum Beispiel ZPL. Importieren Sie nicht die Projektdatei des Programms.
  4. Importieren Sie diese Datei hier (oder fügen Sie ihren Inhalt in das Befehlsfeld ein) und prüfen Sie die erkannten Platzhalter.
  5. Geben Sie unten repräsentative Werte ein und testen Sie gegen eine installierte Windows-Warteschlange.

Derselbe Weg gilt für EPL, CPCL und andere Druckerbefehlssprachen.

Testsendung

Bedienelement Was es tut
Warteschlangen aktualisieren Liest die Druckerwarteschlangen neu, die für den interaktiven Windows-Benutzer installiert sind. Ein Fehlschlag beim Lesen wird neben der Auswahl gesagt.
Ein Wertefeld je Platzhalter Der Beispieltext, der allein in dieser Sendung für diesen Platzhalter eingesetzt wird. Eine feste Vorlage liest sich "Diese feste Vorlage braucht keine Beispielwerte."; eine leere "Es gibt nichts zu senden, solange diese Vorlage keine Druckerbefehle hat."
Installierte Windows-Warteschlange Die Warteschlange, an die der Test geht ("(Warteschlange wählen)" oder "(keine installierten Warteschlangen)").
Test senden Erzeugt die gespeicherten Befehle mit den Beispielwerten und reicht sie als RAW-Dokument namens Ganter Lab test · <template> ein. Es entsteht kein Lauf und kein Artefakt. Das Ergebnis landet im Aktionsprotokoll ("Testetikett an 'Q' gesendet." oder "Die Testsendung ist fehlgeschlagen: Grund").

Test senden ist ausgegraut, wenn keine Befehle gespeichert sind, wenn keine Warteschlange gewählt ist, während gesendet wird und während die Seite untätig ist. Ein Wert, den ein Platzhalter in der erklärten Kodierung nicht tragen kann, wird beim Erzeugen abgewiesen. Erfolg bedeutet, dass die Windows-Warteschlange das RAW-Dokument angenommen hat; er bestätigt nicht, dass ein Etikett tatsächlich gedruckt wurde.

Woher die Werte kommen

Die Beispielwerte oben gelten allein für den Test. In einem Lauf wird jeder verschiedene Platzhalter der Vorlage auf dem Etikettenbefehl, der sie benutzt, einer endlichen Quelle zugeordnet (Aktionen): den eingefrorenen Metadaten, dem Namen und dem Änderungsstand des Modells, dem Namen und dem Kurzzeichen der Einheit, dem Namen und dem Kurzzeichen des Ablaufs, der Kennung des Laufs, dem Startzeitpunkt, dem Laufzustand und, bei Abschluss, auch dem Endzeitpunkt, der Dauer, dem Prüfergebnis, dem Grund der Beendigung und einem benannten Kriterienergebnis mit einem ausdrücklichen Zyklus. Quellen mit Datum und Uhrzeit nehmen ein Format an (Datum und Uhrzeit der Station, Datum der Station, Uhrzeit der Station, ISO 8601) und numerische Quellen eine wahlweise feste Anzahl Nachkommastellen (0 bis 9). Eine Zahl wird für die Maschine geschrieben, die sie liest, und nicht so, wie die Station Zahlen auf dem Bildschirm zeigt: nie ein Gruppentrennzeichen, das innerhalb eines Barcodes das empfangende System zerbricht, immer der unveränderliche Dezimalpunkt, und eine ganze Zahl, etwa eine Zählung oder eine Dauer in Sekunden, ganz geschrieben. Ein Wert, der ein Steuerzeichen trägt, einen Zeilenumbruch eingeschlossen, oder ein Zeichen, das einen Druckerbefehl beginnt (^, ~), wird unter Nennung seines Platzhalters abgewiesen: Er würde die Zeile zerteilen, in der er steht, oder ein anderes Etikett drucken. Was jeder Ausgabezeitpunkt anbietet, wie das Artefakt eingefroren wird und wie eine Sendung aufgezeichnet wird, steht unter Etiketten und Berichte ausgeben; eine Vorlage von Hand gegen einen aufgezeichneten Lauf zuzuordnen steht unter Etiketten und Berichte.

Was diese Seite nicht tut

Sie zeichnet keine Vorschau des Etiketts und prüft nichts an der Druckersprache. Sie ordnet keinen Platzhalter einem Wert zu: Das ist die Aufgabe des Etikettenbefehls. Sie druckt kein Etikett für einen Lauf: Die Artefakte eines Laufs werden aus seiner Aufzeichnung in den Historien gedruckt. Und die Vorlage zu löschen (Etikettenvorlage löschen in der Leiste) lässt jedes aufgezeichnete Artefakt unberührt; allein die Befehle, die sie noch nennen, hören auf zu erzeugen.