我在JOB_CHANGE之类的任何更改上轮询打印机队列,如果我看到某个作业消失,我会根据作业上次状态向服务器报告打印或删除作业。
问题是打印机Lexmark X945e仅返回上一个作业状态JOB_STATUS_RETAINED,但没有JOB_STATUS_DELETED或JOB_STATUS_PRINTED。
这是什么意思?我可以使用保留状态来表示作业已打印出来吗?
答案 0 :(得分:1)
如果您在说“保留”时表示JOB_STATUS_RETAINED
,我发现此链接in the documentation:
Windows Vista及更高版本:作业已保留在打印队列中,无法删除。这可能是由以下原因引起的: 1)通过调用SetJob手动保留作业,假脱机程序正在等待作业被释放。 2)作业尚未完成打印,必须先完成打印才能自动删除。 有关打印作业命令的详细信息,请参阅SetJob。
来自SetJob文档:
JOB_CONTROL_RETAIN Windows Vista及更高版本:打印后将作业保留在队列中。 JOB_CONTROL_RELEASE Windows Vista及更高版本:释放打印作业。
从文档中可以看出,SetJob(JOB_CONTROL_RELEASE)
可用于释放作业。