Sdílet prostřednictvím


Konfigurační soubor potrubí filtru

Důležité

Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.

Další informace najdete v průvodci návrhem aplikace podpory tisku v1 a v2.

Konfigurační soubor kanálu filtru je soubor XML, který definuje následující:

  • Pořadí filtrů v kanálu Toto pořadí je definováno pořadím elementů XML v konfiguračním souboru kanálu filtru.

  • Rozhraní filtru. Tato rozhraní jsou definována atributy XML v konfiguračním souboru kanálu filtru.

  • Vstupní a výstupní formáty pro každý filtr Tyto formáty jsou definovány elementy XML v konfiguračním souboru kanálu filtru.

Následující příklad kódu ukazuje typický konfigurační soubor kanálu filtru:

<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>

Soukromá klíčová slova

Konfigurační modul XPSDrv může při zpracování události dokumentu ovladače XPS během volání funkce DrvDocumentEvent vložit soukromá klíčová slova do položky PrintTicket. Tyto položky PrintTicket se pak čtou filtry zpracování v tiskovém filtrovém kanálu, zatímco filtry čtou PrintTicket.

Filtr kanálu – taška vlastností

Konfigurační modul může také použít kolekci vlastností filtračního kanálu k ukládání dat nebo k předávání informací do filtračního kanálu. Pokud chcete zpřístupnit konfigurační služby pomocí tašky vlastností, musí modul konfigurace exportovat metodu DrvPopulateFilterServices . Kromě toho musí konfigurační soubor kanálu filtru obsahovat <element FilterServiceProvider> pro každou službu. Modul zprostředkovatele musí implementovat a exportovat funkci DllCanUnloadNow . Tito poskytovatelé obvykle publikují rozhraní MODELU COM v kontejneru vlastností. Zprostředkovatel musí zůstat aktivní, dokud se tato rozhraní používají.

Další prvek <OptionalFilterServiceProvider>, umožňuje správce kanálů pokračovat v tiskové úloze, pokud není knihovna DLL poskytovatele služeb k dispozici. Jednotlivé filtry musí definovat jejich chování v případě, že chybí volitelný poskytovatel služeb. V opačném případě, pokud <je použit FilterServiceProvider> a dll nelze načíst, úloha selže. OptionalFilterServiceProvider<> element je podporován v systému Windows 7 a novější.

Následující příklad kódu ukazuje funkci DrvPopulateFilterServices :

HRESULT
DrvPopulateFilterServices(
    __in IPrintPipelinePropertyBag  *pPropertyBag
    );

Další informace o předchozí funkci naleznete v tématu DrvPopulateFilterServices.

Následující příklad kódu ukazuje syntaxi XML pro <FilterServiceProvider> element v konfiguračním souboru kanálu filtru:

<Filters>
    <Filter ... />
    <FilterServiceProvider dll = "providerA.dll"/>
    <FilterServiceProvider dll = "providerB.dll"/>
</Filters>

Režim prokládání pro výstupní zařízení

Prokládání odkazuje na to, jak se jednotlivé části prostředků dokumentu XPS streamují spolu s částmi dokumentu FixedPage. Když filtrační kanál poprvé vytvoří model objektu dokumentu XPS s rozhraními dokumentů XPS v kanálu, pořadí prokládání souboru fondu XPS již nebude dodržováno. Poslední filtr v pipeline, který používá rozhraní dokumentu XPS, však může ve svém konfiguračním souboru specifikovat pořadí prokládání, které se má použít při serializaci obsahu XPS. Výběr pořadí prokládání, které je nejkomppatibilnější s výstupním zařízením nebo výstupním souborem, může zlepšit výkon následného zpracování dokumentů.

Následující příklad filtru je výňatek z předchozího ukázkového konfiguračního souboru filtru, který byl upraven tak, aby ukázal, jak použít možnost prokládání. I když tento příklad ukazuje obě možnosti prokládání pro účely ilustrace, skutečný konfigurační soubor filtru má v definici filtru pouze jeden <Interleaving> element:

    <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>

Potrubí filtru podporuje následující způsoby prokládání:

  • ProstředkyFirst prokládací pořadí streamuje každý prostředek, na kterém závisí, před stránkou FixedPage, která závisí na prostředku. Toto pořadí prokládání je vhodné pro ovladače tiskárny a tiskárny pro přímou spotřebu, protože zajistí zdroje písem a obrázků, které tiskárna vyžaduje k vykreslení textu a obsahu stránky těsně před zahájením procesu vykreslování.

  • MarkupFirst prokládání pořadí streamuje text dokumentu a revize a informace o tom, jak se prostředek použije před streamováním skutečného prostředku. Toto pořadí prokládání je nejvhodnější pro archivaci souborů a pro aplikace, které zobrazují dokument online.

Výstup Archive-Optimized XPS

Tato funkce umožňuje ovladačům tisku explicitně vyžádat výstup XPS optimalizovaný pro archivaci jako soubor fondu. Ve Windows 8 vytváří Microsoft XPS Document Writer v4 (MXDW) tento archivu připravený XPS výstup prostřednictvím kódového procesu, který je dostupný pouze pro MXDW v Microsoft XPS Document Converter (MXDC). Ovladač tisku tak může vygenerovat tento soubor XPS optimalizovaný pro archivaci z MXDC.

Následující příklad kódu ukazuje syntaxi XML pro použití <elementu Archive> v konfiguračním souboru filtru kanálu pro povolení této funkce:

<Filters>
    ...
    <Archive enabled="true"/>
</Filters>