Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.
Aby uzyskać więcej informacji, zobacz Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).
Producenci mogą korzystać z przedstawionego tutaj interfejsu API języka JavaScript w połączeniu z plikiem XML bidi, aby zapewnić obsługę oferty za pośrednictwem połączenia USB z urządzeniem wydruku.
Aby uzyskać więcej informacji na temat komunikacji USB Bidi z urządzeniem wydruku, zobacz Rozszerzenie bidi USB.
Bidi przez USB
getSchemas, metoda
Ta metoda obsługuje zapytania Bidi GET, takie jak \Printer.Eksploatacyjne.YellowInk:Level. Kod JavaScript umożliwia wykonywanie zapytań do drukarki przy użyciu magistrali USB i odczytywanie odpowiedzi podczas ich powrotu.
składnia
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
Parameters (metoda getSchemas)
scriptContext [in] Obiekt IPrinterScriptContext , który zapewnia dostęp do odpowiednich worków właściwości. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , który umożliwia dostęp do odczytu i zapisu do magistrali USB. schemaRequests
[in] Obiekt tablicy zawierający wszystkie żądane ciągi zapytania Bidi. printerBidiSchemaResponses
[out] Obiekt używany przez skrypt do przechowywania wszystkich odpowiedzi na klucze zapytań.
Wartości zwracane (metoda getSchemas)
| Wartość zwracana | Description |
|---|---|
| 0 | Skrypt został ukończony pomyślnie. |
| 1 | Dołączone urządzenie nie było gotowe do dostarczenia niektórych żądanych informacji. Wskazuje, że system wydruku powinien wywołać funkcję ponownie przy użyciu wszystkich kluczy ponownego zapytania dodanych podczas przetwarzania. |
setSchema, metoda
Ta metoda obsługuje operacje Bidi SET. Skrypt może określić przychodzącą wartość schematu bidi w celu ustawienia danych na urządzeniu lub wykonać jakąś akcję na urządzeniu, na przykład czyścić głowice od atramentu.
Jeśli urządzenie nie jest gotowe do przetwarzania określonych danych, metoda może zwrócić wartość 1, aby wskazać, że wywołanie powinno zostać ponowione po upływie okresu oczekiwania.
Parameters (setSchema, metoda)
scriptContext [in] Obiekt IPrinterScriptContext , który zapewnia dostęp do odpowiednich worków właściwości. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , który umożliwia dostęp do odczytu i zapisu do magistrali USB. printerBidiSchemaElement
[in] Obiekt IPrinterBidiSchemaElement zawierający wszystkie dane skojarzone z wartością schematu Bidi do ustawienia.
Zwracane wartości (metoda setSchema)
| Wartość zwracana | Description |
|---|---|
| 0 | Skrypt został ukończony pomyślnie. |
| 1 | Dołączone urządzenie nie było gotowe do dostarczenia niektórych żądanych informacji. Wskazuje, że system wydruku powinien wywołać funkcję ponownie przy użyciu dostarczonej drukarkiBidiSchemaElement. |
getStatus, metoda
Ta metoda służy do uzyskiwania stanu niepożądanego z drukarki podczas drukowania urządzenia. Ta funkcja jest wywoływana tylko podczas drukowania. Urządzenie powinno podać dane w kanale odczytu, że ten skrypt może interpretować wartości schematu bidi. Ponieważ kanał zapisu na urządzeniu jest blokowany przez dane drukowania, w tym miejscu obsługiwany jest tylko stan niezamówiony.
Ta metoda jest wywoływana wielokrotnie podczas drukowania. Oczekuje się, że urządzenie zwróci dane tylko wtedy, gdy jest dostępne, a skrypt może go zrozumieć. Jeśli urządzenie nie obsługuje niepożądanego stanu lub nie ma potrzeby ponownego wywoływania tej funkcji, skrypt powinien zwrócić wartość 2, która poinformuje wątek wykonywania getStatus w USBMon, aby zakończyć działanie pomyślnie.
Parameters (metoda getStatus)
scriptContext [in] Obiekt IPrinterScriptContext , który zapewnia dostęp do odpowiednich worków właściwości. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , który umożliwia dostęp do odczytu do magistrali USB. printerBidiSchemaResponses
[out] Obiekt używany przez skrypt do przechowywania wszystkich odpowiedzi na klucze zapytań.
Wartości zwracane (metoda getStatus)
| Wartość zwracana | Description |
|---|---|
| 0 | Skrypt został ukończony pomyślnie. |
| 2 | Dołączone urządzenie nie obsługuje już stanu niepożądanego, a ta funkcja nie powinna być wywoływana ponownie. |
startPrintJob, metoda
UsbMon wywołuje tę metodę podczas uruchamianiaDocPort. Wywołanie funkcji startPrintJob umożliwia sterownikowi zmodyfikowanie strumienia wydruku lub zaimplementowanie opartego na hoście protokołu żądania/odpowiedzi używanego podczas drukowania zadania. Obiekt kontekstu zadania jest przekazywany do funkcji, aby umożliwić producentowi kod JavaScript zarządzanie właściwościami zadania i uzyskiwanie dostępu do trwałych strumieni danych. Dane drukowania są przekazywane jako tablica Języka JavaScript do przetworzenia kodu JavaScript. funkcja startPrintJob zapewnia również dostęp do urządzenia drukarki w następujący sposób:
Za pośrednictwem strumienia wydruku
Za pomocą obiektu, który może zwrócić odpowiedzi schematu bidi dla USBMon do przetworzenia
Składnia (metoda startPrintJob)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameters (metoda startPrintJob)
jobScriptContext [in] Obiekt IPrinterScriptUsbJobContext , który daje producentowi kod JavaScript dostępu do torby właściwości zadania i trwałych strumieni danych. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , którego kod JavaScript producenta może użyć do odczytywania i zapisywania danych na urządzeniu wydruku. printerBidiSchemaResponses
[out] Obiekt IPrinterBidiSchemaResponses , którego kod JavaScript producenta może użyć do zwrócenia wszelkich zmian/aktualizacji schematu bidi.
Wartości zwracane (metoda startPrintJob)
| Wartość zwracana | Description |
|---|---|
| 0 | Success. |
| 1 | Failure — wyczyść obiekt Kontekstu zadania i zwróć kod błędu do buforu wydruku. |
writePrintData, metoda
UsbMon wywołuje tę metodę podczas zapisuPort. Wywoływanie funkcji writePrintData umożliwia sterownikowi modyfikowanie strumienia wydruku lub implementowanie opartego na hoście protokołu żądania/odpowiedzi używanego podczas drukowania zadania. Obiekt kontekstu zadania jest przekazywany do metody, aby umożliwić producentowi kod JavaScript zarządzanie właściwościami zadania i uzyskiwanie dostępu do trwałych strumieni danych. Dane drukowania są przekazywane jako tablica Języka JavaScript do przetworzenia kodu JavaScript. writePrintData zapewnia również dostęp do urządzenia drukarki w następujący sposób:
Za pośrednictwem strumienia wydruku
Za pomocą obiektu, który może zwrócić odpowiedzi schematu bidi dla USBMon do przetworzenia
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Parameters (metoda writePrintData)
jobScriptContext [in] Obiekt IPrinterScriptUsbJobContext , który daje producentowi kod JavaScript dostępu do torby właściwości zadania i trwałych strumieni danych. writePrintDataProgress
[in] Obiekt IPrinterScriptableSequentialStream , którego kod JavaScript producenta może użyć do odczytywania i zapisywania danych na urządzeniu wydruku. printData
[in] Obiekt IDispatch , tablica JavaScript bieżących danych drukowania. Parametr printData umożliwia kodowi JavaScript manipulowanie danymi przed buforowaniem ich do jednego ze strumieni danych w pliku jobScriptContext lub wysłanie go do drukarki za pośrednictwem elementu printerStream. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , którego kod JavaScript producenta może użyć do odczytywania i zapisywania danych na urządzeniu wydruku. printerBidiSchemaResponses
[out] Obiekt IPrinterBidiSchemaResponses , którego kod JavaScript producenta może użyć do zwrócenia wszelkich zmian lub aktualizacji schematu bidi.
Wartości zwracane (metoda writePrintData)
| Wartość zwracana | Description |
|---|---|
| 0 | Success. Liczba bajtów przetworzonych ze strumienia danych drukowania (printData) jest zwracana za pośrednictwem funkcji writePrintDataProgress. |
| 1 | Failure — zwraca kod błędu do buforu wydruku. |
| 2 | Ponów próbę — przetwórz wszystkie aktualizacje schematu bidi (w tym zdarzenia bidi) w printerBidiSchemaResponses, a następnie ponownie wywołaj funkcję JavaScript, aby umożliwić kodowi producenta kontynuowanie przetwarzania danych. Liczba bajtów przetworzonych ze strumienia danych drukowania (printData) jest zwracana za pośrednictwem funkcji writePrintDataProgress. |
| 3 | DeviceBusy — kanał komunikacyjny urządzenia nie akceptuje obecnie danych. Nie wskazuje to błędu. UsbMon powinien poinformować bufor, że urządzenie jest zajęte, a następnie wywołać funkcję ponownie w późniejszym czasie. Liczba bajtów przetworzonych ze strumienia danych drukowania (printData) jest zwracana za pośrednictwem funkcji writePrintDataProgress. |
| 4 | AbortTheJob — urządzenie nie może kontynuować przetwarzania zadania lub użytkownik anulował zadanie przy użyciu panelu przedniego urządzenia wydruku. Gdy USBMon odbiera komunikat w celu przerwania zadania drukowania, przekazuje informacje do buforu wydruku w celu przerwania zadania przed zwróceniem. |
endPrintJob, metoda
USBMon wywołuje tę metodę podczas endDocPort. Wywołanie endPrintJob umożliwia sterownikowi modyfikowanie strumienia wydruku lub implementowanie opartego na hoście protokołu żądania/odpowiedzi używanego podczas drukowania zadania. Obiekt kontekstu zadania jest przekazywany do metody , aby umożliwić producentowi kod JavaScript:
Kończenie przetwarzania wszystkich danych drukowania, które utrwalone
Uzyskiwanie dostępu do urządzenia drukarki za pośrednictwem strumienia wydruku
Uzyskiwanie dostępu do obiektu, który może przekazać odpowiedzi schematu bidi dla usbMon do przetworzenia
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameters (endPrintJob, metoda)
jobScriptContext [in] Obiekt IPrinterScriptUsbJobContext, który daje producentowi kod JavaScript dostępu do torby właściwości zadania i trwałych strumieni danych. printerStream
[in] Obiekt IPrinterScriptableSequentialStream, którego kod JavaScript producenta może użyć do odczytywania i zapisywania danych na urządzeniu wydruku. printerBidiSchemaResponses
[out] Obiekt IPrinterBidiSchemaResponses, którego kod JavaScript producenta może użyć do zwrócenia wszelkich zmian lub aktualizacji schematu bidi.
Wartości zwracane (metoda endPrintJob)
| Wartość zwracana | Description |
|---|---|
| 0 | Powodzenie — wyczyść obiekt Kontekst zadania i zwróć powodzenie do buforu wydruku. |
| 1 | Failure — wyczyść obiekt Kontekstu zadania i zwróć kod błędu do buforu wydruku. |
| 2 | Ponów próbę — przetwórz wszystkie aktualizacje schematu bidi (w tym zdarzenia bidi) w printerBidiSchemaResponses, a następnie ponownie wywołaj funkcję JavaScript, aby umożliwić producentowi kod JavaScript kontynuowania przetwarzania danych. |
Bidi przez pomocniczy USB
Jeśli urządzenie obsługuje pomocniczy interfejs USB, urządzenie może używać metod getSchemas i setSchema opisanych w poprzednich sekcjach, oprócz metody requestStatus .
requestStatus, metoda
Ta metoda jest wywoływana zamiast getStatus, jeśli dyrektywa BidiUSBStatusInterface została określona w pliku manifestu sterownika w wersji 4. element requestStatus służy do uzyskiwania stanu z urządzenia wydruku podczas drukowania urządzenia.
Na poniższym diagramie przedstawiono omówienie architektury rozszerzenia Bidi USB, przedstawiając scenariusz, w którym określono dyrektywę BidiUSBStatusInterface , a zatem komunikacja jest kierowana przez alternatywny interfejs USB.
Ta metoda jest wywoływana wielokrotnie podczas drukowania. Oczekuje się, że urządzenie zwróci dane tylko wtedy, gdy jest dostępne, a skrypt może go zrozumieć. Jeśli urządzenie nie obsługuje żądanego stanu lub nie ma potrzeby ponownego wywoływania tej metody, skrypt powinien zwrócić wartość 2, która poinformuje wątek wykonywania getStatus w USBMon, aby zakończyć działanie pomyślnie.
Parameters (metoda requestStatus)
scriptContext [in] Obiekt IPrinterScriptContext , który zapewnia dostęp do odpowiednich worków właściwości. printerStream
[in] Obiekt IPrinterScriptableSequentialStream , który umożliwia dostęp do odczytu i zapisu do magistrali USB. printerBidiSchemaResponses
[out] Obiekt używany przez skrypt do przechowywania wszystkich odpowiedzi na klucze zapytań.
Wartości zwracane (metoda requestStatus)
| Wartość zwracana | Description |
|---|---|
| 0 | Skrypt został ukończony pomyślnie. |
| 2 | Dołączone urządzenie nie obsługuje już żądanego stanu, a ta funkcja nie powinna być wywoływana ponownie. |