Делаем и выводим штрих-коды ITF-14 в .NET-приложениях

Делаем и выводим штрих-коды ITF-14 в .NET-приложениях

ITF-14 (Interleaved Two of Five) - это двухполосный числовой код, по-другому код высокой плотности, который может кодировать только числа в чётном количестве. Каждый такой штрих-код кодирует нечётную цифру темной линией и чётную цифру - пробелом между ними. Чтобы закодировать нечётное число цифр, вы должны дополнить самую левую (старшую) цифру нулем. Об особенностях кодирования будет рассказано чуть позже. 

Реализация штрих-кода ITF-14 или же interleaved 2 of 5 применяется для кодирования Global Trade Item Number. Глобальный номер торговой позиции (GTIN) - это идентификатор торговой позиции, разработанный компанией GS1. Это международная организация, занимающаяся вопросами стандартизации учёта и штрихового кодирования логистических единиц.

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

Рассмотрим кратко стандарты штрихового кодирования. Установлено два основных стандарта штрихового кодирования: EAN/UCC-13 – для единицы товара.

European Article Number, EAN (европейский номер товара), в дальнейшем после распространения известный также как международный артикул (International Article Number) — европейский стандарт штрих-кода, предназначенный для кодирования идентификатора товара и производителя. В России это ГОСТ ISO/IEC 15420-2010 «Автоматическая идентификация. Кодирование штриховое. Спецификация символики штрихового кода EAN/UPC».

Номер товара EAN/UCC-13 имеет следующую структуру:

— первые 2-3 цифры — региональный код (префикс) страны, где зарегистрирован данный номер (для EAN РОССИЯ – 460-469);

— следующие 4-5 цифр – это регистрационный номер предприятия внутри национальной организации;

— следующая группа цифр обозначает порядковый номер продукции внутри предприятия;

— последняя 13-я цифра является контрольной суммой или контрольным числом. Оно вычисляется из предыдущих двенадцати.

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

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

Перед вами один из примеров применения ITF-14 на основе коробки от MilkyWay.

FastReport.NET

Штрих-код ITF можно печатать не только на этикетках, но и непосредственно на стенках картонной коробки, гофрокороба или на любой другой поверхности грубой текстуры. Даже в этом случае он будет успешно считываться сканерами.

Вот ещё один пример использования из жизни на основе картриджа со скрепками XEROX 008R13041.

FastReport.NET

Поскольку штрих-код ITF-14 предназначен для обозначения товаров в транспортных упаковках - он не предусматривает обработку на кассовых терминалах.

Особенности кодирования

ITF-14 всегда кодирует 14 цифр, а вводим мы только 13 цифр. Почему? Рассказываю на примере схемы:

FastReport.NET

Индикатор – это обозначение уровня упаковки для конкретной картонной коробки. Этот однозначный префикс может варьироваться от 0 до 8. (например, 1 — коробка, 2 — ящик и т.д.).

Префикс компании GS1 может иметь длину от 7 до 10 цифр и присваивается для однозначного определения владельца конкретного бренда. Поставщики должны получить этот префикс непосредственно от GS1, чтобы однозначно идентифицировать свою компанию.

Ссылка на товар – ссылается на тот же номер продукта, используемый для уровня товара GTIN, когда упаковка состоит из одного и того же элемента. Картонным коробкам с ассортиментом товаров присваивается новый номер продукта.

Контрольная цифра – это последняя цифра данного штрих-кода, которая является расчетной для контрольной суммы, но определяется она не по всем предыдущим цифрам, а только по 12 из них, следующим за первой. Используя алгоритм MOD10, вычисленная контрольная сумма предотвращает ошибки подстановки.

Толстая черная рамка вокруг штрих-кода называется опорной полосой (Bearer Bar). Эта полоса уравнивает давление, создаваемое печатающей пластиной по всей поверхности штрих-кода и улучшает читаемость, сокращая вероятность неполного сканирования символа. ITF-14 может быть с видимыми или скрытыми вертикальными опорными полосами.

Размер – два компонента, которые определяют ширину символа штрих-кода ITF-14, являются отношением ширины к узкой части. Это отношение остается постоянным и всегда должно быть в пределах от 2,25:1 до 3:1.

Перейдём к практике - как быстро делать-выводить ITF-14 в своём проекте на .NET в MS Visual Studio? FastReport .NET в помощь! Есть такой объект среди штрих-кодов!

Настройка ITF-14 в дизайнере

FastReport.NET

Добавляем на лист Barcode и выбираем именно ITF-14. Штрих-коды 2/5 Interleaved, 2/5 Industrial, 2/5 Matrix тоже Interleaved Two of Five, но это совершенно разные объекты. Подробнее о них можно почитать тут.


Для примера покажу ITF-14 и 2/5 Interleaved. Как видите, разница очевидна.

FastReport.NET

Далее мы видим большое количество свойств для более тонкой настройки, но остановимся на некоторых конкретных:

"Поворот" (Angle) – Свойство позволяет задать поворот объекта на один из фиксированных углов – 0, 90, 180, 270 градусов.

"Масштаб" (Zoom) – Свойство задает масштабирование штрих-кода. Это свойство используется только вместе со свойством "Авторазмер".

"Авторазмер" (AutoSize) – Если это свойство включено, объект будет растягиваться, чтобы показать штрих-код целиком. Если свойство отключено, штрих-код будет растянут до размеров объекта.

"Показывать текст" (ShowText) – Свойство определяет, надо ли показывать ли текст в нижней части штрих-кода.

"Поле данных" (DataColumn) – Поле данных, из которого загружать текст объекта.

"Выражение" (Expression) – Выражение, которое возвращает текст объекта.

"Текст" (Text) – Текст объекта.

"Отступы" (Padding) – Свойство позволяет задать отступы от краев объекта, в пикселах.

"Ширина полос" (WideBarRatio) – Это свойство имеется у всех линейных штрих-кодов. Оно определяет относительный размер широких полос штрих-кода.

"Контрольная сумма" (CalcCheckSum) – Это свойство имеется у многих линейных штрих-кодов. Оно определяет, надо ли считать контрольную сумму автоматически. Если это свойство отключено, контрольная сумма должна присутствовать в тексте объекта.

"Отображение вертикальных полос" (DrawVerticalBearerBars) – Если это свойство включено, то у объекта будут отображаться боковые линии. Если свойство отключено, то штрих-код будет иметь следующий вид:

FastReport.NET

Сравнение ITF-14 и interleaved 2 of 5

Если говорить об этих двух штрих-кодах, то interleaved 2 of 5 - это безразмерная версия ITF-14, ведь в ITF-14 строгое количество символов, а именно 13 + 1 контрольная сумма. Interleaved 2 of 5 тоже может содержать эти 13 символов. Показываю на примере:

FastReport.NET

Первым стоит ITF-14, а под ним Interleaved 2 of 5. Значения у них закодированы одинаковые и полоски выглядят одинаковыми. Ширина разная из-за стандартов отличных друг от друга. Из этого следует вывод, что если в interleaved 2 of 5 закодировать эти же 13 символов, то получим ITF-14, но без особого оформления для этого стандарта - только лишь одинаковые значения.

Создание ITF-14 с помощью кода

Вы можете добавить объект штрих-кода либо в коде пользовательского приложения, когда создаете отчет из кода. Давайте рассмотрим пример создания отчета в коде, и добавление в него штрих-кода ITF-14:

Делаем и выводим штрих-коды ITF-14 в.NET-приложениях
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 //Создаем объект отчета
 Report report = new Report();
 //Создаем страницу отчета
 ReportPage page = new ReportPage();
 //добавляем уникальный идентификатор
 page.CreateUniqueName();
 //Добавляем ее в коллекцию страниц отчета
 report.Pages.Add(page);
 //Создаем бэнд данные
 DataBand dataBand = new DataBand();
 //с уникальным идентификатором
 dataBand.CreateUniqueName();
 //и добавляем его в коллекцию бэндов
 page.Bands.Add(dataBand);
 
 //Создаем объект штрих-кода
 FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject();
 //Задаем тип штрих-кода
 barcode.Barcode = new FastReport.Barcode.BarcodeITF14();
 //Задаем числовую комбинацию для кодирования
 barcode.Text = "597861558";
 //Размещаем штрих-код на странице
 barcode.Parent = dataBand;
 //Устанавливаем размеры объекта
 barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3);
 //Отображаем отчет
 report.Show();

Итак, ITF-14 кодирует исключительно цифры и используется только на коробках, внутри которых есть штучный товар со штрих-кодом EAN/UCC-13. Так, благодаря поддержке ITF-14 и других штрих-кодов, FastReport.NET позволяет создавать полноценные отчеты и этикетки для торговли, логистики и складского учета.