Павелко - установка і друк на термопринтері vkp-80ii з qt 5

Прилетіла днями ця іграшка.
Застосувань до неї купа - все залежить від фантазії.

Зараз розповім як на ньому друкувати з Qt.

Насамперед йдемо на сайт виробника за дровами. та не простими, а OPOS.

Вставимо чекову стрічку в принтер, тепер виймаємо харчування, затискаємо верхню кнопку (Line feed), включаємо харчування, чекаємо поки задзижчить і відпускаємо кнопку.

Надрукуються настройки і тиснемо знову верхню кнопку (Line feed) що б принтер виплюнув стрічку.

З стрічки нас цікавить тільки параметри RS232, вони зараз будуть потрібні.

Запускаємо установку дров, вказуємо спосіб з'єднання і параметри швидкості (за замовчуванням 19200) та інші, при необхідності.

Для тесту, запускаємо OPOS POS Printer configurator і налаштовуємо параметри.

У ньому ми налаштовуємо як связатсья з принтером через OPOS драйвер. Запам'ятайте device name - воно нам знадобиться.

Потім запускаємо OPOS POS Printer test і можна трохи погратися.

Якщо все працює, то пора створювати новий Qt проект (тип - на ваш вибір).

Все спілкування з термопринтером йде через ActiveX компонент OPOSPOSPrinter.ocx, тому зараз заодно покажу як працювати з ActiveX в Qt.

Для роботи нам потрібно отримати від бібліотеки реалізацію cpp і h файлів за допомогою утилитки, що входить до складу Qt - dumpcpp.

Відкриваємо віндузятную консольку, переходимо в каталог, де будемо створювати класи, і запускаємо dumpcpp:

В каталозі повинно з'явиться два файли, відкриваємо їх на вивчення, що б приблизно зрозуміти з чого почати.

Тобто як мінімум дізнаємося простір імен (OposPOSPrinter_1_9_Lib) і назва класу (OPOSPOSPrinter).

В * .pro файлі проекту додаємо:

Додаємо в проект згенеровані файли oposposprinter_1_9_lib.cpp і oposposprinter_1_9_lib.h

Заодно додайте наступний заголовки, в ньому зібрав всі використовувані статусні повідомлення:

Так само створимо новий клас, наприклад Printer. в якому будемо здійснювати безпосередньо друк.

Далі я розбирався з допомогою інтуїції і зразкового проекту (В основному: C: \ Program Files (x86) \ OLEForRetail \ ServiceOPOS \ POSPrinter \ CustomEngineering \ OPOSPOSPrinterTest_Src \ FormMainApp.frm).

Сподіваюся, запечатає. На цьому все =)

Архівчік з допоміжним класом: Printer

У printer.cpp замінити AppSettings () -> value ( «com_printer»). ToString () на device name з OPOS POS Printer configurator.