2011-08-31 58 views
1

Win32_PrintJob WMI类具有许多属性。 (请参阅:Win32_PrintJob on MSDN从Win32_PrintJob获取总页数

我有一个小型的.NET应用程序,用于极化打印作业并显示作业的信息。

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

如何获取打印作业的副本数量或获取总数要打印的页数(打印次数乘以作业中的页数)?

感谢

+1

有这个无解。打印机驱动程序通常会要求打印机使用专有命令来生成副本,而不是重复假装同一文档。非常高效,但Windows不知道这些自定义驱动程序的功能。打印机制造商通常有某种管理软件。 –

回答

2

我曾与Win32_PrintJob同样的问题(总页数/ PagesPrinted没有考虑到副本的帐号)。我将WMI与Win api结合起来解决了这个问题。

可以从DEVMODE结构(dmCopies)检索拷贝数,它是JOB_INFO_2结构的一部分。

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

希望这会有所帮助。

干杯,

卢卡斯

+0

我一直在寻找如何在c#中使用它,我没有找到任何东西,我可以在c#中做到这一点,以示例帮助我 – karelp90

+0

我面临着同样的问题,你介意显示你的代码吗? –