[実施形態1]
まず、用語の説明を行なう。本実施例の画像形成制御プログラムは、後述するように、複数のプリンタドライバが有する機能を統合するものであることから、「機能統合プリンタドライバ」として説明する。また、本実施例の機能統合プリンタドライバで用いられるパイプ&フィルタについて説明する。
図1中に示されるように、各フィルタは接続される。フィルタは、入力された画像データに対して変換を施し、その結果を出力する。フィルタから出力された画像データは次のフィルタに伝達する。サービスは、画像データの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。すなわち、本実施のプリンタドライバでは、各サービスを画像データに対する「変換」の連続として捉える。
また、画像形成装置とは例えば、プリンタ、ファクシミリ、複写装置、プロッタ、これらの複合機などである。また、記録媒体は、例えば、紙、糸、繊維、皮革、金属、プラスチック、ガラス、木材、セラミックスなどの媒体である。以下では、記録媒体を用紙として説明する。画像形成とは、文字や図形、パターンなどの画像を記録媒体に付与すること、液滴(インク)を記録媒体に着弾させることを意味する。以下では、画像形成を印刷として説明する。
[画像形成システム]
図2に、本実施例の画像形成システム1000の機能構成例を示す。本実施例の画像形成システム1000は、情報処理装置600と、当該情報処理装置600にネットワーク(図示せず)で接続されているN個(Nは自然数)の画像形成装置100n(n=1,...,N)と、を含む。また、情報処理装置600は、スプーラ160とアプリケーション180とを含む。
スプーラ160は、N個のプリンタドライバ150n(n=1,...,N)を含む。N個のプリンタドライバ150nのそれぞれは、N個の画像形成装置100n(n=1,...,N)に対応している。スプーラ160は、基本ソフトウェアの印刷機能を管理するソフトウェアモジュールであり、N個のプリンタドライバ150nは、スプーラ160の一部として動作する。また、以下の説明では、画像形成装置、プリンタドライバをまとめていう場合には、画像形成装置100、プリンタドライバ150という。
また、情報処理装置600には、ユーザにより、本実施例の機能統合プリンタドライバ200がインストールされる。また、情報処理装置600は、表示装置300、入力装置400、記憶装置500と、を具備する。表示装置300は、CRTやLCD、LEDなどで構成されるものであり、情報処理装置600が有する機能を、ユーザが利用する際のUI(User Interface)として機能するものである。入力装置400は、キーボード、タッチパネル、マウスなどのポインティングデバイス、音声入力装置などで構成される。
記憶装置500は、ROM(Read Only Memory)やRAM(Random Access Memory)やHDD(Hard Disk Drive)などであり、実行される基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する。
また、アプリケーション180の一部は文書作成ソフトウェア、画像作成・編集・加工ソフトウェア、表計算ソフトウェア、印刷機能などを備えている。この印刷機能によって、文書データや画像データなどの印刷ジョブが機能統合プリンタドライバ200に対して送信される。そして、機能統合プリンタドライバ200は、アプリケーション180からの印刷ジョブに応じ、必要な印刷データを生成する。そして、画像形成装置100nのうちの何れか1つに当該生成された印刷データを送信し、印刷させる。
図3にXPSドライバのブロック図を示す。アプリケーション180は印刷対象となる画像データ(例えば、ドキュメント)を指示する。ユーザがプリンタドライバUI390で印刷設定すると、アプリケーション180はプリンティングAPI702を呼び出すことで当該画像データに基づいて印刷を実行する。ここで、印刷設定とは、印刷枚数を設定したり、ステープル機能や両面印刷機能などの様々な機能を設定することを入力することである。プリンタドライバUI390は、アプリケーションに印刷に付加する機能を選択および設定される表示画面であり、表示装置300に表示される。
プリンティングAPI702は、アプリケーション180からの命令を受けて印刷データをスプールファイルとして、スプールフォルダ704に書き出す。スプールフォルダ704にはアプリケーション180からプリンタドライバ150に渡されるデータが格納される。そして、プリンタドライバは、スプールフォルダ704に基づいて画像形成装置100に印刷させる。
プリンタドライバレンダリング150は、OSのフィルタパイプラインマネージャ706により、フィルタパイプラン構成ファイル701に記載されたM個(Mは自然数)のフィルタ群(フィルタ7081〜708M)を利用して印刷処理を行う。そして、プリンタドライバレンダリング150は、スプールファイルを画像形成装置100が読み取れる形式に変換する。また、プリンタドライバとはプリンタドライバUIとプリンタドライバレンダリング150の両方を含んだものである。
次に実施形態1の機能統合プリンタドライバ200の処理について説明する。図4の実施形態1の機能統合プリンタドライバ200の機能構成例を示し、図5に実施形態1の機能統合プリンタドライバ200の処理フローを示す。本実施例の機能統合プリンタドライバ200は、複数のプリンタドライバ150n(n=1,...,N)が有する機能を統合し、プリンタドライバUI390(図3参照)として、当該統合された機能を選択可能に表示装置300に表示させる。また、図5の処理フローは、例えば、当該機能統合プリンタドライバ200のインストール後、ユーザが初めて情報処理装置600により印刷を行なう場合に、印刷画面を開いたときに行なわれる。
まず、取得手段202が、情報処理装置600にインストールされているプリンタドライバ1501〜150Nの一覧を取得する(ステップS2)。以下の説明では、インストールされているプリンタドライバはプリンタドライバA、プリンタドライバBの2つであるとする。
そして、取得手段202は後述するステップS4、S6、S8、S10の処理により、全てのプリンタドライバが有する印刷機能(以下、単に「機能」という。)や印刷設定(以下、「設定値」という。)やUI用語情報の一覧を取得する。
次に、取得手段202は、印刷能力が未取得であるプリンタドライバが残存しているか否かを判断する(ステップS4)。この例では、プリンタドライバAおよびプリンタドライバBの何れからも、印刷能力を取得していないことから(ステップS4のYes)、ステップS6に移行する。
次に、取得手段202は、プリンタドライバAが、XPSドライバであるかGDIドライバであるかを判定する(ステップS6)。取得手段202が当該判定を行なう理由は、本実施例のフィルタの構成によって機能を実現する手法が、XPSドライバで実現可能であり、GDIドライバでは実現不可能であるからである。つまり、本実施例では、XPSドライバは、印刷能力を取得する対象のプリンタドライバとなる。
取得手段202により、XPSドライバであると判断された場合には(ステップS6のYes)、ステップS8に移行する。また、取得手段202により、XPSドライバでないと判断された場合には(ステップS6のNo)、ステップS4に戻り、XPSドライバではないプリンタドライバからは、印刷能力を取得しない。
取得手段202は、ステップS6のXPSドライバであるか否かの判断は、例えば、ステップS2で取得したプリンタドライバの一覧の順番で行なえばよい。この例では、プリンタドライバA、プリンタドライバB何れも、XPSドライバであるとする。
ステップS6でYesと判断されると、取得手段202は、XPSドライバであるプリンタドライバAから、印刷能力を取得する(ステップS8)。そして、取得手段202は、取得した印刷能力を解析することで、機能を取得する(ステップS10)。
ここで、印刷能力が、「PrintCapabilities」である場合について説明する。PrintCapabilitiesとは、XML形式で記載されたプリンタドライバの機能のリストであり、当該リストには、全機能と、全機能に対する設定値がキーワードで記載されている。取得手段202は、PrintCapabilitiesを解析することで、プリンタドライバがどのような機能、設定値をサポートしているか、または、各機能や各設定値に対する用語の情報を判別する。
図6にPrintCapabilitiesの一例について示す。1つのPrintCapabilitiesタグ801内に、機能を示すFeatureタグ802が複数存在する。更に、Featureタグ802内の複数のOptionタグ803が機能の設定値の候補となる。PrintCapabilitiesでは、画像形成装置をサポートしている機能及び、それらの設定項目の全てが列挙されている。
また、本実施例では各プリンタドライバの機能において、共通の機能については、1つの機能として取り扱う。つまり、PrintCapabilitiesにおいて、同一のキーワードの場合には同じ機能であるとし、異なるキーワードの場合には異なる機能であるとする。例えば、プリンタドライバAが集約機能を有し、プリンタドライバBも集約機能を有する場合に、本実施例では、プリンタドライバAの機能とプリンタドライバBの機能を統合すると、集約機能を1つの機能として取り扱う。このようにして、取得手段202は、1つのXPSドライバから1以上の機能を取得する。
そして、取得手段202は、インストールされている全てのプリンタドライバの機能を取得すると(ステップS4のNo)、ステップS12に移行する。
このように、取得手段202は、ステップS4〜ステップS10までの処理を繰り替えして、全てのインストールされたプリンタドライバ(この例では、プリンタドライバA、B)それぞれが有する機能を取得する。なお、取得手段202による、プリンタドライバが有する機能の取得の手法は上記の方法に限られない。
図7に、取得手段202が取得した機能の一覧例を示す。図7の例では、取得手段202は、プリンタドライバAからは、Watermark機能、集約機能、ステープル機能を取得し、プリンタドライバBからは、集約機能、拡大縮小機能を取得したとする。また、本実施例の機能については、画像データを各機能に対応するフィルタに適用することで、実現されるとする。
次に、ステップS12について説明する。ステップS12では、判定手段204が、それぞれの機能が画像形成装置100で実現されるか、プリンタドライバ150で実現されるか、を判定する。判定手段204による判定手法については様々あるが、ここでは、一例として、プリントチケット情報を用いた例について説明する。
プリントチケット情報とは、XML形式で記載されたプリンタドライバの現在設定されている設定値の一覧をいう。当該設定値とは、上述したPrintCapabilitiesに示されている値である。また、プリントチケット情報は、XPSデータにも含まれ、XPSドライバが有する各フィルタはXPSデータに含まれているプリントチケット情報から各設定値を認識して、それに伴い動作を実行する。
図8に、プリントチケット情報の一例を示す。また、図8に示すプリントチケット情報は、図6記載のPrintCapabilitiesに対応するものである。1つのプリントチケットタグ701内に、機能を示すFeatureタグ702が複数存在する。更に、Featureタグ702の中に存在するOptionタグ703が現在のFeatureで示される機能の設定値となる。
図9に、プリントチケット情報を用いた場合の判定手段204による判定手法を説明するための図を示す。図9では、判定手段204は任意のデータに対してフィルタ処理を行い、「フィルタ処理前のプリントチケット情報の設定値(以下、「フィルタ処理前設定値」という。)」と、「フィルタ処理後のプリントチケット情報の設定値(以下、「フィルタ処理後設定値」という。)」との変遷を示している。本実施例では、判定手段204はフィルタ処理前設定値と、フィルタ処理後設定値と、を比較する。判定手段204が、「フィルタ処理前設定値」と、「フィルタ処理後設定値」とが、異なると判断すると、当該機能は、プリンタドライバ150で実現されると、判定する。また、判定手段204が、「フィルタ処理前設定値」と、「フィルタ処理後設定値」とが、同一と判断すると、当該機能は、画像形成装置100で実現されると、判定する。
図9の例では、プリンタドライバAが有するWatermark機能において、フィルタ処理前設定値は「有効」であり、フィルタ処理後設定値は「無効」である。従って、フィルタ処理前設定値とフィルタ処理後設定値とは異なるので、判定手段204は、Watermark機能は、プリンタドライバ150で実現されると判定する。
また、プリンタドライバAが有する集約機能において、フィルタ処理前設定値は「2in1」であり、フィルタ処理後設定値は「1in1」である。従って、フィルタ処理前設定値とフィルタ処理後設定値とは異なるので、判定手段204は、集約機能はプリンタドライバ150で実現されると判定する。
また、プリンタドライバAが有するステープル機能において、フィルタ処理前設定値は「左綴じ」であり、フィルタ処理後設定値は「左綴じ」である。従って、フィルタ処理前設定値とフィルタ処理後設定値とは同一となるので、判定手段204は、ステープル機能は画像形成装置100で実現されると判定する。
また、プリンタドライバBが有する集約機能において、フィルタ処理前設定値は「2in1」であり、フィルタ処理後設定値は「2in1」である。従って、フィルタ処理前設定値とフィルタ処理後設定値とは同一であるので、判定手段204は、集約機能は画像形成装置100で実現されると判定する。
また、プリンタドライバAが有する拡大縮小機能において、フィルタ処理前設定値は「200%」であり、フィルタ処理後設定値は「100%」である。従って、フィルタ処理前設定値とフィルタ処理後設定値とは異なるので、判定手段204は、拡大縮小機能はプリンタドライバ150で実現されると判定する。
このようにして、判定手段204は、各プリンタドライバから取得した全ての機能について、画像形成装置100で実現するものか、プリンタドライバ150で実現するものかを判定する。図10に、判定手段204の処理結果、つまり、取得した機能と、当該機能の実現箇所について示す。そして、ステップS14の処理に移行する。
次に、表示制御手段206は、取得した各々の機能のうち、判定手段204によりプリンタドライバで実現されると判定された機能を選択させる第1選択画面301を表示装置300に表示する。図11に、第1選択画面301の一例を示す。図11の例では、Watermark機能についての選択箇所302、集約機能についての選択箇所304、拡大縮小機能についての選択箇所306とが含まれている。また、上述のように、各プリンタドライバの機能において、共通の機能については、1つの機能として取り扱う。この例では、プリンタドライバAの集約機能と、プリンタドライバBの集約機能についての1つの機能として扱う。
Watermark機能についての選択箇所302については、ユーザがチェックボックスにチェックすることで、「有効」または「無効」を選択することが出来る。また、集約機能についての選択箇所304については、「しない」「2in1」「4in1」を選択することが出来る。また、拡大縮小機能についての選択箇所306については、「100%」「50%」「200%」を選択することが出来る。
また、ユーザは設定した値でよければ、OKボタン308を押下し、キャンセルするのであれば、キャンセルボタン310を押下する。
このように、表示制御手段206は、判定手段204により、プリンタドライバ150で実現されると判定された機能(この例では、Watermark機能、集約機能、拡大縮小機能)についての第1選択画面301を生成して、表示装置300に表示させる。
次に、統合手段208は、表示装置300に表示された機能のうち、選択された機能が実現されるように、判定手段204によりプリンタドライバで実現されると判定された機能を統合する。図12に、統合された機能の一例を示す。図12の例では、Watermark機能、集約機能、拡大縮小機能が統合されている。また、統合手段208は、具体的には、各機能に対応するフィルタを並び替えて機能を統合する。並び替えられたフィルタ全体を「アクティビティ」という。つまり、本実施例の機能統合プリンタドライバ200は、プリンタドライバAが有する機能と、プリンタドライバBが有する機能と、を統合して、新たなアクティビティを構成するものであるという。そして、機能統合プリンタドライバ200により、統合された全ての機能(Watermark機能、集約機能、拡大縮小機能など)を実現することが出来る。
次に、フィルタの並び替えについて、好ましい手法について説明する。一般的に、プリンタドライバ150が画像データに対して機能を実現した後に、画像形成装置100が当該画像データ(プリンタドライバ150により機能が実現された画像データ)に対して機能を実現させ、用紙に印刷させる。図10に示すプリンタドライバBにおいて、拡大縮小機能はプリンタドライバBにより実現され、集約機能は画像形成装置100により実現される。従って、拡大縮小機能は、集約機能よりも先に行なわれているという結果を得ることが出来る。
そして、統合手段208は、この結果に基づいて、機能に対応するフィルタを並び替えてアクティビティを構成する。つまり、統合手段208は、拡大縮小フィルタを集約フィルタよりも先に配置させて並び替えることが好ましい。以下では、画像形成装置100で実現される機能を「画像形成装置実現機能」といい、プリンタドライバ150で実現される機能を「プリンタドライバ実現機能」という。このように、統合手段208は、1つのプリンタドライバ(この例では、プリンタドライバB)が、1以上の画像形成装置実現機能(この例では、集約機能)と、1以上のプリンタドライバ実現機能(この例では、拡大縮小機能)とを有し、かつ、当該画像形成装置実現機能が他のプリンタドライバ(この例では、プリンタドライバA)が有するプリンタドライバ実現機能(この例では集約機能)と同一である場合がある。この場合には、統合手段208は、当該1つのプリンタドライバBが有するプリンタドライバ実現機能(この例では、拡大縮小機能)を、当該他のプリンタドライバAが有するプリンタドライバ実現機能(集約機能)よりも先に配置させるように並び替える。
当該場合に相当する場合には、統合手段208がフィルタをこのように並び替えすることで、更に正確なアクティビティを構成することが出来る。
また、統合手段208は、フィルタパイプライン構成ファイル710を書き換えることで、アクティビティを構成する。図13AにプリンタドライバAが有するプリンタドライバ実現機能を示し、図13BにプリンタドライバBが有するプリンタドライバ実現機能を示し、図13Cに統合プリンタドライバが有するプリンタドライバ実現機能を示す。図13A〜Cでは、簡易的な記載で示しているが、実際はOSにより定められた文法のフォーマットに従って記載される。図13Cに示すように、統合手段208は、プリンタドライバAが有するプリンタドライバ実現機能と、プリンタドライバBが有するプリンタドライバ実現機能を統合して、フィルタパイプライン構成ファイル710を図13Cに示すものに書き換える。
このように統合手段208が、プリンタドライバ実現機能に対応するフィルタを並び替えることで、適切なアクティビティを構成することが出来る。更に、ユーザは、図11記載の第1選択画面301から、複数のプリンタドライバから取得したプリンタドライバ実現機能を選択して利用することが出来る。
図11に示すような設定が行なわれている場合には、機能統合プリンタドライバ200は、Watermark機能、集約機能、50%縮小されるように、画像データに対して、フィルタ処理を施す。
また、上述では、図5記載の処理フローは、当該機能統合プリンタドライバ200のインストール後、ユーザが初めて情報処理装置600により印刷を行なう場合に、印刷画面を開いたときに行なわれる、と説明した。他の実施形態として、ユーザが機能統合プリンタドライバ200を情報処理装置600にインストールしている途中(インストールプロセス中)に、行なうようにしてもよい。この場合には、図5記載の処理を行うことを早めることが出来る。
この実施形態1の機能統合プリンタドライバ200によれば、判定手段204により、各プリンタドライバから取得した機能が、画像形成装置100により実現されるのか、プリンタドライバ150により実現されるのかを判定する(図5のステップS12)。判定手段204による当該判定を行なう理由は、プリンタドライバで実現される機能は、どの画像形成装置で印刷する場合でも実現可能であるが、画像形成装置で実現される機能は、その画像形成装置を利用しないと、当該機能を実現できないからである。
そして、表示制御手段208は、プリンタドライバ実現機能を選択可能となるように、第1選択画面301を生成して、表示装置300に表示させる。また、統合手段208は、第1選択画面301から選択された機能(つまり、プリンタドライバ実現機能)を実現できるように、当該プリンタドライバ実現機能に対応するフィルタを並び替えてアクティビティを構成する。つまり、本実施形態1の機能統合プリンタドライバでは、インストールされているプリンタドライバに対応する全ての画像形成装置で実現できる機能(つまり、プリンタドライバ実現機能)を表示装置300に表示させて、ユーザに選択させるものである。更に、インストールされているプリンタドライバに対応する全ての画像形成装置で実現できる機能を実現できるように、アクティビティを構成するものである。従って、ユーザは特定のプリンタドライバのみで実現される複数の機能を同時に選択することが出来る。
[実施形態2]
次に、実施形態2の機能統合プリンタドライバ200−2について説明する。実施形態2の機能統合プリンタドライバ200−2では、ユーザは、印刷された用紙の出力先の画像形成装置を選択することが出来る。図14に、実施形態2の選択画面の一例を示す。
図14の例では、選択箇所302、304、306の他に、選択箇所312(第2選択画面312)が含まれている。図14の例では、第2選択画面312では、印刷された用紙を出力させる画像形成装置に対応するプリンタドライバを選択することが出来る。
具体的には、プリンタドライバA、プリンタドライバBそれぞれの出力ポートのIPアドレスを記憶装置500に記憶させておく。一方、ユーザは、第2選択画面312(図14参照)により、出力先に利用するプリンタドライバとして、プリンタドライバAまたはプリンタドライバBを選択する。なお、現在、選択されているプリンタドライバをユーザに認識させるように、当該選択されているプリンタドライバに対して網掛けを施せばよい。また、図14では、プリンタドライバAが選択されていることを示している。
そして、送信手段210(図4参照)は、フィルタ処理された画像データを、第2選択画面312により選択されたプリンタドライバ(図14の例では、プリンタドライバA)に送信する。そして、画像データを受信したプリンタイドライバは、対応する画像形成装置に送信する。画像データが送信された画像形成装置は、当該画像データに基づいて、用紙に対して印刷を行なう。
例えば、図14に示すように、プリンタドライバAが選択されている場合には、送信手段210は、フィルタ処理された画像データを、プリンタドライバAに送信する。そして、プリンタドライバAは、当該プリンタドライバAに対応する画像形成装置に送信する。そして、当該画像形成装置は、当該送信された画像データに基づいて、用紙に対して印刷を行い出力する。
また、図14の例では、ユーザに対して、第2選択画面312により、プリンタドライバを選択させる構成にしているが、第2選択画面312により、画像形成装置を選択させるようにしてもよい。この構成の場合には、第2選択画面312により選択された画像形成装置に対応するプリンタドライバに対して、送信手段210は、フィルタ処理された画像データを送信する。そして、当該画像データが送信されたプリンタドライバは、当該プリンタドライバに対応する画像形成装置に対して、当該画像データを送信する。そして、画像形成装置は、当該送信された画像データに基づいて、用紙に対して印刷を行なう。
また、図14では、第1選択画面301内に第2選択画面312(プリンタドライバの選択箇所312)を表示させる例を説明した。変形例として、図11に示す第1選択画面301と、図14に示す第2選択画面312(プリンタドライバ選択画面)と、を別画面で表示させることも出来る。この場合には、第1選択画面301を第2選択画面312よりも先に表示させるようにしてもよいし、第2選択画面312を第1選択画面301よりも先に表示させるようにしてもよい。
この実施形態2の機能統合プリンタドライバ200−2によれば、ユーザが印刷された用紙を出力する画像形成装置を選択することが出来る。従って、ユーザにとって、頗る使い勝手の良いものとなる。
[実施形態3]
次に実施形態3の機能統合プリンタドライバ200−3について説明する。実施形態3では、第2選択画面312(実施形態2、図14で説明)を変更した実施形態である。図10の例では、プリンタドライバAについては、Watermark機能、集約機能については、プリンタドライバで実現されるとし、ステープル機能については、画像形成装置で実現される、と説明した。そして、実施形態2の第2選択画面312の場合には、プリンタドライバAを選択した場合であっても、ユーザはステープル機能を利用するか否かを選択することが出来ない。
そこで、実施形態3の機能統合プリンタドライバ200では、画像形成装置で実現される機能についても利用できるようにしたものである。図15A、Bに、実施形態3の第2選択画面312の一例を示す。図15Aは、ユーザがプリンタドライバAを選択している場合を示し、図15Bは、ユーザがプリンタドライバBを選択している場合を示す。図15の例では、第1選択画面301と第2選択画面312とが同一の選択画面として表示されている場合を示す。
上述のように、プリンタドライバAについては、プリンタドライバAに対応する画像形成装置でステープル機能が実現される。そして、図15Aに示すように、ユーザによりプリンタドライバAが選択された場合には、表示制御手段206は、ステープル機能について、「しない」、「左綴じ」、「右綴じ」のチェックボックス314を、ユーザが選択可能に第2選択画面に表示させる。図15Aには、ステープル機能の選択箇所314以外に、上述したWatermarku機能の選択箇所302、集約機能の選択箇所304、拡大縮小率306の選択箇所306も示されている。
そして、図15Bに示すように、ユーザにより、プリンタドライバBが選択された場合には、表示制御手段206は、ステープル機能の選択箇所314を、第2選択画面に表示させない。
つまり、図15Aに示すような設定が行なわれている場合には、機能統合プリンタドライバ200−3は、Watermark機能、集約機能、50%縮小されるように、画像データに対して、フィルタ処理を施す。当該フィルタ処理が施された画像データは、プリンタドライバAに対応する画像形成装置に送信される。そして、当該画像形成装置は左綴じにステープルが行なわれ、当該ステープルされた用紙を出力する。
このように、実施形態3の表示制御手段206は、第2選択画面312において、画像形成装置100が実現する機能(この例では、ステープル機能)を有するプリンタドライバ(この例ではプリンタドライバA)が選択されると、当該機能を選択可能に表示させる(図15A記載のステープル機能の選択箇所314)。また、当該プリンタドライバAが選択されなくなると、当該ステープル機能を選択可能に表示させない(図15B参照)。
従って、この実施形態3の機能統合プリンタドライバ200−3によれば、ユーザにより出力先として選択された画像形成装置に対応するプリンタドライバで実現される機能、および、当該画像形成装置で実現される機能を利用することが出来る。
[実施形態4]
次に、実施形態4の機能統合プリンタドライバ200−4について説明する。実施形態4の機能統合プリンタドライバ200−4では、機能統合対象のプリンタドライバ(上述の例では、プリンタドライバAとプリンタドライバB)を選択することが出来る。図16に、実施形態4の表示制御手段206が、表示装置300に表示させる第3選択画面330の一例を示す。図16の例では、ユーザは、プリンタドライバA〜Dから、機能統合対象のプリンタドライバを選択することが出来る。
表示制御手段206は、インストールされている全てのプリンタドライバ1501〜150Nの一覧を取得し、第3選択画面330に選択可能に表示させる。図16の例では、表示制御手段206は、全てのインストールされているプリンタドライバA〜Dを選択可能に表示している。図16の例では、プリンタドライバA〜Dそれぞれについて、チェックボックスが表示されており、ユーザは、機能統合を所望するプリンタドライバのチェックボックスにチェックを入れることで、機能統合対象のプリンタドライバを選択することが出来る。
そして、取得手段202は、ステップS2において、第3選択画面330で選択されたプリンタドライバの一覧を取得する。それ以降の処理については、実施形態1で説明した通りなので説明を省略する。
この実施形態4の機能統合プリンタドライバ200−4によれば、ユーザにとって無駄な機能が含まれずに、シンプルな第1選択画面301を表示できると共に、機能統合処理のコストを低下させることが出来る。
[実施形態5]
次に、実施形態5の機能統合プリンタドライバ200−5について説明する。図17Aに、本実施形態5の第1選択画面301を示し、図17Bに、本実施形態5のフィルタパイプライン構成ファイル710(図3参照)の一例について示す。
図17Aに示すように、ユーザが、Watermark機能、及び、集約機能を選択せずに(図17Aの例では、Watermark機能について「無効」を選択し、集約機能について「しない」を選択している)、拡大縮小機能を選択(図17Aの例では、縮小率50%)した場合を示す。この場合に、統合手段208が、Watermarkフィルタ、集約フィルタを選択して構成すると、処理コストが過大になる場合がある。そこで、実施形態5の統合手段208は、ユーザが選択しなかった機能(図14の例では、Watermark機能及び集約機能)についてのフィルタを選択せずに、ユーザが選択した機能(図14の例では拡大縮小機能)についてのフィルタを並び替えて、アクティビティを構成する。また、図17Aに示すユーザが利用する機能の選択は、機能が統合される前段階で行なわれることが好ましい。
実施形態5の機能統合プリンタドライバ200−5では、図18に示すように、機能と、当該機能を実現するために用いられるフィルタと、対応付けた対応テーブルを予め記憶装置500に記憶させておく。そして、統合手段208は、選択された機能と対応するフィルタを選択して、並び替えてアクティビティを構成する。
例えば、図17Aの例では、ユーザにより、拡大縮小機能が選択されており、Watermark機能、集約機能が選択されていないことから、統合手段208は、拡大縮小機能と対応するスケーリングフィルタを選択する。そして、図17Bに示すフィルタパイプライン構成ファイルのように、拡大縮小機能を選択し、アクティビティを構成する。Watermark機能、集約機能が選択されていないことから、Watermark機能、集約機能、それぞれに対応するWatermarkフィルタ、集約フィルタを、統合手段208は選択しない。
この実施形態5の機能統合プリンタドライバ200−5であれば、ユーザにより選択されなかった機能を実現するフィルタを用いずに、選択された機能に対応するフィルタを用いて、アクティビティを構成する。従って、画像データへのフィルタ処理の処理時間を短縮できる。
[実施形態6]
次に、実施形態6の機能統合プリンタドライバ200−6について説明する。実施形態1〜5何れかを実施して、アクティビティを構成した後に、ユーザ等により、新たなプリンタドライバがインストールされる場合やインストールされていたプリンタドライバがアンインストール(削除)される場合がある。以下では、当該場合を「プリンタドライバが変更された場合」という。実施形態6の機能統合プリンタドライバ200−6は、プリンタドライバが変更された場合でも、変更後のプリンタドライバが有する機能も統合することが出来る。
図19に、本実施形態6の処理フローを示す。図19の処理フローでは新たなプリンタドライバがインストールされる場合について説明する。まず、監視手段212が、新たなプリンタドライバがインストールされた否かを監視する(ステップS32)。監視手段212は、新たなプリンタドライバがインストールされるまで、監視をし続ける(ステップS32のNo)。
また、監視手段212が、新たなプリンタドライバがインストールされたと判断すると(ステップS32のYes)、ステップS34に移行する。以下で説明するステップS34、S36、S38、S40、S42、S44はそれぞれ、図5に示すS6、S8、S10、S12、S14、S16に対応し、ステップS34、S36、S38、S40、S42、S44の処理の詳細については省略する。
次に、取得手段202は、新たなプリンタドライバが、XPSドライバであるかGDIドライバであるかを判定する(ステップS34)。取得手段202により、XPSドライバであると判断された場合には(ステップS34のYes)、ステップS36に移行する。また、取得手段202により、XPSドライバでないと判断された場合には(ステップS34のNo)、処理を終了する。
ステップS34でYesと判断されると、取得手段202は、新たなプリンタドライバから、印刷能力を取得する(ステップS36)。そして、取得手段202は、取得した印刷能力を解析することで、機能を取得する(ステップS38)。
次に、判定手段204が、当該取得した機能が画像形成装置100で実現されるか、プリンタドライバ150で実現されるか、を判定する(ステップS40)。次に、表示制御手段206は、ステップS38で新たに取得した機能であり、かつ、ステップS40でプリンタドライバで実現されると判定された機能を、現時点までに表示されていた機能に加えて、第1選択画面301に表示させる(ステップS42)。そして、統合手段208は、従来並び替えて構成されていたフィルタに、当該新たに取得した機能も追加してフィルタを並び替えることで、アクティビティを再構成する(ステップS44)。
また、インストールされていたプリンタドライバをアンインストールされる場合についても同様の処理なので、説明を省略する。
この実施形態6の機能統合プリンタドライバ200−6であれば、プリンタドライバが変更された場合でも、ユーザに意識させることなく、適切に、フィルタを並び替えてアクティビティを再構成することが出来る。