AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2012, 14:54   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Печать на этикеточном принтере Datamax DMX I-4208
Сразу извиняюсь за то, что большинство вопросов будет из разряда "проще попробовать". Проблема только в том, что принтер находится от меня физически далеко и получается "программирование по переписке". Сегодня послал запрос, а завтра мне ответили, что ничего не получилось

Итак, есть этикеточный принтер Datamax DMX I-4208. Необходимо организовать печать этикеток из Axapta 2.5 SP3 RU на этот принтер.

1. Есть готовый отчет в Axapta который печатает этикетки на обычный принтер на листы формата A4. Попробовали распечатать этот отчет на этикеточный принтер. Печатать - печатает, но штрих-код сканер не распознает. Стоит ли дальше "животинку тиранить", в смысле пытаться добиться "читабельности" штрих-кода формируемого отчетом Axapta или формировать файл в принтерных кодах?

2. Не совсем понял из описания принтерных кодов - возможен ли автоматический перенос текста на несколько строк? Ну, например, если длина названия артикула не умещается в одну строку. Или придется "вручную" резать текст на куски и печатать каждый кусок с новой строки? Если "резать", то как определять длину фрагментов?

3. Стоит ли заморачиваться с загрузкой шрифтов в этикеточный принтер или достаточно использовать установленные шрифты по умолчанию?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 09.04.2012, 15:05   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Итак, есть этикеточный принтер Datamax DMX I-4208. Необходимо организовать печать этикеток из Axapta 2.5 SP3 RU на этот принтер.

1. Есть готовый отчет в Axapta который печатает этикетки на обычный принтер на листы формата A4. Попробовали распечатать этот отчет на этикеточный принтер. Печатать - печатает, но штрих-код сканер не распознает. Стоит ли дальше "животинку тиранить", в смысле пытаться добиться "читабельности" штрих-кода формируемого отчетом Axapta или формировать файл в принтерных кодах?
если тот же отчет распечатать на обычном (лазерном, струйном) принтере то сканер нормально его прочтет?

З.Ы. просто хочется понять. проблема в кодировке штрих - кода, или в качестве бумаги для этикеток...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 09.04.2012, 15:15   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Стоп-стоп-стоп. Есть есть 2 варианта печати на принтерах шк:

1. Кривой - через windows - драйвер.
При этом технология печати на отличается от работы с обычным принтером, только размер листа поменьше + указывается GAP между этикетками - 2 или 3 мм / сплошная, тип печать - прямая или термотрансферная, нужно ли отклеивать / резать и прочие служебные настройки - в драйвере.

Следовательно, сама этикета, включая шк, рисуется как отчет и передается в графическом виде, как картинка, с помощью драйвера. Шк рисуется компонентой - не всегда корректно.

Из плюсов - работает как сетевой принтер, не надо непосредственно подключать к выделенному компьютеру. Да, и можно изображение передавать.

2. Нормальный, когда этикетка формируется набором команд (в старых - ESC-последовательностями), которые передаются в порт (или через компоненту), и уже по ним сам принтер с огромной скоростью формирует этикетку и печатает - бывает, в десять раз быстрее.
Из минусов - принтер должен быть непосредственно подключен к компьютеру (что неудобно при использовании терминального режима), при использовании изображений - они должны быть предварительно загружены в память принтера, и потом командой говоришь, какой использовать и где его рисовать.
Ко всем ШК принтерам идет инструкция с описанием команд. Я делал именно так.

Владимир, непонятно, какой способ используете Вы? С одной стороны, говорите, что печатали на А4, а потом - про команды...

С Уважением,
Георгий
Старый 09.04.2012, 15:20   #4  
DmitryK is offline
DmitryK
Участник
 
179 / 76 (3) ++++
Регистрация: 22.12.2011
Просто задача не решается. Для того, что бы принтер этикеток нормально печатал ШК (с дальнейшим сканированием) ему необходима посылать его управляющие команды. Т.е. создается бинарный файл из управляющих команд, в места где должен быть текст или шк на Х++ вставляется нужный текст и потом печатается командой copy файл принтер. Я как раз решал подобную проблему не давно…. Иногда, поставщики оборудования предлагают набор библиотек. Если ваш принтер поддерживает набор команд PPLA, то могу вам дать разработанную dll и обвязку на Х++.

С уважением, Дмитрий.
Старый 09.04.2012, 15:29   #5  
DmitryK is offline
DmitryK
Участник
 
179 / 76 (3) ++++
Регистрация: 22.12.2011
Георгий, если хотите, что бы принтер печатал в терминальной сессии, то сделайте его общим и обращайтесь по сетевому имети \\комп\принтер
Проверено - работает.

С уважением, Дмитрий.
Старый 09.04.2012, 15:52   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А куда писать команды - в сетевой LPT? Это запасной вариант - брать переходник и WinAPI открывать как локальный порт. Я писал команды напрямую в LPT, через WinAPI.

С Уважением,
Георгий
Старый 09.04.2012, 15:52   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Ну, есть центральный оффис и есть склад. В центральном оффисе стоит Axapta, а на складе - свое приложение. Между этими приложениями организован обмен, чтобы синхронизировать информацию об артикулах и заказах. Иногда возникает необходимость печать несколько этикеток в центральном оффисе. В этом случае печатают на листы формата А4 стандартным отчетом Axapta. Но, в основном, печать этикеток идет на складе на этикеточный принтер.

На складе установлена своя программа, которая и организует печать этикеток на этикеточный принтер. Как именно она это делает - не известно. Код приложения закрыт и внести изменения невозможно. Разработчики вносить изменения в приложение отказываются (точнее, мы не можем им заплатить столько, чтобы они захотели внести эти изменения )

Проблема как раз в этом и заключается. Иногда, для некоторых этикеток, необходимо внести кое-какие изменения и распечатать их на этикеточном принтере. Поскольку речь идет о больших количествах (тысячи и десятки тысяч), то печатать на листы формата А4 - не разумно. А внести изменение в складскую программу - невозможно. Отсюда логичный вывод - печатать из Axapta на этикеточный принтер напрямую. На складе также установлена Axapta.

Сейчас этикеточный принтер на складе подключен через print-server, но по мой просьбе его настроят как расшаренный ресурс к одному из компьютеров.

PS: Собственно, отчет в Axapta на лист A4 при разработке тестировали, чтобы штрих-код распознавался сканерами. Но может проблема в конкретном артикуле. Я попросил проверить, но, как уже говорил, результат будет только завтра

PPS: Про алгоритмы формирования текста в принтерных кодах и способах его отправки - я в курсе. Поиском пользоваться умею Здесь уже эта проблема неоднократно обсуждалась. Да и документация есть. Я только хотел прояснить некоторые моменты, которые легко выясняются опытным путем, но, как я уже говорил, воспользоваться этим самым "опытным путем" в моем случае несколько затруднительно
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 09.04.2012, 16:07   #8  
DmitryK is offline
DmitryK
Участник
 
179 / 76 (3) ++++
Регистрация: 22.12.2011
Георгий, команда простая :
copy prn.bin \\sklad-1\argox214

prn.bin файл с командами
Можно ее толкать, например, через winexec или его аналоги.

С уважением, Дмитрий
За это сообщение автора поблагодарили: George Nordic (2).
Старый 09.04.2012, 16:20   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, есть более простой способ отправки на этикеточный принтер, описанный здесь

Печать этикеток из AX 4.0 sp.2

Т.е. это обычное формирование текстового файла в кодовой странице 866, на вместо имени текстового файла указывается сетевое имя принтера. Но, как я уже говорил, пока не проверял как это будет работать...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 09.04.2012, 16:23   #10  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
PS: Собственно, отчет в Axapta на лист A4 при разработке тестировали, чтобы штрих-код распознавался сканерами. Но может проблема в конкретном артикуле. Я попросил проверить, но, как уже говорил, результат будет только завтра
как Вы кодируете штрих код?

почему спрашиваю, у меня в свое время была проблема, когда иногда вдруг некоторые штрих - коды не читались сканерами... долго мучились, потом я сделал лог и увидел что иногда кодировка штрих - кода (то что в итоге отображается полосочками) сбивается и вместо кодировки там просто цифры. Решение это проблемы я описывал в теме "Проблема печати Штрих-кода"
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 09.04.2012, 16:33   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от lev Посмотреть сообщение
как Вы кодируете штрих код?

почему спрашиваю, у меня в свое время была проблема, когда иногда вдруг некоторые штрих - коды не читались сканерами... долго мучились, потом я сделал лог и увидел что иногда кодировка штрих - кода (то что в итоге отображается полосочками) сбивается и вместо кодировки там просто цифры. Решение это проблемы я описывал в теме "Проблема печати Штрих-кода"
Угу. Если пролистать по этой ссылке на вторую страницу, то там уже моя ссылка на код, который я использовал в приложении для формирования штрих-кодов. Смысл и сам код тот же, просто по другому организован. Но, повторюсь, подожду ответа от пользователей. Мало ли...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 09.04.2012, 17:18   #12  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
1. Есть готовый отчет в Axapta который печатает этикетки на обычный принтер на листы формата A4. Попробовали распечатать этот отчет на этикеточный принтер. Печатать - печатает, но штрих-код сканер не распознает. Стоит ли дальше "животинку тиранить", в смысле пытаться добиться "читабельности" штрих-кода формируемого отчетом Axapta или формировать файл в принтерных кодах?
Использовал оба варианта - все работало нормально, штрих-кода читались без проблем
Единственно, в случае отчета из Аксапты использовались ш/к code39 и code128. Дригие не пробовал, но проблемы быть не должно
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
2. Не совсем понял из описания принтерных кодов - возможен ли автоматический перенос текста на несколько строк? Ну, например, если длина названия артикула не умещается в одну строку. Или придется "вручную" резать текст на куски и печатать каждый кусок с новой строки? Если "резать", то как определять длину фрагментов?
Резали строки на куски.
В нашем случае было по 38 символов для этики шириной 58 мм.
Вообще, зависит от размера символов, используемых при печати. Если мне память не изменяет, выяняли количество символов экспериметрально
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
3. Стоит ли заморачиваться с загрузкой шрифтов в этикеточный принтер или достаточно использовать установленные шрифты по умолчанию?
В нашем случае приходилось грузить шрифты

Модель принтера - та-же самая
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Владимир Максимов (5).
Старый 09.04.2012, 19:06   #13  
dima123 is offline
dima123
Участник
 
41 / 12 (1) ++
Регистрация: 05.01.2012
pechat na datamax razmer 60x40mm ... itemid 6 simvolov podognan
itemname perenositsa avtomatom
Вложения
Тип файла: xpo itembarcode.xpo (16.5 Кб, 485 просмотров)
Старый 09.04.2012, 19:24   #14  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от dima123 Посмотреть сообщение
pechat na datamax razmer 60x40mm ... itemid 6 simvolov podognan
itemname perenositsa avtomatom
Ну, вообще-то я в курсе, что отчеты Axapta могут автоматически переносить текст на следующую строку Только вот, вопрос был совсем не об этом. Кстати, в какой версии Axapta Вы создали этот проект. И что за ошибки лезут при попытке его открыть вроде

Неизвестный код экспорта: 'PR'
Неизвестный код экспорта: 'EN'
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 09.04.2012, 19:28   #15  
dima123 is offline
dima123
Участник
 
41 / 12 (1) ++
Регистрация: 05.01.2012
ax 3.0 SP4 Eng-Est
Старый 09.04.2012, 19:33   #16  
dima123 is offline
dima123
Участник
 
41 / 12 (1) ++
Регистрация: 05.01.2012
Declaration
BarCode barCode;


Init
barCode = BarCode::construct(BarcodeType::Code128);
InventBatch_BarCode.font(barCode.getFont(5));
InventBatch_BarCode.fontSize(72);


display BarcodeString barCode()
{
barCodeStr = strfmt("%1", inventTable.itemId);
barCode.string(true, barCodeStr);
barCode.encode();

return barCode.barcodeStr();
}
Старый 09.04.2012, 19:46   #17  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, в стандарте Ax3.0 у класса BarCode нет метода getFont(). А, кроме того, я подозреваю, что и прочие метды класса BarcodeCode128 у Вас тоже очень сильно переделаны.

Впрочем, у нас идет печать штрих кодов EAN13. И, как я уже упоминал, при печати на обычную бумагу формата А4 обычным лазерником штрих-код нормально считывается сканерами.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 10.04.2012, 09:39   #18  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Кстати, еще такой момент

А как ориентирован штрих-код относительно хода бумаги?
Если вдоль (т.е. штрихи перпендикулярны направлению движения), то возможны проблемы с чтением из-за неравномерности натяга бумаги или неисправности/необслуженности механики принтера

И термоголовку проверяли на битые элементы (это актуально, если штрих-код ориентирован поперек направления движения ленты)?
Пусть попробуют напечатать черный прямоугольник из ворда или пайнта. Если будут непропечатанные полоски в районе расположения штрих-кода, то головку надо будет менять или пытаться разместить ш/к так, что бы он не попадал на битые элементы

Еще, для контроля битости головки добавляют печать сплошной полосы над или под штрих-кодом. Тогда можно будет сразу выявить проблему визуально.
На многих моделях весов со штрих-этикетками это делают по умолчанию
__________________
Axapta v.3.0 sp5 kr2
Старый 10.04.2012, 09:48   #19  
virhundo is offline
virhundo
Участник
 
33 / 16 (1) ++
Регистрация: 29.03.2007
По-моему этот принтер поддерживает ZPL-эмуляцию.
Может лучше печатать этикетки через ZPL?
Попробуйте отправить через CommaIo или AsciiIo
X++:
 str scriptZebra ;
 
scriptZebra ='^XA^CF0,89^FO20,50^FDA GUIDE TO^FS^FO20,150^FDTHE ZPL II^FS^FO20,250^FDPROGRAMMING^FS^FO20,350^FDLANGUAGE^FS^XZ';
Старый 10.04.2012, 10:37   #20  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Получил ответ. Одна и та же этикетка по одному и тому же артикулу при печати на обычный лазерник на бумагу формата А4 штрих-код читается, при печати на Datamax - штрих-код не читается. В данном случае, речь идет о печати отчета Axapta, который изначально разрабатывался для печати на бумагу формата А4.

То, что напечаталось в Datamax во вложении. Штрих код формируется по EAN13. Штрихи самого штрих-кода по направлению движения ленты принтера. Печать идет снизу вверх, если смотреть по картинке.

Цитата:
Сообщение от AndyD
Еще, для контроля битости головки добавляют печать сплошной полосы над или под штрих-кодом. Тогда можно будет сразу выявить проблему визуально.
Это как? В смысле, каким образом наличие сплошной полосы определяет факт битости головки?
Миниатюры
Нажмите на изображение для увеличения
Название: et1.jpg
Просмотров: 509
Размер:	29.0 Кб
ID:	7666  
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
печать, печать на принтер, печать этикеток, штрихкод

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Печать самих файлов PDF Владимир Максимов DAX: База знаний и проекты 9 17.08.2017 10:34
Отчеты и печать штрих кода KingPeas DAX: Программирование 18 24.09.2008 14:31
Печать документов по Заказам, Закупкам Swetik DAX: Функционал 8 11.04.2008 20:07
Печать рисунка на принтере из Аксапты wolfstein DAX: Программирование 4 17.03.2008 16:17
Фактура не выходит на печать... dmit1606 DAX: Функционал 1 05.04.2005 16:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:10.