Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.
Para obter mais informações, consulte Guia de design do aplicativo de suporte de impressão v1 e v2.
Uma meta de design de alto nível para a arquitetura do driver v4 era fornecer suporte interno para a interface do usuário do aplicativo da Microsoft Store.
O paradigma de interface do usuário baseado em aplicativos que é empregado é um exemplo claro disso. Os aplicativos de dispositivo UWP fornecem aos usuários uma experiência em tela cheia que é suportada na interface do usuário do aplicativo da Microsoft Store. Os aplicativos de dispositivo UWP para impressão fornecem extensibilidade para preferências de impressão e notificações de impressora para impressoras que suportam o driver de impressão v4. Os aplicativos de dispositivo UWP para impressão também fornecem visibilidade para o dispositivo de impressão na nova tela inicial.
As aplicações de extensão de impressora suportam preferências de impressão e notificações de impressora quando os utilizadores executam aplicações existentes no ambiente de trabalho do Windows. Embora as interfaces do usuário para esses aplicativos sejam muito diferentes, com uma adaptada para toque e outra otimizada para usuários de mouse e teclado, a lógica de negócios e a conexão com drivers de impressão v4 ainda podem ser semelhantes, independentemente da interface do usuário.
O diagrama a seguir mostra uma arquitetura de alto nível dos aplicativos de dispositivo da Microsoft Store.
Como mostrado no diagrama anterior, a arquitetura baseada em modelo/visualização/controlador permite que os aplicativos compartilhem código na camada do modelo, escrito em C#.
Estendendo PrinterExtensionLibrary
O projeto PrinterExtensionLibrary que é fornecido nos vários exemplos pode ser estendido usando novas classes ou estendendo o conjunto de classes fornecido. Como a Microsoft faz atualizações periódicas no código de exemplo, recomendamos que os parceiros minimizem o número de alterações de código que fazem nos arquivos de origem fornecidos. Para parceiros que estão estendendo o conjunto de classes fornecido, recomendamos que você marque as classes existentes como "parciais" e adicione novas funções ou substituições em um arquivo de origem separado.
Partilha de binários compilados entre aplicações UWP e aplicações da área de trabalho
O projeto PrinterExtensionLibrary, disponibilizado no aplicativo de dispositivo da Microsoft Store e em exemplos de extensão de impressora, utiliza o mesmo código-fonte, mas pode ser útil criar o código de forma que seja portátil entre os projetos, sem a necessidade de ser criado separadamente para cada projeto. Para tornar o código para o projeto PrinterExtensionLibrary portátil, você precisa converter o projeto em uma biblioteca de classes portátil. Execute as etapas a seguir para fazer a conversão.
No Microsoft Visual Studio, clique em Arquivo >Novo>Projetoe, em seguida, procure «Portátil» na caixa Pesquisar Modelos Instalados.
Selecione Biblioteca de Classes Portátil Visual C# e, em seguida, forneça um nome para o projeto na caixa de texto Nome e clique em OK.
Copie o código-fonte do seu projeto PrinterExtensionLibrary existente para o novo projeto.
Clique com o botão direito do rato no seu projeto Portable Class Library e escolha Descarregar. Em seguida, abra o arquivo .csproj e adicione a seção a seguir ao seu arquivo, imediatamente antes da última tag no documento.
<ItemGroup> <COMReference Include="PrinterExtensionLib"> <Guid>{91CE54EE-C67C-4B46-A4FF-99416F27A8BF}</Guid> <VersionMajor>1</VersionMajor> <VersionMinor>0</VersionMinor> <Lcid>0</Lcid> <WrapperTool>tlbimp</WrapperTool> <Isolated>False</Isolated> <EmbedInteropTypes>True</EmbedInteropTypes> </COMReference> </ItemGroup>Se vires avisos como resultado de referências COM, adiciona o seguinte à tag <> PropertyGroup:
<ResolveComReferenceSilent>true</ResolveComReferenceSilent>
API para cenários de interface do usuário de impressão
Uma API foi desenvolvida como parte do modelo de driver de impressão v4 para suportar extensões de impressora e aplicativos de dispositivo UWP para impressão. De uma forma geral, o cenário de preferências de impressão utiliza PrintTicket, PrintCapabilities e as novas bolsas de propriedades para obter e armazenar todas as suas informações. As notificações da impressora são orientadas por um novo sistema de eventos baseado no esquema de comunicação bidirecional (Bidi), e esse novo sistema usa o protocolo AsyncUI entre cliente e servidor. A natureza centrada em dados dessa API significa que um aplicativo pode facilmente suportar muitos dispositivos.
As extensões de impressora precisam ser construídas de tal forma que possam degradar-se graciosamente se os dados solicitados não estiverem disponíveis. Por exemplo, se um recurso PrintCapabilities específico não estiver disponível ou se uma propriedade em um dos pacotes de propriedades estiver indisponível, isso não deve impedir que o restante do aplicativo funcione. Ao aceder a sacos de propriedades ou a propriedades específicas num saco de propriedades, a aplicação deve usar a sintaxe try-catch para garantir que quaisquer exceções geradas não causem falhas na aplicação. Para obter mais informações, consulte Printer Extension Interfaces.