Udostępnij za pośrednictwem


PrintCapabilities Klasa

Definicja

Definiuje możliwości drukarki.

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

Przykłady

W poniższym przykładzie pokazano, jak określić możliwości określonej drukarki i jak skonfigurować zadanie drukowania w celu ich wykorzystania.

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

PrintCapabilities Obiekt jest łatwym w pracy reprezentacją określonego typu dokumentu XML o nazwie PrintCapabilities. Ten ostatni jest migawką wszystkich funkcji drukarki i ich bieżących ustawień. Jeśli na przykład drukarka obsługuje drukowanie kolorów, dokument będzie miał <PageOutputColor … > element określający sposób obsługi danych wyjściowych kolorów. Element jest z kolei reprezentowany przez OutputColorCapability właściwość PrintCapabilities obiektu. Jeśli drukarka nie obsługuje koloru, nie <PageOutputColor … > ma elementu w dokumencie, a wartość OutputColorCapability właściwości to null. Dokument PrintCapabilities musi być zgodny ze schematem wydruku.

Klasa PrintCapabilities umożliwia aplikacji uzyskanie możliwości drukarki bez konieczności bezpośredniego odczytywania obiektów XML Stream .

Wszystkie najbardziej popularne funkcje drukarek plików i zdjęć, zarówno dla domu, jak i firmy, są hermetyzowane przez klasę PrintCapabilities . Schemat wydruku definiuje jednak wiele innych, mniej typowych funkcji i można ją rozszerzyć, aby obsługiwać funkcje specjalnych urządzeń do drukowania. W związku z tym, mimo że PrintTicket klasy i PrintCapabilities nie mogą być dziedziczone, można rozszerzyć schemat wydruku , aby rozpoznawać funkcje urządzeń wydruku, które nie są uwzględniane w PrintTicket klasach lub PrintCapabilities .

Uwaga Po utworzeniu PrintCapabilities obiektu za pomocą konstruktora, który przyjmuje dokument PrintCapabilities (jako Streamparametr ), cały dokument jest przechowywany w polu innym niż publiczny w obiekcie, w tym elementy XML w nim, które wyrażają mniej typowe funkcje, które nie są reprezentowane przez żadne z publicznych właściwości PrintCapabilities klasy. W rzeczywistości, jeśli sterownik, który wyprodukował dokument PrintCapabilities, korzysta z prywatnego rozszerzenia schematu wydruku, ten prywatnie zdefiniowany znacznik jest również przechowywany w ramach dokumentu non-public PrintCapabilities.

Przestroga

Klasy w System.Printing przestrzeni nazw nie są obsługiwane do użycia w usłudze systemu Windows lub ASP.NET aplikacji lub usługi. Próba użycia tych klas z jednego z tych typów aplikacji może powodować nieoczekiwane problemy, takie jak zmniejszona wydajność usługi i wyjątki czasu wykonywania.

Jeśli chcesz wydrukować z aplikacji Windows Forms, zobacz System.Drawing.Printing przestrzeń nazw.

Konstruktory

PrintCapabilities(Stream)

Inicjuje nowe wystąpienie PrintCapabilities klasy przy użyciu strumienia XML (zawierającego dokument PrintCapabilities), który określa możliwości drukarki i jest zgodny ze schematem drukowania XML.

Właściwości

CollationCapability

Pobiera kolekcję wartości identyfikujących możliwości sortowania drukarki.

DeviceFontSubstitutionCapability

Pobiera kolekcję wartości, które identyfikują, czy i jak drukarka może zastąpić czcionki oparte na urządzeniach dla czcionek opartych na komputerach.

DuplexingCapability

Pobiera kolekcję wartości, które określają, czy i jak drukarka może wykonywać drukowanie dwukierunkowe.

InputBinCapability

Pobiera kolekcję wartości, które wskazują, jakiego pojemnika wejściowego (zasobnika papieru) jest używany.

MaxCopyCount

Pobiera wartość wskazującą maksymalną liczbę kopii, które urządzenie może wydrukować w jednym zadaniu drukowania.

OrientedPageMediaHeight

Pobiera wartość wskazującą wysokość obszaru z możliwością obrazu na stronie, gdzie wysokość oznacza wymiar pionowy względem orientacji strony.

OrientedPageMediaWidth

Pobiera wartość wskazującą szerokość obszaru obrazu na stronie, gdzie szerokość oznacza wymiar poziomy względem orientacji strony.

OutputColorCapability

Pobiera kolekcję wartości, które określają sposoby drukowania zawartości drukarki przy użyciu kolorów i odcieni szarości.

OutputQualityCapability

Pobiera kolekcję wartości wskazujących typy jakości danych wyjściowych, które obsługuje drukarka.

PageBorderlessCapability

Pobiera kolekcję wartości wskazujących, czy drukarka może drukować do krawędzi nośnika.

PageImageableArea

Pobiera obiekt reprezentujący obszar strony, z którego może korzystać drukarka.

PageMediaSizeCapability

Pobiera kolekcję PageMediaSize obiektów identyfikujących rozmiary papieru i nośnika obsługiwane przez drukarkę.

PageMediaTypeCapability

Pobiera kolekcję wartości, które identyfikują typy papieru i inne nośniki obsługiwane przez drukarkę.

PageOrderCapability

Pobiera kolekcję wartości, które wskazują, czy drukarka może drukować dokumenty wielostronicowe z przodu do tyłu, z tyłu do przodu lub na oba sposoby.

PageOrientationCapability

Pobiera kolekcję wartości identyfikujących typy orientacji strony obsługiwanej przez drukarkę.

PageResolutionCapability

Pobiera kolekcję PageResolution obiektów identyfikujących poziomy rozdzielczości strony obsługiwanej przez drukarkę.

PageScalingFactorRange

Pobiera maksymalną i minimalną wartość procentową, za pomocą której drukarka może powiększyć lub zmniejszyć obraz wydruku na stronie.

PagesPerSheetCapability

Pobiera kolekcję liczb całkowitych, z których każda identyfikuje liczbę stron, które użytkownik może wybrać do wydrukowania po jednej stronie arkusza papieru.

PagesPerSheetDirectionCapability

Pobiera kolekcję wartości, które identyfikują, jakie wzorce obsługuje drukarka do prezentowania wielu stron po jednej stronie arkusza papieru.

PhotoPrintingIntentCapability

Pobiera kolekcję wartości identyfikujących opcje jakości obsługiwane przez drukarkę do drukowania zdjęć.

StaplingCapability

Pobiera kolekcję wartości identyfikujących typy automatycznego zszywania obsługiwanego przez drukarkę.

TrueTypeFontModeCapability

Pobiera kolekcję wartości identyfikujących metody obsługiwane przez drukarkę do obsługi czcionek TrueType.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy