Partilhar via


Referência da API JavaScript

Important

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Guia de design do aplicativo de suporte de impressão v1 e v2.

Os fabricantes podem usar a API JavaScript apresentada aqui, em combinação com um arquivo XML Bidi para fornecer suporte para Bidi através de uma conexão USB para um dispositivo de impressão.

Para obter mais informações sobre a comunicação USB Bidi com um dispositivo de impressão, consulte USB Bidi Extender.

Bidi sobre USB

Método getSchemas

Este método lida com consultas Bidi GET, como \Printer.Consumables.YellowInk:Level. O código JavaScript é capaz de fazer consultas à impressora usando o barramento USB e ler as respostas à medida que elas voltam.

Sintaxe

function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);

Parâmetros (método getSchemas)

scriptContext [in] Um objeto IPrinterScriptContext que fornece acesso a pacotes de propriedades relevantes. impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que permite acesso de leitura e gravação ao barramento USB. schemaRequests

[em] Objeto Array que contém todas as cadeias de caracteres de consulta Bidi solicitadas. impressoraBidiSchemaResponses

[saídas] Objeto que o script usa para armazenar todas as respostas às chaves de consulta.

Valores de retorno (método getSchemas)

Valor de retorno Description
0 O script foi concluído com êxito.
1 O dispositivo anexado não estava pronto para fornecer algumas informações solicitadas. Indica que o sistema de impressão deve chamar a função novamente usando quaisquer Teclas de Reconsulta adicionadas durante o processamento.

Método setSchema

Este método lida com operações Bidi SET. O script pode determinar o valor do esquema Bidi de entrada para definir dados no dispositivo ou executar alguma ação no dispositivo, como cabeças de tinta limpas.

Se o dispositivo não estiver pronto para processar os dados especificados, o método pode retornar um valor de 1 para indicar que a chamada deve ser repetida após um período de espera.

Parâmetros (método setSchema)

scriptContext [in] Um objeto IPrinterScriptContext que fornece acesso a pacotes de propriedades relevantes. impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que permite acesso de leitura e gravação ao barramento USB. impressoraBidiSchemaElement

[em] Um objeto IPrinterBidiSchemaElement que contém todos os dados associados ao valor do esquema Bidi a ser definido.

Valores de retorno (método setSchema)

Valor de retorno Description
0 O script foi concluído com êxito.
1 O dispositivo anexado não estava pronto para fornecer algumas informações solicitadas. Indica que o sistema de impressão deve chamar a função novamente usando a impressora fornecidaBidiSchemaElement.

Método getStatus

Este método é usado para obter status não solicitado de uma impressora enquanto o dispositivo está imprimindo. Esta função só é chamada durante a impressão. O dispositivo deve fornecer dados no canal de leitura que este script pode interpretar em valores de esquema Bidi. Como o canal de gravação no dispositivo é bloqueado por dados de impressão, apenas o status não solicitado é suportado aqui.

Este método é chamado repetidamente durante a impressão. Espera-se que o dispositivo só retorne dados se estiver disponível e o script puder entendê-los. Se o dispositivo não suportar status não solicitado ou não houver necessidade de chamar essa função novamente, o script deve retornar um valor de 2 que informará ao thread de execução getStatus no USBMon para sair com êxito.

Parâmetros (método getStatus)

scriptContext [in] Um objeto IPrinterScriptContext que fornece acesso a pacotes de propriedades relevantes. impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que permite acesso de leitura ao barramento USB. impressoraBidiSchemaResponses

[saídas] Objeto que o script usa para armazenar todas as respostas às chaves de consulta.

Valores de retorno (método getStatus)

Valor de retorno Description
0 O script foi concluído com êxito.
2 O dispositivo conectado não suporta mais status não solicitado e essa função não deve ser chamada novamente.

Método startPrintJob

USBMon chama esse método durante o StartDocPort. Chamar startPrintJob permite que o driver modifique o fluxo de impressão ou implemente um protocolo de solicitação/resposta baseado em host que é usado enquanto o dispositivo de impressão está imprimindo um trabalho. O objeto de contexto de trabalho é passado para a função para permitir que o código JavaScript do fabricante gerencie as propriedades do trabalho e obtenha acesso aos fluxos de dados persistentes. Os dados de impressão são passados como uma matriz JavaScript para o código JavaScript processar. startPrintJob também fornece acesso ao dispositivo da impressora das seguintes maneiras:

  • Através do fluxo de impressão

  • Através de um objeto que pode retornar respostas do esquema Bidi para USBMon processar

Sintaxe (método startPrintJob)

function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parâmetros (método startPrintJob)

jobScriptContext [in] Um objeto IPrinterScriptUsbJobContext que dá ao código JavaScript do fabricante acesso ao pacote de propriedades de trabalho e ao(s) fluxo(s) de dados persistente(s). impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream , que o código JavaScript do fabricante pode usar para ler e gravar dados no dispositivo de impressão. impressoraBidiSchemaResponses

[saídas] Um objeto IPrinterBidiSchemaResponses que o código JavaScript do fabricante pode usar para retornar quaisquer alterações/atualizações de valor do esquema Bidi.

Valores de retorno (método startPrintJob)

Valor de retorno Description
0 Success.
1 Falha – Limpe o objeto Job Context e retorne um código de erro para o spooler de impressão.

método writePrintData

USBMon chama esse método durante writePort. Chamar writePrintData permite que o driver modifique o fluxo de impressão ou implemente um protocolo de solicitação/resposta baseado em host que é usado enquanto o dispositivo de impressão está imprimindo um trabalho. O objeto de contexto de trabalho é passado para o método para permitir que o código JavaScript do fabricante gerencie as propriedades do trabalho e obtenha acesso aos fluxos de dados persistentes. Os dados de impressão são passados como uma matriz JavaScript para o código JavaScript processar. writePrintData também fornece acesso ao dispositivo de impressora das seguintes maneiras:

  • Através do fluxo de impressão

  • Através de um objeto que pode retornar respostas do esquema Bidi para USBMon processar

function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);

Parâmetros (método writePrintData)

jobScriptContext [in] Um objeto IPrinterScriptUsbJobContext que dá ao código JavaScript do fabricante acesso ao pacote de propriedades de trabalho e ao(s) fluxo(s) de dados persistente(s). writePrintDataProgress

[em] Um objeto IPrinterScriptableSequentialStream que o código JavaScript do fabricante pode usar para ler e gravar dados no dispositivo de impressão. printData

[em] Um objeto IDispatch , uma matriz JavaScript dos dados de impressão atuais. O parâmetro printData permite que o código JavaScript manipule os dados antes de armazená-los em cache em um dos fluxos de dados em jobScriptContext ou enviá-los para a impressora via printerStream. impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que o código JavaScript do fabricante pode usar para ler e gravar dados no dispositivo de impressão. impressoraBidiSchemaResponses

[saídas] Um objeto IPrinterBidiSchemaResponses que o código JavaScript do fabricante pode usar para retornar quaisquer alterações ou atualizações de valor do esquema Bidi.

Valores de retorno (método writePrintData)

Valor de retorno Description
0 Success. O número de bytes processados do fluxo de dados de impressão (printData) é retornado via writePrintDataProgress.
1 Falha – Retorna um código de erro para o spooler de impressão.
2 Repetir - Processe todas as atualizações do esquema Bidi (incluindo eventos Bidi) na impressoraBidiSchemaResponses e, em seguida, chame a função JavaScript novamente para permitir que o código do fabricante continue processando os dados. O número de bytes processados do fluxo de dados de impressão (printData) é retornado via writePrintDataProgress.
3 DeviceBusy – O canal de comunicação do dispositivo não está aceitando dados no momento. Isso não indica uma falha. USBMon deve informar o spooler que o dispositivo está ocupado e, em seguida, chamar a função novamente em um momento posterior. O número de bytes processados do fluxo de dados de impressão (printData) é retornado via writePrintDataProgress.
4 AbortTheJob – O dispositivo não pode continuar processando o trabalho, ou o usuário cancelou o trabalho usando o painel frontal do dispositivo de impressão. Quando o USBMon recebe a mensagem para anular um trabalho de impressão, ele passa as informações para o spooler de impressão para abortar o trabalho, antes de retornar.

Método endPrintJob

USBMon chama esse método durante endDocPort. Chamar endPrintJob permite que o driver modifique o fluxo de impressão ou implemente um protocolo de solicitação/resposta baseado em host que é usado enquanto o dispositivo de impressão está imprimindo um trabalho. O objeto de contexto de trabalho é passado para o método para permitir que o código JavaScript do fabricante:

  • Concluir o processamento de todos os dados de impressão que persistiram

  • Aceda ao dispositivo da impressora através do fluxo de impressão

  • Acessar um objeto que pode passar respostas do esquema Bidi para USBMon processar

function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parâmetros (método endPrintJob)

jobScriptContext [in] Um objeto IPrinterScriptUsbJobContext que dá ao código JavaScript do fabricante acesso ao pacote de propriedades de trabalho e ao(s) fluxo(s) de dados persistente(s). impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que o código JavaScript do fabricante pode usar para ler e gravar dados no dispositivo de impressão. impressoraBidiSchemaResponses

[saídas] Um objeto IPrinterBidiSchemaResponses que o código JavaScript do fabricante pode usar para retornar quaisquer alterações ou atualizações de valor do esquema Bidi.

Valores de retorno (método endPrintJob)

Valor de retorno Description
0 Sucesso – Limpe o objeto Contexto do trabalho e retorne o êxito ao spooler de impressão.
1 Falha – Limpe o objeto Job Context e retorne um código de erro para o spooler de impressão.
2 Repetir - Processe todas as atualizações do esquema Bidi (incluindo eventos Bidi) na impressoraBidiSchemaResponses e, em seguida, chame a função JavaScript novamente para permitir que o código JavaScript do fabricante continue processando os dados.

Bidi sobre USB secundário

Se o dispositivo suportar uma interface USB secundária, o dispositivo poderá usar os métodos getSchemas e setSchema descritos nas seções anteriores, além do método requestStatus .

método requestStatus

Este método é chamado em vez de getStatus, se a diretiva BidiUSBStatusInterface tiver sido especificada no arquivo de manifesto do driver v4. requestStatus é usado para obter o status de um dispositivo de impressão enquanto o dispositivo está imprimindo.

O diagrama a seguir fornece uma visão geral da arquitetura de extensão USB Bidi, mostrando o cenário onde a diretiva BidiUSBStatusInterface foi especificada e, portanto, a comunicação é roteada através de uma interface USB alternativa.

Arquitetura do extensor USB BIDI com o método RequestStatus.

Este método é chamado repetidamente durante a impressão. Espera-se que o dispositivo só retorne dados se estiver disponível e o script puder entendê-los. Se o dispositivo não suportar o status solicitado ou não houver necessidade de chamar esse método novamente, o script deverá retornar um valor de 2 que informará ao thread de execução getStatus no USBMon para sair com êxito.

Parâmetros (método requestStatus)

scriptContext [in] Um objeto IPrinterScriptContext que fornece acesso a pacotes de propriedades relevantes. impressoraStream

[em] Um objeto IPrinterScriptableSequentialStream que permite acesso de leitura e gravação ao barramento USB. impressoraBidiSchemaResponses

[saídas] Objeto que o script usa para armazenar todas as respostas às chaves de consulta.

Valores de retorno (método requestStatus)

Valor de retorno Description
0 O script foi concluído com êxito.
2 O dispositivo conectado não suporta mais o status solicitado e essa função não deve ser chamada novamente.

IPrinterScriptContext

IPrinterScriptableSequentialStream

Extensor USB Bidi