Criar um driver de impressora v4 básico
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.
Importante
A Microsoft anunciou o fim do suporte para drivers de impressora herdados v3 e v4.
Para mais informações, consulte Fim do plano de suporte para drivers de impressora de terceiros no Windows.
Aviso
Este tutorial do driver da impressora contém vários erros e não pode ser usado no momento.
Crie um driver de impressora v4 básico usando o assistente de desenvolvimento de driver no Microsoft Visual Studio 2019 para selecionar o conjunto mínimo de recursos para criar um driver de impressora funcional.
As instruções neste tópico se concentrarão nas etapas necessárias para a criação de um driver e não explicarão as muitas opções de driver de impressora disponíveis no assistente.
A intenção deste tópico é fornecer uma introdução ao processo envolvido no desenvolvimento de um driver de impressora no Visual Studio 2019.
Uma visão mais detalhada das opções do driver da impressora é fornecida em Explorando as opções do driver no assistente.
Pré-requisitos
Siga as diretrizes em Baixar o WDK (Windows Driver Kit) e verifique se você concluiu os seguintes itens:
Instale o Visual Studio 2019 com a carga de trabalho Desenvolvimento da área de trabalho com C++ e a versão correta do SDK do Windows 10.
Instale o WDK (Windows Driver Kit) para Windows 10, versão 2004.
Instale a extensão Kit do Driver do Windows (WDK) para o Visual Studio 2019.
Selecione os recursos para o driver básico
No Visual Studio, no menu principal, selecione Arquivo>Novo>Projeto.
Na janela Novo Projeto, na caixa de pesquisa superior direita, digite driver de impressora v4 e pressione Enter. Isso recuperará todos os modelos de driver cujos nomes contêm o texto de pesquisa.
No painel do meio, selecione Driver de impressora V4.
Digite um nome para o driver no campo Nome e selecione OK. Por exemplo, você poderia digitar MyV4PrintDriver.
No Assistente para Criar um Driver de Impressão v4, em Escolher o tipo de renderização do driver:, selecione Driver de impressão V4 com filtros de renderização personalizados (aceita somente XPS).
Deixe todas as outras opções com suas configurações padrão e selecione Avançar.
Na seção Informações de configuração do assistente, deixe todas as opções com suas configurações padrão e selecionet Avançar.
Na seção Informações de configuração (página 2) do assistente, deixe todas as opções com suas configurações padrão e selecionet Avançar.
O Microsoft Visual Studio usa as seleções anteriores para gerar os arquivos de projeto para MyV4PrintDriver.
Verifique os arquivos de driver gerados
Navegue até a pasta dos arquivos de driver gerados. Por exemplo, se você nomeou seu projeto MyV4PrintDriver, por padrão, os arquivos serão salvos no seguinte local: Meus Documentos > Visual Studio 2019 > Projetos > MyV4PrintDriver > MyV4PrintDriver.
Verifique se a pasta contém os seguintes arquivos:
Nome do arquivo Tipo de arquivo MyV4PrintDriver.gpd Arquivo de descrição da impressora MyV4PrintDriver.inf Arquivo de informações de configuração MyV4PrintDriver.vcxproj Arquivo de projeto C++ MyV4PrintDriver.vcxproj.filters Arquivo de filtros de projeto C++ MyV4PrintDriver-manifest.ini Arquivo de definições de configuração (o manifesto do driver de impressão) V4PrintDriver-Intellisense.js Arquivo JavaScript para Intellisense V4PrintDriver-Intellisense-Windows8.1.js Arquivo JavaScript para Intellisense
Observe na tabela anterior que um dos arquivos criados é um arquivo INF. Observe que o Visual Studio criou um arquivo INF esquelético que precisa ser concluído para que ele possa ser usado para instalar o driver.
Criar um PrinterDriverID exclusivo para o driver
No menu Ferramentas do Visual Studio, selecione Criar GUID.
Selecione a opção 4. Formato do Registro e selecione o botão Copiar.
No Visual Studio, no Gerenciador de Soluções, expanda o nó MyV4PrintDriver.
Selecione Arquivos de driver, na janela Propriedades, observe o valor do campo Identificador exclusivo. Substitua esse valor pelo GUID gerado usando Colar.
Preencha o arquivo INF
No projeto MyV4PrintDriver, deve haver uma entrada para Arquivos de Driver. Abra isso e o arquivo MyV4PrintDriver.inf deve ser listado. Abra este arquivo.
1. Atualize o aviso de direitos autorais
As 2 primeiras linhas do arquivo INF são o aviso de direitos autorais para o pacote de driver.
A linha 1 contém o ano e o nome da sua empresa. Substitua os caracteres AAAA pelo ano atual e substitua os caracteres <Nome do seu fabricante> pelo nome da sua empresa.
A linha 2 descreve o conteúdo do driver INF, incluindo o nome do fabricante e as informações do modelo do dispositivo. Substitua os caracteres <Nome do seu fabricante> pelo nome da sua empresa e substitua os caracteres de >Modelo da impressora< pelo nome do modelo da impressora suportada pelo driver.
Por exemplo, se o ano for 2021 e o nome da sua empresa for Fabrikam e o modelo do dispositivo de impressão for 1234, você digitará o seguinte:
; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver
2. Verifique se a seção [Versão] está correta
Encontre a linha que contém [Versão].
Verifique e certifique-se de ver esta linha:
ClassVer=4.0
Verifique e certifique-se de ver esta linha:
Signature="$WINDOWS NT$"
3. Configure a seção [SourceDisksFiles]
Localize a linha que contém [SourceDisksFiles].
Abaixo disso, digite as seguintes linhas:
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1
4. Configure a seção [DriverFiles]
Localize a linha que contém [DriverFiles].
Abaixo disso, digite as seguintes linhas:
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll
5. Configure a seção [Standard.NT$ARCH$]
Encontre a linha que contém [Standard.NT$ARCH$].
Esta seção faz referência à seção Install
do INF para cada modelo. Por exemplo, se o modelo da impressora for Fabrikam 1234, você digitará o seguinte:
"Fabrikam 1234"=DriverInstall, USBPRINT\\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\\Fabrikam1234
6. Adicione o PrinterDriverID ao arquivo INF
No Visual Studio, no Gerenciador de Soluções, expanda o nó MyV4PrintDriver.
Selecione Arquivos de driver, na janela Propriedades, observe o valor do campo Identificador exclusivo. Essa é a ID do driver (o GUID). Destaque e copie-a.
No arquivo INF, na seção [Standard.NT$ARCH$], digite a seguinte linha:
"Fabrikam 1234"=DriverInstall,
E, depois da vírgula, cole o GUID que você copiou na etapa anterior. A seção [Standard.NT$ARCH$] concluída deve ter a seguinte aparência:
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234
7. Configure a seção [Strings]
Encontre a linha que contém [Strings].
Abaixo disso, você encontrará a definição da cadeia de caracteres ManufacturerName. Substitua os caracteres <Nome do seu fabricante> pelo nome da sua empresa para fornecer um nome do fabricante para a impressora de destino e exclua o restante da linha que contém o ; TODO:
Por exemplo, se o nome da sua empresa for Fabrikam, você digitará o seguinte:
ManufacturerName="Fabrikam"
8. Salve o arquivo INF
Quando você preencher o arquivo INF, ele deverá ficar parecido com o seguinte:
; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver
[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=03/17/2014,1.0.0.0
PnpLockdown=1
[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$
[Standard.NT$ARCH$]
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234
[DriverInstall]
CopyFiles=DriverFiles
[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll
[DestinationDirs]
DefaultDestDir = 66000
[SourceDisksNames]
1 = %DiskName%,,,""
[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1
[Strings]
ManufacturerName="Fabrikam"
DiskName="MyV4PrintDriver Installation Disk"
Atualizar a lista de arquivos de driver
No Visual Studio, no Gerenciador de Soluções, expanda o nó MyV4PrinterDriver.
Selecione o arquivo MyV4PrintDriver.gpd e arraste-o para o nó Arquivos de Driver.
Faça o mesmo com MyV4PrintDriver-manifest.ini.
Adicionar o arquivo de configuração de pipeline ao pacote de driver
No Gerenciador de Soluções, mantenha selecionado (ou clique com o botão direito do mouse) no projeto MyV4PrintDriver, e selecione Propriedades.
Na janela Páginas de Propriedades do MyV4PrintDriver, expanda Propriedades de Configuração no painel esquerdo.
Expanda Instalação do driver e selecione Arquivos de pacote.
No painel direito, selecione e clique na linha <Editar...> nos arquivos listados.
Substitua o espaço reservado pelo caminho relativo do arquivo de configuração do pipeline, por exemplo,
../MyV4PrintDriver Render Filter/MyV4PrintDriverRenderFilter-PipelineConfig.xml
e clique em OK.
Adicionar uma referência ao filtro de renderização ao pacote de driver
No Visual Studio, no Gerenciador de Soluções, expanda o nó MyV4PrinterDriver.
Selecione e segure (ou clique com o botão direito do mouse) no nó Referências -> selecione Adicionar referência.
Marque a caixa de seleção Filtro de renderização MyV4PrintDriver, então selecione OK.
Configurar a solução de driver para depuração e implantação
No Gerenciador de Soluções, mantenha selecionado (ou clique com o botão direito do mouse) no projeto MyV4PrintDriver, e selecione Propriedades.
Na janela Páginas de Propriedades do MyV4PrintDriver, expanda Propriedades de Configuração no painel esquerdo.
Expanda Instalação do driver e selecione Implantação. Faça o seguinte no painel direito:
Verifique se o Nome do computador de destino está configurado. Caso contrário, selecione "..." e siga os prompts no assistente Configurar dispositivos para configurar um computador de destino remoto.
Marque a caixa Remover versões anteriores do driver antes da implantação.
Selecione Instalar/Reinstalar e Verificar e, em seguida, selecione Tarefa de instalação do pacote de driver de impressora padrão na caixa suspensa.
Digite o nome do driver no campo Argumentos opcionais (sem aspas ao redor do nome).
Selecione OK.
Configurar a assinatura de driver
No Gerenciador de Soluções, mantenha selecionado (ou clique com o botão direito do mouse) no projeto MyV4PrintDriver, e selecione Propriedades.
Na janela Páginas de Propriedades do MyV4PrintDriver, expanda Propriedades de Configuração no painel esquerdo.
Expanda Assinatura de Driver e selecione Geral.
No painel direito, confirme se o Modo de Assinatura está definido como Assinatura de Teste.
Selecione Certificado de Teste e, em seguida, selecione Criar Certificado de Teste... na caixa suspensa.
Selecione TimeStampServer e, em seguida, selecione Verisign na caixa suspensa.
Selecione OK.
Criar e implantar o driver
No Gerenciador de Soluções, selecione e segure (ou clique com o botão direito do mouse) Solução MyV4PrintDriver (2 projetos) e selecione Compilar Solução.
Quando o processo de compilação for concluído, o driver será instalado automaticamente. Certifique-se de que não haja erros na janela Saída.
Testar o driver
Crie uma fila de impressão usando plug-and-play ou o Assistente para Adicionar Impressora.
Para obter mais informações sobre arquivos INF para o driver de impressora v4, consulte INF do driver V4.
Além dos arquivos na tabela anterior, observe que uma pasta MyV4PrintDriver Render Filter foi criada. Esse é o modelo de projeto de filtro de renderização e fornece uma boa base para a criação de um filtro de renderização XPS e um arquivo de configuração de pipeline de filtro XPS. Para obter mais informações sobre filtros de renderização XPS, consulte Módulo de renderização XPSDrv.