Filter File Konfigurasi Alur

Penting

Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.

Untuk informasi selengkapnya, lihat panduan desain aplikasi dukungan Cetak.

File konfigurasi alur filter adalah file XML yang menentukan hal berikut:

  • Urutan filter dalam alur. Urutan ini ditentukan oleh pengurutan elemen XML dalam file konfigurasi alur filter.

  • Filter antarmuka. Antarmuka ini ditentukan oleh atribut XML dalam file konfigurasi alur filter.

  • Format input dan output untuk setiap filter. Format ini ditentukan oleh elemen XML dalam file konfigurasi alur filter.

Contoh kode berikut menunjukkan file konfigurasi alur filter yang khas:

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

Kata Kunci Privat

Modul konfigurasi XPSDrv dapat menempatkan kata kunci privat dalam entri PrintTicket saat menangani peristiwa dokumen driver XPS selama panggilan fungsi DrvDocumentEvent. Entri PrintTicket ini kemudian dibaca oleh filter pemrosesan dalam alur filter cetak saat filter membaca PrintTicket.

Filter Tas Properti Alur

Modul konfigurasi juga dapat menggunakan tas properti alur filter untuk menyimpan data atau meneruskan informasi ke alur filter. Untuk mengekspos layanan konfigurasi dengan menggunakan tas properti, modul konfigurasi harus mengekspor metode DrvPopulateFilterServices . Selain itu, file konfigurasi alur filter harus menyertakan <elemen FilterServiceProvider> untuk setiap layanan. Modul penyedia harus menerapkan dan mengekspor fungsi DllCanUnloadNow . Biasanya, penyedia ini menerbitkan antarmuka COM di tas properti. Penyedia harus tetap dimuat saat antarmuka ini sedang digunakan.

Elemen lain, <OptionalFilterServiceProvider>, memungkinkan manajer alur untuk melanjutkan pekerjaan cetak jika dll penyedia layanan tidak tersedia. Filter individu harus menentukan perilaku mereka tanpa adanya penyedia layanan opsional. Jika tidak, jika <FilterServiceProvider> digunakan dan dll tidak dapat dimuat, pekerjaan gagal. Elemen <OptionalFilterServiceProvider> didukung di Windows 7 dan yang lebih baru.

Contoh kode berikut menunjukkan fungsi DrvPopulateFilterServices :

HRESULT
DrvPopulateFilterServices(
    __in IPrintPipelinePropertyBag  *pPropertyBag
    );

Untuk informasi selengkapnya tentang fungsi sebelumnya, lihat DrvPopulateFilterServices.

Contoh kode berikut menunjukkan sintaks XML untuk <elemen FilterServiceProvider> dalam file konfigurasi alur filter:

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

Mode Interleaving untuk Perangkat Output

Interleaving mengacu pada bagaimana bagian sumber daya individual dari dokumen XPS dialirkan bersama dengan bagian dokumen FixedPage. Ketika alur filter membuat model objek dokumen XPS untuk filter pertama dengan antarmuka dokumen XPS dalam alur, urutan interleaving dari file penampung XPS tidak lagi diikuti. Namun, filter terakhir dalam alur yang menggunakan antarmuka dokumen XPS dapat menentukan urutan interleaving dalam file konfigurasi filter untuk digunakan alur saat menserialisasikan konten XPS. Memilih urutan interleaving yang paling kompatibel dengan perangkat output atau file output dapat meningkatkan performa pemrosesan dokumen berikutnya.

Contoh filter berikut adalah kutipan dari contoh file konfigurasi filter sebelumnya yang telah dimodifikasi untuk menunjukkan cara menggunakan opsi interleaving. Meskipun contoh ini menunjukkan kedua opsi interleaving untuk tujuan ilustrasi, file konfigurasi filter nyata hanya memiliki satu <elemen Interleaving> dalam definisi 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"/>
     <Interleaving mode="ResourcesFirst"\>
     <Interleaving mode="MarkupFirst"\>
    </Filter>

Alur filter mendukung pesanan interleaving berikut:

  • Pesanan interleaving ResourcesFirving mengalirkan setiap sumber daya dependen sebelum FixedPage yang bergantung pada sumber daya. Urutan interleaving ini baik untuk driver printer dan untuk printer konsumsi langsung karena menyediakan font dan sumber daya gambar yang diperlukan printer untuk merender isi teks dan halaman tepat sebelum penyajian dimulai.

  • Urutan interleaving MarkupFirving mengalirkan teks dan markup dokumen dan informasi tentang bagaimana sumber daya akan digunakan sebelum mengalirkan sumber daya yang sebenarnya. Urutan interleaving ini paling baik untuk tujuan file arsip dan untuk aplikasi yang melihat dokumen secara online.

Output XPS Archive-Optimized

Fitur ini memungkinkan driver cetak untuk secara eksplisit meminta output XPS yang dioptimalkan arsip sebagai file penampung. Dalam Windows 8, Microsoft XPS Document Writer v4 (MXDW) menghasilkan output XPS siap arsip ini melalui jalur kode yang hanya tersedia untuk MXDW di Microsoft XPS Document Converter (MXDC). Jadi driver cetak dapat menghasilkan XPS yang dioptimalkan arsip ini dari MXDC.

Contoh kode berikut menunjukkan sintaks XML untuk menggunakan <elemen Arsip> dalam file konfigurasi alur filter untuk mengaktifkan fitur ini:

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