(57)【特許請求の範囲】
【請求項１】
印刷設定項目の設定値を少なくとも有する設定データをクライアント装置から受信する受信手段と、
前記設定データに基づいて、前記クライアント装置で指定できる印刷設定項目の少なくとも１つを優先項目として特定する特定手段と、
前記設定データにおける印刷設定項目の設定値に不整合があるか否かを判定する判定手段と、
前記判定手段により設定値の不整合があると判定された印刷設定項目が、前記特定手段により特定された優先項目である場合、当該印刷設定項目の再設定を促す情報を前記クライアント装置に送信する送信手段と、
前記判定手段により設定値の不整合があると判定された印刷設定項目が、前記特定手段により特定された優先項目でない場合、当該印刷設定項目の設定値を、当該不整合が解消するように変更する変更手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記特定手段は、前記設定データから印刷設定項目の設定値を取得できると判断すると、当該印刷設定項目を、優先項目として特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定データは、印刷設定項目の設定値の情報と、プリンタドライバで設定することが可能な印刷設定項目のそれぞれについて前記クライアント装置で設定値を変更することができるか否かを識別する情報と、を含み、
前記特定手段は、前記設定データから印刷設定項目の設定値を取得でき、且つ、当該印刷設定項目の設定値を前記クライアント装置で変更することができると判断すると、当該印刷設定項目を、優先項目として特定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記特定手段は、前記設定データから印刷設定項目の設定値を取得でき、且つ、当該印刷設定項目の設定値を前記クライアント装置で変更することができると判断すると、当該印刷設定項目を、優先項目として特定するとともに、前記設定データから印刷設定項目の設定値を取得できるが、当該印刷設定項目の設定値を前記プリンタドライバで変更することができないと判断すると、当該印刷設定項目を、準優先項目として特定し、
前記変更手段は、前記特定手段により準優先項目として特定された印刷設定項目に不整合があると、当該印刷設定項目の設定値を変更することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記設定データは、クライアント装置で指定できる印刷設定項目を特定するための情報を含み、
前記特定手段は、前記クライアント装置で指定できる印刷設定項目を特定するための情報に基づいて、前記クライアント装置で指定できる印刷設定項目を優先項目として特定することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記特定手段は、前記受信手段により受信された前記設定データから、プリンタドライバで設定することが可能な全ての印刷設定項目の設定値を取得できないと判断すると、設定値を取得できる印刷設定項目のうち、予め設定された優先順位が最上位の印刷設定項目を優先項目として特定するとともに、設定値を取得できる印刷設定項目のうち、優先項目としなかった残りの印刷設定項目を準優先項目として特定し、
前記変更手段は、前記特定手段により準優先項目として特定された印刷設定項目に不整合があると、当該印刷設定項目の設定値を変更することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
印刷設定項目の設定値を少なくとも有する設定データをクライアント装置から受信する受信工程と、
前記設定データに基づいて、前記クライアント装置で指定できる印刷設定項目の少なくとも１つを優先項目として特定する特定工程と、
前記設定データにおける印刷設定項目の設定値に不整合があるか否かを判定する判定工程と、
前記判定工程により設定値の不整合があると判定された印刷設定項目が、前記特定工程により特定された優先項目である場合、当該印刷設定項目の再設定を促す情報を前記クライアント装置に送信する送信工程と、
前記判定工程により設定値の不整合があると判定された印刷設定項目が、前記特定工程により特定された優先項目でない場合、当該印刷設定項目の設定値を、当該不整合が解消するように変更する変更工程と、を有することを特徴とする印刷設定方法。
【請求項８】
前記特定工程は、前記設定データから印刷設定項目の設定値を取得できると判断すると、当該印刷設定項目を、優先項目として特定することを特徴とする請求項７に記載の印刷設定方法。
【請求項９】
前記設定データは、印刷設定項目の設定値の情報と、プリンタドライバで設定することが可能な印刷設定項目のそれぞれについて前記クライアント装置で設定値を変更することができるか否かを識別する情報と、を含み、
前記特定工程は、前記設定データから印刷設定項目の設定値を取得でき、且つ、当該印刷設定項目の設定値を前記クライアント装置で変更することができると判断すると、当該印刷設定項目を、優先項目として特定することを特徴とする請求項８に記載の印刷設定方法。
【請求項１０】
前記特定工程は、前記設定データから印刷設定項目の設定値を取得でき、且つ、当該印刷設定項目の設定値を前記クライアント装置で変更することができると判断すると、当該印刷設定項目を、優先項目として特定するとともに、前記設定データから印刷設定項目の設定値を取得できるが、当該印刷設定項目の設定値を前記プリンタドライバで変更することができないと判断すると、当該印刷設定項目を、準優先項目として特定し、
前記変更工程は、前記特定工程により準優先項目として特定された印刷設定項目に不整合があると、当該印刷設定項目の設定値を変更することを特徴とする請求項９に記載の印刷設定方法。
【請求項１１】
前記設定データは、クライアント装置で指定できる印刷設定項目を特定するための情報を含み、
前記特定工程は、前記クライアント装置で指定できる印刷設定項目を特定するための情報に基づいて、前記クライアント装置で指定できる印刷設定項目を優先項目として特定することを特徴とする請求項７に記載の印刷設定方法。
【請求項１２】
前記特定工程は、前記受信工程により受信された前記設定データから、プリンタドライバで設定することが可能な全ての印刷設定項目の設定値を取得できないと判断すると、設定値を取得できる印刷設定項目のうち、予め設定された優先順位が最上位の印刷設定項目を優先項目として特定するとともに、設定値を取得できる印刷設定項目のうち、優先項目としなかった残りの印刷設定項目を準優先項目として特定し、
前記変更工程は、前記特定工程により準優先項目として特定された印刷設定項目に不整合があると、当該印刷設定項目の設定値を変更することを特徴とする請求項７に記載の印刷設定方法。
【請求項１３】
請求項７〜１２の何れか１項に記載の印刷設定方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、印刷設定方法、及びコンピュータプログラムに関し、特に、複数の印刷設定項目の間の設定値の不整合を解消するために用いて好適なものである。
【背景技術】
【０００２】
一般に、ホストコンピュータとプリンタとを有する印刷システムにおいて、ホストコンピュータに組み込まれたプリンタドライバの多くでは、用紙サイズ、用紙の種類、フチなし設定、両面印刷等の様々な印刷設定を指定することが可能となっている。しかし、これらの印刷設定の全ての組み合わせを設定することが可能であるわけではない。例えば、用紙の種類の設定値が「写真用紙」のように用紙の表面にしか印刷できないような設定に対して、両面印刷を行わせるような設定を組み合わせることは不可能である。このように、複数の印刷設定の設定値の組み合わせであって、共存できない組み合わせが作られることによる設定値間の不整合を回避するために、プリンタドライバには、印刷設定項目間の依存関係が存在する。以下の説明では、設定値間の不整合が生じることを、必要に応じて「コンフリクト」と称する。ここで、印刷設定項目間の依存関係とは、ある印刷設定項目の設定値によって、他の印刷設定項目の設定可能な設定値が制限されることを表す。すなわち、用紙の種類の設定値が「写真用紙」であることによって、両面印刷の設定値として設定することが可能なものは「オフ」のみに制限されてしまう場合、両面印刷よりも用紙の種類の方が、優先順位の高い印刷設定項目であることを意味する。
【０００３】
プリンタドライバは、ユーザからの印刷設定を受け付けるためのユーザインターフェース（以下の説明では、このユーザインターフェースを必要に応じて「印刷設定ＵＩ」と称する）を備える。この印刷設定ＵＩを介して設定された印刷設定に対してプリンタドライバの持つ固有の優先順位に従って設定値間にコンフリクトがないかどうかを判別する。この判別の結果、設定値間にコンフリクトがあった場合には、優先順位の低い項目の設定値を強制的に変更したり、印刷を中断してコンフリクトが発生していることをユーザに通知して印刷設定の変更を促したりすることでコンフリクトを回避する。
【０００４】
また、プリンタドライバが固有に持つ印刷設定の優先順位によらない印刷を実現するために、優先して設定を行う印刷設定をユーザが指定する方法がある（特許文献１を参照）。これによると、プリンタドライバは、印刷設定の競合を禁止する禁則ルールの元で、印刷設定の固定化を指示する手段を備え、固定化が指示された印刷設定は、禁則ルールの優先度を従前の優先度よりも上げて設定することを可能にしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−４０００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、コンフリクトが発生していることをユーザに通知する手段、印刷設定を変更する手段、あるいはユーザが望む優先度を指定する手段を、プリンタドライバがユーザに常に提供できるとは限らない。
近年、パーソナルコンピュータ以外の携帯端末等の小型の通信端末が急激に普及し、そのような通信端末からの印刷を実現したいという要望は急速に高まっている。通常、パーソナルコンピュータからの印刷を行う場合には、プリンタに対応するプリンタドライバがパーソナルコンピュータにインストールされている必要である。そのため、プリンタベンダーは、パーソナルコンピュータに搭載されている各ＯＳ（例えば「Ｗｉｎｄｏｗｓ（登録商標）」、「Ｍａｃ ＯＳ（登録商標）」、「Ｌｉｎｕｘ（登録商標）」）に対応したプリンタドライバを提供する。
【０００７】
しかしながら、一般的に、携帯端末等の小型の通信端末に搭載されるＯＳは、プリンタドライバをインストールする仕組みを備えていない。なぜなら、パーソナルコンピュータとは異なり、携帯端末に搭載可能なメモリ容量は限られている。そのため、仮に携帯端末に搭載されるＯＳがプリンタドライバをインストールする仕組みを備えていたとしても、各プリンタベンダーが提供するプリンタドライバを携帯端末にインストールすることは困難である。従って、携帯端末からの印刷を行う場合には、プリンタドライバに依存することなく印刷を実現する方法が求められている。
【０００８】
一般的に、携帯端末のようなプリンタドライバがインストールされていない装置からの印刷を実現する処理の流れは大きく分けて二種類存在する。
まず一つ目は、携帯端末側で生成した印刷データをプリンタに対して直接送信することで印刷処理を行うものである。この形態において、データのやりとりを携帯端末とプリンタとの間で直接行うためには、プリンタドライバに依存しない仕組みの代わりにプリンタ側に特別な仕組みを備える必要があり、このような仕組みを容易に実現することが困難である。
【０００９】
一方、二つ目は、プリンタに接続されたホストコンピュータがプリントサーバの役割を果たすものである。具体的には、ネットワークを介して携帯端末からの印刷要求により印刷データをホストコンピュータが受け付ける。ホストコンピュータに組み込まれたプリンタドライバが、その印刷データからプリンタに適した印刷ジョブを生成してプリンタに送信することで印刷処理を行う。この形態においては、ネットワーク上のプリンタを複数のホストコンピュータが共有するネットワーク印刷システムと同様の仕組みを利用することができる。このため、前述した一つ目の形態と異なり、既存のプリンタを利用して容易に実現することが可能である。一般的なネットワーク印刷システムにおいては、クライアントであるホストコンピュータ側にも、使用するプリンタに対応するプリンタドライバをインストールしておく必要がある。
【００１０】
クライアントが携帯端末であり、使用するプリンタに対応するプリンタドライバが携帯端末にインストールされていない場合、携帯端末では、次のような印刷方法が多く利用されている。すなわち、携帯端末では、プリンタベンダーによって提供される汎用アプリケーションを使って、プリンタドライバに依存することなく印刷を行う方法が多く利用されている。このような、携帯端末で動作する汎用アプリケーションは、プリンタの機種ごとに作成されたプリンタドライバとは異なる。すなわち、携帯端末で動作する汎用アプリケーションは、プリンタの全機能を完全に把握することはなく、汎用的な印刷設定ＵＩを備えるのみであり、プリンタに固有の機能を設定することはできない。そのため、クライアント側で生成される印刷データは、印刷設定の情報が不足していたり、印刷設定の設定値間でコンフリクトが発生したままの不完全なものであったりする可能性が高い。そこで、それを解決するためにプリントサーバに組み込まれたプリンタドライバは、クライアントで生成された印刷データを受信すると、不足している印刷設定情報を補完する処理や、各印刷設定の設定値間のコンフリクトを解決する処理を行う。
【００１１】
しかしながら、プリントサーバ側のプリンタドライバが、コンフリクトが発生していることをユーザに通知して印刷設定の変更を促す形態では、変更を促された設定項目を変更する手段をクライアント側の汎用アプリケーションが備えていない場合がある。その場合には、ユーザは印刷設定を変更することができず、印刷設定の設定値間でのコンフリクトが解決できないという問題がある。また、クライアント側の汎用アプリケーションには、プリントサーバからのエラー情報の通知自体が行えないものも存在する。この場合、プリントサーバ側がコンフリクト情報をエラーとしてクライアント側に通知したとしても、クライアント側ではエラーにより印刷が中断していることに気づくことができず、印刷が完了しない理由をユーザは知ることができないという問題がある。
【００１２】
また、ホストコンピュータとプリンタとが一対一で接続されているローカル印刷システムにおいて、印刷要求を行うプログラムもしくはアプリケーションの中には、プリンタドライバの印刷設定ＵＩを介さずに、直接印刷処理を実行する場合がある。この場合においても、プリンタドライバが、印刷設定の設定値間のコンフリクトの発生を示す情報や、印刷設定の変更を促す情報を通知する形態では、ユーザは印刷設定を変更する方法が分からない場合があるという問題がある。
本発明は、このような問題点に鑑みてなされたものであり、クライアントの環境に応じた印刷設定の補間処理と、印刷設定の設定値間のコンフリクトの抑制処理とを行えるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の情報処理装置は、印刷設定項目の設定値を少なくとも有する設定データをクライアント装置から受信する受信手段と、前記設定データに基づいて、前記クライアント装置で指定できる印刷設定項目の少なくとも１つを優先項目として特定する特定手段と、前記設定データにおける印刷設定項目の設定値に不整合があるか否かを判定する判定手段と、前記判定手段により設定値の不整合があると判定された印刷設定項目が、前記特定手段により特定された優先項目である場合、当該印刷設定項目の再設定を促す情報を前記クライアント装置に送信する送信手段と、前記判定手段により設定値の不整合があると判定された印刷設定項目が、前記特定手段により特定された優先項目でない場合、当該印刷設定項目の設定値を、当該不整合が解消するように変更する変更手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、クライアントの環境に応じた印刷設定の補間処理と、印刷設定の設定値間のコンフリクトの抑制処理とを行うことができる。
【図面の簡単な説明】
【００１５】
【図１】印刷システムの構成を示す図である。
【図２】ホストコンピュータとクライアント装置の構成を示す図である。
【図３】印刷設定情報制御部が行う処理の流れを表すフローチャートである。
【図４】ジョブチケットのデータ構成の第１、第２の例を示す図である。
【図５】印刷処理の中で印刷設定情報制御部が行う処理の流れの第１の例を表すフローチャートである。
【図６】印刷設定項目間の依存関係を表すデータテーブルを示す図である。
【図７】第１のコンフリクト解決切替処理の流れを表すフローチャートである。
【図８】第２のコンフリクト解決切替処理の流れを表すフローチャートである。
【図９】第１の印刷設定ＵＩ情報判別処理の流れを表すフローチャートである。
【図１０】第２の印刷設定ＵＩ情報判別処理の流れを表すフローチャートである。
【図１１】ジョブチケットのデータ構成の第３の例を示す図である。
【図１２】第３の印刷設定ＵＩ情報判別処理の流れを表すフローチャートである。
【図１３】ジョブチケットのデータ構成の第４の例を示す図である。
【図１４】第４の印刷設定ＵＩ情報判別処理の流れを表すフローチャートである。
【図１５】ＵＩレベル定義テーブルを示す図である。
【図１６】印刷処理の中で印刷設定情報制御部が行う処理の流れの第２の例を表すフローチャートである。
【図１７】ジョブチケット内の印刷設定項目の分類方法を説明する図である。
【図１８】第１の優先設定項目決定処理の流れを表すフローチャートである。
【図１９】第２の優先設定項目決定処理の流れを表すフローチャートである。
【図２０】第３の優先設定項目決定処理の流れを表すフローチャートである。
【図２１】第４の優先設定項目決定処理の流れを表すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施形態は、特許請求の範囲に係る本発明を限定するものでなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
＜第１の実施形態＞
図１は、印刷システムの構成の一例を示す図である。図１において、ホストコンピュータ１とプリンタ２は、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Universal Serial Bus）等の通信バス１１１を介して相互に通信可能となっている。本実施形態では、ホストコンピュータ１には、ＯＳ（Operating System）として「Ｍａｃ ＯＳ（登録商標）Ｘ」と同等のＯＳがインストールされているものとする。図１では、プリンタ２を１つのみ図示したが、通信バス１１１を介して任意の数のプリンタがホストコンピュータ１に通信可能に接続することが可能である。
【００１７】
ホストコンピュータ１において、ＣＰＵ１０１は、ＲＡＭ１０３及び外部記憶装置１０４に格納されたコンピュータプログラムに従って各部を制御する。ＣＰＵ１０１は、プリンタ２に対応したプリンタドライバを実行し、アプリケーションプログラムに基づいて作成された出力情報をプリンタ２に対応する出力コマンドに変換し、当該出力コマンドを、所定のプロトコルでプリンタ２に出力する。ＲＯＭ１０２は、ＣＰＵ１０１が実行するＢＩＯＳ（Basic Input Output System）プログラムやフォントデータ等を格納する。
【００１８】
ＲＡＭ１０３は、ＣＰＵ１０１がデータの書き込みや読み出しを行うために必要に応じて使用される。プリンタドライバの起動時には、プリンタドライバのプログラムコードがこのＲＡＭ１０３にロードされる。外部記憶装置１０４には、ＣＰＵ１０１が読み出すプログラムコードが格納されている。外部記憶装置１０４は、本実施形態の機能の一部を実現するデバイスであり、例えば、ＦＤ、ＣＤ−ＲＷ、ＨＤＤ等である。入力デバイス制御部１０５は、キーボードやマウス等の入力デバイス１０７を制御する。表示装置制御部１０６は、ＣＲＴ等の表示装置１０８を制御する。内部バス１０９は、各構成要素間のデータ通信を行うものであり、データバスやシステムバスで構成される。通信Ｉ／Ｆ１１０は、通信バス１１１を介したプリンタ２との通信を司り、双方向の通信が可能である。
【００１９】
尚、シリアルインターフェースとしてはＵＳＢやＩＥＥＥ１３９４等が、パラレルインターフェースとしてはセントロニクスやＳＣＳＩ等が、ネットワークとしてはＥｔｈｅｒｎｅｔ（登録商標）や無線ＬＡＮ（ＩＥＥＥ802.11）等がそれぞれ想定される。このように、通信Ｉ／Ｆ１１０としては複数の種類が想定される。しかしながら、通信Ｉ／Ｆ１１０は、双方向の通信を実現するものであればどのようなインターフェースでも構わない。
【００２０】
プリンタ２において、プリンタコントローラ１１３は、通信Ｉ／Ｆ１１２より得られたプリンタコマンドをもとにプリンタエンジン１１４を制御し印刷を行う。プリンタエンジン１１４は、プリンタヘッドの操作や記録媒体の搬送を行う機構である。
【００２１】
図２は、プリントサーバとして利用されるホストコンピュータ１とクライアント装置３のソフトウェア構成の一例を示す図である。
ホストコンピュータ１は、印刷システム２０１と、プリンタドライバ２０２と、Ｉ／Ｆ制御部２０６とを備える情報処理装置である。ホストコンピュータ１は、クライアント装置３から受け取った印刷データを、印刷システム２０１及びプリンタドライバ２０２を通じてプリンタ２が処理可能（印刷可能）な印刷ジョブに変換して出力する。
【００２２】
印刷システム２０１は、ＯＳの印刷制御プログラムであり、プリンタ２に印刷を実行させるための印刷処理全般を管理する。この印刷システム２０１は、アプリケーションから送られた印刷データを管理するスプール処理や、プリンタドライバ２０２のロード／実行等、様々な印刷制御を行うプログラムで構成される。
【００２３】
プリンタドライバ２０２は、ユーザインターフェース部２０３と、印刷設定情報制御部２０４と、プリントデータ生成部２０５とを備えている。ユーザインターフェース部２０３は、プリンタ２において設定することが可能な全ての印刷設定項目を設定するための印刷設定ＵＩを備え、ユーザからの印刷設定指示を受け付けることでそれらの設定値に基づいた制御を行う。印刷要求を行うアプリケーションは、印刷システム２０１を介してユーザインターフェース部２０３が提供する前記印刷設定ＵＩを表示装置１０８に表示させることでプリンタ２に依存した印刷設定情報の設定を受け付ける。アプリケーションは、ユーザインターフェース部２０３から返却された印刷設定情報に基づいて印刷データを生成する。但し、ここで述べたアプリケーションとは、ホストコンピュータ１に備わる不図示のアプリケーションを表す。すなわち、ここで述べたアプリケーションは、ホストコンピュータ１が接続されたプリンタ２に直接印刷を行うローカル印刷システムとして動作する場合に利用される。
【００２４】
一方、プリンタドライバ２０２に渡された印刷データは、まず印刷設定情報制御部２０４によって処理される。ここで、図３に、印刷設定情報制御部２０４が行う処理の流れの一例を表すフローチャートを示す。
まず、プリンタドライバ２０２が、クライアント装置３から印刷データを受け取ると、ステップＳ３０１において、印刷設定情報制御部２０４は、印刷データに付加されたジョブチケット情報の解析を行う。
【００２５】
次に、ステップＳ３０２において、印刷設定情報制御部２０４は、印刷要求クライアント特定処理を行う。すなわち、印刷設定情報制御部２０４は、ステップＳ３０１で解析したジョブチケット情報に基づいて、印刷要求がどのようなクライアント装置３から行われたのかを判断し、クライアントの種類を特定する。
【００２６】
最後に、ステップＳ３０３において、印刷設定情報制御部２０４は、印刷設定情報補間処理とコンフリクト解決処理とを行う。すなわち、印刷設定情報制御部２０４は、ステップＳ３０２で特定したクライアントの種類に応じて、プリンタ２への印刷を実行するために不足している印刷設定情報がある場合には、適切な設定値で印刷設定情報を補完する処理を行う。また、印刷設定情報制御部２０４は、各印刷設定項目の設定値間にコンフリクトが発生している場合には、そのコンフリクトを解消する処理等を行う。こうして、プリンタドライバ２０２が持つ全ての印刷設定項目に対して、プリンタ２が動作可能な印刷設定の組み合わせになるように印刷設定情報の制御が行われる。
【００２７】
プリントデータ生成部２０５は、印刷設定情報と印刷データに基づいて、プリンタ２が解釈可能なデータ形式の印刷ジョブを生成する。この印刷ジョブは、Ｉ／Ｆ制御部２０６を経てプリンタ２へ出力される。これにより、プリンタ２に印刷の実行が指示される。
【００２８】
クライアント装置３は、アプリケーション２０７とユーザインターフェース部２０８とを備え、通信バス１１１（ネットワーク）を介してホストコンピュータ１に接続されたプリンタ２を共有するために、ホストコンピュータ１に対して印刷要求を行う。
アプリケーション２０７は、印刷を行う印刷データの作成／編集や、作成された印刷データをネットワーク経由でホストコンピュータ１が備えるＯＳの印刷システム２０１へ渡す。ユーザインターフェース部２０８は、印刷設定情報を設定するための印刷設定ＵＩを有し、印刷設定ＵＩを介してユーザからの印刷設定情報の入力を受け付けることでそれらの設定値に基づいた印刷設定情報を生成する。クライアント装置３が、ホストコンピュータ１と同等のソフトウェア構成を持つ装置である場合、クライアント装置３にもプリンタ２に対応するプリンタドライバ２０２（不図示）がインストールされている。その場合には、クライアント装置３が備えるユーザインターフェース部２０８は、プリンタドライバ２０２が提供するユーザインターフェース部２０３と同等であり、プリンタ２に依存した印刷設定情報を設定できる。
【００２９】
一方、クライアント装置３が、携帯端末のように、プリンタドライバ２０２がインストールされていない装置である場合、クライアント装置３が備えるユーザインターフェース部２０８は、アプリケーション２０７が提供する汎用的な印刷設定ＵＩを表示する。この場合、ユーザインターフェース部２０８は、印刷設定ＵＩに対するユーザの入力操作に基づいて、プリンタ２に依存しない汎用的な印刷設定情報のみが設定される。こうして、アプリケーション２０７は、ユーザインターフェース部２０８から返却された印刷設定情報に基づく印刷データを生成する。例えば、Ｍａｃ ＯＳ（登録商標）Ｘシステムでは、この印刷データに付加される印刷設定情報を制御するための印刷オブジェクトが用意されている。この印刷オブジェクトは、ジョブチケットとも言われ、ジョブチケットには、プリンタ２から印刷を実行するために必要なプリンタ情報、及び様々な設定データが格納されている。
【００３０】
図４は、アプリケーション２０７が生成するジョブチケットのデータ構成の一例を示す図である。
図４（ａ）に示すジョブチケット４００ａには、プリンタ２で印刷を行うために必要な全ての情報が格納されている。より具体的には、ジョブチケット４００ａは、現在選択されているプリンタ名称等のプリンタ２に関する基本情報４０２と、用紙サイズや両面印刷等の印刷設定情報の一般的な基本情報４０３に加え、プリンタ２に固有の印刷設定等の拡張情報４０４を有する。クライアント装置３がプリンタドライバ２０２を備えている場合、ユーザは、プリンタドライバ２０２が提供する印刷設定ＵＩを介して印刷設定情報を設定することで、プリンタ２において設定可能な機能を設定することができる。このとき、プリンタドライバ２０２が持つユーザインターフェース部２０３によって、プリンタ２が持つ全ての機能に対する印刷設定項目が印刷設定情報としてジョブチケット４００に書き込まれる。
【００３１】
一方、クライアント装置３がプリンタドライバ２０２を備えていない場合、ジョブチケット４００に書き込むことができる印刷設定情報の内容は、クライアント装置３に備わるＯＳやアプリケーションによって様々である。例えば、プリンタ２の持つ機能情報を一切把握することができないタイプのクライアント装置３では、アプリケーション２０７は、図４（ｂ）に示すようなジョブチケット４００ｂを作成する。このジョブチケット４００ｂには、汎用的な印刷設定ＵＩを用いて設定可能な印刷設定項目に対する設定値しか印刷設定情報として書き込まれない。つまり、プリンタ２に固有の印刷設定情報等の拡張情報４０４は一切書き込まれていない状態でジョブチケット４００ｂが作成される。
【００３２】
また、アプリケーション２０７は汎用的な印刷設定ＵＩしか備えていないにも関わらず、プリンタ２が持つ機能情報を把握することができるようなタイプのクライアント装置３も存在する。アプリケーション２０７は、ホストコンピュータ１が備えるＯＳの印刷システム２０１を介してプリンタドライバ２０２からネットワーク経由でプリンタ２の持つ機能情報を取得する。アプリケーション２０７は、汎用的な印刷設定ＵＩを用いて設定された印刷設定項目に対する設定値を印刷設定情報としてジョブチケット４００に書き込む。これに加えて、アプリケーション２０７は、プリンタドライバ２０２から取得した機能情報に基づいて、プリンタ２の持つ設定項目に対して何らかの設定値を印刷設定情報としてジョブチケット４００に書き込む。こうして作成されたジョブチケット４００には、図４（ａ）に示すようなプリンタ２が持つ機能に対する印刷設定項目の設定値が一通り書き込まれている状態と同等のように見える。しかしながら、実際には、プリンタドライバ２０２の持つ印刷設定項目間の依存関係が考慮されていない。
【００３３】
このように、プリンタドライバ２０２を備えていないクライアント装置３により生成されるジョブチケット情報には、プリンタ２での印刷にとって必要な情報の不足や、印刷設定項目の設定値間のコンフリクトの発生等が生じ得る。すなわち、ジョブチケット情報は、クライアント装置３の種類によって異なる。
図５は、ホストコンピュータ１のプリンタドライバ２０２で実行される処理のうち、印刷設定情報制御部２０４が行う処理の流れの一例を表すフローチャートである。より詳しくは、印刷設定情報制御部２０４が、印刷データに付加されたジョブチケット情報の内容を解析して、プリンタ２での印刷に必要な全ての印刷設定項目に対して適切な設定値を設定する処理の流れを表すものである。なお、本願のフローチャートの各ステップは、ＣＰＵ１０１が関係するプログラムをメモリから読み出して実行することで実現される。
【００３４】
まず、ステップＳ５０１において、印刷設定情報制御部２０４は、アプリケーション２０７から、印刷データに付加された印刷設定情報をジョブチケット００１として受信する。
次に、ステップＳ５０２において、印刷設定情報制御部２０４は、空の印刷オブジェクトであるジョブチケット００２を新規に生成する。
次に、ステップＳ５０３において、印刷設定情報制御部２０４は、ジョブチケット００２に対してプリンタドライバ２０２の持つ全ての印刷設定項目にデフォルト値を設定する。
次に、ステップＳ５０４において、印刷設定情報制御部２０４は、ステップＳ５０１でアプリケーション２０７から受信したジョブチケット００１に書き込まれた情報を、ステップＳ５０３でデフォルト値が設定されたジョブチケット００２に上書きする。これにより、ジョブチケット００２には、プリンタドライバ２０２の持つ全ての印刷設定項目のうち、アプリケーション２０７が書き込んだ印刷設定項目に対しては、ジョブチケット００１に書き込んだ設定値が設定される。一方、アプリケーション２０７が書き込まなかった設定項目に対しては、デフォルト値がジョブチケット００２に設定される。
【００３５】
次に、ステップＳ５０５において、印刷設定情報制御部２０４は、印刷設定ＵＩ情報判別処理を行う。詳細は後述するが、印刷設定情報制御部２０４は、どのような印刷設定ＵＩを備えるクライアント装置３からの印刷要求であるのかを、ジョブチケット００１の情報に基づいて判別する。本実施形態では、この印刷設定ＵＩ情報判別処理により、クライアント装置３により指定される印刷設定項目が特定される。
次に、ステップＳ５０６において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目に設定値が設定されている状態のジョブチケット００２の各印刷設定項目を確認する。
次に、ステップＳ５０７において、印刷設定情報制御部２０４は、プリンタドライバ２０２が固有に持つ優先順位に基づいて、印刷設定項目間で設定値のコンフリクト（不整合）が発生していないかどうかを判断する。
【００３６】
ここで、プリンタドライバ２０２が固有に持つ優先順位の一例について詳しく説明する。プリンタドライバ２０２が固有に持つ優先順位は、プリンタドライバ２０２の各印刷設定項目間に存在する依存関係に基づいて決定される。
図６は、プリンタドライバ２０２の各印刷設定項目間の依存関係を表すデータテーブルの一例を示す図である。
図６に示すデータテーブル６００では、図に向かって相対的に左側に示されている印刷設定項目の優先順位が強い。すなわち、相対的に右側に示されている印刷設定項目は、当該印刷設定項目よりも左側に示されている印刷設定項目の設定値によって制限を受ける。具体的に説明すると、用紙の種類の設定値によって、選択可能なフチ無し印刷の設定値が決定される。また、用紙の種類の設定値とフチなし印刷の設定値とによって、選択可能な用紙サイズが決定される。また、用紙の種類の設定値と、フチなし印刷の設定値と、用紙サイズの設定値とによって、選択可能な給紙口の設定値が決定される。また、用紙の種類の設定値と、フチなし印刷の設定値と、用紙サイズの設定値と、給紙口の設定値とによって、選択可能な両面印刷の設定値が決定される。
【００３７】
例えば、用紙の種類の設定値として普通紙が、フチなし印刷の設定値としてＯＦＦが、用紙サイズの設定値としてＡ４サイズが、給紙口の設定値として給紙トレイＡが設定されている状態では、両面印刷の設定値としてＯＮとＯＦＦとを選択することが可能である。これに対し、用紙の種類の設定値として光沢紙が、フチなし印刷の設定値としてＯＦＦが、用紙サイズの設定値としてＡ４サイズが、給紙口の設定値として給紙トレイＡが設定されている状態では、両面印刷の設定値としてＯＦＦのみを選択することが可能となる。このように、印刷設定情報制御部２０４は、印刷設定項目間の依存関係に基づいて印刷設定項目の優先順位を決定している。これにより、プリンタドライバ２０２が持つ印刷設定項目について、ユーザに不都合であると予想される印刷設定情報や、プリンタ２に不可能な動作を行わせるような印刷設定情報の生成を防ぐことができる。
【００３８】
図５の説明に戻る。前述したように、ステップＳ５０７において、印刷設定情報制御部２０４は、印刷設定項目間で設定値のコンフリクトが発生していないかどうかを判断する。この判断の結果、何れかの印刷設定項目間で設定値のコンフリクトが発生している場合には（ステップＳ５０７でＮｏと判断された場合には）、ステップＳ５０８に進み、コンフリクト解決切替処理が行われる。一方、何れの印刷設定項目間においても設定値のコンフリクトが発生していない場合には（ステップＳ５０７でＹｅｓと判断された場合には）、そのまま、図５のフローチャートによる処理を終了する。
【００３９】
図７、図８は、図５のステップＳ５０８におけるコンフリクト解決切替処理の流れの第１の例、第２の例を表すフローチャートである。ここでは、印刷設定項目間で設定値のコンフリクトが発生した場合、プリンタドライバ２０２がどのようにコンフリクトを解決するかを切り替える処理を行う。図７に示す第１のコンフリクト解決切替処理では、コンフリクトに関連する印刷設定項目のうち、優先順位の低い印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備える場合にのみ、ユーザに再設定を促す通知を行うというものである。一方、図８に示す第２のコンフリクト解決処理では、コンフリクトに関連する印刷設定項目の何れか一つでも設定可能な印刷設定ＵＩをクライアント装置３が備えていれば、その印刷設定項目の再設定をユーザに促す通知を行うというものである。
【００４０】
図７に示す第１のコンフリクト解決切替処理の流れの一例について説明する。
まず、ステップＳ７０１において、印刷設定情報制御部２０４は、コンフリクトが発生していると判断した印刷設定項目を取得する。
次に、ステップＳ７０２において、印刷設定情報制御部２０４は、コンフリクトが発生している印刷設定項目について、プリンタドライバ２０２が固有に持つ優先順位に基づいて、再設定すべき印刷設定項目を決定する。
【００４１】
次に、ステップＳ７０３において、印刷設定情報制御部２０４は、再設定すべき印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えているか否かを判断する。クライアント装置３がどのような印刷設定ＵＩを備えているか否かの情報は、ステップＳ５０５に示した印刷設定ＵＩ情報判別処理によって判別された情報に基づくものである。
この判断の結果、再設定すべき印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えている場合（ステップＳ５０３でＹｅｓと判断された場合）には、ステップＳ７０４に進む。ステップＳ７０４に進むと、印刷設定情報制御部２０４は、再設定すべき印刷設定項目について印刷設定の再設定をユーザに促す通知を行う。一方、再設定すべき印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていないと判断した場合（ステップＳ５０３でＮｏと判断された場合）には、ステップＳ７０５に進む。ステップＳ７０５に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２側で再設定すべき印刷設定項目に適切な設定値を再設定（変更）することでコンフリクトの解決を行う。
【００４２】
次に、図８に示す第２のコンフリクト解決切替処理の流れの一例について説明する。尚、図８の説明において、図７と共通する処理についてはその説明は省略し、異なる点についてのみ説明する。
図８の処理と図７の処理との違いは、再設定すべき印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていないと判断した場合の処理である。
図７の処理では、再設定すべき印刷設定項目を設定可能な印刷設定ＵＩをクライアント装置３が備えていないと判断した場合、再設定すべき印刷設定項目に適切な設定値をプリンタドライバ２０２側で再設定することでコンフリクトの解決を行う。一方、図８の処理では、ステップＳ８０１において、印刷設定情報制御部２０４は、次の処理を行う。すなわち、ステップＳ７０２で再設定すべき印刷設定項目に決定されなかった印刷設定項目であっても、コンフリクトに関連する印刷設定項目の何れか１つでも設定することが可能な印刷設定ＵＩをクライアント装置３が備えているか否かを判断する。
【００４３】
この判断の結果、コンフリクトに関連する印刷設定項目の何れか１つでも設定することが可能な印刷設定ＵＩをクライアント装置３が備えている場合（ステップＳ８０１でＹｅｓと判断された場合）には、ステップＳ８０２に進む。ステップＳ８０２に進むと、印刷設定情報制御部２０４は、クライアント装置３が備えている印刷設定項目（コンフリクトに関連する印刷設定項目のうち設定することが可能な印刷設定項目）について印刷設定の再設定（変更）をユーザに促す通知を行う。
一方、コンフリクトに関連する印刷設定項目の何れか１つでも設定することが可能な印刷設定ＵＩをクライアント装置３が備えていない場合（ステップＳ８０１でＮｏと判断された場合）には、ステップＳ８０３に進む。ステップＳ８０３に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２が固有に持つ優先順位に基づいて、プリンタドライバ２０２側で再設定すべき印刷設定項目に適切な設定値を再設定させることでコンフリクトの解決を行う。
【００４４】
図９は、図５のステップＳ５０５に示した印刷設定ＵＩ情報判別処理（第１の印刷設定ＵＩ情報判別処理）の流れの一例を表すフローチャートである。より詳しくは、図９は、アプリケーション２０７がプリンタ２に依存しない汎用的な印刷設定ＵＩを用いて設定することが可能な印刷設定項目に対する設定値しかジョブチケットに書き込まないクライアント装置３に係る印刷設定情報を制御する処理の流れを表す。
まず、ステップＳ９０１において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケット００１から取得することを試みたか否かを判断する。この判断の結果、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケット００１から取得することを試みていない場合には、ステップＳ９０２に進む。ステップＳ９０２に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目について、ジョブチケット００１から、優先順位の高い印刷設定項目から順に１つずつ設定値の取得を試みる。
【００４５】
そして、ステップＳ９０３において、印刷設定情報制御部２０４は、ジョブチケット００１から設定値が取得できたか否かを判断する。この判断の結果、ジョブチケット００１から設定値が取得できた場合（ステップＳ９０３でＹｅｓと判断された場合）には、ステップＳ９０４に進む。ステップＳ９０４に進むと、印刷設定情報制御部２０４は、ユーザがその取得された設定値に関する印刷設定項目に対して設定値を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていると判断し、その印刷設定項目を印刷設定ＵＩ情報に登録する。この印刷設定ＵＩ情報は、クライアント装置３が備えている印刷設定ＵＩの印刷設定項目をリストとして保持しておくためのものである。この印刷設定ＵＩ情報により、クライアント装置３で指定できる印刷設定項目をプリンタドライバ２０２側で特定することができる。この印刷設定ＵＩ情報は、図５のステップＳ５０８におけるコンフリクト解決切替処理を行う際に参照される。その後、ステップＳ９０１に戻り、プリンタドライバ２０２の持つ全ての印刷設定項目に対して処理を繰り返す。プリンタドライバ２０２の持つ全ての印刷設定項目に対して処理が行われると、図９のフローチャートによる処理を終了する。こうして、クライアント装置３がどのような印刷設定ＵＩを備えているかの判別を行う。
【００４６】
尚、本実施形態では、クライアント装置３がどのような印刷設定ＵＩを備えているかによって、コンフリクトを解決する方法を切り替える処理について述べたが、必ずしもこのようにする必要はない。例えば、ジョブチケット００１から一つでも取得できない印刷設定項目がある場合には、常にプリンタドライバ２０２側で、印刷設定項目の設定値を再設定するようにしてもよい。こうすることで、アプリケーション２０７が汎用的な印刷設定ＵＩしか備えておらず、且つ、クライアント装置３がエラーを通知する手段を持たない場合に、印刷設定項目の設定値の再設定情報をユーザが知ることができずに印刷続行が不可能になるのを防げる。図１０は、このような形態における図５のステップＳ５０５に示した印刷設定ＵＩ情報判別処理（第２の印刷設定ＵＩ情報判別処理）の流れの一例を表すフローチャートである。尚、図１０の説明において、図９と共通する処理についてはその詳細な説明を省略し、異なる点についてのみ説明する。
【００４７】
図９の処理と図１０の処理との違いは、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケット００１から取得することを試みたと判断した場合の処理である。
すなわち、図９の処理と同様に、プリンタドライバ２０２の持つ全ての印刷設定項目のうち、ジョブチケット００１から設定値を取得できた印刷設定項目を印刷設定ＵＩ情報に登録する。その後、ステップＳ１００１において、印刷設定情報制御部２０４は、プリンタドライバ２０２が持つ全ての印刷設定項目について、ジョブチケット００１から設定値を取得できたか否かを判断する。この判断の結果、プリンタドライバ２０２が持つ全ての印刷設定項目について、ジョブチケット００１から設定値を取得できた場合（ステップＳ１００１でＹｅｓと判断された場合）には、そのまま図１０のフローチャートによる処理を終了する。
【００４８】
一方、プリンタドライバ２０２が持つ全ての印刷設定項目について、一項目でもジョブチケット００１から設定値を取得できなかった場合（ステップＳ１００１でＮｏと判断された場合）には、ステップＳ１００２に進む。ステップＳ１００２に進むと、印刷設定情報制御部２０４は、印刷設定ＵＩ情報から、ステップＳ９０４で登録した印刷設定項目の削除を行う。こうすることで、ジョブチケット００１内に必要な印刷設定項目が一項目でも不足している場合には、その時点でクライアント装置３が十分な印刷設定を行う手段を備えていないと判断し、印刷設定ＵＩを何も持たないクライアント装置３と同等に扱う。このようなクライアント装置３の印刷設定ＵＩに対しては、常にプリンタドライバ２０２側で適切な設定値に再設定を行って、コンフリクトを解決する。
【００４９】
このように、本実施形態では、ジョブチケット００１内にプリンタドライバ２０２が必要とする印刷設定項目が書き込まれているか（設定されているか）否かで、クライアント装置３がどのような機能を備えているかを推測する。そして、それに応じてどのようにコンフリクトを解決するかを切り替える。
例えば、プリンタドライバ２０２が、用紙サイズ、用紙の種類、フチなし印刷設定、両面印刷設定、給紙口設定という印刷設定項目を持つのに対し、クライアント装置３が、用紙サイズと両面印刷の印刷設定ＵＩしか備えていない携帯端末であるとする。また、クライアント装置３は、プリンタ２の全機能を把握することはなく、作成するジョブチケット００１には、設定可能な用紙サイズと両面印刷の設定値のみが書き込まれるものとする。より具体的には、用紙サイズの設定値としてＡ５が、両面印刷の設定値としてＯＮがそれぞれジョブチケット００１に設定されている状態を考える。
【００５０】
この状態では、図５のステップＳ５０３において、ジョブチケット００２の「用紙の種類、フチなし印刷設定、及び給紙口設定の設定値」には、デフォルト値が設定される。そして、ステップＳ５０４において、用紙サイズの設定値と両面印刷設定の設定値には、それぞれ、ジョブチケット００１より上書き設定された「Ａ５サイズと両面印刷ＯＮ」が設定される。用紙サイズと両面印刷設定以外の各印刷設定項目に設定されるデフォルト値は、図６に示したデータテーブル６００によれば、次のようになる。すなわち、用紙の種類の設定値には普通紙が、フチなし印刷設定の設定値にはＯＦＦが、給紙口設定にはトレイＡがそれぞれ設定される（図６では◎で示されているものがデフォルト値である）。
【００５１】
次に、ステップＳ５０５において、どのような印刷設定ＵＩを備えるクライアント装置３であるかを、例えば、図９に示した第１の印刷設定ＵＩ情報判別処理に基づいて判断する。ここでは、ジョブチケット００１から取得できた用紙サイズと両面印刷設定の印刷設定項目を設定可能な印刷設定ＵＩをクライアント装置３が備えていると判断する。そして、ステップＳ５０６において、全ての印刷設定項目に設定値が設定されたジョブチケット００２の内容を確認する。次に、ステップＳ５０７において、プリンタドライバ２０２が固有に持つ優先順位に基づいて、印刷設定項目の設定値間でコンフリクトがないかを判断する。ここでは、用紙の種類の設定値が普通紙、フチなし印刷設定の設定値がＯＦＦ、用紙サイズの設定値がＡ５であることから、図６に示したデータテーブル６００によれば、給紙口設定の設定値がトレイＢのみに制限される。しかしながら、ジョブチケット００２には、ステップＳ５０３でデフォルト値のトレイＡが設定されている状態である。よって、給紙口設定の設定値と、その他の印刷設定項目の設定値との間にコンフリクトが発生していることになる（ステップＳ５０７でＮｏと判断される）。そのため、ステップＳ５０８のコンフリクト解決切替処理に進む。
【００５２】
図７に示す第１のコンフリクト解決切替処理によれば、ステップＳ７０２において、プリンタドライバ２０２が固有に持つ優先順位に基づいて、再設定すべき印刷設定項目を給紙口設定であると決定する。しかし、ステップＳ５０５において、クライアント装置３は、用紙サイズと両面印刷設定の印刷設定項目を設定可能な印刷設定ＵＩしか備えていないと判断されている。つまり、プリンタドライバ２０２としては、給紙口設定の再設定を促したいのにも関わらず、クライアント装置３は給紙口を設定する手段を備えていないと判断される（ステップＳ７０３でＮｏと判断される）。そのため、ステップＳ７０５に進み、プリンタドライバ２０２側で、選択可能なトレイＢに給紙口設定の設定値を変更することでコンフリクトの解決処理を行う。
【００５３】
一方、図８に示す第２のコンフリクト解決切替処理によれば、クライアント装置３は、再設定すべき給紙口設定を設定可能な印刷設定ＵＩを備えていないため（ステップＳ７０３でＮｏと判断されるため）、ステップＳ８０１に進む。そして、コンフリクトを解決することが可能な別の印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていないかどうかを判断する。ここで、図６に示したデータテーブル６００によれば、用紙サイズの設定値をＡ４に変更することで、給紙口設定のトレイＡを選択することが可能になる。つまり、用紙サイズの設定値を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていないかどうかを判断する。ここでは、クライアント装置３は、用紙サイズの印刷設定ＵＩを備えているため（ステップＳ８０１でＹｅｓと判断されるため）、クライアント装置３が設定することが可能な用紙サイズの設定値の再設定を促すコンフリクト情報をユーザに通知する。
【００５４】
以上のように本実施形態では、ホストコンピュータ１は、クライアント装置３から送信されるジョブチケット４００に記述されている印刷設定項目の設定値に基づいて、クライアント装置３の印刷設定ＵＩで設定することが可能な印刷設定項目を特定する。そして、プリンタドライバ２０２が固有に持つ優先順位（データテーブル６００）に基づいて、印刷設定項目の設定値間でコンフリクトがないかを判定する。この判定の結果、コンフリクトがある場合には、コンフリクトがある印刷設定項目を、再設定すべき印刷設定項目としてプリンタドライバ２０２が固有に持つ優先順位に従って選択する。再設定すべき印刷設定項目をクライアント装置３の印刷設定ＵＩが持っていない場合には、プリンタドライバ２０２側で当該印刷設定項目の設定値を再設定する。このようにして、本実施形態では、クライアント装置３が設定することが可能な印刷設定項目以外の設定値間のコンフリクトは、プリンタドライバ２０２側で解決して印刷処理を続行する。したがって、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを防ぐことが可能となる。また、全ての印刷設定項目をクライアント装置３の印刷設定ＵＩが持っていない場合には、プリンタドライバ２０２側で当該全ての印刷設定項目の設定値を再設定することもできる。よって、クライアント装置３がエラーを通知する手段を備えておらず、コンフリクトの発生時に設定値の再設定情報を知ることができない場合であっても、印刷を続行することが可能となる。
【００５５】
＜第２の実施形態＞
次に、第２の実施形態について説明する。尚、以下の説明では、第１の実施形態と共通する図、及びその詳細な説明は省略し、異なる点について説明する。第１の実施形態で説明した印刷設定情報制御部２０４が行う処理のうち、図５、図７、及び図８の処理は、本実施形態においても適用される。本実施形態と、第１の実施形態との違いは、クライアント装置３が備える印刷設定ＵＩの印刷設定項目の判別処理である（図９、図１０を参照）。すなわち、第１の実施形態では、ジョブチケットから印刷設定項目に対する設定値が取得できたか否かに基づいて、クライアント装置３が備える印刷設定ＵＩの印刷設定項目を判断した。一方、本実施形態では、ジョブチケットから設定値が取得できた印刷設定項目の設定値を、クライアント装置３が設定する手段を備えているか否かに基づいて、クライアント装置３が備える印刷設定ＵＩの印刷設定項目を判断する。
【００５６】
本実施形態では、例えば、アプリケーション２０７が汎用的な印刷設定ＵＩしか備えていないにも関わらず、プリンタ２が持つ機能情報を把握でき、ジョブチケット００１に印刷設定項目に対する何らかの設定値を書き込めるクライアント装置３を想定する。本実施形態では、アプリケーション２０７は、各印刷設定項目に対して設定値を設定する手段を備えているか否かの情報をジョブチケットに付加する。この情報により、ホストコンピュータ１は、自装置で設定することが可能な印刷設定項目のそれぞれについて、クライアント装置３で設定値を変更することができるか否かを識別することができる。図１１は、アプリケーション２０７が生成するジョブチケットのデータ構成の一例を示す図である。アプリケーション２０７は、各印刷設定項目に対して設定値を設定する手段を備えているか否かの情報として、設定ＵＩ有無情報１１０１をジョブチケット００１（１１００）に付加する。
【００５７】
図１２は、図５のステップＳ５０５に示した印刷設定ＵＩ情報判別処理（第３の印刷設定ＵＩ情報判別処理）の流れの一例を表すフローチャートである。
まず、ステップＳ１２０１において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケット００１から取得することを試みたか否かを判断する。この判断の結果、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケット００１から取得することを試みていない場合には、ステップＳ１２０２に進む。ステップＳ１２０２に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目について、ジョブチケット００１から、優先順位の高い印刷設定項目から順に１つずつ設定値の取得を試みる。
【００５８】
そして、ステップＳ１２０３において、印刷設定情報制御部２０４は、ジョブチケット００１から設定値が取得できたか否かを判断する。この判断の結果、ジョブチケット００１から設定値が取得できた場合（ステップＳ１２０３でＹｅｓと判断された場合）には、ステップＳ１２０４に進む。ステップＳ１２０４に進むと、印刷設定情報制御部２０４は、その設定値を取得できた印刷設定項目の設定を行う手段をクライアント装置３が備えているか否かを示す設定ＵＩ有無情報１１０１の設定値が「有」であるか否かを判断する。
【００５９】
この判断の結果、設定ＵＩ有無情報１１０１の設定値が「有」であり、設定値を取得できた印刷設定項目の設定を行う手段をクライアント装置３が備えている場合（ステップＳ１２０４でＹｅｓと判断された場合）には、ステップＳ１２０５に進む。ステップＳ１２０５に進むと、印刷設定情報制御部２０４は、その印刷設定項目を印刷設定ＵＩ情報に登録する。そして、ステップＳ１２０１に戻り、プリンタドライバ２０２の持つ全ての設定項目に対して処理を繰り返す。プリンタドライバ２０２の持つ全ての設定項目に対して処理が行われると、図１２のフローチャートによる処理を終了する。
【００６０】
また、ステップＳ１２０３の判断の結果、ジョブチケット００１から設定値が取得できなかった場合と、ステップＳ１２０４の判断の結果、設定ＵＩ有無情報１１０１の設定値が「無」である場合にも、ステップＳ１２０１に戻る。こうして、クライアント装置３がどのような印刷設定ＵＩを備えているかの判別を行う。
尚、本実施形態では、設定ＵＩ有無情報１１０１の設定値が「有」であるか、「無」であるかによって、クライアント装置３がどのような印刷設定ＵＩを備えているかを決定する場合を例に挙げて述べた。しかしながら、クライアント装置３がどのような印刷設定ＵＩを備えているかの決定方法は、これに限定されるものではない。例えば、ジョブチケット１１００の印刷設定項目（基本情報４０３及び拡張情報４０４）に付加される設定ＵＩ有無情報１１０１は、印刷設定ＵＩを備える印刷設定項目（すなわち印刷設定ＵＩを持つことを示す場合）についてのみ付加するような形態としてもよい。
【００６１】
このように、本実施形態では、クライアント装置３がどの印刷設定項目の設定を行う手段を備えているか否かの情報を示す設定ＵＩ有無情報１１０１を、クライアント装置３が自らジョブチケット１１００の印刷設定項目に付加する。これにより、ホストコンピュータ１は、クライアント装置３がどのような機能を備えているかをより詳細に推測して、それに応じてどのようにコンフリクトを解決するかを切り替える。
【００６２】
例えば、プリンタドライバ２０２が、用紙サイズ、用紙の種類、フチなし印刷設定、両面印刷設定、給紙口設定を行える機能を持つのに対し、クライアント装置３が用紙サイズと両面印刷の印刷設定ＵＩしか備えていない携帯端末であるとする。この場合、クライアント装置３である携帯端末は、ホストコンピュータ１が備えるＯＳの印刷システム２０１を介してプリンタドライバ２０２から、プリンタ２の持つ機能情報をネットワーク経由で取得する。そして、クライアント装置３は、取得した機能情報（印刷設定項目）に対して、あまり意味をなさない何らかの設定値を埋めてジョブチケット００１を生成する。
【００６３】
この場合、第１の実施形態のように、ジョブチケット００１から印刷設定項目に対する設定値が取得できたか否かの情報だけで、クライアント装置３がその印刷設定項目に対する印刷設定ＵＩを備えていると判断することはできない。そのため、クライアント装置３が、自装置が備える印刷設定ＵＩの情報を設定ＵＩ有無情報という形で各印刷設定項目に明確に指定することで、ホストコンピュータ１は、クライアント装置３の備える機能を特定する。具体的に、クライアント装置３は、用紙サイズと両面印刷の印刷設定項目の設定値に加えて、当該印刷設定項目に対して設定ＵＩ有無情報として「有」の設定値を書き込んだジョブチケット００１を作成する。このとき、クライアント装置３は、用紙サイズと両面印刷以外の用紙の種類、フチなし印刷設定に対しても何らの設定値と、設定ＵＩ有無情報「無」の設定値とを書き込むものとする。
【００６４】
ジョブチケット００１を受信したプリンタドライバ２０２は、図５のステップＳ５０４において、デフォルト値を設定したジョブチケット００２に対して、ジョブチケット００１に書き込まれた設定値を上書きする。ここでは、給紙口設定にのみデフォルト値が設定され、それ以外の用紙サイズ、両面印刷設定、用紙の種類、フチなし印刷設定には、クライアント装置３が設定した設定値が設定される。次に、ステップＳ５０５において、どのような印刷設定ＵＩを備えるクライアント装置３であるかを、図１２に示した第３の印刷設定ＵＩ情報判別処理に基づいて判断する。ここでは、ジョブチケット００１から取得できた「用紙サイズ、用紙の種類、フチなし印刷設定、両面印刷設定」の印刷設定項目のうち、設定ＵＩ有無情報の設定値として「有」が設定されているのは「用紙サイズと両面印刷設定」である。したがって、これら「用紙サイズと両面印刷設定」を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていると判断することができる。
【００６５】
このように、本実施形態では、クライアント装置３が設定することが可能な印刷設定項目を確実に判別し、当該印刷設定項目以外の印刷設定項目間の設定値のコンフリクトを、プリンタドライバ２０２側で解決して印刷処理を続行する。したがって、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを、より確実に防ぐことが可能となる。
【００６６】
＜第３の実施形態＞
次に、第３の実施形態について説明する。尚、以下の説明では、第１及び第２の実施形態と共通する図、及びその詳細な説明は省略し、異なる点について説明する。第１の実施形態で説明した印刷設定情報制御部２０４が行う処理のうち、図５、図７、及び図８の処理は、本実施形態においても適用される。本実施形態と、第１及び第２の実施形態との違いは、クライアント装置３が備える印刷設定ＵＩの印刷設定項目の判別処理である（図９、図１０、図１２を参照）。本実施形態では、クライアント装置３がどの印刷設定項目を設定する手段を備えているかを特定する情報（クライアント装置３で指定できる印刷設定項目を特定するための情報）をジョブチケットに書き込む。そして、ホストコンピュータ１は、当該情報の設定値に基づいて、クライアント装置３が備える印刷設定ＵＩの印刷設定項目を判断する。本実施形態では、アプリケーション２０７は、どの印刷設定項目の設定値を設定する手段をクライアント装置３が備えているかを特定する情報として、印刷設定ＵＩレベル情報を、ジョブチケットに付加するものとする。図１３は、アプリケーション２０７が生成するジョブチケットのデータ構成の一例を示す図である。アプリケーション２０７は、プリンタドライバ２０２が予め定義した印刷設定ＵＩレベル情報１３０１をジョブチケット００１（１３００）に付加する。
【００６７】
図１４は、図５のステップＳ５０５に示した印刷設定ＵＩ情報判別処理（第４の印刷設定ＵＩ情報判別処理）の流れの一例を表すフローチャートである。
まず、ステップＳ１４０１において、印刷設定情報制御部２０４は、ジョブチケット００１から、クライアント装置３自身がどの印刷設定項目の設定値を設定する手段を備えているかを特定する印刷設定ＵＩレベル情報１３０１の取得を試みる。
図１５は、クライアント装置３がどの印刷設定項目を設定する手段を備えているかを特定する印刷設定ＵＩレベル情報１３０１の内容を定義するＵＩレベル定義テーブルの一例を示す図である。ＵＩレベル定義テーブル１５０１は、ＵＩレベルを示すレベルと、各レベルが取り決めている印刷設定項目情報とを相互に関連付けて記憶しており、プリンタドライバ２０２によって予め定義されているものである。例えば、「レベル０」は、全ての印刷設定項目が優先項目（印刷設定項目の設定値のコンフリクトを解消を優先的に行う印刷設定項目）となることを表す。「レベル０」は、プリンタドライバ２０２の提供する印刷設定ＵＩを用いた場合に、印刷設定ＵＩレベル情報１３０１の設定値として付与されるレベルである。このようにして定義されたＵＩレベルの情報が、印刷設定ＵＩレベル情報１３０１の設定値としてジョブチケット００１に書き込まれている。ただし、本実施形態では、クライアント装置３が、全ての印刷設定項目について、設定値を設定する手段を備えていない場合には、ＵＩレベルの情報は指定されない（図１５の「指定なし」の欄を参照）。
【００６８】
図１４の説明に戻る。ステップＳ１４０２において、印刷設定情報制御部２０４は、ジョブチケット００１に、印刷設定ＵＩレベル情報１３０１が指定されているか否かを判断する。この判断の結果、ジョブチケット００１に、印刷設定ＵＩレベル情報１３０１が指定されていない場合（ステップＳ８０２でＮｏと判断された場合）には、図１４のフローチャートによる処理を終了する。
一方、ジョブチケット００１に、印刷設定ＵＩレベル情報１３０１が指定されている場合（ステップＳ１４０２でＹｅｓと判断された場合）には、ステップＳ１４０３に進む。ステップＳ１４０３に進むと、印刷設定情報制御部２０４は、ＵＩレベル定義テーブル１５０１を参照して、指定された印刷設定ＵＩレベル情報１３０１に対応する印刷設定項目を取得する。
【００６９】
そして、ステップＳ１４０４において、印刷設定情報制御部２０４は、ステップＳ１４０３で取得した印刷設定項目を設定することが可能な印刷設定ＵＩをクライアント装置３が備えていると判断し、当該印刷設定項目を印刷設定ＵＩ情報に登録する。こうして、クライアント装置３がどのような印刷設定ＵＩを備えているかの判別を行う。
【００７０】
このように、本実施形態では、クライアント装置３が予め、クライアント装置３自身が備える印刷設定ＵＩに応じたＵＩレベルの情報を選択し、ジョブチケット００１に付与する。これにより、クライアント装置３が自ら備える機能を明確にジョブチケット００１に指定することができるので、プリンタドライバ２０２は、クライアント装置３がどのような機能を備えているかをより正確に推測することが可能となる。こうして、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを、より確実に防ぐことが可能となる。
【００７１】
＜第４の実施形態＞
次に、第４の実施形態について説明する。尚、以下の説明では、第１乃至第３の実施形態と共通する図、及びその詳細な説明は省略し、異なる点について説明する。本実施形態の第１乃至第３の実施形態との違いは、本実施形態では、プリンタ２での印刷に必要な全ての印刷設定項目に対して適切な設定値を設定する点である。第１乃至第３の実施形態では、クライアント装置３から受信したジョブチケットに、プリンタ２での印刷に必要な印刷設定項目の設定値が不足している場合、当該設定値としてデフォルト値を設定した上で印刷設定項目の設定値間のコンフリクトの有無を判断する。一方、本実施形態では、印刷設定項目の設定値としてデフォルト値を設定しないかわりに、印刷ジョブに付加されたジョブチケット情報の内容を解析して、適切な設定値を設定する処理を行うに際し、基準となる優先項目を決定する。
【００７２】
図１６は、ホストコンピュータ１のプリンタドライバ２０２で実行される印刷ジョブの印刷処理のうち、印刷設定情報制御部２０４が行う処理の流れの一例を表すフローチャートである。
まず、ステップＳ１６０１において、印刷設定情報制御部２０４は、アプリケーション２０７から、印刷ジョブに付加された印刷設定情報をジョブチケットとして受信する。
次に、ステップＳ１６０２において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目の中から、優先する印刷設定項目を決定する優先設定項目決定処理を行う。すなわち、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目を、優先項目データテーブル、準優先項目データテーブル、又は非優先項目データテーブルに分類することで、優先すべき印刷設定項目の決定を行う。この優先設定項目決定処理についての詳細は後述する。
【００７３】
図１７は、ジョブチケット内の印刷設定項目を、優先項目データテーブル、準優先項目データテーブル、又は非優先項目データテーブルに分類する方法の一例を説明する図である。図１７において、優先順位情報１７０１は、印刷設定項目の優先順位を示すものであり、プリンタドライバ２０２に固有のものである。優先順位情報１７０１は、予めホストコンピュータ１に設定されている。
まず、最も優先するべきと判断された印刷設定項目は、優先項目データテーブル１７０２に登録される。そして、優先項目ほど強制力はないが、優先項目の次に優先する方がより好ましいと判断された印刷設定項目は、準優先項目データテーブル１７０３に登録される。一方、優先項目でも準優先項目でもないと判断されたその他の印刷設定項目は、非優先項目データテーブル１７０４に登録される。また、優先項目データテーブル１７０２、準優先項目データテーブル１７０３、及び非優先項目データテーブル１７０４のデータは、プリンタドライバ２０２の内部でのみ使用されるデータである。このため、優先項目データテーブル１７０２、準優先項目データテーブル１７０３、及び非優先項目データテーブル１７０４のデータ形式は、任意のフォーマットを用いて好適である。
【００７４】
図１６の説明に戻る。前述したように、ステップＳ１６０２において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目に対して優先項目の決定処理が行われる。これにより、プリンタドライバ２０２の持つ全ての印刷設定項目が、優先項目データテーブル１７０２、準優先項目データテーブル１７０３、又は非優先項目データテーブル１７０４に分類される。
そして、ステップＳ１７０３において、印刷設定情報制御部２０４は、優先項目データテーブル１７０２に登録された印刷設定項目を参照する。そして、ステップＳ１７０４において、印刷設定情報制御部２０４は、優先項目間で設定値のコンフリクトがないかどうかを判断する。
【００７５】
この判断の結果、優先項目であるにも関わらず、それらの優先項目同士で共存不可能な設定値が設定されている場合（ステップＳ１６０４でＮｏと判断された場合）には、ステップＳ１６０５に進む。ステップＳ１６０５に進むと、印刷設定情報制御部２０４は、印刷設定項目の再設定をユーザに促す通知を行い、図１６のフローチャートによる処理を終了する。
一方、複数の優先項目同士で設定値のコンフリクトがない状態と判断された場合（ステップＳ１６０４でＹｅｓと判断された場合）には、ステップＳ１６０６に進む。また、優先項目データテーブル１７０２に一項目しか印刷設定項目が登録されていない場合には、優先項目の設定値間のコンフリクトを考慮しなくてよいため、この場合にも、ステップＳ１６０４でＹｅｓと判断してステップＳ１６０６に進む。
【００７６】
ステップＳ１６０６に進むと、印刷設定情報制御部２０４は、準優先項目データテーブル１７０３に登録された印刷設定項目を参照する。そして、ステップＳ１６０７において、印刷設定情報制御部２０４は、準優先項目の間で設定値のコンフリクトがないかどうかを判断する。この判断の結果、準優先項目同士で共存不可能な設定値が設定されている場合（ステップＳ１６０７でＮｏと判断された場合）には、ステップＳ１６０８に進む。ステップＳ１６０８に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２が固有に持つ優先順位が高い準優先項目から順に、準優先項目の適切な設定値の再設定を行う。
【００７７】
一方、複数の準優先項目同士で設定値のコンフリクトがない状態と判断された場合（ステップＳ１６０７でＹｅｓと判断された場合）には、ステップＳ１６０８を行わずにステップＳ１６０９に進む。また、準優先項目データテーブル１７０３に一項目しか印刷設定項目が登録されていない場合には、準優先項目の設定値間のコンフリクトを考慮しなくてよいため、この場合にも、ステップＳ１６０７でＹｅｓと判断してそのままステップＳ１６０９に進む。また、準優先項目データテーブル１７０３に一項目も印刷設定項目が登録されていない場合にも、ステップＳ１６０７でＹｅｓと判断してそのままステップＳ１６０９に進む。
【００７８】
次に、優先項目にも準優先項目にも登録されなかったその他の残りの印刷設定項目に関する確認処理を行う。まず、ステップＳ１６０９において、印刷設定情報制御部２０４は、非優先項目データテーブル１７０４に登録された印刷設定項目を参照する。そして、ステップＳ１６１０において、印刷設定情報制御部２０４は、プリンタドライバ２０２が固有に持つ優先順位が高い非優先項目から順に、前述した優先項目及び準優先項目の設定値を満たすように、非優先項目の適切な設定値の設定を行う。非優先項目よりも上位の優先項目及び準優先項目の設定値の組み合わせによって設定値のコンフリクトが生じる場合には、設定可能な適切な設定値を、非優先項目の印刷設定項目に再設定する。
【００７９】
次に、ステップＳ１６１１において、印刷設定情報制御部２０４は、非優先項目の全てに、適切な設定値が設定されたか否かを判断する。この判断の結果、非優先項目の全てに、適切な設定値が設定されなかった場合には、ステップＳ１６１２に進む。すなわち、非優先項目よりも上位の優先項目及び準優先項目の設定値の組み合わせによって、非優先項目に設定することが可能な設定値が存在せず、非優先項目の設定値の設定が不可能である場合には、ステップＳ１６１２に進む。ステップＳ１６１２に進むと、印刷設定情報制御部２０４は、全ての非優先項目に、プリンタドライバ２０２の持つデフォルト値を設定し、図１６のフローチャートによる処理を終了する。
一方、ステップＳ１６１１の判断の結果、非優先項目の全てに、適切な設定値が設定された場合には、そのまま図１６のフローチャートによる処理を終了する。
【００８０】
図１８は、図１６のステップＳ１６０２における優先設定項目決定処理（第１の優先設定項目決定処理）の流れの一例を表すフローチャートである。より詳しくは、図１８は、アプリケーション２０７がプリンタ２に依存しない汎用的な印刷設定ＵＩを用いて設定することが可能な印刷設定項目の設定値しかジョブチケットに書き込まないクライアント装置３に係る印刷設定情報を制御する処理の流れを表す。
まず、ステップＳ１８０１において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケットから取得することを試みたか否かを判断する。この判断の結果、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケットから取得することを試みていない場合には、ステップＳ１８０２に進む。ステップＳ１８０２に進むと、ステップＳ９０２に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目について、ジョブチケットから、優先順位の高い印刷設定項目から順に１つずつ設定値の取得を試みる。
【００８１】
そして、ステップＳ１８０３において、印刷設定情報制御部２０４は、ジョブチケットから設定値が取得できたか否かを判断する。この判断の結果、ジョブチケットから設定値が取得できた場合（ステップＳ１８０３でＹｅｓと判断された場合）には、ステップＳ１８０４に進む。ステップＳ１８０４に進むと、印刷設定情報制御部２０４は、設定値が取得できた印刷設定項目を優先項目データテーブル１７０２に登録する。一方、ジョブチケットから設定値が取得できなかった場合（ステップＳ１８０３でＮｏと判断された場合）には、ステップＳ１８０５に進む。ステップＳ１８０５に進むと、印刷設定情報制御部２０４は、設定値が取得できなかった印刷設定項目を非優先項目データテーブル１７０４に登録する。その後、ステップＳ１８０１に戻り、プリンタドライバ２０２の持つ全ての印刷設定項目に対して各テーブルへの分類処理を繰り返す。プリンタドライバ２０２の持つ全ての印刷設定項目が、優先項目データテーブル１７０２又は非優先項目データテーブル１７０４に分類されると、図１８のフローチャートによる処理を終了する。こうして、図１８に示す例では、優先項目データテーブル１７０２に登録された印刷設定項目を優先する印刷設定項目（優先項目）として決定する。
【００８２】
尚、本実施形態では、ジョブチケットから設定値が取得できた印刷設定項目の全てを優先項目として分類するため、準優先項目は存在しないが、印刷設定項目を分類する方法は、このような方法に限定されるものではない。例えば、ジョブチケットから一つでも取得できない印刷設定項目がある場合には、ジョブチケットから取得できた印刷設定項目の中で、プリンタドライバ２０２が持つ固有の優先順位の最上位の印刷設定項目のみを優先項目と決定するような形態にしてもよい。こうすることで、アプリケーション２０７が汎用的な印刷設定ＵＩしか備えておらず、且つ、クライアント装置３がエラーを通知する手段を持たない場合に、印刷設定項目の設定値の再設定情報をユーザが知ることができずに印刷続行が不可能になるのを防げる。図１９は、このような形態における図１６のステップＳ１６０２に示した優先設定項目決定処理（第２の優先設定項目決定処理）の流れの一例を表すフローチャートである。尚、図１９の説明において、図１８と共通する処理についてはその詳細な説明を省略し、異なる点についてのみ説明する。
【００８３】
まず、図１８の処理と同様に、ジョブチケットから設定値を取得できた印刷設定項目については優先項目データテーブル１７０２に登録し、ジョブチケットから設定値を取得できなかった印刷設定項目については非優先項目データテーブル１７０４に登録する。この印刷設定項目の登録は、プリンタドライバ２０２の持つ全ての印刷設定項目について行う。ステップＳ１８０１において、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケットから取得することを試みたと判断すると、プリンタドライバ２０２の持つ全ての印刷設定項目に対して各テーブルへの分類処理が完了したと判断する。そして、ステップＳ１９０１に進む。
【００８４】
ステップＳ１９０１に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２が持つ全ての印刷設定項目について、ジョブチケットから設定値を取得できたか否かを判断する。この判断の結果、プリンタドライバ２０２が持つ全ての印刷設定項目について、ジョブチケットから設定値を取得できた場合（ステップＳ１９０１でＹｅｓと判断された場合）には、そのまま図１９のフローチャートによる処理を終了する。
一方、プリンタドライバ２０２が持つ全ての印刷設定項目について、ジョブチケットから設定値を取得できなかった場合（ステップＳ１９０１でＮｏと判断された場合）には、ステップＳ１９０２に進む。ステップＳ１９０２に進むと、印刷設定情報制御部２０４は、優先項目データテーブル１７０２に登録されている印刷設定項目のうち、最上位一項目のみを残して、その他の印刷設定項目を準優先項目データテーブル１７０３に登録し直す再分類処理を行う。こうして、優先項目データテーブル１７０２に登録された印刷設定項目を最優先項目とし、準優先項目データテーブル１７０３に登録された印刷設定項目を準優先項目として決定する。
【００８５】
このように、本実施形態では、ジョブチケット内にプリンタドライバ２０２が必要とする印刷設定項目が書き込まれているか（設定されているか）否かで優先する印刷設定項目を決定する。つまり、ジョブチケットに書き込まれている印刷設定項目の情報をもとに、クライアント装置３がどのような機能を備えているかを推測して、それに応じた処理を行うというものである。
例えば、プリンタドライバ２０２が、用紙サイズ、用紙の種類、フチなし印刷設定、両面印刷設定、給紙口設定という印刷設定項目を持つのに対し、クライアント装置３が、用紙サイズと両面印刷の印刷設定ＵＩしか備えていない携帯端末であるとする。また、クライアント装置３は、プリンタ２の全機能を把握することはなく、作成するジョブチケットには、設定可能な用紙サイズと両面印刷の設定値のみが書き込まれるものとする。
このジョブチケットを受信したホストコンピュータ１のプリンタドライバ２０２は、本来持つ印刷設定項目の優先順位よりも、用紙サイズと両面印刷の印刷設定項目を優先させることで、よりユーザが望む印刷を実現することができる。
【００８６】
より具体的には、図１６のステップＳ１６０２において、ジョブチケットから取得できた「用紙サイズと両面印刷設定」の印刷設定項目を、優先項目データテーブル１７０２に登録する。一方、ジョブチケットから取得できなかった「用紙の種類、フチなし印刷設定、給紙口設定」の印刷設定項目を、非優先項目データテーブル１７０４に登録する。そして、ステップＳ１６０４において、優先項目データテーブル１７０２に登録された「用紙サイズと両面印刷設定」の設定値の間にコンフリクトがないかどうかを判断する。図６に示したデータテーブル６００によれば、用紙サイズの方が両面印刷設定よりも優先順位が高い。例えば、用紙サイズの設定値として２Ｌが、両面印刷設定の設定値としてＯＮが設定されているとする。この場合、図６に示したデータテーブル６００によれば、用紙サイズの設定値として２Ｌが設定されていることによって、両面印刷設定の設定値はＯＦＦのみに制限される。このため、これらの設定値は共存不可能な組み合わせであるといえる（ステップＳ１６０４でＮｏと判断される）。よって、ステップＳ１６０５に進み、印刷設定項目間で設定値のコンフリクトが発生していることをユーザに通知し、優先順位の低い両面印刷設定の設定値をＯＦＦに再設定することをユーザに促す。
【００８７】
一方、用紙サイズの設定値として２Ｌが、両面印刷設定の設定値としてＯＦＦが設定されているとする。この場合には、印刷設定項目間での設定値にコンフリクトは発生せず、これらの印刷設定項目の設定値は、共存可能な組み合わせであるといえる（ステップＳ１６０４でＹｅｓと判断される）。よって、ステップＳ１６０７に進み、準優先項目データテーブル１７０３に登録された準優先項目間で設定値のコンフリクトがないかどうかを確認するが、この例では準優先項目となる印刷設定項目は存在しない。従って、ステップＳ１６１０まで処理が進み、非優先項目データテーブル１７０４に登録された残りの印刷設定項目（用紙の種類、フチなし印刷設定、給紙口設定）について、設定することが不可能な設定値が設定されていないか判断する。
【００８８】
このとき、非優先項目データテーブル１７０４に登録された印刷設定項目の優先順位は、プリンタドライバ２０２が本来持つ固有の優先順位となる。すなわち、図６に示したデータテーブル６００によれば、相対的に左側に示されている印刷設定項目から順に設定を行う。従って、最上位の優先項目データテーブル１７０２によって既に決定された用紙サイズの設定値（２Ｌ）と、両面印刷設定の設定値（ＯＦＦ）とがコンフリクトしないようにする必要がある。この場合、データテーブル６００において最も左に示されている用紙の種類の設定値は、光沢紙のみを選択することが可能である。このため、用紙の種類の設定値として光沢紙が設定される。
【００８９】
また、用紙サイズの設定値（２Ｌ）と、両面印刷設定の設定値（ＯＦＦ）と、用紙の種類の設定値（光沢紙）とがコンフリクトしないようにする場合、フチなし印刷設定の設定値としては、ＯＮとＯＦＦの何れかを選択することが可能である。このように、選択することが可能な設定値が複数存在する場合には、フチなし印刷設定の設定値として、デフォルト値であるＯＦＦが設定される。また、用紙サイズの設定値（２Ｌ）と、両面印刷設定の設定値（ＯＦＦ）と、用紙の種類の設定値（光沢紙）と、フチなし印刷設定の設定値（ＯＦＦ）とがコンフリクトしないようにする場合、給紙口設定の設定値としてトレイＡのみを選択することが可能である。このため、給紙口設定の設定値としてトレイＡが設定される。
【００９０】
このようにして、全ての印刷設定項目に適切な設定値の再設定を行うことで、よりユーザが望む印刷を実現することができる。そして、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを防ぐことが可能となる。また、クライアント装置３がエラー通知する手段を備えておらず、コンフリクトの発生時に設定値の再設定情報を知ることができない場合であっても、印刷を続行することが可能となる。
【００９１】
＜第５の実施形態＞
次に、第５の実施形態について説明する。尚、以下の説明では、第１乃至第４の実施形態と共通する図、及びその詳細な説明は省略し、異なる点について説明する。第４の実施形態で説明した図１６の処理は、本実施形態においても適用される。本実施形態と、第４の実施形態との違いは、優先設定項目決定処理である。第４の実施形態では、ジョブチケットから印刷設定項目に対する設定値が取得できたか否かに基づいて、優先する印刷設定項目を判断した。一方、本実施形態では、ジョブチケットから取得できた印刷設定項目の設定値を設定する手段をクライアント装置３が備えているか否かの情報に基づいて、最優先項目を決定する。より詳しくは、アプリケーション２０７が汎用的な印刷設定ＵＩしか備えていないにも関わらず、プリンタ２が持つ機能情報を把握でき、ジョブチケットに印刷設定項目の設定値を書き込めるクライアント装置３に係る印刷設定情報を制御する処理の流れを表す。本実施形態では、アプリケーション２０７は、第２の実施形態と同様に、各印刷設定項目に対して設定値を設定する手段を備えているかの情報として、設定ＵＩ有無情報１１０１をジョブチケットに付加するものとする（図１１を参照）。
【００９２】
図２０は、図１６のステップＳ１６０２における優先設定項目決定処理（第３の優先設定項目決定処理）の流れの一例を表すフローチャートである。
まず、ステップＳ２００１において、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケットから取得することを試みたか否かを判断する。この判断の結果、プリンタドライバ２０２の持つ全ての印刷設定項目の設定値をジョブチケットから取得することを試みていない場合には、ステップＳ２００２に進む。ステップＳ２００２に進むと、ステップＳ２００２に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目について、ジョブチケットから、優先順位の高い印刷設定項目から順に１つずつ設定値の取得を試みる。
【００９３】
そして、ステップＳ２００３において、印刷設定情報制御部２０４は、ジョブチケットから設定値が取得できたか否かを判断する。この判断の結果、ジョブチケットから設定値が取得できた場合（ステップＳ２００３でＹｅｓと判断された場合）には、ステップＳ２００４に進む。ステップＳ２００４に進むと、印刷設定情報制御部２０４は、設定値を取得できた印刷設定項目の設定を行う手段をクライアント装置３が備えているかを示す設定ＵＩ有無情報１１０１の設定値が「有」であるか否かを判断する。この判断の結果、設定ＵＩ有無情報１１０１の設定値が「有」であり、設定値を取得できた印刷設定項目の設定を行う手段をクライアント装置３が備えている場合（ステップＳ２００４でＹｅｓと判断された場合）には、ステップＳ２００５に進む。ステップＳ２００５に進むと、印刷設定情報制御部２０４は、優先項目データテーブル１７０２に、ステップＳ２００３で設定値を取得できたと判断した印刷設定項目を登録する。
【００９４】
一方、設定ＵＩ有無情報１１０１の設定値が「無」である場合（ステップＳ２００４でＮｏと判断された場合）には、ステップＳ２００６に進む。すなわち、設定値を取得できた印刷設定項目はジョブチケットに存在するものの、その設定値に付加された設定ＵＩ有無情報１１０１が、その印刷設定項目の設定を行う手段を持たないことを示す情報だった場合には、ステップＳ２００６に進む。ステップＳ２００６に進むと、印刷設定情報制御部２０４は、準優先項目データテーブル１７０３に、ステップＳ２００３で設定値を取得できたと判断した印刷設定項目を登録する。
また、ジョブチケットから設定値を取得できなかった場合（ステップＳ２００３でＮｏと判断された場合）には、ステップＳ２００７に進む。ステップＳ２００７に進むと、印刷設定情報制御部２０４は、非優先項目データテーブル１７０４に、ステップＳ２００３で設定値を取得できなかったと判断した印刷設定項目を登録する。その後、ステップＳ２００１に戻り、プリンタドライバ２０２の持つ全ての印刷設定項目に対して各テーブルへの分類処理を繰り返す。こうして、図２０に示す例では、優先項目データテーブル１７０２及び準優先項目データテーブル１７０３に登録された印刷設定項目を優先する印刷設定項目（優先項目、準優先項目）として決定する。
【００９５】
尚、本実施形態では、ジョブチケット内に印刷設定項目は存在するが、その印刷設定項目を設定する印刷設定ＵＩを持たないことを示す情報がジョブチケットに付加されている場合、当該印刷設定項目を、準設定項目とする場合について説明した。しかしながら、ジョブチケット内の印刷設定項目を分類する方法は、このような方法に限定されるものではない。例えば、設定ＵＩ有無情報１１０１により、印刷設定ＵＩで設定することができないと判断された印刷設定項目を、全て非優先項目として処理を行う形態としてもよい。
また、本実施形態では、設定ＵＩ有無情報１１０１の設定値が「有」であるか、「無」であるかによって、印刷設定項目の各テーブルへの分類を行う場合を例に挙げて述べた。しかしながら、印刷設定項目の各テーブルへの分類する際の判断基準は、これに限定されるものではない。例えば、ジョブチケット１１００の印刷設定項目（基本情報４０３及び拡張情報４０４）に付加される設定ＵＩ有無情報１１０１は、印刷設定ＵＩを備える印刷設定項目（すなわち印刷設定ＵＩを持つことを示す場合）についてのみ付加するような形態としてもよい。
【００９６】
このように、本実施形態では、ジョブチケット内に、プリンタドライバ２０２が必要とする印刷設定項目が存在するか否かによって優先する印刷設定項目を判断した上で、さらにその中からより最優先する印刷設定項目を決定する。つまり、クライアント装置３がどの印刷設定項目の設定を行う手段を備えているかの情報を示す設定ＵＩ有無情報１１０１を、クライアント装置３が自らジョブチケットの印刷設定項目に付加する。これにより、ホストコンピュータ１は、クライアント装置３がどのような機能を備えているかをより詳細に推測して、それに応じて処理を行う。
【００９７】
例えば、プリンタドライバ２０２が、用紙サイズ、用紙の種類、フチなし印刷設定、両面印刷設定、給紙口設定を行える機能を持つのに対し、クライアント装置３が用紙サイズと両面印刷の印刷設定ＵＩしか備えていない携帯端末であるとする。この場合、クライアント装置３である携帯端末は、ホストコンピュータ１が備えるＯＳの印刷システム２０１を介してプリンタドライバ２０２から、プリンタ２の持つ機能情報をネットワーク経由で取得する。そして、クライアント装置３は、取得した機能情報（印刷設定項目）に対して、あまり意味をなさない何らかの設定値を埋めてジョブチケットを生成する。
【００９８】
この場合、ジョブチケットから印刷設定項目に対する設定値が取得できたか否かの情報だけで、当該印刷設定項目を優先する印刷設定項目（優先項目）として決定することはできない。そのため、クライアント装置３が、自らが備える印刷設定ＵＩの情報を設定ＵＩ有無情報という形で各印刷設定項目に明確に指定することで、より詳細にクライアント装置３の備える機能をホストコンピュータ１で推測することが可能となる。
【００９９】
具体的に説明すると、ここでは、クライアント装置３が、用紙サイズと両面印刷設定の印刷設定項目に、設定値に加えて、設定ＵＩ有無情報１１０１として「有」の設定値を書き込んだジョブチケットを作成するものとする。また、クライアント装置３は、用紙サイズと両面印刷設定以外の「フチなし印刷設定と用紙の種類」の印刷設定項目にも、何らかの設定値と、設定ＵＩ有無情報１１０１として「無」の設定値を書き込むものとする。
【０１００】
このジョブチケットを受信したプリンタドライバ２０２は、図１６のステップＳ１６０２において、ジョブチケットから「用紙サイズ、両面印刷設定、フチなし印刷設定、用紙の種類」の印刷設定項目を取得する。そして、取得できた印刷設定項目の中で、設定ＵＩ有無情報１１０１の設定値として「有」が設定されている「用紙サイズと両面印刷設定の印刷設定項目」を、優先項目として優先項目データテーブル１７０２に登録する。一方、設定ＵＩ有無情報１１０１の設定値として「無」が設定されている「フチなし印刷設定と用紙の種類」を、準優先項目として準優先項目データテーブル１７０３に登録する。更に、ジョブチケットから取得できなかった「給紙口設定」を非優先項目データテーブル１７０４に登録する。
【０１０１】
その後、ステップＳ１６０４において、優先項目データテーブル１７０２に登録された「用紙サイズと両面印刷設定」に設定値間のコンフリクトがないかどうかを、プリンタドライバ２０２が本来持つ固有の優先順位（データテーブル６００）に基づいて判断する。例えば、用紙サイズの設定値が２Ｌであり、両面印刷設定の設定値がＯＮである場合、データテーブル６００によれば、各設定値は共存不可能な組み合わせである。このため、ステップＳ１６０５において、用紙サイズと両面印刷設定に設定値間のコンフリクトが発生していることをユーザに通知し、両面印刷設定の設定値をＯＦＦに再設定することをユーザに促す。
【０１０２】
一方、用紙サイズの設定値が２Ｌ、両面印刷設定の設定値がＯＦＦである場合には、設定値間のコンフリクトは発生せず、各設定値は共存可能な組み合わせである。よって、ステップＳ１６０７に進む。そして、優先項目データテーブル１７０２により決定した「用紙サイズの設定値（２Ｌ）及び両面印刷設定の設定値（ＯＦＦ）」と、準優先項目データテーブル１７０３に登録した「フチなし印刷設定及び用紙の種類」の設定値とにコンフリクトがないかを確認する。このとき、図６に示したデータテーブル６００によれば、最も左に示されている「用紙の種類」から順に設定を行っていく。用紙サイズの設定値（２Ｌ）と、両面印刷設定の設定値（ＯＦＦ）とがコンフリクトしないようにする場合、データテーブル６００において最も左に示されている用紙の種類の設定値は、光沢紙のみに限定される。
【０１０３】
ここで、ジョブチケットに設定されている印刷設定項目である用紙の種類の設定値として普通紙が設定されている場合、用紙の種類と、用紙サイズ及び両面印刷設定との間に設定値のコンフリクトが発生していることになる。そのため、ステップＳ１６０８に進み、プリンタドライバ２０２が、用紙の種類の設定値を光沢紙に再設定することで、準優先項目のコンフリクトを解決する。また、用紙の種類の設定値として光沢紙が設定されている場合、フチなし印刷設定の設定値としては、ＯＮとＯＦＦの何れかを選択することが可能であるため、準優先項目の設定値間のコンフリクトは発生しない。
一方、ジョブチケットに設定されている印刷設定項目である用紙の種類の設定値として光沢紙が設定されている場合、用紙の種類の設定値に対してコンフリクトは発生しない。また、用紙の種類の設定値として光沢紙が設定されている場合、フチなし印刷設定の設定値も、ＯＮとＯＦＦの何れかを選択することが可能であるため、準優先項目の設定値間のコンフリクトは発生しない。
【０１０４】
このように、準優先項目データテーブル１７０３に登録された印刷設定項目の設定値間のコンフリクトを全て解決した状態で、ステップＳ１６１０の処理に進む。そして、用紙サイズの設定値（２Ｌ）と、両面印刷設定の設定値（ＯＦＦ）と、用紙の種類の設定値（光沢紙）と、フチなし印刷設定の設定値（ＯＮ又はＯＦＦ）とがコンフリクトしないように、給紙口設定の設定値を設定する。すなわち、非優先項目データテーブル１７０４に登録された残りの給紙口設定の印刷設定項目について、データテーブル６００に従って、設定可能な適切な設定値の設定を行う。用紙サイズの設定値として２Ｌが、両面印刷設定の設定値としてＯＦＦが、用紙の種類の設定値として光沢紙が、フチなし印刷設定の設定値としてＯＮ又はＯＦＦが設定されている場合、給紙口設定の設定値としてトレイＡのみを選択できる。このため、給紙口設定の設定値としてトレイＡが設定される。
【０１０５】
このようにして、全ての印刷設定項目に適切な設定値の再設定を行うことで、よりユーザが望む印刷を実現することができる。そして、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを防ぐことが可能となる。
【０１０６】
＜第６の実施形態＞
次に、第６の実施形態について説明する。尚、以下の説明では、第１乃至第５の実施形態と共通する図、及びその詳細な説明は省略し、異なる点について説明する。第４の実施形態で説明した図１６の処理は、本実施形態においても適用される。本実施形態と、第４及び第５の実施形態との違いは、優先項目決定処理である。本実施形態では、クライアント装置３がどの印刷設定項目を設定する手段を備えているかを特定する情報をジョブチケットに書き込む。そして、ホストコンピュータ１は、当該情報の設定値に基づいて、優先項目を決定する。本実施形態では、アプリケーション２０７は、第３の実施形態と同様に、クライアント装置３がどの印刷設定項目を設定する手段を備えているかを特定する情報として、印刷設定ＵＩレベル情報１３０１をジョブチケットに付加するものとする（図１３を参照）。この印刷設定ＵＩレベル情報１３０１の設定値は、図１５に示したＵＩレベル定義テーブル１５０１のＵＩレベルの値である。
【０１０７】
図２１は、図１６のステップＳ１６０２に示した優先設定項目決定処理（第４の優先設定項目決定処理）の流れの一例を表すフローチャートである。
まず、ステップＳ２１０１において、印刷設定情報制御部２０４は、ジョブチケットから、クライアント装置３自身がどの印刷設定項目を設定する手段を備えているかを特定する印刷設定ＵＩレベル情報１３０１の取得を試みる。
次に、ステップＳ２１０２において、印刷設定情報制御部２０４は、ジョブチケットに、印刷設定ＵＩレベル情報１３０１が指定されているか否かを判断する。この判断の結果、ジョブチケット００１に、印刷設定ＵＩレベル情報１３０１が指定されている場合（ステップＳ２１０２でＹｅｓと判断された場合）には、ステップＳ２１０３に進む。
【０１０８】
ステップＳ２１０３に進むと、印刷設定情報制御部２０４は、図１５に示したＵＩレベル定義テーブル１５０１を参照して、指定された印刷設定ＵＩレベル情報１３０１に対応する印刷設定項目を取得する。
次に、ステップＳ２１０４において、印刷設定情報制御部２０４は、ステップＳ２１０３で取得した印刷設定項目を、優先項目データテーブル１７０２に登録する。
次に、ステップＳ２１０５において、印刷設定情報制御部２０４は、優先項目以外の残りの印刷設定項目を順次、非優先項目データテーブル１７０４へ登録していく。
【０１０９】
一方、ジョブチケット００１に、印刷設定ＵＩレベル情報１３０１が指定されていない場合（ステップＳ２００２でＮｏと判断された場合）には、ステップＳ２１０６に進む。ステップＳ２１０６に進むと、印刷設定情報制御部２０４は、プリンタドライバ２０２の持つ全ての印刷設定項目を非優先項目データテーブル１７０４に登録する。こうして、優先項目データテーブル１７０２に登録された印刷設定項目を優先する設定項目（優先項目）として決定する。
【０１１０】
このように、本実施形態では、クライアント装置３が予め、クライアント装置３自身が備える印刷設定ＵＩに応じたＵＩレベルの情報を選択し、ジョブチケットに付与する。プリンタドライバ２０２は、クライアント装置３が指定したこの印刷設定ＵＩレベル情報１３０１に基づいて、優先する印刷設定項目を決定する。これにより、クライアント装置３が自ら備える機能を明確にジョブチケットに指定することができるので、プリンタドライバ２０２は、クライアント装置３がどのような機能を備えているかをより正確に推測すること可能となる。こうして、一部の印刷設定項目の設定値の変更しか行えないクライアント装置３に対して、設定値の変更ができない印刷設定項目の再設定を促すようなエラーを通知してしまうことで、印刷続行が不可能に陥ってしまうのを防ぐことが可能となる。
【０１１１】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１１２】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【図１】
0005791311.tif 000002
【図２】
0005791311.tif 000003
【図３】
0005791311.tif 000004
【図４】
0005791311.tif 000005
【図５】
0005791311.tif 000006
【図６】
0005791311.tif 000007
【図７】
0005791311.tif 000008
【図８】
0005791311.tif 000009
【図９】
0005791311.tif 000010
【図１０】
0005791311.tif 000011
【図１１】
0005791311.tif 000012
【図１２】
0005791311.tif 000013
【図１３】
0005791311.tif 000014
【図１４】
0005791311.tif 000015
【図１５】
0005791311.tif 000016
【図１６】
0005791311.tif 000017
【図１７】
0005791311.tif 000018
【図１８】
0005791311.tif 000019
【図１９】
0005791311.tif 000020
【図２０】
0005791311.tif 000021
【図２１】
0005791311.tif 000022