Condividi tramite


PrintCapabilities Classe

Definizione

Definisce le funzionalità di una stampante.

public ref class PrintCapabilities sealed
public sealed class PrintCapabilities
type PrintCapabilities = class
Public NotInheritable Class PrintCapabilities
Ereditarietà
PrintCapabilities

Esempio

Nell'esempio seguente viene illustrato come determinare le funzionalità di una stampante specifica e come configurare un processo di stampa per sfruttarli.

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

Commenti

Un PrintCapabilities oggetto è una rappresentazione facile da usare di un determinato tipo di documento XML denominato documento PrintCapabilities. Quest'ultimo è uno snapshot di tutte le funzionalità di una stampante e delle relative impostazioni correnti. Ad esempio, se la stampante supporta la stampa a colori, il documento avrà un <PageOutputColor … > elemento che imposta la modalità di gestione dell'output dei colori. L'elemento è, a sua volta, rappresentato dalla OutputColorCapability proprietà dell'oggetto PrintCapabilities . Se la stampante non supporta il colore, nel documento non è presente alcun <PageOutputColor … > elemento e il valore della OutputColorCapability proprietà è null. Il documento PrintCapabilities deve essere conforme allo schema di stampa.

La PrintCapabilities classe consente all'applicazione di ottenere le funzionalità di una stampante senza dover eseguire alcuna lettura diretta di oggetti XML Stream .

Tutte le caratteristiche più popolari delle stampanti di file e foto, sia per casa che per le aziende, sono incapsulate dalla PrintCapabilities classe . Ma lo schema di stampa definisce molte più, meno comuni, caratteristiche e può essere esteso per gestire le funzionalità dei dispositivi di stampa speciali. Pertanto, anche se le PrintTicket classi e PrintCapabilities non possono essere ereditate, è possibile estendere lo schema di stampa per riconoscere le funzionalità del dispositivo di stampa non incluse nelle PrintTicket classi o PrintCapabilities .

Nota Quando l'oggetto PrintCapabilities viene creato con il costruttore che accetta un parametro PrintCapabilities (come Streamparametro ), l'intero documento viene archiviato in un campo non pubblico nell'oggetto, inclusi gli elementi XML al suo interno che esprimono caratteristiche meno comuni che non sono rappresentate da alcuna delle proprietà pubbliche della PrintCapabilities classe. Infatti, se il driver che ha prodotto il documento PrintCapabilities utilizza un'estensione privata dello schema di stampa, tale markup definito privatamente viene archiviato anche come parte del documento PrintCapabilities non pubblico.

Attenzione

Le classi all'interno dello spazio dei System.Printing nomi non sono supportate per l'uso all'interno di un servizio Windows o di ASP.NET'applicazione o servizio. Il tentativo di usare queste classi all'interno di uno di questi tipi di applicazione può generare problemi imprevisti, ad esempio le prestazioni del servizio ridotte e le eccezioni di runtime.

Se si desidera stampare da un'applicazione Windows Form, vedere lo spazio dei nomi System.Drawing.Printing.

Costruttori

PrintCapabilities(Stream)

Inizializza una nuova istanza della classe PrintCapabilities tramite un flusso XML (contenente un documento PrintCapabilities) che specifica le funzionalità della stampante ed è conforme allo schema di stampa XML.

Proprietà

CollationCapability

Ottiene un insieme di valori che identificano le funzionalità di fascicolatura di una stampante.

DeviceFontSubstitutionCapability

Ottiene o imposta un insieme di valori che determinano se la stampante è in grado di sostituire i tipi di carattere basati su computer con i tipi di carattere basati su dispositivo e la modalità supportata per tale funzionalità.

DuplexingCapability

Ottiene un insieme di valori che determinano se la stampante è in grado di eseguire la stampa fronte retro e la modalità supportata per tale funzionalità.

InputBinCapability

Ottiene un insieme di valori che indicano il cassetto di alimentazione (della carta) utilizzato.

MaxCopyCount

Ottiene un valore che indica il numero massimo di copie che il dispositivo è in grado di stampare in un singolo processo di stampa.

OrientedPageMediaHeight

Ottiene un valore che indica l'altezza dell'area stampabile su una pagina, dove per altezza si intende la dimensione verticale rispetto all'orientamento della pagina.

OrientedPageMediaWidth

Ottiene un valore che indica la larghezza dell'area stampabile su una pagina, dove per larghezza si intende la dimensione orizzontale rispetto all'orientamento della pagina.

OutputColorCapability

Ottiene un insieme di valori che specificano le modalità supportate da una stampante per la stampa di contenuti a colori e gradazioni di grigio.

OutputQualityCapability

Ottiene un insieme di valori che indicano i tipi di qualità dell'output supportati dalla stampante.

PageBorderlessCapability

Ottiene un insieme di valori che indicano se il dispositivo è in grado di stampare fino ai bordi del supporto.

PageImageableArea

Ottiene un oggetto che rappresenta l'area di una pagina che la stampante è in grado di utilizzare.

PageMediaSizeCapability

Ottiene un insieme di oggetti PageMediaSize che identificano la carta e le dimensioni dei supporti utilizzati dalla stampante.

PageMediaTypeCapability

Ottiene un insieme di valori che identificano i tipi di carta e altri supporti utilizzati dalla stampante.

PageOrderCapability

Ottiene un insieme di valori che indicano se il dispositivo è in grado di stampare documenti di più pagine dalla prima all'ultima pagina, dall'ultima alla prima o in entrambi i modi.

PageOrientationCapability

Ottiene un insieme di valori che identificano i tipi di orientamento della pagina supportati dalla stampante.

PageResolutionCapability

Ottiene un insieme di oggetti PageResolution che identificano i livelli di risoluzione della pagina supportati dalla stampante.

PageScalingFactorRange

Ottiene i valori percentuali massimi e minimi di ingrandimento e riduzione dell'immagine stampata su una pagina.

PagesPerSheetCapability

Ottiene un insieme di numeri interi, ognuno dei quali identifica il numero di pagine che l'utente può scegliere di stampare su un solo lato di un foglio di carta.

PagesPerSheetDirectionCapability

Ottiene un insieme di valori che identificano i modelli supportati dalla stampante per la presentazione di più pagine su un solo lato di un foglio di carta.

PhotoPrintingIntentCapability

Ottiene un insieme di valori che identificano le opzioni di qualità supportate per la stampa di fotografie.

StaplingCapability

Ottiene un insieme di valori che identificano i tipi di graffatura automatica supportati dalla stampante.

TrueTypeFontModeCapability

Ottiene un insieme di valori che identificano i metodi supportati dalla stampante per la gestione di caratteri TrueType.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a