30.01.2019 21:26
Клапауций
 
Здравствуйте!
Некоторое время назад написал программу для печати на самоклеящихся этикетках для 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).

В чем это может быть дело?

Ломаю голову, прошу идей, советов..
30.01.2019 21:30
baggio
 
Фото и конкретные примеры не помешают ..
30.01.2019 22:51
Клапауций
 
То, что появляется на печать.


Если, скажем, удлинить на 1 букву ФИО или ШК, то не печатает ничего
30.01.2019 23:00
Клапауций
 
Сорри за качество фоток.
31.01.2019 09:43
baggio
 
1. нет примеров того что точно не печатается...

2. не пробовали поменять формат ШК на Code 128 auto A, B, C modes? или EAN13?
не совсем понятно по какому принцы у вас шк...

3. и я в по быстрому не нашел что такое
I8,C,001
31.01.2019 10:52
KirillHome
 
Цитата:
baggio и я в по быстрому не нашел что такое
I8,C,001
Есть в описании языка (см. вложение) на страницах 110-111
Вложения
Тип файла: zip 14245L-001rA_EPL_PG.zip (2.46 Мб, 33 просмотров)
31.01.2019 11:14
Клапауций
 
Не печатается:
ШК = 1234567, ФИО = Иванов
но печатается
ШК = 123456, ФИО = Иванов


I8,C,001 означает печать в кодировке Windows 1251
31.01.2019 11:17
baggio
 
Погодите...
Но у вас есть этикетки с 123456...
И они напечатаны...
31.01.2019 11:22
Клапауций
 
Да, есть 123456, это печатается. Но 1234567 не печатается, если ФИО = Иванов.
31.01.2019 12:37
pavel_k
 
Клапауций, в первой строке пропущен "!". И что за команда ZN?
И еще момент, относящийся к device.languages: * The setvar command is supported only on Zebra G-Series™ printers. Хотя может добавили в прошивку для LP.
Часовой пояс GMT +3, время: 23:32.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.