Arquitetura do driver da impressora
Importante
A plataforma de impressão moderna é o meio preferido do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) 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 Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.
Os trabalhos de impressão são criados por aplicativos por meio de chamadas para o Microsoft Win32 GDI ou, no Windows Vista, funções do Windows Presentation Foundation (WPF). As funções Win32 fazem spool de dados do aplicativo como registros EMF para reprodução posterior pelo processador de impressão EMF, ou podem renderizar imediatamente uma imagem imprimível para cada página do documento. As funções do WPF fazem spool de dados do aplicativo como um arquivo de spool XPS.
Antes do Windows Vista, os aplicativos comunicavam as configurações da impressora à impressora usando uma estrutura DEVMODEW. No Windows Vista, as tecnologias Print Ticket e Print Capabilities comunicam as configurações da impressora para que as configurações da impressora sejam mais compatíveis entre impressoras e aplicativos.
A renderização da imagem, seja executada imediatamente ou durante o processamento de impressão, é executada no driver de impressão:
Um driver de impressora baseado em GDI executa a renderização da imagem durante a reprodução de registros EMF do arquivo de spool e é controlado pelo mecanismo de renderização GDI. Durante a operação de renderização, o mecanismo de renderização GDI chama o driver de impressora Windows 2000 e posterior apropriado para obter assistência.
Drivers de impressão XPSDrv usam uma série de filtros de processamento para processar o conteúdo do arquivo de spool XPS para saída na impressora.
Drivers de impressora baseados em GDI Windows 2000 e posteriores devem:
Ajude a GDI a renderizar trabalhos de impressão, fornecendo recursos de desenho específicos da impressora que a GDI não pode suportar.
Envie o fluxo de dados da imagem renderizada para o spooler de impressão.
Forneça uma interface do usuário para os parâmetros de configuração modificáveis associados a impressoras e documentos de impressão, como quais bandejas de entrada e saída são selecionadas, o número de cópias, resolução e orientação da imagem e assim por diante.
Os drivers de impressora XPSDrv têm a mesma responsabilidade de interface do usuário que os drivers baseados em GDI e também são responsáveis por processar os dados do trabalho de impressão e enviar os dados para a impressora. No entanto, os drivers de impressora XPSDrv não precisam usar GDI para renderizar as imagens de página da impressora.
Drivers de impressora Windows 2000 e posteriores são compostos por um conjunto de componentes de driver de impressora que dividem as operações de desenho e interface do usuário de um driver em DLLs separadas. Os drivers de impressora XPSDrv também são compostos de componentes que dividem a configuração e as funções de desenho e renderização em objetos separados.
Esta seção destina-se a ajudá-lo a entender os diferentes tipos de drivers de impressora compatíveis com os sistemas operacionais Windows 2000 e posteriores, mas lembre-se também de que os três drivers de impressora a seguir são fornecidos com o sistema operacional:
Driver de impressora universal da Microsoft
Driver de impressora PostScript da Microsoft
Driver de plotadora da Microsoft
Esses três drivers suportam a maioria dos dispositivos de impressão que os usuários finais podem comprar hoje. Você precisará escrever um driver de impressora somente se o seu dispositivo de impressão não for compatível com o driver apropriado fornecido pela Microsoft. Você pode oferecer suporte à maioria das novas impressoras simplesmente adicionando um arquivo de dados da impressora a um dos drivers fornecidos pela Microsoft. Os dispositivos que podem exigir um novo driver incluem aqueles que contêm aceleradores de desenho de hardware controlados por sequências de comandos proprietárias.
Esta seção contém os tópicos a seguir, que descrevem a arquitetura de impressão do Windows.