This documentation is archived and is not being maintained.

PrintQueueStatus Enumeration

Specifies the status of a print queue or its printer.

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 PrintQueueStatus
/** @attribute FlagsAttribute() */ 
public enum PrintQueueStatus
public enum PrintQueueStatus

 Member nameDescription
BusyThe printer is busy. 
DoorOpenA door on the printer is open. 
ErrorThe printer cannot print due to an error condition. 
InitializingThe printer is initializing. 
IOActiveThe printer is exchanging data with the print server. 
ManualFeedThe printer is waiting for a user to place print media in the manual feed bin. 
NoneStatus is not specified. 
NotAvailableStatus information is unavailable. 
NoTonerThe printer is out of toner. 
OfflineThe printer is offline. 
OutOfMemoryThe printer has no available memory. 
OutputBinFullThe printer's output bin is full. 
PagePuntThe printer is unable to print the current page. 
PaperJamThe paper in the printer is jammed. 
PaperOutThe printer does not have, or is out of, the type of paper needed for the current print job. 
PaperProblemThe paper in the printer is causing an unspecified error condition. 
PausedThe print queue is paused. 
PendingDeletionThe print queue is deleting a print job. 
PowerSaveThe printer is in power save mode. 
PrintingThe device is printing.  
ProcessingThe device is doing some kind of work, which need not be printing if the device is a combination printer, fax machine, and scanner. 
ServerUnknownThe printer is in an error state. 
TonerLowOnly a small amount of toner remains in the printer. 
UserInterventionThe printer requires user action to correct an error condition. 
WaitingThe printer is waiting for a print job. 
WarmingUpThe printer is warming up. 

Like the PrintQueue class, this enumeration handles the print queue and the physical printer (or device) as one unit. Some values represent the status of the physical device and others represent the status of the print queue program that is running on the print server.

Use this enumeration to provide values for the QueueStatus property of the PrintQueue class.

The following example shows how to use this enumeration as part of a survey all printers for possible error status. For the complete sample, see Survey Status of Printers Sample.

// Check for possible trouble states of a printer using the flags of the QueueStatus property
internal static void SpotTroubleUsingQueueAttributes(ref String statusReport, PrintQueue pq)
    if ((pq.QueueStatus & PrintQueueStatus.PaperProblem) == PrintQueueStatus.PaperProblem)
        statusReport = statusReport + "Has a paper problem. ";
    if ((pq.QueueStatus & PrintQueueStatus.NoToner) == PrintQueueStatus.NoToner)
        statusReport = statusReport + "Is out of toner. ";
    if ((pq.QueueStatus & PrintQueueStatus.DoorOpen) == PrintQueueStatus.DoorOpen)
        statusReport = statusReport + "Has an open door. ";
    if ((pq.QueueStatus & PrintQueueStatus.Error) == PrintQueueStatus.Error)
        statusReport = statusReport + "Is in an error state. ";
    if ((pq.QueueStatus & PrintQueueStatus.NotAvailable) == PrintQueueStatus.NotAvailable)
        statusReport = statusReport + "Is not available. ";
    if ((pq.QueueStatus & PrintQueueStatus.Offline) == PrintQueueStatus.Offline)
        statusReport = statusReport + "Is off line. ";
    if ((pq.QueueStatus & PrintQueueStatus.OutOfMemory) == PrintQueueStatus.OutOfMemory)
        statusReport = statusReport + "Is out of memory. ";
    if ((pq.QueueStatus & PrintQueueStatus.PaperOut) == PrintQueueStatus.PaperOut)
        statusReport = statusReport + "Is out of paper. ";
    if ((pq.QueueStatus & PrintQueueStatus.OutputBinFull) == PrintQueueStatus.OutputBinFull)
        statusReport = statusReport + "Has a full output bin. ";
    if ((pq.QueueStatus & PrintQueueStatus.PaperJam) == PrintQueueStatus.PaperJam)
        statusReport = statusReport + "Has a paper jam. ";
    if ((pq.QueueStatus & PrintQueueStatus.Paused) == PrintQueueStatus.Paused)
        statusReport = statusReport + "Is paused. ";
    if ((pq.QueueStatus & PrintQueueStatus.TonerLow) == PrintQueueStatus.TonerLow)
        statusReport = statusReport + "Is low on toner. ";
    if ((pq.QueueStatus & PrintQueueStatus.UserIntervention) == PrintQueueStatus.UserIntervention)
        statusReport = statusReport + "Needs user intervention. ";

    // Check if queue is even available at this time of day
    // The method below is defined in the complete example.
    ReportAvailabilityAtThisTime(ref statusReport, pq);

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