Veröffentlicht:
Sie fordern 8691234567895 an und bekommen
8691234567890. Kein Fehler, keine Warnung vom Drucker, ein
einwandfrei lesbarer Barcode — mit einer Nummer, die niemand wollte.
Wir haben ^BEN,140,Y,N^FD8691234567895^FS gerendert und das
entstandene Symbol mit einem Software-Decoder zurückgelesen. Es decodiert als
8691234567890. Die gesendete letzte Ziffer wurde ersetzt.
Das ist kein Fehler der Render-Engine und keine Zebra-Eigenart: Die Prüfziffer eines EAN/UPC-Symbols wird aus den vorangehenden Ziffern abgeleitet. Der Encoder berechnet sie. Liefern Sie eine dreizehnte Ziffer, wird sie nicht als Daten verwendet — sie wird von der berechneten überschrieben. Beide verhalten sich gleich, und genau deshalb übersteht der Fehler jeden Test: Alle Werkzeuge sind sich einig, und alle irren sich still über Ihre Absicht.
Eine falsche Prüfziffer bedeutet fast immer eine falsche Nummer weiter vorn — zwei vertauschte Ziffern, eine abgeschnittene GTIN, ein Versatz im Serialisierungszähler. Das Symbol ist gültig, also weist es niemand zurück. Das Etikett geht auf ein Produkt; die Kasse am anderen Ende liest eine GTIN, die zu einem anderen Artikel oder zu gar nichts gehört. Der Fehler zeigt sich beim Kunden, nicht auf Ihrer Werkbank.
Unsere Engine geht stellvertretend den zweiten Weg: Sie ändert die Ausgabe nicht — Zebra berechnete dieselbe Ziffer —, aber sie bricht das Schweigen und gibt eine Warnung zurück, die beide Ziffern und die tatsächlich gedruckte Nummer benennt. Diese Warnung erscheint im Linter-Panel des Viewers und in der API-Antwort; dort kann ein automatischer Prüfschritt sie sehen.
EAN-8, UPC-A und UPC-E teilen die Modulo-10-Regel bei anderer Länge; ITF-14 hat ebenfalls eine Prüfziffer. Die internen Prüfzeichen von Code 128 und Code 39 sind dagegen gar nicht Teil Ihrer Daten — es gibt nichts zu liefern und nichts falsch zu machen.
Fügen Sie ein Etikett in den ZPL-Viewer ein, um die Warnung zu sehen, führen Sie Diagnose in der erzeugenden Pipeline aus, oder lesen Sie ein gedrucktes Muster mit der Barcode-Verifikation zurück — nur Letzteres sieht, was der Scanner sieht.
Weil die Prüfziffer abgeleitet und nicht mitgeführt wird: Der Encoder berechnet sie aus den zwölf vorangehenden Ziffern und überschreibt Ihre. Gemessen — 8691234567895 hinein, ein Symbol, das als 8691234567890 decodiert, heraus.
Zwölf ist die sichere Antwort: Dann gibt es nichts zu widersprechen. Führt Ihr System dreizehn, vergleichen Sie die letzte Ziffer vor dem Druck mit der berechneten und stoppen Sie bei Abweichung.
Nein, und das sollte sie nicht — Zebra berechnete dieselbe Ziffer; die Ausgabe zu ändern würde den Unterschied zwischen Werkzeugen verdecken. Stattdessen gibt sie eine Warnung zurück, die beide Ziffern und die tatsächlich gedruckte Nummer nennt.
ZPL ist die Sprache der Zebra-Thermodrucker. Wie die Befehle zu lesen sind, wie ein Etikett aufgebaut wird und welche Fehler am häufigsten vorkommen.
Welche Barcode-Symbologie soll ich wählen?EAN-13, Code 128 oder QR? Praktische Regeln für die Wahl des Barcodes nach Daten, Platz und Lesegerät.
ZPL-Datei ohne Drucker in der Vorschau ansehenEine ZPL-Datei ist nur Text — das Etikett existiert erst, wenn etwas es zeichnet. Drei praktische Wege, ein ZPL-Etikett vor dem Drucker zu sehen.