Solução de problemas de Impressão Universal - Noções básicas sobre os estágios de um trabalho de impressão
Este artigo fornece uma visão geral de como um trabalho de impressão passa por diferentes componentes da Impressão Universal e como seu estado é atualizado.
Impressões do usuário (de um cliente)
Um usuário escolhe uma impressora de Impressão Universal, seleciona as opções de impressão desejadas e clica no botão Imprimir. O usuário pode imprimir de qualquer uma das seguintes fontes (às vezes nos referimos a eles como clientes):
- No sistema operacional Windows (PC, Windows 365, Área de Trabalho Virtual do Azure etc.)
- Em um aplicativo de navegador da Web, como o OneDrive for Business, faça o Excel no navegador.
- Aplicativos de outros fornecedores ou aplicativos de linha de negócios (LOB) desenvolvidos usando as APIs do Microsoft Graph.
- Outros clientes (como Mac etc.).
Windows OS
Vamos dar um exemplo de experiência do sistema operacional Windows.
Depois que o usuário imprime no Windows, aqui estão as etapas que ocorrem:
- O aplicativo pode usar uma das caixas de diálogo de impressão padrão do Windows (como o Bloco de Notas) ou sua própria caixa de diálogo de impressão (por exemplo, aplicativos do Microsoft Office, Adobe Acrobat etc.). Qualquer uma dessas caixas de diálogo enviará o trabalho de impressão para o spooler de impressão do Windows em execução no Windows. Para Impressão Universal, cada impressora usa o driver de classe de Impressão Universal embutido. O spooler usa esse driver para processar o trabalho ainda mais.
- O spooler de impressão do Windows pode, opcionalmente, invocar um PSA (Aplicativo de Suporte à Impressão) se a impressora estiver associada a um e estiver instalada no dispositivo. Os PSAs são normalmente publicados por OEMs de impressoras e associados a seus modelos de impressora. O PSA pode ser instalado automaticamente no Windows e vinculado à impressora.
- O spooler do Windows Print carrega o trabalho de impressão (metadados e carga) para o serviço de Impressão Universal. O trabalho é enviado usando o IPP (Internet Printing Protocol) por HTTPS. A porta usada para a impressora fornecida é nomeada como IPP-GUID.
Trabalho de impressão na nuvem
Quando um cliente envia o trabalho de impressão para o serviço de Impressão Universal, ele executa as seguintes ações:
- Valida o trabalho de impressão. Isso garante que os atributos do trabalho de impressão correspondam aos atributos relatados pela impressora. Os trabalhos que falham na validação são rejeitados e um erro é retornado ao cliente. Os trabalhos validados com êxito são armazenados na fila de nuvem e estão disponíveis no portal de Impressão Universal em Trabalhos de Impressão da impressora. Neste estágio, o estado do trabalho será ou
Pending
Paused
.- O trabalho pode estar em um
Paused
estado se a impressora tiver a versão segura habilitada e o trabalho estiver aguardando ou se houver uma tarefa acionada por um aplicativo de nuvem de terceiros. - Se a impressora não tiver uma versão segura ou não tiver uma tarefa de terceiros, ela irá diretamente para o
Pending
estado. Caso contrário, seu estado será alterado de paraPending
somente depois que o trabalho for liberadoPaused
ou a tarefa for marcada como concluída.
- O trabalho pode estar em um
- Para um
Pending
trabalho, a Impressão Universal notifica a impressora correspondente de que há pelo menos um trabalho de impressão aguardando na fila de nuvem. Algumas impressoras (e o conector de Impressão Universal) estão ouvindo essas notificações em tempo real, enquanto outras impressoras podem sondar essas notificações periodicamente (por exemplo, a cada 30 segundos).
Trabalho de impressão na impressora
- Quando uma impressora recebe a notificação, ela pode decidir processar o trabalho de impressão imediatamente ou aguardar (por exemplo, se a impressora já estiver ocupada imprimindo outro trabalho de impressão).
- A impressora inicia o processamento do trabalho solicitando primeiro a lista de TODOS os
Pending
trabalhos de impressão. A impressora pode decidir processar esses trabalhos um por um ou pode processar vários trabalhos em paralelo. - Para que a impressora de trabalho inicie o processamento, ela primeiro reivindica o trabalho confirmando-o. Isso informa à Impressão Universal que o trabalho agora está bloqueado para processamento pela impressora específica e o estado do trabalho de impressão muda para
Processing
. - A impressora baixa os metadados e a carga útil do trabalho de impressão.
- A impressora processa a carga de impressão e imprime.
- Nota: Em alguns casos, a impressora pode reconhecer o trabalho, mas pode colocá-lo em espera temporariamente. Durante esse tempo, a impressora pode atualizar o estado do trabalho para
Processing-Stopped
a Impressão Universal.
- Nota: Em alguns casos, a impressora pode reconhecer o trabalho, mas pode colocá-lo em espera temporariamente. Durante esse tempo, a impressora pode atualizar o estado do trabalho para
- A impressora atualiza o trabalho para um dos seguintes estados "finais":
Completed
: Quando o trabalho é impresso com êxito.Aborted
: Quando as impressoras enfrentaram alguns problemas e não conseguiram imprimir o trabalhoCanceled
: Quando uma impressora pode ter um console de exibição, os usuários veem a lista de seus trabalhos de impressão pendentes. Eles podem selecionar um ou todos e fazer o comoCanceled
.
Processamento de trabalhos de impressão pelo conector de Impressão Universal
Para impressoras registradas por meio do conector de Impressão Universal, o Conector executa as mesmas etapas que uma impressora típica executaria. No entanto, ele retransmite o trabalho do serviço de Impressão Universal para a impressora real.
Aqui estão algumas diferenças no fluxo de um conector:
- O serviço de Impressão Universal notifica o Conector para
Pending
trabalhos em vez da impressora. - O Universal Print Connector reconhece e baixa os dados do trabalho de impressão. Depois de obter o trabalho, o Connector chama as APIs de impressão do Windows para enviar o trabalho ao spooler do Windows no Connector. O spooler do Windows aproveita o driver da impressora para renderizar o trabalho e, em seguida, o trabalho é enviado para a impressora.
- Para atualizar o estado do trabalho de impressão:
- A impressora envia o estado do trabalho de impressão para o spooler do Windows no Conector.
- O conector sonda o estado do trabalho do spooler do Windows.
- Quando o estado do trabalho é atualizado, ele atualiza o mesmo no serviço de Impressão Universal.
Observação
Se uma determinada impressora tiver vários Pending
trabalhos, o Connector processará esses trabalhos em série (um por um). O trabalho que está sendo processado aparecerá como Processing
, enquanto os trabalhos de impressão depois disso na mesma impressora estarão aguardando e terão o estado como Pending
. Os trabalhos em diferentes impressoras (no mesmo conector) serão processados em paralelo.