Kod kreskowy, kod paskowy (ang. barcode) – graficzna reprezentacja informacji poprzez kombinację ciemnych i jasnych elementów, ustaloną według symboliki reguł opisujących budowę kodu, (np. jego wymiary, zbiór kodowanych znaków, algorytm obliczania cyfry kontrolnej i inne) danego kodu. Kod kreskowy przeznaczony jest dla czytników elektronicznych. Ma na celu umożliwienie automatycznego odczytywania informacji. Głównym zastosowaniem kodu kreskowego jest automatyczna identyfikacja produktów w szeroko pojętej logistyce.

Kod EAN-13: jeden z najczęściej występujących kodów na wyrobach konsumenckich. Prefiks 590 oznacza, iż dany produkt został zarejestrowany w polskiej organizacji GS1. Najczęściej oznacza to, że jest wyprodukowany w Polsce lub jest dystrybuowany przez polskie przedsiębiorstwo.
Ręczny czytnik kodów kreskowych

Historia

  • 1932 – Wallace Flint pisze na Uniwersytecie Harwardzkim pracę magisterską na temat automatycznych punktów kasowych w supermarketach
  • 1948 – Joe Woodland i Berny Silver rozpoczynają badania nad technicznym aspektem odczytu i kontroli cen artykułów żywnościowych w handlu
  • 1949 – Girard Feissel zgłasza w amerykańskim urzędzie patentowym wniosek dotyczący sposobu kodowania cyfr
    • 7 października 1952 – przyznanie patentu
  • 1970 – producenci i handlowcy z USA i Kanady tworzą stowarzyszenie do jednolitego kodowania towarów
  • 1973 – oficjalne zatwierdzenie kodu kreskowego UPC (Universal Product Code)
  • 1974 – powstanie tymczasowego komitetu badającego możliwość wprowadzenia jednolitego systemu identyfikacji towarów w Europie
    • 26 czerwca – pierwszy towar oznaczony kodem kreskowym Universal Product Code (UPC) przechodzi przez kasę w domu towarowym Marsh w Troy, w hrabstwie Miami, w stanie Ohio; towarem tym był multipak gumy do żucia „Wrigley's Juicy Fruit”[1][2]
  • 1976 – powstaje Europejski System Kodowania Towarów EAN (European Article Numbering)
  • 1976 – opracowanie pierwszego alfanumerycznego kodu kreskowego – Code 39
  • 1977 – powołanie Stowarzyszenia Kodowania Towarów EANA (European Article Numbering Association)
  • 1981 – przekształcenie systemu europejskiego w międzynarodowy – powstaje IANA
  • 1984 – opracowanie przez organizację «Automotive Industry Action Group» (AIAG) pierwszego standardu zakładającego wykorzystanie kodu składającego się z czterech kodów Code 39 ułożonych piętrowo jeden nad drugim
  • 1987 – wprowadzenie przez firmę «Intermec» pierwszego kodu dwuwymiarowego piętrowego Code 49
  • 1990 – przyjęcie Polski do systemu EAN i powołanie organizacji narodowej «CKK – Centrum Kodów Kreskowych» w Instytucie Logistyki i Magazynowania w Poznaniu
  • 1998 – organizacje EAN i UCC podjęły decyzję o kompleksowym scaleniu systemu UPC z systemem EAN, dzięki czemu obecnie funkcjonuje jeden globalny system EAN.UCC
  • 2005 – globalne Forum GS1, podczas którego oficjalnie dokonano zmiany nazwy z EAN International na GS1

Zasady działania

W trakcie odczytywania kodu techniką skanowania, światło pochodzące z czytnika, uformowane w cienką wiązkę (laser), przesuwa się wzdłuż czytanego kodu, w danym momencie oświetla niewielki punkt kodu, następnie światło to jest odbijane przez jasne elementy kodu (przerwy), a pochłaniane przez jego ciemne elementy (kreski, pola), co odczytuje fotodioda. Światło odbite od przerw powoduje powstanie w czytniku silniejszych sygnałów elektrycznych, natomiast w wyniku braku odbicia (kreski) powstają sygnały słabsze. W zależności od grubości kresek/przerw, różny jest też czas trwania poszczególnych sygnałów. Czas trwania każdego impulsu koduje informacje, które są tłumaczone przez dekoder czytnika na cyfry, litery lub inne znaki i przesyłane do komputera.

Występują również kody wykorzystujące więcej niż dwa kolory (np. Ultracode[3]), co umożliwia zapisanie większej ilości informacji.

Odwzorowanie kodów paskowych w materiale plastycznym np. metal, plastik lub guma może być wykonane przez wgłębienia. Ma to miejsce w kodach Bumpy Bar Code[4]. W tym przypadku czytnik analizuje kształty cienia w zagłębieniach przy skośnym ustawieniu źródła światła.

Zastosowanie kodów

Kody kreskowe posiadają wiele zastosowań w różnych dziedzinach działalności. Do najważniejszych z nich można zaliczyć:

  • identyfikację jednostek handlowych (numery GTIN), przy czym w tym ujęciu za jednostkę handlową uważa się dowolny produkt lub usługę, której można nadać cenę i która przepływa przez łańcuchu dostaw. A zatem do kategorii tej zalicza się jednostki (produkty) w opakowaniach zbiorczych i jednostkowych, sprzedawane w hurcie i detalu, dostępne na rynku krajowym (wewnętrznym) lub międzynarodowym, o stałej lub zmiennej ilości, o jednorodnej lub niejednorodnej zawartości. Do kategorii tej zalicza się również oznaczenia wydawnictw ciągłych (ISSN), muzycznych (ISMN) lub książek (ISBN)
  • identyfikację jednostek logistycznych (numery SSCC), czyli takich jednostek, które zostały utworzone dla potrzeb transportu i magazynowania (np. paletowe jednostki ładunkowe lub kontenerowe jednostki ładunkowe) oraz podlegają procesom identyfikacji, śledzenia i zarządzania podczas przepływu przez łańcuch dostaw. Związany z tym jest również termin Etykieta logistyczna, na której zawarte są podstawowe informacje o jednostce logistycznej
  • identyfikację zasobów (numery GIAI), a konkretniej zasobów trwałych (o statusie zapasów) przedsiębiorstwa (np. opakowań zwrotnych wielokrotnego użytku, palet)
  • identyfikację lokalizacji (numery GLN, SWIFT, DUNS, BSI/AFNOR), służącej do identyfikacji obiektów, którym można nadać adres (np. przedsiębiorstwa, konkretne pokoje, punkty sprzedaży, komunikaty EDI)
  • identyfikację relacji usługowych (numery GSRN nadawane usługobiorcom)
  • inne zastosowania, takie jak znakowanie kuponów, kwitów zwrotnych, rachunków, telefonów komórkowych, przesyłek kurierskich, recept, leków, stron internetowych i innych

Ze względu na fakt znakowania towarów w sprzedaży detalicznej oraz wydawnictw, do najczęściej spotykanych należą symboliki EAN (Europa) i UPC (Ameryka Północna).

Rodzaje kodów

Występuje około 250 rozwiązań w dziedzinie kodów kreskowych. W związku z tym istnieje kilka sposobów ich podziału:

  • Podział według wymiarowości kodu:
    • jednowymiarowe (liniowe, 1D) – informacje zapisane są w jednej linii (najczęściej w postaci kresek)
    • dwuwymiarowe piętrowe – rozwinięcie kodów jednowymiarowych polegające na istnieniu kilku linii kodu, jedna pod drugą
    • dwuwymiarowe matrycowe – informacja zapisana jest na określonej powierzchni, z tym że do zapisu nie są wykorzystywane kreski, lecz inne oznaczenia
    • kody złożone – występują w nich zarówno elementy kodów jednowymiarowych, jak i dwuwymiarowych
    • kody trójwymiarowe – zazwyczaj są to wytłaczane dowolne kody jednowymiarowe (Bumpy Bar Code). Różnica polega na tym, iż w zapisie/odczycie zamiast różnic w kolorach wykorzystuje się różnice głębokości tłoczenia[4]
  • Podział według szerokości kresek:
    • kody o jednej szerokości kresek (np. PosiCode[5]) – kodowanie polega na występowaniu, bądź nie, kreski w określonym miejscu
    • kody o dwóch szerokościach kresek
    • kody o wielu szerokościach kresek (modularne)
  • Podział według rodzaju kodowanych symboli:
  • Podział według ciągłości kodu (nie dotyczy kodów matrycowych):
    • kody ciągłe – nie występują w nich przerwy między kodowanymi znakami
    • kody dyskretne – występują przerwy między kodowanymi znakami
  • Podział według ilości kodowanych znaków:
    • kody o ściśle określonej liczbie kodowanych znaków (o stałej długości)
    • kody o różnej liczbie kodowanych znaków (o zmiennej długości)
  • Podział według przyjętej metody weryfikacji odczytanych danych:
    • kody samosprawdzalne (np. wszystkie kody typu m z n) – pewne procedury sprawdzania błędów są zaimplementowane w budowie kodu, np. poszczególne symbole są kodowane tak, aby różnić się od siebie maksymalnie, a zatem błędne odczytanie jednej kreski powoduje automatyczną niepoprawność kodu
    • kody ze znakiem kontrolnym (np. z cyfrą kontrolną)
    • kody samosprawdzalne z dodatkowym znakiem kontrolnym

Jednowymiarowe

Kody jednowymiarowe
Nazwa symboliki Numeryczny
/alfanumeryczny
Ciągły
/dyskretny
Dwie szerokości
/modularny
Stała/zmienna
długość
Uwagi i wykorzystanie
Codabar[6] alfanumeryczny dyskretny dwie Włączony do USS przez AIM
CODE 11[7] numeryczny dyskretny dwie
Kod 2 z 5[8]
(Code25)
numeryczny ciągły dwie występuje w kilku odmianach
Przeplatany 2 z 5[9]
(Code25 Interleaved)
numeryczny ciągły dwie zmienna
(parzysta ilość,
maks. 16)
Włączony do USS przez AIM
Kod 3 z 9[10]
(Code39)
alfanumeryczny
(43 znaki w podst. wer.)
dyskretny dwie zmienna Włączony do USS przez AIM
Code 93[11] alfanumeryczny (ASCII) ciągły modularny zmienna Włączony do USS przez AIM
Kod 128[12]
(Code128)
alfanumeryczny (ASCII) ciągły modularny zmienna Zaimplementowany przez GS1 jako GS1-128[13]. Występują odmiany A, B oraz C.
EAN-8[14] numeryczny ciągły modularny stała (8) Zaimplementowany przez GS1, opakowania jednostkowe
EAN-13[14] numeryczny ciągły modularny stała (13) Zaimplementowany przez GS1, opakowania jednostkowe, GTIN. Może występować z 2 lub 5 cyfrowym dodatkiem add-on.
GS1-128[13] alfanumeryczny (ASCII) ciągły modularny zmienna Zaimplementowany przez GS1. Opakowania zbiorcze, etykieta logistyczna
ITF-14[9] numeryczny ciągły dwie stała (14) Zaimplementowany przez GS1, opakowania zbiorcze
MSI Plessey ciągły dwie
UPC-A[14] numeryczny ciągły modularny stała (12) Zaimplementowany przez GS1, opakowania jednostkowe
UPC-E[14] numeryczny ciągły modularny stała (6) Zaimplementowany przez GS1, opakowania jednostkowe
PosiCode[5] alfanumeryczny ciągły jedna zmienna Włączony do USS przez AIM
POSTNET ciągły dwie
GS1 DataBar[15]
(RSS)
numeryczny lub
alfanumeryczny
ciągły modularny Zaimplementowany przez GS1; pełna implementacja w systemach skanujących od 2010 roku; do znakowania bardzo małych jednostek; licencja – domena publiczna; cechy kodu uzależnione są od wersji
Telepen[16] alfanumeryczny
(ASCII)
ciągły dwie Wykorzystywany w bibliotekach. Włączony do USS przez AIM

Kraj rejestracji i umowne znaczenie prefixu kodu EAN-13 i UPC-12

Według prefiksu.

  • 00–01: USA, Kanada
  • 02: USA[a]
  • 03: USA (farmaceutyki)
  • 04: USA[b]
  • 05: USA[c]
  • 06–09: USA, Kanada
  • 10–13: USA
  • 2: towary o zmiennej masie metkowane w sklepach
  • 30–37: Francja
  • 380: Bułgaria
  • 383: Słowenia
  • 385: Chorwacja
  • 387: Bośnia i Hercegowina
  • 389: Czarnogóra
  • 390: Kosowo
  • 40–43, 440: Niemcy[d]
  • 45: Japonia
  • 46: Rosja
  • 470: Kirgistan
  • 471: Tajwan
  • 474: Estonia
  • 476: Azerbejdżan
  • 475: Łotwa
  • 477: Litwa
  • 478: Uzbekistan
  • 479: Sri Lanka
  • 480: Filipiny
  • 481: Białoruś
  • 482: Ukraina
  • 483: Turkmenistan
  • 484: Mołdawia
  • 485: Armenia
  • 486: Gruzja
  • 487: Kazachstan
  • 488: Tadżykistan
  • 489: Hongkong
  • 49: Japonia
  • 50: Wielka Brytania
  • 520, 521: Grecja
  • 528: Liban
  • 529: Cypr
  • 530: Albania
  • 531: Macedonia Północna
  • 535: Malta
  • 539: Irlandia
  • 54: Belgia, Luksemburg
  • 560: Portugalia
  • 569: Islandia
  • 57: Dania, Grenlandia, Wyspy Owcze
  • 590: Polska
  • 594: Rumunia
  • 599: Węgry
  • 600, 601: Południowa Afryka
  • 603: Ghana
  • 604: Senegal
  • 607: Oman
  • 608: Bahrajn
  • 609: Mauritius
  • 611: Maroko
  • 613: Algieria
  • 615: Nigeria
  • 616: Kenia
  • 617: Kamerun
  • 618: Wybrzeże Kości Słoniowej
  • 619: Tunezja
  • 620: Tanzania
  • 621: Syria
  • 622: Egipt
  • 623: Brunei
  • 624: Libia
  • 625: Jordania
  • 626: Iran
  • 627: Kuwejt
  • 628: Arabia Saudyjska
  • 629: Emiraty Arabskie
  • 630: Katar
  • 631: Namibia
  • 64: Finlandia
  • 69: Chiny
  • 70: Norwegia
  • 729: Izrael
  • 73: Szwecja
  • 740: Gwatemala
  • 741: Salwador
  • 742: Honduras
  • 743: Nikaragua
  • 744: Kostaryka
  • 745: Panama
  • 746: Dominikana
  • 750: Meksyk
  • 754, 755: Kanada
  • 759: Wenezuela
  • 76: Szwajcaria, Liechtenstein
  • 770, 771: Kolumbia
  • 773: Urugwaj
  • 775: Peru
  • 777: Boliwia
  • 778, 779: Argentyna
  • 780: Chile
  • 784: Paragwaj
  • 786: Ekwador
  • 789, 790: Brazylia
  • 80–83: Włochy, San Marino, Watykan
  • 84: Hiszpania, Andora
  • 850: Kuba
  • 858: Słowacja
  • 859: Czechy
  • 860: Serbia
  • 865: Mongolia
  • 867: Korea Północna
  • 868, 869: Turcja
  • 87: Holandia
  • 880: Korea Południowa
  • 883: Mjanma
  • 884: Kambodża
  • 885: Tajlandia
  • 888: Singapur
  • 890: Indie
  • 893: Wietnam
  • 896: Pakistan
  • 899: Indonezja
  • 90, 91: Austria
  • 93: Australia
  • 94: Nowa Zelandia
  • 950: specjalne zastosowania
  • 951: w dyspozycji zarządu GS1
  • 952: przykłady i demonstracje GS1
  • 955: Malezja
  • 958: Makau
  • 96: specjalne zastosowania
  • 977: ISSN (czasopisma)
  • 978–979: ISBN (książki, w tym 9790 ISMN – wydawnictwa muzyczne[e])
  • 980: towary ze zwrotu
  • 981–983, 99: kupony

Dwuwymiarowe

 Osobny artykuł: Kody 2D.
Kody dwuwymiarowe
Nazwa symboliki Piętrowy
/Matrycowy
Uwagi i wykorzystanie
CodaBlock F[17] Piętrowy
Kod 49[18]
(Code49)
Piętrowy Włączony do USS przez AIM
Kod 16K[19]
(Code 16K)
Piętrowy Włączony do USS przez AIM
Code One[20] Matrycowy
PDF417[21] Piętrowy kod alfanumeryczny o dużej gęstości – na powierzchni porównywalnej z powierzchnią kodu EAN mieści ponad 1000 znaków; odporny na częściowe uszkodzenia. Włączony do USS przez AIM
Micro-PDF 417[21] Piętrowy Wykorzystywany w złożonych symbolikach RSS[15]. Włączony do USS przez AIM
RSS spiętrzony[15]
(GS1 DataBar)
Piętrowy Zaimplementowany przez GS1; pełna implementacja w systemach skanujących od 2010 roku; licencja – domena publiczna
Aztec Code[22] Matrycowy Możliwość kodowania cyrylicy, alfabetu hebrajskiego i arabskiego. Dostępny na licencji domeny publicznej. Włączony do USS przez AIM.
Data Matrix[23] Matrycowy Zaimplementowany przez GS1
MaxiCode[24]
(UPS MaxiCode)
Matrycowy Nadaje się do skanowania na elementach szybko przemieszczających się. Licencja – domena publiczna. Włączony do USS przez AIM.
Semacode[25] Matrycowy Stworzony na podstawie kodu Data Matrix. Koduje adresy URL
QR Code[26] Matrycowy Możliwość kodowania symboli pisma japońskiego, nadaje się do skanowania elementów szybko przemieszczających się. Włączony do USS przez AIM
ShotCode Matrycowy
SuperCode[27] Matrycowy domena publiczna
Ultracode[3] Występuje w wersjach czarno-białej i kolorowej. Domena publiczna. Opracowany przez Zebra Technologies.
VeriCode[28] Matrycowy Opracowany przez Veritec Inc.
VSCode[29] Matrycowy Opracowany przez Veritec Inc.

Złożone

Kody złożone
Nazwa
symboliki
Element
jednowymiarowy
Element
dwuwymiarowy
Uwagi i wykorzystanie
Aztec Mesa[30] Code 128, Code 39,
Code 93, Code 93i,
Przeplatany 2 z 5,
UPC-A, EAN-13
Aztec Code Zaimplementowany przez AIM
Symboliki
złożone
EAN.UCC[31]
EAN-13, EAN-8,
UPC-A, UPC-E,
EAN-128, RSS-14,
RSS Rozszerzony,
RSS Ograniczony
PDF 417,
Micro PDF417
Zaimplementowany przez GS1

Charakterystyczne cechy kodów

  • N – stosunek szerokości kreski szerszej do węższej w kodach o dwóch szerokościach kresek.
  • wymiar X (moduł) – szerokość najwęższego paska w kodach o wielu szerokościach kresek (modularnych). Inne szerokości są zazwyczaj wielokrotnością tej wartości.
  • Gęstość – ilość znaków możliwych do zakodowania na określonej długości – zależy od wymiaru X i rodzaju kodu.
  • Cicha strefa – obszar kodu występujący przed znakiem start i po znaku stop, który musi być pozbawiony innych oznaczeń. Jego kolor jest identyczny do koloru jasnych (białych) pasków.
  • Znaki Start i Stop – występujące w kodach liniowych oraz niektórych piętrowych; oznaczenia początku i końca kodu.
  • Wzór wyszukiwania – występujący w niektórych kodach matrycowych obszar kodu o specyficznym wyglądzie, który pozwala czytnikowi na odnalezienie konkretnego miejsca w kodzie, względem którego rozpatrywana jest reszta zeskanowanego obszaru.
  • Wzór orientacyjny – występujące w niektórych kodach matrycowych zgrupowanie elementów (o ściśle określonych kolorach i kształtach), pozwalające na określenie orientacji skanera względem odczytywanego kodu.

Urządzenia odczytujące

 Osobny artykuł: Skaner kodów kreskowych.

Początkowo do odczytu używano specjalnie zmodyfikowanych piór świetlnych, które musiały być przesuwane tuż nad kodem prostopadle do pasków, co okazywało się niewygodne. Obecnie do odczytu używa się czytników (zwanych także skanerami) różnorodnej konstrukcji, umożliwiających odczyt z pewnej odległości i mniej czułych na ustawienie odczytywanego kodu, które można, ze względu na technologię wykonania, generalnie podzielić na:

  • laserowe (większy zasięg odczytu),
  • diodowe CCD (większa odporność, większa szybkość odczytu),
  • oparte na kamerach video

Dodatkowo, wśród skanerów laserowych wyróżnia się skanery jednoliniowe oraz wieloliniowe. Skanery wieloliniowe mają dodatkowe promienie ułożone równolegle lub w kształt pięciokąta albo gwiazdy. Umożliwia to jeszcze większą niezależność od położenia odczytywanego kodu względem okna skanera.

Wraz ze wzrostem precyzji (gęstości) kodu oraz jego stopnia skomplikowania (np. kody matrycowe względem liniowych), wzrastają wymagania stawiane skanerom do jego poprawnego odczytu.

Zobacz też

RFID – Radiowy kod kreskowy

Uwagi

  1. Do użycia na ograniczonym obszarze geograficznym – towary metkowane w sklepach.
  2. Do użycia wewnętrzego w firmach.
  3. Zarezerwowane do przyszłego zastosowania.
  4. Kod 440: został „odziedziczony” po byłej NRD.
  5. Najczęściej chodzi o drukowane partytury.

Przypisy

  1. Heritage timeline. [dostęp 2009-10-07]. (zakładka dla roku 1974).
  2. Gavin Weightman: The History of the Bar Code., 23.09.2015, smithsonianmag.com.
  3. a b Opis kodu Ultracode na stronach aimglobal.org. aimglobal.org. [zarchiwizowane z tego adresu (2006-10-05)]. (ang.)
  4. a b Opis kodów Bumpy Bar Code na stronach dataid.com (ang.)
  5. a b opis kodu PosiCode na stronach aimglobal.org. aimglobal.org. [zarchiwizowane z tego adresu (2007-04-04)]. (ang.)
  6. Opis symboliki Codabar na stronie barcodeisland.com. barcodeisland.com. [zarchiwizowane z tego adresu (2007-06-30)]. (ang.)
  7. opis kodu na stronie barcodeisland.com. barcodeisland.com. [zarchiwizowane z tego adresu (2007-02-02)]. (ang.)
  8. Opis symboliki Kod 2z5 na stronie barcode.ro (ang.)
  9. a b (PDF)Specyfikacje symboliki ITF-14 na stronie gs1pl.org [dostęp: 2008.01.11].
  10. Opis symboliki Code39 na stronie barcodeman.com. barcodeman.com. [zarchiwizowane z tego adresu (2006-10-18)]. (ang.)
  11. Opis symboliki Code93 na stronie morovia.com (ang.)
  12. (PDF)Specyfikacja kodu GS1-128 na stronie organizacji GS1 [dostęp: 2008.01.11].
  13. a b (PDF)Specyfikacje symboliki GS1-128 na stronie gs1pl.org [dostęp: 2008.01.11].
  14. a b c d (PDF)Specyfikacje symboliki EAN/UPC na stronie gs1pl.org [dostęp: 2008.01.11].
  15. a b c (PDF)Specyfikacje symbolik RSS na stronach gs1pl.org [dostęp: 2008.01.11].
  16. (ang.)(PDF)Specyfikacje symboliki Telepen na stronie telepen.co.uk.
  17. Opis symboliki CodaBlock F na stronie barcode.ro (ang.)
  18. Opis symboliki Code49 na stronie barcode.ro (ang.)
  19. Opis symboliki Code16K na stronie barcode.ro (ang.)
  20. Opis symboliki Code One na stronie barcode.ro (ang.)
  21. a b Opis symboliki PDF417 na stronie pdf417.pl.
  22. Opis symboliki Aztec Code na stronach tkb-4u.com (ang.)
  23. Opis symboliki DataMatrix na stronie barcode.ro (ang.)
  24. Opis symboliki MaxiCode na stronie maxicode.pl.
  25. Opis kodu Semacode na stronie semacode.org. semacode.org. [zarchiwizowane z tego adresu (2008-07-05)]. (ang.)
  26. Opis kodu na stronie qrcode.com (ang.)
  27. Opis symboliki SuperCode na stronie aimglobal.org. aimglobal.org. [zarchiwizowane z tego adresu (2006-10-05)]. (ang.)
  28. Opis kodu VeriCode na stronie veritecinc.com. veritecinc.com. [zarchiwizowane z tego adresu (2018-11-30)]. (ang.)
  29. Opis kodu VSCode na stronie veritecinc.com (ang.)
  30. Opis symboliki Aztec Mesa na stronie aimglobal.org. aimglobal.org. [zarchiwizowane z tego adresu (2007-04-04)]. (ang.)
  31. (PDF)Specyfikacje symbolik złożonych GS1 na stronie gs1pl.org.

Bibliografia


Witaj

Uczę się języka hebrajskiego. Tutaj go sobie utrwalam.

Źródło

Zawartość tej strony pochodzi stąd.

Odsyłacze

Generator Margonem

Podziel się