Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie im Designhandbuch zur Print Support App v1 und v2.
Hersteller können die hier vorgestellte JavaScript-API in Kombination mit einer Bidi-XML-Datei verwenden, um Unterstützung für Bidi über eine USB-Verbindung zu einem Gerät bereitzustellen.
Weitere Informationen über die USB Bidi-Kommunikation mit einem Druckgerät finden Sie unter USB Bidi Extender.
Bidi über USB
getSchemas-Methode
Diese Methode behandelt Bidi-GET-Abfragen wie z. B. \Printer.Consumables.YellowInk:Level. Der JavaScript-Code ist in der Lage, Abfragen an den Drucker über den USB-Bus zu stellen und die Antworten zu lesen, sobald sie zurückkommen.
syntax
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
Parameter (getSchemas-Methode)
scriptContext [in] Ein IPrinterScriptContext-Objekt , das Zugriff auf relevante Eigenschaftenbehälter bietet. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das Lese- und Schreibzugriff auf den USB-Bus ermöglicht. schemaRequests
[in] Array-Objekt, das alle angefragten Zeichenfolgen der Bidi-Abfrage enthält. printerBidiSchemaResponses
[out] Objekt, das das Skript verwendet, um alle Antworten auf Abfragen zu speichern.
Rückgabewerte (Methode getSchemas)
| Rückgabewert | Description |
|---|---|
| 0 | Das Skript wurde erfolgreich abgeschlossen. |
| 1 | Das angeschlossene Gerät war nicht bereit, einige angefragte Informationen zu liefern. Zeigt an, dass das Drucksystem die Funktion unter Verwendung der während der Verarbeitung hinzugefügten Requery-Keys erneut aufrufen sollte. |
setSchema-Methode
Diese Methode verarbeitet Bidi-SET-Vorgänge. Das Skript kann den eingehenden Bidi-Schema-Wert ermitteln, um entweder Daten im Gerät festzulegen oder eine Aktion auf dem Gerät durchzuführen, wie z. B. das Reinigen von Tintenköpfen.
Wenn das Gerät nicht bereit ist, die angegebenen Daten zu verarbeiten, kann die Methode den Wert 1 zurückgeben, um anzuzeigen, dass der Aufruf nach einer Wartezeit erneut versucht werden soll.
Parameter (setSchema-Methode)
scriptContext [in] Ein IPrinterScriptContext-Objekt , das Zugriff auf relevante Eigenschaftenbehälter bietet. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das Lese- und Schreibzugriff auf den USB-Bus ermöglicht. printerBidiSchemaElement
[in] Ein IPrinterBidiSchemaElement-Objekt , das alle daten enthält, die dem festzulegenden Bidi-Schemawert zugeordnet sind.
Rückgabewerte (Methode setSchema)
| Rückgabewert | Description |
|---|---|
| 0 | Das Skript wurde erfolgreich abgeschlossen. |
| 1 | Das angeschlossene Gerät war nicht bereit, einige angefragte Informationen zu liefern. Zeigt an, dass das Drucksystem die Funktion unter Verwendung des übergebenen printerBidiSchemaElements erneut aufrufen soll. |
getStatus-Methode
Diese Methode wird verwendet, um unaufgefordert den Status eines Druckers abzurufen, während das Gerät druckt. Diese Funktion wird nur während des Druckens aufgerufen. Das Gerät sollte über den Lesekanal Daten bereitstellen, die dieses Skript in Bidi-Schema-Werte interpretieren kann. Da der Schreibkanal zum Gerät durch Druckdaten blockiert ist, wird hier nur der unaufgeforderte Status unterstützt.
Diese Methode wird während des Druckens wiederholt aufgerufen. Es wird erwartet, dass das Gerät nur dann Daten zurückgibt, wenn sie verfügbar sind und das Skript sie verstehen kann. Wenn das Gerät keinen unerwünschten Status unterstützt oder diese Funktion nicht erneut aufrufen muss, sollte das Skript einen Wert von 2 zurückgeben, der den getStatus-Ausführungsthread in USBMon angibt, erfolgreich zu beenden.
Parameter (getStatus-Methode)
scriptContext [in] Ein IPrinterScriptContext-Objekt , das Zugriff auf relevante Eigenschaftenbehälter bietet. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das lesezugriff auf den USB-Bus ermöglicht. printerBidiSchemaResponses
[out] Objekt, das das Skript verwendet, um alle Antworten auf Abfragen zu speichern.
Rückgabewerte (Methode getStatus)
| Rückgabewert | Description |
|---|---|
| 0 | Das Skript wurde erfolgreich abgeschlossen. |
| 2 | Das angeschlossene Gerät unterstützt nicht mehr den unaufgeforderten Status und diese Funktion sollte nicht mehr aufgerufen werden. |
startPrintJob-Methode
USBMon ruft diese Methode während StartDocPort auf. Durch Aufrufen von startPrintJob kann der Treiber den Druckdatenstrom ändern oder ein hostbasiertes Anforderungs-/Antwortprotokoll implementieren, das verwendet wird, während das Druckgerät einen Auftrag druckt. Das Auftragskontextobjekt wird an die Funktion übergeben, um dem JavaScript-Code des Herstellers die Möglichkeit zu bieten, Jobeigenschaften zu verwalten und Zugriff auf die persistenten Datenströme zu erhalten. Die Druckdaten werden als JavaScript-Array übergeben, damit der JavaScript-Code sie verarbeiten kann. startPrintJob bietet außerdem auf folgende Weise Zugriff auf das Druckergerät:
Über den Druck-Stream
Über ein Objekt, das Bidi-Schema-Antworten für USBMon zur Verarbeitung zurückgeben kann
Syntax (Methode startPrintJob)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameter (startPrintJob-Methode)
jobScriptContext [in] Ein IPrinterScriptUsbJobContext-Objekt , das dem JavaScript-Code des Herstellers Zugriff auf den Auftragseigenschaftenbehälter und den persistenten Datenstrom(n) gewährt. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das der JavaScript-Code des Herstellers zum Lesen und Schreiben von Daten auf das Druckgerät verwenden kann. printerBidiSchemaResponses
[out] Ein IPrinterBidiSchemaResponses-Objekt , das der JavaScript-Code des Herstellers verwenden kann, um alle Bidi Schema-Wertänderungen/-updates zurückzugeben.
Rückgabewerte (Methode startPrintJob)
| Rückgabewert | Description |
|---|---|
| 0 | Success. |
| 1 | Failure – Bereinigen Sie das Job Context-Objekt und geben Sie einen Fehlercode an den Druck-Spooler zurück. |
writePrintData-Methode
USBMon ruft diese Methode während writePort auf. Durch Aufrufen von writePrintData kann der Treiber den Druckdatenstrom ändern oder ein hostbasiertes Anforderungs-/Antwortprotokoll implementieren, das verwendet wird, während das Druckgerät einen Auftrag druckt. Das Auftragskontextobjekt wird an die Methode übergeben, um dem JavaScript-Code des Herstellers die Möglichkeit zu bieten, Jobeigenschaften zu verwalten und Zugriff auf die persistenten Datenströme zu erhalten. Die Druckdaten werden als JavaScript-Array übergeben, damit der JavaScript-Code sie verarbeiten kann. writePrintData bietet außerdem auf folgende Weise Zugriff auf das Druckergerät:
Über den Druck-Stream
Über ein Objekt, das Bidi-Schema-Antworten für USBMon zur Verarbeitung zurückgeben kann
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Parameter (writePrintData-Methode)
jobScriptContext [in] Ein IPrinterScriptUsbJobContext-Objekt , das dem JavaScript-Code des Herstellers Zugriff auf den Auftragseigenschaftenbehälter und den persistenten Datenstrom(n) gewährt. writePrintDataProgress
[in] Ein IPrinterScriptableSequentialStream-Objekt , das der JavaScript-Code des Herstellers zum Lesen und Schreiben von Daten auf das Druckgerät verwenden kann. printData
[in] Ein IDispatch-Objekt , ein JavaScript-Array der aktuellen Druckdaten. Der parameter printData ermöglicht es dem JavaScript-Code, die Daten zu bearbeiten, bevor sie in einem der Datenströme in jobScriptContext zwischengespeichert oder über printerStream an den Drucker gesendet werden. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das der JavaScript-Code des Herstellers zum Lesen und Schreiben von Daten auf das Druckgerät verwenden kann. printerBidiSchemaResponses
[out] Ein IPrinterBidiSchemaResponses-Objekt , das der JavaScript-Code des Herstellers verwenden kann, um alle Bidi Schema-Wertänderungen oder -updates zurückzugeben.
Rückgabewerte (Methode writePrintData)
| Rückgabewert | Description |
|---|---|
| 0 | Success. Die Anzahl der aus dem Druckdatenstrom verarbeiteten Bytes (printData) wird über writePrintDataProgress zurückgegeben. |
| 1 | Failure – Rückgabe eines Fehlercodes an den Druck-Spooler. |
| 2 | Wiederholen: Verarbeiten Sie alle Bidi-Schemaupdates (einschließlich Bidi-Ereignisse) in printerBidiSchemaResponses, und rufen Sie dann erneut die JavaScript-Funktion auf, damit der Code des Herstellers die Verarbeitung der Daten fortsetzen kann. Die Anzahl der aus dem Druckdatenstrom verarbeiteten Bytes (printData) wird über writePrintDataProgress zurückgegeben. |
| 3 | DeviceBusy – Der Kommunikationskanal des Geräts nimmt zur Zeit keine Daten entgegen. Dies ist kein Hinweis auf einen Fehler. USBMon sollte den Spooler darüber informieren, dass das Gerät beschäftigt ist, und die Funktion zu einem späteren Zeitpunkt erneut aufrufen. Die Anzahl der aus dem Druckdatenstrom verarbeiteten Bytes (printData) wird über writePrintDataProgress zurückgegeben. |
| 4 | AbortTheJob – Das Gerät kann den Auftrag nicht weiter verarbeiten, oder der Benutzer hat den Auftrag über das Bedienfeld des Druckgeräts abgebrochen. Wenn USBMon die Nachricht zum Abbruch eines Druckauftrags erhält, gibt es die Information an den Druck-Spooler weiter, um den Auftrag abzubrechen, bevor es zurückkehrt. |
endPrintJob-Methode
USBMon ruft diese Methode während endDocPort auf. Durch Aufrufen von endPrintJob kann der Treiber den Druckdatenstrom ändern oder ein hostbasiertes Anforderungs-/Antwortprotokoll implementieren, das verwendet wird, während das Druckgerät einen Auftrag druckt. Das Jobkontext-Objekt wird an die Methode übergeben, um dem JavaScript Code des Herstellers die Möglichkeit zu bieten:
Abschließen der Verarbeitung aller Druckdaten, die bestehen geblieben sind
über den Druck-Stream auf das Gerät zuzugreifen
Zugriff auf ein Objekt, das Bidi-Schema-Antworten für die Verarbeitung durch USBMon übergeben kann
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameter (endPrintJob-Methode)
jobScriptContext [in] Ein IPrinterScriptUsbJobContext-Objekt, das dem JavaScript-Code des Herstellers Zugriff auf den Auftragseigenschaftenbehälter und den persistenten Datenstrom(n) gewährt. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt, das der JavaScript-Code des Herstellers zum Lesen und Schreiben von Daten auf dem Gerät verwenden kann. printerBidiSchemaResponses
[out] Ein IPrinterBidiSchemaResponses-Objekt, das der JavaScript-Code des Herstellers verwenden kann, um alle Änderungen oder Aktualisierungen von Bidi-Schema-Werten zurückzugeben.
Rückgabewerte (Methode endPrintJob)
| Rückgabewert | Description |
|---|---|
| 0 | Success – Bereinigt das Job Context-Objekt und gibt den Erfolg an den Druck-Spooler zurück. |
| 1 | Failure – Bereinigen Sie das Job Context-Objekt und geben Sie einen Fehlercode an den Druck-Spooler zurück. |
| 2 | Wiederholen: Verarbeiten Sie alle Bidi-Schemaupdates (einschließlich Bidi-Ereignisse) in printerBidiSchemaResponses, und rufen Sie dann erneut die JavaScript-Funktion auf, damit der JavaScript-Code des Herstellers die Verarbeitung der Daten fortsetzen kann. |
Bidi über sekundäres USB
Wenn das Gerät eine sekundäre USB-Schnittstelle unterstützt, kann das Gerät zusätzlich zur RequestStatus-Methode die in den vorherigen Abschnitten beschriebenen getSchemas- und setSchema-Methoden verwenden.
requestStatus-Methode
Diese Methode wird anstelle von getStatus aufgerufen, wenn die BidiUSBStatusInterface-Direktive in der Manifestdatei des v4-Treibers angegeben wurde. requestStatus wird verwendet, um den Status eines Druckgeräts abzurufen, während das Gerät gedruckt wird.
Das folgende Diagramm bietet eine Übersicht über die USB-Bidi-Erweiterungsarchitektur, die das Szenario zeigt, in dem die BidiUSBStatusInterface-Direktive angegeben wurde und die Kommunikation daher über eine alternative USB-Schnittstelle weitergeleitet wird.
Diese Methode wird während des Druckens wiederholt aufgerufen. Es wird erwartet, dass das Gerät nur dann Daten zurückgibt, wenn sie verfügbar sind und das Skript sie verstehen kann. Wenn das Gerät den angeforderten Status nicht unterstützt oder diese Methode nicht erneut aufrufen muss, sollte das Skript einen Wert von 2 zurückgeben, der den getStatus-Ausführungsthread in USBMon angibt, erfolgreich zu beenden.
Parameter (requestStatus-Methode)
scriptContext [in] Ein IPrinterScriptContext-Objekt , das Zugriff auf relevante Eigenschaftenbehälter bietet. printerStream
[in] Ein IPrinterScriptableSequentialStream-Objekt , das Lese- und Schreibzugriff auf den USB-Bus ermöglicht. printerBidiSchemaResponses
[out] Objekt, das das Skript verwendet, um alle Antworten auf Abfragen zu speichern.
Rückgabewerte (Methode requestStatus)
| Rückgabewert | Description |
|---|---|
| 0 | Das Skript wurde erfolgreich abgeschlossen. |
| 2 | Das angeschlossene Gerät unterstützt den angeforderten Status nicht mehr und diese Funktion sollte nicht mehr aufgerufen werden. |