Code-128: uniwersalny kod dla logistyki i etykiet
Code-128 to najpopularniejszy kod kreskowy poza handlem detalicznym. Zobaczysz go na etykietach kurierskich, listach przewozowych, opaskach szpitalnych, biletach, kartach bibliotecznych i na niemal każdym kartonie w magazynie. Jego siłą jest uniwersalność: koduje pełny zestaw 128 znaków ASCII - wielkie i małe litery, cyfry, znaki interpunkcyjne, a nawet znaki sterujące - i robi to przy najmniejszej szerokości symbolu spośród wszystkich popularnych kodów jednowymiarowych. Tam, gdzie trzeba zapisać numer przesyłki, numer seryjny, identyfikator pacjenta lub kod wewnętrzny firmy, Code-128 jest wyborem domyślnym.
Trzy podzbiory znaków: A, B i C
Symbol Code-128 zaczyna się jednym z trzech znaków startu, który określa aktywny podzbiór.Podzbiór A zawiera wielkie litery, cyfry, znaki interpunkcyjne i znaki sterujące ASCII (np. tabulator, CR). Podzbiór B obejmuje wielkie i małe litery, cyfry oraz interpunkcję - to on obsługuje zwykły tekst. Podzbiór C koduje wyłącznie cyfry, ale parami: jeden znak symbolu odpowiada dwóm cyfrom, więc długie ciągi numeryczne zajmują o połowę mniej miejsca. Podzbiory można przełączać w środku symbolu specjalnymi znakami CODE i SHIFT, a dobry koder dobiera je automatycznie tak, aby kod wyszedł jak najkrótszy. Dlatego ten sam tekst wygenerowany w różnych narzędziach może mieć różną szerokość - wszystkie warianty są poprawne, ale nie wszystkie są optymalne.
Budowa symbolu i suma kontrolna modulo 103
Każdy znak Code-128 składa się z 11 modułów: trzech kresek i trzech odstępów o szerokościach od 1 do 4 modułów. Znak stopu ma 13 modułów i kończy się dodatkową kreską. Przed znakiem stopu zawsze stoi znak kontrolny, którego odbiorca nie widzi w tekście pod kodem: jest to suma wartości znaku startu i wszystkich znaków danych pomnożonych przez ich pozycję, liczonamodulo 103. Skaner sam weryfikuje tę sumę i odrzuca symbol z błędem, więc Code-128 należy do kodów o wysokiej niezawodności odczytu. W odróżnieniu od EAN-13 nie ma tu sztywnej długości: kod może mieć od jednego do kilkudziesięciu znaków, przy czym w praktyce skanery ręczne najlepiej radzą sobie z symbolami do około 30-40 znaków.
Code-128 a Code-39 i GS1-128
Starszy Code-39 koduje tylko 43 znaki, nie ma obowiązkowej sumy kontrolnej i przy tej samej treści jest wyraźnie szerszy - Code-128 powstał właśnie po to, aby zmieścić więcej danych na mniejszej etykiecie. Z kolei GS1-128 to ten sam Code-128, ale z narzuconą strukturą danych: zaczyna się znakiem FNC1, a treść dzielą identyfikatory zastosowania (AI) w nawiasach. Jeśli etykieta ma trafić do sieci handlowej albo na paletę SSCC, potrzebujesz GS1-128; do numerów wewnętrznych, biletów i dokumentów wystarczy zwykły Code-128. Porównanie obu kodów opisujemy szczegółowo w artykule Code-128 a Code-39.
Druk, wymiary i typowe błędy
Code-128 nie ma jednego nominalnego rozmiaru jak kody EAN. Parametrem bazowym jestszerokość modułu (X) - dla drukarek termicznych 203 dpi bezpieczne minimum to 0,25 mm (2 punkty drukarki), a dla etykiet logistycznych GS1 zaleca 0,5 mm lub więcej. Wysokość kresek powinna wynosić co najmniej 15% długości symbolu, a strefy ciszy po obu stronach minimum 10 X. Najczęstsze problemy to:
- zbyt wąski moduł po przeskalowaniu obrazka rastrowego - do druku używaj SVG lub PDF;
- skrócenie wysokości kodu „żeby się zmieścił", co utrudnia odczyt skanerem laserowym;
- brak stref ciszy, gdy tekst lub ramka dotykają symbolu;
- niepotrzebne spacje i znaki specjalne w danych, które wymuszają przełączanie podzbiorów.
Przed drukiem nakładu warto sprawdzić gotowy symbol w skanerze online, a zasady oceny jakości znajdziesz w poradniku jakość i weryfikacja kodu.