私は、顧客システムから印刷ジョブを受信し、それをプリンターにルーティングし、プリンターがジョブを完了するたびに成功ステータスでホスト システムの更新をトリガーする印刷監視ユーティリティを開発するように依頼されました。
プリンター キューから印刷ジョブの状態を取得する方法が少なくとも 2 つあります。WMI を使用して Win32_PrintJob を照会するか、API を使用して winspool を実行します。接続されていないプリンターに印刷しようとしたとき、どちらの方法も問題なく機能しました。プリンターが使用可能になるのを待っている状態のジョブのリストを取得できました。
現在、プリンターの用紙切れまたは紙詰まりが発生した場合のシナリオをテストしようとしています。残念ながら、この場合、印刷ジョブは印刷スプーラー キューから削除され、プリンターのメモリに取り込まれ、ユーザーが用紙を追加するか紙詰まりを解決するのを待ちます。印刷ジョブはキューにはありませんが、まだ印刷されていないため、ホスト システムを成功ステータスで実際に更新できます。PJL またはプリンター固有の API を使用してプリンター自体からその情報を取得する方法について説明している記事をいくつか見つけましたが、それらは成功していません。プリンターによって実際に処理されるまで Windows スプーラー キューをキューに保持するように構成する方法はありますか?
ありがとうございました!