Когда задание печатается, последний статус задания — JOB_STATUS_PAUSED вместо JOB_STATUS_PRINTED

Я опрашиваю очередь принтера при любых изменениях, таких как JOB_CHANGE, и, если я вижу, что какое-то задание исчезло, я сообщаю серверу, что задание было распечатано или удалено, в соответствии с последним состоянием задания.

Проблема заключается в том, что принтер Kyocera M3550 возвращается как последний статус JOB_STATUS_PAUSED, но не JOB_STATUS_DELETED или JOB_STATUS_PRINTED.

Вот уставы, которые я получаю в порядке возрастания:

  • JOB_STATUS_SPOOLING
  • 0 (что не соответствует ни одному известному статусу)
  • JOB_STATUS_PASUED

Что это значит? Я не могу передать JOB_STATUS_PASUED как мой последний статус, потому что, возможно, кто-то преднамеренно это сделал.

1

Решение

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

Когда задание на печать появляется впервые, вы должны вызвать GetJob функция с Level параметр установлен в 2 и передать JOB_INFO_2 структура для заполнения. Структура JOB_INFO_2 предоставит всю информацию о доступном задании на печать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]