Wpisany przez Tomasz Lubiński,
23 września 2007 23:30
ITF-14 to zapisany przy pomocy kodu kreskowego Interleaved 2 of 5 kod EAN-14. Przeplatany kod 2 z 5 może zapisać tylko parzystą liczbę cyfr, w kodzie EAN-14 jest ich 14, a więc ten wymóg jest spełniony. Dodatkowo należy wspomnieć, że sposób obliczania sumy kontrolnej dla kodu EAN-14 oraz kodu kreskowego Interleaved 2 of 5 jest taki sam. W kodzie tym nieparzyste cyfry kodowane są za pomocą różnej szerokości pasków, a cyfry parzyste za pomocą różnej szerokości odstępów między nimi. Tabela kodowania przedstawiona jest poniżej. Gruby pasek ma szerokość dwu-krotnie większą
od paska cienkiego.
Cyfry kodowane są następująco (N - oznacza pasek/przerwę wąską, W - oznacza pasek/przerwę szeroką):
Cyfry kodowane są parami, pierwsza cyfra w parze kodowana jest za pomocą pasków, druga w parze za pomocą przerw. Zatem para 47 będzie zakodowana następująco: 4 kodowane jest: NNWNW, 7 kodowane jest NNNWW, biorąc szerokość pasków z 4 a szerokość przerw z 7 otrzymamy: cienki pasek, cienka przerwa, cienki pasek, cienka przerwa, gruby pasek, cienka przerwa, cienki pasek, gruba przerwa, gruby pasek, gruba przerwa, co zapisać możemy następująco: 1 0 1 0 11 0 1 00 11 00.
Zakodujemy następujący kod EAN-14: 25916485101318
obliczmy sumę kontrolną. (5 + 1 + 4 + 5 + 0 + 3) + (2 + 9 + 6 + 8 + 1 + 1 + 1) * 3 = 18 + 28*3 = 18 + 84 = 102, 102 mod 10 = 2, 10 - 2 = 8, 8 mod 10 = 8, czyli cyfra kontrolna powinna równać się 8, patrzymy na ostatnią cyfrę i rzeczywiście jest to 8, zatem podany kod EAN-14 jest prawidłowy.
Przejdźmy teraz do zakodowania go za pomocą kodu kreskowego Interleaved 2 of 5, tak by otrzymać ITF-14.
Znak start kodowany jest jako: 1010
Para "25" kodowana jest jako: 10011010010110
Para "91" kodowana jest jako: 10011010110100
Para "64" kodowana jest jako: 10110110010100
Para "85" kodowana jest jako: 11001010011010
Para "10" kodowana jest jako: 11010100100110
Para "13" kodowana jest jako: 11001001010110
Para "18" kodowana jest jako: 11001010100110
Znak stop kodowany jest jako: 1101.
Wszystko razem daje nam: 101010011010010110100110101101001011011001010011001010011010110101001001101100100101011011001010 1001101101
co w zapisie graficznym wygląda następująco:


Cyfra | Kod |
0 | NNWWN |
1 | WNNNW |
2 | NWNNW |
3 | WWNNN |
4 | NNWNW |
5 | WNWNN |
6 | NWWNN |
7 | NNNWW |
8 | WNNWN |
9 | NWNWN |
Cyfry kodowane są parami, pierwsza cyfra w parze kodowana jest za pomocą pasków, druga w parze za pomocą przerw. Zatem para 47 będzie zakodowana następująco: 4 kodowane jest: NNWNW, 7 kodowane jest NNNWW, biorąc szerokość pasków z 4 a szerokość przerw z 7 otrzymamy: cienki pasek, cienka przerwa, cienki pasek, cienka przerwa, gruby pasek, cienka przerwa, cienki pasek, gruba przerwa, gruby pasek, gruba przerwa, co zapisać możemy następująco: 1 0 1 0 11 0 1 00 11 00.
- Struktura kodu ITF-14:
- Znak start kodowany jako: 1010
- Kolejne pary cyfr kodu EAN-14 zakodowane zgodnie z tabelą powyżej
- Znak stop kodowany jako: 1101.
- Obliczanie cyfry kontrolnej przebiega następująco (zakładamy, że cyfra znajdująca się najbardziej na prawo (nie licząc cyfry kontrolnej) jest na parzystej pozycji):
- Sumujemy wszystkie cyfry na pozycjach nieparzystych
- Sumujemy wszystkie cyfry na pozycjach parzystych i mnożymy wynik razy 3
- Dodajemy do siebie obie sumy
- Wynik dzielimy mod 10, odejmujemy go od 10 i znów dzielimy mod 10
Przykład:
Zakodujemy następujący kod EAN-14: 25916485101318
obliczmy sumę kontrolną. (5 + 1 + 4 + 5 + 0 + 3) + (2 + 9 + 6 + 8 + 1 + 1 + 1) * 3 = 18 + 28*3 = 18 + 84 = 102, 102 mod 10 = 2, 10 - 2 = 8, 8 mod 10 = 8, czyli cyfra kontrolna powinna równać się 8, patrzymy na ostatnią cyfrę i rzeczywiście jest to 8, zatem podany kod EAN-14 jest prawidłowy.
Przejdźmy teraz do zakodowania go za pomocą kodu kreskowego Interleaved 2 of 5, tak by otrzymać ITF-14.
Znak start kodowany jest jako: 1010
Para "25" kodowana jest jako: 10011010010110
Para "91" kodowana jest jako: 10011010110100
Para "64" kodowana jest jako: 10110110010100
Para "85" kodowana jest jako: 11001010011010
Para "10" kodowana jest jako: 11010100100110
Para "13" kodowana jest jako: 11001001010110
Para "18" kodowana jest jako: 11001010100110
Znak stop kodowany jest jako: 1101.
Wszystko razem daje nam: 101010011010010110100110101101001011011001010011001010011010110101001001101100100101011011001010 1001101101
co w zapisie graficznym wygląda następująco:

Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Microsoft Visual Studio 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 2 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 2 |
Tomasz Lubiński | Java | .java | .java | ***** / 2 |
Poprawiony: 29 sierpnia 2012 18:41