(57)【特許請求の範囲】
【請求項１】
プラグインと協働するプリンタドライバであって、
アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施すフィルタ処理部と、
前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する描画後処理部と、を備える
ことを特徴とするプリンタドライバ。
【請求項２】
前記フィルタ処理部は、アプリケーションからの描画データに対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を前記印刷設定用データ構造体に追加することを特徴とする請求項１に記載のプリンタドライバ。
【請求項３】
前記フィルタ処理部は、アプリケーションからの印刷設定用データ構造体に対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を印刷設定用データ構造体に追加することを特徴とする請求項１に記載のプリンタドライバ。
【請求項４】
前記フィルタ処理部が検知する前記所定のデータを指定するためのフィルタＵＩ部をさらに備えたことを特徴とする請求項１から請求項３のいずれか１項に記載のプリンタドライバ。
【請求項５】
前記フィルタ処理部は、前記検知の結果を該フィルタ処理部に従属するフィルタ従属プラグインに送り、前記描画後処理部は、前記フィルタ従属プラグインから応答として返される追加用データを反映させた印刷データを生成することを特徴とする請求項１から請求項４のいずれか１項に記載のプリンタドライバ。
【請求項６】
請求項１から請求項５のいずれか１項に記載のプリンタドライバのフィルタ処理部をインストールするためのインストーラであって、
インストール済みのプラグインを検知し、検知したインストール済みのプラグインに応じて前記フィルタ処理部を情報処理装置にインストールする
ことを特徴とするインストーラ。
【請求項７】
プラグインと協働するプリンタドライバに従ってコンピュータが実行する情報処理方法であって、
前記プリンタドライバのフィルタ処理部に従って、コンピュータが、アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施す工程と、
前記プリンタドライバの描画後処理部に従って、コンピュータが、前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する工程と、を含む
ことを特徴とする情報処理方法。
【請求項８】
前記フィルタ処理部に従って、前記コンピュータが、アプリケーションからの描画データに対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を前記印刷設定用データ構造体に追加することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記フィルタ処理部に従って、前記コンピュータが、アプリケーションからの印刷設定用データ構造体に対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を印刷設定用データ構造体に追加することを特徴とする請求項７に記載の情報処理方法。
【請求項１０】
前記フィルタ処理部が検知する前記所定のデータを指定するためのフィルタＵＩ部を介して前記所定のデータを受付けることを特徴とする請求項７から請求項９のいずれか１項に記載の情報処理方法。
【請求項１１】
前記コンピュータは、前記フィルタ処理部に従って、前記検知の結果を該フィルタ処理部に従属するフィルタ従属プラグインに送り、前記描画後処理部に従って、前記フィルタ従属プラグインから応答として返される追加用データを反映させた印刷データを生成することを特徴とする請求項７から請求項１０のいずれか１項に記載の情報処理方法。
【請求項１２】
請求項７から請求項１１のいずれか１項に記載のプリンタドライバのフィルタ処理部をインストールするためのインストーラに従って、前記コンピュータが実行する情報処理方法であって、
前記コンピュータは、前記インストーラに従って、インストール済みのプラグインを検知し、検知したインストール済みのプラグインに応じて前記フィルタ処理部を、前記コンピュータを備える情報処理装置にインストールする
ことを特徴とする情報処理方法。
【請求項１３】
プラグインと協働するプリンタドライバを実装した情報処理装置であって、前記プリンタドライバが、
アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施すフィルタ処理部と、
前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する描画後処理部と、を備えた
ことを特徴とする情報処理装置。
【請求項１４】
前記フィルタ処理部は、アプリケーションからの描画データに対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を前記印刷設定用データ構造体に追加することを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記フィルタ処理部は、アプリケーションからの印刷設定用データ構造体に対して前記プラグインに係わる所定のデータを検知し、該所定のデータの有無に応じて、前記プラグイン用の設定を印刷設定用データ構造体に追加することを特徴とする請求項１３に記載の情報処理装置。
【請求項１６】
前記プリンタドライバは、前記フィルタ処理部が検知する前記所定のデータを指定するためのフィルタＵＩ部をさらに備えることを特徴とする請求項１３から請求項１５のいずれか１項に記載の情報処理装置。
【請求項１７】
前記フィルタ処理部は、前記検知の結果を該フィルタ処理部に従属するフィルタ従属プラグインに送り、前記描画後処理部は、前記フィルタ従属プラグインから応答として返される追加用データを反映させた印刷データを生成することを特徴とする請求項１３から請求項１６のいずれか１項に記載の情報処理装置。
【請求項１８】
請求項１３から請求項１７のいずれか１項に記載のプリンタドライバのフィルタ処理部をインストールするためのインストーラをさらに実装し、該インストーラは、インストール済みのプラグインを検知し、検知したインストール済みのプラグインに応じて前記フィルタ処理部を本情報処理装置にインストールする機能を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画データや印刷設定に対しその追加、削除、変更等の加工をするためのフィルタ処理機能を有し、かつプラグインを追加することにより機能拡張できる、プリンタドライバ、インストーラ、情報処理方法および情報処理装置に関する。
【背景技術】
【０００２】
プリンタやＭＦＰ（複合機）などの画像形成装置は、様々なオフィス環境で利用されるため、現在では、必要な機能のみ利用可能となるようにカスタマイズできることが求められている。そこで、追加機能を後で追加できるプリンタなどが開発されている。このように追加機能をプリンタに追加する場合、プリンタを制御するプリンタドライバに対しても、追加した機能を使えるように機能拡張する必要がある。一方、プリンタ自体に追加機能を追加しない場合でも、プリンタドライバ単体に対して、機能拡張のニーズが存在する。
【０００３】
しかしながら、プリンタドライバの機能を拡張する場合、通常は機能拡張したプリンタドライバをメーカー側で作成し、このドライバを顧客のコンピュータ環境に再インストールしてもらう必要がある。
【０００４】
そこで、プリンタドライバの機能を拡張するために、メーカー側での機能拡張したプリンタドライバの作成や、ユーザによるプリンタドライバの再インストールを行うことなく、拡張される機能部分にのみ対応したプログラムをプラグインとしてプリンタドライバに付加することによって、プリンタドライバに機能を追加する技術が提案されている（例えば、特許文献１）。
【０００５】
一方、プリンタドライバの中には、描画データや印刷設定に対し、その追加、削除、変更等の加工をするためのフィルタ処理機能をプリンタドライバ本体にもたせることにより、機能拡張させたものもある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来は、プラグインとフィルタ処理機能を連携させる発想がなく、プラグインによってのみ機能拡張させたり、フィルタ処理機能によってのみ機能拡張させていた。
【０００７】
本発明は、上記に鑑みてなされたものであって、プラグインとフィルタ処理機能を連携させることにより、プラグインのみまたはフィルタ処理機能のみによる機能拡張では得られない拡張機能を得ることができるプリンタドライバ、インストーラ、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、プラグインと協働するプリンタドライバであって、アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施すフィルタ処理部と、前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する描画後処理部と、を備えることを特徴とする。
【０００９】
また、本発明は、プラグインと協働するプリンタドライバに従ってコンピュータが実行する情報処理方法であって、前記プリンタドライバのフィルタ処理部に従って、コンピュータが、アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施す工程と、前記プリンタドライバの描画後処理部に従って、コンピュータが、前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する工程と、を含むことを特徴とする。
【００１０】
また、本発明は、プラグインと協働するプリンタドライバを実装した情報処理装置であって、前記プリンタドライバが、アプリケーションからのデータ中に前記プラグインに係わる所定のデータを検知した場合、前記所定のデータに対応する前記プラグイン用の設定を印刷設定用データ構造体に追加するフィルタ処理を施すフィルタ処理部と、前記プラグインの描画部に前記フィルタ処理後の前記印刷設定用データ構造体を渡し、該印刷設定用データ構造体に基づいて前記プラグインの描画部が生成した追加用データと前記フィルタ処理部によりフィルタ処理されたデータとに基づく印刷データを生成する描画後処理部と、を備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、プラグインのみまたはフィルタ処理機能のみによる機能拡張では得られない拡張機能を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施の形態にかかるプリンタシステムの全体構成図を示す図である。
【図２】図２は、同実施形態におけるＰＣの構成を示すブロック図である。
【図３】図３は、実施例１として、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの動作を説明する図である。
【図４】図４は、描画データの一例を示す図である。
【図５】図５は、リフレッシュコピー用プラグインに関する設定が追加されたＤＥＶＭＯＤＥの一例を示す図である。
【図６】図６は、ＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）形式の追加用の印刷データの一例を示す図である。
【図７】図７は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例２としての動作を説明する図である。
【図８】図８は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例３としての動作を説明する図である。
【図９】図９は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例４としての動作を説明する図である。
【図１０】図１０は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例５としての動作を説明する図である。
【図１１】図１１は、フィルタＵＩ部の表示画面例を示す図である。
【図１２】図１２は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例６としての動作を説明する図である。
【図１３】図１３は、フィルタ処理部１２３に従属するフィルタ従属プラグイン１１４がもつインターフェースを示す図である。
【図１４】図１４は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例７としての動作を説明する図である。
【図１５】図１５は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例８としての動作を説明する図である。
【図１６】図１６は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例９としての動作を説明する図である。
【図１７】図１７は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例１０としての動作を説明する図である。
【図１８】図１８は、地紋印刷用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例１１としての動作を説明する図である。
【図１９】図１９は、２ｉｎ１印刷用プラグイン１１３が追加されたプリンタドライバを実装するＰＣの実施例１２としての動作を説明する図である。
【図２０】図２０は、フィルタ処理部１２３の動作フローチャートである。
【図２１】図２１は、プラグイン１１３の動作フローチャートである。
【図２２】図２２は、フィルタ従属プラグイン１１４の動作フローチャートである。
【図２３】図２３は、描画後処理部１２４の動作フローチャートである。
【図２４】図２４は、フィルタ処理部１２３をインストールするインストーラの動作フローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるプリンタシステムの一実施の形態を詳細に説明する。
【００１４】
（プリンタシステムの全体構成）
図１は、本発明の一実施の形態にかかるプリンタシステムの全体構成図を示した図である。図１に示すように、本実施の形態ではＰＣ１００とプリンタ１５０とがネットワーク１６０を介して接続されているものとする。そして、ＰＣ１００からの印刷要求に応じて、プリンタ１５０が印刷処理を行う。
【００１５】
（ＰＣ１００の構成）
図２は、ＰＣ１００の構成を示すブロック図である。図２に示すように、ＰＣ１００は、処理部１０１と、記憶部１０２と、通信部１０３とを備えている。処理部１０１は、図示しない制御手段としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭおよびメインメモリとなるＲＡＭを有するメモリ群とを含んで構成されている。ＰＣ１００の起動・実行時には、ＲＯＭおよび記憶部１０２からアプリケーション１０４と、ＯＳ１０５と、各種ドライバ（図２においては、プリンタドライバ１０６のみ記載）が、メインメモリ上にロードされ展開されて、これらがＣＰＵにより実行される。なお、ＰＣ１００は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図２においては説明の簡単のため省略している。
【００１６】
図２に示すプリンタドライバ１０６内の機能ブロックは、プリンタ１５０の制御を実現するための機能又は手段である。特に、コアドライバ１１１は、プリンタドライバ１０６の核となる部分であり、プリンタドライバとしての基本的な機能を有する。これに対し、各プラグイン（図２では、（リフレッシュコピー用や地紋印刷用等の）プラグインおよび後述のフィルタ従属プラグインのみ例示）は、コアドライバ１１１のみからなるプリンタドライバ１０６に対してその機能を拡張するためのプログラムであり、コアドライバ１１１と組み合わさって（機能拡張された）プリンタドライバ１０６を構成する（詳細は後述）。
【００１７】
通信部１０３は、ネットワーク１６０を介して接続されたプリンタ１５０と情報の送受信を行う。
【００１８】
アプリケーション１０４は、ユーザが印刷指示をすることができる任意のソフトウェアとする。ユーザはアプリケーション１０４で編集したデータを印刷したい場合、アプリケーション１０４が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション１０４は、単体でプリンタ１５０に対する印刷データの生成を行わず、上記印刷指示に応じた印刷設定を含む印刷設定用データ構造体としてのＤＥＶＭＯＤＥと共に印刷対象の情報（ドキュメントデータ、画像データ等の描画データ）を、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）コールによりＯＳ１０５に渡す。
【００１９】
ＯＳ１０５は、ＰＣ１００のハードウェアとソフトウェアとを管理するプログラムである。ＯＳ１０５は、プログラムの起動、情報の読み込みや保存の制御等を行う。ＯＳのうち代表的なものとしては、ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）等が知られている。
【００２０】
このＯＳ１０５は、アプリケーション１０４から渡されたＧＤＩコールをＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）コールに変換してプリンタドライバ１０６に渡す。
【００２１】
記憶部１０２は、様々な情報を記憶する記憶手段である。具体的にはＨＤＤ等である。記憶される情報には、コアドライバ１１１や各プラグインが有する所定の機能（例えば、リフレッシュコピーや、地紋印刷など）を実現するための部分的な処理に関する情報（処理に用いる設定値や、設定値の変更をするための表示情報など、処理に必要なあらゆる情報）を定義した設定情報がある。なお、この設定情報には、設定画面に表示されるＧＵＩコンポーネントのレイアウトが記述された情報であるレイアウト情報や、追加されたプラグインに関して記述された情報であるプラグイン情報や、各設定値の設定可能な範囲や各設定間の禁則が記述された情報である機能情報等も含まれる。
【００２２】
プリンタドライバ１０６は、コアドライバ１１１と、インターフェース部１１２と、プラグイン１１３と、フィルタ従属プラグイン１１４とを備えている。もちろん、図２は説明のための一例であって、プラグインは任意に追加・削除（アンインストール）することができる。
【００２３】
コアドライバ１１１は、プリンタドライバ１０６としての標準機能を有する。また、コアドライバ１１１は、プリンタドライバ１０６としての機能を果たすための主要なモジュール群として、ＵＩ部１２１と、印刷設定に基づき印刷データを生成する描画部として機能する、描画前処理部１２２とフィルタ処理部１２３と描画後処理部１２４とを備える。このコアドライバ１１１のＵＩ部１２１および描画部（フィルタ処理部１２３、描画後処理部１２４）は、インストールされたプラグインを確認する際に、上記プラグイン情報を参照する。これにより、コアドライバ１１１は、インストールされているプラグインを確認できる。
【００２４】
また、コアドライバ１１１に含まれる上記モジュール群は、標準的な印刷処理のみならず、インストールされたプラグインに含まれるモジュールではできない部分的な処理を、上記設定情報に従って代行する。そして、記憶部１０２に記憶される設定情報が、プラグインのインストーラにより書き込まれ、コアドライバ１１１のＵＩ部１２１及び描画部が、書き込まれた設定情報を参照することで、代行することを可能としている。
【００２５】
ＵＩ部１２１は、ユーザに対する印刷設定のためのＧＵＩとなる印刷設定画面を表示する。本実施形態にかかるＵＩ部１２１は、記憶部１０２に記憶されたレイアウト情報に基づいて印刷設定画面等を表示する。
【００２６】
また、ＵＩ部１２１は、印刷設定画面を介して設定された各設定値を、ＤＥＶＭＯＤＥに保存する。なお、ＤＥＶＭＯＤＥとは、印刷に関する様々な設定を保持するために、ＯＳ１０５が提供する構造体である。
【００２７】
コアドライバ１１１の描画部を構成する描画前処理部１２２と、フィルタ処理部１２３と、描画後処理部１２４は、全体として、アプリケーション１０４から印刷を要求されたデータをプリンタが解釈可能な印刷データに変換する。そして変換された印刷データを、通信部１０３を介して、プリンタ１５０に送信する。なお、描画前処理部１２２と、フィルタ処理部１２３と、描画後処理部１２４の個別の機能（動作）は後述する。
【００２８】
インターフェース（Ｉ／Ｆ）部１１２は、プラグインの追加を受け付けるインターフェースである。プリンタドライバ１０６にプラグインが追加された場合、コアドライバ１１１は、当該インターフェース部１１２を介して、追加されたプラグインの各モジュールを呼び出すことができる。また、追加されたプラグインも、当該インターフェース部１１２を介して、コアドライバ１１１の各モジュールを呼び出すことが可能となる。
【００２９】
図中破線１３０で囲まれたプラグイン１１３、及びフィルタ従属プラグイン１１４は、コアドライバ１１１に機能を追加するダイナミック・リンク・ライブラリとして構成されたプラグインとする。これらのプラグインは、所定の機能を実現するために、一つ以上のモジュールで構成されている。同図に示すプラグイン１１３は、プラグインＵＩ部１３１及びプラグイン描画部１３２を備えたものとなっている。また、フィルタ従属プラグイン１１４は、フィルタ従属プラグイン描画部１４１と、通常のインターフェースに加えフィルタ処理部１２３とのインターフェース（同図にて図示せず；後述）を備えたものとなっている。なお、一般的にはプラグインの構成は任意である。
【００３０】
プラグインＵＩ部１３１は、インターフェース部１１２を介して行われたコアドライバ１１１のＵＩ部１２１からの表示命令に従って、プラグインが有する機能についての設定画面を表示する。一方、プラグイン描画部１３２は、インターフェース部１１２を介して行われたコアドライバ１１１の描画部（描画後処理部１２４）からの描画命令に従って、プラグインが有する機能を用いてなされる描画機能を実行する。つまり、コアドライバ１１１のＵＩ部１２１の拡張部分がプラグイン１１３のＵＩ部（プラグインＵＩ部１３１）となる。そして、コアドライバ１１１の描画部の拡張部分がプラグイン１１３の描画部（プラグイン描画部１３２）となる。
【００３１】
また、追加するプラグインによっては、コアドライバ１１１のモジュール（ＵＩ部１２１、描画後処理部１２４）の機能を利用することで、すなわち、コアドライバ１１１が機能代行することで、プラグインに全てのモジュールを作成する必要がなくなった。これにより、プラグインの開発負担を軽減できる。
【００３２】
プラグインに必要な機能の一部をコアドライバ１１１のモジュールに代行させるために、コアドライバ１１１の各モジュールが参照する外部ファイルを更新する必要がある。つまり、プラグインは、コアドライバ１１１にはない機能を有する当該プラグインに固有のモジュールの追加と、コアドライバ１１１の各モジュールが参照する設定情報を更新するだけで、プラグインとして動作することができる。
【００３３】
なお、本実施形態にかかるプリンタドライバ１０６に対するプラグインの追加は、プラグイン自身のダイナミック・リンク・ライブラリの追加と、さらに、設定情報の内容の追加をすることで行う。これにより、ＰＣ１００にインストール済みのプリンタドライバ１０６に対して、プラグインの追加を容易に行うことが可能となる。
【００３４】
また、プラグイン情報は、ＵＩ部を有する各プラグインの名称と、各プラグインのＵＩの実体であるダイナミック・リンク・ライブラリ（ＤＬＬ）のファイル名とを対応付けて保持する。さらに、描画部を有する各プラグインの名称と、各プラグインの描画部の実体であるＤＬＬのファイル名とを対応付けて保持する。したがって、プラグイン情報に含まれる各プラグインのファイル名を用いて、コアドライバ１１１などのＵＩ部１２１から、各プラグインのＵＩ部を呼び出すことができ、また、コアドライバ１１１の描画部の描画後処理部１２４から、各プラグインの描画部を呼び出すことができる。
【００３５】
なお、本実施形態におけるプラグイン１１３およびフィルタ従属プラグイン１１４は、一般的なプラグインにはない固有の機能をもつものであり、その詳細は以下で説明することとする。
【００３６】
次に、ＰＣ１００に実装されるプリンタドライバ１０６の各構成要素の機能の詳細について図３〜図１９を用いて説明する。
【００３７】
（実施例１）
図３は、実施例１として、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の動作を説明する図である。
【００３８】
はじめに、ユーザが、プリンタドライバ１０６に含まれるコアドライバ１１１およびリフレッシュコピー用プラグイン１１３の各ＵＩ部（１２１，１３１）による印刷設定画面を介して、印刷設定を行う。このとき、プラグインＵＩ部１３１は、コアドライバ１１１による印刷設定画面に、プラグイン用印刷設定を受け付けるためのプラグイン用印刷設定コンポーネントを追加する。上記印刷設定画面を介して入力された基本的な印刷設定およびプラグイン用印刷設定は、ＤＥＶＭＯＤＥに変換される。なお、ＤＥＶＭＯＤＥは、印刷に関する様々な設定を保持するためにＯＳ１０５が提供する構造体であり、ユーザにより指定された印刷設定やデフォルト値等が格納される。アプリケーション１０４とコアドライバ１１１は、このＤＥＶＭＯＤＥを介して設定値をやり取りする。
【００３９】
次いで、上記で設定された印刷設定のもとで、ユーザが、アプリケーション１０４の印刷指示画面を介して、アプリケーション１０４に対して印刷指示を行う。
【００４０】
アプリケーション１０４は、ユーザから印刷指示を受けると、ＯＳ１０５が提供するＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）１０５ｂに対してＤＥＶＭＯＤＥと描画データとをＧＤＩコールで渡す。
【００４１】
アプリケーション１０４からＧＤＩコールを受けたＧＤＩ１０５ｂは、コアドライバ１１１およびリフレッシュコピー用プラグイン１１３の描画能力に応じてＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）コールに変換しコアドライバ１１１に渡す。
【００４２】
コアドライバ１１１の描画前処理部１２２は、アプリケーション１０４からＤＤＩコールで渡されたデータを、フィルタ処理部１２３で処理するための中間データ（ＤＥＶＭＯＤＥを含む制御データ、描画データ）に変換する。
【００４３】
フィルタ処理部１２３は、描画前処理部１２２から中間データを取得し、その描画データ（例えば、図４）をチェックし、（後述する）条件に応じて中間データやＤＥＶＭＯＤＥに対し追加、削除、変更等の加工を行うフィルタ処理を実行する。具体的には、図３の例では、描画データ（図４）に「リフレッシュコピー」とあった場合に、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加する（図５）。その他、フィルタ処理部１２３は、ウォーターマークを追加したり、イメージを削除したり、カラーからモノクロへの変更を行ったり、中間データに対して様々な加工を施すことができる。なお、図４に例示した描画データは、（Ｌｅｆｔ，Ｔｏｐ，Ｒｉｇｈｔ，Ｂｏｔｔｏｍ）で規定される基準座標と、描画する文字の文字コードとそのオフセット座標とからなっている。また、図５は、リフレッシュコピー用プラグインに関する設定が追加されたＤＥＶＭＯＤＥの一例を示している。
【００４４】
描画後処理部１２４は、フィルタ処理部１２３によるフィルタ処理後のＤＥＶＭＯＤＥをプラグイン描画部１３２に渡し、中間データ（制御データ、描画データ）を印刷データに変換する。一方、プラグイン描画部１３２は、描画後処理部１２４から渡されたＤＥＶＭＯＤＥをチェックし、プラグイン用印刷設定があれば、この設定を追加用の印刷データに変換する。
【００４５】
図３の例では、ＤＥＶＭＯＤＥにリフレッシュコピー用の設定（図５で、例えば“ｒｅｆｒｅｓｈｃｏｐｙ”：“ｏｎ”等）があった場合に、この設定を、図６に例示すようなＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）形式の追加用の印刷データに変換する。
【００４６】
描画後処理部１２４は、フィルタ処理部１２３からの中間データから生成した印刷データに、プラグイン描画部１３２が生成したリフレッシュコピー用の追加用印刷データを加えて、プリンタ１５０に送出する。
【００４７】
そして、描画後処理部１２４からの印刷データを受けたプリンタ１５０は、この印刷データに従って、印刷用紙等の記録媒体に描画をすることとなる。
【００４８】
（実施例２）
図７は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例２としての動作を説明する図である。本実施例が上述の実施例と異なる点は、フィルタ処理部１２３における描画データのチェックの際、描画データに「リフレッシュコピー」と無かった場合に、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加する点である（図５）。その他の点は、実施例１と同様である。
【００４９】
（実施例３）
図８は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例３としての動作を説明する図である。本実施例が上述の実施例１と異なる点は、フィルタ処理部１２３における制御データのチェックを行い、このチェックの際、制御データに「２ｉｎ１」印刷の指定があった場合に（すなわち、ＤＥＶＭＯＤＥに「２ｉｎ１」印刷の指定があった場合に）、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加する点である（図５）。その他の点は、実施例１と同様である。
【００５０】
（実施例４）
図９は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例４としての動作を説明する図である。本実施例が上述の実施例３と異なる点は、フィルタ処理部１２３における制御データのチェックの際、制御データにＤＥＶＭＯＤＥに「２ｉｎ１」印刷の指定が無かった場合に（すなわち、ＤＥＶＭＯＤＥに「２ｉｎ１」印刷の指定が無かった場合に）、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加する点である（図５）。その他の点は、実施例３と同様である。
【００５１】
（実施例５）
図１０は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例５としての動作を説明する図である。本実施例が前述の実施例１と異なる点は、実施例１では、フィルタ処理部１２３における描画データのチェックの際、描画データに「リフレッシュコピー」という文字列があるかどうかを確認しているが、本実施例では、フィルタＵＩ部１２５を設け、このフィルタＵＩ部１２５を介して設定された文字列が描画データにある場合に、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加する点である（図５）。
【００５２】
図１１に、フィルタＵＩ部１２５の画面例を示す。このフィルタＵＩ部１２５を用いた設定は管理者によって行われ、フィルタＵＩ部１２５は、設定された文字列をフィルタ処理部１２３へ渡す。なお、その他の点は、実施例１と同様である。また、図１１に例示したフィルタＵＩ部１２５の画面のように、キーワードの指定や、検知対象（描画データ／ＤＥＶＭＯＤＥ／検知しない）の指定に加え、特定のプリンタの指定や、描画データに対する検索範囲の指定等も行えるようにしてもよい。
【００５３】
（実施例６）
図１２は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例６としての動作を説明する図である。実施例１では、フィルタ処理部１２３における描画データのチェックの際、描画データに「リフレッシュコピー」という文字列があるかどうかを確認し、確認できた場合に、リフレッシュコピー用のデータをＤＥＶＭＯＤＥに追加しているが（図５）、本実施例は、以下の点が、前述の実施例１と異っている。
【００５４】
本実施例では、フィルタ処理部１２３に従属するフィルタ従属プラグイン１１４を設けている。そして、このフィルタ従属プラグイン１１４のフィルタ従属プラグイン描画部１４１に備わる機能通知Ｉ／Ｆ（図１３）へ、フィルタ処理部１２３が描画データの確認結果を送信する。例えば、描画データに「リフレッシュコピー」とあった場合に、ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮという情報を機能通知Ｉ／Ｆへ送信する。
【００５５】
フィルタ従属プラグイン１１４のフィルタ従属プラグイン描画部１４１は、フィルタ処理部１２３からのチェック結果を受信し、その内容を確認して、条件を満たしておればその内容を追加用の印刷データに変換する。例えば、機能通知Ｉ／Ｆが“ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮ”を受信した場合に、例えば図６に示したようなＰＪＬ形式の印刷データ（追加用）に変換する。この追加用の印刷データは、一般のプラグインに備わる通常Ｉ／Ｆを介してリフレッシュコピー用プラグイン１１３に渡され、このリフレッシュコピー用プラグイン１１３からさらに描画後処理部１２４へ渡される。なお、その他の点は、実施例１と同様である。
【００５６】
（実施例７）
図１４は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例７としての動作を説明する図である。本実施例は、フィルタ処理部１２３に従属するフィルタ従属プラグイン１１４を設け、このフィルタ従属プラグイン１１４のフィルタ従属プラグイン描画部１４１に備わる機能通知Ｉ／Ｆ（図１３）へ、フィルタ処理部１２３が描画データの確認結果を送信する構成としている。この点は、上記実施例６と同じであるが、本実施例では、例えば、描画データに「リフレッシュコピー不要」と無かった場合に、ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮという情報を機能通知Ｉ／Ｆへ送信する点が実施例６と異なっている。その他の動作は、実施例６と同様である。
【００５７】
（実施例８）
図１５は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例８としての動作を説明する図である。本実施例は、フィルタ処理部１２３に従属するフィルタ従属プラグイン１１４を設け、このフィルタ従属プラグイン１１４のフィルタ従属プラグイン描画部１４１に備わる機能通知Ｉ／Ｆ（図１３）へ、フィルタ処理部１２３が制御データの確認結果を送信する構成としている。そして、例えば、制御データに「２ｉｎ１」を指定する情報が含まれる場合に（すなわち、ＤＥＶＭＯＤＥに「２ｉｎ１」の指定があった場合に）、ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮという情報を機能通知Ｉ／Ｆへ送信する。その他の動作は、実施例６と同様である。
【００５８】
（実施例９）
図１６は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例９としての動作を説明する図である。本実施例は、実施例８と異なり、例えば、制御データに「２ｉｎ１」を指定する情報が含まれない場合に（すなわち、ＤＥＶＭＯＤＥに「２ｉｎ１」の指定がなかった場合に）、ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮという情報を機能通知Ｉ／Ｆへ送信する。その他の動作は、実施例８と同様である。
【００５９】
（実施例１０）
図１７は、リフレッシュコピー用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例１０としての動作を説明する図である。本実施例は、フィルタ処理部１２３に従属するフィルタ従属プラグイン１１４を設け、このフィルタ従属プラグイン１１４のフィルタ従属プラグイン描画部１４１に備わる機能通知Ｉ／Ｆ（図１３）へ、フィルタ処理部１２３が描画データの確認結果を送信する構成としている。この点は、前述の実施例６と同じであるが、本実施例では、さらに、フィルタＵＩ部１２５を設け、このフィルタＵＩ部１２５を介して設定された文字列が描画データにあるか否かを確認する構成としている。
【００６０】
例えば、フィルタＵＩ部１２５を介して設定された文字列が「リフレッシュコピー」である場合、フィルタ処理部１２３における描画データ（例えば、図４）のチェックの際、描画データに「リフレッシュコピー」という文字列があるかどうかを確認し、この「リフレッシュコピー」があった場合、ＲｅｆｒｅｓｈＣｏｐｙ  ＯＮという情報を機能通知Ｉ／Ｆへ送信する。その他の動作は、実施例６と同様である。
【００６１】
上述した諸実施例は、リフレッシュコピー用のプラグイン１１３をコアドライバ１１１と組み合わせた形態によるものであるが、以下では、その他のプラグインとの組み合わせの例として、地紋印刷を実施するための地紋印刷用のプラグイン１１３をコアドライバ１１１と組み合わせた例および２ｉｎ１印刷を実施するための２ｉｎ１印刷用のプラグイン１１３と組み合わせた例について説明する。
【００６２】
（実施例１１）
図１８は、地紋印刷用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例１１としての動作を説明する図である。本実施例が前述の実施例１と異なる点は、フィルタ処理部１２３における描画データのチェックの際、描画データに「地紋」とあった場合に、地紋印刷用のデータをＤＥＶＭＯＤＥに追加する点と、ＤＥＶＭＯＤＥに地紋印刷用のデータがある場合に、地紋印刷用プラグイン１１３にて地紋印刷用の追加データ（ＰＪＬ）を生成する点である（図示せず）。その他の点は、実施例１と同様である。
【００６３】
（実施例１２）
図１９は、２ｉｎ１印刷用プラグイン１１３が追加されたプリンタドライバ１０６を実装するＰＣ１００の実施例１２としての動作を説明する図である。本実施例が前述の実施例１と異なる点は、フィルタ処理部１２３における描画データのチェックの際、描画データに「集約」とあった場合に、２ｉｎ１印刷用のデータをＤＥＶＭＯＤＥに追加する点と、ＤＥＶＭＯＤＥに２ｉｎ１印刷用のデータがある場合に、２ｉｎ１印刷用プラグイン１１３にて２ｉｎ１印刷用の追加中間データ（制御：ｉＰＪＬ）を生成する点と、描画後処理部１２４がフィルタ処理部１２３からの中間データ（制御）と２ｉｎ１印刷用プラグイン１１３からの２ｉｎ１印刷用の追加中間データ（制御：ｉＰＪＬ）に従って印刷データを生成する点である（図示せず）。その他の点は、実施例１と同様である。
【００６４】
以上説明したように、本実施形態においてコアドライバ１１１と組み合わせるプラグイン１１３は、特定の機能をもつものに限るものではなく、様々な機能をもったプラグイン１１３をコアドライバ１１１と組み合わせることができる。そして、フィルタ処理部１２３は、ＤＥＶＭＯＤＥに管理者指定のまたは所定の指定（設定）がある場合や、描画データに管理者指定のまたは所定の文字列がある場合に、プラグイン１１３またはフィルタ従属プラグイン１１４に、そのプラグイン１１３が持つ特定機能を利用する追加用の印刷データ（ＰＪＬ）または中間データ（制御：ｉＰＪＬ）を生成させ、コアドライバ１１１の描画後処理部１２４がこの追加用印刷データ（ＰＪＬ）を追加した（または中間データ（制御：ｉＰＪＬ）を反映させた）印刷データをプリンタ１５０に出力する構成としている。
【００６５】
この構成により、エンドユーザが指定した印刷に対し、管理者の（または所定の）指定（設定）に対応したプラグインの機能をさらに発動させることができる。
【００６６】
続いて、フィルタ処理部１２３、プラグイン１１３、フィルタ従属プラグイン１１４、および描画後処理部１２４の動作を、フローチャートを参照し説明する。
【００６７】
（フィルタ処理部１２３の動作）
まず、フィルタ処理部１２３の動作について、図２０を用いて説明する。図２０は、フィルタ処理部１２３の動作フローチャートである。なお、ここでは、コアドライバ１１１に、フィルタＵＩ部１２５が設けられているものとして説明する。
【００６８】
フィルタ処理部１２３は、まず、描画前処理部１２２が生成した中間データを、描画前処理部１２２から取得する（ステップＳ２００１）。
【００６９】
次いで、フィルタＵＩ部１２５を介して管理者により指定されたチェックデータ（検知するキーワードまたは印刷設定の内容（２ｉｎ１印刷等））を取得する（ステップＳ２００２）。なお、フィルタＵＩ部１２５がない構成では、予め設定されたチェックデータを用いる。
【００７０】
次いで、チェック対象（ＤＥＶＭＯＤＥまたは描画データまたは対象無し（チェック無し））を選択する（ステップＳ２００３）。このチェック対象は、フィルタＵＩ部１２５（図１１）で指定される。このチェック対象（ＤＥＶＭＯＤＥまたは描画データ）は、予め固定されていてもよい。
【００７１】
ここで、ＤＥＶＭＯＤＥがチェック対象である場合、ステップＳ２００３からステップＳ２００４へ移行し、ＤＥＶＭＯＤＥにチェックデータ（ステップＳ２００３で指定された印刷設定の内容）が含まれているかチェックする。
【００７２】
一方、描画データがチェック対象である場合、ステップＳ２００３からステップＳ２００５へ移行し、描画データにチェックデータ（ステップＳ２００３で指定されたキーワード）が含まれているかチェックする。
【００７３】
ステップＳ２００４またはステップＳ２００５のチェックの結果、該当無しの場合（ステップＳ２００６でＹｅｓ）、ステップＳ２００１０へ移行し、一方、該当しておれば（ステップＳ２００６でＮｏ）、ステップＳ２００７へ移行する。
【００７４】
次いで、ステップＳ２００７では、データ送信方法を選択する。ここでは、フィルタ従属プラグイン１１４が存在しない場合は、ＤＥＶＭＯＤＥをプラグインに送信するものとし、フィルタ従属プラグイン１１４が存在する場合は、ステップＳ２００４またはステップＳ２００５でのチェックの結果（確認結果）をフィルタ従属プラグイン１１４に送信するものとするが、ここでのデータ送信方法は、例えばフィルタＵＩ部１２５で、管理者が指定できるようにしてもよい。
【００７５】
上記選択で、ＤＥＶＭＯＤＥをプラグインに送信する場合では、ＤＥＶＭＯＤＥに所定の印刷設定用のデータを追加する（ステップＳ２００８）。
【００７６】
一方、上記データ送信方法の選択で、チェック結果をフィルタ従属プラグイン１１４に送信する場合では、本ステップにおいてチェック結果のデータをフィルタ従属プラグイン１１４に送信する（ステップＳ２００９）。
【００７７】
そして、ＤＥＶＭＯＤＥを含む中間データ（制御データ、描画データ）を描画後処理部１２４へ送信する（ステップＳ２０１０）。
【００７８】
（プラグイン１１３の動作）
次に、プラグイン１１３の動作について、図２１を用いて説明する。図２１は、プラグイン１１３の動作フローチャートである。
【００７９】
プラグイン１１３は、後述のように描画後処理部１２４から送信されるＤＥＶＭＯＤＥを取得すると（ステップＳ２１０１）、ＤＥＶＭＯＤＥ内のデータを確認する（ステップＳ２１０２）。
【００８０】
次に、追加用のＰＪＬを生成するのか、中間データ（制御：ｉＰＪＬ）を生成するのか、または（印刷設定に本プラグインで処理すべき対象となるものがなく）本プラグインにおいて処理をしないのか、を決定する（ステップＳ２１０３）。
【００８１】
なお、追加用のＰＪＬを生成するのか、中間データ（制御：ｉＰＪＬ）を生成するのかの判断基準としては、コアドライバ１１１の描画後処理部１２４が、印刷データに追加用のＰＪＬを追加する機能を持つものであるか、または描画前処理部１２２からの中間データ（制御）に加えプラグイン１１３またはフィルタ従属プラグイン１１４にて生成した中間データ（制御：ｉＰＪＬ）を追加する機能をもつものであるのかを判断基準としてもよいし（この判断は、例えば、コアドライバ１１１のバージョンを基に行ってもよい）、本プラグインの設計時にどちらかに固定してもよい。
【００８２】
次いで、ステップＳ２１０３での決定に応じて、何も処理しないか、または生成された追加用のＰＪＬを描画後処理部１２４へ送信するか（ステップＳ２１０４）、または中間データ（制御：ｉＰＪＬ）を描画後処理部１２４へ送信するか（ステップＳ２１０５）して、ステップＳ２１０６へ移行する。
【００８３】
次に、本プラグイン１１３と協働する「次の」プラグイン（例えば、フィルタ従属プラグイン１１４）がある場合（ステップＳ２１０６でＹｅｓ）、そのプラグインに所要のデータ（次のプラグインがフィルタ従属プラグイン１１４の場合、ＤＥＶＭＯＤＥ）を渡し、次のプラグインの処理を待って（次のプラグインがフィルタ従属プラグイン１１４の場合は、フィルタ従属プラグイン１１４から返されたデータをコアドライバ１１１の描画後処理部１２４に渡して）（ステップＳ２１０７）、本プラグインの処理を終了する。一方、本プラグイン１１３と協働する「次の」プラグインがない場合は（ステップＳ２１０６でＮｏ）、そのまま終了する。
【００８４】
（フィルタ従属プラグイン１１４の動作）
次に、フィルタ従属プラグイン１１４の動作について、図２２を用いて説明する。図２２は、フィルタ従属プラグイン１１４の動作フローチャートである。
【００８５】
フィルタ従属プラグイン１１４は、プラグイン１１３を介し描画後処理部１２４から送信されるＤＥＶＭＯＤＥを受信し（ステップＳ２２０１）、さらに、フィルタ処理部１２３からチェック結果を受信する（ステップＳ２２０２）。
【００８６】
そして、フィルタ処理部１２３から受けたチェック結果から、前述したように、データの追加が必要か不要か判断する（ステップＳ２２０３）。そして、追加が必要な場合は、追加用データ（ＰＪＬ／ｉＰＪＬ）を生成し、生成した追加用データをプラグイン１１３に送信する（ステップＳ２２０４）。なお、この追加用データは、プラグイン１１３からコアドライバ１１１の描画後処理部１２４へ転送される。一方、追加が不要の場合は、追加用データの生成は行わず、そのまま処理を終了する。
【００８７】
（描画後処理部１２４の動作）
次に、描画後処理部１２４の動作について、図２３を用いて説明する。図２３は、描画後処理部１２４の動作フローチャートである。なお、本実施形態では、コアドライバ１１１の描画後処理部１２４は、プラグイン１１３から渡される中間データ（制御：ｉＰＪＬ）および追加用ＰＪＬの双方について所定の処理を実施するものとする。
【００８８】
はじめに、描画後処理部１２４は、描画前処理部１２２が生成しさらにフィルタ処理部１２３が所定のフィルタ処理を行った中間データを取得する（ステップＳ２３０１）。
【００８９】
次に、描画後処理部１２４は、フィルタ処理部１２３による処理済みのＤＥＶＭＯＤＥをプラグインに送信する（ステップＳ２３０２）。
【００９０】
そして、ステップＳ２３０３でプラグイン１１３から中間データ（制御：ｉＰＤＬ）を受信した場合、フィルタ処理部１２３からの中間データ（制御）とプラグイン１１３から渡された中間データ（制御：ｉＰＤＬ）に従い、中間データ（描画データ）を印刷データに変換する（ステップＳ２３０４）。
【００９１】
一方、ステップＳ２３０５でプラグインから追加用のＰＪＬデータを受信した場合、この追加用のＰＪＬを追加した印刷データを生成する（ステップＳ２３０６）。
【００９２】
最後に、生成した印刷データをプリンタ１５０に送信する（ステップＳ２３０７）。この印刷データを受けたプリンタ１５０は、描画後処理部１２４から受けた印刷データに従って印刷を行うこととなる。
【００９３】
（インストーラの動作）
一般的には、本実施形態のコアドライバ１１１がインストールされた状態で、このコアドライバ１１１に備わるフィルタ処理部１２３に対応したプラグイン１１３を後からインストールされるが、コアドライバ１１１はモジュール構成をとっており、プラグイン１１３が追加された後に、このプラグイン１１３に対応したフィルタ処理部１２３を追加インストールすることも可能である。以下に、フィルタ処理部１２３をインストールするインストーラの動作について図２４を用いて説明する。図２４は、フィルタ処理部１２３をインストールするインストーラの動作フローチャートである。なお、このインストーラは、アプリケーション１０４の１つとして、ＰＣ１００に実装される（図２）。
【００９４】
本インストーラは、はじめに、インストール済みのプラグインを検知する（ステップＳ２４０１）。このとき、前述のプラグイン情報を参照する。これにより、インストーラは、インストール済みのプラグインを確認できる。
【００９５】
続いて、ステップＳ２４０１で検知された各プラグイン１１３に対応したフィルタ処理部１２３をインストールする（ステップＳ２４０２）。頒布されているプラグインは既知であるので、ベンダーは各プラグイン１１３用のフィルタ処理部１２３を用意することができる。この段階では、検知されたインストール済みのプラグイン１１３に対応したフィルタ処理部１２３をインストールすることができる。なお、フィルタ処理部１２３自体、モジュール構成とすることができ、必要なモジュールのみを追加するようにしてもよい。このようにして、プラグインを用いた既存のプリンタドライバに、フィルタ処理部１２３を追加したり更新したりすることができる。
【００９６】
（その他の実施形態）
上述した実施形態のコアドライバやプラグインやインストーラ等のプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００９７】
また、これらのプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【符号の説明】
【００９８】
１００…ＰＣ
１０１…処理部
１０２…記憶部
１０３…通信部
１０４…アプリケーション
１０５…ＯＳ
１０５ｂ…ＧＤＩ
１０６…プリンタドライバ
１１１…コアドライバ
１１２…インターフェース部
１１３…プラグイン
１１４…フィルタ従属プラグイン
１２１…ＵＩ部
１２２…描画前処理部
１２３…フィルタ処理部
１２４…描画後処理部
１３１…プラグインＵＩ部
１３２…プラグイン描画部
１４１…フィルタ従属プラグインＵＩ部
１５０…プリンタ
１６０…ネットワーク
【先行技術文献】
【特許文献】
【００９９】
【特許文献１】特開２００８−９７５７４号公報
【図１】
0005471602.tif 000002
【図２】
0005471602.tif 000003
【図３】
0005471602.tif 000004
【図４】
0005471602.tif 000005
【図５】
0005471602.tif 000006
【図６】
0005471602.tif 000007
【図７】
0005471602.tif 000008
【図８】
0005471602.tif 000009
【図９】
0005471602.tif 000010
【図１０】
0005471602.tif 000011
【図１１】
0005471602.tif 000012
【図１２】
0005471602.tif 000013
【図１３】
0005471602.tif 000014
【図１４】
0005471602.tif 000015
【図１５】
0005471602.tif 000016
【図１６】
0005471602.tif 000017
【図１７】
0005471602.tif 000018
【図１８】
0005471602.tif 000019
【図１９】
0005471602.tif 000020
【図２０】
0005471602.tif 000021
【図２１】
0005471602.tif 000022
【図２２】
0005471602.tif 000023
【図２３】
0005471602.tif 000024
【図２４】
0005471602.tif 000025