PrintCapabilities Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define las capacidades de una impresora.
public ref class PrintCapabilities sealed
public sealed class PrintCapabilities
type PrintCapabilities = class
Public NotInheritable Class PrintCapabilities
- Herencia
-
PrintCapabilities
Ejemplos
En el ejemplo siguiente se muestra cómo determinar las funcionalidades de una impresora específica y cómo configurar un trabajo de impresión para aprovecharlas.
// ---------------------- 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()
Comentarios
Un PrintCapabilities objeto es una representación fácil de trabajar con un determinado tipo de documento XML denominado documento PrintCapabilities. Este último es una instantánea de todas las funcionalidades de una impresora y su configuración actual. Por ejemplo, si la impresora admite la impresión en color, el documento tendría un <PageOutputColor … >
elemento que establece cómo se controlará la salida de color. El elemento es, a su vez, representado por la OutputColorCapability propiedad del PrintCapabilities objeto . Si la impresora no admite el color, no hay ningún <PageOutputColor … >
elemento en el documento y el valor de la OutputColorCapability propiedad es null
. El documento PrintCapabilities debe cumplir el esquema de impresión.
La PrintCapabilities clase permite a la aplicación obtener las funcionalidades de una impresora sin tener que participar en ninguna lectura directa de objetos XML Stream .
Todas las características más populares de las impresoras de archivos y fotos, tanto para el hogar como para el negocio, están encapsuladas por la PrintCapabilities clase . Pero el esquema de impresión define muchas más, menos comunes, características y se puede ampliar para controlar las características de los dispositivos de impresión especializados. Por lo tanto, aunque las PrintTicket clases y PrintCapabilities no se pueden heredar, puede ampliar el esquema de impresión para reconocer las características del dispositivo de impresión que no se tienen en cuenta en las PrintTicket clases o PrintCapabilities .
Nota Cuando el PrintCapabilities objeto se crea con el constructor que toma un documento PrintCapabilities (como Streamun parámetro ), ese documento completo se almacena en un campo no público en el objeto , incluidos los elementos XML dentro de él que expresan características menos comunes que no están representadas por ninguna de las propiedades públicas de la PrintCapabilities clase. De hecho, si el controlador que generó el documento PrintCapabilities usa una extensión privada del esquema de impresión, ese marcado definido de forma privada también se almacena como parte del documento PrintCapabilities no público.
Precaución
Las clases dentro del System.Printing espacio de nombres no se admiten para su uso en un servicio de Windows o en una aplicación o servicio de ASP.NET. Intentar usar estas clases desde uno de estos tipos de aplicación puede producir problemas inesperados, como reducir el rendimiento del servicio y las excepciones en tiempo de ejecución.
Si desea imprimir desde una aplicación de Windows Forms, consulte el System.Drawing.Printing espacio de nombres .
Constructores
PrintCapabilities(Stream) |
Inicializa una nueva instancia de la clase PrintCapabilities mediante el uso de una secuencia XML (que contiene un documento PrintCapabilities) que especifica funciones de impresora y cumple con el Esquema de impresión XML. |
Propiedades
CollationCapability |
Obtiene una colección de valores que identifican las capacidades de intercalación de una impresora. |
DeviceFontSubstitutionCapability |
Obtiene una colección de valores que identifican si una impresora puede sustituir las fuentes basadas en dispositivo por las fuentes basadas en equipo y cómo hacerlo. |
DuplexingCapability |
Obtiene una colección de valores que identifican si una impresora puede imprimir a doble cara y cómo lo hace. |
InputBinCapability |
Obtiene una colección de valores que indican qué bandeja de entrada (bandeja del papel) se utiliza. |
MaxCopyCount |
Obtiene un valor que indica el número máximo de copias que el dispositivo puede imprimir en un solo trabajo de impresión. |
OrientedPageMediaHeight |
Obtiene un valor que indica el alto del área de impresión de una página, donde el alto significa la dimensión vertical relativa a la orientación de la página. |
OrientedPageMediaWidth |
Obtiene un valor que indica el ancho del área de impresión de una página, donde el ancho significa la dimensión horizontal relativa a la orientación de la página. |
OutputColorCapability |
Obtiene una colección de valores que especifican las maneras en las que una impresora puede imprimir el contenido con color y tonos de gris. |
OutputQualityCapability |
Obtiene una colección de valores que indica los tipos de calidad de impresión que admite la impresora. |
PageBorderlessCapability |
Obtiene una colección de valores que indican si la impresora puede imprimir hasta el borde del soporte de impresión. |
PageImageableArea |
Obtiene un objeto que representa el área de una página que la impresora puede utilizar. |
PageMediaSizeCapability |
Obtiene una colección de objetos PageMediaSize que identifican los tamaños del papel y de los soportes que una impresora admite. |
PageMediaTypeCapability |
Obtiene una colección de valores que identifican qué tipos de papel y otro soporte admite una impresora. |
PageOrderCapability |
Obtiene una colección de valores que indican si una impresora puede imprimir los documentos de varias páginas en orden ascendente, descendente o ambos. |
PageOrientationCapability |
Obtiene una colección de valores que identifican qué tipos de orientación de página admite una impresora. |
PageResolutionCapability |
Obtiene una colección de objetos PageResolution que identifican qué niveles de resolución de página admite la impresora. |
PageScalingFactorRange |
Obtiene los porcentajes máximo y mínimo en los que una impresora puede ampliar o reducir la imagen de impresión de una página. |
PagesPerSheetCapability |
Obtiene una colección de enteros, donde cada uno identifica el número de páginas que un usuario elige imprimir en una sola cara de una hoja de papel. |
PagesPerSheetDirectionCapability |
Obtiene una colección de valores que identifican qué modelos admite una impresora para presentar varias páginas en una sola cara de una hoja de papel. |
PhotoPrintingIntentCapability |
Obtiene una colección de valores que identifican las opciones de calidad que admite la impresora para imprimir fotografías. |
StaplingCapability |
Obtiene una colección de valores que identifican los tipos de grapado automático que admite una impresora. |
TrueTypeFontModeCapability |
Obtiene una colección de valores que identifican los métodos que una impresora admite para controlar las fuentes TrueType. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |