JavaScript API リファレンス
重要
最新の印刷プラットフォームは、Windows がプリンターと通信するための推奨手段です。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、 最新の印刷プラットフォーム および 印刷サポート アプリ設計ガイドを参照してください。
製造元は、ここに示されている JavaScript API を Bidi XML ファイルと組み合わせて使用して、印刷デバイスへの USB 接続経由での Bidi のサポートを提供できます。
印刷デバイスとの USB Bidi 通信の詳細については、 USB Bidi エクステンダーを参照してください。
USB 経由の Bidi
getSchemas メソッド
このメソッドは、\Printer.Consumables.YellowInk:Level などの Bidi GET クエリを処理します。 JavaScript コードでは、USB バスを使用してプリンターにクエリを実行し、応答を読み取って応答を返すことができます。
構文
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
Parameters (getSchemas メソッド)
scriptContext [in] 関連するプロパティ バッグへのアクセスを提供する IPrinterScriptContext オブジェクト。 printerStream
[in] USB バスへの読み取りおよび書き込みアクセスを許可する IPrinterScriptableSequentialStream オブジェクト。 schemaRequests
[in] 要求されたすべての Bidi クエリ文字列を含む配列オブジェクト。 printerBidiSchemaResponses
[out]クエリ キーに対するすべての応答を格納するためにスクリプトが使用するオブジェクト。
戻り値 (getSchemas メソッド)
戻り値 | 説明 |
---|---|
0 | スクリプトは正常に完了しました。 |
1 | 接続されたデバイスが、要求された情報を提供する準備ができていませんでした。 印刷システムが処理中に追加された Requery キーを使用して関数を再度呼び出す必要があることを示します。 |
setSchema メソッド
このメソッドは、Bidi SET 操作を処理します。 このスクリプトは、受信 Bidi スキーマ値を決定して、デバイスにデータを設定したり、インク ヘッドのクリーンなどの何らかのアクションをデバイスで実行できます。
デバイスが指定されたデータを処理する準備ができていない場合、メソッドは値 1 を返して、待機期間後に呼び出しを再試行する必要があることを示すことができます。
Parameters (setSchema メソッド)
scriptContext [in] 関連するプロパティ バッグへのアクセスを提供する IPrinterScriptContext オブジェクト。 printerStream
[in] USB バスへの読み取りおよび書き込みアクセスを許可する IPrinterScriptableSequentialStream オブジェクト。 printerBidiSchemaElement
[in]設定する Bidi スキーマ値に関連付けられているすべてのデータを格納する IPrinterBidiSchemaElement オブジェクト。
戻り値 (setSchema メソッド)
戻り値 | 説明 |
---|---|
0 | スクリプトは正常に完了しました。 |
1 | 接続されたデバイスが、要求された情報を提供する準備ができていませんでした。 指定された printerBidiSchemaElement を使用して、印刷システムが関数を再度呼び出す必要があることを示します。 |
getStatus メソッド
このメソッドは、デバイスの印刷中にプリンターから要求されていない状態を取得するために使用されます。 この関数は、印刷時にのみ呼び出されます。 デバイスは、このスクリプトが Bidi スキーマ値に解釈できる読み取りチャネル上のデータを提供する必要があります。 デバイスへの書き込みチャネルは印刷データによってブロックされるため、ここでは未承諾の状態のみがサポートされます。
このメソッドは、印刷中に繰り返し呼び出されます。 デバイスがデータを返すのは、使用可能であり、スクリプトがデータを理解できる場合のみです。 デバイスが要求されていない状態をサポートしていない場合、またはこの関数を再度呼び出す必要がない場合、スクリプトは USBMon の getStatus 実行スレッドに正常に終了するように指示する値 2 を返す必要があります。
Parameters (getStatus メソッド)
scriptContext [in] 関連するプロパティ バッグへのアクセスを提供する IPrinterScriptContext オブジェクト。 printerStream
[in] USB バスへの読み取りアクセスを許可する IPrinterScriptableSequentialStream オブジェクト。 printerBidiSchemaResponses
[out]クエリ キーに対するすべての応答を格納するためにスクリプトが使用するオブジェクト。
戻り値 (getStatus メソッド)
戻り値 | 説明 |
---|---|
0 | スクリプトは正常に完了しました。 |
2 | 接続されているデバイスは、要求されていない状態をサポートしなくなったので、この関数を再度呼び出すべきではありません。 |
startPrintJob メソッド
USBMon は、StartDocPort 中にこのメソッドを呼び出します。 startPrintJob を呼び出すと、ドライバーは、印刷ストリームを変更したり、印刷デバイスがジョブを印刷するときに使用されるホスト ベースの要求/応答プロトコルを実装したりできます。 ジョブ コンテキスト オブジェクトが関数に渡され、製造元の JavaScript コードがジョブのプロパティを管理し、永続的なデータ ストリームにアクセスできるようになります。 印刷データは、処理する JavaScript コードの JavaScript 配列として渡されます。 startPrintJob では、次の方法でプリンター デバイスへのアクセスも提供されます。
印刷ストリーム経由
処理する USBMon の Bidi スキーマ応答を返すことができるオブジェクトを介して
構文 (startPrintJob メソッド)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameters (startPrintJob メソッド)
jobScriptContext [in] ジョブ プロパティ バッグと永続的なデータ ストリームに対する製造元の JavaScript コード アクセスを提供する IPrinterScriptUsbJobContext オブジェクト。 printerStream
[in] IPrinterScriptableSequentialStream オブジェクト。製造元の JavaScript コードを使用して、印刷デバイスへのデータの読み取りと書き込みを行うことができます。 printerBidiSchemaResponses
[out]製造元の JavaScript コードが Bidi スキーマ値の変更/更新を返すために使用できる IPrinterBidiSchemaResponses オブジェクト。
戻り値 (startPrintJob メソッド)
戻り値 | 説明 |
---|---|
0 | 成功しました。 |
1 | 失敗 – ジョブ コンテキスト オブジェクトをクリーンアップし、エラー コードを印刷スプーラーに返します。 |
writePrintData メソッド
USBMon は、writePort 中にこのメソッドを呼び出します。 writePrintData を呼び出すと、ドライバーは、印刷ストリームを変更したり、印刷デバイスがジョブを印刷するときに使用されるホスト ベースの要求/応答プロトコルを実装したりできます。 ジョブ コンテキスト オブジェクトがメソッドに渡され、製造元の JavaScript コードがジョブのプロパティを管理し、永続的なデータ ストリームにアクセスできるようになります。 印刷データは、処理する JavaScript コードの JavaScript 配列として渡されます。 writePrintData では、次の方法でプリンター デバイスへのアクセスも提供されます。
印刷ストリーム経由
処理する USBMon の Bidi スキーマ応答を返すことができるオブジェクトを介して
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Parameters (writePrintData メソッド)
jobScriptContext [in] ジョブ プロパティ バッグと永続的なデータ ストリームに対する製造元の JavaScript コード アクセスを提供する IPrinterScriptUsbJobContext オブジェクト。 writePrintDataProgress
[in] IPrinterScriptableSequentialStream オブジェクト製造元の JavaScript コードを使用して、印刷デバイスへのデータの読み取りと書き込みを行うことができます。 printData
[in]現在の 印刷データの JavaScript 配列である IDispatch オブジェクト。 printData パラメーターを使用すると、JavaScript コードは、 jobScriptContext 内のいずれかのデータ ストリームにキャッシュするか、 printerStream 経由でプリンターに送信する前にデータを操作できます。 printerStream
[in] IPrinterScriptableSequentialStream オブジェクト製造元の JavaScript コードを使用して、印刷デバイスへのデータの読み取りと書き込みを行うことができます。 printerBidiSchemaResponses
[out]製造元の JavaScript コードが Bidi スキーマ値の変更か更新を返すために使用できる IPrinterBidiSchemaResponses オブジェクト。
戻り値 (writePrintData メソッド)
戻り値 | 説明 |
---|---|
0 | 成功しました。 印刷データ ストリーム (printData) から処理されたバイト数は、 writePrintDataProgressを介して返されます。 |
1 | 失敗 – 印刷スプーラーにエラー コードを返します。 |
2 | 再試行 - printerBidiSchemaResponses で Bidi スキーマの更新 (Bidi イベントを含む) を処理し、JavaScript 関数をもう一度呼び出して、製造元のコードがデータの処理を続行できるようにします。 印刷データ ストリーム (printData) から処理されたバイト数は、 writePrintDataProgressを介して返されます。 |
3 | DeviceBusy – デバイス通信チャネルは、現時点ではデータを受け入れていません。 これは、エラーを示すわけではありません。 USBMon は、デバイスがビジー状態であることをスプーラーに通知し、後で関数を再度呼び出す必要があります。 印刷データ ストリーム (printData) から処理されたバイト数は、 writePrintDataProgressを介して返されます。 |
4 | AbortTheJob – デバイスがジョブの処理を続行できないか、ユーザーが印刷デバイスのフロント パネルを使用してジョブを取り消しました。 USBMon は、印刷ジョブを中止するメッセージを受信すると、その情報を印刷スプーラーに渡してジョブを中止してから戻ります。 |
endPrintJob メソッド
USBMon は、endDocPort 中にこのメソッドを呼び出します。 endPrintJob を呼び出すと、ドライバーは、印刷ストリームを変更したり、印刷デバイスがジョブを印刷するときに使用されるホスト ベースの要求/応答プロトコルを実装したりできます。 ジョブ コンテキスト オブジェクトがメソッドに渡され、製造元の JavaScript コードで次のことができるようになります。
保存された印刷データの処理を完了する
印刷ストリームを使用してプリンター デバイスにアクセスする
処理する USBMon の Bidi スキーマ応答を渡すことができるオブジェクトにアクセスする
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameters (endPrintJob メソッド)
jobScriptContext [in] ジョブ プロパティ バッグと永続的なデータ ストリームに対する製造元の JavaScript コード アクセスを提供する IPrinterScriptUsbJobContext オブジェクト。 printerStream
[in] IPrinterScriptableSequentialStream オブジェクト製造元の JavaScript コードを使用して、印刷デバイスへのデータの読み取りと書き込みを行うことができます。 printerBidiSchemaResponses
[out]製造元の JavaScript コードが Bidi スキーマ値の変更か更新を返すために使用できる IPrinterBidiSchemaResponses オブジェクト。
戻り値 (endPrintJob メソッド)
戻り値 | 説明 |
---|---|
0 | 成功 – ジョブ コンテキスト オブジェクトをクリーンアップし、印刷スプーラーに成功を返します。 |
1 | 失敗 – ジョブ コンテキスト オブジェクトをクリーンアップし、エラー コードを印刷スプーラーに返します。 |
2 | 再試行 - printerBidiSchemaResponses で Bidi スキーマの更新 (Bidi イベントを含む) を処理し、JavaScript 関数をもう一度呼び出して、製造元の JavaScript コードがデータの処理を続行できるようにします。 |
セカンダリ USB 経由の Bidi
デバイスがセカンダリ USB インターフェイスをサポートしている場合、デバイスは、 requestStatus メソッドに加えて、前のセクションで説明した getSchemas メソッドと setSchema メソッドを使用できます。
requestStatus メソッド
このメソッドは、v4 ドライバーのマニフェスト ファイルで BidiUSBStatusInterface ディレクティブが指定されている場合、 getStatus の代わりに呼び出されます。 requestStatus は、デバイスの印刷中に印刷デバイスから状態を取得するために使用されます。
次の図は、USB Bidi 拡張機能アーキテクチャの概要を示しています。 BidiUSBStatusInterface ディレクティブが指定され、通信が代替 USB インターフェイス経由でルーティングされるシナリオを示しています。
このメソッドは、印刷中に繰り返し呼び出されます。 デバイスがデータを返すのは、使用可能であり、スクリプトがデータを理解できる場合のみです。 デバイスが要求されている状態をサポートしていない場合、またはこのメソッドを再度呼び出す必要がない場合、スクリプトは USBMon の getStatus 実行スレッドに正常に終了するように指示する値 2 を返す必要があります。
Parameters (requestStatus メソッド)
scriptContext [in] 関連するプロパティ バッグへのアクセスを提供する IPrinterScriptContext オブジェクト。 printerStream
[in] USB バスへの読み取りおよび書き込みアクセスを許可する IPrinterScriptableSequentialStream オブジェクト。 printerBidiSchemaResponses
[out]クエリ キーに対するすべての応答を格納するためにスクリプトが使用するオブジェクト。
戻り値 (requestStatus メソッド)
戻り値 | 説明 |
---|---|
0 | スクリプトは正常に完了しました。 |
2 | 接続されているデバイスは、要求されていいる状態をサポートしなくなったので、この関数を再度呼び出すべきではありません。 |