Mesclagem de tíquete de impressão
Importante
Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft, juntamente com o PSA (Aplicativos de Suporte para Impressão), para personalizar a experiência de impressão em Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.
Para obter mais informações, consulte o Guia de design do aplicativo de suporte para impressão.
Os objetos PrintTicket processados no Driver de Impressão têm uma relação hierárquica com base na parte do documento à qual estão associados. O diagrama a seguir ilustra a relação dessas partes em um documento XPS.
Cada um dos níveis do Tíquete de Impressão na hierarquia tem um escopo diferente. Os módulos de filtro do driver de impressão que usam as informações do Tíquete de Impressão devem manter esse escopo à medida que os objetos do Tíquete de Impressão são lidos do fluxo de documentos. O diagrama a seguir ilustra como isso pode ser feito em um módulo de filtro de driver de impressão.
À medida que as partes do documento são lidas pelo filtro, os objetos Print Ticket são lidos, mesclados e validados e armazenados em cache pelo filtro para configurar como o filtro processará cada parte do documento. O diagrama anterior ilustra como os diferentes níveis de Tíquete de Impressão são logicamente mesclados e o pseudocódigo abaixo ilustra como essa mesclagem pode ser implementada.
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
}
};
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de