code 128 что это значит

Code 128

code 128 что это значит. Смотреть фото code 128 что это значит. Смотреть картинку code 128 что это значит. Картинка про code 128 что это значит. Фото code 128 что это значит

code 128 что это значит. Смотреть фото code 128 что это значит. Смотреть картинку code 128 что это значит. Картинка про code 128 что это значит. Фото code 128 что это значит

Стандарт штрихкода Code 128 существенно отличается от таких широко распространённых стандартов штрихового кода, как например, EAN. Отличия заключаются, прежде всего, в возможности кодирования не только цифр, но и букв латинского алфавита, а также специальных символов. Кроме того, цифровой код в формате Code 128 становится очень компактным, что достигается за счёт «двойной упаковки» данных, когда два числа записываются в один модуль штрихкода. Буквенные символы кодируются обычным — «одиночным» способом, что делает буквенный код в формате Code 128 вдвое длиннее цифрового.

Содержание

Описание

Штриховой код Code 128 включает в себя 107 символов. Из которых 103 символа данных, 3 стартовых, и 1 остановочный (стоп) символ. Для кодирования всех 128-ми символов ASCII предусмотрено три комплекта символов штрихового кода Code 128 — A, B и C, которые могут использоваться внутри одного штрихкода.

Технические требования к символике штрихового кода Code 128, показатели символики, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения и строки-префиксы и идентификатора символики в России регламентируются ГОСТ 30743-2001 (ИСО/МЭК 15417—2000) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128 (Код 128)».

Структура Code 128

Структура штрихкода Code 128 достаточно проста. Штрихкод состоит из шести зон:

Символы штрихового кода Code 128 состоят из трёх штрихов и трёх промежутков. Штрихи и промежутки имеют модульное построение. Ширина каждого модуля составляет от 1 до 4 модулей (1 модуль = 0,33 мм). Ширина знака равна 11 модулям. Остановочный (стоп) знак состоит из тринадцати модулей и имеет четыре штриха и три промежутка.

Контрольный знак Code 128

В спецификации Code 128 использование контрольного знака является обязательным. Согласно таблице символов штрихкода Code 128, каждому знаку присваивается соответствующие значение. Затем, для каждого знака, кроме знака «Stop» и контрольного знака, назначается весовой коэффициент, 1, 2, 3,…, n. При этом, знакам «Start» и следующему за ним первому знаку, присваивается весовой коэффициент равный 1. Контрольный знак вычисляется как сумма произведений весовых коэффициентов на соответствующие значения по модулю 103. Располагается контрольный знак между последним знаком данных и знаком «Stop». [1]

Примечания

См. также

Полезное

Смотреть что такое «Code 128» в других словарях:

Code 128 — Wikipedia encoded in Code 128 B Code 128 is a very high density barcode symbology. It is used for alphanumeric or numeric only barcodes. It can encode all 128 characters of ASCII and, by use of an extension character (FNC4), the Latin 1… … Wikipedia

Code 128 — Wikipedia codificado en Code 128 B. Code 128 es un código de barras de alta densidad, usado ampliamente para la logística y paquetería. Puede codificar caracteres alfanuméricos o solo numéricos. Con este código es posible representar todos los… … Wikipedia Español

Code 128 — Le Code 128 est un format de code barres permettant de coder 103 caractères de la table ASCII. Il en existe 3 tables de codage : A, B et C. C est un format courant dans le milieu industriel. Il existe une normalisation qui dérive du Code 128 … Wikipédia en Français

Code 128 — Beispiel für Code128 Der Code128 (1981) ist eine alphanumerische Kodierung mit hoher Informationsdichte, die im Barcode Bereich eingesetzt wird. Der Prinzipaufbau eines Code128 Lesesymbols besteht aus einem Startsymbol, der Nutzinformation, dem… … Deutsch Wikipedia

128 (number) — 128 (one hundred [and] twenty eight) is the natural number following 127 and preceding 129. ← 127 129 → 128 ← … Wikipedia

Code-barre EAN — Code barres EAN Le code EAN (European Article Numbering) est un code barres utilisé par le commerce et l industrie conformément aux spécifications d’EAN International, organisme aujourd hui remplacé par GS1[1]. Il est connu en France sous le nom… … Wikipédia en Français

Code-barre — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Code barre — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Code barres — code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée et des… … Wikipédia en Français

Code à barres — Code barres code 128 et code 39 Un code barres, ou code à barres, est la représentation d une donnée numérique ou alphanumérique sous forme d un symbole constitué de barres et d espaces dont l épaisseur varie en fonction de la symbologie utilisée … Wikipédia en Français

Источник

Мой штрихкод. Code128

Однажды в процессе производственной деятельности у меня появилась необходимость генерации штрихкода по стандарту code128. Появилась в виду того, что имевшаяся в эксплуатации функция (хранимая процедура в базе Oracle) генерировала клёвый, полосатый штрихкод, который читался не во всех случаях. Разработчики в своё время оттестировали эту процедуру весьма некачественно, но перерабатывать уже не собирались т.к. проект был давно сдан, а потребности в считывании так и не появились.

Первая мысль — поиск готовых библиотек. Навскидку определили критерии — с pl/sql не связываемся, пусть это будет внешний сервис: возможно кусок на javascript для генерации прямо на страничке, либо обращение за картинкой к ближайшему серверу где имеется php. Беглый поиск в интернете показал что тема истоптана весьма плотно. Есть как наколенные поделки уровня лабораторки по программированию, так и мощные библиотеки для всех вариантов кодирования вплоть до qr-кодов. Варианты с JavaScript пришлось отбросить т.к. они во-первых практически все «обфусканы» (даже непонятно, то ли для сокращения объема, то ли стыдно исходники показать), во-вторых генерируют строку для отображения определенным шрифтом, наличие которого не всегда можно обеспечить на клиентском месте и требует дополнительных обработок для экранирования спецсимволов. Внимательное изучение библиотек и кусков кода на php тоже произвело тягостное впечатление — на первый взгляд всё вроде бы правильно: и классы написаны на все случаи жизни, комментарии в наличии, украшательства типа выбора цвета и рамочек, примеры подготовлены. Начнёшь вникать — хотят либо php самой распоследней версии (на боевых серверах не всегда это получается добыть), либо внутренняя логика не различима совсем, либо штрихкод на выходе получается длиннее ожидаемого. Вот последнее не дало покоя и подтолкнуло к собственной реализации.

Самое время пощупать теорию. Вернее мы с ней познакомились намного раньше, просто до последнего не хотелось ввязываться в дополнительное программирование. Исторические факты опустим, а вот очень хорошее техническое описание имеется на http://code128.narod.ru/ (в архиве это файл Descript.doc ) либо в Википедии. В принципе, это всё что нам потребуется для понимания и собственной реализации алгоритма (тут я немного лукавлю — из любой готовой библиотеки нужно выдрать таблицы толщин штрихов, чтобы не вбивать их вручную). Ну и напишем всё это безобразие на php, заодно посмотрим пару прикольных моментов, про которые все забывают или стесняются использовать.

Теория гласит, что code128 позволяет закодировать (сюрпрайз!) 128 символов, при этом нам доступно 3 алфавита, между которыми можно переключаться по ходу дела. Наибольший практический интерес представляют алфавит «B» для буквенно-цифровых символов и алфавит «С» который используется для кодирования цифр, но с некоторой оптимизацией — одним штриховым символом можно закодировать 2 исходных символа и получить более короткий штрихкод. Вот эта оптимизация пока не даётся ни одному php-разработчику — максимум что я видел это попытка в начале кодирования определить состав строки и при наличии только цифр переключаться на алфавит «С». В остальных библиотеках это банальная подстановка символов штрихкода по таблице.

code 128 что это значит. Смотреть фото code 128 что это значит. Смотреть картинку code 128 что это значит. Картинка про code 128 что это значит. Фото code 128 что это значит

Сразу набросаем простейший класс который содержит сам текст, такие-же классы для рассмотрения вариантов по алфавиту B и С, длину последовательности. Делаем ему минимальный конструктор — на входе строка для кодирования, режим кодирования, ссылки на потомков. В начале конструктора добавляем проверки, чтобы не прорабатывать данную ветку дерева:

и сразу ловим конкретный косяк — куча «пустых» объектов. И это не смотря на то что мы явно отказались создаваться и вроде как железно возвращаем NULL! В общем сразу надо понять, что в php объект создаётся в любом случае. Полагаю что также и в остальных объектно-ориентированных языках. И все эти условия надо проверять перед созданием объекта. Следовательно правильный конструктор будет выглядеть примерно так:

Итак, худо-бедно мы нашли самый короткий путь (штрихкод). Надо его вывести для начала на экран. Делаем в два этапа: сначала от потомка возвращаемся к родителю. Итоговые символы, включая переключение между алфавитами, пушим (push) в массив. Да, в PHP есть такая функция, и она позволяет нам сделать из массива довольно удобный стэк.

Когда потребуется вывести строку — используем array_pop. Таким образом, мы по прежнему используем данный массив как стэк и легко выводим информацию в обратном порядке. Попутно готовим дополнительную обвязку для нашего штрихкода — старт/стоп/контрольная сумма.

Как этим пользоваться? В файл с классом в конец добавим пару строк:

попробовать можно сразу, вставив в html-страничку примерно вот такой тэг:

Источник

code 128 что это значит. Смотреть фото code 128 что это значит. Смотреть картинку code 128 что это значит. Картинка про code 128 что это значит. Фото code 128 что это значит

GS1-128 (ранее известный как UCC / EAN-128) является подмножеством Code 128 и широко используется во всем мире в отраслях судоходства и упаковки в качестве идентификационного кода продукта для уровней контейнера и поддона в цепочке поставок.

СОДЕРЖАНИЕ

Технические характеристики

code 128 что это значит. Смотреть фото code 128 что это значит. Смотреть картинку code 128 что это значит. Картинка про code 128 что это значит. Фото code 128 что это значит

Штрих-код Code 128 состоит из семи разделов:

Контрольный символ рассчитывается из взвешенной суммы ( по модулю 103) всех символов.

Подтипы

Код 128 включает 108 символов: 103 символа данных, 3 начальных символа и 2 символа остановки. Каждый символ состоит из трех черных полос и трех белых промежутков разной ширины. Все ширины кратны базовому «модулю». Каждая полоса и пробел имеют ширину от 1 до 4 модулей, а символы имеют фиксированную ширину: сумма ширины трех черных полос и трех белых полос составляет 11 модулей.

Шаблон остановки состоит из двух перекрывающихся символов и четырех полосок. Шаблон остановки разрешает двунаправленное сканирование. Когда шаблон остановки читается слева направо (обычный случай), распознается символ остановки (за которым следует двухмодульная полоса). Когда шаблон остановки читается справа налево, распознается символ обратного останова (за которым следует двухмодульная полоса). Сканер, который видит символ обратного останова, знает, что он должен пропустить двухмодульную полосу и прочитать остальную часть штрих-кода в обратном порядке.

Несмотря на свое название, Code 128 не имеет 128 различных символов, поэтому он не может напрямую представлять 128 кодовых точек. Чтобы представить все 128 значений ASCII, он переключается между тремя кодовыми наборами (A, B, C). Вместе кодовые наборы A и B охватывают все 128 символов ASCII. Кодовый набор C используется для эффективного кодирования цепочек цифр. Начальное подмножество выбирается с помощью соответствующего начального символа. В каждом кодовом наборе некоторые из 103 кодовых точек данных зарезервированы для перехода к одному из двух других кодовых наборов. Сдвиги выполняются с использованием кодовых точек 98 и 99 в кодовых наборах A и B, 100 в кодовых наборах A и C и 101 в кодовых наборах B и C для переключения между ними):

Старт / стоп и закодированные данные

Расчет контрольной цифры

Например, в следующей таблице для буквенно-цифровой строки PJJ123C вычисляется значение контрольной суммы варианта A кода 128:

КодЦенитьПозицияЗначение ×
позиция
Начальный код A1031103
п48148
J42284
J423126
117468
218590
3196114
C35 год7245
Сумма878
Остаток по модулю 10354

Использование FNC4 для кодирования высоких (128–255) символов

Ширина штрих-кода

Code128 определяет комбинацию из 6 чередующихся полосок и пробелов (по 3 каждого) для каждого символа. Таким образом, каждый символ начинается с полосы и заканчивается пробелом. В шрифтах штрих-кода последняя полоса обычно сочетается с символом остановки, чтобы создать более широкий шаблон остановки. В следующей таблице указаны значения ширины каждой полосы и пробела для каждого символа. Ширина каждой планки или пробела может составлять 1, 2, 3 или 4 единицы (модуля). В приведенном выше примере буква «А» будет изображена с рисунком 10100011000 или шириной 111323 в таблицах ниже.

Значение ширины получается путем подсчета длины каждого ряда единиц, затем нулей в шаблоне, начиная слева. Всегда будет 6 прогонов, и длина этих 6 прогонов формирует значение ширины. Например, при использовании шаблона 10100011000 длины серий будут 1 (цифра 1), 1 (цифра 0), 1 (цифра 1), 3 (цифра 0), 2 (цифра 1), 3 (цифра 0). Если указать только длину каждого прогона, получится 1, 1, 1, 3, 2, 3, что приведет к значению ширины 111323.

Код 128

ЦенитьШестнадцатеричное значение128A128B128CПоложение шрифта
(Обычный / Необычный / Barcodesoft)
Бар / Пробел
КодLatin-1ШаблонШирина
000КосмосКосмос0032 или 194 или 207/212/252␣ или Â или Ï / Ô / ü11011001100212222
101!!0133!11001101100222122
202««0234«11001100110222221
303##0335 год#10010011000121223
404$$0436$10010001100121322
505%%0537%10001001100131222
606&&0638&10011001000122213
707073910011000100122312
808((0840(10001100100132212
909))0941 год)11001001000221213
100a**1042*11001000100221312
110b++1143 год+11000100100231212
120c,,1244 год,10110011100112232
130d134510011011100122132
140e..1446.10011001110122231
150f//1547/10111001100113222
1610001648010011101100123122
1711111749110011100110123221
1812221850211001110010223211
1913331951311001011100221132
2014442052411001001110221231
21 год155521 год53511011100100213212
2216662254611001110100223112
2317772355711101101110312131
2418882456811101001100311222
2519992557 год911100101100321122
26 год::26 год58:11100100110321221
271b;;2759;11101100100312212
28 год1c>3062>11011011000212123
31 год1f??31 год63?11011000110212321
3220@@3264@11000110110232121
3321 годАА3365А10100011000111323
3422BB3466B10001011000131123
35 год23CC35 год67C10001000110131321
3624DD3668D10110001000112313
3725EE3769E10001101000132113
3826 годFF3870F10001100010132311
3927граммграмм3971грамм11010001000211313
4028 годЧАСЧАС4072ЧАС11000101000231113
41 год29яя41 год73я11000100010231311
42JJ4274J10110111000112133
43 год2bKK43 год75K10110001110112331
44 год2cLL44 год76L10001101110132131
452dMM4577M10111011000113123
462eNN4678N10111000110113321
472fОО4779О10001110110133121
4830пп4880п11101110110313121
4931 годQQ4981 годQ11010001110211331
5032рр5082р11000101110231131
5133SS5183S11011101000213113
5234ТТ5284Т11011100010213311
5335 годUU5385U11011101110213131
5436VV5486V11101011000311123
5537WW5587W11101000110311321
5638ИксИкс5688Икс11100010110331121
57 год39YY57 год89Y11101101000312113
58ZZ5890Z11101100010312311
593b[[5991[11100011010332111
603c\\6092\11101111010314111
613d]]6193]11001000010221411
623e^^6294^11110001010431111
633f__6395_10100110000111224
6440NUL`6496`10100001100111422
6541 годSOHа6597а10010110000121124
6642STXб6698б10010000110121421
6743 годETXc6799c10000101100141122
6844 годEOTd68100d10000100110141221
6945ENQе69101е10110010000112214
7046ACKж70102ж10110000100112412
7147BELграмм71103грамм10011010000122114
7248BSчас72104час10011000010122411
7349HTя73105я10000110100142112
74LFj74106j10000110010142211
754bVTk75107k11000010010241211
764cFFл76108л11001010000221114
774dCRм77109м11110111010413111
784eТАКп78110п11000010100241112
794fSIо79111о10001111010134111
8050DLEп80112п10100111100111242
81 год51DC1q81 год113q10010111100121142
8252DC2р82114р10010011110121241
8353DC3s83115s10111100100114212
8454DC4т84116т10011110100124112
8555НАКты85117ты10011110010124211
8656SYNv86118v11110100100411212
8757 годETBш87119ш11110010100421112
8858ЖЕСТЯНАЯ БАНКАИкс88120Икс11110010010421211
8959ЭМу89121у11011011110212141
90SUBz90122z11011110110214121
915bESC <91123 <11110110110412121
925cFS|92124|10101111000111143
935dGS>93125>10100011110111341
945eRS10001011110131141
955fнасDEL95195/200/240Ã / È / ð10111101000114113
9660FNC 3FNC 396196/201/241Ä / É / ñ10111100010114311
9761FNC 2FNC 297197/202/242Å / Ê / ò11110101000411113
9862Сдвиг BСдвиг А98198/203/243Æ / Ë / ó11110100010411311
9963Код CКод C99199/204/244Ç / Ì / ô10111011110113141
10064Код BFNC 4Код B200/205/245È / Í / õ10111101110114131
10165FNC 4Код АКод А201/206/246É / Î / ö11101011110311141
10266FNC 1FNC 1FNC 1202/207/247Ê / Ï / ÷11110101110411131
10367Начальный код A203/208/248Ë / Ð / ø11010000100211412
10468Начальный код B204/209/249Ì / Ñ / ù11010010000211214
10569Начальный код C205/210/250Í / Ò / ú11010011100211232
106Стоп11000111010233111
Обратный стоп11010111000211133
Стоп-паттерн (7 баров / пробелов)206/211/251Î / Ó / û11000111010112331112

Символы «Код A», «Код B» и «Код C» заставляют все следующие символы интерпретироваться согласно соответствующему субкоду (то есть 128A, 128B или 128C). Символ «Shift» переключает интерпретацию одного следующего символа между подкодами A и B.

Закодированный символ ASCII зависит от фактического используемого шрифта штрих-кода. В частности, символ ASCII со значением 0 и значением 95 и выше может быть определен по-разному в установленном шрифте.

Расчет контрольной цифры для указанного выше примера почтового индекса:

ЦенитьМассаВес × значение
Начать C1051105
FNC11021102
4242284
1818354
40404160
20205100
50506300
Код А1017707
0168128
Сумма =1740 г.
1740 г.Мод 103 =92

Доступность

Для конечного пользователя штрих-коды Code 128 могут быть сгенерированы либо внешним приложением для создания изображения штрих-кода, либо решением для штрих-кода на основе шрифтов. Любое решение требует использования приложения или надстройки приложения для вычисления контрольной цифры и создания штрих-кода.

Оптимизация длины штрих-кода

Использование кодового набора C выгодно только при следующих условиях:

Расположение цифрКоличество последовательных цифр
начало данных4+
конец данных4+
середина данных (окружена символами из кодового набора A или B)6+
все данныелибо 2, либо 4+ (но не 3)

Оптимальное кодирование может быть найдено с использованием динамического программирования алгоритма.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *