Code-39: weteran kodów przemysłowych
Code-39 powstał w 1974 roku jako pierwszy kod kreskowy zdolny zapisać litery, a nie tylko cyfry. Przez dekady był standardem w przemyśle motoryzacyjnym, w wojsku (specyfikacja LOGMARS amerykańskiego Departamentu Obrony), w służbie zdrowia (etykiety HIBC na wyrobach medycznych) oraz w ewidencji środków trwałych, bibliotekach i archiwach. Choć nowsze symboliki są gęstsze, Code-39 wciąż jest szeroko używany tam, gdzie liczy się prostota: da się go wydrukować dowolną drukarką, odczytać niemal każdym skanerem i wygenerować bez skomplikowanego oprogramowania.
Zestaw 43 znaków i gwiazdki start/stop
Podstawowy alfabet Code-39 liczy 43 znaki: 26 wielkich liter A-Z, 10 cyfr 0-9 oraz siedem znaków specjalnych: myślnik, kropka, spacja, dolar, ukośnik, plus i procent. Małe litery nie są dostępne - generator zazwyczaj zamienia je na wielkie. Każdy symbol zaczyna się i kończy znakiem gwiazdki (*), który pełni rolę wyłącznie sygnału start/stop i nie jest częścią danych; w tekście pod kodem zwykle się go nie drukuje. Istnieje też rozszerzona odmiana Code-39 Full ASCII, w której pary znaków (np. +A) reprezentują małe litery i pozostałe znaki ASCII, ale skaner musi mieć włączone takie dekodowanie, więc stosuje się ją rzadko.
Dlaczego Code-39 jest samokontrolny
Nazwa „39" odnosi się do pierwotnej konstrukcji: każdy znak zbudowany jest z 9 elementów (5 kresek i 4 odstępów), z których dokładnie 3 są szerokie. Taka budowa sprawia, że pojedynczy błąd druku niemal nigdy nie zamieni jednego poprawnego znaku w inny poprawny znak - kod jestsamokontrolny, dlatego suma kontrolna jest opcjonalna. Jeżeli jednak dane są krytyczne, można dodać znak kontrolny liczony modulo 43: każdemu znakowi przypisuje się wartość 0-42, sumuje się je, a reszta z dzielenia przez 43 daje znak kontrolny. Skaner musi mieć wtedy włączoną weryfikację, inaczej wyświetli znak kontrolny jako zwykły element danych - to częsta przyczyna niezgodności między etykietą a bazą.
Code-39 a Code-128: gęstość i szerokość
Znak Code-39 zajmuje od 13 do 16 modułów (w zależności od proporcji szerokich i wąskich kresek, typowo 1:2,5 lub 1:3), a do tego między znakami stoi odstęp międzyznakowy. Dla porównania znak Code-128 to zawsze 11 modułów, a cyfry w podzbiorze C upakowane są parami. W efekcie ten sam dziesięcioznakowy numer w Code-39 jest mniej więcej dwukrotnie szerszy. Dlatego przy małych etykietach lub długich numerach seryjnych warto rozważyć Code-128, a Code-39 zostawić dla krótkich identyfikatorów, gdzie liczy się zgodność ze starszym sprzętem lub wymagania branżowe. Szczegółowe zestawienie obu standardów znajdziesz w artykule Code-128 a Code-39, a przegląd pozostałych symbolik w tekście rodzaje kodów kreskowych.
Druk i najczęstsze błędy
Code-39 wybacza wiele, ale nie wszystko. Podstawowe zasady: szerokość wąskiego modułu nie mniejsza niż 0,19 mm (najlepiej 0,25-0,5 mm), stosunek szeroki:wąski między 2:1 a 3:1 utrzymany konsekwentnie w całym symbolu, wysokość kresek co najmniej 15% długości kodu i strefy ciszy po obu stronach minimum 10 modułów. Typowe pomyłki to ręczne dopisywanie gwiazdek do danych (wtedy w kodzie pojawiają się dwie pary znaków start/stop), wpisywanie małych liter lub polskich znaków, których alfabet nie zawiera, oraz rozciąganie gotowej grafiki PNG w edytorze - zmienia to proporcje kresek i psuje samokontrolę. Do druku zawsze pobieraj plik wektorowy, a jeśli masz wątpliwości co do minimalnych odstępów wokół symbolu, zajrzyj do poradnika ciche strefy kodu kreskowego.