Api-referens för JavaScript

Important

Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.

Mer information finns i designguiden för utskriftssupportapp v1 och v2.

Tillverkare kan använda JavaScript-API:et som visas här, i kombination med en Bidi XML-fil för att ge stöd för Bidi via en USB-anslutning till en utskriftsenhet.

Mer information om USB Bidi-kommunikation med en utskriftsenhet finns i USB Bidi Extender.

Bidi via USB

getSchemas-metod

Den här metoden hanterar Bidi GET-frågor som \Printer.Consumables.YellowInk:Level. JavaScript-koden kan göra frågor till skrivaren med hjälp av USB-bussen och läsa svar när de kommer tillbaka.

syntax

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

Parametrar (getSchemas-metod)

scriptContext [in] Ett IPrinterScriptContext-objekt som ger åtkomst till relevanta egenskapspåsar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillåter läs- och skrivåtkomst till USB-bussen. schemaRequests

[i] Matrisobjekt som innehåller alla begärda Bidi-frågesträngar. printerBidiSchemaResponses

[ut] Objekt som skriptet använder för att lagra alla svar på frågenycklar.

Returnera värden (getSchemas-metod)

Returvärde Description
0 Skriptet har slutförts.
1 Den anslutna enheten var inte redo att ange viss begärd information. Anger att utskriftssystemet ska anropa funktionen igen med hjälp av eventuella könycklar som lagts till under bearbetningen.

setSchema-metod

Den här metoden hanterar Bidi SET-åtgärder. Skriptet kan fastställa det inkommande Bidi-schemavärdet för att antingen ange data på enheten eller utföra en åtgärd på enheten som rena pennanteckningshuvuden.

Om enheten inte är redo att bearbeta angivna data kan metoden returnera värdet 1 för att indikera att anropet ska utföras igen efter en väntetid.

Parametrar (setSchema-metod)

scriptContext [in] Ett IPrinterScriptContext-objekt som ger åtkomst till relevanta egenskapspåsar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillåter läs- och skrivåtkomst till USB-bussen. printerBidiSchemaElement

[i] Ett IPrinterBidiSchemaElement-objekt som innehåller alla data som är associerade med det Bidi-schemavärde som ska anges.

Returvärden (setSchema-metod)

Returvärde Description
0 Skriptet har slutförts.
1 Den anslutna enheten var inte redo att ange viss begärd information. Anger att utskriftssystemet ska anropa funktionen igen med hjälp av den angivna skrivarenBidiSchemaElement.

getStatus-metod

Den här metoden används för att hämta oönskad status från en skrivare medan enheten skriver ut. Den här funktionen anropas endast under utskrift. Enheten bör tillhandahålla data på den läskanal som det här skriptet kan tolka till Bidi-schemavärden. Eftersom skrivkanalen till enheten blockeras av utskriftsdata stöds endast oönskad status här.

Den här metoden anropas upprepade gånger under utskriften. Det förväntas att enheten endast returnerar data om den är tillgänglig och skriptet kan förstå det. Om enheten inte stöder oönskad status eller om du inte behöver anropa den här funktionen igen, bör skriptet returnera värdet 2 som gör att körningstråden getStatus i USBMon avslutas.

Parametrar (getStatus-metod)

scriptContext [in] Ett IPrinterScriptContext-objekt som ger åtkomst till relevanta egenskapspåsar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som ger läsåtkomst till USB-bussen. printerBidiSchemaResponses

[ut] Objekt som skriptet använder för att lagra alla svar på frågenycklar.

Returnera värden (getStatus-metod)

Returvärde Description
0 Skriptet har slutförts.
2 Den anslutna enheten stöder inte längre oönskad status och den här funktionen bör inte anropas igen.

startPrintJob-metod

USBMon anropar den här metoden under StartDocPort. Genom att anropa startPrintJob kan drivrutinen ändra utskriftsströmmen eller implementera ett värdbaserat protokoll för begäran/svar som används när utskriftsenheten skriver ut ett jobb. Jobbkontextobjektet skickas till funktionen så att tillverkarens JavaScript-kod kan hantera jobbegenskaper och få åtkomst till beständiga dataströmmar. Utskriftsdata skickas som en JavaScript-matris som JavaScript-koden ska bearbeta. startPrintJob ger också åtkomst till skrivarenheten på följande sätt:

  • Via utskriftsströmmen

  • Via ett objekt som kan returnera Bidi Schema-svar för USBMon att bearbeta

Syntax (startPrintJob-metod)

function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parametrar (startPrintJob-metod)

jobScriptContext [in] Ett IPrinterScriptUsbJobContext-objekt som ger tillverkarens JavaScript-kod åtkomst till jobbegenskapspåsen och beständiga dataströmmar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillverkarens JavaScript-kod kan använda för att läsa och skriva data till utskriftsenheten. printerBidiSchemaResponses

[ut] Ett IPrinterBidiSchemaResponses-objekt som tillverkarens JavaScript-kod kan använda för att returnera eventuella ändringar/uppdateringar av Bidi-schemavärden.

Returvärden (startPrintJob-metod)

Returvärde Description
0 Success.
1 Fel – Rensa objektet Jobbkontext och returnera en felkod till utskriftshanteraren.

writePrintData-metod

USBMon anropar den här metoden under writePort. Genom att anropa writePrintData kan drivrutinen ändra utskriftsströmmen eller implementera ett värdbaserat protokoll för begäran/svar som används när utskriftsenheten skriver ut ett jobb. Jobbkontextobjektet skickas till metoden så att tillverkarens JavaScript-kod kan hantera jobbegenskaper och få åtkomst till beständiga dataströmmar. Utskriftsdata skickas som en JavaScript-matris som JavaScript-koden ska bearbeta. writePrintData ger också åtkomst till skrivarenheten på följande sätt:

  • Via utskriftsströmmen

  • Via ett objekt som kan returnera Bidi Schema-svar för USBMon att bearbeta

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

Parametrar (writePrintData-metod)

jobScriptContext [in] Ett IPrinterScriptUsbJobContext-objekt som ger tillverkarens JavaScript-kod åtkomst till jobbegenskapspåsen och beständiga dataströmmar. writePrintDataProgress

[i] Ett IPrinterScriptableSequentialStream-objekt som tillverkarens JavaScript-kod kan använda för att läsa och skriva data till utskriftsenheten. printData

[i] Ett IDispatch-objekt , en JavaScript-matris med aktuella utskriftsdata. Med parametern printData kan JavaScript-koden manipulera data innan du antingen cachelagrar dem till en av dataströmmarna i jobScriptContext eller skickar dem till skrivaren via printerStream. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillverkarens JavaScript-kod kan använda för att läsa och skriva data till utskriftsenheten. printerBidiSchemaResponses

[ut] Ett IPrinterBidiSchemaResponses-objekt som tillverkarens JavaScript-kod kan använda för att returnera eventuella ändringar eller uppdateringar av Bidi-schemavärden.

Returvärden (writePrintData-metod)

Returvärde Description
0 Success. Antalet byte som bearbetas från utskriftsdataströmmen (printData) returneras via writePrintDataProgress.
1 Fel – Returnera en felkod till utskriftshanteraren.
2 Försök igen – Bearbeta eventuella Bidi-schemauppdateringar (inklusive Bidi-händelser) i skrivarenBidiSchemaResponses och anropa sedan JavaScript-funktionen igen så att tillverkarens kod kan fortsätta bearbeta data. Antalet byte som bearbetas från utskriftsdataströmmen (printData) returneras via writePrintDataProgress.
3 DeviceBusy – Enhetens kommunikationskanal accepterar inte data just nu. Detta indikerar inte ett fel. USBMon bör informera bufferten om att enheten är upptagen och sedan anropa funktionen igen vid ett senare tillfälle. Antalet byte som bearbetas från utskriftsdataströmmen (printData) returneras via writePrintDataProgress.
4 AbortTheJob – Enheten kan inte fortsätta bearbeta jobbet, eller så har användaren avbrutit jobbet med hjälp av den främre panelen på utskriftsenheten. När USBMon tar emot meddelandet om att avbryta ett utskriftsjobb skickar det informationen till utskriftshanteraren för att avbryta jobbet innan det returneras.

endPrintJob-metod

USBMon anropar den här metoden under endDocPort. Med endPrintJob kan drivrutinen ändra utskriftsströmmen eller implementera ett värdbaserat protokoll för begäran/svar som används när utskriftsenheten skriver ut ett jobb. Jobbkontextobjektet skickas till metoden så att tillverkarens JavaScript-kod kan:

  • Slutför bearbetningen av utskriftsdata som har sparats

  • Få åtkomst till skrivarenheten via utskriftsströmmen

  • Få åtkomst till ett objekt som kan skicka Bidi Schema-svar för USBMon att bearbeta

function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parametrar (endPrintJob-metod)

jobScriptContext [in] Ett IPrinterScriptUsbJobContext-objekt som ger tillverkarens JavaScript-kod åtkomst till jobbegenskapspåsen och beständiga dataströmmar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillverkarens JavaScript-kod kan använda för att läsa och skriva data till utskriftsenheten. printerBidiSchemaResponses

[ut] Ett IPrinterBidiSchemaResponses-objekt som tillverkarens JavaScript-kod kan använda för att returnera eventuella ändringar eller uppdateringar av Bidi-schemavärden.

Returvärden (endPrintJob-metod)

Returvärde Description
0 Lyckades – Rensa objektet Jobbkontext och returnera lyckat resultat till utskriftshanteraren.
1 Fel – Rensa objektet Jobbkontext och returnera en felkod till utskriftshanteraren.
2 Försök igen – Bearbeta eventuella Bidi-schemauppdateringar (inklusive Bidi-händelser) i skrivarenBidiSchemaResponses och anropa sedan JavaScript-funktionen igen så att tillverkarens JavaScript-kod kan fortsätta bearbeta data.

Bidi via sekundär USB

Om enheten stöder ett sekundärt USB-gränssnitt kan enheten använda metoderna getSchemas och setSchema som beskrivs i föregående avsnitt, utöver metoden requestStatus .

requestStatus-metod

Den här metoden anropas i stället för getStatus, om bidiUSBStatusInterface-direktivet har angetts i v4-drivrutinens manifestfil. requestStatus används för att hämta status från en utskriftsenhet medan enheten skriver ut.

Följande diagram innehåller en översikt över arkitekturen för USB Bidi-tillägget som visar scenariot där BidiUSBStatusInterface-direktivet har angetts och kommunikationen dirigeras därför via ett alternativt USB-gränssnitt.

usb bidi extender-arkitektur med requeststatus-metoden.

Den här metoden anropas upprepade gånger under utskriften. Det förväntas att enheten endast returnerar data om den är tillgänglig och skriptet kan förstå det. Om enheten inte stöder begärd status eller om du inte behöver anropa den här metoden igen, bör skriptet returnera värdet 2 som gör att körningstråden getStatus i USBMon avslutas.

Parametrar (requestStatus-metod)

scriptContext [in] Ett IPrinterScriptContext-objekt som ger åtkomst till relevanta egenskapspåsar. printerStream

[i] Ett IPrinterScriptableSequentialStream-objekt som tillåter läs- och skrivåtkomst till USB-bussen. printerBidiSchemaResponses

[ut] Objekt som skriptet använder för att lagra alla svar på frågenycklar.

Returnera värden (requestStatus-metod)

Returvärde Description
0 Skriptet har slutförts.
2 Den anslutna enheten stöder inte längre begärd status och den här funktionen bör inte anropas igen.

IPrinterScriptContext

IPrinterScriptableSequentialStream

USB Bidi Extender