(57)【要約】【課題】  ドライバの構成を直接変更できないような環境でも、複数のドライバの機能を組み合わせたドライバを、組み合わせ変更の自由度が高い状態で利用できるようにする。【解決手段】  統合ドライバ１５０において、仲介フィルタ１５２−１〜ｎにそれぞれ、実動作フィルタ構成ファイル１７０を参照してそこに自身と対応して登録された情報が示すフィルタに対して、受け取ったデータの処理を依頼する機能を設けた。そして、他のドライバからそのドライバが提供する機能の情報を取得し、その情報に基づき、仲介フィルタ１５２−１〜ｎに利用させる機能を選択して、その機能を提供するフィルタの情報を、実動作フィルタ構成ファイル１７０に登録するようにした。【選択図】        図５
2014059776.tif 000002
【特許請求の範囲】
【請求項１】
第１のドライバと、
前記第１のドライバが利用するモジュールであり、所定の記憶手段に記憶されているモジュール情報が示すモジュールに処理を実行させる機能を備える仲介モジュールと、
複数の第２のドライバから該第２のドライバが提供する機能を示す機能情報を取得する機能情報取得手段と、
前記機能情報取得手段が取得した機能情報に基づき、前記仲介モジュールに利用させる機能を選択して、該利用させる機能を提供するモジュールを示すモジュール情報を前記所定の記憶手段に記憶させるモジュール設定手段とを備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記各第２のドライバは外部装置を制御するためのデバイスドライバであって、
前記モジュール設定手段は、
前記各第２のドライバが提供する機能のうち前記第２のドライバが備えるモジュールのみで提供可能な機能と、前記外部装置のハードウェアを利用して提供される機能とを識別する識別手段を備え、
前記第２のドライバが備えるモジュールのみで提供可能な機能を、前記仲介モジュールに利用させる機能として選択することを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記各第２のドライバは、それぞれ対応付けられた外部装置を制御対象とするデバイスドライバであり、
前記第１のドライバもデバイスドライバであり、
前記第１のドライバの制御対象を、前記複数の第２のドライバから選択された１つの第２のドライバの制御対象である外部装置と定める制御対象設定手段を備えることを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記モジュール設定手段が前記仲介モジュールに利用させる機能として選択した機能に関する設定を受け付ける設定受付手段を備え、
前記設定受付手段は、前記選択された１つの第２のドライバが提供する機能については、前記モジュール設定手段が前記仲介モジュールに利用させる機能として選択した機能だけでなく、前記外部装置のハードウェアを利用して提供される機能についても設定を受け付けることを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の情報処理装置であって、
前記モジュール設定手段がいずれの第２のドライバが提供する機能を前記仲介モジュールに利用させる機能として選択するかを指定する指定手段を備えたことを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の情報処理装置であって、
当該情報処理装置に新たにドライバがインストールされた時に、該新たにインストールされたドライバも前記第２のドライバとして扱って、前記機能情報取得手段が前記機能情報の取得を行い、前記モジュール設定手段が前記機能の選択及び前記モジュール情報の記憶を行うことを特徴とする情報処理装置。
【請求項７】
コンピュータを、請求項１乃至６のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ドライバを備える情報処理装置、コンピュータをこのような情報処理装置として機能させるためのプログラム、およびこのようなプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
情報処理装置で用いるデバイスドライバとして、近年、ＸＰＳ（XML Paper Specification：登録商標）と呼ばれるタイプのドライバが提案されている。このＸＰＳドライバは、フィルタパイプラインマネージャを用いて入力データを複数のフィルタに順次処理させることにより、種々の機能を実現するものである。
このようなＸＰＳドライバに関しては、例えば特許文献１に記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述のＸＰＳドライバは、その機能が複数のフィルタにより実現されるが、基本的には、そのうち１つのフィルタを取り出しても、該当のフィルタにより提供される機能を利用することができる。
従って、複数のドライバが備えるフィルタを適宜組み合わせて利用できるようにし、その各フィルタに関する設定を受け付けるＵＩ（ユーザインタフェース）を用意して、複数のドライバの機能を同時に利用できるようにした統合ドライバを作成することも考えられる。
【０００４】
この場合において、この統合ドライバについて、例えばどのフィルタをどの順で利用するかを定義したフィルタ構成情報を用意することになる。しかし、統合ドライバを、フィルタ構成情報を変更する権限がない場所にインストールする場合、インストール後にフィルタ構成情報を変更することができないという問題があった。
【０００５】
例えば、Ｗｉｎｄｏｗｓ（登録商標）８においてサポートされるVersion4ドライバと呼ばれるプリンタドライバの場合、DriverStoreという特殊な権限のフォルダでドライバが動作するため、通常の管理者権限であってもフィルタ構成情報を変更することができないという問題があった。
【０００６】
このため、統合ドライバを一旦インストールしてしまうと、その後、利用する機能の組み合わせを変えることが困難であった。
このような問題は、上述した具体的な環境に限らず、他の環境においても同様に発生し得るものである。
【０００７】
この発明は、このような背景に鑑みてなされたものであり、ドライバの構成を直接変更できないような環境でも、複数のドライバの機能を組み合わせたドライバを、組み合わせ変更の自由度が高い状態で利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
この発明は上記の目的を達成するため、情報処理装置において、第１のドライバと、上記第１のドライバが利用するモジュールであり、所定の記憶手段に記憶されているモジュール情報が示すモジュールに処理を実行させる機能を備える仲介モジュールと、複数の第２のドライバからその第２のドライバが提供する機能を示す機能情報を取得する機能情報取得手段と、上記機能情報取得手段が取得した機能情報に基づき、上記仲介モジュールに利用させる機能を選択して、その利用させる機能を提供するモジュールを示すモジュール情報を上記所定の記憶手段に記憶させるモジュール設定手段とを設けたものである。
【発明の効果】
【０００９】
上述の構成によれば、ドライバの構成を直接変更できないような環境でも、複数のドライバの機能を組み合わせたドライバを、組み合わせ変更の自由度が高い状態で利用できるようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の情報処理装置の実施形態であるＰＣを含む情報処理システムの構成を示す図である。
【図２】図１に示したＰＣのハードウェア構成を示す図である。
【図３】そのＰＣにおけるプリンタドライバの位置づけについて説明するための図である。
【図４】そのＰＣにおいて印刷の手順に関わる各部の構成を示す図である。
【図５】統合ドライバの機能構成を示す図である。
【図６】統合ドライバにおけるＮ番目の仲介フィルタの機能と対応する処理のフローチャートである。
【図７】統合ドライバのフィルタ構成ファイルの例を示す図である。
【図８】図１に示したＰＣにおける実動作フィルタ構成ファイルの生成に係る機能の構成を示す図である。
【図９】図１に示したＰＣのＣＰＵが実行する、実動作フィルタ構成ファイルの生成処理のフローチャートである。
【図１０】図９のステップＳ２８における判定処理について説明するための図である。
【図１１】判定処理の例として用いるプリンタドライバの特性を示す図である。
【図１２】図１１に示したプリンタドライバに関する判定処理について説明するための図である。
【図１３】図９のステップＳ２５で作成されるドライバ機能リストの例を示す図である。
【図１４】図９のステップＳ２８終了後のドライバ機能リストの例を示す図である。
【図１５】設定受付画面の例を示す図である。
【図１６】第１の変形例における設定受付画面の例を示す図である。
【図１７】第２の変形例における設定受付画面の例を示す図である。
【図１８】その別の状態の例を示す図である。
【図１９】第３の変形例におけるドライバ選択画面の例を示す図である。
【図２０】第４の変形例における設定受付画面の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
図１は、この発明の情報処理装置の実施形態であるＰＣを含む情報処理システムの構成を示す図である。
【００１２】
この情報処理システム１は、ＰＣ１０と画像処理装置２０Ａ，２０Ｂとをネットワーク３０を介して接続したものである。ネットワーク３０は、例えばＬＡＮ（ローカルエリアネットワーク）とすることが考えられるが、有線、無線を問わず任意の方式のものを採用可能である。
【００１３】
また、ＰＣ１０は、この発明の情報処理装置の実施形態である。そして、詳細は後述するが、画像処理装置２０Ａ，２０Ｂを制御するためのドライバとして、それぞれフィルタにより実現される１又は複数の機能を備える１又は複数のデバイスドライバ（第２のドライバ）と、その各ドライバの機能を統合して利用可能な統合ドライバ（第１のドライバ）とを備える。また、ＰＣ１０は、自身が備えるデバイスドライバが提供可能な機能およびユーザからの指示等に応じて、統合ドライバの機能を構築する機能も備える。
【００１４】
また、画像処理装置２０Ａ，２０Ｂは、それぞれ外部から供給される出力データに従って画像を処理する機能を備える。その処理には、加工、印刷、蓄積、メールやファクシミリによる送信、表示手段による表示、スクリーンへの投影等が考えられる。また、印刷の場合、製本やソート等、印刷後の用紙に対する加工を行えるようにしてもよい。
【００１５】
以上の処理の指示は、ＰＣ１０が備える、画像処理装置２０Ａ，２０Ｂと対応するデバイスドライバから行うことができる。
また、ここでは、画像処理装置２０Ａ，２０Ｂは、印刷機能を備えるプリンタであり、これらと対応するデバイスドライバはプリンタドライバであるとして説明する。また、個体を区別する必要がない場合には、画像処理装置２０の符号を用いる。
【００１６】
次に、図２に、ＰＣ１０のハードウェア構成を示す。
ＰＣ１０は、ハードウェアとしては公知のコンピュータを適宜採用できる。例えば、図２に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信Ｉ／Ｆ１４、ＨＤＤ（ハードディスクドライブ）１５、ＵＩ（ユーザインタフェース）部１６をシステムバス１７により接続した構成とすることができる。
【００１７】
そして、ＣＰＵ１１がＲＡＭ１３をワークエリアとしてＲＯＭ１２あるいはＨＤＤ１５に記憶されたプログラムを実行することにより、ＰＣ１０全体の動作を制御し、後述する統合ドライバの制御をはじめとする種々の機能を実現することができる。
また、ＨＤＤ１５は、統合ドライバが利用するフィルタを規定するフィルタ構成ファイルを記憶する記憶手段として機能する。
通信Ｉ／Ｆ１４は、ＬＡＮ（ローカルエリアネットワーク）等のネットワークを介して画像処理装置２０等の外部装置と通信するためのインタフェースである。
【００１８】
ＵＩ部１６は、ユーザの操作を受け付けるための操作部や、ユーザに情報を提示するための表示部を含む操作受付手段である。外付けの操作部や表示部を用いてもよいことはもちろんである。
なお、ユーザの操作は、外部装置から操作内容を示すデータを受信することにより受け付けてもよい。また、ユーザへの情報の提示は、画面の表示内容を示すデータや画面に表示させるべきデータを外部装置へ送信することによって行ってもよい。
【００１９】
次に、図３に、ＰＣ１０におけるプリンタドライバの位置づけを示す。
このＰＣ１０は、Microsoft社のWindows（登録商標）を基本ソフトウェア（ＯＳ）に採用していて、他のソフトウェアはこのＯＳ上で動作する。
アプリケーション１１１は、文書作成、画像作成、画像編集、画像加工、表計算等の、ユーザが文書等のデータの編集に用いる機能を実現するソフトウェアモジュールである。
【００２０】
スプーラ１１２は、ＯＳの印刷機能を管理するソフトウェアモジュールである。そして、画像処理装置２０を制御するためのデバイスドライバである各種プリンタドライバ１２０ａ〜１２０ｃは、このスプーラ１１２の一部として動作する。統合ドライバ１５０についても、ＯＳ上の扱いは、他のプリンタドライバ１２０ａ〜１２０ｃ（以後、個体を区別する必要がない場合には符号「１２０」を用いる）と並列である。
【００２１】
ドライバ選択部１１３は、スプーラ１１２が備えるプリンタドライバ１２０及び統合ドライバ１５０の中から、印刷に使用するドライバを選択する機能を備えるソフトウェアモジュールである。この選択は、自動で行っても、ユーザの操作に従って行ってもよい。プリンタドライバ１２０が画像処理装置２０と対応付けられていれば、印刷に用いる画像処理装置２０の選択に従ってドライバの選択を行うこともできる。
【００２２】
パラレルＩ／Ｆ１３１、ＵＳＢ（Universal Serial Bus）Ｉ／Ｆ１３２及びネットワークＩ／Ｆ１３３は、図２に示した通信Ｉ／Ｆ１４の具体例である。このうちパラレルＩ／Ｆ１３１は、ＩＥＥＥ（Institute
of Electrical and Electronic Engineers）１２８４の仕様に基づく入出力インタフェースである。ＵＳＢ＿Ｉ／Ｆ１３２は、ＵＳＢ１．０あるいはＵＳＢ２．０の仕様に基づく入出力インタフェースである。ネットワークＩ／Ｆ１３３は、イーサネット（登録商標）などのネットワーク通信を行うための入出力インタフェースである。
【００２３】
以上の各部を備えるＰＣ１０において、アプリケーション１１１で作成した文書等を印刷しようとする場合、概略は以下の手順となる。すなわち、アプリケーション１１１は、ユーザから印刷の指示を受け取ると、まずスプーラ１１２のうちドライバ選択部１１３で選択されたドライバにその文書のデータを渡す。そして、そのドライバが、受け取ったデータを、印刷に用いる画像処理装置２０が取り扱い可能な形式に変換して、画像処理装置２０と通信可能なＩ／Ｆから、画像処理装置２０へその変換後のデータを送信する。
これを受け取った画像処理装置２０は、その受け取ったデータに基づき印刷を実行する。
【００２４】
次に、図４に、この印刷の手順に関わる各部の構成を、より詳細に示す。なお、Windowsで利用可能なプリンタドライバには大きく分けてＧＤＩ（Graphic
Device Interface）ドライバとＸＰＳドライバがあるが、図４に示すのはＸＰＳドライバを用いる場合の例である。
ＰＣ１０は、印刷実行時に動作する構成として、図４に示すように、アプリケーション１１１及びプリンタドライバ１２０の他、ＵＩ制御部１４１、ＡＰＩ（Application Program Interface）１４２、スプールファイル格納部１４３を備える。
【００２５】
このうちＵＩ制御部１４１は、アプリケーション１１１からの指示に応じて、印刷に用いるプリンタドライバ１２０において利用可能な機能に関する設定を受け付けるためのＧＵＩ（Graphical User Interface）を制御する機能を備える。ＧＵＩの構成に関するデータはプリンタドライバ１２０が持っているため、これを参照してＧＵＩの制御を行う。このＧＵＩで受け付けた設定の内容は、アプリケーション１１１に渡して保持させる。
【００２６】
ＡＰＩ１４２は、アプリケーション１１１からの命令を受けて、印刷すべき文書等のデータを、プリンタドライバ１２０が処理可能なスプールファイルの形式に変換する機能を備える。このとき、アプリケーション１１１は、ＵＩ制御部１４１から渡された印刷の設定を示すデータを、印刷すべき文書等のデータと共にＡＰＩ１４２に渡し、ＡＰＩ１４２は、その設定も反映させたスプールファイルを作成する。
【００２７】
スプールファイル格納部１４３は、ＨＤＤ１５等の記憶手段のＯＳで設定された場所にスプールフォルダを作成してスプールファイルを格納する機能を備える。ＡＰＩ１４２が作成したスプールファイルは、プリンタドライバ１２０に渡す前にスプールファイル格納部１４３に格納させて保管しておくことができる。
【００２８】
プリンタドライバ１２０は、図３に示したものと同様であるが、より詳細には、フィルタパイプラインマネージャ１２１、複数のフィルタ１２２−１〜ｎ、及びフィルタ構成ファイル１２３を備える。
そして、プリンタドライバ１２０は、ＯＳが提供するフィルタパイプラインマネージャ１２１の機能により、ＡＰＩ１４２から渡されたスプールファイルをフィルタ１２２−１〜ｎに順次処理させることにより、画像処理装置２０が取り扱い可能な形式に変換する。このとき、拡大縮小、集約、すかし挿入など、画像を加工する処理を合わせて行うこともできる。このような動作は、レンダリングと呼ばれる。
【００２９】
そして、プリンタドライバ１２０は、最後のフィルタによる処理後のデータを、適当なＩ／Ｆに渡して画像処理装置２０へ送信させる。
また、フィルタ構成ファイル１２３は、フィルタパイプラインマネージャ１２１がスプールファイルを渡して処理させるフィルタの場所（名称）及び各フィルタに処理を実行させる順番を規定するファイルである。ただし、このフィルタ構成ファイル１２３を見ても、各フィルタと対応する機能が何であるかはわからない。
【００３０】
なお、プリンタドライバ１２０が提供可能な機能は、PrintCapabilitiesにリスト化されている。PrintCapabilitiesには、提供可能な各機能及びその機能について設定可能な設定項目及び設定値のリストがキーワードで記載されており、また各設定項目に対する用語情報も含まれる。
【００３１】
また、プリンタドライバ１２０が提供可能な各機能についての設定内容は、PrintTicketとして記載することができる。このPrintTicket は、ＸＭＬ（Extensible Markup Language）形式で記載されたデータであり、プリンタドライバの現在設定されている印刷設定値の一覧を意味するものである。PrintCapabilitiesの情報から、各設定項目において選択可能な各設定値が選択された際にPrintTicketに記載すべき値を知ることができる。
【００３２】
また、PrintTicketはＸＰＳデータにも含まれ、ＸＰＳドライバの各フィルタ１２２−１〜ｎは、ＸＰＳデータに含まれているPrintTicketの情報から現在そのＸＰＳデータに適用されている各設定項目の設定値を知って、それに伴い動作を実行することができる。
ところで、以上説明してきたプリンタドライバ１２０の構成は、統合ドライバ１５０についても基本的には同じである。しかし、一部異なる点もあるので、次にこの点について説明する。
【００３３】
図５は、統合ドライバ１５０の機能構成を示す図である。
統合ドライバ１５０は、図５に示すように、フィルタパイプラインマネージャ１５１、複数の仲介フィルタ１５２−１〜ｎ、およびフィルタ構成ファイル１５３を備える。
これらは、プリンタドライバ１２０におけるフィルタパイプラインマネージャ１２１、フィルタ１２２−１〜ｎ、およびフィルタ構成ファイル１２３と同様な機能を備える。
【００３４】
すなわち、統合ドライバ１５０は、ＯＳが提供するフィルタパイプラインマネージャ１５１の機能により、ＡＰＩから渡されたスプールファイルを仲介フィルタ１５２−１〜ｎに順次処理させることにより、画像処理装置２０が取り扱い可能な形式に変換する。
【００３５】
しかしながら、仲介フィルタ１５２−１〜Ｎは、実体的な処理を行うフィルタではなく、所定の位置に格納された実動作フィルタ構成ファイル１７０を参照し、そこに記載されたフィルタに対して、受け取ったデータに係る処理を依頼する。そしてその結果をフィルタパイプラインマネージャ１５１に返させる。あるいは、処理結果を一旦仲介フィルタ１５２（個体を区別しない場合にはこの符号を用いる）に返させ、仲介フィルタ１５２がフィルタパイプラインマネージャ１５１に返すようにしてもよい。
【００３６】
実動作フィルタ構成ファイル１７０は、統合ドライバ１５０が提供する機能に係る処理を実体的に行わせるフィルタの場所（名称）及び各フィルタに処理を実行させる順番を規定するファイルである。
そして、１番目の仲介フィルタ１５２−１は、実動作フィルタ構成ファイル１７０の１番目に記載された情報が示すフィルタに、受け取ったデータに係る処理を依頼する。２番目の仲介フィルタ１５２−２は、実動作フィルタ構成ファイル１７０の２番目に記載された情報が示すフィルタに、受け取ったデータに係る処理を依頼する。同様に、ｎ番目の仲介フィルタ１５２−ｎは、実動作フィルタ構成ファイル１７０のｎ番目に記載された情報が示すフィルタに、受け取ったデータに係る処理を依頼する。
【００３７】
実動作フィルタ構成ファイル１７０に、仲介フィルタ１５２と対応するフィルタの記載がない場合、その仲介フィルタ１５２は、受け取ったデータに対し何も処理をせずにフィルタパイプラインマネージャ１５１へ返せばよい。
【００３８】
図６に、Ｎ番目の仲介フィルタの機能と対応する処理のフローチャートを示す。
ＰＣ１０のＣＰＵ１１は、Ｎ番目の仲介フィルタ１５２−Ｎがフィルタパイプラインマネージャ１５１から処理対象のデータ及び処理依頼を受け取ったことを検出した場合、図６のフローチャートに示す処理を開始する。
【００３９】
そしてまず、実動作フィルタ構成ファイル１７０を参照する（Ｓ１１）。このファイルへのパスは、予め仲介フィルタ１５２が把握できるようにしておく。
次に、実動作フィルタ構成ファイル１７０にＮ番目のフィルタのフィルタ情報が含まれていたか否か判断する（Ｓ１２）。
【００４０】
含まれていた場合、受け取ったデータをそのフィルタ情報が示すフィルタに渡して処理させ、結果をフィルタパイプラインマネージャ１５１へ返させて（Ｓ１３）、処理を終了する。一方、含まれていない場合、受け取ったデータをそのままフィルタパイプラインマネージャ１５１へ返して（Ｓ１４）、処理を終了する。
【００４１】
なお、図５の例では、実動作フィルタ構成ファイル１７０に“scaling_filter.dll”、“watermark_filter.dll”、および“nup_filter.dll”の３つのフィルタの情報が記載されている。そして、これに対応して、仲介フィルタ１５２−１〜３が、それぞれ１番目〜３番目参照先フィルタ１７１〜１７３に対してデータの処理を依頼するようになっている。４番目以降の仲介フィルタ１５２は、受け取ったデータに対し何も処理をせずにフィルタパイプラインマネージャ１５１へ返す。
【００４２】
ここで、１番目〜３番目参照先フィルタ１７１〜１７３は、統合ドライバ１５０によって提供されるフィルタである必要はない（ただし統合ドライバ１５０が提供することも妨げられない）。他のプリンタドライバ１２０が提供する機能を実現するためのフィルタの情報を、適宜選択して実動作フィルタ構成ファイル１７０に記載することにより、統合ドライバ１５０に、それらのフィルタが提供する機能を組み合わせた機能を実現させることができる。
【００４３】
また、フィルタパイプラインマネージャ１５１がデータの処理を依頼するフィルタについては、フィルタ構成ファイル１５３に、図７に示すように、仲介フィルタ１５２−１〜ｎの情報がこの順で記載されている。そして、フィルタ構成ファイル１５３の内容を変更できない場合、仲介フィルタ１５２の数も機能も変更することはできない。
【００４４】
しかし、仲介フィルタ１５２の機能として、内容を変更可能な場所にある実動作フィルタ構成ファイル１７０の内容を参照してそれが示すフィルタに対して処理を依頼する、という機能を設けることにより、実質的にこの制約を脱することができる。
フィルタ構成ファイル１５３の内容自体は変更できなくても、実動作フィルタ構成ファイル１７０の内容を変更することにより、統合ドライバ１５０の動作を実質的に変更することができるためである。
【００４５】
この場合において、仲介フィルタ１５２は、統合ドライバ１５０が利用するモジュールであり、所定の記憶手段に記憶されているモジュール情報である実動作フィルタ構成ファイル１７０が示すモジュールに処理を実行させる機能を備える仲介モジュールに該当する。
また、実動作フィルタ構成ファイル１７０は、上記仲介モジュールに利用させる機能を提供するモジュールを示すモジュール情報に該当する。
【００４６】
なお、仲介フィルタ１５２の数は、少なすぎると統合ドライバ１５０が十分な数のフィルタを利用できなくなるし、多すぎるとフィルタパイプラインマネージャ１５１と仲介フィルタ１５２との間で無用にデータのやりとりが発生することになる。これらを考慮して適切な数を定めればよい。
【００４７】
次に、実動作フィルタ構成ファイル１７０の生成に係る機能及び処理について説明する。
まず、図８に、ＰＣ１０における実動作フィルタ構成ファイルの生成に係る機能の構成を示す。
【００４８】
ＰＣ１０は、実動作フィルタ構成ファイルの生成に係る機能として、図８に示すように、ドライバ能力取得部１６１、ドライバ能力解析部１６２、ドライバ能力統合部１６３、ドライバ種類判定部１６４、統合機能画面表示部１６５、機能実現箇所判定部１６６、および実動作フィルタ構成ファイル作成部１６７を備える。
【００４９】
これらのうちドライバ能力取得部１６１は、ＰＣ１０にインストールされている各プリンタドライバ１２０のPrintCapabilitiesを利用して各プリンタドライバ１２０でサポートされている印刷機能、印刷設定やＵＩ用語情報の一覧を取得する機能を備える。
ドライバ能力解析部１６２は、ドライバ能力取得部１６１で取得したPrintCapabilitiesの情報を解析し、各プリンタドライバ１２０がどのような機能及び設定値をサポートしているか、また各機能、設定項目及び設定値に対する用語の情報を取得する。
【００５０】
ドライバ能力統合部１６３では、ドライバ能力解析部１６２が解析した各プリンタドライバ１２０の能力から、共通の機能は１つの機能として扱い、全機能を網羅した処理能力を集計する機能を備える。共通の機能か否かはPrintCapabilitiesに記載された各機能のキーワードが同じか否かで判定を行うことができる。
【００５１】
ドライバ種類判定部１６４では、ドライバ能力取得部１６１が能力を取得したプリンタドライバがＸＰＳドライバであるかＧＤＩドライバであるかを判定する。これは、統合ドライバ１５０から利用可能な機能はＸＰＳドライバによって提供される機能であり、ＧＤＩドライバによって提供される機能は利用できないためである。従って、ドライバ能力解析部１６２及びドライバ能力統合部１６３は、ＧＤＩドライバについては処理対象とする必要はない。
【００５２】
統合機能画面表示部１６５は、ドライバ能力統合部１６３が集計した各機能に係る設定をユーザから受け付け可能なようにユーザインタフェースを生成して表示する機能を備える。また、そのユーザインタフェースにより、統合ドライバ１５０の動作に必要な設定を受け付ける設定受付手段の機能も備える。
【００５３】
機能実現箇所判定部１６６は、各プリンタドライバ１２０から取得した各機能がプリンタドライバ１２０側で実現するものであるか画像処理装置２０側で実現するものであるかを判定する識別手段の機能を備える。このような判定を行うのは、プリンタドライバ１２０側で実現されている機能はどの画像処理装置で印刷する場合にも利用可能だが、画像処理装置２０側で実現する機能はその画像処理装置で印刷する場合にしか利用できないためである。
【００５４】
実動作フィルタ構成ファイル作成部１６７は、他の各部による処理の結果統合ドライバ１５０が利用することとなったフィルタの情報を記載した実動作フィルタ構成ファイル１７０を作成して、所定の場所へ保存するモジュール設定手段の機能を備える。
【００５５】
次に、図９に、ＰＣ１０のＣＰＵ１１が実行する、実動作フィルタ構成ファイル１７０の生成処理のフローチャートを示す。
ＣＰＵ１１は、実動作フィルタ構成ファイル１７０を生成すべきことを検出すると、図９のフローチャートに示す処理を開始する。このタイミングとしては、実動作フィルタ構成ファイル１７０の生成指示を検出した場合や、統合ドライバ１５０が最初にＰＣ１０にインストールされた場合などが考えられる。
【００５６】
この処理において、ＣＰＵ１１はまず、ＰＣ１０にインストールされているプリンタドライバ１２０のリストを取得する（Ｓ２１）。このリストは、ＯＳにより提供されている。
次に、ステップＳ２１で取得したリストに載っているプリンタドライバ１２０の１つを処理対象とする（Ｓ２２）。
【００５７】
そして、処理対象のドライバがＸＰＳドライバであるか否か判断する（Ｓ２３）。この処理は、ドライバ種類判定部１６４の機能と対応する処理である。
ＣＰＵ１１は、ステップＳ２３でＸＰＳドライバであれば、処理対象のドライバが提供する機能の情報を示すPrintCapabilitiesを取得する（Ｓ２４）。また、そのPrintCapabilitiesを解析して得られる処理対象のドライバの機能の情報を、ＰＣ１０にインストールされているプリンタドライバが備える機能のリストであるドライバ機能リストに追加する（Ｓ２５）。
【００５８】
ステップＳ２４の処理は、ドライバ能力取得部１６１の機能と対応する処理であり、ステップＳ２５の処理は、ドライバ能力解析部１６２とドライバ能力統合部１６３の機能と対応する処理である。なお、ステップＳ２５で作成するドライバ機能リストは、機能を網羅する統合的な機能のリストとして作成する。また、各ドライバ間で同一のPrintCapabilitiesのキーワードがあった場合にはそれは同じ機能であると判定し、異なるキーワードの場合には異なる機能であると判定する。しかし、ドライバ機能リストには、複数のドライバが同じ機能を持っていることを登録してもよい。
【００５９】
以上のステップＳ２５の後、ステップＳ２１で取得したリストにまだ処理対象としていないプリンタドライバ１２０があるか否か判断し（Ｓ２６）、あれば、次のドライバを処理対象として（Ｓ２７）、ステップＳ２３に戻り処理を繰り返す。
また、ステップＳ２３でＸＰＳドライバでない場合、ステップＳ２４及びＳ２５は飛ばしてステップＳ２６に進む。
【００６０】
また、ステップＳ２６でＮＯの場合、ＣＰＵ１１は、ドライバ機能リストに登録した各機能につき、その機能がプリンタドライバ１２０側で実現されているか、ドライバによる制御対象の画像処理装置２０側で実現されているかを判定する（Ｓ２８）。この処理は、機能実現箇所判定部１６６の機能と対応する処理である。また、この判定の手法については後に詳述する。
【００６１】
次に、ＣＰＵ１１は、ステップＳ２８でプリンタドライバ１２０側で実現されていると判定した機能について設定を受け付けるための画面のデータを生成して保存する（Ｓ２９）。この画面は、各プリンタドライバから取得したPrintCapabilitiesの、該当する機能に関する情報に基づき作成することができる。PrintCapabilitiesには、各機能について受け付けるべき設定項目及びその設定項目に設定可能な設定値の情報が含まれるためである。また、このステップＳ２９の処理は、統合機能画面表示部１６５の機能と対応する処理である。
【００６２】
さらに、ＣＰＵ１１は、ステップＳ２８でプリンタドライバ１２０側で実現されていると判定した機能を呼び出すための実動作フィルタ構成ファイル１７０を生成して所定の場所に保存し（Ｓ３０）、処理を終了する。このステップＳ３０の処理は、実動作フィルタ構成ファイル作成部１６７の機能と対応する処理である。
【００６３】
ステップＳ３０で生成する実動作フィルタ構成ファイル１７０は、図５に示したように、各プリンタドライバ１２０が該当機能を提供するために備えているフィルタを指定する情報を、適当な順番で並べたものである。各フィルタの情報は、各プリンタドライバ１２０のフィルタ構成ファイル１２３を参照して取得することができる。
また、フィルタの配置順は、処理の順番を気にしなくてよいものについては任意であるが、処理を先に行った方がよいことがわかるものについては、その処理に係るフィルタの情報を先に配置するようにするとよい。
【００６４】
また、ステップＳ２９及びＳ３０において、同じ機能が複数のプリンタドライバ１２０によって提供され、そのいずれもプリンタドライバ１２０側で実現されるものである場合、そのうち１つについて、設定を受け付けまたフィルタを呼び出せるようにすればよい。
以上の処理により、ＰＣ１０にインストールされている全てのＸＰＳドライバの機能（ドライバ側で実現されるもの）を利用可能な統合ドライバ１５０を構成することができる。
【００６５】
次に、ステップＳ２８における判定処理の一例について説明する。
図１０は、その判定処理の手法を説明するための図である。
上述のように、プリンタドライバ１２０が提供する機能はPrintCapabilitesからわかり、プリンタドライバ１２０がＰＣ１０側で使用するフィルタはフィルタ構成ファイル１２３からわかる。しかし、フィルタと機能との対応関係は不明である。そこで、ステップＳ２８では、この対応関係を把握することにより、各機能がプリンタドライバ１２０側で実現されているか、画像処理装置２０側で実現されているかを判定する。
【００６６】
ここで、ＸＰＳドライバが備えるフィルタは、元々機能の追加及び削除を容易にしやすい仕組みになっている。このため、自分の前後にどのようなフィルタが存在しているとしても正しく機能を実現でき、またＸＰＳ形式をサポートする色々な画像処理装置に処理後のデータを送っても正しく動作するように設計することが一般的である。
これは、各フィルタは処理対象のＸＰＳデータに含まれているPrintTicket情報に基づいて処理を実行するが、各フィルタは自分の処理したPrintTicket情報を後続のフィルタまたはプリンタ本体に影響がないように変更することを意味する。
【００６７】
すなわち、処理すべきデータに何らかの変更を施す必要のある設定値を示すPrintTicketを付して、その変更処理を担当するフィルタに入力すると、そのフィルタは、入力データをPrintTicketの設定値に従って処理すると共に、PrintTicketの設定値を、もはや処理が必要ないことを示す設定値に変更する。このようにすることにより、ある設定値に従った処理を、後段のフィルタが重複して行ってしまうことを防止する。
例えば、集約の機能について「2 in 1」が設定されていた場合に、２ページを１面に割り付ける処理を行ったフィルタは、もはやそれ以上の集約が不要であることを示す「1
in 1」に変更する等である。
【００６８】
そこで、図１０に示すように、各プリンタドライバ１２０について、フィルタ構成ファイル１２３に記載されているフィルタ１つ１つを調査対象として、そのフィルタに、全ての設定項目について何らかの変更を施す必要のある設定値を設定したPrintTicket1を付したサンプルデータを処理させる。そして、処理後のデータに付されているPrintTicket2では、調査対象のフィルタが行った処理と対応する設定項目について、設定値が、もはや処理が必要ないことを示す値に変更されているはずである。
【００６９】
従って、その変更された設定項目に係る機能が、調査対象のフィルタが提供する機能であることがわかる。
また、プリンタドライバ１２０が提供する機能のうち、どのフィルタも提供しない機能は、画像処理装置２０側で実現される機能であることがわかる。
【００７０】
図１１に示す特性のプリンタドライバＡ及びＢを例に挙げて、この判定の例を示す。
プリンタドライバＡは、PrintCapabilitiesの情報から、図１１に示す３つの機能を提供することがわかり、また、図１１に示すフィルタ構成情報を持つとする。
プリンタドライバＢは、同様に図１１に示す２つの機能を提供することがわかり、また、図１１に示すフィルタ構成情報を持つとする。
【００７１】
これらのうちプリンタドライバＡについて調査を行う場合、プリンタドライバＡが提供する３つの機能について、それぞれ何らかの変更を施す必要のある設定値を持ったPrintTicket1を用意する。
例えば、図１２に示すように、Watermarkの機能について「有効」、集約の機能について「2 in 1」、ステープルの機能について「左綴じ」を設定したPrintTicket1を用意すればよい。そして、このPrintTicket1を付したサンプルデータを、フィルタ構成情報からわかる２つのフィルタにそれぞれ処理させ、処理結果に含まれるPrintTicket2の内容を分析する。
【００７２】
そして、watermark_filter.dllによって処理した結果、Watermarkの設定が「有効」から「無効」に変わったとすると、watermark_filter.dllは、Watermarkの機能を提供するフィルタであることがわかる。
また、nup_filter.dllによって処理した結果、集約の設定が「2 in 1」から「1 in 1」に変わったとすると、nup_filter.dllは、集約の機能を提供するフィルタであることがわかる。
【００７３】
そして、これら２つの機能はプリンタドライバ１２０側で提供され、いずれのフィルタによっても提供されないステープルの機能が、画像処理装置２０側で提供されることがわかる。従って、ステープルの設定は、いずれのフィルタで処理した場合でも「左綴じ」のままである。
【００７４】
同様に、プリンタドライバＢについて調査を行う場合、集約の機能について「2 in 1」、拡大縮小の機能について「200%」を設定したPrintTicket1を用意すればよい。そして、このPrintTicket1を付したサンプルデータを、フィルタ構成情報からわかる１つのフィルタにそれぞれ処理させる。
そして、scaling_filter.dllによって処理した結果、拡大縮小の設定が「200%」から「100%」に変わったとすると、scaling_filter.dllは、拡大縮小の機能を提供するフィルタであることがわかる。
【００７５】
そして、この機能はプリンタドライバ１２０側で提供され、いずれのフィルタによっても提供されない集約の機能が、画像処理装置２０側で提供されることがわかる。従って、集約の設定は、いずれのフィルタで処理した場合でも「2 in 1」のままである。
以上の判定で得られたフィルタと機能の対応関係は、統合ドライバ１５０の実動作フィルタ構成情報１７０を生成する際にも利用することができる。
【００７６】
また、これと合わせて、ドライバ側で実現される機能に係る処理は画像処理装置側で実現される機能に係る処理よりも先に行うものであることから、拡大縮小機能に係る処理は集約機能に係る処理よりも先に実行すべきものであることもわかる。
従って、プリンタドライバＡとプリンタドライバＢの機能を統合した統合ドライバ１５０を構成する場合には、プリンタドライバＡの集約機能に係る処理を実行するフィルタより、プリンタドライバＢの拡大縮小機能に係る処理を実行するフィルタを先に配置すべきと言える。
【００７７】
次に、図９の処理による実動作フィルタ構成ファイル１７０の生成の具体例について説明する。ここでは、図１１に示す機能を備えるプリンタドライバＡとプリンタドライバＢがＰＣ１０にインストールされている場合を考える。
この場合、図９のステップＳ２５で作成されるドライバ機能リストは、図１３に示すようなものになる。すなわち、各ドライバが提供する機能を単に列挙したものである。この段階では、まだそれらの機能がドライバ側で実現されるか画像処理装置側で実現されるか不明であるので、これを記載する実現箇所の項目は、空欄である。
【００７８】
その後、ステップＳ２８で各機能について実現箇所の判定を行い、図１２に示した通りの結果であると、図１４に示すように、ドライバ機能リストにおける実現箇所の項目を埋めることができる。
そして、この結果から、統合ドライバ１５０から利用可能にできる機能は、Watermark、集約（プリンタドライバＡが提供するもの）及び拡大縮小であることがわかる。
そこで、ステップＳ２９では、これらの機能に関する設定を受け付けるための画面のデータを生成する。
【００７９】
図１５に、その画面の例を示す。
図１５に示す設定受付画面２００は、設定受付部２１０に、Watermark機能に関する設定を受け付けるための操作部２１１と、集約機能に関する設定を受け付けるための操作部２１２と、拡大縮小機能に関する設定を受け付けるための操作部２１３とを備える。
【００８０】
これらの機能に関連して、どのような設定項目についてどのような選択肢で選択を受け付ければよいかは、その機能を提供するプリンタドライバ１２０のフィルタ構成ファイル１２３を参照すればわかる。なお、１つの機能について設定項目が１つとは限らないし、操作部の形式も、図１５のようなラジオボタンには限らない。プルダウンメニューやテキストボックス、チェックボックスなど、任意の形式を利用可能である。
また、設定受付画面２００は、設定を確定させるためのＯＫボタン２２１と、設定を確定させずに元の画面に戻るためのキャンセルボタン２２２も備える。
【００８１】
また、図９のステップＳ３０では、上述のWatermark、集約及び拡大縮小の機能を提供するフィルタの情報を記載した、図５に示したような実動作フィルタ構成ファイル１７０を生成する。
これらのフィルタの情報も、その機能を提供するプリンタドライバが持つPrintCapabilitiesから取得することができる。
【００８２】
以上により、Watermark、集約及び拡大縮小の機能を利用可能な統合ドライバ１５０を構成することができる。
そして、ユーザが統合ドライバ１５０を用いて印刷を行う場合、図１５に示した設定受付画面２００が表示され、その画面で必要な設定を行うことができる。また、印刷すべき文書のデータ及びその設定の内容を示すPrintTicketは、図４に示したアプリケーション１１１からＡＰＩ１４２を介して統合ドライバ１５０に渡される。
【００８３】
統合ドライバ１５０においては、図５を用いて説明したように、各仲介フィルタ１５２−１〜ｎが、実動作フィルタ構成ファイル１７０の内容を参照し、そこに登録されているフィルタに対して印刷すべき文書のデータの処理を依頼する。
そして、最終段までの処理が完了すると、処理後のデータを、統合ドライバ１５０と対応付けられている画像処理装置２０に送信して、そのデータに従った印刷を実行させる。
なお、統合ドライバ１５０と画像処理装置２０との対応付けについては、ユーザが任意に行えるようにしてもよいが、以下に説明する変形例の手法を採用してもよい。
【００８４】
以下、上述した実施形態のいくつかの変形例について説明する。
まず、第１の変形例として、統合ドライバ１５０の制御対象とする画像処理装置２０、すなわち統合ドライバ１５０により処理したデータに基づいて印刷を行わせる画像処理装置２０を、他のプリンタドライバ１２０の制御対象の中から選択して設定できるようにすることが考えられる。
【００８５】
ＰＣ１０にプリンタドライバ１２０をインストールする場合、通常はそのプリンタドライバ１２０の制御対象とする画像処理装置２０を指定してインストールする。そして、ＰＣ１０のユーザが通常使用する画像処理装置２０については、既に対応するプリンタドライバ１２０がインストールされていると考えられる。
【００８６】
従って、インストールされているプリンタドライバ１２０の１つをユーザに選択させ、そのプリンタドライバ１２０の制御対象となっている画像処理装置２０を、統合ドライバ１５０の制御対象にもするようにすれば、ＰＣ１０のユーザが通常使用する任意の画像処理装置２０を、簡単に制御対象として設定できると考えられる。
【００８７】
図１６に、この第１の変形例における設定受付画面の例を示す。
この設定受付画面２０１が図１５の画面と異なる点は、出力先選択部２１４を設けた点である。この出力先選択部２１４には、ＰＣ１０にインストールされているプリンタドライバ１２０のリストを表示し、そのうち１つをユーザに選択させる。そして、選択されたプリンタドライバ１２０の制御対象となっている画像処理装置２０を、統合ドライバ１５０の制御対象として設定する。画像処理装置２０の指定は、ＩＰアドレスや出力ポート等により行うことができる。
なお、画像処理装置２０はＸＰＳドライバで制御可能である必要があるため、出力先選択部２１４に表示する選択肢も、ＸＰＳドライバに限るようにするとよい。
【００８８】
次に、第２の変形例として、設定受付画面において、統合ドライバ１５０の制御対象として設定した画像処理装置２０が画像処理装置側で提供する機能に関する設定も受け付けるようにすることが考えられる。
【００８９】
制御対象の画像処理装置２０が決まれば、図１４に示したようなドライバ機能リストから、その画像処理装置２０が提供する機能が把握できるし、実施に利用可能でもあるためである。従って、この機能に関する設定を合わせて受け付けることにより、統合ドライバ１５０からも、画像処理装置２０が提供する機能を利用可能となる。
また、出力先選択部２１４で選択したプリンタドライバ１２０のPrintCapabilitiesから、その機能に関してどのような設定項目についてどのような選択肢で選択を受け付ければよいかもわかる。
【００９０】
図１７及び図１８に、この第２の変形例における設定受付画面の例を示す。図１７に示すのは、出力先選択部２１４でプリンタドライバＡを選択した場合の例、図１８に示すのは、プリンタドライバＢを選択した場合の例である。
まず、図１７に示す設定受付画面２０２においては、プリンタドライバＡが提供する機能のうち画像処理装置２０側で提供されるステープル機能に関する設定を受け付ける操作部２１５を追加している。
【００９１】
しかし、図１８に示す設定受付画面２０２においては、プリンタドライバＢが提供する機能のうち画像処理装置２０側で提供される集約機能に関する設定を受け付ける操作部は追加していない。これは、集約機能は、プリンタドライバＡがドライバ側で提供しており、既にその設定を受け付ける操作部２１２が用意されているためである。
【００９２】
またこの場合、機能が重複するため、画像処理装置２０側で提供される集約機能を利用する必要もない。このような重複は、上述のようにPrintCapabilitiesに記載された各機能のキーワードから判定できる。
そして、図１７と図１８の比較からわかるように、この変形例においては、統合ドライバ１５０の構成は変わらなくても、出力先選択部２１４での選択に応じて、設定受付画面２０２の構成は変化することになる。
【００９３】
次に、第３の変形例として、図９のステップＳ２８又はＳ２９等で、どのプリンタドライバの機能を統合ドライバ１５０から利用可能とするかをユーザが選択できるようにすることが考えられる。
【００９４】
図１９に、この第３の変形例において用いるドライバ選択画面の例を示す。
このドライバ選択画面２３０は、どのプリンタドライバの機能を統合ドライバ１５０から利用可能とするかの選択を受け付ける画面である。そして、ドライバ選択部２３１により、その選択を受け付ける。選択肢は、ドライバ機能リストに載っている全てのドライバとするとよい。あるいは、ドライバ機能リストに載っているドライバのうちドライバ側で提供する機能のある全てのドライバとしてもよい。
【００９５】
ユーザは、これらの選択肢から、任意の組み合わせでドライバを選択することができる。そして、図９のステップＳ２９及びＳ３０においては、その選択されたドライバが提供する機能についてのみ、ユーザから設定を受け付け、また呼び出せるように、設定受付画面及び実動作フィルタ構成ファイル１７０の生成を行う。
このドライバ選択画面２３０を制御する機能は、指定手段の機能に該当する。
【００９６】
なお、ＯＫボタン２３２は、選択を確定させるためのボタン、キャンセルボタン２３３は、統合ドライバ１５０の構成を中止する、すなわち図９の処理を中止するためのボタンである。
利用可能な機能が多すぎると設定が煩雑になり、処理負荷も大きくなることから、このように利用する機能の範囲をユーザが選択できるようにすることが好ましい。また、このようなドライバ単位の選択の他、機能単位の選択ができるようにしてもよい。
【００９７】
次に、第４の変形例として、図９のステップＳ２９で生成する設定受付画面において、統合ドライバ１５０の再構成を指示できるようにしてもよい。
図２０に、この第４の変形例における設定受付画面の例を示す。
この設定受付画面２０３が図１５の画面と異なる点は、再設定ボタン２２３を設けた点である。ユーザは、この再設定ボタン２２３を操作することにより、任意のタイミングで図９の処理の再実行をＰＣ１０に指示することができる。
【００９８】
そして、その再実行に係る図９の処理においては、その処理時点でＰＣ１０にインストールされているプリンタドライバ１２０の情報に基づき、統合ドライバ１５０を再構成する。すなわち、設定受付画面の再構成と、実動作フィルタ構成ファイル１７０の再生成を行う。
従って、最新のドライバ構成を反映した統合ドライバ１５０を構成することができる。
【００９９】
なお、ＰＣ１０に新たなプリンタドライバ１２０がインストールされた場合には、自動的に図９の処理を再実行するか、再実行の確認をユーザに求めるようにするとよい。新たなドライバのインストールにより、統合ドライバ１５０から利用可能となる機能が増加する可能性があるためである。
【０１００】
以上で実施形態及び第１乃至第４の変形例の説明を終了するが、この発明において、各装置の具体的な構成や、具体的な処理の手順、データ形式等は、上述したものに限られない。
例えば、上述した実施形態では、ドライバとして画像処理装置を制御するプリンタドライバを例に挙げて説明したが、他の装置を制御するドライバについても同様な統合ドライバの構築が可能である。もちろん、各ドライバが実現する機能は、画像処理に関するものでなくてよい。
【０１０１】
また、各ドライバが、フィルタ以外のモジュールによって機能を提供するようにしてもよい。
ＯＳについても、Ｗｉｎｄｏｗｓ（登録商標）に限らず、他のＯＳを用いる情報処理装置についても、この発明は適用可能である。
【０１０２】
また、この発明の情報処理装置の実施形態としての上述したＰＣ１０の機能、特に統合ドライバ１５０及びその構築に関する機能を、上述した実施形態とは異なる装置構成によって実現することも可能である。例えば、ＰＣ１０の機能を複数の装置が協働して実現してもよい。
例えば、統合ドライバ１５０が仲介フィルタ１５２を介して利用するフィルタ等のモジュールについては、統合ドライバ１５０を構築する情報処理装置の外部の装置が備えるものであってもよい。実動作フィルタ構成ファイル１７０を記憶する記憶手段も、情報処理装置の外部の装置に設けたものであってもよい。また、統合ドライバ１５０による制御対象が、情報処理装置の内部のソフトウェア又はハードウェアによるモジュールであってもよい。
【０１０３】
また、この発明によるプログラムの実施形態は、コンピュータに上述したＰＣ１０の機能を実現させるためのプログラムである。
このようなプログラムは、はじめからコンピュータに備えるＲＯＭ等の記憶手段に格納しておいてもよいが、記録媒体であるＣＤ−ＲＯＭあるいはフレキシブルディスク，ＳＲＡＭ，ＥＥＰＲＯＭ，メモリカード等の不揮発性記録媒体（メモリ）に記録して提供することもできる。
【０１０４】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードして実行させることも可能である。
また、以上説明してきた各実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【０１０５】
１：情報処理システム、１０：ＰＣ、１１：ＣＰＵ、１２：ＲＯＭ、１３：ＲＡＭ、１４：通信Ｉ／Ｆ、１５：ＨＤＤ，１６：ＵＩ部、２０Ａ，２０Ｂ：画像処理装置、３０：ネットワーク、１１１：アプリケーション、１１２：スプーラ、１１３：ドライバ選択部、１２０：プリンタドライバ、１２１，１５１：フィルタパイプラインマネージャ、１２２，１７１〜１７３：フィルタ、１２３，１５３：フィルタ構成ファイル、１３１：パラレルＩ／Ｆ、１３２：ＵＳＢ＿Ｉ／Ｆ、１３３：ネットワークＩ／Ｆ、１４１：ＵＩ制御部、１４２：ＡＰＩ、１４３：スプールファイル格納部、１５０：統合ドライバ、１５２：仲介フィルタ、１６１：ドライバ能力取得部、１６２：ドライバ能力解析部、１６３：ドライバ能力統合部、１６４：ドライバ種類判定部、１６５：統合機能画面表示部、１６６：機能実現箇所判定部、１６７：実動作フィルタ構成ファイル作成部、１７０：実動作フィルタ構成ファイル、２００〜２０３：設定受付画面、２１０：設定受付部、２１１〜２１３，２１５：操作部、２１４：出力先選択部、２２１，２３２：ＯＫボタン、２２２，２３３：キャンセルボタン、２２３：再設定ボタン、２３０：ドライバ選択画面、２３１：ドライバ選択部
【先行技術文献】
【特許文献】
【０１０６】
【特許文献１】特開２０１１−２５５３９号公報
【図１】
2014059776.tif 000003
【図２】
2014059776.tif 000004
【図３】
2014059776.tif 000005
【図４】
2014059776.tif 000006
【図５】
2014059776.tif 000007
【図６】
2014059776.tif 000008
【図７】
2014059776.tif 000009
【図８】
2014059776.tif 000010
【図９】
2014059776.tif 000011
【図１０】
2014059776.tif 000012
【図１１】
2014059776.tif 000013
【図１２】
2014059776.tif 000014
【図１３】
2014059776.tif 000015
【図１４】
2014059776.tif 000016
【図１５】
2014059776.tif 000017
【図１６】
2014059776.tif 000018
【図１７】
2014059776.tif 000019
【図１８】
2014059776.tif 000020
【図１９】
2014059776.tif 000021
【図２０】
2014059776.tif 000022