(57)【要約】      （修正有）【課題】所定のデータ形式で生成された中間データを追跡する。【解決手段】第１のプロセッサを、印刷要求の受け付け、及び、印刷要求に対する処理結果の要求を受け付ける手段として機能させ、第１のプロセッサ又は第２のプロセッサを、印刷要求に基づいて中間データを生成、中間データと中間データを識別する識別情報とを対応付けて記憶、及び、中間データが生成された旨を、記憶された中間データに関する処理に通知する手段として機能させ、第２のプロセッサを、記憶された中間データに関する処理、処理を行った中間データと対応付けて記憶された識別情報を記憶、処理を行った中間データを画像処理装置で処理可能な印刷データに変換、変換された印刷データの処理を画像処理装置に要求、及び、処理結果の要求を受け付けたとき、記憶された識別情報に基づき画像処理装置から処理結果を取得する手段として機能させる。【選択図】図２
2015007964.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１のプロセッサと第２のプロセッサとを有するシステムにおいて、
前記第１のプロセッサを、
印刷要求を受け付ける印刷要求受付手段、及び、
前記印刷要求受付手段により受け付けた印刷要求に対する処理結果の要求を受け付ける処理結果要求受付手段として機能させ、
前記第１のプロセッサ又は前記第２のプロセッサを、
前記印刷要求受付手段により受け付けた印刷要求に基づいて中間データを生成する中間データ生成手段、
前記中間データ生成手段により生成された中間データと該中間データを識別する識別情報とを対応付けて所定の記憶領域に記憶する第１の記憶制御手段、及び、
前記中間データ生成手段により中間データが生成された旨を、前記第１の記憶制御手段により記憶された前記中間データに関する処理を行う処理手段に通知する通知手段として機能させ、
前記第２のプロセッサを、
前記通知手段による通知を受け付けたとき、前記第１の記憶制御手段により記憶された前記中間データに関する処理を行う処理手段、
前記処理手段により処理を行った中間データと対応付けて前記所定の記憶領域に記憶された前記識別情報を、前記所定の記憶領域とは異なる記憶領域に記憶する第２の記憶制御手段、
前記処理手段により処理を行った中間データを画像処理装置で処理可能な印刷データに変換する変換手段、
前記変換手段により変換された印刷データの処理を前記画像処理装置に要求する要求手段、及び、
前記処理結果要求受付手段により前記処理結果の要求を受け付けたとき、前記第２の記憶制御手段により記憶された前記識別情報に基づいて前記画像処理装置から処理結果を取得する取得手段として機能させることを特徴とするシステム。
【請求項２】
前記中間データ生成手段は、
前記中間データに含まれる設定情報に、前記識別情報を付加することを特徴とする請求項１に記載のシステム。
【請求項３】
前記処理手段は、
前記中間データのジョブ履歴として、前記識別情報を保存することを特徴とする請求項１又は２に記載のシステム。
【請求項４】
前記処理手段は、
前記処理結果の成否と対応して前記画像処理装置により保存された前記識別情報と、前記ジョブ履歴として保存された前記識別情報とを照合することを特徴とする請求項３に記載のシステム。
【請求項５】
前記処理手段は、
前記第１の記憶制御手段を介して、前記中間データ生成手段から、前記中間データを取得することを特徴とする請求項１乃至４のいずれか一項に記載のシステム。
【請求項６】
前記処理手段は、
前記通知手段から所定のイベント情報を取得したタイミングで、前記第１の記憶制御手段を介して、前記中間データを取得することを特徴とする請求項５に記載のシステム。
【請求項７】
前記要求手段は、
前記処理手段との間の所定のインターフェースを介して前記中間データの前記識別情報を取得し、前記画像処理装置に前記印刷データを送信する際、所定のジョブ言語を用いて前記識別情報を送信することを特徴とする請求項１乃至６のいずれか一項に記載のシステム。
【請求項８】
少なくとも第１のプロセッサと第２のプロセッサとを有するシステムにより実行される方法であって、
前記第１のプロセッサは、
印刷要求を受け付ける印刷要求受付手順と、
前記印刷要求受付手順により受け付けた印刷要求の処理結果の要求を受け付ける処理結果要求受付手順とを有し、
前記第１のプロセッサ又は前記第２のプロセッサは、
前記印刷要求受付手順により受け付けた印刷要求に基づいて中間データを生成する中間データ生成手順と、
前記中間データ生成手順で生成された中間データと該中間データを識別する識別情報とを対応付けて所定の記憶領域に記憶する第１の記憶制御手順と、
前記中間データ生成手順で中間データが生成された旨を、前記第１の記憶制御手順により記憶された前記中間データに関する処理を行う処理手順に通知する通知手順とを有し、
前記第２のプロセッサは、
前記通知手順で通知を受け付けたとき、前記第１の記憶制御手順により記憶された前記中間データに関する処理を行う処理手順と、
前記処理手順により処理を行った中間データと対応付けて前記所定の記憶領域に記憶された前記識別情報を、前記所定の記憶領域とは異なる記憶領域に記憶する第２の記憶制御手順と、
前記処理手順で処理を行った中間データを画像処理装置で処理可能な印刷データに変換する変換手順と、
前記変換手順で変換された印刷データの処理を前記画像処理装置に要求する要求手順と、
前記処理結果要求受付手順により前記処理結果の要求を受け付けたとき、前記第２の記憶制御手順により記憶された前記識別情報に基づいて前記画像処理装置から処理結果を取得する取得手順とを有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、システム、及び方法に関する。
【背景技術】
【０００２】
例えば、印刷アプリケーションからプリンタドライバを用いて印刷を行い、その結果をプレビュー表示やデータ加工してからプリンタへ出力するような印刷ソリューションが知られている。この印刷ソリューションは、例えばクライアントがサーバ上のプリンタドライバを使用して印刷するために、サーバからクライアントにプリンタドライバをダウンロードするポイント＆プリント環境においても用いられる。
【０００３】
なお、文書ファイルに応じて印刷データを出力するプリンタを動的に振り分けるため、第１機能を有するプリンタドライバにより中間データを生成し、第２機能を有するプリンタドライバがプリンタへ中間データを送信して印刷を行う方法が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１に示すような従来手法において、例えば汎用的なデータ形式で生成された中間データが、実際に印刷されたか否か等の追跡を行う仕組みはなく、更なるソリューションを提供することができなかった。
【０００５】
１つの側面では、本発明は、所定のデータ形式で生成された中間データの追跡を可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
一態様において、少なくとも第１のプロセッサと第２のプロセッサとを有するシステムにおいて、前記第１のプロセッサを、印刷要求を受け付ける印刷要求受付手段、及び、前記印刷要求受付手段により受け付けた印刷要求に対する処理結果の要求を受け付ける処理結果要求受付手段として機能させ、前記第１のプロセッサ又は前記第２のプロセッサを、前記印刷要求受付手段により受け付けた印刷要求に基づいて中間データを生成する中間データ生成手段、前記中間データ生成手段により生成された中間データと該中間データを識別する識別情報とを対応付けて所定の記憶領域に記憶する第１の記憶制御手段、及び、前記中間データ生成手段により中間データが生成された旨を、前記第１の記憶制御手段により記憶された前記中間データに関する処理を行う処理手段に通知する通知手段として機能させ、前記第２のプロセッサを、前記通知手段による通知を受け付けたとき、前記第１の記憶制御手段により記憶された前記中間データに関する処理を行う処理手段、前記処理手段により処理を行った中間データと対応付けて前記所定の記憶領域に記憶された前記識別情報を、前記所定の記憶領域とは異なる記憶領域に記憶する第２の記憶制御手段、前記処理手段により処理を行った中間データを画像処理装置で処理可能な印刷データに変換する変換手段、前記変換手段により変換された印刷データの処理を前記画像処理装置に要求する要求手段、及び、前記処理結果要求受付手段により前記処理結果の要求を受け付けたとき、前記第２の記憶制御手段により記憶された前記識別情報に基づいて前記画像処理装置から処理結果を取得する取得手段として機能させる。
【発明の効果】
【０００７】
所定のデータ形式で生成された中間データの追跡が可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る印刷ソリューションの概念図である。
【図２】本実施形態に係るクライアントＰＣの機能構成の一例を示す図である。
【図３】本実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図４】ハードウェア構成の一例を示す図である。
【図５】本実施形態に係る追加処理アプリケーションを説明するための図である。
【図６】ランゲージモニタ前後の処理の流れの一例を示す図である。
【図７】ランゲージモニタの利用態様の一例を示す図である。
【図８】本実施形態に係るイベント送受信を説明するための図である。
【図９】本実施形態に係る基本構成におけるシーケンス図である。
【図１０】本実施形態に係る情報処理システムにおけるシーケンス図である。
【図１１】本実施形態に係るジョブ追跡時のシーケンス図である。
【図１２】本実施形態に係る中間データの出力態様を示す図である。
【発明を実施するための形態】
【０００９】
以下、開示の技術に係る実施の形態について詳細に説明する。
【００１０】
＜印刷ソリューションの概念図＞
本実施形態に係る情報処理装置等により提供される中間データを用いた各種のソリューションの一例として、印刷ソリューションについて説明する。図１は、本実施形態に係る印刷ソリューションの概念図である。
【００１１】
図１に示すように、本実施形態に係る印刷ソリューションでは、例えば文書編集ソフトや、表計算ソフト等の印刷アプリケーションにより得られた印刷対象の文書や画像に基づき、仮想プリンタドライバが汎用的なデータ形式の中間データを生成する。ここで、仮想プリンタドライバは、中間データを管理するための管理情報（中間データを識別する識別情報）の一例として、管理用ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を付加した中間データを生成する。
【００１２】
次に、本実施形態に係る印刷ソリューションでは、仮想プリンタドライバにより生成された中間データに対して、追加処理アプリケーションにより、付加的な機能を実行させる。追加処理アプリケーションは、例えばプリンタドライバの仕組みの中で、印刷に際して付加的に定められた機能を提供するためのソフトウェアモジュールである。
【００１３】
追加処理アプリケーションは、付加的な機能として、例えば中間データに変換された情報に基づくプレビュー表示や、中間データに変換された情報のデータ加工を実行するが、これには限定されない。
【００１４】
追加処理アプリケーションは、仮想プリンタドライバにより中間データに付加された管理用ＩＤを参照し、実プリンタドライバに対して管理用ＩＤを付加した中間データを送信すると、中間データのジョブ履歴として管理用ＩＤを保存しておく。
【００１５】
次に、本実施形態に係る印刷ソリューションでは、実プリンタドライバにより、追加処理アプリケーションにより得られた中間データに基づき、プリンタに対応したＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式で印刷データを生成する。実プリンタドライバは、生成した印刷データに、追加処理アプリケーションにより得られた管理用ＩＤを付加して、プリンタに送信する。
【００１６】
次に、本実施形態に係る印刷ソリューションでは、実プリンタドライバにより送信された印刷データを用いて、プリンタにより印刷する。ここで、プリンタは、印刷データのジョブ履歴として、実プリンタドライバにより得られた管理用ＩＤを、印刷データが印刷されたか否かを示す印刷の成否と対応させて保存しておく。
【００１７】
これにより、追加処理アプリケーションは、プリンタにより保存されたジョブ履歴の管理用ＩＤを参照し、中間データのジョブ履歴に保存された管理用ＩＤと照合することで、中間データが実際にプリンタで印刷されたか等の情報を得ることが可能となる。
【００１８】
上述したように、本実施形態に係る印刷ソリューションでは、例えば汎用的なデータ形式の中間データの追跡を可能とし、中間データを管理することが可能となる。なお、本実施形態に係る中間データを用いた各種のソリューションとしては、上述した印刷ソリューションに限定されるものではなく、例えばプリンタ以外の出力装置を用いた他の出力ソリューションにも適用することが可能である。
【００１９】
＜クライアントＰＣ：機能構成＞
次に、上述した印刷ソリューションを実現する情報処理装置の一例としてのクライアントＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）の機能構成例について説明する。図２は、本実施形態に係るクライアントＰＣの機能構成の一例を示す図である。
【００２０】
図２に示すように、クライアントＰＣ１０は、印刷アプリケーション１１と、仮想プリンタドライバ１２と、ランゲージモニタ１３と、追加処理アプリケーション１４と、実プリンタドライバ１５と、記憶手段１６〜１７とを有するように構成される。
【００２１】
クライアントＰＣ１０は、例えば画像処理装置の一例としてのプリンタ２０を用いて印刷を行う。プリンタ２０は、例えばプリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｒｉｐｈｅｒａｌ）等でも良い。
【００２２】
印刷アプリケーション１１は、例えばＷｏｒｄ（登録商標）等の文書編集ソフトや、Ｅｘｃｅｌ（登録商標）等の表計算ソフト等の印刷アプリケーションである。印刷アプリケーション１１は、仮想プリンタドライバ１２に、印刷要求（印刷ジョブ）として、例えばプリンタ２０により印刷する印刷対象の文書や画像を出力する。
【００２３】
仮想プリンタドライバ１２は、印刷設定手段３０と、描画手段３１とを有し、印刷アプリケーション１１から印刷要求を受け付ける。
【００２４】
印刷設定手段３０は、ユーザからの入力を受け付けるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を提供し、ユーザの操作に応じてプリンタ２０により印刷を実行させる際の印刷設定情報を取得する。
【００２５】
描画手段３１は、中間データ生成手段３２と、イベント送信手段３３とを有するように構成される。中間データ生成手段３２は、印刷アプリケーション１１から得られた印刷要求としての印刷対象の文書や画像等に基づき、例えば印刷データを生成する前の中間データを生成する。中間データ生成手段３２は、例えばＸＰＳ（ＸＭＬ  Ｐａｓｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）や、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）等の汎用的なデータ形式の中間データを生成する。
【００２６】
ここで、中間データ生成手段３２は、例えば現在時刻や、ログインユーザ名、ジョブＩＤ等を用いて、中間データを管理するための管理用ＩＤを生成し、中間データに付加する。なお、管理用ＩＤは、プリンタ２０を用いて印刷を行う印刷ソリューション全体、複数のクライアントＰＣ１０により複数のプリンタ２０を用いる場合には、複数のクライアントＰＣ１０及び複数のプリンタ２０の間で識別可能な一意のＩＤ（例えば、中間データを識別する識別情報）として生成されると良い。
【００２７】
中間データ生成手段３２は、中間データに管理用ＩＤを付加する際、上述したデータ形式で生成した中間データの例えば先頭等に管理用ＩＤを埋め込んだり、例えばプリントチケット等で記述されている印刷設定情報等に埋め込んだりすると良い。
【００２８】
イベント送信手段３３は、中間データ生成手段３２により生成された中間データの出力状況として、例えば中間データ生成手段３２による印刷開始や、印刷処理、印刷終了等を示すイベント情報を、追加処理アプリケーション１４に通知する通知手段の一例である。イベント送信手段３３は、例えばＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が提供するメールスロット（Ｍａｉｌｓｌｏｔ）通信等のプロセス間通信を用いると良い。
【００２９】
ランゲージモニタ１３は、例えばＯＳの仕組みに組み込まれたソフトウェアモジュールである。ランゲージモニタ１３は、特定のキーやプリンタ名等を用いて、データの読み書きを行うインターフェースであり、ネットワークを介して通信を行う機能を有する。ランゲージモニタ１３は、例えば、仮想プリンタドライバ１２や追加処理アプリケーション１４からのインターフェースの呼び出しに応じてデータの読み書き等を行う。
【００３０】
ランゲージモニタ１３は、例えば仮想プリンタドライバ１２等から得られた中間データや管理用ＩＤ等を対応付けて、所定の記憶領域（例えば記憶手段１６）に記憶する処理を実行する第１の記憶制御手段の一例としての機能も有する。例えば、ランゲージモニタ１３は、中間データ生成手段３２から取得した中間データのうち、印刷対象のデータ（印刷データ）を印刷データ３４に格納し、印刷設定情報を印刷設定情報３５に格納し、管理用ＩＤを管理情報３６に格納する。
【００３１】
追加処理アプリケーション１４は、印刷に際して付加的な機能を提供するアプリケーションである。追加処理アプリケーション１４は、例えば中間データ処理手段３７と、イベント受信手段３８と、ジョブ履歴保存手段３９とを有するように構成される。
【００３２】
中間データ処理手段３７は、中間データに関するデータ処理を実行する処理手段の一例を示し、例えば中間データに基づくプレビュー表示や、中間データに対するデータ加工（例えば集約印刷への変更等）や編集等の付加的な処理を実行する。
【００３３】
中間データ処理手段３７は、仮想プリンタドライバ１２のイベント送信手段３３から、中間データの印刷終了のイベント情報が通知されたタイミングで、ランゲージモニタ１３を介して中間データを取得し、上述した付加的な処理を実行する。なお、中間データ処理手段３７は、ランゲージモニタ１３を介して中間データにアクセスするための特定のキーとして、仮想プリンタドライバ１２のイベント送信手段３３から通知されたキーやプリンタ名等を用いると良い。
【００３４】
中間データ処理手段３７は、データ加工又は編集処理として、例えば中間データに特定の文字列として「社外秘」、「機密」等が含まれている場合には、中間データにウォーターマークや地紋等を付加する等の処理を行っても良い。
【００３５】
なお、中間データ処理手段３７は、実プリンタドライバ１５に中間データを送信する際、例えばプリントチケットにより記述されている印刷設定情報等に管理用ＩＤを含めて送信すると良い。また、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｒｉｎｔ  ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）等のインターフェース（ＥｘｔＥｓｃａｐｅ（）等）を利用して、実プリンタドライバ１５に中間データに対応する管理用ＩＤを送信しても良い。
【００３６】
また、中間データ処理手段３７は、中間データのジョブ履歴としてジョブ履歴保存手段３９により中間データのジョブ名と管理用ＩＤとを対応付けて、上述した記憶領域とは異なる記憶領域（例えば記憶手段１７のジョブ履歴４０）に保存させる。中間データ処理手段３７は、プリンタ２０により印刷データを印刷した後、プリンタ２０に対するジョブ履歴の問い合わせ（印刷要求に対する処理結果の要求）を受け付けると、ジョブ履歴保存手段３９により保存させた管理用ＩＤと、プリンタ２０により保存された管理用ＩＤとを照合する。
【００３７】
中間データ処理手段３７は、プリンタ２０から照合した管理用ＩＤに対応付けられた印刷の成否に関する情報を取得すると、取得した情報を用いて、例えばユーザにＧＵＩ等を介して中間データの追跡結果を通知する等、中間データの管理を行うことが可能である。
【００３８】
イベント受信手段３８は、仮想プリンタドライバ１２のイベント送信手段３３から通知されたイベント情報を取得することで、仮想プリンタドライバ１２の中間データ生成手段３２により中間データに対して実行された処理を認識する。なお、イベント受信手段３８は、イベント送信手段３３と同様のＯＳが提供するメールスロット通信等のプロセス間通信を用いると良い。
【００３９】
ジョブ履歴保存手段３９は、例えば中間データ処理手段３７が実プリンタドライバ１５に対して中間データを送信した後、中間データ処理手段３７の指示を受けて、中間データのジョブ履歴を所定の記憶領域に保存するように制御する第２の記憶制御手段の一例である。ジョブ履歴保存手段３９は、中間データのジョブ履歴として、例えば中間データのジョブ名（例えば印刷するドキュメントの名前等）と、管理用ＩＤとを対応させて所定の記憶領域（例えば記憶手段１７のジョブ履歴４０）に保存する。
【００４０】
なお、上述した印刷データ３４と、印刷設定情報３５と、管理情報３６と、ジョブ履歴４０は、例えばクライアントＰＣ１０内のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やメモリ等に記憶される。
【００４１】
実プリンタドライバ１５は、中間データ処理手段３７により得られた中間データを、プリンタ２０で処理可能な印刷データ（印刷を実行させるための印刷データ）に変換する。具体的には、実プリンタドライバ１５は、中間データを、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）６、ＰＳ、ＰＲＣＳ（Ｒｅｆｉｎｅｄ  Ｐｒｉｎｔｉｎｇ  Ｃｏｍｍａｎｄ  Ｓｔｒｅａｍ）等のプリンタ２０に対応したＰＤＬ形式の印刷データに変換する。
【００４２】
ここで、実プリンタドライバ１５は、中間データが汎用的なデータ形式により生成されているため、プリンタ２０に対応したＰＤＬ形式で印刷データを生成することが可能となる。このように、実プリンタドライバ１５は、印刷データ（出力データ）に変換する機能を有する。
【００４３】
また、実プリンタドライバ１５は、画像処理装置に対する所定のジョブ言語として、印刷ジョブ言語（ＰＪＬ：Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）等のコマンドを利用して、印刷データに中間データの管理用ＩＤを付加してプリンタ２０に送信し（例えば、＠ＰＪＬ  ＳＥＴ  ＪＯＢＴＲＡＣＥＩＤ＝×××××）、プリンタ２０に印刷データの処理を要求する。
【００４４】
プリンタ２０は、印刷手段２１と、ジョブ履歴保存手段２２と、通信手段２３とを有するように構成される。印刷手段２１は、クライアントＰＣ１０の実プリンタドライバ１５により送信された印刷データを印刷する。ジョブ履歴保存手段２２は、印刷手段２１により印刷された印刷データのジョブ履歴として、管理用ＩＤと印刷データの印刷の成否（成功又は失敗）を対応させて保存する。通信手段２３は、クライアントＰＣ１０との通信を行う。
【００４５】
上述したように、クライアントＰＣ１０の追加処理アプリケーション１４は、印刷ジョブの処理結果（印刷成否の情報）の要求を受け付けると、ジョブ履歴４０の管理用ＩＤに基づき、プリンタ２０から対応する管理用ＩＤと印刷ジョブの印刷成否の情報とを取得する。なお、上述したクライアントＰＣ１０に係る各アプリケーション及び各ドライバ等における処理は、クライアントＰＣ１０が有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（第１のプロセッサ）により実行される。
【００４６】
＜情報処理システム：機能構成＞
上述した図２の例では、印刷ソリューションをクライアントＰＣ１０のみを用いて実現した例を説明したが、本実施形態においてはこれに限定されるものではなく、例えばクライアントＰＣとサーバとを有する情報処理システムにより実現しても良い。以下に、本実施形態に係る情報処理システムの構成例について説明する。
【００４７】
図３は、本実施形態に係る情報処理システムの機能構成の一例を示す図である。図３に示すように、本実施形態に係る情報処理システム１００は、クライアントＰＣ１０'とサーバ５０とを有するように構成される。クライアントＰＣ１０'とサーバ５０とは、ネットワークを介して接続されている。
【００４８】
ここで、情報処理システム１００は、クライアントＰＣ１０'が、サーバ５０にインストールされているプリンタドライバ等をダウンロードするポイント＆プリントにより機能の一部を担う。このように、情報処理システム１００に示すクライアントＰＣ１０'とサーバ５０とが各機能を分散することで、上述した印刷ソリューションを実現する。
【００４９】
例えば、図３の例では、クライアントＰＣ１０'は、印刷アプリケーション１１と、仮想プリンタドライバ１２と、追加処理アプリケーション１４とを有するように構成される。クライアントＰＣ１０'は、例えばサーバ５０から、仮想プリンタドライバ１２と、追加処理アプリケーション１４とをインストールして、対応する機能を実現する。
【００５０】
サーバ５０は、ランゲージモニタ１３と、追加処理アプリケーション１４と、実プリンタドライバ１５とを有するように構成される。なお、図２と同一の機能については同一の符号を付して説明を省略する。
【００５１】
図３の例では、情報処理システム１００は、追加処理アプリケーション１４により実行する付加的な機能のうち、プレビュー表示をクライアントＰＣ１０'により実現するため、クライアントＰＣ１０'が追加処理アプリケーション１４を有するように構成する。
【００５２】
更に、情報処理システム１００は、サーバ５０により、中間データの加工又は編集（例えばＳＳＲ（Ｓｅｒｖｅｒ  Ｓｉｄｅ  Ｒｅｎｄｅｒｉｎｇ））を実現するため、サーバ５０についても追加処理アプリケーション１４を有するように構成する。
【００５３】
クライアントＰＣ１０'の仮想プリンタドライバ１２は、中間データ生成手段３２により生成された中間データを、ランゲージモニタ１３を介してサーバ５０の記憶手段１６に送信する。サーバ５０は、ランゲージモニタ１３を介して、取得した中間データのうち、印刷データを印刷データ３４に書き込み、印刷設定情報を印刷設定情報３５に書き込み、管理用ＩＤを管理情報３６に書き込む。
【００５４】
クライアントＰＣ１０'の仮想プリンタドライバ１２は、イベント送信手段３３により中間データの印刷開始、印刷終了等のイベント情報を、クライアントＰＣ１０'やサーバ５０がそれぞれ有する追加処理アプリケーション１４のイベント受信手段３８に送信する。
【００５５】
クライアントＰＣ１０'の追加処理アプリケーション１４の中間データ処理手段３７は、イベント受信手段３８により得られた中間データの印刷終了のイベント情報に基づき、サーバ５０のランゲージモニタ１３を介して中間データを取得し、プレビュー表示を行う。
【００５６】
また、サーバ５０の追加処理アプリケーション１４の中間データ処理手段３７は、イベント受信手段３８により得られた中間データの印刷終了のイベント情報等に基づき、ランゲージモニタ１３を介して中間データを取得し、データ加工又は編集等を行う。なお、サーバ５０の追加処理アプリケーション１４が有するジョブ履歴保存手段３９は、中間データのジョブ履歴として、管理用ＩＤ等を記憶手段１７のジョブ履歴４０に保存する。
【００５７】
図３に示す印刷データ３４と、印刷設定情報３５と、管理情報３６と、ジョブ履歴４０は、例えばサーバ５０内のＨＤＤやメモリ等に記憶される。
【００５８】
ここで、例えばクライアントＰＣ１０'の仮想プリンタドライバ１２により生成される中間データは、スプール方式（ＲＡＷやＥＭＦ等）や、プリンタの共有オプション（ＣＳＲ（Ｃｌｉｅｎｔ  Ｓｉｄｅ  Ｒｅｎｄｅｒｉｎｇ）やＳＳＲ等）に応じて保存先が設定される。すなわち、クライアントＰＣ１０'の仮想プリンタドライバ１２により生成される中間データは、クライアントＰＣ１０'かサーバ５０の記憶手段に保存される。
【００５９】
そのため、クライアントＰＣ１０'又はサーバ５０の追加処理アプリケーション１４は、上述した処理を実行するため中間データにアクセスする場合には、中間データの保存先を把握しなければならない。また、中間データの保存先によっては、クライアントＰＣ１０'とサーバ５０との間で通信するためのＩＰアドレス等の通信プロトコルを意識しなければならない。また、共有ファイルを使用したとしても、その権限等の管理等が必要になるため、処理が煩雑となる。
【００６０】
しかしながら、本実施形態に係る情報処理システム１００では、クライアントＰＣ１０'又はサーバ５０の追加処理アプリケーション１４は、例えば、予め設定された識別子等を特定のキーとして、ランゲージモニタ１３を介して中間データを取得する。したがって、本実施形態に係るクライアントＰＣ１０'の仮想プリンタドライバ１２は、クライアントＰＣ１０'又はサーバ５０の追加処理アプリケーション１４に中間データの保存先を通知する必要がなく、処理を簡略化することが可能となる。
【００６１】
また、ランゲージモニタ１３は、ＯＳの仕組みの１つであるため、ＯＳとの親和性を高めることも可能となる。なお、クライアントＰＣ１０'の追加処理アプリケーション１４は、サーバ５０が有する仮想プリンタドライバの一部である追加処理アプリケーションを、ポイント＆プリントによりインストールして特定のタイミングで実行させても良い。
【００６２】
上述したポイント＆プリントで、サーバ５０から仮想プリンタドライバの一部として追加処理アプリケーションをインストールした場合、ポイント＆プリントの機能によりサーバ５０とクライアントＰＣ１０'のそれぞれの追加処理アプリケーションは同期される。したがって、ジョブ履歴４０は、サーバ５０側とクライアントＰＣ１０'側とで同期され、サーバ５０とクライアントＰＣ１０'のどちらからもジョブ履歴４０に保存した情報を取得することが可能となる。
【００６３】
また、予めクライアントＰＣ１０'とサーバ５０とにそれぞれ追加処理アプリケーション１４をインストールさせ、常駐アプリケーションとして実行させる形式としても良い。
【００６４】
上述した構成により、汎用的なデータ形式の中間データを用いて、追加処理アプリケーション１４により付加的な機能を実現し、特定のＰＤＬ形式だけでなく、他のＰＤＬ形式で印刷する印刷ソリューションを提供することが可能となる。
【００６５】
また、ランゲージモニタ１３を用いることで、上述した追加処理アプリケーション１４による中間データへのアクセスを容易にし、クライアントＰＣ１０'とサーバ５０との通信プロトコルを意識することなく、通信可能な構成とすることが可能となる。更に、上述した各構成において管理用ＩＤを共有することで、中間データを追跡することが可能となる。
【００６６】
なお、上述したクライアントＰＣ１０'に係る各アプリケーション及び各ドライバ等における各処理は、クライアントＰＣ１０が有するＣＰＵ（第１のプロセッサ）により実現される。また、上述したサーバ５０に係る各アプリケーション及び各ドライバ等における各処理は、サーバ５０が有するＣＰＵ（第２のプロセッサ）により実現される。
【００６７】
＜ハードウェア構成＞
次に、上述した本実施形態に係るクライアントＰＣ等のハードウェア構成例について図を用いて説明する。図４は、ハードウェア構成の一例を示す図である。なお、図４の例では、上述した図２に示すクライアントＰＣ１０のハードウェア構成例を示すが、上述した図３に示すクライアントＰＣ１０'やプリンタ２０、サーバ５０においても同様の構成を用いることが可能である。
【００６８】
図４に示すように、クライアントＰＣ１０は、ＣＰＵ６０と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６２と、ＨＤＤ６３と、Ｉ／Ｆ部６４と、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６５と、操作部６６とを有するように構成される。
【００６９】
ＣＰＵ６０と、ＲＡＭ６１と、ＲＯＭ６２と、ＨＤＤ６３と、Ｉ／Ｆ部６４とは、バス６７を介して接続されている。また、Ｉ／Ｆ部６４に、ＬＣＤ６５と、操作部６６とが接続されている。なお、プリンタ２０の場合には、更に画像形成出力やスキャン等を実行するエンジンを有する。
【００７０】
ＣＰＵ６０は、演算手段であり、クライアントＰＣ１０全体の動作を制御する。ＣＰＵ６０は、第１のプロセッサとして、上述したクライアントＰＣ１０、１０'に係る各アプリケーション及び各ドライバ等における処理の実行を制御する。また、ＣＰＵ６０は、第２のプロセッサとして、上述したサーバ５０に係る各アプリケーション及び各ドライバ等における処理の実行を制御することが可能である。
【００７１】
ＲＡＭ６１は、情報の高速な読み書きが可能な揮発性の記憶媒体である。ＲＡＭ６１は、ＣＰＵ６０が情報を処理する際の作業領域として用いられる。
【００７２】
ＲＯＭ６２は、読み出し可能な不揮発性の記憶媒体である。ＲＯＭ６２には、ファームウェア等のプログラムが格納されている。ＨＤＤ６３は、情報の読み書きが可能な不揮発性の記憶媒体である。ＨＤＤ６３には、ＯＳや各種の制御プログラム、アプリケーションプログラム等が格納される。
【００７３】
Ｉ／Ｆ部６４は、各種ハードウェアやネットワーク等と接続する。ＬＣＤ６５は、例えばユーザによりクライアントＰＣ１０の状態を確認するためのユーザインターフェースである。操作部６６は、例えばキーボード、マウス、各種ハードボタン、タッチパネル等、ユーザにより情報を入力するためのユーザインターフェースである。なお、サーバ５０の場合には、ＬＣＤ６５や操作部６６等のユーザインターフェースを省略しても良い。
【００７４】
上述したハードウェア構成において、ＲＯＭ６２やＨＤＤ６３、光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ６１に読み出され、ＣＰＵ６０が読み出されたプログラムにより演算を行うことにより、上述した図２や図３に示す各装置が有する各手段の処理を実現するソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組合せにより、本実施形態に係るシステムを構成する各装置の機能を実現することが可能となる。
【００７５】
＜追加処理アプリケーション１４＞
次に、上述した追加処理アプリケーション１４について、具体的に説明する。図５は、本実施形態に係る追加処理アプリケーションを説明するための図である。なお、図５の例では、追加処理アプリケーション１４が有する中間データ処理手段３７により、中間データに対する付加的な機能の例として、例えばプレビュー表示やデータ加工を行う場合について説明する。
【００７６】
中間データ処理手段３７は、例えばプレビュー表示手段７１と、データ加工手段７２とを有するように構成される。プレビュー表示手段７１は、仮想プリンタドライバ１２から印刷終了のイベント情報を受け取ると、ランゲージモニタ１３を介して、例えば、印刷データ３４から印刷データを取得し、印刷設定情報３５から印刷設定情報を取得して、プレビュー表示を行う。
【００７７】
データ加工手段７２は、例えばプレビュー表示されたＧＵＩに対してユーザのデータ加工等の操作が入力されると、ランゲージモニタ１３を介して、例えば、印刷データと、印刷設定情報と、管理用ＩＤとをそれぞれ取得して、データ加工等を行う。
【００７８】
上述のように、データ加工手段７２によるデータ加工が終了すると、追加処理アプリケーション１４による付加的な処理が終了し、実プリンタドライバ１５に対して、管理用ＩＤが付加された中間データが送信される。
【００７９】
＜ランゲージモニタ１３の処理の流れ＞
次に、上述したランゲージモニタ１３の処理の流れの一例について説明する。図６は、ランゲージモニタ前後の処理の流れの一例を示す図である。なお、図６では、ランゲージモニタ１３前後の処理の一例を、仮想プリンタドライバ１２と、スプーラ８０と、ランゲージモニタ１３と、ポートモニタ８１と、プリンタ２０とを用いて説明する。
【００８０】
図６に示すスプーラ８０は、ＯＳ機能の１つであり、例えば仮想プリンタドライバ１２により出力されるデータを取得する。ランゲージモニタ１３は、上述したように、Ｗｉｎｄｏｗｓアーキテクチャの１モジュールであり、仮想プリンタドライバ１２の印刷時にスプーラ８０により呼び出されて動作する。
【００８１】
ランゲージモニタ１３は、スプーラ８０からデータを取得すると、例えば、予め指定されたキーにしたがって所定の領域にデータを格納する。ここで、通常の印刷処理の場合には、ポートモニタ８１がランゲージモニタ１３により格納されたデータを取得し、ポートドライバを介してプリンタ２０にデータを送信して、プリンタ２０により印刷が実行される。
【００８２】
なお、ランゲージモニタ１３は、例えばＷｉｎｄｏｗｓアーキテクチャで設定されているインターフェースを有し、ベンダが開発することも可能であるが、例えばＷｉｎｄｏｗｓ標準のランゲージモニタにより動作することも可能である。
【００８３】
＜ランゲージモニタ１３の利用態様＞
図７は、ランゲージモニタの利用態様の一例を示す図である。図７（Ａ）は、アプリケーションによるランゲージモニタの利用態様を示し、図７（Ｂ）は、ポイント＆プリント環境におけるランゲージモニタの利用態様を示している。
【００８４】
図７（Ａ）の例では、ランゲージモニタ１３は、外部のアプリケーションからアクセスを可能とするインターフェース（例えばＳｅｎｄＲｅｃｖＤａｔａＦｒｏｍＰｏｒｔ（））を有している。図７（Ａ）に示すアプリケーションは、ＯＳの機能の１つであるスプーラ８０が提供するインターフェース（例えばＢｉｄｉ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を用いて、ランゲージモニタ１３のインターフェース（例えばＳｅｎｄＲｅｃｖＤａｔａＦｒｏｍＰｏｒｔ（））を呼び出す。
【００８５】
スプーラ８０は、インターフェース（例えばＢｉｄｉ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）においてプリンタ名を指定することで、そのドライバに関連付いているランゲージモニタ１３のインターフェース（例えばＳｅｎｄＲｅｃｖＤａｔａＦｒｏｍＰｏｒｔ（））を呼び出す。
【００８６】
このとき、ランゲージモニタ１３には、特定のキーを渡すことができ、ランゲージモニタ１３は、特定のキーに応じてデータの読み書きを行う。すなわち、ランゲージモニタ１３は、特定のキーを受け取ると対応したデータを保存したり、特定のキーに対応したデータを読み出ししたりして、呼び出したアプリケーションの元にデータを返すことが可能である。
【００８７】
本実施形態では、例えば特定のキーの一例として、例えば中間データを一意に識別するための印刷ジョブごとに設定された固有のＩＤと印刷時の時間とをキーとして用いることが可能である。
【００８８】
図７（Ｂ）の例では、クライアントＰＣ１０'の仮想プリンタドライバ１２は、スプーラ８０Ａにより、ランゲージモニタ１３のインターフェース（例えばＳｅｎｄＲｅｃｖＤａｔａＦｒｏｍＰｏｒｔ（））を呼び出す。
【００８９】
また、サーバ５０の追加処理アプリケーション１４は、スプーラ８０Ｂのインターフェース（例えばＢｉｄｉ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を介して、ランゲージモニタ１３のインターフェース（例えばＳｅｎｄＲｅｃｖＤａｔａＦｒｏｍＰｏｒｔ（））を呼び出す。このように、クライアントＰＣ１０'又はサーバ５０は、例えばＷｉｎｄｏｗｓのＯＳのＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）等によりランゲージモニタ１３にアクセスすることが可能である。
【００９０】
＜イベント送受信＞
図８は、本実施形態に係るイベント送受信を説明するための図である。図８の例では、イベント送信手段３３及びイベント受信手段３８によるイベント情報の送受信について説明する。
【００９１】
図８に示すように、イベント情報の送受信には、メールスロット８２が用いられる。イベント受信手段３８が、特定のメールスロット名を指定し、メールスロット８２を生成する（ＣｒｅａｔｅＭａｉｌｓｌｏｔ（））。イベント送信手段３３は、イベント受信手段３８により指定されたメールスロット名を使用してメールスロット８２への書き込みを行う。
【００９２】
イベント受信手段３８は、メールスロット８２への書き込みがあったか監視し、メールスロット８２への書き込みがあった場合には、メールスロット８２の読み込みを行う。これにより、イベント送信手段３３からイベント受信手段３８へイベント情報が通知される。なお、使用するメールスロット名は、例えばレジストリや外部設定により変更する構成としても良い。
【００９３】
＜基本構成におけるシーケンス＞
図９は、本実施形態に係る基本構成におけるシーケンス図である。すなわち、図９の例では、クライアントＰＣ１０における印刷アプリケーション１１と、仮想プリンタドライバ１２と、ランゲージモニタ１３と、追加処理アプリケーション１４における中間データ処理手段３７のプレビュー表示手段７１と、データ加工手段７２と、ジョブ履歴保存手段３９と、実プリンタドライバ１５と、プリンタ２０とにより処理が実行される。
【００９４】
なお、図９の例では、説明の便宜上、クライアントＰＣ１０の記憶手段１６〜１７に記憶されている印刷データ３４、印刷設定情報３５、管理情報３６、及びジョブ履歴４０を示している。
【００９５】
図９に示すように、クライアントＰＣ１０において、印刷アプリケーション１１が印刷開始処理を実行すると（Ｓ１０）、仮想プリンタドライバ１２がランゲージモニタ１３に印刷設定情報を出力する（Ｓ１１）。ランゲージモニタ１３は、仮想プリンタドライバ１２から取得した印刷設定情報を、印刷設定情報３５に書き込む（Ｓ１２）。
【００９６】
印刷アプリケーション１１が印刷処理を実行すると（Ｓ１３）、仮想プリンタドライバ１２がランゲージモニタ１３に中間データを出力する（Ｓ１４）。ここで、ランゲージモニタ１３が印刷データを印刷データ３４に書き込み（Ｓ１５）、管理用ＩＤを管理情報３６に書き込む（Ｓ１６）。
【００９７】
次に、印刷アプリケーション１１が印刷終了処理を実行し（Ｓ１７）、仮想プリンタドライバ１２が印刷終了を通知すると（Ｓ１８）、プレビュー表示手段７１がランゲージモニタ１３に中間データの読み込みを指示する（Ｓ１９）。
【００９８】
ランゲージモニタ１３が印刷データ３４から印刷データを読み込むと（Ｓ２０）、プレビュー表示手段７１は、ランゲージモニタ１３を介して取得した印刷データに基づき、プレビュー表示を行う（Ｓ２１）。プレビュー表示手段７１は、例えばＬＣＤ６５等の表示装置を介したＧＵＩの表示により、プレビュー表示を行うと良い。
【００９９】
プレビュー表示手段７１は、Ｓ２１の処理によりプレビュー表示が終了すると、データ加工手段７２に対して印刷開始処理を通知する（Ｓ２２）。データ加工手段７２は、ランゲージモニタ１３に中間データの読み込みを指示すると（Ｓ２３）、ランゲージモニタ１３が印刷データ３４から印刷データを読み込み（Ｓ２４）、管理情報３６から管理用ＩＤを読み込む（Ｓ２５）。
【０１００】
また、データ加工手段７２は、ランゲージモニタ１３に印刷設定情報の読み込みを指示すると（Ｓ２６）、ランゲージモニタ１３が印刷設定情報３５から、印刷設定情報を読み込む（Ｓ２７）。
【０１０１】
データ加工手段７２は、ランゲージモニタ１３を介して取得した印刷データと、印刷設定情報と、管理用ＩＤとに基づき、データ加工処理を行う（Ｓ２８）。ここで、データ加工手段７２は、予め設定された付加機能に応じて、印刷データ及び印刷設定情報に対する編集を行っても良く、印刷設定情報に管理用ＩＤを付加する処理を行っても良い。
【０１０２】
データ加工手段７２は、実プリンタドライバ１５に対して印刷開始処理を実行すると（Ｓ２９）、実プリンタドライバ１５が、例えばプリンタ２０から印刷データを出力するためのジョブ生成処理を開始する（Ｓ３０）。
【０１０３】
データ加工手段７２が、実プリンタドライバ１５に対して印刷処理を実行すると（Ｓ３１）、実プリンタドライバ１５が、印刷データと印刷設定情報とに基づき、プリンタ２０に出力する印刷データを生成し、プリンタ２０に生成した印刷データを送信する（Ｓ３２）。
【０１０４】
データ加工手段７２が、実プリンタドライバ１５に対する印刷終了処理を実行すると（Ｓ３３）、ジョブ履歴保存手段３９は、中間データのジョブ名と管理用ＩＤとをジョブ履歴４０に保存し（Ｓ３４）、実プリンタドライバ１５の処理を終了させる（Ｓ３５）。
【０１０５】
次に、データ加工手段７２は、ランゲージモニタ１３に対して中間データの削除を指示すると（Ｓ３６）、ランゲージモニタ１３は、印刷データ３４の印刷データを削除し（Ｓ３７）、管理情報３６の管理用ＩＤを削除する（Ｓ３８）。データ加工手段７２が、ランゲージモニタ１３に対して印刷設定情報の削除を指示すると（Ｓ３９）、ランゲージモニタ１３は、印刷設定情報３５の印刷設定情報を削除する（Ｓ４０）。
【０１０６】
上述した処理により、印刷が完了した中間データとしての印刷データ、管理用ＩＤ、印刷設定情報が、クライアントＰＣ１０の所定の記憶領域から削除される。
【０１０７】
＜情報処理システム１００におけるシーケンス＞
図１０は、本実施形態に係る情報処理システムにおけるシーケンス図である。図１０の例では、クライアントＰＣ１０'が有する印刷アプリケーション１１と、仮想プリンタドライバ１２と、追加処理アプリケーション１４の中間データ処理手段３７のうちプレビュー表示手段７１と、サーバ５０が有するランゲージモニタ１３と、追加処理アプリケーション１４の中間データ処理手段３７のうちデータ加工手段７２と、ジョブ履歴保存手段３９と、実プリンタドライバ１５と、プリンタ２０とにより処理が実行される。
【０１０８】
なお、図１０の例では、説明の便宜上、サーバ５０の記憶手段１６〜１７等に記憶されている印刷データ３４、印刷設定情報３５、管理情報３６、及びジョブ履歴４０も示している。また、図１０の例は、ＥＭＦスプール形式のＳＳＲによる処理を実行するものである。
【０１０９】
図１０に示すように、クライアントＰＣ１０'の印刷アプリケーション１１が印刷開始処理を実行し（Ｓ５０）、仮想プリンタドライバ１２がサーバ５０のランゲージモニタ１３に印刷設定情報を出力する（Ｓ５１）。ランゲージモニタ１３は、仮想プリンタドライバ１２から取得した印刷設定情報を、印刷設定情報３５に書き込む（Ｓ５２）。
【０１１０】
クライアントＰＣ１０'の印刷アプリケーション１１が印刷処理を実行すると（Ｓ５３）、仮想プリンタドライバ１２が、サーバ５０のランゲージモニタ１３に中間データを出力する（Ｓ５４）。ここで、ランゲージモニタ１３が印刷データを印刷データ３４に書き込み（Ｓ５５）、管理用ＩＤを管理情報３６に書き込む（Ｓ５６）。
【０１１１】
このようにサーバ５０のランゲージモニタ１３を介して、クライアントＰＣ１０'の仮想プリンタドライバ１２により出力された印刷設定情報、印刷データ、管理用ＩＤは、サーバ５０の記憶領域にそれぞれ格納される。
【０１１２】
次に、クライアントＰＣ１０'の印刷アプリケーション１１が印刷終了処理を実行し（Ｓ５７）、仮想プリンタドライバ１２が印刷終了を通知すると（Ｓ５８）、プレビュー表示手段７１はサーバ５０のランゲージモニタ１３に中間データの読み込みを指示する（Ｓ５９）。
【０１１３】
サーバ５０のランゲージモニタ１３が、印刷データ３４から印刷データを読み込むと（Ｓ６０）、クライアントＰＣ１０のプレビュー表示手段７１は、サーバ５０のランゲージモニタ１３を介して取得した印刷データに基づきプレビュー表示を行う（Ｓ６１）。
【０１１４】
プレビュー表示手段７１は、Ｓ６１の処理によりプレビュー表示が終了すると、サーバ５０のデータ加工手段７２に対して印刷開始処理を通知する（Ｓ６２）。サーバ５０のデータ加工手段７２は、ランゲージモニタ１３に印刷設定情報の読み込みを指示すると（Ｓ６３）、ランゲージモニタ１３が印刷設定情報３５から印刷設定情報を読み込む（Ｓ６４）。
【０１１５】
次に、サーバ５０のデータ加工手段７２は、ランゲージモニタ１３に中間データの読み込みを指示すると（Ｓ６５）、ランゲージモニタ１３が印刷データ３４から印刷データを読み込み（Ｓ６６）、管理情報３６から管理用ＩＤを読み込む（Ｓ６７）。
【０１１６】
データ加工手段７２は、ランゲージモニタ１３を介して取得した印刷データと、印刷設定情報と、管理用ＩＤとに基づき、データ加工処理を行う（Ｓ６８）。
【０１１７】
次に、データ加工手段７２は、実プリンタドライバ１５に対して印刷開始処理を実行すると（Ｓ６９）、実プリンタドライバ１５がプリンタ２０に印刷データを出力するためのジョブ生成処理を開始する（Ｓ７０）。
【０１１８】
データ加工手段７２が、実プリンタドライバ１５に対して印刷処理を実行すると（Ｓ７１）、実プリンタドライバ１５が、印刷データと印刷設定情報とに基づき、プリンタ２０に出力する印刷データを生成し、プリンタ２０に生成した印刷データを送信する（Ｓ７２）。
【０１１９】
次に、データ加工手段７２は、実プリンタドライバ１５に対する印刷終了処理を実行すると（Ｓ７３）、ジョブ履歴保存手段３９は、中間データのジョブ名と管理用ＩＤとを、ジョブ履歴４０に保存し（Ｓ７４）、実プリンタドライバ１５の処理を終了させる（Ｓ７５）。
【０１２０】
次に、データ加工手段７２は、ランゲージモニタ１３に対して中間データの削除を指示する（Ｓ７６）。なお、図１０に示すランゲージモニタ１３によるＳ７７〜Ｓ８０の処理は、図９に示すランゲージモニタ１３によるＳ３７〜Ｓ４０の処理と同様の処理を実行するため、説明を省略する。
【０１２１】
上述のように、例えばランゲージモニタ１３を用いることで、追加処理アプリケーション１４は、中間データの保存先がクライアントＰＣ１０'かサーバ５０か意識することなく、中間データの保存先から中間データを容易に得ることが可能となる。
【０１２２】
＜ジョブ追跡時のシーケンス＞
図１１は、本実施形態に係るジョブ追跡時のシーケンス図である。図１１の例では、追加処理アプリケーション１４と、プリンタ２０とにより処理が実行される。
【０１２３】
図１１に示すように、例えば管理者が、追加処理アプリケーション１４に対して追跡したいジョブを指定し、ジョブの追跡要求（印刷要求に対する処理結果の要求）を行うと（Ｓ８１）、追加処理アプリケーション１４は、ジョブ履歴４０を参照して、ジョブに対応する中間データの管理用ＩＤを取得する（Ｓ８２）。
【０１２４】
次に、追加処理アプリケーション１４は、取得した管理用ＩＤに基づいて、プリンタ２０に対して管理用ＩＤに対応するジョブが成功したか又は失敗したか等の問い合わせを行い、プリンタ２０からジョブの印刷が成功したか否かの情報を取得する（Ｓ８３）。
【０１２５】
上述のように、中間データの管理用ＩＤを用いて、ジョブの印刷の成否に関する情報を取得することで、追加処理アプリケーション１４は、管理者等に対して、中間データのジョブの追跡結果を通知することが可能となる。
【０１２６】
なお、追加処理アプリケーション１４は、ポイント＆プリントの機能により同期されているため、クライアントＰＣ１０'側の追加処理アプリケーションからもジョブ履歴４０に保存された中間データの管理用ＩＤを取得し、ジョブの追跡を行うことが可能である。
【０１２７】
＜仮想プリンタドライバ１２の描画手段３１＞
次に、仮想プリンタドライバ１２の描画手段３１によるＸＰＳデータ生成処理について説明する。例えは、仮想プリンタドライバ１２にＸＰＳドライバを用いた場合、描画手段３１は、"Ｐｒｉｎｔ  Ｆｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅ  Ｓｅｒｖｉｃｅ"のプロセスで動作する。"Ｐｒｉｎｔ  Ｆｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅ  Ｓｅｒｖｉｃｅ"のプロセスに含まれるフィルタはベンダ側、すなわちプリンタ２０を提供する業者側で開発可能である。
【０１２８】
このフィルタ部分が、本実施形態では描画手段３１の中間データ生成手段３２として機能する。"Ｆｉｌｔｅｒ  Ｐｉｐｅｌｉｎｅ  Ｍａｎａｇｅｒ"と、"Ｉｎｔｅｒ−ｆｉｌｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ"とが連携してフィルタを呼び出し、全てのフィルタの処理が終了すると、処理が施された後のＸＰＳデータがスプーラに送信される。なお、フィルタ間で必要となる描画情報は、"Ｐｒｉｎｔ  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｐｅｒｔｙ  Ｂａｇ"を使用して設定及び取得が可能である。
【０１２９】
ＸＰＳのフィルタには種類があり、例えば"ＸｔｏＸＦｉｌｔｅｒ"や、"ＳｔｏＳＦｉｌｔｅｒ"等がある。"ＸｔｏＸＦｉｌｔｅｒ"は、ＸＰＳファイルをパーツごとに扱うことが可能である。パーツとは、例えばＸＰＳデータを構成するそれぞれの情報である。一方、"ＳｔｏＳＦｉｌｔｅｒ"は、ＸＰＳデータをストリームとして扱うことが可能である。
【０１３０】
本実施形態では、例えば印刷データと、印刷設定情報とを出力するフィルタを実装することで、印刷データと印刷設定情報とを出力することが可能となる。
【０１３１】
＜ＸＰＳデータの構造＞
次に、仮想プリンタドライバ１２により生成されるＸＰＳデータ（ドキュメント）の構造について説明する。ＸＰＳデータは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されたファイルフォーマットである。ＸＰＳファイルは、"Ｆｉｘｅｄ  Ｄｏｃｕｍｅｎｔ  Ｓｅｑｕｅｎｃｅ"、"Ｆｉｘｅｄ  Ｄｏｃｕｍｅｎｔ"、"Ｆｉｘｅｄ  Ｐａｇｅ"、"Ｉｍａｇｅ"、及び"Ｆｏｎｔ"のドキュメントデータと、それらに関連付けられたプリントチケットにより構成されている。したがって、上述した"ＸｔｏＸＦｉｌｔｅｒ"は、例えば各パーツに対してアクセスすることが可能である。
【０１３２】
＜中間データの出力態様＞
図１２は、本実施形態に係る中間データの出力態様を示す図である。図１２（Ａ）は、ＸＰＳファイルをそのまま中間データとして出力した例を示し、図１２（Ｂ）は、ページごとに分割して出力した例を示す図である。
【０１３３】
図１２（Ａ）の例では、例えば"ＳｔｏＳＦｉｌｔｅｒ"形式のフィルタで構成された描画手段３１により、中間データ生成手段３２は、ランゲージモニタ１３を介して、ＸＰＳデータを出力する。例えば"ＳｔｏＳＦｉｌｔｅｒ"は、ＸＰＳファイルをストリームとして扱うため、まとまったＸＰＳデータとしてデータが出力される。このＸＰＳデータには、プリントチケットが含まれるため、別途プリントチケットを出力する必要がない。
【０１３４】
図１２（Ｂ）の例では、"ＸｔｏＸＦｉｌｔｅｒ"形式のフィルタで構成された描画手段３１により、中間データ生成手段３２が、ランゲージモニタ１３を介してＸＰＳデータを構成するページごとのＸＭＬデータと、関連するフォント、イメージデータを出力する。
【０１３５】
これにより、追加処理アプリケーション１４は、ＸＰＳデータが全て出力される前に、中間データにアクセスすることが可能となる。また、図１２（Ｂ）の例では、更にプリントチケットが出力される。これにより、追加処理アプリケーション１４は、印刷設定情報を参照することが可能となる。
【０１３６】
本実施形態では、仮想プリンタドライバ１２により生成される中間データの先頭部分に管理用ＩＤを埋め込んでも良く、プリントチケットとして記述されている印刷設定情報に管理用ＩＤを埋め込んでも良い。
【０１３７】
また、追加処理アプリケーション１４から実プリンタドライバ１５に中間データを送信する場合には、プリントチケットに管理用ＩＤを埋め込んでも良く、Ｗｉｎｄｏｗｓ  Ｐｒｉｎｔ  ＡＰＩ等を利用して管理用ＩＤを送信しても良い。更に、実プリンタドライバ１５からプリンタ２０に印刷データを送信する場合には、例えばＰＪＬ等のコマンドを利用して管理用ＩＤを送信する。
【０１３８】
上述した実施形態によれば、各構成において中間データの管理用ＩＤを共有することで、汎用的なデータ形式の中間データの追跡が可能となる。
【０１３９】
また、汎用的なデータ形式の中間データを用いることで、追加処理アプリケーションにより付加的な機能を実現し、特定のＰＤＬ形式だけでなく、他のＰＤＬ形式で印刷する印刷ソリューションを提供することが可能となる。更に、ポイント＆プリント環境でも、ランゲージモニタを用いることで、追加処理アプリケーションが、中間データに対して容易に処理を行うことが可能となる。
【０１４０】
以上、開示の技術の好ましい実施形態について詳述したが、開示の技術に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された開示の技術の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０１４１】
１０，１０'  クライアントＰＣ
１１  印刷アプリケーション
１２  仮想プリンタドライバ（印刷要求受付手段の一例）
１３  ランゲージモニタ（第１の記憶制御手段の一例）
１４  追加処理アプリケーション（処理結果要求受付手段、取得手段の一例）
１５  実プリンタドライバ（変換手段、要求手段の一例）
１６，１７  記憶手段
２０  プリンタ（画像処理装置の一例）
２１  印刷手段
２２  ジョブ履歴保存手段
２３  通信手段
３０  印刷設定手段
３１  描画手段
３２  中間データ生成手段
３３  イベント送信手段（通知手段の一例）
３４  印刷データ
３５  印刷設定情報
３６  管理情報
３７  中間データ処理手段（処理手段の一例）
３８  イベント受信手段
３９  ジョブ履歴保存手段（第２の記憶制御手段の一例）
４０  ジョブ履歴
５０  サーバ
６０  ＣＰＵ
６１  ＲＡＭ
６２  ＲＯＭ
６３  ＨＤＤ
６４  Ｉ／Ｆ部
６５  ＬＣＤ
６６  操作部
６７  バス
７１  プレビュー表示手段
７２  データ加工手段
８０  スプーラ
８１  ポートモニタ
８２  メールスロット
１００  情報処理システム
【先行技術文献】
【特許文献】
【０１４２】
【特許文献１】特開２０１０−２８６８７３号公報
【図１】
2015007964.tif 000003
【図２】
2015007964.tif 000004
【図３】
2015007964.tif 000005
【図４】
2015007964.tif 000006
【図５】
2015007964.tif 000007
【図６】
2015007964.tif 000008
【図７】
2015007964.tif 000009
【図８】
2015007964.tif 000010
【図９】
2015007964.tif 000011
【図１０】
2015007964.tif 000012
【図１１】
2015007964.tif 000013
【図１２】
2015007964.tif 000014