Code 128
Стандарт штрихкода Code 128 существенно отличается от таких широко распространённых стандартов штрихового кода, как, например, EAN. Отличия заключаются, прежде всего, в возможности кодирования не только цифр, но и букв латинского алфавита, а также специальных символов. Кроме того, цифровой код в формате Code 128 становится очень компактным, что достигается за счёт «двойной упаковки» данных, когда две цифры записываются в один шаблон штрихкода. Буквенные символы кодируются обычным — «одиночным» — способом, что делает буквенный код в формате Code 128 вдвое длиннее цифрового.
Описание
Штриховой код Code 128 включает в себя 107 символов, из которых 103 символа данных, 3 стартовых и 1 остановочный (стоп) символ. Для кодирования всех 128 символов ASCII предусмотрено три комплекта символов штрихового кода Code 128 — A, B и C, которые могут использоваться внутри одного штрихкода.
- 128A — символы в формате ASCII от 00 до 95 (цифры от «0» до «9» и буквы от «A» до «Z»), специальные символы и символы FNC 1-4;
- 128B — символы в формате ASCII от 32 до 127 (цифры от «0» до «9», буквы от «A» до «Z» и от «a» до «z»), специальные символы и символы FNC 1-4;
- 128C — числа от 00 до 99 (двузначное число кодируется одним символом) и символ FNC 1.
Технические требования к символике штрихового кода Code 128, показатели символики, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения и строки-префиксы и идентификатора символики в России регламентируются ГОСТ 30743-2001 (ИСО/МЭК 15417—2000) (Заменен на ГОСТ ISO/IEC 15417-2013) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128 (Код 128)».
Структура Code 128
Структура штрихкода Code 128 достаточно проста. Штрихкод состоит из шести зон:
- Белое поле;
- Стартовый символ (Start);
- Кодированная информация;
- Проверочный символ (контрольный знак);
- Остановочный (Stop) символ;
- Белое поле.
Символы штрихового кода Code 128 состоят из трёх штрихов и трёх промежутков. Штрихи и промежутки имеют модульное построение. Ширина каждого штриха и промежутка составляет от 1 до 4 модулей (1 модуль = 0,33 мм). Ширина знака равна 11 модулям. Остановочный (стоп) знак состоит из тринадцати модулей и имеет четыре штриха и три промежутка.
Контрольный знак Code 128
Существует 107 шаблонов (patterns), каждый из которых кодируется 11 модулями, включающими 3 полоски (slim bars) и 3 промежутка (spaces). Исключение — стоп-шаблон [STOP] имеет 4 полоски и кодируется 13 модулями.
Каждый шаблон декодируется по таблице, для некоторых шаблонов определены управляющие воздействия, определяющие режим декодирования.
Один из трех стартовых шаблонов [START-A] (#103), [START-B] (#104) или [START-C] (#105) ограничивает код слева и определяет таблицу декодирования (A, B или C). Шаблон [STOP] (#106) ограничивает код справа. Перед шаблоном [STOP] идет шаблон контрольной суммы. Слева и справа от штрихкода должно быть свободное пространство (Quiet zone) шириной по крайней мере в 10 модулей.
Шаблон [SHIFT] (#98 в таблицах A и B) позволяет переключаться между таблицами A и B. Шаблоны [Code C] (#99 в таблицах A и B), [Code B] (#100 в таблицах A и C) и [Code A] (#101 в таблицах B и C) управляют непосредственным включением соответствующей таблицы декодирования.
Функциональные шаблоны [FNC1]-[FNC4] не определены.
Контрольная сумма занимает один шаблон и должна быть добавлена перед шаблоном [STOP]. Шаги для расчета контрольной цифры таковы:
1. Начальное значение = значению шаблона [START] (103, 104 или 105).
2. Для каждого следующего шаблона в сообщении (исключая [STOP]): взять его значение, умножить его на свою позицию (позиция первого шаблона после [START] равна 1). Результат добавить к контрольной сумме.
3. Контрольной суммой будет считаться остаток от деления результата на 103.
Значением (value) шаблона считается его порядковый номер в таблице (считаем с нуля).[1]
Примечания
- TradePilot (недоступная ссылка). — Описание стандарта штрихкода Code 128. Дата обращения: 29 ноября 2009. Архивировано 13 апреля 2012 года.
Ссылки
- Online barcode generator Бесплатный онлайн ресурс для генерации ШК различных типов. Please check — On this page make barcode fo type Code128 — not correct.
- Code 128 generator (MIT) JavaScript реализация