다음을 통해 공유


인쇄 티켓 병합

Important

최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.

자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.

인쇄 드라이버에서 처리된 PrintTicket 개체는 연결된 문서 부분에 따라 계층적 관계를 갖습니다. 다음 다이어그램에서는 XPS 문서 내에서 이러한 부분의 관계를 보여 줍니다.

xps 문서의 문서 부분을 보여 주는 다이어그램

계층 구조의 각 인쇄 티켓 수준에는 다른 범위가 있습니다. 인쇄 티켓 정보를 사용하는 인쇄 드라이버 필터 모듈은 문서 스트림에서 인쇄 티켓 개체를 읽을 때 해당 범위를 유지해야 합니다. 다음 다이어그램에서는 인쇄 드라이버 필터 모듈에서 이 작업을 수행하는 방법을 보여 줍니다.

다양한 인쇄 티켓 수준이 논리적으로 병합되는 방법을 보여 주는 다이어그램.

필터에서 문서 파트를 읽을 때 인쇄 티켓 개체는 필터가 각 문서 파트를 처리하는 방법을 구성하기 위해 필터에서 읽고, 병합하고, 유효성을 검사하고, 캐시됩니다. 이전 다이어그램에서는 다양한 인쇄 티켓 수준을 논리적으로 병합하는 방법을 보여 줍니다. 아래 의사 코드는 이 병합을 구현하는 방법을 보여 줍니다.

class Filter
{
 PrintTicket Saved_FDS_PT;
 PrintTicket Saved_FD_PT;

 ProcessFDS(pIFixedDocumentSequence)
    {
 Saved_FDS_PT = pIFixedDocumentSequence->GetPrintTicket();

        // continue processing the FixedDocumentSequence part
    }

 ProcessFD(pIFixedDocument)
    {
 Saved_FD_PT->Release();

        temp = pIFixedDocument->GetPrintTicket();

 Saved_FD_PT = PrintTicketMergeAndValidate(
 Saved_FDS_PT, temp);

        // continue processing the FixedDocument part
    }

 ProcessPage(IFixedPage)
    {
        temp = pIFixedPage->GetPrintTicket();

 PagePT = PrintTicketMergeAndValidate(Saved_FD_PT, temp);

        // continue processing the FixedPage part
    }

 PrintTicket PrintTicketMergeAndValidate(
 ParentPT,
 PartPT)
    {
        // Entries in the Part PrintTicket 
        // take precedence over the corresponding entries 
        // in the Parent PrintTicket
    }
};