Freigeben über


PrintCapabilities Klasse

Definition

Definiert die Funktionen eines Druckers.

public ref class PrintCapabilities sealed
public sealed class PrintCapabilities
type PrintCapabilities = class
Public NotInheritable Class PrintCapabilities
Vererbung
PrintCapabilities

Beispiele

Das folgende Beispiel zeigt, wie Sie die Funktionen eines bestimmten Druckers bestimmen und wie Sie einen Druckauftrag konfigurieren, um sie 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 PrintCapabilities Objekt ist eine einfach zu arbeitende Darstellung eines bestimmten XML-Dokuments, der als PrintCapabilities-Dokument bezeichnet wird. Letzteres ist eine Momentaufnahme aller Funktionen eines Druckers und deren aktuelle Einstellungen. Wenn der Drucker z. B. den Farbdruck unterstützt, verfügt das Dokument über ein <PageOutputColor … > Element, das festlegt, wie die Farbausgabe behandelt wird. Das Element wird wiederum durch die OutputColorCapability Eigenschaft des PrintCapabilities Objekts dargestellt. Wenn der Drucker keine Farbe unterstützt, gibt es kein <PageOutputColor … > Element im Dokument, und der Wert der OutputColorCapability Eigenschaft ist null. Das PrintCapabilities-Dokument muss dem Druckschema entsprechen.

Mit der PrintCapabilities Klasse kann Ihre Anwendung die Funktionen eines Druckers abrufen, ohne direktes Lesen von XML-Objekten Stream durchführen zu müssen.

Alle beliebtesten Features von Datei- und Fotodruckern, sowohl für Privat- als auch für Unternehmen, werden von der PrintCapabilities Klasse gekapselt. Das Druckschema definiert jedoch viele weitere, weniger gängige Features und kann erweitert werden, um Features von Spezialdruckgeräten zu verarbeiten. Obwohl die PrintTicket Klassen nicht PrintCapabilities geerbt werden können, können Sie das Druckschema erweitern, um Druckgerätefeatures zu erkennen, die in den PrintTicket Klassen nicht PrintCapabilities berücksichtigt werden.

Hinweis Wenn das Objekt mit dem Konstruktor erstellt wird, der PrintCapabilities einen PrintCapabilities-Dokumentparameter (as a Stream) verwendet, wird dieses gesamte Dokument in einem nicht öffentlichen Feld im Objekt gespeichert, einschließlich der DARIN enthaltenen XML-Elemente, die weniger allgemeine Features ausdrücken, die nicht durch eine der öffentlichen Eigenschaften der PrintCapabilities Klasse dargestellt werden. Wenn der Treiber, der das PrintCapabilities-Dokument erstellt hat, eine private Erweiterung des Druckschemas verwendet, wird dieses privat definierte Markup auch als Teil des nicht öffentlichen PrintCapabilities-Dokuments gespeichert.

Vorsicht

Klassen im Namespace System.Printing werden nicht für die Verwendung in einem Windows-Dienst oder einer ASP.NET-Anwendung oder einem Dienst unterstützt. Wenn Sie versuchen, diese Klassen aus einem dieser Anwendungstypen zu verwenden, können unerwartete Probleme auftreten, z. B. verringerte Dienstleistung und Laufzeit-Ausnahmen.

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

Konstruktoren

Name Beschreibung
PrintCapabilities(Stream)

Initialisiert eine neue Instanz der PrintCapabilities Klasse mithilfe eines XML-Datenstroms (der ein PrintCapabilities-Dokument enthält), der Druckerfunktionen angibt und dem XML-Druckschema entspricht.

Eigenschaften

Name Beschreibung
CollationCapability

Ruft eine Auflistung von Werten ab, die die Sortierfunktionen eines Druckers identifizieren.

DeviceFontSubstitutionCapability

Ruft eine Auflistung von Werten ab, die bestimmen, ob und wie ein Drucker gerätebasierte Schriftarten für computerbasierte Schriftarten ersetzen kann.

DuplexingCapability

Ruft eine Auflistung von Werten ab, die bestimmen, ob und wie ein Drucker zweiseitiges Drucken durchführen kann.

InputBinCapability

Ruft eine Auflistung von Werten ab, die angeben, welche Eingabecontainer (Papierschacht) verwendet wird.

MaxCopyCount

Ruft einen Wert ab, der die maximale Anzahl von Kopien angibt, die das Gerät in einem einzelnen Druckauftrag drucken kann.

OrientedPageMediaHeight

Ruft einen Wert ab, der die Höhe des bildbaren Bereichs auf einer Seite angibt, wobei die Höhe die vertikale Dimension relativ zur Ausrichtung der Seite bedeutet.

OrientedPageMediaWidth

Ruft einen Wert ab, der die Breite des bildbaren Bereichs auf einer Seite angibt, wobei breite die horizontale Dimension relativ zur Ausrichtung der Seite bedeutet.

OutputColorCapability

Ruft eine Auflistung von Werten ab, die die Möglichkeiten angeben, wie ein Drucker Inhalte mit Farbe und Grautönen drucken kann.

OutputQualityCapability

Ruft eine Auflistung von Werten ab, die die Typen der Ausgabequalität angeben, die der Drucker unterstützt.

PageBorderlessCapability

Ruft eine Auflistung von Werten ab, die angeben, ob der Drucker bis zum Rand des Mediums drucken kann.

PageImageableArea

Ruft ein Objekt ab, das den Bereich einer Seite darstellt, die der Drucker verwenden kann.

PageMediaSizeCapability

Ruft eine Auflistung von PageMediaSize Objekten ab, die die Papier- und Medienformate identifizieren, die ein Drucker unterstützt.

PageMediaTypeCapability

Ruft eine Auflistung von Werten ab, die bestimmen, welche Arten von Papier und anderen Medien ein Drucker unterstützt.

PageOrderCapability

Ruft eine Auflistung von Werten ab, die angeben, ob ein Drucker mehrere Seitendokumente von vorne nach hinten, back-to-front oder beide Arten drucken kann.

PageOrientationCapability

Ruft eine Auflistung von Werten ab, die bestimmen, welche Arten von Seitenausrichtung ein Drucker unterstützt.

PageResolutionCapability

Ruft eine Auflistung von PageResolution Objekten ab, die bestimmen, welche Ebenen der Seitenauflösung der Drucker unterstützt.

PageScalingFactorRange

Ruft die maximalen und minimalen Prozentsätze ab, um die ein Drucker das Druckbild auf einer Seite vergrößern oder verkleinern kann.

PagesPerSheetCapability

Ruft eine Auflistung von ganzzahligen Zahlen ab, die jeweils die Anzahl der Seiten identifizieren, die ein Benutzer auswählen kann, um auf einer einzelnen Seite eines Blatts Papier zu drucken.

PagesPerSheetDirectionCapability

Ruft eine Auflistung von Werten ab, die identifizieren, welche Muster ein Drucker für die Darstellung mehrerer Seiten auf einer einzelnen Seite eines Blatts Papier unterstützt.

PhotoPrintingIntentCapability

Ruft eine Auflistung von Werten ab, die die Qualitätsoptionen identifizieren, die der Drucker für das Drucken von Fotos unterstützt.

StaplingCapability

Ruft eine Auflistung von Werten ab, die die Typen der automatischen Heftung identifizieren, die ein Drucker unterstützt.

TrueTypeFontModeCapability

Ruft eine Auflistung von Werten ab, die die Methoden identifizieren, die ein Drucker für die Verarbeitung von TrueType-Schriftarten unterstützt.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Gilt für: