Udostępnij za pośrednictwem


Collation Wyliczenie

Definicja

Określa, czy drukarka sortuje dane wyjściowe podczas drukowania wielu kopii zadania drukowania wielostronicowego.

public enum class Collation
public enum Collation
type Collation = 
Public Enum Collation
Dziedziczenie
Collation

Pola

Collated 1

Posuwane dane wyjściowe.

Uncollated 2

Dane wyjściowe bez kolumny.

Unknown 0

Funkcja (której opcje są reprezentowane przez to wyliczenie) jest ustawiona na opcję niezdefiniową w schemacie wydruku.

Przykłady

W poniższym przykładzie pokazano, jak przetestować możliwości drukarki i skonfigurować zadanie drukowania, aby móc z nich korzystać. .

// ---------------------- GetPrintTicketFromPrinter -----------------------
/// <summary>
///   Returns a PrintTicket based on the current default printer.</summary>
/// <returns>
///   A PrintTicket for the current local default printer.</returns>
PrintTicket^ GetPrintTicketFromPrinter ()
{
   PrintQueue^ printQueue = nullptr;

   LocalPrintServer^ localPrintServer = gcnew LocalPrintServer();

   // Retrieving collection of local printer on user machine
   PrintQueueCollection^ localPrinterCollection = localPrintServer->GetPrintQueues();

   System::Collections::IEnumerator^ localPrinterEnumerator = localPrinterCollection->GetEnumerator();

   if (localPrinterEnumerator->MoveNext())
   {
      // Get PrintQueue from first available printer
      printQueue = ((PrintQueue^)localPrinterEnumerator->Current);
   } else
   {
      return nullptr;
   }
   // Get default PrintTicket from printer
   PrintTicket^ printTicket = printQueue->DefaultPrintTicket;

   PrintCapabilities^ printCapabilities = printQueue->GetPrintCapabilities();

   // Modify PrintTicket
   if (printCapabilities->CollationCapability->Contains(Collation::Collated))
   {
      printTicket->Collation = Collation::Collated;
   }
   if (printCapabilities->DuplexingCapability->Contains(Duplexing::TwoSidedLongEdge))
   {
      printTicket->Duplexing = Duplexing::TwoSidedLongEdge;
   }
   if (printCapabilities->StaplingCapability->Contains(Stapling::StapleDualLeft))
   {
      printTicket->Stapling = Stapling::StapleDualLeft;
   }
   return printTicket;
};// end:GetPrintTicketFromPrinter()
// ---------------------- GetPrintTicketFromPrinter -----------------------
/// <summary>
///   Returns a PrintTicket based on the current default printer.</summary>
/// <returns>
///   A PrintTicket for the current local default printer.</returns>
private PrintTicket GetPrintTicketFromPrinter()
{
    PrintQueue printQueue = null;

    LocalPrintServer localPrintServer = new LocalPrintServer();

    // Retrieving collection of local printer on user machine
    PrintQueueCollection localPrinterCollection =
        localPrintServer.GetPrintQueues();

    System.Collections.IEnumerator localPrinterEnumerator =
        localPrinterCollection.GetEnumerator();

    if (localPrinterEnumerator.MoveNext())
    {
        // Get PrintQueue from first available printer
        printQueue = (PrintQueue)localPrinterEnumerator.Current;
    }
    else
    {
        // No printer exist, return null PrintTicket
        return null;
    }

    // Get default PrintTicket from printer
    PrintTicket printTicket = printQueue.DefaultPrintTicket;

    PrintCapabilities printCapabilities = printQueue.GetPrintCapabilities();

    // Modify PrintTicket
    if (printCapabilities.CollationCapability.Contains(Collation.Collated))
    {
        printTicket.Collation = Collation.Collated;
    }

    if ( printCapabilities.DuplexingCapability.Contains(
            Duplexing.TwoSidedLongEdge) )
    {
        printTicket.Duplexing = Duplexing.TwoSidedLongEdge;
    }

    if (printCapabilities.StaplingCapability.Contains(Stapling.StapleDualLeft))
    {
        printTicket.Stapling = Stapling.StapleDualLeft;
    }

    return printTicket;
}// end:GetPrintTicketFromPrinter()
' ---------------------- GetPrintTicketFromPrinter -----------------------
''' <summary>
'''   Returns a PrintTicket based on the current default printer.</summary>
''' <returns>
'''   A PrintTicket for the current local default printer.</returns>
Private Function GetPrintTicketFromPrinter() As PrintTicket
    Dim printQueue As PrintQueue = Nothing

    Dim localPrintServer As New LocalPrintServer()

    ' Retrieving collection of local printer on user machine
    Dim localPrinterCollection As PrintQueueCollection = localPrintServer.GetPrintQueues()

    Dim localPrinterEnumerator As System.Collections.IEnumerator = localPrinterCollection.GetEnumerator()

    If localPrinterEnumerator.MoveNext() Then
        ' Get PrintQueue from first available printer
        printQueue = CType(localPrinterEnumerator.Current, PrintQueue)
    Else
        ' No printer exist, return null PrintTicket
        Return Nothing
    End If

    ' Get default PrintTicket from printer
    Dim printTicket As PrintTicket = printQueue.DefaultPrintTicket

    Dim printCapabilities As PrintCapabilities = printQueue.GetPrintCapabilities()

    ' Modify PrintTicket
    If printCapabilities.CollationCapability.Contains(Collation.Collated) Then
        printTicket.Collation = Collation.Collated
    End If

    If printCapabilities.DuplexingCapability.Contains(Duplexing.TwoSidedLongEdge) Then
        printTicket.Duplexing = Duplexing.TwoSidedLongEdge
    End If

    If printCapabilities.StaplingCapability.Contains(Stapling.StapleDualLeft) Then
        printTicket.Stapling = Stapling.StapleDualLeft
    End If

    Return printTicket
End Function ' end:GetPrintTicketFromPrinter()

Uwagi

Drukarka standardowa zwykle sortuje dane wyjściowe, drukując każdą stronę pierwszej kopii, a następnie każdą stronę drugiej kopii itd. Gdy drukarka standardowa nie jest sortowa, drukuje każdą kopię pierwszej strony, a następnie każdą kopię drugiej strony itd.

Niektóre drukarki są specjalnie wyposażone w pojemniki sortowania. Sekwencja drukowania dla tych specjalnie wyposażonych drukarek może różnić się od sekwencji drukarek standardowych; jednak wynik jest taki sam: każda kopia zadania drukowania wielostronicowego zawiera wszystkie jego strony w odpowiedniej kolejności bez ręcznego sortowania.

Użyj wartości tego typu przede wszystkim w następujących celach.

  • Jako elementy członkowskie CollationCapability kolekcji, która jest właściwością PrintCapabilities, te wartości wskazują typ danych wyjściowych, które obsługuje drukarka. (Wiele drukarek obsługuje oba typy).

  • Jako wartość Collation właściwości PrintTicket, wartość instruuje drukarkę, czy przeprowadzić sortowanie.

Nieznana wartość nigdy nie jest używana we właściwościach PrintCapabilities obiektów.

Nigdy nie należy ustawiać PrintTicket właściwości na Nieznany. Jeśli inna PrintTicket aplikacja produkująca utworzyła dokument PrintTicket , który ustawia funkcję sortowania na nierozpoznaną opcję sortowania, wówczas PrintTicket obiekt w aplikacji skonstruowany z tym dokumentem będzie miał wartość Nieznany jako wartość Collation właściwości.

PrintTicket Mimo że klasy i PrintCapabilities nie mogą być dziedziczone, można rozszerzyć schemat wydruku w celu rozpoznawania funkcji urządzenia wydruku, które nie są uwzględniane w PrintTicket klasach lubPrintCapabilities. Aby uzyskać więcej informacji , zobacz How to: Extend the Print Schema and Create New Print System Classes (Instrukcje: rozszerzanie schematu wydruku) i Create New Print System Classes (Tworzenie nowych klas systemu wydruku).

Dotyczy

Zobacz też