PrintJobStatus Enumeration
Specifies the current status of a print job in a print queue.
This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.
Assembly: System.Printing (in System.Printing.dll)
| Member name | Description | |
|---|---|---|
| Blocked | An error condition, possibly on a print job that precedes this one in the queue, blocked the print job. | |
| Completed | The print job is complete, including any post-printing processing. | |
| Deleted | The print job was deleted from the queue, typically after printing. | |
| Deleting | The print job is in the process of being deleted. | |
| Error | The print job is in an error state. | |
| None | The print job has no specified state. | |
| Offline | The printer is offline. | |
| PaperOut | The printer is out of the required paper size. | |
| Paused | The print job is paused. | |
| Printed | The print job printed. | |
| Printing | The print job is now printing. | |
| Restarted | The print job was blocked but has restarted. | |
| Retained | The print job is retained in the print queue after printing. | |
| Spooling | The print job is spooling. | |
| UserIntervention | The printer requires user action to fix an error condition. |
The following example shows how to use this enumeration when diagnosing a problem with a print job.
// Check for possible trouble states of a print job using the flags of the JobStatus property static void SpotTroubleUsingJobAttributes (PrintSystemJobInfo^ theJob) { if ((theJob->JobStatus & PrintJobStatus::Blocked) == PrintJobStatus::Blocked) { Console::WriteLine("The job is blocked."); } if (((theJob->JobStatus & PrintJobStatus::Completed) == PrintJobStatus::Completed) || ((theJob->JobStatus & PrintJobStatus::Printed) == PrintJobStatus::Printed)) { Console::WriteLine("The job has finished. Have user recheck all output bins and be sure the correct printer is being checked."); } if (((theJob->JobStatus & PrintJobStatus::Deleted) == PrintJobStatus::Deleted) || ((theJob->JobStatus & PrintJobStatus::Deleting) == PrintJobStatus::Deleting)) { Console::WriteLine("The user or someone with administration rights to the queue has deleted the job. It must be resubmitted."); } if ((theJob->JobStatus & PrintJobStatus::Error) == PrintJobStatus::Error) { Console::WriteLine("The job has errored."); } if ((theJob->JobStatus & PrintJobStatus::Offline) == PrintJobStatus::Offline) { Console::WriteLine("The printer is offline. Have user put it online with printer front panel."); } if ((theJob->JobStatus & PrintJobStatus::PaperOut) == PrintJobStatus::PaperOut) { Console::WriteLine("The printer is out of paper of the size required by the job. Have user add paper."); } if (((theJob->JobStatus & PrintJobStatus::Paused) == PrintJobStatus::Paused) || ((theJob->HostingPrintQueue->QueueStatus & PrintQueueStatus::Paused) == PrintQueueStatus::Paused)) { HandlePausedJob(theJob); //HandlePausedJob is defined in the complete example. } if ((theJob->JobStatus & PrintJobStatus::Printing) == PrintJobStatus::Printing) { Console::WriteLine("The job is printing now."); } if ((theJob->JobStatus & PrintJobStatus::Spooling) == PrintJobStatus::Spooling) { Console::WriteLine("The job is spooling now."); } if ((theJob->JobStatus & PrintJobStatus::UserIntervention) == PrintJobStatus::UserIntervention) { Console::WriteLine("The printer needs human intervention."); } };
Available since 3.0