PrintQueueStatus Wyliczenie

Definicja

Określa stan kolejki wydruku lub drukarki.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

C#
[System.Flags]
public enum PrintQueueStatus
Dziedziczenie
PrintQueueStatus
Atrybuty

Pola

Nazwa Wartość Opis
Busy 512

Drukarka jest zajęta.

DoorOpen 4194304

Drzwi na drukarce są otwarte.

Error 2

Drukarka nie może wydrukować z powodu błędu.

Initializing 32768

Drukarka inicjuje.

IOActive 256

Drukarka wymienia dane z serwerem wydruku.

ManualFeed 32

Drukarka czeka na umieszczenie nośnika wydruku przez użytkownika w pojemniku do ręcznego kanału informacyjnego.

None 0

Stan nie jest określony.

NotAvailable 4096

Informacje o stanie są niedostępne.

NoToner 262144

Drukarka jest poza tonerem.

Offline 128

Drukarka jest w trybie offline.

OutOfMemory 2097152

Drukarka nie ma dostępnej pamięci.

OutputBinFull 2048

Pojemnik wyjściowy drukarki jest pełny.

PagePunt 524288

Drukarka nie może wydrukować bieżącej strony.

PaperJam 8

Papier w drukarce jest zacięty.

PaperOut 16

Drukarka nie ma lub jest poza typem papieru potrzebnego do bieżącego zadania drukowania.

PaperProblem 64

Papier w drukarce powoduje nieokreślony warunek błędu.

Paused 1

Kolejka wydruku jest wstrzymana.

PendingDeletion 4

Kolejka wydruku usuwa zadanie drukowania.

PowerSave 16777216

Drukarka jest w trybie oszczędzania energii.

Printing 1024

Urządzenie jest drukowane.

Processing 16384

Urządzenie wykonuje jakąś pracę, która nie musi być drukowana, jeśli urządzenie jest drukarką kombinacji, faksem i skanerem.

ServerUnknown 8388608

Drukarka jest w stanie błędu.

TonerLow 131072

Tylko niewielka ilość toneru pozostaje w drukarce.

UserIntervention 1048576

Drukarka wymaga akcji użytkownika w celu skorygowania warunku błędu.

Waiting 8192

Drukarka czeka na zadanie drukowania.

WarmingUp 65536

Drukarka się rozgrzewa.

Przykłady

W poniższym przykładzie pokazano, jak używać tego wyliczenia w ramach ankiety dla wszystkich drukarek pod kątem możliwego stanu błędu.

C#
// 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);
}

Uwagi

Podobnie jak klasa PrintQueue , ta wyliczenie obsługuje kolejkę wydruku i drukarkę fizyczną (lub urządzenie) jako jedną jednostkę. Niektóre wartości reprezentują stan urządzenia fizycznego, a inne reprezentują stan programu kolejki wydruku uruchomionego na serwerze wydruku.

Użyj tej wyliczenia, aby podać wartości właściwości QueueStatusPrintQueue klasy.

Dotyczy

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też