Filtre İşlem Hattı Yapılandırma Dosyası

Önemli

Modern yazdırma platformu, Windows'un yazıcılarla iletişim kurmak için tercih ettiği araçlardır. Yazıcı cihazı geliştirme için Windows 10 ve 11'deki yazdırma deneyimini özelleştirmek için Yazdırma Desteği Uygulamaları (PSA) ile birlikte Microsoft'un IPP gelen kutusu sınıf sürücüsünü kullanmanızı öneririz.

Daha fazla bilgi için bkz. Yazdırma Desteği Uygulaması v1 ve v2 tasarım kılavuzu.

Filtre işlem hattı yapılandırma dosyası, aşağıdakileri tanımlayan bir XML dosyasıdır:

  • İşlem hattındaki filtrelerin sırası. Bu sıra, filtre işlem hattı yapılandırma dosyasındaki XML öğelerinin sıralanmasıyla tanımlanır.

  • Filtre arabirimleri. Bu arabirimler, filtre işlem hattı yapılandırma dosyasındaki XML öznitelikleri tarafından tanımlanır.

  • Her filtre için giriş ve çıkış biçimleri. Bu biçimler, filtre işlem hattı yapılandırma dosyasındaki XML öğeleri tarafından tanımlanır.

Aşağıdaki kod örneği tipik bir filtre işlem hattı yapılandırma dosyasını gösterir:

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

Özel Anahtar Sözcükler

XPSDrv yapılandırma modülü, DrvDocumentEvent işlev çağrısı sırasında bir XPS sürücü belgesi olayını işlerken PrintTicket girdisine özel anahtar sözcükler koyabilir. Bu PrintTicket girişleri, filtrelerin PrintTicket’i okuduğu sırada yazdırma filtresi işlem hattındaki işleme filtreleri tarafından okunur.

Filtre Boru Hattı Özellikler Saklama

Yapılandırma modülü, verileri depolamak veya bir filtre işlem hattına bilgi geçirmek için filtre işlem hattı özellik paketini de kullanabilir. Özellik paketini kullanarak yapılandırma hizmetlerini kullanıma sunabilmek için yapılandırma modülünün DrvPopulateFilterServices yöntemini dışarı aktarması gerekir. Ayrıca, filtre işlem hattı yapılandırma dosyası her hizmet için FilterServiceProvider< öğesini içermelidir>. Sağlayıcı modülü DllCanUnloadNow işlevini uygulamalı ve dışarı aktarmalıdır. Bu sağlayıcılar genellikle özellik paketinde COM arabirimleri yayımlar. Bu arabirimler kullanılırken sağlayıcının yüklü kalması gerekir.

OptionalFilterServiceProvider< adlı başka bir öğe>, hizmet sağlayıcısı dll'i kullanılamıyorsa işlem hattı yöneticisinin yazdırma işini sürdürmesine izin verir. Tek tek filtreler, isteğe bağlı hizmet sağlayıcısının yokluğunda davranışlarını tanımlamalıdır. Aksi takdirde, FilterServiceProvider< kullanılırsa ve dll yüklenemezse>, iş başarısız olur. <OptionalFilterServiceProvider> öğesi Windows 7 ve sonraki sürümlerde desteklenir.

Aşağıdaki kod örneği DrvPopulateFilterServices işlevini gösterir:

HRESULT
DrvPopulateFilterServices(
    __in IPrintPipelinePropertyBag  *pPropertyBag
    );

Önceki işlev hakkında daha fazla bilgi için bkz. DrvPopulateFilterServices.

Aşağıdaki kod örneği, filtre işlem hattı yapılandırma dosyasındaki <FilterServiceProvider> öğesinin XML söz dizimini gösterir:

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

Çıkış Cihazı için Araya Ekleme Modu

Araya ekleme, bir XPS belgesinin tekil kaynak parçalarının, FixedPage belge parçalarıyla birlikte nasıl akışa alınıp alınmadığını ifade eder. Filtre işlem hattı, işlem hattında XPS belge arabirimlerine sahip ilk filtre için XPS belge nesne modelini oluşturduğunda, XPS biriktirici dosyasının araya ekleme sırasına artık uyulmamaktadır. Ancak, işlem hattında XPS belge arabirimini kullanan son filtre, işlem hattının XPS içeriğini serileştirirken kullanması için filtre yapılandırma dosyasında bir dizilim sırası belirtebilir. Çıkış cihazı veya çıkış dosyasıyla en uyumlu araya ekleme sırasının seçilmesi, sonraki belge işleme performansını artırabilir.

Aşağıdaki örnek filtre, önceki örnek filtre yapılandırma dosyasından, araya ekleme seçeneğinin nasıl kullanılacağını gösterecek şekilde değiştirilmiş bir alıntıdır. Bu örnek, çizim amacıyla her iki araya ekleme seçeneğini de gösterse de, gerçek bir filtre yapılandırma dosyasının filtre tanımında yalnızca bir <Interleaving> öğesi vardır:

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

Filtre işlem hattı aşağıdaki araya ekleme siparişlerini destekler:

  • ResourcesFirst araya ekleme sırası, bağımlı her kaynağı kaynağa bağlı Olan FixedPage'dan önce akışla gönderir. Bu araya ekleme sırası, yazıcı sürücüleri ve doğrudan tüketim yazıcıları için idealdir çünkü işleme başlamadan hemen önce yazıcının metin ve sayfa içeriğini işlemek için gerektirdiği yazı tipi ve görüntü kaynaklarını sağlar.

  • MarkupFirst sıralama düzeni, belge metnini, işaretlemeyi ve bir kaynağın nasıl kullanılacağına ilişkin bilgileri, gerçek kaynağı akışa almadan önce akışa alır. Bu araya ekleme sırası, arşiv dosyası hedefleri ve belgeyi çevrimiçi olarak görüntüleyen uygulamalar için en iyisidir.

Arşiv için Optimizasyonlu XPS Çıkışı

Bu özellik, yazdırma sürücülerinin arşiv için iyileştirilmiş XPS çıkışını bir biriktirici dosyası olarak açıkça istemesine olanak tanır. Windows 8'de, Microsoft XPS Belge Yazıcısı v4 (MXDW), bu arşive hazır XPS çıkışını yalnızca Microsoft XPS Belge Dönüştürücüsü'nde (MXDC) MXDW tarafından kullanılabilen bir kod yolu aracılığıyla üretir. Bu nedenle, bir yazdırma sürücüsü MXDC'den arşiv için iyileştirilmiş bu XPS'yi oluşturabilir.

Aşağıdaki kod örneği, bu özelliği etkinleştirmek için filtre işlem hattı yapılandırma dosyasındaki Archive< öğesini kullanmaya >yönelik XML söz dizimini gösterir:

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