Здравствуйте!
Некоторое время назад написал программу для печати на самоклеящихся этикетках для Zebra-образных принтеров.
Команды на принтер отправляются через COM-порт Она работает хорошо на основной массе принтеров, но криво работает на Zebra LP 2824. Но не на всех. На отдельных LP 2824 работает идеально. Отличий от тех, где не работает - не могу найти.
Схема:
К ПК через шнур-переходник USB-COM (Либо Prolific, либо китайский CH 34)
прикрепляется Zebra LP 2824. В Windows создается виртуальный COM-порт.
На данный COM-порт моей программой отправляется такой вот фрагмент кода на языке EPL
Код:
U1 setvar "device.languages" "epl"
N
ZN
S3
WY
D10
R02,0
q240
Q160,010
B30,1,0,1C,2,7,75,B,"ШТРИХКОД"
I8,C,001
A30,105,0,2,1,1,N,"ФИО"
A20,123,0,2,1,1,N,"ОТДЕЛ"
P1
Как видно, здесь запрограммирована примерно посередине наклейки печать некоего ШТРИХКОДа, а ниже некоторая строка "ФИО", а затем некоторая строка "ОТДЕЛ". ФИО, ШК и ОТДЕЛ параметризуются.
Программа переводит эту строку в байты и загоняет в COM порт через стандартную библиотеку System.IO.Ports из .NET фреймворка
Эта программа на разных LP 2824 либо работает идеально, либо глючит везде одинаково .
Печатает и ШК и ФИО, но до какой-то определенной
длины.
Например, Если задать ШК= 123456 и ФИО = Тестов, то наклейка нормально печатается
Если задать ШК = 123456 и ФИО = Тестовый, то вообще ничего не печатается (даже не выезжает).
Если задать ШК = 12345670 и ФИО = Тестов , то наклейка нормально печатается
Если задать ШК = 123456700 и ФИО = Тестовский, то вообще ничего не печатается.
То есть, это явно зависит от длины передаваемых данных. Казалось, принтер каким-то образом их обрезает.
Но если посмотреть на код EPL, то, если до конца не передается ФИО, не должна также печататься и вся этикетка, потому что команда посылки на печать в конце (P1). А также не печаталась бы лаборатория
Пробовал менять параметры порта - не помогает.
Что это может быть за проблема?
Параметры порта такие
Скорость: 9600, четность : нет, стоп-бит:1, биты данных: 8, управление потоком - пробовал все (None, Hardware, Xon/Xoff).
В чем это может быть дело?
Ломаю голову, прошу идей, советов..