CUPS - 印刷が成功したことを確認してください(Pythonまたはシステム上)。

CUPS - 印刷が成功したことを確認してください(Pythonまたはシステム上)。

編集:Pythonとpycupsを使用していることを明らかにするのを忘れました。コードはPythonになっていますが、それだけでは十分ではないと思います。

私はカップ文書を数回見ましたが、このような内容が見つかりません。印刷が成功した後に返されたメッセージのうち、キャプチャできるメッセージはありますか?

たとえば、このコードでは次のようになります。

import os
import cups

conn = cups.Connection()

f = open('testreceipt.txt', 'w')
f.write('something')
f.close()
printer_returns = conn.printFile('EPSON_TM-P2.01', 'testreceipt.txt', 'test', {})
print printer_returns

すべてのprint_returnsには、印刷ジョブID(208、209、...、n)が割り当てられているようです。これは、プリンタが接続されているかどうかに関係なく発生するため、確認を信頼できません。

この場合、ターゲットプリンタは、シリアル - > USBケーブルを介してRaspbianを実行しているRaspberry Piに接続されたレシートプリンタです。

印刷を成功させるためにカップログファイルを監視することを検討しましたが、これは間違ったアプローチのようです。

他の場所で解決策を見つけることができるかもしれません。誰でもアイデアがあれば共有してください。

ベストアンサー1

getJobsを使用して、ジョブがプリンタに送信されたことを確認しています。

printid = conn.printFile('EPSON_TM-P2.01', 'testreceipt.txt', 'test', {})
while conn.getJobs().get(printid, None) is not None:
    time.sleep(1)

おすすめ記事