PrintCapabilities Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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) |