检查c#中的打印机状态?

时间:2013-11-01 17:32:13

标签: c# pdf printing error-handling

我最近向这个问题提出了几个相关的问题,但这一次我希望尽可能地了解我在开发过程中所关心的问题。

我们正在尝试通过移动打印机打印票证,需要确定打印机是否在线,离线或是否有错误,以便我们更好地处理它: enter image description here

在我打印时,我的代码片段再次出现,但如果出现任何问题,似乎无法将其捕获:

            Process process = new Process();
            //process.StartInfo.CreateNoWindow = true;
            process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            process.StartInfo.FileName = defFile;
            if (rwPrinter.Length > 0)
            {
                process.StartInfo.Verb = "printto";
                //process.StartInfo.Verb = (Path.Combine(System.Windows.Forms.Application.StartupPath, "printto.exe"));
                process.StartInfo.Arguments = "\"" + rwPrinter + "\"";
            }
            else
            {
                process.StartInfo.Verb = "print";
            }

            try
            {
                process.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

请原谅我对此的匆匆忙忙,因为我有一个对我不耐烦的老板让我按照自己的意愿工作,请告诉我如何让这个陷入错误陷阱,谢谢。

1 个答案:

答案 0 :(得分:0)

对于事后处理问题后,您可以等待退出,然后检查ExitCode。如果处理打印的进程非常好以报告有意义的代码,那么您可以显示更有意义的消息,但这取决于被调用的进程。

try
{
      process.Start();
      process.WaitForExit();
      if (process.ExitCode >0)
      {
          MessageBox.Show(String.Fromat("print failed, exit code :{0} ", process.ExitCode ));
      }
}
catch (Exception ex)
{
      MessageBox.Show(ex.Message);
}