Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Visão geral de impressão

 

Publicado: junho de 2016

Com Microsoft .NET Framework, os desenvolvedores de aplicativos usando Windows Presentation Foundation (WPF) tem um novo conjunto avançado de gerenciamento de sistema de impressão e imprimir APIs. Com Windows Vista, alguns desses aprimoramentos do sistema de impressão também estão disponíveis para os desenvolvedores criarem Windows Forms aplicativos e desenvolvedores usando código não gerenciado. O núcleo dessa nova funcionalidade é o novo XPS (XML Paper Specification) formato de arquivo e o XPS caminho de impressão.

Este tópico contém as seguintes seções.

XPS é um formato de documento eletrônico, um formato de arquivo de spool e uma linguagem de descrição de página. É um formato de documento aberto que usa XML, OPC (Open Packaging Conventions), e outros padrões da indústria para criar documentos de plataforma cruzada.XPS simplifica o processo pelo qual documentos digitais são criados, compartilhados, impressos, exibidos e arquivados. Para obter informações adicionais sobre XPS, consulte o XPS Web Site.

Várias técnicas para impressão XPS com base em conteúdo usando WPF são demonstradas no Como: programaticamente imprimir arquivos XPS. Talvez seja útil consultar esses exemplos durante a revisão do conteúdo contido neste tópico. (Os desenvolvedores de código não gerenciado devem consultar a Ajuda para o escape de impressora do Microsoft XPS Document Converter.Windows Forms os desenvolvedores devem usar o API no System.Drawing.Printing namespace que não dá suporte completo XPS caminho de impressão, mas oferece suporte a um caminho de impressão GDI para XPS híbrida. Consulte arquitetura de caminho de impressão abaixo.)

O XPS (XML Paper Specification) caminho de impressão é um novo Windows recurso que redefine como a impressão é tratada em Windows aplicativos. Porque XPS pode substituir uma linguagem de apresentação do documento (como RTF), um formato de spooler de impressão (como WMF) e uma linguagem de descrição de página (como PCL ou Postscript); o novo caminho de impressão mantém o XPS formato da publicação do aplicativo até o processamento final no dispositivo ou driver de impressão.

O XPS caminho de impressão é construído de XPS modelo de driver de impressora (XPSDrv), que oferece vários benefícios para os desenvolvedores como WYSIWYG ("what you see is what you get") impressão, suporte de cores aprimorado e aprimorado significativamente o desempenho de impressão. (Para obter mais informações sobre XPSDrv, consulte o Windows Driver Development Kit.)

A operação do spooler de impressão para XPS documentos é essencialmente o mesmo das versões anteriores do Windows. No entanto, ele foi aprimorado para dar suporte a XPS além do caminho de impressão GDI caminho de impressão. O novo caminho de impressão nativamente consome um XPS arquivo de spool. Enquanto drivers de impressora do modo de usuário desenvolvidos para versões anteriores do Windows continuarão a funcionar, um XPS o driver de impressora (XPSDrv) é necessária para usar o XPS caminho de impressão.

Os benefícios do XPS caminho de impressão são significativo e incluem:

  • WYSIWYG suporte a impressão

  • Suporte nativo de perfis de cor avançados, que inclui 32 bits por canal (bpc), CMYK, named-colors, n-inks, e suporte nativo a transparência e a gradientes.

  • Desempenho aprimorado de impressão para ambos .NET Framework e Win32 com base em aplicativos.

  • Padrão da indústria XPS formato.

Para cenários de impressão básicos, uma simples e intuitiva API está disponível com um único ponto de entrada de usuário interface, configuração e envio do trabalho. Para cenários avançados, um suporte adicional é adicionado para UI (interface do usuário) personalização (ou nenhuma Interface de Usuário todo), síncrono ou assíncrono impressão e recursos de impressão de lote. As duas opções fornecem suporte de impressão no modo de confiança total ou parcial.

XPS foi projetado tendo em mente sua extensibilidade. Usando o framework de extensibilidade, recursos e capacidades podem ser adicionadas para XPS de maneira modular. Recursos de extensibilidade incluem:

  • Esquema de impressão. O esquema público é atualizado regularmente e habilita extensão rápida dos recursos do dispositivo. (Consulte PrintTicket e PrintCapabilities abaixo.)

  • Pipeline extensível de filtragem. O XPS pipeline de filtro de (XPSDrv) do driver de impressora foi projetado para habilitar a impressão direta e escalável de XPS documentos. (Pesquisa "XPSDrv" no Windows Driver Development Kit.)

Quando ambos os Win32 e .NET Framework aplicativos oferecem suporte a XPS, Win32 e Windows Forms aplicativos usam um GDI para XPS conversão para criar XPS formatado conteúdo para o XPS (XPSDrv) do driver de impressora. Esses aplicativos não são obrigados a usar o XPS caminho de impressão e pode continuar a usar EMF (Metarquivo Avançado) com base em impressão. No entanto, a maioria dos XPS recursos e aprimoramentos só estão disponíveis para aplicativos que se destinam a XPS caminho de impressão. 

Para habilitar o uso de impressoras baseadas em XPSDrv por Win32 e Windows Forms aplicativos, o XPS o driver de impressora (XPSDrv) oferece suporte à conversão de GDI para XPS formato. O modelo XPSDrv também fornece um conversor de XPS para GDI formato para que Win32 aplicativos podem imprimir XPS documentos. Para WPF aplicativos, conversão de XPS para GDI formato é feito automaticamente pelo Write e WriteAsync métodos de XpsDocumentWriter classe sempre que a fila de impressão de destino da operação de gravação não tiver um driver XPSDrv. (Windows Forms aplicativos não é possível imprimir XPS documentos.)

A ilustração a seguir ilustra o subsistema de impressão e define as partes fornecidas por Microsoft, e as partes definidas por fornecedores de software e hardware.

O sistema de impressão XPS

WPF define uma básica e avançada API. Para os aplicativos que não exigem ampla personalização ou acesso para a conclusão de impressão XPS conjunto de recursos, o suporte básico de impressão está disponível. Suporte básico de impressão é exposto por meio de um controle de caixa de diálogo Imprimir requer configuração mínima e apresenta um familiar Interface de Usuário. Muitos XPS recursos estão disponíveis usando este modelo de impressão simplificado.

O System.Windows.Controls::PrintDialog controle fornece um único ponto de entrada para Interface de Usuário, configuração, e XPS envio de trabalho. Para obter informações sobre como criar uma instância e usar o controle, consulte Como: chamar um diálogo de impressão.

Para acessar o conjunto completo de XPS recursos de impressão avançados API deve ser usado. Vários relevantes API são descritas em mais detalhes abaixo. Para obter uma lista completa de XPS caminho de impressão APIs, consulte o System.Windows.Xps e System.Printing referências de namespace.

O PrintTicket e PrintCapabilities classes são a base dos avançados XPS recursos. Ambos os tipos de objetos são XML formatado estruturas de recursos orientados a impressão, como agrupamentos, impressão de dois lados, grampeamento, etc. Essas estruturas são definidas pelo esquema de impressão. Um PrintTicket instrui uma impressora sobre como processar um trabalho de impressão. O PrintCapabilities classe define os recursos de uma impressora. Consultando os recursos de uma impressora, um PrintTicket podem ser criados se tirar vantagem de uma impressora todos os recursos suportados. Da mesma forma, os recursos sem suporte podem ser evitados.

O exemplo a seguir demonstra como consultar o PrintCapabilities de uma impressora e criar um PrintTicket usando código.

// ---------------------- 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^ printCapabilites = printQueue->GetPrintCapabilities();

   // Modify PrintTicket
   if (printCapabilites->CollationCapability->Contains(Collation::Collated))
   {
      printTicket->Collation = Collation::Collated;
   }
   if (printCapabilites->DuplexingCapability->Contains(Duplexing::TwoSidedLongEdge))
   {
      printTicket->Duplexing = Duplexing::TwoSidedLongEdge;
   }
   if (printCapabilites->StaplingCapability->Contains(Stapling::StapleDualLeft))
   {
      printTicket->Stapling = Stapling::StapleDualLeft;
   }
   return printTicket;
};// end:GetPrintTicketFromPrinter()

O PrintServer classe representa um servidor de impressão de rede e o PrintQueue classe representa uma impressora e a fila de trabalho de saída associados a ele. Juntas, essas APIs permitem o gerenciamento avançado de trabalhos de impressão do servidor. Um PrintServer, ou uma de suas classes derivadas, é usado para gerenciar um PrintQueue. O AddJob método é usado para inserir um novo trabalho de impressão na fila.

O exemplo a seguir demonstra como criar um LocalPrintServer e acessar seu padrão PrintQueue por meio de código.

Nenhum exemplo de código está disponível no momento ou este idioma talvez não seja suportado.

Um XpsDocumentWriter, com seus diversos a Write e WriteAsync métodos, é usado para gravar XPS documentos para um PrintQueue. Por exemplo, o Write(FixedPage^, PrintTicket^) método é usado para saída de um XPS documento e PrintTicket sincronicamente. O WriteAsync(FixedDocument^, PrintTicket^) método é usado para saída de um XPS documento e PrintTicket assincronamente.

O exemplo a seguir demonstra como criar um XpsDocumentWriter usando código.

Nenhum exemplo de código está disponível no momento ou este idioma talvez não seja suportado.

O AddJob métodos também fornecem maneiras para imprimir. Consulte Como: programaticamente imprimir arquivos XPS. Para obter detalhes.

Enquanto WPF aplicativos oferecem suporte nativo a XPS caminho de impressão, Win32 e Windows Forms aplicativos também podem tirar proveito de alguns XPS recursos. O XPS o driver de impressora (XPSDrv) pode converter GDI com base em saída XPS formato. Para cenários avançados, há suporte para conversão personalizada de conteúdo usando o escape de impressora do Microsoft XPS Document Converter. Da mesma forma, WPF aplicativos também podem produzir saída para o GDI caminho de impressão chamando um da Write ou WriteAsync métodos o XpsDocumentWriter classe e designando uma impressora não-XpsDrv como o destino de fila de impressão.

Para aplicativos que não exigem XPS funcionalidade ou suporte, atual GDI caminho de impressão permanece inalterado.

O XPS caminho de impressão melhora a eficiência do spooler usando XPS como o formato de spool de impressão nativo ao imprimir um XPS -habilitado de impressora ou driver. O processo simplificado de enfileiramento elimina a necessidade de gerar um arquivo de spool intermediário, como um EMF arquivo de dados, antes que o documento é colocado no spool. Por meio de um arquivo de spool menor, o XPS caminho de impressão pode reduzir o tráfego de rede e melhorar o desempenho de impressão.

EMF é um formato fechado que representa a saída do aplicativo como uma série de chamadas de GDI Serviços de renderização. Ao contrário de EMF, o XPS formato de spool representa o documento real sem exigir mais interpretação quando enviado para um XPS-driver de impressora (XPSDrv). Os drivers podem operar diretamente nos dados no formato. Esse recurso elimina as conversões de espaço de dados e cores necessárias quando você usa EMF arquivos e GDI-com base em drivers de impressão.

Arquivo de spool é geralmente reduzidos quando você usa XPS documentos direcionados para um XPS o driver de impressora (XPSDrv) em comparação com seus EMF equivalentes; no entanto, há exceções:

  • Um gráfico vetorial que é muito complexo, multi-camadas ou escrito de forma ineficiente pode ser maior do que uma versão bitmap do mesmo elemento gráfico.

  • Para fins de exibição de tela, arquivos XPS incorporam fontes de dispositivo, bem como fontes computer-based; enquanto arquivos de spool GDI não incorporam fontes de dispositivo. Mas os dois tipos de fontes são subdivididas (veja abaixo) e drivers de impressora podem remover as fontes de dispositivo antes de transmitir o arquivo para a impressora.

Redução de tamanho do spool é executada através de vários mecanismos:

  • Subconjuntos de fontes. Somente os caracteres usados dentro do documento real são armazenados no XPS arquivo.

  • Suporte gráfico avançado. Suporte nativo a primitivas de transparência e gradiente evita rasterização de conteúdo no XPS documento.

  • Identificação de recursos comuns. Recursos que são usados várias vezes (como uma imagem que representa um logotipo corporativo) são tratados como recursos compartilhados e são carregados apenas uma vez.

  • Compactação ZIP. Todos os XPS documentos usam compactação ZIP.

Mostrar: