我正在寻找一种方法来连接机器上的所有打印作业。
我们有一些运行Windows XP的Kiosk计算机,我们希望允许客户打印。我们希望能够捕获打印作业,因为它被发送到打印机,进行分析,向用户显示打印价格的对话框以及是否批准 - 将作业发送到打印机。
如果他不同意,则必须取消该作业。
我的第一个想法是使用钩子。但印刷工作是否有钩子?它是如何使用的?
有人还提到了PCL(打印机命令语言),这意味着我们要为本地打印机驱动程序编写一个包装器。这有多难?我在哪里可以找到一个很好的PCL教程?
PJL(打印机工作语言)怎么样?
目标语言是c ++。
您的意见将不胜感激。
谢谢, Summerbulb
答案 0 :(得分:2)
您可以使用WMI使用Win32_PrintJob
获取有关新打印机作业的通知。
创建作业后,立即调用Pause
暂停,显示您的GUI。如果客户端接受该作业,请调用Resume
以实际打印该文件。
有关处理WMI通知的C ++示例,请参阅Example: Receiving Event Notifications Through WMI。