(57)【特許請求の範囲】
【請求項１】
画像処理装置を制御する印刷制御プログラムと前記印刷制御プログラムからの要求に応じて処理を行う複数の処理プログラムを有する情報処理装置であって、
前記処理プログラムは、コンピュータを、
前記処理プログラムが処理を行う際に使用可能な機能情報を記憶する記憶手段と、
前記印刷制御プログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信する機能情報送信手段と、
前記機能情報に基づいた設定内容に従って前記印刷制御プログラムからの要求に応じて処理を行う処理手段として機能させ、
前記機能情報送信手段は、
前記印刷制御プログラムとは異なるプログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信する
ことを特徴とする情報処理装置。
【請求項２】
前記印刷制御プログラムは、コンピュータを、
前記複数の処理プログラムのうち要求可能な処理プログラムの情報を記憶する処理プログラム情報記憶手段と、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第一の機能情報要求手段と、
前記第一の機能情報要求手段による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第一の機能情報受信手段と、
前記第一の機能情報受信手段により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第一の画面生成手段と、
して機能させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記印刷制御プログラムと異なるプログラムは、コンピュータを、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第二の機能情報要求手段と、
前記第二の機能情報要求手段による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第二の機能情報受信手段と、
前記第二の機能情報受信手段により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第二の画面生成手段と、
して機能させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理プログラムを外部装置から受け付ける受付手段と、
前記受付手段で受け付けた処理プログラムの情報を前記処理プログラム情報記憶手段に記憶する処理プログラム情報記憶制御手段と、
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記第一の画面生成手段又は前記第二の画面生成手段によって生成された画面より設定内容の指定を受け付ける指定受付手段と、
処理を行うデータと共に前記指定受付手段が受け付けた設定内容を送信する処理要求送信手段と、
前記処理要求送信手段からの前記処理を行うデータと前記設定内容に従った情報を受信した場合、前記処理プログラムの情報に基づいて前記処理プログラムそれぞれに順次前記処理を行うデータと前記設定内容を送信する処理制御手段と、
を有することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記処理制御手段が各処理プログラムに処理をさせて得られた処理結果を外部装置に出力する出力手段を有することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
画像処理装置を制御する印刷制御プログラムを有する情報処理装置によって実行され、前記印刷制御プログラムからの要求に応じて処理を行う処理プログラムであって、
コンピュータを、
前記処理プログラムが処理を行う際に使用可能な機能情報を記憶する記憶手段と、
前記印刷制御プログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信する機能情報送信手段と、
前記機能情報に基づいた設定内容に従って前記印刷制御プログラムからの要求に応じて処理を行う処理手段として機能させ、
前記機能情報送信手段は、
前記印刷制御プログラムとは異なるプログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信する
ことを特徴とする処理プログラム。
【請求項８】
前記印刷制御プログラムは、コンピュータを、
前記複数の処理プログラムのうち要求可能な処理プログラムの情報を記憶する処理プログラム情報記憶手段と、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第一の機能情報要求手段と、
前記第一の機能情報要求手段による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第一の機能情報受信手段と、
前記第一の機能情報受信手段により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第一の画面生成手段と、
して機能させることを特徴とする請求項７に記載の処理プログラム。
【請求項９】
前記印刷制御プログラムと異なるプログラムは、コンピュータを、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第二の機能情報要求手段と、
前記第二の機能情報要求手段による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第二の機能情報受信手段と、
前記第二の機能情報受信手段により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第二の画面生成手段と、
して機能させることを特徴とする請求項８に記載の処理プログラム。
【請求項１０】
請求項７乃至９の何れか一項に記載の処理プログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項１１】
画像処理装置を制御する印刷制御プログラムと前記印刷制御プログラムからの要求に応じて処理を行う複数の処理プログラムを有する情報処理装置における情報処理方法であって、
前記処理プログラムにより、
前記処理プログラムが処理を行う際に使用可能な機能情報を記憶する記憶手順と、
前記印刷制御プログラムからの要求に応じて前記記憶手順に記憶された前記機能情報を送信する機能情報送信手順と、
前記機能情報に基づいた設定内容に従って前記印刷制御プログラムからの要求に応じて処理を行う処理手順とが実行され、
前記機能情報送信手順は、
前記印刷制御プログラムとは異なるプログラムからの要求に応じて前記記憶手順により記憶された前記機能情報を送信する
ことを特徴とする情報処理方法。
【請求項１２】
前記印刷制御プログラムにより、
前記複数の処理プログラムのうち要求可能な処理プログラムの情報を記憶する処理プログラム情報記憶手順と、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第一の機能情報要求手順と、
前記第一の機能情報要求手順による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第一の機能情報受信手順とが実行され、
前記第一の機能情報受信手順により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第一の画面生成手順が実行されることを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
前記印刷制御プログラムと異なるプログラムにより、
前記要求可能な処理プログラムの情報に基づいて前記処理プログラムそれぞれに前記機能情報を要求する第二の機能情報要求手順と、
前記第二の機能情報要求手順による要求に応じて前記処理プログラムそれぞれから送信された前記機能情報を受信する第二の機能情報受信手順と、
前記第二の機能情報受信手順により受信した機能情報に基づいて、設定内容を受け付けるための画面を生成する第二の画面生成手順と、
が実行されることを特徴とする請求項１２に記載の情  報処理方法。
【請求項１４】
前記処理プログラムを外部装置から受け付ける受付手順と、
前記受付手順で受け付けた処理プログラムの情報を記憶する処理プログラム情報記憶制御手順と、
を有することを特徴とする請求項１２に記載の情報処理方法。
【請求項１５】
前記第一の画面生成手順又は前記第二の画面生成手順によって生成された画面より設定内容の指定を受け付ける指定受付手順と、
処理を行うデータと共に前記指定受付手順で受け付けた設定内容を送信する処理要求送信手順と、
前記処理要求送信手順により前記処理を行うデータと前記設定内容に従った情報を受信した場合、前記処理プログラムの情報に基づいて前記処理プログラムそれぞれに順次前記処理を行うデータと前記設定内容を送信する処理制御手順と、
を有することを特徴とする請求項１３に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力するデータに対して特定の処理を行って処理結果を入力元に返す処理手段を有する情報処理装置、情報処理プログラム、記録媒体及び情報処理方法に関する。
【背景技術】
【０００２】
近年、コンピュータによりデバイスを制御する場合、オペレーティングシステム（ＯＳ）上でそのデバイスを制御するためのデバイスドライバプログラムを実行することにより、デバイスを制御するデバイスドライバの機能を実現することが行われている。この場合、ユーザが、文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリケーションプログラム（以下単に「アプリケーション」という）を実行して、デバイスに何らかの動作をさせることを指示すると、アプリケーションがその指示をデバイスドライバ（のプロセス）に渡し、デバイスドライバが指示に従ってデバイスの制御を行う。
【０００３】
例えばプリンタを制御して印刷を実行させる場合、ユーザが文書作成ソフトや表計算ソフト、画像編集ソフト等の各種アプリケーションで作成・閲覧した文書を印刷する指示を行うと、アプリケーションは、指示に従って印刷すべき文書のデータをプリンタドライバに渡し、プリンタドライバがその文書のデータをプリンタに渡して印刷を実行させる。
【０００４】
またこの時、集約、製本、拡大縮小、仕上げ処理等、プリンタが有する豊富な印刷機能に関する設定を受け付ける機能を提供し、ユーザが様々な設定を組み合わせることで、よりユーザの要望に適した印刷物を得ることを可能とする機能を搭載したプリンタドライバも提供されている。
【０００５】
ここで、プリンタドライバは、プリンタに印刷を実行させる際には、印刷を指示したアプリケーションから渡される印刷すべき文書の文書データを、印刷を実行させるプリンタが解釈可能なプリンタ言語形式のプリントデータに変換して、プリンタへデータを出力するためのポートモニタのスプールディレクトリにスプールする、という処理を行うことが一般的である。
【０００６】
そして、上記の集約、製本、拡大縮小、仕上げ処理等の機能を用いた印刷を行おうとする場合には、文書データからプリントデータを生成する際に、これらの機能に応じた処理を施し、これらの機能における設定内容（集約ページ数、ページの配置順、サイズ、ステープル有無等）を反映させたプリントデータを生成するようにしていた。
【０００７】
しかし、ユーザによっては、これらの機能の全てを必要とするわけではなかったり、業務環境によっては機能の着脱ができるようにすることを求める声もある。そこで、このような要望に応えるため、プリンタドライバを、文書データを通常印刷用のプリントデータに変換する処理を行なう基本部分と、集約、製本、拡大縮小、仕上げ処理等に関する処理を行う拡張部分とに分離し、拡張部分をプラグインモジュールとして構成することが行われている。この場合、必要な機能に応じたプラグインモジュールを基本部分に対して自由に着脱して、プリンタドライバに持たせる機能を変更することができる。このようなプリンタドライバについては、例えば特許文献１に記載されている。
【０００８】
また、マイクロソフト社により、非特許文献１にあるように、Microsoft Windows Vista（商標）における印刷支援機能として、文書データからプリントデータを生成する処理をいくつかのフィルタに分解して用意しておき、文書データからプリントデータを生成する際には、入力する文書データを必要なフィルタに順次処理させることにより、必要なプリントデータを生成させる機能が提案されている。また、この場合において、フィルタには、文書への地紋の付加等の特殊な機能に応じた処理を行うものもあり得ること、および、１つのフィルタが複数のドライバから呼び出されてもよいことも提案されている。
【特許文献１】特開２００４−３２６６０１号公報
【非特許文献１】"The XPSDrv Filter Pipeline"、[online]、２００５年１１月３日、Microsoft Corporation、インターネット
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、上述したプラグインモジュールにより機能の追加／削除を実現しようとする場合、プラグインモジュールは、あくまでもドライバ本体に対する拡張モジュールという位置づけであった。従って、プラグインモジュールの機能は、予め利用を想定している特定のドライバを介してしか利用することができず、アプリケーションが直接プラグインモジュールにアクセスしてその情報を取得したり、機能を利用したりすることはできなかった。また、アプリケーションが把握していないドライバに対して用意されたプラグインモジュールの機能は、そのアプリケーションからは全く利用することができなかった。このため、拡張機能の利用に関する自由度が低いという問題があった。
【００１０】
また、プリンタドライバ本体やプラグインモジュールの機能をアプリケーションから利用できるようにするためには、プリンタドライバに専用のＡＰＩ（Application Program Interface）を用意することが行われている。しかし、プリンタドライバ本体側において、機能拡張等のバージョンアップを行う場合、プラグインモジュールの機能自体は変更しない場合でも、プラグインモジュールとの関連性まで意識してＡＰＩの改変を行う必要が生じ、開発の負荷が大きくなってしまうという問題があった。
【００１１】
このような問題は、アプリケーションからプリンタドライバ以外の機能を利用しようとする場合でも、利用しようとする機能がプリントデータの生成以外の機能である場合でも、同様に発生するものである。
【００１２】
また、非特許文献１にも、Microsoft Windows Vista（商標）における印刷支援機能を活用して適切にこの問題を解決する手法は記載されていない。
【００１３】
この発明は、このような問題を解決し、外部のデータ処理機能を高い自由度でアプリケーションから呼び出して使用できる環境を、容易に構築できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するため請求項１に係る発明は、画像処理装置を制御する印刷制御プログラムと前記印刷制御プログラムからの要求に応じて処理を行う複数の処理プログラムを有する情報処理装置であって、前記処理プログラムは、コンピュータを、前記処理プログラムが処理を行う際に使用可能な機能情報を記憶する記憶手段と、前記印刷制御プログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信する機能情報送信手段と、前記機能情報に基づいた設定内容に従って前記印刷制御プログラムからの要求に応じて処理を行う処理手段として機能させ、前記機能情報送信手段は、前記印刷制御プログラムとは異なるプログラムからの要求に応じて前記記憶手段に記憶された前記機能情報を送信することを特徴とする。
【００３１】
また、この発明の記録媒体は、上記のいずれかのプログラムを記録したコンピュータにより読み取り可能な記録媒体である。
【発明の効果】
【００３３】
以上のようなこの発明の情報処理装置、情報処理プログラム、記録媒体及び情報処理方法によれば、外部のデータ処理機能を高い自由度でアプリケーションから呼び出して使用できる環境を、容易に構築できるようにすることができる。
【００３４】
また、この発明のプログラムによれば、コンピュータを情報処理装置として機能させ、上記の効果を得ることができる。この発明の記録媒体によれば、上記のプログラムを記憶していないコンピュータにそのプログラムを読み出させて実行させ、上記の効果を得ることができる。
【発明を実施するための最良の形態】
【００３５】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
【００３６】
まず図１に、この発明の情報処理装置の実施形態である端末装置と、その端末装置により処理した情報の送信先となる画像形成装置とを含む画像形成システムの構成例を示す。
【００３７】
この画像形成システムは、端末装置１０と画像形成装置２０とをネットワーク３０により接続して構成したものである。
【００３８】
このうち、端末装置１０は、ＰＣ（パーソナルコンピュータ）等のコンピュータにより構成することができる。画像形成装置２０は、プリンタやＭＦＰ（デジタル複合機）等、受信したデータに基づいて用紙に画像を形成する装置である。また、ネットワーク３０としては、ＬＡＮ（ローカルエリアネットワーク）を始め、有線、無線を問わず、任意の通信経路を採用可能である。
【００３９】
そして、端末装置１０から画像形成装置２０に印刷すべき画像のデータを送信し、印刷を要求することにより、画像形成装置２０にそのデータに従った画像の形成（印刷）を行わせることができる。
【００４０】
また、画像形成システムを構成する端末装置１０と画像形成装置２０の数は任意であり、各１台のみであっても構わない。さらに、端末装置１０と画像形成装置２０とを、ＵＳＢ（Universal Serial Bus）ケーブル等の通信経路４０によりネットワーク３０を介さずローカル接続しても構わない。
【００４１】
次に、図２に、上述した端末装置１０のハードウェア構成を示す。
【００４２】
端末装置１０は、ハードウェアとしては公知のＰＣを用いて構成することができ、例えば、ＣＰＵ１０１，ＲＯＭ１０２，ＲＡＭ１０３，不揮発性メモリ１０４，通信インタフェース（Ｉ／Ｆ）１０５を備え、これらがシステムバス１０６により接続された構成とすることができる。
【００４３】
そして、ＣＰＵ１０１に、ＲＯＭ１０２や不揮発性メモリ１０４に記憶されている適当なプログラムを実行させることにより、後述する種々の機能を実現することができる。
【００４４】
また、画像形成装置２０のハードウェア構成については図示を省略するが、画像形成装置２０については、ＣＰＵ，ＲＯＭ，ＲＡＭ等によって構成される制御部と、通信Ｉ／Ｆと、電子写真方式やインクジェット方式等、任意の方式で用紙に画像を形成するプリントエンジン等を有する公知のプリンタを採用することができる。
【００４５】
次に、図３に、端末装置１０からの指示により画像形成装置２０に画像形成を行わせる動作に関連する各装置の機能の構成を示す。
【００４６】
この図に示すように、端末装置１０には、一般的に、ワードプロセッサや表計算、ドローイングを始めとする種々の機能を実現するためのアプリケーション１１を備えており、ユーザは、このアプリケーション１１で取り扱う文書や図等を印刷するために、アプリケーション１１に対して印刷の指示を行う。
【００４７】
また端末装置１０には、アプリケーション１１が出力する、印刷すべき画像の内容を示す文書データを、画像形成装置２０が処理できる形式のプリンタ言語で記載されたプリントデータに変換するプリンタドライバ１２を備えている。そして、アプリケーション１１は、ユーザが印刷を指示した場合に、指定されたプリンタと対応するプリンタドライバ１２に、出力する画像の内容を示すデータを渡し、プリンタドライバ１２が、そのデータを、ユーザが指定したプリンタが処理できる形式のプリントデータに変換して図示しないスプールディレクトリにスプールする。
【００４８】
ポートモニタ１３は、端末装置１０と画像形成装置２０との間のデータの転送を行う機能を有し、スプールディレクトリにスプールされたデータを、使用する画像形成装置２０に送信する。
【００４９】
一方、画像形成装置２０には、通信Ｉ／Ｆ部２１と、主制御部２２と、プリントエンジン２３とを設けている。
【００５０】
そしてこのうち、通信Ｉ／Ｆ部２１は、端末装置１０等の外部装置から送信されてくるプリントデータを受信して主制御部２２に渡す機能を有する。
【００５１】
主制御部２２は、通信Ｉ／Ｆ部２１から渡されたプリントデータに基づいてプリントエンジン２３を駆動し、そのデータが示す内容の画像を形成させる機能を有する。この画像形成に係る処理は、例えばプリントデータに基づいて画像メモリに描画を行い、ビットマップ形式の画像データを生成し、その画像データに基づいてプリントエンジン２３を駆動することにより、用紙上に、受信したプリントデータに基づく画像を形成させるものである。
【００５２】
次に、図４に、図３に示したプリンタドライバの機能構成をより詳細に示す。また、図５には図４に示したフィルタ１つの構成をより詳細に示す。
【００５３】
この実施形態においては、図３に示したプリンタドライバ１２の機能は、図４に示すフィルタパイプラインマネージャ１２１，フィルタ構成ファイル１２２，ＵＩ制御部１２３及び、フィルタ記憶部１４０に格納されるフィルタ１４１により実現される。
【００５４】
そしてこのうち、アプリケーション１１が出力する文書データを画像形成装置２０が処理できるプリントデータに変換する機能に係る変換処理を実際に担当するのは、フィルタ１４１である。
【００５５】
すなわち、このフィルタ１４１は、入力するデータに対し、そのデータと共に与えられた設定内容に従った特定の処理を行って処理結果を入力元に返すモジュールであり、この処理に、文書データをプリントデータに変換する処理が含まれる。フィルタ１４１のうち、図５に示すデータ処理部２０１がこの処理を担当する処理手段である。
【００５６】
ただし、１つのフィルタ１４１が、アプリケーション１１が出力する文書データから最終的に画像形成装置２０に出力するプリントデータを生成する処理の全工程を担当するとは限らない。すなわち、フィルタ記憶部１４０に印刷に関するそれぞれ違った処理を担当するフィルタを複数設けておき、プリンタドライバ１２が、アプリケーション１１から渡される文書データを、これらのフィルタのうちから任意に選択されるフィルタに順次処理させることにより、最終的に画像形成装置２０に出力するプリントデータが得られる仕組みとしている。
【００５７】
なお、１つのフィルタに担当させる処理は、印刷の１つの機能と対応するものとすることが好ましい。この機能としては、集約、マーク／地紋付加、解像度設定、色調整、仕上げ（パンチ穴開け，ステープル等）等が考えられる。また、プリントデータの生成に最低限必要な処理を担当させる基本のフィルタを最低１つ用意し、この基本のフィルタに、上記のような各種機能を担当するフィルタを任意に組み合わせて、機能の着脱を行うことができるようにするとよい。
【００５８】
またフィルタ１４１は、図５に示すように、機能情報３００として、データ処理部２０１が入力するデータを処理する際に使用する設定内容に関して、設定し得る設定項目及びその各項目毎に設定し得る値の情報を示す情報を含んでいる。この機能情報３００は、フィルタ１４１の提供者が、データ処理部２０１で実行させる処理の内容に合わせて作成するものである。そして、情報提供手段であるＩ／Ｆ部２０２により、特定のコマンドや関数呼び出しに応じてその機能情報３００をコマンド送信元や関数呼び出し元に提供することができる。
【００５９】
ここでは、全てのフィルタ１４１について、外部から同じコマンドにより機能情報３００を取得できるようにしている。しかし、機能情報３００を要求する側が、フィルタ毎に使用するコマンドや関数を把握できるのであれば、フィルタ毎に異なるコマンドや関数を用いることもできる。
【００６０】
このフィルタ１４１の機能を実現するためのプログラムは、ＯＳ（オペレーティングシステム）としてMicrosoft Windows Vista（商標）を用いる場合には、フィルタ１つ毎にＤＬＬ（ダイナミックリンクライブラリ）として用意しておけばよい。また、機能情報３００については、ＯＳの規格により定められるPrintCapabilityのフォーマットで、ＸＭＬ（Extensible Markup Language）を用いて記載すればよい。
【００６１】
なお、端末装置１０は、外部（ネットワーク３０上のサーバ、種々の記憶媒体（ＣＤ、ＵＳＢメモリ等））からフィルタ１４１を取得し、取得したフィルタ１４１をフィルタ記憶部１４０以外の記憶領域に記憶する。フィルタ記憶部１４０以外の記憶領域に記憶されたフィルタ１４１はフィルタ構成ファイル１２２及びフィルタ記憶部１４０に登録されていないため、後述する選択済みリストおよび未選択リストに登録されていない。ＵＩ制御部１２３またはＵＩ制御部１１０は、フィルタ記憶部１４０以外の記憶領域に記憶されたフィルタ１４１から、そのフィルタ１４１のファイル名と機能名の情報を取得し、それらをフィルタ構成ファイル１２２に登録し、そのフィルタ１４１をフィルタ記憶部１４０に記憶する。これにより、そのフィルタ１４１は選択済みリストに登録される。なお、フィルタ構成ファイル１２２には登録せずに、フィルタ記憶部１４０のみに記憶することで、そのフィルタ１４１は、未選択リストに登録されるとしてもよい。
【００６２】
一方、図４に示すフィルタ構成ファイル１２２は、フィルタ記憶部１４０に設けられたフィルタのうち、プリントデータを生成する際に使用するフィルタの組み合わせと、その使用順とを示すデータを記憶するファイルであり、使用モジュール情報記憶手段である。なお、使用するフィルタが１つのみである場合もある。
【００６３】
そして、フィルタパイプラインマネージャ１２１は、アプリケーション１１から印刷内容を示す文書データと共にプリントデータの生成を要求する印刷コマンドを受け取った場合に、適当なフィルタ１４１にそのデータを渡してそのフィルタが担当する処理を実行させ、画像形成装置２０に出力するプリントデータを生成してポートモニタ１３に渡す。
【００６４】
この時、フィルタパイプラインマネージャ１２１は、フィルタ構成ファイル１２２を参照して処理に使用するフィルタを特定し、それらのフィルタに係るプログラムをロードする。そして、まず文書データ及び印刷コマンドに含まれる設定データを初めに使用するフィルタに渡して、その文書データに対して設定データの内容に従った処理を実行させ、その処理後のデータを受け取る。その後、その処理後のデータ及びコマンドに含まれる必要な設定データを次に使用するフィルタに渡して、その渡したデータに対して設定データの内容に従った処理を実行させ、その処理後のデータを受け取る。この動作を、使用する全てのフィルタについて繰り返すことにより、最終的に画像形成装置２０に出力するプリントデータを得ることができる。
【００６５】
このフィルタパイプラインマネージャ１２１は、処理制御手段に該当する。また、フィルタパイプラインマネージャ１２１及びフィルタ構成ファイル１２２については、例えばMicrosoft Windows Vista（商標）において標準の機能として提供されるものを利用することができる。この場合、フィルタ構成ファイル１２２のフォーマットはＯＳの規格により定められているので、ＸＭＬを用いてその定められたフォーマットで記載すればよい。
【００６６】
ＵＩ制御部１２３は、プリンタドライバ１２を用いてプリントデータを生成する際に必要な設定を受け付けるためのＧＵＩ（グラフィカル・ユーザ・インタフェース）のデータを生成するＧＵＩ作成手段である。
【００６７】
ここで、プリントデータを生成する際に必要な設定の内容は、生成の際に行う処理の内容、すなわち使用するフィルタの種類によって異なる。そこで、ＵＩ制御部１２３は、ＧＵＩのデータを作成する際、まずフィルタ構成ファイルを参照してプリントデータの生成に使用するフィルタを特定する。その後、使用する各フィルタにアクセスしてそのフィルタに係る処理に必要な設定項目及び各設定項目毎に設定し得る設定値の情報を取得し、取得した全ての設定項目につき、設定し得る値の範囲内で印刷に使用する値の指定を受け付けるためのＧＵＩのデータを生成する。
【００６８】
ＧＵＩを使用する際に、必ずフィルタ構成ファイル１２２を参照してデータを生成するようにすれば、プリントデータの生成に使用するフィルタが変更された場合でも、必ず、使用するフィルタに合った設定を受け付けるＧＵＩを生成することができる。
【００６９】
なお、具体的なＧＵＩのフォーマットについては、プリンタドライバ１２の作成者が任意に定めることができる。
【００７０】
また、ＵＩ制御部１２３は、アプリケーション１１等から印刷設定を行うためのＧＵＩの表示を要求された場合には、作成したデータに基づいてＧＵＩを画面に表示させ、印刷設定を受け付ける指定受付手段の機能も有する。そして、ここで受け付けた印刷設定の内容は、プリントデータの生成を要求する印刷コマンドに含める形で、フィルタパイプラインマネージャ１２１に渡される。
【００７１】
なお、ＵＩ制御部１２３と同様な機能は、フィルタ構成ファイル１２２及びフィルタ１４１にアクセスして内容を取得可能なモジュールであれば、どこにでも設けることができる。これは、フィルタ構成ファイル１２２及びフィルタ１４１を参照することにより、必要な設定項目や設定値の情報を取得できるためである。例えば、上述のようにＯＳの規格により定められるフォーマットでフィルタ構成ファイル１２２や機能情報３００を記載する場合、これらの内容を参照するためのプログラムはＯＳの規格に従って開発することができる。
【００７２】
従って、フィルタ１４１の機能を実現するＤＬＬやフィルタ構成ファイル１２２の格納位置がアプリケーション１１から把握できる場合には、アプリケーション１１側に、ＵＩ制御部１２３と同様な機能を有するＵＩ制御部１１０を設けてもよい。このようにすれば、アプリケーション１１の開発者が、自由にＧＵＩをデザインすることができ、設計の自由度が高まる。
【００７３】
なお、アプリケーション１１側にＵＩ制御部１１０があれば、プリンタドライバ１２がＵＩ制御部１２３を有することは必須ではない。しかし、ＵＩ制御部を有しないアプリケーションからもプリンタドライバ１２を利用できるようにするためには、プリンタドライバ１２にもＵＩ制御部１２３を設けておくことが好ましい。
【００７４】
次に、上述の機能情報３００及びフィルタ構成ファイル１２２の内容について説明する。
【００７５】
まず、図６乃至図９に、機能情報３００の例を示す。これらの図に示す例においては、PrintCapabilitiesの形式で機能情報３００を記載している（符号は３００ａ〜３００ｄを用いている）が、説明の用に供するため、簡略化して特徴的な部分のみを示している。なお、Microsoft Windows Vista（商標）の規格において、PrintCapabilitiesはプリンタドライバにより制御するプリンタが有する機能の内容を示すデータであるが、ここではデータ形式のみを流用し、これとは異なる目的に用いている。
【００７６】
図６に示す機能情報３００ａは、ＸＭＬ形式のデータであり、最上位の要素として、これがPrintCapabilitiesの形式で記載されたデータであることを示すPrintCapabilities要素１つを有している。また、このPrintCapabilities要素のname属性３０１として、フィルタ１４１の機能の名称を示す文字列を記載しており、この例ではその機能の名称は「集約」である。
【００７７】
そして、PrintCapabilities要素の子要素であるFeature要素１つが、フィルタによりデータを処理する際に用いる設定内容のうち設定項目１つを示す。また、そのname属性が、設定項目の内容を示す。図６の例では、２つのFeature要素３１０〜３２０により、「集約」機能に係る処理を行うフィルタにおいて、「集約ページ数」及び「順番」の２つの設定項目の設定が可能であることが示されている。ただし、これらの項目の設定は必須ではなく、フィルタに対して処理が要求される場合に、これらの設定項目の設定内容が渡されない場合には、所定のデフォルト値（例えば最初の選択肢の内容）を用いて処理するといった対応も可能である。
【００７８】
また、各Feature要素の子要素であるOption要素は、Feature要素が示す設定項目について設定できる各選択肢を示している。例えば、「集約ページ数」のFeature要素３１０（name属性の値が「集約ページ数」であるFeature要素）は、４つのOption要素３１１〜３１４を子要素として持ち、これらの各々のname属性の値が、「集約ページ数」の設定項目に設定可能な値として、「１」，「２」，「４」，「６」の４つの選択肢を示している。同様に、「順番」のFeature要素３２０が持つ４つのOption要素３２１〜３２４は、「順番」の設定項目に設定可能な値として、「右から」，「左から」，「上から」，「下から」の４つの選択肢を示している。
【００７９】
図７，図８に示す機能情報３００ｂ，３００ｃは、図６に示したものとは別のフィルタについての機能情報の例である。しかし、これらの機能情報３００ｂ，３００ｃも、データの構造は図６に示したものと同様である。
【００８０】
すなわち、図７に示した例は、PrintCapabilities要素のname属性の値により、「マーク」機能に係る処理を行うフィルタに関する機能情報であることを示しており、その下位のFeature要素３３１〜３３３により、「色」，「角度」，「位置」の設定項目の設定が可能であること、及びこれらの項目に設定可能な値を示している。
【００８１】
図８に示した例では、同様に、「解像度」機能に係る処理を行うフィルタについては、「解像度」の設定項目の設定が可能であること、及びこの項目に設定可能な値を示している。
【００８２】
なお、図６乃至図８に示した例では、各設定項目に設定可能な値を選択肢により示していたが、設定可能な値の範囲を規定できるようにしてもよい。この範囲は、数値を設定すべき設定項目については、その上限値と下限値により規定すればよい。この時、設定可能な値が連続値であるか、離散値（整数等）であるかを規定できるようにしてもよい。また、テキストや論理値（ＹＥＳ／ＮＯ）を設定可能である旨を規定できるようにしてもよい。
【００８３】
図９には、整数値を設定すべき設定項目を含む機能情報の例を示している。この図に示す機能情報３００ｄは、「基本」のフィルタに関する機能情報であり、２つのFeature要素３５１，３５２により「用紙サイズ」と「部数」の設定項目を示している。
【００８４】
このうち「用紙サイズ」については、所定の選択肢から選択を受け付けるここまで述べてきたような設定項目であるが、「部数」は、所定範囲の整数値を設定すべき設定項目である。Fueature要素３５２の子要素である３つのProperty要素３５３〜３５５により、整数値を設定すべきこと、その最小値が１であること、及びその最大値が９９９であることをそれぞれ示している。
【００８５】
次に、図１０に、フィルタ構成ファイル１２２に記載するフィルタ構成情報の例を示す。この図に示す例は、Microsoft Windows Vista（商標）の規格に従ったデータであるが、説明の用に供するため、特徴的な部分を簡略化して示している。
【００８６】
図１０に示すフィルタ構成情報４００も、ＸＭＬ形式のデータであり、最上位の要素として、これがフィルタ構成情報のデータであることを示すFilters要素１つを有している。
【００８７】
そして、Filters要素の子要素であるFIlter要素１つが、プリントデータの生成処理に使用するフィルタ１つを示す。Filter要素の記載順は、各フィルタを使用する順番を示す。
【００８８】
そして、Fiter要素のdll属性の値は、フィルタの機能を実現するためのプログラムのファイル名を示し、name属性の値は、フィルタにより実現される機能の名称を示す。なお、この名称としては、フィルタ構成情報の作成時に、フィルタが有する機能情報中の、PrintCapabilities要素のname属性の値を転記する。
【００８９】
図１０の例では、Filter要素４０１〜４０３により、プリンタドライバ１２においては、「基本」，「集約」，「マーク」の３つの機能に係るフィルタをこの順で使用することが示されている。
【００９０】
次に、これらのフィルタ構成情報及び機能情報に基づいて、プリンタドライバ１２がプリントデータを生成する際に必要な設定を受け付けるためのＧＵＩを表示する処理について説明する。
【００９１】
図１１に、この処理のフローチャートを示す。この処理は、図４に示したＵＩ制御部１２３又はＵＩ制御部１１０として機能するＣＰＵ１０１が実行する処理である。また、処理の開始タイミングは、プリンタドライバ１２に関する設定画面の表示が指示された場合（主として印刷実行に伴って印刷内容の設定を行う場合である）と、プリンタドライバ１２に対して後述する機能の追加／削除が行われた場合とである。
【００９２】
そして、ＣＰＵ１０１は、図１１に示す処理を開始すると、まずステップＳ１１で、印刷に使用する又は設定を行うプリンタドライバ１２に関するフィルタ構成ファイル１２２の内容（フィルタ構成データ）を構文解析（パース）する。このパースのためには、フィルタ構成データの書式に合ったパーサを予め準備しておく。また、フィルタ構成ファイル１２２の位置については、ＵＩ制御部にプリンタドライバ１２の識別情報と共に保持させておいたり、ＯＳの設定により定められた所定の記憶位置（フォルダ等）を検索して得たりすることが考えられる。
【００９３】
その後、ステップＳ１２で、フィルタ構成ファイルに登録されていた全フィルタについて、そのフィルタの機能を実現するためのプログラムがアクセス可能な位置に存在しているか否か判断する。図１０に示した例では、フィルタ構成データにはプログラムのファイル名のみ記載しているが、ＯＳの設定等により、フィルタ記憶部１４０として用いるフォルダが定められていれば、そのフォルダに格納されているファイルを検索し、フィルタ構成データに記載されたプログラムがあったか否かに応じて、ステップＳ１２の判断を行うことができる。
【００９４】
そして、ステップＳ１２でＹＥＳであれば、ステップＳ１３に進み、フィルタ構成ファイルに登録されていた各フィルタから、機能情報を取得する。上述のように、フィルタの機能を実現するためのプログラムを起動して、そのプログラムに係るプロセスに、機能情報を取得するための特定のコマンドを送信すれば、そのプロセスが、図５に示したＩ／Ｆ部２０２の機能により機能情報の内容を返してくる。
【００９５】
次のステップＳ１４では、フィルタ構成ファイルに登録されていた各フィルタに関して、取得した機能情報に従って、設定可能な各設定項目につき、設定可能な範囲の値の指定を受け付けるためのＧＵＩのデータを作成する。図６等を用いて説明した通り、機能情報には、フィルタによりデータを処理する際に用いる設定項目毎に、設定し得る設定値の情報が記載されているから、これらの情報に基づいて、どのようなＧＵＩを作成すればよいか判断できる。例えば、図６のFeature要素３１０が示す「集約ページ」の設定項目については、「１」，「２」，「４」，「６」の４つの選択肢を有するドロップダウンリストやラジオボタン、あるいは選択用アイコン等を用意すればよい。ただし、具体的にどのような操作によって指定を受け付けるＧＵＩとするかは、ＵＩ制御部の任意でよい。
【００９６】
このようなＧＵＩのデータは、例えば、ＸＭＬ形式で記載された機能情報を所定の規則に従って変換することにより作成できる。Feature要素のName属性の値に見出しを示すタグを付し、その下位のOption要素のName属性の値に、ドロップダウンリストに記載される選択候補であることを示すタグを付す等である。
【００９７】
次のステップＳ１５では、各フィルタについてステップＳ１４で作成したＧＵＩのデータを基本骨格に組み入れ、設定指示を受け付けるためのＧＵＩのデータを作成する。この基本骨格は、ＧＵＩのうちフィルタの内容に依存しない部分であり、例えば印刷ボタンやキャンセルボタン等がこれに該当する。なお、ＧＵＩを表示するシチュエーションに応じて異なる基本骨格を用いてもよい。
【００９８】
次のステップＳ１６では、作成したデータに基づいて画面にＧＵＩを表示し、ユーザからの操作を受け付ける状態に移行して、処理を終了する。
【００９９】
表示したＧＵＩ上に何か操作があった場合には、ＣＰＵ１０１は、その操作に応じて図１１とは別の処理を実行し、操作内容に従った動作を行う。
【０１００】
以上の処理において、ＣＰＵ１０１は取得手段、ＧＵＩ作成手段及び指定受付手段として機能する。
【０１０１】
図１２に、図１０に示したフィルタ構成情報に従って図１１に示した処理により表示されるＧＵＩの例を示す。
【０１０２】
図１２に示す印刷設定画面５００は、印刷実行時の印刷内容の設定を受け付ける画面である。そして、中央に位置する設定受付部５０１と、その下側の印刷ボタン５０２、キャンセルボタン５０３、および機能追加／削除ボタン５０４とを備える。
【０１０３】
このうち設定受付部５０１が、フィルタ構成データ及び機能情報に従って生成される部分であり、その他の部分が基本骨格に相当する部分である。図１２の例では、フィルタ１つ毎に、そのフィルタが使用する設定項目に関する設定を受け付けるための画面を用意し、これらの画面をタブにより切り換えることができるようにしている。
【０１０４】
印刷設定画面５００においては、図１０に示したフィルタ構成情報に「基本」，「集約」，「マーク」のフィルタが登録されていることに対応し、基本タブ５１１，集約タブ５２１，マークタブ５３１が設けられている。これらのタブのキャプションとしては、ここでは、フィルタ構成情報中のFilter要素のname属性の値をそのまま用いている。
【０１０５】
また、図１２には、印刷設定画面５００において集約タブ５２１が選択され、集約機能に関する設定を受け付けるための集約設定画面５２０が表示された状態を示している。また、集約機能に係るフィルタの構成情報は、図６に示した構成情報３００であり、この情報から、このフィルタに関する設定項目としては、「集約ページ数」と「順番」があることがわかる。
【０１０６】
そこで、これらの項目に関する設定を受け付けるためのドロップダウンリスト５２２，５２３を設けている。またここでは、これらのドロップダウンリストの見出し５２４，５２５として、機能情報３００中のFeature要素３１０，３２０のname属性の値をそのまま用いている。
【０１０７】
また、ドロップダウンリスト５２３については、ボタン５２３ａが押下され、選択肢が表示された状態を示している。この選択肢としては、「順番」のFeature要素３２０の下位のOption要素３２１〜３２４のname属性の値をそのまま用いている。
【０１０８】
この図には示していないが、基本タブ５１１やマークタブ５３１と対応する画面についても、同様にフィルタと対応する機能情報に基づいて自動的に作成することができる。
【０１０９】
また、設定受付部５０１以外の部分については、印刷ボタン５０２は、印刷の実行指示を受け付けるためのボタンである。この印刷ボタン５０２が押下された場合、印刷設定画面５００を表示させたＵＩ制御部１２３又は１１０は、印刷設定画面５００により受け付けた各フィルタの各設定項目についての設定値を含む印刷コマンドを生成し、印刷すべき文書のデータと共にフィルタパイプラインマネージャ１２１に渡して、プリントデータの生成を行わせる。
【０１１０】
また、キャンセルボタン５０３は、印刷を取り止める指示を受け付けるためのボタンである。
【０１１１】
機能追加／削除ボタン５０４は、プリンタドライバ１２における機能の追加や削除を行うための画面を表示させる指示を受け付けるためのボタンである。
【０１１２】
図１１に示した処理によれば、ＧＵＩを表示する時点のフィルタ構成ファイル１２２及び各フィルタの機能情報３００の内容に従って印刷設定画面のデータを生成しているため、プリントデータの生成に使用するフィルタが変更された場合でも、必ず、使用するフィルタに合った設定を受け付けるＧＵＩを生成することができる。
【０１１３】
ここで、図１３に、アプリケーション１１が自身に備えるＵＩ制御部１１０により印刷設定を受け付ける場合における、印刷指示受付から印刷実行までの手順で各部が実行する処理のシーケンスを示す。
【０１１４】
アプリケーション１１が画像形成装置２０を用いた印刷の指示を受け付けた場合、自身が備えるＵＩ制御部１１０の機能により、印刷に使用するプリンタドライバ１２についてのフィルタ構成ファイル１２２を参照して、その内容を構文解析する（Ｓ２１）。
【０１１５】
ここで、フィルタ構成ファイル１２２が図１０に示した内容であったとすると、構文解析により、プリントデータの生成にはフィルタ１４１ａ〜フィルタ１４１ｃの３つのフィルタを用いることがわかる。そこでＵＩ制御部１１０は、これらの各フィルタ１４１ａ〜１４１ｃに、PrintCapabilities取得のための所定のコマンドを送信し、これらの各フィルタ１４１ａ〜１４１ｃが使用する設定項目及び設定値の情報を示すPrintCapabilitiesを取得する（Ｓ２２〜Ｓ２４）。これらの取得順は順不同でよい。
【０１１６】
また、ＵＩ制御部１１０は、使用する各フィルタからPrintCapabilitiesを取得できると、その取得したPrintCapabilitiesに基づき図１２に示したようなＧＵＩを作成し、ディスプレイに表示して、各フィルタ１４ａ〜１４ｃが使用する設定項目についてのユーザからの設定操作を受け付ける（Ｓ２５）。
【０１１７】
そして、ユーザが必要な設定を行った後、印刷ボタン５０２を押下すると、ＵＩ制御部１１０は、送信する文書データに基づいてプリントデータを生成することを指示するコマンドを生成し、そのコマンドと共に印刷すべき文書の内容を示す文書データをフィルタパイプラインマネージャ１２１に対して送信する。なお、ここで送信するコマンドは、ステップＳ２５で受け付けた設定内容の情報を含むものである。また、ＯＳとしてMicrosoft Windows Vista（商標）を用いる場合、この設定内容の情報は、各フィルタのPrintCapabilitiesにおけるFeature属性毎にそのOption属性のいずれかを含むPrintTicket形式のデータとして記載するとよい。
【０１１８】
また、フィルタパイプラインマネージャ１２１は、上記のコマンドと文書データを受け取ると、フィルタ構成ファイル１２２を参照し、プリントデータの生成に使用するフィルタ１４１ａ〜１４１ｃを起動する。そして、これらの各フィルタ１４１ａ〜１４１ｃに対し、コマンドに含まれていた設定値のうち、フィルタにおける処理に使用する設定項目の設定値と共に、処理させるデータを送信し、処理後のデータを受け取るという動作を繰り返す（Ｓ２７〜Ｓ２９）。
【０１１９】
またこのとき、フィルタにデータを送信する順番は、フィルタ構成ファイル１２２の内容に従って定める。そして、初めのフィルタから受け取った処理後のデータを次のフィルタに送信してそのデータに対して次の処理を実行させ、そのフィルタから受け取った処理後のデータをその次のフィルタに送信してそのデータに対して次の処理を実行させ、という手順で各フィルタに順次処理を実行させる。そして、最後のフィルタから受け取った処理結果が、画像形成装置２０に送信すべきプリントデータになっているはずである。
【０１２０】
そこで、フィルタパイプラインマネージャ１２１は、最後のフィルタから処理結果を受け取ると、そのデータを、画像形成装置２０に印刷を指示する印刷コマンドと共に、ポートモニタ１３に送信し、所定のスプールディレクトリにスプールさせる（Ｓ３０）。
【０１２１】
その後、ポートモニタ１３が適当なタイミングでそのデータを画像形成装置２０に送信することにより（Ｓ３１）、画像形成装置２０に、送信したプリントデータに従った印刷、すなわちアプリケーション１１が出力した文書データ及びステップＳ２５でユーザから受け付けた設定内容に基づく印刷を行わせることができる（Ｓ３２）。
【０１２２】
次に、プリンタドライバ１２に対する機能の追加／削除について説明する。図４の説明で述べた通り、プリンタドライバ１２においては、フィルタパイプラインマネージャ１２１がプリントデータの生成時に使用するフィルタの種類を変更することにより、すなわち、フィルタ構成ファイル１２２の内容を変更することにより、印刷時に使用できる機能の追加／削除を行うことができる。
【０１２３】
ここで、図１４に、フィルタ構成ファイル１２２の内容の初期値を、図１５に、この内容に基づいて生成される印刷設定画面の例を示す。
【０１２４】
プリンタドライバ１２において、フィルタ構成ファイル１２２の内容（フィルタ構成データ）の初期値は、図１４に示すように、プリントデータの生成に基本のフィルタのみ使用するものとしている。そして、このフィルタにおいては、用紙サイズ及び部数といった基本的な設定のみが可能であり、図１４に示したフィルタ構成データに基づき、図９に示した基本のフィルタのPrintCapabilitiesを参照して図１１に示す処理により生成される印刷設定画面は、図１５に示すものとなる。
【０１２５】
この画面においては、設定受付部５０１には、「基本」のフィルタと対応する画面を選択するための基本タブ５１１のみを設け、基本機能に関する設定項目である「用紙サイズ」と「部数」の設定を受け付けるための基本画面５１０が表示された状態となる。そして、「用紙サイズ」については、所定の選択肢から選択させるものであるため、ドロップダウンリスト５１２により選択を受け付け、「部数」については、数値を指定させるものであるため、数値入力部５１３を設けてテキスト入力を受け付けると共に、増減ボタン５１３ａ，５１３ｂにより、入力した数値を増減させることができるようにしている。
【０１２６】
そして、ユーザはこの設定受付画面５００′において必要な設定を行って印刷ボタン５０２を押下することにより、基本機能のみを使った印刷を指示することができる。しかし、拡張機能も利用したい場合には、機能追加／削除ボタン５０４を押下することにより、フィルタパイプラインマネージャ１２１に使用させるフィルタを追加／削除するための機能変更モードに移行することができる。この点は、図１２に示したような、既にいくつか機能の追加された状態の設定受付画面５００において機能追加／削除ボタン５０４が押下された場合も同様である。
【０１２７】
図１６に、この機能変更モードの処理のフローチャートを示す。この処理は、図４に示したＵＩ制御部１２３又はＵＩ制御部１１０として機能するＣＰＵ１０１が実行する処理である。
【０１２８】
ＣＰＵ１０１は、図１１のステップＳ１６の処理でディスプレイに表示させた設定受付画面において、機能追加／削除ボタン５０４が押下されると、図１６のフローチャートに示す処理を開始する。このとき、フィルタ記憶部１４０以外の記憶領域にフィルタ１４１が記憶されている場合、ＵＩ制御部１２３またはＵＩ制御部１１０は、フィルタ記憶部１４０以外の記憶領域に記憶されたフィルタ１４１から、そのフィルタ１４１のファイル名と機能名の情報を取得し、それらをフィルタ構成ファイル１２２に登録し、そのフィルタ１４１をフィルタ記憶部１４０に記憶する。
【０１２９】
これにより、新たにフィルタ構成ファイル１２２に登録されたフィルタ１４１は、後述する選択済みリストに登録される。なお、フィルタ記憶部１４０以外の記憶領域に記憶されたフィルタ１４１をフィルタ構成ファイル１２２には登録せずに、フィルタ記憶部１４０のみに記憶することで、そのフィルタ１４１は、後述する未選択リストに登録されるとしてもよい。
【０１３０】
そして、まずステップＳ４１で、図１１のステップＳ１１の場合と同様、フィルタ構成ファイル１２２の内容を構文解析する。そして、ステップＳ４２乃至Ｓ４４で、フィルタ構成ファイル１２２に登録されていた各フィルタについて、そのフィルタのPrintCapabilitiesを参照して機能名（Filter要素のname属性の値）の情報を取得し、フィルタ機能を実現するプログラムのファイル名と共に、選択済みリストに登録する。
【０１３１】
図１７（ａ）にこの選択済みリストの例を示すが、このリストはフィルタ構成ファイル１２２に登録されている各フィルタのファイル名と機能名を登録するリストである。ここで示すのは、フィルタ構成ファイル１２２の内容が図１０に示したものである場合の例である。また、リストの形式については、フィルタ記憶部１４０に記憶しているフィルタの中でフィルタ構成ファイル１２２に登録されていない各フィルタのリストを示す、（ｂ）の未選択リストも同様である。なお、これらのリストの内容は、図１６の処理を開始する時点で空にしておく。
【０１３２】
図１６の説明に戻る。ステップＳ４２乃至Ｓ４４において、フィルタ構成ファイル１２２に登録されていた全フィルタの情報を選択済みリストに登録完了すると、ステップＳ４２の判断がＮＯになり、処理はステップＳ４５に進む。そして、所定のフィルタ保管場所（フィルタ記憶部１４０）に保管されているフィルタを検索する。なお、フィルタ保管場所の位置については、ＯＳの設定を参照して把握できることが好ましいが、そうでない場合には、他の何らかの手段により、ＵＩ制御部１２３とＵＩ制御部１１０との双方から把握できるようにする。
【０１３３】
ステップＳ４５の後は、ステップＳ４６乃至Ｓ４９で、これらのフィルタのうち選択済みリストに登録されていないもの、すなわちフィルタ構成ファイル１２２に登録されていないものにつき、ファイル名と機能名の情報を、図１７（ｂ）に示した未選択リストに登録する。そして、以上のステップＳ４９までの処理により、フィルタ記憶部１４０に記憶しているフィルタ全ての情報を選択済みリスト又は未選択リストに登録完了すると、ステップＳ４６の判断がＮＯになり、処理はステップＳ５０に進む。
【０１３４】
次のステップＳ５０では、ここまでの処理で作成した選択済みリスト及び未選択リストの内容に従い、ディスプレイにフィルタ構成設定画面を表示させる。その後ステップＳ５１で、この画面においてフィルタ構成の変更を指示する操作を受け付け、その操作内容に応じて選択済みリスト及び未選択リストの内容を更新する。
【０１３５】
ここで、図１８に、フィルタ構成設定画面の例を示す。
【０１３６】
この図に示すように、図１６のステップＳ５０の処理で表示させるフィルタ構成設定画面６００は、選択済みフィルタ表示部６０１、未選択フィルタ表示部６０２、削除ボタン６０３、追加ボタン６０４、ＯＫボタン６０５、キャンセルボタン６０６を備えるものである。
【０１３７】
このうち選択済みフィルタ表示部６０１は、フィルタ構成ファイル１２２に登録することが選択されているフィルタの一覧を表示する部分であり、初期値としては、図１６の処理で作成した選択済みリストに登録されている各機能名を表示する。
【０１３８】
また、未選択フィルタ表示部６０２は、フィルタ構成ファイル１２２に登録可能だが登録することが選択されていないフィルタの一覧を表示する部分であり、初期値としては、図１６の処理で作成した未選択リストに登録されている各機能名を表示する。
【０１３９】
そして、選択済みフィルタ表示部６０１においてフィルタ（機能）を選択して削除ボタン６０３を押下することにより、このフィルタを未選択フィルタ表示部６０２に移動させることができる。逆に、未選択フィルタ表示部６０６においてフィルタ（機能）を選択して追加ボタン６０４を押下することにより、このフィルタを選択済みフィルタ表示部６０１に移動させることができる。また、これらの操作がなされた場合、各表示部６０１，６０２の表示だけでなく、これに合わせて選択済みリスト及び未選択リストの内容も更新する。従って、これらの操作により、フィルタ構成ファイル１２２に登録するフィルタの追加／削除、すなわち印刷時に使用する機能の追加／削除を指示することができる。
【０１４０】
また、ＯＫボタン６０５はこのフィルタ構成設定画面６００で受け付けたフィルタ構成をフィルタ構成ファイル１２２に反映させる指示を受け付けるためのボタンである。キャンセルボタン６０６は、フィルタ構成ファイル１２２を変更せずにフィルタ構成設定画面６００を閉じる指示を受け付けるためのボタンである。
【０１４１】
そして、これらのいずれかが押下された場合、図１６に示した処理は、ステップＳ５１からＳ５２に進む。
【０１４２】
そして、変更を反映させる場合、すなわちＯＫボタン６０５が押下された場合には、ステップＳ５３に進み、この時点で選択済みリストに登録されている各フィルタをフィルタパイプラインマネージャ１２１が処理に使用するよう、選択済みリストの内容に基づいてフィルタ構成ファイル１２２の内容を更新する。
【０１４３】
その後、ステップＳ５４で、フィルタ構成設定画面６００を閉じると共に、図１１に示した処理を実行して、更新後のフィルタ構成ファイル１２２の内容に基づくＧＵＩ画面をディスプレイに表示させ、処理を終了する。
【０１４４】
また、ステップＳ５２でＮＯの場合、すなわちフィルタ構成設定画面６００でキャンセルボタン６０６が押下された場合には、ステップＳ５５でフィルタ構成設定画面６００を閉じて、以前表示していた設定受付画面５００に戻る。
【０１４５】
以上の処理により、ユーザは、フィルタパイプラインマネージャ１２１がプリントデータの生成に使用するフィルタ、すなわち印刷時に使用できる機能を、予め用意されたフィルタ（機能）の中から任意に組み合わせて設定することができる。
【０１４６】
そして、使用する機能を追加又は削除した場合でも、図１１に示した処理により、使用する機能について必要な設定項目の設定を過不足なく受け付ける印刷設定画面のＧＵＩが自動生成され、そのＧＵＩにより印刷設定を行うことができるため、設定時に混乱を来たすこともない。例えば、図１４に示した初期状態に、「集約」及び「マーク」のフィルタを追加したとすると、初期状態では図１５に示す内容であった印刷設定画面は、追加後には自動的に図１２に示す内容とすることができる。
【０１４７】
また、フィルタ構成ファイル１２２の内容及び各フィルタの機能情報を外部から取得可能としているため、使用するフィルタの設定機能や、ＧＵＩの自動生成機能は、アプリケーション１１によって提供することが可能である。従って、アプリケーション１１の開発者にとっては、アプリケーション１１の外部にあるプリンタドライバ１２によるデータ処理機能の利用や、そのためのＧＵＩの設計を、高い自由度で行うことができる。
【０１４８】
この効果は、第一義的には、各フィルタ１４１に機能情報３００及びその機能情報３００を外部に提供するＩ／Ｆ部２０２を設けたことによりもたらされるものである。また、ＵＩ制御部１１０がフィルタ構成ファイル１２２の内容に基づいて適切な機能情報３００を取得し、その内容に基づいてＧＵＩのデータを生成するようにしたことによってももたらされるものである。
【０１４９】
以上で実施形態の説明を終了するが、この発明において、装置の構成、具体的な処理内容、表示する画面の内容や用途、データの形式等が、以上説明してきた実施形態において具体的に説明したものに限られないことは、もちろんである。
【０１５０】
例えば、図４に示した例では、プリンタドライバ１２を１つのみ示したが、端末装置１０にプリンタドライバ１２を複数設けてもよいことはもちろんである。この場合、フィルタ記憶部１４０に記憶させたフィルタ１４１については、複数のプリンタドライバにより共有することが可能である。
【０１５１】
すなわち、フィルタ記憶部１４０には、どのドライバで使用するフィルタであるかに関わらずフィルタを登録可能であり、実際にどのフィルタを処理に使用するかは、フィルタ構成ファイル１２２により指定すればよい。そして、複数のフィルタ構成ファイル１２２に同じフィルタが登録されていても、全く問題ない。
【０１５２】
また、フィルタ構成ファイル１２２を特定のフォルダに格納するようにしておけば、プリンタドライバ１２が複数ある場合であっても、アプリケーションがそのフォルダを検索してフィルタ構成ファイル１２２の内容を参照することにより、端末装置１０にどのような処理を行うプリンタドライバが登録されているかを把握することができる。
【０１５３】
また、フィルタパイプラインマネージャ１２１やＵＩ制御部１２３の設計によっては、プリンタドライバ毎にこれらの構成要素を用意しなくても、単にフィルタ構成ファイル１２２を複数設け、場合によって使用するフィルタ構成ファイルを切り換えることにより、１つのフィルタパイプラインマネージャやＵＩ制御部をこの切り替えに応じて異なるプリンタドライバとして機能させる構成とすることも可能である。
【０１５４】
また、上述した実施形態では、図１２，図１５，図１８に示したＧＵＩのキャプションとして、フィルタ構成情報やフィルタの機能情報に含まれる要素のname属性の値をそのまま用いていた。しかし、これらのname属性をより記号的な値とし、name属性の値とキャプションとの対応関係を示すデータを別途用意し、任意の文字列をキャプションとして用いることができるようにしてもよい。この場合に、ユーザがキャプションを変更できるようにしてもよい。
【０１５５】
また、上述した実施形態では、各フィルタが有する機能情報をPrintCapabilities形式のデータとして取扱い、フィルタ構成ファイル１２２も、Microsoft Windows Vista（商標）により規定された形式のデータとして取り扱う例について説明した。この形式であると、公知のＯＳが提供する機能を利用して容易にこの発明の情報処理装置を構成することができるが、他のデータ形式を用いたとしても、同等な機能を実現することは可能である。
【０１５６】
また、各プリンタやプリンタドライバが有する機能や選択可能な選択肢が、上述した実施形態のものに限られないことは、もちろんである。
【０１５７】
また、上述した実施形態では、フィルタをプリンタドライバ１２と同じ端末装置１０に記憶させる例について説明したが、フィルタの記憶位置はこれに限られない。フィルタパイプラインマネージャ１２１及びＵＩ制御部１２３，１１０から参照できる位置であれば、プリンタドライバ１２やアプリケーション１１とは異なる装置に記憶されていてもよい。
【０１５８】
また、この発明を、プリンタ以外のデバイスを制御するデバイスドライバ手段を有する情報処理装置に適用してもよいことはもちろんである。例えば、この発明は、スキャナ・ファクシミリ装置・複写機を始めとする種々の画像形成装置，ネットワーク家電，自動販売機，医療機器，電源装置，空調システム，ガス・水道・電気等の計量システム，自動車，航空機等の任意の電子装置を制御するためのデバイスドライバ手段及びそのデバイスドライバ手段を有する情報処理装置を構成する場合に適用可能である。
【０１５９】
また、この発明の記録媒体は、コンピュータにハードウェアを制御させて上述したようなデバイスドライバ手段として機能させるためのプログラムを記録した記録媒体である。このような記録媒体からこのプログラムをＲＡＭに読み出させてＣＰＵに実行させることにより、上述した実施形態や変形例と同様の効果を得ることができる。また、このようなプログラムを、記録媒体の配布によらず、ダウンロード等により提供することも可能である。
【０１６０】
また、以上述べてきた各実施形態の構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【０１６１】
以上説明してきたように、この発明の情報処理装置、情報処理装置の制御方法、プログラム又は記録媒体によれば、外部のデータ処理機能を高い自由度でアプリケーションから呼び出して使用できる環境を、容易に構築できるようにすることができる。
【０１６２】
従って、この発明を適用することにより、利便性の高い情報処理装置を提供することができる。
【図面の簡単な説明】
【０１６３】
【図１】この発明の情報処理装置の実施形態である端末装置と、その端末装置により処理した情報の送信先となる画像形成装置とを含む画像形成システムの構成例を示すブロック図である。
【図２】図１に示した端末装置のハードウェア構成を示すブロック図である。
【図３】図１に示した端末装置からの指示により画像形成装置に画像形成を行わせる動作に関連する各装置の機能の構成を示す機能ブロック図である。
【図４】図３に示したプリンタドライバの機能構成をより詳細に示す図である。
【図５】図４に示したフィルタ１つの構成をより詳細に示す機能ブロック図である。
【図６】図５に示した機能情報の例を示す図である。
【図７】機能情報の別の例（その１）を示す図である。
【図８】機能情報の別の例（その２）を示す図である。
【図９】機能情報の別の例（その３）を示す図である。
【図１０】図４に示したフィルタ構成ファイルに記載するフィルタ構成情報の例を示す図である。
【図１１】フィルタ構成情報及び機能情報に基づいて、プリンタドライバがプリントデータを生成する際に必要な設定を受け付けるためのＧＵＩを表示する処理のフローチャートである。
【図１２】図１０に示したフィルタ構成情報に従って図１１に示した処理により表示されるＧＵＩの例を示す図である。
【図１３】図４に示したアプリケーションが自身に備えるＵＩ制御部により印刷設定を受け付ける場合における、印刷指示受付から印刷実行までの手順で各部が実行する処理のシーケンスを示す図である。
【図１４】フィルタ構成ファイルの内容の初期値を示す図である。
【図１５】図１４に示した内容に基づいて生成される印刷設定画面の例を示す図である。
【図１６】機能変更モードの処理のフローチャートである。
【図１７】図１６に示した処理で生成される選択済みリスト及び未選択リストの例を示す図である。
【図１８】フィルタ構成設定画面の例を示す図である。
【符号の説明】
【０１６４】
１０：端末装置、１１：アプリケーション、１２：プリンタドライバ、
１３：ポートモニタ、２０：画像形成装置、２１：通信Ｉ／Ｆ部、２２：主制御部、
２３：プリントエンジン、１１０，１２３：ＵＩ制御部、
１２１：フィルタパイプラインマネージャ、１２２：フィルタ構成ファイル、
２０１：データ処理部、２０２：Ｉ／Ｆ部、３００：機能情報
【図１】
0005326477.tif 000002
【図２】
0005326477.tif 000003
【図３】
0005326477.tif 000004
【図４】
0005326477.tif 000005
【図５】
0005326477.tif 000006
【図６】
0005326477.tif 000007
【図７】
0005326477.tif 000008
【図８】
0005326477.tif 000009
【図９】
0005326477.tif 000010
【図１０】
0005326477.tif 000011
【図１１】
0005326477.tif 000012
【図１２】
0005326477.tif 000013
【図１３】
0005326477.tif 000014
【図１４】
0005326477.tif 000015
【図１５】
0005326477.tif 000016
【図１６】
0005326477.tif 000017
【図１７】
0005326477.tif 000018
【図１８】
0005326477.tif 000019