我尝试编写一个代码来查找打印机的状态,以打印pdf格式的水晶报告。我有跟随面团:
如何在点击水晶报表中的打印按钮后触发代码?是否有任何事件(点击舔)检查打印机状态?
当打印机处于打开状态,没有纸张,打开盖子,没有纸张,打开,打开,预热等不同模式时,有哪些属性会发生变化?它确切返回的数值是多少?不同的纸质打印机(惠普激光打印机,佳能等)的返回值是否有任何变化?
成功打印报告后如何显示“成功”消息?
请澄清任何人。
答案 0 :(得分:1)
您可以将System.Management与Win32_Printer类一起使用来查询打印机信息。
还有Win32_PrintJob,您可以枚举以确定给定作业何时完成。 Status
属性可以为您提供有关打印机状态的更多粒度。您可以监视这些对象的创建和删除 - 这将为您提供新的和已完成的作业信息。
列出的其他打印机类here。
答案 1 :(得分:1)
你需要写一个ObjectQuery。 “从Win32_PrintJob中选择*”。然后你必须使用ManagementObjectSearche r和ManagementObjectCollection来获取printqueue中的项目数。
您可以使用“SELECT * FROM Win32_Printer”来获取打印机状态