Share via


方法: Windows プログラムから印刷する

このセクションでは、ネイティブ Windows プログラムから印刷する方法について説明します。

概要

通常、印刷はネイティブ Windows プログラムの不可欠な部分です。 そのため、プログラムを作成した後に簡単に追加できる機能ではありません。 つまり、プログラムが XPS ドキュメントを使用するように設計されている場合は、印刷用のドキュメント コンテンツをレンダリングするための追加のコードが必要な場合はあまりありません。 アプリケーションの XPS ドキュメントは、XPSDrv プリンター ドライバーを持つプリンターに直接送信できます。

XPS ドキュメント API を使用してドキュメント コンテンツを作成し、XPS Print API を使用してドキュメント コンテンツをプリンターに送信します。 XPS Print API は、コピー先プリンターのドキュメント コンテンツを処理します。 選択したプリンターに XPSDrv プリンター ドライバーがある場合、ドキュメントは追加の変換なしでプリンターに送信されます。 選択したプリンターに GDI ベースのプリンター ドライバーがある場合、プログラムはプリンターにコンテンツを送信することもできます。また、XPS 印刷 API はドキュメントの内容を変換して、GDI ベースのプリンター ドライバーと互換性を持つようにします。 どちらの場合も、アプリケーションが実行する処理は同じです。

印刷タスク

次のトピックでは、プログラム コンテンツを印刷する基本的な手順について説明します。

  1. ユーザーから印刷ジョブ情報を収集します。

    通常、ユーザーはメニューから印刷オプションを選択すると印刷ジョブを開始し、印刷ジョブの詳細を収集するための印刷ダイアログ ボックスが表示されます。 ユーザーは通常、プリンター、部数、両面印刷やホチキス止めなどのプリンター構成の詳細を選択します。

    これを行う方法については、「 方法: ユーザーから印刷ジョブ情報を収集する」を参照してください。

  2. 進行状況インジケーターを作成します。

    進行状況インジケーターは、印刷ジョブの進行状況に関するフィードバックをユーザーに提供します。 進行状況インジケーターには、ジョブの [キャンセル] ボタンを含むダイアログ ボックスの一部である進行状況バー、またはメイン ウィンドウの下部にあるステータス バーの進行状況バーを指定できます。

    進行状況インジケーターの動作については、「 方法: 印刷ジョブの進行状況を表示する」を参照してください。

    印刷ジョブの進行状況を表示する方法の詳細については、「 Windows アプリケーション UI 開発 ガイドライン」の情報を参照してください。

  3. 印刷スレッドを開始します。

    プログラムは、ユーザーから印刷ジョブ情報を収集した後、印刷スレッドを開始して、印刷用のドキュメントの実際の処理を実行できます。

    印刷スレッドの詳細については、「 方法: 印刷スレッドを開始および停止する」を参照してください。

  4. 印刷ジョブ データをレンダリングします。

    印刷スレッドは、印刷用にドキュメント データをレンダリングします。 この処理を個別の処理ステップに分割して、ユーザーが処理を中断してジョブを取り消し、処理スレッドが他のスレッドやプロセスをブロックできないようにする必要があります。

    で印刷ジョブ データをレンダリングする方法については、「方法: 印刷ジョブ データ をレンダリングする」を参照してください。

  5. 印刷ジョブの進行状況を監視します。

    各処理ステップが実行されたら、進行状況バーを更新して使用を通知します。 処理ステップを計算して要求されたジョブを完了し、それらのステップが実行されると進行状況バーを更新します。

  6. 印刷ジョブを閉じて、印刷スレッドを終了します。

    プログラムが印刷ジョブをプリンターに送信した後、またはユーザーが印刷ジョブを取り消した場合は、印刷ジョブを閉じて、印刷ジョブで使用されるリソースを解放する必要があります。

方法: ユーザーから印刷ジョブ情報を収集する