IE 2016

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

Опубликовал qwe Ivan (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.2012 21:09
Как изменять шаблон этикетки?
# Ответить
2. qwe Ivan (ImageWriter) 05.09.2012 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. qwe Ivan (ImageWriter) 06.09.2012 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.2014 21:43
Тестировал обработку на Godex BZB-2U (USB). Печатает отлично. Возникли следующие вопросы:
1. Возможно ли развернуть штрихкод на 90градусов?
2. Вставить монохромный рисунок(значок ростеста)?
3. Почему с этой моделью принтера (именно 2U) нормально не работает Thermal Print Library (печатает медленно и полосами, ШК не четкий)? Успешно ее используем с Godex BZB-2(LPT), а теперь даже не знаю как быть.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл