Compartilhar via


Especificação de manifesto MSIX para impressora virtual com suporte de impressão

Esse recurso permite a impressão em uma impressora virtual sem a necessidade de drivers de impressão V3/V4 herdados, pois o Windows planeja preterir drivers de impressão V3/V4 de terceiros. Para mais informações, consulte Fim do plano de suporte para drivers de impressora de terceiros no Windows.

A Arquitetura da Impressora Virtual facilita a implementação de impressoras de software sem drivers de terceiros. Por meio dessa arquitetura, os ISVs (Fornecedores Independentes de Software) podem implementar uma Impressora de Software como um aplicativo implementando os recursos atualmente compatíveis com drivers V3/V4 de terceiros.

Este artigo descreve como um aplicativo pode se registrar como uma Impressora de Software no manifesto.

Para obter mais informações, consulte os seguintes artigos:

Tópico Descrição
Guia de Design do Aplicativo de Suporte à Impressão Fornece diretrizes e exemplos para OEMs de impressora e IHVs que estão implementando um PSA (aplicativo de suporte à impressão) para seu dispositivo.
Guia de design dos aplicativos API v3 de suporte à impressão Fornece diretrizes e exemplos para OEMs de impressora e IHVs que estão implementando um PSA (Aplicativo de Suporte à Impressão) v3 para seu dispositivo.
Guia de design da API do Aplicativo de Suporte à Impressão v4 Fornece diretrizes e exemplos para OEMs de impressora e IHVs que estão implementando um PSA (Aplicativo de Suporte à Impressão) v4 para seu dispositivo.
Associação de aplicativos de suporte à impressão Fornece diretrizes e exemplos para associar um PSA (aplicativo de suporte à impressão) a uma impressora.

PSA (Aplicativo de Suporte à Impressão) é uma arquitetura que foi introduzida para ajudar os IHVs a adicionar personalização a impressoras IPP sem o uso de drivers de terceiros. Para facilitar a transição para a Impressora Software, todas as APIs fazem parte do namespace PrintSupportApp API e reutilizam alguns dos contratos PSA aplicáveis para a Arquitetura da Impressora Virtual.

O novo contrato de manifesto é semelhante ao contrato Windows.printSupportWorkflow, mas esse contrato precisa de mais entradas, pois é usado para instalar uma Impressora Virtual.

O novo DEH (manipulador de extensão de implantação do Windows) instala uma impressora virtual com base na declaração de manifesto e os Componentes de Impressão do Windows invocam o aplicativo quando o usuário imprime na impressora virtual instalada.

Atributos do manifesto

  • printSupport:Extension – Entrada de extensão para impressora virtual

  • Categoria - Windows.printSupportVirtualPrinterWorkflow novo contrato para aplicativo implementando Impressora Virtual.

  • PrintSupportVirtualPrinter – Cada entrada especifica uma fila de impressão de Ponto de Extremidade do software que será instalada junto com o aplicativo. Cada entrada PrintSupportVirtualPrinter pode ter os seguintes atributos:

    • PreferredInputFormat – esse atributo indica o formato PDL de entrada preferencial para a Impressora Virtual. O Sistema de Impressão do Windows gera esse formato antes de fornecer dados PDL à Impressora Virtual para todos os caminhos de impressão. O campo só pode ser um dos seguintes valores: application/oxps ou application/postscript. A instalação falhará se outros formatos forem especificados neste campo. Se o campo não for especificado, application/oxps será definido como o formato PDL preferencial para a Impressora Virtual instalada.

    • OutputFileTypes – quando esse atributo é especificado no manifesto appx, o Sistema de Impressão do Windows cria uma fila de impressora marcada como uma impressora de arquivo e a caixa de diálogo Salvar como é mostrada ao usuário quando um aplicativo começa a imprimir na Impressora Virtual. Os valores desse campo devem conter extensões de arquivo de destino, como pdf/pwgr/ps, etc. Esses valores são armazenados nos dados do driver e são adicionados à caixa de diálogo 'Salvar como' como extensões permitidas. Se uma Impressora Virtual não quiser comportamento de impressão de arquivo (isso inclui Impressoras Virtuais que armazenam dados de impressão na nuvem ou impressoras que enviam dados para um aplicativo como o OneNote), esse campo não deve ser adicionado ao manifesto.

    • Formatos com Suporte – Esse elemento pode ser usado pela Impressora Virtual para especificar todos os formatos PDL que ele pode processar. Isso é usado para aplicativos de impressão de passagem, como o Microsoft Edge, para identificar o formato com suporte, como PDF, e passar diretamente um fluxo de PDF para a Impressora Virtual sem que nenhuma alteração seja feita no meio pelo sistema de impressão do Windows. Esse campo pode ter SupportedFormat como os elementos filho.

      • SupportedFormat – O elemento especifica um único formato PDL de transmissão e pode ter os seguintes atributos.

        • Tipo - Esse atributo é usado para especificar o tipo MIME compatível com a Impressora Virtual

        • maxversion – esse atributo especifica a versão máxima desse formato PDL que a Impressora Virtual pode receber. O valor maxversion deve estar no formato MajorVersion.MinorVersion. O sistema de impressão do Windows falhará na instalação da impressora se estiver em qualquer outro formato. MajorVersion e MinorVersion só podem ser números. Se houver caracteres presentes, o campo de versão será invalidado e ignorado.

  • PdcFile – esse atributo deve apontar para um arquivo de recurso dentro do pacote de aplicativos. O arquivo deve conter conteúdo no formato XML de Funcionalidades de Dispositivo de Impressão, que é para definir os recursos da impressora e deve ser usado para definir quaisquer recursos/opções ou parâmetros personalizados. Esse é um campo obrigatório e a instalação da impressora falhará se o valor não estiver presente ou se o conteúdo do arquivo não estiver no formato PDC válido.

  • PdrFile – se fornecido, esse atributo deve apontar para um arquivo de recurso dentro do pacote do aplicativo. O arquivo deve conter recursos de dispositivo de impressão em um formato XML. Esse campo deverá ser fornecido se o aplicativo quiser localizar preferências de impressão personalizadas. Esse campo é opcional e a localização de recursos para preferências de impressão é tratada pelo sistema de impressão se esse campo não estiver presente.

  • DisplayName – especifica o nome da Fila da Impressora Virtual que será instalada. As restrições dessa cadeia de caracteres são as mesmas que a restrição que você tem para um nome de impressora do Windows.

  • PrinterUri – Especifica um URI exclusivo que pode ser usado por aplicativos PSA para identificar a impressora. Um único aplicativo de Impressora Virtual pode especificar vários pontos de extremidade de software, o que resulta em várias impressoras a serem instaladas. O campo PrinterUri pode ser usado para diferenciar essas impressoras. Essa saída de URI é fornecida a partir da API IppPrintDevice::PrinterUri. Se o URI não for especificado, o Windows atribuirá um URI exclusivo arbitrário à impressora.

Exemplo de manifesto

<Extensions> 
    <printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
        <PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME1" PrinterUri="contoso-psa:printer1" PreferredInputFormat="application/postscript" OutputFileTypes="ps;pdf" PdcFile="Config\PRINTER_PDC1.xml" PdrFile="Config\PRINTER_PDR1.xml">
            <SupportedFormats>
                <SupportedFormat Type="application/postscript" />
                <SupportedFormat Type="application/pdf" MaxVersion="1.7" />
            </SupportedFormats>
        </PrintSupportVirtualPrinter>
    </printsupport2:Extension>
    <printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
        <PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME2" PrinterUri ="contoso-psa:printer2" PreferredInputFormat="application/oxps" OutputFileTypes="pwgr;pdf" PdcFile="ms-appx:///PRINTER_PDC2.xml" PdrFile="ms-appx:///PRINTER_PDR2.xml">
            <SupportedFormats>
                <SupportedFormat Type="application/pdf" MaxVersion="1.7" />
            </SupportedFormats>
        </PrintSupportVirtualPrinter>
    </printsupport2:Extension>
    <printsupport:Extension Category="windows.printSupportExtension" EntryPoint="Tasks.PrintSupportExtensionBackGroundTask"/>
    <printsupport:Extension Category="windows.printSupportSettingsUI" EntryPoint="PrintSupportApp.App"/>
    <printsupport:Extension Category="windows.printSupportJobUI" EntryPoint="PrintSupportApp.App"/>
</Extensions>

Fim do programa de manutenção para drivers de impressora de terceiros no Windows

IppPrintDevice::PrinterUri