Welcher Barcode ist der richtige?
Eine ultimative Regel, welcher Barcode in welchem Fall die beste Wahl ist, existiert nicht. Dennoch lassen sich bestimmte Barcode-Typen für bestimmte Anforderungen empfehlen.Code 128: Von den drei Barcode-Typen ist dieser zweifellos der vielseitigste und gleichzeitig am Einfachsten zu verwendende. Er ist relativ kompakt und ermöglicht die Darstellung einer breiten Palette verschiedener Zeichen. Insbesondere bei der Kodierung von rein numerischen Daten benötigt er lediglich etwa die Hälfte des Platzes im Vergleich zur Kodierung von Buchstaben und Sonderzeichen. Darstellbare Zeichen: Alle 128 Zeichen des ASCII-Zeichensatzes, also: A-Z, a-z, 0-9, außerdem die Zeichen !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ sowie das Leerzeichen und die Steuerzeichen im ASCII-Bereich 0 bis 31 (z.B. Tabulator, Carriage Return, Line Feed, usw.)
2 of 5 Interleaved: Ist auf die Darstellung von rein numerischen Daten spezialisiert und kann ebensolche auf noch kleinerem Platz abbilden als der Code 128 dies vermag, insbesondere wenn ein Ratio von 2:1 verwendet wird. Es ist jedoch ratsam, diesen Barcode immer in Kombination mit einer Prüfziffer und/oder einer Programmierung des Scanners auf eine feste Zeichenanzahl zu verwenden, um Fehllesungen zu vermeiden. (Dazu später mehr.) Darstellbare Zeichen: Ziffern (0-9)
Code 39: Gut geeignet, um kurze alphanumerische Zeichenketten zu kodieren, solange ausreichend Platz auf dem Medium vorhanden ist. Durch die Verwendung eines Ratio von 3:1 in Kombination mit einer Prüfziffer kann die Lesbarkeit des Barcodes gegen Probleme wie schlechte Druckqualität und Beschädigungen maximal geschützt werden. Darstellbare Zeichen: Insgesamt 43 verschiedene Zeichen, darunter Ziffern (0-9), Großbuchstaben (A-Z), außerdem die Zeichen Minus (-), Punkt (.), Dollar ($), Schrägstrich (/), Plus (+), Prozent (%) sowie das Leerzeichen.
Informationsdichte und Platzbedarf
Die Informationsdichte bezieht sich darauf, wie viele Zeichen ein Barcode auf einer Fläche X maximal unterbringen kann. Dies bestimmt direkt den Platzbedarf des Barcodes sowie die maximale Länge kodierter Daten. Im Folgenden wird ein Vergleich der drei Barcode-Typen hinsichtlich der Darstellung desselben Inhalts vorgenommen, nämlich der Ziffernfolge "12345678": Es ist nicht überraschend, dass 2 of 5 Interleaved in Bezug auf Kompaktheit, wenn auch nur knapp, die Nase vorn hat. Schließlich ist dieser Barcode auf die Kodierung von reinen Dezimalwerten spezialisiert.Während Code 39 im obigen Vergleich deutlich schlechter abschneidet, sieht das Ergebnis bereits anders aus, wenn alphanumerische Werte kodiert werden – hier die Zeichenfolge "ABCDEFGH": Die Größe des Code 39 bleibt unverändert, während der Code 128 diesmal einen wesentlich größeren Platzbedarf aufweist. Dies liegt daran, dass der Code 128 mehrere aufeinanderfolgende Ziffern deutlich kompakter darstellen kann als alphanumerische Daten.
Informationsdichte von 2 of 5 Interleaved & Code 39 optimieren
Die Informationsdichte (=Kompaktheit) der beiden oben genannten Barcodes kann bei Bedarf weiter erhöht werden. Dies könnte insbesondere beim 2 of 5 Interleaved interessant sein, da er von Natur aus bereits kompakt ist. Bei Code 39 hingegen liegt der Fokus weniger auf Kompaktheit, weshalb er häufig in Anwendungen eingesetzt wird, bei denen dies nicht vorrangig ist. Dennoch können die folgenden Ansätze auf beide Barcode-Typen angewandt werden.Bei genauerer Betrachtung der ersten Abbildung ist ein Unterschied in der Struktur der drei Barcodes zu erkennen: Während bei Code 128 die Striche in 4 verschiedenen Stärken vorkommen, weisen die beiden anderen Barcodes nur 2 Stärken auf. Letztere Struktur hat den Vorteil, dass ein Barcode-Scanner es beim Dekodieren prinzipiell leichter hat, wenn er dabei zwischen lediglich 2 Linientypen zu unterscheiden hat. Dies gilt besonders dann, wenn der Barcode in schlechter Qualität gedruckt wurde.
Allerdings wurden 2 of 5 Interleaved und Code 39 in den frühen 1970er Jahren entwickelt, als die Technologien hinsichtlich Genauigkeit sowohl bei den Druckern als auch bei den Scannern im Vergleich zu heute weit weniger fortgeschritten waren. Der zeitlich später entwickelte Code 128 ist mit seiner komplexeren Struktur bereits für feineren Druck und präzisere Scanner-Erfassung abgestimmt.
Daraus ergibt sich ein Potenzial zur Optimierung der Informationsdichte. Die breiten und schmalen Striche bei Code 39 und 2 of 5 Interleaved werden traditionell im Breitenverhältnis (sogenanntes Ratio) von 2,5:1 oder 3:1 gedruckt. Jedoch ist ein derart hohes Verhältnis bei Verwendung moderner Laser- oder Etikettendrucker sowie Scanner kaum noch erforderlich und kann entsprechend reduziert werden. Ein Ratio von 2:1 sollte unter Verwendung aktueller Hardware ein sinnvoller und praktikabler Wert sein. Bei Code 128 ist dieses Verhältnis bereits fest eingebaut und nicht änderbar.
Etikettendrucker und Ratio
Bei der Verwendung eines Etikettendruckers sollte grundsätzlich ein Ratio von entweder 2:1 oder 3:1 eingestellt werden, da aufgrund der meist niedrigen Auflösung ein Bruchzahl-Ratio wie 2,5:1 in manchen Fällen kontraproduktiv sein kann. Weil der grobkörnige Drucker keine halben oder Viertel Punkte drucken kann, sondern immer nur ganze Punktmengen, werden die breiten Striche automatisch auf eine Ganzzahl gerundet. Wenn dabei innerhalb desselben Barcodes abwechselnd mal auf- und mal abgerundet wird, führt dies zu Störungen der Proportionen und damit zu schlechterer Lesbarkeit des Barcodes.Handhabung
- Code 128
In Bezug auf die Handhabung der "umgänglichste" Barcode-Typ. Er enthält eine Prüfziffer, die im Barcode kodiert ist aber nicht in der Klartextzeile erscheint. In Bezug auf die Prüfziffer ist keine spezielle Programmierung des Barcode-Scanners erforderlich. - 2 of 5 Interleaved
Die zu kodierende Nummer muss zwingend eine gerade Anzahl von Stellen haben. Wenn sie ungerade ist, kann eine "0" am Anfang der Nummer hinzugefügt werden, um eine gerade Anzahl zu erreichen. (In unserer Software kann dazu die Einstellung "Barcode-Nummer falls nötig vervollständigen" verwendet werden.) Der Barcode-Scanner muss in diesem Fall entsprechend programmiert werden, um die führende "0" beim Einlesen zu entfernen.
Als in der Regel sinnvollere Alternative dazu wäre das Hinzufügen einer optionalen Prüfziffer(*).
Falls die Nummer bereits eine gerade Anzahl von Stellen hat und gleichzeitig die Verwendung einer Prüfziffer vorgesehen ist, ist das Voranstellen einer "0" abermals notwendig. - Code 39
Eignet sich gut für kurze Datenfolgen. Kann wie 2 of 5 Interleaved in Kombination mit einer optionalen Prüfziffer(*) verwendet werden.