2009-10-29 123 views
2

我試圖使用C#確定默認打印機上的當前紙張類型選擇。確定默認打印機的當前紙張類型

我已經確定使用WMI的默認打印機並通過Properties集合進行枚舉,我可以看到有一個CurrentPaperType字符串屬性,但在辦公室的兩臺打印機中,其設置爲空字符串。

MSDN's documentation開始東拉西扯關於實施本標準等等等等的打印機,但在實際的諮詢意見的方式非常小: -

的紙張類型打印機使用。必須以ISO/IEC 10175文檔打印應用程序(DPA)指定的格式表示,該格式在RFC 1759(打印機MIB)的附錄C中進行了總結。該屬性繼承自CIM_Printer

我可以檢索所選打印機支持的所有紙張類型的列表,但不會告訴我它當前設置爲哪個紙張類型。

我在內存中創建一個動態的報告,然後吐出出來,以一重擊打印機,所以我需要知道,以便紙張尺寸正確設置頁邊距,列寬等

人有任何成功檢索這些信息?

回答

5

不要使用WMI,除非你真的需要。 Foxfire說,使用內置的.Net類。您通過要求

System.Drawing.Printing.PrinterSettings printer = new System.Drawing.Printing.PrinterSettings(); 
printer.PrinterName = "YourPrinterName"; 

然後,您可以訪問所有的屬性:您可以通過以下得到一臺打印機

printer.DefaultPageSettings; 
+0

+1的示例代碼 – 2009-10-29 10:27:45

2

是否有什麼特別的原因,您爲什麼使用WMI而不是System.Drawing.Printing中的.Net打印機類?

,你可以很容易地得到您的信息,通過它包含的打印機中當前可用的所有PaperKinds的PrinterSettings類的PaperSources財產(可能不止一個,因爲幾臺打印機有多個紙盒)

+0

將調查,感謝您的指針 – 2009-10-29 10:19:52

相關問題