计算C#中打印页数

时间:2011-10-19 09:32:44

标签: c# .net printing spool spooler

我正在开发一个打印假脱机监视器来计算某个打印机打印的页数。

我是这个领域的新手,所以我使用以下文章作为参考。

Print Monitor

现在我需要分别计算双面页面(双面)和单面页面。我怎么能发现这个?

1 个答案:

答案 0 :(得分:1)

这充其量是困难的。要正确地执行此操作,您需要通过RIP(光栅图像处理器)运行输出(PCL / PS / XPS),它可以将语言转换为打印机实际输出的内容并查看输出内容。您可以使用用于打印的语言查看文件中的双面代码,但由于可能会打开和关闭双面打印,因此可能会遇到问题。此外,不同的制造商可能会在作业开始时将其放入自定义PJL中,而不是在数据流本身的标准PCL或PS编码中。

如果准确性不是一个大问题,那么你可以解析数据并提出一些数字,但你永远不会准确,特别是如果文件没有明确打开或关闭双面打印并且打印机设置为上。在这种情况下,它将双工,你永远不会知道。除此之外,用户可以打印多页(单张纸上4页)。如果他们通过应用程序执行此操作,它将报告1页。如果他们在打印机驱动程序中执行此操作,它可能会传递4页并让打印机执行上下文,在这种情况下,您将报告4页而不是1页。另一种情况是需要100页1页文档的用户。假脱机程序可能只报告1页,因为打印机将完成创建多个副本的工作。

市场上有很多工具可以捕获这些数据。准确的通常在打印作业后从设备获取数据。大多数现代打印机都能够跟踪打印的页面和用户等。

抱歉,我没有更好/更快乐的答案。祝你好运。