(57)【要約】【課題】エンハンスドポイントアンドプリント環境において、適切にカスタマイズドプリンタードライバーの更新インストール処理を行う。【解決手段】ポイントアンドプリント環境におけるドライバーの更新方法であって、クライアントにインストールされている更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かを判定し、エンハンスドポイントアンドプリントドライバーであると判定された場合、前記更新対象のドライバーに対して行われたカスタマイズの内容を示す第１のカスタマイズ情報と、更新に用いられるドライバーに対して行われたカスタマイズの内容を示す第２のカスタマイズ情報とを取得し、カスタマイズ情報における所定の情報の比較により、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致するか否かを判定し、一致すると判定された場合、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行う。【選択図】  図１１
2019049825.tif 000002
【特許請求の範囲】
【請求項１】
ポイントアンドプリントのクライアント環境におけるドライバーの更新方法であって、
クライアントにインストールされている更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かを判定する工程と、
前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであると判定された場合、前記更新対象のドライバーに対して行われたカスタマイズの内容を示す第１のカスタマイズ情報と、更新に用いられるドライバーに対して行われたカスタマイズの内容を示す第２のカスタマイズ情報とを取得する工程と、
前記第１のカスタマイズ情報および前記第２のカスタマイズ情報における所定の情報の比較により、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致するか否かを判定する工程と、
前記更新対象のドライバーと前記更新に用いられるドライバーとが一致すると判定された場合、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行う工程と
を有することを特徴とする更新方法。
【請求項２】
前記所定の情報は、ドライバーをカスタマイズする際に設定された識別情報であることを特徴とする請求項１に記載の更新方法。
【請求項３】
前記更新に用いられるドライバーは、プリンターを管理するサーバーにインストールされており、
前記識別情報は、前記サーバーにインストールされたドライバーをカスタマイズした際に設定されることを特徴とする請求項２に記載の更新方法。
【請求項４】
前記所定の情報は、ドライバーのバージョンであることを特徴とする請求項１に記載の更新方法。
【請求項５】
前記所定の情報は、ドライバーに対応する署名ファイルのタイムスタンプであることを特徴とする請求項１に記載の更新方法。
【請求項６】
前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーでないと判定された場合、又は、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致しないと判定された場合は、前記更新対象のドライバーの更新を行わないことを特徴とする請求項１乃至５のいずれか一項に記載の更新方法。
【請求項７】
前記更新対象のドライバーが共有プリンターとして設定されたプリンターに対応するドライバーであるか否かを判定する工程を更に有し、
前記共有プリンターとして設定されたプリンターに対応するドライバーであると判定された場合に、前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かが判定されることを特徴とする請求項１乃至６のいずれか一項に記載の更新方法。
【請求項８】
前記更新対象のドライバーが前記共有プリンターとして設定されたプリンターに対応するドライバーでないと判定された場合、ドライバーのプログラムの更新を行い、更に、前記第２のカスタマイズ情報を反映させることで、前記更新対象のドライバーの更新を行うことを特徴とする請求項７に記載の更新方法。
【請求項９】
前記第１のカスタマイズ情報の設定内容が前記第２のカスタマイズ情報の設定内容を包含する関係にあるか否かを更に判定する工程を有し、
前記更新対象のドライバーと更新に用いられるドライバーとが一致し、且つ、前記第１のカスタマイズ情報の設定内容が前記第２のカスタマイズ情報の設定内容を包含する関係にあると判定された場合、前記クライアントのユーザーにその旨を通知した上で、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行うことを特徴とする請求項１乃至８のいずれか一項に記載の更新方法。
【請求項１０】
前記更新において、カスタマイズドドライバーパッケージが用いられ、
前記カスタマイズドドライバーパッケージは、ドライバーのプログラムと、当該ドライバーのプログラムをインストールするためのインストーラーと、前記ドライバーに対して行われたカスタマイズの内容を示すカスタマイズ情報とを含んで構成されることを特徴とする請求項１乃至９のいずれか一項に記載の更新方法。
【請求項１１】
前記クライアントと、プリンターを管理するサーバーとが通信可能に接続され、
前記カスタマイズ情報の反映は、前記クライアントと前記サーバーとがデータを共有しているキュープロパティバッグに対して行われることを特徴とする請求項１乃至１０のいずれか一項に記載の更新方法。
【請求項１２】
前記ドライバーは、Ｖ４プリンタードライバーであることを特徴とする請求項１乃至１１のいずれか一項に記載の更新方法。
【請求項１３】
ポイントアンドプリントの環境においてドライバーのインストールが可能なコンピューターに、
前記コンピューターにインストールされている更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かを判定する工程と、
前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであると判定された場合、前記更新対象のドライバーに対して行われたカスタマイズの内容を示す第１のカスタマイズ情報と、更新に用いられるドライバーに対して行われたカスタマイズの内容を示す第２のカスタマイズ情報とを取得する工程と、
前記第１のカスタマイズ情報および前記第２のカスタマイズ情報における所定の情報の比較により、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致するか否かを判定する工程と、
前記更新対象のドライバーと前記更新に用いられるドライバーとが一致すると判定された場合、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行う工程と
を実行させるためのプログラム。
【請求項１４】
ポイントアンドプリントの環境においてドライバーのインストールが可能な情報処理装置であって、
前記情報処理装置にインストールされている更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かを判定する手段と、
前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであると判定された場合、前記更新対象のドライバーに対して行われたカスタマイズの内容を示す第１のカスタマイズ情報と、更新に用いられるドライバーに対して行われたカスタマイズの内容を示す第２のカスタマイズ情報とを取得する手段と、
前記第１のカスタマイズ情報および前記第２のカスタマイズ情報における所定の情報の比較により、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致するか否かを判定する手段と、
前記更新対象のドライバーと前記更新に用いられるドライバーとが一致すると判定された場合、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行う手段と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポイントアンドプリント環境におけるドライバーの更新方法、プログラム、及び、情報処理装置に関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ８（登録商標）では、Ｖ４プリンタードライバーと呼ばれるアーキテクチャで動作するプリンタードライバーが導入されている。Ｖ４プリンタードライバーは、Ｖ３プリンタードライバーのアーキテクチャとして提供されていたＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリンタードライバーの後継となるアーキテクチャであり、ＸＰＳ文書を利用した印刷パスを利用している。ＸＰＳは、ＸＭＬ形式で記載された文書データであり、印刷設定情報であるＰｒｉｎｔＴｉｃｋｅｔや描画命令を含むことができる。
【０００３】
Ｖ４プリンタードライバーアーキテクチャで動作する共有プリンターの仕組みとして、エンハンスドポイントアンドプリントと呼ばれる技術が存在する。エンハンスドポイントアンドプリントは、Ｖ３プリンタードライバーのポイントアンドプリントとは異なり、サーバー側にインストールされたプリンタードライバーのすべてが、モジュールクライアント側に渡されるわけではない。Ｖ４プリンタードライバーを構成する機種情報がクライアント側にダウンロードされ、さらにＶ４プリンタードライバーが扱うことができるデータ領域のキュープロパティバッグの情報の共有が行われる。ここでの機種情報としては、例えば、ＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ Ｄｅｓｃｒｉｐｔｉｏｎ）と呼ばれる印刷設定定義ファイルなどが挙げられる。クライアント側のオペレーティングシステムにあらかじめインストールされているエンハンスドポイントアンドプリントドライバーがこれらの情報を読み込んで、クライアント側のドライバーとして動作する。
【０００４】
また、エンハンスドポイントアンドプリント環境ではプリンターエクステンションと呼ばれるＶ４プリンタードライバーアーキテクチャにおける印刷設定ＵＩモジュールがクライアント側にダウンロードされない。そのため、クライアント側で表示される印刷設定ＵＩは、サーバー側の印刷設定ＵＩとは異なりユーザビリティの低いＵＩ（例えば、ツリービュー形式）が表示される。その場合、サーバー側と同様の印刷設定ＵＩを利用するために、クライアント側に対してサーバー側にインストールされているプリンタードライバーをインストールし、プリンタードライバーを更新することが望ましい。特にカスタマイズドプリンタードライバーと呼ばれる、カスタマイズツールで生成されたプリンタードライバーにおいては、印刷設定ＵＩの制御を含む。そのため、サーバー側とクライアント側が印刷設定ＵＩを含んだプリンタードライバーが同一のものであることが必要である。
【０００５】
カスタマイズドプリンタードライバーとは、印刷設定のデフォルト値を決められた値に制御され、印刷設定ＵＩの各機能の表示／非表示を制御された状態でインストールされるプリンタードライバーのことを指す。カスタマイズドプリンタードライバーは、プリンタードライバーをインストールするインストーラーがカスタマイズ情報を読み込んで、プリンタードライバーインストール後に情報を反映することで実現ができる。
【０００６】
さらに、プリンタードライバーをインストールするインストーラーは、更新インストールの場合に共有プリンターであるか否かを判定して処理を変える必要がある。例えば、特許文献１では、更新対象のプリンタードライバーに対応するプリンターが共有プリンターであれば、そのプリンタードライバーを更新しないように制御する手段が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１６４０９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、インストーラーが更新対象のプリンタードライバーが共有プリンターであるか否かを判定し、プリンタードライバーを更新するか否かを制御している。しかしながら、Ｖ４プリンタードライバーにおいては、エンハンスドポイントアンドプリント環境のように印刷設定ＵＩモジュールが利用できないケース場合が多く存在する。このような状況下で更新インストールを行わない場合、クライアント側のユーザーはユーザビリティが低いＵＩを利用しなければならなくなる。その結果、特にカスタマイズドプリンタードライバーのようなＵＩと密接に関連する機能が利用できなくなってしまう。
【０００９】
更には、カスタマイズドプリンタードライバーのような、インストーラーが特定の情報を反映してカスタマイズ処理を行うプリンタードライバーに対しても考慮する必要がある。このとき、カスタマイズドプリンタードライバーのための特定の情報の更新に関してはサーバー側の管理者権限が必要になる。通常、キュープロパティバッグのアクセス権限は、クライアント側には与えられていない。そのため、インストーラーがカスタマイズドプリンタードライバーのための特定の情報を更新することができず、プリンタードライバーの更新に失敗する場合がある。
【００１０】
本発明は上記問題を鑑み、Ｖ４プリンタードライバーにおけるエンハンスドポイントアンドプリント環境で、かつ、カスタマイズドプリンタードライバーのように特定の情報が更新できないような環境を想定する。そしてこのような環境においても、適切にカスタマイズドプリンタードライバーのインストール処理を行うことを可能とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、ポイントアンドプリントのクライアント環境におけるドライバーの更新方法であって、クライアントにインストールされている更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであるか否かを判定する工程と、前記更新対象のドライバーがエンハンスドポイントアンドプリントドライバーであると判定された場合、前記更新対象のドライバーに対して行われたカスタマイズの内容を示す第１のカスタマイズ情報と、更新に用いられるドライバーに対して行われたカスタマイズの内容を示す第２のカスタマイズ情報とを取得する工程と、前記第１のカスタマイズ情報および前記第２のカスタマイズ情報における所定の情報の比較により、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致するか否かを判定する工程と、前記更新対象のドライバーと前記更新に用いられるドライバーとが一致すると判定された場合、ドライバーのプログラムの更新を行い、前記第２のカスタマイズ情報の内容を反映させないことで、前記更新対象のドライバーの更新を行う工程とを有する。
【発明の効果】
【００１２】
本発明により、エンハンスドポイントアンドプリントのような環境において、適切にカスタマイズドプリンタードライバーの更新インストール処理を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】コンピューターのハードウェアの構成例を示す図。
【図２】システムの構成例を示す図。
【図３】印刷処理システムの構成例を示す図。
【図４】本願発明に係るパッケージ及びカスタマイズツールの構成例を示す図。
【図５】本願発明に係る印刷設定ＵＩの構成例を示す図。
【図６Ａ】カスタマイズツールでのカスタマイズ処理のフローチャート。
【図６Ｂ】詳細カスタマイズ設定処理のフローチャート。
【図７】本願発明に係るカスタマイズツールのダイアログの構成例を示す図。
【図８】本願発明に係るダイアログの構成例を示す図。
【図９】カスタマイズドドライバーパッケージのインストール処理のフローチャート。
【図１０】本願発明に係るダイアログの構成例を示す図。
【図１１】カスタマイズドドライバーパッケージの更新インストール処理のフローチャート。
【図１２】カスタマイズドドライバーパッケージの更新インストール概要図。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１５】
＜第１の実施形態＞
図１は、本発明の実施形態を適用可能な代表的なコンピューターのハードウェア構成の例を示す図である。本実施形態では、主に情報処理装置であるクライアント１００およびサーバー１５０の各コンピューターのハードウェア構成の一例に該当する。なお、ここでは、クライアント１００とサーバー１５０とは、同一の構成を有した例を挙げて説明するが、これに限定するものではない。
【００１６】
ＣＰＵ１０１は、主記憶装置１０２のＲＯＭ１０２１あるいはＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。補助記憶装置１０５はアプリケーション１０５１や、プリンタードライバー１０５２や、カスタマイズツール１０５３、オペレーティングシステム１０５４等を記憶する。アプリケーション１０５１や、プリンタードライバー１０５２は、不図示のＣＤ−ＲＯＭやＵＳＢメモリあるいはネットワーク１６０を経由して補助記憶装置１０５に追加することが可能である。
【００１７】
キーボード１０３１やマウスもしくはタッチパネルなどに代表されるポインティングデバイス１０３２などの入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインターフェースであり、モニター１０４１などの出力機器に対してデータを出力する。コンピューターとプリンター１４０とは、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１６０を通して接続されている。また、システムバス１０７は共通データシステムバスであり、ハードウェアモジュール間でそれぞれのデータのやりとりに使われる。
【００１８】
図２は、本発明の実施の形態におけるネットワーク１６０の環境を簡略した図である。印刷を行う文書や画像を作成する１または複数のクライアント１００がネットワーク１６０に接続されている。また、クライアント１００のユーザーやプリンター１４０を管理するサーバー１５０が接続されている。また、１または複数のプリンター１４０がネットワーク１６０に接続されている。ネットワーク１６０の構成としては、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの小規模から大規模までのネットワークがあり、特に限定するものではない。各機器は、ネットワーク１６０に接続され、通信可能となっている。また、クラウドなど、サーバー１５０やプリンター１４０がインターネット（不図示）を越えて接続されていてもよい。
【００１９】
図３は、本実施形態に係るクライアント１００およびサーバー１５０における印刷処理システムの構成例を示す図である。印刷処理システムはＸＰＳファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。印刷処理システムは、オペレーティングシステム１０５４上で動作している。プリントマネージャ２１８、ＧＤＩｔｏＸＰＳ変換モジュール２０７、フィルタパイプラインマネージャ２１２、ポートモニター２１９は、オペレーティングシステム１０５４から提供される。ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）は、プリンター１４０の印刷イメージの生成を行うグラフィックスコンポーネントである。ＧＤＩｔｏＸＰＳ変換モジュール２０７は、ＧＤＩで描画されたデータをＸＰＳデータへ変換する機能を備える。フィルタパイプラインマネージャ２１２は、ＸＰＳ印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニター２１９は、デバイスにアクセスするプリントマネージャ２１８とプリンタードライバー１０５２間で通信を制御することができ、プリンタードライバー１０５２はポートモニター２１９を経由して印刷処理を行う。
【００２０】
コンフィギュレーションモジュール２０８は、プリンタードライバー１０５２が提供する印刷設定編集モジュール２０８１を使用して印刷設定情報を編集することができる。印刷設定編集モジュール２０８１はスクリプト言語で記載され、プリンタードライバー１０５２が提供するドライバープロパティバッグ２０８２、キュープロパティバッグ２０８３を利用して印刷設定情報を編集する。ここで用いられるスクリプト言語の種類は、特に限定するものではない。ドライバープロパティバッグ２０８２は、プリンターの機種依存情報として利用するためのデータ群である。ドライバープロパティバッグ２０８２は、ドライバーパッケージ内に存在するプリンターの機種に依存するデータを示し、プリンタードライバーのインストール後にオペレーティングシステム１０５４内の特定の領域に読み取り専用としてデータ群が保持される。キュープロパティバッグ２０８３は、プリントキューに紐づいたデータ群が保持された記憶領域のことを指す。キュープロパティバッグ２０８３は、Ｋｅｙ−ＶａｌｕｅペアのＸＭＬ定義ファイルをオペレーティングシステム１０５４に登録することで利用することが可能である。キュープロパティバッグ２０８３に含まれるＶａｌｕｅに関しては、一定の権限により編集が可能である。
【００２１】
フィルタパイプラインマネージャ２１２の各フィルタは、図１の補助記憶装置１０５にプリンタードライバー１０５２として格納されている。ＧＤＩ印刷アプリケーション２０１とＸＰＳ印刷アプリケーション２０２は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーはキーボード１０３１やポインティングデバイス１０３２などの入力装置を使用して、出力装置のモニター１０４１に映し出されたＧＤＩ印刷アプリケーション２０１、又はＸＰＳ印刷アプリケーション２０２のＵＩから印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００２２】
［プリンタードライバーのインストールの流れ］
まず、プリンタードライバー１０５２をインストールする手段について説明する。図４（Ａ）は、プリンタードライバーパッケージ３００のファイル構成の例を示す図である。プリンタードライバーパッケージ３００は、プリンタードライバー１０５２をインストールするためのインストーラー３１０とプリンタードライバー１０５２を含んで構成される。更にプリンタードライバー１０５２は、ＩＮＦファイル２４０、プリンターエクステンション２１０、レイアウトフィルタ２１４、機種依存ファイル２０９、及びレンダラフィルタ２１５を含んで構成される。インストーラー３１０は、ＩＮＦファイル２４０に記載されたインストール用の設定を元に、プリンタードライバー１０５２をオペレーティングシステム１０５４に設置する実行モジュールである。ユーザーからのプリンタードライバー１０５２のインストール要求に応じて、オペレーティングシステム１０５４は、インストーラー３１０を補助記憶装置１０５からＲＡＭ１０２２にロードし、ＣＰＵ１０１を用いて実行させる。
【００２３】
本実施形態では、プリンタードライバー１０５２は、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）やＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）など複数のモデルに対応している。そのため、ＩＮＦファイル２４０に複数のモデルに関する設置方法の情報が記載されている。プリンタードライバー１０５２を設置する際は、ユーザーによるインストール対象のモデル選択や出力先のプリンター１４０の指定を受け付け、その指定に基づいてインストールが実行される。
【００２４】
さらに、図２の示すように、システム内に複数台のプリンターや、複数種類のモデルのプリンターが存在する場合がある。出力先のプリンター毎に、プリンタードライバー１０５２に対応するモデルや印刷設定の初期値および印刷ジョブをそれぞれ管理する必要がある。そのため、オペレーティングシステム１０５４は、プリンタードライバー１０５２のインストールの際にプリンターキューを出力先のプリンター１４０を表すオブジェクトとして生成して保持する。そして、オペレーティングシステム１０５４は、このプリンターキューに紐づけてプリンタードライバー１０５２の構成モジュールや印刷設定の初期値を管理する。オペレーティングシステム１０５４にプリンタードライバー１０５２が設置されると、アプリケーション１０５１からの印刷設定要求や印刷要求をプリンタードライバー１０５２のモジュールで処理可能になり、対応するプリンター１４０での印刷処理が可能になる。
【００２５】
次に印刷設定が作成される。まず、アプリケーション１０５１が印刷設定用のメモリ領域をＲＡＭ１０２２に確保する。そして、アプリケーション１０５１は、プリンタードライバー１０５２のコンフィギュレーションモジュール２０８を呼び出し、印刷設定データを作成してＲＡＭ１０２２に格納する。ＧＤＩ印刷アプリケーション２０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ２０３を用いる。一方、ＸＰＳ印刷アプリケーション２０２ではマークアップ言語のＸＭＬで記載されたＰｒｉｎｔＴｉｃｋｅｔ２０４を用いる。ＤＥＶＭＯＤＥ２０３は、データ構造体で定義されており、オペレーティングシステム１０５４が定義する標準領域とプリンタードライバー１０５２が独自で定義する拡張領域を有する。ＰｒｉｎｔＴｉｃｋｅｔ２０４は、ＸＭＬ形式で記述された印刷設定情報であり、標準領域と拡張領域は名前空間によって記載が分けられている。
【００２６】
印刷設定データには機種固有の情報も含まれている。コンフィギュレーションモジュール２０８は、機種依存ファイル２０９を利用して、印刷設定データを作成する。このＤＥＶＭＯＤＥ２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４が印刷設定を保持しており、アプリケーション１０５１が直接、値を書き換えることで印刷設定を変更する。機種依存ファイル２０９は、ＧＰＤと呼ばれる印刷設定定義ファイルを指す。プリンター１４０に依存した印刷設定は、プリンターエクステンション２１０が備えるユーザーインターフェースを介して設定することができる。
【００２７】
プリンタードライバー１０５２は、ユーザーインターフェースの設定に従い、ＤＥＶＭＯＤＥ２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４のプリンター１４０に依存した設定を変更する。プリンタードライバー１０５２がアプリケーション１０５１から印刷設定の変更指示を受けた場合、対応するプリンターエクステンション２１０がオペレーティングシステム１０５４によってＲＡＭ１０２２にロードされ、ＣＰＵ１０１により実行される。その実行の結果、印刷設定ＵＩ３０００がモニター１０４１に表示される。図５は、印刷設定ＵＩ３０００の操作画面の一例を示す。図５に示すように、印刷設定ＵＩ３０００は、複数のタブで構成されており印刷設定とデバイス設定を受け付ける。図５（Ａ）に示すタブ３１００は印刷設定のためのタブであり、両面印刷やカラー印刷などの印刷設定のための様々なＵＩコントロールが配置されている。プリンターエクステンション２１０は、ＵＩコントロールへのキーボード１０３１やポインティングデバイス１０３２を介した操作に基づいて、現在の印刷設定を生成する。図５（Ｂ）に示すタブ３２００は、排紙オプションや両面ユニットなどのデバイスオプションを管理するためのタブである。
【００２８】
様々なユーザー要望に応えるために、排紙オプションや両面ユニットなどのプリンター１４０に装着可能なハードェアがデバイスオプションとして提供される。例えば、印刷出力物にステープルを行うハードウェアであるフィニッシャーなどが、プリンターの標準構成とは別のデバイスオプションとして提供されている。このとき、ステープルするためには、対応するフィニッシャーをプリンター１４０に別途装着する必要がある。また、両面印刷機能を滅多に使わないユーザーのために、低機能もしくは単機能のプリンターでは標準構成のプリンターには物理的な両面機構を含まず、デバイスオプションとして両面ユニットを装着した際にのみ、両面印刷が可能になるというプリンターも存在する。
【００２９】
これらの状況に対応するため、現在の出力先のプリンター１４０でどのデバイスオプションが装着されているかを管理する必要がある。プリンター１４０と通信可能な場合、現在のデバイスオプションの設定は、デバイス情報取得ボタン３２０２を押下することにより、ネットワーク１６０経由でプリンター１４０より取得することが可能である。プリンターエクステンション２１０は、取得されたデバイス情報を元に、現在装着されているデバイスオプションの情報をデバイスオプション一覧３２０１に反映する。プリンター１４０と通信できない場合は、デバイスオプション一覧３２０１の各項目の選択を受け付けることにより、ＵＩコントロール３２０３が変更され、手動で変更することも可能である。
【００３０】
プリンターエクステンション２１０は、タブ３２００でのデバイスオプションの設定に応じて、タブ３１００で使えない印刷設定のＵＩコントロールを選択できない状態で表示とする。印刷設定ＵＩ３０００の各タブで各種印刷設定を設定された後、最終的にボタン３００１の押下を受け付けた場合、プリンターエクステンション２１０は、オペレーティングシステム１０５４に印刷設定とデバイスの設定を出力し、印刷設定の変更処理を終了する。
【００３１】
本実施形態に係るプリンタードライバー１０５２は、複数のモデルのプリンター１４０に対応する。プリンター１４０の各モデルでサポートする印刷機能やデバイスオプションはモデルに依存して異なる。各モデルでの印刷機能やデバイスオプションのサポート情報は機種依存ファイル２０９にまとめられている。プリンターエクステンション２１０の実行時に機種依存ファイル２０９を参照することにより、印刷設定ＵＩ３０００に表示するＵＩコントロールを変更し、そのモデルがサポートしている印刷機能やデバイスオプションのみを表示する。
【００３２】
印刷設定は文書印刷のたびに作成される。ここで、プリンター１４０のオプション機器や、ユーザーごとの環境設定など、設定を保持しておきたいものは、プリンターエクステンション２１０がオペレーティングシステム１０５４のレジストリデータベース２０５に保存する。レジストリデータベース２０５が使用できないときは、プリンターエクステンション２１０は、アプリケーションデータ２２０に設定を保存する。印刷設定のデフォルト値は、オペレーティングシステム１０５４のプリントマネージャ２１８が、レジストリデータベース２０５に保存する。レジストリデータベース２０５や、アプリケーションデータ２２０は、補助記憶装置１０５に保存される。
【００３３】
印刷設定が確定した後、ユーザーはアプリケーション１０５１から印刷処理を実行する。ＧＤＩ印刷アプリケーション２０１から印刷する場合、オペレーティングシステム１０５４のモジュールであるＧＤＩｔｏＸＰＳ変換モジュール２０７に描画データが送られ、ＸＰＳスプールファイル２０６が作成される。このとき、ＧＤＩｔｏＸＰＳ変換モジュール２０７は、コンフィギュレーションモジュール２０８を呼び出し、印刷設定をＤＥＶＭＯＤＥ２０３からＰｒｉｎｔＴｉｃｋｅｔ２０４に変換する。変換する際には、コンフィギュレーションモジュール２０８によって、印刷設定編集モジュール２０８１が使用される。一方、ＸＰＳ印刷アプリケーション２０２から印刷する場合、ＸＰＳファイルをアプリケーション自身が生成する方法と、オペレーティングシステム１０５４がアプリケーションからの描画命令に応じてＸＰＳファイルを生成する方法の２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル２０６を生成する。
【００３４】
ＧＤＩ印刷アプリケーション２０１又はＸＰＳ印刷アプリケーション２０２から印刷の指示が行われることでＸＰＳスプールファイル２０６が生成されたら、プリントフィルタパイプライン２１１に処理が渡される。プリントフィルタパイプライン２１１は複数のフィルタを通すことで印刷が行われる仕組みであり、フィルタコンフィグレーションファイル２１６でフィルタの数や順番を制御する。また、各フィルタで利用できるような共通領域であるプロパティバッグ２１７が存在する。
【００３５】
本実施形態において、フィルタパイプラインマネージャ２１２は、レイアウトフィルタ２１４、及び、レンダラフィルタ２１５を含んで構成される。レイアウトフィルタ２１４は、製本やスタンプのレイアウト処理を行う機構を持つ。レンダラフィルタ２１５は、ＸＰＳスプールファイル２０６をレンダリングしてＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換する機構を持つ。ＰＤＬデータは、印刷処理のスケジュール管理を行うプリントマネージャ２１８で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンター１４０が印刷できる状態になったら、ＰＤＬデータは、キューに登録した順にポートモニター２１９を通して送信される。このようにして、アプリケーションからの印刷データをＰＤＬデータに変換することがプリンタードライバー１０５２の主な役目であり、プリンターにより印刷処理が行われる。
【００３６】
［カスタマイズツール］
ここで、カスタマイズツール１０５３について説明する。カスタマイズツール１０５３は、プリンタードライバー１０５２がオペレーティングシステム１０５４に設置された直後の印刷設定をカスタマイズするためのツールである。図４（Ｂ）は、カスタマイズツール１０５３のモジュールおよびファイルの構成例を示す。カスタマイズツール１０５３は、ツール１０５３１、ツール用データ１０５３２、及び、オペレーティングシステム処理のエミュレータである疑似ＡＰＩモジュール１０５３３を含んで構成される。
【００３７】
カスタマイズツール１０５３でカスタマイズされたカスタマイズドドライバーパッケージ４００をオペレーティングシステム１０５４にインストールすると、工場出荷時に決められた印刷設定ＵＩ３０００での初期設定と異なる印刷設定の初期値に変更することができる。例えば、
両面設定：オン
カラーモード：モノクロ
ステープル：左上
などプリンタードライバーが示す工場出荷時とは異なる初期値を、インストール後のプリンタードライバー１０５２に適用することができる。
【００３８】
図４（Ｃ）は、図４（Ａ）に示すプリンタードライバーパッケージ３００を元に、カスタマイズツール１０５３でカスタマイズされたカスタマイズドドライバーパッケージ４００のモジュールおよびファイルの構成例を示す。図４（Ａ）と図４（Ｃ）の違いは、図４（Ｃ）に示すカスタマイズドプリンタードライバーパッケージ４４０では、カスタマイズ設定ファイル４１０が含まれる点である。カスタマイズ設定ファイル４１０は、ツール設定情報４２０とカスタマイズ情報４３０を含んで構成される。ツール設定情報４２０は、カスタマイズの元となったプリンタードライバーパッケージ３００のバージョンや、カスタマイズツール１０５３のバージョンなど、カスタマイズには直接影響しない情報を格納する。カスタマイズ情報４３０は、カスタマイズされたことを表す一意の識別番号（カスタムコード）やユーザーが設定した印刷設定初期値情報などを格納する。
【００３９】
ツール１０５３１は、カスタマイズにより、プリンタードライバーパッケージ３００にカスタマイズ設定ファイル４１０を追加し、カスタマイズドドライバーパッケージ４００として生成する。カスタマイズドドライバーパッケージ４００を使ってプリンタードライバーをオペレーティングシステム１０５４に設置すると、インストーラー３１０は、カスタマイズ設定ファイル４１０に従ってプリンターキューにカスタマイズ設定を適用する。この適用により工場出荷時とは異なる設定値をインストール後のプリンタードライバー１０５２の初期値として適用する。
【００４０】
［カスタマイズ処理］
次に図６Ａを用いて、カスタマイズツール１０５３でのカスタマイズ処理を説明する。この処理は、ユーザーの指示に応じて、オペレーティングシステム１０５４がカスタマイズツール１０５３のツール１０５３１を補助記憶装置１０５からＲＡＭ１０２２にロードし、ＣＰＵ１０１に実行を依頼することにより開始される。なお、本フローチャートの処理の主体は、特に断らない限りツール１０５３１である。本実施形態に係るツール１０５３１は、複数のダイアログを表示し、設定に必要な順番に沿って表示設定するウィザード形式のアプリを例に挙げて説明する。ここでは、図７に画面の表示例を示し、併せて説明を行う。なお、ウィザード形式のアプリに限定する必要はなく単一ダイアログのアプリなどでもよい。
【００４１】
Ｓ６０１にて、ツール１０５３１は、図７（Ａ）に示す使用許諾書ダイアログ５０００をモニター１０４１に表示する。ポインティングデバイス１０３２を用いたユーザーからのボタン５００１の押下を受け付けたことに応じて、次の処理へ進む。
【００４２】
Ｓ６０２にて、ツール１０５３１は、図７（Ｂ）に示すカスタマイズ対象のモデル選択ダイアログ５１００を表示する。モデル選択ダイアログ５１００は、カスタマイズの元となるプリンタードライバー１０５２のフォルダパス指定と、そのプリンタードライバー１０５２が対応するモデルのうちカスタマイズ対象とするモデルを選択するためのダイアログである。参照ボタン５１０１の押下を受け付けたことに応じて、図７（Ｃ）に示すオペレーティングシステム標準のフォルダー指定ダイアログ５２００が表示される。この表示は、ツール１０５３１がオペレーティングシステム１０５４に依頼することでフォルダー指定ダイアログ５２００の表示がモニター１０４１に表示され、ユーザーによるフォルダーの指定を受け付ける。
【００４３】
ポインティングデバイス１０３２によるユーザーからの指定を受け付けたことに応じて、オペレーティングシステム１０５４は、カスタマイズの元となるプリンタードライバー１０５２のフォルダパスの情報をツール１０５３１に返却する。ツール１０５３１は、フォルダパスの位置に存在するプリンタードライバー１０５２がカスタマイズツール１０５３で対応しているものか否かを確認する。ツール１０５３１は、プリンタードライバー１０５２の構成やＩＮＦファイル２４０の記載およびプリンターエクステンション２１０のＥｘｐｏｒｔ関数の有無等に基づいて、確認処理を行う。ここでの確認処理や、プリンタードライバー１０５２の各モジュールが圧縮されて格納されている場合の解凍処理、およびバックアップのファイルコピー処理は、時間がかかる場合がある。そのため、これらの処理中において、ツール１０５３１は、図７（Ｄ）に示す処理の進行状況を示すプログレスダイアログ５１１０を、モデル選択ダイアログ５１００の手前（前面）に表示する。
【００４４】
ツール１０５３１は、プリンタードライバー１０５２をカスタマイズ可能と判定した場合、図７（Ｅ）に示すカスタマイズ対象のモデル選択ダイアログ５１００をモニター１０４１に表示する。テキストボックス５１０２に、指定されたフォルダパスが表示され、またリストボックス５１０３に、指定されたフォルダパスのプリンタードライバー１０５２で対応するモデルの名称が列挙されている。リストボックス５１０３の各モデル名の前には、チェックボックス５１０４が存在する。カスタマイズ対象にしたいモデルのチェックボックス５１０４を一つ以上チェックすると、ボタン５１０５が操作可能になる。その後、ボタン５１０５の押下を受け付けたことに応じて、ツール１０５３１は、次の処理へ進む。ここで、チェックボックス５１０４にチェックを付けたモデルがカスタマイズ対象に指定されたモデル群となる。
【００４５】
Ｓ６０３にて、ツール１０５３１は、詳細カスタマイズ設定処理を実行する。この処理の詳細を図６Ｂのフローチャートを用いて説明する。併せて、図８に画面の表示例を用いて、説明を行う。
【００４６】
Ｓ６１１にて、ツール１０５３１は、図８（Ａ）に示す詳細カスタマイズ設定ダイアログ６０００を表示する。
【００４７】
Ｓ６１２にて、ツール１０５３１は、詳細カスタマイズ設定ダイアログ６０００への操作を受け付ける。詳細カスタマイズ設定ダイアログ６０００はカスタマイズ対象に指定されたモデル群を表示するリストビュー６００１を備える。図８（Ａ）において、リストビュー６００１では、一つのモデル（プリンター名「ＭＦＰ  １０００」）が選択状態になっており、ポインティングデバイス１０３２により、選択状態のモデルを変更可能である。また、リストビュー６００１は、各プリンターに関するカスタマイズ情報４３０として、印刷設定、お気に入り、スタンプ、デバイス設定／管理者設定の項目を示している。該当項目でカスタマイズが行われた場合は、“変更あり”という文字が表示される。また、詳細カスタマイズ設定ダイアログ６０００では、リストビュー６００１で一つのモデルを選択状態では、設定ボタン６００２の押下を受け付けることができる。
【００４８】
Ｓ６１３にて、ツール１０５３１は、設定ボタン６００２の押下を受け付けたか否かを判定する。設定ボタン６００２の押下を受け付けた場合（Ｓ６１３にてＹＥＳ）Ｓ６１４へ進み、受け付けていない場合（Ｓ６１３にてＮＯ）Ｓ６１８へ進む。
【００４９】
Ｓ６１４にて、ツール１０５３１は、詳細カスタマイズのために、選択状態のモデルに対する、図５（Ａ）に示す印刷設定ＵＩ３０００を表示する。印刷設定ＵＩ３０００の表示処理は、プリンターエクステンション２１０を、疑似ＡＰＩモジュール１０５３３を用いて呼び出すことにより実現する。プリンターエクステンション２１０の呼び出し時には、以前にカスタマイズしたカスタマイズ情報４３０が受け渡される。これにより、印刷設定ＵＩ３０００の初期表示に、以前カスタマイズしたカスタマイズ情報４３０を適用して表示することもできる。
【００５０】
印刷設定ＵＩ３０００を介した操作への応答および印刷設定の生成処理は、プリンターエクステンション２１０が行う。印刷設定ＵＩ３０００は、プリンタードライバー１０５２に含まれるプリンターエクステンション２１０を用いる。そのため、通常のアプリケーションからの印刷設定の操作と同じ操作感で印刷設定を行え、その結果である印刷設定をカスタマイズ情報として入手することができる。
【００５１】
Ｓ６１５にて、ツール１０５３１は、印刷設定ＵＩ３０００にてボタン３００１が押下されることにより印刷設定ＵＩ３０００が閉じられたか否かを判定する。ボタン３００１の押下により印刷設定ＵＩ３０００が閉じられた場合（Ｓ６１５にてＹＥＳ）、Ｓ６１６へ進み、ボタン３００１の押下以外の操作により印刷設定ＵＩ３０００が閉じられた場合（Ｓ６１５にてＮＯ）何もせずにＳ６１１へ戻る。
【００５２】
Ｓ６１６にて、ツール１０５３１は、現在選択中のモデルに対して設定された詳細カスタマイズ設定を保存する。印刷設定ＵＩ３０００が閉じられた後は、詳細カスタマイズ設定ダイアログ６０００が再度表示される。
【００５３】
Ｓ６１７にて、ツール１０５３１は、詳細カスタマイズ設定ダイアログ６０００にてボタン６００３が押下されたか否かを判定する。ボタン６００３が押下された場合（Ｓ６１８にてＹＥＳ）本処理フローを終了し、ボタン６００３が押下されていない場合（Ｓ６１８にてＮＯ）Ｓ６１２へ戻る。
【００５４】
図６Ａの説明に戻る。Ｓ６０４にて、ツール１０５３１は、カスタマイズドドライバーパッケージ４００の出力処理を実行する。ここで、ツール１０５３１は、図８（Ｂ）に示すカスタマイズドドライバーパッケージ４００の作成ダイアログ６１００を表示する。作成ダイアログ６１００は、カスタマイズドドライバーパッケージ４００の保存先フォルダパスを指定するための参照ボタン６１０１を備える。参照ボタン６１０１の押下を受けると、図８（Ｃ）に示すオペレーティングシステム標準のフォルダー指定ダイアログ６２００が表示される。この表示は、ツール１０５３１がオペレーティングシステム１０５４に依頼することで行われ、オペレーティングシステム１０５４が同ダイアログへのフォルダーの指定操作を受け付ける。ポインティングデバイス１０３２による指定操作を受け付けると、オペレーティングシステム１０５４はフォルダパスの情報をツール１０５３１に返却する。オペレーティングシステム１０５４から戻されたフォルダパスの情報を用いて、ツール１０５３１は、保存先のテキストボックス６１０２に表示する。
【００５５】
作成ダイアログ６１００は、カスタムコードを指定するためのＵＩコントロール６１０３を備える。ＵＩコントロール６１０３で受け付けたカスタムコードは、カスタマイズ設定ファイル４１０のツール設定情報４２０として、カスタマイズドドライバーパッケージ４００に保存される。プリンタードライバー１０５２のオペレーティングシステム１０５４への設置後においては、カスタムコードは、印刷設定ＵＩ３０００のバージョン情報ボタン３２０４を押下した際に表示されるダイアログで確認することができる。作成ダイアログ６１００において保存ボタン６１０５の押下を受け付けると、ツール１０５３１は、図８（Ｄ）に示すカスタマイズドドライバーパッケージ４００の作成中ダイアログ６３００をモニター１０４１に表示する。なお、ここでのカスタムコードは、ユーザーがＵＩコントロール６１０３を介して指定する構成としたが、これに限定するものではなく、システム側にて任意の値を識別情報として決定し、提示するようにしてもよい。
【００５６】
カスタマイズドドライバーパッケージ４００の作成は、元になったプリンタードライバーパッケージ３００を保護するために丸ごとコピーし、別のプリンタードライバーパッケージを作る必要がある。この処理は比較的時間を要する。そのため、作成中ダイアログ６３００は、プログレスバー６３０１で処理の進行状況を表示する。最終的には、ツール１０５３１は、詳細カスタマイズ設定処理（図６Ｂ）で生成したカスタマイズ設定を、カスタマイズ設定ファイル４１０として、カスタマイズドドライバーパッケージ４００に追加で保存する。これにより、図４（Ｃ）に示す構成を持つカスタマイズドドライバーパッケージ４００が作成される。そして、本処理フローを終了する。
【００５７】
［インストール処理］
次に本実施形態に係るインストール処理ついて説明する。本実施形態では、図２に示すように、サーバー１５０とクライアント１００がネットワーク１６０を介して通信可能に接続されている。
【００５８】
サーバー１５０へのカスタマイズドドライバーパッケージ４００の新規インストール方法、クライアント１００の共有プリンター生成方法、そしてクライアント１００へのカスタマイズドドライバーパッケージ４００の更新インストール方法について、順に説明する。サーバー１５０へのカスタマイズドドライバーパッケージ４００およびクライアント１００へのカスタマイズドドライバーパッケージ４００に利用するインストーラー３１０は、同一のモジュールであるためフローチャートは同一になる。なお、本実施形態では、サーバー環境におけるインストールは「新規インストール」とし、クライアント環境におけるインストールは「更新インストール」として説明する。
【００５９】
（新規インストール）
まず、サーバー１５０へのカスタマイズドドライバーパッケージ４００の新規インストールについて、図９および図１０を用いて説明する。なお、サーバー１５０へのカスタマイズドドライバーパッケージ４００のインストールはシステム管理者が行い、クライアント１００からのポイントアンドプリントを利用した共有プリンターの仕組みを利用することを想定する。つまり、システム管理者は、新規インストールの実行の際に、管理者権限を備えているものとする。本フローチャートの処理を行うモジュールはインストーラー３１０であり、以下の説明において記載がない限り、処理の主体はインストーラー３１０である。インストーラー３１０は、補助記憶装置１０５からＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。
【００６０】
本処理は、サーバー１５０上において、カスタマイズドドライバーパッケージ４００に含まれるインストーラー３１０の実行ファイルをポインティングデバイス１０３２などでダブルクリックすることなどで起動し、インストール処理が開始される。
【００６１】
Ｓ９０１にて、インストーラー３１０は、図１０（Ａ）に示す使用許諾書ダイアログ１０００を表示する。ポインティングデバイス１０３２を用いたユーザーからのボタン１００１の押下を受け付けると、次の処理へ進む。
【００６２】
Ｓ９０２にて、インストーラー３１０は、インストール対象となるモデルリストをモニター１０４１に提示する。具体的には、インストーラー３１０は、モニター１０４１に図１０（Ｂ）に示すようなプリンター選択ダイアログ画面１００２を表示する。ここでのインストール対象となるモデルリストは、図６Ａおよび図６Ｂで選択し、カスタマイズしたモデルが一覧１００３として列挙されるものとする。
【００６３】
Ｓ９０３にて、インストーラー３１０は、ユーザーからのインストール対象とするモデル選択を、一覧１００３に設けられたラジオボタンに対する入力にて、受け付ける。本実施形態では、図１０（Ｂ）のように一つのモデル（ここでは「ＭＦＰ  １０００」）が選択されているが、複数指定することも可能である。ポインティングデバイス１０３２を用いたユーザーからのボタン１００４の押下を受け付けると、次の処理へ進む。
【００６４】
Ｓ９０４にて、インストーラー３１０は、サーバー１５０にインストールされているプリンタードライバー１０５２のモデル名リストをオペレーティングシステム１０５４に問い合わせて取得する。
【００６５】
Ｓ９０５にて、インストーラー３１０は、Ｓ９０３でユーザーから指定されたインストール対象となるモデルが、Ｓ９０４で取得したモデル名リストの中に存在するかを確認する。そして、インストーラー３１０は、各モデルに対応するプリンタードライバー１０５２がすでにインストールされているか否かを判定する。モデル名リストに含まれているモデルは、既に対応するプリンタードライバー１０５２がインストールされていることを示す。指定されたモデルがインストールされていると判定された場合（Ｓ９０５にてＹＥＳ）Ｓ９０６へ進み、インストールされていないと判定された場合（Ｓ９０５にてＮＯ）Ｓ９０７へ進む。
【００６６】
Ｓ９０６にて、インストーラー３１０は、カスタマイズドドライバーパッケージ４００の更新インストール処理を行う。本工程の処理は、クライアント１００にインストールする場合の処理として、図１１を用いて後述する。従って、サーバー１５０に対する新規インストールの場合には、実行されない。その後、本処理フローを終了する。
【００６７】
Ｓ９０７にて、インストーラー３１０は、図１０（Ｃ）に示すようなプリンター情報設定画面１００５を表示し、インストールする際に必要な情報であるポート情報やプリンター名の入力、および共有プリンターの設定の入力を受け付ける。ここでは、項目１００６に示す「プリンターを共有する」にチェックを行うことで、共有プリンターとしてインストールが行われる。ポインティングデバイス１０３２を用いたユーザーからのボタン１００７の押下を受け付けると、次の処理へ進む。
【００６８】
Ｓ９０８にて、インストーラー３１０は、Ｓ９０７で入力されたプリンター情報を利用し、カスタマイズドドライバーパッケージ４００を新規インストールする。
【００６９】
Ｓ９０９にて、インストーラー３１０は、キュープロパティバッグ２０８３にカスタマイズ情報４３０の内容を書き込む。カスタマイズ情報４３０には、前述の通り、カスタムコードや印刷設定の初期値等の情報が含まれ、これらの情報をプリンターエクステンション２１０が動作時に読み込み可能なキュープロパティバッグ２０８３に格納する。そして、本処理フローを終了する。
【００７０】
（ポイントアンドプリント）
次に本実施形態に係るポイントアンドプリントについて説明する。新規インストール（図９）において、Ｓ９０７にて共有プリンターの設定を行ってインストールを行ったため、クライアント１００側からポイントアンドプリントによるプリンタードライバー１０５２のインストールが可能となる。具体的には、クライアント１００において、サーバー１５０のサーバー名やＩＰアドレスを指定し、サーバー１５０にインストールしたプリンタードライバー１０５２のプリントキューを指定することでポイントアンドプリントすることが可能である。
【００７１】
ただし、前述したように、Ｖ４プリンタードライバーアーキテクチャとしてのプリンタードライバー１０５２のポイントアンドプリントは、エンハンスドポイントアンドプリントとなる。そのため、サーバー１５０とクライアント１００との間において、機種依存ファイル２０９やデータ領域であるキュープロパティバッグ２０８３のデータ領域の共有のみ行われる。さらに、クライアント１００側からはキュープロパティバッグ２０８３は情報の読み込みは可能であるが、書き込みを行う場合にはサーバー１５０の管理者の権限が必要になる。
ここでエンハンスドポイントアンドプリントによって構成されたプリンタードライバーをエンハンスドポイントアンドプリントドライバーと呼ぶ。エンハンスドポイントアンドプリントドライバーはオペレーティングシステムにあらかじめインストールされ、必要最低限のドライバー情報をサーバーからダウンロードすることで共有プリンターの機能が利用できるプリンタードライバーを意味する。
【００７２】
さらに、他のモジュールであるレイアウトフィルタ２１４やレンダラフィルタ２１５、プリンターエクステンション２１０はクライアント１００にはダウンロードされない。これに対し、クライアント１００のシステム管理者は、サーバー１５０側と同じカスタマイズドドライバーパッケージ４００を更新インストールすることで、プリンターエクステンション２１０を含むインストール処理を行う。これにより、図５に示すような各ＵＩがクライアント１００側で利用できないことを避けることができる。ここでは、クライアント１００へのカスタマイズドドライバーパッケージ４００の更新インストール方法について、図９と図１１を用いて説明する。
【００７３】
本フローチャートの処理を行うモジュールはクライアント１００に設置されたインストーラー３１０であり、以下の説明において記載がない限り、処理の主体はインストーラー３１０である。インストーラー３１０は、補助記憶装置１０５からＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。インストーラー３１０が、クライアント１００にカスタマイズドドライバーパッケージ４００をインストールする処理は、図９のフローチャートが基本となり、Ｓ９０４までの処理は同一であるため省略する。ここでは、Ｓ９０５にてインストールするモデル名がすでにインストール済と判定した場合において（Ｓ９０５にてＹＥＳ）、更新インストール処理（Ｓ９０６）について、図１１を用いて説明する。
【００７４】
Ｓ１１０１にて、インストーラー３１０は、インストール済と判定したモデル名のプリンタードライバー１０５２が共有プリンターか否かを判定する。共有プリンターであると判定された場合（Ｓ１１０１にてＹＥＳ）Ｓ１１０２へ進み、共有プリンターでないと判定された場合（Ｓ１１０１にてＮＯ）Ｓ１１０７へ進む。
【００７５】
Ｓ１１０２にて、インストーラー３１０は、インストール済と判定したモデル名のプリンタードライバー１０５２がエンハンスドポイントアンドプリントドライバーであるか否かを判定する。エンハンスドポイントアンドプリントドライバーでない（すなわち、通常の共有プリンター）と判定した場合（Ｓ１１０２にてＮＯ）Ｓ１１０６へ進み、エンハンスドポイントアンドプリントドライバーであると判定した場合（Ｓ１１０２にてＹＥＳ）Ｓ１１０３へ進む。
【００７６】
Ｓ１１０３にて、インストーラー３１０は、インストールされている対象モデルのプリンタードライバー１０５２のキュープロパティバッグ２０８３にアクセスし、カスタマイズ情報４３０を取得する。ここでのカスタマイズ情報４３０には、更新対象のプリンタードライバーをカスタマイズした際に設定されたカスタムコードが含まれる。
【００７７】
Ｓ１１０４にて、インストーラー３１０は、Ｓ１１０３にて取得したカスタマイズ情報４３０のカスタムコードと、インストールするカスタマイズドドライバーパッケージ４００のカスタマイズ情報４３０のカスタムコードとが一致するか否かを判定する。カスタムコードを比較することにより、インストールされているプリンタードライバー１０５２と今からインストールするカスタマイズドドライバーパッケージ４００が同一か否かの判定が可能となる。なお、同一か否かの判定方法は他にも存在し、他の方法やカスタムコード以外の所定の情報を用いてもよい。例えば、プリンタードライバーのバージョンや、プリンタードライバー１０５２の署名ファイルのタイムスタンプの比較などに基づいて、インストール済みのプリンタードライバー１０５２と今からインストールするカスタマイズドドライバーパッケージ４００が同一か否かを判定してもよい。また、複数の情報を組み合わせて同一か否かを判定してもよい。カスタムコードが一致する場合（Ｓ１１０４にてＹＥＳ）Ｓ１１０５へ進み、一致しない場合（Ｓ１１０４にてＮＯ）Ｓ１１０６へ進む。
【００７８】
Ｓ１１０５にて、インストーラー３１０は、カスタマイズドドライバーパッケージ４００の更新インストールのみ行い、キュープロパティバッグ２０８３の更新を行わない。本工程における、カスタマイズドドライバーパッケージ４００の更新インストールのみ行い、キュープロパティバッグ２０８３の更新を行わない処理については、図１２を用いて後述する。その後、本処理フローを終了する。
【００７９】
Ｓ１１０６にて、インストーラー３１０は、カスタマイズドドライバーパッケージ４００の更新インストール及びキュープロパティバッグ２０８３を更新しない。これは、Ｓ１１０２にて通常の共有プリンターであると判定された場合に（Ｓ１１０２にてＮＯ）、すでにクライアント１００に対してプリンターエクステンション２１０などのプリンタードライバーモジュールがインストールされているものとして判定し、本工程が行われる。また、キュープロパティバッグ２０８３の更新に関してもサーバー１５０側の管理者権限が必要なため、インストーラー３１０は、キュープロパティバッグ２０８３の更新を行わない。この場合、インストーラー３１０は、ユーザーに対して更新が行われていないメッセージ表示を行う。また、Ｓ１１０４にて、インストール済みのプリンタードライバー１０５２と今からインストールするカスタマイズドドライバーパッケージ４００が違うものであると判定された場合に（１１０４にてＮＯ）、本工程が行われる。本工程の後、本処理フローを終了する。
【００８０】
Ｓ１１０７にて、インストーラー３１０は、カスタマイズドドライバーパッケージ４００を更新インストールし、さらにカスタマイズ情報４３０をキュープロパティバッグ２０８３に反映するように更新する。これは、共有プリンターでないと判定された場合（Ｓ１１０１にてＮＯ）において、クライアント１００の管理者権限があればカスタマイズドドライバーパッケージ４００の更新およびキュープロパティバッグ２０８３の更新が可能であるためである。そして、本処理フローを終了する。
【００８１】
図１２を用いてＳ１１０５における処理について説明する。カスタマイズドドライバーパッケージ４００を更新インストールする場合、通常のプリンターに対して、インストーラー３１０は、カスタマイズ情報４３０を用いてクライアント１００のキュープロパティバッグ２０８３の更新処理を行う（Ｓ１１０７）。ただし、Ｓ１１０５の工程における処理では、対象のプリンタードライバーがエンハンスドポイントアンドプリントドライバー、かつ、サーバー１５０にインストールされたドライバーと同一であると判定された場合、カスタマイズ情報４３０を用いたキュープロパティバッグ２０８３に対する更新処理を行わず、カスタマイズドドライバーパッケージ４００にあるプリンタードライバー１０５２の更新処理のみ行う。具体的には、プリンターエクステンション２１０やレイアウトフィルタ２１４、レンダラフィルタ２１５、機種依存ファイル２０９、ＩＮＦファイル２４０の更新インストール処理が行われる。なお、この時、上述したように、クライアント１００におけるプリンタードライバー１０５２のキュープロパティバッグ２０８３と、サーバー１５０におけるプリンタードライバー１０５２のキュープロパティバッグ２０８３とはデータが共有されている。
【００８２】
また、カスタマイズ情報４３０が一部異なる場合でも、プリンタードライバー１０５２のバージョンが同一であると判定された場合には、プリンタードライバー１０５２のみの更新を行うケースがあってもよい。例えば、サーバー１５０には「両面をデフォルト」および「２ｉｎ１をデフォルト」という情報が設定されたカスタマイズドドライバーがインストールされ、クライアント１００にエンハンスドポイントアンドプリントがされている環境を想定する。その場合、カスタマイズドドライバーパッケージ４００のカスタマイズ情報４３０が、サーバー１５０にインストール済みのカスタマイズ情報４３０と比較して少ない場合、ユーザーに対して通知を行った上で、キュープロパティバッグ２０８３の更新は行わず、カスタマイズドドライバーパッケージ４００の更新インストールを行ってもよい。今回の例でいえば「両面をデフォルト」という情報のみがカスタマイズドドライバーパッケージ４００のカスタマイズ情報４３０に記載されているような場合などが該当する。ここでの通知方法は、メッセージを画面上に表示するようにしてもよいし、別に設けられた画面を表示するようにしてもよい。
【００８３】
これは、クライアント１００の更新インストール後のプリンタードライバー１０５２は、サーバー１５０のカスタマイズ情報４３０が反映されることになるため、結果的に同一になるためである。つまり、更新インストールの際に、サーバー１５０におけるプリンタードライバー１０５２のキュープロパティバッグ２０８３と、カスタマイズドドライバーパッケージ４００に含まれるカスタマイズ情報とはデータの内容が完全一致となる必要はない。言い換えると、サーバー１５０におけるプリンタードライバー１０５２のキュープロパティバッグ２０８３の内容が、カスタマイズドドライバーパッケージ４００に含まれるカスタマイズ情報の設定内容を包含する関係であれば、上記の更新インストールは可能である。
【００８４】
このような構成でも、サーバー１５０とクライアント１００とのドライバーの同一性を維持することができる。
【００８５】
以上、本実施形態により、カスタマイズされたプリンタードライバー１０５２のエンハンスドポイントアンドプリント環境において、プリンターエクステンション２１０を含んだカスタマイズドドライバーパッケージ４００の更新インストールを適切に行うことができる。
【００８６】
＜その他の実施形態＞
本発明は上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８７】
１００…クライアント、１４０…プリンター、１５０…サーバー、３１０…インストーラー、４１０…カスタマイズ設定ファイル、４２０…ツール設定情報、４３０…カスタマイズ情報、１０５２…プリンタードライバー、１０５３…カスタマイズツール、２０８３…キュープロパティバッグ
【図１】
2019049825.tif 000003
【図２】
2019049825.tif 000004
【図３】
2019049825.tif 000005
【図４】
2019049825.tif 000006
【図５】
2019049825.tif 000007
【図６Ａ】
2019049825.tif 000008
【図６Ｂ】
2019049825.tif 000009
【図７】
2019049825.tif 000010
【図８】
2019049825.tif 000011
【図９】
2019049825.tif 000012
【図１０】
2019049825.tif 000013
【図１１】
2019049825.tif 000014
【図１２】
2019049825.tif 000015