(57)【要約】【課題】  アプリケーション側の印刷設定とプリンタドライバによる設定されている機能との間でどのような矛盾が生じているのかを理解する。そして、拡張されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる利便性に優れた印刷設定処理環境を容易に構築することである。【解決手段】  アプリケーション３０１からのプリンタドライバに対する印刷設定変更指示時に、ドライバ管理部３０６からのコンフリクトの問い合わせを行う。そして、その問い合わせに従って印刷設定を変更可能かどうかをコンフリクト処理ルール記述ファイル３０１を取得して設定可能かどうかを推論エンジン３０２が判定する。そして、所定の応答情報を生成する。そして、該生成される所定の応答情報をドライバ管理部３０６を介してアプリケーション２０１に通知する構成を特徴とする。【選択図】  図３
2006164240.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
印刷処理に用いられる設定を入力する入力手段と、
プリンタドライバを実行して、前記入力手段に対して入力された設定の競合を認識する認識手段と、
前記認識手段が認識した競合が発生した理由を、アプリケーションに対して通知する通知手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記入力手段に対して入力される複数の設定の競合であるコンフリクトを評価するためのコンフリクト処理ルールを保持する保持手段と、
前記アプリケーションからのプリンタドライバに対する印刷設定の変更を指示した時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得して判定することで所定の応答情報を生成する判定手段とを備え、
前記判定手段により生成される前記所定の応答情報を前記プリンタドライバから前記アプリケーションに前記通知手段が通知することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記判定手段は、印刷設定を変更できないと判定した場合に、変更できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能とすることを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記通知手段は、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知することを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記通知手段は、前記応答情報を、プリンタドライバが、プリンタドライバ拡張ＡＰＩを介してアプリケーションへ通知することを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
データ処理方法であって、
印刷処理に用いられる設定を入力する入力ステップと、
プリンタドライバを実行して、前記入力ステップが入力した設定の競合を認識する認識ステップと、
前記認識ステップが認識した競合が発生した理由を、アプリケーションに対して通知する通知ステップと、
を備えることを特徴とするデータ処理方法。
【請求項８】
前記入力ステップに対して入力される複数の設定の競合であるコンフリクトを評価するためのコンフリクト処理ルールを保持する保持ステップと、
前記アプリケーションからのプリンタドライバに対する印刷設定の変更を指示した時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得して判定することで所定の応答情報を生成する判定ステップとを備え、
前記判定ステップにより生成される前記所定の応答情報を前記プリンタドライバから前記アプリケーションに前記通知ステップが通することを特徴とする請求項７記載のデータ処理方法。
【請求項９】
前記判定ステップは、印刷設定を変更できないと判定した場合に、変更できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能とすることを特徴とする請求項８記載のデータ処理方法。
【請求項１０】
前記通知ステップは、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知することを特徴とする請求項７記載のデータ処理方法。
【請求項１１】
前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする請求項７に記載のデータ処理方法。
【請求項１２】
前記通知ステップは、前記応答情報を、プリンタドライバが、プリンタドライバ拡張ＡＰＩを介してアプリケーションへ通知することを特徴とする請求項７に記載のデータ処理方法。
【請求項１３】
制御プログラムであって、
印刷処理に用いられる設定を入力する入力ステップと、
プリンタドライバを実行して、前記入力ステップが入力した設定の競合を認識する認識ステップと、
前記認識ステップが認識した競合が発生した理由を、アプリケーションに対して通知する通知ステップと、
をデータ処理装置に実行させることを特徴とする制御プログラム。
【請求項１４】
アプリケーションから印刷処理に用いられる設定を取得する取得手段と、
プリンタドライバの一部であるコンフリクトマネージャプログラムを実行して、コンフリクト処理ルールを用いて前記取得手段が取得した設定の競合を判定する判定手段と、
前記判定手段が判定した競合の理由を示す情報をコンフリクト処理ルールから抽出する抽出手段と、
前記コンフリクトマネージャプログラムからアプリケーションに対して前記抽出手段が抽出した競合の理由を示す情報に基づく通知を行う通知手段と、
を備えることを特徴とするデータ処理装置。
【請求項１５】
アプリケーションから印刷処理に用いられる設定を取得する取得ステップと、
プリンタドライバの一部であるコンフリクトマネージャプログラムを実行して、コンフリクト処理ルールを用いて前記取得ステップが取得した設定の競合を判定する判定ステップと、
前記判定ステップが判定した競合の理由を示す情報をコンフリクト処理ルールから抽出する抽出ステップと、
前記コンフリクトマネージャプログラムからアプリケーションに対して前記抽出ステップが抽出した競合の理由を示す情報に基づく通知を行う通知ステップと、
を備えることを特徴とするデータ処理方法。
【請求項１６】
制御プログラムであって、
アプリケーションから印刷処理に用いられる設定を取得する取得ステップと、
プリンタドライバの一部であるコンフリクトマネージャプログラムを実行して、コンフリクト処理ルールを用いて前記取得ステップが取得した設定の競合を判定する判定ステップと、
前記判定ステップが判定した競合の理由を示す情報をコンフリクト処理ルールから抽出する抽出ステップと、
前記コンフリクトマネージャプログラムからアプリケーションに対して前記抽出ステップが抽出した競合の理由を示す情報に基づく通知を行う通知ステップと、
を備えるデータ処理方法をデータ処理装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションからの印刷要求をプリンタドライバを介して処理して生成される印刷データをプリンタに転送処理するデータ処理装置およびデータ処理方法および記憶媒体およびプログラムに関するものである。
【背景技術】
【０００２】
従来、コンピュータ上で動作するアプリケーションプログラムが、印刷を実行する場合には、印刷開始命令と共に、印刷に必要な各種設定をパラメータとして、プリンタドライバ等の印刷関連処理プログラムに引き渡すのが一般的な方法である。このように印刷に必要な各種設定をパラメータとしてプログラムよりプリンタドライバに渡すことで、プログラムが意図した印刷出力を得られるようになっている（例えば、下記特許文献１参照）。
【特許文献１】特開２００２−３２８７５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、意図した印刷出力を得るために指定可能な設定値の種類の範囲は、いわゆるどのプリンタでもサポートが可能と思われる用紙の給紙口の指定や両面／片面印刷の指定等、非常に限られた範囲のものである。このため、プリンタまたはプリンタドライバが多種多様な機能を提供していても、アプリケーションプログラムより直接指定のできないその他の有用な機能については、プリンタドライバのユーザインタフェースを開いて、そこで指定をする必要があった。
【０００４】
このため、プリンタドライバのユーザインタフェースを表示することを拒むような専用用途のプログラムなどにおいては、プリンタまたはプリンタドライバの持つ機能が十分に利用できないという問題点があった。
【０００５】
そのため、昨今ではプリンタまたはプリンタドライバをフルに生かせるように、プリンタやプリンタドライバへの機種依存する設定についても、アプリケーションから利用可能な特別なインタフェースを設けている。そして、このインタフェースを利用した場合には、プリンタドライバユーザインタフェースで設定する場合と同等な機能の設定が可能となるようなプリンタドライバが出現してきている。
【０００６】
このような特別なインタフェースをアプリケーションから利用する場合において、アプリケーションから所望の印刷設定を変更する際に、他の印刷設定との矛盾が生じている状況が発生する。このような状態であると、プリンタドライバは設定変更処理が実行できない旨の通知をアプリケーションに返す場合がある。
【０００７】
例えば、製本印刷機能と両面印刷機能を同時に使用することが、プリンタ機能として矛盾している設定の組み合わせであるとする。このとき両面印刷機能が有効である場合に、アプリケーションからインタフェースを用いて製本印刷機能を有効にするような設定変更処理を実行すると、プリンタドライバから、設定変更ができない旨の通知をアプリケーションに返すといった具合である。
【０００８】
このような状況において、アプリケーション側ではどの印刷設定と矛盾が生じているのか分からないので、所望の印刷設定が実行できない状況に陥ってしまうという問題があった。
【０００９】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、入力された複数の設定の間にどのような矛盾が生じているのかをアプリケーション側でも理解できるようにする仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明のデータ処理装置は、以下に示す構成を備える。
【００１１】
データ処理装置であって、印刷処理に用いられる設定を入力する入力手段と、プリンタドライバを実行して、前記入力手段に対して入力された設定の競合を認識する認識手段と、前記認識手段が認識した競合が発生した理由を、アプリケーションに対して通知する通知手段とを備えることを特徴とする。
【００１２】
上記目的を達成する本発明のデータ処理方法は、以下に示す構成を備える。
【００１３】
データ処理方法であって、印刷処理に用いられる設定を入力する入力ステップと、プリンタドライバを実行して、前記入力ステップが入力した設定の競合を認識する認識ステップと、前記認識ステップが認識した競合が発生した理由を、アプリケーションに対して通知する通知ステップとを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、アプリケーション側の印刷設定とプリンタドライバで設定されている機能との間でどのような矛盾が生じているのかを理解して、設定されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる。このため、利便性に優れた印刷設定処理環境を容易に構築できる。
【００１５】
また、本実施形態によれば、アプリケーションが印刷設定を行って思うように設定ができないときに、どのようにすればやりたかった設定を反映させるかを知ることができる。このため、最終的にアプリケーションが望んだ印刷設定にたどりつくことができるようになる。
【発明を実施するための最良の形態】
【００１６】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１７】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の第１実施形態を示すデータ処理装置を適用可能な印刷処理システムの構成を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても本発明を適用できる。また、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００１８】
図１において、３０００はホストコンピュータで、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備えている。そして、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００１９】
また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶している。また、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。
【００２０】
２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）９や不図示のポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はディスクコントローラ（ＤＫＣ）で、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。外部メモリ１１には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶する。
【００２１】
８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。
【００２２】
また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００２３】
プリンタ１５００において、１２はプリンタＣＰＵで、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、プリンタＣＰＵ１２は、外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００２４】
また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１３のデータ用ＲＯＭにはハードディスク等の外部メモリ１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【００２５】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。１９は前記ＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００２６】
なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、ディスクコントローラ（ＤＫＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、２２は前述した操作パネルで、操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２７】
また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル２２からのプリンタモード設定情報を記憶するようにしてもよい。
【００２８】
図２は、図１に示したＲＡＭ２のメモリマップの一例を示す図であり、所定のアプリケーションおよび印刷処理関連プログラムを起動して、ホストコンピュータ３０００上のＲＡＭ２にロードされた状態のＲＡＭ２のメモリマップを示している。
【００２９】
図２において、ＲＡＭ２には、図示の如く、ＢＩＯＳ２０６、ＯＳ２０５をはじめ、アプリケーショ２０１を記憶する領域が確保されている。また、ＲＡＭ２には、印刷処理関連プログラム２０４、および関連データ２０３がロードされており、さらに空きメモリ領域２０２（空きメモリ）も確保されている。なお、印刷処理関連プログラム２０４には、図３のプリンタドライバ３０７、プリンタドライバ拡張ＡＰＩ２０００を含まれている。
【００３０】
これにより、アプリケーション２０１および印刷処理関連プログラム２０４は実行可能状態にある。なお、プリンタドライバ拡張ＡＰＩは、プリンタドライバの一部として実装されていてもよいし、オペレーティングシステムの一部として実装されていても良い。
【００３１】
図３を用いてそれぞれのプリンタドライバとアプリケーションとの通信について説明する。
【００３２】
なお、本実施形態では、プリンタドライバが拡張可能なシステムとなっていてもよい。すなわち、プリンタドライバにADD―INプログラムであるプラグインモジュールを追加する構成になっていてもよい。そのプラグインモジュールは、ＵＩドライバの拡張機能を有するＵＩプラグインと、グラフィックスドライバの拡張機能を有するグラフィックスドライバからなっていてもよい。
【００３３】
図３は、図２に示したアプリケーション２０１と印刷処理関連プログラム２０４の概略構成を概念的に説明する図であり、図２と同一のものには同一の符号を付してある。
【００３４】
図３において、３０１はコンフリクト処理ルール記述ファイルで、後述する記述形式で記述される不整合回避戦略を示すコンフリクト処理ルールを列記してある。３０２は推論エンジンで、コンフリクト処理ルール記述ファイル３０１をロードして、入力された設定値に対してコンフリクト処理ルールを適用し、各機能の状態を推論する。３０３はコンフリクトマネージャで、各モジュール間のデータの受け渡しやデータの更新等を管理してコンフリクト処理を統括制御する。
【００３５】
３０４は、各プリンタ機能の状態をリスト形式で表示する状態変数リストであり、ユーザからの入力およびコンフリクト処理ルール記述ファイル３０１の内容に基づき更新されうる。３０６はプリンタドライバ管理部で、アプリケーション２０１からの印刷時における一連の処理を制御する。３０５は、ドライバ管理部３０６が印刷を実行する際の設定を反映した帳票としての内部構造体であり、状態変数リスト３０４と連動して各プリンタ機能の状態を保持している。
【００３６】
３０６はドライバ管理部で、図４に示すような印刷設定変更処理関連の関数をアプリケーション２０１に対して公開しており、アプリケーション２０１は、それらの関数をロードして、印刷設定変更処理を実行する。３０７はプリンタドライバで、上記３０１〜３０６を含む。
【００３７】
上記のように図３に示したプリンタドライバ３０７により同時設定が不可となる機能を評価するためのコンフリクト処理ルールを保持可能なデータ処理装置は、後述する図５に示す手順を実行する。すなわち、アプリケーション２０１からのプリンタドライバ３０７に対する印刷設定変更指示時に、プリンタドライバ３０７からのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかをコンフリクト処理ルールを取得することで判定する。そして、所定の応答情報、例えば設定ができない機能の種別、その理由、解決策等を含む応答情報を生成する。そして、該生成される所定の応答情報をプリンタドライバ３０７から、プリンタドライバ拡張ＡＰＩ２０００を介してアプリケーション２０１に通知する構成を特徴としている。
【００３８】
このように本実施形態では、アプリケーション２０１が現在設定できなかった理由を解決するデータを、プリンタドライバ３０７からプリンタドライバ拡張ＡＰＩを介してエラーの値とともにアプリケーション２０１に返すことができる。
【００３９】
また、現在設定できなかった理由は、コンフリクトルールにおいてdisableになるような組み合わせのデータ構造にreasonを持たせる。そして、どのreasonによって最終的にdisableとなったため設定できなかったのかを、コンフリクトマネージャ３０３に持たせることで、理由を判別し返答することができる。この場合、返答されるデータは「前回これを設定したためにdisableになったアイテムID」と「解決するために設定変更が必要なアイテムIDリスト」の２つとなる。
【００４０】
これにより、アプリケーション２０１が印刷設定を行って思うように設定ができないときに、どのようにすればやりたかった設定を反映させるかを知ることができるため、最終的にアプリケーション２０１が望んだ印刷設定にたどりつくことができるようになる。
【００４１】
図４は、図３に示したドライバ管理部３０６が公開している設定変更処理に必要な関数情報を説明する図であり、例えば図１に示した外部メモリ１１またはＲＯＭ３のデータ内に記憶される。
【００４２】
図４において、Ｆ１は設定変更処理初期化関数を示し、Ｆ２は設定変更処理関数を示し、Ｆ３は設定変更処理終了関数を示す。
【００４３】
図５は、本発明に係るデータ処理装置における第１のデータ処理手順の一例を示すフローチャートである。本処理は、図４に示したアプリケーション２０１からの設定変更指示に伴う、拡張機能と現在の印刷設定との矛盾を強化して、その内容を所定の応答情報としてアプリケーション２０１に通知する手順に対応する。なお、（２０１−１）〜（２０１−１２）はアプリケーション２０１が実行するステップに対応し、（３０７−１）〜（３０７−１１）は図４に示すプリンタドライバ３０７が実行するステップに対応する。以下、アプリケーション２０１から、図４に示した印刷設定変更処理関連の関数を用いて、印刷設定を変更する処理について詳述する。
【００４４】
まず、アプリケーション２０１は、図４に示すような、ドライバ管理部３０６が公開している設定変更初期化関数（プリンタドライバ拡張ＡＰＩ２０００を介してコールされてもよい）をコールする（２０１−１）。その際、設定変更初期化関数の引数にアプリケーション２０１より印刷設定情報がプリンタドライバ３０７に渡される。設定変更初期化関数が呼ばれると（３０７−１）、ドライバ管理部３０６は、アプリケーション２０１から受け取った印刷設定情報を読み込んで（３０７−２）、コンフリクトマネージャ３０３に渡す。そして、コンフリクトマネージャ３０３は、コンフリクト処理ルール記述ファイル３０１をロードし、受け取った印刷設定情報を元に、状態変数リスト３０４を生成する（３０７−３）。
【００４５】
図６は、図３に示したコンフリクトマネージャ３０３と推論エンジン３０２との関係を示す図である。
【００４６】
図６に示す状態変数リスト５０２に示すように、コンフリクト処理ルール記述ファイル３０１の中に記述された、例えば図１に示したプリンタ１５００の機能名称であるＡ，Ｂ，Ｃのそれぞれについて同名の状態変数が存在する。
【００４７】
図６において、プリンタ１５００の機能名称Ａ，Ｂ，Ｃに対応するプリンタドライバの内部構造体５０１のデータメンバ変数をそれぞれｃＡ，ｃＢ，ｃＣとし、Ａ，Ｂ，Ｃの状態変数リスト５０２の持つ値は２値（ＯＮ，ＯＦＦ）とする。内部構造体５０１はドライバ内部もしくは外部ファイルとして初期値を持っており、初期の状態変数の値は対応する内部構造体５０１のメンバの初期値に依存する。
【００４８】
ｃＡの初期値は「０」なので、対応する状態変数Ａの初期値は「０」に値する２値の値ＯＦＦとなっている。内部構造体５０１と状態変数のマッピングの値および方法については、ドライバ内部もしくは外部ファイルとしてプログラムされている。
【００４９】
コンフリクト処理ルール記述ファイル３０１は、推論エンジン３０２にインクルード（ロード）されたかたちで参照される。このコンフリクト処理ルール記述ファイル３０１は、コンフリクトマネージャ３０３にも参照され、それを受けて状態変数リスト３０４が変更されることになる。また、内部構造体３０５と状態変数リスト３０４とは先に述べたとおり連動するものであるから、互いにマッピングされる関係にある。
【００５０】
プリンタドライバ管理部３０６は、状態リストを生成後、その他の初期化処理を実行した後（３０７−４）、プリンタドライバ拡張ＡＰＩ２０００を介して、アプリケーション２０１にハンドルを返す（３０７−５）。
【００５１】
すると、アプリケーション２０１は、ステップ（３０７−５）でドライバ管理部３０６からプリンタドライバ拡張ＡＰＩ２０００を介して返されたハンドルが返信されるのを待ち（２０１−２）、そのハンドルを取得する（２０１−３）。そして、アプリケーション２０１は、取得したハンドルを用いて、印刷設定処理を実行することになる。
【００５２】
次に、アプリケーション２０１が、印刷設定変更を実行するために、図３に示すドライバ管理部３０６が公開している印刷設定変更関数を実行（コール）する（２０１−４）。この印刷設定変更関数の引数には、ステップ（２０１−３）で取得したハンドル、設定を変更したい設定項目の識別子、印刷設定情報、情報の受け渡しデータが含まれる。
【００５３】
アプリケーション２０１より、ドライバ管理部３０６の設定変更処理関数が呼ばれると（３０７−６）、ドライバ管理部３０６は、設定変更処理関数の呼び出しを行う（３０７−７）。そして、設定変更処理関数の引数に渡された情報を元に、設定項目の変更処理を行う（３０７−８）。
【００５４】
なお、設定項目の変更処理は以下に従って行われる。コンフリクト処理ルールとして以下のようなコンフリクト処理ルールを記述するとする。
【００５５】
Ａ（ＯＮ）：−Ｂ（ＯＮ），Ｃ（ＯＦＦ）．
ここで、Ａ、Ｂ，Ｃはそれぞれプリンタの機能の名称を一意に表している。状態変数リスト５０２に示すように、コンフリクト処理ルール５０３の中に記述されたプリンタの機能名称であるＡ，Ｂ，Ｃのそれぞれについて同名の状態変数が存在する。
【００５６】
プリンタの機能名称Ａ，Ｂ，Ｃに対応するプリンタドライバの内部構造体５０１のデータメンバ変数をそれぞれｃＡ、ｃＢ，ｃＣとし、Ａ，Ｂ，Ｃの状態変数の持つ値は２値（ＯＮ，ＯＦＦ）とする。内部構造体５０１はドライバ内部もしくは外部ファイルとして初期値を持っており、初期の状態変数の値は対応する内部構造体５０１のメンバの初期値に依存する。ｃＡの初期値は「０」なので、対応する状態変数Ａの初期値は０に値する２値の値「ＯＦＦ」となっている。内部構造体５０１と状態変数のマッピングの値および方法については、ドライバ内部もしくは外部ファイルとしてプログラムされている。
【００５７】
アプリケーション２０１もしくはドライバＵＩによって、変更される印刷設定情報がコンフリクトマネージャ３０３に渡される。すると、コンフリクトマネージャ３０３は渡された印刷設定情報から関連する状態変数を検索し、渡された値に従って状態変数の値を変更する。
【００５８】
この時、状態変数の値の変更が可能かどうかについては、状態変数がフラグを持っており、フラグによって可能かどうかを判定する。このフラグは「ｅｎａｂｌｅ」と「ｄｉｓａｂｌｅ」の２つの状態をもち、変更が可能な場合は「ｅｎａｂｌｅ」になる。変更が可能かどうかについては、コンフリクト処理ルール記述ファイル３０１によって記述され、推論エンジン３０２の推論を通して状態変数に反映される。設定変更が出来ない場合つまり、フラグが「ｄｉｓａｂｌｅ」の状態変数に対して印刷設定情報を適用した場合は、印刷設定情報を反映させることなく、「ＮＯＴＡＶＡＬＡＢＬＥ」を返り値として返す。
【００５９】
推論エンジン３０２はコンフリクトマネージャ３０３から渡されたコンフリクト処理ルール記述ファイル３０１によって、状態変数の推論を行ってコンフリクトの評価を行う。状態変数の値が変更されたら、推論エンジン３０２によって変更された状態変数の値をキーとして、関連するルールの評価を行う。
【００６０】
ルールの評価によって他の状態変数の値を変更しなければならない場合は、推論エンジン３０２から変更する状態変数と変更される値の一覧を受け取り、コンフリクトマネージャ３０３がそれぞれ状態変数を更新する。ここで、状態変数の値の更新があった場合は、変更された状態変数をキーとして再度コンフリクト処理ルールの評価を行う。無限ループに陥る可能性があるので、印刷設定情報が渡されてから状態変数の値を変更するのは１回に限定する。
【００６１】
以下のコンフリクト処理ルールに基づく、推論エンジン３０２による設定変更処理について説明する。
【００６２】
Ａ（ＯＮ）：−Ｂ（ＯＮ），Ｃ（ＯＦＦ），｛ｅｎａｂｌｅ｝．
上記のコンフリクト処理ルール中の記号「：−」の左側を左辺、右側を右辺とする。記号「，」は論理のＡＮＤを表す。記号「：」は論理のＯＲを表す。記号「．」はルールの終端を表す。記号｛｝で囲まれた内部は、状態変数の設定可能フラグを変更するために使用する。なお、状態変数の初期値としてＡ，Ｂ，Ｃの値はすべて「ＯＦＦ」であったとする。
【００６３】
そして、アプリケーション２０１もしくはドライバＵＩによって変更された印刷設定情報が状態変数に反映され、Ｂの値が「ＯＮ」になったとする。コンフリクトマネージャ３０３は推論エンジン３０２に、コンフリクト処理ルールの評価を問い合わせる。推論エンジン３０２は状態変数Ｂの値が変更されたことにより、状態変数Ｂに関連するコンフリクト処理ルールを推論する。
【００６４】
上記コンフリクトルールにおいて、コンフリクト処理ルールが評価され、状態変数Ｂの値が「ＯＮ」であり、状態変数Ｃの値が「ＯＦＦ」であったときは、上記のコンフリクト処理ルールの右辺の評価が成立し、左辺の状態変数Ａの値を「ＯＮ」に変更する。また、同時に状態変数の設定可能フラグを「ｅｎａｂｌｅ」にする。
【００６５】
そして、推論エンジン３０２によるコンフリクト処理ルールの推論が終了すると、コンフリクトマネージャ３０３は変更された状態変数の値を、内部構造体３０５のメンバにすべて反映させる。つまり状態変数Ａの値が「ＯＦＦ」からＯＮになったことで、内部構造体３０５のメンバｃＡは「０」から「１」に変更される。
【００６６】
また、状態変数は自身の値が変更された理由をデータとして持つことができる。これをＲＥＡＳＯＮと呼ぶ。ＲＥＡＳＯＮはコンフリクト処理ルールに以下のように記述することで設定することができる。
【００６７】
Ａ（ＯＮ）：−Ｂ（ＯＮ），Ｃ（ＯＦＦ），ｓｒｅａｓｏｎ（ＢＯＮＡＮＤＣＯＦＦ）．
ここで、ｓｒｅａｓｏｎはコンフリクト処理ルールにおいてＲＥＡＳＯＮを設定するという意味を持つ特殊な記述である。このコンフリクト処理ルールの評価が成立し、状態変数Ａが「ＯＮ」になるときに、状態変数ＡのＲＥＡＳＯＮに「ＢＯＮＡＮＤＣＯＦＦ」という値を設定する。
【００６８】
他の状態変数のＲＥＡＳＯＮから、ＲＥＡＳＯＮを引き継ぐことも可能である。これは、以下のようにコンフリクト処理ルールに記述する。
【００６９】
Ａ（ＯＮ）：−Ｂ（ＯＮ），Ｃ（ＯＦＦ），ｒｒｅａｓｏｎ（Ｂ）．
ここで、ｒｒｅａｓｏｎはコンフリクト処理ルールにおいてＲＥＡＳＯＮを取得して引き継ぐという意味を持つ特殊な記述である。このコンフリクト処理ルールの評価が成立し、状態変数ＡがＯＮになるときに、状態変数ＡのＲＥＡＳＯＮには状態変数ＢのＲＥＡＳＯＮが設定される。
【００７０】
具体的な例としては以下のようなコンフリクトルールがある。
【００７１】
ＤＵＰＬＥＸ（ＯＦＦ）：−ＢＯＯＫＬＥＴ（ＯＮ），ｓｒｅａｓｏｎ（ＢＯＯＫＬＥＴＯＮ），｛ｄｉｓａｂｌｅ｝．
この例は、製本印刷が「ＯＮ」になっているときには、状態変数ＤＵＰＬＥＸに対してＲＥＡＳＯＮとして、ＢＯＯＫＬＥＴＯＮによって「ＯＦＦ」になっていることを示すことができる。また、状態変数「ＤＵＰＬＥＸ」の設定可能フラグに「ｄｉｓａｂｌｅ」を指定し、今後状態変数「ＤＵＰＬＥＸ」に対して印刷設定変更処理が来ても、「ＮＯＴＡＶＡＬＡＢＬＥ」を返すようになる。ここで、図５に示すフローチャートに戻る。なお、ステップ（３０７−８）で、返される値には、以下のようなものがある。
【００７２】
「ＯＫ」：定変更処理が成功した
「ＮＯＴＡＶＡＬＡＢＬＥ」：他の設定の影響で現在は設定変更不可
次に、プリンタドライバ３０７は、設定変更処理の戻り値が"ＮＯＴＡＶＡＩＬＡＢＬＥ"か否かを判断する（３０７−９）。ここで、"ＮＯＴＡＶＡＩＬＡＢＬＥ"であると判断（ＮＯの場合）された場合には、ステップ（３０７−１０）に進み、コンフリクトマネージャ３０３よりコンフリクト情報を取得する。
【００７３】
このコンフリクト情報には、図７に示すような情報が入っている。
【００７４】
図７は、図３に示したドライバ管理部３０６がコンフリクトマネージャ３０３から取得するコンフリクト情報の一例を示す図である。
【００７５】
図７に示すＲｅａｓｏｎには、ステップ（３０７−８）の設定変更処理で、コンフリクトが発生して、設定が不可の要因となった設定項目が格納されている。
【００７６】
また、図７に示すＶａｌｕｅには、設定変更が不可の状態を回避可能な設定値が格納されている。
【００７７】
図７におけるコンフリクト情報の例（１）のＲｅａｓｏｎには、ＢＯＯＫＬＥＴが格納されており、ＢＯＯＫＬＥＴの設定の影響を受けて、設定変更処理が不可の状態であるということがわかる。また、Ｖａｌｕｅには、「ＯＦＦ」が入っていることから、ＢＯＯＫＬＥＴの設定値を「ＯＦＦ」にすることで、コンフリクト状態が回避されるということを示している。これらは、ＲＥＡＳＯＮとしてＢＯＯＫＬＥＴＯＮが取得できたため、対応する値としてそれぞれＢＯＯＫＬＥＴと「ＯＦＦ」をコンフリクト情報に格納している。対応する値はドライバ内部もしくは外部ファイルとしてデータベースを持つ。
【００７８】
一方、図７に示すコンフリクト情報の例（２）のＲｅａｓｏｎには、"ＮＯ＿ＲＥＡＳＯＮ"が格納されており、現在の設定変更不可の状態の要因となる設定項目が存在しないことを示している。このような状況になるのは、他の設定項目の影響ではなく、デバイスのオプションが装着されていないため、指定した設定変更ができない状態になっている場合などが想定される。このような場合、コンフリクト情報のＶａｌｕｅには、コンフリクト状態を回避する設定がないので、"ＮＯＮＥ"が格納される。
【００７９】
次に、ステップ（３０７−６）で渡された最後の引数の情報の受け渡しデータに、ステップ（３０７−１０）で取得したコンフリクト情報を格納する。その後、アプリケーション２０１にプリンタドライバ拡張ＡＰＩ２０００を介して失敗した旨の結果を返して（３０７−１１）、処理を終了する。
【００８０】
一方、ステップ（３０７−９）で"ＯＫ"と判断された場合には、アプリケーション２０１に対してその旨の結果を返して（３０７−１１）、処理を終了する。
【００８１】
アプリケーション２０１は、ステップ（３０７−１１）でドライバ管理部３０６からプリンタドライバ拡張ＡＰＩ２０００を介して返されたステップ（３０７−８）で実行した設定変更処理の結果を受信する（２０１−５）。すると、返信された設定変更処理の結果を取得する（２０１−６）。
【００８２】
次に、アプリケーション２０１は、取得した結果が「ＮＯＴＡＶＡＩＬＡＢＬＥ」かどうかを判定し（２０１−７）、"ＯＫ"と判断した場合は、ステップ（２０１−１１）に進む。
【００８３】
一方、ステップ（２０１−７）で、取得した結果が"ＮＯＴＡＶＡＩＬＡＢＬＥ"であると判断した場合は、ステップ（２０１−８）に進み、ドライバ管理部３０６で取得され、設定変更処理関数の引数に渡されたコンフリクト情報を参照する。
【００８４】
そして、アプリケーション２０１は、参照したコンフリクト情報から解決が可能かどうかを判定する（２０１−９）。ここで、コンフリクト情報内のＲｅａｓｏｎに"ＮＯ＿ＲＥＡＳＯＮ"が格納されていると判断した場合は、ステップ（２０１−１０）に進む。一方、コンフリクト情報内のＲｅａｓｏｎに何らかの設定項目が格納されていると判断した場合は、コンフリクト情報内のＶａｌｕｅを参照する。そして、図４に示した設定変更処理関数Ｆ２を用いてＶａｌｕｅに格納された設定値をＲｅａｓｏｎ内の設定項目にセットして（２０１−１０）、ステップ（３０７−８）で設定変更処理ができない状態を回避する。
【００８５】
次に、すべての設定変更処理が終了したか否かをアプリケーション２０１が判定する（２０１−１１）。ここで、終了していないと判断した場合は、再びステップ（２０１−４）に戻り、設定変更処理関数をコールして、必要な設定処理が終了するまで、一連の処理を繰り返す。
【００８６】
一方、ステップ（２０１−１１）で、すべての設定変更処理が終了したと判定した場合には、図４に示す設定変更終了処理関数Ｆ３を実行し（２０１−１２）、本処理を終了する。
【００８７】
以上の処理によって、アプリケーション２０１が他の印刷設定の影響により、印刷設定変更処理を実行できない状況を自ら回避することができる。
【００８８】
また、アプリケーション２０１が参照したコンフリクト情報から解決が可能かどうかを判定する（２０１−９）際に、アプリケーション２０１はユーザインタフェースを表示し、ユーザに問い合わせることもできる。
【００８９】
図８は、本発明に係るデータ処理装置における第２のデータ処理手順の一例を示すフローチャートである。本処理は、図４に示したアプリケーション２０１からの設定変更指示に伴う、拡張機能と現在の印刷設定との矛盾を強化して、その内容を所定の応答情報としてアプリケーション２０１に通知する手順におけるステップ（２０１−９）の詳細手順に対応する。なお、（９０１）〜（９０５）は各ステップを示す。また、各ステップは、図１に示すＣＰＵ１がＲＡＭ２にロードしたアプリケーションを実行することで実現される。
【００９０】
まず、ステップ（９０１）で、例えば図９に示すユーザインタフェースを表示する。
【００９１】
図９は、本発明に係るデータ処理装置におけるユーザインタフェースの一例を示す図である。本表示画面は、図１に示したＣＲＴ１０上に表示されるコンフリクト解決を行うユーザインタフェース例である。
【００９２】
このとき、すなわち図９に示すユーザインタフェースを表示したとき、設定変更処理関数をＤＵＰＬＥＸで呼び出す（２０１−４）。そして、コンフリクト情報内のＲｅａｓｏｎにＢＯＯＫＬＥＴが格納されているため、ユーザインタフェース上の文字では、ＢＯＯＫＬＥＴが原因でＤＵＰＬＥＸが設定できなかったという表示を出す。
【００９３】
ここで、アプリケーションがコンフリクトを解決する「自動」のためのボタンＢ１を選択するか、ユーザが自分で設定変更処理関数を再度呼びなおす「手動」のボタンＢ２を選択することができる。そこで、ステップ（９０２）で、図９に示した互換性のない印刷設定の表示画面において、ユーザがいずれのボタンを選択しているかを判断する。具体的には、ボタンＢ２をユーザの操作で選択されているかどうかを判断する。
【００９４】
ここで、「手動」で解決する方法に対応するボタンＢ２を選択していると判断した場合は、ステップ（９０５）へ進み、変更がすべて終了していなければ（２０１−１１）、設定変更処理関数を呼ぶため、ステップ（２０１−４）まで戻ることになる。
【００９５】
一方、ステップ（９０２）で、「自動」に対応するボタンＢ１を選択していると判断した場合は、ステップ（９０３）で、コンフリクトを解決できるかどうかを判断する。そして、自動によりコンフリクトを解決できないと判断した場合は、ステップ（９０５）へ進み、同様に、ステップ（２０１−４）まで戻る。
【００９６】
一方、ステップ（９０３）で、コンフリクトを解決できると判断した場合は、ステップ（９０４）で、設定の変更を行い、先へ処理を進める。これは、図５に示したステップ（２０１−１０）の動作と同等である。
【００９７】
なお、コンフリクトにおいては、複写すると強調される潜像と、複写しても強調されない背景画像を重ね合わせた地紋印刷も考慮される。この複写牽制の地紋が設定されている場合に、２IN１のレイアウトを設定しようと入力するのに応答して、「既に複写牽制のための地紋印刷が設定されている。このため、２IN１の設定ができなかった」ことを示すメッセージをプリンタドライバからアプリケーション２０１に通知してもよい。
【００９８】
この通知を受けて、アプリケーションは、自身の持つグラフィカルユーザインタフェース（GUI）の表示を変更する。ユーザは、アプリケーションのGUIに表示される「既に複写牽制のための地紋印刷が設定されているため、２IN１の設定ができなかった」ことを示すメッセージを見る。
【００９９】
次に、ユーザは、アプリケーションに表示されるメッセージを見て、設定の変更又は継続を決断する。
【０１００】
なお、本実施形態においては、印刷処理関連プログラム２０４を記録する媒体を外部メモリ１１としているが、外部メモリとしては、ＦＤ、ＨＤドライブ、ＣＤ−ＲＯＭやＩＣメモリカード等であってもよい。更に、本印刷プログラム単独、もしくはＯＳその他のホストコンピュータ上で動作するプログラムと共にＲＯＭ３に記録しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ１で実行することも可能である。
【０１０１】
上記実施形態によれば、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、プラグインによって拡張された機能をアプリケーションから特別なインタフェースを用いて制御する場合に以下の効果を奏する。すなわち、他の印刷設定の影響で設定変更処理が実現できないという状況を回避することができ、アプリケーションから所望の印刷設定を実現できる。
【０１０２】
〔第２実施形態〕
以下、図１０に示すメモリマップを参照して本発明に係るデータ処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１０３】
図１０は、本発明に係るデータ処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１０４】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１０５】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１０６】
本実施形態における図５、図８に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１０７】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１０８】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０９】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１０】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１１１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１１３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１６】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０１１７】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではなく、以下の実施態様も含まれることはいうまでもない。以下、その実施態様１〜１６について説明する。
【０１１８】
アプリケーション（図３に示すアプリケーション２０１）からの印刷要求をプリンタドライバを介して処理するデータ処理装置は以下の構成を備える。前記プリンタドライバにより同時設定が不可となる機能を評価するためのコンフリクト処理ルール（図３に示すコンフリクト処理ルール記述ファイル３０１）を保持する保持手段とを備える。また、前記アプリケーションからのプリンタドライバに対する印刷設定変更指示時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得することで判定して所定の応答情報を生成する判定手段（図３に示す推論エンジン３０２）を備える。また、前記判定手段により生成される前記所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知する通知手段（図３に示すドライバ管理部３０６）とを有するデータ処理装置。
【０１１９】
これにより、アプリケーション側の印刷設定とプリンタドライバで設定されている機能との間でどのような矛盾が生じているのかを理解する。そして、設定されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる利便性に優れた印刷設定処理環境を容易に構築できる。
【０１２０】
また、前記判定手段は、印刷設定を変更できないと判定した場合に、変更できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能としてもよい。
【０１２１】
これにより、アプリケーション側の印刷設定とプリンタドライバの設定されている機能との間でどのような矛盾が生じているのかをアプリケーションが理解可能な応答情報を生成できる。
【０１２２】
また、前述の通知手段は、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知してもよい。
【０１２３】
これにより、アプリケーション側の印刷設定とプリンタドライバで設定されている機能との間でどのような矛盾が生じているのかを理解した上で、ユーザによる設定変更を伴うことなく、自動的に矛盾のない印刷設定可能となり、利便性が向上する。
【０１２４】
さらに、前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定してもよい。
【０１２５】
これにより、アプリケーション側の印刷設定とプリンタドライバで設定されている機能との間でどのような矛盾が生じているのかを理解した上で、ユーザによる設定変更を伴うことなく、自動的に矛盾のない印刷設定値をプリンタドライバに設定可能となる。
【０１２６】
また、前記通知手段は、前記応答情報を、プリンタドライバが、プリンタドライバ拡張ＡＰＩを介してアプリケーションへ通知してもよい。
【０１２７】
これにより、確実にアプリケーションに応答情報を通知することができる。
【０１２８】
さらに、データ処理装置は、プリンタドライバにより同時設定が不可となる機能を評価するためのコンフリクト処理ルールを保持する保持手段を備えている。そして、アプリケーションからの印刷要求を前記プリンタドライバを介して処理するデータ処理装置における印刷設定処理方法は、以下のステップを実行する。前記アプリケーションからのプリンタドライバに対する印刷設定変更指示時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得して判定することで所定の応答情報を生成する判定ステップ（図５に示すステップ（３０７−１）〜（３０７−１０））を備える。また、前記判定ステップにより生成される前記所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知する通知ステップ（図５に示すステップ（３０７−１１））とを有することを特徴とする印刷設定処理方法。
【０１２９】
また、前記判定ステップは、印刷設定を変更できないと判定した場合に、設定できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能としてもよい。
【０１３０】
さらに、前記通知ステップは設定できなかった理由として以前に設定したために設定できなくなった別の設定値と設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知してもよい。
【０１３１】
さらに、前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定してもよい。
【０１３２】
また、前記通知ステップは、前記応答情報を、プリンタドライバが、プリンタドライバ拡張ＡＰＩを介してアプリケーションへ通知してもよい。
【図面の簡単な説明】
【０１３３】
【図１】本発明の第１実施形態を示すデータ処理装置を適用可能な印刷処理システムの構成を説明するブロック図である。
【図２】図１に示したＲＡＭのメモリマップの一例を示す図である。
【図３】図２に示したアプリケーションと印刷処理関連プログラムの概略構成を概念的に説明する図である。
【図４】図３に示したドライバ管理部が公開している設定変更処理に必要な関数情報を説明する図である。
【図５】本発明に係るデータ処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】図３に示したコンフリクトマネージャと推論エンジンとの関係を示す図である。
【図７】図３に示したドライバ管理部がコンフリクトマネージャから取得するコンフリクト情報の一例を示す図である。
【図８】本発明に係るデータ処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図９】本発明に係るデータ処理装置におけるユーザインタフェースの一例を示す図である。
【図１０】本発明に係るデータ処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１３４】
２０１  アプリケーション
３０１  コンフリクト処理ルール記述ファイル
３０２  推論エンジン
３０３  コンフリクトマネージャ
３０４  状態変数リスト
３０５  内部構造体
３０６  ドライバ管理部
【図１】
2006164240.tif 000003
【図２】
2006164240.tif 000004
【図３】
2006164240.tif 000005
【図４】
2006164240.tif 000006
【図５】
2006164240.tif 000007
【図６】
2006164240.tif 000008
【図７】
2006164240.tif 000009
【図８】
2006164240.tif 000010
【図９】
2006164240.tif 000011
【図１０】
2006164240.tif 000012