(57)【要約】【課題】  ある駆動条件の設定後に他の駆動条件の設定可能範囲を高速かつ適切に表示するのが困難であった。【解決手段】  コンピュータに接続される周辺機器の駆動条件を設定するＵＩの表示を制御するにあたり、上記駆動条件同士の依存関係を示す依存関係データと上記駆動条件の設定可能範囲を示す設定可能範囲データを予め所定の記憶媒体に記憶しておき、上記設定可能範囲データを参照して上記駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該設定可能範囲で駆動条件を設定するための選択肢を表示するとともに駆動条件の設定値の入力を受け付け、上記設定可能範囲データを参照して上記設定値の入力によって変更された駆動条件に依存する駆動条件の設定可能範囲を取得し、所定の出力装置に対して当該依存する駆動条件の設定可能範囲を表示する。【選択図】  図６
2005063111.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)に示すように項目Ｄ＝１，Ｅ＝１，Ｆ＝２として項目Ｇの設定可能範囲データを登録する。
【０１２８】
この場合の項目Ｇについて設定可能範囲データを登録したらさらに項目Ｄ＝１，Ｅ＝２を設定して項目Ｆ，項目Ｇの設定可能範囲データを登録する処理を行う。すなわち、図７〜図９に示すフローチャートに従って処理を行うことにより、上位項目から逐次項目値を設定し、その項目値での設定可能範囲データを登録しつつ徐々に下位項目を設定していく。これにより、依存関係のある総ての場合について上位項目値を設定し、その下位の項目について設定可能範囲データを登録する処理を行うことができる。従って、上記図４に示すような印刷条件項目Ｆ，Ｇのように複雑な依存関係を有する項目間の設定可能範囲データを容易に規定することができ、リソースＤＢ１５ｃを作成することができる。
【０１２９】
（６）他の実施形態：
本発明においては、周辺機器の駆動条件の依存関係および設定可能範囲を参照し、設定可能範囲内でＵＩを表示しつつ利用者に駆動条件を設定させることができればよく、上記実施形態の他にも種々の構成を採用可能である。例えば、上述の実施形態においては、コンピュータ１０において少なくともＵＩでの印刷条件設定の前に、ＨＤＤ１５に記録されたプリンタＤＢ１５ｂを参照してリソースＤＢ１５ｃを作成する構成を採用していたが、むろん、予めコンピュータ１０以外のコンピュータにてリソースＤＢ１５ｃを作成し、ＨＤＤ１５に記録するようにしても良い。
【０１３０】
すなわち、プリンタ４０を提供するプリンタメーカーが予めリソースＤＢ１５ｃを作成し、ＰＲＴＤＲＶ２１のプログラムとリソースＤＢ１５ｃのデータを記録した媒体をコンピュータ１０の利用者に提供し、ＰＲＴＤＲＶ２１のインストール時にリソースＤＢ１５ｃをＨＤＤ１５に記録する構成を採用しても良い。かかる構成によれば、コンピュータ１０にてリソースＤＢ１５ｃを作成するためにプリンタＤＢ１５ｂを備える必要がないので、ＨＤＤ１５に必要とされるデータ容量を抑えることができる。また、利用者がコンピュータ１０を操作しているときにリソースＤＢ１５ｃを作成する必要がないので、作成のための時間を必要とせず、ＵＩ表示の初回から利用者を待たせることがない。
【０１３１】
一方、ＨＤＤ１５に記録されたプリンタＤＢ１５ｂを参照してリソースＤＢ１５ｃを作成する上記構成においては、上述のようにドライバのバージョンやインクセットの変更時に容易にリソースＤＢ１５ｃを再構築することができるので、状況の変更に容易に対応することができる。また、上述のようにエラー等に起因してＰＲＴＤＲＶ２１から設定可能範囲が適切に取得できない場合であってもエラーの修正後に修正後の設定可能範囲データをプリンタＤＢ１５ｂに記録可能であるため、エラーが生じた場合にも容易に修正をすることができる。
【０１３２】
また、リソースＤＢ１５ｃに設定可能範囲データを登録するのは、上記ステップＳ１１５における構築時、ステップＳ１３０における設定可能範囲の学習時に限られず、例えば、印刷実行後に所定の設定可能範囲データを登録しても良い。すなわち、印刷領域の設定など、ＵＩ上でのプレビュー時に利用される場合には正確な値が必要なく、印刷時には正確な値が必要な類のデータであれば、印刷時にＰＲＴＤＲＶ２１に印刷領域を設定する際にその設定可能範囲を取得し、リソースＤＢ１５ｃに登録しても良い。かかる構成によれば、ＵＩ表示の際にＰＲＴＤＲＶ２１に対して設定することを防止してＵＩ表示処理を高速に実施することが可能であり、一旦リソースＤＢ１５ｃに設定可能範囲データを登録した後には、高速に正確な値を使用することができる。
【０１３３】
さらに、上記実施形態においてはコンピュータ１０に対して一台のプリンタ４０が接続されていたが、むろん、複数台のプリンタが接続され、複数のＰＲＴＤＲＶがインストールされている状況において本発明を適用することも可能である。すなわち、各プリンタを示すデータはプリンタＤＢ１５ｂやリソースＤＢ１５ｃの先頭に記述され、このデータによってプリンタが識別される。従って、各プリンタにて初めて印刷を実行する際にはリソースＤＢ１５ｃが未登録であるとし、そのプリンタについて作成されたプリンタＤＢ１５ｂを参照することによってリソースＤＢ１５ｃを作成することができる。この結果、各プリンタについて作成されたプリンタＤＢ１５ｂやリソースＤＢ１５ｃを参照し、各プリンタ毎の印刷条件項目の設定可能範囲に応じたＵＩを表示することが可能になる。
【０１３４】
さらに、上記リソースＤＢ１５ｃの作成フローチャートは一例であり、上位項目の項目値を決定した上でその下位項目の設定可能範囲を取得する作業を逐次上位から下位に向けて実施できればよく、他にも種々のフローを採用可能である。上述の各リストを利用することも必須ではなく、種々の手法でバッファリングを行いながら処理を進めればよい。また、上記図５のステップＳ１４０において現在の項目値を取得する際に、初回のループ処理ではソフトウェアＩ／Ｆ２７を介してＰＲＴＤＲＶ２１に項目値を問い合わせる構成を採用していたが、むろん、ＵＩ設定の終了後に、必要に応じて不揮発性メモリに転送するなどして仮設定値１４ａを保持しておき、初回のループ処理ではこの仮設定値を参照すれば、ＰＲＴＤＲＶ２１に対する問い合わせを行わない構成にすることができる。
【０１３５】
さらに、上述のようにリソースＤＢ１５ｃにおいて印刷条件項目の設定可能範囲として、項目値と併せて項目値に対応した文字列を記録することにすれば、設定可能範囲をＵＩ表示する際にその項目値を文字によって明示することが可能になり、よりわかりやすいＵＩを提供することが可能になる。
【０１３６】
さらに、上記実施形態においては、コンピュータに接続される周辺機器としてのプリンタに本発明を適用していたが、むろん、ＵＩによって駆動条件を設定可能な総ての周辺機器について本発明を適用することができる。例えば、ディスプレイ，プロジェクタ，スキャナ，デジタルカメラ，ハードディスクドライブ等に対して本発明を適用可能である。本発明においては、複雑に依存する駆動条件について設定可能範囲データで適切な設定可能範囲を特定するので、多数の駆動条件が存在し、また、多くの依存関係を有する周辺機器について本発明を適用するのが好ましい。この意味で、スキャナ等が好適な適用例であるし、スキャナとプリンタとコピーやｆａｘが一つの機体に構成された複合機なども好適な適用例である。
【図面の簡単な説明】
【０１３７】
【図１】印刷制御装置の概略構成を示すブロック図である。
【図２】プリンタＤＢのデータ記述例を示す図である。
【図３】リソースＤＢのデータ記述例を示す図である。
【図４】設定可能範囲を依存関係とともに示す図である。
【図５】印刷制御処理のフローチャートである。
【図６】ＵＩの表示例を示す図である。
【図７】リソースＤＢの構築処理を示すフローチャートである。
【図８】リソースＤＢの構築処理を示すフローチャートである。
【図９】リソースＤＢの構築処理を示すフローチャートである。
【図１０】リソースＤＢを構築する際の処理例を説明する説明図である。
【符号の説明】
【０１３８】
１０…コンピュータ、１４…ＲＡＭ、１４ａ…仮設定値、１５…ＨＤＤ、１５ａ…画像データ、１５ｂ…プリンタＤＢ、１５ｃ…リソースＤＢ、２０…ＯＳ、２１…ＰＲＴＤＲＶ、２２…入力機器ＤＲＶ、２３…ディスプレイＤＲＶ、２５…ＡＰＬ、２５ａ…画像処理部、２５ｂ…ＵＩ表示制御部、２５ｃ…印刷実行部、３０…ＵＩ制御モジュール、３１…項目値仮設定部、３２…項目値取得部、３３…項目値設定可能範囲取得部、３４…リソースＤＢ作成部、３５…項目値設定部、４０…プリンタ
【図１】
2005063111.tif 000003
【図２】
2005063111.tif 000004
【図３】
2005063111.tif 000005
【図４】
2005063111.tif 000006
【図５】
2005063111.tif 000007
【図６】
2005063111.tif 000008
【図７】
2005063111.tif 000009
【図８】
2005063111.tif 000010
【図９】
2005063111.tif 000011
【図１０】
2005063111.tif 000012