PrintCapabilities Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |