Printing 拦截打印作业

Printing 拦截打印作业,printing,Printing,我们有一些电脑,用来打印文件收费。当用户打印时,我希望截取打印作业,提示他们输入用户名/密码,以便我可以向他们的帐户收费,然后允许打印作业继续进行到打印机 如何做到这一点?可以在.NET中编写这样的实用程序吗?您确实需要考虑为此创建端口监视器。远非简单。你可以看看。顺便说一句:许多打印机供应商提供解决方案,使用嵌入到打印流(PCL/PS)中的代码,数据收集并保留在打印机上 例如,施乐有一种叫做标准会计的东西。当在驱动程序中启用时,它嵌入PJL代码,如下所示: @PJL COMMENT OID_A

我们有一些电脑,用来打印文件收费。当用户打印时,我希望截取打印作业,提示他们输入用户名/密码,以便我可以向他们的帐户收费,然后允许打印作业继续进行到打印机


如何做到这一点?可以在.NET中编写这样的实用程序吗?

您确实需要考虑为此创建端口监视器。远非简单。你可以看看。顺便说一句:许多打印机供应商提供解决方案,使用嵌入到打印流(PCL/PS)中的代码,数据收集并保留在打印机上

例如,施乐有一种叫做标准会计的东西。当在驱动程序中启用时,它嵌入PJL代码,如下所示:

@PJL COMMENT OID_ATT_ACCOUNTING_INFORMATION_AVP "XRX_USERID,xxxx";
打印作业后,设备会参考用户、页数等,然后可以报告


在工作站/服务器上执行此操作时会遇到的问题是,检测打印的页数可能很困难。例如,如果您尝试按页面收费,您可能能够解析文件中的页数,或者运行PCL或PS RIP并确定页面上是否有2up或4up标志,并且工作由打印机而不是驱动程序完成,当客户机实际上只打印1页时,您将向客户机收取4页的费用。这是许多陷阱之一。

您能详细说明一下这些代码吗?或者,让我找到一个更详细地解释它们的资源?在我的回答中添加了更多内容。希望有帮助。