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;
}