Почему сканер Metrologic MS5145 не читает штрихкоды, напечатанные на принтере этикеток Zebra из 1С?

Системный администратор Торговля и дистрибуция
← На главную

Нередко при автоматизации склада или торговой точки возникает специфическая ситуация: этикетки со штрихкодом EAN-13, напечатанные на обычном офисном принтере, читаются любыми сканерами моментально. Однако стоит отправить те же самые этикетки на специализированный термопринтер (например, Zebra TLP 2824), как линейный лазерный сканер Metrologic MS5145 (Honeywell Eclipse) наотрез отказывается их считывать. При этом двумерные фотосканеры (2D-имиджеры, такие как Xenon 1900) или терминалы сбора данных могут считывать эти же этикетки без видимых задержек.

Разберем детально физические и программные причины такого поведения оборудования, проанализируем влияние терминальных сессий RDP и выясним, как правильно настроить печать из 1С.

В чем кроется разница между лазерным сканером и 2D-имиджером

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

  1. Линейный лазерный сканер (Metrologic MS5145). Устройство направляет луч лазера на штрихкод и замеряет отраженный сигнал с помощью фотодиода во времени. Декодер рассчитывает точные пропорции между черными штрихами и белыми промежутками. Для формата EAN-13 стандарт регламентирует строго фиксированные соотношения толщины линий (модулей). Если ширина хотя бы одной полосы искажена даже на доли миллиметра, контрольная сумма не сойдется, и сканер просто не подаст сигнал считывания.
  2. Фотосканер / 2D-имиджер (Honeywell Xenon 1900, современные ТСД). Такие устройства работают как цифровой фотоаппарат: они делают мгновенный снимок области этикетки, а встроенный процессор обрабатывает графику программными алгоритмами. Математическая постобработка легко восстанавливает смазанные края, перекосы и искажения толщины линий, поэтому 2D-сканеры читают даже сильно поврежденные штрихкоды.

Главная программная причина: служба Easy Print в RDP

Проанализируем типовую архитектуру работы: база 1С развернута на сервере баз данных, пользователи работают в терминальном режиме через Remote Desktop Services (RDP), а локальный принтер Zebra пробрасывается в сессию. При локальной печати штрихкоды считываются без проблем, но при запуске печати из сессии RDP лазерный сканер перестает их распознавать.

Виновником такого поведения является встроенный механизм Windows — Remote Desktop Easy Print. По умолчанию терминальный сервер не использует «родной» драйвер принтера Zebra, установленный на сервере, а транслирует задание на клиентский компьютер через промежуточный XPS-формат. В процессе этой конвертации растровые изображения и шрифты штрихкодов подвергаются масштабированию и сглаживанию (антиалиасингу). В результате четкие черные прямоугольники превращаются в размытые полосы с серыми полутонами на границах. Для глаза человека или 2D-сканера изменения почти незаметны, но оптическая система лазерного сканера сбивается из-за смещения перепада контрастности.

Пошаговое отключение Easy Print на сервере RDP

Разберем по шагам, как заставить операционную систему использовать оригинальный драйвер принтера в терминальной сессии:

  1. Установим одинаковую версию оригинального драйвера этикеточного принтера (рекомендуется использовать драйвер производителя или специализированный драйвер Seagull Scientific) как на локальном компьютере пользователя, так и на сервере RDP.
  2. На сервере откроем редактор локальной групповой политики: нажмем сочетание клавиш Win + R, введем команду gpedit.msc и подтвердим ввод.
  3. Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров.
  4. Найдем политику «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» (Use Remote Desktop Easy Print printer driver first).
  5. Откроем параметры этой политики, переведем ее в состояние «Отключено» (Disabled) и нажмем кнопку применения изменений.
  6. Обновим политики на сервере с помощью команды gpupdate /force в командной строке или перезагрузим службу удаленных рабочих столов.

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

Аппаратные факторы термопечати: разрешение 203 DPI и эффект растекания

Если после настройки драйверов сканер все еще считывает штрихкоды с трудом, проанализируем физические настройки самого термопринтера:

  1. Дискретность термоголовки. Принтер Zebra TLP 2824 имеет физическое разрешение печатающей головки 203 dpi (1 точка составляет примерно 0,125 мм). Номинальный модуль EAN-13 равен 0,33 мм. Чтобы штрихкод печатался без артефактов интерполяции, ширина элементарного штриха в макете 1С должна быть строго кратна точкам головки (например, ровно 2 точки = 0,254 мм или ровно 3 точки = 0,381 мм). Если ширина задана не кратно, драйвер будет чередовать ширину соседних линий, нарушая стандарт кодирования.
  2. Регулировка температуры (Darkness) и скорости. При избыточном нагреве термоголовки происходит тепловое разрастание точки (Dot Gain). Краска красящей ленты (риббона) или термослой этикетки растекаются. Черные штрихи становятся шире расчетных, а белые зазоры критически сужаются. В свойствах драйвера принтера необходимо снизить параметр температуры нагрева и немного повысить скорость протяжки, добиваясь максимально четких белых пробелов.
  3. Отключение сглаживания (Dithering). В настройках графики драйвера принтера необходимо принудительно отключить любые полутона и сглаживание, выставив режим полутонов в положение «Нет» (None). Каждая точка должна быть либо предельно черной, либо оставаться белой.
  4. Соблюдение свободных зон (Quiet Zones). Слева и справа от штрихкода EAN-13 обязательно должны оставаться пустые белые поля шириной не менее 3–4 мм. Если при компоновке этикетки в 1С убрать боковые поля вплотную к краю бумаги, лазерный луч не сможет распознать стартовые и стоповые шаблоны штрихкода.

Таким образом, устранение влияния Easy Print в RDP вместе с точной калибровкой нагрева головки термопринтера полностью восстанавливает корректную работу линейных сканеров Metrologic MS5145.

← На главную