PrintCapabilities Classe

Definição

Define as funcionalidades de uma impressora.

public ref class PrintCapabilities sealed
public sealed class PrintCapabilities
type PrintCapabilities = class
Public NotInheritable Class PrintCapabilities
Herança
PrintCapabilities

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 PrintCapabilities objeto é uma representação fácil de trabalhar com um determinado tipo de documento XML chamado de documento PrintCapabilities. Este último é um instantâneo de todos os recursos de uma impressora e suas configurações atuais. Por exemplo, se a impressora der suporte à impressão de cores, o documento terá um <PageOutputColor … > elemento que define como a saída de cor será tratada. O elemento é, por sua vez, representado pela OutputColorCapability propriedade do PrintCapabilities objeto . Se a impressora não der suporte à cor, não haverá nenhum <PageOutputColor … > elemento no documento e o valor da OutputColorCapability propriedade será null. O documento PrintCapabilities deve estar em conformidade com o Esquema de Impressão.

A PrintCapabilities classe permite que seu aplicativo obtenha os recursos de uma impressora sem precisar se envolver em nenhuma leitura direta de objetos XML Stream .

Todos os recursos mais populares de impressoras de arquivos e fotos, tanto para casa quanto para empresas, são encapsulados pela PrintCapabilities 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 .

Nota Quando o PrintCapabilities objeto é criado com o construtor que usa um parâmetro PrintCapabilities (como um Stream), 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 PrintCapabilities classe. Na verdade, se o driver que produziu o documento PrintCapabilities estiver usando uma extensão privada do Esquema de Impressão, essa marcação definida privada também será armazenada como parte do documento PrintCapabilities 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 Windows Forms, consulte o System.Drawing.Printing namespace .

Construtores

PrintCapabilities(Stream)

Inicializa uma nova instância da classe PrintCapabilities usando um fluxo XML (que contém um documento PrintCapabilities) que especifica os recursos da impressora e está em conformidade com o Esquema de Impressão XML.

Propriedades

CollationCapability

Obtém uma coleção de valores que identificam os recursos de ordenação de uma impressora.

DeviceFontSubstitutionCapability

Obtém uma coleção de valores que identificam se e como uma impressora pode substituir fontes baseadas em dispositivo por fontes baseadas em computador.

DuplexingCapability

Obtém uma coleção de valores que identificam se e como uma impressora pode executar a impressão dos dois lados.

InputBinCapability

Obtém uma coleção de valores que indicam qual bandeja de entrada será usada.

MaxCopyCount

Obtém um valor que indica o número máximo de cópias que o dispositivo pode imprimir em um único trabalho de impressão.

OrientedPageMediaHeight

Obtém um valor que indica a altura da área de imagem em uma página, em que altura significa a dimensão vertical em relação à orientação da página.

OrientedPageMediaWidth

Obtém um valor que indica a largura da área de imagem em uma página, em que largura significa a dimensão horizontal em relação à orientação da página.

OutputColorCapability

Obtém uma coleção de valores que especificam as maneiras em que uma impressora pode imprimir conteúdo com cores e tons de cinza.

OutputQualityCapability

Obtém uma coleção de valores que indicam os tipos de qualidade de saída com suporte da impressora.

PageBorderlessCapability

Obtém uma coleção de valores que indicam se a impressora pode imprimir até a borda da mídia.

PageImageableArea

Obtém um objeto que representa a área de uma página que a impressora pode usar.

PageMediaSizeCapability

Obtém uma coleção de objetos PageMediaSize que identificam os tamanhos de papel e mídia com suporte de uma impressora.

PageMediaTypeCapability

Obtém uma coleção de valores que identificam os tipos de papel e outras mídias com suporte de uma impressora.

PageOrderCapability

Obtém uma coleção de valores que indicam se uma impressora é capaz de imprimir de documentos de várias páginas de frente para trás, trás para frente ou em ambas as direções.

PageOrientationCapability

Obtém uma coleção de valores que identificam os tipos de orientação de página com suporte de uma impressora.

PageResolutionCapability

Obtém uma coleção de objetos PageResolution que identificam quais níveis de resolução de página com suporte da impressora.

PageScalingFactorRange

Obtém os percentuais mínimo e máximo pelos quais uma impressora pode ampliar ou reduzir a imagem de impressão em uma página.

PagesPerSheetCapability

Obtém uma coleção de inteiros, cada um identificando o número de páginas que um usuário pode escolher imprimir em um único lado de uma folha de papel.

PagesPerSheetDirectionCapability

Obtém uma coleção de valores que identificam quais padrões com suporte de uma impressora para apresentar várias páginas em um único lado de uma folha de papel.

PhotoPrintingIntentCapability

Obtém uma coleção de valores que identificam as opções de qualidade com suporte da impressora para imprimir fotografias.

StaplingCapability

Obtém uma coleção de valores que identificam os tipos de grampeamento automático com suporte de uma impressora.

TrueTypeFontModeCapability

Obtém uma coleção de valores que identificam os métodos com suporte de uma impressora para lidar com as fontes TrueType.

Métodos

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

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a