(57)【特許請求の範囲】
【請求項１】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶手段と、
設定項目間に競合が発生している場合、前記操作履歴記憶手段により記憶された情報に基づいて、競合発生後の動作を決定する決定手段と、
競合の発生を通知する競合通知手段をさらに備え、
前記決定手段は、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目に関する情報が前記操作履歴記憶手段に記憶されている場合、前記競合通知手段が競合の発生を通知すると決定することを特徴とする情報処理装置。
【請求項２】
前記設定項目について入力された設定値を変更して前記競合を解消する第１処理と、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目の設定値を変更して前記競合を解消する第２処理のいずれか一方を実行する競合解消手段を更に有し、
前記決定手段は、前記通知された情報に対するユーザ操作に従って、前記競合解消手段に、前記第１処理を実行させるか、または、前記第２処理を実行させるかを決定することを特徴とする特徴とする請求項１に記載の情報処理装置。
【請求項３】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶手段と、
設定項目間に競合が発生している場合、前記操作履歴記憶手段により記憶された情報に基づいて、競合発生後の動作を決定する決定手段と、
前記決定手段は、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目に関する情報が前記操作履歴記憶手段に記憶されていない場合、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目の設定値を変更して前記競合を解消することを特徴とする情報処理装置。
【請求項４】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶手段と、
設定項目間に競合が発生している場合、前記操作履歴記憶手段により記憶された情報に基づいて、競合発生後の動作を決定する決定手段と、
印刷実行指示が入力された場合、前記操作履歴記憶手段により記憶された情報を削除する削除手段を備えることを特徴とする情報処理装置。
【請求項５】
前記競合通知手段は、設定項目間に競合が発生している旨の通知のみを行い、ユーザが可能な応答については、ダイアログを閉じる操作のみである通知を画面に表示することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記決定手段は、印刷設定情報を取得した後に、設定項目間の依存関係に基づいて設定項目間に競合が発生していることを検出し、検出された競合状態に関わる設定項目が操作履歴に記憶されているか否かを判定し、この判定結果に基づいて、競合発生後の動作を決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記ユーザインタフェースは、プリンタドライバにより提供されることを特徴とする請求項1乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記ユーザインタフェースは、アプリケーションソフトウェアにより提供されることを特徴とする請求項1乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
前記ユーザインタフェースは、スキャナ機能を備える装置の操作パネルに表示されることを特徴とする請求項1乃至６のいずれか１項に記載の情報処理装置。
【請求項１０】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置の制御方法であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶工程と、
設定項目間に競合が発生している場合、前記操作履歴記憶工程で記憶された情報に基づいて、競合発生後の動作を決定する決定工程と、
競合の発生を通知する競合通知工程をさらに備え、
前記決定工程は、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目に関する情報が前記操作履歴記憶工程において記憶されている場合、前記競合通知工程において競合の発生を通知すると決定する
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置の制御方法であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶工程と、
設定項目間に競合が発生している場合、前記操作履歴記憶工程で記憶された情報に基づいて、競合発生後の動作を決定する決定工程と、
前記決定工程は、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目に関する情報が前記操作履歴記憶工程において記憶されていない場合、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目の設定値を変更して前記競合を解消することを特徴とする情報処理装置の制御方法。
【請求項１２】
ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置の制御方法であって、
前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶工程と、
設定項目間に競合が発生している場合、前記操作履歴記憶工程で記憶された情報に基づいて、競合発生後の動作を決定する決定工程と、
印刷実行指示が入力された場合、前記操作履歴記憶工程において記憶された情報を削除する削除工程を備えることを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項１乃至９のいずれか１項に記載の情報処理装置の各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
制御対象の機器の動作条件やアプリケーションソフトウェアにおける処理方法を決定する場合、ユーザインタフェースを介して複数の設定項目に対する設定値をユーザから受け付ける手法が一般的に用いられている。印刷装置の制御を行うソフトウェアであるプリンタドライバもその一例であり、印刷設定画面を介して、印刷動作に関わる設定を行うことができる。
【０００３】
ところで、プリンタドライバの印刷設定のように複数の設定項目を持つ場合、設定項目間に依存関係があり、しかも同時に使用することができない設定値の組み合わせが存在することがある。たとえば、印刷媒体である用紙を給紙するための給紙口を複数備えているプリンタにおいて、給紙口ごとに搬送可能な用紙種が限定されている場合、搬送不可能な用紙種の設定と給紙口の設定とを組み合わせることを禁止している。
【０００４】
従来は、複数の設定項目を持つプリンタドライバの印刷設定画面において、設定項目間に競合が発生した場合、競合状態の発生をユーザに通知するダイアログを表示する技術が知られている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２４４３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プリンタドライバの印刷設定画面のように、設定項目が多く項目間の依存関係が複雑な場合、競合の発生時に毎回警告ダイアログ等でユーザに通知する方法では、頻繁に操作が中断され、煩わしいという問題がある。しかし、ユーザへの通知を行わずに内部的に一部の設定項目の設定値を自動的に変更することによって競合状態を解消する方法では、ユーザの意図しない設定結果になるおそれがある。
【０００７】
つまり、前記従来例では、設定項目が多くしかも設定項目間の依存関係が複雑な場合には、頻繁に操作が中断されるという問題があり、また、設定項目間の競合発生時に、ユーザの意図しない設定結果になるおそれがあった。
【０００８】
本発明は、頻繁に操作が中断されることがなく、また、設定項目間の競合発生時に、ユーザの意図しない設定結果にはならない情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、ユーザインタフェースを介して設定項目について入力された設定値に基づいて動作する情報処理装置であって、前記ユーザインタフェースを介して入力された設定値に対応する設定項目に関する情報を記憶する操作履歴記憶手段と、設定項目間に競合が発生している場合、前記操作履歴記憶手段により記憶された情報に基づいて、競合発生後の動作を決定する決定手段と、競合の発生を通知する競合通知手段をさらに備え、前記決定手段は、前記ユーザインタフェースを介して入力された設定値に対応する設定項目と競合する競合項目に関する情報が前記操作履歴記憶手段に記憶されている場合、前記競合通知手段が競合の発生を通知すると決定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、設定項目が多くしかも設定項目間の依存関係が複雑な場合でも、頻繁に操作が中断されることがなく、また、設定項目間の競合発生時に、ユーザの意図しない実行結果にはならないという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施形態１における印刷システムのハードウェア構成を示す図である。
【図２】実施形態１におけるプリンタドライバの構成を説明する図である。
【図３】実施形態１における印刷設定画面例３０１を示す図である。
【図４】設定項目間の依存関係を表す依存関係テーブルの例を示す図である。
【図５】ユーザインタフェースモジュールの制御動作を示すフローチャートである。
【図６】整合性検証処理動作を示すフローチャートである。
【図７】操作履歴テーブル７０１、７０２を示す図である。
【図８】競合通知画面の画面例を示す図である。
【図９】実施形態２における制御動作を示すフローチャートである。
【図１０】実施形態２における処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の好適な実施の形態を詳しく説明する。以下の実施形態では、印刷装置と印刷装置に接続された情報処理装置とによって構成された印刷システムにおいて、印刷条件の設定を行う場合について説明する。
【実施形態１】
【００１３】
図１は、実施形態１における印刷システムのハードウェア構成を示す図である。実施形態１では、印刷装置２に接続される情報処理装置として、パソコン（パーソナルコンピュータ）１を例に挙げて説明する。
【００１４】
パソコン１は、入力インタフェース１１、ＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、外部記憶装置１５、出力インタフェース１６、表示部１７、キーボード１０、マウス１８、入出力インタフェース１９を有する。
【００１５】
ＲＯＭ１３には、初期化プログラムが記憶され、外部記憶装置１５には、アプリケーションプログラム群と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、プリンタドライバやその他各種のデータが保存されている。後述する依存関係テーブル、操作履歴テーブルも、外部記憶装置１５に保持されている。ＲＡＭ１４は、外部記憶装置１５にストアされている各種プログラムが使用するワークメモリである。
【００１６】
ＣＰＵ１２は、バスに接続されている前記各構成要素を総括的に制御し、ＲＯＭ１３に記憶されている各種プログラムをワークメモリとしてのＲＡＭ１４上で実行することで、パソコン１を制御する。キーボード１０、マウス１８は、操作デバイスであり、これらをユーザが操作することによって、ユーザの指示がＣＰＵ１２に入力される。表示部１７は、ＣＰＵ１２の制御によって、ＲＡＭ１４に記憶されている画像やメニューなど各種の情報を表示する。印刷装置２は、ＣＰＵ２５の制御によってＲＡＭ２２上に読み出された印刷対象のデータを印刷媒体に印刷する。入出力インタフェース１９、２１は、ＣＰＵ２５が通信ケーブルを介してパソコン１と通信するためのインタフェースである。
【００１７】
印刷装置２は、入出力インタフェース２１、ＲＡＭ２２、プリントエンジン２３、ＲＯＭ２４、ＣＰＵ２５を有する。
【００１８】
入出力インタフェース２１は、パソコン１の入出力インタフェース１９に接続されている。実施形態１において、入出力インタフェース１９、２１として、ＵＳＢ（登録商標）を想定しているが、他の接続インタフェースを使用するようにしてもよい。具体的には、Ｗｉ−Ｆｉ等の無線通信インタフェース等が使用されても良い。また、この入出力インタフェース２１に、印刷装置２の機能を拡張する拡張オプションを接続することも可能である。たとえば、拡張オプションとして印刷装置２とパソコン１がＢｌｕｅｔｏｏｔｈ（登録商標）を用いて通信するためのオプションが接続されても良い。ＲＡＭ２２は、ＣＰＵ２５の主メモリとワークメモリとして用いられ、受信した印刷コマンドを一旦保存するための受信バッファや各種のデータを保存する。プリントエンジン２３は、ＲＡＭ２２に保存された印刷コマンドに基づいて印刷する。ＲＯＭ２４には、ステータス管理プログラム２４ａ等、各種の制御プログラムや各制御プログラムが使用するデータが記憶され、ＣＰＵ２５は、これらの制御プログラムに従って印刷装置２の各部を制御する。ステータス管理プログラム２４ａは、図示しない印刷装置内部に設けられている各種のセンサの情報を元に、印刷装置２の状態を監視し、ステータス情報を作成し、ＲＡＭ２２にストアするプログラムである。
【００１９】
ここでは、パソコン１と印刷装置２との処理分担を前記のように例示したが、特にこの分担形態に限らず、他の形態で処理分担するようにしてもよい。
【００２０】
図２は、実施形態１におけるプリンタドライバの構成を説明する図である。図２に示す例では、プリンタドライバ２２０を中心に概念的に表している。なお、ＣＰＵ１２が、各種モジュールやソフトウェアを実行することで、各モジュール及びソフトウェアの処理が実行されることになるが、図２の説明では各処理の主語を各モジュールやソフトウェアとして説明している。
【００２１】
アプリケーション２０１が作成した印刷データは、ＯＳの印刷サポート機能２１１を介して、スプールデータ２１４としてスプーラ２１２のプリントキュー２１３に一時的に蓄えられる。スプールデータ２１４は、名称などを付加した印刷ジョブとして、スプーラ２１２に管理される。スプールデータは、プリンタドライバ２２０によって、印刷装置２が解釈可能な印刷コマンドに変換された後に、印刷装置２に供給して印刷するように構成されている。
【００２２】
アプリケーション２０１は、印刷指示を行う際にＯＳの印刷サポート機能２１１を介して、ユーザインタフェースモジュール２２１から返却された印刷設定情報を印刷データに付加する。印刷設定情報は、アプリケーションからの印刷開始指示を行う前に、プリンタドライバ２２０の印刷設定画面を用いてユーザにより設定された情報である。
【００２３】
ユーザインタフェースモジュール２２１は、これから印刷が開始されるという通知を、ＯＳの印刷サポート機能２１１から受け取ると、処理を開始する。
【００２４】
一方、プリンタドライバ２２０に渡された印刷ジョブは、コマンド生成モジュール２２４に渡される。コマンド生成モジュール２２４は、印刷設定情報に従って印刷ジョブの印刷データを印刷装置２が解釈可能な印刷コマンドに変換する。
【００２５】
次に、印刷コマンドは、データ送受信モジュール２２５によって、順次印刷装置２に送信される。ここで、データ送受信モジュール２２５は、印刷装置２でエラーが発生したという情報や現在印刷中のページ情報など、印刷装置２の状態を読み出し、ステータス情報表示モジュール２２６に渡す。
【００２６】
一方、ステータス情報表示モジュール２２６は、印刷装置２の状態を解析し、パソコン１の表示部１７上にステータス情報表示画面を表示し、このステータス情報表示画面に印刷装置２の情報を表示する。これによって、ユーザが印刷コマンドの処理状態や印刷装置２の状態を確認することができる。また、ステータス情報表示モジュール２２６は、コマンド生成モジュール２２４など、プリンタドライバを構成する他のモジュールから指示を受けた場合にも、ステータス情報表示画面上に通知する。
【００２７】
なお、実施形態１では、ステータス情報表示モジュール２２６がステータス情報表示画面を表示してユーザに情報を通知しているが、これに限定されるものではない。たとえば、ステータス情報表示モジュール２２６は、印刷装置２の状態解析等を行い、情報表示画面を用いてユーザに情報を伝える処理を、ＯＳの印刷サポート機能２１１を用いて実現するようにしてもよい。
【００２８】
図３（ａ）は、実施形態１におけるプリンタドライバ２２０のユーザインタフェースモジュール２２１が表示する印刷設定画面例３０１を示す図である。前述したように、印刷設定画面３０１を用いることによって、ユーザは、印刷に使用する用紙種、用紙サイズ、給紙方法、印刷品質、印刷面など、様々な印刷条件（設定項目の設定値）を設定することができる。
【００２９】
プルダウンメニュー３０２は、用紙種を選択する部分である。プルダウンメニュー３０２は、用紙種（設定項目の１つ）として普通紙、光沢紙、厚紙の３つの設定値を有し、ユーザは、プルダウンメニュー３０２から任意の設定値を選択することによって、用紙種を設定することができる。
【００３０】
図３（ｂ）は、プルダウンメニュー３０２を開いた状態を示す図である。プルダウンメニュー３０３は、給紙方法を選択する部分である。
【００３１】
実施形態１における印刷装置は、用紙の給紙機構として３つの給紙口を備え、プルダウンメニュー３０３は、それぞれの給紙口に対応する給紙方法（設定項目の１つ）として、後トレイ、カセット、手差しの３つの設定値を有している。ユーザは、プルダウンメニュー３０３から任意の設定値を選択することによって、給紙方法を設定することができる。
【００３２】
図３（ｃ）は、プルダウンメニュー３０３を開いた状態を示す図である。
【００３３】
同様に、プルダウンメニュー３０４は、印刷に使用する用紙サイズを設定する部分であり、プルダウンメニュー３０５は、「印刷面」すなわち用紙の片面に印刷する片面印刷か、両面に印刷する両面印刷かを選択する部分である。なお、印刷面は設定項目であり、片面印刷、両面印刷は、設定値である。
【００３４】
プリントボタン３０６は、印刷実行を指示するボタンである。ユーザインタフェースモジュール２２１は、プリントボタン３０６が押下されると、その時点の印刷設定画面においてなされた印刷設定と印刷実行の指示とをＯＳの印刷サポート機能に伝え処理を終了する。
【００３５】
キャンセルボタン３０７は、印刷設定操作のキャンセルを指示するボタンである。ユーザインタフェースモジュール２２１は、キャンセルボタン３０７が押下されると、印刷キャンセルの指示を、ＯＳの印刷サポート機能に伝え、処理を終了する。印刷設定画面において設定可能な複数の設定項目には、設定項目間に依存関係が存在する。たとえば、印刷に用いる用紙種の設定値（普通紙、光沢紙、厚紙等の設定値）によって、使用可能な給紙方法の設定値（後トレイ、カセット、手差し等の設定値）が異なる。また、用紙サイズによって、使用可能な給紙方法の設定値（Ａ４、Ｂ５、Ｌ判等の設定値）が異なる。これは、印刷装置に供えられている給紙口によって、搬送可能な用紙の材質や大きさが異なることによるものである。
【００３６】
図４は、これらの設定項目間の依存関係を表す依存関係テーブルの例を示す図である。なお、図４（ａ）に示す「用紙種」「給紙方法」は、設定項目の例であり、「普通紙」「光沢紙」「厚紙」「後トレイ」「カセット」「手差し」は、設定値の例である。また、図４（ｂ）に示す「用紙サイズ」「印刷面」は、設定項目の例であり、「Ａ４」「Ｂ５」「Ｌ判」「片面印刷」「両面印刷」は、設定値の例である。
【００３７】
依存関係テーブル４０１は、設定項目「用紙種」の各設定値と、設定項目「給紙方法」の各設定値との組み合わせの可否を示し、組み合わせ可否の欄に「○」が記載されている設定値の組み合わせが、使用可能であることを表す。すなわち、用紙種における「普通紙」は、給紙方法における「後トレイ」「カセット」「手差し」と組み合わせて使用可能である。用紙種の設定値「光沢紙」は、給紙方法の設定値「後トレイ」と組み合わせて使用可能であるが、給紙方法における「カセット」「手差し」とは組み合わせて使用することができない。用紙種の設定値「厚紙」は、給紙方法の設定値「手差し」と組み合わせて使用可能であるが、給紙方法の設定値「後トレイ」「カセット」とは組み合わせて使用することができない。同様に、図４（ｂ）に示す依存関係テーブル４０２は、設定項目「用紙サイズ」の各設定値と、設定値「印刷面」の各設定値との組み合わせ可否を示すものである。
【００３８】
印刷装置２の特性に従い、プリンタドライバが依存関係テーブル４０１及び４０２を予め保持し、プリンタドライバがパソコン１にインストールされる際に、設定項目間の依存関係が、外部記憶装置１５に格納される。そして、依存関係テーブル４０１、４０２によって同時に組み合わせて使用できないと定められている設定値が選択された状態を、本実施形態では、「競合が発生している状態」または「競合の発生」と呼ぶ。
【００３９】
なお、依存関係テーブルは、図４に示す構成例に限定されるものではない。
【００４０】
図５、図６、図９は、ユーザインタフェースモジュール２２１の制御動作を示すフローチャートである。なお、本実施形態のフローチャートの各ステップは、フローチャートの処理に対応するプログラムが、外部記憶装置１５に格納され、ＣＰＵ１２が、このプログラムをＲＡＭ１４上で実行することによって、実現される。また、図５のフローチャートは、ＣＰＵ１２がユーザインタフェースモジュール２２１を用いることで実現される。
【００４１】
ＣＰＵ１２が、これから印刷が開始されるという通知を受け取ることによって処理を開始し、ステップＳ５０１で、印刷設定画面（たとえば、図３（ａ））を表示する。
【００４２】
次に、ステップＳ５０２で、ＣＰＵ１２は、操作履歴テーブルを作成する。操作履歴テーブルは、ユーザによって変更入力された設定値に対応する設定項目を記憶するテーブルであり、すなわち、操作履歴を記憶するテーブルであるが、その詳細については、後述する。ステップＳ５０３で、ＣＰＵ１２は、印刷設定画面を介したユーザ操作の受付を開始し、印刷設定画面に対する何らかのユーザ操作が行われると、ステップＳ５０４で、操作内容を検証する。
【００４３】
ステップＳ５０４で検証したユーザの操作内容が、キャンセルまたはプリント実行を指示する操作であると判断されれば、ＣＰＵ１２は、その時点の印刷設定画面上の設定値によって印刷条件を確定し、ステップＳ５０７で、操作履歴テーブルを削除する。なお、前記その時点の印刷設定画面上の設定値は、競合関係がないものとする。そして、ステップＳ５０８で、ＣＰＵ１２は、印刷設定画面を閉じる。なお、Ｓ５０８の後に、ＣＰＵ１２は、プリンタドライバ２２０を用いて、印刷設定画面において設定された印刷設定情報と印刷データに基づいて印刷コマンドを生成し、印刷装置２へ送信する。
【００４４】
ステップＳ５０４で検証したユーザの操作内容が、設定値を変更する操作（設定変更）であると判断されれば、ＣＰＵ１２は、変更が行われた設定項目を、ステップＳ５０５で、図７で説明する操作履歴テーブル７０１、７０２に記憶する。つまり、ユーザによって変更入力された設定値に対応する設定項目を、ＣＰＵ１２は、操作履歴テーブル７０１、７０２に記憶する。ただし、変更された設定値に対応する設定項目が、その時点で既に操作履歴テーブルに記憶されていれば、ステップＳ５０５において、ＣＰＵ１２は、操作履歴テーブルを更新しない。
【００４５】
そして、ステップＳ５０６で、ＣＰＵ１２は、整合性検証処理を行う。なお、整合性検証処理について、図６に関する説明の中で詳述する。そして、整合性検証処理を終了すると、ステップＳ５０３へ戻り、ユーザ操作の受付を継続する。
【００４６】
操作履歴テーブル７０１、７０２には、印刷設定画面上でユーザが行った操作によって変更された設定値に対応する設定項目が、記憶されている。入力された設定値に対応する設定項目に関する情報を操作履歴テーブルに記憶する処理を、操作履歴記憶処理と呼ぶこともある。前述の通り、操作履歴テーブル７０１、７０２は、印刷設定画面を開いた時に作成され、キャンセルまたは印刷実行によって印刷設定画面が閉じられると、その時点で、削除される。図７（ａ）に示す操作履歴テーブル７０１は、印刷設定画面が開かれてから、ユーザによって用紙種の設定値と給紙方法の設定値とが少なくとも１回、変更されたことを示す。また、図７の操作履歴テーブルには、印刷設定画面において設定値が変化する度に設定項目が追加される。つまり、図７（ａ）は、最初に用紙種の設定値が変更されて、次に給紙方法の設定値が変更されたことを示す。
【００４７】
図６は、ＣＰＵ１２がユーザインタフェースモジュール２２１を用いて、依存関係テーブル４０１、４０２に基づいて行う整合性検証処理を示すフローチャートである。整合性検証処理は、設定項目間の依存関係に基づいて設定項目間に競合が発生していることを検出し、検出された競合状態に関わる設定項目が操作履歴に記憶されているか否かを判定し、この操作履歴判定結果に基づいて、競合発生後の動作を決定する処理である。
【００４８】
図５に示すユーザインタフェースモジュール２２１の処理フローにおいて、ユーザが任意の設定項目の設定値を変更する操作を行うと、ＣＰＵ１２は、整合性検証処理を開始する。
【００４９】
ＣＰＵ１２は、ユーザが設定変更した後の設定値が、他の設定項目との間で競合が発生しているかどうか、すなわち競合項目が存在するか否かを、ステップＳ６０２で判定する。具体的には、ＣＰＵ１２は、依存関係テーブル４０１、４０２を用いて、設定項目間に競合が発生していることを検出（競合検出）する。なお、現実には、１つの設定項目に含まれている設定値と、別の設定項目に含まれている設定値とを組合せできない場合を、競合するというが、以下では、このように競合する場合を、競合項目が存在しているという。また、前記のように競合する場合を、設定項目間に競合が発生しているともいう。
【００５０】
ここで、競合項目の有無を判断する処理について、ステップＳ５０３で、ユーザが設定項目である用紙種を設定値である「光沢紙」に変更した場合を例にとり、依存関係テーブル４０１を用いて詳述する。ユーザ操作によって変更された設定項目である用紙種は、依存関係テーブル４０１に示す通り、給紙方法との間に依存関係が存在する。そこで、ＣＰＵ１２は、ユーザ操作による変更後の用紙種が、その時点で設定されている給紙方法とともに使用可能であるかを判断する。
【００５１】
この時点で設定されている給紙方法が「カセット」であれば、依存関係テーブル４０１に基づいて、変更後の用紙種「光沢紙」と給紙方法「カセット」とは、組み合わせて使用できないと判定されるので、ＣＰＵ１２は、給紙方法を「競合項目である」と判断する。一方、設定されている給紙方法が「後トレイ」であれば、依存関係テーブル４０１に基づいて、変更後の用紙種「光沢紙」は、給紙方法「後トレイ」と組み合わせて使用できると判定されるので、ＣＰＵ１２は、給紙方法を「競合項目ではない」と判断する。
【００５２】
同様に、ＣＰＵ１２は、変更された設定項目と依存関係を持つ全ての設定項目について、変更後の設定値と組み合わせて使用することが可能かどうかを判断し、使用不可能な項目が存在しなければ、競合項目は無いと判断し、整合性検証処理を終了する。
【００５３】
一方、変更後の設定値と組み合わせて使用することが不可能な設定項目が存在すれば、ＣＰＵ１２は競合項目が存在すると判断し、ステップＳ６０３に進む。ステップＳ６０３で、ＣＰＵ１２は、ステップＳ６０２で競合項目が存在していると判定された設定項目が操作履歴テーブルに記憶されているか否かを判断する。つまり、競合している設定項目が、操作履歴に記憶されているか否かを判定する。たとえば、競合項目である給紙方法が、図７（ａ）に示す操作履歴テーブル７０１に既に記憶されていれば、ステップＳ６０４へ進む。つまり、競合項目が操作履歴に記憶されているか否かの判定結果に基づいて、競合発生後の動作が決定される。
【００５４】
ステップＳ６０４で、ＣＰＵ１２は、競合が発生していることをユーザに通知するための競合通知画面を表示する。つまり、ユーザに変更された設定項目（用紙種類）及び競合項目（給紙方法）の両者が、ユーザにより設定値が変更された設定項目となる。そのため、競合を解消すべき方法をユーザに選択させるためにＳ６０４の処理が実行される。
【００５５】
図８は、競合通知画面の表示例を示す図である。競合通知画面８０１では、競合が発生している設定項目が何であるかを示すとともに、競合を解消するために競合項目の設定値を変更してよいか、又は競合発生の原因となった設定変更を取り消してもよいかをユーザに問い合わせるメッセージを表示する。
【００５６】
このメッセージに対するユーザの応答を、ステップＳ６０５で判断し、競合解消のために設定値変更をユーザが許可することが選択されていれば、ステップＳ６０７で、ＣＰＵ１２は、競合を解消するように、競合項目の設定値を変更する。たとえば、図７（ａ）の操作履歴テーブルが記憶されており、かつ、用紙種の設定値が「普通紙」、給紙方法の設定値が「カセット」である状態から、ユーザが用紙種を「光沢紙」に変更する。そして、ステップＳ６０２で、変更した用紙種の相手である給紙方法が競合項目であると判断される。つまり、２つの設定項目の組み合わせが競合関係にある場合、前記２つの設定項目のうちで、設定変更された設定項目の相手の設定項目が、競合項目であると考える。そして、Ｓ６０３において競合項目である給紙方法は、図７（ａ）の操作履歴テーブルに記憶されているため、Ｓ６０４にて図８が表示される。ここで、ＣＰＵ１２が、図８の画面において「許可」が選択されたと判定した場合、競合項目である給紙方法の設定値を「カセット」から競合が発生しない設定値へ変更する。
【００５７】
ところで、ユーザが用紙種を「普通紙」から「光沢紙」に変更すると、図４（ａ）に示すように、「カセット」との間で競合関係が生じる。ユーザが用紙種のみを設定変更した場合、ステップＳ５０５で、変更された設定項目である「用紙種」のみが操作履歴テーブルに登録されるが、「給紙方法」は操作履歴テーブルに登録されない（図７（ｂ））。そして、ステップＳ６０２で競合項目があると判断されるが、ステップＳ６０３では、競合項目である「給紙方法」は、操作履歴テーブルに登録されていないので、ステップＳ６０３では、Ｎｏと判断され、ステップＳ６０７に進む。ステップＳ６０７では、ＣＰＵ１２が、競合項目である「給紙方法」の設定値を、設定変更された「光沢紙」と競合しない「後トレイ」に変更することによって、用紙種と給紙方法との間で発生していた競合関係を解消する。なお、仮に設定変更された「光沢紙」と競合しない給紙方法の設定値が複数存在する場合、予め設定されている優先度等を用いて、Ｓ６０７の処理が実行されても良い。
【００５８】
このように、競合項目が操作履歴テーブルに記録されていなければ、ステップＳ６０４のように競合通知画面が表示されないので、ユーザから見れば、頻繁に競合通知画面が表示されることによる煩雑性が解消される。
【００５９】
ステップＳ６０５で、ユーザの応答が設定変更の取り消しであると判断されると、ステップＳ６０６で、ＣＰＵ１２は、設定変更が指示される前の印刷設定を維持し、すなわち、印刷設定を一切変更しないようにする。たとえば、用紙種の設定が「普通紙」から「光沢紙」に変更されたことによって競合が発生した場合、ステップＳ６０６で、ＣＰＵ１２は、用紙種の設定値を、ステップＳ５０３でユーザが操作した設定変更前の状態である「普通紙」に戻す。これによって、用紙種と給紙方法との間の競合状態を解消する。
【００６０】
このように、設定項目間の競合発生の原因となった設定項目をユーザが一度でも変更したことがあるか否かによって、競合解消手法を変更する。これによって、ユーザが変更した印刷条件が、ユーザが気付かないまま変わることによって期待通りの動作が得られないという問題を防ぎつつ、過度な通知を抑え、印刷設定の操作性が向上する。つまり、ステップＳ６０３で、競合項目が操作履歴テーブルに記憶されていなければ、競合通知画面を表示しないので、頻繁に競合通知画面が表示されることによる煩雑性が解消される。換言すれば、ステップＳ６０３において競合項目が操作履歴テーブルに記憶されている場合にのみ、ステップＳ６０４で競合通知画面を表示するので、頻繁に競合通知画面が表示されることによる煩雑性が解消される。
【００６１】
以上の制御において、ステップＳ６０２で競合項目が存在すると判断した場合、競合通知画面の通知内容は、図８に示す内容に限定されるものではない。たとえば、設定項目間に競合が発生している旨のみを通知し、ダイアログを閉じる操作のみが、ユーザが可能な応答であるように画面通知するようにしてもよい。そして、ユーザの選択（ステップＳ６０５）の判断は行わずに、競合通知画面表示後は、常にステップＳ６０６の処理を実行するようにしてもよい。または、ユーザの選択（ステップＳ６０５）の判断は行わずに、競合通知画面表示後は、常にＳ６０７の処理を実行するようにしてもよい。
【００６２】
また、前述した通り、前記制御は、図４（ａ）に示す依存関係テーブル４０１に基づく依存関係、つまり用紙種と給紙方法との間における依存関係を制御するが、これに限らず、依存関係を持つ他の設定項目が存在するケースでも、同様の制御ができる。たとえば、用紙種、給紙方法、用紙サイズ、印刷面の相互の依存関係を制御するようにしてもよい。
【実施形態２】
【００６３】
実施形態２は、ユーザインタフェースモジュールとは別のモジュールを用いて、整合性検証処理を実行する例である。実施形態２では、ＣＰＵ１２が、コマンド生成モジュールを用いて整合性検証処理を行う。なお、実施形態２において説明が不足している点については、基本的には実施形態１の記載内容が使用される。
【００６４】
図９は、ＣＰＵ１２がユーザインタフェースモジュールを用いて実行する制御動作を示すフローチャートである。
【００６５】
なお、ステップＳ５０１からステップＳ５０５の処理は、実施形態１と同様であるので、ここでは説明を省略する。
【００６６】
実施形態２では、ステップＳ５０４で、操作内容を検証した結果、操作内容が設定変更操作であると判断したら、ステップＳ５０５で、ＣＰＵ１２が操作履歴テーブルに設定変更された項目を記憶する。その後、ステップＳ９０１で、ＣＰＵ１２は、そのまま設定変更を印刷設定画面に適用する。そして、ステップＳ５０３に戻り、ユーザ操作の受付を継続する。つまり、上述した競合が発生していても、図９のフローチャートでは競合に対する処理が実行されない。
【００６７】
ユーザの操作内容が、キャンセルまたはプリント実行を指示する操作であれば、その時点における印刷設定画面上の設定値を確定し、ステップＳ５０８で、ＣＰＵ１２が印刷設定画面を閉じる。すなわち、実施形態２において、ＣＰＵ１２は、整合性検証処理及び操作履歴テーブルを削除する処理を実行しない。
【００６８】
図１０は、ＣＰＵ１２がコマンド生成モジュール２２４を用いて実行する制御動作を示すフローチャートである。
【００６９】
印刷が指示されると、ＣＰＵ１２は、ステップＳ１００１で、印刷ジョブ中の印刷設定情報を参照し、ステップＳ１００２で、整合性検証処理を行う。整合性検証処理については、後述する。
【００７０】
そして、整合性検証処理を経て確定した印刷設定情報に基づいて、ステップＳ１００３で、ＣＰＵ１２は、印刷装置２が解釈できる印刷コマンドへの変換、送信を行う。送信した印刷コマンドは、データ送受信モジュール２２５を介して印刷装置２に到達し、印刷装置２は、受信した印刷コマンドに対応する画像を媒体上に形成する。
【００７１】
最後に、ＣＰＵ１２は、Ｓ１００４で、全ページが終了したか判定し、残りページがあると判定すれば、ステップＳ１００５で、次のページに進める。残りページがなくなったら、ステップＳ１００６で、操作履歴テーブルを削除し、処理を終了する。
【００７２】
実施形態２においてコマンド生成モジュール２２４を用いて実施される整合性検証処理のフローは、実施形態１のユーザインタフェースモジュール２２１を用いて実施する整合性検証処理と同様である。実施形態２において、実施形態１と異なる処理は、実施形態１のステップＳ６０２における競合項目の有無を判定する処理と、実施形態１のステップＳ６０４における競合通知画面を表示する処理である。
【００７３】
実施形態２では、全ての設定項目の設定値が確定した状態で整合性検証処理を行う。したがって、実施形態１のステップＳ６０２に対応する競合項目の有無の判定は、全ての設定項目について実行する。プリンタドライバが保持する依存関係が、図４（ａ）に示す依存関係テーブル４０１に示す関係と、図４（ｂ）に示す依存関係テーブル４０２に示す関係とであれば、次のように、競合の有無を判断する。つまり、実施形態１におけるステップＳ６０２に対応して、実施形態２では、ＣＰＵ１２は、これら２つの依存関係テーブル４０１、４０２に基づいて、競合の有無を判断する。
【００７４】
ここでは、ステップＳ１００１で取得した印刷設定情報において、用紙種が普通紙、給紙方法がカセット、用紙サイズがＢ５、印刷面が両面印刷である場合を例に説明する。まず、ＣＰＵ１２は、依存関係テーブル４０１を参照し、用紙種の普通紙と給紙方法のカセットとが同時に使用できるかどうかを判断する。依存関係テーブル４０１によれば、この組み合わせは、組み合わせ可否「○」であるので、用紙種と給紙方法との間には競合が無いと判断される。次に、依存関係テーブル４０２を参照し、用紙サイズのＢ５と印刷面の両面印刷が同時に使用できるかどうかを判断する。依存関係テーブル４０２によれば、この組み合わせは組み合わせ可否「×」であるので、用紙サイズと印刷面との間に競合が発生していると判断される。
【００７５】
そして、実施形態２において、操作履歴の有無と依存関係テーブルとに基づいて、設定項目間の優先度を決定し、競合項目を決定する。競合が発生している設定項目のいずれか一方のみが操作履歴テーブルに記録されている場合は、操作履歴テーブルに記録されている設定項目を優先度が高い設定項目として扱い、他方の設定項目を競合項目とする。なお、前記優先度が高い設定項目とは、他方の設定項目よりも優先的に設定変更しない設定項目のことである。たとえば、用紙サイズと印刷面との間に競合が発生し、操作履歴テーブルに印刷面のみが記録されている場合、ユーザは、印刷面を優先度が高い項目とし、用紙サイズを競合項目とする。競合が発生している設定項目の両方とも操作履歴テーブルに記録されていない場合、または両方とも記録されている場合は、依存関係テーブルの左側に記載されている設定項目を優先度が高い設定項目として扱い、右側に書かれている設定項目を競合項目とする。たとえば、用紙サイズと印刷面との間に競合が発生している場合、依存関係テーブル４０２の例であれば、右側に書かれている設定項目である印刷面が競合項目として扱われる。
【００７６】
以上の通り決定した競合項目について、実施形態１のステップＳ６０３に対応する処理で、ＣＰＵ１２は、操作履歴テーブルに記載されているか否かを判定し、その後の動作を決定する。なお、上述の通り、実施形態１のステップＳ６０２に対応する処理である競合項目の判定において、一方の設定項目のみが操作履歴テーブルに記録されている場合、操作履歴テーブルに記録されていない設定項目が競合項目である。したがって、操作履歴テーブルに記録されていない設定項目が競合項目になっているので、実施形態１のステップＳ６０３に対応する判定は、常にＮＯである。
【００７７】
また、実施形態１のステップＳ６０４に対応する処理における競合通知画面を表示する際に、実施形態２では、次のようにする。つまり、ＣＰＵ１２は、コマンド生成モジュール２２４を用いて、ステータス情報表示モジュール２２６に競合通知画面の表示を指示することで、競合通知画面が表示される。そして、ＣＰＵ１２は、競合通知画面を介して行われたユーザの選択をコマンド生成モジュール２２４に伝え、整合性検証処理（実施形態１のステップＳ６０５に対応する処理）以降の処理を行う。これ以降の処理は、実施形態１で説明した処理と同様であり、ここでは説明を省略する。
【００７８】
なお、以上の制御において、実施形態１のステップＳ６０２に対応する競合項目を決定する処理について、操作履歴の有無に基づいて決定する例を説明したが、これだけに限定されるものではない。たとえば、操作履歴の有無に関わらず、依存関係テーブルにおいて予め決められた優先度のみに基づいて競合項目を決定するようにしてもよい。
【００７９】
また、実施形態１のステップＳ６０２に対応する処理で、操作履歴の有無に基づいて設定項目間の優先度を決定し、その後は常に、実施形態１のステップＳ６０７に対応する処理に遷移するようにしてもよい。たとえば、実施形態１のステップＳ６０２に対応する処理で、競合が発生している設定項目のいずれか一方のみが操作履歴テーブルに記録されている場合は、ＣＰＵ１２は、この操作履歴テーブルに記録されている設定項目を優先度が高い設定項目として扱う。そして、ＣＰＵ１２は、もう一方の設定項目を競合項目とする。さらに、競合が発生している設定項目の両方が操作履歴に記録されている場合、ＣＰＵ１２は、ユーザがより後で設定値を変更した設定項目を優先度が高い項目として扱うことによって競合項目を決定しても良い。そして、実施形態１のステップＳ６０２に対応する処理の後は、常に、実施形態１のステップＳ６０７に対応する処理に進み、実施形態１のステップＳ６０２に対応する処理で決定された競合項目の設定値を変更するようにしてもよい。これによって、競合状態を解消するようにしてもよい。
【００８０】
以上述べたように、実施形態２によれば、ユーザインタフェースモジュール２２１の処理が終了した後に、コマンド生成モジュール２２４が整合性検証処理を行うので、全ての設定を一通り済ませてから整合性検証を行うことができる。つまり、ステップＳ１００１で印刷設定情報を取得した後に、ステップＳ１００２で整合性検証処理を行うので、全ての設定を一通り済ませてから整合性検証を行うことができる。
【００８１】
また、実施形態２によれば、実施形態１と同様であるが、ユーザの意図に反した動作になることを防ぎつつ、過度な通知を抑えるので、印刷設定の操作性が向上する。
【００８２】
なお、実施形態２において、ステータス情報表示モジュール２２６は、ドライバ構成モジュールとして説明しているが、前述のとおり、ＯＳが提供する印刷サポート機能を用いてエラー情報を通知する構成としてもよい。この場合、ＣＰＵ１２が、コマンド生成モジュール２２４を用いてエラー情報または競合情報をユーザに通知する際に、ステータス情報表示モジュール２２６に通知するのではなく、ＯＳの印刷サポート機能を用いて、ユーザに競合情報を通知する。
【００８３】
また、実施形態２では、ＣＰＵ１２が、コマンド生成モジュールを用いて整合性検証処理を実行するが、プリンタドライバを構成する他のモジュールを用いて整合性判定処理を行い、ステータス情報表示モジュールに、その結果を通知するように構成してもよい。さらに、ユーザインタフェースモジュールが印刷設定画面上で印刷実行指示を受けた後に、整合性検証処理を行うようにしてもよい。この場合も、コマンド生成モジュール２２４が整合性検証処理を行う場合と同等に、全ての設定を一通り済ませてから、整合性検証を行うことができる。
【他の実施形態】
【００８４】
上述した実施形態は、印刷装置の制御を行うプリンタドライバにおいて印刷条件の設定を行う例であるが、本発明は、プリンタドライバに限定されるものではなく、種々の情報処理装置に、前記実施形態を適用可能である。スキャナ等の種々の機器の制御を行うドライバソフトウェア、またはそれらの機器に供えられた操作パネル上で設定を行う制御装置等にも、前記実施形態を適用可能である。また、パーソナルコンピュータ等の情報処理装置において動作する種々のアプリケーションソフトウェアにおいて、動作条件を設定するためのユーザインタフェースにも、前記実施形態を適用可能である。
【００８５】
各実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムを実行するコンピュータは、１つであってもよいし、複数のコンピュータが協働してプログラムを実行するものであってもよい。さらに、プログラムの一部を実行する回路等のハードウェアを設け、そのハードウェアと、ソフトウェアを実行するコンピュータが協働して、本実施形態で説明した処理を実行する場合であってもよい。なお、本願では、情報処理装置と通信可能な装置として印刷装置を記載したが、デジタルカメラやスキャナ等の周辺装置であっても良い。
【符号の説明】
【００８６】
１…パソコン、
２…印刷装置、
３０１…印刷設定画面、
４０１、４０２…依存関係テーブル、
７０１、７０２…操作履歴テーブル。
【図１】
0006494395.tif 000002
【図２】
0006494395.tif 000003
【図３】
0006494395.tif 000004
【図４】
0006494395.tif 000005
【図５】
0006494395.tif 000006
【図６】
0006494395.tif 000007
【図７】
0006494395.tif 000008
【図８】
0006494395.tif 000009
【図９】
0006494395.tif 000010
【図１０】
0006494395.tif 000011