Штрих-код DataMatrix разработан фирмой CiMatrix для размещения большого объема информации на ограниченной площади поверхности. В этом штрих-коде может быть закодирован текст или любая другая информация, от нескольких байт до нескольких килобайт. Допустимая длина данных зависит от выбранного размера штрих-кода (количества строк и столбцов). Физические размеры штрих-кода могут меняться в больших пределах: значение модуля штрих-кода может изменяться от 1 mil до 14 inch (14000 mil). Наиболее популярными применениями для Datamatrix является маркировка небольших предметов, таких как электронные элементы и печатные платы электронных приборов. Каждый DataMatrix состоит из двух сплошных смежных границ в форме «L» (называемых «шаблоном поиска») и двух других границ, состоящих из чередующихся темных и светлых «ячеек» или модулей (называемых «шаблоном синхронизации»). Размеры символов варьируются от 8 × 8 до 144 × 144. DataMatrix используется для маркировки небольших товаров.
Для совместимости штрих-кода DataMatrix с GS1, необходимо:
Cвойство Обрабатывать Tilde (Process Tilde) установить в значение true;
В поле Код (Code) штрих-кода, добавить префикс ~FNC1. Например, выражение будет следующего вида: ~FNC1{your_datasource.field_name}.
Символы DataMatrix имеют прямоугольную форму и обычно квадратную, они состоят из ячеек: маленьких элементов, которые представляют отдельные биты.
Штрих-код содержит коды коррекции ошибки: даже если штрих-код частично поврежден, он все равно может быть считан. Существуют две основных версии этого штрих-кода. Первая использует свернутое кодирование для коррекции ошибок; это первые версии кода Datamatrix, эти версии описаны как ECC-000.. ECC-140. Вторая версия штрих-кода описана как ECC-200, использует метод коррекции ошибок Рида-Соломона (Reed-Solomon) и всегда содержат четное число элементов по каждой из сторон. В Stimulsoft Reports реализована только вторая версия штрих-кода, и дальнейшее описание приводится только для этой версии.
Штрих-код состоит из черных и белых квадратных элементов, объединенных в квадратные или прямоугольные регионы. Каждый регион имеет измерительные линейки, которые выглядят, как сплошная линия по одному краю символа (слева и снизу) и равномерно расположенные квадратные элементы по другому краю (сверху и справа). Эти линейки используются для определения ориентации и плотности кода. Если данные не помещаются в один регион, то используются несколько регионов, которые добавляются по вертикали и горизонтали. Общий размер штрих-кода может быть от 8×8 до 144×144 элементов. Все допустимые (правильные) комбинации размеров фиксированы и приведены в таблице:
Размеры штрих-кода |
Длина данных, байт |
Размеры штрих-кода |
Длина данных, байт |
10 × 10 |
3 |
32 × 32 |
62 |
12 × 12 |
5 |
36 × 36 |
86 |
8 × 18 |
5 |
40 × 40 |
114 |
14 × 14 |
8 |
44 × 44 |
144 |
8 × 32 |
10 |
48 × 48 |
174 |
16 × 16 |
12 |
52 × 52 |
204 |
12 × 26 |
16 |
64 × 64 |
280 |
18 × 18 |
18 |
72 × 72 |
368 |
20 × 20 |
22 |
80 × 80 |
456 |
12 × 36 |
22 |
88 × 88 |
576 |
22 × 22 |
30 |
96 × 96 |
696 |
16 × 36 |
32 |
104 × 104 |
816 |
24 × 24 |
36 |
120 × 120 |
1050 |
26 × 26 |
44 |
132 × 132 |
1304 |
16 × 48 |
49 |
144 × 144 |
1558 |
Необходимый размер штрих-кода задается с помощью свойства "MatrixSize". Если указать конкретный размер, то получится штрих-код фиксированного размера. Если установить свойство в "Automatic" (по умолчанию), то из списка размеров автоматически будет выбираться минимальный необходимый размер, достаточный для кодирования данных. Среди допустимых размеров присутствуют шесть размеров штрих-кода прямоугольной формы. Если в режиме "Automatic" требуется получать штрих-коды только квадратной формы, то свойство "UseRectangularSymbols" должно быть установлено в false (по умолчанию). Если это свойство установлено в true, то используются и квадратные, и прямоугольные формы. В зависимости от типа кодируемой информации можно выбрать разные режимы кодирования данных. Каждый режим позволяет кодировать свой набор символов и имеет свою степенью сжатия.
Режим кодирования |
Допустимые символы |
Бит на символ |
ASCII |
ASCII character 0 to 127 ASCII character 128 to 255 ASCII numeric |
8 16 4 |
C40 |
Upper-case alphanumeric Lower-case letters and punctuation |
5,33 10,66 |
TEXT |
Lower-case alphanumeric Upper-case letters and punctuation |
5,33 10,66 |
X12 |
ANSI X12 |
5,33 |
EDIFACT |
ASCII character 32 to 94 |
6 |
BASE 256 |
ASCII character 0 to 255 |
8 |
Самый универсальный режим кодирования - Ascii (по умолчанию). Он позволяет кодировать любые символы, при этом пары цифр сжимаются лучше всего, а символы Ascii values (128-255) - хуже всего. Для кодирования Upper-case alphanumeric лучше всего подходят режимы С40, X12, Edifact, для кодирования Lower-case alphanumeric - Text. Режим Base позволяет закодировать любые байты с одинаковой степенью сжатия.
Штрих-код "DataMatrix". Строка данных "1234567890ABCDEF"