(57)【要約】【課題】  画像形成装置のオプション機器に関する設定を矛盾なく行うことができる情報処理装置及びその制御方法、コンピュータプログラム、画像形成システムを提供する。【解決手段】  画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する。取得したオプション機器構成情報が示すオプション機器の装着方法と、記憶媒体に記憶される画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールとに基づいて、該画像形成装置に装着されているオプション機器の使用の可否を決定する。【選択図】  図１１
2008191946.tif 000002
【特許請求の範囲】
【請求項１】
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置であって、
前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールを記憶する記憶手段と、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得手段と、
前記取得手段で取得したオプション機器構成情報が示すオプション機器の装着方法と、前記記憶手段に記憶されるルールとに基づいて、前記画像形成装置に装着されているオプション機器の使用の可否を決定する決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記画像形成装置に装着されているオプション機器の使用を設定するための設定項目を含む設定画面を表示する表示手段と、
前記決定手段による決定結果に基づいて、前記画像形成装置に装着されているオプション機器の使用を設定するための前記設定画面中の前記設定項目のオンまたはオフを制御する制御手段と
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記オプション機器構成情報を、前記画像形成装置から取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記ルールは、第２オプション機器による処理後の用紙に対して第１オプション機器による処理が不可能であり、前記第１オプション機器の装着位置が前記第２オプション機器より前記画像形成装置に近い場合には、前記第１オプション機器と前記第２オプション機器の同時の使用を禁止するルールである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記ルールは、前記画像形成装置に装着可能な複数のオプション機器の装着順番に基づいて、前記オプション機器の使用の可否を設定するためのルールであり、
前記オプション機器構成情報は、更に、前記画像形成装置に装着されている複数のオプション機器の装着順番を示す情報を含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記決定手段は、前記オプション機器構成情報に含まれる前記画像形成装置に装着されているオプション機器の装着順番を示す情報と、前記ルールとに基づいて、前記画像形成装置に装着されている複数のオプション機器それぞれの使用の可否を決定する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記オプション機器構成情報は、更に、前記オプション機器が前記画像形成装置に対して装着される方向の情報を含む
ことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記取得手段で取得したオプション機器構成情報が示す前記画像形成装置に装着されているオプション機器の装着状態を示す模式画像を含む操作画面を表示する操作画面表示手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
複数のオプション機器を装着可能な画像形成装置と、前記画像形成装置を制御する情報処理装置とを有する画像形成システムであって、
前記画像形成装置は、
自身に装着されているオプション機器の装着方法を示すオプション機器構成情報を記憶する第１記憶手段と、
前記情報処理装置からの要求に基づいて、前記オプション機器構成情報を該情報処理装置へ送信する送信手段と、
前記情報処理装置は、
前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールを記憶する第２記憶手段と、
前記画像形成装置から、前記オプション機器構成情報を受信する受信手段と、
前記受信手段で受信したオプション機器構成情報が示すオプション機器の装着方法と、前記記憶手段に記憶されるルールとに基づいて、前記画像形成装置に装着されているオプション機器の使用の可否を決定する決定手段と
を備えることを特徴とする画像形成システム。
【請求項１０】
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置の制御方法であって、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得工程と、
前記取得工程で取得したオプション機器構成情報が示すオプション機器の装着方法と、記憶媒体に記憶される前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールとに基づいて、該画像形成装置に装着されているオプション機器の使用の可否を決定する決定工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置の制御をコンピュータに実行させるためのコンピュータプログラムであって、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得工程と、
前記取得工程で取得したオプション機器構成情報が示すオプション機器の装着方法と、記憶媒体に記憶される前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールとに基づいて、該画像形成装置に装着されているオプション機器の使用の可否を決定する決定工程と
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置及びその制御方法、コンピュータプログラム、画像形成システムに関するものである。
【背景技術】
【０００２】
近年、Ｐｒｉｎｔ  Ｏｎ  Ｄｅｍａｎｄ  （ＰＯＤ）と呼ばれるプリントサービスを提供するハイエンド市場に向けて、大型ディジタル複合機が提供されている。これらの大型ディジタル複合機には、製本印刷やステイプル、パンチ等の高度なフィニッシング機能を実現するために、様々な種類のデバイス（オプション機器）を本体ユニットに装着することができる。このオプション機器は、ユーザのニーズによって、必要なオプション機器を選んで、様々な組み合わせでディジタル複合機を構成することができる。
【０００３】
これらのディジタル複合機は、本体のパネルユーザインタフェース（以下、パネルＵＩ）で設定を変更して、製本印刷等の処理を実現することができる。一方で、ホストコンピュータ上のプリンタドライバと呼ばれる印刷制御プログラムを用いて印刷設定を制御することもできる。
【０００４】
このプリンタドライバから印刷を実行する場合は、プリンタドライバのユーザインタフェース（以下、ドライバＵＩ）を用いて設定する。ドライバＵＩで設定する場合、印刷対象となるディジタル複写機のオプション機器構成を把握しておかなければ、使用できる機能がわからない。そのため、ドライバＵＩからデバイスのオプション機器構成を取得し、そのオプション機器構成のプレビュー画面を表示する機能を備えるプリンタドライバが存在する。
【０００５】
また、ハイエンド市場におけるディジタル複写機の中には、オプション機器の装着順番を任意に変えることが可能なものがある。装着順番を任意に変えることが可能なオプション機器を備えるディジタル複写機に対しては、自動で装着順番を認識する手法などが提案されている（特許文献１）。
【０００６】
さらに、これらの装着順番を任意に変えることが可能なディジタル複写機においては、オプション機器の装着順番に依存して機能の制限が発生するケースが存在する。例えば、パンチ穴を開ける機能を実現するパンチャーユニットと、用紙に折り目をつける機能を実現するフォールディングユニットの順番が入れ替えられる場合、フォールディング処理をした後に、パンチ処理をすることができる。しかしながら、パンチ処理をした後では、フォールディング処理はできないといった制限が考えられる。
【特許文献１】特開平７−６１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のように装着順番に依存した制限について、プリンタドライバ側で印刷設定を実施する場合、次のような課題がある。つまり、正確なオプション機器構成の順番情報をプリンタドライバに伝えて、さらに装着順番に依存した設定の矛盾を解消しなければ、矛盾した設定をディジタル複写機に送信してしまうという課題がある。
【０００８】
本発明は上記の課題を解決するためになされたものであり、画像形成装置のオプション機器に関する設定を矛盾なく行うことができる情報処理装置及びその制御方法、コンピュータプログラム、画像形成システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明による画像形成装置は以下の構成を備える。即ち、
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置であって、
前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールを記憶する記憶手段と、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得手段と、
前記取得手段で取得したオプション機器構成情報が示すオプション機器の装着方法と、前記記憶手段に記憶されるルールとに基づいて、前記画像形成装置に装着されているオプション機器の使用の可否を決定する決定手段と
を備える。
【００１０】
また、好ましくは、前記画像形成装置に装着されているオプション機器の使用を設定するための設定項目を含む設定画面を表示する表示手段と、
前記決定手段による決定結果に基づいて、前記画像形成装置に装着されているオプション機器の使用を設定するための前記設定画面中の前記設定項目のオンまたはオフを制御する制御手段と
を更に備える。
【００１１】
また、好ましくは、前記取得手段は、前記オプション機器構成情報を、前記画像形成装置から取得する。
【００１２】
また、好ましくは、前記ルールは、第２オプション機器による処理後の用紙に対して第１オプション機器による処理が不可能であり、前記第１オプション機器の装着位置が前記第２オプション機器より前記画像形成装置に近い場合には、前記第１オプション機器と前記第２オプション機器の同時の使用を禁止するルールである。
【００１３】
また、好ましくは、前記ルールは、前記画像形成装置に装着可能な複数のオプション機器の装着順番に基づいて、前記オプション機器の使用の可否を設定するためのルールであり、
前記オプション機器構成情報は、更に、前記画像形成装置に装着されている複数のオプション機器の装着順番を示す情報を含む。
【００１４】
また、好ましくは、前記決定手段は、前記オプション機器構成情報に含まれる前記画像形成装置に装着されているオプション機器の装着順番を示す情報と、前記ルールとに基づいて、前記画像形成装置に装着されている複数のオプション機器それぞれの使用の可否を決定する。
【００１５】
また、好ましくは、前記オプション機器構成情報は、更に、前記オプション機器が前記画像形成装置に対して装着される方向の情報を含む。
【００１６】
また、好ましくは、前記取得手段で取得したオプション機器構成情報が示す前記画像形成装置に装着されているオプション機器の装着状態を示す模式画像を含む操作画面を表示する操作画面表示手段を更に備える。
【００１７】
上記の目的を達成するための本発明による画像形成システムは以下の構成を備える。即ち、
複数のオプション機器を装着可能な画像形成装置と、前記画像形成装置を制御する情報処理装置とを有する画像形成システムであって、
前記画像形成装置は、
自身に装着されているオプション機器の装着方法を示すオプション機器構成情報を記憶する第１記憶手段と、
前記情報処理装置からの要求に基づいて、前記オプション機器構成情報を該情報処理装置へ送信する送信手段と、
前記情報処理装置は、
前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールを記憶する第２記憶手段と、
前記画像形成装置から、前記オプション機器構成情報を受信する受信手段と、
前記受信手段で受信したオプション機器構成情報が示すオプション機器の装着方法と、前記記憶手段に記憶されるルールとに基づいて、前記画像形成装置に装着されているオプション機器の使用の可否を決定する決定手段と
を備える。
【００１８】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置の制御方法であって、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得工程と、
前記取得工程で取得したオプション機器構成情報が示すオプション機器の装着方法と、記憶媒体に記憶される前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールとに基づいて、該画像形成装置に装着されているオプション機器の使用の可否を決定する決定工程と
を備える。
【００１９】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
複数のオプション機器を装着可能な画像形成装置を制御する情報処理装置の制御をコンピュータに実行させるためのコンピュータプログラムであって、
画像形成装置に装着されているオプション機器の装着方法を示すオプション機器構成情報を取得する取得工程と、
前記取得工程で取得したオプション機器構成情報が示すオプション機器の装着方法と、記憶媒体に記憶される前記画像形成装置に装着可能なオプション機器の使用の可否を設定するためのルールとに基づいて、該画像形成装置に装着されているオプション機器の使用の可否を決定する決定工程と
をコンピュータに実行させる。
【発明の効果】
【００２０】
本発明によれば、画像形成装置のオプション機器に関する設定を矛盾なく行うことができる情報処理装置及びその制御方法、コンピュータプログラム、画像形成システムを提供できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２２】
図１は本発明の実施形態の画像形成システムの構成を示すブロック図である。
【００２３】
尚、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続されたシステム上であっても本発明を適用できることは言うまでもない。
【００２４】
図１において、３０００はホストコンピュータ（情報処理装置）であり、ＣＰＵ１を備える。ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ３ｂあるいは外部メモリ１１に記憶された文書処理プログラム（アプリケーションプログラム）等のプログラムに基づいて、図形、イメージ、文字、表（表計算等を含む）等の構成要素が混在した文書処理を実行する。更に、ＣＰＵ１は、ホストコンピュータ本体２０００内のシステムバス４に接続される各デバイスを総括的に制御する。
【００２５】
また、このＲＯＭ３のプログラム用ＲＯＭ３ｂあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下、ＯＳ）等のプログラムも記憶している。また、ＲＯＭ３のフォント用ＲＯＭ３ａあるいは外部メモリ１１には、上記文書処理の際に使用するフォントデータ等のデータを記憶している。また、ＲＯＭ３のデータ用ＲＯＭ３ｃあるいは外部メモリ１１には、上記文書処理等の各種処理を行う際に使用する各種データを記憶する。
【００２６】
２はＲＡＭであり、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）であり、キーボード（ＫＢ）９やポインティングデバイス（不図示）からのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）であり、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。尚、ＣＲＴコントローラ６及びＣＲＴディスプレイ１０の代りに、ＬＣＤコントローラ及びＬＣＤを用いても良い。
【００２７】
７はディスクコントローラ（ＤＫＣ）であり、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等の外部メモリ１１とのアクセスを制御する。さらに、ＤＫＣ７は、プリンタ制御コマンド生成プログラム（以下、プリンタドライバ）等の各種データを記憶する、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスも制御する。
【００２８】
８はプリンタコントローラ（ＰＲＴＣ）であり、所定の双方向性インタフェース２１を介してプリンタ（画像形成装置）１５００に接続されて、プリンタ１５００との通信制御処理を実行する。双方向性インタフェースの例には、ＵＳＢインタフェース、ＩＥＥＥ１３９４インタフェース、無線ＬＡＮインタフェース等がある。
【００２９】
尚、ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行してＧＵＩを提供することで、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上のマウスカーソル（不図示）等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは、印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷方法の設定を行える。
【００３０】
プリンタ１５００において、１２はプリンタＣＰＵであり、プリンタＣＰＵ１２は、プリンタ制御部１０００内のシステムバス１５に接続される各デバイスを総括的に制御する。また、プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭ１３ｂあるいは外部メモリ１４に記憶された制御プログラム等のプログラムに基づいて、システムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００３１】
また、このＲＯＭ１３のプログラム用ＲＯＭ１３ｂには、プリンタＣＰＵ１２の制御プログラム等のプログラムを記憶している。また、ＲＯＭ１３のフォント用ＲＯＭ１３ａには、上記出力情報を生成する際に使用するフォントデータ等のデータを記憶している。また、ハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４がないプリンタの場合には、ＲＯＭ１３のデータ用ＲＯＭ１３ｃには、ホストコンピュータ３０００上で利用される情報等を記憶している。
【００３２】
プリンタＣＰＵ１２は、入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、プリンタ１５００内のステータス情報等の各種情報をホストコンピュータ３０００に通知可能に構成されている。１９はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭである。このＲＡＭ１９は、増設ポート（不図示）に接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３３】
尚、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等のデータを記憶する。また、１５０１は操作部であり、プリンタ１５００に対する各種操作を実現するための操作パネルやスイッチ、ＬＥＤ表示器等が構成されている。
【００３４】
また、外部メモリ１４は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、ＮＶＲＡＭ（不図示）を有し、操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００３５】
次に、プリンタ１５００の機器構成例について、図２を用いて説明する。
【００３６】
図２は本発明の実施形態のプリンタの機器構成例を示す図である。
【００３７】
図２Ａの５００ａ及び図２Ｂの５００ｂはそれぞれ、プリンタ１５００の一例である複合機（画像形成装置）の全体構成を示している。
【００３８】
５０１はＡＤＦ（オートドキュメントフィーダ）であり、原稿束を自動的に順次スキャンするための装置である。５０２は操作パネルであり、各種設定や調整、機器状況の確認等の操作画面を表示するために、その挿画面を介した各種入力の受付を行う。５０３は本体ユニットであり、用紙に画像を形成（印刷）するための画像形成機能を搭載し、印刷に用いる様々なサイズの用紙を各段に分けて保持することができる。本体ユニット５０３は画像形成装置として機能し、例えば、その画像形成を行うための方式としては、レーザビーム方式、インクジェット方式等の各種印刷方式を利用することが可能である。
【００３９】
尚、プリンタ１５００の最低限の構成としては、ＡＤＦ５０１、操作パネル５０２及び本体ユニット５０３を示すものとするが、オプション機器群を装着した構成も、このプリンタ１５００を示すものとする。
【００４０】
５０４はサイドペーパーデッキであり、印刷のための用紙を大量に保持するユニットである。５０５はステイプルユニットであり、用紙に対するステイプル処理を実現するユニットである。５０６はパンチャーユニットであり、用紙に対するパンチ処理を実現するユニットである。５０７はフォールディングユニットであり、用紙に折り目をつける機能を有し、製本印刷設定時の２つ折やＺ折り等のフォールディング処理を実現するユニットである。５０８はサドルトレイであり、製本印刷時の中綴じ機能を実現するユニットである。
【００４１】
尚、図２Ａと図２Ｂでは、パンチャーユニット５０６と、フォールディングユニット５０７との位置関係が逆転している状態を示している。
【００４２】
このように、複合機５００ａや５００ｂでは、オプション機器（デバイス）として、サイドペーパーデッキ５０４、ステイプルユニット５０５、パンチャーユニット５０６、フォールディングユニット５０７等を接続することができる。
【００４３】
次に、本実施形態におけるオプション機器構成情報取得時のプリンタドライバとプリンタの構成について、図３を用いて説明する。
【００４４】
図３は本発明の実施形態のホストコンピュータとプリンタの機能関係を示す図である。
【００４５】
図３において、ホストコンピュータ３０００上のプリンタドライバ９０１は、プリンタ１５００よりオプション機器構成情報９０２を取得する。そして、プリンタドライバ９０１は、取得したオプション機器構成情報９０２を、例えば、ＲＡＭ２上に確保されるレジストリ９０３に登録管理することができる。
【００４６】
次に、オプション機器構成情報を取得するためのデバイス設定画面について、図４を用いて説明する。
【００４７】
図４は本発明の実施形態のデバイス設定画面の一例を示す図である。
【００４８】
尚、このデバイス設定画面７００ａは、プリンタドライバ９０１によるドライバＵＩ（ユーザインタフェース）の１つであり、ホストコンピュータ３０００のＣＲＴ１０に表示される。ユーザは、キーボード９やポインティングデバイスを用いて、デバイス設定画面７００ａに対する操作を実行することができる。
【００４９】
特に、デバイス設定画面７００ａは、オプション機器構成情報を取得する前の初期状態のデバイス設定画面を示している。デバイスプレビュー領域７０１は、プリンタ１５００のオプション機器構成を模式的に表示する。ここでは、ＡＤＦ５０１、操作パネル５０２、本体ユニット５０３のみが表示され、本体ユニット５０３には、オプション機器が１つも装着されていない状態を示している。
【００５０】
７０１ａ〜７０１ｆの各種設定コンボボックスは、本体ユニット５０３（プリンタ１５００）に接続（装着）可能なオプション機器（デバイス）群の装着状態を示すとともに、その装着状態を変更するためのＵＩコントロールである。既にオプション機器が装着されている場合には、該当するオプション機器に対応するコンボボックスには「ＯＮ」が設定される。オプション機器が装着されていない場合には、該当するオプション機器に対応するコンボボックスには「ＯＦＦ」が設定される。
【００５１】
また、新規にオプション機器を装着する場合には、該当するオプション機器に対応するコンボボックスを選択して、「ＯＦＦ」から「ＯＮ」に変更することで、そのオプション機器をプリンタ１５００に装着する設定がなされる。
【００５２】
ここでは、プリンタ１５００に装着可能なオプション機器例として、サイドペーパーデッキ、ステイプルユニット、パンチャーユニット、フォールディングユニット、サドルトレイ、トリマーユニットが示されている。しかしながら、オプション機器としては、これに限定されず、必要に応じて、プリンタ１５００に装着可能なオプション機器に対する設定コンボボックスを構成できることは言うまでもない。
【００５３】
構成情報取得ボタン７０２は、オプション機器構成情報取得処理をプリンタドライバ９０１に指示するためのボタンである。ＯＫボタン７０３は、各種設定コンボボックス７０１ａ〜７０１ｆに対する設定内容をオプション機器設定情報としてＲＡＭ２に保存して、デバイス設定画面７００ａを閉じるためのボタンである。キャンセルボタン７０４は、各種設定コンボボックス７０１ａ〜７０１ｆに対する設定内容を破棄して、デバイス設定画面７００ａを閉じるためのボタンである。
【００５４】
次に、プリンタドライバ９０１によるプリンタ１５００のオプション機器構成情報を取得するオプション機器構成情報取得処理について、図５を用いて説明する。
【００５５】
図５は本発明の実施形態のプリンタドライバによるオプション機器構成情報取得処理を示すフローチャートである。
【００５６】
まず、ホストコンピュータ３０００のプリンタドライバ９０１は、イベントを取得する（ステップＳ１００１）。次に、プリンタドライバ９０１は、取得したイベントがオプション機器構成情報取得の指示であるか否かを判定する（ステップＳ１００２）。オプション機器構成情報取得の指示でない場合（ステップＳ１００２でＮＯ）、ステップＳ１００１に戻る。
【００５７】
一方、オプション機器構成情報取得の指示である場合（ステップＳ１００１でＹＥＳ）、プリンタドライバ９０１は、プリンタ１５００に対して、オプション機器構成情報取得要求を双方向性インタフェース２１を介して送信する（ステップＳ１００３）。
【００５８】
ここで、オプション機器構成情報取得の指示のイベントは、デバイス設定画面７００ａの構成情報取得ボタン７０２が押下された場合、または、プリンタドライバ９０１がインストールされるタイミングの何れかで発生することを想定している。しかしながら、これ以外のタイミングでイベントが発生してもよい。
【００５９】
プリンタ１５００は、プリンタドライバ９０１からオプション機器構成情報取得要求を双方向性インタフェース２１を介して受信する（ステップＳ１００４）。プリンタ１５００は、外部メモリ１４に格納されているオプション機器構成情報９０２を取得する（ステップＳ１００５）。このオプション機器構成情報９０２は、プリンタ１５００の操作パネル５０２を介してユーザが明示的に入力しても良い。あるいは、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム、あるいは外部メモリ１４に記憶された制御プログラムによって、プリンタ１５００が自動的にオプション機器を検出することで、オプション機器構成情報９０２を適宜生成しても良い。
【００６０】
ここで、オプション機器構成情報の一例について、図６を用いて説明する。
【００６１】
図６は本発明の実施形態のオプション機器構成情報の一例を示す図である。
【００６２】
オプション機器構成情報６００は、図２Ａの複合機５００ａに装着されているオプション機器（デバイス）の構成を示す情報を示している。オプション機器構成情報６００には、「装着方向」、「装着順番」、「オプション名」の情報が格納されている。ここで、オプション機器の装着方法を示す情報の一例として、オプション機器構成情報６００があげられる。この装着方法を示す情報とは、例えば、オプション機器の装着方向、装着順番など、オプション機器が如何なる状況で装着されているのかを示す情報である。
【００６３】
装着方向は、本体ユニット５０３からパンチャーユニット５０６が装着されている方向を「水平１」、サイドペーパーデッキ５０４の方向を「水平２」、操作パネル５０２の方向を「垂直」と定義している。
【００６４】
換言すれば、本体ユニット５０３を基準に、同一直線上の一方の水平方向（第１方向）を「水平１」、他方（逆方向）の水平方向（第２方向）を「水平２」としている。また、本体ユニット５０３を基準に、操作パネルが存在する鉛直方向を垂直としている。
【００６５】
オプション機器構成情報６００の「水平１」の装着方向には、図２Ａに示す本体ユニット５０３を起点とする装着順番順で「ステイプルユニット」、「パンチャーユニット」、「フォールディングユニット」及び「サドルトレイ」が管理されている。また、「水平２」の装着方向には、図２Ａに示す本体ユニット５０３を起点として「サイドペーパーデッキ」が管理されている。更に、「垂直」の装着方向には、図２Ａに示す本体ユニット５０３を起点として「ＡＤＦ」が管理されている。
【００６６】
図５の説明に戻る。
【００６７】
プリンタ１５００は、プリンタドライバ９０１に対して、取得したオプション機器構成情報９０２を双方向性インタフェース２１を介して送信する（ステップＳ１００６）。
【００６８】
プリンタドライバ９０１は、プリンタ１５００から、オプション機器構成情報９０２を双方向性インタフェース２１を介して受信する（ステップＳ１００７）。
【００６９】
次に、プリンタドライバ９０１は、受信したオプション機器構成情報９０２をレジストリ９０３に格納する（ステップＳ１００８）。このレジストリ９０３には、図６のオプション機器構成情報６００と同等の情報としてオプション機器設定情報を格納する。プリンタドライバ９０１は、レジストリ９０３に格納したオプション機器構成情報を元に、オプション機器設定情報を更新する。そして、その更新したオプション機器設定情報に基づいて、デバイス設定画面の表示内容を更新する（ステップＳ１００９）。
【００７０】
この更新後のデバイス設定画面の一例を、図７を用いて説明する。
【００７１】
図７は本発明の実施形態の更新後のデバイス設定画面の一例を示す図である。
【００７２】
図７に示すデバイス設定画面７００ｂは、レジストリ９０３中のオプション機器設定情報が、プリンタ１５００から受信したオプション機器構成情報９０２によって反映された後のオプション機器設定情報によって生成される画面である。これは、図４のデバイス設定画面７００ａからその表示内容が更新されたものである。
【００７３】
この例では、オプション機器設定情報は、図６のオプション機器構成情報６００の内容が更新されたものである。そのため、プリンタ１５００に装着されているオプション機器としては、「ステイプルユニット」、「パンチャーユニット」、「フォールディングユニット」、「サドルトレイ」、「サイドペーパーデッキ」及び「ＡＤＦ」がある。
【００７４】
デバイスプレビュー領域７０１では、オプション機器構成情報６００の内容、つまり、図２Ａの複合機５００ａのオプション機器構成が模式画像として表示される。また、装着されているオプション機器に従って、それに対応するコンボボックス７０１ａ〜７０１ｅの表示内容が「ＯＦＦ」から「ＯＮ」に変更される。
【００７５】
次に、プリンタドライバ９０１で受信したオプション機器構成情報に応じたＵＩ制御処理について説明する。
【００７６】
まず、印刷処理関連プログラム４０２（プリンタドライバ９０１に対応）が、ホストコンピュータ３０００上のＲＡＭ２にロードされ実行可能となった状態のメモリマップについて、図８を用いて説明する。
【００７７】
図８は本発明の実施形態のＲＡＭ上のメモリマップ例を示す図である。
【００７８】
図８に示すように、ＲＡＭ２には、アプリケーション２０１、空きメモリ２０２、関連データ２０３、印刷処理関連プログラム（以下、プリンタドライバ９０１とする）２０４、ＯＳ２０５及びＢＩＯＳ２０６から構成されるメモリマップが形成される。
【００７９】
次に、プリンタドライバ９０１の各モジュール間の構成について、図９を用いて説明する。
【００８０】
図９は本発明の実施形態のプリンタドライバの各モジュール間の構成を示す図である。
【００８１】
プリンタドライバ９０１は、コンフリクト処理ルール３０１、推論エンジン３０２、コンフリクトマネージャ３０３、状態変数リスト３０４、内部構造体３０５及びドライバ管理部３０６から構成されている。
【００８２】
コンフリクト処理ルール３０１は、プリンタドライバ９０１における各設定間の不整合を防ぐためのルールを定義するものである。換言すれば、コンフリクト処理ルール３０１は、プリンタ１５００に装着可能なオプション機器について、その使用の可否を設定するためのルールである。尚、コンフリクト処理ルールの具体例については、後述する。
【００８３】
コンフリクトマネージャ３０３は、状態変数リスト３０４及び内部構造体３０５内のデータが一致するように管理するためのモジュールである。
【００８４】
ここで、状態変数リスト３０４は、プリンタドライバ９０１で設定可能な設定項目（例えば、グループ、ステイプル、ソート）に対応する状態変数（例えば、Ｇｒｏｕｐ、Ｓｔａｐｌｅ、Ｃｏｌｌａｔｅ）とその値（設定項目のオン／オフ）のリストである。また、内部構造体３０５内のデータは、プリンタドライバ９０１で設定可能な設定項目（例えば、グループ、ステイプル、ソート）に対応する変数であるメンバ（例えば、ｃＧｒｏｕｐ、ｃＳｔａｐｌｅ、ｃＣｏｌｌａｔｅ）とその値（オン＝１、オフ＝０）である。
【００８５】
換言すれば、内部構造体３０５は、プリンタ１５００に装着されているオプション機器の使用の可否を示す制限情報として機能する。
【００８６】
推論エンジン３０２は、コンフリクト処理ルール３０１を、コンフリクトマネージャ３０３を介して読み込み、コンフリクトチェック（ルールに応じた設定であるかの検査）を行い、その結果をコンフリクトマネージャ３０３へ返信する。
【００８７】
ドライバ管理部３０６は、アプリケーション３０７からの印刷設定要求等の要求に応じて、初期化処理や印刷設定を行うためのＵＩの表示制御や、プリンタドライバ９０１内の動作制御を行う。また、ドライバ管理部３０６は、コンフリクトマネージャ３０３に各設定間の不整合が生じないようコンフリクト処理を依頼する。
【００８８】
ここで、図９に示すコンフリクトマネージャ３０３及び推論エンジン３０２が、状態変数リスト３０４、内部構造体３０５及びコンフリクト処理ルール３０１を利用してどのようなコンフリクト処理を行うかを簡単な具体例を示して説明する。
【００８９】
図１０は本発明の実施形態のコンフリクトマネージャ及び推論エンジンにおけるコンフリクト処理の具体例を示す図である。
【００９０】
尚、図１０では、コンフリクトマネージャ３０３が、状態変数リスト３０４及び内部構造体３０５を利用して、推論エンジン３０２がコンフリクト処理ルール３０１を利用していることを示す。そこで、図１０では、便宜上、コンフリクトマネージャ３０３の枠内に状態変数リスト３０４及び内部構造体３０５を記載して、推論エンジン３０２の枠内にコンフリクト処理ルール３０１を記載している。
【００９１】
図１０に示す具体例では、プリンタ機能名Ａ、Ｂ、Ｃ…の設定に応じたコンフリクト処理の例を示している。図１０に示すように、内部構造体３０５には、プリンタ機能名Ａ、Ｂ、Ｃ…に対応するメンバｉｎｔ  ｃＡ、ｃＢ、ｃＣ…と、その値０、１、０…が格納されている。コンフリクトマネージャ３０３は、この内部構造体３０５のメンバとその値を参照することで、状態変数Ａ＝ＯＦＦ、状態変数Ｂ＝ＯＮ、状態変数Ｃ＝ＯＦＦ、…という状態変数リスト３０４を生成する。推論エンジン３０２は、この状態変数リスト３０４を参照するので、推論エンジン３０２内における、プリンタ機能名Ａ、Ｂ、Ｃ…の状態値の初期値は、ＯＦＦ、ＯＮ、ＯＦＦとなる。
【００９２】
また、コンフリクト処理ルール３０１には、
Ａ（ＯＮ）＜−Ｂ（ＯＮ）、Ｃ（ＯＦＦ）
というルールが定義されているとする。
【００９３】
これは、機能Ｂがオンかつ機能Ｃがオフの場合は機能Ａをオンにするというルールを定義するものである。推論エンジン３０２は、コンフリクト処理ルール３０１を、コンフリクトマネージャ３０３を介して読み込む。ここで、推論エンジン３０２でコンフリクトチェックの推論が行われたとする。
【００９４】
この場合、初期値がプリンタ機能名Ｂ＝ＯＮ、プリンタ機能名Ｃ＝ＯＦＦであるので、コンフリクト処理ルール３０１で定義されたルールＡ（ＯＮ）＜−Ｂ（ＯＮ）、Ｃ（ＯＦＦ）が成立する。これにより、推論エンジン３０２は、左辺のプリンタ機能名Ａの状態変数値をＯＮに変更する。即ち、推論エンジン３０２は、状態変数リスト３０４の状態変数Ａ＝ＯＮに更新する。
【００９５】
推論エンジン３０２において、コンフリクトチェックの推論が終了した後、コンフリクトマネージャ３０３は変更された状態変数Ａの値をプリンタドライバ９０１の内部構造体３０５の対応するメンバｉｎｔ  ｃＡに反映させる。つまり、ｉｎｔ  ｃＡの値は、コンフリクト処理ルール３０１が成立したことによって「０」から「１」に変更される。
【００９６】
以上に示すような処理により、コンフリクトマネージャ３０３及び推論エンジン３０２は、その設定間に不整合が生じないように、状態変数リスト３０４を更新する。そして、それを、ドライバ管理部３０６がＵＩに利用する内部構造体３０５内の設定情報（メンバｃＡ、ｃＢ、…）に反映している。
【００９７】
尚、上述したコンフリクト処理ルール３０１で定義したルールは、簡単な具体例を示すためのものであり、本実施形態のコンフリクト処理ルール３０１は、例えば、以下に示すようなルール例（１）、（２）、（３）、（４）を定義することが可能である。
【００９８】
ZFold(DISABLE) ＜− Puncher_closerThan_Fold(ON), Punch(ON)  ・・・（１）
Punch(DISABLE) ＜− Puncher_closerThan_Fold(ON), ZFold(ON)  ・・・（２）
Punch(OFF)     ＜− Booklet(ON)                             ・・・（３）
ZFold(OFF)     ＜− Booklet(ON)                             ・・・（４）
ここで、Ｐｕｎｃｈは「パンチ機能」、ＺＦｏｌｄは「Ｚ折り機能」、Ｂｏｏｋｌｅｔは「製本機能」を示している。Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄは、パンチャーユニット５０６の装着位置がフォールディングユニット５０７より本体ユニット５０３に近い位置に装着されているか否かの状態を示している。
【００９９】
Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿ＦｏｌｄがＯＮの状態のときは、パンチャーユニット５０６のほうがフォールディングユニット５０７よりも本体ユニット５０３側に近いということを示す。また、ルール（１）、（２）に記述されているＤＩＳＡＢＬＥは、その機能が使用できない状態を示している。
【０１００】
本実施形態におけるプリンタ１５００においては、オプション機器の順番によって機能の制限が変化する。例えば、用紙にＺ型の折り目をつけるＺ折りでは、Ｚ折りを施した後にパンチ穴を開けることができるが、パンチ穴を開けた後に、Ｚ折りを施すことができないといった具合に、機能を適用する順番によっては制限が発生する。この制限を上記のコンフリクト処理ルール例では、パンチャーユニット５０６の装着位置がフォールディングユニット５０７より本体ユニット５０３側に近いときには、Ｚ折り機能と、パンチ機能が同時に設定できないというルールで表現している。
【０１０１】
換言すれば、コンフリクト処理ルールは、次のようになる。第２オプション機器による処理後の用紙に対して第１オプション機器による処理が不可能であり、第１オプション機器の装着位置が第２オプション機器より画像形成装置に近い場合には、第１オプション機器と第２オプション機器の同時の使用を禁止する。ここで、第１オプション機器はパンチャーユニット５０６であり、第２オプション機器はフォールディングユニット５０７であり、画像形成装置はプリンタ１５００である。
【０１０２】
次に、本実施形態のホストコンピュータ３０００におけるプリンタドライバ９０１のＵＩ制御処理について、図１１を用いて説明する。
【０１０３】
図１１は本発明の実施形態のプリンタドライバのＵＩ制御処理を示すフローチャートである。
【０１０４】
アプリケーション２０１からプリンタドライバ９０１のドライバＵＩをオープンするためのＡＰＩが呼ばれると、このＡＰＩに対応したプリンタドライバ９０１側のドライバＵＩがコールされる（ステップＳ１１０１）。ここで、ＡＰＩは、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅの略称である。
【０１０５】
次に、プリンタドライバ９０１は、レジストリ９０３に格納されているオプション機器構成情報（オプション機器設定情報）を取得する（ステップＳ１１０２）。尚、ここでは、一例として、取得するオプション機器構成情報は、図６のオプション機器構成情報６００と同じ内容とする。
【０１０６】
オプション機器構成情報を取得すると、プリンタドライバ９０１は、初期化処理を実行する（ステップＳ１１０３）。この初期化処理は、図９の状態変数リスト３０４等の内部データのためのメモリ領域をＲＡＭ２上に確保した後、初期化する。尚、図１０でも説明したように、状態変数リスト３０４の状態変数の値は、プリンタドライバ９０１で使用される内部構造体３０５の対応するメンバの値と連動している。状態変数リスト３０４における全ての状態変数の初期値は、その内部構造体３０５のメンバの値が初期値となる。
【０１０７】
このステップＳ１１０３では、コンフリクトマネージャ３０３を介して状態変数の初期化処理を行う。初期化処理では、内部構造体３０５を参照してプリンタドライバ９０１の状態変数リスト３０４を生成する。また、この初期化処理のタイミングで、推論エンジン３０２は、コンフリクトマネージャ３０３を介して、コンフリクト処理ルール３０１を読み込む。
【０１０８】
ここで、プリンタドライバ９０１の内部構造体３０５のメンバとしては、Ｐｕｎｃｈ、ＺＦｏｌｄ、Ｂｏｏｋｌｅｔ、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄが定義されていて、対応する状態変数の各メンバの初期値は、以下の＜状態１＞と仮定する。
【０１０９】
＜状態１＞
Punch(OFF)
ZFold(OFF)
Booklet(OFF)
Puncher_closerThan_Fold(OFF)
初期化処理が終了後、プリンタドライバ９０１は、取得したオプション機器構成情報を元に、パンチャーユニット５０６の装着位置がフォールディングユニット５０７より本体ユニット５０３に近いか否かを判定する（ステップＳ１１０４）。
【０１１０】
パンチャーユニット５０６がフォールディングユニット５０７より本体ユニット５０３に近い場合（ステップＳ１１０４でＹＥＳ）、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄを「ＯＮ」に設定する（ステップＳ１１０５）。一方、そうでない場合（ステップＳ１１０４でＮＯ）、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄを「ＯＦＦ」に設定する（ステップＳ１００６）。
【０１１１】
ここで、本実施形態のオプション機器構成情報６００における「水平１」の装着方向に着目すると、パンチャーユニット５０６の装着順番が「２」、フォールディングユニット５０７の装着順番が「３」である。そのため、この場合は、パンチャーユニット５０６がフォールディングユニット５０７より本体ユニット５０３に近いと判定される。従って、この場合には、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄの状態が「ＯＮ」に変更し、状態変数の各メンバは、上記の＜状態１＞から以下の＜状態２＞に推移する。
【０１１２】
＜状態２＞
Punch(OFF)
ZFold(OFF)
Booklet(OFF)
Puncher_closerThan_Fold(ON)
状態変数の初期化が終了すると、初期化された状態変数に基づいて、プリンタドライバ９０１は、ＵＩ画面（印刷設定画面）を表示して、イベント待ち状態にする（ステップＳ１１０７）。この状態で表示されるＵＩ画面は、図１２のＵＩ画面８００ａとなる。
【０１１３】
ＵＩ画面８００ａにおいて、コンボボックス８０１〜８０３は、それぞれパンチ機能、Ｚ折り機能、製本印刷機能のＯＮ／ＯＦＦを制御するコントロールである。ここで、状態変数のＰｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄについては、内部でコンフリクト処理を実施するための情報として使用するもので、ユーザが設定する機能ではないのでＵＩ画面８００ａ上には表示されない。ＯＫボタン８０４は、ＵＩ画面８００ａ上で設定を変更した後、設定が確定した時点で押下すると、その状態の設定を内部構造体３０５に保存し、ＵＩ画面８００ａを閉じる。一方、キャンセルボタン８０５を押下すると、変更された設定を保存せずに、ＵＩ画面８００ａを閉じる。
【０１１４】
次に、ユーザが図１２のＵＩ画面８００ａを操作した場合のＵＩ制御処理について、図１３を用いて説明する。
【０１１５】
図１３は本発明の実施形態のＵＩ画面を操作した場合のＵＩ制御処理を示すフローチャートである。
【０１１６】
尚、この処理は、図１１のステップＳ１１０７のイベント状態待ち状態から開始する。
【０１１７】
まず、プリンタドライバ９０１は、ＵＩ画面８００ａに対する操作によって何らかのイベントが発生すると、そのイベントを取得する（ステップＳ１２０１）。次に、プリンタドライバ９０１は、取得したイベントが終了イベントであるか否かを判定する（ステップＳ１２０２）。この終了イベントは、ＵＩ画面８００ａのＯＫボタン８０４、またはキャンセルボタン８０５を押下することで発生する。
【０１１８】
終了イベントである場合（ステップＳ１２０２でＹＥＳ）、設定を保存する等の終了処理を実行した後、処理を終了する（ステップＳ１２０３）。一方、終了イベントでない場合（ステップＳ１２０２でＮＯ）、プリンタドライバ９０１は、取得したイベントがＵＩコントロールの変更であるか否かを判定する（ステップＳ１２０４）。
【０１１９】
ＵＩコントロールの変更である場合（ステップＳ１２０４でＹＥＳ）、プリンタドライバ９０１は、ＵＩコントロールの変更に従って、状態変数リスト３０４を更新する（ステップＳ１２０５）。本実施形態では、ＵＩ画面８００ａの状態で、パンチ機能のコンボボックス８０１を「ＯＦＦ」から「ＯＮ」に設定することを想定する。コンボボックス８０１が「ＯＦＦ］から「ＯＮ」に変更されると、状態変数の各メンバは、上記の＜状態２＞から以下の＜状態３＞に推移する。
【０１２０】
＜状態３＞
Punch(ON)
ZFold(OFF)
Booklet(OFF)
Puncher_closerThan_Fold(ON)
この＜状態３＞で、プリンタドライバ９０１は、上述のコンフリクト処理ルール（１）から（４）を適用する（ステップＳ１２０６）。ここで、Ｐｕｎｃｈ（ＯＮ）の状態になった場合のコンフリクト処理ルールは、コンフリクト処理ルール（１）が該当する。コンフリクト処理ルール（１）に従って処理をすると、Ｐｕｎｃｈ（ＯＮ）でかつＰｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄ（ＯＮ）である場合に、ＺＦｏｌｄの状態をＤＩＳＡＢＬＥにする。ここで、状態変数の各メンバは、上記の＜状態３＞から以下の＜状態４＞に推移する。
【０１２１】
＜状態４＞
Punch(ON)
ZFold(DISABLE)
Booklet(OFF)
Puncher_closerThan_Fold(ON)
この＜状態４＞では、適用するコンフリクト処理ルールが存在しないので、上記の状態変数の各メンバに対応した内部構造体３０５を更新する（ステップＳ１２０７）。その後、状態変数に従って、ＵＩ画面のコントロールを更新する（ステップＳ１２０８）。
【０１２２】
ここで、更新後のＵＩ画面が図１４のＵＩ画面８００ｂである。状態変数ＺＦｏｌｄが「ＤＩＳＡＢＬＥ」になったため、Ｚ折り機能に対応するコンボボックス８０３がグレーアウトされているのがわかる。コンボボックス８０３がグレーアウトされ、ユーザは、Ｚ折り機能を制御できない状態であるので、パンチ機能とＺ折り機能を同時に有効にすることを抑制している。
【０１２３】
ＵＩコントロールの更新が終了すると、ステップＳ１２０１に戻り、再びイベントを取得して、ＵＩ画面が閉じられるまで一連の処理を繰り返す。
【０１２４】
ここまでが、オプション機器の構成が図２Ａの複合機５００ａの状態の場合の処理についての説明である。
【０１２５】
次に、フォールディングユニット５０７とパンチャーユニット５０６の装着順番が、図２Ａに示す複合機５００ａから、図２Ｂに示す複合機５００ｂの構成に入れ替わった状態の場合の処理について説明する。
【０１２６】
この場合、複合機５００ｂの構成に対応するオプション機器構成情報は、図１５に示すオプション機器構成情報６０１となる。複合機５００ｂは、オプション機器構成情報６０１の「水平１」の方向には、図２Ｂに示す本体ユニット５０３を起点とする装着順番順で「ステイプルユニット」、「フォールディングユニット」、「パンチャーユニット」及び「サドルトレイ」が管理されている。また、「水平２」の装着方向には、図２Ｂに示す本体ユニット５０３を起点として「サイドペーパーデッキ」が管理されている。更に、「垂直」の装着方向には、図２Ｂに示す本体ユニット５０３を起点として「ＡＤＦ」が管理されている。
【０１２７】
このオプション機器構成情報６０１の状態で、図５の処理を実行すると、ステップＳ１００９では、図１６に示すデバイス設定画面７００ｃが表示され、更に、レジストリ９０３にオプション機器構成情報６０１の内容が格納される。
【０１２８】
次に、オプション機器構成情報６０１の情報を取得している状態でのＵＩ制御処理を、図１１及び図１３を用いて説明する。
【０１２９】
図１１のステップＳ１１０１からステップＳ１１０３までの処理は、前述の説明と同じであるので省略する。ステップＳ１１０２で取得するオプション機器構成情報は、図１５に示すオプション機器構成情報６０１と同じ内容となる。
【０１３０】
ここで、プリンタドライバ９０１の内部構造体３０５のメンバとしては、Ｐｕｎｃｈ、ＺＦｏｌｄ、Ｂｏｏｋｌｅｔ、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄが定義されていて、対応する状態変数の各メンバの初期値は、以下の＜状態１ａ＞と仮定する。
【０１３１】
＜状態１ａ＞
Punch(OFF)
ZFold(OFF)
Booklet(OFF)
Puncher_closerThan_Fold(OFF)
初期化処理の終了後、プリンタドライバ９０１は、取得したオプション機器構成情報を元に、パンチャーユニット５０６の装着位置がフォールディングユニット５０７より本体ユニット５０３に近いか否かを判定する（ステップＳ１１０４）。
【０１３２】
ここで、本実施形態のオプション機器構成情報６０１における「水平１」の装着方向に着目すると、フォールディングユニット５０７の装着順番が「２」、パンチャーユニット５０６の装着順番が「３」である。そのため、この場合は、フォールディングユニット５０７がパンチャーユニット５０６より本体ユニット５０３に近いと判定される。従って、この場合には、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄの状態を「ＯＦＦ」にするが、状態が変更されないため、状態変数の各メンバの状態は変化しない。
【０１３３】
状態変数の初期化が終了すると、初期化された状態変数に基づいて、プリンタドライバ９０１は、ＵＩ画面を表示し、イベント待ち状態にする（ステップＳ１１０７）。この状態で表示されるＵＩ画面は、図１２のＵＩ画面８００ａとなる。
【０１３４】
次に、ユーザが図１２のＵＩ画面８００ａを操作した場合のＵＩ制御処理について、図１３を用いて説明する。
【０１３５】
図１３のステップＳ１２０１からステップＳ１２０４までの処理は、前述の説明と同じであるので省略する。
【０１３６】
ここでは、ＵＩ画面８００ａに対する操作によって、ＵＩコントロールの変更がある場合について説明する。本実施形態では、ＵＩ画面８００ａの状態で、パンチ機能のコンボボックス８０１を「ＯＦＦ」から「ＯＮ」に設定することを想定する。コンボボックス８０１が「ＯＦＦ」から「ＯＮ」に変更されると、状態変数の各メンバは、上記の＜状態１ａ＞から以下の＜状態２ａ＞に推移する。
【０１３７】
＜状態２ａ＞
Punch(ON)
ZFold(OFF)
Booklet(OFF)
Puncher_closerThan_Fold(OFF)
この状態＜２ａ＞で、プリンタドライバ９０１は、上述のコンフリクト処理ルール（１）から（４）を適用する（ステップＳ１２０６）。ここで、Ｐｕｎｃｈ（ＯＮ）の状態になった場合のコンフリクト処理ルールは、コンフリクト処理ルール（１）が該当する。コンフリクト処理ルール（１）に従って処理をすると、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄの状態が「ＯＦＦ」であるので、このルールは適用されず、状態変数の各メンバは変化しない。
【０１３８】
この状態で適用するコンフリクト処理ルールがこれ以上存在しないので、上記の状態変数の各メンバに対応した内部構造体３０５を更新する（ステップＳ１２０７）。その後、状態変数に従って、ＵＩ画面のコントロールを更新する（ステップＳ１２０８）。
【０１３９】
ここで、更新後のＵＩ画面例が図１７のＵＩ画面８００ｃである。この状態で、ＵＩ画面８００ｃで、更に、Ｚ折りの設定を「ＯＮ」に設定すると、状態変数の各メンバは、上記の＜状態２ａ＞から以下の＜状態３ａ＞に推移する。
【０１４０】
＜状態３ａ＞
Punch(ON)
ZFold(ON)
Booklet(OFF)
Puncher_closerThan_Fold(OFF)
この状態で、プリンタドライバ９０１は、上述のコンフリクト処理ルール（１）から（４）を適用する。ここで、ＺＦｏｌｄ（ＯＮ）の状態になった場合のコンフリクト処理ルールは（２）が該当する。しかしながら、コンフリクト処理ルール（２）は、Ｐｕｎｃｈｅｒ＿ｃｌｏｓｅｒＴｈａｎ＿Ｆｏｌｄ（ＯＮ）でないと成立しないので、このコンフリクト処理ルールは適用されない。状態変数の各メンバは、上記の状態のままで、各メンバに対応した内部構造体３０５を更新する。その後、状態変数に従って、ＵＩ画面のコントロールを更新する。
【０１４１】
ここで、更新後のＵＩ画面例が図１８のＵＩ画面８００ｄである。ここでは、パンチ機能、Ｚ折り機能の両方が同時に有効になっているのがわかる。
【０１４２】
以上のように、フォールディングユニット５０７がパンチャーユニット５０６よりも本体ユニット５０３側に装着されている場合は、パンチ機能とＺ折り機能が共に有効に設定できるように制御される。
【０１４３】
以上説明したように、本実施形態によれば、オプション機器の装着順番に依存した制限をプリンタドライバで制御することで、矛盾した設定が入力されないようにすることができるため、ユーザの利便性を向上させることができる。
【０１４４】
また、オプション機器の順番情報を反映させたオプション機器構成の模式画像を表示するデバイスプレビュー画面を表示することで、正確な機器オプション構成をユーザに伝えることができる。
【０１４５】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４６】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１４７】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１４９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１５０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１５１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１５３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５４】
【図１】本発明の実施形態の画像形成システムの構成を示すブロック図である。
【図２Ａ】本発明の実施形態のプリンタの機器構成例を示す図である。
【図２Ｂ】本発明の実施形態のプリンタの機器構成例を示す図である。
【図３】本発明の実施形態のホストコンピュータとプリンタの機能関係を示す図である。
【図４】本発明の実施形態のデバイス設定画面の一例を示す図である。
【図５】本発明の実施形態のプリンタドライバによるオプション機器構成情報取得処理を示すフローチャートである。
【図６】本発明の実施形態のオプション機器構成情報の一例を示す図である。
【図７】本発明の実施形態の更新後のデバイス設定画面の一例を示す図である。
【図８】本発明の実施形態のＲＡＭ上のメモリマップ例を示す図である。
【図９】本発明の実施形態のプリンタドライバの各モジュール間の構成を示す図である。
【図１０】本発明の実施形態のコンフリクトマネージャ及び推論エンジンにおけるコンフリクト処理の具体例を示す図である。
【図１１】本発明の実施形態のプリンタドライバのＵＩ制御処理を示すフローチャートである。
【図１２】本発明の実施形態のＵＩ画面の一例を示す図である。
【図１３】本発明の実施形態のＵＩ画面を操作した場合のＵＩ制御処理を示すフローチャートである。
【図１４】本発明の実施形態のＵＩ画面の一例を示す図である。
【図１５】本発明の実施形態のオプション機器構成情報の一例を示す図である。
【図１６】本発明の実施形態のデバイス設定画面の一例を示す図である。
【図１７】本発明の実施形態のＵＩ画面の一例を示す図である。
【図１８】本発明の実施形態のＵＩ画面の一例を示す図である。
【符号の説明】
【０１５５】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
３ａ  フォント用ＲＯＭ
３ｂ  プログラム用ＲＯＭ
３ｃ  データ用ＲＯＭ
４  システムバス
５  ＫＢＣ
６  ＣＲＴＣ
７  ＤＫＣ
８  ＰＲＴＣ
９  ＫＢ
１０  ＣＲＴ
１１  外部メモリ
１５００  プリンタ
３０００  ホストコンピュータ
【図１】
2008191946.tif 000003
【図２Ａ】
2008191946.tif 000004
【図２Ｂ】
2008191946.tif 000005
【図３】
2008191946.tif 000006
【図４】
2008191946.tif 000007
【図５】
2008191946.tif 000008
【図６】
2008191946.tif 000009
【図７】
2008191946.tif 000010
【図８】
2008191946.tif 000011
【図９】
2008191946.tif 000012
【図１０】
2008191946.tif 000013
【図１１】
2008191946.tif 000014
【図１２】
2008191946.tif 000015
【図１３】
2008191946.tif 000016
【図１４】
2008191946.tif 000017
【図１５】
2008191946.tif 000018
【図１６】
2008191946.tif 000019
【図１７】
2008191946.tif 000020
【図１８】
2008191946.tif 000021