(57)【特許請求の範囲】
【請求項１】
印刷装置と通信し、プリンタドライバの印刷設定を行う情報処理装置であって、
前記プリンタドライバと、オペレーティングシステムとがそれぞれ複数の印刷設定を管理し、
前記オペレーティングシステムは、コンフリクト状態が発生する１つの印刷設定と複数の印刷設定との間のコンフリクト条件が定義できず、コンフリクト状態が発生する２つの印刷設定の間のコンフリクト条件が定義できる際に、
前記プリンタドライバで管理する複数の印刷設定に対応付けられているパラメータと前記オペレーティングシステムの管理する１つ印刷設定との間のコンフリクト条件を用いて、前記パラメータの値に基づいて、前記プリンタドライバが管理する複数の印刷設定と前記オペレーティングシステムとが管理する１つの印刷設定の間のコンフリクト状態を解消する解消手段を有することを特徴とする情報処理装置。
【請求項２】
前記解消手段によりコンフリクト状態を解消された印刷設定に基づいて、前記プリンタドライバのユーザインタフェースで表示すべき印刷設定の表示を更新する更新手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記コンフリクト条件は、オペレーティングシステムにおいて管理されているものであり、
ユーザに対して、前記パラメータの値の変化を、オペレーティングシステムから前記プリンタドライバに対して通知するかどうかを問い合わせるダイアログを表示するダイアログ表示手段と、
前記ダイアログ表示手段により表示されるダイアログに対してユーザから前記パラメータの値の変化を通知する要求がなされているかどうかを判断する判断手段とを備え、
前記判断手段により、ユーザから前記パラメータの値の変化を通知する要求がなされていると判断した場合に、前記オペレーティングシステムは、前記パラメータの値を前記プリンタドライバに通知することを特徴とする請求項１記載の情報処理装置。
【請求項４】
印刷装置と通信し、プリンタドライバの印刷設定を行う情報処理装置における印刷設定方法であって、
前記プリンタドライバと、オペレーティングシステムとがそれぞれ複数の印刷設定を管理し、
前記オペレーティングシステムは、コンフリクト状態が発生する１つの印刷設定と複数の印刷設定との間のコンフリクト条件が定義できず、コンフリクト状態が発生する２つの印刷設定の間のコンフリクト条件が定義できる際に、
前記プリンタドライバで管理する複数の印刷設定に対応付けられているパラメータと前記オペレーティングシステムの管理する１つ印刷設定との間のコンフリクト条件を用いて、前記パラメータの値に基づいて、前記プリンタドライバが管理する複数の印刷設定と前記オペレーティングシステムとが管理する１つの印刷設定の間のコンフリクト状態を解消する解消ステップを有することを特徴とする印刷設定方法。
【請求項５】
前記解消ステップによりコンフリクト状態を解消された印刷設定に基づいて、前記プリンタドライバのユーザインタフェースで表示すべき印刷設定の表示を更新する更新ステップを有することを特徴とする請求項４に記載の印刷設定方法。
【請求項６】
前記コンフリクト条件は、オペレーティングシステムにおいて管理されているものであり、
ユーザに対して、前記パラメータの値の変化を、オペレーティングシステムから前記プリンタドライバに対して通知するかどうかを問い合わせるダイアログを表示するダイアログ表示ステップと、
前記ダイアログ表示ステップにより表示されるダイアログに対してユーザから前記パラメータの値の変化を通知する要求がなされているかどうかを判断する判断ステップとを備え、
前記判断ステップにより、ユーザから前記パラメータの値の変化を通知する要求がなされていると判断した場合に、前記オペレーティングシステムは、前記パラメータの値を前記プリンタドライバに通知することを特徴とする請求項４記載の印刷設定方法。
【請求項７】
請求項４乃至６のいずれか１項に記載の印刷設定方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読取可能な記憶媒体。
【請求項８】
請求項４乃至６のいずれか１項に記載の印刷設定方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバによりプリンタに対する印刷設定を行うためのユーザインタフェースを表示する情報処理装置の印刷設定処理に関するものである。
【背景技術】
【０００２】
一般的な印刷システムは、ホストコンピュータ及びプリンタで構成される。
【０００３】
このような印刷システムにおいて、ホストコンピュータからの印刷対象データに基づいて印刷を行う場合には、ホストコンピュータにインストールされたプリンタドライバを実行することで、印刷装置の仕様に適応した印刷を行えるように構成されている。
【０００４】
通常、プリンタドライバは、プリントダイアログと呼ばれるユーザインタフェース（ＵＩ）を提供し、プリントダイアログを介してユーザからの設定項目に対する設定値入力を受け付け、これら設定値に基づき印刷データを生成する。
【０００５】
ここで、ユーザインタフェース（ＵＩ）で提供されるプリントダイアログ上で設定可能な設定項目の間には、互いに排他関係、依存関係を有するものが存在する。
【０００６】
そのため、プリンタドライバは、入力された設定値と他の設定項目との関係を逐次評価し、設定項目間にコンフリクト（不整合）が生じないようにコンフリクトの解消を行っている（例えば、特許文献１参照）。
【０００７】
一方、米国アップル社のＭａｃ  ＯＳ  Ｘ（商標）のオペレーティングシステム（ＯＳ）で動作するＣＵＰＳ印刷システムでは、以下のようにコンフリクト条件を記述可能に構成されている。具体的には、プリンタ固有の機能や設定可能な選択肢などを記述するＰＰＤファイルの中に、ＵＩ  Ｃｏｎｓｔｒａｉｎｔｓという形式で設定項目間のコンフリクト条件を記述しておくことができるように構成されている。
【０００８】
ここで、ＰＰＤファイルのＵＩＣｏｎｓｔｒａｉｎｓとは、ＰｏｓｔＳｃｒｉｐｔ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ（商標）に対応し、ＣＵＰＳとは、Ｃｏｍｍｏｎ  ＵＮＩＸ（登録商標）  Ｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ（商標）に対応する。
【０００９】
このような構成を備えるＯＳにおいて、設定項目間のコンフリクトの解消をＯＳ自身が以下のように行う。
【００１０】
例えば、フチなし印刷を許可しない用紙の種類が設定されている状態で、ユーザがフチなしの用紙サイズを選択した場合には、ＯＳがＰＰＤファイルに記述されているＵＩＣｏｎｓｔｒａｉｎｔｓの記述に基づいて設定項目間のコンフリクト条件を評価する。そして、ＯＳは、その評価結果から用紙の種類を選択可能な値へ変更する。
【００１１】
このようにしてＯＳによって変更された設定項目に対応する値はプリンタドライバへ通知されるため、通知された値に基づきプリンタドライバはＵＩを更新することができる。
【特許文献１】特開２００２−２０２８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記ＯＳの仕様では、コンフリクト条件の一例であるＵＩＣｏｎｓｔｒａｉｎｔｓの記述形式は、２つの設定項目の組合せを禁止することは可能に構成されているが、３つ以上の複雑な組合せの場合にはこれを禁止することを記述できない。
【００１３】
したがって、従来のＰＰＤファイルの仕様では、１つの印刷設定項目に対して影響が起こり得る印刷設定項目が３つ以上の複雑な組合せが存在する場合には、ＰＰＤファイルの中にＵＩＣｏｎｓｔｒａｉｎｔｓを一切記述しない。このように１つの印刷設定項目に対して影響が起こり得る印刷設定項目が３つ以上の複雑な組合せが存在する場合は、プリンタドライバの中で全てのコンフリクトを解消することも考えられる。
【００１４】
しかし、プリンタドライバ内で全ての印刷設定項目をハンドリングできれば可能であるが、その実装は煩雑である。
【００１５】
さらに、実際には、プリントダイアログ上には、ＯＳ側で管理している設定項目も存在し、そのＯＳ側のコンフリクト条件の仕様の制限のもと実装する必要がある場合もある。
【００１６】
その場合は、ＯＳ側で管理している設定項目に対して、プリンタドライバ側で管理している設定項目が排他関係または依存関係を有する場合には、ＵＩＣｏｎｓｔｒａｉｎｔｓを記述しなければＯＳ側で管理している設定値が変更された旨の通知をプリンタドライバは受け取ることができない。
【００１７】
本発明は、上記の問題点の少なくともひとつを解決するためになされたものであって、本発明の目的は、プリンタドライバにおけるコンフリクト条件の制限に対応可能な仕組みを提供することである。
【００１８】
また、２つの印刷設定のコンフリクトを定義するコンフリクト条件を用いて、３つ以上の印刷設定のコンフリクトを解消する仕組みを提供することをさらに別の目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００２０】
印刷装置と通信し、プリンタドライバの印刷設定を行う情報処理装置であって、前記プリンタドライバと、オペレーティングシステムとがそれぞれ複数の印刷設定を管理し、前記オペレーティングシステムは、コンフリクト状態が発生する１つの印刷設定と複数の印刷設定との間のコンフリクト条件が定義できず、コンフリクト状態が発生する２つの印刷設定の間のコンフリクト条件が定義できる際に、前記プリンタドライバで管理する複数の印刷設定に対応付けられているパラメータと前記オペレーティングシステムの管理する１つ印刷設定との間のコンフリクト条件を用いて、前記パラメータの値に基づいて、前記プリンタドライバが管理する複数の印刷設定と前記オペレーティングシステムとが管理する１つの印刷設定の間のコンフリクト状態を解消する解消手段を有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、１つの印刷設定項目がユーザの操作により設定されることに応じて、複数の印刷設定項目に対応づけられているパラメータをプリンタドライバに通知できる。
【発明を実施するための最良の形態】
【００２２】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００２３】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の実施形態を示す印刷システムの構成を説明するブロック図である。本例は、ホストコンピュータ１０１とプリンタ１１２とが双方向に通信可能な印刷システムの例である。ホストコンピュータ１０１は情報処理装置の一例である。
【００２４】
なお、本実施形態では、後述するようにＰＰＤファイルに記述されるＵＩＣｏｎｓｔｒａｉｎｓを用いて、ＯＳが管理する印刷設定項目間のコンフリクト状態をＯＳが判定することができるように構成されている。
【００２５】
また、本実施形態では、ＯＳとプリンタドライバとがそれぞれ管理する印刷設定項目に従い、後述するＵＩ画面の印刷設定項目の表示状態をプリンタドライバが制御する構成となっている。なお、プリンタドライバは、ＣＰＵ１０２の制御の下で、後述するプリントダイアログを表示するダイアログ表示機能を備え、印刷設定項目の表示を設定可能あるいは設定不可とするように印刷設定項目をグレイアウト表示することができるように構成されている。
【００２６】
図１に示すホストコンピュータ１０１において、１０２はＣＰＵで、ＲＡＭ１０４及び外部記憶装置１０５に格納されたプログラムに従って各部を制御する。ＣＰＵ１０２は、プリンタ１１２に対応した、後述する図１０のフローチャートに基づいて動作するプリンタドライバ（印刷制御プログラム）をＲＡＭ１０４にロードして実行して、以下の処理を行う。例えばプリンタドライバは、アプリケーションプログラムに基づいて作成された出力情報をプリンタ１１２に対応する出力コマンドに変換する。
【００２７】
また、ＣＰＵ１０２は、インストールされているプリンタドライバを実行して、作成した出力情報を通信Ｉ／Ｆ１１１を介してプリンタ１１２に所定のプロトコルで出力する。
【００２８】
１０３はＲＯＭで、ＣＰＵ１０２が実行するＢＩＯＳプログラムやフォントデータを格納している。１０４はＲＡＭで、必要に応じてＣＰＵ１０２がデータの書き込みや読み出しを行ったりするために使用され、プリンタドライバ起動時には、プリンタドライバのプログラムコードがこのＲＡＭ１０４上にロードされる。
【００２９】
１０５は外部記憶装置で、ＣＰＵ１０２が読み出すプログラムコードが格納されており、本実施形態の機能の一部を実現するデバイスで、例えば、ＦＤ、ＣＤ−ＲＷ、ＨＤＤなどで構成される。なお、外部記憶装置は、ＦＤ、ＣＤ−ＲＷ、ＨＤＤ、ＵＳＢメモリ、ＳＤメモリを組み合わせて複合的に構成してもよい。
【００３０】
１０６は入力デバイス制御部で、キーボードやマウス等の入力デバイス１０８を制御する。なお、ユーザは、入力デバイス１０８を操作することで、表示装置１０９に表示されるユーザインタフェース、例えば印刷設定画面に表示される印刷設定項目に対して、数値や、チェックを指示することができる。
【００３１】
１０７は表示装置制御部で、ＣＲＴ、液晶ディスプレイ等の表示装置１０９に対する表示を制御する。
【００３２】
なお、表示装置１０９の表示画面に対して配置されるタッチパネルが入力デバイス１０８として機能する場合がある。
【００３３】
１１０は内部バスで、各構成要素間のデータ通信を行うデータバス、システムバスで構成される。１１１は通信Ｉ／Ｆで、プリンタ１１２との通信を司り、双方向通信可能である。
【００３４】
なお、シリアルインタフェースとしてはＵＳＢ、ＩＥＥＥ１３９４など、パラレルインターフェースとしてはセントロニクス、ＳＣＳＩなど複数の種類が想定されるが、双方向の通信を実現するものであればどのようなインタフェースでも構わない。
【００３５】
図１に示すプリンタ１１２において、１１４はプリントコントローラで、通信Ｉ／Ｆ１１３より得られたプリンタコマンドに基づいて、プリンタエンジン１１５を制御し印刷を行う。１１５はプリンタエンジンで、プリンタヘッドの操作や記録媒体の搬送を行う機構を備える。
【００３６】
本実施形態では、ホストコンピュータ１０１上で動作する印刷システムが、例えば米国アップル社のＭａｃ  ＯＳ  Ｘ（商標）のＯＳで動作するＣＵＰＳ（Ｃｏｍｍｏｎ  ＵＮＩＸ（登録商標）  Ｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ（商標））を印刷システム例である。
【００３７】
ここで、Ｍａｃ  ＯＳ  Ｘで動作するＣＵＰＳ印刷システムでは、プリンタ固有の機能や設定可能な選択肢などを記述する上述しているようにＰＰＤファイルの中に、ＵＩＣｏｎｓｔｒａｉｎｔｓという形式で設定項目間のコンフリクト条件を記述している。これにより、ＯＳはＵＩＣｏｎｓｔｒａｉｎｔｓを参照することで、設定項目間のコンフリクトの解消処理を行う。
【００３８】
ＵＩＣｏｎｓｔｒａｉｎｔｓの具体例としては、給紙方法と用紙の種類の例がある。例えば給紙方法「前トレイ」からの用紙の種類「封筒」の給紙は、紙ジャムを引き起こしプリンタ１１２にダメージを与えかねない場合に、ユーザインタフェース上で「前トレイ」と「封筒」の組合せを禁止して防ぐような場合が考えられる。
【００３９】
上述しているように上記ＯＳでは、ＵＩＣｏｎｓｔｒａｉｎｔｓは２つの設定項目の組合せを禁止することが可能である。そこで、上記の例を記述すると、「＊ＵＩＣｏｎｓｔｒａｉｎｔｓ  ＊ＭｅｄｉａＴｙｐｅ  ｅｎｖｅｌｏｐ  ＊ＭｅｄｉａＳｕｐｐｌｙ  ｆｒｏｎｔ」となる。
【００４０】
このようにＵＩＣｏｎｓｔｒａｉｎｔｓを記述しておくことで、「前トレイ」が設定されている状態で、ユーザが入力デバイス１０８を操作して、印刷設定項目として、例えば「封筒」を選択した場合には、ＯＳは以下のようにコンフリクト処理を行う。
【００４１】
ここで、ＯＳは、ＰＰＤファイルに記述されているＵＩＣｏｎｓｔｒａｉｎｔｓの記述に基づいて設定項目間のコンフリクトを評価し、上記印刷設定項目である「前トレイ」を選択不可能な値へ変更する。このようにして、ＯＳによって変更された値は、プリンタドライバへ通知される。このため、通知された値に基づきプリンタドライバはＵＩを更新することができる。ここまでは、１つの印刷設定項目に対して、他の１つの印刷設定項目とのコンフリクトを解消する例である。
【００４２】
図２は、図１に示した外部記憶装置１０５に保存されるＰＰＤファイルの一例を示す図である。
【００４３】
図２に示すように、ＰＰＤファイルは、プリンタ固有の機能や設定可能な選択肢などを記述するファイルである。
【００４４】
ここでは、ＰＰＤファイルが各印刷設定項目に対して、設定可能な選択肢、デフォルト値、表示文字列が記述されている例である。
【００４５】
ここで、印刷設定項目には、用紙サイズ（ＰａｇｅＳｉｚｅ）、用紙の種類（ＭｅｄｉａＴｙｐｅ）、給紙方法（ＭｅｄｉａＳｕｐｐｌｙ）が含まれる。同様に、印刷設定項目には、印刷品位（ＰｒｉｎｔＱｕａｌｉｔｙ）、ハーフトーン（Ｈａｌｆｔｏｎｅ）、モノクロ印刷（Ｇｒａｙｓｃａｌｅ）が含まれる。
【００４６】
図３は、図１に示した外部記憶装置１０５にインストールされているプリンタドライバにより提供されるプリントダイアログの一例を示す図である。なお、プリントダイアログ上では、ＯＳが管理する印刷設定項目と、プリンタドライバが管理する印刷設定項目とを同時に表示する例である。
【００４７】
また、図３に示すプリントダイアログ上には、図２に示したＰＰＤファイルに記述されている各印刷設定項目に対応したコントロールを有している。このプリントダイアログは、外部記憶装置１１０５にインストールされている任意のアプリケーションから印刷設定時にＯＳを介して呼び出され、図１に示したモニタ等の表示装置１０９に表示される。
【００４８】
なお、ユーザが入力デバイス１０８を操作して、アプリケーションメニュー等からアプリケーションを選択すると、任意のアプリケーションが、起動される。また、スタートアップ等の起動フォルダに登録されたアプリケーションがインストールされている場合には、電源投入と同時に、登録された１つまたは複数のアプリケーションが同時に起動される場合がある。
【００４９】
図３において、３０１はポップアップメニューで、出力するプリンタをユーザが入力デバイス１０８を操作して選択させるメニューである。ここでは、現在、ユーザが入力デバイス１０８を操作して、プリンタ名が「プリンタＡ」に対応するプリンタを選択している状態を示している。
【００５０】
３０２はポップアップメニューで、印刷設定項目である用紙サイズをユーザが入力デバイス１０８を操作して選択させるメニューである。ここで、ポップアップメニュー３０１とポップアップメニュー３０２はＯＳ側で管理しているメニューであり、プリンタドライバが表示しているメニューではない。以下、プリンタドライバが表示するメニューについて説明する。
【００５１】
３０３はポップアップメニューで、「品位と用紙の種類」や「カラーオプション」など、ユーザに設定画面を切り替えさせるメインメニューに対応し、ここでは、ユーザの操作により「品位と用紙の種類」が選択されている状態を示す。
【００５２】
３０４はポップアップメニューで、印刷設定項目である用紙の種類をユーザにより選択させるメニューである。３０５はポップアップメニューで、印刷設定項目である給紙方法をユーザにより選択させるメニューである。
【００５３】
３０６はスライドバーで、印刷設定項目である印刷品位を、ユーザにより例えば５段階で選択させることが可能な例を示す。
【００５４】
３０７Ａ，３０７Ｂはラジオボタンで、印刷設定項目である使用するハーフトーンをユーザに選択させるためのボタンであって、例えば、「ディザ」か「誤差拡散」のどちらか一方をユーザに選択させることができる。
【００５５】
３０８はチェックボックスで、印刷設定項目であるモノクロ印刷を行うか否かをユーザが選択することが可能に構成されている例を示す。
【００５６】
ここで、上記３０３〜３０８は、プリンタドライバ側で管理している印刷設定項目であり、メニューの表示・非表示やボタンの配置を含むダイアログ全体のレイアウト等についてもプリンタドライバが管理している。
【００５７】
３０９はキャンセルボタンで、該キャンセルボタン３０９がユーザの操作に従って押下されると、プリンタドライバが図３に示すプリンのダイアログが閉じて、各印刷設定項目に対してユーザが設定した設定値がキャンセルされる。
【００５８】
３１０はプリントボタンで、該プリントボタン３１０が押下されると、図３に示すプリントダイアログ内の印刷設定項目に対してユーザが設定した設定値が確定してダイアログが閉じられる。
【００５９】
図４は、図３に示したプリントダイアログ上の印刷設定項目において、選択可／不可な組合せルール（コンフリクトルール）の一部を示す図である。
【００６０】
プリンタドライバは、このコンフリクトルールに従い、図３に示したダイアログ上でユーザが適合しない組合せを選択させないように、各印刷設定項目の表示状態を制御する必要がある。
【００６１】
例えば、印刷設定項目として、「フチなし印刷：フチあり」＋「用紙の種類：封筒」＋「印刷品位：標準」が選択されている場合には、プリンタドライバは、以下のように表示制御を行う。具体的には、プリンタドライバは、「ハーフトーン：ディザ」を選択できないようにラジオボタン３０７Ａの「ディザ」の部分のみグレーアウト（選択不可状態）表示させなければならない。
【００６２】
また、例えば、印刷設定項目として、「フチなし印刷：ふちなし」＋「用紙の種類：普通紙」が選択されている場合には、プリンタドライバは、以下のように表示制御を行う。具体的には、プリンタドライバは、印刷品位のスライドバー３０６において、「印刷品位：速い」に相当する位置をグレーアウト表示させなければならない。
【００６３】
このようなコンフリクト処理は非常に複雑であり、前述した、２つの印刷設定項目の組合せを禁止できるＵＩＣｏｎｓｔｒａｉｎｔｓでは不十分である。
【００６４】
しかしながら、プリンタドライバ内で全ての印刷設定項目をハンドリングすることが可能であれば、ＵＩＣｏｎｓｔｒａｉｎｔｓを使用する必要がないため問題とはならない。
【００６５】
しかし、実際には、用紙サイズメニューとなるポップアップメニュー３０２のように、プリントダイアログ上にはＯＳ側で管理している印刷設定項目も存在する。
【００６６】
ここで、ＯＳ側で管理している印刷設定項目に対して、プリンタドライバ側で管理している印刷設定項目が排他関係または依存関係を有する場合がある。
【００６７】
このような印刷設定項目が排他関係または依存関係を有する場合には、ＵＩＣｏｎｓｔｒａｉｎｔｓの記述を行わなければＯＳ側で管理している印刷設定項目の設定値が変更された旨の通知をプリンタドライバは受け取ることができない。
【００６８】
即ち、ＯＳ側で管理している印刷設定項目とプリンタドライバ側で管理している印刷設定項目との間で何らかの関係を有する場合には、ＵＩＣｏｎｓｔｒａｉｎｔｓを記述しなければならないということになる。
【００６９】
そこで、本実施形態では、ＯＳ側で管理する印刷設定項目に変更があった場合に、ＯＳから印刷ドライバへ設定値が変更された旨を通知させるための専用パラメータを用意する。
【００７０】
この専用パラメータは、本実施形態における特徴的なＵＩパラメータであり、前述した図３に示すプリントダイアログ上の各印刷設定項目に直接対応しないパラメータである。このため、以降の説明では、上記専用のＵＩパラメータの一例を仮想ＵＩパラメータと呼ぶ。また、本実施形態では、プリントダイアログ上の１つの印刷設定項目がユーザの操作により設定された場合に、ＯＳとプリンタドライバとの間では、後述するようなパラメータの通知処理が実行される。
【００７１】
一方、プリントダイアログ上の各印刷設定項目に一対一で対応するパラメータを仮想ＵＩパラメータと呼ぶ。
【００７２】
プリンタドライバは、ＯＳからこの仮想ＵＩパラメータの変更通知を受け取ることで、ＯＳ側で管理する印刷設定項目に変更があったと判断し、コンフリクトの解消をプリンタドライバ側で行うことができる。この際、プリンタドライバは、ＯＳから通知される仮想ＵＩパラメータの変更状態を判断して、１つの仮想ＵＩパラメータに対応付けられている複数の印刷設定項目を特定し、複数の印刷設定項目に対して、図４に示すコンフリクトルールを適用する。そして、プリンタドライバは、図４に示すコンフリクトルールを適用して、複数の印刷設定項目の間で発生し得るコンフリクトを解消させ、変更した印刷設定項目の設定値の表示状態を更新する制御を行う。ここで、表示状態とは、ユーザが特定の印刷設定項目を選択できないように、グレイ表示する状態を含む。
【００７３】
図５Ａ、図６は、本実施形態を示すホストコンピュータ１０１のＯＳが参照可能な仮想ＵＩパラメータとＵＩＣｏｎｓｔｒａｉｎｔｓの一例を示す図である。なお、仮想ＵＩパラメータとＵＩＣｏｎｓｔｒａｉｎｔｓは、図２に示したＰＰＤファイルに追記して使用する。
【００７４】
図５Ａにおいて、５０１は仮想ＵＩパラメータで、ここでは、仮にＢｏｒｄｅｒｌｅｓｓという名称で定義する。Ｂｏｒｄｅｒｌｅｓｓは、「ｏｆｆ」と「ｏｎ」の２値の設定を可能としている。
【００７５】
本実施形態では、Ｂｏｒｄｅｒｌｅｓｓがとり得る値を２値にすることで、ＯＳ側で管理する印刷設定項目である用紙サイズメニューとなるポップアップメニュー３０２で、用紙サイズの余白（フチあり／なし）が変更された場合に、図５の（Ｂ）に示すように、ＯＳから「フチなし印刷」の変化を受け取ることが可能となり、図４のコンフリクトルールに従ったコンフリクトの解消が可能になる。
【００７６】
図５Ｂは、ＯＳが管理する印刷設定項目の用紙サイズに対して、Ａ４、Ａ４（フチなし）、Ａ４（フチなし）に対して、プリンタドライバが管理する複数の印刷設定項目の選択の可否を示すテーブルの一例を示す図である。
【００７７】
なお、本実施形態では、プリンタドライバが管理する複数の印刷設定項目が用紙種別、印刷品位、ハーフトーンの場合を示す。ここで、用紙種別、印刷品位、ハーフトーンは、相互に依存関係がある。
【００７８】
図５Ｂに示す仮想ＵＩパラメータ「Ｂｏｒｄｅｒｌｅｓｓ」は、プリンタドライバが管理する複数の印刷設定項目が用紙種別、印刷品位、ハーフトーンを統合した１つのパラメータとして機能する。
【００７９】
一方、ＯＳ側では、ＰＰＤファイルのＵＩＣｏｎｓｔｒａｉｎｓの記述方法をそのまま適用することができる。つまり、ＵＩＣｏｎｓｔｒａｉｎｓの記述方法においては、図５Ｂに示すように、仮想ＵＩパラメータ「Ｂｏｒｄｅｒｌｅｓｓ」は、ＰａｇｅＳｉｚｅに対して、１対１の関係で記述されている。
【００８０】
ここで、仮想ＵＩパラメータは、図３に示したプリントダイアログに直接対応しない内部パラメータである。このため、プリンタドライバは、仮想ＵＩパラメータの変化状態を示す情報をＯＳから受信した場合には、後述するように仮想ＵＩパラメータがＵＩパラメータのいずれに該当するかを特定する処理を行う。
【００８１】
なお、図５Ｂにおいて、ＯＦＦ／ＯＮと記述されている個所は、プリントダイアログに表示する文字列を記述する部分であり、本実施形態では、設定値の意味を直感的に理解し易くするため、設定値と同等の意味を持つ文字列としている。
【００８２】
図５Ａにおいて、５０２はＵＩＣｏｎｓｔｒａｉｎｔｓで、ＵＩパラメータ（ＰａｇｅＳｉｚｅ）と仮想ＵＩパラメータ（Ｂｏｒｄｅｒｌｅｓｓ）の組合せを禁止することを記述した例である。
【００８３】
具体的な動作としては、例えば「フチなし印刷：フチあり」（Ｂｏｒｄｅｒｌｅｓｓ−ｏｆｆ）が設定されている状態で、用紙サイズメニュー３０３で「Ａ４」から「Ａ４（フチなし）」に変更されると、ＯＳは以下のＵＩＣｏｎｓｔｒａｉｎｔｓの記述を参照し、コンフリクトが発生したことを検知する。
【００８４】
なお、ＵＩＣｏｎｓｔｒａｉｎｔｓは、プリンタドライバインストール時に、ＯＳが参照するファイルとして外部記憶装置１０５のシステムファイル領域に記憶される。
【００８５】
ＯＳは、図５Ａに示すＵＩＣｏｎｓｔｒａｉｎｔｓ５０２の２行目に対応する「＊ＵＩＣｏｎｓｔｒａｉｎｔｓ＊ＰａｇｅＳｉｚｅ  ｉｓｏ−ａ４−ｂｏｒｄｅｒｌｅｓｓ＊Ｂｏｒｄｅｒｌｅｓｓ  ｏｆｆ」を参照する。
【００８６】
そして、上記ＵＩＣｏｎｓｔｒａｉｎｔｓの記述から、ＯＳがコンフリクトの発生を検知すると、ＯＳは、以下の処理を行う。具体的には、ＯＳは仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓの設定の値を「ｏｆｆ」を、設定可能な値「ｏｎ」に変更し、プリンタドライバへ変更後の値（Ｂｏｒｄｅｒｌｅｓｓ-ｏｎ）を通知する。
【００８７】
このように、仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓは、ＯＳが管理する印刷設定項目である用紙サイズのフチなし／ありが変更された場合に、プリンタドライバ側でコンフリクトを解消する必要のある／なしに係わらず、必ずＯＳから通知が発行されるように機能する。
【００８８】
しかしながら、図５Ａに示すような仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓの場合には、実際には通知を受け取る必要が無い場合（用紙サイズを変更しても現在の設定値とのコンフリクトが発生しない）にも必ず通知が発行されてしまう。
【００８９】
そこで、図６は、図５の仮想ＵＩパラメータの通知機能を改善したものである。
【００９０】
具体的には、ＯＳ側が管理する印刷設定項目である用紙サイズの変更時でも現在のプリンタドライバが管理する印刷設定項目の設定値との間でコンフリクトが発生しない場合には、通知を発行しないように定義した仮想ＵＩパラメータとＵＩＣｏｎｓｔｒａｉｎｔｓの一例である。
【００９１】
図６において、６０１は仮想ＵＩパラメータで、ここではＢｏｒｄｅｒｌｅｓｓ２という名称で定義している。なお、Ｂｏｒｄｅｒｌｅｓｓ２も同様に、外部記憶装置１０５のシステムファイル領域に記憶されている。
【００９２】
Ｂｏｒｄｅｒｌｅｓｓ２は、図４に示した全ての設定値の組合せを設定可能な選択肢として持つパラメータである。
【００９３】
また、本実施形態では、便宜上デフォルト値は、「ｎｏｔｉｆｉｃａｔｉｏｎ」と定義しており、プリンタドライバ側でコンフリクトの解消が必要な場合に通知される値である。
【００９４】
Ｂｏｒｄｅｒｌｅｓｓ２への印刷設定項目の設定例としては、例えば、プリンタドライバのＵＩにおいて「用紙の種類：普通紙」＋「印刷品位：標準」＋「ハーフトーン：誤差拡散」が選択されている場合には、プリンタドライバは、以下の処理を行う。具体的には、プリンタドライバは、Ｂｏｒｄｅｒｌｅｓｓ２に「ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｆｆｕｓｉｏｎ」を設定する。
【００９５】
その後、ユーザによって、プリンタドライバ側が管理する印刷設定項目である「ハーフトーン：誤差拡散」が「ハーフトーン：ディザ」に変更された場合には、Ｂｏｒｄｅｒｌｅｓｓ２に「ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｔｈｅｒ」を設定する。
【００９６】
６０２はＵＩＣｏｎｓｔｒａｉｎｔｓで、ＵＩパラメータ（ＰａｇｅＳｉｚｅ）と仮想ＵＩパラメータ（Ｂｏｒｄｅｒｌｅｓｓ２）の組合せを禁止することが記述されている。
【００９７】
具体的な動作としては、例えば「用紙の種類：普通紙」＋「印刷品位：標準」＋「ハーフトーン：ディザ」（Ｂｏｒｄｅｒｌｅｓｓ２−ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｔｈｅｒ）が設定されている状態で、用紙サイズメニュー３０３で「Ａ４」から「Ａ４（フチなし）」に変更されると、ＯＳは以下のＵＩＣｏｎｓｔｒａｉｎｔｓの記述を参照し、コンフリクトが発生したことを検知する。
【００９８】
ＯＳは、ＵＩＣｏｎｓｔｒａｉｎｔｓとして、「＊ＵＩＣｏｎｓｔｒａｉｎｔｓ  ＊ＰａｇｅＳｉｚｅ  ｉｓｏ−ａ４−ｂｏｒｄｅｒｌｅｓｓ  ＊Ｂｏｒｄｅｒｌｅｓｓ２  ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｔｈｅｒ」を参照する。
【００９９】
ＯＳが、ユーザがプリントダイアログ上で入力デバイス１０８を操作することにより、用紙サイズメニュー３０３で「Ａ４」から「Ａ４（フチなし）」に変更されることで、コンフリクトの発生を検知すると以下の処理を行う。
【０１００】
ＯＳは、Ｂｏｒｄｅｒｌｅｓｓ２の設定値「ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｔｈｅｒ」をデフォルト値である「ｎｏｔｉｆｉｃａｔｉｏｎ」に変更する。そして、ＯＳは、プリンタドライバへ変更後の値として、「Ｂｏｒｄｅｒｌｅｓｓ２-ｎｏｔｉｆｉｃａｔｉｏｎ」を通知する。
【０１０１】
図５Ａに示した仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓと図６に示した仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓ２との違いは以下の通りである。
【０１０２】
例えば、「用紙の種類：普通紙」＋「印刷品位：標準」＋「ハーフトーン：誤差拡散」（Ｂｏｒｄｅｒｌｅｓｓ２−ｐｌａｉｎ＿ｓｔａｎｄａｒｄ＿ｄｉｆｆｕｓｉｏｎ）が設定されている状態で、ユーザの操作により用紙サイズメニュー３０３で「Ａ４」から「Ａ４（フチなし）」に変更された場合には、ＯＳから通知が発行されないことである。
【０１０３】
一方、図５Ａに示したＢｏｒｄｅｒｌｅｓｓの場合には、用紙サイズメニュー３０３で「Ａ４」から「Ａ４（フチなし）」に変更された場合には、上述したように必ずＯＳから通知が発行され、無意味なコンフリクト解消処理が実行されてしまう。
【０１０４】
このように、図６に示す仮想ＵＩパラメータＢｏｒｄｅｒｌｅｓｓ２は、以下の特徴を備える。本パラメータは、ＯＳ側が管理する印刷設定項目である用紙サイズのフチなし／ありが変更された場合に、プリンタドライバ側でコンフリクトを解消する必要のある場合のみＯＳから通知を受け取るように定義したパラメータである。
【０１０５】
このため、プリンタドライバは、ＯＳから不要な通知を受け取ることなく、効率の良いコンフリクト解消処理が可能となる。
【０１０６】
図７は、本実施形態を示すホストコンピュータ１０１における第１のデータ処理手順の一例を示すフローチャートである。本例は、ＯＳのコンフリクト解消処理例である。なお、Ｓ７０１〜Ｓ７０７は各ステップを示し、各ステップは、ＣＰＵ１０２がＲＡＭ１０４に外部記憶装置１０５からオペレーティングシステムをロードして実行することで実現される。
【０１０７】
以下、図８、図９に示すユーザインタフェースを参照して、本処理について説明する。
【０１０８】
図８、図９は、図１に示した表示装置１０９に表示されるプリントダイアログの一例を示す図である。なお、図９に示すダイアログは、図８の（Ａ）に示すＯＳ側が管理する印刷設定項目である用紙サイズ（ｐａｐｅｒＳｉｚｅ）が「Ａ４」から「Ａ４フチなし（Ａ４ｂｏｒｄｅｒｌｅｓｓ）」に変更された場合に表示される。
【０１０９】
また、図８の（Ａ）は、仮想ＵＩパラメータが「ＯＦＦ」の場合に対応し、図８の（Ｂ）は、仮想ＵＩパラメータが「ＯＮ」の場合に対応する。また、３０７Ａ、３０７Ｂはハーフトーンを設定するラジオボタンである。ここで、ラジオボタン３０７Ａは、プリンタドライバ側が管理する印刷設定項目であるハーフトーンを「ディザ」を選択する場合に選択される。
【０１１０】
また、ラジオボタン３０７Ｂは、プリンタドライバ側が管理する印刷設定項目であるハーフトーンを「誤差拡散」を選択する場合に選択される。
【０１１１】
Ｓ７０１で、ＣＰＵ１０２は、表示装置１０９に表示されるプリントダイアログ上の設定項目のうちＯＳ側が管理している印刷設定項目を変更する要求をユーザからの操作で受け付けているかどうかを判断する。ここで、ＣＰＵ１０２がユーザからの操作でＯＳ側が管理している印刷設定項目を変更する要求を受け付けていないと判断した場合は、本処理を終了する。
【０１１２】
一方、Ｓ７０１で、ＣＰＵ１０２がユーザからの操作でＯＳ側が管理している印刷設定項目を変更する要求を受け付けていると判断した場合は、Ｓ７０２へ進む。
【０１１３】
そして、Ｓ７０２で、ＣＰＵ１０２は、図５Ａに示したＰＰＤファイルのＵＩＣｏｎｓｔｒａｉｎｓの記述を参照する。そして、Ｓ７０３で、ＣＰＵ１０２は、変更が要求された印刷設定項目に対する変更後の設定値が設定できない状態、すなわち、不整合（コンフリクト）が発生することを検知しているかどうかを判断する。
【０１１４】
ここで、ＣＰＵ１０２が不整合を検知していないと判断した場合は、Ｓ７０６へ進み、ＣＰＵ１０２が不整合を検知していると判断した場合は、Ｓ７０４へ進む。
【０１１５】
ＣＰＵがＳ７０３で、ＣＰＵ１０２が変更後の設定値が他の設定値との間で何らかのコンフリクトが発生していると判断した場合は、Ｓ７０４へ進む。そして、Ｓ７０４で、ＣＰＵ１０２は、図９に示すコンフリクトアラートをユーザに通知するためのダイアログを表示装置１０９に表示して、ユーザが選択した、Ａ４フチなしに対して、コンフリクトの発生を知らせる。
【０１１６】
図９に示すダイアログには、ボタンＢＴ１１、ＢＴ１２とを備え、ユーザが入力デバイス１０８を操作して、ボタンＢＴ１２を押下指示した場合には、図９に示すダイアログのメッセージに対して、Ａ４フチなしの続行を指示する。
【０１１７】
一方、ユーザが入力デバイス１０８を操作して、ボタンＢＴ１１を押下指示した場合には、図９に示すダイアログのメッセージに対して、Ａ４フチなしのキャンセルを指示する。
【０１１８】
なお、図９に示すダイアログは、ＯＳ側が管理する印刷設定項目である用紙サイズを、図８（Ａ）に示すスピンボックスからＡ４（ｂｏｒｄｅｒｌｅｓｓ）を選択するタイミングで表示装置１０９に表示される。本例は、言語を英語とする場合を示すが、プリンタの仕向地に応じて、対応する言語のテキストで表示される。
【０１１９】
次に、Ｓ７０５で、ＣＰＵ１０２は、図９に示したダイアログに対して、ボタンＢＴ１２、ＢＴ１１のいずれが押下されているかどうかを判断する。ユーザは、表示される図９に示したダイアログに対して、Ｓ７０１で変更要求した設定値によってコンフリクトが発生した他方の設定値の変更を許可する場合には、ボタンＢＴ１２を押下する。
【０１２０】
そこで、ボタンＢＴ１２が押下されているとＣＰＵ１０２が判断した場合は、Ａ４フチなしの選択に基づく処理の続行を要求しているものと判断して、Ｓ７０６へ進む。
【０１２１】
一方、Ｓ７０５で、ボタンＢＴ１１が押下されているとＣＰＵ１０２が判断した場合は、Ａ４フチなしの選択に基づく処理のキャンセルを要求しているものと判断して、本処理を終了する。
【０１２２】
そして、Ｓ７０６で、ＣＰＵ１０２は、ＯＳによりコンフリクトが発生したＯＳ側が管理する印刷設定項目に対応する、例えば用紙サイズの設定値を設定可能な値へ変更する。
【０１２３】
ここで、設定可能な値とは、図６に示したＰＰＤファイルに記述されているデフォルト値、または図５に示したＰＰＤファイルのＵＩＣｏｎｓｔｒａｉｎｓファイルのように、２値の設定可能値しか持たないものについてはもう一方の値となる。
【０１２４】
次に、Ｓ７０７で、ＣＰＵ１０２は、ＯＳにより変更後の値をプリンタドライバへ通知して、本処理を終了する。ここで、ユーザの操作により、ＯＳ側が管理する印刷設定項目として、仮想ＵＩパラメータがＯＦＦからＯＮに変更された場合には、ＯＳは、仮想ＵＩパラメータと、変更された値がプリンタドライバに通知する。
【０１２５】
このとき、例えば図５または図６のＰＰＤファイルに示したように、仮想ＵＩパラメータとの間でコンフリクトが発生した場合には、仮想ＵＩパラメータがドライバ側へ通知される。
【０１２６】
図１０は、本実施形態を示すホストコンピュータ１０１における第２のデータ処理手順の一例を示すフローチャートである。本例は、プリンタドライバのコンフリクト解消処理例である。なお、Ｓ８０１〜Ｓ８０７は各ステップを示し、各ステップは、ＣＰＵ１０２がＲＡＭ１０４に外部記憶装置１０５からプリンタドライバをロードして実行することで実現される。
【０１２７】
Ｓ８０１で、ＣＰＵ１０２は、プリンタドライバを実行することで、ＯＳ側が管理する印刷設定値の変更することで、印刷設定値を変更する要求がOSからプリンタドライバに対して通知されているかどうかを判断する。なお、ここで、プリンタドライバは、図８に示したプリントダイアログ上の印刷設定項目のうちプリンタドライバ側が管理している印刷設定項目が変更されているかどうかについても判断する。
【０１２８】
そして、Ｓ８０１で、ＣＰＵ１０２がプリンタドライバを実行することで、ＯＳ側が管理する印刷設定値の変更に伴って設定値を変更する要求が通知されていないと判断した場合は、本処理を終了する。
【０１２９】
一方、Ｓ８０１で、ＣＰＵ１０２がプリンタドライバを実行することで、ＯＳ側が管理する印刷設定値の変更に伴って設定値を変更する要求が通知されていると判断した場合は、Ｓ８０２へ進む。
【０１３０】
そして、Ｓ８０２で、ＣＰＵ１０２は、プリンタドライバを実行することで、ＯＳからプリンタドライバに対して通知された設定値の変更が仮想ＵＩパラメータか否かを判断する。
【０１３１】
なお、この判断方法としては、例えば仮想ＵＩパラメータの一覧を記載したテーブル等をプリンタドライバが参照するテーブル領域に記憶しておき、これを参照する等が考えられるが、仮想ＵＩパラメータを判断できればどのような方法でも構わない。なお、プリンタドライバが参照するテーブル領域は、外部記憶装置１０５に確保され、プリンタドライバを外部記憶装置１０５にインストールする際に、指定されたテーブル領域に記憶される。この際、ＯＳ側が参照するシステム領域には、仮想ＵＩパラメータに対応するＵＩＣｏｎｓｔｒａｉｎｓがＰＰＤファイルとして記憶される。
【０１３２】
これにより、プリンタドライバ側と、ＯＳ側との仮想ＵＩパラメータの引き渡しが整合性よく行うことができる。
【０１３３】
次に、Ｓ８０２で、ＣＰＵ１０２がプリンタドライバを実行することで、OSからプリンタドライバに対して通知された設定値の変更要求が仮想ＵＩパラメータの変更要求であると判断した場合には、Ｓ８０３で、ＯＳから通知された仮想ＵＩパラメータの変更元の設定値を特定する。
【０１３４】
この特定方法としては、例えば仮想ＵＩパラメータと変更元の設定値の関係を記述したテーブル等を外部記憶装置１０５に記憶しておき、これを参照する方法が考えられる。若しくは、プリンタドライバがＯＳのシステムファイルで記憶されるＰＰＤファイルのＵＩＣｏｎｓｔｒａｉｎｔｓの記述を直接参照して変更元を特定しても良い。
【０１３５】
ここで、Ｓ８０２で、OSからプリンタドライバに対して通知された設定値の変更要求が、仮想ＵＩパラメータに対しての変更要求でないとＣＰＵ１０２が判断した場合は、Ｓ８０３をスキップし、Ｓ８０４へ進む。
【０１３６】
そして、Ｓ８０４で、特定された変更元の設定値に対して、変更された設定値とのコンフリクトを検出するため、図４で示したようなコンフリクトルールをＣＰＵ１０２は参照する。
【０１３７】
次に、Ｓ８０５で、変更された設定値が他の設定値との間で何らかのコンフリクトが発生していることが検知されたかどうかをＣＰＵ１０２は判断する。ここで、ＣＰＵ１０２が変更された設定値が他の設定値との間で何らかのコンフリクトが発生していないと判断した場合は、本処理を終了する。
【０１３８】
一方、Ｓ８０５で、変更された設定値が他の設定値との間で何らかのコンフリクトが発生していると判断した場合はプリンタドライバにより、図４に示すコンフリクトルールに従うコンフリクト条件を参照して、コンフリクト解消処理を行う。具体的には、ＣＰＵ１０２がプリンタドライバにより、仮想ＵＩパラメータの設定状態がどのように変更されているかと、コンフリクトルールとを比較する。そして、ＣＰＵ１０２は、その比較結果から、プリントダイアログ上で設定可能な印刷設定項目のうち、ユーザに選択させるべきでないと判断した印刷設定項目を特定する。
【０１３９】
そして、ＣＰＵ１０２は、コンフリクト解消処理を終了したら、Ｓ８０７へ進む。そして、Ｓ８０７で、ＣＰＵ１０２はプリンタドライバにより、ＯＳ側で管理される印刷設定項目の設定値が変更されているので、図８の（Ｂ）に示すように、プリンタドライバＵＩを更新して、本処理を終了する。
【０１４０】
なお、上述の印刷設定項目は、印刷設定の一例である。
【０１４１】
印刷装置の一例であるプリンタ１０２と通信し、プリンタドライバの印刷設定を行うたホストコンピュータ１０１を説明した。プリンタドライバに対して設定される複数の印刷設定に対応付けられているパラメータの状態と、印刷設定に対してあらかじめ設定されている、ふたつの印刷設定を定義できるコンフリクト条件とに基づいて、複数の印刷設定の間のコンフリクト状態を、ＣＰＵ１０２はプリンタドライバを実行することで解消する。
【０１４２】
二つの印刷設定を定義できるコンフリクト条件の一例としては、ＵＩＣｏｓｔｒａｉｎｓがある。また、プリンタドライバに対して設定される複数の印刷設定に対応付けられているパラメータの一例としては、仮想UIパラメータが挙げられる。
【０１４３】
ここでは、図８の（Ａ）に示す用紙サイズがＡ４フチなしに変更されることにより、プリンタドライバは、以下の表示制御を行う。具体的には、プリンタドライバは、排他関係となるプリンタドライバ側で管理される印刷設定項目である、ハーフトーンのラジオボタン３０７Ａを、図８の（Ｂ）に示すように、ラジオボタン３０７Ｂが選択された状態に表示状態を更新する。
【０１４４】
以上説明してきたように、本実施形態では、ＯＳ側が管理するＰＰＤファイルにＵＩＣｏｓｔｒａｉｎｓを記述する際に、仮想ＵＩパラメータを記述してＯＳがプリンタドライバに通知する例について説明した。これにより、本来１対１で記述するＵＩＣｏｓｔｒａｉｎｓに、１対多の関係となる印刷設定項目を対応づけることができる。
【０１４５】
これにより、ＯＳ側で管理する印刷設定項目に対して、プリンタドライバ側で管理している印刷設定項目が排他関係または依存関係を有する場合にも、ＯＳ側のＰＰＤファイルの構造を変更することなく、本発明を適用可能となる。
【０１４６】
また、本実施形態によれば、従来のＰＰＤファイルに記述されるＵＩＣｏｎｓｔｒａｉｎｔｓでは記述できない仕様となる、例えば３つ以上の印刷設定項目の間で複雑な組合せを有する場合にも、仮想ＵＩパラメータを用いて記述することができる。これにより、ＵＩＣｏｎｓｔｒａｉｎｔｓに記述された仮想ＵＩパラメータを用いてコンフリクトをプリンタドライバに通知して解消することが可能となる。
【０１４７】
なお、上記実施形態では、ＯＳがプリンタドライバに仮想ＵＩパラメータの変化を通知する例を説明した。しかしながら、ＯＳ以外のモジュールから１つの印刷設定項目が設定されることに応じて、複数の印刷設定項目に対応するパラメータをプリンタドライバに通知するように構成しても、同様の効果が期待できる。
【０１４８】
〔第２実施形態〕
以下、図１１に示すメモリマップを参照して本発明に係るホストコンピュータ１０１で読み取り可能なデータ処理プログラムの構成について説明する。
【０１４９】
図１１は、本発明に係るホストコンピュータ１０１で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１５０】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１５１】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１５２】
本実施形態における図７、図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１５３】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１５４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５５】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１５６】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１５７】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１５９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１６０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６２】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１６３】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１６４】
【図１】本発明の実施形態を示す印刷システムの構成を説明するブロック図である。
【図２】図１に示した外部記憶装置に保存されるＰＰＤファイルの一例を示す図である。
【図３】図１に示した外部記憶装置にインストールされているプリンタドライバにより提供されるプリントダイアログの一例を示す図である。
【図４】図３に示したプリントダイアログ上の印刷設定項目において、選択可／不可な組合せルール（コンフリクトルール）の一部を示す図である。
【図５Ａ】本実施形態を示すホストコンピュータ１０１のＯＳが参照可能な仮想ＵＩパラメータとＵＩＣｏｎｓｔｒａｉｎｔｓの一例を示す図である。
【図５Ｂ】設定値の選択可／不可の組合せと仮想ＵＩパラメータとの対応テーブルの一例を示す図である。
【図６】本実施形態を示すホストコンピュータ１０１のＯＳが参照可能な仮想ＵＩパラメータとＵＩＣｏｎｓｔｒａｉｎｔｓの一例を示す図である。
【図７】本実施形態を示すホストコンピュータ１０１における第１のデータ処理手順の一例を示すフローチャートである。
【図８】図１に示した表示装置に表示されるプリントダイアログの一例を示す図である。
【図９】図１に示した表示装置に表示されるプリントダイアログの一例を示す図である。
【図１０】本実施形態を示すホストコンピュータ１０１における第２のデータ処理手順の一例を示すフローチャートである。
【図１１】本発明に係るホストコンピュータ１０１で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１６５】
１０１  ホストコンピュータ
１０２  ＣＰＵ
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  外部記憶装置
１０８  入力デバイス
１０９  表示装置
１１２  プリンタ
【図１】
0004974909.tif 000002
【図２】
0004974909.tif 000003
【図３】
0004974909.tif 000004
【図４】
0004974909.tif 000005
【図５Ａ】
0004974909.tif 000006
【図５Ｂ】
0004974909.tif 000007
【図６】
0004974909.tif 000008
【図７】
0004974909.tif 000009
【図８】
0004974909.tif 000010
【図９】
0004974909.tif 000011
【図１０】
0004974909.tif 000012
【図１１】
0004974909.tif 000013