印刷ジョブを処理する

スプーラーは、印刷ジョブを印刷プロセッサに送信する準備ができたら、印刷プロセッサの OpenPrintProcessor 関数を 呼び出します。 この関数は初期化アクティビティを実行し、ハンドルを返します。

その後、スプーラーは PrintDocumentOnPrintProcessor を呼び出すことができます。これは、データ ストリームを入力形式から出力形式に変換し、変換されたストリームをスプーラーに返す印刷プロセッサ関数です。

入力形式が NT ベースのオペレーティング システム EMF の場合、 PrintDocumentOnPrintProcessor 関数は、「 印刷プロセッサでの GDI 関数の使用」に記載されている関数を使用して、EMF レコードの再生を制御できます。 これらの関数は、印刷プロセッサとプリンター ドライバーの間のインターフェイスを提供します。 このインターフェイスを使用すると、印刷プロセッサはプリンター ページの物理的なレイアウトを制御できるため、物理ページごとに複数のドキュメント ページを印刷する ("N-up" 印刷)、ページを逆の順序で印刷する、各ページの複数のコピーを印刷するなどの機能の実装が容易になります。

印刷プロセッサの出力データ ストリームをスプーラーに返す必要があります。 通常、データ変換でプリンター ドライバーの プリンター グラフィックス DLL との対話が必要な場合 (EMF 入力データの場合と同様)、グラフィックス DLL は EngWritePrinter を呼び出してストリームをスプーラーに返します。 一方、変換でプリンター グラフィックス DLL が呼び出されない場合 (RAW 入力データの場合と同様)、印刷プロセッサは WritePrinter を呼び出します。

PrintDocumentOnPrintProcessor 関数は、スプーラーから印刷プロセッサの ControlPrintProcessor 関数への非同期呼び出しによって中断できます。 この関数は、印刷ジョブを一時停止、再開、または取り消すアプリケーションの機能を実装します。

PrintDocumentOnPrintProcessor がデータ ストリームの変換を完了して戻った後、スプーラーは印刷プロセッサの ClosePrintProcessor 関数を呼び出します。