从Win32_PrintJob获取总页数

时间:2011-08-31 12:10:24

标签: c# .net windows printing wmi

Win32_PrintJob WMI类有很多属性。 (见:Win32_PrintJob on MSDN

我有一个小型的.NET应用程序可以阻止打印作业并显示作业信息。

TotalPages属性给出了发送的页数。但该数字未考虑用户请求的副本数量。因此,如果用户想要打印5页的两页文档,TotalPages的值将为2,而不是10。

如何获取打印作业的份数,或获取要打印的页面总数(份数乘以作业中的页数)?

由于

1 个答案:

答案 0 :(得分:2)

我遇到了与Win32_PrintJob相同的问题(TotalPages / PagesPrinted未考虑副本数量)。我通过将WMI与Win api相结合来解决它。

可以从DEVMODE结构(dmCopies)中检索副本数量,这是JOB_INFO_2结构的一部分。

因此,您调用Level = 2的GetJob,您将获得JOB_INFO_2实例。从那里,它只是一块蛋糕,只是一点点编组:)。

希望这有帮助。

干杯,

的Lukas