5


0

印刷が許可されているインターネットカフェでは、意図したよりも多くのページを印刷することがあります。

*「Xページを印刷しますか?」というメッセージを表示する方法を探しています。印刷を押した後(どのアプリケーションでも)、ジョブがキューに送信される前にダイアログが表示されます。

そのようなフックを実装する方法についてのポインターを探しています。

(私はFOSS PDFプリンターを最初にPDFに印刷し、そして次にダイアログを表示し、そして次にユーザーが「はい」を押すなら、それを実際のプリンターで印刷するように修正することを考えました。 しかし、これはこれを行うための本当に迂回的な方法であり、この方法でプリンター固有の機能を失うこともあります。)

1 Answer


3


あなたがすることができることの1つはまたラウンドの一種です、プリントスプーラを一時停止して、あなたの仕事を印刷して、ページ数を得て、そして次に確認のためにユーザに促すことです。 ユーザーがそのジョブを承認したら、スプーラを解放します。 API呼び出しは便利ではありませんが、スプーラキューを非常に簡単に操作できました。

もちろん、この考えのマイナス面は、キューがサーバーベースであり、潜在的な許可の問題が発生している可能性がある場合です。

もう1つの方法は、WMFまたはEMFファイルへの出力を強制し、そのようにページ数を集計してからスプーラに渡すことです。 これは、PDFに出力するというあなたの考えに似ていますが、ネイティブのアプローチを使用します。 (これは基本的に、アプリケーションがプレビューを行うために通常行う(行ったこと) - ジョブをメタファイル形式でレンダリングした後、画面に表示するか、プリンターにスプールする)

残念なことに、内容をよく理解して判断できるのでない限り、印刷ジョブをレンダリングする前にページ数を取得することはできません。そのため、少なくとも印刷の動作を余儀なくされることになります。

お役に立てれば。