PrintCapabilities Klass

Definition

Definierar funktionerna i en skrivare.

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

Exempel

I följande exempel visas hur du fastställer funktionerna för en viss skrivare och hur du konfigurerar ett utskriftsjobb för att dra nytta av dem.

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

Kommentarer

Ett PrintCapabilities objekt är en lätt att arbeta med representation av en viss typ av XML-dokument som kallas för ett PrintCapabilities-dokument. Det senare är en ögonblicksbild av alla en skrivares funktioner och deras aktuella inställningar. Om skrivaren till exempel stöder färgutskrift skulle dokumentet ha ett <PageOutputColor … > element som anger hur färgutdata ska hanteras. Elementet representeras i sin tur av OutputColorCapability objektets PrintCapabilities egenskap. Om skrivaren inte stöder färg finns det inget <PageOutputColor … > element i dokumentet och värdet för OutputColorCapability egenskapen är null. Dokumentet PrintCapabilities måste överensstämma med utskriftsschemat.

Klassen PrintCapabilities gör det möjligt för ditt program att hämta en skrivares funktioner utan att behöva ägna sig åt direkt läsning av XML-objekt Stream .

Alla de mest populära funktionerna i fil- och fotoskrivare, för både hem och företag, kapslas in av PrintCapabilities klassen. Men utskriftsschemat definierar många fler, mindre vanliga funktioner och kan utökas för att hantera funktioner i specialutskriftsenheter. Även om klasserna PrintTicket och PrintCapabilities inte kan ärvas kan du utöka utskriftsschemat så att utskriftsenhetens funktioner som inte redovisas i klasserna PrintTicket eller PrintCapabilities identifieras.

ObserveraPrintCapabilities När objektet skapas med konstruktorn som tar ett PrintCapabilities-dokument (som en Stream) parameter lagras hela dokumentet i ett icke-offentligt fält i objektet, inklusive XML-elementen i det som uttrycker mindre vanliga funktioner som inte representeras av någon av klassens offentliga egenskaper PrintCapabilities . Om drivrutinen som skapade PrintCapabilities-dokumentet använder en privat förlängning av utskriftsschemat lagras även den privatdefinierade markeringen som en del av dokumentet printcapabilities som inte är offentliga.

Caution

Klasser inom namnområdet System.Printing stöds inte för användning i en Windows-tjänst eller ASP.NET program eller tjänst. Om du försöker använda dessa klasser inifrån någon av dessa programtyper kan det uppstå oväntade problem, till exempel sämre tjänstprestanda och körningsfel.

Om du vill skriva ut från ett Windows Forms program läser du namnområdet System.Drawing.Printing.

Konstruktorer

Name Description
PrintCapabilities(Stream)

Initierar en ny instans av PrintCapabilities klassen med hjälp av en XML-ström (som innehåller ett PrintCapabilities-dokument) som anger skrivarfunktioner och uppfyller XML-utskriftsschemat.

Egenskaper

Name Description
CollationCapability

Hämtar en samling värden som identifierar sorteringsfunktionerna för en skrivare.

DeviceFontSubstitutionCapability

Hämtar en samling värden som identifierar om och hur en skrivare kan ersätta enhetsbaserade teckensnitt med datorbaserade teckensnitt.

DuplexingCapability

Hämtar en samling värden som identifierar om och hur en skrivare kan utföra dubbelsidig utskrift.

InputBinCapability

Hämtar en samling värden som anger vilken indatafack (pappersfack) som används.

MaxCopyCount

Hämtar ett värde som anger det maximala antalet kopior som enheten kan skriva ut i ett enda utskriftsjobb.

OrientedPageMediaHeight

Hämtar ett värde som anger höjden på det bildbara området på en sida, där höjd innebär den lodräta dimensionen i förhållande till sidans orientering.

OrientedPageMediaWidth

Hämtar ett värde som anger bredden på det bildbara området på en sida, där bredden innebär den vågräta dimensionen i förhållande till sidans orientering.

OutputColorCapability

Hämtar en samling värden som anger hur en skrivare kan skriva ut innehåll med färg och nyanser av grått.

OutputQualityCapability

Hämtar en samling värden som anger vilka typer av utdatakvalitet som skrivaren stöder.

PageBorderlessCapability

Hämtar en samling värden som anger om skrivaren kan skriva ut upp till mediets kant.

PageImageableArea

Hämtar ett objekt som representerar området på en sida som skrivaren kan använda.

PageMediaSizeCapability

Hämtar en samling PageMediaSize objekt som identifierar pappers- och mediestorlekarna som en skrivare stöder.

PageMediaTypeCapability

Hämtar en samling värden som identifierar vilka typer av papper och andra medier som en skrivare stöder.

PageOrderCapability

Hämtar en samling värden som anger om en skrivare kan skriva ut dokument med flera sidor framifrån och tillbaka, framifrån och fram eller åt båda hållen.

PageOrientationCapability

Hämtar en samling värden som identifierar vilka typer av sidorientering en skrivare stöder.

PageResolutionCapability

Hämtar en samling PageResolution objekt som identifierar vilka nivåer av sidupplösning som skrivaren stöder.

PageScalingFactorRange

Hämtar maximala och minsta procentandelar med vilka en skrivare kan förstora eller minska utskriftsbilden på en sida.

PagesPerSheetCapability

Hämtar en samling heltal som var och en identifierar antalet sidor som en användare kan välja att skriva ut på en enda sida av ett pappersark.

PagesPerSheetDirectionCapability

Hämtar en samling värden som identifierar vilka mönster en skrivare stöder för att presentera flera sidor på en enda sida av ett pappersark.

PhotoPrintingIntentCapability

Hämtar en samling värden som identifierar de kvalitetsalternativ som skrivaren stöder för utskrift av fotografier.

StaplingCapability

Hämtar en samling värden som identifierar de typer av automatisk häftning som en skrivare stöder.

TrueTypeFontModeCapability

Hämtar en samling värden som identifierar de metoder som en skrivare stöder för hantering av TrueType-teckensnitt.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för