PrintTicket Klasse

Definition

Definiert die Einstellungen eines Druckauftrags.

public ref class PrintTicket sealed : System::ComponentModel::INotifyPropertyChanged
public sealed class PrintTicket : System.ComponentModel.INotifyPropertyChanged
type PrintTicket = class
    interface INotifyPropertyChanged
Public NotInheritable Class PrintTicket
Implements INotifyPropertyChanged
Vererbung
PrintTicket
Implementiert

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie die Funktionen eines bestimmten Druckers ermitteln und einen Druckauftrag konfigurieren, um diese zu nutzen.

// ---------------------- 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()

Hinweise

Ein PrintTicket Objekt ist eine einfach zu bearbeitende Darstellung eines bestimmten Typs von XML-Dokumenten, der als PrintTicket-Dokument bezeichnet wird. Bei letzterem handelt es sich um eine Reihe von Anweisungen, die einem Drucker mitteilen, wie die verschiedenen Features (z. B. Duplexing, Sortieren und Heften) festgelegt werden sollen. Um beispielsweise den Drucker anzuweisen, seine Klammer- und Heftdruckaufträge in der oberen linken Ecke zu aktivieren, hätte das Dokument ein <JobStapleAllDocuments … > Element, das StapleTopLeft angibt. Das -Element wird wiederum durch die Stapling -Eigenschaft des PrintTicket -Objekts dargestellt. Das PrintTicket-Dokument muss dem Druckschema entsprechen.

Mit PrintTicket der -Klasse kann Ihre Anwendung die Funktionen des Druckers konfigurieren, ohne sich mit dem direkten Schreiben von XML-Objekten Stream befassen zu müssen.

Alle beliebtesten Features von Datei- und Fotodruckern für Privat- und Geschäftskunden werden durch Eigenschaften der PrintTicket -Klasse dargestellt. Das Druckschema definiert jedoch viele weitere, weniger häufige Features und kann erweitert werden, um Features von Spezialdruckgeräten zu behandeln. Obwohl die PrintTicket Klassen und PrintCapabilities nicht geerbt werden können, können Sie das Druckschema erweitern, um Druckgerätefeatures zu erkennen, die nicht in den PrintTicket Klassen oder PrintCapabilities berücksichtigt werden. Weitere Informationen finden Sie unter Vorgehensweise: Erweitern des Druckschemas und Erstellen neuer Drucksystemklassen.

Hinweis Wenn das PrintTicket Objekt mit dem Konstruktor erstellt wird, der ein StreamPrintTicket-Dokument (als ) -Parameter akzeptiert, wird das gesamte Dokument in einem nicht öffentlichen Feld im -Objekt gespeichert, einschließlich der darin enthaltenen XML-Elemente, die weniger häufige Features ausdrücken, die von keiner der öffentlichen Eigenschaften der PrintTicket -Klasse dargestellt werden. Wenn der Treiber, der das PrintTicket-Dokument erstellt hat, eine private Erweiterung des Druckschemas verwendet, wird dieses privat definierte Markup auch als Teil des nicht öffentlichen PrintTicket-Dokuments gespeichert.

Achtung

Klassen innerhalb des Namespace werden nicht für die System.Printing Verwendung innerhalb eines Windows-Diensts oder ASP.NET-Anwendung oder -Diensts unterstützt. Der Versuch, diese Klassen aus einem dieser Anwendungstypen zu verwenden, kann zu unerwarteten Problemen führen, z. B. zu leistungseinbußen und Laufzeitausnahmen.

Wenn Sie aus einer Windows Forms-Anwendung drucken möchten, lesen Sie den System.Drawing.Printing Namespace.

Konstruktoren

PrintTicket()

Initialisiert eine neue Instanz der PrintTicket-Klasse.

PrintTicket(Stream)

Initialisiert eine neue Instanz der PrintTicket-Klasse mit einem XML-Stream (der ein PrintTicket-Dokument enthält), der dem XML-Druckschema entspricht.

Eigenschaften

Collation

Ruft einen Wert ab, der angibt, ob der Drucker die Ausgabe sortiert, oder legt diesen fest.

CopyCount

Ruft die Anzahl der Exemplare für den Druckauftrag ab oder legt diese fest.

DeviceFontSubstitution

Ruft einen Wert ab, der angibt, ob der Drucker computerbasierte Schriftarten im Druckauftrag durch geräteseitige Schriftarten ersetzt, oder legt diesen fest.

Duplexing

Ruft einen Wert ab, der angibt, welche Einstellungen für den doppelseitigen Druck (sofern zutreffend) der Drucker beim aktuellen Druckauftrag verwendet, oder legt diesen fest.

InputBin

Ruft einen Wert ab, der angibt, welcher Eingabeschacht verwendet wird, oder legt diesen fest.

OutputColor

Ruft einen Wert ab, der angibt, wie der Drucker Farben oder Graustufen verarbeitet, oder legt diesen fest.

OutputQuality

Ruft einen Wert ab, der die gewählte Ausgabequalität für den Druckauftrag angibt, oder legt diesen fest.

PageBorderless

Ruft einen Wert ab, der angibt, ob das Gerät bis zum Rand des Druckmediums druckt oder ob ein nicht bedruckbarer Rand freigelassen wird, oder legt diesen fest.

PageMediaSize

Ruft die Seitengröße ab, die ein Drucker bei einem Druckauftrag für das ausgewählte Papier (oder ein anderes Druckmedium) verwendet, oder legt diesen fest.

PageMediaType

Ruft einen Wert ab, der angibt, welches Papier oder Druckmedium der Drucker für den Druckauftrag verwendet, oder legt diesen fest.

PageOrder

Ruft einen Wert ab, der angibt, ob der Drucker mehrere Seiten mit normaler oder umgekehrter Seitenreihenfolge druckt, oder legt diesen fest.

PageOrientation

Ruft einen Wert ab, der angibt, mit welcher Ausrichtung der Seiteninhalt gedruckt wird, oder legt diesen fest.

PageResolution

Ruft die Seitenauflösung ab, die der Drucker für einen Druckauftrag verwendet, oder legt diesen fest.

PageScalingFactor

Ruft den Prozentsatz ab, auf den der Drucker das gedruckte Bild auf der Seite vergrößert oder verkleinert, oder legt diesen fest.

PagesPerSheet

Ruft die Anzahl von Seiten ab, die auf jeder bedruckten Seite des Papiers ausgegeben werden, oder legt diesen fest.

PagesPerSheetDirection

Ruft einen Wert ab, der angibt, wie ein Drucker mehrere auf eine Blattseite gedruckte Seiten anordnet, oder legt diesen fest.

PhotoPrintingIntent

Ruft einen Wert ab, der die Ausgabequalität für den Druck eines Fotos mit einem qualitativen Ausdruck angibt, oder legt diesen fest.

Stapling

Ruft einen Wert ab, der angibt, ob und an welcher Position ein Drucker mehrere Seiten heftet, oder legt diesen fest.

TrueTypeFontMode

Ruft ab einen Wert ab, der angibt, wie der Drucker Text verarbeitet, der TrueType-Schriftarten verwendet, oder legt diesen fest.

Methoden

Clone()

Erstellt einen änderbaren Klon dieser PrintTicket, indem tiefe Kopien der Werte dieses Objekts erzeugt werden.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetXmlStream()

Gibt ein MemoryStream-Objekt zurück, das die Eigenschaftswerte von einem PrintTicket als XML-Stream darstellt, der dem Druckschema entspricht.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SaveTo(Stream)

Speichert die PrintTicket-Einstellungen in einem Stream-Objekt mit einem XML-Format, das dem Druckschema entspricht.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

PropertyChanged

Tritt ein, wenn eine Eigenschaft des PrintTicket geändert wird.

Gilt für: