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, START-B или START-C ограничивает код слева и определяет таблицу декодирования (A, B или C). Шаблон STOP ограничивает код справа. Перед шаблоном STOP идет шаблон контрольной суммы. (Мне не удалось выяснить, требуется ли перед контрольной суммой переключить таблицу декодирования, если в этом есть необходимость? Думаю что нет) Слева и справа штрихкода должны быть промежутки шириной по крайней мере в 10 модулей.
Некоторые специальные шаблоны (#99, #100 и #101), позволяют переходить от одной таблицы декодирования к другой. Шаблон SHIFT (#98) позволяет переключаться между таблицами A и B.
Функциональные шаблоны [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 Бесплатный онлайн ресурс для генерации ШК различных типов.
См. также
В другом языковом разделе есть более полная статья Code 128 (англ.). |