Condividi tramite


PrintTicket Classe

Definizione

Definisce le impostazioni di un processo di stampa.

public ref class PrintTicket sealed : System::ComponentModel::INotifyPropertyChanged
public sealed class PrintTicket : System.ComponentModel.INotifyPropertyChanged
type PrintTicket = class
    interface INotifyPropertyChanged
Public NotInheritable Class PrintTicket
Implements INotifyPropertyChanged
Ereditarietà
PrintTicket
Implementazioni

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 PrintTicket oggetto è una rappresentazione facile da usare con una rappresentazione di un determinato tipo di documento XML denominato documento PrintTicket. Quest'ultimo è un set di istruzioni che raccontano a una stampante come impostare le varie funzionalità (ad esempio il duplex, la confronto e l'spling). Ad esempio, per indicare alla stampante di attivare i processi di stampa di base e di base nell'angolo superiore sinistro, il documento avrà un <JobStapleAllDocuments … > elemento che specifica StapleTopLeft. L'elemento è, a sua volta, rappresentato dalla Stapling proprietà dell'oggetto PrintTicket . Il documento PrintTicket deve essere conforme allo schema di stampa.

La PrintTicket classe consente all'applicazione di configurare le funzionalità della stampante senza dover eseguire alcuna scrittura diretta di oggetti XML Stream .

Tutte le funzionalità più popolari delle stampanti di file home e business sono rappresentate dalle proprietà della PrintTicket classe. Ma lo schema di stampa definisce molti più, meno comuni, funzionalità e può essere estesa per gestire le funzionalità dei dispositivi di stampa speciali. Tuttavia, 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 accountate nelle PrintTicket classi o PrintCapabilities . Per altre informazioni, vedere Procedura: estendere lo schema di stampa e creare nuove classi di sistema di stampa.

Nota Quando l'oggetto viene creato con il PrintTicket costruttore che accetta un documento PrintTicket (come Streamparametro ), l'intero documento viene archiviato in un campo non pubblico nell'oggetto, inclusi gli elementi XML all'interno che esprimono funzionalità meno comuni che non sono rappresentate da alcuna proprietà pubblica della PrintTicket classe. In effetti, se il driver che ha prodotto il documento PrintTicket usa un'estensione privata dello schema di stampa, tale markup definito privatamente viene archiviato anche come parte del documento PrintTicket non pubblico.

Attenzione

Le classi all'interno dello System.Printing spazio dei 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 applicazioni 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

PrintTicket()

Inizializza una nuova istanza della classe PrintTicket.

PrintTicket(Stream)

Inizializza una nuova istanza della classe PrintTicket tramite un flusso XML (che contiene un documento PrintTicket) conforme allo schema di stampa XML.

Proprietà

Collation

Ottiene o imposta un valore che indica se la stampante esegue la fascicolatura dell'output.

CopyCount

Ottiene o imposta il numero di copie per il processo di stampa.

DeviceFontSubstitution

Ottiene o imposta un valore che indica se la stampante sostituisce i tipi di carattere basati su computer con i tipi di carattere basati su dispositivo nel processo di stampa.

Duplexing

Ottiene o imposta un valore che indica il tipo di stampa fronte retro eventualmente utilizzato per il processo di stampa.

InputBin

Ottiene o imposta un valore che indica il cassetto di alimentazione (della carta) da utilizzare.

OutputColor

Ottiene o imposta un valore che indica la modalità di gestione di contenuti a colori o gradazioni di grigio.

OutputQuality

Ottiene o imposta un valore che indica la qualità di output per il processo di stampa.

PageBorderless

Ottiene o imposta un valore che indica se i contenuti vengono stampati sui bordi dei supporti oppure viene lasciato un margine non stampato attorno ai bordi.

PageMediaSize

Ottiene o imposta la dimensione della pagina per la carta (o altro supporto) utilizzata per un processo di stampa.

PageMediaType

Ottiene o imposta un valore che indica il tipo di carta o supporto utilizzato per il processo di stampa.

PageOrder

Ottiene o imposta un valore che indica se la stampa di più pagine viene eseguita dall'ultima alla prima o dalla prima all'ultima pagina.

PageOrientation

Ottiene o imposta un valore che indica l'orientamento del contenuto della pagina per la stampa.

PageResolution

Ottiene o imposta il livello di risoluzione della pagina utilizzato per un processo di stampa.

PageScalingFactor

Ottiene o imposta la percentuale di ingrandimento o riduzione dell'immagine stampata su una pagina.

PagesPerSheet

Ottiene o imposta il numero di pagine stampate su ciascun lato di un foglio di carta.

PagesPerSheetDirection

Ottiene o imposta un valore che indica la disposizione di più pagine stampate su ciascun lato di un foglio di carta.

PhotoPrintingIntent

Ottiene o imposta un valore che indica in termini qualitativi il livello di qualità utilizzato nella stampa di fotografie.

Stapling

Ottiene o imposta un valore che indica se la stampante esegue la graffatura di più pagine e in quale punto viene applicata la graffatura.

TrueTypeFontMode

Ottiene o imposta un valore che indica la modalità di gestione di un testo che utilizza caratteri TrueType.

Metodi

Clone()

Crea un clone modificabile di questo oggetto PrintTicket, eseguendo copie complete dei valori dell'oggetto.

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

Restituisce un oggetto MemoryStream che rappresenta i valori di proprietà di un oggetto PrintTicket come un flusso XML conforme allo schema di stampa.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SaveTo(Stream)

Salva le impostazioni di PrintTicket in un oggetto Stream tramite un formato XML conforme allo schema di stampa.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

PropertyChanged

Si verifica quando viene modificata una qualsiasi proprietà dell'oggetto PrintTicket.

Si applica a