인쇄 티켓 병합
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.
인쇄 드라이버에서 처리된 PrintTicket 개체는 연결된 문서 부분에 따라 계층적 관계를 갖습니다. 다음 다이어그램에서는 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
}
};