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.
O arquivo de configuração do pipeline de filtro é um arquivo XML que define o seguinte:
Ordem dos filtros na tubulação. Essa ordem é definida pela ordenação dos elementos XML no arquivo de configuração do pipeline de filtro.
Interfaces de filtro. Essas interfaces são definidas por atributos XML no arquivo de configuração do pipeline de filtro.
Formatos de entrada e saída para cada filtro. Esses formatos são definidos por elementos XML no arquivo de configuração do pipeline de filtro.
O exemplo de código a seguir mostra um arquivo de configuração de pipeline de filtro típico:
<Filters>
<Filter dll="XDWMark.dll"
clsid="{D647D658-BEF6-415f-AFAC-070D64074C5D}"
name="Watermark filter">
<Input guid="{b8cf8530-5562-47c4-ab67-b1f69ecf961e}" comment="IID_IXpsDocumentProvider"/>
<Output guid="{4368d8a2-4181-4a9f-b295-3d9a38bb9ba0}" comment="IID_IXpsDocumentConsumer"/>
</Filter>
<Filter dll="XDScale.dll"
clsid="{B9B52406-92D3-4721-86E6-3CF78F6D5FC5}"
name="Page Scaling filter">
<Input guid="{4d47a67c-66cc-4430-850e-daf466fe5bc4}" comment="IID_IPrintReadStream"/>
<Output guid="{65bb7f1b-371e-4571-8ac7-912f510c1a38}" comment="IID_IPrintWriteStream"/>
</Filter>
<Filter dll="XDColMan.dll"
clsid="{8E56FC37-0799-447e-A643-16F4FB18244C}"
name="Colour Management filter">
<Input guid="{b8cf8530-5562-47c4-ab67-b1f69ecf961e}" comment="IID_IXpsDocumentProvider"/>
<Output guid="{4368d8a2-4181-4a9f-b295-3d9a38bb9ba0}" comment="IID_IXpsDocumentConsumer"/>
</Filter>
<Filter dll="XDBook.dll"
clsid="{7DFC96C6-CEA2-46d8-B354-887C47B7986D}"
name="Booklet filter">
<Input guid="{b8cf8530-5562-47c4-ab67-b1f69ecf961e}" comment="IID_IXpsDocumentProvider"/>
<Output guid="{4368d8a2-4181-4a9f-b295-3d9a38bb9ba0}" comment="IID_IXpsDocumentConsumer"/>
</Filter>
<Filter dll="XDNUp.dll"
clsid="{1b5bee16-511c-440f-8017-2123f481091a}"
name="NUp filter">
<Input guid="{b8cf8530-5562-47c4-ab67-b1f69ecf961e}" comment="IID_IXpsDocumentProvider"/>
<Output guid="{4368d8a2-4181-4a9f-b295-3d9a38bb9ba0}" comment="IID_IXpsDocumentConsumer"/>
</Filter>
</Filters>
Palavras-chave privadas
Um módulo de configuração XPSDrv pode colocar palavras-chave privadas na entrada PrintTicket quando ele manipula um evento de documento de driver XPS durante uma chamada de função DrvDocumentEvent . Essas entradas do PrintTicket são lidas pelos filtros de processamento no pipeline do filtro de impressão enquanto os filtros estão lendo o PrintTicket.
Saco de propriedade do pipeline de filtro
Um módulo de configuração também pode usar o conjunto de propriedades do pipeline de filtro para armazenar dados ou passar informações para um pipeline de filtro. Para expor serviços de configuração usando o pacote de propriedades, o módulo de configuração deve exportar o método DrvPopulateFilterServices . Além disso, o arquivo de configuração do pipeline de filtro deve incluir o elemento <FilterServiceProvider> para cada serviço. O módulo provedor deve implementar e exportar a função DllCanUnloadNow . Normalmente, esses provedores publicam interfaces COM no pacote de propriedades. O fornecedor deve estar operacional enquanto estas interfaces estão em uso.
Outro elemento, <OptionalFilterServiceProvider>, permite que o gerenciador de pipeline continue o trabalho de impressão se a dll do provedor de serviços não estiver disponível. Os filtros individuais devem definir seu comportamento na ausência do provedor de serviços opcional. Caso contrário, se <FilterServiceProvider> for usado e a dll não puder ser carregada, o trabalho falhará. O <elemento OptionalFilterServiceProvider> é suportado no Windows 7 e posterior.
O exemplo de código a seguir mostra a função DrvPopulateFilterServices :
HRESULT
DrvPopulateFilterServices(
__in IPrintPipelinePropertyBag *pPropertyBag
);
Para obter mais informações sobre a função anterior, consulte DrvPopulateFilterServices.
O exemplo de código a seguir mostra a sintaxe XML para o <elemento FilterServiceProvider> no arquivo de configuração do pipeline de filtro:
<Filters>
<Filter ... />
<FilterServiceProvider dll = "providerA.dll"/>
<FilterServiceProvider dll = "providerB.dll"/>
</Filters>
Modo de intercalação para o dispositivo de saída
Intercalação refere-se a como as partes de recursos individuais de um documento XPS são transmitidas junto com as partes do documento FixedPage. Quando o pipeline de filtro cria o modelo de objeto de documento XPS para o primeiro filtro com interfaces de documento XPS no pipeline, a ordem de intercalação do arquivo de spool XPS não é mais seguida. No entanto, o último filtro na pipeline que utiliza a interface de documentos XPS pode especificar no arquivo de configuração do filtro uma ordem de intercalação para a pipeline utilizar quando serializa o conteúdo XPS. Selecionar a ordem de intercalação mais compatível com um dispositivo de saída ou um arquivo de saída pode melhorar o desempenho do processamento subsequente de documentos.
O exemplo de filtro seguinte é um trecho do ficheiro de configuração do filtro de exemplo anterior, que foi modificado para mostrar como utilizar a opção de entrelaçamento. Embora este exemplo mostre ambas as opções de intercalação para fins de ilustração, um arquivo de configuração de filtro real tem apenas um <elemento Interleaving> na definição de filtro:
<Filter dll="XDNUp.dll"
clsid="{1b5bee16-511c-440f-8017-2123f481091a}"
name="NUp filter">
<Input guid="{b8cf8530-5562-47c4-ab67-b1f69ecf961e}" comment="IID_IXpsDocumentProvider"/>
<Output guid="{4368d8a2-4181-4a9f-b295-3d9a38bb9ba0}" comment="IID_IXpsDocumentConsumer"/>
<Interleaving mode="ResourcesFirst"\>
<Interleaving mode="MarkupFirst"\>
</Filter>
O pipeline de filtro suporta as seguintes ordens de intercalação:
A ordem de intercalação ResourcesFirst processa cada recurso dependente antes da FixedPage que o utiliza. Essa ordem de intercalação é boa para drivers de impressora e para impressoras de consumo direto porque fornece os recursos de fonte e imagem que a impressora requer para renderizar o texto e o conteúdo da página imediatamente antes do início da renderização.
A ordem de intercalação MarkupFirst transmite o texto do documento e da marcação e as informações sobre como um recurso será usado antes de transmitir o recurso real. Essa ordem de intercalação é melhor para destinos de arquivos arquivados e para aplicativos que visualizam o documento on-line.
Saída Archive-Optimized XPS
Este recurso permite que os drivers de impressão solicitem que a saída XPS, otimizada para arquivamento, seja explicitamente gerada como um ficheiro de spool. No Windows 8, o Microsoft XPS Document Writer v4 (MXDW) produz essa saída XPS pronta para arquivamento por meio de um caminho de código que só está disponível para MXDW no Microsoft XPS Document Converter (MXDC). Assim, um driver de impressão pode gerar este XPS otimizado para arquivamento a partir do MXDC.
O exemplo de código a seguir mostra a sintaxe XML para usar o <elemento Archive> no arquivo de configuração de pipeline de filtro para habilitar esse recurso:
<Filters>
...
<Archive enabled="true"/>
</Filters>