(57)【要約】【課題】  印刷状態にある印刷ジョブにおいてプレビュー機能を実行している際、他のジョブは少なくともプレビュー機能を実行しているジョブの処理が終了するまで、印刷されることはない。【解決手段】  アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、印刷スレッド処理とプレビュースレッド処理とを行うプリントプロセッサと、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューアとを有し、前記プリントプロセッサのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記プリントプロセッサの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。【選択図】  図６
2006039941.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするコンピュータ読み取り可能なプログラム。
【請求項２】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づきビットマップを作成する作成モジュールと、
前記作成モジュールに作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、前記作成モジュールにプレビュー開始を通知し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするコンピュータ読み取り可能なプログラム。
【請求項３】
前記作成モジュールは、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項２記載のコンピュータ読み取り可能なプログラム。
【請求項４】
システムのスプーラを利用するコンピュータ読み取り可能なプログラムであって、
アプリケーションプログラムによって発行される印刷ジョブの印刷設定を行うためのユーザインタフェースドライバと、
前記アプリケーションプログラムが発行した印刷ジョブの各ページの印刷データをページ単位でページ記述言語の状態で配置するプリントプロセッサと、
前記プリントプロセッサによる起動に応じて動作を開始するプレビューアと、
イメージデータを生成しプリンタが解釈できる印刷コマンドに変換するプリンタグラフィックドライバと、
前記印刷コマンドをプリンタに供給するランゲージモニタとを備え、
前記スプーラは、前記アプリケーションプログラムによって印刷文書データの作成が開始される際、前記プリントプロセッサをプレビューの為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記プレビューアを起動すると共に、前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータを印刷イメージファイルに格納し、
前記プレビューアは、前記印刷イメージファイルに格納されたイメージデータを画面に表示することでプレビュー表示を行ない、
前記スプーラは前記プレビュー表示終了後に、前記プリントプロセッサを印刷の為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータをプリンタが解釈できる印刷コマンドに変換することを特徴とするコンピュータ読み取り可能なプログラム。
【請求項５】
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、
プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを有し、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする情報処理装置。
【請求項６】
前記スプーラは、印刷スレッドの終了イベントに応じて、プレビュー状態が処理済のジョブを印刷処理を実行するジョブと決定し、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサは、決定されたジョブの印刷処理を実行することを特徴とする請求項５記載の情報処理装置。
【請求項７】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする情報処理装置。
【請求項８】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づきビットマップを作成する作成手段と、
前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする情報処理装置。
【請求項９】
前記処理手段は、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項８記載の情報処理装置。
【請求項１０】
文書データの印刷指示に応じて、その文書データの出力用の中間データを一時保存する手段を備える情報処理装置であって、
前記一時保存される中間データからイメージデータ生成させるためのタイミングを制御するイメージデータ生成調整手段と、
前記一時保存されている中間データに基づいて、イメージデータを生成するイメージデータ生成手段と、
前記文書データの印刷イメージの表示が前記印刷指示において指定されている場合に、その印刷指示に応じてイメージ生成要求を発行すると共に、入手したプレビュー表示のための情報に基づいて、前記文書データの印刷イメージを表わすプレビュー画面を表示するプレビュー手段と、
前記イメージ生成要求が発行されるのに応じて、前記イメージデータを生成するように前記イメージ生成手段を制御すると共に、生成されたイメージデータに基づく前記プレビュー表示のための情報を前記プレビュー手段に通知することにより、前記印刷イメージを表わすプレビュー表示が行われるように前記プレビュー手段を制御する処理制御手段とを備え、
前記文書データの出力用の中間データの保存の開始時に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データからプレビュー表示用イメージデータを前記処理制御手段に生成させ、
前記処理制御手段の処理後に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データから印刷用イメージデータを前記処理制御手段に生成させ印刷処理を行うこと特徴とする情報処理装置。
【請求項１１】
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを利用するプレビュー方法であって、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とするプレビュー方法。
【請求項１２】
前記スプーラは、印刷スレッドの終了イベントに応じて、プレビュー状態が処理済のジョブを印刷処理を実行するジョブと決定し、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサは、決定されたジョブの印刷処理を実行することを特徴とする請求項１１記載のプレビュー方法。
【請求項１３】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするプレビュー方法。
【請求項１４】
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づきビットマップを作成する作成手段と、前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするプレビュー方法。
【請求項１５】
前記処理手段は、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項１４記載のプレビュー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、所謂プレビュー機能等を有するプログラム、情報処理装置、プレビュー方法に関する。
【背景技術】
【０００２】
従来より、印刷前に印刷イメージを取得して画面に表示する技術が提案されている。
【０００３】
このような技術の一例として、プリンタ（以下、「印刷装置」と称する場合がある）に送られる印刷コマンドをプリンタに接続された計算機（情報処理装置）によって解析し、その計算機でＣＭＹＫプレーン毎に展開することによって印刷イメージを生成する手法や、プリンタに印刷を行わせるホスト計算機から当該プリンタに印刷コマンドを送信した後、そのホスト計算機では、当該プリンタ内部で作成された印刷イメージを受信すると共に、受信した印刷イメージに基づいて表示を行なう手法が一般に知られている。
【０００４】
ここで、オペレーティングシステム（ＯＳ）としてＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、そのＯＳ標準のスプールファイルに格納されるため、そのスプールファイル内に格納された印刷データに自在にアクセスすることはできない。このため、係る印刷システムにおいては、印刷データが実際に印刷処理はじめた時に、印刷イメージを表示するプレビューアが実行され、その印刷データが実際に印刷される際に印刷イメージを作成する当該プリンタドライバと、印刷イメージを表示する当該プレビューアとが協調することにより、プレビュー機能が実現される。（例えば、特許文献１参照）
【特許文献１】特開２００３−１６７７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような従来の技術には次のような解決すべき課題がある。
【０００６】
インクジェットプリンタにおいては、小型化、低コスト化を目的としているため、印刷装置が受信した印刷コマンドから印刷イメージを生成し上位装置であるホスト計算機に送信する機能を実現することは困難である。またインクジェットプリンタにおいては印刷解像度が高くなるため、印刷装置で生成した印刷イメージのサイズが非常に大きくなり、ホスト計算機に送信することは非現実的である。
【０００７】
また、オペレーティングシステム（ＯＳ）としてＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムにおいては、次のようにプレビュー機能を提供していた。まずＯＳの印刷機能によりプリンタ毎にスプールファイルに格納される印刷の単位（以下、「印刷ジョブ」と称する）が管理されるキューが用意され、複数の印刷ジョブが格納される。キューに格納された印刷ジョブの中で印刷状態になるのは通常１個だけであり、最も優先順位の高い印刷ジョブが印刷状態となる。印刷状態になった印刷ジョブの印刷処理を行うために、ＯＳの印刷機能はプリンタドライバを呼び出すことにより、印刷イメージを生成し、印刷イメージからプリンタが解釈できる印刷コマンドを生成し、印刷コマンドをプリンタに供給することで印刷を実行する。この印刷システムを利用してプレビュー機能を実現するためには、印刷状態である印刷ジョブにおいてプレビュー表示する指示が設定されている時であり、プリンタドライバはプレビュー表示を行うアプリケーションを起動し、プリンタドライバがプレビュー表示用に生成したイメージデータを画面に表示することでプレビュー機能を実現していた。
【０００８】
ここで、同ＯＳを用いてプレビュー機能を実行している間は、他の印刷ジョブは印刷状態にならない。このためキュー中に印刷中の印刷ジョブがある場合、他の印刷ジョブのプレビュー機能を実行できないため、ユーザーは少なくとも印刷中のジョブと発行した印刷ジョブより優先順位の高い印刷ジョブが処理されるまで、印刷イメージを見ることができない。
【０００９】
また、同ＯＳを用いた場合、印刷状態にある印刷ジョブにおいてプレビュー機能を実行している際、他のジョブは少なくともプレビュー機能を実行しているジョブの処理が終了するまで、印刷されることはない。
【００１０】
また、同ＯＳを用いた場合、複数のユーザーが同時に印刷ジョブを発行することができるため、あるユーザーがプレビュー機能を使用中は他のユーザーはプレビュー機能を利用できない欠点がある。また同様にあるユーザーがプレビュー機能を使用中は他のユーザーは印刷ジョブを発行しても実際に印刷されない欠点がある。
【００１１】
本発明は上記従来の問題を鑑みてなされたもので、ＯＳの印刷ジョブの処理方法とプリンタドライバにプレビュー機能の追加を行うことで、従来のプリンタドライバとの親和性を保ち、簡易な構成を有しつつ、効率良く高品質の印刷イメージをプレビュー表示可能な印刷制御装置及び方法、コンピュータプログラム、コンピュータ読み取り可能な記憶媒体、プレビュー装置及び方法、印刷ジョブの処理方法、プリンタドライバ及びそのプレビュー方法の提供を目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するため、本発明のコンピュータ読み取り可能なプログラムは、アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【００１３】
また、本発明のコンピュータ読み取り可能なプログラムは、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づきビットマップを作成する作成モジュールと、
前記作成モジュールに作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、前記作成モジュールにプレビュー開始を通知し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【００１４】
また、本発明のコンピュータ読み取り可能なプログラムは、
システムのスプーラを利用するコンピュータ読み取り可能なプログラムであって、
アプリケーションプログラムによって発行される印刷ジョブの印刷設定を行うためのユーザインタフェースドライバと、
前記アプリケーションプログラムが発行した印刷ジョブの各ページの印刷データをページ単位でページ記述言語の状態で配置するプリントプロセッサと、
前記プリントプロセッサによる起動に応じて動作を開始するプレビューアと、
イメージデータを生成しプリンタが解釈できる印刷コマンドに変換するプリンタグラフィックドライバと、
前記印刷コマンドをプリンタに供給するランゲージモニタとを備え、
前記スプーラは、前記アプリケーションプログラムによって印刷文書データの作成が開始される際、前記プリントプロセッサをプレビューの為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記プレビューアを起動すると共に、前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータを印刷イメージファイルに格納し、
前記プレビューアは、前記印刷イメージファイルに格納されたイメージデータを画面に表示することでプレビュー表示を行ない、
前記スプーラは前記プレビュー表示終了後に、前記プリントプロセッサを印刷の為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータをプリンタが解釈できる印刷コマンドに変換することを特徴とする。
【００１５】
また、本発明の情報処理装置は、
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、
プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを有し、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする。
【００１６】
また、本発明の情報処理装置は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【００１７】
また、本発明の情報処理装置は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づきビットマップを作成する作成手段と、
前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【００１８】
また、本発明の情報処理装置は、
文書データの印刷指示に応じて、その文書データの出力用の中間データを一時保存する手段を備える情報処理装置であって、
前記一時保存される中間データからイメージデータ生成させるためのタイミングを制御するイメージデータ生成調整手段と、
前記一時保存されている中間データに基づいて、イメージデータを生成するイメージデータ生成手段と、
前記文書データの印刷イメージの表示が前記印刷指示において指定されている場合に、その印刷指示に応じてイメージ生成要求を発行すると共に、入手したプレビュー表示のための情報に基づいて、前記文書データの印刷イメージを表わすプレビュー画面を表示するプレビュー手段と、
前記イメージ生成要求が発行されるのに応じて、前記イメージデータを生成するように前記イメージ生成手段を制御すると共に、生成されたイメージデータに基づく前記プレビュー表示のための情報を前記プレビュー手段に通知することにより、前記印刷イメージを表わすプレビュー表示が行われるように前記プレビュー手段を制御する処理制御手段とを備え、
前記文書データの出力用の中間データの保存の開始時に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データからプレビュー表示用イメージデータを前記処理制御手段に生成させ、
前記処理制御手段の処理後に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データから印刷用イメージデータを前記処理制御手段に生成させ印刷処理を行うこと特徴とする。
【００１９】
また、本発明のプレビュー方法は、
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを利用するプレビュー方法であって、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする。
【００２０】
また、本発明のプレビュー方法は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【００２１】
また、本発明のプレビュー方法は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づきビットマップを作成する作成手段と、前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【発明の効果】
【００２２】
以上説明した本発明によれば、ＯＳのスプーラの変更により、印刷ジョブのプレビュー機能の枠組みが提供され、プリンタドライバを変更することにより、複数の印刷ジョブを同時にプレビュー表示でき、かつプレビュー処理中の印刷ジョブをスキップして他の印刷ジョブの印刷処理を行える、快適なプレビュー機能をユーザに提供することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係る印刷システムの実施形態を、図面を参照して詳細に説明する。
【００２４】
尚、以下の説明において、「文書」には、テキストの他に図や表あるいはビットマップ画像などのグラフィカルな内容を含むものや、グラフィカルな内容のみからなるものも含むものとする。
【００２５】
図１は、本発明の実施形態に係る印刷システムにて印刷及び印刷プレビューが実行される際のデータフローを示すブロック図である。
【００２６】
同図に示すように、本実施形態に係る印刷システムは、印刷制御装置としてのホスト計算機（コンピュータ）１００とプリンタ１２０とによって構成されており、コンピュータ１００では、オペレーティングシステム（ＯＳ）の一例として、マイクロソフト社製のＷｉｎｄｏｗｓ（登録商標）が動作する。
【００２７】
このコンピュータ１００内部では、実行されるモジュール（機能単位）として、
・印刷イメージをディスプレイ１３０に表示するプレビューア１１４、
・ユーザによる印刷設定操作を実現するユーザインタフェースドライバ１１０、
・プレビューア１１４を起動する機能を有し、且つ印刷ページ処理を行なうプリントプロセッサ１１１、
・印刷ジョブの印刷処理とプレビュー処理を管理するスプーラ１０４、
・プリンタ１２０により印刷されるべき印刷イメージの生成処理しプリンタが解釈可能な印刷コマンドへの変換を行なうプリンタグラフィックドライバ１１２、
・プリンタグラフィックドライバ１１２により生成された印刷コマンドをプリンタに供給するランゲージモニタ１１３
を備える。
【００２８】
上記のプリンタグラフィックドライバ１１２は、生成した印刷データを、ランゲージモニタ１１３を介して、プリンタ１２０に送信するだけでなく、指定されたファイル名でファイルとして保存する機能をも有している。
【００２９】
また、上記のプリンタグラフィックドライバ１１２は、生成する印刷データを、ビットマップデータ形式で生成することも、プリンタ７が処理可能な言語で生成することも可能である。プレビュー表示を行うに際して印刷イメージファイルであるプレビューファイル１１５、１１６、１１７が一時的に作成される。
【００３０】
尚、図１に示すデータフローが実現される印刷システムのハードウェア構成例については、図２、図１７を参照して後述する。
【００３１】
図１に示す印刷システムは、パーソナルコンピュータ等の上位装置１００でアプリケーション（アプリケーションプログラム）１０１にて作成された文書の印刷用データを、ＧＤＩ１０２を介してＥＭＦスプールファイル１０３に中間的な印刷データ（出力用の中間データ）として一時保持する。スプーラ１０４は一時保持された中間データをプレビュー用のビットマップデータ、或いは印刷用の印刷コマンドへ変換するためにプリントプロセッサ１１１を呼び出す機能を有している。そして、この変換されたビットマップデータは、ホスト計算機１００からプリンタ１２０に供給され、プリンタ１２０において記録用紙等に印刷された文書１２１として出力されるよう構成されている。
【００３２】
本実施形態において、ユーザインタフェースドライバ１１０、プリントプロセッサ１１１、プリンタグラフィックドライバ１１２、ランゲージモニタ１１３、プレビューア１１４は、オペレーティングシステム供給者とは異なる他者（本実施形態ではプリンタメーカ）が供給するプリンタドライバプログラムにより提供されるものである。尚、以下の説明では、ユーザインターフェースドライバ１１０、プレビューア１１４、プリントプロセッサ１１１、プリンタグラフィックドライバ１１２、ランゲージモニタ１１３を含むプログラム群を、「プリンタドライバプログラム」と総称する場合がある。
【００３３】
ＧＤＩ（グラフィックデバイスインタフェース）１０２は、オペレーティングシステムであるＷｉｎｄｏｗｓ（登録商標）のグラフィクスエンジンとして提供される。即ち、ＧＤＩ１０２は、Ｗｉｎｄｏｗｓ（登録商標）において画面表示や印刷等のグラフィックス処理を行うプログラムモジュールであり、アプリケーション１０１からの描画コマンドを受け、その描画コマンドは、ＧＤＩ１０２において、上記のプリンタドライバプログラム等のデバイスドライバが解釈できるデータ形式に変換してから、そのデバイスドライバに対して、送信される。
【００３４】
またＥＭＦとは、Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅの略で、ＯＳであるＷｉｎｄｏｗｓ（登録商標）における描画データの論理的な格納形式であり、図１に示すＥＭＦスプールファイル１０３には、文書の印刷データがＥＭＦ形式で格納される。
【００３５】
またスプーラ１０４は作成されたＥＭＦスプールファイル１０３の印刷処理を実行するためにプリンタドイバを呼び出す、オペレーティングシステムであるＷｉｎｄｏｗｓ（登録商標）におけるプロセスであり、本実施形態の印刷システムではディスプレイ１３０への当該文書のプレビュー表示１３１のために、ＯＳ標準のスプーラに機能拡張を行っている。
【００３６】
ユーザインタフェースドライバ１１０は、印刷に使用する記録用紙の用紙サイズや印刷方向、その他の属性を設定する一般的な設定機能を提供するのに加えて、更に本実施形態に係るユーザインタフェースドライバ１１０は、印刷実行時に印刷処理の前に、文書の印刷イメージを表わすプレビュー表示（１３１）を、図１に例示する如く表示装置１３０に表示するか否かを決めるプレビュー設定機能を、ユーザに提供する印刷設定処理部を有する。以下、本実施形態では、ユーザインタフェースドライバ１１０を介して設定された値を「印刷設定」と呼ぶ。
【００３７】
本実施形態において、ユーザは、後述するユーザインタフェースドライバ１１０によって表示装置１３０に表示されるユーザインターフェース画面を通して当該印刷設定処理部の提供する機能を用いることで、プレビュー表示の有無を含む印刷設定を設定することができる。例えば、プレビュー設定は「プレビュー表示する」又は「プレビュー表示しない」のいずれかを示すフラグとして実現される。以下の説明では、プレビュー設定において「プレビュー表示する」と設定されている状態を単に「プレビュー設定されている」と呼ぶことにする。
【００３８】
また、係る印刷設定は、ＥＭＦスプールファイル１０３の一部として磁気ディスク等のファイル装置に格納され、ユーザインターフェースドライバ１１０やプリントプロセッサ１１１等により参照される。
【００３９】
＜ユーザインタフェースドライバによる印刷設定ダイアログの一例＞
図３は本発明の実施形態のユーザインタフェースドライバによる印刷設定ダイアログの一例を示す図である。
【００４０】
図３において、印刷設定ダイアログ３０１は、表示エリア３０２〜３３１で構成される。印刷設定では表示する設定項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でも、複数のタブシートを使用している。
【００４１】
基本設定タブ３０２では、印刷の基本に関する内容を表示する。このタブにおける詳細については後述する。
【００４２】
ページ設定タブ３０３は、印刷用紙の用紙サイズ、印刷方向（印刷向き）、印刷レイアウト（Ｎ−ｕｐ）等の各種ページ設定に関する内容を表示する。尚、Ｎ−ｕｐとは、１枚の紙にＮページ分（Ｎページ以上（Ｎ−ｕｐ））の文書をレイアウトして印刷することを意味する。スタンプ／背景タブ３０４は、印刷文書に対して文字を重ねるスタンプ機能や、画像を重ねる背景機能等の、印刷時に付加するパターンの選択画面を表示する。特殊効果タブ３０５は、各種画像補整やセピア調等の特殊効果を画像に与える場合に使用する機能の選択画面を表示する。お気に入りタブ３０６は、頻繁に使用する印刷設定等の保存と呼出機能の選択画面を表示する。ユーティリティタブ３０７は、ヘッドの調整やクリーニング等の機能の選択画面を表示する。
【００４３】
図３は、基本設定タブ３０２が選択された場合の表示例を示している。
【００４４】
基本設定タブ３０２の簡易表示エリア３２０には、文字情報だけでなく視覚に訴える形で設定された画像情報を表示する。プリントアドバイザ３２１が選択されると、ユーザにより印刷設定を適切に入力させるために、印刷目的から最適な印刷設定を段階的に導く機能を持つサブダイアログを表示する。
【００４５】
用紙種別選択部３２２は、用紙の種類を表示するとともにユーザにより選択させることができる。用紙種別選択部３２２は、ドロップダウンメニューとなっており、普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種別がリスト表示される。選択可能な用紙の種類は、プリンタ１２０で印刷可能な用紙であり、図示されている普通紙の他にも、例えば、光沢紙やコート紙、写真専用紙、ハガキ等が含まれる。
【００４６】
給紙方法選択部３２３は、プリンタ１２０本体が印刷用紙を給紙する給紙方法を表示し、ユーザによる給紙方法の選択をさせることができる。ユーザは、給紙方法選択部３２３により、例えば、自動給紙口である給紙トレイ（オートシートフィーダ）や給紙カセットが選択できる。
【００４７】
印刷品質選択部３２４は、ユーザに印刷の品位を設定させるための設定項目であり、ラジオボタンで構成される。ここでは、設定項目として、きれい、標準、速い、カスタムがある。色調整部３２５は、ユーザに印刷の色を調整させるための設定項目であり、ラジオボタンで構成される。ここでは、設定項目として、自動、マニュアル調整がある。グレースケール設定部３２６は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー設定部３２７は、印刷前に印刷イメージをプレビューするためのチェックボックスである。
【００４８】
バージョン情報ボタン３３０は、本印刷設定ダイアログ３０１を表示するドライバのバージョンを示すサブダイアログを表示させるためのボタンである。標準設定部３３１が押されると、基本設定タブ３０２の各種設定が標準（出荷時設定）に戻される。
【００４９】
ユーザは、各設定項目を適宜選択した後に、ＯＫボタン３０８を押下することで印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させることができる。一方、キャンセルボタン３０９を押下すると、印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン３１０は、印刷設定ダイアログ３０１は開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン３１１は、基本設定タブ３０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００５０】
＜プレビューアによるプレビューウィンドウの一例＞
図４は本実施の形態におけるプレビューアによって提供される表示画面（プレビューウィンドウ）を例示する図である。４０１は印刷プレビューウィンドウであり、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【００５１】
４０２はプレビューウィンドウ４０１のメニューバーであり、ユーザは表示切り替え等プレビューアへの命令をメニュー形式選択することができる。ユーザ操作部４０３〜４０６が用意される領域ははツールバーであり、ユーザはメニューバー４０２を使用しなくともツールバー４０３を押下することで容易にプレビューページの切り替え等を行うことができる。４０３の４つのボタンはページ切り替えボタンであり先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。４０４はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や１００％、２００％表示等を選択することができ、プレビューアはユーザの表示サイズ変更を解釈し適当な解像度のプレビュー用ビットマップ画像を得ることで表示を切り替える。４０５は印刷開始ボタンで、このボタンを押下することでプレビューアを終了しプレビューしていた印刷ジョブを印刷処理可能な状態にすることができる。４０６は印刷中止ボタンであり、このボタンを押下することでプレビューアを終了しプレビューしていた印刷ジョブの印刷処理をキャンセルすることができる。４０７はプレビュー表示領域で、プレビュー用ビットマップとして作成した印刷用紙と印刷用紙に形成されるであろう可視象を表示する。４０８はプレビュー機能を実行している印刷ジョブの印刷設定に関る代表的な設定項目の設定値を表示するための表示領域であり、本図においては文書の総ページ数は３ページであり、現在プレビュー表示しているページ番号は２ページであり、印刷設定で設定された部数は１部であり、かつ等倍印刷が設定されていた例を示している。
【００５２】
また、本実施形態において、図４に例示する表示画面は、アプリケーションにおいてプレビュー設定がされた状態で印刷開始の指示が与えられるのに応じて表示される。最初にプレビュー表示の対象となるページは、例えば、印刷条件の設定に従って、文書が実際に印刷されたときの最初のページであり、ページ番号は常に１となる。また、例えば、印刷条件に逆順印刷が設定されている場合には、文書の最終ページから印刷されるため、ページ番号１のプレビュー画像は、当該文書の最終ページに対応する。
【００５３】
尚、図４に示す例では、ページ番号は直接指定できないが、ページ番号を入力させる入力ボックスを設け、そこに入力されたページ番号のページをプレビュー表示する処理構成としても良い。
【００５４】
＜プリンタキュー＞
通常、一台のプリンタで同時に印刷可能な文書は一つであることから、オペレーティングシステムはプリンタごとに複数の印刷ジョブを管理するための論理的なキューをもつ（以降プリンタキュー、あるいは単にキューと称する）。図５はユーザが視覚的に少なくともプリンタキュー内部の印刷ジョブの状態を確認することが可能なキューウィンドウの一例であり、本実施の形態におけるプレビュー機能を実行している印刷ジョブを含んでいる。印刷ジョブの状態がプレビュー中になっている印刷ジョブがプレビュー機能を実行している印刷ジョブである。
【００５５】
＜スプーラの印刷ジョブの処理＞
図６〜図８は本実施の形態におけるスプーラが、プリンタキュー中の印刷ジョブを、プレビュー処理した後に印刷処理を行う際に着目したフローチャートを示している。Ｗｉｎｄｏｗｓ（登録商標）の標準スプーラはプレビュー機能を提供しないため、本実施の形態ではプレビュー機能を追加しており、他の印刷機能に関しては標準スプーラと同様としている。また本実施の形態においてはプリントプロセッサの標準インタフェースにもプレビューの為の拡張を行っている。従って、本実施の形態においてはプレビュー機能に着目して主にスプーラとプリントプロセッサについて説明する。スプーラは図９に例示されるような各印刷ジョブの内部状態を管理するためのテーブルを保持しており、図５のキューウィンドウで例示されるように印刷ジョブの状態をユーザに解りやすく伝えることに用いられる。本実施の形態では内部状態として、印刷中フラグ、アプリ印刷データ作成状態、プレビュー状態の三種の状態を扱い、キューウィンドウを用いてユーザに示すための印刷状態表示を決定する。
【００５６】
スプーラはＯＳの印刷機能を提供するプロセスであるため、通常は動作を終了することはなく、Ｓ６０１とＳ６５１で示されるキューの処理ループを処理し続ける。Ｓ６０２では印刷ジョブに関するイベントを待つ。印刷ジョブに関するイベントとは、例えば、アプリケーションによる印刷処理の開始や終了であるとか、実際の印刷処理の一時停止や終了等を指す。イベントを受け取るとＳ６１０に移りアプリの印刷データ作成開始イベントか判定し、アプリの印刷データ作成開始イベントの場合Ｓ６１１に移り新規の印刷ジョブの処理を行う。Ｓ６１０でアプリの印刷データ作成開始イベントでない場合、Ｓ６２０に移る。
【００５７】
Ｓ６１１ではイベントで通知された新規に作成されたアプリ印刷データ作成状態を作成中に、印刷中フラグをＯｆｆに設定する。続いてＳ６１２では印刷ジョブを処理する為のプリントプロセッサが本実施の形態のプレビュー機能に対応しているかどうかを判断し、非対応のプリントプロセッサであればＳ６１５に移り、対応したプリントプロセッサであればＳ６１３に移る。プリントプロセッサが本実施の形態のプレビュー機能に対応しているかどうかの判定方法は図７を用いて後述する。Ｓ６１５ではプリントプロッサーがプレビュー機能に非対応であるので、印刷ジョブのプレビュー状態を処理済に設定する。続いてＳ６１６でキュー内のジョブの中に印刷フラグがＯｎのジョブがあるかどうかを判定し、印刷フラグがＯｎのジョブがあればＳ６５０に移り、印刷フラグがＯｎのジョブがなければ、Ｓ６１７に移りイベントで通知された印刷ジョブの印刷処理を行ない、続いてＳ６５０に移る。ここで本実施の形態ではキュー中に印刷フラグがＯｎ、つまり印刷処理中である印刷ジョブが最大１個であることを前提としているが、１個のキューに対して複数のプリンタを割り当てるプリンタプール機能を使用する場合は割り当てられているプリンタの数が、同時に印刷フラグがＯｎになる最大数とすればよい。また、Ｓ６１７の印刷ジョブの印刷処理については図８で後述する。
【００５８】
Ｓ６１２でプリントプロセッサが本実施の形態のプレビュー機能に対応していない場合、Ｓ６１３でキュー中の印刷ジョブの中でプレビュー状態が処理中である印刷ジョブの数が、システムが許容する最大プレビュ数未満かどうか判定し、最大プレビュ数未満であればＳ６１４に移り、最大プレビュ数であればＳ６１８に移る。ここでシステムが許容する最大プレビュ数とは、同時にプレビュー画像を作成し表示することを許す最大の数であり、少なくとも図１のホスト計算機１００を同時に使用できるユーザの数に設定しておくことで、全てのユーザが同時に一つの印刷ジョブにおいてプレビュー機能を利用することが可能となる。また、この最大プレビュ数はホスト計算機１００の処理性能にも依存するため、スプーラがホスト計算機１００の処理性能を判定し自動的に設定するようにしてもよいし、ユーザが設定できるようにしてもよいことは言うまでもない。Ｓ６１３で最大プレビュー数未満と判断された場合、Ｓ６１４において印刷ジョブのプレビュー処理（図７）を行ない、Ｓ６５０に移動する。一方最大プレビュー数であればＳ６１８で、印刷イベントで通知された印刷ジョブのプレビュー状態を未処理に設定し、Ｓ６５０に移る。また、Ｓ６１４の印刷ジョブのプレビュー処理については後述する。
【００５９】
Ｓ６２０では印刷スレッドの終了イベントかどうかを判定し、印刷スレッドの終了イベントであればＳ６２１に移り、他のイベントであればＳ６３０に移動する。Ｓ６２１ではイベントで通知された印刷ジョブの削除処理を行ない、Ｓ６２２ではキュー内の印刷ジョブの中から次に印刷処理を行う印刷ジョブを決定する。ここで次に印刷処理を行うことのできる印刷ジョブとは、少なくとも印刷ジョブのプレビュー状態が処理済かつ印刷中フラグがＯｆｆになっている印刷ジョブである。この条件を満たす印刷ジョブが複数ある場合は優先順位や印刷ジョブの作成開始日時等から次に印刷処理を行う印刷ジョブを決定すればいいことは言うまでもない。また、Ｓ６２２の処理の詳細を図１０で後述する。Ｓ６２３では次に印刷処理を行うべき印刷ジョブがあるかどうかを判定し、ない場合はＳ６５０に移り、ある場合はＳ６２４に移り印刷ジョブの印刷処理（図８）を行なった後にＳ６５０に移る。
【００６０】
Ｓ６３０では受け取ったイベントがプレビュースレッドの終了イベントかどうかを判定し、プレビュースレッドの終了イベントであればＳ６３１に移り、異なればＳ６４０に移る。Ｓ６３１ではイベントで通知された印刷ジョブのプレビュー状態を処理済に設定する。続いてＳ６３４でキュー内のジョブの中に印刷フラグがＯｎのジョブがあるかどうかを判定し、印刷フラグがＯｎのジョブがあればＳ６３２に移り、印刷フラグがＯｎのジョブがなければ、Ｓ６３５に移りイベントで通知された印刷ジョブの印刷処理（図８）を行ない、続いてＳ６３２に移る。続いてＳ６３２ではキュー内の印刷ジョブ中にプレビュー状態が未処理のジョブがあるかどうかを判定し、なければＳ６５０に移り、あればＳ６３３で印刷ジョブのプレビュー処理（図７）を行ないＳ６５０に移る。
【００６１】
Ｓ６４０では受け取ったイベントがアプリケーションの印刷データ作成終了イベントかどうかを判定し、アプリケーションの印刷データ作成終了イベントであれば、Ｓ６４１に移りイベントで通知された印刷ジョブのアプリ印刷データ作成状態を作成済にした後にＳ６５０に移る。一方Ｓ６４０でアプリケーションの印刷データ作成終了イベントではないと判定されればＳ６４２に移り、その他の印刷イベントの処理をした後にＳ６５０に移る。ここでその他の印刷イベントとは例えば印刷ジョブの一時停止や、印刷ジョブの削除のイベント等である。
【００６２】
Ｓ６５０では図５に例示されるキューウィンドウの各印刷ジョブの状態表示を更新する。ここで印刷ジョブの状態表示は印刷ジョブの印刷中フラグとアプリ印刷データ作成状態とプレビュー状態により決定する。図９は印刷ジョブの状態表示を決定するための各状態との対応表である。例えば印刷中フラグがＯｆｆかつアプリ印刷データ作成状態が作成済かつプレビュー状態が処理中であれば、印刷ジョブの状態表示はプレビュー中となる。ここで図９のプレビュー状態が処理済であるときだけ印刷中フラグがＯｎになりうること、つまりプレビュー処理が終了した印刷ジョブのみが実際の印刷処理が行われることが特徴である。
【００６３】
上記Ｓ６０１からＳ６５１のループを繰り返し行うことで、キューの印刷ジョブの処理を行う。
【００６４】
図７にＳ６１４、Ｓ６３３のサブルーチンである印刷ジョブのプレビュー処理のフローチャートを示す。Ｓ６６１でプリントプロセッサにプレビュー処理を行わせるためのサブスレッドを作成し、プレビュー機能に対応したプリントプロセッサが持つプレビュー用のインタフェースを介してプリントプロセッサを呼び出す。呼び出されたプリントプロセッサの処理は図１２で後述する。続いてＳ６６２ではプレビュー処理を行う印刷ジョブのプレビュー状態を処理中にした後に、終了する。プリントプロセッサが持つインタフェースについては図１３を用いて後述する。
【００６５】
図８にＳ６１７、Ｓ６２４のサブルーチンである印刷ジョブの印刷処理のフローチャートを示す。Ｓ６７１でプリントプロセッサに印刷処理を行わせるためのサブスレッドを作成し、プリントプロセッサが持つ印刷用のインタフェースを介してプリントプロセッサを呼び出す。呼び出されたプリントプロセッサの処理は図１１で後述する。続いてＳ６７２では印刷処理を行う印刷ジョブの印刷フラグをＯｎにした後に、終了する。
【００６６】
図１０に、Ｓ６２２のキュー内の印刷ジョブの中から次に印刷処理を行う印刷ジョブを決定する処理のフローチャートの一例を示す。図９に示されるように印刷可能なジョブは少なくともプレビュー状態が処理済で、かつ印刷中フラグがＯｆｆである必要がある。この条件を満たす印刷ジョブが複数存在する場合は、更なる条件、例えば印刷ジョブの作成開始時刻が最も古い印刷ジョブから印刷処理を行えばよい。
【００６７】
まず始めにＳ６８１で初期化処理を行う。初期値として、次に印刷処理するジョブＮは「なし」を、印刷ジョブの作成開始時刻Ｔには現在の時刻を格納しておく。Ｓ６８２からＳ６８６はプリンタキュー内の全ての印刷ジョブに対して処理を行うためのループであり、処理対象の印刷ジョブを印刷ジョブＪと表記する。Ｓ６８３では印刷ジョブＪの印刷中フラグがＯｆｆかどうかを判断し、ＯｆｆでなければＳ６８７に移り次の印刷ジョブの処理を行ない、ＯｆｆであればＳ６８４に移る。Ｓ６８４では印刷ジョブＪのプレビュー状態が処理済かどうかを判断し、処理済でなければＳ６８７に移り次の印刷ジョブの処理を行ない、処理済であればＳ６８５に移る。Ｓ６８５では印刷ジョブＪの作成開始時刻が作成開始時刻Ｔと比較し古いかどうかを判断し、古くなければＳ６８７に移り次の印刷ジョブの処理を行ない、古ければＳ６８６に移る。Ｓ６８６では、次に印刷処理するジョブＮを印刷ジョブＪに設定し、作成開始時刻Ｔには印刷ジョブＪの作成開始時刻を格納する。このようにして作成開始時刻が最も古い印刷ジョブの検索処理を行えば、プリンタキュー内で次に印刷処理を行うべき印刷ジョブを決定することができる。
【００６８】
以上のように印刷ジョブの作成が開始された直後に、プレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すことで、各印刷ジョブにおいて即座にプレビュー処理が開始される。また、プレビュー処理が完了するまでは印刷処理が実行されないので、たとえ作成開始時刻が遅い印刷ジョブでもプレビュー処理が処理済であれば、プレビュー処理が未処理あるいは処理中の印刷ジョブよりも先に印刷処理を行うことができる。このことは特に複数のユーザにより作成されたジョブが同時にプリンタキュー内に存在する場合に有効であり、あるユーザがプレビュー機能を実行している際に他のユーザが印刷ジョブをプレビュー設定をしていない印刷ジョブを作成した場合、先に作成されたプレビュー中のジョブを後回しにして、先に印刷処理を行うことが可能となり、プリンタを無駄無く活用することができる。
【００６９】
＜プリントプロセッサの処理＞
図１３にＷｉｎｄｏｗｓ（登録商標）標準仕様のプリントプロセッサと本実施の形態のプリントプロセッサが持つインタフェースの概念図を示す。本実施の形態におけるプリントプロセッサはＷｉｎｄｏｗｓ（登録商標）の標準仕様のプリントプロッセッサにプレビュー機能を追加してある。つまり、Ｗｉｎｄｏｗｓ（登録商標）標準仕様のプリントプロセッサには印刷処理を行うためのインタフェースが用意されているがプレビュー用のインタフェースが無いため、本実施の形態のプリントプロセッサではプレビュー用のインタフェースを追加している。印刷用のインタフェースはＰｒｉｎｔＤｏｃｕｍｅｎｔＯｎＰｒｉｎｔＰｒｏｃｅｓｓｏｒ（）であり印刷処理時にスプーラから呼び出される。本実施の形態でＷｉｎｄｏｗｓ（登録商標）標準仕様に追加したインタフェースはＰｒｅｖｉｅｗＤｏｃｕｍｅｎｔＯｎＰｒｉｎｔＰｒｏｃｅｓｓｏｒ（）でありプレビュー処理時にスプーラから呼び出される。スプーラは印刷ジョブを処理する際に印刷ジョブに結びつけられたプリントプロセッサがＷｉｎｄｏｗｓ（登録商標）標準仕様に則っているか或いは本実施の形態におけるプレビュー機能を有したものかを判断するには、プレビュー用のインタフェースを持っているかどうかを調べればよい。また本実施の形態におけるプレビュー用インタフェース内では印刷用インタフェース内で呼び出し可能なＯＳの印刷機能は全て利用できるようにしてある。このため、プリントプロセッサはプレビュー用インタフェース内で図１のＥＭＦスプールファイル１０３から印刷データをレイアウトしプリタグラフィックドライバに供給し、プリンタグラフィックドライバはレイアウトされた印刷データからイメージデータを作成しプレビュー用の画像をビットマップとしてファイルに保存することができ、プレビューアは作成されたプレビュー用の画像を画面に表示することが可能である。
【００７０】
次に図１１，図１２に示したプリントプロセッサのフローチャートを用いて、本実施形態に係るプリントプロセッサによって実現されるプレビュー処理及び印刷ページ処理を説明する。プリントプロセッサは、アプリケーションが印刷対象の文書の印刷処理を開始するのに応じてスプーラから呼び出され、図１２に示す処理手順を開始する。またプレビュー処理が済んだ印刷ジョブから優先順位等のより選択された印刷ジョブに対して、プリントプロセッサはスプーラから呼び出され、図１１に示す処理手順を開始する。つまり、図１１，１２におけるプリントプロセッサによる印刷ページ処理は、印刷ジョブごとに行われる。
【００７１】
図１２はプリントプロセッサのプレビュー用のインタフェースがスプーラにより呼び出された時（Ｓ６６１）のフローチャートを示している。Ｓ７１１で印刷ジョブの印刷設定でプレビュー設定がＯＮに設定されているかどうかを判定し、ＯＮであればＳ７１２に移り、ＯＮでなければ即座に終了する。なお、プリントプロセッサの処理終了時に、スレッドの終了イベントがスプーラに通知され、スプーラはＳ６３０のプレビュスレッドの終了イベントの判別でＹＥＳと判別しＳ６３１に処理を進める。Ｓ７１２と続くＳ７１３ではプレビュー画面を表示するためのプレビューアを起動し、プレビュー画像とその印刷条件を格納するための作成用プレビューファイルを内容を空にした状態で作成し、プレビュー処理を開始する旨を作成用プレビューファイルのファイル名と共にプリンタグラフィックドライバに通知する。起動されたプレビュアの処理は図１４で後述する。続いてＳ７１４ではプレビューアからの要求を待ち、要求があればＳ７１５でプレビューアの要求を取得する。ここで要求とは、プロセス間の通信のための所定形式のメッセージとして実現できる。
【００７２】
続いてＳ７１６では、プレビューアから取得した要求の種別を判定し、プレビュー初期化要求ならばＳ７１７に移り初期化処理の判定を行い、プレビュー初期化要求でないならばＳ７２１に移る。Ｓ７１７では、既に初期化処理を行ったかどうかを判定し、初期化済みであればＳ７１４に移りプレビューア８からの要求を待ち、初期化済みでなければＳ７１８に移り初期化処理を行う。Ｓ７１８では、参照用プレビューファイルの初期化処理として、プレビューアからの要求内容から、使用すべき参照用プレビューファイルの個数を取得し、内容を空にした参照用プレビューファイルを要求された個数だけ作成した後、Ｓ７１４に移りプレビューアからの要求を待つ。また、Ｓ７１８の初期化処理に際しては、図１５に例示する表（データテーブル）も、初期化されたファイルに対応する欄が、例えばヌルデータによって更新されることによって初期化される。
【００７３】
Ｓ７２１では、プレビューアの要求の種別を判定し、印刷中止要求ならば印刷ジョブの印刷処理を中止するためＳ７２５に移りプレビュー処理中の印刷ジョブのキャンセル処理を行ないＳ７２６に移り、印刷中止要求でないならばＳ７２２に移る。Ｓ７２２では、プレビューアの要求の種別を判定し、印刷開始要求ならば通常の印刷処理を行うためにＳ７２６に移り、印刷開始要求でないならばＳ７２３に移る。そして、Ｓ７２６ではＳ７２１とＳ７１８で作成したプレビューファイルを削除し、続くＳ７２７でＯＳにプレビュ処理の終了を通知して、プリントプロセッサのプレビュースレッド処理を終了する。
【００７４】
Ｓ７２３ではプレビューアの要求の種別を判定し、プレビュー画像作成要求ならばＳ７３１に移りプレビュー画像作成処理を行ない、プレビュー画像作成要求でないならばＳ７２４に移りその他の要求の処理を行う。Ｓ７２４では、プレビューアの要求の種別のうち、印刷開始要求と印刷中止要求とプレビュー画像作成要求以外の要求の処理を行ない、例えば印刷され得る全ページ数（総ページ数）を要求された時はプレビューアへの回答として全ページ数を用意し、例えば要求がアプリケーションの印刷データがスプール中かどうかの問い合わせであればプレビューアへの回答としてスプール中かどうかのフラグを用意し、要求に適した回答を作成した後にプレビューアに回答する。回答を終えるとＳ７１４に移りプレビューアからの要求を待つ。また、例えば参照用プレビューファイル内容の削除要求であれば、指定されたファイル番号の参照用プレビューファイルの内容を空にし、作業完了をプレビューアに返答する。
【００７５】
プレビューアは、要求に応じて獲得した全ページ数を、図４に例示する表示画面の下欄に示す全ページ数（図４の例では３ページ）として表示する。また、図４に示すボタン４０３の４つのボタンの内の右端のボタンが押された場合、全ページ数が分かっているので、最終ページのプレビューを行うことができる。
【００７６】
Ｓ７３１では、プレビューアからの要求内容を取得することにより、プレビュー画像作成処理のために必要な情報を得る。このときプレビューアから通知された要求内容の情報は、例えばプリントプロセッサが作成する印刷ページデータのページ番号であり、または作成する画像の解像度であり、または新しく作成されるプレビュー画像を格納する参照用プレビューファイルの番号でもある。こうして取得した要求内容の情報の一部はプリンタグラフィックドライバに通知され、例えば指定された解像度のプレビュー画像を作成するために用いられる。
【００７７】
次にＳ７３２では、作成用プレビューファイルの内容を空にした後、要求されたページ番号の印刷ページデータに対応する印刷条件を作成用プレビューファイルに格納する。続くＳ７３３では、ＯＳの印刷機能にページレイアウト開始を通知する。そして、Ｓ７３４では、ＥＭＦスプールファイルから印刷データを読み出し、レイアウト処理を行ない、プレビューアが要求したページ番号の印刷ページデータを作成する。Ｓ７３５では、ＯＳの印刷機能にページレイアウト終了を通知する。このとき、プリンタグラフィックドライバは、Ｓ７３４で作成された印刷ページデータからビットマップイメージを生成し、プレビュー画像として作成用プレビューファイルに追加格納する。
【００７８】
次にＳ７３６では、要求された番号の参照用プレビューファイルの内容を、完成した作成用プレビューファイルの内容によって置き換え、プレビューアのプレビュー画像作成要求の回答として要求された番号の参照用プレビューファイルのファイル名を返答し、Ｓ７１４に移りプレビューアの要求を待つ。
【００７９】
ここで参照用プレビューファイルの内容を作成用プレビューファイルの内容によって置き換えた後に、作成用プレビューファイルの内容を空にすれば使用する記憶容量をより少なくできる。また、プレビューアは、返答を受けた参照用プレビューファイルのファイル名と、プレビュー対象の解像度及びプレビュー対象のページ番号とを対応付けて、図１５に例示する表（データテーブル）に登録し、返答されたファイル名のプレビューファイルから指定ページ番号のプレビュー画像を取得して、ディスプレイに図４に例示する如く表示画面を表示する。
【００８０】
図１１はプリントプロセッサの印刷用のインタフェースがスプーラにより呼び出された時（Ｓ６７１）のフローチャートを示している。印刷処理におけるフローは標準仕様のプリントプロセッサと変わらないため、ここでは簡単に説明する。まずＳ７０１でＥＭＦスプールファイルから印刷設定を取得し、部数設定や逆順印刷等を取得する。続いてＳ７０２でＯＳの印刷機能に印刷開始を通知する。続くＳ７０３からＳ７０７までは、印刷されるべき最終物理ページまで各物理ページを印刷するためのループとなる。Ｓ７０７においては、指定されたすべての物理ページの印刷が終了していなければ、物理ページの印刷処理はＳ７０４に続く。指定された全ての物理ページを印刷した後はＳ７０８に進み、ＯＳの印刷機能に印刷処理終了を通知する。Ｓ７０４では、ＯＳの印刷機能にページレイアウト開始を通知する。Ｓ７０５ではＥＭＦスプールファイルから印刷データを読み出し、レイアウト処理を行ない各物理ページに対応する印刷ページデータを作成する。Ｓ７０６では、ＯＳの印刷機能にページレイアウト終了を通知する。このとき、ＧＤＩは、印刷ページデータからグラフィック描画コマンドを作成してプリンタグラフィックドライバに渡す。そして、プリンタグラフィックドライバは、上記の如くＳ７０１にて実際の印刷処理を通知され、且つＳ７０６にてページレイアウト終了が通知されるのに応じて、印刷ページデータからビットマップデータを生成し、生成したビットマップデータを印刷コマンドに変換し、その印刷コマンドをランゲージモニタに供給し、ランゲージモニタによって所定のデータ送信手段を介してプリンタに供給されることにより、該当するページの物理ページが印刷される。
【００８１】
尚、プリンタグラフィックドライバは、複数の形式の印刷データを生成可能であり、必ずしもビットマップ形式で印刷データを生成するとは限らず、指定形式の言語で印刷データを生成することもある。しかしながら、それはプリンタに供給する印刷データであり、本実施形態において、プレビュー画像は、ビットマップ形式で生成される。
【００８２】
以上の様に、プレビュースレッドの処理では、プレビューアの要求に応じてプリントプロセッサが動作することで、プレビュー機能が実現される、印刷スレッドの処理では従来通りの動作を行うことで印刷ジョブの印刷機能が実現される。ここでＯＳの標準仕様のプリントプロセッサの場合はプレビュー用インタフェースを持たないため、印刷時に印刷用スレッドで印刷用インタフェースが呼び出されるので、従来通りの印刷処理を行うことができる。
【００８３】
また、上記実施の形態ではプリントプロセッサは印刷設定のプレビュー設定がＯＮであればプレビューアを起動していたが、さらに他の条件も加味してプレビューアを起動するかどうかを判断してもよい。他の条件としては、上記の印刷設定は印刷ジョブごとに設定されるがプリンタごと或いはプリンタキューごとにプレビュー設定を行ないたい場合等が考えられ、例えばプリントプロセッサがランゲージモニタを介してプリンタ本体にプレビューの有無を問いあわせたり、あるいはＯＳの印刷機能が管理する共有記憶領域（レジストリ）の設定値を参照したりすることがあげられる。
【００８４】
また、上記実施の形態ではプリントプロセッサがプレビュー用インタフェースを備えている場合は、スプーラはプレビュー用サブスレッドを作成しプリントプロセッサを呼び出し、プリントプロセッサが印刷設定からプレビュー設定の設定値を判断してプレビューアを起動していたが、スプーラが印刷設定のプレビュー設定の設定値を判断し、プレビュー設定がＯＮならプレビュー用サブスレッドを作成しプリントプロセッサを呼び出す形式にしてもよい。ただしこの場合のプレビュー設定はプリンタドライバが独自に保持する印刷設定中ではなく、スプーラがアクセス可能な印刷設定中に存在しなければいけないことは言うまでもない。
【００８５】
＜プレビューアの処理＞
図１４は、Ｓ７１２で起動される本実施形態に係るプレビューアによる処理を示すフローチャートである。プレビューアは、プリントプロセッサにより起動され、その処理を実行するが、プリントプロセッサとの間のメッセージやデータの交換については前述したとおりであるので、ここでは説明を省く。
【００８６】
Ｓ８０１において、初期値として表示するプレビュ画像のページ番号を１とし、また、印刷イメージ生成要求を行う時の解像度を決定し、さらに、プリントプロセッサに初期化要求を発行する。続いてＳ８０２、Ｓ８０３においては、プレビュー表示の対象となる指定ページがすでに生成され、１個以上ある参照用プレビューファイルの何れかに格納されているか判定する。この判定は、図１５に例示するデータ構成を有する表（データテーブル）を参照することによって行われる。即ち、図１５は、本実施形態に係る登録済みの参照用プレビューファイルを表わすデータテーブルのデータ構成を例示する図であり、本実施形態では、一例として、ファイル名、ページ番号、並びに解像度からなる各項目のデータが、ファイル番号（８００）が付与されて格納されており、Ｓ８０３では、指定解像度の指定ページが登録されているかが検索され、その検索の結果、当該表内に該当する欄が見つかれば、該当する参照用プレビューファイルが存在する、と判断する。
【００８７】
そしてＳ８０３の判断において、該当する参照用プレビューファイルが存在すれば、Ｓ８０６において、その参照用プレビューファイルからイメージデータを読み出してプレビュー画像として表示する。一方、該当する参照用プレビューファイルが存在しなければ、Ｓ８０４において、生成されるイメージデータが格納される参照用プレビューファイルの番号を指定し、その指定ページについての印刷イメージ生成要求をプリントプロセッサに対して発行し、続くＳ８０５でイメージデータが生成されるのを待ち、イメージデータが作成されるとともにプリントプロセッサから受け渡されるプレビューファイル名を図１５のデータテーブルの該当するファイル番号に設定しＳ８０２に移る。
【００８８】
尚、Ｓ８０３において該当する参照用プレビューファイルが参照用プレビューファイルの中に存在しない、と判定された場合には、新たにプレビューファイルを作成することになるが、その際、ホスト計算機のディスクスペースが不足することが予想される場合等には、印刷イメージ生成要求に先立って、図１５に例示するデータテーブルに登録されている参照用プレビューファイルの中から不要な参照プレビューファイルの番号と共に参照用プレビューファイル内容削除要求をプリントプロセッサに対して発行してもよい。
【００８９】
Ｓ８０６では、上述した手順でプレビュー表示が行われ、これにより、図４に例示する表示画面がディスプレイに表示される。このとき、指定ページについての印刷イメージ生成要求をプリントプロセッサに対して発行し、プリントプロセッサから作成された参照用プレビューファイル名の通知を受けた後に、図１５に例示するデータテーブルを更新し、Ｓ８０２の手順でプレビュー表示を行う。
【００９０】
プレビュー表示した後で、Ｓ８０７及びＳ８０９においては、図４に例示する表示画面に対するユーザの入力操作を待ち、入力操作を検出した場合には、その操作がページ番号の変更または表示サイズの変更であるかを判定する。そして、その判定の結果、ユーザの入力操作がページ番号または表示サイズの変更であれば、Ｓ８１０において、指定ページと指定表示サイズから計算される解像度を変更し、プレビュー表示を切り替えるためにＳ８０２に移る。
【００９１】
一方、上記の判定の結果、ユーザの入力操作がページ番号または解像度の変更でなければ、Ｓ８１１において、係るユーザの入力操作が印刷終了かどうかを判定し、その判定の結果が印刷終了である場合には、Ｓ８１２において、プリントプロセッサに対して印刷終了要求を発行し、一方、印刷終了でない場合には、Ｓ８１３においてプリントプロセッサに対して印刷開始要求を発行する。
【００９２】
＜プレビュー表示手順の概要＞
図１６は、図１の構成において、印刷対象のある文書における最初のページについてプレビュー表示を行う際のシーケンスを示す図である。以下の説明において括弧内の番号は図１６に付した参照番号を示す。なお説明を簡潔に行うためにプリントプロセッサとプリンタグラフィックドライバの間に介在するＧＤＩは省略している。
【００９３】
スプーラは印刷ジョブのプレビュー処理を行う際にプレビュー用サブスレッドを作成し、プリントプロセッサのプレビュー用インタフェースを呼び出す。スプーラに呼び出されたプリントプロセッサは最初にＥＭＦスプールから印刷設定を読み出し（９０１）、印刷設定においてプレビュー表示の設定がＯＮであることを確認しプレビューアを起動する（９０２）。プレビューアは起動するとプリントプロセッサに初期化を要求（９０３）することで使用する参照用プレビューファイルの個数を通知する。プリントプロセッサはプレビューアから初期化要求を受け取ると、１個の作成用プレビューファイルを作成する（９０４）。また、図に示さないが、プレビューアに指示された数の参照用プレビューファイルをも作成する。
【００９４】
続いてプリントプロセッサはＧＤＩを介してプレビュー処理開始であることをプリンタグラフィックドライバ（９０５）に通知し、プリンタグラフィックドライバはプレビュー用のビットマップを作成する準備を行う（９０６）。プリンタグラフィックドライバによる準備が終了すると（９０７）、プリントプロセッサはプレビューアからの要求を待つ。プレビューアが最初に表示する第一ページの印刷イメージ生成をプリントプロセッサに要求すると（９０８）、プリントプロセッサはＥＭＦスプールから指示されたページの印刷設定を読み出し（９０９）、印刷設定を作成用プレビューファイルに書き込む（９１０）。ここで印刷イメージ生成要求にはページ番号の他に参照用プレビューファイルの番号や解像度等の情報が含まれている。
【００９５】
続いてプリントプロセッサは指示された印刷ページのプレビュー用ビットマップを作成するために、ＧＤＩを介してページのレイアウト処理を行ない（９１１）、プリントプロセッサはＧＤＩをコールし、ＥＭＦスプールファイルにスプールされた中間データをプリンタグラフィックドライバが解釈できる印刷データにＧＤＩが変換してプリンタグラフィックドライバに指示された印刷ページに供給する（９１２）。プリンタグラフィックドライバは供給された印刷データからプレビュー用のビットマップを作成し（９１３）、作成したビットマップデータを作成用プレビューファイルに追記する（９１４）。プリンタグラフィックドライバによるビットマップ作成作業が終了すると（９１５）、プリントプロセッサは完成した作成用プレビューファイルの内容をプレビューアに指示された参照用プレビューファイルにコピーし（９１６）、作成用プレビューファイルの内容を消去する（９１７）。
【００９６】
続いてプリントプロセッサがプレビューアに印刷イメージ生成が終了したことを伝えると（９１８）、プレビューアは参照用プレビューファイルに格納された印刷設定とビットマップデータを利用してプレビュー表示を行う（９１９）。
【００９７】
このように本実施形態では、プリンタグラフィックドライバによって、上述した手順によってプレビュー表示用のプレビュー画像データを生成しており、結果として、オペレーティングシステムによってスプールされた印刷データを利用した正確なプレビュー画像データ、即ち、記録用紙等に実際に印刷した場合と同様な態様のプレビュー表示が可能なプレビュー画像デー）の生成が実現する。また、ユーザのプレビューアに対する操作に従い、図中の９０８から９１９の処理を繰り返すことにより、プレビューするページの切り替えや、表示サイズの変更が行える。
【００９８】
さて、既存のスプーラとプリントプロセッサとプリンタグラフィックドライバに機能追加を行ない、さらにプレビューアを用意することで、プレビュー機能を提供することが可能になることを述べてきたが、ＯＳにＷｉｎｄｏｗｓ（登録商標）を用いる場合、プリンタを製造するベンダーが提供するプリンタドライバに含まれるプレビューに関るモジュールは、図１で網掛けになっているブロックであり、具体的にはユーザインタフェースドライバとプリントプロセッサ、プリンタグラフィックドライバ、プレビューアとなっている。ここで本実施の形態におけるプレビュー機能ではＯＳのモジュールであるスプーラにも変更を加えているため、ＯＳを作成するベンダーがスプーラに変更を加えれば、プリンタとプリンタドライバを提供する多くのベンダーがプレビュー機能を利用できることになるのは言うまでもない。
【００９９】
＜印刷システムのハードウェア構成＞
次に、本実施形態に係る印刷システムのハードウェア構成について説明する。図２は本発明の本実施形態の印刷システムの構成を示すブロック図である。
【０１００】
図２において、プリンタ２０１は、画像形成を行うインクジェット方式の印刷装置であり、後述するデータ処理装置２０２で生成された印刷コマンドに基づいて画像の形成を行う。印刷装置の種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。また、これ以外のプリンタの種類としては、例えば、レーザビーム方式や熱転写方式等の各種印刷方式のプリンタが挙げられる。プリンタ２０１は、各種機能ブロック２１０〜２１３、２２０〜２２５によって構成される。
【０１０１】
データ処理装置２０２は、アプリケーションソフトが印刷ジョブを作成し、プリンタドライバが印刷ジョブの印刷命令からイメージデータを作成し、接続されたプリンタ２０１の印刷動作を制御する印刷コマンドの生成を行う。本実施形態では、データ処理装置２０２としてパーソナルコンピュータを用いている。また、このデータ処理装置２０２では、印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。データ処理装置２０２は、各種機能ブロック２３０〜２３５、２４０〜２４３によって構成される。また、データ処理装置２０２には、データ処理装置２０２を制御するＯＳとして、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  ＸＰが組み込まれており、このＯＳ上で各種機能ブロックが動作する。通信インタフェース（Ｉ／Ｆ）２０３は、データ処理装置２０２とプリンタ２０１を接続する通信インタフェースである。本実施形態では、通信インタフェース２０３として、例えば、シリアルインタフェースであるＵＳＢを想定しているが、この他に、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線等のシリアルインタフェースを想定することができる。また、シリアルインタフェースに限らず、パラレルインタフェースとして、セントロニクス、ＳＣＳＩ等の各種インタフェースを想定することができる。いずれにしても、データ処理装置２０２とプリンタ２０１間で双方向の通信を実現するものであれば、有線／無線を問わずどのような通信インタフェースであっても構わない。
【０１０２】
尚、プリンタ２０１及びデータ処理装置２０２とも、本実施の形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【０１０３】
プリンタ２０１において、印刷制御部２１０は、データ処理装置２０２から送信されてきた印刷コマンドを受信して印刷部２２０の印刷動作の制御を行う。印刷部２２０は、記録媒体２００を搬送したり、記録媒体２００に印刷を行うための部分である。記録媒体２００は、一般に印刷用紙と呼ばれ、プリンタ２０１に備え付けられた給紙トレイやカセット等の給紙部に積載されているものとする。ヘッド制御部２１１は、ヘッド駆動部２２１の動作の制御を行ない、インクジェットヘッドのオリフィスよりインクを吐出させる。フィード制御部２１２は、記録媒体２００をプリンタ２０１に備えつけられた給紙トレイや給紙カセットから１枚ずつ給紙し、搬送路上の定位置を経由して印刷可能位置に搬送し、ラスタ印刷とともに排紙動作を行うために、用紙搬送部２２３の制御を行う。画像形成部２１３は、データ処理装置２０２から発行された印刷コマンドに含まれるイメージデータを展開する。印刷制御部２１０には、印刷制御部２１０による制御動作の作業領域や、イメージデータの展開、受信した印刷コマンドの保存のためにメモリが用意されており、そのメモリが画像形成部２１３により使用される。
【０１０４】
このように、印刷制御部２１０は、印刷コマンドに含まれる印刷制御用コマンドに従ってプリンタエンジンである画像形成部２１３の制御を総合的に行う。具体的には、印刷制御部２１０は、ＣＰＵ（不図示）により制御用手順を記述したプログラムを実行することで実現できる。また、印刷制御用コマンドとしては、印刷用の量子化されたイメージデータ（２値あるいは２値化前の中間データ）とインクの打込量、パス数、印刷方向及び印刷用紙の搬送量を制御する各種コマンド、および、後述する入力操作部２３１で設定される用紙種別指示で構成されるコマンドが使用される。ヘッド駆動部２２１は、印刷制御部２１０で展開された印刷コマンドのイメージデータに基づき記録媒体２００に対して印刷を行う。プリンタ２０１はインクジェット方式のプリンタであるため、インクジェットヘッドからのインク吐出によって画像形成を行う。用紙ピックアップ部２２２は、給紙トレイや給紙カセットに積載されている記録媒体２００を搬送路に載せる動作を行う。用紙搬送部２２３は、用紙ピックアップ部２２２により搬送路に載せられた記録媒体２００を搬送路に沿って定位置を経由して、排紙までの搬送動作を行う。用紙検知センサ２２４は、搬送路途中に設置されており、搬送されている記録媒体２００の端部を検出し、記録媒体２００が搬送路中の定位置にあることを確認する。Ｉ／Ｆ（インタフェース）制御部２２５は、プリンタ２０１のインタフェース機能を司るＩ／Ｆ制御部である。本実施形態では、用いているインタフェースがＵＳＢであるため、ＵＳＢの周辺機器側のコントローラによって構成される。Ｉ／Ｆ制御部２２５では、用紙種別情報の送信や印刷コマンド等のデータ受信が行われる。また、Ｉ／Ｆ制御部２２５は、プリンタ２０１本体で発生したエラーや通信状態等のステータス情報に関しても、要求があればデータ処理装置２０２に対して送信する。
【０１０５】
データ処理装置２０２において、中央制御部２４１は、データ処理装置２０２の各種機能を制御し、ＣＰＵの持つ機能がこれに該当する。入力操作部２４２は、ユーザの意図を印刷設定に反映させるための各種入力機器（マウス、キーボード、タッチパネル等）から構成される。設定情報通知部２４３は、印刷設定をユーザに通知する。通知方法としては、モニタ等の表示装置（ＣＲＴやＬＣＤ）を使用する場合や音声による通知方法が考えられる。Ｉ／Ｆ制御部２４０は、データ処理装置２０２のインタフェース機能を司る。Ｉ／Ｆ制御部２４０はＵＳＢのホスト側のコントローラによって構成され、ＵＳＢホストとしての機能を有する。ＵＳＢホストとしての機能の一部は、ＯＳやドライバなどソフトウェアによっても構成される。
【０１０６】
プリンタドライバ２３０は、印刷のための各種設定や印刷データの生成及びプリンタ２０１の制御をデータ処理装置２０２上で行うためのソフトウェアである。中央制御部２４１（即ち、パーソナルコンピュータのＣＰＵ）によりプリンタドライバ２３０のプログラムが実行されて、ユーザインタフェースドライバである印刷設定処理部２３１やプリントプロセッサである印刷ページ順・レイアウト制御部２３２、プリンタグラフィックドライバであるイメージデータ生成部２３３、ランゲージモニタであるデータ通信処理部２３４、プレビューアである印刷イメージ表示部２３５等の各機能ブロックの機能が実現される。印刷設定処理部２３１は、印刷用紙の設定や印刷品位の設定等を含む各種印刷設定を行う。また、印刷設定処理部２３１は、ユーザからの指示や入力を受け付け、設定された内容を表示もしくは通知する機能を有する。印刷ページ順・レイアウト制御部２３３は、アプリケーションにより作成された印刷ジョブの印刷データのページ順とレイアウトを制御し、ページ単位で印刷データをイメージデータ生成部２３３に供給する。イメージデータ生成部２３２３、印刷ページ順・レイアウト制御部２３４によって供給された印刷データからイメージデータを作成して印刷コマンドを生成する。イメージデータ生成部２３２で作成された印刷ジョブの印刷コマンドは、データ通信処理部２３３を介してＩ／Ｆ制御部２４０に送られ、プリンタ２０１へ印刷コマンドが送られる。またイメージデータ生成部２３３が生成したイメージデータは印刷イメージ表示部に供給されることもあり、この場合は印刷イメージ表示部は印刷イメージをユーザに見える形で提供する。
【０１０７】
＜プリンタの構造＞
次に、プリンタの一例であるインクジェットプリンタの概略構成について、図１７を用いて説明する。図１７は本発明の実施形態のインクジェットプリンタの概略構成を示す図である。尚、実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【０１０８】
インクジェットヘッド１０００は、図の紙面に垂直な方向に沿って往復走査され、インクジェットヘッド１０００に対向した部分（ここを記録位置と呼ぶ）にインクが吐出される。記録媒体１００である印刷用紙Ｐは、インクジェットヘッド１０００による１回の走査毎に一定量ずつ搬送される。印刷用紙Ｐは、プリンタ本体に対して着脱可能に設けられている自動給紙のための給紙カセット１００４と給紙トレイ１００６とに収容されており、そのいずれかから、データ処理装置上で実現される印刷設定ダイアログ（例えば図３）における印刷設定に従い選択的に給紙される。給紙カセット１００４上部には、それが装着された状態で用紙先端部分に給紙搬送ローラ１００８が配置されている。給紙搬送ローラ１００８は、給紙カセット１００４に載置された最上部の印刷用紙Ｐと圧接されている。そのため、給紙搬送ローラ１００８が駆動されることで、最上部の印刷用紙Ｐが記録位置に供給される。給紙トレイ１００６は、給紙先端部分に給紙搬送ローラ１０１０が配置されている。給紙搬送ローラ１０１０は、給紙トレイ１００６の最上部の印刷用紙Ｐと給紙トレイカムにより印刷時に圧接される。そのため、給紙搬送ローラ１０１０が駆動されることで、最上部の印刷用紙Ｐの給紙を行う。この構成により、給紙トレイ１００６または給紙カセット１００４のいずれかを給紙する側の給紙搬送ローラ１０１０または１００８が選択駆動され、給紙トレイ１００６または給紙カセット１００４の最上部の１枚の印刷用紙Ｐ（以下、１枚の印刷用紙Ｐをシートとも呼ぶ）の給紙が行われる。
【０１０９】
給紙トレイ１００６には、任意のサイズの印刷用紙をセットすることも可能で、ユーザは給紙カセット１００４とは別のサイズの印刷用紙をセットすることができる。給紙カセット１００４または給紙トレイ１００６から選択的に給紙された印刷用紙Ｐは、インクジェットヘッド１０００が設けられている印刷位置の手前に配置された搬送ローラ１０１６の位置へ送り込まれる。搬送ローラ１０１６は、給紙されてきた印刷用紙Ｐを一旦停止させ、印刷動作と同期してインクジェットヘッド１０００の印刷位置へと搬送を開始するように構成されている。インクジェットヘッド１０００と対向する印刷位置には、印刷用紙Ｐを裏面から支持し、印刷状態を安定させるためのプラテン１００２が設けられている。インクジェッドヘッド１０００とプラテン１００２とで印刷位置での印刷部を構成している。インクジェットヘッド１０００には、インクドットを吐出するためのオリフィスが印刷用紙Ｐの印刷面と対向する側に設けられており、インク供給部より供給されるインクをヘッド駆動部にてオリフィスより吐出させる。インクジェットヘッド１０００は、印刷用紙Ｐの搬送方向（副走査方向）と直交する方向（主走査方向）、つまり、図１７の左から右側へと搬送される印刷用紙Ｐに対して紙面に直交する方向に沿って往復走査されながらインクドットの吐出を行い、複数ラスタで構成されるイメージデータに応じた可視像を印刷用紙Ｐの印刷面に形成する。
【０１１０】
ここで、インクジェットヘッド１０００による走査が行われるときには、印刷用紙Ｐの搬送は停止され一方向への走査が行われ、１回の走査分の画像の形成が終了した時点で印刷したラスタ数に応じた量の印刷用紙Ｐの搬送が行われる。この動作を、往復走査の各方向について繰返し行うことで、印刷用紙Ｐに１ページ分のイメージデータの印刷画像を形成する。インクジェットヘッド１０００と対向する印刷位置を通過した印刷用紙Ｐは、印刷位置の下流側に配置されている排出ローラ１０１８を介して、プリンタ１０１の本体外へと排出される。排出される位置には、排出トレイ１０２０が設けられており、排紙トレイ１０２０に印刷済のシートが印刷画像を上面にして排出される。プリンタ１０１は、次のページの印刷コマンドがデータ処理装置１０２から送られてくると、次の印刷用紙Ｐの給紙を開始して搬送ローラ１０１６へと送り込むように制御する。給紙カセット１００４から給紙される場合、給紙された印刷用紙Ｐは反転してから搬送ローラ１０１６に送られるため、反転時に印刷用紙Ｐを支えるための反転押えローラ１０１２と１０１４が給紙カセット１００４から搬送ローラ１０１６を結ぶ搬送路上に設けられている。
【０１１１】
印刷用紙検知センサ１０２２は搬送ローラ１０１６の上流側に設けられ、給紙トレイ１００６また給紙カセット１００４より給紙される印刷用紙Ｐの有無を検知する。この印刷用紙検知センサ１０２２は、マイクロスイッチ等の機械式あるいはフォトセンサ等の光学式であってもよく、シートが存在するときには存在信号を、存在しない場合には無しの信号を出力する。用紙Ｐの検知を行う印刷用紙検知センサは、シート先端が通過するときには、シート有りを示す信号を出力し、シートが通過した後はシート無しを示す信号を出力することで、印刷用紙先端、後端が検知される。これによりシートの排紙処理を正しく完了することが可能になる。
【０１１２】
＜本実施形態の効果＞
本実施形態では、図１６に示す処理シーケンス、並びに図６及び図７及び図８、並びに図１１及び図１２、並びに図１４に示すフローチャートを参照して説明したように、印刷ジョブ作成時にスプーラにより呼び出されるプリントプロセッサを、プレビューアからのプレビューの要求と、プリンタグラフィックドライバによるイメージデータの生成との間に介入させる処理構成を採用し、係る処理構成において、プリンタグラフィックドライバにはプレビュー表示用のイメージデータを作成させ、作成されたイメージデータを、プリントプロセッサの指示に応じてプレビューアに渡すことにより、従来のように印刷データが実際に印刷処理されるまで待機すること無く、ディスプレイへのプレビュー画像の表示を可能としている。
【０１１３】
また、本実施形態によれば、各印刷ジョブ作成時にプレビュー用サブスレッドが用いられているため、複数の印刷ジョブのプレビュー表示を同時に行うことができる。すなわち一人のユーザが同時に複数の印刷ジョブのプレビュー表示を行うことが可能にあり、または複数のユーザが同時に各々の印刷ジョブのプレビュー表示を行うことが可能になる。
【０１１４】
また、本実施形態では、同時にプレビュー表示を行える印刷ジョブの数を設定できるため、ホスト計算機の処理能力や、ホスト計算機を同時に利用するユーザの数等の条件に応じて、プレビュー機能を提供するにあたり最適な環境を構築することが可能である。
【０１１５】
また、本実施形態によれば、印刷ジョブそれぞれに対してプレビュー処理の状態を管理するようにし、プレビュー処理が処理済の印刷ジョブに対してのみ実際の印刷処理を行えるようにしたため、プリンタキュー入っているプレビュー処理中のジョブが存在していても、他の印刷ジョブを印刷処理できるようになる。従ってプリンタの遊休時間が減少し、効率的に印刷処理を行うことが出来るようになる。
【図面の簡単な説明】
【０１１６】
【図１】本実施形態の印刷及び印刷プレビューが実行される際のデータフローを示すブロック図
【図２】本実施形態の印刷システムの構成を示すブロック図
【図３】本実施形態のユーザインタフェースドライバによる印刷設定ダイアログの一例を示す図
【図４】本実施の形態におけるプレビューアによって提供される表示画面（プレビューウィンドウ）を例示する図
【図５】本実施の形態におけるキューキューウィンドウの一例を示す図
【図６】本実施の形態におけるスプーラのプレビュー処理と印刷処理に関するフローチャート
【図７】本実施の形態におけるスプーラのプレビュー処理に関するフローチャート
【図８】本実施の形態におけるスプーラの印刷処理に関するフローチャート
【図９】本実施の形態における印刷ジョブの状態表示を決定するための各状態との対応表
【図１０】本実施の形態におけるスプーラの印刷処理を行うジョブを決定する処理に関するフローチャート
【図１１】本実施の形態におけるプリントプロセッサの印刷用処理に関するフローチャート
【図１２】本実施の形態におけるプリントプロセッサのプレビュー処理に関するフローチャート
【図１３】本実施の形態のプリントプロセッサが持つインタフェースの概念図
【図１４】本実施形態に係るプレビューアによる処理を示すフローチャート
【図１５】本実施形態に係る参照用プレビューファイルの管理テーブルを例示する図
【図１６】本実施形態に係る最初のページについてプレビュー表示を行う際のシーケンス
【図１７】インクジェットプリンタの概略構成
【図１】
2006039941.tif 000003
【図２】
2006039941.tif 000004
【図３】
2006039941.tif 000005
【図４】
2006039941.tif 000006
【図５】
2006039941.tif 000007
【図６】
2006039941.tif 000008
【図７】
2006039941.tif 000009
【図８】
2006039941.tif 000010
【図９】
2006039941.tif 000011
【図１０】
2006039941.tif 000012
【図１１】
2006039941.tif 000013
【図１２】
2006039941.tif 000014
【図１３】
2006039941.tif 000015
【図１４】
2006039941.tif 000016
【図１５】
2006039941.tif 000017
【図１６】
2006039941.tif 000018
【図１７】
2006039941.tif 000019