Teilen über


PrintCapabilities Klasse

Definition

Definiert die Fähigkeiten 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 ermitteln und 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 bedienende Darstellung eines bestimmten Typs von XML-Dokument, das als PrintCapabilities-Dokument bezeichnet wird. Letzteres ist eine Momentaufnahme aller Funktionen eines Druckers und seiner aktuellen Einstellungen. Wenn der Drucker beispielsweise 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.

Die PrintCapabilities -Klasse ermöglicht es Ihrer Anwendung, die Funktionen eines Druckers abzurufen, ohne sich mit dem direkten Lesen von XML-Objekten Stream befassen zu müssen.

Alle beliebtesten Funktionen von Datei- und Fotodruckern, sowohl für Privat- als auch für Unternehmen, werden von der PrintCapabilities -Klasse gekapselt. Das Druckschema definiert jedoch viel mehr, weniger häufige Features und kann erweitert werden, um Features von Spezialdruckgeräten zu verarbeiten. Obwohl die PrintTicket Klassen und PrintCapabilities nicht vererbt 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.

Hinweis Wenn das PrintCapabilities Objekt mit dem Konstruktor erstellt wird, der ein PrintCapabilities-Dokument (als Stream) -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 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.

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. verminderte Dienstleistung und Laufzeitausnahmen.

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

Konstruktoren

PrintCapabilities(Stream)

Initialisiert eine neue Instanz der PrintCapabilities-Klasse mit einem XML-Stream (der ein PrintCapabilities-Dokument enthält), der Druckerfunktionen angibt und dem XML-Druckschemaentspricht.

Eigenschaften

CollationCapability

Ruft eine Auflistung von Werten ab, die die von einem Drucker unterstützten Sortierreihenfolgen identifizieren.

DeviceFontSubstitutionCapability

Ruft eine Auflistung von Werten ab, die angeben, ob und in welcher Weise ein Drucker computerbasierte Schriftarten durch geräteseitige Schriftarten ersetzen kann.

DuplexingCapability

Ruft eine Auflistung von Werten ab, die identifizieren, ob und in welcher Weise ein Drucker einen zweiseitigen Druck ausführen kann.

InputBinCapability

Ruft eine Auflistung von Werten ab, die angeben, welcher Eingabeschacht verwendet wird.

MaxCopyCount

Ruft einen Wert ab, der die Höchstzahl möglicher Exemplare angibt, die das Gerät in einem einzelnen Druckauftrag verarbeiten kann.

OrientedPageMediaHeight

Ruft einen Wert ab, der die Höhe des bedruckbaren Bereichs einer Seite angibt. Die Höhe ist hierbei die vertikale Abmessung relativ zur Seitenausrichtung.

OrientedPageMediaWidth

Ruft einen Wert ab, der die Breite des bedruckbaren Bereichs einer Seite angibt. Die Breite ist hierbei die horizontale Abmessung relativ zur Seitenausrichtung.

OutputColorCapability

Ruft eine Auflistung von Werten ab, die angeben, welche Verfahren für den Farb- und Graustufendruck von einem Drucker unterstützt werden.

OutputQualityCapability

Ruft eine Auflistung von Werten ab, die die unterstützten Ausgabequalitäten eines Druckers identifizieren.

PageBorderlessCapability

Ruft eine Auflistung von Werten ab, die angeben, ob ein Drucker randlosen Druck unterstützt.

PageImageableArea

Ruft ein Objekt ab, das den Seitenbereich darstellt, den ein Drucker verwenden kann.

PageMediaSizeCapability

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

PageMediaTypeCapability

Ruft eine Auflistung von Werten ab, die identifizieren, welche Papiertypen und anderen Medien ein Drucker unterstützt.

PageOrderCapability

Ruft eine Auflistung mit Werten ab, die angeben, ob ein Drucker mehrseitige Dokumente mit normaler oder umgekehrter Seitenreihenfolge drucken kann oder ob beide Seitenreihenfolgen unterstützt werden.

PageOrientationCapability

Ruft eine Auflistung mit Werten ab, die identifizieren, welche Seitenausrichtungen ein Drucker unterstützt.

PageResolutionCapability

Ruft eine Auflistung von PageResolution-Objekten ab, die identifizieren, welche Seitenauflösungen ein Drucker unterstützt.

PageScalingFactorRange

Ruft den minimalen und den maximalen Prozentwert ab, um den ein Drucker das Druckbild auf einer Seite vergrößern oder verkleinern kann.

PagesPerSheetCapability

Ruft eine Auflistung von ganzen Zahlen ab, die jeweils angeben, wie viele Seiten ein Benutzer auf ein Blatt Papier drucken kann.

PagesPerSheetDirectionCapability

Ruft eine Auflistung von Werten ab, die identifizieren, welche Muster ein Drucker beim Drucken mehrerer Seiten auf einem Blatt Papier unterstützt.

PhotoPrintingIntentCapability

Ruft eine Auflistung von Werten, die die Qualitätsoptionen identifizieren, die ein Drucker beim Drucken von Fotos unterstützt.

StaplingCapability

Ruft eine Auflistung von Werten ab, die identifizieren, welche automatischen Hefttypen 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

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

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Gilt für: