PrintQueueCollection printQueues = null; var printServer = new PrintServer(); printQueues = printServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }); PrintQueue printQueue = printQueues.FirstOrDefault(p => p.Name.ToUpperInvariant().Contains(PrintName.ToUpperInvariant())); if (printQueue != null) { try { var jobs = printQueue.GetPrintJobInfoCollection().Count(j => j.JobStatus != PrintJobStatus.Completed); if (jobs == 0) {
//print done break; } } catch {
//sometimes will happen } }