필터 파이프라인 구성 파일
중요
인쇄 지원 앱(PSA)과 함께 Microsoft의 IPP 받은 편지함 클래스 드라이버를 사용하여 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하는 것이 좋습니다.
자세한 내용은 인쇄 지원 앱 디자인 가이드를 참조하세요.
필터 파이프라인 구성 파일은 다음을 정의하는 XML 파일입니다.
파이프라인의 필터 순서입니다. 이 순서는 필터 파이프라인 구성 파일에서 XML 요소의 순서에 따라 정의됩니다.
인터페이스를 필터링합니다. 이러한 인터페이스는 필터 파이프라인 구성 파일의 XML 특성에 의해 정의됩니다.
각 필터에 대한 입력 및 출력 형식입니다. 이러한 형식은 필터 파이프라인 구성 파일의 XML 요소에 의해 정의됩니다.
다음 코드 예제에서는 일반적인 필터 파이프라인 구성 파일을 보여 줍니다.
<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>
Private 키워드
XPSDrv 구성 모듈은 DrvDocumentEvent 함수 호출 중에 XPS 드라이버 문서 이벤트를 처리할 때 PrintTicket 항목에 private 키워드를 넣을 수 있습니다. 그런 다음 이러한 PrintTicket 항목은 필터가 PrintTicket를 읽는 동안 인쇄 필터 파이프라인의 처리 필터에서 읽습니다.
필터 파이프라인 속성 모음
구성 모듈은 필터 파이프라인 속성 모음 을 사용하여 데이터를 저장하거나 필터 파이프라인에 정보를 전달할 수도 있습니다. 속성 모음을 사용하여 구성 서비스를 노출하려면 구성 모듈 이 DrvPopulateFilterServices 메서드를 내보내야 합니다. 또한 필터 파이프라인 구성 파일에는 각 서비스에 대한 FilterServiceProvider> 요소가 포함되어<야 합니다. 공급자 모듈은 DllCanUnloadNow 함수를 구현하고 내보내야 합니다. 일반적으로 이러한 공급자는 속성 모음에 COM 인터페이스를 게시합니다. 이러한 인터페이스를 사용하는 동안 공급자가 로드된 상태를 유지해야 합니다.
다른 요소인 <OptionalFilterServiceProvider>를 사용하면 서비스 공급자 dll을 사용할 수 없는 경우 파이프라인 관리자가 인쇄 작업을 계속할 수 있습니다. 개별 필터는 선택적 서비스 공급자가 없는 경우 해당 동작을 정의해야 합니다. 그렇지 않으면 FilterServiceProvider>를 사용하고 dll을 로드할 수 없는 경우< 작업이 실패합니다. <OptionalFilterServiceProvider> 요소는 Windows 7 이상에서 지원됩니다.
다음 코드 예제에서는 DrvPopulateFilterServices 함수를 보여 줍니다.
HRESULT
DrvPopulateFilterServices(
__in IPrintPipelinePropertyBag *pPropertyBag
);
이전 함수에 대한 자세한 내용은 DrvPopulateFilterServices를 참조하세요.
다음 코드 예제에서는 필터 파이프라인 구성 파일의 FilterServiceProvider> 요소에 대한< XML 구문을 보여 줍니다.
<Filters>
<Filter ... />
<FilterServiceProvider dll = "providerA.dll"/>
<FilterServiceProvider dll = "providerB.dll"/>
</Filters>
출력 디바이스의 인터리빙 모드
인터리빙 은 XPS 문서의 개별 리소스 부분이 FixedPage 문서 파트와 함께 스트리밍되는 방법을 나타냅니다. 필터 파이프라인이 파이프라인에서 XPS 문서 인터페이스를 사용하여 첫 번째 필터에 대한 XPS 문서 개체 모델을 만들면 XPS 스풀 파일의 인터리빙 순서가 더 이상 수행되지 않습니다. 그러나 XPS 문서 인터페이스를 사용하는 파이프라인의 마지막 필터는 XPS 콘텐츠를 직렬화할 때 사용할 파이프라인의 필터 구성 파일에서 인터리빙 순서를 지정할 수 있습니다. 출력 디바이스 또는 출력 파일과 가장 호환되는 인터리빙 순서를 선택하면 후속 문서 처리의 성능이 향상될 수 있습니다.
다음 예제 필터는 인터리빙 옵션을 사용하는 방법을 보여 주도록 수정된 이전 예제 필터 구성 파일에서 발췌한 것입니다. 이 예제에서는 두 인터리빙 옵션을 모두 보여 주지만 실제 필터 구성 파일에는 필터 정의에 Interleaving> 요소가 하나<만 있습니다.
<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>
필터 파이프라인은 다음과 같은 인터리빙 주문을 지원합니다.
ResourcesFirst 인터리빙 순서는 리소스에 종속된 FixedPage 앞에 각 종속 리소스를 스트림합니다. 이 인터리빙 순서는 프린터 드라이버 및 직접 사용 프린터에 적합합니다. 프린터가 렌더링을 시작하기 직전에 텍스트 및 페이지 콘텐츠를 렌더링하는 데 필요한 글꼴 및 이미지 리소스를 제공하기 때문입니다.
MarkupFirst 인터리빙 순서는 문서 텍스트 및 태그와 리소스가 실제 리소스를 스트리밍하기 전에 사용되는 방법에 대한 정보를 스트리밍합니다. 이 인터리빙 순서는 파일 보관 대상 및 문서를 온라인으로 보는 애플리케이션에 가장 적합합니다.
XPS 출력 Archive-Optimized
이 기능을 사용하면 인쇄 드라이버가 보관 최적화 XPS 출력을 스풀 파일로 명시적으로 요청할 수 있습니다. Windows 8 MXDW(Microsoft XPS 문서 작성기 v4)는 MXDC(Microsoft XPS 문서 변환기)에서 MXDW에서만 사용할 수 있는 코드 경로를 통해 이 보관 준비 XPS 출력을 생성합니다. 따라서 인쇄 드라이버는 MXDC에서 이 보관 최적화 XPS를 생성할 수 있습니다.
다음 코드 예제에서는 필터 파이프라인 구성 파일에서 Archive> 요소를 사용하여 <이 기능을 사용하도록 설정하는 XML 구문을 보여 줍니다.
<Filters>
...
<Archive enabled="true"/>
</Filters>
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기