Sdílet prostřednictvím


Referenční informace k rozhraní JAVAScript API

Important

Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.

Další informace najdete v průvodci návrhem aplikace podpory tisku v1 a v2.

Výrobci mohou v kombinaci se souborem Bidi XML použít javascriptové rozhraní API, které poskytuje podporu Pro Bidi přes USB připojení k tiskovému zařízení.

Další informace o komunikaci USB Bidi s tiskovým zařízením naleznete v tématu USB Bidi Extender.

Bidi přes USB

getSchemas – metoda

Tato metoda zpracovává dotazy Bidi GET, jako je \Printer.Consumables.YellowInk:Level. Kód JavaScriptu dokáže provádět dotazy na tiskárnu pomocí sběrnice USB a číst odpovědi, jakmile se vrátí.

syntax

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

Parameters (metoda getSchemas)

scriptContext [in] Objekt IPrinterScriptContext , který poskytuje přístup k relevantním kontejnerům vlastností. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který umožňuje přístup ke sběrnici USB pro čtení a zápis. schemaRequests

[v] Maticový objekt obsahující všechny požadované řetězce dotazu Bidi. printerBidiSchemaResponses

[ven] Objekt, který skript používá k uložení všech odpovědí na klíče dotazu.

Návratové hodnoty (metoda getSchemas)

Návratová hodnota Description
0 Skript byl úspěšně dokončen.
1 Připojené zařízení nebylo připravené k zadání požadovaných informací. Označuje, že systém tisku by měl funkci znovu volat pomocí libovolných klíčů requery přidaných během zpracování.

metoda setSchema

Tato metoda zpracovává operace Bidi SET. Skript může určit příchozí hodnotu schématu Bidi tak, aby buď nastavila data v zařízení, nebo na zařízení provedla nějakou akci, například čisté inkoustové hlavy.

Pokud zařízení není připravené ke zpracování zadaných dat, může metoda vrátit hodnotu 1, která označuje, že se má volání opakovat po čekací době.

Parametry (metoda setSchema)

scriptContext [in] Objekt IPrinterScriptContext , který poskytuje přístup k relevantním kontejnerům vlastností. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který umožňuje přístup ke sběrnici USB pro čtení a zápis. printerBidiSchemaElement

[v] IPrinterBidiSchemaElement objekt, který obsahuje všechna data přidružená k Hodnotě schématu Bidi nastavit.

Návratové hodnoty (metoda setSchema)

Návratová hodnota Description
0 Skript byl úspěšně dokončen.
1 Připojené zařízení nebylo připravené k zadání požadovaných informací. Označuje, že tiskový systém by měl funkci znovu volat pomocí dodané tiskárnyBidiSchemaElement.

getStatus – metoda

Tato metoda slouží k získání nevyžádaného stavu z tiskárny při tisku zařízení. Tato funkce se volá pouze při tisku. Zařízení by mělo poskytovat data v kanálu pro čtení, který může tento skript interpretovat do hodnot schématu Bidi. Vzhledem k tomu, že kanál zápisu do zařízení je blokovaný tištěnými daty, je zde podporován pouze nevyžádaný stav.

Tato metoda se při tisku volá opakovaně. Očekává se, že zařízení vrátí data jenom v případě, že je k dispozici, a skript je dokáže pochopit. Pokud zařízení nepodporuje nevyžádaný stav nebo není nutné tuto funkci znovu volat, skript by měl vrátit hodnotu 2, která oznámí, že spouštěcí vlákno getStatus v USBMon úspěšně ukončí.

Parameters (metoda getStatus)

scriptContext [in] Objekt IPrinterScriptContext , který poskytuje přístup k relevantním kontejnerům vlastností. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který umožňuje přístup pro čtení ke sběrnici USB. printerBidiSchemaResponses

[ven] Objekt, který skript používá k uložení všech odpovědí na klíče dotazu.

Návratové hodnoty (metoda getStatus)

Návratová hodnota Description
0 Skript byl úspěšně dokončen.
2 Připojené zařízení už nepodporuje nevyžádaný stav a tato funkce by neměla být znovu volána.

metoda startPrintJob

USBMon volá tuto metodu během StartDocPort. Volání startPrintJob umožňuje ovladači upravit datový proud tisku nebo implementovat protokol požadavků a odpovědí založený na hostiteli, který se používá při tisku tiskového zařízení při tisku úlohy. Objekt kontextu úlohy se předává do funkce, aby kód JavaScriptu výrobce mohl spravovat vlastnosti úlohy a získat přístup k trvalým datovým proudům. Tisková data se předávají jako pole JavaScriptu, aby kód JavaScriptu zpracovával. startPrintJob také poskytuje přístup k zařízení tiskárny následujícími způsoby:

  • Prostřednictvím tiskového streamu

  • Prostřednictvím objektu, který může vrátit odpovědi schématu Bidi pro ZPRACOVÁNÍ USBMon

Syntaxe (metoda startPrintJob)

function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parameters (metoda startPrintJob)

jobScriptContext [in] Objekt IPrinterScriptUsbJobContext , který dává kódu JavaScriptu výrobce přístup k kontejneru vlastností úlohy a trvalým datovým proudům. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který kód JavaScriptu výrobce může použít ke čtení a zápisu dat do tiskového zařízení. printerBidiSchemaResponses

[ven] Objekt IPrinterBidiSchemaResponses , který kód JavaScriptu výrobce může použít k vrácení změn/aktualizací hodnoty schématu Bidi.

Návratové hodnoty (metoda startPrintJob)

Návratová hodnota Description
0 Success.
1 Selhání – Vyčistěte objekt kontextu úlohy a vraťte kód chyby do zařazování tisku.

writePrintData – metoda

USBMon volá tuto metodu během writePort. Volání writePrintData umožňuje ovladači upravit datový proud tisku nebo implementovat protokol požadavků a odpovědí založený na hostiteli, který se používá při tisku tiskového zařízení při tisku úlohy. Objekt kontextu úlohy se předává do metody, aby kód JavaScriptu výrobce mohl spravovat vlastnosti úlohy a získat přístup k trvalým datovým proudům. Tisková data se předávají jako pole JavaScriptu, aby kód JavaScriptu zpracovával. writePrintData také poskytuje přístup k zařízení tiskárny následujícími způsoby:

  • Prostřednictvím tiskového streamu

  • Prostřednictvím objektu, který může vrátit odpovědi schématu Bidi pro ZPRACOVÁNÍ USBMon

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

Parameters (metoda writePrintData)

jobScriptContext [in] Objekt IPrinterScriptUsbJobContext , který dává kódu JavaScriptu výrobce přístup k kontejneru vlastností úlohy a trvalým datovým proudům. writePrintDataProgress

[v] Objekt IPrinterScriptableSequentialStream , který kód JavaScriptu výrobce může použít ke čtení a zápisu dat do tiskového zařízení. printData

[v] Objekt IDispatch , javascriptové pole aktuálních tiskových dat. Parametr printData umožňuje kódu Jazyka JavaScript manipulovat s daty před jejich uložením do mezipaměti do jednoho z datových proudů v jobScriptContext nebo odeslat do tiskárny prostřednictvím printerStream. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který kód JavaScriptu výrobce může použít ke čtení a zápisu dat do tiskového zařízení. printerBidiSchemaResponses

[ven] Objekt IPrinterBidiSchemaResponses , který kód JavaScriptu výrobce může použít k vrácení změn nebo aktualizací hodnoty schématu Bidi.

Návratové hodnoty (metoda writePrintData)

Návratová hodnota Description
0 Success. Počet bajtů zpracovaných z tiskového datového streamu (printData) se vrátí prostřednictvím writePrintDataProgress.
1 Selhání – Vrácení kódu chyby do zařazování tisku
2 Opakování – Zpracování všech aktualizací schématu Bidi (včetně událostí Bidi) v tiskárněBidiSchemaResponses a opětovné voláním funkce JavaScriptu umožníte kódu výrobce pokračovat ve zpracování dat. Počet bajtů zpracovaných z tiskového datového streamu (printData) se vrátí prostřednictvím writePrintDataProgress.
3 DeviceBusy – Komunikační kanál zařízení momentálně nepřijímá data. To neznamená selhání. USBMon by měl informovat zařazování, že zařízení je zaneprázdněné, a pak znovu zavolat funkci později. Počet bajtů zpracovaných z tiskového datového streamu (printData) se vrátí prostřednictvím writePrintDataProgress.
4 AbortTheJob – Zařízení nemůže pokračovat ve zpracování úlohy nebo uživatel úlohu zrušil pomocí předního panelu tiskového zařízení. Když funkce USBMon obdrží zprávu o přerušení tiskové úlohy, před vrácením předá informace zařazování tisku do zařazování tisku.

endPrintJob – metoda

USBMon volá tuto metodu během endDocPort. Volání endPrintJob umožňuje ovladači upravit datový proud tisku nebo implementovat protokol požadavku/odpovědi na základě hostitele, který se používá při tisku tiskového zařízení pro úlohu. Objekt kontextu úlohy se předá metodě, aby kód JavaScriptu výrobce mohl:

  • Dokončete zpracování všech tištěných dat, která se zachovají

  • Přístup k zařízení tiskárny prostřednictvím tiskového streamu

  • Přístup k objektu, který může předat odpovědi schématu Bidi pro ZPRACOVÁNÍ USBMon

function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);

Parameters (metoda endPrintJob)

jobScriptContext [in] Objekt IPrinterScriptUsbJobContext, který dává kódu JavaScriptu výrobce přístup k kontejneru vlastností úlohy a trvalým datovým proudům. printerStream

[v] Objekt IPrinterScriptableSequentialStream, který kód JavaScriptu výrobce může použít ke čtení a zápisu dat do tiskového zařízení. printerBidiSchemaResponses

[ven] Objekt IPrinterBidiSchemaResponses, který kód JavaScriptu výrobce může použít k vrácení změn nebo aktualizací hodnoty schématu Bidi.

Návratové hodnoty (metoda endPrintJob)

Návratová hodnota Description
0 Úspěch – Vyčistěte objekt kontextu úlohy a vraťte úspěch do zařazování tisku.
1 Selhání – Vyčistěte objekt kontextu úlohy a vraťte kód chyby do zařazování tisku.
2 Opakování – Zpracování všech aktualizací schématu Bidi (včetně událostí Bidi) v tiskárněBidiSchemaResponses a opětovné voláním funkce JavaScriptu, aby kód JavaScriptu výrobce mohl pokračovat ve zpracování dat.

Bidi přes sekundární USB

Pokud zařízení podporuje sekundární rozhraní USB, může zařízení kromě metody requestStatus použít metody getSchemas a setSchema popsané v předchozích částech.

metoda requestStatus

Tato metoda se volá místo getStatus, pokud byla v souboru manifestu ovladače v4 zadána direktiva BidiUSBStatusInterface . requestStatus slouží k získání stavu z tiskového zařízení při tisku zařízení.

Následující diagram poskytuje přehled architektury rozšíření USB Bidi, který znázorňuje scénář, ve kterém byla zadána direktiva BidiUSBStatusInterface a komunikace je proto směrována přes alternativní rozhraní USB.

usb bidi extender architektura s metodou requeststatus.

Tato metoda se při tisku volá opakovaně. Očekává se, že zařízení vrátí data jenom v případě, že je k dispozici, a skript je dokáže pochopit. Pokud zařízení nepodporuje požadovaný stav nebo není nutné tuto metodu znovu volat, skript by měl vrátit hodnotu 2, která řekne vláknu getStatus spuštění v USBMon úspěšně ukončit.

Parameters (metoda requestStatus)

scriptContext [in] Objekt IPrinterScriptContext , který poskytuje přístup k relevantním kontejnerům vlastností. printerStream

[v] Objekt IPrinterScriptableSequentialStream , který umožňuje přístup ke sběrnici USB pro čtení a zápis. printerBidiSchemaResponses

[ven] Objekt, který skript používá k uložení všech odpovědí na klíče dotazu.

Návratové hodnoty (metoda requestStatus)

Návratová hodnota Description
0 Skript byl úspěšně dokončen.
2 Připojené zařízení už nepodporuje požadovaný stav a tato funkce by neměla být znovu volána.

IPrinterScriptContext

IPrinterScriptableSequentialStream

USB Bidi Extender