打印作业时,最后的作业状态是 JOB_STATUS_PAUSED,而不是 JOB_STATUS_PRINTED
When job is printed, last job status is JOB_STATUS_PAUSED, instead of JOB_STATUS_PRINTED
我轮询打印机队列是否有任何变化,例如 JOB_CHANGE,如果我看到某个作业消失了,我会根据作业的最后状态向服务器报告该作业已被打印或删除。
问题是打印机Kyocera M3550returns最后状态为JOB_STATUS_PAUSED,但没有JOB_STATUS_DELETED或JOB_STATUS_PRINTED。
这些是我按升序排列的法规:
- JOB_STATUS_SPOOLING
- 0(与任何已知状态都不匹配)
- JOB_STATUS_PASUED
这是什么意思?我不能将 JOB_STATUS_PASUED 作为我的最后状态,因为可能有人故意这样做。
可能是 Kyocera 打印机有自己的打印处理器,它在删除作业之前将打印作业设置为暂停状态。在这种情况下,您仍然可以通过作业消失的事实检测到删除。显然,您必须保留一份正在进行的打印作业的列表,以便以这种方式检测删除。
当打印作业首次出现时,您应该调用 GetJob
function with the Level
parameter set to 2 and pass a JOB_INFO_2 结构进行填充。JOB_INFO_2 结构将提供有关可用打印作业的所有信息。
我轮询打印机队列是否有任何变化,例如 JOB_CHANGE,如果我看到某个作业消失了,我会根据作业的最后状态向服务器报告该作业已被打印或删除。
问题是打印机Kyocera M3550returns最后状态为JOB_STATUS_PAUSED,但没有JOB_STATUS_DELETED或JOB_STATUS_PRINTED。
这些是我按升序排列的法规:
- JOB_STATUS_SPOOLING
- 0(与任何已知状态都不匹配)
- JOB_STATUS_PASUED
这是什么意思?我不能将 JOB_STATUS_PASUED 作为我的最后状态,因为可能有人故意这样做。
可能是 Kyocera 打印机有自己的打印处理器,它在删除作业之前将打印作业设置为暂停状态。在这种情况下,您仍然可以通过作业消失的事实检测到删除。显然,您必须保留一份正在进行的打印作业的列表,以便以这种方式检测删除。
当打印作业首次出现时,您应该调用 GetJob
function with the Level
parameter set to 2 and pass a JOB_INFO_2 结构进行填充。JOB_INFO_2 结构将提供有关可用打印作业的所有信息。