(57)【要約】【課題】  駆動環境の変化によって変動する設定可能範囲を的確に把握することが望まれていた。【解決手段】  コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出するにあたり、上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にしておき、上記所定の記憶媒体に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、ドライバ等を介して設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する。【選択図】  図６
2005063114.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出する駆動条件取得装置であって、
上記周辺機器に対して駆動条件を設定し、この設定における他の駆動条件の設定可能範囲を取得可能な駆動条件設定手段と、
上記駆動条件同士の依存関係を示す依存関係データを記憶する依存関係データ記憶手段と、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを記憶可能な設定可能範囲データ記憶手段と、
上記設定可能範囲データ記憶手段に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定手段によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得手段とを具備することを特徴とする駆動条件取得装置。
【請求項２】
上記周辺機器の駆動環境は、周辺機器の機種と上記駆動条件設定手段の更新の有無と上記周辺機器の構成部品と上記コンピュータでのロケール情報とのいずれかまたは組み合わせによって特定されることを特徴とする上記請求項１に記載の駆動条件取得装置。
【請求項３】
上記設定可能範囲取得手段は、上記周辺機器の駆動環境の指定を受け付ける駆動環境受付部を備え、当該指定を受け付ける際に上記現在の周辺機器の駆動環境を判断することを特徴とする上記請求項２に記載の駆動条件取得装置。
【請求項４】
上記設定可能範囲取得手段は、上記コンピュータが起動されているとき、所定のタイミングで上記現在の周辺機器の駆動環境を判断することを特徴とする上記請求項２に記載の駆動条件取得装置。
【請求項５】
上記設定可能範囲取得手段は、上記周辺機器と通信を行って当該周辺機器の機種および周辺機器の構成部品を示すデータを取得可能であることを特徴とする上記請求項１〜請求項４のいずれかに記載の駆動条件取得装置。
【請求項６】
上記設定可能範囲取得手段は、上記設定可能範囲データを所定の記憶媒体に記憶するにあたり、記憶済みの設定可能範囲データを更新せずに保持することを特徴とする上記請求項１〜請求項５のいずれかに記載の駆動条件取得装置。
【請求項７】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出する駆動条件取得方法であって、
上記周辺機器に対して駆動条件を設定し、周辺機器を駆動する周辺機器制御部において、駆動条件を設定しこの設定における他の駆動条件の設定可能範囲を取得可能であり、
上記駆動条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶しておき、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にしておき、
上記所定の記憶媒体に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定工程によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶することを特徴とする駆動条件取得方法。
【請求項８】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出する駆動条件取得プログラムであって、
上記周辺機器に対して駆動条件を設定し、この設定における他の駆動条件の設定可能範囲を取得可能な駆動条件設定機能と、
上記駆動条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶する依存関係データ記憶機能と、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にする設定可能範囲データ記憶機能と、
上記設定可能範囲データ記憶機能に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定機能によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得機能とを具備することを特徴とする駆動条件取得プログラム。
【請求項９】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出するＵＩ制御装置であって、
上記周辺機器に対して駆動条件を設定し、この設定における他の駆動条件の設定可能範囲を取得可能な駆動条件設定手段と、
上記駆動条件同士の依存関係を示す依存関係データを記憶する依存関係データ記憶手段と、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを記憶可能な設定可能範囲データ記憶手段と、
上記設定可能範囲データ記憶手段に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定手段によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得手段と、
現在の周辺機器の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で駆動条件を設定するための選択肢を表示するとともに駆動条件の設定値の入力を受け付ける駆動条件入出力手段と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された駆動条件に依存する駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する駆動条件の設定可能範囲を表示する駆動条件更新手段とを具備することを特徴とするＵＩ制御装置。
【請求項１０】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出するＵＩ制御方法であって、
上記周辺機器に対して駆動条件を設定し、周辺機器を駆動する周辺機器制御部において、駆動条件を設定しこの設定における他の駆動条件の設定可能範囲を取得可能であり、
上記駆動条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶しておき、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にしておき、
上記所定の記憶媒体に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定工程によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得工程と、
現在の周辺機器の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で駆動条件を設定するための選択肢を表示するとともに駆動条件の設定値の入力を受け付ける駆動条件入出力工程と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された駆動条件に依存する駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する駆動条件の設定可能範囲を表示する駆動条件更新工程とによってＵＩの表示を制御することを特徴とするＵＩ制御方法。
【請求項１１】
コンピュータに接続される周辺機器の駆動条件の設定可能範囲を抽出するＵＩ制御プログラムであって、
上記周辺機器に対して駆動条件を設定し、この設定における他の駆動条件の設定可能範囲を取得可能な駆動条件設定機能と、
上記駆動条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶する依存関係データ記憶機能と、
上記駆動条件の設定可能範囲を示す設定可能範囲データであって、上記周辺機器の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にする設定可能範囲データ記憶機能と、
上記設定可能範囲データ記憶機能に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記駆動条件設定機能によって特定の駆動条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得機能と、
現在の周辺機器の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で駆動条件を設定するための選択肢を表示するとともに駆動条件の設定値の入力を受け付ける駆動条件入出力機能と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された駆動条件に依存する駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する駆動条件の設定可能範囲を表示する駆動条件更新機能とをコンピュータに実現させることを特徴とするＵＩ制御プログラム。
【請求項１２】
コンピュータに接続される印刷装置の印刷条件をＵＩによって設定するとともに当該ＵＩで設定された印刷条件で印刷装置を制御する印刷制御装置であって、
上記印刷装置に対して印刷条件を設定し、この設定における他の印刷条件の設定可能範囲を取得可能な印刷条件設定手段と、
上記印刷条件同士の依存関係を示す依存関係データを記憶する依存関係データ記憶手段と、
上記印刷条件の設定可能範囲を示す設定可能範囲データであって、上記印刷装置の駆動環境を特定する駆動環境データを含む設定可能範囲データを記憶可能な設定可能範囲データ記憶手段と、
上記設定可能範囲データ記憶手段に現在の印刷装置の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記印刷条件設定手段によって特定の印刷条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の印刷条件に依存する他の印刷条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得手段と、
現在の印刷装置の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で印刷条件を設定するための選択肢を表示するとともに印刷条件の設定値の入力を受け付ける印刷条件入出力手段と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された印刷条件に依存する印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する印刷条件の設定可能範囲を表示する印刷条件更新手段と、
上記受け付けた設定値での印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付手段と、
同印刷を実行する指示に応じて上記受け付けた設定値での印刷条件にて印刷装置を駆動し、画像を印刷させる印刷制御手段とを具備することを特徴とする印刷制御装置。
【請求項１３】
コンピュータに接続される印刷装置の印刷条件をＵＩによって設定するとともに当該ＵＩで設定された印刷条件で印刷装置を制御する印刷制御方法であって、
上記印刷装置に対して印刷条件を設定し、印刷装置を駆動する印刷装置制御部において、印刷条件を設定しこの設定における他の印刷条件の設定可能範囲を取得可能であり、
上記印刷条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶しておき、
上記印刷条件の設定可能範囲を示す設定可能範囲データであって、上記印刷装置の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にしておき、
上記所定の記憶媒体に現在の印刷装置の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記印刷条件設定工程によって特定の印刷条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の印刷条件に依存する他の印刷条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得工程と、
現在の印刷装置の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で印刷条件を設定するための選択肢を表示するとともに印刷条件の設定値の入力を受け付ける印刷条件入出力工程と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された印刷条件に依存する印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する印刷条件の設定可能範囲を表示する印刷条件更新工程と、
上記受け付けた設定値での印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付工程と、
同印刷を実行する指示に応じて上記受け付けた設定値での印刷条件にて印刷装置を駆動し、画像を印刷させる印刷制御工程とを具備することを特徴とする印刷制御方法。
【請求項１４】
コンピュータに接続される印刷装置の印刷条件をＵＩによって設定するとともに当該ＵＩで設定された印刷条件で印刷装置を制御する印刷制御プログラムであって、
上記印刷装置に対して印刷条件を設定し、この設定における他の印刷条件の設定可能範囲を取得可能な印刷条件設定機能と、
上記印刷条件同士の依存関係を示す依存関係データを所定の記憶媒体に記憶する依存関係データ記憶機能と、
上記印刷条件の設定可能範囲を示す設定可能範囲データであって、上記印刷装置の駆動環境を特定する駆動環境データを含む設定可能範囲データを所定の記憶媒体に記憶可能にする設定可能範囲データ記憶機能と、
上記設定可能範囲データ記憶機能に現在の印刷装置の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに、上記印刷条件設定機能によって特定の印刷条件を特定の設定値に設定させ、上記依存関係データを参照して当該特定の印刷条件に依存する他の印刷条件の設定可能範囲を取得するとともに当該設定可能範囲を示す設定可能範囲データを所定の記憶媒体に記憶する設定可能範囲取得機能と、
現在の印刷装置の駆動環境に一致する環境データを含む設定可能範囲データを参照して上記印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で印刷条件を設定するための選択肢を表示するとともに印刷条件の設定値の入力を受け付ける印刷条件入出力機能と、
上記設定可能範囲データを参照して上記設定値の入力によって変更された印刷条件に依存する印刷条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する印刷条件の設定可能範囲を表示する印刷条件更新機能と、
上記受け付けた設定値での印刷条件にて印刷を実行する指示を受け付ける印刷実行指示受付機能と、
同印刷を実行する指示に応じて上記受け付けた設定値での印刷条件にて印刷装置を駆動し、画像を印刷させる印刷制御機能とをコンピュータに実現させることを特徴とする印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、駆動条件取得装置、駆動条件取得方法、駆動条件取得プログラム、ＵＩ制御装置、ＵＩ制御方法、ＵＩ制御プログラム、印刷制御装置、印刷制御方法および印刷制御プログラムに関する。
【背景技術】
【０００２】
印刷装置など、コンピュータの周辺機器を駆動するためには通常ドライバと呼ばれる制御プログラムが利用される。このドライバにおいては周辺機器を駆動するための駆動条件の設定を受け付け、この設定に従って周辺機器を駆動する。ここで、ディスプレイ等にＵＩ（User Interface）を表示し、このＵＩを通じて利用者に駆動条件を設定させるのが一般的である（例えば、特許文献１）。
【特許文献１】特願２００２−２５２７６９号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来の技術において、周辺機器を駆動するためには一般に複数の駆動条件を設定する必要があるが、駆動条件の中には互いに依存関係を有し、依存関係のある駆動条件同士では、一方の設定値が異なると他方の設定可能範囲が変動する。しかも、この設定可能範囲は周辺機器の駆動環境によって異なる。従って、駆動環境の変化によって変動する設定可能範囲を的確に把握することが望まれていた。特に、上記ＵＩとしてアプリケーションソフトウェアに特有のＵＩを表示する際に、駆動環境の変化によって変動する設定可能範囲を的確に取得する必要があった。
本発明は、上記課題にかんがみてなされたもので、周辺機器の駆動環境が変動した場合であっても的確に設定可能範囲を取得可能な駆動条件取得装置、駆動条件取得方法、駆動条件取得プログラム、ＵＩ制御装置、ＵＩ制御方法、ＵＩ制御プログラム、印刷制御装置、印刷制御方法および印刷制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するため本発明では、周辺機器の駆動環境毎に設定可能範囲データを記憶する構成において、既に記憶されている設定可能範囲データが示す駆動環境と現在の駆動環境とが一致していないとき、あるいは設定可能範囲データが記憶されていないときに、現在の周辺機器の駆動環境に対応した設定可能範囲データを作成する。このために、設定可能範囲取得手段においては、設定可能範囲データ記憶手段に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないときに設定可能範囲の取得処理を行う。設定可能範囲の取得処理は依存関係データを参照しつつ駆動条件設定手段によって特定の駆動条件を特定の設定値に設定させ、当該特定の駆動条件に依存する他の駆動条件の設定可能範囲を取得する。
【０００５】
すなわち、周辺機器の駆動環境が異なることによって設定可能範囲が異なる状況において、現在の周辺機器の環境に対応した設定可能範囲データを作成する。従って、周辺機器を駆動する際に、適正な設定可能範囲データを利用することが可能になる。特に、コンピュータの基本ソフトウェアであるＯＳに標準のＵＩを利用することなく、アプリケーションソフトウェアに固有のＵＩを利用して周辺機器の駆動条件を設定する構成においては、そのＵＩ毎に表示対象となる駆動条件が異なるし、依存関係のある駆動条件については一方の設定値によって他方の設定可能範囲が変動しうる。本発明においては、駆動環境毎に適正な設定可能範囲データを所定の記憶媒体に記憶しているため、当該他方の駆動条件について適正な設定可能範囲を容易に取得することができる。
【０００６】
上述のように駆動条件設定手段においても設定可能範囲を取得することが可能であるが、駆動条件設定手段においては実際に周辺機器に対して駆動条件を設定した上で他の駆動条件の設定可能範囲を取得するものであり、その好適な構成例は周辺機器を駆動するためのドライバ等が有する機能を利用して駆動条件設定手段を構成したものである。すなわち、ドライバはコンピュータ上のプログラム実行環境によって実行され、周辺機器に対して各種駆動条件を設定しながら駆動を制御するプログラムであり、このドライバにおいてある駆動条件をある設定値に設定すると、他の駆動条件についてある設定値に設定できないような状況が発生する。
【０００７】
そこで、ソフトウェアインタフェースによってドライバに対して各種指示および問い合わせを実施可能に構成し、ドライバにおいてある駆動条件をある設定値に設定し、この状態で他の駆動条件について各設定値を設定可能であるか否かを判別すれば設定可能範囲を取得することができる。すなわち、コンピュータにおいて周辺機器を駆動するドライバがインストールされた状態でドライバに対して駆動条件の設定と設定可能範囲の取得を実施可能に構成すれば、設定可能範囲取得手段において依存関係データによって判明する依存関係に従って必要な駆動条件の設定可能範囲を問い合わせるのみで容易に設定可能範囲を取得することができる。
【０００８】
かかる構成の駆動条件設定手段においては、周辺機器に対して駆動条件を設定する処理動作とその設定後に他の駆動条件の設定可能範囲を問い合わせる処理動作を行う必要があるし、複数の駆動条件について設定可能範囲を取得しようとすれば、逐一設定動作を繰り返した上で設定可能範囲を取得する動作も繰り返す必要があって処理に時間を要する。一方、本発明によれば設定可能範囲データが所定の記憶媒体に記憶され、上記所定の記憶媒体に記憶されている設定可能範囲データを参照するのみで設定可能範囲を取得できるように構成することができ、高速に設定可能範囲取得動作を行うことができる。そこで、本発明では、周辺機器の駆動環境が異なることによって設定可能範囲が異なる状況において、予め設定可能範囲データを作成することとした。
【０００９】
尚、上記固有のＵＩにおいては、ＵＩに対して表示する駆動条件を周辺機器を制御する際の目的に応じて適宜選択すればよい。例えば、はがきや伝票など特定の印刷媒体に対して印刷を実行するためのアプリケーションソフトウェアであれば駆動条件として印刷媒体サイズを選択するためのＵＩを表示させる必要はないし、高画質のカラー画像を印刷するためのアプリケーションソフトウェアであれば駆動条件としてモノクロあるいはカラーの選択をするためのＵＩを表示する必要はない。むろん、ＵＩ上に表示する駆動条件の項目を必要最小限にするとしても、詳細な設定を行いたい利用者のためにオプションとして他の駆動条件を設定可能に構成しておいてもよい。
【００１０】
また、上記駆動条件は周辺機器を駆動する際に設定を要する各種の条件であり、周辺機器を駆動する際に利用者の選択やコンピュータによる自動設定等によって設定されるべきものである。例えば、プリンタにおける印刷解像度，印刷媒体の種類やサイズ等である。ほとんどの駆動条件については選択の幅があり、その幅が設定可能範囲となる。また、駆動環境は周辺機器がおかれた状況、周辺機器の設備、機材等であって、周辺機器の駆動前にその周辺機器やコンピュータ等の状況から客観的に特定されるべきものである。
【００１１】
また、複数の駆動条件において駆動条件同士が複雑に依存するが、この依存関係は予め依存関係データに記述されているので、この依存関係データを参照することにより、特定の駆動条件の設定値が変動した場合にいずれの駆動条件の設定範囲が変動するのかを把握することができ、複雑な依存関係を加味した上で設定可能範囲を取得することができる。むろん、周辺機器の駆動環境によって依存関係が変動しうる場合には、周辺機器の駆動環境毎に予め異なる依存関係データを作成するとともに駆動環境データを当該依存関係データに含むように構成し、設定可能範囲取得手段にて現在の駆動環境に一致する駆動環境データを含む依存関係データを参照するように構成すればよい。
【００１２】
ここで、周辺機器としては、コンピュータに接続されて駆動される機器であればよく、種々の機器がこの周辺機器に該当する。例えば、コンピュータに接続されて画像の出力動作を行うプリンタやディスプレイ，プロジェクタ等の出力機器や、コンピュータに接続されて画像の入力動作を行うスキャナやデジタルカメラ等の入力機器や、コンピュータに接続されたデータの記録動作を行うハードディスクドライブ等の記録機器等、種々の機器が周辺機器となり得る。
【００１３】
依存関係データにおいては、特定の駆動条件の設定値が異なると他の駆動条件にて設定可能な設定値の範囲が変動する場合に依存関係がある駆動条件同士を特定することができればよい。すなわち、この依存関係データによって駆動条件同士の依存関係を把握することにより、依存関係のある駆動条件について設定可能範囲を取得することができ、依存関係のない駆動条件についてまで設定可能範囲を取得する処理を実行することを防止し、必要最低限の処理工程で設定可能範囲データを作成することができる。
【００１４】
また、設定可能範囲データは、周辺機器に対して駆動条件を設定するためのＵＩを表示する際に利用することができればよく、各駆動条件について設定可能な設定値の範囲を示すことができればよい。むろん、特定の駆動条件と他の駆動条件とに依存関係が存在する場合には、特定の駆動条件の設定値を特定するデータとその設定値であるときの他の駆動条件の設定可能範囲を特定するデータとによって設定可能範囲データを構成する。また、ここで、駆動条件の設定値といっても、その値が各条件に対応していればよく、数値のみには限られない。すなわち、駆動条件を文字列で特定する場合も含む。但し、コンピュータにて扱う機器においては各条件を数値に対応付け、数値によって駆動条件を指定する構成が好ましい。尚、文字列によって設定可能範囲を記述するデータにおいては、駆動条件の選択肢をＵＩ上に示すに際して、設定可能範囲が変動することによってＵＩ上の文字列も変更することが可能である。
【００１５】
設定可能範囲データ記憶手段は、設定可能範囲データを記憶可能であればよいので、設定可能範囲データが記憶済みであることが必須ではない。すなわち、設定可能範囲データが記憶されていなければ、設定可能範囲取得手段は現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されていないとして設定可能範囲を取得する。むろん、記憶済みであれば、記憶済みの設定可能範囲データの駆動環境データが現在の周辺機器の駆動環境に一致するか否かを判断すればよい。
【００１６】
駆動環境データは周辺機器の駆動環境を特定することができればよく、駆動環境は周辺機器がおかれた状況、周辺機器の設備、機材等を示すデータを設定可能範囲データの一部として記述すればよい。駆動環境としては種々のものを採用可能である。例えば、周辺機器の設備として周辺機器の機種を示すデータを駆動環境データとして採用することが可能である。すなわち、周辺機器の機種が異なる場合にはその駆動条件の依存関係および設定可能範囲が異なり得るので、周辺機器の機種を示す駆動環境データを設定可能範囲データに記述することにより、設定可能範囲取得手段において機種毎の設定可能範囲データを作成することが可能になる。
【００１７】
周辺機器がおかれた状況としては、駆動条件設定手段の更新の有無やコンピュータでのロケール情報等が挙げられる。すなわち、駆動条件設定手段は上述のようにドライバ等によって形成可能であり、ドライバは機能改善やデバッグ等によってバージョンアップされることがある。このバージョンアップによって駆動条件の依存関係および設定可能範囲が異なり得る。そこで、駆動環境データとして駆動条件設定手段の更新の有無を示すデータ、例えば、ドライバのバージョンを示すデータを駆動環境データとして採用することが可能である。この結果、設定可能範囲取得手段においてドライバ毎の設定可能範囲データを作成することが可能になる。
【００１８】
コンピュータでのロケールを示すデータを駆動環境データとして採用するのは、設定可能範囲データを当該コンピュータで利用することを考慮したものである。すなわち、ロケール情報はコンピュータの使用国，言語等を示す情報であり、ロケール情報が異なれば、上記ＵＩ上に表示する文字列も異なる。従って、ロケール情報を駆動環境データとすることにより、ロケール情報が異なる場合に異なる設定可能範囲データを作成することが可能になる。この結果、コンピュータでの標準使用言語を変更等した場合にその言語に対応した設定可能範囲データを作成することが可能になり、上記ＵＩ上でその言語に対応した適切な設定可能範囲データを参照することができる。
【００１９】
さらに、周辺機器の設備、機材を示すデータとしては、周辺機器の構成部品を示すデータが挙げられる。すなわち、周辺機器を構成する部品、例えば、例えば、プリンタにおけるインクの変更，カッター等の付属品の装着やスキャナにおける光源部品の交換、透過原稿スキャンユニットの着脱等により依存関係および設定可能範囲が変動しうる。そこで、これら周辺機器の構成部品を示すデータを駆動環境データとして採用することにより、周辺機器の構成部品が異なる場合に、設定可能範囲取得手段よって構成部品毎に異なる設定可能範囲データを作成することが可能になる。
【００２０】
上述のように、設定可能範囲取得手段では設定可能範囲データ記憶手段に現在の周辺機器の駆動環境に一致する駆動環境データを含む設定可能範囲データが記録されているか否かを判定することができればよい。この判定のために、現在の周辺機器の駆動環境を取得するための構成例としては、周辺機器の駆動環境の指定を受け付ける駆動環境受付部を備え、当該指定を受け付ける際に上記現在の周辺機器の駆動環境を判断する構成を採用すればよい。
【００２１】
すなわち、周辺機器をコンピュータに接続して使用可能にする際には、周辺機器を駆動するにあたり、前もって所定のＵＩにて周辺機器の機種など駆動環境の一部あるいは全部をユーザに指定させることが多い。周辺機器を駆動する直前にＵＩにて駆動環境を指定させる構成においては、この指定時に周辺機器の駆動環境が確定し、この駆動環境にて周辺機器を駆動することになるので、このタイミングで駆動環境を取得することによって現在の駆動環境かつ周辺機器を駆動する実際の駆動環境を取得することが可能になる。
【００２２】
尚、駆動環境を指定する駆動環境受付部においてはデフォルトとして指定された駆動環境を受け付けても良いし、利用者が指定した駆動環境を受け付けても良い。より具体的には、コンピュータに対してプリンタやスキャナ等が複数接続されている場合であって、これらのプリンタやスキャナ等を使用する際にＵＩにて駆動条件を指定する可能であるとともにプリンタやスキャナの機種名を指定して駆動を行うような場合が相当する。このように駆動環境について指定を受け付けたときに現在の駆動環境を把握すれば、当該指定と現在の駆動環境とが合致しているか否かあるいは当該指定通りの駆動環境を実現できるか否かを判定し、合致していあるいは実現できない場合にエラー表示等を実施することが可能になる。
【００２３】
さらに、現在の周辺機器の駆動環境を判断するための他の構成例として、コンピュータが起動されているとき、所定のタイミングで上記現在の周辺機器の駆動環境を判断してもよい。すなわち、かかる構成によれば、駆動環境の変更後、利用者が上記ＵＩ等によって明示的に駆動環境の変化を指定することがなかったとしても現在の駆動環境を判断することができる。所定のタイミングとしては、予め決められたタイミングであればよく、定期的であってもよいし、周辺機器を駆動するためのＵＩの表示を開始したタイミングであってもよく、種々のタイミングを採用可能である。
【００２４】
駆動環境を判断する際には、上記駆動環境データと現在の駆動環境とを比較することができればよく、駆動環境を判断するための構成としては種々のものを採用可能である。例えば、周辺機器と通信を実施可能に構成し、当該通信によって周辺機器の機種および周辺機器の構成部品を示すデータを取得するように構成しても良い。かかる構成によれば、周辺機器の構成部品を交換したことを利用者が明示的に示さなくても現在の駆動環境を判断することができる。上述のようにＵＩを表示する際に設定可能範囲データを参照する構成においては、利用者が明示的に周辺機器の構成部品交換、例えば、インクセットの変更等を指示しなくても、ＵＩにおいては、そのインクセットを反映した設定可能範囲を提示することが可能になる。
【００２５】
むろん、コンピュータにおいては周辺機器を駆動するために、上述のようにドライバを利用し、当該ドライバは周辺機器の機種に対応しているので、当該ドライバの利用するデータとして機種名を示すデータを記憶させておき、機種名の問い合わせに対して当該データを参照するとともに機種名を返信するような構成を採用しても良い。また、同様の構成において、ドライバのバージョンを返信する構成を採用しても良い。すなわち、ドライバのバージョンを示すデータを記憶させておき、問い合わせに対して当該データを参照する構成を採用可能である。さらに、上述のロケール情報はＯＳの設定であることが一般的であるため、ＯＳの設定を参照したり、ＯＳが所定の記憶媒体に記録したロケール情報を参照する構成等により、当該ロケール情報を取得する構成にすることができる。
【００２６】
さらに、本発明の好ましい構成例として、設定可能範囲データを所定の記憶媒体に記憶するにあたり、記憶済みの設定可能範囲データを更新せずに保持する構成を採用可能である。すなわち、本発明では既存の駆動環境データが現在の駆動環境と一致していないとき、あるいは現在の駆動環境と一致する駆動環境データの設定可能範囲データが存在しないときに現在の駆動環境に合致した設定可能範囲データを作成するが、駆動環境が以前のものに戻る場合もある。そこで、既存の設定可能範囲データを消去するのではなく、保持することにより、駆動環境が以前のものに戻った場合に再度設定可能範囲データを作成することなく以前の設定可能範囲データを利用することが可能になる。
【００２７】
上述のように、現在の駆動環境に応じた設定可能範囲データを作成する手法は必ずしも実体のある装置に限られるものではなく、請求項７に記載した発明のように方法の発明としても有効である。また、上述の装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としては、各種の態様を含むものである。また、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【００２８】
発明の思想の具現化例として駆動条件取得装置のソフトウェアとなる場合には、かかるソフトウェアも本発明に相当する。その一例として、請求項８に記載した発明では駆動条件取得プログラムとして発明を特定している。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。さらに、これらの駆動条件取得方法、駆動条件取得プログラムにおいて上記請求項２〜請求項６に対応した構成にすることも可能である。
【００２９】
さらに、現在の駆動環境に応じた設定可能範囲データを作成し、この設定可能範囲データを参照してＵＩを表示する発明として、請求項９〜請求項１１に記載の構成を採用しても良い。また、周辺機器として印刷装置を採用した場合に、上述のＵＩによって駆動条件としての印刷条件を設定し、印刷を実行する構成においても依存関係データを参照して設定可能範囲データを作成することができる。このため、請求項１２〜請求項１４のような構成を採用しても良い。むろん、これらの発明においても上記請求項２〜請求項６に対応した構成にすることも可能である。
【発明を実施するための最良の形態】
【００３０】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）本発明の構成：
（１−１）ＵＩ制御モジュールの構成：
（２）プリンタＤＢの構成：
（３）リソースＤＢの構成：
（４）印刷制御処理およびＵＩ表示例：
（５）リソースＤＢの構築処理：
（６）他の実施形態：
【００３１】
（１）本発明の構成：
図１は本発明にかかる印刷制御装置となるコンピュータの概略構成を示すブロック図である。コンピュータ１０は演算処理の中枢をなす図示しないＣＰＵや記憶媒体としてのＲＯＭやＲＡＭ１４等を備えており、ＨＤＤ１５等の周辺機器を利用しながら所定のプログラムを実行することができる。コンピュータ１０にはシリアル通信用Ｉ／Ｏ１９ａを介してキーボードやマウス等の操作用入力機器が接続されており、ディスプレイ用Ｉ／Ｏ１９ｃを介して表示用のディスプレイも接続されている。さらに、プリンタ４０とはＵＳＢ用Ｉ／Ｏ１９ｂを介して接続されている。図１においては、コンピュータ１０に複数のプリンタ４０ａ〜４０ｎ（符号に併記するｎは任意の複数を採用可能であることを示す。以下同じ）が接続されている状態を示している。
【００３２】
本実施形態におけるプリンタ４０は複数色のインクを充填するインクカートリッジを色毎に着脱可能な機構を備えており、この機構にＣＭＹＫｌｃｌｍＧ（シアン，マゼンタ，イエロー，ブラック，ライトシアン，ライトマゼンタ，グレー）の各インクのカートリッジを搭載可能である。また、本実施形態におけるプリンタ４０は、Ｋインクとして光沢紙および普通紙で使用するフォトブラックとマット紙での画質を優先したマットブラックとの２種類のＫインクを使用可能である。
【００３３】
プリンタ４０においては、各Ｋインクのいずれかを利用することもできるし、Ｇインクの代わりにマットブラックのインクカートリッジを２本搭載して使用することもできる。尚、Ｇインクは溶媒内に黒色の色剤が含まれるインクであるが、Ｋインクと比較して色剤の濃度が小さいため、Ｇインクを使用することにより、高精度の階調変化を表現することが可能である。プリンタ４０では各インクを組み合わせて多数の色を形成可能であり、これにより印刷媒体上に画像を形成する。
【００３４】
むろん、プリンタ４０で使用可能にするインク色は一例であり、他にもダークイエローインクを利用可能にしてもよいし、レッドインクやバイオレットインク等を利用可能にしてもよいし、光沢感を調整する無色インクを利用可能にしてもよい。また、色数としても７色に限られないし、色の組み合わせとしても上述の組み合わせには限られない。本実施形態におけるプリンタ４０は、いわゆるインクジェット方式のプリンタであり、各インクが充填されたヘッドの内部でインクに対して力を作用させ各インクを吐出する。このとき、ピエゾ素子に対して電圧を印加してインクに対して吐出力を作用させてもよいし、ヘッド内でバブルを形成してインクに対して吐出力を作用させてもよい。また、インクジェット方式の他にもレーザー方式等、種々のプリンタに対して本発明を適用可能である。
【００３５】
本コンピュータ１０の構成は簡略化して説明しているが、パーソナルコンピュータとして一般的な構成を有するものを採用することができる。むろん、本発明が適用されるコンピュータはパーソナルコンピュータに限定されるものではない。また、コンピュータ１０とプリンタ４０の接続インタフェースも上述のものに限る必要はなくパラレルインタフェースやＳＣＳＩ接続，無線接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【００３６】
さらに、本実施形態においてはコンピュータ１０によって印刷制御装置を構成しているが、プリンタ４０に搭載するプログラム実行環境によって本発明にかかる印刷制御処理を実施可能に構成し、プリンタ４０に対して直接的に接続されるデジタルカメラから画像データを取得して印刷制御処理を行ってもよい。ＵＩはプリンタ４０に搭載する小型の液晶ディスプレイに表示しても良いし、デジタルカメラに搭載する液晶ディスプレイに表示しても良い。むろん、同様の構成においてデジタルカメラにて印刷制御処理を実施してもよいし、他にも分散処理によって本発明にかかる印刷制御処理を実施するなど種々の構成を採用可能である。画像を取り込むスキャナと画像を印刷するプリンタとが一体となったいわゆる複合機において本発明にかかる印刷制御処理を行ってもよい。
【００３７】
本実施形態にかかるコンピュータ１０では、プリンタドライバ（ＰＲＴＤＲＶ）２１と入力機器ドライバ（ＤＲＶ）２２とディスプレイドライバ（ＤＲＶ）２３とがＯＳ２０に組み込まれている。ディスプレイＤＲＶ２３はディスプレイにおける画像データ等の表示を制御するドライバであり、入力機器ＤＲＶ２２はシリアル通信用Ｉ／Ｏ１９ａを介して入力される上記キーボードやマウスからのコード信号を受信して所定の入力操作を受け付けるドライバである。
【００３８】
ＡＰＬ２５は、カラー画像のレタッチ等を実行可能なアプリケーションプログラムであり、利用者は当該ＡＰＬ２５の実行下において上記操作用入力機器を操作して当該カラー画像をプリンタ４０にて印刷させることができる。すなわち、ＡＰＬ２５の画像処理部２５ａは利用者の指示によりＨＤＤ１５に記録された画像データ１５ａをＲＡＭ１４に読み出して、ディスプレイＤＲＶ２３を介して当該画像データ１５ａに基づく画像をディスプレイ上に表示させる。利用者が上記入力機器を操作するとその操作内容が入力機器ＤＲＶ２２を介して取得されて内容が解釈されるようになっており、画像処理部２５ａはその操作内容に応じてコントラスト調整等種々の画像処理を行う。
【００３９】
上記画像データ１５ａはＲＧＢ（レッド，グリーン，ブルー）の各色成分を階調表現して各画素の色を規定したドットマトリクス状のデータであり、本実施形態では各色２５６階調であり、ｓＲＧＢ規格に従った表色系を採用した画像データである。本実施形態においてはこの画像データ１５ａを例にして説明するが、ＹＣｂＣｒ表色系を採用したＪＰＥＧ画像データやＣＭＹＫ表色系を採用した画像データ等、種々のデータを採用可能である。むろん、Ｅｘｉｆ２．２規格（Ｅｘｉｆは社団法人電子情報技術産業協会の登録商標）に準拠したデータ、Print Image Matching（PIM:PIMはセイコーエプソン株式会社の登録商標）に対応したデータ等について本発明を適用することもできる。
【００４０】
ＡＰＬ２５においては、画像処理部２５ａにおける画像処理後の画像等についてプリンタ４０で印刷を実行させることが可能であり、印刷に際しては利用者に対して印刷条件項目の設定を行わせるＵＩを表示し、ＵＩでの指示に従って印刷を実行させる。このためにＡＰＬ２５はＵＩ表示制御部２５ｂと印刷実行部２５ｃとを備えており、ＵＩ表示制御部２５ｂでは印刷条件項目を設定するＵＩを表示するためのデータをディスプレイＤＲＶ２３に対して出力する。また、ＵＩ上で表示すべき印刷条件項目の設定可能範囲および項目間の依存関係を示すデータであって、現在の印刷装置の駆動環境に合致したデータをＵＩ制御モジュール３０から取得する。
【００４１】
印刷条件項目は、印刷を実行するために必要な複数の条件の項目であり、印刷解像度，インクの種類（カラー、モノクロの選択やインクセット（インク色の組み合わせ）の選択），印刷媒体の種類やサイズ，印刷時のレイアウト，縁なし印刷の可否，印刷品質（きれい、はやい等），カラーマネジメントの種類（自動調整の可否やディスプレイの色域を超えた色の使用可否等），双方向印刷の可否，ドライバによる画像処理の可否等、ＰＲＴＤＲＶ２１に対して設定可能な種々の印刷条件項目がある。尚、本実施形態においては、上述のように印刷解像度やインクの種類など、項目毎に印刷条件を設定するようになっているため異なる印刷条件を項目として区別する。また、各印刷条件の設定内容はその内容に対応した数値（設定値）で特定するようになっており、この数値を項目値と呼ぶ。
【００４２】
また、ＵＩ表示制御部２５ｂでは、上述のＵＩをディスプレイ上に表示し、このＵＩに従って利用者が行う操作入力内容を上記入力機器ＤＲＶ２２を介して取得し、操作入力によって指定された各印刷条件項目の項目値を取得する。ここで取得した項目値は仮設定値として保持しておく。尚、前回の印刷実行時における印刷条件項目の項目値は所定の記憶媒体に保持されており、ＵＩを表示する際にこの項目値が表示される。従って、利用者が設定を行わない印刷条件項目については前回の項目値がそのまま設定されることになる。
【００４３】
印刷条件項目において設定可能な項目値は他の印刷条件項目の項目値に依存している場合があり、この場合、ある項目値を設定したことによって他の印刷条件項目で設定可能な項目値の範囲が変動する。さらに、この依存関係および設定可能な項目値の範囲は印刷を実行する際の印刷装置の駆動環境によって変動する。本実施形態におけるＵＩ表示制御部２５ｂはＵＩ制御モジュール３０から上述のように現在の駆動条件に合致した設定可能範囲および項目間の依存関係を示すデータを取得し、このデータを参照して、ある項目値を設定したことによって設定可能範囲に影響がある他の印刷条件項目についてＵＩの表示を更新する。この結果、ＵＩ表示上の設定可能範囲は他の印刷条件項目の設定値および現在の駆動条件に対応した適切な範囲となる。
【００４４】
尚、本実施形態にかかるＵＩでは、後述するように、一画面で少数の印刷条件項目を表示させ、その項目について入力を実施したときには画面を切り替えて他の印刷条件項目を表示させる構成としている。従って、ある画面である印刷条件項目値を設定して次の画面に進んだ場合とある画面で他の印刷条件項目値を設定して次の画面に進んだ場合とではＵＩ上の選択可能範囲が異なり得る。印刷条件項目の項目値や上記現在の駆動環境に応じて設定可能範囲がなくなる場合には、その印刷条件項目を設定させるＵＩは表示させない。従って、画面を切り換えて印刷条件項目を表示させる本実施形態において、ある駆動環境では表示され、ある駆動環境では表示されないＵＩ画面が生じうる。
【００４５】
むろん、一画面で表示されている複数の印刷条件項目について依存関係があるときには、ある印刷条件項目の設定や駆動環境によって他の印刷条件項目の設定範囲が変化し得るので、この場合、選択不可能な印刷条件項目の項目値を選択肢として表示せず、選択可能な印刷条件項目の項目値を選択肢として表示する。また、一画面で多数の印刷条件項目を表示させる場合も同様であり、ある印刷条件項目の設定によって他の印刷条件項目の設定範囲が変化した場合には、選択不可能な印刷条件項目の項目値を選択肢として表示させず、選択可能な項目値を選択肢として表示する。
【００４６】
さらに、ＵＩ表示制御部２５ｂでは非常に多くの印刷条件項目の中で、ＡＰＬ２５による印刷に必要な印刷条件項目のみを変更可能なＵＩを表示するようになっており、ＵＩ表示されていない印刷条件項目については所定の記憶媒体に保持されたデフォルトの項目値が使用される。例えば、はがき印刷に特化したＡＰＬであればはがきサイズ以外の印刷用紙を選択する必要がないので、印刷条件項目としての印刷媒体のサイズをはがきサイズで固定するなどの構成が採用可能である。かかる構成により、ＡＰＬの作成者がＵＩに表示する印刷条件項目を予め決めておくことができ、必要以上に煩雑なＵＩを表示せず、利用者にわかりやすいインタフェースを提供することが可能になる。
【００４７】
また、このＵＩにおいては印刷実行指示を行うことが可能であり、ＵＩ表示制御部２５ｂがＵＩ上の操作内容に基づいて当該印刷実行指示を検出したときに印刷実行部２５ｃでの処理が開始される。印刷実行部２５ｃは上述のようにして仮設定値として保持された各印刷条件項目の項目値を印刷条件としてＰＲＴＤＲＶ２１に設定させ、印刷対象の画像データをＰＲＴＤＲＶ２１に受け渡す。ＰＲＴＤＲＶ２１は、解像度変換や色変換，ハーフトーン処理等の処理を行う図示しないモジュールを備えており、各モジュールによって印刷対象の画像データに対して印刷条件項目の項目値に応じた処理が実施され、印刷データが生成される。生成された印刷データはＵＳＢ用Ｉ／Ｏ１９ｂを介してプリンタ４０に出力され、プリンタ４０は当該印刷データに基づいて印刷を実行する。尚、ＰＲＴＤＲＶ２１は各プリンタ４０ａ〜４０ｎに専用のモジュールであり、図１においては各機種用にＰＲＴＤＲＶ２１ａ〜２１ｎがインストールされている状態を示している。
【００４８】
（１−１）ＵＩ制御モジュールの構成：
上記ＵＩ制御モジュール３０は、上記ＵＩ表示制御部２５ｂに対してＵＩ表示に必要な印刷条件項目の設定可能範囲と依存関係および印刷条件項目の項目値を示す適切なデータを受け渡す処理を司っており、本実施形態においてはこのモジュールによって複雑な依存関係のある印刷条件項目について項目値の変更に応じて高速に表示を変更可能にしている。また、現在の駆動環境に的確に対応した設定可能範囲を表示するようにしている。このために、ＵＩ制御モジュール３０は、項目値仮設定部３１と項目値取得部３２と項目値設定可能範囲取得部３３とリソースＤＢ作成部３４と項目値設定部３５とを備えている。
【００４９】
ＵＩ制御モジュール３０は、ＵＩ表示制御部２５ｂにおいて駆動環境毎の印刷条件項目の設定可能範囲と依存関係を高速に取得できるようにするため、上記ＵＩ上で選択された各印刷条件項目の項目値を仮設定として保持し、予め駆動環境毎に作成されたデータベースを参照してこの仮設定がなされた場合の設定可能範囲および依存関係をＵＩ表示制御部２５ｂに返すように構成されている。このために、少なくともＵＩ制御の開始前にはＨＤＤ１５にプリンタＤＢ１５ｂ１〜１５ｂｎとリソースＤＢ１５ｃ１〜１５ｃｎとが記録されているようにしてある。ここで、プリンタＤＢ１５ｂ〜１５ｂｎのそれぞれは上記プリンタ４０ａ〜４０ｎの各機種に対応したデータベースであり、リソースＤＢ１５ｃ１〜１５ｃｎのそれぞれは上記プリンタ４０ａ〜４０ｎの各機種に対応したデータベースである。
【００５０】
本実施形態において、プリンタＤＢ１５ｂ１〜１５ｂｎは各印刷条件項目間の依存関係を記述したデータベースであり、ＰＲＴＤＲＶ２１のインストール時にＨＤＤ１５に記録される。リソースＤＢ１５ｃ１〜１５ｃｎには、各印刷条件項目の上位項目およびその上位項目の各項目値での印刷条件項目値が記録されている。従って、ある印刷条件項目の項目値が変更されたとき、この項目を上位項目とする印刷条件項目が取り得る項目値を取得することができ、設定可能範囲を取得することができると言える。尚、上位項目はある印刷条件項目と他の印刷条件項目とにおいて、ある印刷条件項目の項目値が決定すると他の印刷条件項目の項目値の設定可能範囲が決定するという関係にある場合の前者である。
【００５１】
また、プリンタの機種が異なると印刷条件の依存関係および設定可能範囲が異なり得るため、本実施形態においてはプリンタ毎のプリンタＤＢ１５ｂ１〜１５ｂｎおよびリソースＤＢ１５ｃ１〜１５ｃｎを利用してプリンタの機種毎に依存関係データおよび設定可能範囲データを参照できるようにしている。本実施形態においては、さらに駆動環境を特定する情報としてＰＲＴＤＲＶ２１ａ〜２１ｎのバージョンとインクセットとを示す情報を参照できるようにしてあり、同じプリンタであってもＰＲＴＤＲＶ２１ａ〜２１ｎのバージョンが異なれば異なるリソースＤＢが作成されるし、インクセットが異なれば異なるリソースＤＢが作成され、予めＨＤＤ１５に記録される。
【００５２】
ＵＩ制御モジュール３０のリソースＤＢ作成部３４は当該リソースＤＢの作成を司っており、ソフトウェアＩ／Ｆ２７を利用し、上記プリンタＤＢ１５ｂ１〜１５ｂｎを参照してリソースＤＢ１５ｃ１〜１５ｃｎを作成する。すなわち、ソフトウェアＩ／Ｆ２７はＰＲＴＤＲＶ２１とデータの授受を行い、各項目値の取得、設定可能範囲の取得、各項目値の設定、現在の駆動環境データの取得を実施可能に構成されており、リソースＤＢ作成部３４はソフトウェアＩ／Ｆ２７を介して各項目値を設定しながら依存関係のある項目値について設定可能範囲を取得する。
【００５３】
印刷条件は上述のように依存関係があるが、ソフトウェアＩ／Ｆ２７によって特定の印刷条件項目の上位項目値を固定した状態で当該特定の印刷条件項目の設定可能範囲を取得することができる。従って、上位項目について値を設定し、設定可能範囲を取得する作業を上位項目が取り得る総ての項目値について繰り返せば、特定の印刷条件項目についての設定可能範囲および依存関係を取得することができる。むろん、依存関係のない印刷条件項目について繰り返し作業をする必要はない。
【００５４】
このソフトウェアＩ／Ｆ２７においては、所定の処理時間を要するものの、当該繰り返し作業によって設定可能範囲を取得することができる。そこで、この依存関係および設定可能範囲を示すデータを作成してリソースＤＢ１５ｃ１〜１５ｃｎとすることができる。むろん、上記依存関係のない印刷条件項目についてもリソースＤＢ１５ｃ１〜１５ｃｎに対して設定可能範囲を記録しておく。
【００５５】
本実施形態においては、リソースＤＢを作成するにあたり、現在の駆動環境に一致する駆動環境データを含むリソースＤＢがＨＤＤ１５に記録されているか否かを判別する。すなわち、ＵＩ表示制御部２５ｂにてＵＩを表示する前には現在の駆動環境における設定可能範囲データを示すリソースＤＢをＨＤＤ１５に記録しておくようにするため、リソースＤＢ作成部３４は現在の駆動環境を示すデータを取得する。このためにＰＲＴＤＲＶ２１ａ〜２１ｎは通信部（図１ではＰＲＴＤＲＶ２１ａについてのみ通信部２１ａ１として示している）を備えており、プリンタ４０ａ〜４０ｎはそのメモリ内に自身の機種名およびインクセットを示すデータを保持している。
【００５６】
上記通信部２１ａ１等はＵＳＢ用Ｉ／Ｏ１９ｂを介してプリンタと通信を実施し、上記プリンタの機種名およびインクセットを示すデータを取得可能である。さらに、ソフトウェアＩ／Ｆ２７はＰＲＴＤＲＶ２１ａ〜２１ｎに対して問い合わせを行い、上記通信部が取得したプリンタの機種名およびインクセットを示すデータおよび各ＰＲＴＤＲＶ２１ａ〜２１ｎのバージョンを示すデータを取得可能である。そこで、リソースＤＢ作成部３４はソフトウェアＩ／Ｆ２７を介して上記プリンタの機種名およびインクセットを示すデータおよび各ＰＲＴＤＲＶ２１ａ〜２１ｎのバージョンを示すデータを取得する。このデータは、同データを取得した時点での駆動環境、すなわち現在の駆動環境を示すデータに相当する。
【００５７】
各リソースＤＢ１５ｃ１〜１５ｃｎには、それぞれのリソースＤＢ１５ｃ１〜１５ｃｎに記述した設定可能範囲を適用すべき駆動環境を示す駆動環境データが記述されている。従って、上記リソースＤＢ作成部３４は、ＨＤＤ１５に記録済みのリソースＤＢを参照し、上記現在の駆動環境を示すデータと比較することで、現在の駆動環境に一致する駆動環境データを含むリソースＤＢがＨＤＤ１５に記録されているか否かを判別することができる。このとき、現在の駆動環境に一致する駆動環境データを含むリソースＤＢがＨＤＤ１５に記録されていると判別されれば、リソースＤＢ作成部３４においてリソースＤＢを作成する動作は実施しないし、記録されていると判別されなければリソースＤＢ作成部３４においてリソースＤＢを作成する動作を実施する。
【００５８】
この結果、本実施形態においては、コンピュータ１０においてあるプリンタの機種が初めて印刷に使用されるときにその機種に対応したリソースＤＢが作成される。また、ＰＲＴＤＲＶ２１ａ〜２１ｎのバージョンが更新された後、そのドライバで初めてプリンタを制御するときにそのドライバに対応したリソースＤＢが作成される。さらに、プリンタ４０において使用するインクを変更したときに変更後のインクで初めて印刷を実行するときにそのインクセットに対応したリソースＤＢが作成される。一旦作成された後にはＨＤＤ１５に保持される。従って、同じリソースＤＢを重複して作成することはない。尚、リソースＤＢ１５ｃ１〜１５ｃｎの作成および各データベースの内容については後に詳述する。
【００５９】
ＵＩ表示制御部２５ｂがＵＩを作成する際には、項目値設定可能範囲取得部３３がリソースＤＢ１５ｃ１〜１５ｃｎあるいはプリンタＤＢ１５ｂ１〜１５ｂｎを参照し、ＵＩ表示対象の印刷条件項目についてその設定可能範囲を示すデータをＵＩ表示制御部２５ｂに受け渡す。また、項目値取得部３２は、印刷条件項目について現在の項目値を取得する。従って、ＵＩ表示制御部２５ｂは各印刷条件項目について上述の設定可能範囲を選択肢として表示するとともに、現在の項目値をデフォルトとして選択した状態のＵＩを形成し、表示することが可能になる。
【００６０】
ここで、現在の項目値は、項目値取得部３２が処理を行う時点での項目値であり、画像印刷のためにＵＩを表示する初期においてはソフトウェアＩ／Ｆ２７を介して前回の印刷実行時における印刷条件項目の項目値を取得する。上記項目値取得部３２によって取得された前回の項目値はＵＩ表示制御部２５ｂに現項目値として受け渡されるとともに、仮設定値１４ａとしてＲＡＭ１４に記録される。
【００６１】
ＵＩが表示されてから印刷が実行されるまでに一度でもＵＩ上で項目値を変更した場合に、項目値取得部３２はソフトウェアＩ／Ｆ２７を介して項目値を取得することなく仮設定値１４ａが示す項目値を現項目値としてＵＩ表示制御部２５ｂに出力する。従って、ＵＩ表示制御部２５ｂによってＵＩを表示する際に、ソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１とデータの授受を実行する必要が無く、高速に現項目値を取得することができる。
【００６２】
項目値仮設定部３１は、上記ＵＩ表示制御部２５ｂによって項目値の変更が受け付けられたときに、その項目値を仮設定値として取得し、ソフトウェアＩ／Ｆ２７を介して当該仮設定値をＰＲＴＤＲＶ２１に対して設定することなく仮設定値１４ａとしてＲＡＭ１４に記録する。従って、ＵＩ上で変更がなされた項目値についてはＲＡＭ１４の仮設定値１４ａが更新され、この段階でＰＲＴＤＲＶ２１に対して項目値の更新は行われない。
【００６３】
仮設定値１４ａが更新されてから上記項目値取得部３２で仮設定値１４ａを取得し、項目値設定可能範囲取得部３３が設定可能範囲を取得すれば、ＵＩ表示制御部２５ｂにおいて項目値の更新に応じて適宜設定可能範囲を変更したＵＩを表示させることができる。すなわち、項目値が更新されたことによって依存関係のある項目の設定可能範囲が変動したとしても、その都度項目値設定可能範囲取得部３３がリソースＤＢ１５ｃ１〜１５ｃｎを参照することによって適正な設定可能範囲とすることができる。むろん、ここでは現在の駆動環境に対応したリソースＤＢを参照するので、現在の駆動環境において適切な選択可能範囲を選択肢としてＵＩを表示することができる。尚、ＵＩ表示の更新については後に詳述する。
【００６４】
ＵＩでの印刷条件項目値の設定は仮設定値１４ａとして保持され、実際にはＰＲＴＤＲＶ２１に設定されていないが、利用者がＵＩによって印刷条件項目の項目値を決定し、印刷実行指示を行ったときには、項目値設定部３５がソフトウェアＩ／Ｆ２７を介して項目値の設定を行う。項目値設定部３５は、ソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に印刷条件を指定するためのデータフォーマットを解釈するとともに当該データフォーマットに応じながらＰＲＴＤＲＶ２１に対して各印刷条件項目の項目値を設定させることが可能である。
【００６５】
すなわち、ＲＡＭ１４の仮設定値１４ａを参照し、各印刷条件項目の項目値を仮設定値１４ａが示す値とするように上記フォーマットのデータを作成する。そして、ソフトウェアＩ／Ｆ２７に当該データを受け渡すと、ＰＲＴＤＲＶ２１においては当該データに記述された通りに各印刷条件項目の項目値を設定する。尚、ソフトウェアＩ／Ｆ２７を介して所定フォーマットのデータにて印刷条件を設定する構成は、印刷条件を指定するための構成がＯＳ毎に異なっているところ、これを吸収して少なくともＡＰＬ２５においてはＯＳによる差異を意識することなくＵＩ表示のためのデータ処理を実施するための構成である。
【００６６】
すなわち、各種ＯＳにおいて一般的にはＰＲＴＤＲＶ２１に対して印刷条件項目の項目値を設定するための機能を備えているが、印刷条件の設定手法はＯＳ毎に異なっている。そこで、本実施形態においてはＵＩ制御モジュール３０によってＯＳに依存しない手法で高速にＵＩ表示を制御可能な構成を採用し、実際に印刷を実行するに際しては項目値設定部３５において印刷条件の設定手法を判別しつつ印刷条件を設定するようにした。この結果、ＡＰＬ２５およびその印刷時のＵＩを提供するアプリケーション制作者が、ＯＳの差異を意識することなく共通の手法で印刷条件項目の項目値を指定し、また、ＰＲＴＤＲＶ２１を制御するためのプログラムを作成することができる。
【００６７】
尚、本発明において、現在の駆動環境に対応した設定可能範囲を適切に表示し、また、ＡＰＬ作成者所望のＵＩを提供するという意味では、リソースＤＢ１５ｃ１〜１５ｃｎと項目値仮設定部３１と項目値取得部３２と項目値設定可能範囲取得部３３とを備えていればよく、ソフトウェアＩ／Ｆ２７によってＯＳの差異を吸収する構成は必須とはならない。例えば、ソフトウェアＩ／Ｆ２７を介して印刷条件項目の項目値設定等をするのではなく、ＵＩ制御モジュール３０が各ＰＲＴＤＲＶ２１に対して直接的に印刷条件項目の項目値設定等を行う構成を採用してもよい。
【００６８】
（２）プリンタＤＢの構成：
次に、本実施形態におけるプリンタＤＢ１５ｂ１〜１５ｂｎの構成を詳説する。図２はプリンタＤＢ１５ｂ１〜１５ｂｎのデータ記述例を示す図である。同図に示すようにプリンタＤＢ１５ｂ１〜１５ｂｎには、駆動環境データとしてプリンタ名、ドライババージョン、インクセット、依存関係を示すデータが記述されている。プリンタ名はプリンタの機種名（図２では”ＰＭ−＊＊＊＊”）を指定するデータである。印刷条件項目および依存関係が駆動環境の一部としてのプリンタ機種に依存するので、本実施形態ではプリンタＤＢ１５ｂ１〜１５ｂｎがいずれの機種のプリンタに使用されるのかを記述している。この記述は、コンピュータ１０に対して複数のプリンタを接続し、各プリンタに応じた複数のＰＲＴＤＲＶをインストールすることにより複数のプリンタを使用可能にした場合に、いずれのプリンタに対して記述されたプリンタＤＢであるのかを識別するために利用される。
【００６９】
ドライババージョンはプリンタドライバのバージョン（図２ではバージョン５．３ｅ）を指定するデータである。プリンタドライバのバージョンによって新機能が追加され、上記依存関係が変更されることや
エラーの修正等によってバージョンが変わることがあり得るので、本実施形態ではプリンタＤＢ１５ｂ１〜１５ｂｎがいずれのドライババージョン用であるのかを記述している。この記述は、コンピュータ１０の利用者がバージョンアップしたＰＲＴＤＲＶ２１を入手し、インストールする場合に、いずれのドライババージョンに対して使用されるべきプリンタＤＢであるのかを識別するために利用される。後述するように、リソースＤＢ１５ｃ１〜１５ｃｎがＨＤＤ１５に記録されていたとしても、プリンタＤＢ１５ｂ１〜１５ｂｎに記述されたドライババージョン用のリソースＤＢ１５ｃがＨＤＤ１５に記録されていなければリソースＤＢ１５ｃを再構築し直すので、ドライババージョンの変更によって新機能が追加し、依存関係が変更されたとしても変更後の依存関係に対応することができる。
【００７０】
インクセットはプリンタ４０に搭載される上記インクカートリッジの組み合わせおよび種類（図２では顔料系のインクであってＣＭＹＫｌｃｌｍＧインクのセット）を一義的に指定するデータである。使用するインク色の組み合わせによってカラーマネジメントや画像処理の可否が異なり、上記依存関係が変更されることがあり得るので、本実施形態ではプリンタＤＢ１５ｂ１〜１５ｂｎがいずれのインクセット用であるのかを記述している。この記述は、コンピュータ１０の利用者がプリンタ４０に搭載するインク色の組み合わせを変更した場合に、いずれのインクセットに対して使用されるべきプリンタＤＢであるのかを識別するために利用される。本実施形態においては、現在の駆動条件に対応したインクセット用のリソースＤＢ１５ｃ１〜１５ｃｎがＨＤＤ１５に記録されていない状態になっていれば当該リソースＤＢ１５ｃ１〜１５ｃｎを再構築し直すので、インクセット変更後の依存関係に対応することができる。
【００７１】
依存関係は、依存関係を規定する対象の印刷条件項目（対象項目）とその上位項目とを対応づけながら列記することによって規定しており、本実施形態においては”対象項目ｎ，上位項目の項目数ｍ，上位項目ｎ１，，，上位項目ｎｍ”を示すデータを順に記述することによって依存関係を規定している。ここで、ｎ，ｍは０もしくは自然数であり、ｎ個の対象項目のそれぞれについてｍ個の上位項目が存在し、各上位項目を列記する。上位項目が存在しない対象項目についてはｍを０として上位項目は記述しない。対象項目や上位項目についてはその項目自体を特定することができればよく、例えば、対象項目が印刷品質であり、上位項目が印刷媒体の種類であって上位項目数が一つの場合、”印刷品質，１，印刷媒体の種類”と記述することになる。
【００７２】
本実施形態において、プリンタＤＢ１５ｂ１〜１５ｂｎはリソースＤＢ１５ｃ１〜１５ｃｎを作成するために参照されるので、このためには、上述の駆動環境データおよび依存関係を示すデータが記述されていればよいが、本実施形態においては、さらに利便性を高めるために、設定可能範囲を記述できるようにしてある。設定可能範囲は図２の下部に示してあり、”対象項目ｘ，上位項目の項目数ｌ，上位項目ｘ１およびその値，，，上位項目ｘｌおよびその値，設定可能範囲”を示すデータを順に記述する書式となっている。
【００７３】
すなわち、ある対象項目ｘについてその上位項目数と上位項目とを記述することによって依存関係を示すことは上記依存関係の書式と共通であるが、設定可能範囲の書式においては上位項目の項目値を特定し、最後に上位項目がその項目値であるときの対象項目値を記述する。これにより、上位依存関係にある項目値が特定の値であるときの対象項目の設定可能範囲を特定することができる。かかる書式は後述するリソースＤＢ１５ｃ１〜１５ｃｎに記述する設定可能範囲の書式と共通である。リソースＤＢ１５ｃ１〜１５ｃｎはプリンタＤＢ１５ｂ１〜１５ｂｎに記述された依存関係によって作成されるが、この作成時にＰＲＴＤＲＶ２１のエラー等に起因して設定可能範囲が適切に取得できない場合があり、この場合には適切な設定可能範囲をリソースＤＢ１５ｃ１〜１５ｃｎに記述できない。
【００７４】
そこで、ＰＲＴＤＲＶ２１の作成後に適切な設定可能範囲をプリンタＤＢ１５ｂ１〜１５ｂｎに記述し、上記リソースＤＢ作成部３４によってリソースＤＢ１５ｃ１〜１５ｃｎを作成する際にまずプリンタＤＢ１５ｂ１〜１５ｂｎを参照し、プリンタＤＢ１５ｂに設定可能範囲が記述されているときには当該プリンタＤＢ１５ｂ１〜１５ｂｎの記述内容を取得するようにしている。かかる構成により、ＰＲＴＤＲＶ２１のエラー等に起因して設定可能範囲が適切に取得できない場合が生じても容易に適切な設定可能範囲を項目値設定可能範囲取得部３３に伝えることが可能になる。また、総ての項目について設定可能範囲をリソースＤＢ１５ｃ１〜１５ｃｎに登録すると、非常に時間がかかってしまう場合、一部の設定可能範囲データをリソースＤＢ１５ｃ１〜１５ｃｎに記述するように構成することが可能である。かかる構成においてＵＩ表示を行う場合、リソースＤＢ１５ｃ１〜１５ｃｎには設定可能範囲データが記述されていないので、プリンタＤＢ１５ｂ１〜１５ｂｎを参照して設定可能範囲データを取得することになる。
【００７５】
（３）リソースＤＢの構成：
次に、本実施形態におけるリソースＤＢ１５ｃ１〜１５ｃｎの構成を詳説する。図３はリソースＤＢ１５ｃ１〜１５ｃｎのデータ記述例を示す図である。同図に示すようにリソースＤＢ１５ｃ１〜１５ｃｎには駆動環境データとしてプリンタ名、ドライババージョン、インクセット、設定可能範囲を示すデータが記述されている。設定可能範囲は”対象項目ｎ，上位項目の項目数ｍ，上位項目ｎ１およびその値，，，上位項目ｍｌおよびその値，設定可能範囲”を示すデータを順に記述する書式となっている。
【００７６】
これにより、上位依存関係にある項目値が特定の値であるときの対象項目の設定可能範囲を特定しており、例えば、対象項目が印刷品質、上位項目が印刷媒体の種類、上位項目数が一つの場合であって印刷媒体の種類の項目値が”１”のときに印刷品質の項目値が”２，３”である場合、”印刷品質，１，印刷媒体の種類＝１，２，３”と記述することになる。尚、ここでも依存関係のない対象項目は上位項目の項目数が”０”とされ、上位項目およびその値を記述することなく上位項目の項目数の直後に設定可能範囲を記述する。また、リソースＤＢに駆動環境データを記述することにより、各リソースＤＢがどのような駆動環境で使用されるべきかを判断することができる。
【００７７】
リソースＤＢ１５ｃ１〜１５ｃｎに記述する対象項目数は、全項目数Ｘ個のうちＸ−１個について既述するなど各種調整を行うことができる。ＰＲＴＤＲＶ２１の印刷条件項目として存在する項目すべてについて記述してもよいし、リソースＤＢ１５ｃ１〜１５ｃｎの作成に非常に多くの時間が費やされることを防止するため、上位項目の項目数が所定の数以下（例えば４以下）の対象項目のみ記述するようにしてもよい。他にもＵＩ上で利用頻度が低い印刷条件項目を予め把握しておき、利用頻度が低い項目やＵＩ上に現れない印刷条件項目（印刷を実行するために設定が必要であるが、ユーザが決定するのではなくＡＰＬが決定する印刷条件等）についてはリソースＤＢ１５ｃ１〜１５ｃｎに記述しないように構成してもよい。
【００７８】
以上のように、プリンタＤＢ１５ｂ１〜１５ｂｎおよびリソースＤＢ１５ｃ１〜１５ｃｎにおいては、各印刷条件項目の項目値を数値で指定するようになっており、各数値が意味するところが予め決められている。例えば、印刷媒体の種類＝１は”普通紙”などと予め決められている。従って、本明細書では各印刷条件項目について印刷条件を指定することを項目値を決定すると呼んでいるが、むろん、本発明においては印刷条件を指定することができればよいので、数値によって印刷条件を特定することが必須というわけではなく、文字列で指定するなど種々の構成を採用可能である。
【００７９】
また、プリンタＤＢ１５ｂ１〜１５ｂｎ，リソースＤＢ１５ｃ１〜１５ｃｎのいずれにおいてもプリンタ名や対象項目等、上述の各種情報を示すデータを記述していればよく、データの記述形式は上述の書式に限られない。むろん、データを記述しておくという意味では各種情報を示していればよく、コンピュータ１０においてテキスト形式を採用してもよいし、バイナリ形式を採用してもよく、種々の構成を採用可能である。
【００８０】
図４は、以上のようにして決定される設定可能範囲を依存関係とともに示す例である。同図においてＡ〜Ｈは印刷条件項目を示し、依存関係を矢印によって示している。矢印が指す先端に位置する印刷条件項目は下位項目であり、逆側の端部に示す印刷条件項目が上位項目である。例えば、印刷条件項目Ａは印刷条件項目Ｂ，Ｄの上位項目である。尚、依存関係においてある項目に対して上位項目と下位項目が一対一である関係、すなわち図４に示すＢ，Ｃのような依存関係を独立ツリーと呼び、ある項目に対して下位項目や上位項目が複数ある場合、すなわち図４に示す印刷条件項目Ｆ（上位項目がＤとＥ）のような項目を非独立ツリーと呼ぶ。
【００８１】
各印刷条件項目の依存関係を示す上記プリンタＤＢ１５ｂ１〜１５ｂｎにおいては、独立ツリーであっても非独立ツリーであっても記述することができ、非常に簡易な書式で複雑な依存関係を記述することができる。すなわち、独立ツリーの場合は、例えば印刷条件項目Ｃの上位項目として印刷条件項目Ｂを示せばよいし、非独立ツリーの場合であっても、例えば印刷条件項目Ｆの上位項目数が２つであるとして印刷条件項目Ｄ，Ｅを示せばよい。
【００８２】
さらに、設定可能範囲を示す上記リソースＤＢ１５ｃ１〜１５ｃｎにおいては、上位項目と当該上位項目の具体的な項目値を示しつつ対象項目の設定可能範囲を示すので、図４に示すような複雑な依存関係および設定可能範囲を容易に記述することができる。同図においては、各印刷条件項目について、上位項目の項目値と当該項目値における対象項目の項目値を示している。例えば、印刷条件項目Ｂにおいては、上位項目Ａの項目値が”１”のとき、項目Ｂの設定可能範囲が”１，２”であることを示し、上位項目Ａの項目値が”２”のとき、項目Ｂの設定可能範囲が”３”であることを示している。
【００８３】
図４に示す印刷条件項目Ｆにおいては、同図に示すように上位項目Ｅが”２”であるときに項目Ｆが”１”、上位項目Ｅが”１”かつ上位項目Ｄが”１”であるときに項目Ｆが”２”、これ以外のとき項目Ｆが”１，２”となっている。このように、上位項目が特定の項目値であるときに項目Ｆの項目値が上位項目に依存するという複雑な依存関係になっている。しかし、このような依存関係であっても、リソースＤＢ１５ｃ１〜１５ｃｎにおける簡易な書式にて容易に記述することができる。すなわち、上記Ｅ＝２の場合、Ｅ＝１かつＤ＝１の場合を含めて総ての場合について上位項目の値および項目Ｆの値をリソースＤＢ１５ｃ１〜１５ｃｎに記述すればよい。
【００８４】
印刷条件項目Ｇのように、さらに複雑な依存関係になっても同様である。印刷条件項目Ｇでは、上位項目Ｆが”１，２”で切り換え可能ならＧは”１，２”、切り換え不可能なら項目Ｆが”１”のとき項目Ｇが”２”，項目Ｆが”２”のとき項目Ｇが”１”という条件になっている。すなわち、項目Ｇにおいては項目Ｆが切り換え可能か否かという条件と項目Ｆの項目値とに依存している。項目Ｆが切り換え可能か否かという条件については項目Ｆと項目Ｇとの依存関係のみで規定することはできないが、項目Ｆの上位項目である項目Ｄ，Ｅをも利用すれば項目Ｇの設定可能範囲を規定することができる。
【００８５】
従って、この場合項目Ｄ，Ｅ，Ｆが項目Ｇの上位項目となり、項目Ｄ，Ｅ，Ｆの項目値を規定した上で項目Ｇの設定可能範囲を記述することによって、上述のように項目Ｆの切り換え可否を含む複雑な条件を規定することができる。具体的には、図４の右下に示すように、切り換え不可とは項目Ｆの設定可能範囲に任意性がなく、項目値が”１”のみあるいは”２”のみであるということであり、項目Ｆが”１”のみであるのは上述のようにＥ＝２のときである。従って、この場合、項目Ｇの上位項目を項目Ｅ，Ｄ，Ｆとし、項目Ｅの項目値を”２”、項目Ｄの項目値を”１，２”、項目Ｆの項目値を”１”とし、項目Ｇの設定可能範囲を”２”としてリソースＤＢ１５ｃ１〜１５ｃｎに記述する。
【００８６】
項目Ｆが”２”のみである場合については項目Ｇの上位項目を項目Ｅ，Ｄ，Ｆとし、それぞれの項目値を”１”，”１”，”２”とし、項目Ｇの設定可能範囲を”１”としてリソースＤＢ１５ｃ１〜１５ｃｎに記述する。切り換え可能な場合については上述の上位項目Ｄ，Ｅ，Ｆの項目値を上記例以外の値として項目Ｇの設定可能範囲を”１，２”としたデータを列記すればよい。以上、本実施形態においてリソースＤＢ１５ｃ１〜１５ｃｎに上位項目およびその値を記述する書式を採用していることにより、複雑な依存関係であっても容易に記述してリソースＤＢ１５ｃ１〜１５ｃｎを作成することができる。
【００８７】
（４）印刷制御処理およびＵＩ表示例：
次に、上記構成における印刷制御処理およびＵＩ表示例を説明する。印刷制御処理は図５に示すフローに従って実施され、図６はこのときに表示されるＵＩの例を示している。利用者は、ＡＰＬ２５の実行中にレタッチ対象の画像等について印刷指示を行うことができ、画像処理部２５ａが印刷指示を受け付けると（ステップＳ１００））、ＵＩ表示制御部２５ｂはＵＩ制御モジュール３０と連携してＵＩ表示を制御する。このとき、リソースＤＢ作成部３４は、この時点でのコンピュータ１０におけるプリンタの駆動環境を示すデータ、すなわち、使用プリンタ名を示すデータと当該プリンタを制御するＰＲＴＤＲＶ２１のバージョンとインクセットを示すデータを取得する（ステップＳ１０５）。
【００８８】
ここで、本実施形態においては、通常使用されるプリンタの機種としてＯＳ２０に設定されている機種のプリンタが実際に接続されていることを確認するようになっており、リソースＤＢ作成部３４はソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１ａ〜２１ｎとデータを授受してプリンタの機種名を取得する。そして、上記通常使用されるプリンタとして設定されているプリンタの機種名が取得できないときは、ＵＩ表示制御部２５ｂにてエラーとしてプリンタ機種の再設定を促す。通常使用されるプリンタの機種名を示すデータを取得できたときには、この機種名を示すデータを現在の駆動環境におけるプリンタ名とする。すなわち、ＯＳ２０のデフォルトあるいは利用者によるプリンタの指定を受け付ける様になっており、これにあわせて現在の駆動環境を示すデータを取得する。尚、現在の駆動環境を示すデータは、本実施形態のように印刷指示を受け付けた後に実施する構成の他、定期的に取得して保持するなど種々の構成を採用可能である。
【００８９】
ステップＳ１０５において現在の駆動環境を示すデータを取得したら、リソースＤＢ作成部３４はステップＳ１１０においてＨＤＤ１５を参照し、当該データと一致する駆動環境データが記述されたリソースＤＢがＨＤＤ１５に保存されているか否か判別する。同ステップＳ１１０にて現在の駆動環境を示すデータに一致する駆動環境データが記述されたリソースＤＢがＨＤＤ１５に保存されていると判定されないときには、リソースＤＢ作成部３４がステップＳ１１５にて現在の駆動環境に合致したプリンタＤＢを参照しリソースＤＢを構築するための処理を実行する。ステップＳ１１０にてリソースＤＢが既に保存されていると判定されたときには、ステップＳ１１５をスキップする。
【００９０】
以上の処理により、ＰＲＴＤＲＶ２１をインストール、バージョンアップあるいはインクセットを変更した後初めての印刷ではリソースＤＢが構築され、２回目以降の印刷では以前のリソースＤＢを流用し、構築処理を実施することなく処理を進めることになる。尚、リソースＤＢ１５ｃ１〜１５ｃｎの構築に際してはある程度の時間を要するため、ディスプレイ上にはプログレスバーを表示するなどして利用者に処理中であることを示す構成を採用することが好ましい。
【００９１】
ステップＳ１２０以降の処理では、ＵＩ表示制御部２５ｂが所定のＵＩを表示するため、ＵＩ表示対象の各印刷条件項目について設定可能範囲を取得する。この処理では、現在の駆動環境に一致する駆動環境データが記述されたプリンタＤＢ，リソースを選択して処理対象とする。まずステップＳ１２０においては、項目値設定可能範囲取得部３３がリソースＤＢ，プリンタＤＢをこの順に検索し、ステップＳ１２５では現在の駆動環境に一致する駆動環境データが記述されたリソースＤＢ，プリンタＤＢにおいて、ＵＩ表示対象の印刷条件項目が上記対象項目として記述されているか否かを判別する。
【００９２】
同ステップＳ１２５にてＵＩ表示対象の印刷条件項目が上記対象項目として記述されていると判別されないときには、リソースＤＢ作成部３４がステップＳ１３０にてＰＲＴＤＲＶ２１に対して実際に項目値を設定して設定可能範囲を取得する。すなわち、プリンタＤＢを参照してＵＩ表示対象の印刷条件項目について上位項目があるか否かを判別し、上位項目が存在する場合にはその上位項目についてソフトウェアＩ／Ｆ２７を介して現在の駆動環境で使用されるプリンタに対応したＰＲＴＤＲＶに項目値を設定し、このように上位項目の項目値を設定した状態でＵＩ表示対象の印刷条件項目がとり得る設定可能範囲を取得する。
【００９３】
このとき上位項目の項目値については当該上位項目が取りうる項目値のすべてについて逐次設定し、上位項目の各項目値についてＵＩ表示対象の印刷条件項目の設定可能範囲を取得する。ＵＩ表示対象の印刷条件項目に対して上位項目が存在しない場合にはＵＩ表示対象の印刷条件項目以外の項目値を設定することなく、ソフトウェアＩ／Ｆ２７を介して当該印刷条件項目の設定可能範囲を取得する。また、取得した設定可能範囲は、リソースＤＢに記述する。従って、ＵＩ表示対象の印刷条件項目についてリソースＤＢおよびプリンタＤＢに記述されていないとされたことがあったとしても、次回の印刷時には記述されていないと判別されることがない。
【００９４】
このステップＳ１３０については実際にＰＲＴＤＲＶ２１に対して項目値を設定した上で設定可能範囲を取得する処理を行うので、ある程度の時間がかかる処理である。しかし、ＵＩ表示対象の印刷条件項目がリソースＤＢに記述されていないという状況が起こり得るのは、上述のようにリソースＤＢの作成に非常に多くの時間が費やされることを防止するためなど、特定の場合に限られ、ＵＩ表示を実施するために必要な項目のほとんどは予めリソースＤＢに記述されている。従って、実際はステップＳ１３０が実施されることはまれである。
【００９５】
ステップＳ１３５においては、項目値設定可能範囲取得部３３が上記ステップＳ１２０でプリンタＤＢ、リソースＤＢに記述されていると検出した印刷条件項目、あるいはステップＳ１３０にてリソースＤＢに記述した印刷条件項目について設定可能範囲を取得する。ステップＳ１３８では当該印刷条件項目の設定可能範囲が”なし”であるか否か、すなわち何らかの項目値が選択可能であるか否かを判別する。
【００９６】
同ステップＳ１３８で設定可能範囲が”なし”であると判別されたときにはステップＳ１３９にてＵＩ表示対象の印刷条件項目を切り換えてステップＳ１２０以降の処理を繰り返す。この処理により、設定可能な項目値が存在しない印刷条件項目についてはＵＩ表示を行わないことになる。ステップＳ１３８で設定可能範囲が”なし”であると判別されないときには、ステップＳ１４０にて項目値取得部３２がＲＡＭ１４の仮設定値１４ａを参照し、あるいはソフトウェアＩ／Ｆ２７を介して現在の項目値を取得する。
【００９７】
すなわち、ステップＳ１２０以降のループ処理において初回の処理であればソフトウェアＩ／Ｆ２７を介して前回の印刷実行時における印刷条件項目の項目値を取得し、ＵＩ表示制御部２５ｂに現項目値として受け渡す。このとき、現項目値を仮設定値１４ａとしてＲＡＭ１４に記録する。また、ステップＳ１２０以降のループ処理において２回目以降の処理であれば仮設定値１４ａを参照してＵＩ表示制御部２５ｂに現項目値として受け渡す。
【００９８】
ステップＳ１４５においては、上記ステップＳ１３５で取得した設定可能範囲を選択可能な選択肢にするとともに、上記ステップＳ１４０で取得した仮設定値が仮に設定された状態でＵＩを表示する。さらに、ステップＳ１５０ではＵＩ表示制御部２５ｂが項目値の変更を受け付けたか否かを判別し、項目値の変更を受け付けたと判別されたときには、ステップＳ１５５にて項目値仮設定部３１が変更後の項目値を仮設定値として取得し、ＲＡＭ１４の仮設定値１４ａを更新してステップＳ１２０以降の処理を繰り返す。
【００９９】
この繰り返し処理においては、ステップＳ１５５の項目値の変更によってＵＩ表示対象の印刷条件項目の依存関係が変動したとしても、ステップＳ１３５の処理により適切な設定可能範囲が取得され、ステップＳ１４０のＵＩ表示では選択不能の印刷条件項目を選択可能に表示させることなくＵＩを更新することができる。また、繰り返し処理においてステップＳ１４０にて現項目値を取得する際にはソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に対して項目値を設定することが無い。従って、ＵＩが表示されてから印刷が実行されるまでに一度でもＵＩ上で項目値を変更した場合には、高速にＵＩ表示を切り替えることができる。
【０１００】
本実施形態にかかるＵＩでは、利用者に選択を促す全印刷条件項目のうち一部のみを一画面に表示し、一画面で少数の印刷条件項目を入力しながら画面を逐次切り替えて最終的に印刷実行指示を受け付けるようにしている。そこで、ステップＳ１６０では、ＵＩ表示制御部２５ｂが画面の切替指示を受け付けたか否かを判別し、画面の切替指示を受け付けたと判別したときにはステップＳ１６５にてＵＩ画面を切り替える。そして、切り替え後のＵＩ表示対象の印刷条件項目について適切な表示をするため、ステップＳ１２０以降を繰り返す。
【０１０１】
ステップＳ１６０にて画面の切替指示を受け付けたと判別しないときには、ステップＳ１７０にてＵＩ表示制御部２５ｂが印刷実行指示を受け付けたか否かを判別する。そして、印刷実行指示を受け付けたと判別したときには、ステップＳ１７５にて印刷実行部２５ｃが印刷対象の画像データをＰＲＴＤＲＶ２１に対して出力するとともに、項目値仮設定部３１に対して印刷条件を設定するように指示を出す。また、項目値仮設定部３１がソフトウェアＩ／Ｆ２７にアクセスし、ＰＲＴＤＲＶ２１に対して仮設定値１４ａに記録されている印刷条件項目値を設定する。この結果、ＰＲＴＤＲＶ２１は画像データに対して印刷条件に従った画像処理を施すとともに印刷条件に従って印刷を実行するための印刷データを作成し、プリンタ４０に出力し、印刷を実行する。
【０１０２】
図６は、本実施形態におけるＵＩ画面が切り替わる様子を示している。本実施形態にかかるＵＩでは、利用者に選択を促す全印刷条件項目のうち一部のみを一画面に表示し、一画面で少数の印刷条件項目を入力しながら画面を逐次切り替えて最終的に印刷実行指示を受け付けるようにしている。図６に示す例においては縁なし印刷を実行可能なプリンタ（図６では機種名ＰＭ−＊＊＊＊）と縁なし印刷を実行不能なプリンタ（図６では機種名ＣＬ−＊＊＊＊）とについてＵＩ画面の例を示している。
【０１０３】
機種名ＰＭ−＊＊＊＊においては、縁なし印刷を実行可能であるので、印刷条件項目としての設定可能範囲は他の印刷条件項目との依存関係によって”縁なし”，”縁あり”の双方またはいずれかとなる。一方、機種名ＣＬ−＊＊＊＊においては、縁なし印刷を実行不能であるので、印刷条件項目としての設定可能範囲は”なし”であり、設定可能範囲としての選択肢は存在しない。本実施形態においては、このような駆動環境（図６ではプリンタ機種）によって印刷条件項目の設定可能範囲が変動するときに、不必要な画面や設定可能範囲を表示させないようになっており、現在の駆動環境に的確に対応したＵＩ画面を表示するようになっている。
【０１０４】
図６においては、印刷媒体のレイアウトを選択するＵＩをＵＩ１１，ＵＩ２１と示している。ＵＩ１１は機種名ＰＭ−＊＊＊＊のＵＩ画面であり、ＵＩ２１は機種名ＣＬ−＊＊＊＊のＵＩ画面である。また、ＵＩ１１，ＵＩ２１においては左側に印刷条件項目としての印刷媒体サイズを選択するフレーム１ａを表示し、右側に印刷条件項目としてのレイアウトを選択するフレーム１ｂを表示している。また、図６のＵＩ０は縁なし印刷（媒体の四辺に余白を設けない印刷）を実施するか否かを選択するＵＩである。
【０１０５】
尚、各ＵＩにおいてはラジオボタンやアイコンのクリックによって各印刷条件項目を指定するようになっており、画面右下の「戻る」ボタンによって一つ前のＵＩ画面に戻り、「次へ」ボタンによって次のＵＩ画面に進むようになっており、最後のＵＩにおいては印刷実行指示ボタンによって印刷実行指示を実施できるようになっている。この例において、レイアウトは印刷媒体上での画像配置を規定しており、印刷媒体サイズはレイアウトの上位項目である。また、機種名ＰＭ−＊＊＊＊のプリンタにおいては縁なし印刷を実施可能な印刷媒体のサイズが限られており、この意味で縁なし印刷の可否は印刷媒体の上位項目である。
【０１０６】
図６の例では、機種名ＰＭ−＊＊＊＊のプリンタではがき，Ｌ版，２Ｌ版，Ａ３〜Ａ６の各印刷媒体サイズで印刷を実行可能であり、このうち、はがき，Ｌ版，２Ｌ版，Ａ３，Ａ４の各印刷媒体サイズで縁なし印刷を実施可能である。従って、上記ＵＩ表示制御部２５ｂにてＵＩ表示対象項目として縁なし印刷の選択肢を表示するように上記ＡＰＬ２５が作成されており、機種名ＰＭ−＊＊＊＊が現在の使用プリンタである場合に上記ステップＳ１３８の判別を経てステップＳ１４０を実施する。この結果、縁なし印刷について縁なしあるいは縁ありを選択するＵＩ０を表示する。
【０１０７】
一方、ＵＩ表示対象項目として縁なし印刷の選択肢を表示するように上記ＡＰＬ２５が作成されている場合であっても、機種名ＣＬ−＊＊＊＊が現在の使用プリンタである場合には、上記ステップＳ１３８の判別を経てステップＳ１３９，Ｓ１２０を実施するので、縁なし印刷の選択を行うＵＩ０は表示されない。ＵＩ０はスキップされ、レイアウト表示を実施するＵＩ２１が表示される。
【０１０８】
また、上記機種名ＰＭ−＊＊＊＊が現在の使用プリンタである場合に、ＵＩ０において設定可能範囲として縁ありと縁なしを表示し、項目値として縁なしを選択しつつ次のＵＩ１に進んだときには、フレーム１ａにおいて選択可能範囲としてはがき，Ｌ版，２Ｌ版，Ａ３，Ａ４を表示する。ＵＩ０において項目値として縁ありを選択しつつ次のＵＩ１に進んだときには、フレーム１ａとして選択可能範囲としてはがき，Ｌ版，２Ｌ版，Ａ３〜Ａ６を表示する。
【０１０９】
また、ＵＩ１のフレーム１ａにて印刷媒体サイズが選択されたときには、フレーム１ｂにてレイアウトが自動的に更新され、当該選択中の印刷媒体サイズにて印刷実行可能なレイアウトのみが設定可能範囲として提示される。むろん、機種名ＣＬ−＊＊＊＊において印刷媒体サイズがＵＩ２１以前のＵＩ画面で設定された印刷条件項目に依存している場合には、その項目値によって印刷媒体サイズの選択肢が変動し得る。
【０１１０】
以上のように、本実施形態にかかるＵＩにおいてはＡＰＬ２５の制作者が所望の印刷条件項目を選択し、ＵＩの表示対象として設定しておくのみで、各項目値の設定可能範囲はＵＩ制御モジュール３０が取得し、現在の駆動環境に応じた適切な表示のみを行うことができ、容易かつ高速に画面を表示可能であり、かつ表示対象の任意性が高いＵＩ表示を実施することができる。
【０１１１】
尚、本実施形態にかかるＵＩにおいて、印刷条件項目に依存関係が存在することから、より上位にある印刷条件項目から選択するように逐次画面を切り替える構成を採用するのが好ましい。また、ある項目の上位項目が複数あるのであれば、これら上位項目は同じＵＩ画面上で選択されるのが好ましい。さらに、一画面で多数の印刷条件項目を表示させるＵＩを構成してもよく、ある印刷条件項目の設定によって他の印刷条件項目の設定可能範囲が変化した場合には、選択不可能な項目値を選択肢として表示させず、選択可能な項目値を選択肢として表示する。むろん、ＵＩの構成は種々の構成が可能であり、選択不可能な項目値をグレーアウトさせる構成を採用してもよい。
【０１１２】
（５）リソースＤＢの構築処理：
次に、上記ステップＳ１１５に示すリソースＤＢの構築処理について説明する。図７〜図９はこの構築処理を示すフローチャートであり、図１０は図４に示す依存関係のリソースＤＢを構築する際の処理例を説明する説明図である。以降、図１０に示す例に沿って図７〜図９のフローチャートを説明する。尚、リソースＤＢの構築処理においては、ＲＡＭ１４をワークエリアとし、印刷条件項目のリストを示すデータをバッファリングしながら処理を進めており、バッファリングの目的とループによって適宜リストを切り換えながらリソースＤＢを作成する。
【０１１３】
上記図５のステップＳ１１０にて現在の駆動環境を示すデータに一致する駆動環境データが記述されたリソースＤＢがＨＤＤ１５に保存されていると判定されないときには、リソースＤＢ作成部３４がステップＳ１１５の処理を実行して図７のステップＳ２００以降を開始する。ステップＳ２００では、まず、上記ステップＳ１０５で取得した現在の駆動環境を示すデータをリソースＤＢに登録する。ステップＳ２０５では、現在の駆動環境を示すデータが記述されたプリンタＤＢから全項目を抽出し、リストＬ１ｎに登録する。尚、このリストＬ１ｎは、設定可能範囲が未確定である未確定項目を登録するリストである。また、図７〜図９の処理において番号ｎは自然数であって初期値は”１”であり、この番号ｎによって異なるリストをバッファし、ループの段階によって使い分ける。
【０１１４】
ステップＳ２１０では、リストＬ１ｎの中で上位項目および下位項目を有していない項目（独立項目）を抽出し、ステップＳ２１５で上記ソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に独立項目の設定可能範囲を問い合わせ、取得した設定可能範囲をリソースＤＢに登録する。図４に示す例では印刷条件項目Ｈが上位項目および下位項目を有していないので、設定可能範囲（図４では”１，２，３”）を取得し、リソースＤＢに登録する。
【０１１５】
以上のようにしてリソースＤＢに登録した独立項目は未確定項目ではなくなるので、ステップＳ２２０にてリストＬ１ｎから削除する。ステップＳ２２５以降では、依存関係のある項目についてより上位の項目から項目値を決定し、上位の項目がその項目値であるときの下位項目の設定可能範囲を取得するようにして処理を進める。このため、ステップＳ２２５ではリストＬ１ｎからある項目Ｎを抽出し、ステップＳ２３０では現在の駆動環境を示すデータが記述されたプリンタＤＢを参照し、当該項目Ｎの上位項目を抽出する。
【０１１６】
ステップＳ２３５では、当該抽出した上位項目が総て確定しているか否かを判別し（項目Ｎの上位項目がリストＬ１ｎに存在すれば未確定と判別）、総て確定していると判別されなければステップＳ２４０にて項目Ｎを変更するとともにステップＳ２３０以降の処理を繰り返す。すなわち、このループにより、上位項目のない、最上位の項目を項目Ｎとして処理を進めることになる。尚、図１０では、図４に示す依存関係についてステップＳ２２０以降にてバッファリングされるリストの例を上から下に向けて時系列的に並べて示している。この段階で番号ｎは初期値であってリストＬ１ｎはリストＬ１１であり、同図(a)に示すようにリストＬ１１＝ＡＢＣＤＥＦＧである。また、同(a)では、項目Ｎとして項目Ａを抽出した例を示している。
【０１１７】
ステップＳ２３５にて上位項目が総て確定していると判別されると、ステップＳ２４５にて項目Ｎの設定可能範囲データを現在の駆動環境を示すデータが記述されたプリンタＤＢ，作成中のリソースＤＢの順に検索し、ステップＳ２５０において項目Ｎの設定可能範囲データが当該プリンタＤＢ，リソースＤＢに存在しているか否かを判別する。ステップＳ２５０にて項目Ｎの設定可能範囲データが存在すると判別されたときにはステップＳ２５５をスキップし、ステップＳ２６０にて当該設定可能範囲データを作成中のリソースＤＢに登録する。
【０１１８】
ステップＳ２５０にて項目Ｎの設定可能範囲データが存在すると判別されないときには、ステップＳ２５５にてソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に上位項目の項目値を設定し、項目Ｎの設定可能範囲を取得する。そして、ステップＳ２６０にて当該設定可能範囲データを作成中のリソースＤＢに登録する。尚、ステップＳ２４５にてプリンタＤＢを優先するのは、上述のようにエラー等に起因してＰＲＴＤＲＶ２１から設定可能範囲が適切に取得できない場合があり、この場合には適切な設定可能範囲をプリンタＤＢに記述することにしているので、まずプリンタＤＢを検索することとしたものである。
【０１１９】
次にリソースＤＢを検索するのは、ＰＲＴＤＲＶ２１に対する重複した設定を防止するためであり、既に設定可能範囲データがリソースＤＢに存在する場合はＰＲＴＤＲＶ２１に対する設定をすることなくリソースＤＢから設定可能範囲を取得することとしている。すなわち、本実施形態における処理においては、上位の項目について項目値を決定し、その下位の項目について設定可能範囲を取得する処理を上位から下位に向けて逐次実施するので、項目Ｎより２つ上位の階層（階層Ｍとする）の項目値が異なっていても、項目Ｎより１つ上位の階層（階層Ｍ＋１）の項目値が共通の値であれば、項目Ｎの設定可能範囲は共通である。
【０１２０】
従って、ステップＳ２４５の処理において項目Ｎの設定可能範囲について既に記述された設定可能範囲データを検出する場合もあり、この場合はステップＳ２５５をスキップする。このように、まずプリンタＤＢとリソースＤＢとを検索すれば、検索によって設定可能範囲データを発見したときにＰＲＴＤＲＶ２１への設定をする必要がなく、ＨＤＤ１５を参照するのみで設定可能範囲を取得することができる。従って、ソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に対して上位項目を設定させ、その下位項目の設定可能範囲を取得するよりも高速に設定可能範囲を取得することができる。
【０１２１】
図１０の(a)に示す項目値Ｎ＝Ａの処理においては、処理の最初であって作成中のリソースＤＢに項目Ａの設定可能範囲が保存されていないため、ステップＳ２４５，Ｓ２５０の処理を経てステップＳ２５５にてＰＲＴＤＲＶ２１を介して設定可能範囲データ（Ａ＝１，２）を取得する。この例において項目Ａには上位項目がないのでステップＳ２５５にて上位項目を設定することなく項目Ａの設定可能範囲データを取得することができる。
【０１２２】
ステップＳ２６５ではプリンタＤＢを参照し、項目Ｎより下位の項目を抽出してリストＬ２ｎに登録する。すなわち、リストＬ２ｎは項目Ｎに依存する下位の項目を列記したリストである。従って、図１０の(a)に示す例では項目Ｎ＝Ａに依存しない項目Ｅを除く下位項目の総てが番号ｎ＝１のリストＬ２ｎに登録され、リストＬ２１＝ＢＣＤＦＧとなる。ステップＳ２６５での処理の後には図８のステップＳ３００にてリストＬ２ｎの項目総てについて設定可能範囲が確定しているか否かを判別する。
【０１２３】
同ステップＳ３００にてリストＬ２ｎの全項目について設定可能範囲が確定していると判別されたときには、ステップＳ３０５にてリストＬ１ｎから項目Ｎを削除して上記図７のステップＳ２７０以降の処理を行う。ステップＳ３００にてリストＬ２ｎの全項目について設定可能範囲が確定していると判別されないときには、ステップＳ３１０にてリストＬ１ｎをリストＬ３ｎにコピーし、リストＬ３ｎから項目Ｎを削除する。すなわち、リストＬ２ｎの項目は項目Ｎの下位項目であるため、ステップＳ３００でこれらの下位項目が確定していると判別されたときには、項目Ｎおよびその下位項目が確定しているので未確定項目リストＬ１ｎから項目Ｎを削除して、さらに残りの未確定項目について処理を進める。
【０１２４】
ステップＳ３００で項目Ｎの下位項目が確定していると判別されないときには、当該下位項目を確定させるため、未確定項目のうち項目Ｎを除いてリストＬ３ｎとし、処理を進める。この意味でリストＬ３ｎは未確定項目の一部を登録するリストである。また、リストＬ３ｎは各ループで処理を行う未確定項目の一部を一時的に登録するリストである。図１０の(a)に示す例では、リストＬ２１の項目ＢＣＤＦＧが確定していないため、ステップＳ３００の判別を経てステップＳ３１０にてＬ３１＝ＢＣＤＥＦＧとする。
【０１２５】
ステップＳ３１５では、リストＬ２ｎの各項目が上述の独立ツリーであるか否かを判別する。同ステップＳ３１５でリストＬ２ｎの各項目が独立ツリーであると判別されたときには、ステップＳ３２０でリストＬ３ｎをリストＬ２ｎで置き換える。すなわち、独立ツリーの下位項目をループ内での処理対象としてリストＬ３ｎに登録する。ステップＳ３１５でリストＬ２ｎの各項目が独立ツリーであると判別されないときにはステップＳ３２０をスキップする。図１０の(a)に示す例ではステップＳ３２０がスキップされる。
【０１２６】
ステップＳ３２５では、項目Ｎの項目値を仮設定する。すなわち、項目Ｎを特定の値にした状態で下位項目の設定可能範囲を決定するため、項目Ｎの項目値を特定の値に仮設定する。尚、同じ項目Ｎに対してこのステップＳ３２５が繰り返しによって再度実行されるときには、仮設定する項目値を前回の処理と異なる値とする。ステップＳ３３０では、番号ｎをインクリメントし、リストＬ１ｎにリストＬ３（ｎ−１）をコピーする。すなわち、未確定項目に前回の番号（ｎ−１）におけるループでの未確定項目をコピーする。
【０１２７】
そして、ステップＳ２７０にて当該リストＬ１ｎに項目が存在しているか否かを判別し、項目が存在しているときには未確定項目が存在するので、ステップＳ２２５以降の処理を繰り返す。ステップＳ２７０にてリストＬ１ｎに項目が存在していると判別されないときには、図９に示すステップＳ４００以降の処理を実行する。図１０の(b)に示す例では項目Ｎ＝ＡであってステップＳ３２５にてＡ＝１を仮設定した例を示しており、ステップＳ３３０以降では番号ｎが”２”となるので、リストＬ１２＝ＢＣＤＥＦＧとなる。
【０１２８】
同図に示す例ではリストＬ１２＝ＢＣＤＥＦＧであり、ステップＳ２７０においてリストＬ１２に項目が存在するので、ステップＳ２２５で新たな項目Ｎを設定する。図１０の(b)では新たな項目Ｎが項目Ｂであり、この項目Ｂの上位項目Ａの設定可能範囲が総て確定しているのでステップＳ２３５の判別を経てステップＳ２４５〜Ｓ２５５の処理を行う。このとき、項目Ｂの設定可能範囲は現在の駆動環境を示すデータが記述されたプリンタＤＢおよび作成中のリソースＤＢに登録されていないので、ステップＳ２５５にてＰＲＴＤＲＶ２１に上記仮設定された項目Ａ＝１を設定し、項目Ｂの設定可能範囲Ｂ＝１，２を取得する。この結果、ステップＳ２６０では項目Ｂの設定可能範囲データとしてＡ＝１のとき、Ｂ＝１，２をリソースＤＢに登録する。
【０１２９】
さらに処理を続行し、ステップＳ２６５ではリストＬ２２＝Ｃとし、ステップＳ３１０ではリストＬ３２＝ＣＤＥＦＧとし、ステップＳ３２０ではリストＬ３２＝Ｃとする。そして、ステップＳ３２５では項目Ｂの下位項目Ｃについて処理を行うため、項目Ｂ＝１を仮設定し、ステップＳ３３０でリストＬ１３＝Ｃとする。さらに、ステップＳ２７０に戻ると、リストＬ１３に項目Ｃが存在することからステップＳ２２５以降の処理を繰り返し、項目Ｎ＝Ｃについて処理を行う（図１０(c)）。ステップＳ２４５〜Ｓ２６０の処理では項目Ｃの設定可能データとしてＢ＝１のとき、Ｃ＝１，２をリソースＤＢに登録する。
【０１３０】
さらに、ステップＳ２６５では項目Ｎ＝Ｃより下位が存在しないことから、Ｌ２３を空とし、ステップＳ３００でＬ２３の項目が空であることによって総て確定していると判別し、ステップＳ３０５にてリストＬ１３を空にしてステップＳ２７０の判別を行う。このとき、リストＬ１３が空であることによって図９のステップＳ４００の処理を行う。ステップＳ４００では、項目Ｎの上位項目について全項目値を設定済みであるか否かを判別し、項目Ｎの上位項目について全項目値を設定済みであると判別しないときには、ステップＳ４０２にて番号ｎをデクリメントしてステップＳ３２５以降の処理を繰り返す。ステップＳ４００にて項目Ｎの上位項目について全項目値を設定済みであると判別したときには、ステップＳ４０３にて番号ｎをデクリメントしてステップＳ４０５以降の処理を実施する。
【０１３１】
図１０に示す例では、項目Ｎ＝Ｃの上位項目Ｂについて項目値２を設定していないので、ステップＳ３２５の処理にて項目Ｂに項目値２を設定する（図１０(d)）。そして、ステップＳ３３０ではリストＬ１３にリストＬ３２をコピーしてリストＬ１３＝Ｃとする。これ以後ステップＳ２７０，Ｓ２２５〜ステップＳ２６０にて上記と同様の処理を行い、項目Ｃの設定可能データとしてＢ＝２のとき、Ｃ＝２，３，４をリソースＤＢに登録する。この結果、項目Ｂ，Ｃについては設定可能範囲が確定したことになる。
【０１３２】
この場合のステップＳ２６５〜Ｓ３０５，Ｓ２７０でも上記Ｂ＝１の場合と同様に判別を行うが、ステップＳ４００では項目Ｃの上位Ｂについて全項目値を設定済みであると判別するので、ステップＳ４０３以降の処理を実施する。ステップＳ４０５ではリストＬ１ｎから項目Ｎの上位項目を削除し、ステップＳ４１０ではリストＬ１ｎからリストＬ３ｎの項目を削除する。図１０に示す例では、ステップＳ４０５にてリストＬ１２から項目Ｃの上位項目Ｂを削除する。この結果、リストＬ１２＝ＣＤＥＦＧとなる。さらに、ステップＳ４１０では、リストＬ１２からリストＬ３２の項目を削除する。この結果リストＬ１２＝ＤＥＦＧとなる（図１０(e)）。
【０１３３】
ステップＳ４２０では現在の駆動環境を示すデータが記述されたプリンタＤＢに記述された全項目について設定可能範囲データの登録が終了したか否かを判別し、終了したと判別されるまでステップＳ２７０以降の処理を繰り返す。図１０(e)に示す例では、リストＬ１２＝ＤＥＦＧの段階でこれらの項目が未確定であるので、番号ｎ＝２でステップＳ２７０以降の処理を繰り返す。図１０(e)では、この番号ｎ＝２、リストＬ１２＝ＤＥＦＧとなっているときに、ステップＳ２２５にて項目Ｎ＝Ｄとした場合の例を示している。この場合、上述のように項目Ａ＝１のとき項目Ｂ＝１，２と決定した処理と同様の処理を経て、ステップＳ２６０では項目Ｄの設定可能範囲データとしてＡ＝１のとき、Ｄ＝１，２をリソースＤＢに登録する。
【０１３４】
そして、ステップＳ２６５にてリストＬ２２＝ＦＧとし、ステップＳ３００の判別を経てステップＳ３１０にてリストＬ３１＝ＥＦＧとする。リストＬ２２のＦＧは独立ツリーではないため、ステップＳ３１５の判別を経てステップＳ３２０をスキップし、ステップＳ３２５にて項目Ｄ＝１を仮設定してステップＳ３３０以後の処理を続ける。以後、図７〜図９に示すフローチャートに従って、図１０(f)に示すようにまず項目Ｄ＝１として項目Ｅの設定可能範囲データを登録し、さらに図１０(g)に示すように項目Ｄ＝１，Ｅ＝１として項目Ｆの設定可能範囲データを登録し、さらに、図１０(h)に示すように項目Ｄ＝１，Ｅ＝１，Ｆ＝２として項目Ｇの設定可能範囲データを登録する。
【０１３５】
この場合の項目Ｇについて設定可能範囲データを登録したらさらに項目Ｄ＝１，Ｅ＝２を設定して項目Ｆ，項目Ｇの設定可能範囲データを登録する処理を行う。すなわち、図７〜図９に示すフローチャートに従って処理を行うことにより、上位項目から逐次項目値を設定し、その項目値での設定可能範囲データを登録しつつ徐々に下位項目を設定していく。これにより、依存関係のある総ての場合について上位項目値を設定し、その下位の項目について設定可能範囲データを登録する処理を行うことができる。従って、上記図４に示すような印刷条件項目Ｆ，Ｇのように複雑な依存関係を有する項目間の設定可能範囲データを容易に規定することができ、現在の駆動環境に対応したリソースＤＢを作成することができる。
【０１３６】
（６）他の実施形態：
本発明においては、周辺機器の駆動条件の依存関係および設定可能範囲を参照し、現在の駆動環境に応じた設定可能範囲内でＵＩを表示しつつ利用者に駆動条件を設定させることができればよく、上記実施形態の他にも種々の構成を採用可能である。例えば、上述の実施形態においては、コンピュータ１０において少なくともＵＩでの印刷条件設定の前に、ＨＤＤ１５に記録されたプリンタＤＢを参照してリソースＤＢを作成する構成を採用していたが、むろん、予めコンピュータ１０以外のコンピュータにてリソースＤＢを作成し、ＨＤＤ１５に記録するようにしても良い。
【０１３７】
すなわち、プリンタ４０を提供するプリンタメーカーがそのプリンタやドライババージョン等、駆動環境に応じたリソースＤＢを予め作成し、ＰＲＴＤＲＶ２１のプログラムとリソースＤＢのデータを記録した媒体をコンピュータ１０の利用者に提供し、ＰＲＴＤＲＶ２１のインストール時にリソースＤＢをＨＤＤ１５に記録する構成を採用しても良い。かかる構成によれば、コンピュータ１０にてリソースＤＢを作成するためにプリンタＤＢを備える必要がないので、ＨＤＤ１５に必要とされるデータ容量を抑えることができる。また、利用者がコンピュータ１０を操作しているときにリソースＤＢを作成する必要がないので、作成のための時間を必要とせず、ＵＩ表示の初回から利用者を待たせることがない。
【０１３８】
一方、ＨＤＤ１５に記録されたプリンタＤＢを参照してリソースＤＢを作成する上記構成においては、上述のようにドライバのバージョンやインクセットの変更等、駆動環境がどのように変更したとしても容易にリソースＤＢを再構築することができるので、状況の変更に容易に対応することができる。また、上述のようにエラー等に起因してＰＲＴＤＲＶ２１から設定可能範囲が適切に取得できない場合であってもプリンタＤＢに適切な設定可能範囲データを記録すればよいため、エラーが生じた場合にも容易に修正をすることができる。
【０１３９】
また、リソースＤＢ１５ｃ１〜１５ｃｎに設定可能範囲データを登録するのは、上記ステップＳ１１５における構築時、ステップＳ１３０における設定可能範囲の学習時に限られず、例えば、印刷実行後に所定の設定可能範囲データを登録しても良い。すなわち、印刷領域の設定など、ＵＩ上でのプレビュー時に利用される場合には正確な値が必要なく、印刷時には正確な値が必要な類のデータであれば、印刷時にＰＲＴＤＲＶ２１に印刷領域を設定する際にその設定可能範囲を取得し、リソースＤＢ１５ｃ１〜１５ｃｎに登録しても良い。かかる構成によれば、ＵＩ表示の際にＰＲＴＤＲＶ２１に対して設定することを防止してＵＩ表示処理を高速に実施することが可能であり、一旦リソースＤＢ１５ｃ１〜１５ｃｎに設定可能範囲データを登録した後には、高速に正確な値を使用することができる。
【０１４０】
さらに、上記リソースＤＢの作成フローチャートは一例であり、上位項目の項目値を決定した上でその下位項目の設定可能範囲を取得する作業を逐次上位から下位に向けて実施できればよく、他にも種々のフローを採用可能である。上述の各リストを利用することも必須ではなく、種々の手法でバッファリングを行いながら処理を進めればよい。また、上記図５のステップＳ１４０において現在の項目値を取得する際に、初回のループ処理ではソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に項目値を問い合わせる構成を採用していたが、むろん、ＵＩ設定の終了後に、必要に応じて不揮発性メモリに転送するなどして仮設定値１４ａを保持しておき、初回のループ処理ではこの仮設定値を参照すれば、ＰＲＴＤＲＶ２１に対する問い合わせを行わない構成にすることができる。
【０１４１】
さらに、上述のようにリソースＤＢにおいて印刷条件項目の設定可能範囲として、項目値と併せて項目値に対応した文字列を記録することにすれば、設定可能範囲をＵＩ表示する際にその項目値を文字によって明示することが可能になり、よりわかりやすいＵＩを提供することが可能になる。むろん、ＵＩでの表示態様は種々のものを採用可能であり、上述のように駆動環境に応じてＵＩ画面を表示する場合と表示しない場合とを生じさせる構成の他、表示内容を変更するように構成することも可能である。例えば、インクセットが変更された場合に、そのインクセットがどのようなものであるかの表示、例えば、インク色や顔料／染料等の表示を切り換える構成等を採用可能である。かかる構成により、利用者がインクセットを変更した場合に自動で適切なＵＩ表示を実施するようにすることができる。
【０１４２】
さらに、上記実施形態においては、コンピュータに接続される周辺機器としてのプリンタに本発明を適用していたが、むろん、ＵＩによって駆動条件を設定可能な総ての周辺機器について本発明を適用することができる。例えば、ディスプレイ，プロジェクタ，スキャナ，デジタルカメラ，ハードディスクドライブ等に対して本発明を適用可能である。本発明においては、複雑に依存する駆動条件について駆動環境に応じた適切な設定可能範囲を特定するので、多数の駆動条件が存在し、また、多くの依存関係を有する周辺機器について本発明を適用するのが好ましい。この意味で、スキャナ等が好適な適用例であるし、スキャナとプリンタとコピーやｆａｘが一つの機体に構成された複合機なども好適な適用例である。
【０１４３】
さらに、駆動環境を示すデータとしては、上述のようにプリンタの機種やドライバのバージョンやインクセットを示すデータに限定されるわけではなく、他にも種々の駆動環境を採用可能である。例えば、ロケール情報が異なる場合に駆動環境が異なることにしても良い。すなわち、ロケール情報は上記図１にロケール情報２４に示すように、ＯＳ２０において参照可能なデータとして記録されており、これにより、コンピュータ１０が使用される国や言語を特定可能である。
【０１４４】
そこで、駆動環境データとしてこのロケール情報を含むように構成すれば、ＯＳ２０における国や言語の設定が異なる場合に異なるリソースＤＢを作成するようにすることができる。この結果、ＵＩにおいては、国や言語の設定に応じた表示を実施することが可能になる。特に、設定可能範囲データとして文字列データを含める場合に好適であり、この場合、ＵＩの表示言語に対応することができ、どのような言語であっても適切に設定可能範囲が表示されるようになる。
【０１４５】
さらに、上述の実施形態においては、現在の駆動環境を示すデータとリソースＤＢに記述された駆動環境データとが異なる場合にリソースＤＢを構築するようにしていたが、両者が異なる場合に必ずリソースＤＢを再構築するのではなく、両者が一致しているか否かを判別する際にある程度の許容性を持たせても良い。例えば、上記プリンタＤＢに対してドライババージョンの適用範囲を示すデータを記述しておき、現在の駆動環境として取得したドライババージョンを示すデータが当該プリンタＤＢに記述されたドライババージョンの適用範囲内にないときにリソースＤＢを構築するような構成を採用可能である。すなわち、ドライババージョンが更新されることによって設定可能範囲が変動しないのであれば、その更新によってリソースＤＢを構築しないように更新後のバージョンを適用範囲内にする。かかる構成により、リソースＤＢを構築するか否かをより柔軟に決定することができる。
【図面の簡単な説明】
【０１４６】
【図１】印刷制御装置の概略構成を示すブロック図である。
【図２】プリンタＤＢのデータ記述例を示す図である。
【図３】リソースＤＢのデータ記述例を示す図である。
【図４】設定可能範囲を依存関係とともに示す図である。
【図５】印刷制御処理のフローチャートである。
【図６】ＵＩの表示例を示す図である。
【図７】リソースＤＢの構築処理を示すフローチャートである。
【図８】リソースＤＢの構築処理を示すフローチャートである。
【図９】リソースＤＢの構築処理を示すフローチャートである。
【図１０】リソースＤＢを構築する際の処理例を説明する説明図である。
【符号の説明】
【０１４７】
１０…コンピュータ、１４…ＲＡＭ、１４ａ…仮設定値、１５…ＨＤＤ、１５ａ…画像データ、１５ｂ１〜１５ｂｎ…プリンタＤＢ、１５ｃ１〜１５ｃｎ…リソースＤＢ、２０…ＯＳ、２１…ＰＲＴＤＲＶ、２１ａ…通信部、２２…入力機器ＤＲＶ、２３…ディスプレイＤＲＶ、２５…ＡＰＬ、２５ａ…画像処理部、２５ｂ…ＵＩ表示制御部、２５ｃ…印刷実行部、３０…ＵＩ制御モジュール、３１…項目値仮設定部、３２…項目値取得部、３３…項目値設定可能範囲取得部、３４…リソースＤＢ作成部、３５…項目値設定部、４０ａ〜４０ｎ…プリンタ
【図１】
2005063114.tif 000003
【図２】
2005063114.tif 000004
【図３】
2005063114.tif 000005
【図４】
2005063114.tif 000006
【図５】
2005063114.tif 000007
【図６】
2005063114.tif 000008
【図７】
2005063114.tif 000009
【図８】
2005063114.tif 000010
【図９】
2005063114.tif 000011
【図１０】
2005063114.tif 000012