111,098
社区成员




private PrintQueue GetPrintQueue(string PrinterName)
{
LocalPrintServer pr = new LocalPrintServer();
pr.Refresh();
EnumeratedPrintQueueTypes[] enumerationFlags = {EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Connections,
};
foreach (PrintQueue pq in pr.GetPrintQueues(enumerationFlags))
{
if (pq.Name == PrinterName)
{
return pq;
}
}
return null;
}
判断状态: if (printQueue.IsBusy)
printStateText = "打印机正忙";
else if (printQueue.IsDoorOpened)
printStateText = "打印机门被打开";
else if (printQueue.IsInError)
printStateText = "打印机出错";
else if (printQueue.IsInitializing)
printStateText = "打印机正在初始化";
else if (printQueue.IsIOActive)
printStateText = "打印机正在与打印服务器交换数据";
else if (printQueue.IsManualFeedRequired)
printStateText = "打印机出错";
else if (printQueue.IsNotAvailable)
printStateText = "打印机状态信息不可用";
else if (printQueue.IsTonerLow)
printStateText = "打印机墨粉用完";
else if (printQueue.IsOffline)
printStateText = "打印机脱机";
else if (printQueue.IsOutOfMemory)
printStateText = "打印机无可用内存";
else if (printQueue.IsOutputBinFull)
printStateText = "打印机输出纸盒已满";
else if (printQueue.IsPaperJammed)
printStateText = "打印机卡纸";
else if (printQueue.IsOutOfPaper)
printStateText = "打印机中没有或已用完当前打印作业所需的纸张类型";
else if (printQueue.QueueStatus == PrintQueueStatus.PaperProblem)
printStateText = "打印机中的纸张导致未指定的错误情况";
else if (printQueue.IsPaused)
printStateText = "打印队列已暂停";
else if (printQueue.IsPendingDeletion)
printStateText = "打印队列正在删除打印作业";
else if (printQueue.IsPrinting)
printStateText = "设备正在打印";
else if (printQueue.IsProcessing)
printStateText = "设备正在执行某种工作,如果此设备是集打印机、传真机和扫描仪于一体的多功能设备,则不需要打印.";
else if (printQueue.IsServerUnknown)
printStateText = "打印机处于错误状态";
//else if (printQueue.IsWarmingUp)
// printStateText = "打印机正在预热";