我被要求开发一个打印监控实用程序,它将从客户系统接收打印作业,将其路由到打印机,然后在打印机完成作业时触发主机系统中具有成功状态的更新。
我发现至少有两种方法可以从打印机队列中获取打印作业状态-使用WMI查询Win32_PrintJob或使用API来winspool。当我尝试打印到断开连接的打印机时,这两种方法都工作得很好-我能够获得等待打印机可用的状态的作业列表。
现在,我正在尝试测试打印机缺纸或卡纸的情况。不幸的是,在这种情况下,打印作业被从打印假脱机程序队列中删除,并被拉到打印机内存中,等待用户放入更多纸张或解决卡纸问题。打印作业不再在队列中,但尚未打印,因此我可以真正使用成功状态更新主机系统。我发现有几篇文章讨论了如何使用PJL或打印机特定的API从打印机本身获取信息,但这些都没有成功。有没有办法将Windows后台处理程序队列配置为保留在队列中,直到打印机实际处理完它?
谢谢!
发布于 2012-06-30 03:45:26
谢谢你,arx发布了MSDN链接,这正是我所怀疑的。我猜我正在测试的特定驱动程序不支持这种真实状态。
https://stackoverflow.com/questions/11145086
复制相似问题