gifts2017

Внешняя компонента печати этикеток для 4 моделей принтеров

Опубликовал Ivan qwe (ImageWriter) в раздел Программирование - Внешние компоненты

COM-сервер (внешняя компонента) позволяет печатать этикетки на 4-е модели принтеров (+совместимые с ними по языку управления)
1) Godex EZ-2, Godex BZB-2
2) Godex EZ-2P, Godex DT-2
3) Zebra LP 2824
4) Argox OS-203DT

Работа компоненты аналогична Thermal Print Library http://ezlib.narod.ru

функционал пока маловат, зато поддерживает больше принтеров. 

Поддерживает рисование только штрих-кода EAN-13, текста и прямоугольной рамки.

Пока не поддерживает более гибкую настройку принтера.

Принцип работы:

Вызывая функции ВК, вы формируете изображение этикетки, наносите на него текст и штрих-код.

Далее функции

WriteEZ_2P
WriteBZB
WritePPLA
WriteEPL2

формируют команды для печати графики на принтер и сохраняют его в файл (в качестве пути может выступать сетевой принтер, порт LPT или COM)

Для удобства настройки функция PreviewImage открывает окно предварительного просмотра.

Тестировал на принтерах Godex BZB-2, EZ-2P, DT-2, Zebra LP2824.

На Argox OS-203DT (WritePPLA) не тестировал.

Если испльзуете USB принтер, то компьютер обязательно должен быть подключен к сети, хотя бы к обычному хабу.
И расшарен. Имя файла в этом случае указывается как ИМЯ КОМПА ИЛИ ИП АДРЕС + ИМЯ ПРИНТЕРА В СЕТИ

 

03.11.2013 Обновил компоненту

Добавлен метод SetFont

Устанавливает одной функцией шрифт и его параметры

objWord.SetFont "Comic Sans MS", 50, 15, 700, 1, 0, 0

'1-й  Имя шрифта
'2-й высота шрифта
'3-й ширина шрифта
'4-й Устанавливает толщину шрифта в диапазоне от 0 до 1000. Например, значение 400 нормальная толщина, а 700 является полужирная. Если это значение равно нулю, используется толщина заданная по умолчанию.
'5-й Italic (наклонный)
'6-й Underline (подчеркнутый)
'7-й StrikeOut (зачеркнутый)

 

10.11.2013 Обновил компоненту

1) Исправлена ошибка. Иногда при формировании штрих кода происходило аварийное завершение или печаталась половина штрих-кода.

2) Добавлен метод SetFontBC

objWord.SetFontBC "Comic Sans MS", 400, 0, 0, 0

SetFontBC         Устанавливает шрифт цифр штрихкода, размер и ширина шрифта вычисляются из размера штрихкода
'1-й параметр Имя шрифта
'4-й Устанавливает толщину шрифта в диапазоне от 0 до 1000. Например, значение 400 нормальная толщина, а 700 является полужирная. Если это значение равно нулю, используется толщина заданная по умолчанию.
'5-й Italic (наклонный)
'6-й Underline (подчеркнутый)
'7-й StrikeOut (зачеркнутый)

3) 7 параметр метода PaintText отвечатет за вывод текста в одну строку или в несколько.

4) Добавлены два свойства

Это, пожалуй, самое интересное, но для профессионалов!

objWord.strPrinterCommand1 = ""    //Тип строка
objWord.strPrinterCommand2 = ""   //Тип строка

Устанавливают инструкции принтера при отправке на печать, если количество этикеток меньше 0.

Соответственно количество печатаемых этикеток вы должны передавать вместе с инструкциями.

strPrinterCommand1 устанавливает инструкции следующие до графики.

strPrinterCommand2 устанавливает инструкции следующие после графики.

Собственно, этими инструкциями вы можете менять что угодно. Устанавливать интенсивность, скорость печати, менять тип принтера на термотрансферный и т.д. В общем делать все на что способен принтер.

К примеру, если сделать так


objWord.strPrinterCommand1 = ""
objWord.strPrinterCommand2 = ""

objWord.WritePPLA "C:\Image.pcx", 0, -1

То получим рисунок в формате PCX (сжатый по RLE). Так как графика в принтер Argox OS203 загружается в формате PCX (в общем-то она может грузиться в нескольких форматах).

В общем-то теоретически сейчас можно печатать почти на любом принтере, если формат загрузки графики совместим. 

В файле с компонентой разместил документацию на команды нескольких принтеров.

Для настройки рекомендую сначала сохранить файл на диске обычным способом.

objWord.WritePPLA "C:\old.prn", 0, 14

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

 

03.02.2014 Обновил компоненту

1)  У параметра DrawRectangle добавлен ещё один параметр управляющий изгибом углов.

objWord.DrawRectangle 2, 10, 57, 334, 124, 40

1. Ширина линии в пикселях.

2-5. Прямоугольная область.

6. Изгиб углов прямоугольника.


Теперь можете нарисовать круг или эллипс используя его.

 

2) Добавлен метод PaintImage, позволяющий выводить изображения из внешних файлов.

Для его использования нужно положить в каталог с компонентой файлы формата _image1.bmp, _image2.bmp и т.д.

Всего можно использовать 5 разных изображений. Файлы загружаются в память при запуске компоненты (не при вызове метода BeginImage)

objWord.PaintImage 1, 225, 126

1-й параметр) номер изображения _image1.bmp -1, _image2.bmp -2

2-3 параметры) начало вывода верхних координат рисунка

 

 

В некоторых версиях Windows 7 регистрацию компоненты нужно производить только под администратором.

Запустить процесс cmd.exe от администратора, перейти в каталог с компонентой командой CD /D "C:\ImageWriter" и запустить Register.cmd

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ImageWriter.7z
.7z 6,31Mb
03.02.14
91
.7z 6,31Mb 91 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр МАН (1977) 03.09.12 21:09
Как изменять шаблон этикетки?
2. Ivan qwe (ImageWriter) 05.09.12 23:59
Функции описаны в файле VBS
Пример:
objWord.PaintText 6, 6, 334, 50, 0, "САРМА 500гр ср-во д/мытья посуды - Гель Актив", 0
'PaintText
'первые четыре параметра прямоугольная область
'5-й параметр поворот текста на угол кратный 90 градусам (0-0 градусов, 1-90, 2-180, 3-270)
'6-й параметр текст

objWord.HelpLine = 1
обводит прямоугольную область толщиной в 1 пиксель при вызове функций

'PaintBarCode
'1-отступ слева, 2-начало снизу, 3-высота от 2-го параметра, 4-размер, 5-текст штрих кода

В общем то программа пока сыровата, но давно используется в нескольких магазинах с 1С 7.7.
3. Ivan qwe (ImageWriter) 06.09.12 00:19
В общем чтобы создать этикетку размером 43х25 мм в 1С 7.7 и распечатать на принтере совместимом с языком EZPL (Godex EZ-2P и Godex DT-2) нужно написать примерно такой код:

Объект = СоздатьОбъект("Image_Writer.ImageWR");
Объект.BeginImage(344,200);
Объект.HelpLine = 0;
Объект.FontName = "Arial";
Объект.FontWidth = 10;
Объект.FontHeight = 20;
Объект.PaintText(6, 6, 334, 50, 0, "САРМА 500гр ср-во д/мытья посуды - Гель Актив", 0);
Объект.PaintBarCode(30, 195, 70, 3, "4607001203339");
Объект.FontWidth = 15;
Объект.FontHeight = 45;
Объект.PaintText(6, 60, 334, 120, 0, "Цена: 62.50 руб", 0);

Объект.WriteEZ_2P("\\127.0.0.1\GodexDT2", 0, 4);
...Показать Скрыть
4. Николай Железнов (koliaff) 28.01.14 21:43
Тестировал обработку на Godex BZB-2U (USB). Печатает отлично. Возникли следующие вопросы:
1. Возможно ли развернуть штрихкод на 90градусов?
2. Вставить монохромный рисунок(значок ростеста)?
3. Почему с этой моделью принтера (именно 2U) нормально не работает Thermal Print Library (печатает медленно и полосами, ШК не четкий)? Успешно ее используем с Godex BZB-2(LPT), а теперь даже не знаю как быть.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа