(57)【特許請求の範囲】
【請求項１】
印刷設定画面を介して入力された設定値が他の設定値との組み合わせで設定できるか否かを判定する第１の判定手段と、
前記第１の判定手段により前記入力された設定値が前記他の設定値と組み合わせて設定できないと判定された場合には、対象カテゴリの設定値であり、かつ前記他の設定値と組み合わせて設定可能な設定値があるか否かを判定する第２の判定手段と、
前記第１の判定手段による判定の結果と前記第２の判定手段による判定の結果とに基づいて、前記入力された設定値を、前記他の設定値との組み合わせでも設定できる前記設定値に変更する変更手段と、
を有し、
前記第２の判定手段は、前記入力された設定値と同じ第１のカテゴリの設定値であり、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか判定し、前記第１のカテゴリで、かつ前記他の設定値との組み合わせでも設定できる前記設定値が存在しないと判定した場合に、前記入力された設定値と異なる第２のカテゴリの設定値で、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか否かを判定することを特徴とする情報処理装置。
【請求項２】
印刷機能に関する複数の設定値の各々を複数のカテゴリに分類する分類手段を更に有し、
前記前記第２の判定手段は、前記第１の判定手段により前記入力された設定値が前記他の設定値と組み合わせて設定できないと判定された場合には、前記分類手段により前記複数のカテゴリに分類された前記複数の設定値の中に、前記対象カテゴリの設定値であり、かつ前記他の設定値と組み合わせて設定可能な設定値があるか否かを判定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記分類手段は、前記複数の設定値それぞれを定義する定義ファイルのカテゴリ設定項目に基づいて、前記複数の設定値を前記複数のカテゴリに分類することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第１の判定手段は、禁止されている設定値の組み合わせを示す禁則情報に基づいて、前記入力された設定値が前記他の設定値との組み合わせで設定できるか否かを判定し、
前記第２の判定手段は、前記第１の判定手段により前記入力された設定値が前記他の設定値と組み合わせて設定できないと判定された場合には、前記禁則情報に基づいて、前記対象カテゴリの設定値であり、かつ前記他の設定値と組み合わせて設定可能な設定値があるか否かを判定することを特徴とする請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
前記第２のカテゴリは、前記第１のカテゴリよりも対応する優先順位が低いカテゴリであることを特徴とする請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
前記印刷設定画面を表示部に表示する表示手段を更に有し、
前記表示手段は、前記変更手段により変更された前記入力された設定値を前記印刷設定画面の内部に表示することを特徴とする請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
情報処理装置が実行する情報処理方法であって、
印刷設定画面を介して入力された設定値が他の設定値との組み合わせで設定できるか否かを判定する第１の判定ステップと、
前記第１の判定ステップで前記入力された設定値が前記他の設定値と組み合わせて設定できないと判定された場合には、対象カテゴリの設定値であり、かつ前記他の設定値と組み合わせて設定可能な設定値があるか否かを判定する第２の判定ステップと、
前記第１の判定ステップでの判定の結果と前記第２の判定ステップでの判定の結果とに基づいて、前記入力された設定値を、前記他の設定値との組み合わせでも設定できる前記設定値に変更する変更ステップと、
を有し、
前記第２の判定ステップでは、前記入力された設定値と同じ第１のカテゴリの設定値であり、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか判定し、前記第１のカテゴリで、かつ前記他の設定値との組み合わせでも設定できる前記設定値が存在しないと判定した場合に、前記入力された設定値と異なる第２のカテゴリの設定値で、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか否かを判定することを特徴とする情報処理方法。
【請求項８】
コンピュータを、請求項１乃至６何れか１項記載の情報処理装置の各手段として、機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータのＯＳで、新しいアーキテクチャーのＶ４プリンタードライバーが導入された。Ｖ４プリンタードライバーは、ＰＰＤ（ＰｏｓｔＳｃｒｉｐｔ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）やＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）という機種依存ファイルで、各機種で使用できる印刷設定の機能を表現する。同時に設定することができない機能については、無効な組み合わせの情報（Ｉｎｖａｌｉｄ  Ｃｏｍｂｉｎａｔｉｏｎ）がＰＰＤやＧＰＤに記載される。
ユーザーが印刷設定を変更することによって、ＰＰＤやＧＰＤに記載された無効な組み合わせになった場合、Ｖ４プリンタードライバーは、優先順位が最も低い機能を使用しないように強制的に設定を変更する。このように印刷設定の無効な組み合わせが指定された際に行われる無効な組み合わせを解消するような設定の変更処理は、禁則による丸め処理と呼ばれる。
【０００３】
印刷設定の無効な組み合わせが指定された際に設定を変更する方法には、色々な種類がある。特許文献１のように、印刷設定の無効な組み合わせが指定された際にユーザーに対して警告を表示し、設定ができないことを知らせる方法がよく知られている。
また、印刷設定に無効な組み合わせが指定された際に、特定の機能に対して、予め決められた１つの優先順位に基づいて、設定値を設定する方法等もある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１９６２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、無効な組み合わせが指定されるたびにユーザーに問い合わせる方法では、複雑な機能が多い機種においては、何度も警告が表示され煩わしく、無効な状態を解消するだけでも手間がかかる。また、自動的に無効な組み合わせを解消する方法では、あらかじめ決められた１つの優先順位に基づいて強制的に変更されるので、ユーザーの希望を考慮していない設定にされたり、機能が使用できない状態にされたりすることが多かった。例えば、ステイプル機能に対して設定できない値が指定された場合、ステイプル機能の設定値が強制的に「設定なし」になる場合がある。
そこで、本発明は、印刷設定の無効な組み合わせが指定された際、ユーザーに手間をかけさせずにユーザーの希望に近い印刷設定に変更することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の情報処理装置は、印刷設定画面を介して入力された設定値が他の設定値との組み合わせで設定できるか否かを判定する第１の判定手段と、前記第１の判定手段により前記入力された設定値が前記他の設定値と組み合わせて設定できないと判定された場合には、対象カテゴリの設定値であり、かつ前記他の設定値と組み合わせて設定可能な設定値があるか否かを判定する第２の判定手段と、前記第１の判定手段による判定の結果と前記第２の判定手段による判定の結果とに基づいて、前記入力された設定値を、前記他の設定値との組み合わせでも設定できる前記設定値に変更する変更手段と、を有し、前記第２の判定手段は、前記入力された設定値と同じ第１のカテゴリの設定値であり、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか判定し、前記第１のカテゴリで、かつ前記他の設定値との組み合わせでも設定できる前記設定値が存在しないと判定した場合に、前記入力された設定値と異なる第２のカテゴリの設定値で、かつ前記他の設定値との組み合わせでも設定できる設定値が存在するか否かを判定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、印刷設定の無効な組み合わせが指定された際、ユーザーに手間をかけさせずにユーザーの希望に近い印刷設定に変更することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置のハードウェア構成図等の一例を示す図である。
【図２】印刷システムのシステム構成図の一例を示す図である。
【図３】Ｖ４プリンタードライバーを利用した印刷処理を説明する図である。
【図４】機種依存ファイルのサンプルを示す図である。
【図５】Ｖ４プリンタードライバーのユーザーインターフェースの表示処理の一例を示すフローチャートである。
【図６】カテゴリが設定された結果の一例を示す図である。
【図７】ユーザーインターフェースの画面の一例を示す図である。
【図８】従来の禁則による丸め処理の一例を示すフローチャートである。
【図９】カテゴリを使用した禁則による丸め処理の一例を示すフローチャートである。
【図１０】列挙される選択肢の一例を示す図である。
【図１１】Ｖ４プリンタードライバーの機種依存ファイルに選択肢ごとにカテゴリを記載した様子を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、本実施形態における情報処理装置（コンピューター）のハードウェア構成等の一例を示す図である。本実施形態では、本実施形態の処理を実行する主体は、単体の情報処理装置である図２で後述するクライアントコンピュータ２０１とする。しかし、複数の機器からなるシステムやネットワークを介して接続された複数の機器からなるシステム等が本実施形態の処理を実行することとしてもよい。
クライアントコンピュータ２０１は、ＣＰＵ１０１、主記憶装置１０２、入力Ｉ／Ｆ１０３、出力Ｉ／Ｆ１０４、補助記憶装置１０５、通信Ｉ／Ｆ１０６等を含む。ＣＰＵ１０１、主記憶装置１０２、入力Ｉ／Ｆ１０３、出力Ｉ／Ｆ１０４、補助記憶装置１０５、通信Ｉ／Ｆ１０６は、システムバス１０７を介して相互に接続されている。
【００１１】
ＣＰＵ１０１は、主記憶装置１０２のＲＯＭ１０２１、ＲＡＭ１０２２、補助記憶装置１０５等に格納されたプログラムに従って、クライアントコンピュータ２０１全体を制御する。ＲＡＭ１０２２は、ＣＰＵ１０１が各種処理を行う際のワークエリア等として使用される。補助記憶装置１０５は、アプリケーション１０５１のプログラム、プリンタードライバー１０５２のプログラム、オペレーティングシステム（ＯＳ）１０５３のプログラム等を記録する。
ＣＰＵ１０１が、主記憶装置１０２又は補助記憶装置１０５に記憶されたプログラムに基づき処理を実行することによって、後述するクライアントコンピュータ２０１の機能及び後述するフローチャートの処理が実現される。
キーボード１０３１やマウス、タッチパネル等のポインティングデバイス１０３２等の入力機器は、入力Ｉ／Ｆ１０３を介して、ユーザーがクライアントコンピュータ２０１に対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データをクライアントコンピュータ２０１の外部に出力するためのインターフェースであり、モニタ１０４１やプリンター１０４２等の出力機器に対してデータを出力する。モニタ１０４１は、クライアントコンピュータ２０１の表示部の一例である。
【００１２】
クライアントコンピュータ２０１は、プリンター１０４２と、出力Ｉ／Ｆ１０４等のローカルＩ／Ｏを介して接続されるが、通信Ｉ／Ｆ１０６を介して、ネットワーク１０６１を経由して接続されてもよい。また、システムバス１０７は、Ｉ／Ｆやモジュール間でデータのやりとりを行う。
なお、プリンター１０４２は、印刷機能のみを持った印刷装置でもよいし、ＦＡＸ機能のみを持ったＦＡＸ装置でもよいし、スキャン機能及び印刷機能等複数の機能を持った複合機でもよい。なお、プリンター１０４２は、画像処理装置と呼ばれることもある。
【００１３】
図２は、本実施形態の印刷システムのシステム構成図の一例を示す図である。印刷システムは、クライアントコンピュータ２０１、プリンター２０５、プリンター１０４２等を含む。印刷システムに含まれる機器は、ネットワークに接続されているものとする。
クライアントコンピュータ２０１は、印刷対象の文書や画像を作成する情報処理装置であり、ネットワークに接続されている。クライアントコンピュータ２０１は、本実施形態の処理の主体である情報処理装置であり、ハードウェア構成は、図１の通りである。また、印刷システムは、本実施形態の処理の主体としてクライアントコンピュータ２０１のみでなく、クライアントコンピュータ２０２等の２台目以降の情報処理装置を含むことができる。印刷システムがクライアントコンピュータ２０２を含むこととする場合、クライアントコンピュータ２０２のハードウェア構成等の詳細は、クライアントコンピュータ２０１と同様である。
印刷システムは、クライアントコンピュータ２０１等のユーザーや印刷システムに含まれるプリンターを管理するネットワークに接続されたサーバーコンピュータ２０３を含むことできる。
【００１４】
また、プリンター２０５は、物理的にネットワークに接続されているが、実際には使用できないオフライン状態となっている。そのため、印刷システムは、プリンター２０５を含まないこととしてもよい。プリンター１０４２は、ネットワークに接続されており、使用可能な状態となっている。
ネットワークには、小規模なものから大規模なものまであり、例えば以下のものがある。ネットワークには、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等がある。
印刷システムに含まれる機器は、クラウド等を介して、インターネットを越えて相互に接続されていてもかまわない。クライアントコンピュータ２０１は、プリンター（画像処理装置）等の装置と接続可能な装置である。
【００１５】
図３は、Ｖ４プリンタードライバーを利用した印刷処理を説明する図である。Ｖ４プリンタードライバーを利用した印刷処理は、ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以下、ＸＰＳとする）と呼ばれるファイルフォーマットをスプールデータとして使用し、印刷を行う処理である。クライアントコンピュータ２０１の機能であるアプリケーション１０５１、プリンタードライバー１０５２、オペレーティングシステム等に係るプログラムは、補助記憶装置１０５に記憶されており、ＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。アプリケーション１０５１、プリンタードライバー１０５２等は、オペレーティングシステム上で動作している。プリンタードライバー１０５２は、Ｖ４プリンタードライバーである。
プリントマネージャ３１８、ＧＤＩｔｏＸＰＳ変換モジュール３０７、フィルターパイプラインマネージャ３１２は、オペレーティングシステムに含まれるモジュールである。ＧＤＩｔｏＸＰＳ変換モジュール３０７、フィルターパイプラインマネージャ３１２は、プリンタードライバー１０５２に含まれているが、オペレーティングシステムから提供されているプリンタードライバー１０５２専用のモジュールである。
【００１６】
フィルターパイプラインマネージャ３１２の各フィルター３１３〜３１５とデバイスアプリ３１０とは、プリンタードライバー１０５２に含まれる。なお、デバイスアプリ３１０は、プリンタードライバー１０５２のクライアントコンピュータ２０１等の情報処理装置へのインストール処理に連動して、ネットワークを介して自動的にクライアントコンピュータ２０１等の情報処理装置にインストールされる。
ＧＤＩ印刷アプリケーション３０１（以下、ＧＤＩアプリ３０１とする）とＸＰＳ印刷アプリケーション３０２（以下、ＸＰＳアプリ３０２とする）とは、アプリケーション１０５１に含まれる。ＧＤＩアプリ３０１は、オペレーティングシステムが用意するＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を使用して印刷を行うアプリケーションである。ＸＰＳアプリ３０２は、ＸＰＳスプールファイル３０６を直接使用して印刷を行うアプリケーションである。
【００１７】
ユーザーは、キーボード１０３１やポインティングデバイス１０３２等の入力装置を使用して、以下の操作を行う。即ち、ユーザーは、モニタ１０４１に表示されたＧＤＩアプリ３０１の画面、ＸＰＳアプリ３０２の画面等のアプリケーション１０５１の画面を介して、印刷処理をプリンター１０４２に指示する。なお、印刷処理は、「プリンターの選択」、「印刷設定データの作成」、「描画データの変換」という３つの処理を順番に実行されることで実現される。以下、印刷処理の流れを説明する。
まず、アプリケーション１０５１は、ユーザーによるアプリケーション１０５１の画面を介した操作に基づいて、印刷したいプリンター１０４２を選択する。アプリケーション１０５１は、ユーザーによるアプリケーション１０５１の画面を介した操作に基づいて、プリンター１０４２に対応したプリンタードライバー１０５２を選択することで、プリンター１０４２の選択を選択する。
【００１８】
次に、印刷設定データの作成処理について説明する。印刷設定データは、印刷処理に関する各機能の設定値等を含むデータであり、印刷処理に利用される。印刷設定データの作成の際、アプリケーション１０５１は、印刷設定データ用のメモリ領域をＲＡＭ１０２２に確保する。そして、アプリケーション１０５１は、プリンタードライバー１０５２のコンフィグモジュール３０８を介して、印刷設定データを作成し、作成した印刷設定データをＲＡＭ１０２２に確保した領域に格納する。
ＧＤＩアプリ３０１は、印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体３０３を用いる。ＸＰＳアプリ３０２は、印刷設定データとしてマークアップ言語のＸＭＬ（ｅＸｔｅｎｓｉｖｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記載されたプリントチケット３０４を用いる。ＤＥＶＭＯＤＥ構造体３０３は、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域とを含む。プリントチケット３０４は、ＸＭＬ形式で記述された印刷設定データで、名前空間によって標準領域と拡張領域との記載が分かれている。
【００１９】
コンフィグモジュール３０８は、印刷設定データには機種固有の情報も含まれているので、機種依存ファイル３０９を利用して、印刷設定データを作成する。アプリケーション１０５１は、ＤＥＶＭＯＤＥ構造体３０３又はプリントチケット３０４の内容を書き換えることで印刷設定を変更する。印刷設定データには、出力する用紙サイズの情報（例えば「Ａ４」）、両面印刷の指定、カラーと白黒、給紙段の指定等の印刷に必要な設定値が含まれる。
印刷設定データがＤＥＶＭＯＤＥ構造体３０３で表されている場合、印刷設定データの標準領域は、仕様が外部に公開されている。そのため、ＧＤＩアプリ３０１は、直接、印刷設定データの標準領域の内容を変更される。印刷設定データのプリンター１０４２に依存した拡張領域は、プリンタードライバー１０５２のみに詳細な仕様が把握されている。そのため、通常、デバイスアプリ３１０は、ユーザーインターフェースを介したユーザーの操作に基づいて、印刷設定データの拡張領域の内容を変更する。
【００２０】
印刷設定データがプリントチケット３０４で表されている場合、設定値がＸＭＬ形式で記述されているので、ＸＰＳアプリ３０２は、全ての設定値を直接変更することができる。しかし、印刷設定データの拡張領域は、プリンタードライバーごとの独自定義であるため、プリンター１０４２によって仕様が異なり、詳細な仕様まではＸＰＳアプリ３０２により把握されない。そのため、デバイスアプリ３１０は、ユーザーインターフェースを介したユーザーの操作に基づいて、印刷設定データの拡張領域の設定値を変更することとする。
デバイスアプリ３１０は、プリンタードライバー１０５２に含まれるが、プリンタードライバー１０５２とは別のプログラムとしてインストールされる。デバイスアプリ３１０は、プリンタードライバー１０５２と、プリントチケット３０４を使用して印刷設定データをやりとりする。デバイスアプリ３１０は、コンフリクトエンジン３１０１等を含む。コンフリクトエンジン３１０１は、印刷設定データの各機能に無効な組み合わせの設定値が設定された場合、無効ではない組み合わせの設定値が設定されている印刷設定データを作成する。
【００２１】
印刷設定データに含まれる各機能の設定値の無効な組み合わせの情報が機種依存ファイル３０９に記載されているので、コンフリクトエンジン３１０１は、ユーザーインターフェースを表示する前に、機種依存ファイル３０９を読み込む。以下では、機種依存ファイル３０９に記載されている設定値の無効な組み合わせの情報を禁則情報とする。禁則情報に記載されている設定値の組み合わせは、設定が禁止されている無効な組み合わせである。禁則情報に記載されていない設定値の組み合わせは、許可されている組み合わせである。プリンタードライバー１０５２は、ユーザーインターフェースを介したユーザーの操作に基づいて、ＤＥＶＭＯＤＥ構造体３０３又はプリントチケット３０４で表されたプリンター１０４２に依存した設定を変更する。印刷設定データは印刷処理ごとに必要となるので、印刷を実行するたびに、アプリケーション１０５１は、印刷設定データを作成する。
プリンタードライバー１０５２は、プリンター１０４２のオプション機器やユーザーごとの環境設定等を、オペレーティングシステムのレジストリデータベース３０５又はプロパティバッグ３１７に保存する。オペレーティングシステムのプリントマネージャ３１８は、印刷設定データのデフォルト値を、レジストリデータベース３０５に保存する。レジストリデータベース３０５や、プロパティバッグ３１７は、補助記憶装置１０５に保存される。
【００２２】
最後に、描画データの変換処理について説明する。印刷設定データが確定したら、アプリケーション１０５１は、ユーザーインターフェースを介したユーザーの操作に基づいて、プリンター１０４２に印刷処理を指示する。
アプリケーション１０５１は、ＧＤＩアプリ３０１を介して印刷処理の指示をする場合、ＧＤＩｔｏＸＰＳ変換モジュール３０７に対して、描画データを送信する。ＧＤＩｔｏＸＰＳ変換モジュール３０７は、ＸＰＳスプールファイル３０６を作成する。ＸＰＳスプールファイル３０６を作成する際、ＧＤＩｔｏＸＰＳ変換モジュール３０７は、コンフィグモジュール３０８を呼び出し、印刷設定データをＤＥＶＭＯＤＥ構造体３０３からプリントチケット３０４に変換する。ＧＤＩｔｏＸＰＳ変換モジュール３０７は、印刷設定データの変換の際に、ＤＥＶＭＯＤＥ−プリントチケット変換モジュール３０８１を使用する。ＤＥＶＭＯＤＥ−プリントチケット変換モジュール３０８１は、プロパティバッグ３１７の情報を読み書きできるので、デバイスアプリ３１０が保存したデータを参照して、印刷設定データを変換することもできる。
【００２３】
アプリケーション１０５１がＸＰＳアプリ３０２を介して印刷処理の指示をする場合、ＸＰＳスプールファイル３０６の生成方法には、二通りある。一つは、ＸＰＳアプリ３０２自らＸＰＳスプールファイル３０６を生成する方法である。もう一つは、オペレーティングシステムがＸＰＳアプリ３０２からの描画命令に応じてＸＰＳスプールファイル３０６を生成する方法である。
アプリケーション１０５１がＧＤＩアプリ３０１を介して印刷処理の指示をする場合、ＸＰＳアプリ３０２を介して印刷処理の指示をする場合、どちらの場合であっても、ＸＰＳスプールファイル３０６は、印刷処理の途中で生成される。このように、Ｖ４プリンタードライバーを用いた印刷処理は、印刷の際に必ず描画データに基づくＸＰＳスプールファイル３０６が生成される点が特徴である。
【００２４】
プリントフィルタパイプライン３１１は、生成されたＸＰＳスプールファイル３０６を取得し、以下の処理を行う。プリントフィルタパイプライン３１１は、複数のフィルターを通すことで印刷処理を行う仕組みを含む。フィルタコンフィギュレーションファイル３１６は、プリントフィルタパイプライン３１１の含むフィルターの数や処理を行うフィルターの順番を制御する。フィルターパイプラインマネージャ３１２は、プリントフィルタパイプライン３１１内で動作する。フィルターパイプラインマネージャ３１２は、フィルタコンフィギュレーションファイル３１６に従って、通信フィルター３１３、レイアウトフィルター３１４、レンダラーフィルター３１５の順に、それぞれのフィルターに処理を実行させる。
プリントフィルタパイプライン３１１に含まれるフィルターは、プリンタードライバー１０５２の構成によって、数や種類が異なる。例えば、プリントフィルタパイプライン３１１は、通信フィルター３１３、レイアウトフィルター３１４、レンダラーフィルター３１５の３つのフィルターに加えて、更に、印刷ジョブを暗号化するための暗号化フィルター等を含んでいてもよい。
【００２５】
印刷処理は、ＸＰＳスプールファイル３０６がプリントフィルタパイプライン３１１内のフィルターに受け渡されることで行われ、それぞれのフィルターがＸＰＳスプールファイル３０６に加工処理を施し、後続のフィルターに渡していくことで処理が進む。最終的に、ＸＰＳスプールファイル３０６は、プリントフィルタパイプライン３１１の各フィルター処理により印刷ジョブに変換され、プリンター１０４２に送信される。なお、プリンター１０４２は、印刷ジョブを解釈可能であり、送信された印刷ジョブを解釈することで印刷ジョブに基づく印刷処理を実行する。
プリントフィルタパイプライン３１１内のそれぞれのフィルターは、独自のデータをプロパティバッグ３１７に保存することができる。また、プリントフィルタパイプライン３１１内のそれぞれのフィルターは、プロパティバッグ３１７から、オペレーティングシステムの情報や、他のフィルターのデータを取得することもできる。
【００２６】
通信フィルター３１３は、印刷時に必要な情報をプリンター１０４２から取得し、プロパティバッグ３１７に保存する。レイアウトフィルター３１４は、倍率の変更や製本の面付けレイアウトやスタンプ等のレイアウトに関する処理を行う。レイアウトフィルター３１４は、ＸＰＳスプールファイル３０６に含まれるプリントチケット３０４に従った処理を行う。そのため、たとえば面付けの設定がプリントチケット３０４に存在しない場合、レイアウトフィルター３１４は、何も処理を行わず、ＸＰＳスプールファイル３０６を後続のフィルターに渡す。
レンダラーフィルター３１５は、入力されたＸＰＳスプールファイル３０６をレンダリングしてページ記述言語（以下、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）とする）に変換する。また、レンダラーフィルター３１５は、プリントチケット３０４の印刷設定データの標準領域の設定を、プリンタジョブ言語（以下、ＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）とする）に変換する。レンダラーフィルター３１５は、後続のフィルターが存在する場合、ＰＤＬとＰＪＬとをまとめて印刷ジョブとして、後続のフィルターにストリームデータとして渡す。レンダラーフィルター３１５は、後続のフィルターが存在しない場合、変換したＰＤＬとＰＪＬとをまとめて印刷ジョブとして、フィルターパイプラインマネージャ３１２に渡す。
【００２７】
フィルターパイプラインマネージャ３１２は、渡された印刷ジョブを、印刷処理のスケジュール管理を行うプリントマネージャ３１８に送信する。プリントマネージャ３１８は、送信された印刷ジョブを次々とキュー（待ち行列）に登録する。プリントマネージャ３１８は、プリンター１０４２と通信して、プリンター１０４２が印刷できる状態になり次第、キューに登録した順にポートモニター３１９を通して印刷ジョブをプリンター１０４２に送信する。
以上のように、プリンタードライバー１０５２の主な役目は、描画データ及び印刷設定データを印刷ジョブに変換することである。クライアントコンピュータ２０１は、プリンタードライバー１０５２により変換された印刷ジョブをプリンター１０４２に送信することで、プリンター１０４２に対して印刷処理の指示を行う。
なお、本実施形態では、印刷処理を例としているため、プリンタードライバーの処理について説明したが、本実施形態の処理は、ＦＡＸ送信処理の際にも適用することができる。その場合、プリンタードライバー１０５２は、レンダラーフィルター３１５の代わりにＦＡＸデータを作成するＦＡＸフィルターを含み、ＦＡＸ機器に送信するＦＡＸドライバーとなる。
【００２８】
図４は、機種依存ファイル３０９のサンプルを示す図である。図４の例は、機種依存ファイル３０９の１つであるＧＰＤを示す。機種依存ファイル３０９は、印刷設定データに含まれる機能（Ｆｅａｔｕｒｅ）の定義と、禁則情報と、を含む。各機能には、それぞれ名称をつけることができる。図４の例では、用紙サイズ機能、印刷の向き機能、ステイプル機能には、それぞれＰａｐｅｒＳｉｚｅ、Ｏｒｉｅｎｔａｔｉｏｎ、Ｓｔａｐｌｉｎｇという名称がつけられている。機種依存ファイル３０９は、複数の設定値候補の設定値を定義する定義ファイルの一例である。ステイプル機能は、印刷設定の綴じ位置指定機能の一例である。
機種依存ファイル３０９に定義されている各機能には、それぞれ設定値候補（Ｏｐｔｉｏｎ）が定義されており、設定値候補の中からどれか１つが選択されることで、印刷設定データ内のその機能の設定値が決定される。機種依存ファイル３０９の各機能には、初期状態で設定される設定値候補（デフォルト値）（ＤｅｆａｕｌｔＯｐｔｉｏｎ）を定義することも可能である。クライアントコンピュータ２０１が機種依存ファイル３０９を読み込んだ後、何の操作も行っていない状態では、印刷設定データ内の各機能の設定値は、デフォルト値となる。
【００２９】
機種依存ファイル３０９に定義されている各機能には、優先順位（図４の例ではＣｏｎｆｌｉｃｔＰｒｉｏｒｉｔｙ）が設定されている。機能の優先順位は、数値の小さいものほど高く、数値が大きいものほど低い。
機種依存ファイル３０９に定義されている印刷設定データ内の各機能に設定された設定値の組み合わせが無効な組み合わせであった場合、デバイスアプリ３１０は、優先順位が低い機能の設定値を他の設定値候補の設定値に丸める処理を行う。禁則情報は、機能と設定値候補との組（例えばＰａｐｅｒＳｉｚｅとＡ３との組）を複数含むリストとして機種依存ファイル３０９内に定義されている。印刷設定データの機能の設定値の組み合わせが定義されたリストに記載された組み合わせと同一であった場合、その組み合わせは、無効な組み合せである。
【００３０】
以下、デバイスアプリ３１０がユーザーインターフェースを介したユーザーの操作に基づいて印刷設定データを決定する際に、指定されたカテゴリに従って、設定の無効な組み合わせの解消を行う処理を説明する。
図５は、ユーザーインターフェースの表示処理の一例を示すフローチャートである。デバイスアプリ３１０は、デバイスアプリ３１０のプログラムがＲＡＭ１０２２にロードされＣＰＵ１０１により実行されることで処理が実現する。
Ｓ６０１において、デバイスアプリ３１０は、印刷設定データの無効な組み合わせを解決するためのモジュールであるコンフリクトエンジン３１０１を初期化する。
【００３１】
Ｓ６０２において、デバイスアプリ３１０は、コンフリクトエンジン３１０１に、ＧＰＤ等の機種依存ファイル３０９を渡す。コンフリクトエンジン３１０１は、渡された機種依存ファイル３０９から、その機種に含まれる機能と禁則情報とを取得し、補助記憶装置１０５内のデータベースに保存する。本実施形態では、機種依存ファイル３０９は、図４で前述したＧＰＤであるとする。
Ｓ６０３において、デバイスアプリ３１０は、コンフリクトエンジン３１０１を介して、印刷設定データのＳｔａｐｌｉｎｇの機能に定義されている全ての設定値候補のそれぞれにカテゴリを指定する。カテゴリは、それぞれの設定値候補の分類のグループを示すもので、数値で表される。カテゴリが同じ数値である設定値候補同士は、同じグループに属するものとする。
【００３２】
表Ａは、Ｓｔａｐｌｉｎｇの機能に定義されている全ての設定値候補（Ｏｐｔｉｏｎ）のそれぞれにカテゴリが指定された様子を示している。本実施形態では、デバイスアプリ３１０は、設定値なしを０のカテゴリ、一か所綴じのグループを１のカテゴリ、二か所綴じのグループを２のカテゴリ、中綴じを３のカテゴリとして、カテゴリを指定する。
デバイスアプリ３１０のユーザーインターフェース上では、Ｓｔａｐｌｉｎｇの機能の設定値候補は、図６のように表示される。ただし、図６の中の中カッコとその右側の記載（「カテゴリ１」、「カテゴリ２」、「カテゴリ３」の記載）とは、表示されない。それぞれの設定値候補には、カテゴリが図６の中カッコとその右側の記載（「カテゴリ１」等）とが示すように指定されている。
【００３３】
Ｓ６０４において、デバイスアプリ３１０は、Ｓ６０１〜Ｓ６０３の処理が完了するとコンフリクトエンジン３１０１の初期化処理が完了したものとして、デバイスアプリ３１０のユーザーインターフェースの画面をモニタ１０４１等に表示する。デバイスアプリ３１０のユーザーインターフェースの画面は、印刷設定画面の一例である。
図７は、表示されるデバイスアプリ３１０のユーザーインターフェースの画面の一例を示す。図７の画面内部の「ホチキス」（Ｓｔａｐｌｉｎｇ）の項目の設定領域（「なし」が記載されている矩形部分）がポインティングデバイス１０３２等を介してクリックされると、以下のようになる。即ち、デバイスアプリ３１０は、図６のＳｔａｐｌｉｎｇの機能の設定値候補の一覧を、図７の画面内部の「ホチキス」（Ｓｔａｐｌｉｎｇ）の項目の設定領域の部分に表示する。そして、デバイスアプリ３１０は、ユーザーが印刷設定を変更するための入力待ち状態で待機する。
【表１】
0006486153.tif 000002
【００３４】
図８は、従来の禁則による丸め処理の一例を示すフローチャートである。コンフリクトエンジン３１０１は、印刷設定データの各機能に無効な組み合わせの設定値が設定された場合、無効な組み合わせの解消を行う。
Ｓ７０１において、コンフリクトエンジン３１０１は、現在の印刷設定データ内の各機能の設定値の組み合わせが、ＧＰＤの中に記載された禁則情報が示す組み合わせの中に存在するか否かを判定する。
より具体的には、コンフリクトエンジン３１０１は、ＧＰＤから禁則情報を取得し、ＤＥＶＭＯＤＥ構造体３０３又はプリントチケット３０４で表されている現在の印刷設定データから各機能に設定されている現在の設定値の情報を取得する。コンフリクトエンジン３１０１は、印刷設定データの各機能の設定値と、禁則情報内のリストに記載された各機能の設定値と、が一致するか否かを判定する。そして、コンフリクトエンジン３１０１は、禁則情報に記載されているリスト内の各機能について設定値が一致したと判定した場合、現在の印刷設定データの各機能の組み合わせが、禁則情報が示す組み合わせの中に存在すると判定する。
【００３５】
コンフリクトエンジン３１０１は、現在の印刷設定データの全ての機能の設定値の組み合わせが、ＧＰＤの中に記載された禁則情報が示す組み合わせの中に存在すると判定した場合、Ｓ７０２の処理に進む。
また、コンフリクトエンジン３１０１は、Ｓ７０１で、現在の印刷設定データの全ての機能の設定値の組み合わせが、ＧＰＤの中に記載された禁則情報が示す組み合わせの中に存在しないと判定した場合、図８の処理を終了する。つまり、コンフリクトエンジン３１０１は、印刷設定データの機能の無効な組み合わせが解消したものとして図８の処理を終了する。
【００３６】
Ｓ７０２において、コンフリクトエンジン３１０１は、印刷設定データの全ての機能のうち、最も優先順位の低い機能を禁則による丸め処理対象の機能として選択する。選択された機能の設定値は、他の機能との関係で設定が禁止されている設定値の一例である。
Ｓ７０３において、コンフリクトエンジン３１０１は、Ｓ７０２又はＳ７０４で選択した禁則による丸め処理対象の機能の設定値に既に禁則による丸め処理が行われているか否かを判定する。Ｓ７０３の処理は、Ｓ７０２で選択された機能に対して禁則による丸め処理が行われたことによって、再度異なる無効な組み合わせが発生した場合、処理が無限ループに陥ることを防ぐための処理である。
コンフリクトエンジン３１０１は、Ｓ７０２又はＳ７０４で選択した禁則による丸め処理対象の機能の設定値に対して既に禁則による丸め処理が行われていたと判定した場合、Ｓ７０４の処理に進む。コンフリクトエンジン３１０１は、Ｓ７０２又はＳ７０４で選択した禁則による丸め処理対象の機能の設定値に対して未だ禁則による丸め処理が行われていないと判定した場合、Ｓ７０５の処理に進む。
【００３７】
Ｓ７０４において、コンフリクトエンジン３１０１は、印刷設定データの全ての機能のうち、現在の禁則による丸め処理対象の機能よりも１つ優先順位の高い機能を禁則による丸め処理対象の機能として選択する。
Ｓ７０５において、コンフリクトエンジン３１０１は、Ｓ７０４の処理で選択できた機能があったか否かを判定する。コンフリクトエンジン３１０１は、Ｓ７０４の処理で選択できた機能があったと判定した場合、Ｓ７０６の処理に進む。
また、コンフリクトエンジン３１０１は、Ｓ７０５で、Ｓ７０４の処理で選択できた機能がなかったと判定した場合、図８の処理を終了する。つまり、コンフリクトエンジン３１０１は、無効な組み合わせが解決できなかったとして、図８の処理を無限ループに陥ることなく終了する。Ｓ７０５の判定処理でＹＥＳと判定される場合が発生する理由は、機種依存ファイル３０９のＧＰＤに記載された無効な機能の組み合わせが矛盾していることである。コンフリクトエンジン３１０１は、ＧＰＤに記載された無効な機能の組み合わせを矛盾のないものとすることで、Ｓ７０４の処理で選択できた機能がなかったと判定することはなくなる。
【００３８】
Ｓ７０６において、コンフリクトエンジン３１０１は、禁則による丸め処理対象の機能の設定値をデフォルト値に変更することで、値の丸めを行う。デフォルト値に変更する理由は、初期値であるデフォルト値が無効な組み合わせに含まれている可能性がもっとも低い設定値候補だからである。コンフリクトエンジン３１０１は、Ｓ７０６で禁則による丸め処理対象の機能の設定値をデフォルト値に変更したら、再度Ｓ７０１から処理を繰り返す。
【００３９】
図８の禁則による丸め処理を行うことで、無効な組み合わせが解消される事例について、表Ｂと表Ｃとを使って説明する。コンフリクトエンジン３１０１は、ＧＰＤを読み込んで動作することを想定する。
ＧＰＤに定義のある機能には、用紙サイズを示すＰａｐｅｒＳｉｚｅと、用紙の向きを示すＯｒｉｅｎｔａｔｉｏｎと、ステイプルを示すＳｔａｐｌｉｎｇの３つがあるものとする。ＧＰＤに定義のある禁則情報には、「ＰａｐｅｒＳｉｚｅ．Ａ３、Ｏｒｉｅｎｔａｔｉｏｎ．ＰＯＲＴＲＡＩＴ、Ｓｔａｐｌｉｎｇ．ＤＵＡＬ＿ＬＥＦＴ」という組み合わせが記載されているものとする。つまり、ＧＰＤの禁則情報は、Ａ３の縦の用紙に対して左の長辺にダブルステイプルできないことを意味する。
印刷設定データの各機能に設定されている設定値は、表Ｂの示すとおりであるとする。コンフリクトエンジン３１０１は、ＧＰＤの禁則情報と、現在の印刷設定データの各機能の設定値の組み合わせと、を比較する。表Ｂの示す各機能の設定値は、ＰａｐｅｒＳｉｚｅがＡ３、ＯｒｉｅｎｔａｔｉｏｎがＰＯＲＴＲＡＩＴ、ＳｔａｐｌｉｎｇがＤＵＡＬ＿ＬＥＦＴである。そのため、コンフリクトエンジン３１０１は、現在の印刷設定データの各機能の設定値の組み合わせがＧＰＤの禁則情報に示される組み合わせのうちの一つと同一であり無効な組み合わせであると判断する。
【００４０】
次に、コンフリクトエンジン３１０１は、現在の印刷設定データの機能と同一の組み合わせであるＧＰＤの禁則情報の中の組み合わせに含まれる機能のうち、最も優先順位が低い機能を選択する。本実施形態では、コンフリクトエンジン３１０１は、ＰａｐｅｒＳｉｚｅ、Ｏｒｉｅｎｔａｔｉｏｎ、Ｓｔａｐｌｉｎｇのうち、最も優先順位の低いＳｔａｐｌｉｎｇを選択する。
【表２】
0006486153.tif 000003
コンフリクトエンジン３１０１は、印刷設定データのＳｔａｐｌｉｎｇの機能の設定値をデフォルト値であるＮＯＮＥに変更する。表Ｃは、変更した結果を示す。表Ｃに示される機能の設定値の組み合わせは、ＧＰＤの禁則情報に含まれていない。つまり、コンフリクトエンジン３１０１は、無効な組み合わせを解消したこととなる。
【表３】
0006486153.tif 000004
【００４１】
図９は、カテゴリを使用した禁則による丸め処理の一例を示すフローチャートである。
Ｓ８０１において、コンフリクトエンジン３１０１は、モニタ１０４１に表示された印刷設定画面等のユーザーインターフェースを介したユーザーの操作に基づいて、印刷設定データの機能に設定する設定値候補を選択し、選択した設定値候補を入力とする。
Ｓ８０２において、コンフリクトエンジン３１０１は、Ｓ８０１で入力とした設定値候補の設定値及び他の印刷設定の設定値の組み合わせと一致する組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中にあるか否かを判定する。コンフリクトエンジン３１０１は、Ｓ８０１で入力とした設定値候補と他の印刷設定の設定値との組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中にあると判定した場合、Ｓ８０３の処理に進む。コンフリクトエンジン３１０１は、Ｓ８０１で入力とした設定値候補と他の印刷設定の設定値との組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中にないと判定した場合、図９の処理を終了する。
【００４２】
Ｓ８０３において、コンフリクトエンジン３１０１は、Ｓ８０２で一致する組み合わせであるとされたＧＰＤの禁則情報に記載された組み合わせに含まれる機能のうち、入力である設定値候補に係る機能が優先順位の最も低い機能であるか否かを判定する。コンフリクトエンジン３１０１は、入力である設定値候補に係る機能が優先順位の最も低い機能であると判定した場合、Ｓ８０４の処理に進む。コンフリクトエンジン３１０１は、入力である設定値候補に係る機能が優先順位の最も低い機能ではないと判定した場合、Ｓ８０９の処理に進む。
Ｓ８０４において、コンフリクトエンジン３１０１は、ＧＰＤから入力である設定値候補に係る機能の設定値候補のうち、入力である設定値候補と同じカテゴリの番号がついた設定値候補を全て列挙する。図１０（Ａ）は、列挙された設定値候補の一例を示す図である。
Ｓ８０５において、コンフリクトエンジン３１０１は、Ｓ８０４で列挙した設定値候補から一つを選択し、選択した設定値候補を新たに入力とする。より具体的には、コンフリクトエンジン３１０１は、Ｓ８０４で列挙した設定値候補のうち、これまでに入力とされたことのある設定値候補を除き、最も上にある設定値候補を新たな入力として選択する。
【００４３】
Ｓ８０６において、コンフリクトエンジン３１０１は、Ｓ８０５で入力であるとした設定値候補の設定値及び他の機能の設定値の組み合わせと一致する組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中に存在するか否かを判定する。コンフリクトエンジン３１０１は、Ｓ８０５で入力であるとした設定値候補の設定値及び他の機能の設定値の組み合わせと一致する組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中に存在すると判定した場合、Ｓ８０７の処理に進む。コンフリクトエンジン３１０１は、Ｓ８０５で入力であるとした設定値候補の設定値及び他の機能の設定値の組み合わせと一致する組み合わせが、ＧＰＤの禁則情報に示される組み合わせの中に存在しないと判定した場合、図９の処理を終了する。
Ｓ８０７において、コンフリクトエンジン３１０１は、Ｓ８０４又はＳ８０８で列挙された同じカテゴリの設定値候補にまだ入力として選択していない設定値候補が残っているか否かを判定する。コンフリクトエンジン３１０１は、Ｓ８０４又はＳ８０８で列挙された同じカテゴリの設定値候補にまだ入力として選択していない設定値候補が残っていると判定した場合、Ｓ８０８の処理に進む。コンフリクトエンジン３１０１は、Ｓ８０４又はＳ８０８で列挙された同じカテゴリの設定値候補にもう入力として選択していない設定値候補が残っていないと判定した場合、Ｓ８０５の処理に進む。
【００４４】
Ｓ８０８において、コンフリクトエンジン３１０１は、ＧＰＤから入力である設定値候補に係る機能の設定値候補のうち、入力である設定値候補のカテゴリの番号より１つ少ないカテゴリの番号がついた設定値候補を全て列挙する。図１０（Ｂ）は、列挙された設定値候補の一例を示す図である。
本実施形態では、カテゴリを示す番号は、カテゴリ間の優先順位を示すものでもあるとする。そのため、Ｓ６０３の処理は、各カテゴリへの優先順位を指定する処理でもある。優先順位は、カテゴリを示す番号の数値が大きいほど高く、カテゴリを示す番号の数値が小さいほど低いものとする。
例えば、カテゴリ０、１、２、３の設定値候補があり、コンフリクトエンジン３１０１は、カテゴリ２の設定値に対して禁則による丸め処理を行うとする。その場合、コンフリクトエンジン３１０１は、まず、カテゴリ２の設定値候補の中から設定されるものを探索し、探索できなかったら以下の処理を行う。即ち、コンフリクトエンジン３１０１は、次にカテゴリ３やカテゴリ０でなく、数字が一つ少ない（優先順位が一つ下の）カテゴリであるカテゴリ１の設定値候補の中から設定される設定値候補を探索することとなる。そして、コンフリクトエンジン３１０１は、カテゴリ１の設定値候補の中から設定される設定値候補を探索し、探索できなかったら、最後にカテゴリ０の設定値候補の中から設定される設定値候補を探索することとなる。
【００４５】
Ｓ８０９において、コンフリクトエンジン３１０１は、通常の禁則による丸め処理である図８の処理を行う。
図９の処理により、コンフリクトエンジン３１０１は、同じカテゴリに属する設定値候補を優先的に設定し、ユーザーの希望する印刷設定に近い設定になるように、無効な組み合わせを解消することができる。図９の処理の終了後、クライアントコンピュータ２０１は、モニタ１０４１に表示された印刷設定画面等のユーザーインターフェースに、図９の処理で丸め処理が行われた設定値を表示する。例えば、クライアントコンピュータ２０１が図７の印刷設定画面をモニタ１０４１に表示している場合、図９の処理の終了後、図７の印刷設定画面に表示されている「原稿サイズ」、「ホチキス」等の機能の設定値は、禁止されていない組み合わせとなっている。
【００４６】
図９の処理により無効な組み合わせが解消される事例について、表Ａと表Ｂと表Ｄとを使って説明する。
ＧＰＤに定義のある機能には、用紙サイズを示すＰａｐｅｒＳｉｚｅと、用紙の向きを示すＯｒｉｅｎｔａｔｉｏｎと、ステイプルを示すＳｔａｐｌｉｎｇと、の３つがあるものとする。ＧＰＤに定義のある禁則情報には、「ＰａｐｅｒＳｉｚｅ．Ａ３、Ｏｒｉｅｎｔａｔｉｏｎ．ＰＯＲＴＲＡＩＴ、Ｓｔａｐｌｉｎｇ．ＤＵＡＬ＿ＬＥＦＴ」という組み合わせが記載されているものとする。つまり、ＧＰＤの禁則情報は、Ａ３の縦の用紙に対して左の長辺にダブルステイプルできないことを意味する。
印刷設定データの各機能に設定されている設定値は、表Ｂの示すとおりであるとする。コンフリクトエンジン３１０１は、ＧＰＤの禁則情報に記載のある設定値の組み合わせと、現在の印刷設定データの各機能の設定値の組み合わせと、を比較する。表Ｂの示す各機能の設定値は、ＰａｐｅｒＳｉｚｅがＡ３、ＯｒｉｅｎｔａｔｉｏｎがＰＯＲＴＲＡＩＴ、ＳｔａｐｌｉｎｇがＤＵＡＬ＿ＬＥＦＴである。そのため、コンフリクトエンジン３１０１は、現在の印刷設定データの各機能の設定値の組み合わせがＧＰＤの禁則情報に示される組み合わせのうちの一つと同一であり無効な組み合わせであると判断する。
【００４７】
そして、コンフリクトエンジン３１０１は、現在の印刷設定データの機能と同一の組み合わせであるＧＰＤの禁則情報内の組み合わせに含まれる機能のうち、最も優先順位が低い機能を選択する。本実施形態では、コンフリクトエンジン３１０１は、ＰａｐｅｒＳｉｚｅ、Ｏｒｉｅｎｔａｔｉｏｎ、Ｓｔａｐｌｉｎｇのうち、最も優先順位の低いＳｔａｐｌｉｎｇを選択する。
次に、コンフリクトエンジン３１０１は、印刷設定データのＳｔａｐｌｉｎｇに設定されているＤＵＡＬ＿ＬＥＦＴと同じカテゴリに属する設定値候補を取得する。Ｓｔａｐｌｉｎｇの機能に定義されている全ての設定値候補は、表Ａのとおりであるとする。コンフリクトエンジン３１０１は、ＤＵＡＬ＿ＬＥＦＴと同じカテゴリに属する設定値候補として、ＤＵＡＬ＿ＴＯＰ、ＤＵＡＬ＿ＲＩＧＨＴ、ＤＵＡＬ＿ＢＯＴＴＯＭの設定値候補を取得する。そして、コンフリクトエンジン３１０１は、ＤＵＡＬ＿ＴＯＰ、ＤＵＡＬ＿ＲＩＧＨＴ、ＤＵＡＬ＿ＢＯＴＴＯＭの順に列挙する。
【００４８】
コンフリクトエンジン３１０１は、列挙した設定値の最上位にあるＤＵＡＬ＿ＴＯＰを印刷設定データのＳｔａｐｌｉｎｇに設定する設定値候補として選択する。コンフリクトエンジン３１０１は、ＧＰＤの禁則情報に示される組み合わせの中に、ＰａｐｅｒＳｉｚｅがＡ３、ＯｒｉｅｎｔａｔｉｏｎがＰＯＲＴＲＡＩＴ、ＳｔａｐｌｉｎｇがＤＵＡＬ＿ＴＯＰである組み合わせが存在しないと判断する。即ち、コンフリクトエンジン３１０１は、ＰａｐｅｒＳｉｚｅがＡ３、ＯｒｉｅｎｔａｔｉｏｎがＰＯＲＴＲＡＩＴ、ＳｔａｐｌｉｎｇがＤＵＡＬ＿ＴＯＰである組み合わせが無効な組み合わせではないと判断する。
コンフリクトエンジン３１０１は、印刷設定データのＳｔａｐｌｉｎｇにＤＵＡＬ＿ＴＯＰを設定し、処理を終了する。変更された印刷設定データの各機能に設定されている設定値は、表Ｄの示すとおりである。
【表４】
0006486153.tif 000005
【００４９】
以上、本実施形態の処理により、クライアントコンピュータ２０１等の情報処理装置は、印刷設定の無効な組み合わせが指定された際、ユーザーに手間をかけさせずにユーザーの希望に近い印刷設定に変更することができる。
【００５０】
＜実施形態２＞
実施形態１では、デバイスアプリ３１０は、コンフリクトエンジン３１０１に対して、カテゴリの番号を指定することで、設定値候補のカテゴリを決定していた。そのため、実施形態１の場合、デバイスアプリ３１０は、印刷設定データの各機能の設定値候補それぞれのカテゴリの情報を事前に取得しておく必要がある。
しかし、本実施形態では、機種依存ファイル３０９であるＧＰＤは、図１１のように、設定値候補の定義に従属する設定項目としてカテゴリ設定項目を含む。即ち、機種依存ファイル３０９は、設定値候補のカテゴリ情報も含むことになる。本実施形態では、クライアントコンピュータ２０１等の情報処理装置は、機種依存ファイル３０９から設定値候補の情報と設定値候補それぞれに対応するカテゴリ情報とを取得し、各設定値候補を複数のカテゴリに分類する。
本実施形態の処理により、クライアントコンピュータ２０１等の情報処理装置は、カテゴリ情報が機種依存ファイル３０９内に存在するため、印刷設定データの各機能の設定値候補を、プリンターの機種ごとに異なるカテゴリに設定することができる。
【００５１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５２】
３１０  ドキュメントファイル変換サーバー、３１１  ＣＰＵ、３２０  携帯端末
【図１】
0006486153.tif 000006
【図２】
0006486153.tif 000007
【図３】
0006486153.tif 000008
【図４】
0006486153.tif 000009
【図５】
0006486153.tif 000010
【図６】
0006486153.tif 000011
【図７】
0006486153.tif 000012
【図８】
0006486153.tif 000013
【図９】
0006486153.tif 000014
【図１０】
0006486153.tif 000015
【図１１】
0006486153.tif 000016