1

我会在任何更改(如 JOB_CHANGE)上轮询打印机队列,如果我看到某个作业消失了,我会根据作业的最后状态向服务器报告该作业已被打印或删除。

问题是打印机 Kyocera M3550 作为最后一个状态 JOB_STATUS_PAUSED 返回,但没有 JOB_STATUS_DELETED 或 JOB_STATUS_PRINTED。

这些是我按升序排列的法规:

  • JOB_STATUS_SPOOLING
  • 0(不匹配任何已知状态)
  • JOB_STATUS_PASUED

这意味着什么?我不能将 JOB_STATUS_PASUED 作为我最后的状态,因为可能有人故意这样做。

4

1 回答 1

1

可能是因为京瓷打印机有自己的打印处理器,它在删除之前将打印作业设置为暂停状态。在这种情况下,您仍然可以通过作业消失的事实来检测删除。显然,您必须保留正在进行的打印作业列表,以便以这种方式检测删除。

当打印作业第一次出现时,您应该调用参数设置为 2 的GetJob函数Level传递一个JOB_INFO_2结构来填充。JOB_INFO_2 结构将提供有关可用打印作业的所有信息。

于 2018-03-23T00:53:14.223 回答