Compartir vía


PrintCapabilities Clase

Definición

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)

Se aplica a