6. Форматы штрихкодов

6.1 Одномерные штрих-коды

Именно одномерные штрих-коды большинство людей ассоциирует с термином «штрих-код». Они состоят из ряда полосок и пробелов разной ширины.

6.1.1 Code 11

Разработанный Intermec в 1977 году Код 11 похож на Code 2 of 5 Matrix и используется в основном в области телекоммуникации. Могут кодироваться в строки любой длины. Допустимы цифры 0..9 и символ '-'. Используется одна контрольная цифра (алгоритм modulo-11).

6.1.2 Code 2 of 5

Код 2 из 5 представляет собой семейство одномерных штрих-кодов, 8 из которых поддерживается Zint. Обратите внимание, что эти штрих-коды в разных местах могут называться по разному, поэтому перед использованием этих штрих-кодов вам следует убедиться, что вы используете верный формат.

6.1.2.1 Standard Code 2 of 5

Стандартный Code 2 of 5, также известный как Code 2 of 5 Matrix, это код, обеспечивающий самоконтоль, используемый в промышленности и разработке фотографий. С помощью стандартного Code 2 of 5 можно кодировать числовые данные любой длины (цифры: 09).

6.1.2.2 IATA Code 2 of 5

Используется Международным агентством воздушного транспорта (IATA) в авиационных перевозках для обработки багажа. C помощью этого самоконтролируемого кода также кодировать числовые входные данные любой длины (цифры: 09). Контрольной цифры нет.

6.1.2.3 Industrial Code 2 of 5

Промышленный Code 2 of 5 также может кодировать числовые входные данные любой длины (цифры: 09). Контрольной цифры нет.

6.1.2.4 Interleaved Code 2 of 5

С помощью этого самоконтролируемого форматы кодируют пары чисел, и поэтому можно кодировать только четное число цифр (09). Если введено нечетное число цифр, Zint добавляет в начала кода цифру 0. Контрольная цифра не добавляется.

6.1.2.5 Code 2 of 5 Data Logic

Data Logic также не включает контрольную цифру; с его помощью можно кодировать числовые входные данные любой длины (цифры: 09).

6.1.2.6 ITF-14

ITF-14, также известный как штрих-код UPC Shipping Container или Case Code основан на Interleaved Code 2 of 5 и требует входные данные из 13 цифр (цифры: 09). Рассчитывается контрольная цифра (modulo-10).

6.1.2.7 Deutsche Post Leitcode

Leitcode основан на Interleaved Code 2 из 5 и используется немецкой почтой. Кодируется строка из 13 цифр и включает контрольную цифру.

6.1.2.8 Deutsche Post Identcode

Identcode также основан на Interleaved Code 2 из 5 и также используется немецкой почтой. Кодируется строка из 11 цифр и включает контрольную цифру.

6.1.3 Universal Product Code (EN 797)

6.1.3.1 UPC-A

UPC-A используется в США в розничной торговле. Для формирования штрихкода укажите 11 цифр. Контрольная цифра вычисляется Zint. Кроме того, дополнительные коды EAN-2 и EAN-5 могут быть добавлены с помощью знака «+». К примеру, чтобы сформировать UPC-A штрих-код с данными 72527270270 и с надстройкой EAN-5, отображающей данные 12345, используйте команду:


zint --barcode=34 -d 72527270270+12345


или закодируйте строку данных, включив знак «+»:


my_symbol->symbology = BARCODE_UPCA;

error = ZBarcode_Encode_and_Print(my_symbol, "72527270270+12345");


6.1.3.2 UPC-E

UPC-E представляет собой сжатую версию UPC-A, разработанную для небольших упаковок. Для формирования штрихкода укажите 6 цифр. Контрольная цифра вычисляется Zint. Дополнительные коды EAN-2 и EAN-5 могут быть добавлены использованием знака «+», как и в UPC-A. Кроме того, Zint поддерживает Number System 1. Для этого укажите 7 цифр, начиная с 1. Например:


zint --barcode=37 -d 1123456


или


my_symbol->symbology = BARCODE_UPCE;

error = ZBarcode_Encode_and_Print(my_symbol, "1123456");


6.1.4 European Article Number (EN 797)

6.1.4.1 EAN-2, EAN-5, EAN-8 и EAN-13

EAN используется в розничной торговле в Европе и включает стандарты для кодов EAN-8 и EAN-13. Для их формирования укажите 7 или 12 значное число. (Прим. перев.: если Вы используете Ocvita Barcode ActiveX, то можно указать также 8 или 13 значное число, т.е. включая контрольную цифру). Также могут формироватьс дополнительные коды EAN-2, EAN-5. (2, 5 значные числа соответственно). Zint самостоят, какой формат будет использован, в соответствии с длиной входных данных. Для добавления дополнительных штрих-коды EAN-2 и EAN-5 используется знак «+», как и в формате UPC. Например:


zint --barcode=13 -d 54321


будет отдельно кодировать EAN-5, в то время как


zint --barcode=13 -d 7432365+54321


будет кодировать EAN-8 вместе с дополнительным EAN-5 кодом. Эти же результаты могут быть достигнуты при использовании API:


my_symbol->symbology = BARCODE_EANX;

error = ZBarcode_Encode_and_Print(my_symbol, "54321");

error = ZBarcode_Encode_and_Print(my_symbol, "7432365+54321");


Все штрих-коды EAN включают контрольные данные, которые добавляются Zint.

6.1.4.2 SBN, ISBN и ISBN-13

Штрих-коды EAN-13 (также известные как Bookland EAN-13) также могут быть сформированы из входных данных длиной 9 (SBN), 10 (ISBN) или 13 (ISBN-13) знаков. Входные данные должны включать контрольну. цифру (она будет проверена Zint) Кроме того, дополнительные штрих-коды EAN-2 и EAN-5 могут быть добавлены с помощью знака «+», как и в формате UPC.

6.1.5 Plessey

Также известный как Plessey Code, этот формат был разработан Plessey Company Ltd в Великобритании. С помощью этого штрих-кода можно кодировать данные любой длины, состоящие из цифр от 0 до 9 или букв от A до F и включающие контрольную цифру (CRC).

6.1.6 MSI Plessey

Разработанн MSE Data Corporation на основае Plessey. Может кодировать числовые данные любой длины. Доступны следующие варианты использования контрольной цифры (выбирается установкой свойства 'option_2'):


Значение 'option_2'

Контрольная цифра

0

Не используется

1

Modulo-10

2

Modulo-10 & Modulo-10

3

Modulo-11

4

Modulo-11 & Modulo-10



6.1.7 Telepen

6.1.7.1 Telepen Alpha

Telepen Alpha был разработан SB Electronic Systems Limited; с его помощью можно кодировать текстовые входные данные формата ASCII любой длины.

Telepen включает контрольную цифру modulo-127.

6.1.7.2 Telepen Numeric

Telepen Numeric позволяет сжимать числовые данные в штрих-код Telepen. Данные могут состоять из пар чисел или пар, состоящих из чисел, следующих за символом X. Например: 466333 и 466X33допустимые коды, а 46X333нет (пара цифрX3не допустима). Включает контрольную цифру modulo-127.

6.1.8 Code 39

6.1.8.1 Standard Code 39 (ISO 16388)

Стандартный Code 39 был разработан в 1974 году компанией Intermec. Входные данные могут быть любой длины и могут содержать следующие символы: цифры ( 09), буквы (AZ), тире (-), точка (.),пробел, звездочка (*), доллар ($), косая черта (/) и плюс (+). Код не требует контрольных цифр, тем не менее контрольная цифра modulo-43 может быть добавлена, если это необходимо, с помощью установки option_2 = 1 или использования --ver=1.

6.1.8.2 Extended Code 39

Также известный как Code 39e и Code39+, этот формат расширяет возможности стандартного Code 39: поддерживает все символы ASCII. Код не требует контрольных цифр, тем не менее контрольная цифра modulo-43 может быть добавлена, если это необходимо, с помощью установки option_2 = 1 или использования --ver=1.

6.1.8.3 Code 93

Вариация Extended Code 39, Code 93 также поддерживает все символы ASCII. Две контрольные цифры добавляются Zint.

6.1.8.4 PZN

PZN представляет собой формат, основанный на Code 39 и используемый в фармацевтической промышленности в Германии. PZN кодирует 6-значное число и включает контрольную цифру (алгоритм modulo-10).

6.1.8.5 LOGMARS

LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) - Логистические Приложения Автоматической Маркировки и Считывания Штрих-кодов) является разновидностью формата Code 39, используемой Министерством обороны США. С помощью LOGMARS может быть закодирован тот же набор символов, что и Standard Code 39 + добавляется контрольную цифру modulo-43.

6.1.8.6 Code 32

Разновидность Code 39, используемая в Министерстве здравоохранения Италии для кодирования фармацевтической продукции. Требует числовых входных данных длиной не более 8 цифр. Контрольная цифра добавляется Zint.

6.1.8.7 HIBC Code 39

Используется в медицинской промышленности. Аналогичен Standard Code 39, но добавляет знак «+» в начало и контрольная цифру modulo-49 в конец.

6.1.9 Codabar (EN 798)

Также известный как NW-7, Monarch, ABC Codabar, USD-4, Ames Code и Code 27, этот формат был разработан в 1972 компанией Monarch Marketing Systems для розничной торговли. В 1977 году Американская комиссия крови приняла Codabar в качестве стандартного формата идентификации крови. С помощью Codabar можно кодировать строку любой длины, начинающуюся и заканчивающуюся буквами A-D, между которыми могут находиться: цифры от 1 до 9, тире (-), доллар ($), двоеточие (:), косую черту (/), точку (.) и знак (+). Контрольные цифры не создаются.

6.1.10 Pharmacode

Pharmacode, разработанный Laetus, используется для идентификации фармацевтических препаратов. С помощью данного формата можно кодировать целые числа от 3 до 131070.

6.1.11 Code 128

6.1.11.1 Standard Code 128 (ISO 15417)

Один из самых распространенных форматов одномерных штрих-кодов, Code 128 был разработан в 1981 компанией Computer Identics. Этот формат полностью поддерживает ASCII текст и использует три варианта сжатия текста для уменьшения размера штрих-код. Zint автоматически выбирает режимы и добавляет контрольную цифру modulo-103. Code 128 является форматом, который Zint использует по умолчанию. Кроме того, Zint поддерживает кодировку символов Latin-1 (не английских) в Code 128. Кодировка Latin-1 приведена в приложении A.

6.1.11.2 Code 128 Subset (подмножеств) B

Используется, если надо закодировать данные состоящие лишь из цифр но в режиме формате Code 128B (если установить просто Code 128, то Zint в таком случае будет использовать Code 128C).

6.1.11.3 GS1-128

Разновидность Code 128, также известная как UCC/EAN-128, этот формат определяется в Основной спецификации GS1 (GS1 General Specification). Идентификаторы применения должны быть введены в [квадратных скобках]. Они будут преобразованы в удобочитаемый текст в (круглых скобках). Это позволяет использовать круглые скобки к кодируемой строке данных. Данные с фиксированной длиной должны быть введены с соответствующей длиной для правильного кодирования (см. приложение С). GS1-128 не поддерживает расширенные символы ASCII. Контрольные цифры для данных GTIN (AI 01) не создаются и должны быть включены во входные данные. Ниже приведен пример правильных входных данных для GS1-128:


zint --barcode=16 -d "[01]98898765432106[3202]012345[15]991231"


6.1.11.4 EAN-14

Сокращенный вариант GS1-128, с помощью которого можно кодировать только GTIN данные. На вход подается строка из 13 цифр. Контрольная цифра GTIN и AI (01) добавляются Zint.

6.1.11.5 NVE-18

Разновидность Code 128 формата Nummber der Versandeinheit включает контрольные цифры как modulo-10, так и modulo-103. На вход подается строка из 17 цифр.

6.1.11.6 HIBC Code 128

Эта опция добавляет знак «+» в начало и контрольную цифру modulo-49 в конец стандартного Code 128 в соответствии с требованиями штрих-кодов, использующихся в медицинской промышленности.

6.1.12 GS1 DataBar (ISO 24724)

Также известен как RSS (Reduced Space Symbology - символика сокращенного размера). Эти штрих-коды начиная с 2010 года должны постепенно заменять штрихкоды GS1-128. Если штрих-код GS1 DataBar должен печататься с 2D-компонентом, как указано в ISO 24723, следует установить option_1 = 2 или использовать option --mode=2 в командной строке. (См.раздел 6.3 настоящего руководства, чтобы узнать, как создать штрих-код DataBar с 2D-компонентом)

6.1.12.1 DataBar-14 and DataBar-14 Truncated

Также известен как RSS-14. С помощью этого штрих-кода можно закодировать 13-значное число. Контрольная цифра и идентификатор применения (01) добавляются Zint. Обратите внимание, что для полного соответствия стандарту высота штрих-кода должна быть больше или равна 33 модулям. Для сокращенного DataBar-14 установленная высота штрих-кода должна быть не менее 13.

6.1.12.2 DataBar Limited

Также известен как RSS Limited. Также как и DataBar-14 , данный формат позволяет кодировать 13-значное число. Однако первой цифрой должно быть 0 или 1 (т.е. числа в диапазоне от 0 до 1999999999999). Контрольная цифра и идентификатор применения (01) также добавляются Zint.

6.1.12.3 DataBar Expanded

Также известен как RSS Expanded. Длина входных данных переменная. Позволяет кодировать данные нескольких идентификаторов применения в один штрих-код. В исходных данных идентификаторы применения должны быть заключены в [квадратные скобки]. В последствие они будут преобразованы в (круглые скобки), и в таком виде будут отбражены в тексте выводимом рядом со штрих-кодом. В кодируемых данных могут присутствовать круглые скобки. Данные GTIN (идентификатор применения 01) должны также включать в себя контрольную цифру, так как они не вычисляются Zint при кодировании данного формата. Данные с фиксированной длиной должны быть введены с соответствующей длиной для правильного кодирования (см. приложение С). Ниже приведен пример допустимых входных данных для расширенного DataBar:


zint --barcode=31 -d "[01]98898765432106[3202]012345[15]991231"


6.1.13 Корейский почтовый штрих-код

Корейский почтовый штрих-код обычно используется для кодирования 6-значного числа и включает одну контрольную цифру.

6.1.14 Channel Code

Сильно сжатый штрих-код для числовых данных. Число каналов в штрих-коде может быть от 3 до 8 и определяется установленным значением option_2. Также оно может быть определено длиной входных данных, например, трехсимвольная входная строка по умолчанию создает 4-канальный код. Допустимое максимальное значение зависит от числа используемых каналов, как это показано в таблице ниже:

Каналов (Channels)

Minimum Value

Maximum Value

3

00

26

4

000

292

5

0000

3493

6

00000

44072

7

000000

576688

8

0000000

7742862


Обратите внимание, что 7- и 8-канальные коды требуют большого количества вычислений, поэтому эти коды формируются относительно медленно.

6.2 Многорядные штрих-коды

6.2.1 Формирование обычных штрихкодов в несколько рядов.

Самый простой способ поместить в штрихкод больше информации - просто использовать несколько одномерных штрихкодов один над другим. (Это используется в основном в автомобильной промышленности). Например


zint -d 'This' -d 'That'


создаст два штрих-кода Code 128, один над другим. Тот же результат можно достигнуть с помощью API, используя функцию ZBarcode_Encode() более одного раза на штрих-код. Например:


my_symbol->symbology = BARCODE_CODE128;

error = ZBarcode_Encode(my_symbol, "This");

error = ZBarcode_Encode(my_symbol, "That");

error = ZBarcode_Print(my_symbol);


6.2.2 Code 16k (EN 12323)

Более сложный способ заключается в назначении индексов разным рядам , которые указывают считывателю штрих-кодов, в каком порядке коды должны быть считаны. Этот принцип используется в Code 16k, который является блоком из кодов Code128 и может включать до 16 рядов. Максимальный объем данных: 77 букв или 154 цифры. Code 16k включает две контрольные цифры modulo-107. Кроме того данный формат поддерживает расширенный набор символов ASCII, кодируя его тем же образом, что Code 128.

6.2.3 PDF417 (ISO 15438)

Формат PDF417 широко используется в почтовой индустрии; с его помощью можно закодировать огромное количество данных на небольшом пространстве. В соответствии с ISO, Zint поддерживает кодирование максимум до 925 кодовых слов, что (при 0 уровне коррекции ошибок) дает максимальный - 1850 букв или 2710 цифр. Ширина генерируемого штрих-кода PDF417 может быть указана в командной строке с помощью переключения параметра --cols, следующего за цифрой от 1 до 30. Количество контрольных цифр может быть задано с помощью параметра --security switch, следующего за цифрой от 0 до 8, количество кодовых цифр равно 2^(значение+1). При использовании API эти значения указываются в option_2 и option_1 соответственно. По умолчанию количество контрольной информации зависит от объема кодируемых данных. Поддержка международных символов осуществляется с помощью набора символов Latin-1, как описано в Приложении А. Отдельный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC), при этом в начало добавляется знак «+», а также контрольную (алгоритм modulo-49).

6.2.4 Компактный PDF417

Также известен как сокращенный PDF417. Параметры те же, что и для обычного PDF417.

6.2.5 MicroPDF417 (ISO 24728)

Разновидность стандартного PDF417, MicroPDF417 предназначен для случаев, когда размер штрих-кода должен быть минимальным. Доступно 34 предопределенных размера штрих-кодов с количеством столбцов от 1 до 4 и строчек от 4 до 44. Штрих-код MicroPDF417 максимального размера может содержать 250 буквенно-числовых символа или 366 цифр. Уровень коррекции ошибок зависит от размера штрих-кода. Количество используемых столбцов может быть определено с помощью параметра --cols или option_2, как и в PDF417. Специальный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC) при этом в начало добавляется знак «+», а также контрольную (алгоритм modulo-49).

6.2.6 GS1 DataBar-14 Stacked (ISO 24724)

Составная разновидность штрих-кода GS1 DataBar-14, использующая такие же входные данные (см. раздел 6.1.12.1). Высота этого штрих-кода фиксирована. Данные кодируются в двухстрочный штрих-код с центральной поисковой структурой. Этот штрихкод может быть создан с дополнительным двумерным компонентом.

6.2.7 GS1 DataBar-14 Stacked Всенаправленный

Составная разновидность штрих-кода GS1 DataBar-14, требующая такие же входные данные (см. раздел 6.1.12.1). Данные кодируются в двухстрочный штрих-код с центральной поисковой структурой. Чтобы создать составной штрих-код, этот штрих-код может быть сгенерирован с двумерным компонентом.

6.2.8 GS1 DataBar Expanded Stacked (ISO 24724)

Составная вариация штрих-кода GS1 DataBar Expanded для маленьких упаковок. Входные данные такие же, как для GS1 DataBar Расширенный (см. раздел 6.1.12.3). Кроме того, ширина штрих-кода может быть изменена с помощью параметраcols или option_2. В этом случае количество столбцов зависит от числа пар символов на каждой строке штрих-кода. Для символов с 2D-компонентом количество столбцов должны быть не менее 2. Этот штрих-код может быть сгенерирован с двумерным компонентом.

6.2.9 Code 49

Code 49, разработанный в 1987 году в Intermec, это нечто среднее между UPC и Code 39. Code 49 является одним из ранних многорядных штрих-кодов, и именно он во многом повлиял на дизайн Code 16K, разработанного несколькими годами позже. Он поддерживает полные 7-битные входные данные ASCII длиной до 49 символов или 81 цифр. Также поддерживается кодирование данных GS1.

6.3 Составные штрихкоды (ISO 24723)

Составные штрихкоды используют несколько компонентов, чтобы дать более полную информацию о продукте. Допустимое содержание составного штрих-кода определяется в соответствии с GS1 General Specification. Составные штрих-коды состоят из линейного компонента, которым могут быть штрих-коды EAN, UPC, GS1-128 или GS1 DataBar, 2D-компонента, основанного на PDF417 или MicroPDF417, и разделительной структуры. Тип используемого линейного компонента задается с помощью параметраb или --barcode= или настройки symbol->symbology, как и обычно. Допустимые значения приведены ниже:


Значение

Имя

Формат

130

BARCODE_EANX_CC

Составной штрих-код с линейным компонентом EAN

131

BARCODE_EAN128_CC

Составной штрих-код с линейным компонентом GS1-128

132

BARCODE_RSS14_CC

Составной штрих-код с линейным компонентом GS1 DataBar-14

133

BARCODE_RSS_LTD_CC

Составной штрих-код с компонентом GS1 DataBar Ограниченный

134

BARCODE_RSS_EXP_CC

Составной штрих-код с компонентом GS1 DataBar Расширенный

135

BARCODE_UPCA_CC

Составной штрих-код с линейным компонентом UPC A

136

BARCODE_UPCE_CC

Составной штрих-код с линейным компонентом UPC E

137

BARCODE_RSS14STACK_CC

Составной штрих-код с компонентом GS1 DataBar-14 Составной

138

BARCODE_RSS14_OMNI_CC

Составной штрих-код с компонентом GS1 DataBar-14 Составной Всенаправленный

139

BARCODE_RSS_EXPSTACK_CC

Составной штрих-код с компонентом GS1 DataBar-14 Расширенный Составной


Данные для кодирования в линейный компонент составного штрих-кода должны быть введены в основную строку с данными для 2D-компонента, вводимыми в обычном порядке. Для этого в командной строке используйте --primary= command. К примеру:


zint -b 130 --mode=1 --primary=331234567890 -d "[99]1234-abcd"


Это создает линейный компонент EAN-13 с данными "331234567890" и 2D CC-A (см. ниже) компонент с данными "(99)1234-abcd". Такие же результаты могут быть достигнуты с помощью API, как показано ниже:


my_symbol->symbology = 130;my_symbol->option_1 = 1;

strcpy(my_symbol->primary, "331234567890");

ZBarcode_Encode_and_Print(my_symbol, "[99]1234-abcd");


Дополнительные данные EAN-2 и EAN-5 могут быть использованы со штрих-кодами EAN и UPC с помощью знака «+», как описано в разделах 6.1.3 и 5.1.4.

2D-компонент составного штрих-кода может использовать одну из трех следующих систем: CC-A, CC-B и CC-C, как описано ниже. Тип 2D-компонента может быть автоматически выбран Zint в зависимости от длины входной строки. Также три режима могут быть заданы с помощью функции --mode= prompt, перед которой ставятся цифры 1, 2 или 3, соотвественно, или с помощью переменной option_1, как показано выше.

6.3.1 CC-A

Используется разновидность MicroPDF417, оптимизированную для небольшого размера. Размер 2D-компонента и уровень коррекции ошибок определяется размером кодируемых данных и типом используемого линейного компонента. С помощью CC-A можно кодировать до 56 цифр или буквенно-числовую строку меньшей длины. Чтобы выбрать CC-A, установите --mode=1.

6.3.2 CC-B

Используется MicroPDF417 для кодирования 2D-компонента. Размер 2D-компонента и уровень коррекции ошибок определяется размером кодируемых данных и типом используемого линейного компонента. С помощью CC-B можно кодировать до 338 цифр или буквенно-числовую строку меньшей длины. Чтобы выбрать CC-A, установите --mode=2.

6.3.3 CC-C

Используется PDF417 и только в сочетании с линейным компонентом GS1-128. С помощью CC-C можно кодировать до 2361 цифр или буквенно-числовую строку меньшей длины. Чтобы выбрать CC-A, установите --mode=3.

6.4 Двухрядные штрих-коды

6.4.1 Двухрядный Pharmacode

Двухрядный Pharmacode, разработанный Laetus, является альтернативой обычного Pharmacode OneTrack, используемого для идентификации лекарственных средств. С помощью этого штрих-кода можно кодировать целые числа от 4 до 64570080.

6.4.2 PostNet

Штрих-код PostNet до 2009 года использовался почтовой службой США для кодирования индексов почтовых отправлений. PostNet использует числовые входные данные и включает одну контрольную цифру modulo-10. Zint будет кодировать штрих-коды PostNet любой длины, однако стандартными длинами, используемой USPS, были PostNet6 (5-значные входные данные ZIP), PostNet10 (5-значные ZIP + 4-значные пользовательские данные) и PostNet12 (5-значные ZIP + 6-значные пользовательские данные).

6.4.3 PLANET

Штрих-код PLANET до 2009 года использовался почтовой службой США для кодирования данных о маршрутизации почтовых отправлений. PLANET использует числовые входные данные и включает одну контрольную цифру modulo-10. Zint будет кодировать штрих-коды PLANET любой длины, однако стандартными длинами, используемой USPS, были Planet12 (11-значные входные данные) и Planet14 (13-значные входные данные).

6.5 4х рядные почтовые коды

6.5.1 рядные код Australia Post (австралийской почты)

6.5.1.1 Клиентские штрих-коды

Стандартный Австралийский Почтовый Клиентский Штрих-код, Клиентский Штрих-код 2 и Клиентский Штрих-код 2 представляют собой, соответственно, 37-, 52- и 67-полосные форматы, разработанные Австралийской Почтой для печати идентификаторов пунктов доставки и клиентской информации на почтовых отправлениях. Допустимые символы: 0-9, A-Z, a-z, пробел и решетка. Код Контроля Формата (FCC) добавляется Zint и не должен присутствовать во входных данных. Данные коррекции ошибок (Reed-Solomon) создаются Zint. Режим кодирования определяется длиной входных данных в соответствии с формулой, приведенной в таблице ниже:


Длина входных данных

Требуемый формат входных данных

Длина штрих-кода

Код Контроля Данных

(FCC)

Кодирование таблицы

8

99999999

37полос

11

None

13

99999999AAAAA

52 полосы

59

C

16

9999999999999999

52 полосы

59

N

18

99999999AAAAAAAAAA

67 полос

62

C

23

9999999999999999999999

67 полос

62

N


6.5.1.2 Штрих-код Reply Paid (оплаченного овета)

Данный штрих-код является разновидностью рядногоAustralia Post Barcode (FCC 45), требующей 8-значные входные данные идентификаторов пунктов доставки.

6.5.1.3 Штрих-код Routing (маршрутизации)

Данный штрих-код является разновидностью рядногоAustralia Post Barcode (FCC 87), требующей 8-значные входные данные идентификаторов пунктов доставки.

6.5.1.4 Штрих-код Redirect (переадресации)

Данный штрих-код является разновидностью рядногоAustralia Post Barcode (FCC 92), требующей 8-значные входные данные идентификаторов пунктов доставки.

6.5.2 Dutch Post KIX Code (Нидерландский Почтовый Код KIX)

Этот формат используется Royal Dutch TPG Post (Нидерланды) для почтового индекса и автоматической сортировки почты. Входные данные могут состоять из цифр (0 -9) и латинских букв (A-Z) и должны включать 11 символов. Контрольные цифры не добавляются.

6.5.3 Royal Mail (королевский почтовый) 4-State Country Code (RM4SCC)

Формат RM4SCC используется Королевской Почтой Великобритании для кодирования почтовых индексов и клиентских данных на почтовых отправлениях. Входные данные могут состоять из цифр (0 -9) и латинских букв (A-Z) и обычно включают почтовый индекс места доставки, следующий за номером дома. Например, "W1J0TR01" для дома1 на Пиккадилли-Серкус в Лондоне. Контрольные цифры генерируются Zint.

6.5.4 USPS OneCode

Также известная как Intilligent Maik штрих-код. Используется Почтовой Службой США, система OneCode в 2009 заменила PostNet и PLANET форматы. OneCodeэто фиксированной длины (65-полосный) штрих-код, объединяющая маршрутную и клиентскую информацию в один символ. Входные данные состоят из 20-значного кода отслеживания, следующего за знаком тире (-), следующего за zip-кодом пункта доставки, который может состоять из 0, 5, 9 или 11 цифр. Так, все нижеуказанные входные данные являются допустимыми:

"01234567094987654321"

"01234567094987654321-01234"

"01234567094987654321-012345678"

"01234567094987654321-01234567891"

6.5.5 Японский Почтовый Код

Используются для кодирования адресных данных на почтовых отправлениях. Допустимыми символами являются 0-9, A-Z и тире (-). Контрольная цифра modulo 19 добавляется.

6.6 Двухмерный штрих-коды

6.6.1 Data Matrix (ISO 16022)

Также известный как Semacode формат DataMatrix был разработан Acuity CiMatrix в партнерстве с Министерством Обороны США и NASA в1989. С помощью данного штрих-кода можно кодировать большой объем данных на маленькой площади. Data Matrix может кодировать все символы набора Latin-1 и GS1 данные. Размер генерируемого штрих-кода может быть отрегулирован с помощью параметра --vers= или настройки option_2, как это показано в таблице ниже. Индивидуальный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC), который добавляет в начало знак «+» и контрольную цифру modulo-49 к закодированным данным. Обратите внимание, что этот штрих-код поддерживает только кодирование ECC200; более старые форматы уже удалены из Zint.


Входные данные

Размер

штрих-кода

Входные данные

Размер штрих-кода

1

10 x 10

16

64 x 64

2

12 x 12

17

72 x 72

3

14 x 14

18

80 x 80

4

16 x 16

19

88 x 88

5

18 x 18

20

96 x 96

6

20 x 20

21

104 x 104

7

22 x 22

22

120 x 120

8

24 x 24

23

132 x 132

9

26 x 26

24

144 x 144

10

32 x 32

25

8 x 18

11

36 x 36

26

8 x 32

12

40 x 40

27

12 x 26

13

44 x 44

28

12 x 36

14

48 x 48

29

16 x 36

15

52 x 52

30

16 x 48


Для штрих-кодов Data Matrix доступна настройка, при которой будут формироваться только квадратные. Чтобы использовать эту функцию, в командной строке установите параметр --square, или option_3 = DM_SQUARE.при использовании API.

При использованнии Ocvita Barcode для формирования только квадратных штрихкодов укажите 100 в поле option_3.

Начиная с версии 1.1 Ocvita Barcode позволяет принудительно выбирать вид кодирования, указав соответствующее значение в поле setting_1


Setting_1

Вид кодирования

0

Автовыбор. Примечание: в этом режиме в пределах одного символа может быть использовано несколько указанных ниже видов кодирования. Например первые 20 байт кодируются как ASCII, 40 байт далее как BASE256 и т.п. Виды кодирования выбираются исходя из содержимого для получения оптимального размера символа.

В Ocvita Barcode 1.0 использовался только такой режим.

1

ASCII

2

C40

3

TEXT

4

X12

5

EDIFACT

6

BASE256


6.6.2 QR Code (ISO 18004)


QR Code , также известен как Quick Response. Формат был разработан Denso. Четыре уровня коррекции ошибок могут быть установлены с помощью опции security= или настройки option_1, как показано в таблице ниже.


Входные данные

Уровень коррекции ошибок

Объем коррекции

ошибок

Возможность восстановления

1

L (по умолчанию)

Приблизительно 20% штрих-кода

Приблизительно 7%

2

M

Приблизительно 37% штрих-кода

Приблизительно 15%

3

Q

Приблизительно 55% штрих-кода

Приблизительно 25%

4

H

Приблизительно 65% штрих-кода

Приблизительно 30%


Размер штрих-кода может быть установлен с помощью опции vers= или установки значения option_2 от 1 до 40 для требуемой версии QR Code. Размеры создаваемых символов приведены в таблице ниже.


Значение

Размер

Значение

Размер

1

21 x 21

21

101 x 101

2

25 x 25

22

105 x 105

3

29 x 29

23

109 x 109

4

33 x 33

24

113 x 113

5

37 x 37

25

117 x 117

6

41 x 41

26

121 x 121

7

45 x 45

27

125 x 125

8

49 x 49

28

129 x 129

9

53 x 53

29

133 x 133

10

57 x 57

30

137 x 137

11

61 x 61

31

141 x 141

12

65 x 65

32

145 x 145

13

69 x 69

33

149 x 149

14

73 x 73

34

153 x 153

15

77 x 77

35

157 x 157

16

81 x 81

36

161 x 161

17

85 x 85

37

165 x 165

18

89 x 89

38

169 x 169

19

93 x 93

39

173 x 173

20

97 x 97

40

177 x 177


Максимальный объем штрих-кода QR Code составляет 7089 цифр, 4296 буквенно-числовых символов или 2953 байта данных ( в версии 40). QR Code также может быть использован для кодирования данных GS1. С помощью данного штрих-кода можно кодировать символы Latin-1 и Kanji, являющихся частями схемы кодирования Shift-JIS. Обратите внимание, что изначально входные данные должны быть введены как UTF-8 поток; позже Zint автоматически переведет их в Shift-JIS. Специальный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC), который добавляет в начало знак «+» и контрольную цифру modulo-49 к закодированным данным.

6.6.3 Микро QR Code (ISO 18004)

Микро QR Code - это миниатюрная версия штрих кода QR Code, предназначенная для коротких сообщений. Для этого штрих-кода доступны те же уровни коррекции, что и для стандартной версии (выше). С помощью данного штрих-кода также можно кодировать символы форматов Latin-1 и Kanji, являющихся частями схемы кодирования Shift-JIS. Обратите внимание, что изначально входные данные должны быть в кодировке UTF-8, позже Zint автоматически переведет их в Shift-JIS. Предпочтительный размер штрих-кода может быть выбран с помощью опции vers= или настройки option_2, хотя Zint может установить и другой размер, если это будет необходимо. Возможные размеры приведены в таблице ниже:

Входные данные

Версия

Размер штрих-кода

1

M1

11 x 11

2

M2

13 x 13

3

M3

15 x 15

4

M4

17 x 17


6.6.4 Maxicode (ISO 16023)


Штрих-код Maxicode, разработанный UPS, представляет собой сетку из шестиугольников, окружающих символ «бычий глаз». Данный формат предназначен для идентификации посылок. Штрих-коды Maxicode могут быть закодированы в одном из пяти доступных режимов.

В режимах 2 и 3 код состоит из двух частей, называющихся первичное и вторичное сообщения. Первичное сообщение состоит из структурированной области данных, включающей в себя различную информацию об отправленном пакете; вторичное сообщение обычно состоит из адресных данных в специальной структуре. Формат первичного сообщения, требуемый Zint, указан в таблице следующей таблице:

Символы

Значение

1-9

Почтовый индекс, который может содержать до 9 цифр режиме 2) и до 6 буквенно-числовых символов ( в режиме 3).Оставшиеся неиспользованные места для данных должны быть заполнены пробелами (ASCII 32).

10-12

Трехзначный код страны в соответствии с ISO 3166 (см. приложение B).

13-15

Трехзначный служебный код, зависящий от почтового курьера.

Первичное сообщение может быть определено в командной строке с помощью изменения ключа --primary=. Для вторичного сообщения используется стандартный способ ввода данных. К примеру:


zint -o test.eps -b 57 --primary='999999999840012' -d 'Secondary Message Here'


При использовании API первичное сообщение должно быть помещено в строку symbol->primary. Вторичное вводится тем же способом, как описано в разделе 5.2. Zint проанализирует первичное сообщение и определит, какой из режимов (2 или 3) подходит больше.

Режимы 4, 5 и 6 можно установить с помощью ключа --mode= или настройки option_1. Эти режимы не требуют первичного сообщения. Например:


zint -o test.eps -b 57 --mode=4 -d 'A MaxiCode Message in Mode 4'


Режим 6 зарезервирован для обслуживания аппаратной части сканера и не должен использоваться для кодирования пользовательских данных.

Все режимы поддерживают расширенный набор символов ASCII и сжатие чисел. Максимальная длина текста, который может быть вмещен в штрих-код Maxicode, зависит от типов символов, используемых в этом тексте. Примеры максимальных длин данных приведены в таблице ниже:


Режим

Максимальное количество прописных букв

Максимальное количество цифр

Число кодовых слов коррекции ошибок

2 (только вторичное сообщение)

84

126

50

3(только вторичное сообщение)

84

126

50

4

93

135

50

5

77

110

66

6

93

135

50


6.6.5 Aztec Code (ISO 24778)

Aztec Code, изобретенный Эндрю Лонгакром из Welch Allyn Inc в 1995, это матричный штрих-код с характерной структурой поиска «бычий глаз». Zint может генерировать сжатый (compact) Aztec Code (иногда называемый малым (small) Aztec Code) также, как полный (full-range), и по умолчанию автоматически выбирает тип и размер штрих-кода в зависимости от длины кодируемых данных. Кодовые слова коррекции ошибок обычно занимают по крайней мере 23% штрих-кода. Для изменения этих настроек используйте два следующих способа:

Размер штрих-кода может быть задан с помощью опции --ver= или указанием значения option_2 от 1 до 36 в соответствии с таблицей ниже. Штрих-коды, отмеченные в таблице звездочкой (*), являются сжатыми, то есть имеют в центре поисковую структуру меньшего размера.


Входные данные

Размер

штрих-кода

Входные данные

Размер

штрих-кода

1

15 x 15*

19

79 x 79

2

19 x 19*

20

83 x 83

3

23 x 23*

21

87 x 87

4

27 x 27*

22

91 x 91

5

19 x 19

23

95 x 95

6

23 x 23

24

101 x 101

7

27 x 27

25

105 x 105

8

31 x 31

26

109 x 109

9

37 x 37

27

113 x 113

10

41 x 41

28

117 x 117

11

45 x 45

29

121 x 121

12

49 x 49

30

125 x 125

13

53 x 53

31

131 x 131

14

57 x 57

32

135 x 135

15

61 x 61

33

139 x 139

16

67 x 67

34

143 x 143

17

71 x 71

35

147 x 147

18

75 x 75

36

151 x 151


Обратите внимание, что при указании для штрихкода конкретного размера, объем коррекции ошибок зависит от длины входных данных. Zint может уменьшить объем коррекции ошибок до 3 кодовых слов.

Альтернативный вариант - задать объем коррекции ошибок с помощью опции --mode= или установки значения option_1 из следующей таблицы:


Режим

Объем коррекции ошибок

1

>10% + 3 кодовых слова

2

>23% + 3 кодовых слова

3

>36% + 3 кодовых слова

4

>50% + 3 кодовых слова


Для одного и того же штрих-кода невозможно выбрать и размер и объем коррекции ошибок. Если вы зададите оба параметра, выбор объема коррекции ошибок будет проигнорирован.

Aztec Code имеет возможность кодирования данных расширенного ASCII формата длиной до приблизительно 3823 цифр или 3067 букв, или 1914 байта. Специальный идентификатор формата может быть использован для кодирования данных Health Industry Barcode (HIBC), который добавляет в начало знак «+» и контрольную цифру modulo-49 к закодированным данным.

6.6.6 Aztec Runes

Сокращенная разновидность сжатого Aztec Code, используемая для кодирования целых чисел от 0 до 255. Включает коррекцию ошибок Reed-Solomon. Определен в ISO / IEC 24778 Приложение А.

6.6.7 Code One

Матричный штрих-код, разработанный Тедом Уильямсом в 1992, кодирующий данные тем же образом, что и Data Matrix. С помощью Code One можно кодировать набор символов Latin-1 и данные GS1. Существует два типа Code Oneштрих-код переменной высоты, имеющий примерно квадратную форму (версии AH), и штрих-код фиксированной длины (версии S и T). Они могут быть выбраны с помощью опции --vers= или установки значения option_2, как показано в таблице ниже:

Значение

Версия

Размер

Максимальное число цифр

Максимальное число букв

1

A

16 x 18

22

13

2

B

22 x 22

44

27

3

C

40 x 42

104

64

4

D

40 x 42

217

135

5

E

52 x 54

435

271

6

F

70 x 76

886

553

7

G

104 x 98

1755

1096

8

H

148 x 134

3550

2218

9

S

8X высота

18

-

10

T

16X высота

90

55

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

6.6.8 Grid Matrix

Один из новейших форматов кодирования, поддерживаемый Zint. Grid Matrix в 2008 году стал AIM стандартом. Данный штрих-код позволяет кодировать символы Latin-1и китайские иероглифы стандартного набора GB 2312 в шахматном порядке. Входные данные должны быть введены как UTF-8 поток; перевод в GB 2312 Zint осуществляет автоматически. Размер штрих-кода и объем коррекции ошибок могут быть заданы. Если указать значения обоих параметров, Zint постарается наилучшим образом удовлетворить обоим условиям. Размер штрих-кода может быть выбран с помощью опции ver= или указания значения option_2, объем коррекции ошибокс помощью опции security= или или указания значения option_1 согласно следующей таблице:


Значение

Размер

1

18 x 18

2

30 x 30

3

42 x 42

4

54 x 54

5

66 x 66

6

78 x 78

7

90x 90

8

102 x 102

9

114 x 114

10

126 x 126

11

138 x 138

12

150 x 150

13

162 x 162


6.7 Другие маркировки, сходные с штрих-кодами

6.7.1. Знак Лицевой Идентификации (Facing Identification Mark - FIM)

Формат FIM используется Почтовой Службой США для автоматизированной обработки почты. Этим штрихкодом можно кодировать одну букву из диапазона AD, как показано в таблице ниже:


Кодируемая буквы

Использование

A

Используется для ответных писем и почтовых отправлении, оплаченных по тарифу, с заранее напечатанным штрих-кодом PostNet.

B

Используется для деловых писем без заранее напечатанного zip-кода.

C

Используется для деловых писем с заранее напечатанным zip-кодом.

D

Используется для IBI (Information Based Indicia) посылок.


6.7.2 Flattermarken

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

6.7.3 DAFT Code

Метод создания кодов рядных (4-state) кодов, где входные данные предоставляются внешней программой. Входные данные должны состоять из букв 'D', 'A', 'F' и 'T', которые являются ссылками на использование нижней линии, верхней линии, обеих линий нижней, и верхней) и не одной из линии (ни нижней, ни верхней) соответственно. Все прочие символы игнорируются.