Partilhar via


Especificação de manifesto MSIX para impressora virtual de suporte à 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 está planejando substituir drivers de impressão V3/V4 de terceiros. Para mais informações, consulte o Plano de fim de suporte para drivers de impressoras de terceiros no Windows.

A arquitetura de impressora virtual facilita a implementação de impressoras de software sem drivers de terceiros. Através desta arquitetura, ISVs (Independent Software Vendors) são capazes de implementar uma impressora de software como um aplicativo que implementa os recursos atualmente suportados por 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 de impressão Fornece orientações e exemplos para OEMs e IHVs de impressoras que estão implementando um aplicativo de suporte de impressão (PSA) para seus dispositivos.
Guia de design da API Print Support App v3 Fornece orientações e exemplos para OEMs e IHVs de impressoras que estão implementando um aplicativo de suporte de impressão (PSA) v3 para seus dispositivos.
Guia de design da API Print Support App v4 Fornece orientação e exemplos para OEMs de impressoras e IHVs que estão implementando um aplicativo de suporte de impressão v4 (PSA) para seus dispositivos.
Associação de apps de suporte de impressão Fornece orientações e exemplos para associar uma aplicação de suporte de impressão (PSA) a uma impressora.

Print Support App (PSA) é uma arquitetura que foi introduzida para ajudar IHVs a adicionar personalização a impressoras IPP sem o uso de drivers de terceiros. Para facilitar a transição para a impressora de software, todas as APIs fazem parte do namespace PrintSupportApp API e reutilizam alguns dos contratos PSA aplicáveis à arquitetura de impressora virtual.

O novo contrato de manifesto é semelhante ao contrato Windows.printSupportWorkflow, mas este contrato precisa de mais entradas, pois é usado para instalar uma impressora virtual.

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

Atributos de manifesto

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

  • Categoria - Windows.printSupportVirtualPrinterWorkflow novo contrato para aplicação que implementa Impressora Virtual

  • PrintSupportVirtualPrinter - Cada entrada especifica uma fila de impressão do Software Endpoint a ser instalada junto com o aplicativo. Cada entrada do PrintSupportVirtualPrinter pode ter os seguintes atributos:

    • PreferredInputFormat - Este atributo indica o formato PDL de entrada preferido para a impressora virtual. O Sistema de Impressão do Windows gera este 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 preferido 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 arquivos e a caixa de diálogo Salvar como é mostrada ao usuário quando um aplicativo começa a imprimir na Impressora Virtual. Os valores deste campo devem conter extensões de ficheiro de destino, como pdf/pwgr/ps etc. Esses valores são armazenados nos dados do controlador e são adicionados à caixa de diálogo 'Guardar como' como as extensões permitidas. Se uma Impressora Virtual não quiser um comportamento de impressão de ficheiros (isto inclui Impressoras Virtuais que armazenam dados de impressão na nuvem ou impressoras que enviam dados para uma aplicação como o OneNote), este campo não deve ser adicionado ao manifesto.

    • Formatos suportados - Este elemento pode ser usado Virtual Printer para especificar todos os formatos PDL que ele pode processar. Isso é usado para aplicações de impressão de passagem, como o Microsoft Edge, para identificar o formato suportado, como PDF, e passar diretamente um fluxo de PDF para a Impressora Virtual sem que sejam feitas alterações entre este e o sistema de impressão do Windows. Este campo pode ter SupportedFormat como os elementos filho.

      • SupportedFormat - Element especifica um formato PDL de passagem única e pode ter os seguintes atributos.

        • Tipo - Este atributo é usado para especificar o tipo MIME suportado pela Impressora Virtual

        • MaxVersion - Este 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 algum caractere estiver presente, o campo de versão será invalidado e ignorado.

  • PdcFile - Este atributo deve apontar para um arquivo de recurso dentro do pacote do aplicativo. O arquivo deve conter conteúdo no formato XML Print Device Capabilities, que é para definir os recursos da impressora e deve ser usado para definir quaisquer recursos/opções ou parâmetros personalizados. Este é 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. Este campo deve ser fornecido se o aplicativo quiser localizar preferências de impressão personalizadas. Este campo é opcional e a localização de recursos para preferências de impressão é tratada pelo sistema de impressão se este campo não estiver presente.

  • DisplayName - Especifica o nome da fila de 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 entre essas impressoras. Esta saída URI é fornecida por IppPrintDevice::PrinterUri API. Se o URI não for especificado, o Windows atribuirá um URI exclusivo arbitrário à impressora.

Amostra 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 plano de manutenção para drivers de impressora de terceiros no Windows

IppPrintDevice::PrinterUri