Compartilhar via


PrintCapabilities Classe

Definição

Define os recursos 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 documento PrintCapabilities. Este último é um instantâneo de todas as funcionalidades 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 o e PrintCapabilities as PrintTicket classes não possam ser herdados, você pode estender o Esquema de Impressão para reconhecer recursos de dispositivo de impressão que não são contabilizados nas classes ou PrintCapabilities nas PrintTicket classes.

Nota Quando o PrintCapabilities objeto é criado com o construtor que usa um parâmetro PrintCapabilities document (como Streamum ) , 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 privadamente também será armazenada como parte do documento PrintCapabilities não público.

Cuidado

Classes dentro do System.Printing namespace não têm suporte para uso em um serviço do Windows ou ASP.NET aplicativo ou serviço. A tentativa de 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

Nome Description
PrintCapabilities(Stream)

Inicializa uma nova instância da PrintCapabilities classe 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

Nome Description
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 impressão de dois lados.

InputBinCapability

Obtém uma coleção de valores que indicam qual caixa de entrada (bandeja de papel) é 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 imageável em uma página, em que a altura significa a dimensão vertical relativa à orientação da página.

OrientedPageMediaWidth

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

OutputColorCapability

Obtém uma coleção de valores que especificam as maneiras pelas quais 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 compatíveis com a 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 PageMediaSize objetos que identificam os tamanhos de papel e mídia que uma impressora dá suporte.

PageMediaTypeCapability

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

PageOrderCapability

Obtém uma coleção de valores que indicam se uma impressora é capaz de imprimir documentos de várias páginas de front-to-back, back-to-front ou ambas as maneiras.

PageOrientationCapability

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

PageResolutionCapability

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

PageScalingFactorRange

Obtém os percentuais máximo e mínimo 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 uma identificando o número de páginas que um usuário pode optar por imprimir em um único lado de uma folha de papel.

PagesPerSheetDirectionCapability

Obtém uma coleção de valores que identificam quais padrões uma impressora dá suporte 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 que a impressora dá suporte para impressão de fotografias.

StaplingCapability

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

TrueTypeFontModeCapability

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

Métodos

Nome Description
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 Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a