Шаблон этикетки Jasper для Честного ЗНАКа: размеры и поля
.jasper — это не картинка и не «готовый код» для печати. Это скомпилированный шаблон, который отвечает за позицию элементов и типы данных на наклейке. Исходник JRXML предпочтительнее для правок: восстановление структуры из .jasper не равно удобному исходному проекту. Кодовые значения приходят позже, уже из вашей операционной цепочки.
Jasper-шаблон для Честного ЗНАКа стоит разбирать по структуре: сначала размер страницы, затем обязательные поля и кодовые зоны. Эта статья именно про поля и геометрию, а не про каталог готовых файлов.
Если упростить цепочку, логика такая:
- рисуете шаблон в JRXML;
- компилируете в
.jasper; - на этапе заполнения в подстановки попадают реальные значения;
- отдельная система печати заполняет шаблон и формирует этикетку или PDF.
То есть .jasper решает, где лежит информация, а не какая именно информация на ней окажется.
С этим напрямую связан главный практический смысл структуры: ошибки часто происходят не в «полосатой» вёрстке, а в том, как вы разложили коды и тексты по полям.
Почему .jasper нельзя путать с генератором кодов
В документации JasperReports .jasper — это скомпилированный шаблон отчёта. В Честном ЗНАКе он используется как макет этикетки и не создаёт коды за вас.
Поэтому фраза «Сделайте шаблон и система сама закодирует всё» — неправильная. Получение кодов и вёрстка — разные этапы.
Ключевая геометрия: сначала размер, потом элементы
Смотрите на размер этикетки как на базу для всей логики. Если холст неверный, даже идеальные поля сломаются позже.
Что проверяется в первую очередь:
- общие габариты в мм и DPI;
- соотношение между зонами для кодов, текстом и доп.полями;
- запас по краям для возможного сдвига печати;
- читаемость на реальной печати, а не в предпросмотре.
В ЧЗ требования чаще всего касаются качества и читаемости кода, а не того, где именно вы поставили товарный текст в эстетических координатах. Зона с кодом должна быть контролируемой.
Что обязательно в структуре этикетки
Независимо от формата этикетки структура обычно та же:
- Поле с основным наименованием — понятное и проверенное на коротких и длинных значениях.
- Поле EAN-13 или Code 128 — только если такой товарный или внутренний код нужен в вашем процессе.
- Поле Data Matrix — для Честного ЗНАКа.
- Доп.текст и служебная информация — только если не съедает коды.
- Бренд/логотип — в отдельной зоне, только если это нужно бизнесу.
Если начать с этой структуры, шаблон проще адаптировать для разных товаров и проверять после изменений.
Как отделять читаемые коды от текстов
Для Data Matrix и линейного штрихкода лучше отвести отдельные зоны. Не ставьте их вплотную к тексту и краю.
Поэтому в вёрстке обычно делают:
- один блок для EAN-13 с собственным отступом;
- отдельный блок для Data Matrix на белом фоне;
- самостоятельное пространство под логотип и наименование.
Даже если визуально всё «красиво», при съезде принтера или неидеальном материале сканеры начинают видеть границы по-другому. Это и есть тот случай, когда внешне красивый макет не работает в потоке.
Блоки и блокировки в шаблоне
JasperReports поддерживает поля, изображения и блоки для штрихкодов, и это как раз те элементы, которыми вы оперируете в макете.
Важно:
textFieldиlineзадают, где и как показывать текст;imageнужен для логотипа, но лучше с фиксированным прямоугольником;barcode/dataMatrixдобавляют только элемент размещения, не источник данных.
В редакторе Студии сценарий тот же: вы настраиваете блоки, проверяете предпросмотр и после оплаты скачиваете ZIP с единственным файлом sticker.jasper. Для обычного импорта в СУЗ из ZIP извлекают именно sticker.jasper; отдельный ZIP-сценарий официальной инструкции с картинкой — другой процесс.
Где поставить логотип, чтобы не мешать считыванию
Логотип — не обязательный блок для маркировки, а бизнес-блок. Если его надо вывести, держите его вне зоны потенциального скана. Когда в одном маленьком поле вы пытаетесь уместить и бренд, и Data Matrix, чаще всего конфликт идёт отступом между элементами.
Рабочее правило: приоритет на каждую отправку партии — сначала кодовая зона, затем логотип и вторичные поля. Если не помещается в один формат, лучше упростить доп.контент, чем уменьшать код до нечитаемого состояния.
В каком порядке собирать макет
Ниже рабочий порядок сборки:
- выбрать итоговый формат этикетки и проверить его в предпросмотре;
- зафиксировать обязательные блоки: текст и Data Matrix, а EAN-13 или Code 128 добавить только при необходимости;
- отвести отдельные зоны под коды;
- добавить вспомогательные тексты только после того, как кодовые блоки стабилизированы;
- вставить изображение только как отдельный элемент в свободной зоне;
- сделать пробную сборку и сохранить шаблон.
Чем меньше вариативных элементов до проверки, тем легче найти реальную причину ошибки на печати и не переписывать весь макет.
Как разделены Студио и Честный ЗНАК
Есть две стадии:
- Стадия макета: вы собираете
.jasper, который хранит структуру этикетки. - Стадия маркировки: коды и статусы обрабатываются в Честном ЗНАКе/ГИС МТ, после чего макет используется для печати.
Поэтому макет не заменяет работу с кодами и настройку печати.
Контрольный чек-лист перед выгрузкой
- Нет ли блоков за пределами холста;
- Нет ли пересечений между Data Matrix и EAN-13;
- Есть ли визуальный и технологический запас вокруг кодов;
- Логотип и текст не «перекрывают» кодовые зоны;
- Предпросмотр подтверждён для целевой партии;
- Формат соответствует вашему процессу печати.
Если эти пункты закрыты — макет можно отправлять дальше в печать.
Что делать, если код периодически не сканируется
Причина может быть в макете, печати, материале или самих данных. Начните с проверки всей цепочки:
- блоки меняют своё относительное положение на другой плотности бумаги;
- код стоит слишком близко к тексту или к краю;
- в предпросмотре был один формат бумаги, а печать идёт на другом;
- в одной партии менялся набор полей и часть строк «выпадает» из зоны.
Если геометрия верна, проверьте контраст, нагрев и скорость принтера, качество материала, повреждения этикетки и исходное значение кода.
Что важно помнить про проверку шаблона в ЗНАКЕТА Студио
Работа в Студио заканчивается скачиванием ZIP, но это ещё не подтверждает совместимость и качество печати. Окончательная проверка — распаковать sticker.jasper, импортировать его в целевую систему, напечатать пробную этикетку и считать её рабочим сканером.
Минимальная последовательность сборки
Начните с размера страницы. В редакторе задайте ширину и высоту этикетки, затем проверьте их в предпросмотре. В официальной инструкции Честного ЗНАКа указан лимит 100 Кбайт, а для термотрансферной печати — размеры 10–110 × 10–300 мм и допуск более 10%. После этого добавьте Data Matrix — квадратный блок для кода маркировки. Для товарного штрихкода используйте EAN-13 только если у вас 13-значный код, иначе выберите Code 128 или оставьте поле пустым.
Текстовые блоки и поля товара ставьте после кодов. К тексту относятся название, артикул, размер, состав и другие значения, которые вы передаёте в рабочий процесс. Изображение добавляйте отдельным блоком и сохраняйте пропорции. Фигуры — линии и прямоугольники — используйте для визуального разделения зон, но не размещайте их поверх кодов.
.jasper хранит правила расположения и отображения этих блоков. Он не хранит реальные коды маркировки конкретной партии. Коды получает и обрабатывает Честный ЗНАК, а шаблон определяет, где они будут напечатаны.
Проверьте три сценария: короткое название, обычное и самое длинное из каталога. Убедитесь, что Data Matrix и выбранный товарный штрихкод не выходят за рамку, а текст не попадает в свободную зону кода. Если сканирование нестабильно, проверьте макет, принтер, материал, контраст, повреждения и данные, а не только размер блока. Сохраните утверждённый размер, список блоков и дату проверки. О создании макета онлайн читайте в статье «Как создать Jasper-макет этикетки онлайн», а о загрузке — «Как загрузить Jasper в Честный ЗНАК».
