Генератор Code32

Code32, также известный как итальянский фармакод, — это специальный одномерный штрихкод для лекарственных препаратов, косметики и биодобавок. В статье разбираемся, для чего нужен этот формат и как выбрать правильный подход к его генерации.

Автору этих строк однажды пришлось помогать небольшой фармацевтической компании, которая начала поставки в Италию. Заказчик требовал наклейки со штрихкодом, но не обычный EAN-13, а какой-то специальный. Пришлось срочно разбираться. Оказалось, речь шла о Code32 — формате, который используется для кодирования препаратов в Италии.

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

Что скрывается за именем Code32

Code32 — это одномерный (линейный) штрихкод, который применяется в основном в фармацевтической и медицинской сферах. Чаще всего его можно встретить на итальянских лекарствах, но география использования постепенно расширяется. За ним также закрепилось несколько альтернативных названий: Italian Pharmacode, Codice Farmaceutico Italiano (итальянский фармацевтический код), а также просто Radix 32 Barcode.

Разработан он на базе стандарта Code 39, который очень популярен и широко применяется, например, для логистики или маркировки на производствах. Но в Code32 авторы пошли дальше: они создали специализированный, более компактный «подвид», взяв от своего «родителя» самую суть, изменив под свои цели набор символов и добавив обязательный контроль ошибок.

Особенности и структура символа

Чтобы понимать, с чем имеешь дело, полезно знать, как устроен этот код изнутри. Вот его ключевые характеристики:

  • Набор символов: в отличие от Code 39, который умеет кодировать цифры, много букв и даже некоторые спецзнаки, Code32 сильно сузил «разрешенный список». Он умеет работать только с десятью арабскими цифрами от 0 до 9.
  • Обязательная контрольная цифра: стандарт требует строгой проверки. Контрольная цифра проверяется по специальному алгоритму «модуль 10» (mod 10), он добавляет итоговую цифру в самый конец кода, а сканер с помощью этой контрольной цифры проверяет, не допустил ли он ошибку при считывании.
  • Код должен быть строго определенной длины — 8 символов плюс стартовый знак в начале.
  • Стартовый и стоп-символы: структура «рамки» кода (звездочка * в начале и в конце) позаимствована у «старшего брата» — у Code 39.
  • Принцип кодирования: каждую цифру здесь кодируют с помощью 5 вертикальных черных полос (баров) и 4 белых промежутков (пространств). Если быть точным — 3 элемента из девяти делаются широкими, а остальные 6, наоборот, узкими.

Где в работе может пригодиться Code32

Если ваша работа связана с международными поставками, особенно в Европу, или вы производите товары для определенных ниш, от Code32 отмахиваться не стоит. Основные сферы применения этого штрихкода:

  • Фармацевтика в Италии: здесь Code32 — это фактически стандарт де-факто. С его помощью кодируют так называемый AIC-код (Autorizzazione all'Immissione in Commercio), который служит уникальным идентификатором каждого сертифицированного в стране медицинского препарата, выданным итальянским Минздравом. Без него легальный ввоз и продажа лекарства попросту невозможны.
  • Маркировка косметики и биодобавок (БАД): эта символика также находит применение для кодирования косметических средств и БАДов, которым требуется строгий контроль.
  • Упаковка небольших размеров: в отличие от многих других одномерных кодов, Code32 может быть напечатан очень компактно без потери читаемости, что идеально подходит для маленьких флаконов и ампул, где площадь этикетки буквально ограничена несколькими квадратными сантиметрами.

Как работать с генератором этого типа

Главное, что нужно запомнить про генерацию Code32 — это крайне специфичный формат. В большинстве случаев он не принимает «сырые» данные, которые вы в него вводите, а преобразует их. На практике процесс обычно выглядит так:

  • Шаг 1. Подготовка данных. Нужно ввести 8 цифр (7 значащих цифр и 1 контрольную). Делать это вручную не стоит: в качественных инструментах последняя, восьмая, цифра (контрольная сумма) рассчитывается автоматически. В некоторых приложениях вводят 9 цифр — тогда последняя из них выступает проверочной.
  • Шаг 2. Выбор правильной символики. В программе, которую вы используете, убедитесь, что выбран именно «Code 32» или «Italian Pharmacode». Не перепутайте с обычным «Pharmacode» — это вообще другой формат. Некоторые программы при выборе Code32 автоматически добавляют букву «A» в удобочитаемую часть, сама же она в код не зашивается.
  • Шаг 3. Экспорт и печать. Как и для любого штрихкода, который идет в серьезную типографию, для получения максимально четкого и читаемого результата сохраняйте его в векторном формате (PDF, SVG, EPS).

Почему важен контрольный разряд

Code32 не просто «рекомендует» использовать контрольную сумму — она обязательна. Контрольная цифра (checksum) рассчитывается по алгоритму «модуль 10» (mod 10). Это значит, что сканер, считав номер, пересчитывает сумму по встроенной формуле и сравнивает полученный результат с последней, девятой, цифрой в коде. Если данные не совпадают — сканер не примет штрихкод. Причем тут есть важный нюанс, который иногда сбивает с толку: та цифра, которую видит человек, может отличаться от той, что «видит» сканер. Профессиональное программное обеспечение для создания штрихкодов рассчитывает ее автоматически, и вам не нужно делать это вручную.

Ошибки при создании и печати

Учитывая специфическую сферу применения, цена ошибки здесь очень высока. Вот несколько распространенных проблем, которые могут возникнуть на практике:

  • Недостаточный контраст: при печати на глянцевых и блестящих материалах (ламинированные блистеры) полосы могут бликовать, в результате чего контраст для сканера резко падает.
  • Искажение геометрии: слишком узкие полоски и промежутки — забитый код. При печати на недорогом принтере тонкие линии могут сливаться друг с другом.
  • Путаница с другими символиками: сканеры, настроенные на поиск кода 39, могут спутать его с кодом 32, если тот по структуре подходит под оба шаблона.
  • Неправильная позиция: помните, что у любого линейного кода вокруг него должна быть «тихая зона» (пустое пространство) — минимально допустимое значение которой — не менее 6 миллиметров с каждой стороны. Без нее сканер может «зацепиться» за соседний текст или логотип и не распознать его.

Заключение

Коротко по делу:

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

А теперь вопрос к вам: доводилось ли вам сталкиваться с требованиями от итальянских партнеров по маркировке их фармацевтической продукции? Если да, то какие еще неочевидные нюансы вы обнаружили? Поделитесь в комментариях — автору и читателям будет очень интересно.