[ОТВЕТИТЬ]
28.06.2012 18:18
KirillHome
 
Куплен данный принтер ш/кодов - Proton TP-4205
в комплекте - драйвера и Bartender (Light)
Язык управления: TSPL-EZ
Используемая этикетка - 42*35мм
Подключение по USB

Поставил, включил.
Сделал в Bartender шаблон под размеры данной этикетки с необходимой информацией, напечатал.
Сохранил этот шаблон в формате Имя_Файла.btw

А вот что делать дальше - не понимаю :)

Каким образом подхватить выгруженные из торговой системы (в текстовый файл) данные, с тем, что бы автоматом напечатать нужное количество этикеток? Через тот же bartender, или как то по другому?
Какой-то стопор...

Есть самописная программка для печати этикеток на листах с самоклейками (со штрихкодами и прочей нужной информацией), но у листов есть плохое качество - если нужно напечатать одну этикетку - то портишь весь лист.
Данную программу можно было бы и переделать (Delphi + QuickReport, исходники на руках) - но в этом случае не могу сообразить, каким указать размер листа (с бумагой понятно - говоришь, что у тебя А4 и дальше "разбиваешь под нужный формат этикетки, а здесь что?).

Жду подсказки - в каком направлении двигаться.

Понятное дело - хочу максимально автоматизировать это дело - т.е.
1) Выгрузил из торговой системы в текстовый файл
2) Программка, висящая в фоне, "подхватила" этот файл и напечатала этикетки согласно выбранного шаблона (ну, или в худшем случае - программа запускалась бы оператором, печатала и завершала бы работу).

P.S.
Опыт работы с принтерами штрихковых кодов - отсутствует полностью.
29.06.2012 10:31
baggio
 
расшифруйте слово тогорговая система
29.06.2012 11:04
KirillHome
 
Цитата:
baggio расшифруйте слово тогорговая система
Не думаю, что это важно, но если хотите :) - в моём случае это Домино.

Похоже, что разберусь уже сам - благодаря подсказке в одном из сообщений в ветке "Принтеры" сделал "Печать в файл" из BarTender-а, получил на выходе некий текст примерно такого содержания:
Код:
SIZE 45.5 mm, 25 mm
DIRECTION 0,0
REFERENCE 0,0
OFFSET 0 mm
SET TEAR OFF
SET PEEL OFF
SET CUTTER OFF
SET PARTIAL_CUTTER OFF
CLS
BAR 17, 147, 160, 2
BAR 5, 95, 192, 2
BAR 5, 31, 344, 2
BARCODE 341,191,"39",62,0,180,1,3,"123456"
CODEPAGE 1251
TEXT 325,121,"3",180,1,1,"123456"
BITMAP 10,2,43,96,1,..... 
BITMAP 26,98,22,96,1,...... 
PRINT 1,1
Bitmap-ы меня, конечно, смутили (картинок я туда не вставлял), но - уже стало гораздо понятнее - в каком направлении можно копать.
29.06.2012 11:26
baggio
 
1. В домино есть такое понятие как файл этикетки?
2. Домино умеет печатать этикетки напрямую?
3. Как оно это делает? через печать "картинки" на принтер? Используется для вывода Fast Report или что еще?
4. Есть ли другие принтеры этикеток которые 100% работают с домино? Как они настроены?
29.06.2012 15:05
KirillHome
 
На все вопросы ответ получился один: "Возможно, но - документации нет, опыта использования принтера этикеток - нет"

Но, не смотря на это, всё удалось сделать :)

1) Готовится тестовая этикетка в Bartender со всем данными
2) Заливается необходимый (используемый в этикетках) шрифт в принтер (в данном случае - делается в свойствах принтера)
3) "Печать в файл" из BarTender-а
4) У нас, по сути, готов шаблон для выходного файла очёта.
5) Написал в Домино отчёт, который готовит текстовый файл по данному шаблону (от документа поступления, переоценки или просто - по выбранным товарам из справочника товара) и сразу "выплёвывает" его на принтер этикеток.

Так что всё оказалось довольно просто.
29.06.2012 16:25
baggio
 
Ну так..если получилось... прикрепи файли....
потомкам проще будет...
29.06.2012 17:16
KirillHome
 
Цитата:
baggio Ну так..если получилось... прикрепи файли....
потомкам проще будет...
Запросто, но в данном случае (на мой взгляд) лучше просто содержимое

Код:
SIZE 45.5 mm, 25 mm
DIRECTION 0,0
REFERENCE 0,0
OFFSET 0 mm
SET TEAR OFF
SET PEEL OFF
SET CUTTER OFF
SET PARTIAL_CUTTER OFF
CODEPAGE 1251
CLS
TEXT 330,94,"ARIALR.TTF",180,6,6,"Первая строка наименования где-то (40)"
TEXT 330,78,"ARIALR.TTF",180,6,6,"Вторая строка наименования где-то (40)"
TEXT 330,60,"ARIALR.TTF",180,6,6,"Третья строка наименования где-то (40)"
TEXT 165,187,"ARIALBI.TTF",180,14,14,"1'546-00"
TEXT 197,145,"ARIALR.TTF",180,8,8,"Арт: 12345678901234567890"
TEXT 205,118,"ARIALR.TTF",180,4,4,"Страна-производитель: Китай (или нет)"
TEXT 333,30,"ARIALR.TTF",180,5,5,"29/06/2012"
TEXT 253,30,"ARIALR.TTF",180,5,5,"17:55"
TEXT 205,30,"ARIALR.TTF",180,5,5,"ООО \["]Название организации\["]"
BAR 5, 95, 192, 1
BAR 5, 31, 344, 1
BAR 17, 147, 160, 1
BARCODE 330,191,"39",62,0,180,1,3,"1723"
TEXT 317,121,"3",180,1,1,"1723"
PRINT 1,1
Дополнительные пояснения:
1) TEXT 165,187,"ARIALBI.TTF",180,14,14,"1'546-00"
Это цена товара, будут передавать из торговой программы в текстовом виде

2) TEXT 205,30,"ARIALR.TTF",180,5,5,"ООО \["]Название организации\["]"
Проверял, каким образом надо зеркалировать кавычки

3)
Код:
BAR 5, 95, 192, 1
BAR 5, 31, 344, 1
BAR 17, 147, 160, 1
Линии, разделяющие области на этикете

4) BARCODE 330,191,"39",62,0,180,1,3,"1723"
TEXT 317,121,"3",180,1,1,"1723"
Мне было достаточно напечатать учётный код товара в виде штрихкода (при помощи Code-39) и циферок с данным кодом (в данном примере - код 1723)

5) Если надо сделать несколько одинаковых этикеток - достаточно повторить PRINT 1,1 необходимое количество раз. Если в одном файле - несколько разных этикеток - не забывать начинать "новую секцию" с CLS

6) Всё сделано под этикетку 43 * 25мм

Кодировка файла - 1251, печать простым
copy ИмяФайла \\СетевоеИмяПринтера
27.07.2012 21:43
KirillHome
 
Принтер стал "тормозить"...
Т.е. первые 5-7 этикеток выводит быстро - а дальше - секунд 10-15 проходит от печати одной этикетки до другой.

Конечно, буду ещё смотреть, проверять - но пока мыслей нет.
Если есть какие-либо подсказки, мысли - был бы признателен.
27.07.2012 22:56
bob
 
Цитата:
KirillHome Принтер стал "тормозить"...
Т.е. первые 5-7 этикеток выводит быстро - а дальше - секунд 10-15 проходит от печати одной этикетки до другой.

Конечно, буду ещё смотреть, проверять - но пока мыслей нет.
Если есть какие-либо подсказки, мысли - был бы признателен.
Ты уверен, что "тормозит" принтер, а не проблемы в ОС?
27.07.2012 23:43
KirillHome
 
Цитата:
bob Ты уверен, что "тормозит" принтер, а не проблемы в ОС?
Пока уверен в том, что "что-то произошло" *114
Попробую подробнее посмотреть, что будет при выдаче на печать 50 одинаковых этикеток и 50 разных.

Принтер подключен к USB на сервере, расшарен для общего доступа, на этом же сервере - поднят терминальный доступ, печать происходит из терминальной сессии через копирование файла на принтер (сначала формируется файл, потом он отправляется на принтер - copy ИмяФайла \\Сервер\Принтер). Чему тормозить в системе - пока не вижу (конечно, попробую "поменять" copy на print, но ... не уверен).

О результатах :viannen_60: доложусь
28.07.2012 13:55
KirillHome
 
Ну что же - разобрался.
Проблема, как это часто бывает, оказалась в голове :)

Я инициализировал строку
Код:
TEXT 330,78,"ARIALR.TTF",180,6,6,
Но забыл передать в неё значение (хотя бы пустое)

Переделал на
Код:
TEXT 330,78,"ARIALR.TTF",180,6,6,""
и всё побежало! :viannen_08:
30.06.2014 22:09
BrandSelect
 
Через Бкртендер можно подключиться к разным базам данным - ваш формат в студию.

Принцип простой: при формировании тескта тип данных указывается - внешний источних и настраивается путь к БД. Но умеет это лишь Проф версия - платная. (можно скачать - потестить если что).

Если же писать своб этиктку, то зачем мучиться с командным языком... не понимаю.

Принтеры Proton - это же те TSC. Просто наклейка на принтерах TSC. "Торговая марка".

А у TSC есть удобный инструмент, если делаете свою программу на каком либо высокоуровневом языке.

Просто подключается к нему DLL и используете из неё процедуры и функции, не маясь с изучением и прелестями командного языка.

Вот, например, простейшая этикетка:
setup('58','40','4.0','13','0','3','0'); //параметры этикетки
nobackfeed;
clearbuffer();
windowsfont(16,10, 48, 0, 2, 0, 'arial', 'Тест '); //используем любой шрифт винды - ничего грузить не надо. Задаём координаты теста и его параметры
windowsfont(16,48, 48, 0, 2, 0, 'arial', 'Принтер TTP-244');
barcode('64','100','EAN13','80','1','0','2','4','460851324568'); // печатаем штрих-код с нужными нам параметрами
printlabel('3','1'); //количество копий

Соответственно, данные для печати можно сделать переменными и печатать нужные данные из баз банных

Кому интересно - пишите, перекину инфу интересующую
11.11.2014 14:18
ilia81
 
BrandSelect подскажите пожалуйста каким образом нужно указать переменные
чтобы принтер их воспринял
11.11.2014 16:58
akonev
 
не видит он твой вопрос. у него последняя активность 08.07.2014

расскажи лучше, что именно делаешь и что именно не получается
12.11.2014 10:07
ilia81
 
я в этом деле ученик, делаю этикетку на принтер этикеток TSC
через sql создал некий запрос с вытаскиванием переменных
и пытаюсь вставить в этикетку при распечатывании
этикетку сформировал вот так
SIZE 4,1
GAP 0,0
A=@MATERIAL_NAME
B=@BARCODE
DIRECTION 1
CLS
TEXT 10,10,"2",0,1,1,@MATERIAL_NAME
BARCODE 10,50,"128", 100,1,0,2,2,@BARCODE
PRINT 1
при таком раскладе этикетка печатается только как вставлено
без подстановок нужных мне.
12.11.2014 10:14
akonev
 
Цитата:
ilia81 TEXT 10,10,"2",0,1,1,@MATERIAL_NAME
То есть ты хочешь, чтобы в этом месте печаталось наименование, а вместо него видишь текст "@MATERIAL_NAME". правильно я понял?
12.11.2014 10:47
ilia81
 
Да правильно
вместо переменной я вижу тупо текст
12.11.2014 10:54
akonev
 
Отлично. Теперь надо разобраться, откуда печатаешь.

Суть в том, что подмена переменных данными - забота программного обеспечения.
Принтер тупо печатает то, что упало к нему в порт. Замена переменных реальными данными должна случиться раньше.

Например, если я использую ПО Супермаг и в этикетке есть поле %Name=30, то это забота Супермага:
-прочитать этикетку
-найти в ней это поле
-заменить %Name=30 на часть наименования не длиннее 30 знаков
-то, что получилось - отправить в порт принтера

именно в документации Супермага указано, какие поля он умеет искать и какие данные он вместо них подставит.

из какого ПО печатаешь ты?
12.11.2014 11:07
ilia81
 
печатаю я из php
то есть в php подставляю что нужно и жму печать
далее формируется запрос в sql и должны выбраться переменные по данным из php
lля печати этикетки и далее распечатывание этикетки
12.11.2014 11:47
akonev
 
значит ты у себя в коде должен отпарсить файл формата этикетки, вместо переменных воткнуть данные и уже то, что получилось, отправить в порт принтера.

либо для начала ничего не парсить вовсе, а тупо зашить команды принтера в код и в нужные места вставлять данные из SQL-запроса.
такой подход хорош, чтобы быстро на коленке протестировать работу с принтером. дальше всё равно надо переходить на использование шаблонов, чтобы не зависеть от модели принтера.

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


Часовой пояс GMT +3, время: 11:22.

 

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