CODE 128 jest kodem kreskowym opracowanym przez Computer Identics Corporation (U.S.A.) w 1981 roku. CODE 128 może odwzorowywać wszystkie 128 znaków kodu ASCII (cyfry, duże/małe litery, symbole i kody sterujące). Z uwagi na to, że może on przedstawiać wszystkie znaki (z wyjątkiem japońskich kanji, hiragana i katakana), które mogą być używane za pomocą klawiatury komputerowej, jest to kod kreskowy przyjazny dla komputera.
Kod kreskowy Code-128 zawiera 107 znaków, z czego 103 to znaki danych, 3 znaki początku i 1 znak zakończenia. Aby zakodować wszystkie 128 znaków ASCII, istnieją trzy zestawy znaków kodu kreskowego Code128 - A, B i C, które mogą być użyte w jednym kodzie kreskowym.
- 128 A - znaki w formacie ASCII od 00 do 95 (cyfry od "0" do "9", litery od "A" do "Z") oraz znaki specjalne;
- 128 B - znaki w formacie ASCII od 32 do 127 (cyfry od "0" do "9", litery od "A" do "Z" oraz od "a" do "z"), a także znaki specjalne;
- 128 C - znaki ASCII od 00 do 99 (tylko dla kodu numerycznego).
Wymagania techniczne dotyczące symboliki kodu kreskowego Code-128, wskaźników symboliki, kodowania znaków danych, rozmiarów, algorytmów dekodowania, parametrów aplikacji, ciągów prefiksów i identyfikatorów symboliki są regulowane na całym świecie przez normę ISO/IEC 15417: 2007 “Information technology - Automatic identification and data capture techniques - Code 128 bar code symbology specification".
Podstawowy skład jest następujący:
1) Kod startowy
2) Cyfra kontrolna (modulus 103)
3) Kod stop
Struktura kodu Cod-128
Struktura kodu kreskowego Code128 jest dość prosta. Kod kreskowy składa się z 6 stref:
- Białe pole;
- Symbol startu (Start);
- Zakodowane informacje;
- Symbol kontrolny (cyfra kontrolna);
- Symbol stopu;
- Białe pole.
Symbole kodów kreskowych Code-128 składają się z 3 pasków i 3 odstępów (łącznie 6 elementów). Paski i spacje mają szerokość od 1 do 4 moduli (1 modul = 0,33 mm). Szerokość znaku wynosi 11 modułów. Symbol stopu składa się z trzynastu modułów i ma 4 kreski i 3 spacje.
Przy okazji, "Modulus 103" jest używany w tym kodzie kreskowym jako cyfra kontrolna. Zgodnie z tabelą symboli kodów kreskowych Code-128, każdemu znakowi przypisana jest odpowiednia wartość. Następnie, dla każdego znaku, z wyjątkiem "Stop" i znaku kontrolnego, przypisywany jest współczynnik wagowy 1, 2, 3, ..., n. W tym przypadku, symbolowi "Start" i pierwszemu znakowi po nim następującemu przypisany jest współczynnik wagowy równy jeden. Cyfra kontrolna jest obliczana jako suma iloczynów współczynników wagowych przez odpowiadające im wartości modulus 103. Cyfra kontrolna znajduje się pomiędzy ostatnim symbolem danych a symbolem "Stop".
Kod-128 może zmieniać typ kodowania w jednym kodzie kreskowym. Poniższy rysunek przedstawia przejście z Code-C na Code-A.
1] Zacznij od CODE-C
2] Zmiana na CODE-A
Gdy CODE-C jest używany jako znak startowy, jeden wzór paska może reprezentować 2 cyfry, jest to tak zwana "kompresja podwójnej gęstości". Pozwala to na zwiększenie gęstości danych. Powyższy przykład jest właśnie takim przypadkiem.
Jeśli kod kreskowy składa się z 12 lub więcej cyfr, CODE 128 ma mniejszy rozmiar niż ITF i EAN- 128.
Ponieważ CODE 128 wykorzystuje 4 rodzaje wielkości pasków, wymagane są drukarki o wysokiej jakości druku. CODE 128 nie nadaje się do drukowania za pomocą drukarek igłowych i drukarek atramentowych FA oraz do druku fleksograficznego na tekturach falistych.
Zastosowania
CODE 128 jest używany w następujących branżach:
- Przemysł odzieżowy USA.
- Przemysł przetwórstwa spożywczego w USA.
- Przemysł leków i sprzętu medycznego w USA.
- Przemysł spożywczy w Australii i Nowej Zelandii.
- Europejski przemysł leków i instrumentów medycznych.
Opakowanie jednostkowe | Opakowania transportowe | Opakowania logistyczne |
Butelka na sok jagodowy, 3 l., szklana butelka | 6 szt., pudełko kartonowe | 24 szt., paleta |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
4611234567893 | 14611234567899 | (02)14611234567890(37)24 |
EAN-13 | ITF-14 | Code-128 |
461 w każdym kodzie kreskowym jest nazywany kodem regionalnym krajowych organizacji GS1 (na przykład, 460-469 Rosja) (000-139 USA) | 1 (na samym początku) jest wskaźnikiem poziomu opakowania dla danego kartonu. Ten jednocyfrowy prefiks może mieć zakres od 0 do 8. (na przykład, 1 dla pudełka, 2 dla pojemnika, itd.). |
(02) - GTIN pozycji handlowych w ładunku |
Tworzenie kodu kreskowego z kodu w FastReport VCL
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
uses frxClass, frxBarcode, frxBarcod, frxDBSet, Printers; var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; Barcode: TfrxBarcodeView;] begin {Wyczyść raport} frxReport1.Clear; {Dodaj stronę "Dane" } DataPage := TfrxDataPage.Create(frxReport1); {Dodaj stronę } Page := TfrxReportPage.Create(frxReport1); { Utwórz unikalną nazwę } Page.CreateUniqueName; {Ustaw domyślne marginesy, rozmiary papieru i orientację } Page.SetDefaults; {Zmiana orientacji strony } Page. Orientation := poLandscape; {Dodaj tytuł raportu } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; {W przypadku pasma wystarczy ustawić współrzędną górną i wysokość } { Obie współrzędne są w pikselach } Band.Top := 20; Band.Height := 40; {Utwórz obiekt kodu kreskowego } Barcode := TfrxBarcodeView.Create(Band); {Ustaw typ kodu kreskowego } Barcode.BarType := bcGS1Code128; {Ustaw kombinację liczbową do kodowania } Barcode.Text := "(02)14611234567890(37)24"; {Ustaw pozycję i rozmiar obiektu } Barcode.Top := 0; Barcode.Left := 10; Barcode.Height := 40; {Ustawianie wyświetlania tekstu na dole kodu kreskowego } Barcode.ShowText := True; {Wyświetl raport } frxReport1.ShowReport; end; |
Tworzenie kodu kreskowego z kodu w FastReport .NET
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 |
// Tworzenie obiektu raportu Report report = new Report(); // Tworzenie strony raportu ReportPage page = new ReportPage(); // dodaj unikalny identyfikator page.CreateUniqueName(); //Dodaj go do zbioru stron raportu report.Pages.Add(page); // Utwórz pasmo danych DataBand dataBand = new DataBand(); //z unikalnym identyfikatorem dataBand. CreateUniqueName(); //i dodaj go do kolekcji pasm page.Bands.Add(dataBand); //Utwórz obiekt kodu kreskowego FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject(); //Ustaw typ kodu kreskowego barcode.Barcode = new FastReport.Barcode.Barcode128(); //Ustaw kombinację liczbową do kodowania barcode.Text = "(02)14611234567890(37)24"; //Umieść kod kreskowy na stronie barcode. Parent = dataBand; //Ustaw rozmiar obiektu barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3); //Wyświetlanie raportu report.Show(); |
Teraz już wiesz nieco więcej o kodzie kreskowym Code-128 i jego odmianach A, B, C.