票据印刷工作

时间:2011-08-23 12:58:58

标签: c++ windows-xp hook kiosk printer-control-language

我正在寻找一种方法来连接机器上的所有打印作业。

我们有一些运行Windows XP的Kiosk计算机,我们希望允许客户打印。我们希望能够捕获打印作业,因为它被发送到打印机,进行分析,向用户显示打印价格的对话框以及是否批准 - 将作业发送到打印机。

如果他不同意,则必须取消该作业。

我的第一个想法是使用钩子。但印刷工作是否有钩子?它是如何使用的?

有人还提到了PCL(打印机命令语言),这意味着我们要为本地打印机驱动程序编写一个包装器。这有多难?我在哪里可以找到一个很好的PCL教程?

PJL(打印机工作语言)怎么样?

目标语言是c ++。

您的意见将不胜感激。

谢谢, Summerbulb

1 个答案:

答案 0 :(得分:2)

您可以使用WMI使用Win32_PrintJob获取有关新打印机作业的通知。

创建作业后,立即调用Pause暂停,显示您的GUI。如果客户端接受该作业,请调用Resume以实际打印该文件。

有关处理WMI通知的C ++示例,请参阅Example: Receiving Event Notifications Through WMI