PrintCapabilities Classe

Definição

Define as capacidades 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 seguinte mostra como determinar as capacidades de uma impressora específica e como configurar um trabalho de impressão para tirar partido delas.

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

Observações

Um PrintCapabilities objeto é uma representação fácil de trabalhar de um determinado tipo de documento XML chamada documento PrintCapabilities. Esta última é um retrato de todas as capacidades de uma impressora e das suas definições atuais. Por exemplo, se a impressora suportar impressão a cores, então 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 suportar cor, então não <PageOutputColor … > há elemento no documento e o valor da OutputColorCapability propriedade é null. O documento PrintCapabilities deve estar em conformidade com o Esquema de Impressão.

A PrintCapabilities classe permite que a sua aplicação obtenha as capacidades de uma impressora sem ter de recorrer diretamente à leitura de objetos XML Stream .

Todas as funcionalidades mais populares das impressoras de ficheiros e fotografias, tanto para casa como para negócios, são resumidas pela PrintCapabilities classe. Mas o Esquema de Impressão define muitas mais, menos comuns, funcionalidades e pode ser estendido para lidar com características de dispositivos de impressão especializados. Assim, embora as PrintTicket classes and PrintCapabilities não possam ser herdadas, podes estender o Esquema de Impressão para reconhecer características do dispositivo de impressão que não estão contabilizadas nas PrintTicket classes ou.PrintCapabilities

Nota Quando o PrintCapabilities objeto é criado com o construtor que recebe um documento PrintCapabilities (como um Streamparâmetro ), todo esse documento é armazenado num campo não público do objeto, incluindo os elementos XML que expressam características menos comuns e que não são representadas por nenhuma das propriedades públicas da PrintCapabilities classe. De facto, se o driver que produziu o documento PrintCapabilities estiver a usar uma extensão privada do Print Schema, essa marcação definida privadamente também é armazenada como parte do documento não público PrintCapabilities.

Atenção

As classes dentro do espaço de nomes System.Printing não são suportadas para uso dentro de um serviço Windows ou ASP.NET aplicação ou serviço. Tentar usar estas classes dentro de um destes tipos de aplicação pode produzir problemas inesperados, como desempenho de serviço diminuído e exceções em tempo de execução.

Se quiseres imprimir a partir de uma aplicação Windows Forms, vê o espaço de nomes System.Drawing.Printing.

Construtores

Name Description
PrintCapabilities(Stream)

Inicializa uma nova instância da PrintCapabilities classe usando um fluxo XML (que contém um documento PrintCapabilities) que especifica as capacidades da impressora e cumpre o XML Print Schema.

Propriedades

Name Description
CollationCapability

Obtém uma coleção de valores que identificam as capacidades de colação de uma impressora.

DeviceFontSubstitutionCapability

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

DuplexingCapability

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

InputBinCapability

Recebe uma coleção de valores que indicam que caixa de entrada (bandeja de papel) é utilizada.

MaxCopyCount

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

OrientedPageMediaHeight

Recebe um valor que indica a altura da área imaginável numa página, onde 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 imaginável numa página, onde 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 formas como uma impressora pode imprimir conteúdo com cor e tons de cinzento.

OutputQualityCapability

Recebe uma coleção de valores que indicam os tipos de qualidade de saída que a impressora suporta.

PageBorderlessCapability

Recebe uma coleção de valores que indicam se a impressora pode imprimir até à borda do suporte.

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 suporte que uma impressora suporta.

PageMediaTypeCapability

Recebe uma coleção de valores que identificam que tipos de papel e outros suportes uma impressora suporta.

PageOrderCapability

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

PageOrientationCapability

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

PageResolutionCapability

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

PageScalingFactorRange

Obtém as percentagens máximas e mínimas pelas quais uma impressora pode ampliar ou reduzir a imagem de impressão numa página.

PagesPerSheetCapability

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

PagesPerSheetDirectionCapability

Obtém uma coleção de valores que identificam que padrões uma impressora suporta para apresentar várias páginas num ú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 suporta para imprimir fotografias.

StaplingCapability

Obtém uma coleção de valores que identificam os tipos de agrafamento automático que uma impressora suporta.

TrueTypeFontModeCapability

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

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a