Gerenciamento de trabalho
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.
Um recurso de gerenciamento de trabalho foi introduzido em Windows 8.1 e versões posteriores do Windows para fornecer uma exibição dinâmica da fila de trabalhos.
Esse recurso também permite que um cliente cancele um trabalho de impressão. Um cliente pode chamar a interface de programação apropriada de dentro de um aplicativo de dispositivo UWP ou de uma extensão de impressora.
As novas interfaces
As interfaces a seguir foram introduzidas no Windows 8.1 para implementar o recurso de gerenciamento de trabalhos.
Iniciando uma sessão de gerenciamento de trabalho
Para iniciar uma sessão de gerenciamento de trabalho, primeiro você deve especificar e solicitar um intervalo de trabalhos que deseja gerenciar. Esse intervalo de trabalhos é chamado de "exibição" e você usa o método IPrinterQueue2::GetPrinterQueueView para especificá-lo.
Se você quiser alterar o modo de exibição para monitorar um conjunto diferente de trabalhos, poderá usar o método IPrinterQueueView::SetViewRange para fazer isso.
Observe que a fila de impressão é uma fila dinâmica. Assim, sempre que o status da fila de impressão é alterado, um evento é disparado e o método IPrinterQueueViewEvent::OnChanged fornece uma instantâneo atualizada da exibição que foi solicitada.
O snippet de código C# a seguir ilustra o uso das novas interfaces para iniciar uma sessão de gerenciamento de trabalho.
void PerformJobManagement(IPrinterQueue2 queue)
{
//
// Create a printer queue view and specify the range of
// print queue positions to be monitored
//
PrinterQueueView queueView = queue.GetPrinterQueueView(0, COUNT_JOBS_MONITORED);
//
// Add the event handler to the IPrinterQueueView object via the
// standard COM event model, the IConnectionPoint mechanism.
//
queueView.OnChanged += queueView_OnChanged;
//
// When a different range of print jobs needs to be monitored,
// reset/update the view.
//
queueView.SetViewRange(20, COUNT_JOBS_MONITORED);
}
//
// Create an event handler that is called when
// there is a change in the View
//
void queueView_OnChanged(
IPrintJobCollection pcollection,
uint ulviewOffset,
uint ulviewSize,
uint ulcountJobsInPrintQueue)
{
foreach (IPrintJob job in pCollection)
{
UIDisplay(job.Name);
UIDisplay(job.Id);
}
}
UIDisplay é usado como um nome genérico para o mecanismo que você desenvolve para exibir as informações para o usuário.
Além disso, observe que a enumeração de trabalho começa quando o primeiro manipulador de eventos é adicionado e é interrompido quando o último manipulador de eventos é removido.
Tópicos relacionados
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