Condividi tramite


Informazioni di riferimento sulle API JavaScript

Importante

La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.

Per ulteriori informazioni, consultare la guida alla progettazione dell'app di supporto alla stampa .

I produttori possono usare l'API JavaScript presentata qui, in combinazione con un file XML Bidi per fornire supporto per Bidi tramite una connessione USB a un dispositivo di stampa.

Per altre informazioni sulla comunicazione USB Bidi con un dispositivo di stampa, vedi Usb Bidi Extender.

Bidi su USB

metodo getSchemas

Questo metodo gestisce query BIDI GET, ad esempio \Printer.Consumables.YellowInk:Level. Il codice JavaScript è in grado di eseguire query sulla stampante usando il bus USB e leggere le risposte man mano che tornano.

sintassi

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

Parametri (metodo getSchemas)

scriptContext [in] Oggetto IPrinterScriptContext che fornisce l'accesso ai contenitori di proprietà pertinenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che consente l'accesso in lettura e scrittura al bus USB. schemaRequests

[in] Oggetto matrice contenente tutte le stringhe di query Bidi richieste. printerBidiSchemaResponses

[out] Oggetto usato dallo script per archiviare tutte le risposte alle chiavi di query.

Valori restituiti (metodo getSchemas)

Valore restituito Descrizione
0 Lo script è stato completato correttamente.
1 Il dispositivo collegato non era pronto per fornire alcune informazioni richieste. Indica che il sistema di stampa deve chiamare di nuovo la funzione usando eventuali chiavi di riesegui query aggiunte durante l'elaborazione.

setSchema, metodo

Questo metodo gestisce le operazioni BIDI SET. Lo script può determinare il valore dello schema Bidi in ingresso per impostare i dati nel dispositivo o eseguire un'azione sul dispositivo, ad esempio teste inchiostro pulite.

Se il dispositivo non è pronto per elaborare i dati specificati, il metodo può restituire un valore pari a 1 per indicare che la chiamata deve essere ritentata dopo un periodo di attesa.

Parametri (metodo setSchema)

scriptContext [in] Oggetto IPrinterScriptContext che fornisce l'accesso ai contenitori di proprietà pertinenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che consente l'accesso in lettura e scrittura al bus USB. printerBidiSchemaElement

[in] Oggetto IPrinterBidiSchemaElement che contiene tutti i dati associati al valore dello schema Bidi da impostare.

Valori restituiti (metodo setSchema)

Valore restituito Descrizione
0 Lo script è stato completato correttamente.
1 Il dispositivo collegato non era pronto per fornire alcune informazioni richieste. Indica che il sistema di stampa deve chiamare di nuovo la funzione usando la stampante fornitaBidiSchemaElement.

metodo getStatus

Questo metodo viene utilizzato per ottenere lo stato non richiesto da una stampante durante la stampa del dispositivo. Questa funzione viene chiamata solo durante la stampa. Il dispositivo deve fornire dati nel canale di lettura che questo script può interpretare nei valori dello schema Bidi. Poiché il canale di scrittura nel dispositivo è bloccato dai dati di stampa, in questo caso è supportato solo lo stato non richiesto.

Questo metodo viene chiamato ripetutamente durante la stampa. È previsto che il dispositivo restituisca dati solo se è disponibile e lo script può comprenderlo. Se il dispositivo non supporta lo stato non richiesto o non è necessario chiamare di nuovo questa funzione, lo script deve restituire un valore pari a 2 che indicherà al thread di esecuzione getStatus in USBMon di uscire correttamente.

Parametri (metodo getStatus)

scriptContext [in] Oggetto IPrinterScriptContext che fornisce l'accesso ai contenitori di proprietà pertinenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che consente l'accesso in lettura al bus USB. printerBidiSchemaResponses

[out] Oggetto usato dallo script per archiviare tutte le risposte alle chiavi di query.

Valori restituiti (metodo getStatus)

Valore restituito Descrizione
0 Lo script è stato completato correttamente.
2 Il dispositivo collegato non supporta più lo stato non richiesto e questa funzione non deve essere chiamata di nuovo.

startPrintJob, metodo

USBMon chiama questo metodo durante StartDocPort. La chiamata a startPrintJob consente al driver di modificare il flusso di stampa o di implementare un protocollo di richiesta/risposta basato su host utilizzato durante la stampa del dispositivo di stampa. L'oggetto contesto del processo viene passato alla funzione per consentire al codice JavaScript del produttore di gestire le proprietà del processo e di ottenere l'accesso ai flussi di dati persistenti. I dati di stampa vengono passati come matrice JavaScript per l'elaborazione del codice JavaScript. startPrintJob fornisce anche l'accesso al dispositivo stampante nei modi seguenti:

  • Tramite il flusso di stampa

  • Tramite un oggetto che può restituire le risposte dello schema Bidi per l'elaborazione usbMon

Sintassi (metodo startPrintJob)

function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parametri (metodo startPrintJob)

jobScriptContext [in] Oggetto IPrinterScriptUsbJobContext che consente al codice JavaScript del produttore di accedere al contenitore delle proprietà del processo e ai flussi di dati persistenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che il codice JavaScript del produttore può usare per leggere e scrivere dati nel dispositivo di stampa. printerBidiSchemaResponses

[out] Oggetto IPrinterBidiSchemaResponses che il codice JavaScript del produttore può usare per restituire eventuali modifiche/aggiornamenti del valore dello schema Bidi.

Valori restituiti (metodo startPrintJob)

Valore restituito Descrizione
0 Esito positivo.
1 Errore: pulire l'oggetto Contesto processo e restituire un codice di errore allo spooler di stampa.

writePrintData, metodo

USBMon chiama questo metodo durante writePort. La chiamata a writePrintData consente al driver di modificare il flusso di stampa o di implementare un protocollo di richiesta/risposta basato su host utilizzato mentre il dispositivo di stampa sta stampando un processo. L'oggetto contesto del processo viene passato al metodo per consentire al codice JavaScript del produttore di gestire le proprietà del processo e di ottenere l'accesso ai flussi di dati persistenti. I dati di stampa vengono passati come matrice JavaScript per l'elaborazione del codice JavaScript. writePrintData fornisce anche l'accesso al dispositivo stampante nei modi seguenti:

  • Tramite il flusso di stampa

  • Tramite un oggetto che può restituire le risposte dello schema Bidi per l'elaborazione usbMon

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

Parametri (metodo writePrintData)

jobScriptContext [in] Oggetto IPrinterScriptUsbJobContext che consente al codice JavaScript del produttore di accedere al contenitore delle proprietà del processo e ai flussi di dati persistenti. writePrintDataProgress

[in] Oggetto IPrinterScriptableSequentialStream che il codice JavaScript del produttore può usare per leggere e scrivere dati nel dispositivo di stampa. printData

[in] Oggetto IDispatch , matrice JavaScript dei dati di stampa correnti. Il parametro printData consente al codice JavaScript di modificare i dati prima di memorizzarli nella cache in uno dei flussi di dati in jobScriptContext o inviarli alla stampante tramite printerStream. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che il codice JavaScript del produttore può usare per leggere e scrivere dati nel dispositivo di stampa. printerBidiSchemaResponses

[out] Oggetto IPrinterBidiSchemaResponses che il codice JavaScript del produttore può usare per restituire eventuali modifiche o aggiornamenti del valore dello schema Bidi.

Valori restituiti (metodo writePrintData)

Valore restituito Descrizione
0 Esito positivo. Il numero di byte elaborati dal flusso di dati di stampa (printData) viene restituito tramite writePrintDataProgress.
1 Errore: restituisce un codice di errore allo spooler di stampa.
2 Riprova: elabora gli aggiornamenti dello schema Bidi (inclusi gli eventi Bidi) nella stampanteBidiSchemaResponses e quindi chiama di nuovo la funzione JavaScript per consentire al codice del produttore di continuare a elaborare i dati. Il numero di byte elaborati dal flusso di dati di stampa (printData) viene restituito tramite writePrintDataProgress.
3 DeviceBusy: il canale di comunicazione del dispositivo non accetta i dati in questo momento. Questo non indica un errore. USBMon dovrebbe informare lo spooler che il dispositivo è occupato e quindi chiamare di nuovo la funzione in un secondo momento. Il numero di byte elaborati dal flusso di dati di stampa (printData) viene restituito tramite writePrintDataProgress.
4 AbortTheJob: il dispositivo non può continuare l'elaborazione del processo oppure l'utente ha annullato il processo usando il pannello anteriore del dispositivo di stampa. Quando USBMon riceve il messaggio per interrompere un processo di stampa, passa le informazioni allo spooler di stampa per interrompere il processo, prima di tornare.

endPrintJob, metodo

USBMon chiama questo metodo durante endDocPort. La chiamata a endPrintJob consente al driver di modificare il flusso di stampa o di implementare un protocollo di richiesta/risposta basato su host utilizzato mentre il dispositivo di stampa sta stampando un processo. L'oggetto contesto del processo viene passato al metodo per consentire al codice JavaScript del produttore di:

  • Completare l'elaborazione di tutti i dati di stampa persistenti

  • Accedere al dispositivo stampante tramite il flusso di stampa

  • Accedere a un oggetto in grado di passare le risposte dello schema Bidi per USBMon per elaborare

function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parametri (metodo endPrintJob)

jobScriptContext [in] Oggetto IPrinterScriptUsbJobContext che consente al codice JavaScript del produttore di accedere al contenitore delle proprietà del processo e ai flussi di dati persistenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che il codice JavaScript del produttore può usare per leggere e scrivere dati nel dispositivo di stampa. printerBidiSchemaResponses

[out] Oggetto IPrinterBidiSchemaResponses che il codice JavaScript del produttore può usare per restituire eventuali modifiche o aggiornamenti del valore dello schema Bidi.

Valori restituiti (metodo endPrintJob)

Valore restituito Descrizione
0 Operazione riuscita: pulire l'oggetto Contesto processo e restituire l'esito positivo allo spooler di stampa.
1 Errore: pulire l'oggetto Contesto processo e restituire un codice di errore allo spooler di stampa.
2 Riprova: elabora gli aggiornamenti dello schema Bidi (inclusi gli eventi Bidi) nella stampanteBidiSchemaResponses e quindi chiama nuovamente la funzione JavaScript per consentire al codice JavaScript del produttore di continuare a elaborare i dati.

Bidi su USB secondario

Se il dispositivo supporta un'interfaccia USB secondaria, il dispositivo può usare i metodi getSchemas e setSchema descritti nelle sezioni precedenti, oltre al metodo requestStatus .

requestStatus, metodo

Questo metodo viene chiamato invece di getStatus, se la direttiva BidiUSBStatusInterface è stata specificata nel file manifesto del driver v4. requestStatus viene usato per ottenere lo stato da un dispositivo di stampa durante la stampa del dispositivo.

Il diagramma seguente fornisce una panoramica dell'architettura dell'estensione USB Bidi, che mostra lo scenario in cui è stata specificata la direttiva BidiUSBStatusInterface e la comunicazione viene quindi instradata su un'interfaccia USB alternativa.

usb bidi extender architecture with requeststatus method.Architettura dell'extender usb bidi con metodo requeststatus.

Questo metodo viene chiamato ripetutamente durante la stampa. È previsto che il dispositivo restituisca dati solo se è disponibile e lo script può comprenderlo. Se il dispositivo non supporta lo stato richiesto o non è necessario chiamare di nuovo questo metodo, lo script deve restituire un valore pari a 2 che indicherà al thread di esecuzione getStatus in USBMon di uscire correttamente.

Parametri (metodo requestStatus)

scriptContext [in] Oggetto IPrinterScriptContext che fornisce l'accesso ai contenitori di proprietà pertinenti. printerStream

[in] Oggetto IPrinterScriptableSequentialStream che consente l'accesso in lettura e scrittura al bus USB. printerBidiSchemaResponses

[out] Oggetto usato dallo script per archiviare tutte le risposte alle chiavi di query.

Valori restituiti (metodo requestStatus)

Valore restituito Descrizione
0 Lo script è stato completato correttamente.
2 Il dispositivo collegato non supporta più lo stato richiesto e questa funzione non deve essere chiamata di nuovo.

IPrinterScriptContext

IPrinterScriptableSequentialStream

USB Bidi Extender