"フィルタパイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、前記UIモジュールは、アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、前記拡張フィルタ制御部は、前記拡張フィルタから印刷能力情報を取得するとともに、該印刷能力情報に基づいて作成した印刷設定構造体の値およびその保存位置と、印刷設定情報のキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含む、プリンタドライバ。前記拡張フィルタ情報管理部は、前記命令処理部がアプリケーションから印刷能力情報取得要求を受領したことに応答して、前記標準フィルタの印刷能力情報に前記拡張フィルタから取得した印刷能力情報をマージしてなる印刷能力情報を該命令処理部に返す、請求項1に記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記命令処理部がアプリケーションから印刷設定構造体取得要求を受領したことに応答して、前記変換テーブルを参照し、前記標準フィルタの印刷設定構造体の値に前記拡張フィルタの印刷設定構造体の値を追記して該命令処理部に返す、請求項1または2に記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記命令処理部がアプリケーションから印刷設定構造体→印刷設定情報変換要求を受領したことに応答して、受領した印刷設定構造体に保存されている前記拡張フィルタの機能の設定値をキーとして前記変換テーブルを検索し、該機能に対応する印刷設定情報を取得して前記命令処理部に返す、請求項1~3のいずれか一項に記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記命令処理部がアプリケーションから印刷設定情報→印刷設定構造体変換要求を受領したことに応答して、受領した印刷設定情報に記述されている前記拡張フィルタの機能の印刷設定情報キーワードをキーとして前記変換テーブルを検索し、該機能に対応する印刷設定構造体の値とその保存位置を取得して前記命令処理部に返す、請求項1~4のいずれか一項に記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記命令処理部がアプリケーションからUI表示要求を受領したことに応答して、前記拡張フィルタから取得した印刷能力情報に基づいて該拡張フィルタの機能を選択可能に表示するドライバUIを生成する、請求項1~5のいずれか一項に記載のプリンタドライバ。前記拡張フィルタ制御部は、さらに、排他制御依頼部を含み、前記排他制御依頼部は、前記命令処理部がアプリケーションから印刷設定情報の排他処理要求を受領したことに応答して、前記拡張フィルタに対して該印刷設定情報の排他処理要求を発行する、請求項1~6のいずれか一項記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記拡張フィルタから該拡張フィルタのデフォルト印刷設定情報を取得し、該デフォルト印刷設定情報の設定内容に対応する前記変換テーブル内の値にデフォルトフラグを記載する、請求項1~7のいずれか一項に記載のプリンタドライバ。前記拡張フィルタ情報管理部は、前記変換テーブル内の印刷能力情報の最初に出現する選択値をデフォルト値として定義し、該デフォルト値に対応する変換テーブル内の値にデフォルトフラグを記載する、請求項1~7のいずれか一項に記載のプリンタドライバ。前記命令処理部は、前記拡張フィルタに対して制御の可否を問い合わせ、その応答が否であった場合には、前記拡張フィルタ制御部による制御を実行しない、請求項1~9のいずれか一項に記載のプリンタドライバ。前記拡張フィルタに対する制御の可否をフィルタ設定ファイルから読み込み、その値が否であった場合には、前記拡張フィルタ制御部による制御を実行しない、請求項1~9のいずれか一項に記載のプリンタドライバ。コンピュータを、請求項1~11のいずれか一項に記載のプリンタドライバとして機能させるためのコンピュータ実行可能なプログラム。請求項12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、フィルタパイプライン方式を採用するプリンタドライバに追加されたサードパーティベンダ提供のフィルタモジュールの制御を可能にする新規なプリンタドライバを提供することを目的とする。本発明者は、フィルタパイプライン方式を採用するプリンタドライバに追加されたサードパーティベンダ提供のフィルタモジュールの制御を可能にする新規なプリンタドライバにつき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。すなわち、本発明によれば、フィルタパイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、前記UIモジュールは、アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、前記拡張フィルタ制御部は、前記拡張フィルタからPrintCapabilitiesを取得するとともに、該PrintCapabilitiesに基づいて作成したDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含むプリンタドライバが提供される。上述したように、本発明によれば、フィルタパイプライン方式を採用するプリンタドライバに追加されたサードパーティベンダ提供のフィルタモジュールの制御を可能にする新規なプリンタドライバが提供される。以下、本発明を、フィルタパイプライン方式を採用するプリンタドライバとして代表的なXPSプリンタドライバの実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。図1は、情報処理装置1000に搭載された本発明の実施形態であるXPSプリンタドライバ100の機能ブロックを示す。XPSプリンタドライバ100は、フィルタパイプライン方式を採用しており、ドライバUIの生成など、印刷設定に関する処理を実行するUIモジュール300と、複数の標準フィルタ602と、サードパーティベンダによって追加された拡張フィルタ400とを含んで構成されている。UIモジュール300は、アプリケーション200からの命令を受け付けるIFである命令処理部320を含んで構成されており、アプリケーション200から受領した各種命令をフィルタパイプラインを構築する各フィルタ602,400に対して発行する。各フィルタ602,400は、UIモジュール300から発行される命令を受け付けるIFである命令処理部420と、XPSデータ処理部440とを含んで構成されている。命令処理部420がXPS処理命令を受領すると、XPSデータ処理部440は、処理対象となるXPSデータに含まれるPrintTicketをPrintTicket解析部442に渡す。PrintTicket解析部442は、PrintTicketを読み込んでフィルタがサポートしている機能に対応するキーワードを解析し、フィルタの動作パラメータを決定する。XPSデータ処理部440は、決定された動作パラメータに従ってXPSデータを処理する。たとえば、フィルタが集約処理を実行するモジュールであった場合、当該集約フィルタが2ページで構成されたXPSデータを受信すると、XPSデータ処理部440がPrintTicketに記載されているNUp設定の値に従って、ページデータを編集し、集約されたXPSドキュメントを生成する。ここまでは、既存のXPSプリンタドライバに共通する構成について説明してきたが、続いて、本実施形態の特徴的な構成について、以下説明する。本実施形態のXPSプリンタドライバ100におけるUIモジュール300は、さらに、拡張フィルタ制御部340を含んで構成されている。拡張フィルタ制御部340は、UIモジュール300の既存の命令処理部320とサードパーティベンダが拡張した拡張フィルタ400の命令処理部420の間を仲介するAPIとして参照することができ、拡張フィルタ情報管理部342と、排他制御依頼部344とを含んで構成されている。プリンタメーカがこのAPI拡張フィルタ制御部340の仕様をサードパーティベンダに公開することによって、サードパーティベンダは当該APIに対応する拡張フィルタ400を設計することができる。具体的には、サードパーティベンダは、公開された仕様に基づき、PrintCapabilities作成部460と排他制御部480とを拡張フィルタ400に搭載することによって、ユーザによる制御が可能な態様で拡張機能を提供することができる。以下、上述した各機能部が果たす機能について具体的に説明する。以下、図2を参照しながら、UIモジュール300の拡張フィルタ制御部340が実行する処理を説明する。拡張フィルタ制御部340の拡張フィルタ情報管理部342は、適切なタイミングたとえば、XPSプリンタドライバ100がOSからインストール完了通知を受信したタイミングなどにおいて、拡張フィルタ400に対しPrintCapabilities取得要求を発行する。拡張フィルタ400の命令処理部420は、これに応答して、PrintCapabilities作成部460に拡張フィルタ400がサポートしている機能Aに関するPrintCapabilitiesを作成させる。ここでPrintCapabilitiesとは、XPSプリンタドライバ100が制御するプリンタの能力を表したXMLドキュメント印刷能力情報であり、プリンタの機能およびその選択肢、UI表示文字列、排他情報などを記述したものである。図3aは、機能Aに関するPrintCapabilitiesを例示する。命令処理部420は、PrintCapabilities作成部460が作成したPrintCapabilitiesを拡張フィルタ情報管理部342に返す。拡張フィルタ情報管理部342は、拡張フィルタ400から取得したPrintCapabilitiesを追加ファイル情報用フォルダ500に保存する。併せて、拡張フィルタ情報管理部342は、当該PrintCapabilitiesに基づいてDevmode印刷設定構造体の値とその保存位置を作成し、このDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成する。図3bは、変換テーブルを例示する。拡張フィルタ情報管理部342は、生成した変換テーブルを同じく追加ファイル情報用フォルダ500に保存する。さらに、好ましい実施形態においては、拡張フィルタ情報管理部342は、拡張フィルタ400からデフォルトPrintTicketを取得する。この場合、拡張フィルタ情報管理部342は、拡張フィルタ400に対しデフォルトPrintTicket取得要求を発行し、拡張フィルタ400側は、これに対してデフォルトPrintTicket作成部462を搭載する。デフォルトPrintTicket作成部462は、拡張フィルタ情報管理部342からのデフォルトPrintTicket取得要求に応答して、デフォルトPrintTicketを作成する。デフォルトPrintTicketは、XPSプリンタドライバ100を初期化する際に参照される印刷条件の初期設定デフォルト値を記述したXMLドキュメント印刷設定情報である。命令処理部420は、デフォルトPrintTicket作成部462が作成したデフォルトPrintTicketを拡張フィルタ情報管理部342に返す。拡張フィルタ情報管理部342は、拡張フィルタ400から取得したデフォルトPrintTicketに記述された設定内容に対応する変換テーブル内の値にデフォルトフラグを記載する。なお、他の実施形態においては、拡張フィルタ400に対してデフォルトPrintTicketの作成を求めるのではなく、PrintCapabilities作成部460から取得したPrintCapabilitiesの最初に出現する選択値をデフォルト値として定義し、これに対応する変換テーブル内の値にデフォルトフラグを記載する。次に、図4に基づいて、本実施形態におけるUIモジュール300の拡張フィルタ制御部340の果たす機能について、具体的な処理に基づいてより詳細に説明する。図4は、アプリケーション200とXPSプリンタドライバ100の間でなされる既存の処理1~6を列挙したものである。以下、各ステージにおいて拡張フィルタ制御部340が実行する処理を説明する。1PrintCapabilities取得アプリケーション200がユーザインタフェース印刷ダイアログを提供するために、XPSプリンタドライバ100からPrintCapabilitiesを取得する場合について説明する。アプリケーション200は、XPSプリンタドライバ100に対してPrintCapabilities取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、従来の手順で作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてアプリケーション200に返す。アプリケーション200は、マージされたPrintCapabilitiesに基づいて印刷ダイアログを生成する。この印刷ダイアログには機能Aが選択可能に表示されるので、ユーザは、その他の標準機能と同様に、サードパーティベンダによって提供された機能AについてONOFFを制御したり、その設定値を選択したりすることが可能になる。2Devmode取得アプリケーション200がユーザインタフェース印刷ダイアログを生成するために、XPSプリンタドライバ100からDevmodeを取得する場合、アプリケーション200は、XPSプリンタドライバ100に対してDevmode取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmode構造体を作成する一方で、拡張フィルタ情報管理部342に対してDevmode取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された変換テーブルを参照して機能AのDevmodeの値とその保存位置を取得し、これを命令処理部320に渡す。命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmode構造体の取得した保存位置にセットしてアプリケーション200に返す。3Devmode→PrintTicketアプリケーション200が印刷設定を変更する場合、Devmode構造体を、一旦、編集可能なPrintTicketXML形式に変換する必要がある。この場合、アプリケーション200は、まず、XPSプリンタドライバ100にDevmodeを渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmodeをPrintTicketに変換するとともに、拡張フィルタ情報管理部342に当該Devmodeを渡す。これに応答して、拡張フィルタ情報管理部342は、当該Devmodeに保存されている機能Aの設定値を取得し、当該設定値をキーとして変換テーブルを検索して、これに対応するPrintTicketキーワードを命令処理部320に返す。これに応答して、命令処理部320は、従来の手順で変換したPrintTicketに対して拡張フィルタ情報管理部342から受領したPrintTicketキーワードを追記し、これをアプリケーション200に返す。4PrintTicket→Devmodeアプリケーション200は、印刷設定を変更するために3で取得したPrintTicketのXMLを編集し、編集後のPrintTicketをXPSプリンタドライバ100に渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で当該編集後のPrintTicketをDevmodeに変換するとともに、当該編集後のPrintTicketを拡張フィルタ情報管理部342に渡す。これに応答して、拡張フィルタ情報管理部342は、編集後のPrintTicketに記述されている機能AのPrintTicketキーワードを取得し、当該PrintTicketキーワードをキーとして変換テーブルを検索して、これに対応するDevmodeの値とその保存位置を命令処理部320に返す。これに応答して、命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmodeの取得した保存位置にセットしてアプリケーション200に返す。ただし、アプリケーション200がWPFアプリケーションである場合は、PrintTicketをそのまま印刷設定として使用することができるので、上述したPrintTicket→Devmodeの再変換は不要となる。5ドライバUI表示ユーザは、XPSプリンタドライバ100が提供するユーザインタフェース以下、ドライバUIとして参照するを呼び出す場合がある。たとえば、ユーザがアプリケーション200が提供する印刷ダイアログの詳細設定アイコンあるいは、プロパティアイコンをクリックすると、当該イベントに応答してアプリケーション200は、XPSプリンタドライバ100に対してドライバUI表示命令を発行する。これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得命令を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、標準フィルタ602について作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてなるPrintCapabilitiesに基づいてドライバUIを生成して表示する。このドライバUIには機能Aが選択可能に表示され、ユーザは、サードパーティベンダによって提供された機能AのONOFFをドライバUIを介して制御することが可能になる。ユーザがドライバUI上で印刷条件を選択した後、当該ドライバUIが閉じられると、これに応答して、命令処理部320は、選択された各フィルタ拡張フィルタ400を含むの機能の設定値に該当するDevmodeの値をDevmode構造体に保存してアプリケーション200に返す。6排他制御処理アプリケーション200が提供する印刷ダイアログを介して印刷条件が設定され、これに対応するPrintTicketがXPSプリンタドライバ100に送信されると、これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で排他制御処理を行う一方で、排他制御依頼部344に対して排他制御処理命令を発行する。これを受けて排他制御依頼部344は、拡張フィルタ400の排他制御部480にアプリケーション200から受領したPrintTicketを渡して排他制御処理を依頼する。排他制御部480は、PrintTicketの中から拡張フィルタがサポートしている機能Aに関する設定値を読み取り、他の設定等との排他をチェックする。排他制御部480は、必要に応じてPrintTicketを書き換えた後、これを排他制御依頼部344に返す。排他制御依頼部344は、戻ってきたPrintTicketを命令処理部320に返し、命令処理部320は、これをアプリケーション200に返す。その他、好ましい実施形態においては、UIモジュール300の拡張フィルタ制御部340は、拡張フィルタ400に対して、制御の可否を問い合わせるように構成することもできる。この場合、サードパーティベンダは、当該問い合わせに対して可または否を返すように拡張フィルタ400を設計する。拡張フィルタ制御部340は、拡張フィルタ400からの応答が可であった場合にのみ、図1~4に基づいて説明した処理を実行し、否であった場合には、上述した処理を実行しないように構成する。この場合、自身が提供する拡張機能についてユーザの操作を望まないサードパーティベンダは、当該問い合わせに対して否を返すように拡張フィルタ400を設計することでユーザから拡張機能を隠すことができる。なお、拡張フィルタ400に対して制御の可否を問い合わせる上記構成に代えて、制御の可否をフィルタ設定ファイルに予め記述しておくこともできる。この場合、拡張フィルタ制御部340がフィルタ設定ファイルから制御の可否についての値を読み込み、当該値が可であった場合にのみ、拡張フィルタ400に対して、図1~4に基づいて説明した処理を実行し、否であった場合には、上述した処理を実行しないように構成することもできる。この場合、自身が提供する拡張機能についてユーザの操作を望まないサードパーティベンダは、フィルタ設定ファイルの制御可否に関する設定値を否とすることでユーザから拡張機能を隠すことができる。以上、説明したように、本発明のXPSプリンタドライバは、標準パッケージに追加された拡張フィルタからPrintCapabilities等を取得するためのインターフェースを備えるため、サードパーティベンダが提供する拡張機能をUIアプリケーションUIあるいはドライバUIに選択可能に表示することができる。その結果、ユーザは、サードパーティベンダが提供する拡張機能について、その他の標準機能と同様に、ONOFFを制御したり、その設定値を選択したりすることが可能になる。以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではない。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。上述した実施形態の各機能は、C、C、C、Java登録商標などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD-ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。"