c# - C#计算打印页数

标签 c# .net printing spool spooler

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

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

Print Monitor

现在我有一个要求,分别计算双面页(duplex)和单面页。我怎样才能检测到这一点?

最佳答案

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

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

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

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

关于c# - C#计算打印页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7819229/

相关文章:

java - JTextArea.print() 打印空白页

c# - 如何将二进制文件读入字节数组?

c# - 通过属性获取json属性c#

c# - 如何在 Windows 通用应用程序中显示带有文本的进度环?

c# - 可以多次处理对象 - 最佳解决方案

asp.net - 为什么 IIS 线程与常规 CLR 线程相比如此宝贵?

没有 Blazor 的 C# WASM

c# - 使用 .NET 设置注册表项写入权限

objective-c - 如何使用 Objective C 使用 Bluebamboo 设备打印图像?

java - 循环错误打印表