2009-10-29 46 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

相关问题