0
点赞
收藏
分享

微信扫一扫

开发三十四、任何软件中实现获取当前打印任务状态,打印机名称

i奇异 2022-02-12 阅读 65

 using System.Printing;

public override void OnAfterPrint(AfterPrintEventArgs e)

       {

           base.OnAfterPrint(e);

           PrintQueue p = LocalPrintServer.GetDefaultPrintQueue();

           System.Threading.Thread.Sleep(2000);//睡眠2秒

           this.View.ShowMessage(p.FullName+",打印状态为:"+GetPrintStatus(p));

       }

//打印状态显示

       private string GetPrintStatus(PrintQueue p)

       {

           string re = "";

           switch (p.QueueStatus)

           {

               //处于节能状态

               case PrintQueueStatus.PowerSave:

                   re = "处于节能状态";

                   break;

               //处于错误状态

               case PrintQueueStatus.ServerUnknown:

                   re = "处于错误状态";

                   break;

               //打印机上的门已打开

               case PrintQueueStatus.DoorOpen:

                   re = "打印机上的门已打开";

                   break;

               //打印机无可用内存

               case PrintQueueStatus.OutOfMemory:

                   re = "打印机无可用内存";

                   break;

               case PrintQueueStatus.UserIntervention:

                   re = "用户更正错误";

                   break;

               case PrintQueueStatus.PagePunt:

                   re = "不能打印当前页";

                   break;

               //打印机墨粉已用完

               case PrintQueueStatus.NoToner:

                   re = "打印机墨粉已用完";

                   break;

               case PrintQueueStatus.TonerLow:

                   re = "打印机剩余少量墨粉";

                   break;

               case PrintQueueStatus.WarmingUp:

                   re = "打印机正在预热";

                   break;

               case PrintQueueStatus.Initializing:

                   re = "打印机正在初始化";

                   break;

               case PrintQueueStatus.Processing:

                   re = "打印机正在执行某种工作";

                   break;

               case PrintQueueStatus.Waiting:

                   re = "打印机正在等待打印作业";

                   break;

               case PrintQueueStatus.NotAvailable:

                   re = "打印机状态信息不可用";

                   break;

               case PrintQueueStatus.OutputBinFull:

                   re = "打印机输出纸盒已满";

                   break;

               case PrintQueueStatus.Busy:

                   re = "打印机正在忙";

                   break;

               case PrintQueueStatus.IOActive:

                   re = "打印机正在与打印服务器交互数据";

                   break;

               case PrintQueueStatus.Offline:

                   re = "打印机处于脱机状态";

                   break;

               case PrintQueueStatus.PaperProblem:

                   re = "打印机纸张导致未知错误";

                   break;

               case PrintQueueStatus.ManualFeed:

                   re = "打印机正在等待用户将打印介质放入手动送纸盒";

                   break;

               //打印机缺纸

               case PrintQueueStatus.PaperOut:

                   re = "打印机中没有或已用完当前打印作业所需的纸张类型";

                   break;

               //打印机卡纸

               case PrintQueueStatus.PaperJam:

                   re = "打印机卡纸";

                   break;

               case PrintQueueStatus.PendingDeletion:

                   re = "打印机正在删除打印作业";

                   break;

               case PrintQueueStatus.Paused:

                   re = "打印机已暂停";

                   break;

               case PrintQueueStatus.None:

                   re = "打印机未指定状态";

                   break;

               case PrintQueueStatus.Printing:

                   re = "打印机正在打印";

                   break;

               case PrintQueueStatus.Error:

                   re = "错误无法打印";

                   break;

               default:

                   re = "原因未知";

                   break;

           }

           return re;

       }


开发三十四、任何软件中实现获取当前打印任务状态,打印机名称_打印机状态

举报

相关推荐

0 条评论