Quiet Zones: Niewidzialny margines, od którego zależy działanie Twojego kodu
Autor Tomasz Lichosik
Gotowy na wygenerowanie kodów?
Twórz wysokiej jakości etykiety w kilka sekund.
Jeśli kiedykolwiek zastanawiałeś się, dlaczego niektóre kody kreskowe skanują się idealnie za każdym razem, podczas gdy inne wymagają wielokrotnego przesuwania skanera, sekret często tkwi w czymś, czego nie widać: w Strefie Ciszy (Quiet Zone).
Dla człowieka to po prostu „biała przestrzeń" albo „margines". Dla skanera to najważniejszy sygnał, który mówi: „przestań patrzeć na tło, kod zaczyna się tutaj".
Kłopot w tym, że większość poradników kończy się na „zostaw trochę białego miejsca". Specyfikacje są znacznie bardziej konkretne: każda symbologia podaje dokładną szerokość, a szerokości tej nie mierzy się w milimetrach. Ten przewodnik daje prawdziwe liczby, rachunek zamieniający je na milimetry Twojej etykiety i sposób sprawdzenia tego, co już drukujesz.
Czym właściwie jest strefa ciszy
Strefa ciszy to obowiązkowy pusty obszar (zwykle biały) po lewej i prawej stronie kodu kreskowego.
W przeciwieństwie do kresek i przerw wewnątrz kodu, które niosą właściwe dane, strefa ciszy nie zawiera żadnych danych. Jej jedynym zadaniem jest stworzenie czystej granicy kontrastu.
Wyobraź sobie: wiązka skanera przesuwa się po etykiecie. Jeśli kod stoi tuż przy czarnej linii, logotypie albo ciemnej krawędzi kartonu, skaner nie odróżni, gdzie kończy się tło, a zaczyna kod. Efekt: nieudany skan.
Rzecz, którą prawie wszyscy przeoczają — i powód, dla którego tyle etykiet zawodzi: strefa ciszy jest częścią symbolu, a nie marginesem wokół niego. Kiedy specyfikacja mówi, że EAN-13 ma 37,29 mm szerokości, ta liczba już obejmuje białe marginesy. Po ich przycięciu nie masz węższego EAN-13 — masz coś, co nie jest już EAN-13.
Najpierw wymiar X
Każde wymaganie dotyczące strefy ciszy wyraża się jako wielokrotność X — szerokości najwęższej kreski w symbolu (przy kodach 2D: szerokości jednego modułu, czyli jednego z małych kwadratów). Bez tego nic dalej nie ma sensu.
To X skaluje się razem z kodem. Wydrukuj kod dwa razy większy, a X się podwoi — więc strefa ciszy w milimetrach też. Dlatego „zostaw 3 mm" to zła rada: przy jednym rozmiarze poprawna, przy innym wyraźnie błędna.
W handlu przy EAN i UPC nie mówi się o X wprost, tylko o powiększeniu, gdzie 1,00 to rozmiar nominalny:
| Powiększenie | Wymiar X | Szerokość całkowita EAN-13 | Wysokość całkowita EAN-13 |
|---|---|---|---|
| 0,80 (najmniejsze dopuszczalne) | 0,264 mm | 29,83 mm | 20,74 mm |
| 1,00 (nominalne) | 0,330 mm | 37,29 mm | 25,93 mm |
| 1,50 | 0,495 mm | 55,94 mm | 38,90 mm |
| 2,00 (największe dopuszczalne) | 0,660 mm | 74,58 mm | 51,86 mm |
Poniżej 0,80 symbol wychodzi poza normę i sieć handlowa ma prawo go odrzucić.
Wymagania, symbologia po symbologii
Tutaj rozsypuje się popularna zasada „dziesięć razy najwęższa kreska". Dla rodziny Code jest z grubsza słuszna, dla prawie wszystkiego innego — nie. Zwłaszcza dla EAN-13, którego strefa ciszy jest asymetryczna.
| Symbologia | Lewa | Prawa | Uwagi |
|---|---|---|---|
| EAN-13 | 11X | 7X | Asymetryczna — lewy margines jest szerszy |
| EAN-8 | 7X | 7X | |
| UPC-A | 9X | 9X | |
| UPC-E | 9X | 7X | Asymetryczna |
| EAN/UPC z dodatkiem | — | 5X | Oraz 5X między symbolem głównym a dodatkiem |
| Code 128 / GS1-128 | 10X | 10X | |
| Code 39 | 10X | 10X | Część specyfikacji dokłada próg 6,35 mm |
| ITF-14 | 10X | 10X | Plus pasy nośne wokół symbolu |
| Interleaved 2 of 5 | 10X | 10X | |
| Kod QR | 4 moduły | 4 moduły | Ze wszystkich czterech stron |
| DataMatrix | 1 moduł | 1 moduł | Ze wszystkich czterech stron |
| PDF417 | 2X | 2X | Ze wszystkich czterech stron |
Dwie rzeczy warte zatrzymania.
Asymetria EAN-13 jest prawdziwa i regularnie zaskakuje. Lewy margines jest szerszy, bo skaner potrzebuje więcej rozbiegu, żeby złapać lewy znak brzegowy. Wyśrodkowanie symbolu w ramce „ciasnej, ale równej z obu stron" daje zgodny margines prawy i za krótki lewy — czyli awarię, która pojawia się tylko na niektórych skanerach. To najgorszy rodzaj usterki do namierzenia.
Kody 2D mierzy się dookoła, nie tylko z lewej i prawej. Kod QR z 4 wolnymi modułami po bokach, ale z tekstem wciśniętym tuż pod spodem, jest niezgodny z normą — a skanery obrazowe, które lokalizują kod po znacznikach pozycjonujących, poradzą sobie z tym najgorzej.
Rachunek w milimetrach
Rachunek jest krótki i warto go zrobić raz dla każdej projektowanej etykiety.
Dla EAN-13 w rozmiarze nominalnym X wynosi 0,330 mm:
- Lewa strefa ciszy: 11 × 0,330 = 3,63 mm
- Prawa strefa ciszy: 7 × 0,330 = 2,31 mm
- Sam układ kresek ma 95 modułów: 95 × 0,330 = 31,35 mm
- Razem: 3,63 + 31,35 + 2,31 = 37,29 mm, czyli dokładnie szerokość nominalna ze specyfikacji
To ostatnie równanie jest właściwym testem. Jeśli Twoja ramka na EAN-13 w rozmiarze nominalnym jest węższa niż 37,29 mm, coś już zostało przycięte.
Przy kodzie QR licz w modułach. Symbol w wersji 2 ma 25 × 25 modułów. Wydrukowany na szerokości 25 mm daje moduł 1 mm, więc potrzebujesz 4 mm wolnego z każdej strony, a etykieta musi zarezerwować 33 × 33 mm.
Przy Code 128 X zależy od drukarki i ilości zakodowanych danych, więc podejdź od drugiej strony: zmierz najwęższą kreskę w swoim wydruku, pomnóż przez 10 — to Twój margines z każdej strony.
Cztery sposoby na zniszczenie strefy ciszy
Przy projektowaniu etykiet w Wordzie, Canvie czy Illustratorze wracają wciąż te same błędy.
- Ściśnięcie — zmniejszenie marginesów, żeby wcisnąć kod w zbyt małą ramkę. Zdecydowanie najczęstszy przypadek i zdarza się na etapie składu, długo po tym, jak kod został poprawnie wygenerowany.
- Nachodzenie — ozdobna ramka, logo albo plakietka z ceną wchodzi w margines. Liczy się wszystko, co ciemne, łącznie z włosową linią.
- Spad — druk tak blisko krawędzi arkusza, że linia cięcia, wykrojnik albo zaokrąglony róg etykiety wchodzi w margines.
- Ramka etykiety — ta, której nikt nie podejrzewa. Arkusze etykiet często rysują ramkę wokół każdej etykiety dla ułatwienia pozycjonowania. Jeśli ta ramka się drukuje, zamiast być tylko prowadnicą, to ciemna linia leżąca dokładnie tam, gdzie powinna być strefa ciszy.
Jest jeszcze piąty, który nie jest błędem projektowym: rozciąganie. Przeciągnięcie kodu, żeby dopasować go do ramki, zniekształca X w poziomie, podczas gdy strefa ciszy zostaje na miejscu — symbol zgodny na pliku przestaje być zgodny na etykiecie.
Jak sprawdzić to, co już drukujesz
Do wyłapania oczywistych błędów nie potrzeba weryfikatora.
Metoda pomiarowa. Zeskanuj wydrukowaną etykietę na płasko w 1200 dpi. Przy tej rozdzielczości jeden piksel to 0,021 mm, więc najwęższą kreskę i biały margines zmierzysz wprost w dowolnym edytorze grafiki, a potem podzielisz jedno przez drugie. Wynik to margines wyrażony w X — czyli w jednostce, w której napisana jest tabela powyżej.
Co mówi prawdziwy weryfikator. Norma ISO/IEC 15416, opisująca jakość druku symboli liniowych, nie ocenia strefy ciszy w skali płynnej. Naruszona strefa ciszy uniemożliwia zdekodowanie symbolu, a symbol, który się nie dekoduje, dostaje ocenę F — niezależnie od tego, jak perfekcyjnie został wydrukowany. Nie ma tu ocen częściowych i właśnie dlatego ten drobiazg jest wart uwagi.
Pułapka testu telefonem. Aparaty w smartfonach i skanery obrazowe są wyjątkowo tolerancyjne — często odczytają symbol zupełnie pozbawiony strefy ciszy. Zdany test telefonem niewiele więc dowodzi. Stacjonarny skaner laserowy przy kasie w markecie jest znacznie surowszy i to on decyduje, czy Twój produkt się sprzeda.
Jak zrobić to dobrze już przy generowaniu
Pewna droga to przestać poprawiać marginesy ręcznie w programie do składu i ustawić margines tam, gdzie powstaje symbol — w jednostkach X.
Jeśli generujesz kody programistycznie, odpowiednia opcja zwykle nazywa się od dopełnienia, a nie od strefy ciszy, i jej wartość domyślna często jest poniżej normy:
- bwip-js —
paddingwidth, w jednostkach przed skalowaniem, gdzie jedna jednostka to jeden X.paddingwidth: 11pokrywa wszystkie wymagania 1D z tabeli powyżej. Uwaga natextxalign: 'center': ta opcja zmienia układ EAN/UPC i usuwa lewy margines, który biblioteka dodałaby sama — obie trzeba więc ustawiać razem. - JsBarcode —
margin,marginLeft,marginRight, w pikselach. Domyślne 10 px to margines stały: przy domyślnej szerokości kreski 2 px wychodzi 5X i relatywnie maleje z każdym zwiększeniem szerokości kreski. Wylicz go ze swojego X, zamiast zostawiać. - node-qrcode —
margin, w modułach. Domyślne 4 jest poprawne; cokolwiek mniejszego nie jest.
Potem eksportuj wektorowo. Plik SVG lub PDF zachowuje dokładną proporcję między kreskami a marginesem w każdym rozmiarze — o to właśnie chodzi. Eksport rastrowy zapisuje strefę ciszy jako liczbę pikseli, która przestaje być poprawna, gdy tylko ktoś przeskaluje obrazek.
Kody 1D i 2D wygenerujesz i wyeksportujesz jako SVG albo gotowy do druku PDF na BarcodeReady. Niezależnie od narzędzia: zmierz jedną wydrukowaną próbkę względem tabeli powyżej, zanim puścisz serię produkcyjną. Kilka milimetrów bieli decyduje o tym, czy etykieta działa, czy po cichu zawodzi.