Compartir a través de


PrintTicket Clase

Definición

Define la configuración de un trabajo de impresión.

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
Herencia
PrintTicket
Implementaciones

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 PrintTicket objeto es una representación fácil de trabajar con un determinado tipo de documento XML denominado documento PrintTicket. Este último es un conjunto de instrucciones que indican a una impresora cómo establecer sus diversas características (como dúplex, intercalación y asociación). Por ejemplo, para indicar a la impresora que active sus trabajos de impresión de grapas y grapas en la esquina superior izquierda, el documento tendría un <JobStapleAllDocuments … > elemento que especifica StapleTopLeft. A su vez, el elemento se representa mediante la Stapling propiedad del PrintTicket objeto . El documento PrintTicket debe cumplir el esquema de impresión.

La PrintTicket clase permite a la aplicación configurar las características de la impresora sin tener que participar en ninguna escritura directa de objetos XML Stream .

Todas las características más populares de las impresoras de archivos y fotos residenciales y empresariales están representadas por propiedades de PrintTicket la 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 especiales. Por lo tanto, aunque no se pueden heredar las PrintTicket clases y PrintCapabilities , puede extender 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 Para obtener más información, vea How to: Extend the Print Schema and Create New Print System Classes.

Nota Cuando el PrintTicket objeto se crea con el constructor que toma un documento PrintTicket (como Stream) 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 PrintTicket clase. De hecho, si el controlador que generó el documento PrintTicket usa una extensión privada del esquema de impresión, ese marcado definido de forma privada también se almacena como parte del documento PrintTicket 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 ni 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 una disminución del rendimiento del servicio y 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

PrintTicket()

Inicializa una nueva instancia de la clase PrintTicket.

PrintTicket(Stream)

Inicializa una nueva instancia de la clase PrintTicket mediante el uso de una secuencia XML (que contiene un documento PrintTicket) que cumple con el Esquema de impresión XML.

Propiedades

Collation

Obtiene o establece un valor que indica si la impresora intercala el resultado.

CopyCount

Obtiene o establece el número de copias del trabajo de impresión.

DeviceFontSubstitution

Obtiene o establece un valor que indica si la impresora sustituye las fuentes basadas en dispositivo por las fuentes basadas en el equipo en el trabajo de impresión.

Duplexing

Obtiene o establece un valor que indica qué tipo de impresión a dos caras, si hubiera, la impresora utiliza para el trabajo de impresión.

InputBin

Obtiene o establece un valor que indica qué bandeja de entrada (bandeja del papel) se va a utilizar.

OutputColor

Obtiene o establece un valor que indica cómo la impresora controla el contenido que tiene color o tonos de gris.

OutputQuality

Obtiene o establece un valor que indica la calidad del resultado del trabajo de impresión.

PageBorderless

Obtiene o establece un valor que indica si el dispositivo imprime el contenido hasta el borde del papel o si deja un margen alrededor del borde.

PageMediaSize

Obtiene o establece el tamaño de página del papel (u otro medio) que utiliza una impresora para un trabajo de impresión.

PageMediaType

Obtiene o establece un valor que indica qué tipo de papel o medio la impresora utilizará para el trabajo de impresión.

PageOrder

Obtiene o establece un valor que indica si la impresora imprime varias páginas en orden descendente o ascendente.

PageOrientation

Obtiene o establece un valor que indica la orientación del contenido de la página en la impresión.

PageResolution

Obtiene o establece el nivel de resolución de página que la impresora utiliza para un trabajo de impresión.

PageScalingFactor

Obtiene o establece el porcentaje en el que la impresora amplía o reduce la imagen de impresión de una página.

PagesPerSheet

Obtiene o establece el número de páginas que se imprimen en cada cara de una hoja de papel.

PagesPerSheetDirection

Obtiene o establece un valor que indica cómo la impresora organiza varias páginas que se imprimen por ambas caras.

PhotoPrintingIntent

Obtiene o establece un valor que indica, en términos cualitativos, el nivel de calidad que la impresora utiliza para imprimir una foto.

Stapling

Obtiene o establece un valor que indica si una impresora grapa varias páginas y dónde coloca las grapas.

TrueTypeFontMode

Obtiene o establece un valor que indica cómo la impresora administra el texto que utiliza fuentes TrueType.

Métodos

Clone()

Crea un clon modificable de este PrintTicket y hace copias en profundidad de los valores de este objeto.

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

Devuelve un objeto MemoryStream que representa los valores de propiedad de PrintTicket como una secuencia XML que se ajusta al Esquema de impresión.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
SaveTo(Stream)

Guarda la configuración de PrintTicket en un objeto Stream utilizando un formato XML que se ajusta al Esquema de impresión.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

PropertyChanged

Se produce cuando cambia alguna propiedad de PrintTicket.

Se aplica a