NDemia Новости CashMatic Рубли Форум

PRINTOUT


Команда PRINTOUT выполняет полный цикл действий по печати на чековый принтер.

PRINTOUT <respfile> <data>
<respfile> - имя файла ответа, в ResponseDir;
<data> - имя выводимого файла, требуется указывать полный (абсолютный) путь, может отсутствовать - см. ниже.
Ответ записывается в файл, первая строка может иметь одно из перечисленных значений:
    0 OK ;Чек напечатан (на второй строке двузначное 16-ричное число, комбинация флагов состояния рулона, полученных по команде STATUS_ROLL (см. комментарии входящих в комплект программного продукта файлов PrinterCommands*.txt): 1 - сработал датчик приближения конца бумаги, 2 - сработал датчик отсутствия рулона, ноль означает нормальное состояние или неизвестное состояние.
    1 BAD FILE ;не удалось открыть входной файл, или ошибка чтения
    2 OFFLINE ;нет связи с принтером, или принтер не работает (диагностика на второй строке, двузначное 16-ричное число, равно статусу принтера, полученному по команде STATUS_PRINT (см. комментарии входящих в комплект программного продукта файлов PrinterCommands*.txt), ноль означает невозможность получения статуса, например, из-за ошибки связи)
      Нулевой код диагностики OFFLINE означает отсутствие принтера (по крайней мере, ошибку связи с принтером или ошибку настройки подключения).
      Ненулевой код диагностики OFFLINE соответствует возвращённому принтером коду состояния, интерпретация значения зависит от модели принтера.
      В любом случае, с точки зрения интерфейса приёма платежей, 2 OFFLINE означает неисправность принтера, не связанную с отсутствием бумаги.
    3 NO PAPER
      В принтере кончилась бумага.
      Для отладки клиентских приложений можно "спровоцировать" результат 3 NO PAPER - см. CONFIG PrinterSimulateNoPaper (если задать ненулевое значение PrinterSimulateNoPaper, то любой вызов PRINTOUT будет завершаться с результатом 3 NO PAPER)

Если файл данных для печати не задан, то печать не выполняется, но проверка состояния принтера выполняется, т.е. возможен результат 0 OK, 2 OFFLINE, 3 NO PAPER.

При печати выполняется управление атрибутами шрифта.

Программа PRINTOUT.EXE представляет собой безоконный (не консольный и не скрыто-оконный) процесс операционной системы, результат выполнения записывается в текстовый файл под указанным именем в пути ResponseDir (конфигурируемый параметр службы NDemia CashMatic Kiosk, настраивается командой CONFIG).
Служба NDemia CashMatic Kiosk должна работать на момент вызова PRINTOUT.

Служба открывает файлы ответов и файлы данных в режиме FILE_SHARE_DELETE, что позволяет вызывающей программе перед вызовом службы создать файл с флагом FILE_FLAG_DELETE_ON_CLOSE (см. документацию по Windows API, функция CreateFile), и в дальнейшем не заботиться об удалении этого файла - операционная система автоматически удалит его даже при сбоях работы программного обеспечения.

Вызывающее приложение может узнать о готовности ответа по завершению процесса PRINTOUT.EXE
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com