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.

Namespace: System.Printing
Assembly: System.Printing (in system.printing.dll)

public enum class PrintJobStatus
/** @attribute FlagsAttribute() */ 
public enum PrintJobStatus
public enum PrintJobStatus

 Member nameDescription
BlockedAn error condition, possibly on a print job that precedes this one in the queue, blocked the print job. 
CompletedThe print job is complete, including any post-printing processing.  
DeletedThe print job was deleted from the queue, typically after printing. 
DeletingThe print job is in the process of being deleted. 
ErrorThe print job is in an error state. 
NoneThe print job has no specified state. 
OfflineThe printer is offline. 
PaperOutThe printer is out of the required paper size. 
PausedThe print job is paused. 
PrintedThe print job printed.  
PrintingThe print job is now printing. 
RestartedThe print job was blocked but has restarted. 
RetainedThe print job is retained in the print queue after printing. 
SpoolingThe print job is spooling. 
UserInterventionThe printer requires user action to fix an error condition.  

This enumeration is used primarily as the value of the JobStatus property.

The following example shows how to use this enumeration when diagnosing a problem with a print job. For the full sample, see Diagnose Problematic Print Job Sample.

// 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 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.");

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0

Community Additions