在C#中检查打印机状态

时间:2016-12-01 14:12:45

标签: c# printing

enter image description here

如果打印机中没有纸张或我的热敏打印机与POS连接时出现任何其他错误,我正在尝试收到消息。任何人都可以帮助我如何得到这个。我正在获得如下所示的属性。

var server = new LocalPrintServer();
PrintQueue queue = server.DefaultPrintQueue;

//various properties of printQueue
var isOutOfPaper = queue.IsOutOfPaper;
var isOffLine = queue.IsOffline;
var isPaperJam = queue.IsPaperJammed;
var requiresUser = queue.NeedUserIntervention;
var hasPaperProblem = queue.HasPaperProblem;
var isBusy = queue.IsBusy;

if (isOutOfPaper.Equals("true"))
{
  MessageBox.Show(isOutofPaper.ToString());
} 

我想使用MessageBox显示打印机缺纸的消息。

在此处显示默认打印机名称

enter image description here

由于

2 个答案:

答案 0 :(得分:3)

isOutOfPaper是一个布尔变量。将您的if句子改为

if (isOutOfPaper)
{
    MessageBox.Show(isOutofPaper.ToString());
} 

<强>说明

  

如果打印机不支持具有此含义的信号,则该属性始终为false。

更多信息:https://msdn.microsoft.com/en-us/library/system.printing.printqueue.isoutofpaper.aspx

答案 1 :(得分:1)

尝试将isOutOfPaper.Equals("true")替换为isOutOfPaper