(57)【特許請求の範囲】
【請求項１】
プレビュー用印刷キューに格納されている文書データに基づきプレビュー用文書を作成し、前記プレビュー用文書を画面に表示して、前記プレビュー用文書を印刷コマンド生成用印刷キューに格納する第１のプリンタアイコンと、
前記印刷コマンド生成用印刷キューに格納されている前記プレビュー用文書に基づき印刷コマンドを生成する第２のプリンタアイコンと、
を有し、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、
前記第１のプリンタアイコンと前記第２のプリンタアイコンとは一方のアイコンが表示されないように登録することを特徴とする情報処理装置。
【請求項２】
クライアント装置とサーバー装置とを有する印刷システムであって、
前記クライアント装置の印刷キューに格納されている文書データに基づきプレビュー用文書を画面に表示させ、文書データをサーバー装置の印刷キューに送信する第１のプリンタアイコンと、
前記サーバー装置の印刷キューに格納されている文書データに基づき印刷コマンドを生成し、生成された印刷コマンドをプリンタに送信する第２のプリンタアイコンと、
を有し、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、
前記第１のプリンタアイコンと前記第２のプリンタアイコンは一方のアイコンが表示されないように登録することを特徴とする印刷システム。
【請求項３】
プレビューキューに格納されている文書データに基づきプレビュー用文書を画面に表示させ、文書データを第２のキューに送信する第１のプリンタアイコンと、
印刷キューに格納されている文書データに基づき印刷コマンドを生成する第２のプリンタアイコンと、
を有し、
前記第１のプリンタアイコンに対し、１つのキューが登録され、
前記第２のプリンタアイコンに対し、１つのキューが登録され、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、
前記第１のプリンタアイコンと前記第２のプリンタアイコンは一方のアイコンが表示されないように登録することを特徴とする情報処理装置。
【請求項４】
プレビュー用印刷キューに格納されている文書データに基づきプレビュー用文書を作成し、前記プレビュー用文書を画面に表示して、前記プレビュー用文書を印刷コマンド生成用印刷キューに格納する第１のプリンタアイコンと、
前記印刷コマンド生成用印刷キューに格納されている前記プレビュー用文書に基づき印刷コマンドを生成する第２のプリンタアイコンと、
を有する情報処理装置における情報処理方法であって、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンが第１のキューに格納されている第２のジョブのプレビューを行うステップと、
前記第１のプリンタアイコンと前記第２のプリンタアイコンとは一方のアイコンが表示されないように登録するステップと、
を含むことを特徴とする情報処理方法。
【請求項５】
クライアント装置とサーバー装置とを有する印刷システムであって、
前記クライアント装置の印刷キューに格納されている文書データに基づきプレビュー用文書を画面に表示させ、文書データをサーバー装置の印刷キューに送信する第１のプリンタアイコンと、
前記サーバー装置の印刷キューに格納されている文書データに基づき印刷コマンドを生成し、生成された印刷コマンドをプリンタに送信する第２のプリンタアイコンと、
を有する印刷システムにおける情報処理方法であって、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行うステップと、
前記第１のプリンタアイコンと前記第２のプリンタアイコンは一方のアイコンが表示されないように登録するステップと、
を含むことを特徴とする情報処理方法。
【請求項６】
プレビューキューに格納されている文書データに基づきプレビュー用文書を画面に表示させ、文書データを第２のキューに送信する第１のプリンタアイコンと、
印刷キューに格納されている文書データに基づき印刷コマンドを生成する第２のプリンタアイコンと、
を有する情報処理装置における情報処理方法であって、
前記第１のプリンタアイコンに対し、１つのキューが登録され、
前記第２のプリンタアイコンに対し、１つのキューが登録され、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンが第１のキューに格納されている第２のジョブのプレビューを行うステップと、
前記第１のプリンタアイコンと前記第２のプリンタアイコンは一方のアイコンが表示されないように登録するステップと、
を含むことを特徴とする情報処理方法。
【請求項７】
コンピュータを、
プレビュー用印刷キューに格納されている文書データに基づきプレビュー用文書を作成し、前記プレビュー用文書を画面に表示して、前記プレビュー用文書を印刷コマンド生成用印刷キューに格納する第１のプリンタアイコンと、
前記印刷コマンド生成用印刷キューに格納されている前記プレビュー用文書に基づき印刷コマンドを生成する第２のプリンタアイコンと、
して機能させるプログラムであって、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、
前記第１のプリンタアイコンと前記第２のプリンタアイコンとは一方のアイコンが表示されないように登録するプログラム。
【請求項８】
コンピュータを、
文書データに基づきプレビュー用文書を画面に表示させ、文書データを第２のキューに送信する第１のプリンタアイコンと、
印刷キューに格納されている文書データに基づき印刷コマンドを生成する第２のプリンタアイコンと、
して機能させるプログラムであって、
前記第１のプリンタアイコンに対し、１つのキューが登録され、
前記第２のプリンタアイコンに対し、１つのキューが登録され、
前記第１のプリンタアイコンはＮＵＬＬポートに接続され、
前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、
前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、
前記第１のプリンタアイコンと前記第２のプリンタアイコンは一方のアイコンが表示されないように登録するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び印刷システムに関する。
【背景技術】
【０００２】
従来、印刷前に印刷イメージを取得して画面に表示する技術が提案されている。
このような技術の一例として、プリンタが解釈可能な印刷コマンドをプリンタに接続された計算機（データ処理装置）によって解析し、この計算機でＣＭＹＫプレーン毎に展開することによって印刷イメージを生成する技術が知られている。また、プリンタに接続された計算機からプリンタに印刷コマンドを送信した後、計算機がプリンタ内部で作成された印刷イメージを受信し、受信した印刷イメージに基づいて表示を行う技術が一般に知られている。
【０００３】
ここでオペレーティングシステム（ＯＳ）としてＷｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムにおいてアプリケーションプログラム（アプリケーション）等で生成された印刷データはＯＳ標準のデータ形式でスプールファイルに格納される。ＯＳは、印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、印刷イメージを作成し、更にプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【０００４】
この印刷システムにおいてプレビュー機能を提供するために、プリンタドライバは印刷処理を開始したときに、印刷イメージを表示するプレビューアを実行する。プリンタドライバの画像生成部はプレビュー用の印刷イメージを作成する。そして、プリンタドライバのプレビューアはプレビュー用の印刷イメージを表示する。つまり、プリンタドライバにおいて、印刷イメージを作成する画像生成部と、印刷イメージを表示するプレビューアとが協調することにより、プレビュー機能が実現される（特許文献１参照）。
【０００５】
【特許文献１】特開２００４−１０２６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１の技術では、プリンタドライバがＯＳに呼び出されている間、プレビューの実行が可能であった。ＯＳがプリンタドライバを呼び出し、印刷処理を行う場合、印刷キュー中の先頭の印刷ジョブを対象としている。通常、印刷処理の対象となる印刷ジョブは印刷キューにつき一つのみとなる。従って、１つの印刷ジョブの印刷処理を実行している間は、他のジョブは印刷対象にならない。このため印刷キュー中に印刷処理中の印刷ジョブがある場合、他の印刷ジョブのプレビュー機能を実行できない問題がある。
【０００７】
また、プリントサーバーからネットワークを介して接続されたクライアントに対して、予めプリントサーバーにインストールされているプリンタドライバをダウンロードしてインストールを行う。そして、プリンタドライバをクライアントで利用可能にするＰｏｉｎｔ＆ＰｒｉｎｔがＷｉｎｄｏｗｓのＯＳにおいて提供されている。プリントサーバーを用いたＰｏｉｎｔ＆Ｐｒｉｎｔ環境における処理方式にはドライバ処理をサーバー側で行うＳＳＲ（Ｓｅｒｖｅｒ  Ｓｉｄｅ  Ｒｅｎｄｅｒｉｎｇ）とクライアント側で行うＣＳＲ（Ｃｌｉｅｎｔ  Ｓｉｄｅ  Ｒｅｎｄｅｒｉｎｇ）とが存在する。印刷プレビューはドライバの処理過程で実行されるため、ＳＳＲ環境の場合はクライアント側でプレビューを実行することができず、クライアント側であるユーザがプレビューを確認することができない。そのため、Ｐｏｉｎｔ＆ＰｒｉｎｔのＳＳＲ環境では、印刷プレビュー機能を提供することができなかった。
【０００８】
本発明はこのような問題点に鑑みなされたもので、先発の印刷ジョブの処理が完了する前に、後続の印刷ジョブのプレビューを実行可能にすることを一つの目的とする。また、Ｐｏｉｎｔ＆Ｐｒｉｎｔ環境においてプレビュー機能を提供することを他の目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明の情報処理装置は、プレビュー用印刷キューに格納されている文書データに基づきプレビュー用文書を作成し、前記プレビュー用文書を画面に表示して、前記プレビュー用文書を印刷コマンド生成用印刷キューに格納する第１のプリンタアイコンと、前記印刷コマンド生成用印刷キューに格納されている前記プレビュー用文書に基づき印刷コマンドを生成する第２のプリンタアイコンと、を有し、前記第１のプリンタアイコンはＮＵＬＬポートに接続され、前記第２のプリンタアイコンはプリンタに接続されるポートに接続され、前記第２のプリンタアイコンが第２のキューに格納されている第１のジョブの印刷データを生成している間に、前記第１のプリンタアイコンは第１のキューに格納されている第２のジョブのプレビューを行い、前記第１のプリンタアイコンと前記第２のプリンタアイコンとは一方のアイコンが表示されないように登録することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、先発の印刷ジョブの処理が完了する前に、後続の印刷ジョブのプレビューを実行可能にすることができる。また、本発明によれば、Ｐｏｉｎｔ＆Ｐｒｉｎｔ環境においてプレビュー機能を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について図面に基づいて説明する。
【００１６】
＜実施形態１＞
（ＸＰＳ文書の構成）
まずＸＰＳについて簡単に説明する。ＸＰＳとはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略で、オープン規格の電子文書フォーマットの一つである。ＸＰＳ文書は、ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（以下、ＦＤＳという）をルートとするツリー構造になっている。ＦＤＳは、複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下、ＦＤという）を持ち、ＦＤは、複数のＦｉｘｅｄＰａｇｅ（以下、ＦＰという）を持つ。ＦＤＳとＦＤとＦＰとのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰは、文書のページの内容をＸＭＬ形式で記述しており、実際に表示又は印刷される内容を含んでいる。ＦＰのページ内容で使用されるフォントや画像等の資源は複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰとはそれぞれ印刷設定をＰｒｉｎｔＴｉｃｋｅｔ（以下、ＰＴともいう）で持つことができる。ＰＴは、ＸＰＳ文書を印刷する際の印刷設定をＸＭＬ形式で記述したものである。ここで各ＦＰを印刷する際に使用する印刷設定は、ＦＤＳのＰＴと印刷対象ＦＰの親ＦＤのＰＴと印刷対象ＦＰのＰＴと、をマージしたＰＴとなる。
【００１７】
図１は、ＸＰＳ文書の論理構造の一例を示した図である。ＸＰＳ文書５０１の論理構造は、ＦＤＳ５０３がルートとなるツリー構造となっている。ＦＤＳ５０３は、子としてＦＤ５１１とＦＤ５１３とを有する。ＦＤ５１１は、子としてＦＰ５２１とＦＰ５２３とを有する。ＦＤ５１３は、子としてＦＰ５２５を有する。印刷設定を記述したＰＴについては、ＦＤＳ５０３がＰＴ５３１を、ＦＤ５１１がＰＴ５３３を、ＦＰ５２１がＰＴ５３５を、ＦＤ５１３がＰＴ５３７を、それぞれ保持している。ＦＰ５２３とＦＰ５２５とは、ＰＴを保持していない。また、ＦＰ５２１とＦＰ５２３とが、フォントや画像等の資源５４１を共有しており、ＦＰ５２５はフォントや画像等の資源５４３を利用している。ここで例えばＦＰ５２１を印刷する際に使用するＰＴは、ＰＴ５３１とＰＴ５３３とＰＴ５３５とをマージしたＰＴとなる。
【００１８】
（印刷システムの構成）
図２は、印刷システムの構成の一例を示す図である。プリンタ１０１は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置１０２で生成された印刷コマンドに基づいて記録媒体１００に画像の形成を行う。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置１０２は、アプリケーションが印刷ジョブを作成し、プリンタドライバが印刷ジョブのスプールデータから、接続されたプリンタ１０１の印刷動作を制御する印刷コマンドの生成を行う。本実施形態では情報処理装置の一例であるデータ処理装置１０２としてパーソナルコンピュータを用いている。データ処理装置１０２は、印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。
【００１９】
データ処理装置１０２は、各種機能ブロック１３０〜１３５、１４０〜１４３によって構成される。また、データ処理装置１０２には、データ処理装置１０２を制御するＯＳが組み込まれており、このＯＳ上で各種機能ブロックが動作する。通信インタフェース１０３は、データ処理装置１０２とプリンタ１０１とを接続する通信インタフェースである。本実施形態では通信インタフェース１０３としてシリアルインタフェースであるＵＳＢを想定している。しかしながら通信インタフェース１０３としてこの他にＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線等のシリアルインタフェースや、セントロニクス、ＳＣＳＩ等のパラレルインタフェースを利用することもできる。通信を実現するものであれば有線／無線を問わずどのようなインタフェースであってもよい。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置１０２と画像形成を行うプリンタ１０１とが特定の双方向インタフェースで接続された構成をとっている。しかしながら、この例に限られることなく、このようなデータ処理装置とプリンタとの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ１０１及びデータ処理装置１０２とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００２０】
中央制御部１４１は、データ処理装置１０２の各種機能を制御し、ＣＰＵの持つ機能がこれに該当する。入力操作部１４２は、ユーザの意図を印刷設定に反映させるための各種入力機器から構成される。情報通知部１４３は、印刷設定をユーザに通知する。通知方法としては、モニタ等の表示装置を使用する場合や音声による通知等がある。Ｉ／Ｆ制御部１４０は、データ処理装置１０２のインタフェース機能を司る。Ｉ／Ｆ制御部１４０は、ＵＳＢのホスト側のコントローラによって構成され、ＵＳＢホストとしての機能を有する。ＵＳＢホストとしての機能の一部はＯＳやドライバ等ソフトウェアによっても構成される。
【００２１】
記憶部１４４はＯＳやアプリケーションプログラムやプリンタドライバの命令コードを格納したり、ソフトウェアが動作するにあたり一時的にデータを保存・読み込みするのに使用されたりする。記憶部１４４は、例えばハードディスクドライブや半導体メモリ等で構成される。プリンタドライバ１３０は、印刷のための各種設定や印刷データの生成及びプリンタの制御をデータ処理装置１０２上で行うためのソフトウェアである。中央制御部１４１によりプリンタドライバのプログラムが実行されて、印刷設定処理部１３１や、レイアウト処理部とプレビュー文書作成部と印刷コマンド生成処理部とを含む印刷コマンド生成部１３４、データ通信処理部１３３等の機能が実現される。
【００２２】
印刷設定処理部１３１は、用紙の設定や印刷品位の設定等を含む各種印刷設定を行う。印刷設定処理部１３１は、ユーザからの指示や入力を受け付け、設定された内容を表示若しくは通知する機能を有する。印刷コマンド生成部１３４は、レイアウト成処理部においてアプリケーションにより作成された印刷ジョブのページのレイアウト処理を行う。その後、プレビュー文書作成部において印刷設定に応じプレビュー用文書を作成する。そして、印刷コマンド変換処理部においてレイアウト処理後の印刷データを印刷コマンドに変換する。印刷コマンド生成部１３４で作成された印刷コマンドは、データ通信処理部１３３を介してＩ／Ｆ制御部１４０に送られ、プリンタ１０１へ印刷コマンドが送られる。
プレビュー制御部１３５は、プレビュー文書作成部によって作成されるプレビュー用文書を用いて、プレビュー機能をユーザに提供する。ここでプレビュー機能とはプレビュー用文書を用いて印刷イメージを、情報通知部１４３を介して表示し、ユーザからの指示を、入力操作部１４２を介して取得する。そして、表示する印刷イメージを切り替えたり、印刷を続行したり、印刷をキャンセルしたりする機能のことを指す。
【００２３】
（プリンタドライバの動作）
図３は、実施形態１のプリンタドライバの一例を説明するための図である。本実施形態では、データ処理装置１０２は、プレビュー機能を有するプレビューオブジェクト手段の一例であるプリンタアイコン２１１と、印刷コマンド生成機能を有する印刷コマンド生成オブジェクト手段の一例であるプリンタアイコン２３１と、を有する。ＷｉｎｄｏｗｓのＯＳでは、登録されたプリンタアイコン１つに対し、１つの印刷キューが登録される。つまり、本実施形態では２つの印刷キューがデータ処理装置１０２に登録される。例えば、プリンタアイコン２１１にプレビュー用の第１のキューが登録され、プリンタアイコン２３１に印刷用の第２のキューが登録さる。尚、印刷キューと印刷ジョブとの関係については後述する図６を用いて説明する。
【００２４】
それぞれのプリンタアイコンにおいて本実施形態に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール２１５、２３５と、フィルター群（フィルターパイプライン）２１９、２３９とである。フィルター群２１９は、文書データの一例であるＸＰＳデータのページをレイアウト処理する機能を有するレイアウトフィルター２２１と、プレビュー機能を提供するためのフィルターであるプレビューフィルター２２３とを有する。また、フィルター群２３９は、ＸＰＳデータのページをレイアウト処理する機能を有するレイアウトフィルター２４１と、プレビュー機能を提供するためのフィルターであるプレビューフィルター２４３とを有する。
【００２５】
また、フィルター群２１９は、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター２２５を有する。また、フィルター群２３９は、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター２４５を有する。ここでフィルターとは、一般的に入力されたデータを基に、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラム（アプリケーション）のことを称する。
【００２６】
上述したように本実施形態では同一モジュール構成の２つのプリンタアイコンが登録される。第１のプリンタアイコンがプレビュー機能を担当し、第２のプリンタアイコンが印刷コマンド生成機能を担当する。以下、第１のプリンタアイコンをプレビュー用プリンタアイコン、第２のプリンタアイコンを印刷コマンド生成用プリンタアイコンという。プリンタアイコンの登録は例えばインストーラによって行われたり、インストール時にドライバ自身が複製したりする。
【００２７】
プレビュー用プリンタアイコン２１１と、印刷コマンド生成用プリンタアイコン２３１と、は例えばプリンタドライバ１３０によって異なるポートに登録される。プレビュー用プリンタアイコン２１１は、実際に印刷を行わず、プレビュー機能のみを提供するため、印刷が不可能なＮＵＬＬポート（実デバイスに接続されていない仮想ポート）に登録される（ポート割り当て）。ユーザは印刷を行う場合、まずプレビュー用プリンタアイコン２１１に対して印刷データを送信するよう操作する。印刷コマンド生成用プリンタアイコン２３１は、インストール時にユーザの指定したポート（実デバイスに接続されているポート）に登録される（ポート割り当て）。印刷コマンド生成用プリンタアイコン２３１は、プレビュー用プリンタアイコン２１１から渡されたデータをプリンタが解釈可能なコマンドに変換する。そのため、例えば、印刷コマンド生成用プリンタアイコン２３１（印刷コマンド生成用プリンタアイコン２３１のユーザインタフェースモジュール２３５）は、ユーザが直接使用できないようにユーザには隠された状態で登録される。尚、プリンタドライバ１３０は、例えば、画面には表示しない旨の属性を添付して、印刷コマンド生成用プリンタアイコン２３１を登録する。又は、プリンタドライバ１３０は、例えば、画面には表示するがユーザには選択させないよう表示する旨の属性を添付して、印刷コマンド生成用プリンタアイコン２３１を登録する。情報通知部１４３は、例えば、これらの属性に応じて、印刷コマンド生成用プリンタアイコン２３１をユーザが直接使用できないようにユーザには隠された状態で表示する。
【００２８】
本実施形態では、例えばプリンタドライバ１３０は、プレビュー用プリンタアイコン２１１に対して１つの仮想ポートを出力ポートとして登録しているが（割り当てているが）、複数の仮想ポートを出力ポートとして登録してもよい（割り当ててもよい）。このようにすることで同時に複数のプレビューを表示可能とすることができる。
【００２９】
図３における印刷システムでは、アプリケーション２０１が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能２１３を通じてプレビュー用プリンタアイコン２１１のＸＰＳスプールファイル２１７に一時的に蓄えられる。これをプレビュー用プリンタアイコン２１１のフィルター群２１９が印刷設定情報に基づきプレビューを行い、印刷データを印刷コマンド生成用プリンタアイコン２３１のＸＰＳスプールファイル２３７に格納する。この印刷データを印刷コマンド生成用プリンタアイコン２３１のフィルター群２３９が、プリンタ１０１が解釈可能な印刷コマンドに変換してプリンタ１０１に供給する。
【００３０】
ユーザインタフェースモジュール２１５は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。同時に本実施形態におけるユーザインタフェースモジュール２１５は、プリンタによる印刷動作を開始する前に印刷イメージを表示するプレビューを設定する機能を有する。ユーザインタフェースモジュール２１５は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション２０１に返却する。ユーザインタフェースモジュール２１５が提供する印刷設定ダイアログの一例については図４を用いて後述する。実際には印刷コマンド生成用プリンタアイコン２３１のユーザインタフェースモジュール２３５も存在するが、上述したように印刷コマンド生成用プリンタアイコン２３１はユーザが操作できないように隠されている場合、使用されることはない。
【００３１】
アプリケーション２０１は、作成した文書の印刷にあたり、ＯＳの印刷サポート機能２１３に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール２１５から返却された印刷設定情報を通知したりする。また、アプリケーション２０１は、ＯＳの印刷サポート機能２１３に対して、文書の各ページの描画開始や描画終了を通知する。ＯＳの印刷サポート機能２１３は、アプリケーションが描画した内容や印刷設定情報をプレビュー用プリンタアイコン２１１のＸＰＳスプールファイル２１７に格納する。各フィルターはスプールされた印刷ジョブをデスプールする際にＯＳの印刷サポート機能から呼び出される。
【００３２】
それぞれのプリンタアイコンのフィルター群２１９、２３９は、一つ以上のフィルターで構成されており、印刷時にＸＰＳスプールファイルから印刷ジョブを読み込み、プリンタ１０１が解釈可能な印刷コマンドに変換してプリンタ１０１に供給する。本実施形態におけるフィルター群２１９は、レイアウト処理部であるレイアウトフィルター２２１と、プレビュー文書作成部であるプレビューフィルター２２３と、印刷コマンド変換部である印刷コマンドフィルター２２５とで構成される。また、本実施形態におけるフィルター群２３９は、レイアウト処理部であるレイアウトフィルター２４１と、プレビュー文書作成部であるプレビューフィルター２４３と、印刷コマンド変換部である印刷コマンドフィルター２４５とで構成される。
【００３３】
レイアウトフィルター２２１は、ＸＰＳスプールファイル２１７に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。また、レイアウトフィルター２４１は、ＸＰＳスプールファイル２３７に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。本実施形態におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するＮ−ｕｐ印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【００３４】
レイアウトフィルター２２１は、プレビュー設定がＯＮの場合、印刷設定に基づきレイアウト処理を行い、レイアウト済みのＸＰＳデータを次のフィルターに送信する。その際、レイアウトフィルター２２１は、レイアウト済フラグを印刷データに付加する。プレビュー設定がＯＦＦの場合、レイアウトフィルター２２１は、入力データにプレビュー済フラグを付加し、印刷コマンド生成用プリンタアイコン２３１のＸＰＳスプールファイル２３７に格納する。
【００３５】
レイアウトフィルター２４１は、プレビュー用プリンタアイコン２１１で既にレイアウト処理が行われている（レイアウト済フラグが付加されている）場合、入力された印刷データをそのまま次のフィルターに送信する。プレビュー用プリンタアイコン２１１でレイアウト処理が行われていない場合、レイアウトフィルター２４１は、印刷設定に基づきレイアウト処理を行いレイアウト済みのＸＰＳデータを次のフィルターに送信する。
プレビューフィルター２２３、２４３は、レイアウトフィルターの出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【００３６】
プレビューフィルター２２３は、印刷設定情報のプレビュー設定がＯＮである場合、ＦＤＳの印刷設定情報であるＰＴにプレビュー済フラグを格納したプレビュー用のＸＰＳデータを作成し、それを画面に表示することでプレビューを行う。その後、プレビューフィルター２２３は、そのＸＰＳデータを印刷コマンド生成用プリンタアイコン２３１のＸＰＳスプールファイル２３７に格納して、プレビュー用プリンタアイコン２１１の処理を終了する。
プレビューフィルター２４３では、プレビュー済フラグが格納されていることを確認して、入力のＸＰＳデータをそのまま次のフィルターに出力する。
【００３７】
印刷コマンドフィルター２４５は、プレビューフィルター２４３の出力を入力とし、印刷設定情報に従い、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換し出力する。印刷コマンドフィルター２４５が入力のＸＰＳデータを一度イメージデータに変換する場合、一般的にレンダーフィルターと呼ばれる。レンダーフィルターは、インクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルター２４５がレンダーフィルターとして動作する場合、入力のＸＰＳデータを一度、イメージデータに変換する。その後、印刷コマンドフィルター２４５は、イメージデータに対して色空間の変換や二値化等の画像処理を行い、ラスタープリンタが解釈可能な印刷コマンドに変換する。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にＸＰＳが含まれるならば、印刷コマンドフィルター２４５は、入力のＸＰＳデータを編集し、ＸＰＳデータを出力する。印刷コマンドフィルター２４５にて処理する必要がなければ、印刷コマンドフィルター２４５は、入力のＸＰＳデータをそのまま出力する。又は、印刷コマンドフィルター２４５をプリンタドライバに含めない構成とする。
【００３８】
また、印刷コマンドフィルター２２５も印刷コマンドフィルター２４５と同様の機能を有しているが、本実施形態ではプレビューフィルター２２３以前に印刷コマンド生成用プリンタアイコンに処理が移行するため使用されることはない。
出力デバイスであるプリンタ１０１は、印刷コマンドフィルター２４５で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙２６１で図示される印刷結果の例は、レイアウトフィルター２２１、若しくはレイアウトフィルター２４１が２−ｕｐの処理を行った場合を示している。
【００３９】
（印刷設定画面）
図４は、印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図４において、印刷設定ダイアログ３０１は、表示エリア３０２〜３１１、３２０〜３３１から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【００４０】
図４に基本設定タブ３０２が選択された場合の表示例を示す。基本設定の簡易表示エリア３２０には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部３２２は、用紙の種類を表示すると共にユーザにより選択することができる。用紙種類選択部３２２は、ドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、ユーザがそこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部３２３は、プリンタ本体が用紙を給紙する給紙方法を表示し、ユーザに給紙方法の選択をさせることができる。ユーザは、給紙方法選択部３２３により、例えば自動給紙口である給紙トレイや給紙カセット、又は印刷用紙を一枚ずつ手動で給紙する「手差し給紙」等を選択することができる。印刷品質選択部３２４は、ユーザに印刷の品位を設定させるための項目である。色調整部３２５は、ユーザに印刷の色を調整させるための項目である。モノクロ印刷設定部３２６は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部３２７は、各種印刷設定がどのように印刷文書に反映されるか否かを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部３３１が押されると、基本設定タブ３０２の設定が標準（出荷時設定）に戻される。
【００４１】
ユーザが各項目を選択した後にＯＫボタン３０８を押下すると、プリンタドライバ１３０は、印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させる。また、プリンタドライバ１３０は、ユーザが、キャンセルボタン３０９を押下すると印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄し、印刷に反映さない。また、プリンタドライバ１３０は、ユーザが適用ボタン３１０を押下することで、印刷設定ダイアログ３０１を開いたままで選択した印刷設定を印刷に反映させる。また、プリンタドライバ１３０は、ユーザがヘルプボタン３１１を押下することで、基本設定タブ３０２の各設定項目に関する説明文を別ウィンドウで表示させる。
【００４２】
（プレビュー制御モジュールのプレビューウィンドウ）
図５は、プレビュー制御モジュールによって提供される表示画面（プレビューウィンドウ）の一例を示す図である。印刷プレビューウィンドウ４０１は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段と、を兼備している。
【００４３】
メニューバー４０２では、ユーザは表示切り替え等プレビューアへの命令をメニュー形式選択することができる。ユーザ操作部４０３〜４０６が用意される領域はツールバーであり、ユーザはメニューバー４０２を使用しなくともボタン４０３を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン４０３は、４つのボタンで構成されており、ユーザはページ切り替えボタン４０３によって、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。
【００４４】
４０４は、プレビュー画像の表示サイズを変更するためのドロップダウンリストで、ユーザは、ドロップダウンリスト４０４を操作して、全体表示や１００％、２００％表示等を選択することができる。ユーザは、印刷開始ボタン４０５を押下することでプレビューアを終了し、プレビューしていたプレビュー用ＸＰＳ文書を印刷処理可能な状態にすることができる。ユーザは、印刷中止ボタン４０６を押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域４０７は、プレビュー用ＸＰＳファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域４０８は、プレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。図６においては文書の総ページ数は３ページであり、現在プレビュー表示しているページ番号は２ページであり、印刷設定で設定された部数は１部であり、かつ、等倍印刷が設定されている例を示している。
【００４５】
また、本実施形態において図５に例示する表示画面は、プレビュー設定がＯＮである印刷設定情報を伴う印刷ジョブがスプールされ、ＯＳの印刷サポート機能によりフィルターパイプラインが起動される。そして、プレビューフィルターがプレビュー制御モジュールを起動した時点で表示される。
【００４６】
（印刷キューとプレビュー）
通常、一台のプリンタで同時に印刷可能な文書は一つであることから、ＯＳはプリンタごとに複数の印刷ジョブを管理するための論理的なキューを持つ。これは一般的に印刷キューと呼ばれ、キューの先頭の印刷ジョブの処理状態が「印刷中」となりプリンタドライバの処理対象となる。図６は、印刷キューと印刷ジョブのプレビューとの関係を説明するための一例の概念図である。図６に示される印刷ジョブのうち、ＪｏｂＡとＪｏｂＢとが、プレビュー設定がＯＮとなっている印刷設定情報が格納されている。
【００４７】
図６の（１）は、プレビュー用印刷キューの一例である印刷キュー７０１に印刷ジョブが三個格納されている状態を示している。ここで先頭のＪｏｂＡ７１５の処理状態が「印刷中」となっており、ＪｏｂＢ７１３とＪｏｂＣ７１１とは「待機中」となる。ここでＪｏｂＡ７１５の印刷設定情報はプレビュー設定ＯＮであるから、プレビュー用ＸＰＳ文書が作成されＪｏｂＡ７１５に対するプレビューが表示され、図６の（２）の状態になる。
【００４８】
図６の（２）は、ＪｏｂＡ７１５のプレビューを表示している状態である。プレビューを表示している間は以降のＪｏｂＢ７１３とＪｏｂＣ７１１とを処理することはできない。ここでＪｏｂＡ７１５に対するプレビューにおいて、ユーザにより印刷開始が指示されたとする。この場合、プレビューフィルター２２３は、新規印刷ジョブを作成し、ドライバインストール時に作成したもう一つのプリンタアイコンの印刷キュー７０３にプレビュー用ＸＰＳ文書を格納する。ここで、印刷キュー７０３は、印刷コマンド生成用印刷キューの一例である。この状態を図６の（３）に示す。
【００４９】
図６の（３）では、ＪｏｂＡ７１５は印刷キュー７０５の先頭印刷ジョブとなるので「印刷中」となる。ＪｏｂＡ７１５が既にプレビューが行われた印刷ジョブであることは、プレビュー済フラグが格納されていることで判断される。従ってＪｏｂＡ７１５に対してプレビューは実行されず、フィルターパイプラインによってプリンタが解釈可能な印刷コマンドが生成され、プリンタにより印刷用紙に像が形成されてゆく。
【００５０】
また、ＪｏｂＢ７１３は、印刷キュー７０１の先頭印刷ジョブとなるので「印刷中」となる。ＪｏｂＢ７１３の印刷設定情報はプレビュー設定ＯＮであるから、プレビュー用ＸＰＳ文書が作成されＪｏｂＢ７１３に対するプレビューが表示される。このようにＪｏｂＡ７１５の印刷処理継続中に後発のＪｏｂＢ７１３のプレビューを表示することができる。ここでＪｏｂＢ７１３に対するプレビューにおいて、ユーザにより印刷開始が指示されたとすると図６の（４）の状態になる。
【００５１】
図６の（４）では、プレビューを終えたＪｏｂＢ７１３が印刷キュー７０３に格納される。仮にＪｏｂＡ７１５の印刷コマンド生成処理が終了していないとすると、印刷キュー７０３では先頭印刷ジョブのＪｏｂＡ７１５が処理中であるため、ＪｏｂＢ７１３は「待機中」となる。また、ＪｏｂＣ７１１は、印刷キュー７０１の先頭印刷ジョブとなるので「印刷中」となる。ＪｏｂＣ７１１の印刷設定情報はプレビュー設定ＯＦＦなのでプレビューは行われず、すぐに印刷キュー７０３に格納される。この状態を図６の（５）に示す。
【００５２】
図６の（５）では、ＪｏｂＢ７１３が印刷キュー７０３に格納される。ここでＪｏｂＡ７１５の処理が終わったとすると、ＪｏｂＢ７１３は先頭印刷ジョブとなるので「印刷中」となる。先頭印刷ジョブはＪｏｂＢ７１３なので、新たに格納されたＪｏｂＣ７１１は「待機中」となる。ここでＪｏｂＢ７１３の処理が終了すると図６の（６）の状態になり、ＪｏｂＣ７１１の印刷コマンド生成処理が開始される。
【００５３】
（ＰｒｉｎｔＴｉｃｋｅｔとプレビュー済フラグ）
図７を用いてＰＴに格納するプレビュー済フラグについて説明する。図７は、ＰＴに格納するプレビュー済フラグについて説明するための図である。上述したようにＰＴとは、ＸＭＬ形式で記述された印刷設定である。従ってテキストで表現できるため、図７（Ａ）のように視覚的に記述することができる。
【００５４】
図７（Ａ）のＰＴは、レイアウト設定として２−ｕｐが指定された印刷設定の一例を表している。ＰＴの標準的な記載内容はＰｒｉｎｔＳｃｈｅｍａと呼ばれるスキーマにより規定されており、Ｎ−ｕｐに関する設定項目も存在する。ＰｒｉｎｔＳｃｈｅｍａについては一般的に公開されている仕様であるため、ここでは説明を省略する。ＰＴにはＮ−ｕｐ設定としてＦＤＳに影響を及ぼすＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙと、ＦＤに影響を及ぼすＤｏｃｕｍｅｎｔＮＵｐと、が存在する。これらはＰｒｉｎｔＳｃｈｅｍａにより規定されており、プリンタドライバは、これら二つの印刷設定を排他的に取り扱う必要があるが、どちらの設定を優先させるかはプリンタドライバにより異なる。図７（Ａ）では、どちらの設定が優先されてもいいように、どちらの印刷設定にも２−ｕｐが指定されている。
【００５５】
印刷設定には他の設定項目も数多く存在するが、ここでは、本実施形態に関連のあるＮ−ｕｐのみについて説明した。また、設定項目によってはＦＤＳとＦＤとだけではなくＦＰにも影響を及ぼすものもある。
【００５６】
図７（Ｂ）は、図７（Ａ）のＰＴに上述したプレビュー済フラグを格納したＰＴの一例を示している。ＰＴに格納するプレビュー済フラグはＰｒｉｎｔＳｃｈｅｍａで規定されていない独自の情報であるため、プライベートな名前空間を追加する必要がある。図７（Ｂ）ではプライベートな名前空間プレフィックスを"ｎｓ００００"としている。格納するプレビュー済フラグはＰｒｉｎｔＳｃｈｅａｍａのフレームワークを利用してＰｒｏｐｅｒｔｙの値として表現している。図７の（Ｂ）ではＰｒｏｐｅｒｔｙのｎａｍｅ属性として"ｎｓ００００：ＰｒｅｖｉｅｗＦｉｌｔｅｒＰｒｏｃｅｓｓ"と記述している。また、値として"Ｄｏｎｅ"というｓｔｒｉｎｇ値を記述することで、プレビュー済フラグを表現している。プリンタドライバはＰＴに"ｎｓ００００：ＰｒｅｖｉｅｗＦｉｌｔｅｒＰｒｏｃｅｓｓ"が存在しない、或いは"ｎｓ００００：ＰｒｅｖｉｅｗＦｉｌｔｅｒＰｒｏｃｅｓｓ"が存在し、その値が"Ｄｏｎｅ"以外であれば、プレビューを行っていないと判断する。
【００５７】
図７においてはプレビュー済フラグを格納するのに、フレームワークのＰｒｏｐｅｒｔｙを用いたが、この他にもＦｅａｔｕｒｅ／Ｏｐｔｉｏｎを用いてもよい。また、プレビュー済フラグを示すプライベートな名前空間を用意し、この名前空間の有無でプレビュー済フラグを表現してもよい。ＰＴはＸＭＬで記載されているため、ＰｒｉｎｔＳｃｈｅｍａに則っていれば、この他のどのような表現でプレビュー済フラグを格納してもよい。
また、レイアウト済フラグに関しても、プレビュー済フラグと同様の方法で格納することができる。
【００５８】
（参照用ＰｒｉｎｔＴｉｃｋｅｔ取得処理）
フィルターパイプラインの各フィルターにおいて、印刷設定情報を取得するには上述したようにＸＰＳのＰＴをマージする必要がある。ＸＰＳ文書の各パートはＰＴを持つことができるが、逆に持たないこともできる。また、たとえＸＰＳパートがＰＴを持っていたとしても、図７の（Ａ）で例示されるＰＴの様にＮ−ｕｐの情報しか記載されていないＰＴである可能性がある。従ってＦＤＳのＰＴを取得する際もユーザのデフォルト印刷設定のＰＴとのマージ処理が必要となる。ここでデフォルト印刷設定のＰＴには、プリンタドライバで扱える全ての設定項目が格納されている。従ってマージ後のＰＴも全ての印刷設定項目を含む。
【００５９】
図８は、ＦＤＳのＰＴとユーザのデフォルト印刷設定のＰＴをマージし、参照用ＰＴを取得する処理の一例を示すフローチャートである。図８では、レイアウトフィルター２２１を例に説明を行う。
Ｓ２０１において、レイアウトフィルター２２１は、ユーザのデフォルト印刷設定を格納したデフォルトＰＴを取得する。続いてＳ２０３において、レイアウトフィルター２２１は、ＸＰＳ文書のＦＤＳを取得する。続いてＳ２０５において、レイアウトフィルター２２１は、ＦＤＳのＰＴを取得する。
【００６０】
Ｓ２０７において、レイアウトフィルター２２１は、ＦＤＳのＰＴが取得できたか否かを判定し、取得できていればＳ２１１に移り、取得できなければＳ２０９に移る。Ｓ２１１において、レイアウトフィルター２２１は、取得したＦＤＳのＰＴとデフォルトＰＴをマージしたＰＴを参照用ＰＴとし、図８に示す処理を終了する。Ｓ２０９において、レイアウトフィルター２２１は、ＦＤＳにＰＴが存在しなかったため、デフォルトＰＴを参照用ＰＴとし、図８に示す処理を終了する。
【００６１】
ここで、全ての印刷設定項目とは、少なくともアプリケーションが設定可能な全ての設定項目のことを指しており、プレビュー済フラグのようなプリンタドライバ内部の設定項目はこれに含まれないものとする。
図８に示す処理を実行することによって、プリンタドライバが扱える全ての設定項目を含む参照用ＰＴを取得することができる。
【００６２】
（レイアウトフィルター処理）
次に、図９を用いてレイアウトフィルターの処理について説明する。図９は、レイアウトフィルターの処理の一例を示すフローチャートである。
Ｓ１０１において、レイアウトフィルター２２１は、上述したように参照用ＰＴを取得する。続いてＳ１０３において、レイアウトフィルター２２１は、参照用ＰＴにプレビュー済フラグが格納されているか否かを判断し、格納されていればＳ１２１に移り、格納されていなければＳ１０５に移る。
【００６３】
Ｓ１０５において、レイアウトフィルター２２１は、参照用ＰＴの印刷設定情報のプレビュー設定がＯＮか否かを判定し、ＯＮであればＳ１０７に移り、ＯＮでなければＳ１５１に移る。Ｓ１０７からＳ１０９までは、レイアウトフィルター２２１は、レイアウト済フラグの格納を行う。レイアウト済フラグはＦＤＳのＰＴに格納するため、まずレイアウトフィルター２２１は、ＦＤＳのＰＴが存在するか否かを確認し、存在しない場合は追加する。その後、レイアウトフィルター２２１は、ＦＤＳのＰＴにレイアウト済フラグを格納する。この作業はＦＤＳを送信する前に行う必要がある。
【００６４】
Ｓ１１１において、レイアウトフィルター２２１は、ＦＤを取得する。そして、Ｓ１１３において、レイアウトフィルター２２１は、ＦＤからＰＴを取得する。Ｓ１１５において、レイアウトフィルター２２１は、ＦＤのＰＴを取得できたか否かを判断し、取得できればＳ１１７に移り、取得できなければＳ１１９に移る。Ｓ１１７において、レイアウトフィルター２２１は、参照用ＰＴに取得できたＦＤのＰＴをマージする。
【００６５】
Ｓ１１９において、レイアウトフィルター２２１は、参照用ＰＴの印刷設定情報にレイアウト設定がされているか否かを判断し、レイアウト設定がされていればＳ１４１に移り、レイアウト設定がされていなければＳ１３１に移る。Ｓ１３１からＳ１３５までは、レイアウトフィルター２２１は、レイアウト処理を行わないで入力のＸＰＳデータを出力する。Ｓ１３１において、レイアウトフィルター２２１は、取得済みのＦＤＳを出力する。そしてＳ１３３において、レイアウトフィルター２２１は、取得済みのＦＤを出力する。そしてＳ１３５において、レイアウトフィルター２２１は、入力から残りのＸＰＳパートを取得し、出力し、図９に示す処理を終了する。
【００６６】
Ｓ１４１からＳ１４５までは、レイアウトフィルター２２１は、入力のＸＰＳデータにレイアウト処理を行い、出力する。Ｓ１４１において、レイアウトフィルター２２１は、取得済みのＦＤＳを出力する。そして、Ｓ１４３において、レイアウトフィルター２２１は、取得済みのＦＤを出力する。Ｓ１４５において、レイアウトフィルター２２１は、入力から残りのＸＰＳパートを順次取得し、ＦＰのレイアウト処理を行ったレイアウト済みのＦＰを作成して、出力する。
【００６７】
ここで上述したようにＰＴに格納されるレイアウト設定はＦＤＳに影響を及ぼすものと、ＦＤに影響を及ぼすものと、があるため、レイアウトフィルター２２１は、必要に応じてＦＤも出力する。このようにレイアウトフィルター２２１は、新たに作成したレイアウト済みのＦＰを送信し、全てのＦＰを出力し、図９に示す処理を終了する。
【００６８】
Ｓ１５１からＳ１５７までは、参照用ＰＴの印刷設定情報のプレビュー設定がＯＦＦの場合に行われる処理である。まず、レイアウトフィルター２２１は、プレビュー用プリンタアイコン２１１における処理が行われたことを示すプレビュー済フラグをＦＤＳに格納するにあたり、Ｓ１５１でＦＤＳのＰＴが存在するか否かを確認し、ない場合は追加する。その後、Ｓ１５３でレイアウトフィルター２２１は、ＦＤＳのＰＴにプレビュー済フラグを格納する。次にＳ１５５でレイアウトフィルター２２１は、プレビュー済フラグを格納した印刷データを印刷コマンド生成用プリンタアイコン２３１の印刷キューに格納する。そしてＳ１５７でレイアウトフィルター２２１は、各フィルターに終了通知を出し、図９に示す処理を終了する。
【００６９】
Ｓ１２１においてレイアウトフィルター２２１は、参照用ＰＴにレイアウト済フラグが格納されているか否かを判断し、格納されていればＳ１２３に移り、格納されていなければＳ１０７に移る。Ｓ１０７以降は上述したようにレイアウト処理を行い、次のフィルターにレイアウト済みの印刷データを送信し、図９に示す処理を終了する。Ｓ１２３からＳ１２５までは、入力された印刷データは既にプレビュー用プリンタアイコン２１１によってレイアウト処理が行われているので、入力データをそのまま次のフィルターに送信し、図９に示す処理を終了する。
【００７０】
上述した方法以外に、レイアウトフィルター２２１は、印刷情報のプレビュー設定がＯＦＦの場合であっても、直ぐに印刷データを印刷コマンド生成用プリンタアイコン２３１に送信するのではなく、レイアウト処理を行った後に送信するようにしてもよい。この場合、常にプレビュー用プリンタアイコン２１１でレイアウト処理が完了するため、レイアウト済みフラグは不要となる。
【００７１】
（プレビューフィルター処理）
次に、図１０を用いてプレビューフィルターの処理について説明する。図１０は、プレビューフィルターの処理の一例を示すフローチャートである。
Ｓ３０１において、プレビューフィルター２２３は、上述したように参照用ＰＴを取得する。続いてＳ３０３において、プレビューフィルター２２３は、参照用ＰＴにプレビュー済フラグが格納されているか否かを判断し、格納されていればＳ３０５に移り、格納されていなければＳ３１１に移る。
【００７２】
Ｓ３０５からＳ３０７までは、既にプレビュー用プリンタアイコン２１１において処理が行われた印刷ジョブに対する処理である。つまり、プレビュー用プリンタアイコン２１１によってプレビューが行われている、若しくは印刷設定情報のプレビュー設定がＯＦＦであるため、プレビューフィルター２２３は、プレビューは行わず、ＸＰＳパートを順次取得して、次のフィルターに送信する。
Ｓ３１１において、プレビューフィルター２２３は、参照用ＰＴの印刷設定情報のプレビュー設定がＯＮか否かを判定し、ＯＮであればＳ３１３に移り、ＯＮでなければＳ３２１に移る。
【００７３】
Ｓ３１３からＳ３１５までは、プレビューの実行処理である。Ｓ３１３において、プレビューフィルター２２３は、プレビュー用ＸＰＳ文書を作成する。Ｓ３１５において、プレビューフィルター２２３は、プレビュー制御モジュールを起動し、Ｓ３１３で作成したプレビュー用ＸＰＳ文書を表示することでプレビューを実行する。プレビューにおいてユーザにより印刷開始が指示されるとプレビューフィルター２２３は、Ｓ３２１に移る。
【００７４】
Ｓ３２１からＳ３２７までは、印刷コマンド生成用プリンタアイコン２３１への印刷データの送信処理である。まずＳ３２１、Ｓ３２３において、プレビューフィルター２２３は、作成したプレビュー用ＸＰＳ文書にプレビュー済フラグを格納する。次に、Ｓ３２５において、プレビューフィルター２２３は、プレビュー済フラグを格納したプレビュー用ＸＰＳ文書を印刷コマンド生成用プリンタアイコン２３１の印刷キューに格納する。その後、Ｓ３２７において、プレビューフィルター２２３は、各フィルターに終了通知を出し、図１０に示す処理を終了する。
【００７５】
以上説明したように、本実施形態によれば先発のジョブが印刷中であっても、後続のジョブのプレビューを行うことができる。
【００７６】
＜実施形態２＞
実施形態１では印刷中に後続のジョブのプレビューを実行できない問題に対する解決手段について記述した。実施形態２ではＰｏｉｎｔ＆Ｐｒｉｎｔ環境における印刷プレビュー機能の提供を実現する手段について記述する。以下の説明はＰｏｉｎｔ＆Ｐｒｉｎｔ環境においてＳＳＲが設定されていることを前提としている。また、実施形態１と同様の処理を行う部分に関しては説明を省略する。
【００７７】
（プリンタドライバのインストール）
Ｐｏｉｎｔ＆Ｐｒｉｎｔ環境ではクライアント装置は、予めサーバー装置にインストールされているプリンタドライバをダウンロードしてインストールを行う。インストールされたプリンタドライバはＰｏｉｎｔ＆Ｐｒｉｎｔのプリンタアイコンとしてクライアント装置に登録される。クライアント装置はこのプリンタアイコンを使用することで、サーバー装置に接続されたプリンタを用いて印刷を行うことができる。
【００７８】
本実施形態では実施形態１と同様に２つのプリンタアイコンの登録を行う。第１のプリンタアイコンは上述したＰｏｉｎｔ＆Ｐｒｉｎｔのプリンタアイコンとして登録される。第２のプリンタアイコンは同一モジュールを用いて、クライアント装置にローカルなプリンタアイコンとして登録される。
【００７９】
（プリンタドライバの動作）
図１１は、実施形態２のプリンタドライバの一例を示す図である。図１１ではサーバー装置１１０３がプリンタ１０１と接続されておりプリントサーバーとして利用される。クライアント装置１１０１は、サーバー装置１１０３を利用して印刷を行う。
【００８０】
上述したように実施形態２ではクライアント装置１１０１には同一モジュール構成の２つのプリンタアイコンが登録される。第１のプリンタアイコン１１１３は、クライアント装置１１０１のローカルプリンタアイコンとして登録され、プレビュー機能を担当する。文書送信オブジェクトの一例である第２のプリンタアイコン１１１５は、クライアント装置１１０１のＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコンとして登録され、サーバー装置１１０３への印刷データ送信機能を担当する。以下、第１のプリンタアイコンをローカルプリンタアイコン、第２のプリンタアイコンをＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコンという。この登録は例えばサーバー装置１１０３からプリンタドライバをダウンロードしインストールする時にドライバ自身が行うものとする。
【００８１】
ローカルプリンタアイコン１１１３は、実際に印刷を行わず、プレビュー機能のみを提供するため、印刷が不可能なポートに登録される。ユーザは印刷を行う場合、まずローカルプリンタアイコン１１１３に対して印刷データを送信することになる。Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５は、ローカルプリンタアイコン１１１３から渡されたデータをサーバー装置１１０３に送信する。そのため、このローカルプリンタアイコン１１１３は、ユーザが直接使用できないようにユーザには隠された状態で登録される。サーバー装置１１０５に登録されたプリンタアイコン１１１７は、印刷データをプリンタが解釈可能なコマンドに変換する。
【００８２】
図１１における印刷システムでは、アプリケーション１１１１が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能１１２１を通じてローカルプリンタアイコン１１１３のＸＰＳスプールファイル１１２３に一時的に蓄えられる。これをローカルプリンタアイコン１１１３が印刷設定情報に基づきプレビューを行い、印刷データをＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５に送信する。この印刷データをＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５がサーバー装置１１０３に送信し、サーバー装置１１０３に登録されたプリンタアイコン１１１７のＸＰＳスプールファイル１１６３に格納される。サーバー装置１１０３のプリンタアイコン１１１７は、印刷データをプリンタが解釈可能な印刷コマンドに変換して、プリンタ１０１に供給する。
【００８３】
Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５は、サーバー装置１１０３に登録されているプリンタアイコン１１１７と同一モジュールによって構成されており、印刷データをサーバー装置１１０３に送信する機能を有する。上述したようにＰｏｉｎｔ＆Ｐｒｉｎｔ環境におけるレンダリング方式にはサーバー側でレンダリングを行うＳＳＲと、クライアント側でレンダリングを行うＣＳＲと、が存在する。ＣＳＲ環境では印刷データはＸＰＳスプールファイル１１４３に格納され、フィルターパイプライン１１４５によって印刷コマンドに変換された後、サーバー装置１１０３に送信される。この場合、クライアント装置１１０１でプレビューフィルター１１４９による処理が行われるため、プレビュー表示することが可能となる。しかし、ＳＳＲ環境では印刷データはＸＰＳスプールファイル１１４３には格納されず、ＯＳの印刷サポート機能１１４１によってサーバー装置１１０３に送信される。その後、サーバー装置側のＸＰＳスプールファイル１１６３に格納され、フィルターパイプライン１１６５によって処理が行われる。この場合、クライアント装置側のプレビューフィルター１１４９による処理は行われないため、クライアント装置１１０１でプレビュー表示することはできない。
【００８４】
そこで本実施形態ではプレビュー機能を担当するローカルプリンタアイコン１１１３を設けることにより、フィルターパイプラインにおけるプレビューフィルターまでの処理をクライアント装置で実行することを可能とした。以下、図１１を用いて実施形態２の各プリンタアイコンの処理について説明する。
【００８５】
（ローカルプリンタアイコン処理）
実施形態２におけるローカルプリンタアイコン１１１３は、実施形態１のプレビュー用プリンタアイコン２１１と同様の処理を行う。
ローカルプリンタアイコンのフィルター群１１２５は、一つ以上のフィルターで構成されている。そして、印刷時にＸＰＳスプールファイルから印刷ジョブを読み込み、読み込んだ印刷データに対してレイアウト処理、プレビュー処理を行い、その印刷データをＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５に送信する機能を有する。また、ローカルプリンタアイコンのフィルター群１１２５は、レイアウト処理部であるレイアウトフィルター１１２７と、プレビュー文書作成部であるプレビューフィルター１１２９と、印刷コマンド変換部である印刷コマンドフィルター１１３１とで構成される。
【００８６】
レイアウトフィルター１１２７は、ＸＰＳスプールファイル１１２３に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。本実施形態におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するＮ−ｕｐ印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【００８７】
レイアウトフィルター１１２７は、プレビュー設定がＯＮの場合、印刷設定に基づきレイアウト処理を行い、レイアウト済みのＸＰＳデータを次のフィルターに送信する。その際、レイアウトフィルター１１２７は、レイアウト済フラグを印刷データに付加する。プレビュー設定がＯＦＦの場合、レイアウトフィルター１１２７は、入力データにプレビュー済フラグを付加し、Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５に印刷データを送信して、ローカルプリンタアイコン１１１３の処理を終了する。
【００８８】
プレビューフィルター１１２９は、印刷設定情報のプレビュー設定がＯＮである場合、ＦＤＳの印刷設定情報であるＰＴにプレビュー済フラグを格納したプレビュー用のＸＰＳデータを作成し、それを画面に表示することでプレビューを行う。その後、プレビューフィルター１１２９は、そのＸＰＳデータをＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５に送信して、ローカルプリンタアイコン１１１３の処理を終了する。プレビュー設定がＯＦＦの場合、レイアウトフィルター１１２７において印刷データはＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５に送信され、ローカルプリンタアイコン１１１３の処理を終了する。そのため、プレビューフィルター１１２９における処理は行われない。同様に印刷コマンドフィルター１１３１はレイアウトフィルター１１２７、もしくはプレビューフィルター１１２９においてローカルプリンタアイコン１１１３の処理が終了されるため、処理が行われることはない。
【００８９】
（Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン処理）
Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５は一つ以上のフィルターで構成されており、印刷データをサーバー装置１１０３のプリンタアイコン１１１７に送信する機能を有する。Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５はサーバー装置１１０３のプリンタアイコン１１１７と同一モジュールによって構成される。ＣＳＲ環境ではＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５は、実施形態１の印刷コマンド生成用プリンタアイコンと同じ役割を担い、フィルター群（フィルターパイプライン）１１４５によってＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する。生成された印刷コマンドはサーバー装置の１１０３のプリンタアイコン１１１７に送信される。ＳＳＲ環境では受信した印刷データをそのままサーバー装置１１０３のプリンタアイコン１１１７に送信する。
【００９０】
（サーバー装置のプリンタアイコンの処理）
サーバー装置１１０３のプリンタアイコン１１１７は、Ｐｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコン１１１５と同じモジュール構成を有し、印刷コマンドをプリンタに送信する役割を担う。ＣＳＲ環境ではＰｏｉｎｔ＆Ｐｒｉｎｔプリンタアイコンによって生成された印刷コマンドを受け取り、それをプリンタに送信する。ＳＳＲ環境では、実施形態１の印刷コマンド生成用プリンタアイコンと同じ役割を担い、フィルター群（フィルターパイプライン）１１６５によってＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する。以下、ＳＳＲ環境におけるサーバー装置１１０３のプリンタアイコン１１１７の動作について説明する。サーバー装置１１０３のプリンタアイコン１１１７のフィルター群１１６５は、レイアウトを行うレイアウトフィルター１１６７と、プレビュー文書を作成するプレビューフィルター１１６９と、印刷コマンドに変換する印刷コマンドフィルター１１７１とからなる。
【００９１】
レイアウトフィルター１１６７は、ローカルプリンタアイコン１１１３のレイアウトフィルター１１２７で既にレイアウト処理が行われている（レイアウト済フラグが付加されている）場合、入力された印刷データをそのまま次のフィルターに送信する。ローカルプリンタアイコン１１１３のレイアウトフィルター１１２７でレイアウト処理が行われていない場合、レイアウトフィルター１１６７は、印刷設定に基づきレイアウト処理を行いレイアウト済みのＸＰＳデータを次のフィルターに送信する。
【００９２】
プレビューフィルター１１６９では、プレビュー済フラグが格納されていることを確認して、入力のＸＰＳデータをそのまま次のフィルターに出力する。
印刷コマンドフィルター１１７１は、プレビューフィルター１１６９の出力を入力とし、印刷設定情報に従い、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換し、プリンタ１０１に出力する。
【００９３】
以上説明したように、本実施形態によればＰｏｉｎｔ＆ＰｒｉｎｔのＳＳＲ環境において、サーバー側で印刷コマンド変換処理を行うように設定されていてもクライアント側でプレビュー機能の提供を行うことができる。
【００９４】
＜その他の実施形態＞
また、本発明の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（又は記録媒体）を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は本発明を構成することになる。
【００９５】
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００９６】
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００９７】
本発明を前記記憶媒体に適用する場合、その記憶媒体（コンピュータ読み取り可能な記憶媒体）には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００９８】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００９９】
【図１】ＸＰＳ文書の論理構造の一例を示した図である。
【図２】印刷システムの構成の一例を示す図である。
【図３】実施形態１のプリンタドライバの一例を説明するための図である。
【図４】印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。
【図５】プレビュー制御モジュールによって提供される表示画面（プレビューウィンドウ）の一例を示す図である。
【図６】印刷キューと印刷ジョブのプレビューとの関係を説明するための一例の概念図である。
【図７】ＰＴに格納するプレビュー済フラグについて説明するための図である。
【図８】ＦＤＳのＰＴとユーザのデフォルト印刷設定のＰＴをマージし、参照用ＰＴを取得する処理の一例を示すフローチャートである。
【図９】レイアウトフィルターの処理の一例を示すフローチャートである。
【図１０】プレビューフィルターの処理の一例を示すフローチャートである。
【図１１】実施形態２のプリンタドライバの一例を示す図である。
【符号の説明】
【０１００】
２１１  プレビュー用プリンタアイコン
２３１  印刷コマンド生成用プリンタアイコン
【図１】
0005072676.tif 000002
【図２】
0005072676.tif 000003
【図３】
0005072676.tif 000004
【図４】
0005072676.tif 000005
【図５】
0005072676.tif 000006
【図６】
0005072676.tif 000007
【図７】
0005072676.tif 000008
【図８】
0005072676.tif 000009
【図９】
0005072676.tif 000010
【図１０】
0005072676.tif 000011
【図１１】
0005072676.tif 000012