Объединить драйвер принтера Windows с собственным рендерингом штрих-кода на принтере?

Мне нужно распечатать этикетки со штрих-кодом (обычно с кодом 128) из моего приложения .NET для Windows. Поскольку у клиентов разные принтеры — разные модели Eltron/Zebra и разные производители (такие как GoDEX, Sato, ...) — я хотел бы, чтобы мое приложение было полностью (или, по крайней мере, в основном) независимым от фактической модели принтера.

Поэтому я попытался напечатать такие этикетки со штрих-кодами, используя драйвер принтера для Windows. При таком подходе штрих-код, по-видимому, отображается как изображение на ПК, а принтер просто выводит его как изображение в пикселях. Возможно, вся этикетка отображается как изображение, я не уверен в этом. В качестве примечания: на самом деле я использую XtraReports для печати этикеток, но это само по себе не должно способствовать возникновению проблемы, описанной ниже.

Однако такой подход дает плохое качество штрих-кода. Мне приходилось много раз устранять неполадки с выводом, настраивая параметры драйвера принтера (например, температуру, скорость и т. д.), и все равно некоторый процент штрих-кодов не принимается последующими системами.

Я знаю, что могу просто отправить необработанные команды EPL/ZPL на принтер Zebra, и он отобразит сам штрих-код, что приведет к гораздо лучшему качеству.

Однако у такого подхода есть два недостатка:

  • во-первых, необработанные команды могут различаться между моделями принтеров и, вполне вероятно, между производителями. Не уверен, что EPL/ZPL является таким широко поддерживаемым лингва-франка.
  • во-вторых, если клиент хочет, чтобы содержимое этикетки было изменено/перестроено, то это становится довольно неинтуитивной работой, особенно по сравнению с простым изменением дизайна этикетки в XtraReports. Я знаю, что есть Z-Designer, но он не интегрируется в мое приложение и (предположительно) специфичен для принтеров Zepra.

Есть ли способ объединить лучшее из обоих миров? В основном использовать драйвер Windows для рисования/печати всей этикетки, но позволить принтеру отображать штрих-код в наилучшем качестве?

Я смутно знаю об использовании шрифтов штрих-кода, которые можно загрузить из принтера или на принтер, но я не уверен, насколько лучше качество, сколько настроек потребуется на ПК и насколько хорошо это поддерживается разными моделями принтеров и производителями. Мне кажется, это очередная банка червей.


person user1211286    schedule 26.06.2020    source источник
comment
EPL/ZPL будет больше поддерживаться для термопринтеров, чем пытаться печатать с помощью драйвера. Однако вам придется научиться ориентироваться в спецификациях zpl на 1000 страниц. Таким образом, я не уверен, что вы найдете благоприятное решение для этого   -  person TheGeneral    schedule 26.06.2020
comment
На моей старой работе мы просто использовали шрифт 39 штрих-кодов, и он отлично работал. Может ли проблема заключаться в том, что вам нужно сначала увеличить изображение штрих-кода, а затем уменьшить его? Это единственное, что я могу придумать, что может привести к плохим показаниям у меня в голове.   -  person Carter    schedule 26.06.2020
comment
Что касается масштабирования: в настоящее время я использую XtraReports, который генерирует штрих-код, и провел некоторые тесты на печать напрямую. Насколько я понимаю, штрих-код рисуется как векторное изображение на странице виртуального принтера, поэтому потеря качества должна происходить где-то еще.   -  person user1211286    schedule 26.06.2020


Ответы (1)


Я создал приложение для складской отправки в MS ACCESS, используя VBA для печати этикеток со штрих-кодом на принтерах Zebra. Здесь нет простого ответа. 3 распространенных варианта: наихудший вариант: использование стороннего программного обеспечения (например, BarTender), но, как правило, не может быть интегрировано и эффективно представляет собой двухэтапный процесс, который создает проблему печати неправильного файла, повторной печати дублирование этикеток и мошенничество; лучший вариант: необработанная печать (через универсальный текстовый драйвер Windows) непосредственно на принтер с использованием ZPL, который встречается чаще, чем вы ожидаете (или EPL, или CPCL, или какой-либо другой кроличья нора) лучший результат с этикеткой, но проблема в том, что она очень техническая, изменения макета этикетки - это боль (вы, кажется, уже знакомы с этими проблемами), много звонков в службу поддержки; лучший вариант (для меня): позволить драйверу печати поставщика сделать всю работу (требуется конфигурация), сделать макет в виде отчета в MS ACCESS (или в приложении .NET). ), отформатируйте текст штрих-кода как пользовательский шрифт, в драйвере принтера zebra сопоставьте этот шрифт с требуемым штрих-кодом (тип конфигурации, размер, ориентация, дополнительный текст и т. д. в драйвере), поиграйтесь с настройками драйвера по скорости и т. д. , пока метка не станет такого же качества, как raw/zpl, сохраните/экспортируйте настройки конфигурации драйвера в файл (наиболее распространенный вызов службы поддержки: я просто перезагружаю этот файл, экономя время). С другой стороны, требуется некоторое предварительное планирование для согласования макета, в частности штрих-кода с сопоставлением драйвера с помощью пользовательского шрифта с желаемым штрих-кодом. Это сработало для меня через несколько версий MS ACCESS и изменений принтера за эти годы.

person Johannes Hamman    schedule 22.03.2021
comment
Эта функция называется Проходной режим. - person GSerg; 22.03.2021
comment
@GSerg параметр командного шрифта (сквозной) на самом деле является разновидностью необработанной печати, я просто всегда чувствовал, что если кто-то собирается приложить усилия для изучения необработанного кодирования, лучше всего обслуживать его через код в приложении непосредственно в общий драйвер текстовой печати (который, кстати, может работать через сеанс RDP), мой вариант 3 использует шрифт штрих-кода в драйвере (это не работает через сеанс RDP). Если речь идет о тестировании кода ZPL, это отличный вариант labelary.com/viewer.html. - person Johannes Hamman; 22.03.2021