Compartilhar via


PrintTicket Classe

Definição

Define as configurações de um trabalho de impressão.

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
Herança
PrintTicket
Implementações

Exemplos

O exemplo a seguir mostra como determinar os recursos de uma impressora específica e como configurar um trabalho de impressão para tirar proveito deles.

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

Comentários

Um PrintTicket objeto é uma representação fácil de trabalhar com um determinado tipo de documento XML chamado de documento PrintTicket. Este último é um conjunto de instruções que informa a uma impressora como definir seus vários recursos (como duplexing, agrupamento e stapling). Por exemplo, para instruir a impressora a ativar seu grampeador e grampear trabalhos de impressão no canto superior esquerdo, o documento teria um <JobStapleAllDocuments … > elemento que especifica StapleTopLeft. O elemento é, por sua vez, representado pela Stapling propriedade do PrintTicket objeto . O documento PrintTicket deve estar em conformidade com o Esquema de Impressão.

A PrintTicket classe permite que seu aplicativo configure os recursos da impressora sem precisar se envolver em nenhuma gravação direta de objetos XML Stream .

Todos os recursos mais populares de impressoras de arquivos domésticos e comerciais e fotos são representados por propriedades da PrintTicket classe . Mas o Esquema de Impressão define muitos recursos mais, menos comuns e pode ser estendido para lidar com recursos de dispositivos de impressão especializados. Portanto, embora as PrintTicket classes e PrintCapabilities não possam ser herdadas, você pode estender o Esquema de Impressão para reconhecer recursos de dispositivo de impressão que não são contabilizados nas PrintTicket classes ou PrintCapabilities . Para obter mais informações, consulte Como estender o esquema de impressão e criar novas classes do sistema de impressão.

Nota Quando o PrintTicket objeto é criado com o construtor que usa um documento PrintTicket (como um Streamparâmetro ), esse documento inteiro é armazenado em um campo não público no objeto , incluindo os elementos XML dentro dele que expressam recursos menos comuns que não são representados por nenhuma das propriedades públicas da PrintTicket classe. Na verdade, se o driver que produziu o documento PrintTicket estiver usando uma extensão privada do Esquema de Impressão, essa marcação definida privada também será armazenada como parte do documento PrintTicket não público.

Cuidado

Não há suporte para classes no System.Printing namespace para uso em um serviço Windows ou ASP.NET aplicativo ou serviço. Tentar usar essas classes de dentro de um desses tipos de aplicativo pode produzir problemas inesperados, como redução do desempenho do serviço e exceções em tempo de execução.

Se você quiser imprimir de um aplicativo do Windows Forms, consulte o System.Drawing.Printing namespace .

Construtores

PrintTicket()

Inicializa uma nova instância da classe PrintTicket.

PrintTicket(Stream)

Inicializa uma nova instância da classe PrintTicket usando um fluxo XML (que contém um documento PrintTicket) em conformidade com o Esquema de Impressão XML.

Propriedades

Collation

Obtém ou define um valor que indica se a impressora agrupa sua saída.

CopyCount

Obtém ou define o número de cópias do trabalho de impressão.

DeviceFontSubstitution

Obtém ou define um valor que indica se a impressora substitui fontes baseadas em dispositivo fontes para fontes baseadas em computador no trabalho de impressão.

Duplexing

Obtém ou define um valor que indica o tipo da impressão em frente e verse, se houver, que a impressora usa para o trabalho de impressão.

InputBin

Obtém ou define um valor que indica qual compartimento de entrada (bandeja de papel) deve ser usado.

OutputColor

Obtém ou define um valor que indica como a impressora trata conteúdos com cor ou tons de cinza.

OutputQuality

Obtém ou define um valor que indica a qualidade de saída para o trabalho de impressão.

PageBorderless

Obtém ou define um valor que indica se o dispositivo imprime o conteúdo até a borda da mídia ou deixa uma margem não impressa em torno da borda.

PageMediaSize

Obtém ou define o tamanho da página para o papel (ou outra mídia) que uma impressora uma para um trabalho de impressão.

PageMediaType

Obtém ou define um valor que indica que tipo de papel ou mídia a impressora usa para o trabalho de impressão.

PageOrder

Obtém ou define um valor que indica se a impressora imprime várias páginas de trás para frente ou da frente para trás.

PageOrientation

Obtém ou define um valor que indica como o conteúdo da página é orientado para impressão.

PageResolution

Obtém ou define o nível de resolução de página que a impressora usa para um trabalho de impressão.

PageScalingFactor

Obtém ou define o percentual pelo qual a impressora amplia ou reduz a imagem impressa em uma página.

PagesPerSheet

Obtém ou define o número de páginas que são impressas em cada lado impresso de uma folha de papel.

PagesPerSheetDirection

Obtém ou define um valor que indica como uma impressora organiza várias páginas que são impressão em cada lado de uma folha de papel.

PhotoPrintingIntent

Obtém ou define um valor que indica em termos qualitativos e o nível de qualidade que a impressora usa para imprimir uma fotografia.

Stapling

Obtém ou define um valor que indica se e quando uma impressora grampeia várias páginas.

TrueTypeFontMode

Obtém ou define um valor que indica como a impressora lida com o texto que usa fontes TrueType.

Métodos

Clone()

Cria um clone modificável desse PrintTicket, fazendo cópias em profundidade dos valores do objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetXmlStream()

Retorna um objeto MemoryStream que representa os valores de propriedade de um PrintTicket como um fluxo XML em conformidade com o Esquema de Impressão.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
SaveTo(Stream)

Salva as configurações de PrintTicket para um objeto Stream usando um formato XML em conformidade com o Esquema de Impressão.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

PropertyChanged

Ocorre quando qualquer propriedade do PrintTicket muda.

Aplica-se a