PrintCapabilities Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) |