Trochę teorii dotyczącej kodów kreskowych
Trudno wyobrazić sobie dzisiaj nasze życie bez kodów kreskowych, szczególnie teraz, gdy spotykamy je na każdym kroku. Idziemy do kina, a na naszych biletach widnieje ten „czarno-biały rysunek z kreskami”, idziemy do supermarketu i każdy produkt posiada informację w postaci kodu kreskowego. Możemy sobie tylko wyobrazić, jakie byłyby kolejki, gdyby kasjer wprowadzał identyfikatory produktów ręcznie, bez użycia skanera. Ponadto, istniałoby duże ryzyko popełnienia błędu przy wpisywaniu ciągu liczb. Obecnie zajmiemy się niewielką częścią różnego rodzaju kodów kreskowych.
Kod kreskowy ITF (Przeplatany Dwa z Pięciu) lub „przeplatany 2 z 5” - to dwu paskowy kod numeryczny lub numeryczny kod kreskowy o dużej gęstości, który może zakodować tylko pary liczb (kod kreskowy musi mieć parzystą liczbę cyfr!). Każdy wzór kodu kreskowego koduje nieparzystą cyfrę w układzie kresek i parzystą cyfrę we wzorze odstępów między kreskami. Aby zakodować nieparzystą liczbę cyfr, należy uzupełnić ostatnią (najbardziej znaczącą) cyfrę z lewej strony zerem.
Kody kreskowe mogą mieć różną długość i zwykle nie używają sumy kontrolnej, chociaż w niektórych sytuacjach używany jest znak kontrolny modulo 10. Możliwe jest częściowe skanowanie, ponieważ kod kreskowy przeplatany 2 z 5 nie jest samosprawdzalny, a pola danych o stałej długości są często używane, aby uniknąć tego problemu.
W skrócie:
- Koduje dane liczbowe;
- Długość jest zmienna, ale musi mieć parzystą liczbę cyfr;
- Suma kontrolna jest funkcją opcjonalną.
ITF to kod kreskowy o bardzo dużej gęstości danych, dlatego posiada następujące cechy:
- Rozmiar etykiety może być mniejszy niż w przypadku innych kodów z tymi samymi cyframi.Wygodne jest drukowanie kodów kreskowych na małych powierzchniach.
- Gdy rozmiar etykiety jest taki sam, można w tym kodzie zawrzeć więcej danych w porównaniu z innymi kodami. (Liczbę cyfr można zwiększyć.)
- Możliwa jest większa szerokość kreski, przy takim samym rozmiarze etykiety i tej samej liczbie cyfr.
Jeśli szerokość kreski w kodzie jest większa, to czytnik kodów kreskowych będzie mógł go łatwo odczytać. Można również wykonywać odczyty kodów z dużej odległości.
Chociaż ITF posiada wiele zalet, ma również tę wadę, że może „pomijać odczyt” ze względu na swój skład. Pomijanie odczytu oznacza, że kod kreskowy „3852” jest nieprawidłowo odczytywany jako „38”, a niektóre cyfry są pomijane.
Kody kreskowe ITF-14 i GTIN-14 są generowane przy użyciu symboliki „Przeplatany 2 z 5”. ITF-14 jest używany na pojemnikach transportowych i jest oparty na kodzie UPC. Zwykle kody kreskowe przeplatane są drukowane na opakowaniach z tektury falistej, w których znajduje się towar do dostawy i mają następującą budowę:
Kod kreskowy Industrial 2 of 5 został opracowany przez firmę Identicon Corp. and Computer Identics Corp. w 1970 roku i był szeroko stosowany w przemyśle. Jednak obecnie nie jest juz używany (z wyjątkiem niektórych zastosowań logistycznych). Kod kreskowy Industrial 2 of 5 wygląda tak i stosuje się w nim 5 kresek, by oznaczał jeden znak. Kod ten przypisuje dane tylko do kresek (nie do odstępów), dlatego ma bardzo małą gęstość danych:
Matrix 2 z 5 jest generatorem rodziny symboli Code 2 of 5 o większej gęstości, który został opracowany po raz pierwszy w 1968 roku. Był używany głównie do sortowania w magazynach i do wykańczania zdjęć. Symbol „2 z 5” wywodzi się z faktu, że z pięciu elementów (kresek i odstępów) używanych do kodowania każdego znaku, dwa są szerokie, a trzy wąskie.
Precyzyjne ustawienie kodów kreskowych w środowisku Delphi i Lazarus do druku
FastReport VCL umożliwia korzystanie ze wszystkich trzech typów kodów kreskowych. Zobaczmy, jak to zrobić.
W kreatorze FastReport VCL dodać komponent obCatBarcode do raportu i wybrać typ kodu kreskowego z listy:
Następnie, przejść do edytora kodów kreskowych:
Code – obszar wartości numerycznej kodu kreskowego;
Type of Bar – rodzaj kodu kreskowego można od razu zmienić w edytorze bez dodawania nowego komponentu do raportu;
Calc CheckSum – suma kontrolna. Wszystkie liniowe kody kreskowe mają tę właściwość. Należy pamiętać o „pominiętym odczycie ”? Musimy z tym zjawiskiem walczyć! Właściwość ta określa, czy suma kontrolna powinna być obliczana automatycznie. Jeśli ta funkcja jest wyłączona, suma kontrolna musi być obecna w tekście;
Zoom – funkcja ta ustawia skalę kodu kreskowego i jest używana tylko w połączeniu z funkcją „Autosize”;
Text – włączenie / wyłączenie wyświetlania tekstu pod kodem kreskowym;
Rotation – umożliwia ustawienie obrotu kodu pod jednym ze stałych kątów – 0, 90, 180, 270 stopni.
Należy sprawdzić spójność wygenerowanego kodu kreskowego (na szczęście, aparat i program do skanowania kodów kreskowych są już dostępne we wszystkich nowoczesnych smartfonach).
Tworzenie kodu kreskowego z kodu w środowisku Delphi / Lazarus
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
uses frxBarcod; procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc :=TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Ustawić typ kodu kreskowego} bc.BarType := bcCode_2_5_interleaved; {Ustawić stałą wartość kodu kreskowego} bc.Text := '123456'; {Ustawić obliczoną wartość kodu kreskowego} //bc.Expression := '<YourDatasetName."FieldName1"> + <YourDatasetName."FieldName2">'; {Jeśli jest to konieczne, ustawić, aby obliczyć sumę kontrolną i dodać ją na końcu kodu kreskowego} bc.CalcCheckSum := False; {Ustawić skalę, w jakiej kod kreskowy będzie wyświetlany} bc.Zoom := 2; {Ustawić kąt obrotu kodu kreskowego. Można wybrać następujące wartości: 0, 90, 180, 270} bc.Rotation := 0; {Ustawić, jeśli można, szerokość kodu kreskowego w zależności od jego zawartości.} {Jeśli ustawiono na False, Zoom zostanie ustawiony tak, aby zachować stałą szerokość kodu kreskowego} bc.AutoSize := True; {Ustawić kolor tła kodu kreskowego} bc.Color := clNone; {Ustawić kolor linii kodu kreskowego} bc.ColorBar := clBlack; {Wybrać, czy wyświetlać tekst na dole kodu kreskowego} bc.ShowText := True; frxReport1.ShowReport(); end; |
W tym momencie nasza wiedza o kodach kreskowych ITF jest szersza i możemy ich używać w naszych raportach, etykietach i wielu innych zastosowaniach.