为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只斗牛犬 2019-10-09 17:46:39
在标准PrintDialog中,有四个与所选打印机关联的值:“状态”,“类型”,“位置”和“注释”。如果我知道打印机的名称,如何在C#2.0中获得这些值?
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

这应该工作。


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。


查看完整回答
反对 回复 2019-10-09
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

请注意,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 ”。


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 787 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信