Python のwin32printモジュールを使用して、ドライバー名、ジョブ数、使用中のポート、ステータスなど、一連のプリンターに関するさまざまな情報を取得しようとしています。ほとんど成功していますが、多くの問題が発生しています。 win32print が API から返すステータス コードを使用します。
PRINTER_INFO_ ディクショナリを返す win32print.GetPrinter メソッドを使用しており、1 つのマッピングは Status です。ただし、どのステータス コードがどのプリンタ ステータスに対応するかは文書化されていません。0がアイドル、1が一時停止のようですが、それ以外はよくわかりません。
Windows 32bit API の定数の値を調べたところ、このページが見つかりましたが、これまでに返されたステータス コードはどれも一致していないようです。多くの場合、win32api 定数のリストにない 1052800 (Epson プリンターから取得) のようなステータス コードを取得します。
また、WMI モジュールを使用してこれを実行しようとしましたが、成功率はさらに低くなりました。
プリンターの用紙切れ、プリンターのドアが開いている、トナーが少ない、紙詰まりなどのプリンターステータスコードを取得したいと思います。これらのステータスコードの意味を見つけるためのヒント、またはプリンターのステータスを見つけるためのより良い解決策はありますか完全に?