C# PrintDocument 和打印机状态

Posted

技术标签:

【中文标题】C# PrintDocument 和打印机状态【英文标题】:C# PrintDocument and Printer Status 【发布时间】:2011-11-11 14:22:12 【问题描述】:

我正在尝试使用以下代码获取 PointOfSale 打印机的打印机状态:

Hashtable properties = new Hashtable();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win2_Printer");

foreach (ManagementObject obj in searcher.Get()) 
  if (obj["name"].ToString() == printerName) 
    foreach (PropertyData data in obj.Properties) 
      if(data.Name.ToLower() = "printerstatus") 
        int printerStatus = Convert.ToInt32(data.Value);
      
    
  

问题是,状态要么是 3(空闲)要么是 4(打印),即使在拔掉电源或纸张用完时也是如此。

我已经阅读了很多相同问题的帖子,但没有找到答案。它是否正确?我还要如何检查状态?任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

您使用的是什么品牌的打印机?

有时品牌会有一个特定的命令,你可以发送来查询状态。

【讨论】:

我会说继续研究它。此页面custom.it/eng/products/… 表示他们有一个状态 dll。你需要为它找到一些文档。 是的,我找到了那个链接。我通过电子邮件发送了技术支持并收到了我认为是意大利语的回复。谢谢你的努力!

以上是关于C# PrintDocument 和打印机状态的主要内容,如果未能解决你的问题,请参考以下文章

C# printdocument 分页打印

在 C# 中绘制和打印复杂文档(改进/替换我的 PrintDocument)

C# - 如何使用 PrintDocument 以编程方式打印现有 PDF 文件

C# printDocument 直接打印Word文档

c#教程之打印和打印预览

使用 PrintDocument 打印图像。如何调整图像以适合纸张尺寸