2

印刷にカップを使用する Linux アプリがありますが、印刷してすぐにアプリを終了すると、印刷物が表示されないことに気付きました。だから、私のアプリは終了する前に実際にプリンターから出てくるのを待たなければならないと思います。

libcups を使用して、アプリが生成するポストスクリプト ファイルを印刷しています。そのため、コマンドを使用してファイルを印刷すると、アプリに戻ります。そのため、私のアプリは、ドキュメントがまだプリンター キューに届いていないと推測したときに、ドキュメントがプリンター キューに移動したと判断します。したがって、すべてのユーザーにシステム トレイのプリンター アイコンを画面で確認させるのではなく、解決策をコードで示したいと考えています。ユーザーが実際に送信される前に終了しようとしても、その事実を警告することができます。 . また、私が生成するファイルは一時ファイルなので、いつ終了したかを知って削除できると便利です。

4

4 に答える 4

1

CUPS の Web インターフェイス (localhost:631) またはその他の CUPS の表示内容を調べて、CUPS がジョブを受信したことを示したらすぐに、アプリケーションを終了できます。

于 2008-09-17T11:34:03.790 に答える
1

lpr&のような印刷スプール サービスを使用するのはどうlpqですか?

于 2008-10-10T11:24:21.330 に答える
1

用紙がプリンターから排出されるまで待つ必要はありません。ただし、一時ファイルがスプーリング領域 (通常は ) で cupsd によって完全に受信されるまで待つ必要があります/var/spool/cups/

lpコマンドラインで (CUPSまたはコマンドのいずれかを使用して) 印刷したlpr場合、シェル プロンプトが返された場合 (コマンドは、送信されたジョブの CUPS ジョブ ID も報告します)、終了コード ( $?) は 0 です。

libcups のどの部分と、目的を達成するために使用している関数呼び出しを示していません。これを行う必要がある場合は、IPP 関数cupsSendRequestを使用しcupsGetResponseて結果を確認します。

于 2010-06-11T11:18:05.967 に答える
0

アプリを終了した時点では、まだ印刷が完了していなかった可能性があります。evince を使用して PDF やその他のドキュメントを印刷している場合、これは既知のバグです。印刷操作が進行中であることを視覚的に確認することはできません。印刷ジョブが送信されると、実際の印刷が完了するまでシステム トレイにプリンタ アイコンが表示されます。システム トレイのプリンタ アイコンをクリックすると、現在実行中のジョブと保留中のジョブを確認できます。

于 2008-09-16T20:42:16.993 に答える