如何在.NET中获取打印机信息?

在标准PrintDialog中,有四个与所选打印机关联的值:“状态”,“类型”,“位置”和“注释”。


如果我知道打印机的名称,如何在C#2.0中获得这些值?


一只斗牛犬
浏览 789回答 3
3回答

阿晨1998

这应该工作。using System.Drawing.Printing;...PrinterSettings ps = new PrinterSettings();ps.PrinterName = "The printer name"; // Load the appropriate printer's setting之后,可以读取PrinterSettings 的各种属性。请注意,ps.isValid()可以查看打印机是否实际存在。编辑:另外一条评论。Microsoft建议您使用PrintDocument并修改其PrinterSettings,而不是直接创建PrinterSettings。

Smart猫小萌

请注意,dowski和Panos引用的文章(MSDN Win32_Printer)可能会引起误解。我指的是大多数数组的第一个值。有些以1开头,有些以0开头。例如,“ ExtendedPrinterStatus ”表中的第一个值是1,因此,您的数组应该是这样的:string[] arrExtendedPrinterStatus = {     "","Other", "Unknown", "Idle", "Printing", "Warming Up",    "Stopped Printing", "Offline", "Paused", "Error", "Busy",    "Not Available", "Waiting", "Processing", "Initialization",    "Power Save", "Pending Deletion", "I/O Active", "Manual Feed"};另一方面,“ ErrorState ”表中的第一个值是0,因此,您的数组应如下所示:string[] arrErrorState = {    "Unknown", "Other", "No Error", "Low Paper", "No Paper", "Low Toner",    "No Toner", "Door Open", "Jammed", "Offline", "Service Requested",    "Output Bin Full"};顺便说一句,“ PrinterState ”已过时,但是您可以使用“ PrinterStatus ”。
打开App,查看更多内容
随时随地看视频慕课网APP