JavaScript API-referentie

Important

Het moderne afdrukplatform is de voorkeursmiddel van Windows om te communiceren met printers. We raden aan om de IPP inbox class driver van Microsoft te gebruiken, samen met Print Support Apps (PSA), om de afdrukervaring in Windows 10 en 11 aan te passen voor de ontwikkeling van printerapparaten.

Zie de ontwerphandleiding voor Print Support App v1 en v2 voor meer informatie.

Fabrikanten kunnen de Hier gepresenteerde JavaScript-API gebruiken, in combinatie met een Bidi XML-bestand om ondersteuning te bieden voor Bidi via een USB-verbinding met een afdrukapparaat.

Zie USB Bidi Extender voor meer informatie over USB Bidi-communicatie met een printapparaat.

Bidi via USB

methode getSchemas

Deze methode verwerkt Bidi GET-query's zoals \Printer.Consumables.YellowInk:Level. De JavaScript-code kan query's naar de printer maken met behulp van de USB-bus en antwoorden lezen zodra ze terugkomen.

syntaxis

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

Parameters (methode getSchemas)

scriptContext [in] Een IPrinterScriptContext-object dat toegang biedt tot relevante eigenschappentassen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat lees- en schrijftoegang tot de USB-bus toestaat. schemaRequests

[in] Matrixobject met alle aangevraagde Bidi-queryreeksen. printerBidiSchemaResponses

[uit] Object dat door het script wordt gebruikt om alle reacties op querysleutels op te slaan.

Retourwaarden (methode getSchemas)

Retourwaarde Description
0 Het script is voltooid.
1 Het gekoppelde apparaat was niet gereed om een aantal aangevraagde informatie op te geven. Geeft aan dat het afdruksysteem de functie opnieuw moet aanroepen met behulp van requerysleutels die tijdens de verwerking zijn toegevoegd.

methode setSchema

Met deze methode worden Bidi SET-bewerkingen verwerkt. Het script kan de binnenkomende Bidi-schemawaarde bepalen om gegevens in te stellen op het apparaat of een actie uitvoeren op het apparaat, zoals schone inktkoppen.

Als het apparaat niet gereed is om de opgegeven gegevens te verwerken, kan de methode een waarde van 1 retourneren om aan te geven dat de aanroep na een wachttijd opnieuw moet worden geprobeerd.

Parameters (methode setSchema)

scriptContext [in] Een IPrinterScriptContext-object dat toegang biedt tot relevante eigenschappentassen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat lees- en schrijftoegang tot de USB-bus toestaat. printerBidiSchemaElement

[in] Een IPrinterBidiSchemaElement-object dat alle gegevens bevat die zijn gekoppeld aan de Bidi-schemawaarde die moet worden ingesteld.

Retourwaarden (methode setSchema)

Retourwaarde Description
0 Het script is voltooid.
1 Het gekoppelde apparaat was niet gereed om een aantal aangevraagde informatie op te geven. Geeft aan dat het afdruksysteem de functie opnieuw moet aanroepen met behulp van het meegeleverde printerBidiSchemaElement.

methode getStatus

Deze methode wordt gebruikt om ongevraagde status van een printer te verkrijgen terwijl het apparaat afdrukt. Deze functie wordt alleen aangeroepen tijdens het afdrukken. Het apparaat moet gegevens opgeven in het leeskanaal dat dit script kan interpreteren in Bidi-schemawaarden. Omdat het schrijfkanaal naar het apparaat wordt geblokkeerd door afdrukgegevens, wordt hier alleen de ongevraagde status ondersteund.

Deze methode wordt herhaaldelijk aangeroepen tijdens het afdrukken. Er wordt verwacht dat het apparaat alleen gegevens retourneert als het beschikbaar is en het script het kan begrijpen. Als het apparaat geen ongevraagde status ondersteunt of deze functie niet opnieuw hoeft aan te roepen, moet het script een waarde retourneren van 2 waarmee de getStatus-uitvoeringsthread in USBMon kan worden afgesloten.

Parameters (methode getStatus)

scriptContext [in] Een IPrinterScriptContext-object dat toegang biedt tot relevante eigenschappentassen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat leestoegang tot de USB-bus toestaat. printerBidiSchemaResponses

[uit] Object dat door het script wordt gebruikt om alle reacties op querysleutels op te slaan.

Retourwaarden (methode getStatus)

Retourwaarde Description
0 Het script is voltooid.
2 Het gekoppelde apparaat ondersteunt niet langer ongevraagde status en deze functie mag niet opnieuw worden aangeroepen.

methode startPrintJob

USBMon roept deze methode aan tijdens StartDocPort. Als u startPrintJob aanroept, kan het stuurprogramma de afdrukstroom wijzigen of een op een host gebaseerd aanvraag-/antwoordprotocol implementeren dat wordt gebruikt terwijl het afdrukapparaat een taak afdrukt. Het taakcontextobject wordt doorgegeven aan de functie om de JavaScript-code van de fabrikant toe te staan taakeigenschappen te beheren en toegang te krijgen tot de permanente gegevensstromen. De afdrukgegevens worden doorgegeven als een JavaScript-matrix voor de JavaScript-code die moet worden verwerkt. startPrintJob biedt op de volgende manieren toegang tot het printerapparaat:

  • Via de afdrukstroom

  • Via een object dat Bidi-schemareacties voor USBMon kan retourneren om te verwerken

Syntaxis (methode startPrintJob)

function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parameters (methode startPrintJob)

jobScriptContext [in] Een IPrinterScriptUsbJobContext-object dat de JavaScript-code van de fabrikant toegang geeft tot de taakeigenschapszak en de permanente gegevensstromen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat de JavaScript-code van de fabrikant kan gebruiken voor het lezen en schrijven van gegevens naar het afdrukapparaat. printerBidiSchemaResponses

[uit] Een IPrinterBidiSchemaResponses-object dat de JavaScript-code van de fabrikant kan gebruiken om wijzigingen/updates van Bidi-schemawaarden te retourneren.

Retourwaarden (methode startPrintJob)

Retourwaarde Description
0 Success.
1 Fout: schoon het taakcontextobject op en retourneer een foutcode naar de afdrukspooler.

methode writePrintData

USBMon roept deze methode aan tijdens writePort. Als u writePrintData aanroept, kan het stuurprogramma de afdrukstroom wijzigen of een op een host gebaseerd aanvraag-/antwoordprotocol implementeren dat wordt gebruikt terwijl het afdrukapparaat een taak afdrukt. Het taakcontextobject wordt doorgegeven aan de methode om de JavaScript-code van de fabrikant toe te staan taakeigenschappen te beheren en toegang te krijgen tot de permanente gegevensstromen. De afdrukgegevens worden doorgegeven als een JavaScript-matrix voor de JavaScript-code die moet worden verwerkt. writePrintData biedt ook toegang tot het printerapparaat op de volgende manieren:

  • Via de afdrukstroom

  • Via een object dat Bidi-schemareacties voor USBMon kan retourneren om te verwerken

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

Parameters (methode writePrintData)

jobScriptContext [in] Een IPrinterScriptUsbJobContext-object dat de JavaScript-code van de fabrikant toegang geeft tot de taakeigenschapszak en de permanente gegevensstromen. writePrintDataProgress

[in] Een IPrinterScriptableSequentialStream-object dat de JavaScript-code van de fabrikant kan gebruiken om gegevens naar het afdrukapparaat te lezen en te schrijven. printData

[in] Een IDispatch-object , een JavaScript-matrix van de huidige afdrukgegevens. Met de parameter printData kan de JavaScript-code de gegevens bewerken voordat deze in de cache worden opgeslagen in een van de gegevensstromen in jobScriptContext of naar de printer worden verzonden via printerStream. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat de JavaScript-code van de fabrikant kan gebruiken om gegevens naar het afdrukapparaat te lezen en te schrijven. printerBidiSchemaResponses

[uit] Een IPrinterBidiSchemaResponses-object dat de JavaScript-code van de fabrikant kan gebruiken om wijzigingen of updates van de Bidi-schemawaarde te retourneren.

Retourwaarden (methode writePrintData)

Retourwaarde Description
0 Success. Het aantal bytes dat is verwerkt vanuit de afdrukgegevensstroom (printData) wordt geretourneerd via writePrintDataProgress.
1 Fout: retourneer een foutcode naar de afdrukspooler.
2 Probeer het opnieuw: verwerk alle Bidi-schema-updates (inclusief Bidi-gebeurtenissen) in printerBidiSchemaResponses en roep de JavaScript-functie opnieuw aan om de code van de fabrikant toe te staan de gegevens te blijven verwerken. Het aantal bytes dat is verwerkt vanuit de afdrukgegevensstroom (printData) wordt geretourneerd via writePrintDataProgress.
3 DeviceBusy: het communicatiekanaal voor apparaten accepteert momenteel geen gegevens. Dit geeft geen fout aan. USBMon moet de spooler informeren dat het apparaat bezet is en vervolgens de functie op een later tijdstip opnieuw aanroepen. Het aantal bytes dat is verwerkt vanuit de afdrukgegevensstroom (printData) wordt geretourneerd via writePrintDataProgress.
4 AbortTheJob: het apparaat kan de taak niet blijven verwerken of de gebruiker heeft de taak geannuleerd via het voorpaneel van het afdrukapparaat. Wanneer USBMon het bericht ontvangt om een afdruktaak af te breken, wordt de informatie doorgegeven aan de afdrukspooler om de taak af te breken voordat deze wordt geretourneerd.

methode endPrintJob

USBMon roept deze methode aan tijdens endDocPort. Als u endPrintJob aanroept, kan het stuurprogramma de afdrukstroom wijzigen of een aanvraag-/antwoordprotocol op basis van een host implementeren dat wordt gebruikt terwijl het afdrukapparaat een taak afdrukt. Het taakcontextobject wordt doorgegeven aan de methode om de JavaScript-code van de fabrikant toe te staan:

  • De verwerking van eventuele afdrukgegevens voltooien die behouden blijven

  • Toegang tot het printerapparaat via de afdrukstroom

  • Toegang krijgen tot een object dat Bidi-schemareacties kan doorgeven voor USBMon die moet worden verwerkt

function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parameters (endPrintJob-methode)

jobScriptContext [in] Een IPrinterScriptUsbJobContext-object dat de JavaScript-code van de fabrikant toegang geeft tot de taakeigenschapszak en de permanente gegevensstromen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat de JavaScript-code van de fabrikant kan gebruiken om gegevens naar het afdrukapparaat te lezen en te schrijven. printerBidiSchemaResponses

[uit] Een IPrinterBidiSchemaResponses-object dat de JavaScript-code van de fabrikant kan gebruiken om wijzigingen of updates van de Bidi-schemawaarde te retourneren.

Retourwaarden (endPrintJob-methode)

Retourwaarde Description
0 Geslaagd: schoon het object Taakcontext op en keer terug naar de afdrukspooler.
1 Fout: schoon het taakcontextobject op en retourneer een foutcode naar de afdrukspooler.
2 Opnieuw proberen: verwerk alle Bidi-schema-updates (inclusief Bidi-gebeurtenissen) in printerBidiSchemaResponses en roep de JavaScript-functie opnieuw aan om de JavaScript-code van de fabrikant toe te staan om de gegevens te blijven verwerken.

Bidi via secundaire USB

Als het apparaat een secundaire USB-interface ondersteunt, kan het apparaat de getSchemas en setSchema-methoden gebruiken die in de voorgaande secties worden beschreven, naast de methode requestStatus.

requestStatus-methode

Deze methode wordt aangeroepen in plaats van getStatus, als de BidiUSBStatusInterface-instructie is opgegeven in het manifestbestand van het v4-stuurprogramma. requestStatus wordt gebruikt om de status van een afdrukapparaat te verkrijgen terwijl het apparaat wordt afgedrukt.

In het volgende diagram ziet u een overzicht van de ARCHITECTUUR van de USB Bidi-extensie, waarin het scenario wordt weergegeven waarin de BidiUSBStatusInterface-instructie is opgegeven en de communicatie daarom wordt doorgestuurd via een alternatieve USB-interface.

usb bidi extender architectuur met requeststatus methode.

Deze methode wordt herhaaldelijk aangeroepen tijdens het afdrukken. Er wordt verwacht dat het apparaat alleen gegevens retourneert als het beschikbaar is en het script het kan begrijpen. Als het apparaat geen ondersteuning biedt voor de aangevraagde status of als u deze methode niet opnieuw hoeft aan te roepen, moet het script een waarde retourneren van 2 waarmee de getStatus-uitvoeringsthread in USBMon kan worden afgesloten.

Parameters (requestStatus-methode)

scriptContext [in] Een IPrinterScriptContext-object dat toegang biedt tot relevante eigenschappentassen. printerStream

[in] Een IPrinterScriptableSequentialStream-object dat lees- en schrijftoegang tot de USB-bus toestaat. printerBidiSchemaResponses

[uit] Object dat door het script wordt gebruikt om alle reacties op querysleutels op te slaan.

Retourwaarden (requestStatus-methode)

Retourwaarde Description
0 Het script is voltooid.
2 Het gekoppelde apparaat ondersteunt niet langer de aangevraagde status en deze functie mag niet opnieuw worden aangeroepen.

IPrinterScriptContext

IPrinterScriptableSequentialStream

USB Bidi Extender