2011-08-31 69 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

我面臨着同樣的問題,你介意顯示你的代碼嗎? –