Как печатать QR-код с помощью драйвера АТОЛ?

Форум для обсуждения вопросов по эксплуатации ЕГАИС Розница

Модераторы: Operator 2, Operator 1, Operator 4

Правила форума
В данном разделе сообщения оставляются по следующим правилам.
- данный раздел создан исключительно для помощи в подключении к ЕГАИС.
- участники попытавшиеся оставить сообщения не в своей теме (не относящиеся к проблеме автора) немедленно утрачивают доступ к этому разделу.
- в данном разделе задаются только конкретные технические вопросы.
- за весь офтоп и ненормативную лексику будут выдаваться предупреждения, блокирующие на произвольное время доступ на форум
bvsoft
Сообщений: 29
Зарегистрирован: 16 мар 2016, 20:04

Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение bvsoft » 09 июн 2016, 19:55

Здравствуйте,

Думал, что все просто, а оказалось как обычно.. :) Хочу распечатать QR-код с помощью драйвера ККМ АТОЛ, и я так понимаю, что для этого мне нужно просто воспользоваться функцией PrintBarcode? То есть сую в свойство Barcode значение с поля URL из ответа, полученного от УТМ? Дальше исполняю PrintBarcode, и после собственно чека получу распечатку QR-кода? А, ну, наверное BarcodeType выставить в значение QR? Или я слишком наивен? Что-то не могу информации найти на эту тему. Все больше "включаем настройки в 1С, выбираем тип, и поехали"...
Вот еще с версиями DTO вопрос возникает. Пишут в разных местах, что печатать может уже версия 8.8, однако свойство BarcodePrintType (способ печати, 0 - программная генерация изображения, 1-средствами ККМ, 2-автоматическая генерация) нашел только в версии 9. Однако с версией 9 вообще непонятки: после установки ее никакого OLE-сервера в системе не обнаруживаю. Принципы работы с драйвером изменились, всю работу с ним нужно переписывать? Вариант CreateOleObject('AddIn.fprnM45') уже не катит?

Заранее спасибо за ответы
Romeo53
Сообщений: 4
Зарегистрирован: 31 мар 2016, 09:23

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение Romeo53 » 10 июн 2016, 09:43

какая программа? 1с?
bvsoft
Сообщений: 29
Зарегистрирован: 16 мар 2016, 20:04

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение bvsoft » 10 июн 2016, 10:13

Нет, не 1С. Программа собственной разработки. С драйвером АТОЛ взаимодействую через его OLE-сервер.
Аватар пользователя
victuan
Сообщений: 614
Зарегистрирован: 15 фев 2016, 06:26
Откуда:

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение victuan » 10 июн 2016, 18:13

Объект.BarcodeType = 84; //QR-код
Объект.Barcode = АдресЧека;
Объект.Alignment = 1;
//Объект.AutoSize = 1;
Объект.Scale=Цел(Объект.PixelLineLength); //??? подобрать коэффициент

Объект.PrintBarcode();
Объект.Barcode = ""; //освободим память, занятую штрихкодом
bvsoft
Сообщений: 29
Зарегистрирован: 16 мар 2016, 20:04

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение bvsoft » 10 июн 2016, 18:31

Ага, спасибо! Именно так сегодня и делал, получал штрихкод какой-то, оказывается, все верно :) Осталось тексты подредактировать, и все. Кстати, описывается формат в мануале определенный, он обязателен, или, все-таки ,что хочешь, то и пиши, хоть один штрихкод?
bvsoft
Сообщений: 29
Зарегистрирован: 16 мар 2016, 20:04

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение bvsoft » 16 июн 2016, 14:15

Да, все прекрасно работает. Добавлю только, что в драйвере 6 это не будет работать, но особо и не надо ,если приложение может сгенерировать QR-код. Я сгенерировал, сохранил в картинку, а в драйвере сказал PrintBitmapFromFile при установленном filename. Главное - не забыть про Scale. мне хватает 600, то есть 600%. Учитывая, что эта команда древняя, то теоретически это будет работать и на драйвере версии 6, и вообще на любом аппарате.
Rusik79
Сообщений: 442
Зарегистрирован: 03 ноя 2015, 07:38

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение Rusik79 » 16 июн 2016, 14:52

В 6 драйвере тоже работает, версию просто обновить надо. Проверено на 6.22.
Аватар пользователя
victuan
Сообщений: 614
Зарегистрирован: 15 фев 2016, 06:26
Откуда:

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение victuan » 17 июн 2016, 03:06

bvsoft писал(а):Да, все прекрасно работает. Добавлю только, что в драйвере 6 это не будет работать, но особо и не надо ,если приложение может сгенерировать QR-код. Я сгенерировал, сохранил в картинку, а в драйвере сказал PrintBitmapFromFile при установленном filename. Главное - не забыть про Scale. мне хватает 600, то есть 600%. Учитывая, что эта команда древняя, то теоретически это будет работать и на драйвере версии 6, и вообще на любом аппарате.

Это крайний способ, если нет других вариантов, т.к. в режиме загрузки графики ФР печатает долго (задержка 6-10 сек и выше).
bvsoft
Сообщений: 29
Зарегистрирован: 16 мар 2016, 20:04

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение bvsoft » 07 сен 2016, 22:57

Вот такой интересный вопрос всплыл: Раньше никогда не было такого вопроса, потому что чек или отчет фактически полностью формируется самим драйвером, а я лишь говорю ему, что сумма чека такая-то, а набор товаров такой-то, то и чек как-то там сам выдавал заголовки и окончания. И тут, когда потребовалось печать строки и картинки, вылез весь этот геморрой. Выглядит так:

Возьмем драйвер АТОЛ. Хочу напечатать текст и картинку с QR-кодом. Делаю это после окончания печати программой стандартного чега. Выполняю:
VarDevice.Caption := 'asdfasdfasdf';
VarDevice.Caption := '2352345234345';
.... и так далее, например
VarDevice.Barcode := .....
VarDevice.PrintBarcode..
... и так далее

В конце надо отрезать, выполняю VarDevice.PartialCut;

Что получаю в итоге:
После отрезки предшествущего нашей печати чека я вижу на вновь распечатанном свободном своем тексте стандартный заголовок , он был заготовлен, оказывается, предыдущим чеком, лежит под линией отреза, спрятан в аппарате еще. Далее вижу мой набранный текст, мои картинки и все такое. Дальше вижу, что отрезание, которое я задавал в конце, произошло где-то за несколько строк до окончания моих текстов, а не в самом конце. Более того, когда попытаюсь напечатать следующий чек или отчет, то увижу, что он будет без заголовка. Хрень полная, короче. Логика непонятная. То есть любой стандартный чек или отчет распечатывается, отрезается, а под линией отреза печатает заголовок для следующего чека, и следующий чек (или отчет) уже подается без заголовка, ибо он уже распечатан под линией отреза, а вот в конце своей печати он делает то же самое для следующего чека: после линии отреза печатает его заголовок.

Я был обескуражен, но методом тыка и чтения описания обнаружил функцию PrintHeader, теперь делаю в конце:
VarDevice.PrintHeader;
VarDevicde.partialCut;

получаю именно такую логику, вроде: в конце моего свободного текста печатается окончание стандартное для чеков, потом начало следующего чека (или отчета), а между ними - отрезание. Внешне все красиво, правда, не уверен, что это вообще правильно. Вот и вопрос: кто-нибудь может подсказать, как вы решаете проблему отрезания и печати заголовка для следующего чека, точно так же? или я где-то запутался?

И вот второй вопрос: все те же проблемы вылезли при печати с помощью драйвера Штрих-М, однако аналогичной функции печати заголовка я не нашел, а точнее - нашел PrintDocumentTitle, но что она делает, я так и не понял, но явно не то, что я предполагал по аналогии с драйвером АТОЛ. Вышел из ситуации так: распечатать сначала свободный текст, потом стандартный чек кассовый, и тогда получил бы на руках чек, где сначала идет заголовок, распечатанный предыдущим чеком, после мой свободный текст, после - состав чека этого, но без заголовка, после - окончание чека, отрез, заголовок следующего, исполненные стандартным чеком без моего участия. Но это решение мне не вполне нравится, ибо для других решений, когда мне надо работать, например, с платежными картами и печатать их содержимое, эта методика не подходит, ибо чек там еще режется, и одна часть забирается продавцом, а вторая отдается покупателю, и покупатель получит распечатку без заголовка.

Спасибо заранее за ответы.
Аватар пользователя
victuan
Сообщений: 614
Зарегистрирован: 15 фев 2016, 06:26
Откуда:

Re: Как печатать QR-код с помощью драйвера АТОЛ?

Сообщение victuan » 08 сен 2016, 02:19

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

Вернуться в «Вопросы по эксплуатации ЕГАИС Розница»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 3 гостей