(57)【特許請求の範囲】
【請求項１】
スプールファイルに格納され且つ内部構造がツリー構造となっている電子文書データを入力とし、指定された印刷設定に応じてページの複製及び追加を行い電子文書データを出力するレイアウト処理手段と、
前記レイアウト処理手段から出力される電子文書データを、印刷装置が解釈可能な印刷コマンドに変換するとともに、電子文書データのツリー構造に関する情報を前記印刷コマンドに追加する印刷コマンド変換手段と、
前記印刷コマンド変換手段から出力される印刷コマンドを印刷装置に送信する機能及び、印刷装置から印刷状況を取得する機能を持つデータ通信処理手段と、
前記データ通信処理手段により取得された前記印刷状況と、前記電子文書データに含まれる前記ツリー構造に関する情報を用いて印刷中のページに関する情報の表示を行う印刷状況表示手段と
を有することを特徴とするデータ処理装置。
【請求項２】
前記印刷状況表示手段は、印刷中のページの表示を行う際に、電子文書データのツリー構造を表示することを特徴とする請求項１のデ−タ処理装置。
【請求項３】
前記データ通信処理手段は、印刷コマンドに追加されたツリー構造の情報と、印刷装置で印刷中のページを関連付けるためのテーブルを持つことを特徴とする請求項１のデータ処理装置。
【請求項４】
スプールファイルに格納され且つ内部構造がツリー構造となっている電子文書データを入力とし、指定された印刷設定に応じてページの複製及び追加を行い電子文書データを出力するレイアウト処理工程と、
前記レイアウト処理工程から出力される電子文書データを、印刷装置が解釈可能な印刷コマンドに変換するとともに、電子文書データのツリー構造に関する情報を前記印刷コマンドに追加する印刷コマンド変換工程と、
前記印刷コマンド変換工程から出力される印刷コマンドを印刷装置に送信し、印刷装置から印刷状況を取得するデータ通信処理工程と、
前記データ通信処理工程により取得された前記印刷状況と、前記電子文書データに含まれる前記ツリー構造に関する情報を用いて印刷中のページに関する情報の表示を行う印刷状況表示工程と
を有することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷中の文書の情報などの印刷状況を表示する機能を有するデータ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
従来、プリンティングシステムは、カラー出力を可能とするカラープリンタと、そのプリンタを制御し印刷データを生成するホストコンピュータと、その双方を接続する通信インターフェースとから構成されるのが一般的である。ホストコンピュータではオペレーティングシステムが動作しており、各種ソフトウェアがこのオペレーティングシステム上で動作するようになっている。アプリケーションソフトウェアで作成した各種ドキュメントを印刷する際には、アプリケーションソフトウェア、プリンタドライバ、オペレーティングシステムが規定の手順で関数呼び出し等を行うことによってデータをやり取りしてプリンタコマンドを生成する。この生成されたプリンタコマンドをプリンタへ転送することで印刷が行われるようになっている。プリンタドライバの中にはオペレーティングシステムが提供する通信機能を用いてプリンタと双方向通信を行い、プリンタが印刷中の文書の情報を画面上に表示するなどして、ユーザの利便性を高めるようになっているものもある（特許文献１参照）。
【特許文献１】特開２０００−０２９６４１
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、内部構造がツリー構造になっている新しい形式の電子文書  ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）がＭｉｃｒｏｓｏｆｔ社によって開発された。ツリー構造になっているため、１つの電子文書中に、複数の文書を含めて論理的に管理できるようになっている。例えば１つの電子文書中に、ワープロ文書、表計算文書、プレゼンテーション文書の３つの文書を含めることが可能である。この文書を印刷して前記従来例の方法で印刷中の文書の情報を画面上に表示する場合、印刷中のページや印刷済みのページ数などを表示できる。しかし、印刷中のページや印刷済みのページが電子文書中に含まれる複数の文書のうちどの文書に対応するのかわからないという問題があった。
【０００４】
Ｍｉｃｒｏｓｏｆｔ社のＯＳであるＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａでは、フィルターパイプラインと呼ばれるＸＰＳ文書の印刷処理を行うモジュールが、ＸＰＳ文書中の各文書およびその文書のページを処理する度に、プログレスレポートとよばれるＯＳの印刷サポート機能を介して処理状況をＯＳのプリントキューに通知することが出来る。プリントキューのステータス欄を参照することで、どの文書の何ページ目が処理中かがわかるようになっている。しかし実際にプリンタで印刷されているページと合っていないという問題があった。
【０００５】
また複数部印刷の場合、フィルターパイプラインによりＸＰＳ文書中の各文書が複製される。例えば、ワープロ文書を１つだけ含むＸＰＳ文書を２部印刷する場合、フィルターパイプラインにより複製されたワープロ文書が追加され、ワープロ文書を２つ含むＸＰＳ文書が作成される。フィルターパイプラインが２部目を処理しているとき、プログレスレポートによって通知された処理状況をプリントキューのステータス欄で確認すると、「印刷中‐固定ドキュメントシーケンス１−固定ドキュメント２−固定ページ１」と表示される。ワープロ文書を２つ含むＸＰＳ文書を１部印刷する場合も同じように「印刷中‐固定ドキュメントシーケンス１−固定ドキュメント２−固定ページ１」と表示されるため両者を区別できない問題があった。
【０００６】
本発明は上記従来の問題点を鑑み、複数部印刷の場合でも適切な表示を行うことが可能な印刷システムを提供する。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明のデータ処理装置は、スプールファイルに格納され且つ内部構造がツリー構造となっている電子文書データを入力とし、指定された印刷設定に応じてページの複製及び追加を行い電子文書データを出力するレイアウト処理手段と、
前記レイアウト処理手段から出力される電子文書データを、印刷装置が解釈可能な印刷コマンドに変換するとともに、電子文書データのツリー構造に関する情報を前記印刷コマンドに追加する印刷コマンド変換手段と、前記印刷コマンド変換手段から出力される印刷コマンドを印刷装置に送信する機能及び、印刷装置から印刷状況を取得する機能を持つデータ通信処理手段と、前記データ通信処理手段により取得された前記印刷状況と、前記電子文書データに含まれる前記ツリー構造に関する情報を用いて印刷中のページに関する情報の表示を行う印刷状況表示手段とを有することを特徴とする。
【０００９】
また、本発明のデータ処理方法は、スプールファイルに格納され且つ内部構造がツリー構造となっている電子文書データを入力とし、指定された印刷設定に応じてページの複製及び追加を行い電子文書データを出力するレイアウト処理工程と、前記レイアウト処理工程から出力される電子文書データを、印刷装置が解釈可能な印刷コマンドに変換するとともに、電子文書データのツリー構造に関する情報を前記印刷コマンドに追加する印刷コマンド変換工程と、前記印刷コマンド変換工程から出力される印刷コマンドを印刷装置に送信し、印刷装置から印刷状況を取得するデータ通信処理工程と、前記データ通信処理工程により取得された前記印刷状況と、前記電子文書データに含まれる前記ツリー構造に関する情報を用いて印刷中のページに関する情報の表示を行う印刷状況表示工程とを有することを特徴とする。
【発明の効果】
【００１１】
以上説明したように、本発明によれば以下のような効果が得られる。
（１）内部構造がツリー構造となっている電子文書を印刷する際、印刷中のページとツリー構造の要素を関連づけて表示できる。
（２）複数部印刷を行う際も、印刷状況を正確に把握でき、ツリー構造のどの要素の何部目を印刷中かを表示できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面に示す実施例に基づき本発明を詳細に説明する。
【００１３】
＜ＸＰＳ文書の構成＞
本文の理解を容易にするため、まずＸＰＳについて簡単に説明する。ＸＰＳとはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略で、Ｍｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットの一つである。
【００１４】
ＸＰＳ文書はＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ  （以下ＦＤＳ）をルートとして各要素がツリー構造になっている。ＦＤＳは複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下ＦＤ）を持ち、ＦＤは複数のＦｉｘｅｄＰａｇｅ（以下ＦＰ）を持つ。ＦＤＳとＦＤとＦＰのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰは文書のページの内容をＸＭＬ形式で記述しており、実際に表示または印刷される内容を含んでいる。ＦＰのページ内容で使用されるフォントや画像等の資源は複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰははそれぞれ印刷設定をＰｒｉｎｔＴｉｃｋｅｔ（以下ＰＴ）で持つことができる。ＰＴはＸＰＳ文書を印刷する際の印刷設定をＸＭＬ形式で記述したものである。ここで各ＦＰを印刷する際に使用する印刷設定は、ＦＤＳのＰＴと、印刷対象ＦＰの親ＦＤのＰＴと、印刷対象ＦＰのＰＴをマージしたＰＴとなる。
【００１５】
図１はＸＰＳ文書の論理構造を示したブロック図の一例である。ＸＰＳ文書の論理構造はＦＤＳ３０１がルートとなるツリー構造となっている。ＦＤＳ３０１は子としてＦＤ３０２とＦＤ３０５を有する。ＦＤ３０２は子としてＦＰ３０３とＦＰ３０４を有する。ＦＤ３０５は子としてＦＰ３０６を有する。印刷設定を記述したＰＴについては、ＦＤＳ３０１がＰＴ３０７を、ＦＤ３０２がＰＴ３０８を、ＦＰ３０３がＰＴ３０８を、ＦＤ３０５がＰＴ３１１をそれぞれ保持している。ＦＰ３０４とＦＰ３０６はＰＴを保持していない。また、ＦＰ３０３とＦＰ３０４がフォントや画像等の資源３１０を共有しており、ＦＰ３０６はフォントや画像等の資源３１２を利用している。ここで例えばＦＰ３０３を印刷する際に使用するＰＴは、ＰＴ３０７とＰＴ３０８とＰＴ３０９をマージしたＰＴとなる。
【００１６】
以上説明したように、ＸＰＳ文書は論理的にＸＰＳパートという概念を用いると理解が容易になる。ただし、ＸＰＳ文書自体はバイト列（ストリーム）として取り扱いが可能である為、ＸＰＳ文書内部のデータを指す場合はＸＰＳデータという言葉を用いることもある。従って本文においてもＸＰＳパートとＸＰＳデータという言葉を用いて実施例を説明する。
【００１７】
＜フィルター  パイプラインの構成＞
図４を用いて、フィルター  パイプラインの構成について説明する。フィルターパイプラインはＸＰＳ文書を処理する複数のフィルターで構成されている。各フィルター４０１，４０３，４０４は、Ｉｎｔｅｒ−Ｆｉｌｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｏｒ４０８というインターフェースを通してＦｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅ  Ｍａｎａｇｅｒ４０５で管理される。
【００１８】
ＸＰＳスプールファイル４０６にはＸＰＳ文書が格納されている。ＸＰＳスプールファイル４０６はＦｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅ  Ｍａｎａｇｅｒ４０５により各フィルター４０２，４０３，４０４に送られ処理される。
【００１９】
Ｆｉｌｔｅｒ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｆｉｌｅ４０７には、フィルター  パイプラインを構成するフィルターが記述されている。
【００２０】
Ｐｒｏｐｅｒｔｙ  Ｂａｇ４０１には、フィルター間の共有データを格納することが出来る。
【００２１】
＜印刷システムの構成＞
図２は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ１０１は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置１０２で生成された印刷コマンドに基づいて記録媒体１００に画像の形成を行う。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置１０２は、アプリケーションが印刷ジョブを作成し、プリンタドライバが印刷ジョブのスプールデータから、接続されたプリンタ１０１の印刷動作を制御する印刷コマンドの生成を行う。本実施形態ではデータ処理装置１０２としてパーソナルコンピュータを用いている。印刷の設定に関するユーザーからの指示や入力を受ける役割も果たす。データ処理装置１０２は、各種機能ブロック１３０、１３１、１３３、１３４、１４０、１４１、１４２，１４３，１４４によって構成される。また、データ処理装置１０２には、データ処理装置１０２を制御するＯＳが組み込まれており、このＯＳ上で各種機能ブロックが動作する。ＯＳは本実施形態ではＷｉｎｄｏｗｓ（登録商標）  ＸＰを想定しているが、他のＯＳであっても構わない。通信インターフェース１０３は、データ処理装置１０２とプリンタ１０１を接続する通信インターフェースである。本実施形態ではシリアルインターフェースであるＵＳＢを用いているが、この他に、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線などのシリアルインターフェースや、セントロニクス、ＳＣＳＩなどのパラレルインタフェースを利用することもできる。通信を実現するものであれば有線／無線を問わずどのようなインターフェースであっても構わない。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置１０２と画像形成を行うプリンタ１０１とが特定の双方向インターフェースで接続された構成をとっているが、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ１０１及びデータ処理装置１０２とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００２２】
中央制御部１４１は、データ処理装置１０２の各種機能を制御し、ＣＰＵの持つ機能がこれに該当する。入力操作部１４２は、ユーザの意図を印刷設定に反映させるための各種入力機器から構成される。情報通知部１４３は、印刷設定をユーザに通知する。通知方法としては、モニタなどの表示装置を使用する場合や音声による通知などが考えられる。Ｉ／Ｆ制御部１４０は、データ処理装置１０２のインターフェース機能を司る。記憶部１４４はＯＳやアプリケーションプログラムやプリンタドライバの命令コードを格納し、ソフトウェアが動作するにあたり一時的にデータを保存・読込みするのに使用される。記憶部１４４は例えばハードディスクドライブや半導体メモリなどで構成される。プリンタドライバ１３０は、印刷のための各種設定や印刷データの生成及びプリンタの制御をデータ処理装置１０２上で行うためのソフトウェアである。中央制御部１４１によりプリンタドライバのプログラムが実行されて、印刷設定処理部１３１や、レイアウト処理部と印刷コマンド変換処理部を含む印刷コマンド生成部１３４、データ通信処理部１３３などの機能が実現される。印刷設定処理部１３１は、用紙の設定や印刷品位の設定などを含む各種印刷設定を行う。印刷設定処理部１３１は、ユーザからの指示や入力を受け付け、設定された内容を表示もしくは通知する機能を有する。印刷コマンド生成部１３４では、レイアウト成処理部においてアプリケーションにより作成された印刷ジョブのページの部数処理やレイアウト処理を行った後に、印刷コマンド生成部においてレイアウト処理後の印刷データを印刷コマンドに変換する。印刷コマンド生成部で作成された印刷コマンドは、データ通信処理部１３３を介してＩ／Ｆ制御部１４０に送られ、プリンタ１０１へ印刷コマンドが送られる。
【００２３】
＜プリンタドライバの動作＞
図３は、本発明におけるプリンタドライバの実施形態を説明するために図２の印刷システムをＯＳの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。図３における印刷システムでは、アプリケーション２０１が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能２０２を通じてＸＰＳスプールファイル２０３に一時的に蓄えられる。これをプリンタドライバのフィルターパイプライン２０４がプリンタが解釈可能な印刷コマンドに変換してプリンタ２０９に供給して印刷するよう構成されている。
【００２４】
フィルターパイプライン２０４は、ＸＰＳデータのページをレイアウト処理する機能を有するレイアウトフィルター２０５と、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター２０６で構成される。
【００２５】
ユーザインタフェースモジュール２１１は、一般に印刷に使用する用紙サイズや印刷方向、部数、その他の属性を設定する機能を提供する。ユーザインタフェースモジュール２１１は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション２０１に返却する。
【００２６】
アプリケーション２０１は作成した任意の文書の印刷にあたり、ＯＳの印刷サポート機能２０２に対して、印刷開始や印刷終了、印刷設定を行うためにユーザインタフェースモジュール２１１から返却された印刷設定情報、および文書の各ページの描画開始や描画終了を通知する。ＯＳの印刷サポート機能２０２は、アプリケーションが描画した内容や印刷設定情報をＸＰＳスプールファイル２０３に格納する。
【００２７】
フィルターパイプライン２０４は一つ以上のフィルターで構成されており、印刷時にＸＰＳスプールファイルから印刷設定情報とＸＰＳパートを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ２０９に供給し、印刷を行う機能を有する。各フィルターはスプールされた印刷ジョブをデスプール際にＯＳの印刷サポート機能から呼び出される。スプールされたＸＰＳデータはフィルターパイプライン２０４の各フィルターを通過する際にＸＰＳデータのまま内容が編集され、或いはドライバ独自のデータ形式に変換され、最終的にプリンタが解釈可能な印刷コマンドに変換される。印刷ジョブのＸＰＳデータを全て処理し終えた場合、或いは、印刷ジョブがキャンセルされた場合は、フィルターパイプライン２０４の各フィルターは動作を終了する。本実施形態におけるフィルターパイプライン２０４はレイアウト処理部であるレイアウトフィルター２０５と、印刷コマンド変換部である印刷コマンドフィルター２０６で構成される。
【００２８】
レイアウトフィルター２０５は、ＸＰＳスプールファイル２０３に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。部数印刷が設定されている場合は、ＦＤＳ、ＦＤ、ＦＰなどのＸＰＳパートの複製を行いページの追加を行う。本発明におけるレイアウトフィルター２０５は複製を行う際、複製元となるＦＤやＦＰの情報および部数情報を複製するページに含める。
【００２９】
印刷コマンドフィルター２０６はレイアウトフィルター２０５の出力を入力とし、印刷設定情報に従い、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。この際、ＦＤＳ、ＦＤ、ＦＰの情報も印刷コマンドに追加して出力する。部数印刷が設定されていてレイアウトフィルター２０５にてＸＰＳパートの複製・ページの追加が行われている場合は、複製元のＦＤＳ、ＦＤ、ＦＰの情報および部数情報も印刷コマンドに追加して出力する。ページプリンタ等の高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にＸＰＳが含まれる場合、印刷コマンドフィルター２０６は入力のＸＰＳデータをそのまま出力しても良い。または、印刷コマンドフィルター２０６自体をプリンタドライバに含めなくても良い。
【００３０】
印刷コマンドフィルター２０６によって出力された印刷コマンド２０７は、ランゲージモニタ２０８に送られる。ランゲージモニタ２０８は印刷コマンド２０７を解釈し、印刷コマンド１ページ分毎にページＩＤを割り当て、プリンタ２０９に送信する。さらに、印刷コマンド２０７に含まれるＦＤＳ、ＦＤ、ＦＰの情報、および、複製元のＦＤＳ、ＦＤ、ＦＰの情報および部数情報を解釈し、ページＩＤとそれに対応するＦＤＳ、ＦＤ、ＦＰ、複製元ＦＤＳ、複製元ＦＤ、複製元ＦＰ、部数情報の一覧表を作成する。プリンタがＸＰＳデータを解釈できる場合、ランゲージモニタ２０８は、上記のページＩＤの追加や一覧表の作成を行うことなく、印刷コマンド２０７をそのままのプリンタ２０９に送信する。
【００３１】
プリンタ２０９は、ランゲージモニタ２０８からの要求に応じて、現在印刷中のページのページＩＤを返却する。ランゲージモニタ２０８は、プリンタ２０９から返却されたページＩＤと、前記の一覧表から、現在印刷中の、ＦＤＳ、ＦＤ、ＦＰ、複製元ＦＤＳ、複製元ＦＤ、複製元ＦＰ、部数情報を特定することが出来る。プリンタ２０９がＸＰＳデータを解釈できる場合、ランゲージモニタ２０８からの要求に応じて、現在印刷中のページのＦＤＳ、ＦＤ、ＦＰ、複製元ＦＤＳ、複製元ＦＤ、複製元ＦＰ、部数情報を返却する。
【００３２】
ステータスモニタ２１０は、ランゲージモニタ２０８と通信を行い、現在の印刷状況をユーザに表示する。ここで印刷状況とは、紙無エラーなどのエラーの発生状況の有無、インクの残量、現在印刷中のページ数などを指す。本発明におけるステータスモニタ２１０は、これらの情報に加えて、現在印刷中のページのＦＤＳ、ＦＤ、ＦＰ、複製元ＦＤＳ、複製元ＦＤ、複製元ＦＰ、部数情報も表示することが可能である。
【００３３】
出力デバイスであるプリンタ２０９は、ランゲージモニタ２０８から送られた印刷コマンド２０７を解釈し、印刷用紙に対して形成する機能を持つ。
【００３４】
次に図３の印刷システムにおいて、２ページのＸＰＳ文書を２部印刷する場合について説明する。アプリケーション２０１はＯＳの印刷サポート機能２０２を介しユーザインタフェースモジュール２１１の印刷設定機能を利用する。印刷設定として部数を２部に設定する。アプリケーション２０１は取得した印刷設定情報を用いて、複数ページからなる文書の印刷を開始する。アプリケーション２０１の文書の印刷データと印刷設定情報はＯＳの印刷サポート機能を介してＸＰＳスプールファイル２０３に格納される。
【００３５】
図５は、アプリケーション２０１が作成し、ＸＰＳスプールファイル２０３に格納されたＸＰＳ文書の概念図である。ＸＰＳ文書５００は、１つのＦＤＳ、ＦＤＳ１（５０１）を持ち、ＦＤＳ１（５０１）は２つのＦＤ、ＦＤ１（５０２）、ＦＤ２（５０４）を持つ。各ＦＤはそれそれ１つのＦＰ、ＦＰ１（５０３）、ＦＰ１（５０５）を持つ。
【００３６】
図３に戻る。ＸＰＳスプールファイル２０３にＸＰＳ文書のページがスプールされ始めると、ＯＳの印刷サポート機能はフィルターパイプライン２０４を起動する。レイアウトフィルター２０５は印刷設定情報を参照し部数設定が２部になっているため、ＦＤ、ＦＰを複製しページの追加を行う。同時に、複製元のＦＤ、ＦＰの情報および部数情報も追加する。
【００３７】
図６は、ＦＤ、ＦＰが複製され、ページの追加が行われたＸＰＳ文書の概念図である。５００〜５０５は図４と同じため説明を省略する。５１４の点線で囲まれた部分が複製・追加されたＦＤ、ＦＰである。ＦＤ３（５０６）、ＦＤ４（５０８）は複製されたＦＤであり、複製元はＦＤ１（５０２）、ＦＤ２（５０４）である。ＦＰ１（５０７）、ＦＰ１（５０９）は複製されたＦＰであり、複製元はＦＰ１（５０３）、ＦＰ１（５０５）である。複製されたＦＤ３（５０６）、ＦＤ４（５０８）、ＦＰ１（５０７）、ＦＰ１（５０９）は複製元および部数情報として、５１０〜５１３を保持している。５１０〜５１３の情報は、ＰＴに保持してもよいし、Ｐｒｏｐｅｒｔｙ  Ｂａｇに保持してもよい。
【００３８】
図３に戻る。次に印刷コマンドフィルター２０６のよって入力のＸＰＳスプールファイル２０３はプリンタ２０９が解釈可能な印刷コマンド２０７に変換される。変換の際、ＦＤＳ、ＦＤ、ＦＰの情報も印刷コマンド２０７に追加する。ＸＰＳスプールファイル２０３にはレイアウトフィルター２０５によって追加された５１０〜５１３の情報があるので、印刷コマンドフィルター２０６はこれらの情報も印刷コマンド２０７に追加する。
【００３９】
図７は、ＦＤＳ、ＦＤ、ＦＰの情報および５１０〜５１３の情報が追加された印刷コマンド２０７の概念図である。図７は４ページ分の印刷コマンドである。各ページにＦＤＳ、ＦＤ、ＦＰの情報および５１０〜５１３の情報がどのように埋め込まれているかを表している。なおコマンドのフォーマットは情報を表現できればどのようなフォーマットでもよいのでここでは説明しない。
【００４０】
１ページ目〜４ページ目には、ＦＤＳ，ＦＤ、ＦＰの情報が埋め込まれている。
【００４１】
１ページ目〜２ページ目は、部数印刷用に複製・追加されたページではないので複製元のＦＤＳ，ＦＤ，ＦＰの情報は全て「なし」となっている。また部数に関しては「１部目」となっている。
【００４２】
３ページ目〜４ページ目は、複製・追加されたページなので、複製元のＦＤ、ＦＰの情報が設定されている。また部数に関しては「２部目」となっている。
【００４３】
図３に戻る。ランゲージモニタ２０８は、印刷コマンド２０７を解釈し、ページ毎のＦＤＳ、ＦＤ、ＦＰの情報および５１０〜５１３の情報を取得する。またページ毎にページＩＤを印刷コマンド２０７に追加する。ランゲージモニタ２０８は、これらの情報をテーブルを作成して管理する。
【００４４】
図８はランゲージモニタ２０８が作成するテーブルの一例である。１ページ〜４ページが、７０１〜７０４に対応する。１ページ目（７０１）、２ページ目（７０２）は、複製されたページではないため、ＦＤＳ、ＦＤ、ＦＰと複製元のＦＤＳ、ＦＤ、ＦＰは同一であり部数も１となっている。３ページ目（７０３）、４ページ目（７０４）は複製・追加されたページである。３ページ目（７０３）は、ＦＤはＦＤ３だが、複製元ＦＤはＦＤ１でとなっている。４ページ目（７０４）は、ＦＤはＦＤ４だが、複製元ＦＤはＦＤ２となっている。
部数は、３ページ目（７０３）、４ページ目（７０４）ともに２となっている。
【００４５】
図３に戻る。プリンタ２０９は、印刷コマンド２０７を受け取り印刷を実行する。またランゲージモニタ２０８の要求に応じて現在印刷しているページのページＩＤを返却する。
ランゲージモニタ２０８は図８のテーブルを参照することで、現在印刷中のページに対応するＦＤＳ、ＦＤ、ＦＰ、複製元ＦＤＳ、複製元ＦＤ、複製元ＦＰがどれなのか、また何部目なのかを判断できる。例えば返却されたページＩＤが３の場合、
対応するＦＤＳは、ＦＤＳ１
対応するＦＤは、ＦＤ３
対応するＦＰは、ＦＰ１
対応する複製元ＦＤＳは、ＦＤＳ１
対応する複製元ＦＤは、ＦＤＳ１
対応する複製元ＦＰは、ＦＰ１
部数は、２
であることが分かる。
【００４６】
ステータスモニタ２１０はランゲージモニタ２０８と通信を行い、現在の印刷情況をユーザに表示する。例えばプリンタ２０９が３ページ目を印刷中の場合、図９のようにステータスモニタ８００は表示領域８０６にＦＤ２のＦＰ１の２部目が印刷中であることが分かる表示を行う。
【００４７】
このようにＸＰＳ文書のＦＤＳ、ＦＤ、ＦＰの情報、複数部印刷の場合は、複製元のＦＤＳ、ＦＤ、ＦＰの情報と部数の情報を、印刷コマンドに追加し、ランゲージモニタでページＩＤと関連付けて管理することにより、印刷中のＸＰＳ文書の状態をより詳細に表示することが可能となる。
【００４８】
また本実施形態では、上記のページＩＤとの関連付けの管理をランゲージモニタが行っているが、ランゲージモニタに限らずプリンタがこの管理を行っても構わない。
【００４９】
＜レイアウトフィルター処理＞
図１０を用いてレイアウトフィルターの処理について説明する。図１０はレイアウトフィルターの処理を示すフローチャートの一例である。Ｓ４０１で処理を開始し、Ｓ４０２でＰＴを取得する。Ｓ４０３で複数部印刷が設定されているかを確認し、設定されていればＳ４０４に移る。Ｓ４０４でＦＤＳ、ＦＤ、ＦＰなどのＸＰＳパートを取得し、Ｓ４０５でこれらのＸＰＳパートを複数部印刷用に複製し、ＸＰＳ文書にページを追加する。Ｓ４０６で複製元のＦＤＳ、ＦＤ、ＦＰや部数情報を保持する。保持する場所はＰＴでも良いし、Ｐｒｏｐｅｒｔｙ  Ｂａｇでもよい。Ｓ４０７でＸＰＳパートを出力し、Ｓ４０８で処理を終了する。Ｓ４０９では複数部印刷が設定されていないため、ＸＰＳパートの複製処理やページの追加処理は行わない。Ｓ４０９でＸＰＳパートを順次取得し、送信を行い終了する。
出力されたＸＰＳデータは次のフィルターに送信される。
【００５０】
＜印刷コマンドフィルター処理＞
図１１を用いて印刷コマンドフィルターの処理について説明する。図１１は印刷コマンドフィルターの処理を示すフローチャートの一例である。Ｓ５０１で処理を開始し、Ｓ５０２でＸＰＳパートを取得する。Ｓ５０３で取得したＸＰＳパートを印刷コマンドに変換する。Ｓ５０４でＸＰＳパートの情報を取得し、Ｓ５０５で取得したＸＰＳパートの情報を印刷コマンドに追加する。Ｓ５０６で印刷コマンドを出力し、Ｓ５０７で処理を終了する。出力された印刷コマンドは０Ｓのスプーラを経由してランゲージモニタに送信される。
【００５１】
＜ランゲージモニタ処理＞
図１２を用いてランゲージモニタの処理について説明する。図１２はランゲージモニタの処理を示すフローチャートの一例である。スプーラがランゲージモニタを呼び出し、Ｓ６０１でランゲージモニタが処理を開始する。Ｓ６０３で印刷コマンドを取得し、Ｓ６０４でページ終了コマンドが含まれているかどうかを判定する。ページ終了コマンドが含まれていた場合は、Ｓ６０８で現在のページ数を１つだけインクリメントする。Ｓ６０５に移り、印刷コマンドにＸＰＳパートの情報が含まれているかどうかを判定する。含まれている場合は、Ｓ６０９でＸＰＳパートの情報をテーブルに追加しＳ６１０に移る。Ｓ６１０で印刷コマンドにページＩＤを追加する。設定するページＩＤは現在のページ数と同じ数値を設定する。Ｓ６０６で印刷コマンドを出力し、Ｓ６０７で処理を終了する。出力した印刷コマンドはプリンタに送信される。スプーラは印刷コマンドを全て送信・もしくは印刷がキャンセルされるまで、ランゲージモニタを呼び出しＳ６０１から処理が繰り返し行われる。
【００５２】
＜ランゲージモニタとステータスモニタの通信処理＞
図１３を用いてランゲージモニタとステータスモニタの通信処理について説明する。図１３はランゲージモニタとステータスモニタの通信処理を示すフローチャートの一例である。図１３ではランゲージモニタとステータスモニタはＢｉｄｉ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ（以下Ｂｉｄｉ）を使って通信を行う。Ｂｉｄｉは  Ｗｉｎｄｏｗｓ（登録商標）  ＸＰの公知の機能である。ステータスモニタはＳ３０１で処理を開始し、Ｓ３０３でスキーマ
￥Ｐｒｉｎｔｅｒ．Ｉｎｆｏｒｍａｔｉｏｎ：Ｓｔａｔｕｓ
を引数にセットして、Ｓ３０４でＢｉｄｉのＳｅｎｄＲｅｃｖ関数をコールする。Ｓ３０３でセットするスキーマ  については図１４、図１５で説明する。
【００５３】
Ｓ３０４でＳｅｎｄＲｅｃｖ関数がコールされると、ランゲージモニタの関数が呼ばれて処理を開始する（Ｓ３０５）。Ｓ３０６でスキーマを取得し、Ｓ３０７でスキーマが
￥Ｐｒｉｎｔｅｒ．Ｉｎｆｏｒｍａｔｉｏｎ：Ｓｔａｔｕｓ
と等しいかどうかを確認する。等しい場合は、Ｓ３１１に進み、返却値に印刷状況をセットしてＳ３１３に進み処理を終了する。Ｓ３１１でランゲージモニタの処理が終了すると、Ｓ３１４に進みＳｅｎｄＲｅｃｖ関数がリターンし、ステータスモニタは印刷状況を取得する。
【００５４】
図１４、図１５で、ステータスモニタとランゲージモニタがＢｉｄｉ通信で使用するプライベートスキーマについて説明する。図１４はプライベートスキーマの定義の一例を表す図である。スキーマのパスは、
￥Ｐｒｉｎｔｅｒ．Ｉｎｆｏｒｍａｔｉｏｎ：Ｓｔａｔｕｓ
である。データタイプは、バイナリー型である。
【００５５】
図１５はバイナリー型のデータに格納される情報の一例を表す図である。印刷中のページ数、何部目を印刷中かの部数、複製元のＦＤＳ、ＦＤ、ＦＰの情報が格納されている。
【００５６】
本実施形態では、ステータスモニタ、アプリケーションとランゲージモニタ間の通信手段としてＢｉｄｉを使用したが、この手段に限られることなく、プロセス間通信を行えるものならば任意の通信手段を使用することが出来る。
【００５７】
図１６は、ステータスモニタではなくＸＰＳ文書を作成するアプリケーションが印刷状況を表示することを示す一例である。アプリケーション５０１は、Ｂｉｄｉを用いてランゲージモニタと通信し、印刷状況を取得する。Ｂｉｄｉ通信で使用するスキーマは図１４、図１５で説明したスキーマを使用する。取得した印刷状況を表示部５０４に表示する。ここでの特徴は、現在印刷中のページのみではなく、印刷済みや印刷待ちのページの情報も表示している点である。ＸＰＳ文書を作成したのはアプリケーション自身であり、全部で何ページあるのかを把握できるためこのような表示が可能となっている。
【図面の簡単な説明】
【００５８】
【図１】ＸＰＳ文書の論理構造を示す概念図
【図２】本発明の実施形態に係わる印刷システムの一例を表すブロック図
【図３】本発明の実施形態に係わるプリンタドライバの一例を表すブロック図
【図４】Ｆｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅの構成を表すブロック図
【図５】本発明の実施形態に係わるＸＰＳ文書の一例を表すブロック図
【図６】本発明の実施形態に係わるＸＰＳ文書の一例を表すブロック図
【図７】本発明の実施形態に係わる印刷コマンドの一例を表すブロック図
【図８】本発明の実施形態に係わるランゲージモニタが使用するテーブルを表すブロック図
【図９】本発明の実施形態に係わるステータスモニタの一例を表すブロック図
【図１０】本発明の実施形態に係わるレイアウトフィルターの処理を表すフローチャート
【図１１】本発明の実施形態に係わる印刷コマンドフィルターの処理を表すフローチャート
【図１２】本発明の実施形態に係わるランゲージモニタの処理を表すフローチャート
【図１３】本発明の実施形態に係わるステータスモニタとランゲージモニタの通信処理を表すフローチャート
【図１４】本発明の実施形態に係わるプライベートスキーマの一例を表すブロック図
【図１５】本発明の実施形態に係わるプライベートスキーマに格納される情報の一例を表すブロック図
【図１６】本発明の実施形態に係わるアプリケーションの一例を表すブロック図
【符号の説明】
【００５９】
１３０  プリンタドライバ
２０１  アプリケーション
２０５  レイアウトフィルター
２０６  印刷コマンドフィルター
２０８  ランゲージモニタ
２１０  ステータスモニタ
【図１】
0005031514.tif 000002
【図２】
0005031514.tif 000003
【図３】
0005031514.tif 000004
【図４】
0005031514.tif 000005
【図５】
0005031514.tif 000006
【図６】
0005031514.tif 000007
【図７】
0005031514.tif 000008
【図８】
0005031514.tif 000009
【図９】
0005031514.tif 000010
【図１０】
0005031514.tif 000011
【図１１】
0005031514.tif 000012
【図１２】
0005031514.tif 000013
【図１３】
0005031514.tif 000014
【図１４】
0005031514.tif 000015
【図１５】
0005031514.tif 000016
【図１６】
0005031514.tif 000017