Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Important
Platform cetak modern adalah sarana komunikasi pilihan Windows dengan printer. Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.
Untuk informasi selengkapnya, lihat Panduan desain Cetak Aplikasi Dukungan v1 dan v2.
Produsen dapat menggunakan JAVAScript API yang disajikan di sini, dalam kombinasi dengan file XML Bidi untuk memberikan dukungan bagi Bidi melalui koneksi USB ke perangkat cetak.
Untuk informasi selengkapnya tentang komunikasi USB Bidi dengan perangkat cetak, lihat USB Bidi Extender.
Bidi melalui USB
metode getSchemas
Metode ini menangani kueri BIDI GET seperti \Printer.Consumables.YellowInk:Level. Kode JavaScript dapat membuat kueri ke printer menggunakan bus USB dan membaca respons saat kembali.
syntax
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
Parameter (metode getSchemas)
scriptContext [in] Objek IPrinterScriptContext yang menyediakan akses ke tas properti yang relevan. printerStream
[di] Objek IPrinterScriptableSequentialStream yang memungkinkan akses baca dan tulis ke bus USB. schemaRequests
[di] Objek array yang berisi semua string kueri Bidi yang diminta. printerBidiSchemaResponses
[out] Objek yang digunakan skrip untuk menyimpan semua respons ke kunci kueri.
Mengembalikan nilai (metode getSchemas)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Skrip berhasil diselesaikan. |
| 1 | Perangkat terlampir belum siap untuk memberikan beberapa informasi yang diminta. Menunjukkan bahwa sistem cetak harus memanggil fungsi lagi menggunakan Kunci Kueri Ulang yang ditambahkan selama pemrosesan. |
metode setSchema
Metode ini menangani operasi Bidi SET. Skrip dapat menentukan nilai Skema Bidi masuk untuk mengatur data di perangkat, atau melakukan beberapa tindakan pada perangkat seperti kepala tinta bersih.
Jika perangkat belum siap untuk memproses data yang ditentukan, metode dapat mengembalikan nilai 1 untuk menunjukkan panggilan harus dicoba kembali setelah periode tunggu.
Parameter (metode setSchema)
scriptContext [in] Objek IPrinterScriptContext yang menyediakan akses ke tas properti yang relevan. printerStream
[di] Objek IPrinterScriptableSequentialStream yang memungkinkan akses baca dan tulis ke bus USB. printerBidiSchemaElement
[di] Objek IPrinterBidiSchemaElement yang berisi semua data yang terkait dengan Nilai Skema Bidi yang akan diatur.
Mengembalikan nilai (metode setSchema)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Skrip berhasil diselesaikan. |
| 1 | Perangkat terlampir belum siap untuk memberikan beberapa informasi yang diminta. Menunjukkan bahwa sistem cetak harus memanggil fungsi lagi menggunakan printerBidiSchemaElement yang disediakan. |
metode getStatus
Metode ini digunakan untuk mendapatkan status yang tidak diminta dari printer saat perangkat sedang mencetak. Fungsi ini hanya dipanggil selama pencetakan. Perangkat harus menyediakan data di saluran baca yang dapat ditafsirkan skrip ini ke dalam nilai Skema Bidi. Karena saluran tulis ke perangkat diblokir oleh data cetak, hanya status yang tidak diminta yang didukung di sini.
Metode ini dipanggil berulang kali selama pencetakan. Diharapkan bahwa perangkat hanya akan mengembalikan data jika tersedia dan skrip dapat memahaminya. Jika perangkat tidak mendukung status yang tidak diminta atau tidak perlu memanggil fungsi ini lagi, skrip harus mengembalikan nilai 2 yang akan memberi tahu utas eksekusi getStatus di USBMon agar berhasil keluar.
Parameter (metode getStatus)
scriptContext [in] Objek IPrinterScriptContext yang menyediakan akses ke tas properti yang relevan. printerStream
[di] Objek IPrinterScriptableSequentialStream yang memungkinkan akses baca ke bus USB. printerBidiSchemaResponses
[out] Objek yang digunakan skrip untuk menyimpan semua respons ke kunci kueri.
Mengembalikan nilai (metode getStatus)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Skrip berhasil diselesaikan. |
| 2 | Perangkat yang terpasang tidak lagi mendukung status yang tidak diminta dan fungsi ini tidak boleh dipanggil lagi. |
metode startPrintJob
USBMon memanggil metode ini selama StartDocPort. Memanggil startPrintJob memungkinkan driver untuk mengubah aliran cetak atau menerapkan protokol permintaan/respons berbasis host yang digunakan saat perangkat cetak mencetak pekerjaan. Objek konteks pekerjaan diteruskan ke fungsi untuk memungkinkan kode JavaScript produsen mengelola properti pekerjaan dan untuk mendapatkan akses ke aliran data persisten. Data cetak diteruskan sebagai array JavaScript untuk diproses oleh kode JavaScript. startPrintJob juga menyediakan akses ke perangkat printer dengan cara berikut:
Melalui aliran cetak
Melalui objek yang dapat mengembalikan respons Skema Bidi agar USBMon dapat diproses
Sintaks (metode startPrintJob)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameter (metode startPrintJob)
jobScriptContext [in] Objek IPrinterScriptUsbJobContext yang memberikan akses kode JavaScript produsen ke tas properti pekerjaan dan aliran data persisten. printerStream
[di] Objek IPrinterScriptableSequentialStream , yang dapat digunakan kode JavaScript produsen untuk membaca dan menulis data ke perangkat cetak. printerBidiSchemaResponses
[out] Objek IPrinterBidiSchemaResponses yang dapat digunakan kode JavaScript produsen untuk mengembalikan perubahan/pembaruan nilai Skema Bidi apa pun.
Mengembalikan nilai (metode startPrintJob)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Success. |
| 1 | Kegagalan – Bersihkan objek Konteks Pekerjaan dan kembalikan kode kesalahan ke penampung cetak. |
metode writePrintData
USBMon memanggil metode ini selama writePort. Memanggil writePrintData memungkinkan driver untuk mengubah aliran cetak atau menerapkan protokol permintaan/respons berbasis host yang digunakan saat perangkat cetak mencetak pekerjaan. Objek konteks pekerjaan diteruskan ke metode untuk memungkinkan kode JavaScript produsen mengelola properti pekerjaan dan untuk mendapatkan akses ke aliran data persisten. Data cetak diteruskan sebagai array JavaScript untuk diproses oleh kode JavaScript. writePrintData juga menyediakan akses ke perangkat printer dengan cara berikut:
Melalui aliran cetak
Melalui objek yang dapat mengembalikan respons Skema Bidi agar USBMon dapat diproses
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Parameter (metode writePrintData)
jobScriptContext [in] Objek IPrinterScriptUsbJobContext yang memberikan akses kode JavaScript produsen ke tas properti pekerjaan dan aliran data persisten. writePrintDataProgress
[di] Objek IPrinterScriptableSequentialStream yang dapat digunakan kode JavaScript produsen untuk membaca dan menulis data ke perangkat cetak. printData
[di] Objek IDispatch , array JavaScript dari data cetak saat ini. Parameter printData memungkinkan kode JavaScript memanipulasi data sebelum menyimpannya ke salah satu aliran data di jobScriptContext atau mengirimkannya ke printer melalui printerStream. printerStream
[di] Objek IPrinterScriptableSequentialStream yang dapat digunakan kode JavaScript produsen untuk membaca dan menulis data ke perangkat cetak. printerBidiSchemaResponses
[out] Objek IPrinterBidiSchemaResponses yang dapat digunakan kode JavaScript produsen untuk mengembalikan perubahan atau pembaruan nilai Skema Bidi apa pun.
Mengembalikan nilai (metode writePrintData)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Success. Jumlah byte yang diproses dari aliran data cetak (printData) dikembalikan melalui writePrintDataProgress. |
| 1 | Kegagalan – Mengembalikan kode kesalahan ke penampung cetak. |
| 2 | Coba lagi - Proses pembaruan Skema Bidi apa pun (termasuk Peristiwa Bidi) di printerBidiSchemaResponses, lalu panggil fungsi JavaScript lagi untuk memungkinkan kode produsen terus memproses data. Jumlah byte yang diproses dari aliran data cetak (printData) dikembalikan melalui writePrintDataProgress. |
| 3 | DeviceBusy – Saluran komunikasi perangkat saat ini tidak menerima data. Ini tidak menunjukkan kegagalan. USBMon harus memberi tahu penampung bahwa perangkat sibuk, lalu memanggil fungsi lagi di lain waktu. Jumlah byte yang diproses dari aliran data cetak (printData) dikembalikan melalui writePrintDataProgress. |
| 4 | AbortTheJob – Perangkat tidak dapat terus memproses pekerjaan, atau pengguna telah membatalkan pekerjaan menggunakan panel depan perangkat cetak. Ketika USBMon menerima pesan untuk membatalkan pekerjaan cetak, USBMon meneruskan informasi ke penampung cetak untuk membatalkan pekerjaan, sebelum kembali. |
metode endPrintJob
USBMon memanggil metode ini selama endDocPort. Memanggil endPrintJob memungkinkan driver untuk mengubah aliran cetak atau menerapkan protokol permintaan/respons berbasis host yang digunakan saat perangkat cetak mencetak pekerjaan. Objek konteks pekerjaan diteruskan ke metode untuk memungkinkan kode JavaScript produsen untuk:
Selesaikan pemrosesan data cetak apa pun yang bertahan
Mengakses perangkat printer melalui aliran cetak
Mengakses objek yang dapat meneruskan respons Skema Bidi agar USBMon dapat diproses
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameter (metode endPrintJob)
jobScriptContext [in] Objek IPrinterScriptUsbJobContext yang memberikan akses kode JavaScript produsen ke tas properti pekerjaan dan aliran data persisten. printerStream
[di] Objek IPrinterScriptableSequentialStream yang dapat digunakan kode JavaScript produsen untuk membaca dan menulis data ke perangkat cetak. printerBidiSchemaResponses
[out] Objek IPrinterBidiSchemaResponses yang dapat digunakan kode JavaScript produsen untuk mengembalikan perubahan atau pembaruan nilai Skema Bidi apa pun.
Mengembalikan nilai (metode endPrintJob)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Berhasil – Bersihkan objek Konteks Pekerjaan dan kembalikan keberhasilan ke penampung cetak. |
| 1 | Kegagalan – Bersihkan objek Konteks Pekerjaan dan kembalikan kode kesalahan ke penampung cetak. |
| 2 | Coba lagi - Proses pembaruan Skema Bidi apa pun (termasuk Peristiwa Bidi) di printerBidiSchemaResponses, lalu panggil fungsi JavaScript lagi untuk memungkinkan kode JavaScript produsen terus memproses data. |
Bidi melalui USB sekunder
Jika perangkat mendukung antarmuka USB sekunder, maka perangkat dapat menggunakan metode getSchemas dan setSchema yang dijelaskan di bagian sebelumnya, selain metode requestStatus .
metode requestStatus
Metode ini dipanggil alih-alih getStatus, jika arahan BidiUSBStatusInterface telah ditentukan dalam file manifes driver v4. requestStatus digunakan untuk mendapatkan status dari perangkat cetak saat perangkat sedang mencetak.
Diagram berikut memberikan gambaran umum tentang arsitektur ekstensi USB Bidi, yang menunjukkan skenario di mana arahan BidiUSBStatusInterface telah ditentukan dan komunikasi oleh karena itu dirutekan melalui antarmuka USB alternatif.
arsitektur usb bidi extender dengan metode requeststatus.
Metode ini dipanggil berulang kali selama pencetakan. Diharapkan bahwa perangkat hanya akan mengembalikan data jika tersedia dan skrip dapat memahaminya. Jika perangkat tidak mendukung status yang diminta atau tidak perlu memanggil metode ini lagi, skrip harus mengembalikan nilai 2 yang akan memberi tahu utas eksekusi getStatus di USBMon agar berhasil keluar.
Parameter (metode requestStatus)
scriptContext [in] Objek IPrinterScriptContext yang menyediakan akses ke tas properti yang relevan. printerStream
[di] Objek IPrinterScriptableSequentialStream yang memungkinkan akses baca dan tulis ke bus USB. printerBidiSchemaResponses
[out] Objek yang digunakan skrip untuk menyimpan semua respons ke kunci kueri.
Mengembalikan nilai (metode requestStatus)
| Mengembalikan nilai | Description |
|---|---|
| 0 | Skrip berhasil diselesaikan. |
| 2 | Perangkat terlampir tidak lagi mendukung status yang diminta dan fungsi ini tidak boleh dipanggil lagi. |