我在JOB_CHANGE之类的任何更改上轮询打印机队列,如果我看到某个作业消失,我会根据作业上次状态向服务器报告打印或删除作业。
问题是打印机Kyocera M3550返回最后一个状态JOB_STATUS_PAUSED,但没有JOB_STATUS_DELETED或JOB_STATUS_PRINTED。
这些是我按升序排列的法规:
这是什么意思?我不能将JOB_STATUS_PASUED作为我的最后一个状态进行转发,因为有人可能会故意这样做。
答案 0 :(得分:1)
可能是Kyocera打印机有自己的打印处理器,在删除之前将打印作业设置为暂停状态。在这种情况下,您仍然可以通过作业消失的事实来检测删除。显然,您必须保留正在进行的打印作业列表,以便以这种方式检测删除。
首次出现打印作业时,应调用GetJob
function并将Level
参数设置为2并传递要填写的JOB_INFO_2结构.JOB_INFO_2结构将提供所有有关可用的打印作业的信息。