(57)【要約】【課題】  ユーザによってジョブの操作が可能なシステム下で、特別なアプリケーションや特別な機能を有するデバイスなどを必要とせず、読み出しあるいは出力された内容を蓄積し追跡可能とする情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラムを提供する。【解決手段】  印刷装置で印刷すべき印刷ジョブを生成する場合に、アプリケーションから出力され格納手段に格納された描画命令を、入力手段から入力された編集指示に従って編集し、描画命令を用いて編集を含む追跡用データの生成処理に続いて、編集を含む印刷データの生成処理を実行する。描画命令の編集指示には、複数の描画命令の結合指示、複数の描画命令への分離指示、描画命令の削除指示を含み、編集指示が複数の描画命令の結合指示の場合に、複数の描画命令同士の結合関係がわかるよう階層化されたデータ構造によって追跡用データを生成する。【選択図】  図５
2006260243.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置で印刷すべき印刷ジョブを生成する情報処理装置であって、
アプリケーションから出力される描画命令を格納する格納手段と、
入力手段から入力された編集指示に従って、前記格納手段内の描画命令を編集する編集手段と、
前記格納手段から読み出される描画命令を用いて、前記編集手段による編集を含む追跡用データの生成処理を実行する追跡用データ生成手段と、
前記格納手段から読み出される描画命令を用いて、前記編集手段による編集を含む印刷データの生成処理を実行する印刷データ生成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記描画命令の編集指示は、複数の描画命令の結合指示、複数の描画命令への分離指示、描画命令の削除指示を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記追跡用データ生成手段は、編集指示が複数の描画命令の結合指示の場合に、複数の描画命令同士の結合関係がわかるよう階層化されたデータ構造によって前記追跡用データを生成することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記入力手段は、前記印刷データ生成手段が生成した印刷データのプレビュー指示が入力可能であり、
前記印刷データ生成手段が生成した印刷データのプレビュー画面を出力する出力手段を更に有することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記追跡用データ生成手段による追跡用データの生成処理と、前記印刷データ生成手段による印刷データの生成処理とが連続して実行されるべく制御する制御手段を更に有することを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記入力手段は、プリンタドライバのユーザインタフェースを用いて指示を入力することを特徴とする請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
印刷装置で印刷すべき印刷ジョブを生成する情報処理装置における情報漏洩抑止方法であって、
アプリケーションから出力され格納手段に格納された描画命令を、入力手段から入力された編集指示に従って編集する編集工程と、
前記格納手段から読み出される描画命令を用いて、前記編集工程での編集を含む追跡用データの生成処理を実行する追跡用データ生成工程と、
前記格納手段から読み出される描画命令を用いて、前記編集工程での編集を含む印刷データの生成処理を実行する印刷データ生成工程とを有することを特徴とする情報漏洩抑止方法。
【請求項８】
前記描画命令の編集指示は、複数の描画命令の結合指示、複数の描画命令への分離指示、描画命令の削除指示を含むことを特徴とする請求項７記載の情報漏洩抑止方法。
【請求項９】
前記追跡用データ生成工程では、編集指示が複数の描画命令の結合指示の場合に、複数の描画命令同士の結合関係がわかるよう階層化されたデータ構造によって前記追跡用データを生成することを特徴とする請求項８に記載の情報漏洩抑止方法。
【請求項１０】
前記入力手段は、前記印刷データ生成手段が生成した印刷データのプレビュー指示が入力可能であり、
前記印刷データ生成工程で生成した印刷データのプレビュー画面を出力する出力工程を更に有することを特徴とする請求項７記載の情報漏洩抑止方法。。
【請求項１１】
前記追跡用データの生成処理と印刷データの生成処理とは、連続して前記格納手段から描画命令を読み出し出力することで、連続して実行されることを特徴とする請求項７乃至１０のいずれかに記載の情報漏洩抑止方法。
【請求項１２】
前記入力手段は、プリンタドライバのユーザインタフェースを用いて指示を入力することを特徴とする請求項７乃至１１のいずれかに記載の情報漏洩抑止方法。
【請求項１３】
請求項７乃至１２のいずれかに記載の情報漏洩抑止方法を実現するドライバプログラム。
【請求項１４】
請求項１３に記載のドライバプログラムをコンピュータ読み取り可能に記憶する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラムに関し、特に、パーソナルコンピュータ等の情報処理装置とプリンタなどの印刷装置を有して構成されるシステムにおいて、印刷装置から印刷される内容を追跡可能とすることで情報漏洩を抑止する情報漏洩抑止方法及びそれを実現する情報処理装置とプリンタドライバプログラムに関するものである。
【背景技術】
【０００２】
近年、企業の顧客情報等の機密情報漏えい事件が頻発している。一度情報漏えい事件が公になると、情報漏えいを起した企業に対する信用を失うことに加え、損害賠償や対応に莫大な出費を強いられる事例が多発している。特に最近の情報漏えい事件は、従来の情報漏えい事件とは比べものにならないほど大規模な情報漏えい事件が発生しており、より適切な情報漏えい対策が情報を管理する側に求められている。この背景には、情報のデジタル化、ネットワーク化、モバイル化が進展したことに伴い、一度に大量の情報にアクセスすることが可能になると共に、情報の可搬性が飛躍的に向上したことなどがあり、今後もこれらの傾向は加速していくことは必至である。
【０００３】
情報漏えい対策として従来から広く用いられている手法として、機密情報またはこれを格納するストレージサーバなどにアクセス権を設定することで、機密情報にアクセスできる人を限定する方法がある。しかしながら、近年の情報漏えい事件は機密情報へのアクセスを許可された人物の意図的な内部犯行が圧倒的に多い傾向にあり、もはやアクセス権を設定することによる情報漏えい抑止効果だけでは充分な情報漏えい対策とは言えない。
【０００４】
一方、情報漏えいから守るべき情報として、大企業の顧客情報に代表されるような量的に膨大な情報のみではなく、情報量は少ないが質的に重要な情報も考慮に入れる必要がある。このような情報は、例えば印刷物として容易に持ち出すことが可能であり、印刷についても情報漏えい抑止を意識した対策が望まれている。
【０００５】
従って、特にネットワーク印刷システムについては、印刷された内容を蓄積し情報追跡を可能にする情報漏えい防止のための手段が工夫されてきた。
【０００６】
例えば、(1)印刷する文書や印刷データに印刷許可情報を設定しておき、印刷を行う場合にこの印刷許可情報を参照するもの（例えば、特許文献１参照）、
(2)ネットワークに接続されたデバイスを利用するためにユーザ認証を行う方法（例えば、特許文献２参照）、
(3)プリントサーバにより印刷データを再印刷可能な状態で保管すると共に、ジョブ名、クライアント名、ユーザ名などの情報を取得しタイムスタンプを付加したり、更には印刷データからビットマップを生成したりして印刷ログとして保管する方法（例えば、特許文献３参照）、
(4)上記に加えプリンタ側でも印刷ログを取得しておき、これをサーバに格納する方法（例えば、特許文献４参照）、
(5)また、同様にプリントサーバはクライアントから印刷データを受信すると同時に、ユーザを一意に特定できる情報も受信し、この印刷データとユーザー情報を元に印刷ログを生成し検索、閲覧、再印刷を可能とする方法（例えば、特許文献５参照）等々、様々な情報漏えい抑止の手段が提案されている。
【０００７】
また、プリンタドライバ等の印刷出力プログラムに関する技術では、アプリケーションが生成した文書の印刷出力を中間データでスプールファイルに格納しておき、スプールされている複数の文書の中間データを編集することで、複数の文書を１つの印刷文書に結合する方法（例えば、特許文献６参照）が提案されている。
【特許文献１】特開２００４−２７２７８４公報
【特許文献２】特開２００３−２８８３２７公報
【特許文献３】特開２００２−１４９３７１公報
【特許文献４】特開２００３−３３０６７７公報
【特許文献５】特開２００４−１１８２４３公報
【特許文献６】特開２００１−１３４３９５公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来例の印刷許可情報を埋め込むもの（特許文献１）、ユーザ認証を行うもの（特許文献２）などでは、特別なアプリケーションや特別なプリンタなどのネットワークデバイスを必要とするものであり、限定された用途での運用に留まざるを得ない。つまり、日常的な業務で個人情報などの機密性の高い情報を扱うオフィスなどでの運用においては、特別な印刷アプリケーションや特別なプリンタなどのネットワークデバイスを導入することにより適用できる環境が狭まってしまうという問題がある。
【０００９】
これとは対照的に、前記特許文献３〜５の方法ではこのような制限はなく、一般オフィスでの運用には大きな支障はなく、プリントサーバを介した印刷に限定すれば印刷内容情報の収集や蓄積、追跡が行えることになる。しかし、これらの特許文献３〜５の方法では印刷を行う経路がプリントサーバを介した印刷に限定されてしまう。つまり、クライアントＰＣから直接プリンタなどの印刷デバイスに印刷データを送信するような送信形態やローカルポート接続、ネットワークプロトコルによる接続等には対応できない。更には、プリントサーバを経由した印刷のため、プリントサーバは通常の印刷処理に加え印刷内容情報の収集や生成を行う必要があり、複数のクライアントＰＣからほとんど同時に同じプリンタに対して印刷要求が発行される場合に印刷パフォーマンスの低下が予想される。また、当然ではあるが、プリントサーバを設置することが必須となるため物理的にこれらを設置するスペースを確保する必要がある。
【００１０】
更に、特許文献６のように、印刷された内容を蓄積し情報追跡を可能にする上で、ユーザによって印刷ジョブに対する結合、分割、削除といった編集操作が可能な印刷システム下において、操作によって結果的に印刷内容情報が変更可能であっても、情報追跡の観点から必ず蓄積されるべき印刷内容情報の変更や欠落を防ぐことが必要である。これは追跡情報の正確性が高いネットワーク印刷システムを実現する上で必要となる。
【００１１】
しかしながら、特許文献６のように、アプリケーションから出力された複数の文書をスプールしておき、スプールされている文書の編集処理を行い、結合された結合文書は、その属性として元の文書名が失われ、新たに「結合ドキュメント１」のような名称が付与されてしまい、また、アプリケーション名ももともとの各文書を作成したアプリケーション名が失われ、ジョブ編集モジュール名（例えば「ＣＰＣ１.ｅｘｅ」）のような名称が付与されてしまうため、追跡用データを印刷ログとして管理する場合、その属性の文書名やアプリケーション名は、元もとの情報が失われてしまうという問題が想定される。
【００１２】
尚、上記従来の問題点については、ネットワーク印刷システムを中心に述べたが、どの問題点も機密情報を何らかの媒体に読み出すあるいは媒体を介して出力する場合の情報漏えい抑止において共通の課題であり、かかる課題はネットワーク印刷システムに限らず情報漏えい抑止において共通に要請されるものである。
【００１３】
本発明は、上記の問題点および課題を鑑み、ユーザによってジョブの操作が可能なシステム下で、特別なアプリケーションや特別な機能を有するデバイスなどを必要とせず、出力された内容を蓄積し追跡可能とする情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラムを提供する。
【００１４】
すなわち、情報漏洩抑止を行なう場合も負荷を分散させることが可能な形態、また特別な情報処理機器を必要としない形態など自由に運用形態を決めることを可能とする。
【００１５】
更には、ユーザによってジョブの操作が可能なシステム下であっても、情報追跡の観点から必ず蓄積されるべき読み出しあるいは出力された内容情報の変更あるいは欠落を防ぐことを可能とする。
【００１６】
本発明をネットワーク印刷システムに適用することによって、ユーザによってジョブの操作が可能なシステム下で、特別な印刷アプリケーションや特別なプリンタなどのネットワークデバイスなどを必要とせず、また印刷経路に対する制約を設けること無しに、印刷された内容を蓄積し追跡可能とするネットワーク印刷システムを実現することを目的とする。
【００１７】
更には、印刷時の負荷を分散させることが可能な形態、またはプリントサーバなど他の情報処理機器を必要としない形態など自由に運用形態を決めることが可能な前記目的のネットワーク印刷システムを実現することを目的とする。
【００１８】
更には、ユーザによって印刷ジョブの操作が可能な印刷システム下であっても情報追跡の観点から必ず蓄積されるべき印刷内容情報の変更あるいは欠落を防ぐことが可能な前記目的のネットワーク印刷システムを実現することを目的とする。
【課題を解決するための手段】
【００１９】
この課題を解決するために、本発明の情報処理装置は、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置であって、アプリケーションから出力される描画命令を格納する格納手段と、入力手段から入力された編集指示に従って、前記格納手段内の描画命令を編集する編集手段と、前記格納手段から読み出される描画命令を用いて、前記編集手段による編集を含む追跡用データの生成処理を実行する追跡用データ生成手段と、前記格納手段から読み出される描画命令を用いて、前記編集手段による編集を含む印刷データの生成処理を実行する印刷データ生成手段とを有することを特徴とする。
【００２０】
ここで、前記描画命令の編集指示は、複数の描画命令の結合指示、複数の描画命令への分離指示、描画命令の削除指示を含む。また、前記追跡用データ生成手段は、編集指示が複数の描画命令の結合指示の場合に、複数の描画命令同士の結合関係がわかるよう階層化されたデータ構造によって前記追跡用データを生成する。また、前記入力手段は、前記印刷データ生成手段が生成した印刷データのプレビュー指示が入力可能であり、前記印刷データ生成手段が生成した印刷データのプレビュー画面を出力する出力手段を更に有する。また、前記追跡用データ生成手段による追跡用データの生成処理と、前記印刷データ生成手段による印刷データの生成処理とが連続して実行されるべく制御する制御手段を更に有する。また、前記入力手段は、プリンタドライバのユーザインタフェースを用いて指示を入力する。
【００２１】
又、本発明の情報漏洩抑止方法は、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置における情報漏洩抑止方法であって、アプリケーションから出力され格納手段に格納された描画命令を、入力手段から入力された編集指示に従って編集する編集工程と、前記格納手段から読み出される描画命令を用いて、前記編集工程での編集を含む追跡用データの生成処理を実行する追跡用データ生成工程と、前記格納手段から読み出される描画命令を用いて、前記編集工程での編集を含む印刷データの生成処理を実行する印刷データ生成工程とを有することを特徴とする。
【００２２】
ここで、前記描画命令の編集指示は、複数の描画命令の結合指示、複数の描画命令への分離指示、描画命令の削除指示を含む。また、前記追跡用データ生成工程では、編集指示が複数の描画命令の結合指示の場合に、複数の描画命令同士の結合関係がわかるよう階層化されたデータ構造によって前記追跡用データを生成する。また、前記入力手段は、前記印刷データ生成手段が生成した印刷データのプレビュー指示が入力可能であり、前記印刷データ生成工程で生成した印刷データのプレビュー画面を出力する出力工程を更に有する。また、前記追跡用データの生成処理と印刷データの生成処理とは、連続して前記格納手段から描画命令を読み出し出力することで、連続して実行される。また、前記入力手段は、プリンタドライバのユーザインタフェースを用いて指示を入力する。
【００２３】
更に、上記情報漏洩抑止方法を実現するドライバプログラム、及び該ドライバプログラムをコンピュータ読み取り可能に記憶する記憶媒体を提供する。
【発明の効果】
【００２４】
本発明によれば、ユーザによってジョブの操作が可能なシステム下で、特別なアプリケーションや特別な機能を有するデバイスなどを必要とせず、また読み出しあるいは出力経路に対する制約を設けること無しに、読み出しあるいは出力された内容を蓄積し追跡可能とする情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラムを提供できる。
【００２５】
すなわち、情報漏洩抑止を行なう場合も負荷を分散させることが可能な形態、また特別な情報処理機器を必要としない形態など自由に運用形態を決めることを可能とする。
【００２６】
更には、ユーザによってジョブの操作が可能なシステム下であっても、情報追跡の観点から必ず蓄積されるべき読み出しあるいは出力された内容情報の変更あるいは欠落を防ぐことを可能とする。
【００２７】
本発明をネットワーク印刷システムに適用することによって、ユーザによってジョブの操作が可能なシステム下で、特別な印刷アプリケーションや特別なプリンタなどのネットワークデバイスなどを必要とせず、また印刷経路に対する制約を設けること無しに、印刷された内容を蓄積し追跡可能とするネットワーク印刷システムを実現できる。
【００２８】
更には、印刷時の負荷を分散させることが可能な形態、またはプリントサーバなど他の情報処理機器を必要としない形態など自由に運用形態を決めることが可能な前記目的のネットワーク印刷システムを実現できる。
【００２９】
更には、ユーザによって印刷ジョブの操作が可能な印刷システム下であっても情報追跡の観点から必ず蓄積されるべき印刷内容情報の変更あるいは欠落を防ぐことが可能な前記目的のネットワーク印刷システムを実現できる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して本発明の実施形態を詳細に説明する。尚、本実施形態はネットワーク印刷システムへの本発明の適用例を示すが、先に記載の如く、本発明は、機密情報を何らかの媒体に読み出すあるいは媒体を介して出力する場合の情報漏えい抑止において共通の課題を解決するものであり、ネットワーク印刷システムに限定されない。
【００３１】
[第１の実施形態]
＜本発明が適用されるネットワーク印刷システムの構成例＞
図１は本発明の実施形態に係る印刷システムの構成例を示すブロック図である。
【００３２】
本印刷システムは、ネットワーク５０００につながったホストコンピュータ３０００（本発明の情報処理装置）、プリンタ１５００、追跡情報格納サーバ１０００、及び管理用クライアント４０００から構成される。尚、ネットワーク５０００は、有線のＬＡＮや公衆回線であても、無線の移動体通信であってもよい。
【００３３】
本発明の情報処理装置であるホストコンピュータ３０００は、ユーザから印刷要求を受け付け、印刷要求の内容に従った印刷データを生成しプリンタ１５００へ送信する。更に、ホストコンピュータ３０００はこの印刷要求に合致した追跡用データの抽出・生成を行い、追跡情報格納サーバ１０００へ送信する。プリンタ１５００は、受け取った印刷データに従い印刷処理を実行する。追跡情報蓄積サーバ１０００は、ホストコンピュータ３０００から受け取る追跡用データを自身または他の情報機器内に構築された記憶領域にデータベースとして登録し保管する。管理者用クライアント４０００は、システム管理者が必要に応じて前記データベース内に登録された追跡用データを検索、閲覧するために使用する。
【００３４】
尚、管理者用クライアント４０００は追跡情報蓄積サーバ１０００と同一の情報機器であっても良い。
【００３５】
＜本実施形態のネットワーク印刷システムのハードウエア構成例＞
図２Ａは、本実施形態のネットワーク印刷システムを構成するホストコンピュータ３０００及びプリンタ１５００のハードウエア構成例を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ,ＷＡＮ等のネットワークを介して接続され、処理が行われるシステムであっても、本発明を適用できる。
【００３６】
（ホストコンピュータ３０００）
図２Ａにおいて、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて、以降で後述される本発明の各実施形態に係わる処理を含む、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理およびそれに基づく印刷処理の実行を制御するＣＰＵ１を備えている。このＣＰＵ１がシステムバス４に接続される各デバイスの制御を総括する。また、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶されている。また、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等が記憶されている。さらに、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データが記憶されている。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００３７】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０による表示を制御する。７はディスクコントローラ（ＤＫＣ）を示し、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピー(登録商標)ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェース（インタフェース）２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。通信コントローラ（通信Ｃ）１０１は、通信部１０２によりネットワーク５０００を介して他の装置と通信する。プリンタ１５００は、かかる通信コントローラ（通信Ｃ）１０１によりネットワーク５０００を介して制御されてもよい。
【００３８】
なお、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、予め登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
【００３９】
（ホストコンピュータ３０００の記憶構造例）
図２Ｂは、ホストコンピュータ３０００におけるＲＡＭ２、ＲＯＭ３、外部メモリ１１を含む記憶構造の一例を示す図である。図２Ｂでは、上部から下部に向かって連続したアドレス空間を形成するようなイメージで図示した。尚、図２Ｂには後述の拡張システム例である図４の例が図示されている。又、本実施形態に特徴部分に関連のある情報を図示し、特徴部分でない情報は図示していない。
【００４０】
ＯＳやＢＩＯＳなどのシステムプログラム３ａ及び固定のデータ／パラメータ３ｂがＲＯＭ３に記憶されている。この固定のデータ／パラメータ３ｂにフォントなども含まれる。
【００４１】
続くＲＡＭ２は、一時記憶のデータ領域とプログラムロード領域と含む。
【００４２】
データ領域には、本実施形態で使用するＰＤＬなどで記述された画像記述データ領域２ａ、グラフィックエンジン２０２で解析作成されスプーラ３０２によりスプールファイル３０３にスプールされる中間コードデータ領域２ｂ、デスプーラ３０５を介してグラフィックエンジン２０２により中間コードから変換されたビットマップデータ領域２ｃ、後述の図５のユーザインタフェースからジョブ追跡機能ＵＩ制御部４０１により設定されるジョブ追跡のための保存データの設定内容であるジョブ追跡設定情報領域２ｄ、ジョブ追跡設定情報に従ってジョブ追跡機能処理部４０２で作成されジョブ追跡管理部５００に渡され追跡情報格納サーバ１０００に保持されるジョブ追跡作成データ領域２ｅ、追跡情報格納サーバ１０００に保持された情報に基づいてジョブ追跡管理部５００により情報漏えい抑止のための管理結果であるジョブ追跡結果データ領域２ｆ、スプーラ３０２の処理で使用されるジョブ開始／終了や改ページなどを表わすスプーラ用フラグ領域２ｇ、スプールファイルマネージャ３０４の処理で使用されるスプーラ３０２やデスプーラ３０５からの通知などを表わすスプールファイルマネージャ用フラグ領域２ｈ、デスプーラ３０５の処理で使用されるスプールファイルマネージャ３０４からの通知や終了フラグなどを表わすデスプーラ用フラグ領域２ｉ、プリンタドライバ２０３のＵＩ制御部２０３ＢのためのＵＩ情報領域２ｊ、複数のジョブ同士の結合あるいは分割、削除といったジョブ編集結果を記憶するジブ編集リスト２ｋ、及び他のデータ／パラメータ領域が記憶される。
【００４３】
プログラムロード領域２ｍには、外部メモリ１１からアプリケーションやプリンタエンジン、ジョブ追跡管理のプログラムがロードされ、ＣＰＵ１により実行されて、図３及び図４の各ブロックの処理が実現する。
【００４４】
続く外部メモリ１１は、データベースやファイル保存用のデータ領域と本実施形態のアプリケーションやプリンタエンジン、ジョブ追跡管理のプログラムを記憶するプログラム領域とを含む。
【００４５】
データ領域には、スプーラ３０２によりスプールされる中間データを保持するスプールファイル領域１１ａを有する。
【００４６】
プログラム領域には、アプリケーション２０１を記憶するアプリケーション領域１１ｂ、グラフィックエンジン２０２を記憶するグラフィックエンジン領域１１ｃ、プリンタドライバ２０３を記憶するプリンタドライバ領域１１ｄ、システムスプーラ２０４を記憶するシステムスプーラ領域１１ｅ、ジョブ追跡管理部５００を実現するプログラムを記憶するジョブ追跡管理領域１１ｆを含む。
【００４７】
本実施形態の主要部であるプリンタドライバ領域１１ｄ内には、グラフィック制御部２０３Ａを実現するグラフィック制御モジュール１１ｄ１、ＵＩ制御部２０３Ｂを実現するＵＩ制御モジュール１１ｄ２、スプーラ３０２を実現するスプーラモジュール１１ｄ３、スプールファイルマネージャ３０４を実現するスプールファイルマネージャモジュール１１ｄ４、ジョブ編集・プレビューインタフェース３０６を実現するジョブ編集・プレビューインタフェースモジュール１１５ｄ、デスプーラ３０５を実現するデスプーラモジュール１１ｄ６、ジョブ追跡機能ＵＩ制御部４０１を実現するジョブ追跡機能ＵＩ制御モジュール１１ｄ７、ジョブ追跡機能処理部４０２を実現するジョブ追跡機能処理モジュール１１ｄ８が含まれる。
【００４８】
更に、本実施形態の特徴部分でない他のデータ／プログラム領域１１ｇを有している。
【００４９】
（プリンタ１５００）
図２Ａにおいて、プリンタ１５００は、そのＣＰＵ１２によって制御される。プリンタＣＰＵ１２は、ＲＯＭ１３に記憶された制御プログラム等、あるいは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に印刷出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等が記憶される。また、ＲＯＭ１３のフォント用ＲＯＭには上記印刷出力情報を生成する際に使用するフォントデータ等が記憶される。また、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４がないプリンタの場合には、コンピュータ上で利用される情報等が記憶されている。
【００５０】
ＣＰＵ１２は入力部１８を介してコンピュータとの通信処理が可能となっている。これにより、プリンタ内の情報等をコンピュータ３０００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するＲＡＭである。また、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００５１】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等である。通信コントローラ（通信Ｃ）１０３は、通信部１０４によりネットワーク５０００を介して他の装置と通信する。プリンタ１５００は、かかる通信コントローラ（通信Ｃ）１０３によりネットワーク５０００を介してホストコンピュータ３０００から制御されてもよい。
【００５２】
また、プリンタ１５００は図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００５３】
印刷部１７は本実施形態では電子写真方式のエンジンとしている。従って、印刷データはトナーのドットによって最終的に紙などの媒体上に記録される。なお、本発明における印刷の方式はこのような電子写真方式に限られないことはもちろんである。例えば、インクジェット方式など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
【００５４】
＜ホストコンピュータにおける処理の機能ブロック例＞
ホストコンピュータ３０００における印刷処理機能および情報追跡機能の構成例について、図３および図４を用いて説明する。
【００５５】
（機能ブロックの基本構成例）
図３は、図１に示したコンピュータ３０００における印刷処理および情報追跡のための基本構成例を示すブロック図である。
【００５６】
アプリケーション２０１、オペレーションシステム（以下ＯＳ）の描画部であるグラフィックエンジン２０２（例えば、米国マイクロソフト社のWindows(登録商標) OSの場合は、GDIモジュール:Graphic Device Interfaceに相当する）、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。これらのファイルは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされて実行されるプログラムモジュールである。
【００５７】
また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部メモリ１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００５８】
グラフィックエンジン２０２は、プリンタなどの印刷装置ごとに用意されたプリンタドライバ２０３を外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。また、グラフィックエンジン２０２は、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数をＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へ出力する。
【００５９】
プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、インタフェース２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００６０】
また、本実施形態の印刷システムは、プリンタドライバ２０３内にジョブ追跡機能部４００を有する。ジョブ追跡機能部４００はプリンタドライバ２０３のビルドインモジュールであってもよいし、個別のインストーレーションによって追加されるライブラリモジュールの形式であっても構わない。また、プリンタドライバ２０３は、ジョブ追跡機能部４００の実行により、追跡用データの抽出・生成を行い、ジョブ追跡管理部５００へ送る。
【００６１】
ジョブ追跡管理部５００は追跡用データを受け取り、これを追跡情報格納サーバ１０００へ転送する。尚、ジョブ追跡管理部５００は受け取った追跡用データを必要に応じて加工したり、選別したりしてもよく、また更に、追跡用データを受け取ると同時に追跡情報格納サーバ１０００へ送信したり、一時的にハードディスク等の記憶領域内に貯め置きし、別途指定される追跡情報蓄積部１０００への送信スケジュールに従い追跡情報格納サーバ１０００へ送信したりしても良い。
【００６２】
（機能ブロックの拡張構成例）
図４は、図３のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、スプールシステム３００によって一旦中間コードからなるスプールファイル３０３を生成する構成をとる。尚、図４では、以下の動作を明瞭にするため、印刷データの転送が二重線で示され、制御情報の接続が一重線で示されている。
【００６３】
図３のシステムでは、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図４のシステムでは、スプーラ３０２がすべての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図４で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
【００６４】
これらの目的のために、図３のシステムに対し、図４のように中間コードデータでスプールするようシステムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するＵＩ制御部２０３Ｂから設定を行い、その設定内容をＲＡＭ２上あるいは外部メモリ１１上に保管する。
【００６５】
以下、図４の詳細を説明する。尚、図４のプロセスＭはジョブ追跡機能のデスプーラ処理、プロセスＰはプリント処理のデスプーラ処理を示している。
【００６６】
図４に示す通りこの拡張された処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、スプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００６７】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。また、スプーラ３０２は、ＵＩ制御部２０３Ｂに対して設定されている印刷データに関する加工設定（Ｎｕｐ、両面、ステープル、カラー／モノクロ指定等）を取得して、ジョブ単位のファイルとしてスプールファイル３０３に保存する。なお、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更に、スプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。
【００６８】
その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるかを判断する。スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００６９】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードのページ描画ファイルを、スプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工する。具体的には、中間コードのページ描画命令を読み込み、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００７０】
まず、デスプーラ３０５は、出力したＧＤＩ関数による描画結果をジョブ追跡機能処理部に対して送信するために、ビットマップ展開するための領域（デバイスコンテキスト）をＲＡＭ２に確保し、描画を行う。生成された追跡情報はジョブ追跡機能処理部４０２によってジョブ追跡管理部５００が読み取り可能な形式に変換され、転送される。変換形式は例えばＸＭＬ形式などの互換性の高い形式であっても構わないし、独自の規約に従った形式であっても構わない。
【００７１】
次に、デスプーラ３０５は、ディスパッチャ３０１に対して、グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００７２】
ディスパッチャ３０１は、グラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、描画処理部２０３Ｃに印刷命令を送る。
【００７３】
描画処理部２０３Ｃはグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語（ＰＤＬ）等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００７４】
プリンタドライバ２０３は、上述した各モジュール構成に加え、本発明の特徴的構成であるジョブ追跡機能部４００として、ジョブ追跡機能ＵＩ制御部４０１とジョブ追跡機能処理部４０２を備えている。
【００７５】
＜ジョブ編集機能及びプレビュー機能を備えたスプールシステム例＞
図４で示すスプールシステム３００は、デスプーラ３０５によってスプールファイル３０３の内容をプリンタの制御コマンドに変換する前に加工設定の変更を行ったりあるいはジョブ同士の結合を行ったり（ジョブ編集機能）や、ディスプレイへ表示して印刷体裁を確認する（プレビュー機能）、といったことが可能なインタフェースをユーザに公開することによってさらに拡張を行うことも可能である。
【００７６】
図５は、ジョブ編集機能およびプレビュー機能を備えた拡張されたスプールシステムの一例を示す図である。
【００７７】
ジョブ編集・プレビューインタフェース３０６は、ユーザインタフェースを備えた前記スプールファイルマネージャ３０４へのインタフェースで、ＣＲＴ８に表示されキーボード９や図示しないマウスなどを通じて操作することが可能である。ジョブ編集・プレビューインタフェース３０６を通じて、ユーザはスプールファイルマネージャ３０４にジョブのプレビュー、印刷、加工設定の変更、複数のジョブ同士の結合あるいは分割、削除といった様々な指示を出すことが可能である。
【００７８】
図６Ａ、図６Ｂ、図６Ｃは、ジョブ編集・プレビューインタフェース３０６の一例を示す図である。これらと図５を用いてジョブの結合について説明する。
【００７９】
まず、印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取ると、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、スプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。
【００８０】
スプールシステム３００は、アプリケーション２０１の印刷プロセス毎にロード／アンロードされるものではなく、常に起動しておくことが可能であり、したがって、スプールシステム３００は１つのアプリケーションから複数個の印刷ジョブを受け取ったり、さらには複数のアプリケーションから複数個の印刷ジョブを受け取って内部にスプールさせておくことが可能である。
【００８１】
例として、ここでは３つの異なるアプリケーションから各々１ジョブずつ印刷され、スプールシステムの前記ステップによってスプールされたスプールファイルをそれぞれスプールファイル３０２Ａ、３０２Ｂ、３０２Ｃとする。
【００８２】
スプールファイルマネージャ３０４は、スプールファイルの生成開始をスプーラ３０２からの通知によって知ると、プリンタドライバ２０３が提供するUI制御部２０３Bの設定を読み込み、ジョブ編集・プレビュー機能が有効に設定されていれば、ジョブ編集・プレビューインタフェース３０６をロードしてＣＲＴ８上にユーザインタフェースとして表示する。さらに、スプールファイルマネージャ３０４はスプールファイル生成の進捗をページ単位で監視し、進捗状況をジョブ編集・プレビューインタフェース３０６に表示する。スプールファイル３０２Ａ、３０２Ｂ、３０２Ｃは、印刷された順番にジョブ編集・プレビューインタフェース３０６上でスプールジョブとして表現される。通常、スプールシステム３００内にスプールされるスプールジョブの順番は、スプールシステム３００に投入された順番と同じになっているが、この順番はスプールファイルマネージャ３０４によってＲＡＭ２内にリスト情報として記録することによって管理されている。
【００８３】
図６Ａに示す図は、スプールファイル３０２Ａ、３０２Ｂ、３０２Ｃのスプールが順に完了し、各々が互いに独立したスプールジョブ６０１、６０２、６０３としてユーザインタフェース上のリストビュー６０４に表示されている状態を表している。
【００８４】
ユーザインタフェースのリスト６０１にはドキュメント名、ページ数、レイアウト情報などの項目が表示され、各々を別のジョブとして認識できるようになっている。ここでスプールジョブのひとつ、スプールジョブ６０１をキーボード９や図示しないマウスなどを通じて選択操作し、印刷プレビュー指示をジョブ編集・プレビューインタフェース３０６を通じてスプールファイルマネージャ３０４に与えると、スプールファイルマネージャ３０４はスプールジョブ６０１に相当するスプールファイル３０３Ａの中間コードを読み込み、それによってプレビュー画像を生成する。
【００８５】
生成されたプレビュー画像はスプールファイルマネージャ３０４を通じて再びジョブ編集・プレビューインタフェース３０６に転送され、ここでジョブ編集・プレビューインタフェース３０６は、図６Ｂに示すプレビューウィンドウ６０５をロードしてＣＲＴ８上に表示する。プレビューウィンドウ６０５上では、実際にプリンタ１５００から印刷されるのと同様の体裁を所望の拡大率で各ページ毎に確認することが可能である。図６Ｂの例では、論文作成ソフトによって生成された印刷ジョブが２ｕｐの体裁で表示されている。
【００８６】
次に、ジョブ同士の結合について説明する。
【００８７】
スプールジョブ６０１、６０２、６０３を、キーボード９や図示しないマウスなどを通じて選択操作し、ジョブ結合の指示を与えると、スプールファイルマネージャ３０４は自身がＲＡＭ２上で管理しているスプールジョブのリスト情報を、スプールジョブ６０１、６０２、６０３が独立した状態からそれら３つが結合した状態に変更する。また、これに伴ってジョブ編集・プレビューインタフェース３０６上のリストビュー６０４の内容を変更し、３つが結合されて１つとなった結合スプールジョブ６０６を表示させる。
【００８８】
図６Ｃは、結合スプールジョブ６０６が編集操作によって生成されたジョブ編集・プレビューインタフェース３０６の状態を表す。
【００８９】
最後に、スプールジョブのジョブ追跡と印刷について説明する。ここでは、図６Ｃに示す結合スプールジョブ６０６の印刷を考える。まず、これまでと同様の方法により、ジョブ編集・プレビューインタフェースを通じてスプールファイルマネージャ３０４にスプールジョブ印刷の指示を与えると、スプールファイルマネージャ３０４はＲＡＭ２上で管理されたリスト情報を参照し、スプールジョブ６０１、６０２、６０３が１つに結合されていることを判断する。次に、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３Ａ、３０３Ｂ、３０３Ｃに記述された中間コードのページ描画ファイルの印刷処理を１つの印刷プロセスで処理するように指示する。
【００９０】
デスプーラ３０５は、スプールファイル３０３Ａ、３０３Ｂ、３０３Ｃに記述された中間コードのページ描画命令を次々と途切れることなく読み込み、まず読み込んだページ描画命令による描画結果をジョブ追跡機能処理部に対して送信するために、ビットマップ展開するための領域（デバイスコンテキスト）をＲＡＭ２に確保し、描画を行う。生成された追跡情報はジョブ追跡機能処理部４０２によってジョブ追跡管理部５００が読み取り可能な形式に変換され、転送される。変換形式はＸＭＬ形式などであっても構わないし、独自の規約に従った形式であっても構わない。次に、デスプーラ３０５は、ディスパッチャ３０１に対して、グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００９１】
ディスパッチャ３０１は、グラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、描画処理部２０３Ｃに印刷命令を送る。描画処理部２０３Ｃはグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。このようにしてスプールシステムによって再生成される印刷ジョブはシステムスプーラ２０４やプリンタ１５００には単一のジョブとして認識される。
【００９２】
以上、ホストコンピュータ３０００における印刷処理装置および情報追跡装置の構成について説明した。
＜ジョブ追跡機能ＵＩ例の説明＞
図７Ａ及び図７Ｂは、ジョブ追跡に関する設定をおこなうユーザインタフェース（以下、ＵＩと呼ぶ）の一例を示す図である。
【００９３】
図７Ａは、ジョブ追跡機能部４００内のジョブ追跡機能ＵＩ制御部４０１により表示されるユーザインタフェースの初期画面の一例である。本実施例では、プリンタドライバＵＩのダイアログ内のプロパティシート「ジョブ追跡機能」において設定が行えるようになっている。
【００９４】
尚、この図７Ａ及び図７Ｂで示すジョブ追跡に関する設定画面をプリンタドライバ２０３とは別の専用ツール上に表示し、設定情報をプリンタドライバ２０３内のアドインＵＩ制御部４０１に伝えることで実現しても構わない。更に、このダイアログ５１０は本システムの運用目的からして、該当プリンタに対して設定変更を行うことが許可されたユーザのみに表示するのが望ましく、本ダイアログを開くためにパスワード等による認証を設けたり、実行ユーザ権限を限定したりすることが考えられる。
【００９５】
図７Ａの「ジョブ追跡を行う」チェックボックス５１１は、ジョブ追跡機能の有効、無効を指示するチェックボックスである。ユーザはこのチェックボックスを操作することで本機能のＯＮ、ＯＦＦの制御が可能になる。
【００９６】
図７Ｂのジョブ追跡機能の詳細設定を行うダイアログ５２０は、図７Ａの設定ボタン５１２を選択することで開く。このジョブ追跡設定ダイアログでは主に追跡用データの送信先の情報及びジョブ追跡機能処理部４０２で生成する追跡用データの内容を決定することになる。
【００９７】
管理クライアント名５２１にはジョブ追跡管理部５００が動作しているコンピュータ識別名称を入力し、識別名称５２２にはジョブ追跡管理部５００内の他の接続と区別するためのキーを入力し、タイムアウト値５２３にはジョブ追跡管理部５００との通信において使用するタイムアウト時間をあらかじめ設定しておく。以上の３つが追跡データを送信するための情報である。
【００９８】
尚、本ユーザインタフェースを表示しているコンピュータでジョブ追跡管理部５００が動作しているのであれば、管理クライアント名５２１には自身のコンピュータ識別名称を設定し、他のコンピュータでジョブ追跡管理部５００が動作しているのであれば、そのジョブ追跡管理部５００が動作しているコンピュータ識別名称を入力することになる。
【００９９】
「テキスト抽出をする」チェックボックス５２４は、追跡用データにテキスト文字列情報を含めるかどうかを指示するチェックボックスである。このチェックボックスをＯＮにすることで、プリンタドライバ２０３はテキスト文字列情報を追跡用データとして抽出する。テキスト文字列情報を追跡データに付加しておくことで追跡情報蓄積サーバ１０００に格納された後のテキスト検索を容易に実現することが可能となる。
【０１００】
「イメージを抽出する」チェックボックス５２５は、追跡用データにページビットマップ情報を含めるかどうかを指示するチェックボックスである。このチェックボックスをＯＮにすることで、プリンタドライバ２０３はグラフィックエンジン２０２を用いて印刷データとは別にページビットマップを生成する。ページビットマップを追跡用データ付加しておくことで追跡情報蓄積サーバ１０００に格納された後の画像閲覧が可能となる。
【０１０１】
更に、ビット数カラー５２６は、印刷するページがカラーページとして印刷される場合に、そのページの追跡用ビットマップをカラービットマップデータとして保持する場合に、１画素あたりのビット数を設定するための項目である。図７Ｂの例では、１画素はＲＧＢの２４ビット（各２５６階調で１６７７万色）として作成されることを示している。
【０１０２】
ビット数白黒５２７は、印刷するページがモノクロページとして印刷される場合に、そのページの追跡用ビットマップをモノクロビットマップデータとして保持する場合に、１画素あたりのビット数を設定するための項目である。図７Ｂの例では、１画素は８ビット（２５６階調）として作成されることを示している。
【０１０３】
解像度５２８は、追跡用ビットマップの解像度を設定するための項目である。図５Ｂの例では、９６ＤＰＩとして作成されることを示している。圧縮方法５２９は、追跡用ビットマップを圧縮方法を選択するための項目であり、図５Ｂの例では、ランレングス圧縮方法を使用することを示している。
【０１０４】
エンコード方法５３０は、ホストコンピュータ３００から追跡用データ（テキストやビットマップを圧縮したもの）を追跡情報格納サーバ１０００に送信するためのエンコード方式を設定するための項目であり、図７Ｂの例では、「Base64」を用いることを示している。
【０１０５】
このような設定項目を有するユーザインタフェースを用いて、生成する追跡用データのページイメージの属性や形式を詳細に指定できるようになっている。
【０１０６】
尚、上記ジョブ追跡機能ＵＩは一例であって、これに限定されない。ここで設定された情報は図２Ｂのジョブ追跡設定情報領域２ｄに記憶されて、ジョブ追跡機能部４００での追跡用データの作成に参照される
＜本実施形態のジョブ追跡処理の動作例＞
以下、上記本実施形態のネットワーク印刷システムにおけるジョブ追跡処理の動作例を説明する。
【０１０７】
（ジョブ追跡・印刷処理の前処理例）
図６で説明したジョブのスプール、ジョブ結合および印刷開始処理について、図８を用いて説明する。
【０１０８】
図８は、ジョブ追跡・印刷処理を開始するまでの処理の流れを表したフローチャートである。
【０１０９】
印刷ジョブが開始された後、ステップＳ８０１でプリンタドライバ２０３内のスプールシステム３００はグラフィックエンジンからの描画命令をディスパッチャ３０１によってスプーラ３０２へ送信し、スプールファイルとして蓄積する。ここではジョブ編集処理のうちのジョブ結合処理が目的であるので異なる３つのアプリケーションから独立した印刷ジョブが１つずつ投入され、それぞれスプールファイル３０３Ａ、３０３Ｂ、３０３Ｃとして蓄積されていくものとする。
【０１１０】
ステップＳ８０２ではスプールファイルマネージャが１つ以上のジョブの投入を検知すると、編集・プレビューインタフェース３０６をロードし、各スプールファイルのスプール進捗を表示する。スプールが終了すると編集・プレビューインタフェース３０６はユーザからの入力スタンバイ状態に移行する。
【０１１１】
ステップＳ８０３でスプールされた３つのスプールジョブ６０１、６０２、６０３に対する結合指示が編集・プレビューインタフェース３０６を通じて与えられると、スプールファイルマネージャ３０４はＲＡＭ２上の記憶領域で管理されているリスト情報に対し、スプールジョブ６０１、６０２、６０３が合わせてひとつのジョブとして結合されるよう内容を変更する。このとき、対応する各スプールファイル３０３Ａ、３０３Ｂ、３０３Ｃ内に保存されているジョブのドキュメント名や印刷アプリケーション名といった情報は個々に保存されており、したがって結合の指示によって直ちに失われるものではない。
【０１１２】
その後ステップＳ８０５で印刷指示が編集・プレビューインタフェース３０６を通じて与えられると、スプールファイルマネージャ３０４はデスプーラ３０５に指示を与え、「印刷・ジョブ追跡処理」を開始させる。
【０１１３】
（ジョブ追跡・印刷処理例）
図８で説明した処理の続きとして、ジョブ追跡・印刷処理の詳細について、図９を用いて説明する。
【０１１４】
図９は、ジョブ追跡・印刷の詳細な処理の流れを表したフローチャートである。
【０１１５】
ステップＳ８１０では、編集・プレビューインタフェース３０６からの印刷開始指示を受け、スプールファイルマネージャ３０４がまずジョブ追跡の処理を開始する。ステップＳ８１１でスプールファイルマネージャ３０４は印刷を指示されたジョブが結合ジョブであるかどうかを判断する。
【０１１６】
より具体的には、ＲＡＭ２上の記憶領域で管理されているリスト情報を参照し、印刷指定されたジョブが結合されているか、結合されているのであればどのジョブとどのジョブが結合されているのかという情報を取得する。このとき結合ジョブでなければＳ８１２に進み、結合ジョブであればＳ８１３に進む。ステップＳ８１２では、デスプーラ３０５がジョブレベル追跡情報の収集・生成・転送を行う。具体的にはスプールファイルからそのジョブのドキュメント名や印刷アプリケーション名といったジョブ全体に関係するようなジョブレベルの追跡用情報を記述された中間コードから読み込み、ジョブレベル追跡情報をジョブ追跡機能処理部４０２によってジョブ追跡管理部５００が読み取り可能な形式に変換され、転送される。変換形式はＸＭＬ形式などであっても構わないし、独自の規約に従った形式であっても構わない。
【０１１７】
図１０に、ジョブに対するジョブレベル追跡用情報の一形式を示す。ここではジョブレベル追跡用情報として印刷ジョブのジョブ名と印刷されたアプリケーションの名称が抽出され、記述されている。
【０１１８】
一方、結合ジョブであった場合、ステップＳ８１４ではまずデスプーラ３０５がスプールファイルマネージャ３０４からの情報に基づき、結合ジョブに含まれている各ジョブそれぞれからジョブレベル追跡用情報を読み込む。これは前述したとおり、結合指示がされたジョブであってもスプールファイル内では個々のジョブのジョブレベル追跡用情報が中間コードとして保存されていることから可能となる。次に取得された結合ジョブ内の個々のジョブのジョブレベル追跡用情報はジョブ追跡機能処理部４０２によってジョブ追跡管理部５００が読み取り可能かつジョブの結合関係が明らかになるように階層化された構造をもつ形式で生成され、転送される。
【０１１９】
図１１に、結合されたジョブに対するジョブレベル追跡用情報の一形式を示す。ここではジョブレベル追跡用情報として同様に印刷ジョブのジョブ名と印刷されたアプリケーションの名称が抽出されているが、結合ジョブ全体に対するジョブ名として「結合ドキュメント１」が指定され、ＸＭＬにおける子のノード位置にさらに結合ジョブの各要素である個々のジョブのジョブ名が例として「論文１」、「グラフ１」「表計算１」のように記述されている。印刷アプリケーション名も同様の構成である。このように階層化してジョブレベル追跡用情報を記述しておけば複数のジョブが結合されて１つのジョブとなっていることと、さらに個々のジョブの情報まで知ることができる。
【０１２０】
次にＳ８１５では、中間データとして記述された描画命令を物理ページ毎に読み込む。次にステップＳ８１６ではページレベル追跡用情報を収集・生成・転送する（プロセスＭに相当）。より具体的には、用紙サイズなどページに関する属性情報等や、ジョブ追跡機能部に対してテキスト情報の抽出が指示されているのであれば、テキスト描画コマンドから文字列情報など抽出し追跡用データとし、同じくイメージ抽出が指示されているのであれば、各描画命令を確保してあるメモリ領域等にビットマップイメージとして描く等々、受信した描画命令及びジョブ追跡機能部４００に指示された各種設定に依存した処理を実行することで、追跡用データの収集・生成を行い、これをジョブ追跡管理部５００へと転送する。続くステップＳ８１７では１物理ページ分のジョブ追跡情報生成、転送処理が終了したかを判定し、終了していなければステップＳ８１５に戻る。
【０１２１】
一方、ステップＳ８１７で１物理ページ分の描画処理が終了していればステップＳ８１８へ進み、スプールファイルから描画命令を読み込む。そして続くステップＳ８１９において、デスプーラ３０５がスプールファイルマネージャ３０４の指示により印刷データ用の生成を行い、グラフィックエンジン２０２、ディスパッチャ３０１、描画処理部２０３Ｃを経由してシステムスプーラ２０４へ書きだされ、プリンタ１５００への転送が行われる（プロセスＰに相当）。
【０１２２】
ステップＳ８２０では、１物理ページ分の印刷処理が終了したかを判定し、終了していなければステップＳ８１８に戻り、終了していればステップＳ８０９へ進む。そして、ステップＳ８０９において、印刷ジョブが終了していれば処理を終え、終了ししていなければステップＳ８１１へ戻り当該ジョブに対する処理を続行する。
【０１２３】
なお、図９のフローチャートでは、追跡用データの１ページを生成後、印刷データの１ページの生成処理を行っているが、本発明はこの順番に限るものではなく、印刷データの１ページの生成後、追跡用データの１ページの生成処理を行うよう構成してもよい。前者の手順だと、必ず追跡用データの生成が終わったものから印刷することで追跡が保証され、また、後者の手順だと、１ページ目の印刷処理の開始が早くなるという効果が得られる。いずれの場合でも、各ページ内で、追跡用データの生成と印刷データの生成とが交互に生成処理されることが望ましい。
【０１２４】
（スプールシステム３００の処理例）
次に、図９で説明したジョブ追跡印刷処理におけるスプールシステム３００及びジョブ編集・プレビューインタフェース３０６の処理について、図１２から図１６を用いて説明する。
【０１２５】
先に示したとおり、デスプーラ３０５はジョブ追跡機能部４００およびディスパッチャ３０１の２つの出力先にデータを出力する。本実施形態では図１２に示したとおり、デスプーラ３０５に対する２つのプロセスＭとＰを生成し、スプールファイルマネージャ３０４がこれら２つのデスプーラプロセスＭとＰを制御する形式をとっている。ここで、第１のプロセスＭはジョブ追跡機能部に対する出力に利用され、第２のプロセスＰはプリンタ１５００への印刷に利用される。両デスプールプロセスＭとＰの生成は、スプールファイルマネージャ３０４によって行われる。
【０１２６】
以降、図１３から図１６において、スプールファイルシステム３００内の処理及びジョブ編集・プレビューインタフェース３０６の処理について詳細に説明する。尚、各処理間の関連をそれぞれのステップで示したが、本実施形態の特徴としてデスプーラ３０５の２つのプロセスＭとＰは同様なので、図１５に共通のフローチャートを示し、プロセスＭのステップは最後にＭを／プロセスＰのステップは最後にＰを添えて示した。
【０１２７】
（スプーラ３０２の処理例）
図１３は、スプーラ３０２における、スプールファイル３０３の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。
【０１２８】
まずステップＳ８３１では、スプーラ３０２は、アプリケーションからグラフィックエンジン２０２を介して印刷要求を受け付ける。アプリケーションにおいては、プリンタドライバ２０３内のＵＩ制御部２０３Ｂによって各種印刷設定項目が設定可能となる。印刷設定の一例としては、１物理ページに複数の論理ページを配置するといった、スプールシステム３００を利用して実現するような項目等を含んでいる。
【０１２９】
ステップＳ８３２では、スプーラ３０２は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップ８０２でジョブ開始要求であると判断した場合には、ステップＳ８３３に進み、スプーラ３０２は、中間データを一時的に保存するためのスプールファイル３０３を作成する。続いて、ステップＳ８３４では、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、続くステップＳ８３５でスプーラ３０２のページ数カウンタを１に初期化する。ここで、スプールファイルマネージャ３０４においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、記憶する。
【０１３０】
ステップＳ８３２においてジョブ開始要求ではなかったと判断した場合には、ステップＳ８３６に進む。ステップＳ８３６では、スプーラ３０２は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップＳ８３７に進み、改ページかどうかの判別を行う。もしもステップＳ８３７で改ページであると判断した場合には、ステップＳ８３８に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【０１３１】
ステップＳ８３７において、受け付けた印刷要求が改ページではないと判断した場合には、ステップＳ８３９に進み、スプーラ３０２は、ページ描画ファイルへの中間コードの書き出しの準備を行う。次に、ステップＳ８４０では、印字要求をスプールファイル３０３へ格納するため、スプーラ３０２は、印字要求のＤＤＩ関数の中間コードへの変換処理を行う。ステップＳ８４１では、スプーラ３０２は、ステップＳ８４０において格納可能な形に変換された印刷要求（中間コード）をスプールファイル３０３へ書き込む。
【０１３２】
その後、ステップ８３１に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップＳ８３１からステップＳ８４１までの処理を、アプリケーションよりジョブ終了要求を受け取るまで続ける。また、スプーラ３０２は、同時にプリンタドライバ２０３から加工設定等の情報を取得し、スプールファイル３０３に格納する。
【０１３３】
ステップＳ８３６にて、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップＳ８３２に進み、スプールファイルをクローズするとともにスプールファイルマネージャ３０４へ印刷処理の進捗を通知し、処理を終える。
【０１３４】
（スプールファイルマネージャ３０４の処理例）
図１４は、スプールファイルマネージャ３０４における、スプールファイル３０３生成プロセス及びジョブ編集・プレビューインタフェース３０６とのインタフェースと、以降説明するジョブ追跡情報生成プロセスおよび印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。ここで、上記のようにデスプーラ３０５からの通知で、プロセスＭからのものはステップの最後にＭを付けて、プロセスＰからのものはステップの最後にＰを付けて示している。
【０１３５】
ステップＳ９０１では、スプールファイルマネージャ３０４は、スプーラ３０２からの進捗通知、あるいはデスプーラ３０５からの印刷処理またはジョブ追跡生成処理に関する進捗通知を受け付ける。
【０１３６】
ステップＳ９２０では、ジョブ編集・プレビューインタフェース３０６からの画面表示の要求か否かを判定し、画面要求であればステップＳ９２１に進んで、ジョブ編集やプレビューに対応するユーザインタフェース用の画面を転送する。画面要求なければ、ステップＳ９２２でジョブ編集・プレビューインタフェース３０６からのジョブの結合・分離・削除などのジョブ編集指示であるか否かを判定し、ジョブ編集指示であればステップＳ９２３に進んでジョブ編集の処理を行う。かかるジョブ編集についてはスプーラ３０２と協働してスプールファイル３０３に対して行うが、図５乃至図６Ａ，図６Ｃに従い先に説明したので、ここでは詳説はしない。
【０１３７】
ジョブ編集指示でなければ、ステップＳ９２４でジョブ編集・プレビューインタフェース３０６からの印刷指示であるか否かを判定する。印刷指示であれば、ステップＳ９２５に進んで印刷指令を行い、デスプーラ３０５に対してプロセスＰを実行させる。
【０１３８】
上記いずれのジョブ編集・プレビューインタフェース３０６とのインタフェースでなければ、ステップＳ９０２に進む。尚、図１４では一連のステップで示しているが、ジョブ編集・プレビューインタフェース３０６とのインタフェースは、インタラプト処理で行ってもよい。
【０１３９】
ステップＳ９０２では、スプールファイルマネージャ３０４は、もし進捗通知が前述のステップＳ８０４において通知されるスプーラ３０２からの印刷開始通知であるかどうか判定し、もしそうであればステップＳ９０３へ進み、印刷の加工設定をスプールファイル３０３から読み込み、ジョブの管理を開始する。
【０１４０】
一方、ステップＳ９０２において、スプーラ３０２からの印刷開始通知でなければステップＳ９０４へ進み、スプールファイルマネージャ３０４は、進捗通知が前述のステップＳ８０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知、すなわち論理ページの改ページ処理であるかどうか判定する。ここで１論理ページの印刷終了通知であればステップＳ９０５へ進み、この論理ページに対する論理ページ情報を格納し、ステップＳ９０６へ進む。
【０１４１】
ステップＳ９０６では、この時点でスプールが終了したｎ論理ページに対して、１物理ページの描画処理が開始できるかを判定する。ここで、描画処理可能である場合はステップＳ９０７へ進み、印刷する１物理ページに対して割り付けられる論理ページ数から物理ページ番号を決定する。物理ページの計算については、例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは第４論理ページがスプールされた時点で印刷可能となり、第１物理ページとなる。続いて、第２物理ページは第８論理ページがスプールされた時点で印刷可能となる。また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、ステップＳ８１２におけるスプール終了通知によって１物理ページに配置する論理ページが決定可能である。一方、ステップＳ９０６で描画処理が不可能である場合はステップＳ９０１に戻り、次の通知を待つ。
【０１４２】
ステップＳ９０８では、描画処理可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がスプールファイル３０３に格納される。そして、続くステップＳ９０９では、格納された物理ページ情報とともにジョブ追跡用に生成されたデスプーラのプロセスに対して描画要求通知を行う。なお、第一物理ページに対する描画処理要求を行う時点では、デスプーラ３０５のプロセス生成がなされていないので、ジョブ追跡用プロセス、印刷用プロセスをこのステップで生成したあと、要求の通知が行われることとなる。
【０１４３】
その後ステップＳ９０１に戻り、次の通知を待つ。本実施形態においては、印刷データ１ページ、即ち１物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【０１４４】
本実施形態におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数を想定している。また、先述のステップＳ９０８では、１物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、１物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や、全ページのスプール終了後からデスプールが開始されるような場合には、ステップＳ９０９で１物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【０１４５】
ステップＳ９０４で１論理ページの印刷終了通知と判定されなかった場合、ステップＳ９１０へ進む。ステップＳ９１０では、スプールファイルマネージャ３０４は、前述のステップＳ８１２において通知されるスプーラ３０２からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップＳ９０６へ進む。一方、ジョブ終了通知でない場合、ステップＳ９１１へ進む。
【０１４６】
ステップＳ９１１では、スプールファイルマネージャ３０４は、受け付けた通知がデスプーラ３０５における印刷用プロセスからの１物理ページの印刷終了通知であるかどうか判定する。ここで、１物理ページの印刷終了通知である場合はステップＳ９１２へ進む。そうでなければステップＳ９１５へ進む。
【０１４７】
ステップＳ９１２では、デスプーラ３０５における印刷用プロセスから１物理ページの印刷終了通知を受けたので、次に加工設定の印刷が全て終了したかを判定する。印刷終了したと判断された場合、ステップＳ９１３へ進み、デスプーラ３０５におけるジョブ追跡用プロセスに対して追跡情報生成処理に対する終了通知を行う。続いてステップＳ９１４へ進み、デスプーラ３０５における印刷用プロセスに対して印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述のステップＳ９０６へ進む。
【０１４８】
ステップＳ９１１で１物理ページの印刷終了通知でなければ、ステップＳ９１５へ進む。ステップＳ９１５では、スプールファイルマネージャ３０４は、受け付けた通知がデスプーラ３０５におけるジョブ追跡用プロセスからの１物理ページの描画処理終了通知であるかどうかを判定する。ここで、１物理ページの描画処理終了通知である場合は対応する物理ページに対する印刷処理を行ってよいので、ステップＳ９１６へ進み、デスプーラ３０５における印刷用プロセスに対して対応する物理ページの印刷要求を行う。このように、ジョブ追跡に利用する描画処理が完了してから実際の印刷プロセスを実行することにより、ジョブ追跡システムの信頼性を高めることが可能となっている。
【０１４９】
一方、ステップＳ９１５において、１物理ページの描画処理終了通知でない場合は、ステップＳ９１７へ進む。ステップＳ９１７では、スプールファイルマネージャ３０４は、受け付けた通知がデスプーラ３０５からの印刷終了通知かどうかを判定する。ここで、通知がデスプーラ３０５からの印刷終了通知と判定された場合、ステップＳ９１８へ進み、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイルの削除を行い処理を終える。
【０１５０】
一方、デスプーラ３０５からの印刷終了通知でなかった場合はステップＳ９１９へ進み、その他通常処理またはエラー処理などを行い、次の通知を待つ。
【０１５１】
（デスプーラ３０５の処理例）
図１５は、デスプーラ３０５における、描画データの生成プロセスの詳細をフローチャートで示したものである。デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報を読み出して描画データを生成する。生成された描画データにおけるプリンタへの転送方法については図４および図９で説明した通りである。
【０１５２】
また、図１２および図１４で説明したとおり、デスプーラ３０５はジョブ追跡情報出力用および印刷データ出力用の２つの目的で利用されるが、描画方法については出力先が異なることと、追跡用データ（イメージ抽出時）と印刷データとでグラフィックエンジン２０２が生成するデータのサイズ、圧縮方法などが異なっている。しかし、印刷される描画内容と追跡用データで保持されている描画内容は、なんら違いはない。このことにより、追跡データが実際の印刷と同じ処理系で行われることによる追跡データの信頼性向上が実現可能となる。以降、プロセスＭとＰに共通のデスプーラ３０５の処理の流れを説明する。
【０１５３】
まず、ステップＳ１００１において、前述のスプールファイルマネージャ３０４からの通知を入力する。続くステップＳ１００２では、デスプーラ３０５は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップＳ１００３へ進み、終了フラグを立て、ステップＳ１００５へ進む。
【０１５４】
一方、ステップＳ１００２においてジョブ終了通知でない場合は、ステップＳ１００４に進み、前述のステップＳ９０９あるいはステップＳ９１６における１物理ページの描画開始要求が通知されたかどうか判定する。ステップＳ１００４において１物理ページの描画開始要求と判定されなかった場合は、ステップＳ１０１０へ進み、その他エラー処理を行い、ステップＳ１００１へ戻り次の通知を待つ。
【０１５５】
一方、ステップＳ１００４において１物理ページの印刷開始要求と判定された場合はステップＳ１００５へ進み、デスプーラ３０５は、ステップＳ１００５で通知を受けた印刷処理可能な物理ページ情報を例えばＲＡＭ２などに保存しておく。続くステップＳ１００６では、デスプーラ３０５は、ステップＳ１００５で保存された物理ページのすべてに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの印刷処理が済んでいる場合は、ステップＳ１００７へ進み、前述のステップＳ１００３で終了フラグが立てられているのか判定する。終了フラグがたっている場合は、ジョブの印刷が終了したとみなし、デスプーラ３０５の処理終了の通知をスプールファイルマネージャ３０４に通知し、処理を終える。ステップＳ１００７で終了フラグが立っていないと判定された場合は、ステップＳ１００１へ戻り次の通知を待つ。
【０１５６】
一方、ステップＳ１００６で、印刷可能な物理ページが残っていると判定された場合には、ステップＳ１００８へ進み、デスプーラ３０５は、保存された物理ページ情報から未処理の物理ページ情報を順に読み出し、描画データ生成に必要な情報を読み込み、処理を行う。
【０１５７】
図４において説明したとおり、デスプーラ３０５における描画処理は、スプールファイル３０３に格納された描画要求命令をグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、転送する。例えば、複数論理ページを１物理ページにレイアウトするような加工設定については、このステップで縮小配置を考慮にいれながら変換する。また、具体的には、図１５の処理の場合も、図９の処理で説明したように、デスプーラ３０５は、グラフィックエンジン２０２に対して、処理目的により異なる設定情報（CreateDC()：印刷処理時、CreateCompatibleDC()：追跡用データ生成時）をＡＰＩで設定している。
【０１５８】
必要な印刷処理が終えたならば、続くステップＳ１００９において１物理ページの印刷データ生成終了の通知をスプールファイルマネージャ３０４に対して行う。そして、再びステップＳ１００６へ戻り、ステップＳ１００５に保存されている描画処理開始可能な物理ページについての描画処理を順次繰り返す。
【０１５９】
（ジョブ編集・プレビューインタフェース３０６の処理例）
図１６は、ジョブ編集・プレビューインタフェース３０６の処理例の概略を示すフローチャートである。
【０１６０】
まず、ステップＳ１１０１でスプールファイルマネージャ３０４からの通知を入力する。次に、ステップＳ１１０２及びＳ１１０６で、スプールファイルマネージャ３０４からの通知がジョブ編集用の画面か／印刷プレビュー画面かを判断する。
【０１６１】
ジョブ編集の場合はステップＳ１１０３に進んでジョブ編集画面を表示し、ステップＳ１１０４でユーザによる編集指示の入力を待つ。編集指示でなければ（"戻る"などの指示）、ステップＳ１１０１に戻る。編集指示の入力があればステップＳ１１０５に進んで、ジョブ編集の指示内容をスプールファイルマネージャ３０４に通知する。
【０１６２】
印刷プレビューの場合はステップＳ１１０７に進んで印刷プレビュー画面を表示し、ステップＳ１１０８でユーザによる印刷指示の入力を待つ。印刷指示でなければ（"戻る"などの指示）、ステップＳ１１０１に戻る。印刷指示の入力があればステップＳ１１０９に進んで、印刷の指示内容をスプールファイルマネージャ３０４に通知する。
【０１６３】
スプールファイルマネージャ３０４からのジョブ編集用の画面でも印刷プレビュー画面でも無ければ、ステップＳ１１０８に進んで印刷指示か否かを待つ。
【０１６４】
＜デスプーラ３０５とジョブ追跡機能処理部４０２との通信例＞
図１７は、デスプーラ３０５とジョブ追跡機能処理部４０２との通信について説明した図である。尚、デスプーラ３０５の制御はスプールファイルマネージャ３０４が行なっており、要求通知の発行はスプールファイルマネージャ３０４に指示され、要求応答はスプールファイルマネージャ３０４に伝達される。
【０１６５】
デスプーラ３０５からは、図１５において説明した描画要求に対応した要求がジョブ追跡機能処理部４０２に送付される。デスプーラ３０５は、ジョブ追跡機能処理部４０２から、各要求に対する処理が正常に終了したことを通知された上で、スプールファイルマネージャ３０４に進捗の通知を行うこととなる。
【０１６６】
図中の(1)については、図１４におけるステップＳ９０９において、第一物理ページに対する描画処理開始時にプロセス生成される、(2)ないし(4)については、物理ページ数分繰り返される処理で、ステップＳ９０９およびステップＳ９１５の通知処理が該当する。そして、(5)については、ステップＳ９１３において実施される処理に該当する。
【０１６７】
（ジョブ追跡機能処理部４０２の処理例）
図１８は、ジョブ追跡機能処理部４０２の処理例の概略を示すフローチャートである。
【０１６８】
ステップＳ１２０１で、図１７の(1)に示したように、デスプーラ３０５を介したスプールファイルマネージャ３０４からの印刷ジョブ開始要求を待ち、印刷ジョブ開始要求があるとステップＳ１２０２で、図７Ｂの設定画面から設定され図２Ｂのジョブ追跡設定情報２ｄに記憶されたジョブ追跡の設定情報を読み出す。
【０１６９】
ステップＳ１２０３では、図１７の(2)で示したページ印刷開始要求を待って、ページ印刷開始要求があるとステップＳ１２０４に進んで、各ページのページ描画処理要求を待つ。ベージ描画処理要求があるとステップＳ１２０５に進んで、デスプーラ３０５によりスプールファイル３０３から読み出されてグラフィックエンジン２０２に送られた中間コードデータから、グラフィックエンジン２０２によりプリンタ１５００に送られるデータと同様に展開されたビットマップデータを含むページ描画情報を取得する。次に、ステップＳ１２０６では、ステップＳ１２０２で読み出したジョブ追跡設定情報に従ってページ描画情報から追跡管理のための情報を作成する。ステップＳ１２０７では、図１７の(5)で示した印刷終了要求をデスプーラ３０５から受信したか否かを判断し、受信が無ければステップＳ１２０４に戻って、次のページについてのジョブ追跡情報を作成する。
【０１７０】
印刷終了要求を受信すると、ステップＳ１２０８に進んで作成されたジョブ追跡情報（図２Ｂではジョブ追跡作成データ）をジョブ追跡管理部５００に渡す。ジョブ追跡情報を渡されたジョブ追跡管理部５００の処理は、図１９により次に説明する。
【０１７１】
尚、図１８に図示のフローによって、１つのプリントジョブのジョブ追跡情報が作成されジョブ追跡管理部５００に渡されるが、実際の動作では連続して複数のプリントジョブが実行される場合もあり、その場合には、図１８に図示のフローを繰り返して、プリントジョブ単位にジョブ追跡管理部５００に渡されてもよいし、一連の複数のプリントジョブが終了した後にジョブ追跡管理部５００に渡されてもよい。その場合には、ステップＳ１２０７とＳ１２０８との間に、一連の複数のプリントジョブの終了通知を待つことになる。
【０１７２】
（ジョブ追跡管理部５００の処理例）
図１９は、ジョブ追跡管理部５００の処理例の概略を示すフローチャートである。尚、ジョブ追跡の管理処理については、既存の処理が適用可能であり詳説はしない。
【０１７３】
まず、ステップＳ１３０１とＳ１３０４において、ジョブ追跡機能処理部４０２からのジョブ追跡情報の格納要求か、蓄積されたジョブ追跡情報に基づくジョブ追跡の管理処理（検索、照合など）の要求かを判断する。
【０１７４】
ジョブ追跡情報の送信の場合は、ステップＳ１３０２に進んでジョブ追跡機能処理部４０２からジョブ追跡情報を受信し、ステップＳ１３０３で追跡情報格納サーバ１０００のジョブ単位に追跡可能に格納する。一方、ジョブ追跡の管理処理の要求であれば、ステップＳ１３０５進んで図７Ｂで設定された管理クライアント名や識別名に従ってジョブ単位に追跡情報格納サーバ１０００のジョブ追跡情報を参照し、ステップＳ１３０６でジョブ追跡の結果を出力する。
【０１７５】
尚、ジョブ追跡の管理処理は、ジョブ追跡管理部５００がホストコンピュータ３０００に有る場合は、アプリケーション２０１を介し、あるいはＵＩから直接ジョブ追跡管理部５００に指示されてもよいし、プリンタドライバ２０３のＵＩ制御部２０３Ｂやジョブ追跡機能ＵＩブ４０１を介して指示されてもよい。又、ホストコンピュータ３０００とは別に管理クライアント４０００となる追跡管理コンピュータが有る場合は、ネットワークを介しで指示されることになる。
【０１７６】
[他の実施形態]
前述の実施形態では、図１２に示したとおり、デスプーラ３０５に対する２つのプロセスＭとＰを生成し、スプールファイルマネージャ３０４がこれら２つのデスプーラプロセスＭとＰを制御する形式をとっていたが、デスプーラ３０５内で２つのプロセスＭとＰを制御する形式をとってもよい。この場合も、図１４および図１５の処理の流れを若干変更することで実現可能である。例えば、図１４におけるステップＳ９１５およびステップＳ９１６の処理を図１５のデスプーラ３０５側に移動する。又、図１４におけるステップＳ９０９は、特にジョブ追跡用デスプールプロセスを意識せず、単にデスプーラ３０５への要求に変わる。また、ステップＳ９１３とステップＳ９１４についても、個別に通知を行う必要がなくなり、単にデスプーラ３０５への通知となる。
【０１７７】
また、本実施形態では、図９におけるステップＳ８１９では、デスプーラ３０５がスプールファイルマネージャ３０４の指示ではなく、自身の処理において印刷データの生成、転送を行うことになる。
【０１７８】
[種々のシステム構成の実施形態例]
図２０Ａ乃至図２０Ｅは、本発明の様々なシステムでの運用形態を説明するための図である。
【０１７９】
図２０Ａは、本発明の最もシンプルな運用例を示す図である。ホストコンピュータ３０００内にジョブ追跡管理部５００を配し、印刷データはプリンタドライバ２０３からプリンタ１５００へ直接転送され、追跡用データはジョブ追跡機能部４００からホストコンピュータ３０００内のジョブ追跡機能管理部５００を介して追跡情報管理サーバ１０００へと送られる。本構成は本発明を実施するための最小構成であり、第一の実施形態では本構成を用いた形態についての説明を行った。
【０１８０】
図２０Ｂは、図２０Ａに対し、ジョブ追跡管理部５００をホストコンピュータ３０００とは別の追跡管理コンピュータ６０００に配したものでる。印刷データは図１６Ａと同じく、プリンタドライバ２０３から直接プリンタ１５００へ転送され、追跡用データはジョブ追跡機能部４００から追跡管理コンピュータ６０００内のジョブ追跡機能管理部５００を介して追跡情報管理サーバ１０００へと送られる。本構成を採ることで追跡用データの追跡情報管理サーバ１０００を、例えばネットワーク負荷が軽くなる日や時間帯にスケジューリングすることが可能となり、追跡情報管理サーバ１０００への負荷を制御することが可能になる。
【０１８１】
図２０Ｃは、図２０Ａに対し、プリントサーバ７０００をホストコンピュータ３０００とプリンタ１５００の間に入れたものである。印刷データはプリンタドライバ２０３からプリントサーバ７０００の該当するプリンタキュー（プリントスプーラ）を通ってプリンタ１５００へ転送され、追跡用データは図２０Ａと同じく、ジョブ追跡機能部４００からホストコンピュータ３０００内のジョブ追跡機能管理部５００を介して追跡情報管理サーバ１０００へと送られる。本構成を採ることで、プリントサーバ７０００を用いる運用形態にも適応されることが出来ると共に、プリントサーバ７０００内にプリンタドライバ２０３を置くことで、ホストコンピュータ３０００へのプリンタドライバの配布や同期、設定情報の共有化などが可能となる。更には、ジョブ追跡機能に係わる各種設定をプリントサーバ７０００上で一括管理することも可能となり、ジョブ追跡機能の各種設定を実行する権限の無いユーザが設定変更行えなくなるような機構も併せ持つこととなる。
【０１８２】
図２０Ｄは、図２０Ｂと図２０Ｃの構成を併用したものであり、プリントサーバ７０００をホストコンピュータ３０００とプリンタ１５００の間に入れ、ジョブ追跡管理部５００をホストコンピュータ３０００とは別の追跡管理コンピュータ６０００に配したものである。印刷データは図１６Ｃと同じく、プリンタドライバ２０３からプリントサーバ７０００の該当するプリンタキュー（プリントスプーラ）を通ってプリンタ１５００へ転送され、追跡用データは図２０Ｂと同じく、ジョブ追跡機能部４００から追跡管理コンピュータ６０００内のジョブ追跡機能管理部５００を介して追跡情報管理サーバ１０００へと送られる。本構成を採ることで、図２０Ｂと図２０Ｃの利点を併せ持つことが可能となる。
【０１８３】
図２０Ｅは、図２０Ｄの追跡管理コンピュータ６０００とプリントサーバ７０００とを同一のコンピュータ上で実現するようにプリントサーバ兼追跡管理コンピュータ８０００を設けたものである。印刷データはプリンタドライバ２０３からプリントサーバ兼追跡管理コンピュータ８０００の該当するプリンタキュー（プリントスプーラ）を通ってプリンタ１５００へ転送され、追跡用データはジョブ追跡機能部４００からプリントサーバ兼追跡管理コンピュータ８０００内のジョブ追跡機能管理部５００を介して追跡情報管理サーバ１０００へと送られる。本構成を採ることで図２０Ｄでは追跡管理コンピュータ６０００、プリントサーバ７０００の２台のコンピュータであったが、これをプリントサーバ兼追跡管理コンピュータ８０００の１台に集約することで、設置スペースやコストの削減を行うことが可能となる。
【０１８４】
本発明は以上説明したような様々な形態に適用可能であり、図２０Ａおよび先の実施系において説明した最小構成だけでなく、導入形態に応じた柔軟なシステム構成が可能となる。
【０１８５】
なお、本発明は、複数の機器(例えばコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０１８６】
また、本発明の目的は、前述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【０１８７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１８９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１９０】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１９１】
【図１】本実施形態に係る印刷システムの構成を示すブロック図である。
【図２Ａ】本実施形態に係るホストコンピュータ３０００及びプリンタ１５００のハードウエア構成例を示すブロック図である。
【図２Ｂ】本実施形態のホストコンピュータ３０００におけるメモリ空間の構造例の概略を示す図である。
【図３】本実施形態のホストコンピュータ３０００における印刷ジョブ追跡のための一構成例を示す機能ブロック図である。
【図４】本実施形態のホストコンピュータ３０００における印刷ジョブ追跡のための拡張された構成例を示す機能ブロック図である。
【図５】本実施形態のホストコンピュータ３０００におけるジョブ編集・プレビューインタフェースのための拡張された構成例を示す機能ブロック図である。
【図６Ａ】ジョブ編集・プレビューインタフェースに関するジョブ編集前の表示画面の一例を示す図である。
【図６Ｂ】ジョブ編集・プレビューインタフェースに関する印刷プレビューの表示画面の一例を示す図である。
【図６Ｃ】ジョブ編集・プレビューインタフェースに関するジョブ編集後の表示画面の一例を示す図である。
【図７Ａ】ジョブ追跡機能に関するユーザインタフェースの初期画面の一例を示す図である。
【図７Ｂ】ジョブ追跡機能に関するユーザインタフェースのジョブ追跡の設定画面の一例を示す図である。
【図８】本実施形態のジョブ追跡の前処理の概要を示すフローチャートである。
【図９】本実施形態のジョブ追跡・印刷の処理の概要を示すフローチャートである。
【図１０】ジョブに対するジョブレベル追跡用情報の一形式を示す図である。
【図１１】結合されたジョブに対するジョブレベル追跡用情報の一形式を示す図である。
【図１２】デスプーラ３０５の処理例を示す機能ブロック図である。
【図１３】スプーラ３０２の処理例を示すフローチャートである。
【図１４】スプールファイルマネージャ３０４の処理例を示すフローチャートである。
【図１５】デスプーラ３０５の処理例を示すフローチャートである。
【図１６】ジョブ編集・プレビューインタフェース３０６の処理例を示すフローチャートである。
【図１７】デスプーラ３０５とジョブ追跡機能部４０２との通信処理例を示す図である。
【図１８】ジョブ追跡機能処理部４０２の処理例を示すフローチャートである。
【図１９】ジョブ追跡管理部５００の処理例を示すフローチャートである。
【図２０Ａ】本実施形態のシステムのジョブ追跡機能の形態例を示す図である。
【図２０Ｂ】本発明を適用可能な他のシステムのジョブ追跡機能の形態例を示す図である。
【図２０Ｃ】本発明を適用可能な他のシステムのジョブ追跡機能の形態例を示す図である。
【図２０Ｄ】本発明を適用可能な他のシステムのジョブ追跡機能の形態例を示す図である。
【図２０Ｅ】本発明を適用可能な他のシステムのジョブ追跡機能の形態例を示す図である。
【図１】
2006260243.tif 000003
【図２Ａ】
2006260243.tif 000004
【図２Ｂ】
2006260243.tif 000005
【図３】
2006260243.tif 000006
【図４】
2006260243.tif 000007
【図５】
2006260243.tif 000008
【図６Ａ】
2006260243.tif 000009
【図６Ｂ】
2006260243.tif 000010
【図６Ｃ】
2006260243.tif 000011
【図７Ａ】
2006260243.tif 000012
【図７Ｂ】
2006260243.tif 000013
【図８】
2006260243.tif 000014
【図９】
2006260243.tif 000015
【図１０】
2006260243.tif 000016
【図１１】
2006260243.tif 000017
【図１２】
2006260243.tif 000018
【図１３】
2006260243.tif 000019
【図１４】
2006260243.tif 000020
【図１５】
2006260243.tif 000021
【図１６】
2006260243.tif 000022
【図１７】
2006260243.tif 000023
【図１８】
2006260243.tif 000024
【図１９】
2006260243.tif 000025
【図２０Ａ】
2006260243.tif 000026
【図２０Ｂ】
2006260243.tif 000027
【図２０Ｃ】
2006260243.tif 000028
【図２０Ｄ】
2006260243.tif 000029
【図２０Ｅ】
2006260243.tif 000030