(57)【特許請求の範囲】
【請求項１】
画像形成装置においてコンフリクトとなる第１の印刷設定の組み合わせを示す情報に基づいてプリンタドライバで印刷設定の調整がされた印刷ジョブを前記プリンタドライバから受信する受信手段と、
前記受信手段により受信された印刷ジョブに含まれる複数の印刷設定が、前記画像形成装置においてコンフリクトとなる第２の印刷設定の組み合わせを示す情報であって、前記第１の印刷設定の組み合わせとは異なる組み合わせを示す情報に該当するか判定する判定手段と、
前記判定手段による判定結果に基づいた制御を行う制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第２の印刷設定の組み合わせを示す情報は、前記画像形成装置においてコンフリクトとなる印刷設定の組み合わせであって前記プリンタドライバでは管理できない組み合わせを示す情報であることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プリンタドライバは、ユーザ入力された複数の印刷設定を、前記第１の印刷設定の組み合わせを示す情報に基づいて修正して前記印刷ジョブに埋め込み、
前記第１の印刷設定の組み合わせを示す情報は、前記画像形成装置においてコンフリクトとなる印刷設定の組み合わせのうちの前記プリンタドライバで管理可能である組み合わせを示す情報であることを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記制御手段は、前記判定手段により、前記受信手段により受信された印刷ジョブに含まれる印刷設定が前記第２の印刷設定の組み合わせを示す情報に該当すると判定した場合、前記印刷ジョブに対してエラー処理を実行することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記エラー処理は、前記印刷ジョブを前記画像形成装置に送信しない処理であることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記エラー処理は、前記第２の印刷設定の印刷設定の組み合わせを示す情報に基づいて、前記印刷ジョブに対してそのページ毎に前記画像形成装置に送信するか否かを制御する処理であることを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記判定手段は、前記受信手段により受信された印刷ジョブのページのうち、その印刷設定が前記第２の印刷設定の組み合わせを示す情報に該当するページが存在する場合、前記受信手段により受信された印刷ジョブに含まれる印刷設定が前記第２の印刷設定の組み合わせを示す情報に該当すると判定し、
前記エラー処理は、前記印刷ジョブの全てのページを送信しない処理であることを特徴とする請求項４に記載の情報処理装置。
【請求項８】
前記エラー処理は、前記印刷ジョブにおけるエラーの発生を前記画像形成装置へ通知する処理であることを特徴とする請求項４記載の情報処理装置。
【請求項９】
前記第２の印刷設定の組み合わせを示す情報には、ユーザによって定義された用紙サイズが含まれることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記プリンタドライバは、Ｗｉｎｄｏｗｓ（登録商標）のオペレーティングシステムで動作するｖｅｒｓｉｏｎ４のプリンタドライバであることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
画像形成装置においてコンフリクトとなる第１の印刷設定の組み合わせを示す情報に基づいてプリンタドライバで印刷設定の調整がされた印刷ジョブを前記プリンタドライバから受信する受信ステップと、
前記受信ステップにおいて受信された印刷ジョブに含まれる印刷設定が、前記画像形成装置においてコンフリクトとなる第２の印刷設定の組み合わせを示す情報であって、前記第１の印刷設定の組み合わせとは異なる組み合わせを示す情報に該当するか判定する判定ステップと、
前記判定ステップにおける判定結果に基づいた制御を行う制御ステップと、を有することを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項１１記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷設定項目の内容によるコンフリクトを判断して印刷ジョブを画像形成装置に印刷させる技術に関する。
【背景技術】
【０００２】
情報処理装置から画像形成装置等の周辺機器を利用するには、一般的にはその周辺機器に対応した特定のデバイスドライバ（画像形成装置であればプリンタドライバ）を、情報処理装置上で動作するオペレーティングシステム（ＯＳ）に組み込む必要がある。画像形成装置の利用においては、プリンタドライバをアプリケーションから起動させ、印刷に必要な設定を行い、画像データ及び印刷設定(以下、これらをまとめて印刷ジョブと呼ぶ)を生成し、生成した印刷ジョブを画像形成装置に送信する。印刷ジョブを受信した画像形成装置は、印刷設定に応じた画像生成処理（以下、レンダリングと呼ぶ）を行い、用紙への印刷処理を行う。
【０００３】
従来のプリンタドライバは、ユーザやアプリケーションからの入力を管理するユーザインターフェースモジュール、印刷ジョブを生成する印刷ジョブ生成モジュール、制御モジュールを、主たる要素として持つ。従来のプリンタドライバはまた、画像形成装置間の通信処理を制御する通信制御モジュール（以下、ランゲージモニタと呼ぶ）も、主たる要素として持つ。これらのモジュール群から構成されるプリンタドライバは、例えば、Ｗｉｎｄｏｗｓ（登録商標）のＶｅｒｓｉｏｎ３ドライバ（以下、Ｖ３ドライバと記す）と呼ばれている。ランゲージモニタは、ＯＳを介し印刷ジョブ生成モジュールにより生成された印刷ジョブを受信し、画像形成装置へ送信する。ランゲージモニタはまた、ユーザやアプリケーションから印刷ジョブのキャンセル等の要求を受信すると、要求に応じた処理を実施し、ジョブを制御する。
【０００４】
また、ランゲージモニタを拡張し、プリンタドライバからの印刷ジョブを送信するだけでなく、画像形成装置から装置情報を受信し、使用する印刷通信用のプロトコルをサポートするランゲージモニタを搭載したＶ３ドライバも存在する。このプロトコルをサポートしたランゲージモニタにより、メモリ搭載量の少ない画像形成装置においても、画像形成装置内のメモリ状態を情報として絶えずプリンタドライバが確認することにより、安定した印刷を実行することが可能となる。そしてこのランゲージモニタにより、情報処理装置側で画像形成装置の状態を詳細に収集し、本来、画像形成装置内で行う印刷ジョブの管理、制御をランゲージモニタが行うことができる。
【０００５】
また、収集した画像形成装置の状態やユーザへのメッセージの表示を行うほか、画像形成装置に対する設定の入力等を情報処理装置上のアプリケーションで行うことが可能なシステムが広く製品化されている。このようなシステムでは、画像形成装置上のパネル表示装置の簡素化が可能となる。さらには、画像形成装置上でレンダリングを行わず、情報処理装置上のＶ３ドライバでレンダリングを行った画像データを画像形成装置へ転送することによって、印刷を行うシステムも製品化されている。
【０００６】
一方、近年、Ｍｉｃｒｏｓｏｆｔ社により導入されたＷｉｎｄｏｗｓ８（登録商標）では、上記構成と異なる構成の新しいプリンタドライバが採用された。この新しいプリンタドライバを構成するモジュール群には、ランゲージモニタが含まれていない。また使用可能な通信ポートは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート及びＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅ）ポートに限られる。この構成によるプリンタドライバは、Ｖｅｒｓｉｏｎ４ドライバ（以下、Ｖ４ドライバと記す）と呼ばれる。Ｖ４ドライバにはランゲージモニタがないため、印刷ジョブ生成モジュールにより生成された印刷ジョブの画像形成装置への送信処理の機能は、Ｗｉｎｄｏｗｓに標準搭載されているスプーラにより提供される。
【０００７】
Ｖ３ドライバは、印刷ジョブの印刷設定項目が同時に設定できない組み合わせとなること（コンフリクト）が生じないかを確認し、同時に設定できない組み合わせがある場合にそれを解消するためのコンフリクト対応の機能を有する。そのため、コンフリクト対応は、情報処理装置内のＶ３ドライバで行われていた。例えば、出力設定が両面で、かつ、両面印刷できない用紙サイズが設定されていた場合、矛盾した印刷設定となりコンフリクトとなるので、出力方法を片面に変更するような対応が行われていた。
【０００８】
ところで、従来技術として、画像形成装置に適した印刷設定で印刷を行うために、印刷ジョブをサーバに一時蓄積し、印刷要求と印刷設定変更指示を受けて印刷設定を変更して印刷させる手法が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１２−９４１１３号号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、Ｖ４ドライバでは、ＯＳの都合により、コンフリクトが生じないかを確認可能な印刷設定項目が制限されており、Ｖ３ドライバのように多くの印刷設定項目の組み合わせを管理できない。すなわち、Ｖ４ドライバでは従来のＶ３ドライバで行っていたコンフリクト対応の一部しか対応することができず、Ｖ４ドライバでは管理できない印刷設定項目の組み合わせについては、コンフリクトの判断がなされない。そのため、画像形成装置で対応できないような、矛盾した印刷設定を持つ印刷ジョブが、画像形成装置に投入されるおそれがある、という問題があった。
【００１１】
本発明の目的は、画像形成装置で対応できない印刷設定の組み合わせを有する印刷ジョブが画像形成装置に送信されないように制御することができる情報処理装置及びその制御方法、プログラムを提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は、画像形成装置においてコンフリクトとなる第１の印刷設定の組み合わせを示す情報に基づいてプリンタドライバで印刷設定の調整がされた印刷ジョブを前記プリンタドライバから受信する受信手段と、前記受信手段により受信された印刷ジョブに含まれる複数の印刷設定が、前記画像形成装置においてコンフリクトとなる第２の印刷設定の組み合わせを示す情報であって、前記第１の印刷設定の組み合わせとは異なる組み合わせを示す情報に該当するか判定する判定手段と、前記判定手段による判定結果に基づいた制御を行う制御手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像形成装置で対応できない印刷設定の組み合わせを有する印刷ジョブが画像形成装置に送信されないように制御することができる。
【図面の簡単な説明】
【００１４】
【図１】印刷システムの全体構成を示す図である。
【図２】Ｖ４ドライバのソフトウェア構成を示す図である。
【図３】仮想デバイスサービスのソフトウェア構成を示す図である。
【図４】画像形成装置のハード構成を示すブロック図である。
【図５】ＵＩ制御部により表示されるＵＩの一例を示す図である。
【図６】印刷設定管理部によるコンフリクト対応処理のフローチャートである。
【図７】印刷設定ダイアログに表示される警告メッセージの例を示す図である。
【図８】仮想デバイスランゲージモニタによるコンフリクト対応処理のフローチャートである。
【図９】ステータスウィンドウに表示されるエラー画面の例を示す図である。
【図１０】Ｖ４ドライバに組み込み可能なコンフリクト情報の一例を示す図である。
【図１１】仮想デバイスサービスに組み込まれるコンフリクト情報の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。
【００１６】
図１は、本発明の一実施の形態に係る情報処理装置を含む印刷システムの全体構成を示す図である。図中の太い実線の矢印は、印刷ジョブのやり取りがあることを示し、細い点線の矢印は、印刷ジョブ以外のデータのやり取りがあることを示している。情報処理装置１０１には、印刷ジョブに基づいて画像を形成する画像形成装置１０７、１０８が接続される。本実施の形態では、情報処理装置１０１に対し、画像形成装置１０７がＵＳＢで接続され、画像形成装置１０８がＬＡＮで接続される例を示している。しかし、接続される画像形成装置の数は問わない。
【００１７】
情報処理装置１０１は、パーソナルコンピュータ等として構成される。情報処理装置１０１において、アプリケーション１０２は、ユーザが目的に応じて利用するソフトウェアである。例えば、ユーザはアプリケーション１０２を用いて印刷の開始を指示することができる。Ｖ４ドライバ１０３は、Ｗｉｎｄｏｗｓ（登録商標）のＯＳ上で動作する、ｖｅｒｓｉｏｎ４のプリンタドライバである。Ｖ４ドライバ１０３は、アプリケーション１０２から印刷の指示コマンドを受け取ると、それに従い印刷ジョブを作成するソフトウェアである。
【００１８】
標準スプーラ１０４は、情報処理装置１０１内にインストールされているＯＳ（本実施の形態ではＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓとする）内の、Ｗｉｎｄｏｗｓ標準の印刷用スプーラである。標準スプーラ１０４は、受信した印刷ジョブを一時的に保存しておき、それらを受信した順に１つずつ出力する。標準スプーラ１０４は、仮想デバイスサービス１０６に対してネットワーク経由で印刷ジョブを送信する。本実施の形態では、標準スプーラ１０４は、自分自身に対してデータを送信するループバックを用いた通信で印刷ジョブを送信する。この印刷システムでは、標準スプーラ１０４はいかなるジョブも仮想デバイスサービス１０６へ送信する。
【００１９】
ステータスウィンドウ１０５は、画像形成装置１０７、１０８のステータスの表示や任意の設定等を行うためのソフトウェアである。ステータスウィンドウ１０５は、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）クライアント機能を持っており、それを用いて仮想デバイスサービス１０６と通信する。ステータスウィンドウ１０５は、仮想デバイスサービス１０６に対して状態情報の取得を命令し、それの返信として受け取った状態情報に基づいてステータスを表示する。ステータスウィンドウ１０５は、機種情報を持つ。本実施の形態では、機種情報は製品名とする。
【００２０】
仮想デバイスサービス１０６は、Ｖ４ドライバ１０３、標準スプーラ１０４、ステータスウィンドウ１０５に対して物理的な画像形成装置のように振る舞うエミュレータソフトウェアである。Ｖ４ドライバ１０３、標準スプーラ１０４及びステータスウィンドウ１０５と仮想デバイスサービス１０６との間の通信には、Ｗｉｎｄｏｗｓ上のネットワーク機能が利用される。画像形成装置１０７、１０８は、プリンタ等の印刷機能を有する装置であり、受信した印刷ジョブに基づき画像を形成する。画像形成装置１０７、１０８は、各々が機種情報を持ち、この機種情報は製品名とする。この他、仮想デバイスサービス１０６には、仮想デバイス３００、３０１（図３参照）の設定や管理を行う設定アプリケーションという不図示のソフトウェアを有するが、その詳細の説明は省略する。
【００２１】
図２は、Ｖ４ドライバ１０３のソフトウェア構成を示す図である。
【００２２】
ここで、従来のＶ３ドライバであれば、Ｗｉｎ３２と呼ばれるアプリケーションインターフェース（ＡＰＩ）を介してアプリケーション１０２からＯＳ（ドライバを含む）が呼び出される。そして、Ｄｅｖｍｏｄｅとよばれるバイナリデータが印刷設定用のデータとして使用される。そして、ＡＰＩとしてＷｉｎ３２を利用する場合、アプリケーション１０２はＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を呼び出して、描画を行う。
【００２３】
一方、Ｖ４ドライバ１０３でＶ３ドライバと同等のＵＩ（ユーザインターフェース）を使用するためには、ＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎと呼ばれるソフトウェアをインストールする必要がある。図２に示すように、Ｖ４ドライバ１０３はＵＩ制御部２０１を有する。ＵＩ制御部２０１は、ユーザがアプリケーション１０２で印刷を行う場合、ＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎがインストールされていればＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎのＵＩを表示し、そうでなければＯＳ標準ＵＩを表示する。本実施の形態では、ＵＩ制御部２０１は、図５で示すような「用紙サイズ」「用紙タイプ」「出力方法」の３つの印刷設定項目を持つＵＩを表示する。図５についての詳細は後述する。
【００２４】
印刷設定管理部２０２は、ＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎやＯＳ標準ＵＩで表示する印刷設定項目、各項目のデフォルト値、及び入力された値を管理する。印刷設定管理部２０２は、同時に設定できない（コンフリクトとなる）印刷設定項目の値（内容）の組み合わせを管理し、また、コンフリクト発生時の対処方法も併せて管理する（図１０で後述）。表示する印刷設定項目やコンフリクトとなる組み合わせは、画像形成装置１０７、１０８でサポートされている機能や能力に応じて画像形成装置ごと（機種ごと）に変更可能である。
【００２５】
Ｖ４ドライバでは、印刷設定は、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をベースとした新印刷設定フォーマットで管理される。ＸＭＬは、Ｖ３ドライバにおけるＤｅｖｍｏｄｅ構造体をベースにする印刷設定に代わって登場したものである。デバイス情報取得部２０３は、印刷ジョブ生成部２０４で印刷ジョブを生成するために必要な画像形成装置の情報（仕様情報）を取得する。デバイス情報取得部２０３は、仮想デバイスサービス１０６を経由して画像形成装置１０７、１０８の情報を取得する。デバイス情報取得部２０３はＲＰＣクライアント機能を持ち、仮想デバイスサービス１０６が持つＲＰＣサーバ３１１、３２１（図３参照）と通信することで画像形成装置１０７、１０８の各情報を取得する。
【００２６】
印刷ジョブ生成部２０４は、デバイス情報取得部２０３から取得した画像形成装置の情報、アプリケーション１０２から送られた印刷設定、及び印刷設定管理部２０２が管理する印刷設定項目の値に応じてレンダリング等を行い、印刷ジョブを生成する。印刷ジョブ生成部２０４は、印刷ジョブを生成する際に用いた印刷設定項目の値を含めた印刷ジョブに関する各種情報を、印刷ジョブの中に埋め込む。印刷ジョブ生成部２０４が受け取るデータはＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）である。ＡＰＩとしてＷｉｎ３２を利用するアプリケーション１０２がＧＤＩを呼び出すと、ＯＳ内部でＸＰＳに自動変換されて、ＸＰＳドライバ（本実施の形態ではＶ４ドライバ１０３）が呼び出される。ＷＰＦ（Ｗｉｎｄｏｗｓ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｆｏｕｎｄａｔｉｏｎ）アプリケーションから印刷する場合、そのままＸＰＳドライバ（Ｖ４ドライバ）が呼び出される。ＰＤＬ変換部２０５は、印刷ジョブを、送信する画像形成装置１０７、１０８に対応するＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換する。デバイスＩＦ部２０６は標準スプーラ１０４に印刷ジョブを送信する。
【００２７】
図１０、図１１で、コンフリクトとなる印刷設定項目の内容の組み合わせを管理するためのコンフリクト情報を説明する。図１０は、Ｖ４ドライバ１０３に組み込み可能なコンフリクト情報の一例を示す図である。印刷設定管理部２０２では、用紙サイズ、用紙タイプ、出力方法の３つの印刷設定項目の内容の、コンフリクトとなる組み合わせと、それに対応する対処方法が管理される。Ｖ４ドライバ１０３においては、ＯＳ都合により、印刷設定管理部２０２は、ユーザ定義用紙のようなユーザが任意のサイズを定義可能な用紙について、ユーザが入力した値に基づいたコンフリクトを管理することができないという制限を有する。例えば、図１０に示すコンフリクト情報では、用紙サイズがユーザ定義用紙である場合のコンフリクトが設定されていない。そのため、ユーザ定義用紙の実サイズによらず、用紙サイズにユーザ定義用紙が入力されても、コンフリクトが生じるという判定はなされない。
【００２８】
図１１は、Ｖ４ドライバに組み込めないため仮想デバイスサービス１０６に組み込まれるコンフリクト情報の一例を示す図である。図１１に示すコンフリクト情報は仮想デバイスサービス１０６の仮想デバイスランゲージモニタ３１３、３２３（図３）によって管理される。このコンフリクト情報により、用紙サイズ（実サイズ含む）、用紙タイプ、出力方法の３つの印刷設定項目の内容の、コンフリクトとなる組み合わせと、それに対応する対処方法が管理される。ここでのコンフリクトへの対処方法は、全てエラー状態への移行とする。図１１のコンフリクト情報は、Ｖ４ドライバ１０３では管理できない組み合わせを含むものである。図１１のコンフリクト情報における用紙サイズは実サイズを含むものであるため、ユーザが任意のサイズを定義可能なユーザ定義用紙に対しても、コンフリクトとなる組み合わせを管理できる。
【００２９】
図３は、仮想デバイスサービス１０６のソフトウェア構成を示す図である。仮想デバイスサービス１０６は１つ以上の仮想デバイスを持ち、仮想デバイスはそれぞれ１つの画像形成装置と接続される。本実施の形態では、仮想デバイスサービス１０６は、画像形成装置１０７、１０８をそれぞれ接続する仮想デバイス３００、３０１を有するとする。
【００３０】
仮想デバイスサービス１０６は、外部から仮想デバイスの登録／削除を受け付ける機能を持つ。仮想デバイスサービス１０６は、不図示のインストーラによる仮想デバイスの登録に際して情報処理装置１０１が持つ受信ポート番号の指定を必要とする。仮想デバイスサービス１０６は、指定された受信ポート番号と登録する仮想デバイスとを紐づけて管理する。仮想デバイスサービス１０６は、登録された仮想デバイスを実行する機能を持つ。仮想デバイスの実行は、仮想デバイスサービス１０６が実行された時、または仮想デバイスが新たに登録されたときに行われる。
【００３１】
仮想デバイスについて、代表して仮想デバイス３００を説明する。仮想デバイス３００は、受信部３１０、ＲＰＣサーバ３１１、仮想デバイススプーラ３１２、仮想デバイスランゲージモニタ３１３（以下、ランゲージモニタ３１３と略記することもある）、ポートモニタ３１４を有する。仮想デバイス３００は、機種情報として製品名を保持し、製品名は、仮想デバイス３００内の仮想デバイススプーラ３１２が持つ。受信部３１０は、仮想デバイス３００と紐づけられたポート番号を介して標準スプーラ１０４から受け付けた印刷ジョブのデータを、仮想デバイススプーラ３１２に引き渡す。ＲＰＣサーバ３１１は、ＲＰＣ通信によりステータスウィンドウ１０５（図１）やデバイス情報取得部２０３（図２）などのＲＰＣクライアント機能をもつ外部モジュールと仮想デバイススプーラ３１２との通信を仲介する。
【００３２】
仮想デバイススプーラ３１２は、受信部３１０から引き渡された印刷ジョブのデータを格納するキューを持ち、格納した印刷ジョブを管理すると共にランゲージモニタ３１３へ送信する。仮想デバイススプーラ３１２はまた、管理している印刷ジョブに関するジョブ情報の取得や印刷ジョブ削除等のための各種アクセス手段を提供する。このアクセス手段はランゲージモニタ３１３や設定アプリケーションによって利用される。仮想デバイススプーラ３１２は、ＲＰＣサーバ３１１を介して各種命令受信及び命令への返信を行う。仮想デバイススプーラ３１２は、ランゲージモニタ３１３への各種命令の送信及び命令への返信受付を行う。また、本実施の形態では、仮想デバイススプーラ３１２は、自身が所属している仮想デバイス３００の機種情報として製品名を持つものとする。
【００３３】
ランゲージモニタ３１３は、印刷ジョブの制御及び各種情報の管理を行うモジュールであり、仮想デバイススプーラ３１２から受信した印刷ジョブを、ポートモニタ３１４を介して画像形成装置１０７へ送信する。ランゲージモニタ３１３は、ポートモニタ３１４を介して、画像形成装置１０７へ各種命令を送信すると共に、画像形成装置１０７から各種情報を取得する。本実施の形態では、ランゲージモニタ３１３は、画像形成装置１０７の印刷状況、各種状態及び設定情報、エラー情報などを取得し、また、画像形成装置１０７と接続された際に製品名を取得する。ランゲージモニタ３１３は、自身が持つ情報と画像形成装置１０７から取得した情報とに基づいて状態を判断する。エラー状態であると判断した場合、印刷処理を停止するなどのエラー処理を行う。ランゲージモニタ３１３は、仮想デバイススプーラ３１２からの各種命令を受信すると共に、命令への返信を行う。例えば、ランゲージモニタ３１３は、仮想デバイススプーラ３１２を介してステータスウィンドウ１０５から状態情報取得の命令を受け付けた場合は、状態判断に基づいた状態情報と機種情報とを返信する。また、ランゲージモニタ３１３は、印刷ジョブのデータを解析することにより、各種印刷設定項目の値を含めた印刷ジョブに関する各種情報を取得する。
【００３４】
ランゲージモニタ３１３は、図１１に示すコンフリクト情報に基づいて、印刷ジョブに含まれる印刷設定を解析し、コンフリクトが生じるか否かを判定する。そしてランゲージモニタ３１３は、解析の結果、印刷ジョブを構成する各種印刷設定項目でコンフリクトが発生すると判定した場合、コンフリクトに応じた対処（具体的にはエラー処理）を行う。コンフリクトがエラー処理のみであるのは、ホストベース印刷システムにおけるランゲージモニタ３１３が、印刷設定項目の変更に応じて画像を作り直すことができないためである。
【００３５】
ランゲージモニタ３１３はＯＳ都合によるコンフリクトの制限を持たない。そのため、上述したように、ユーザ定義用紙のようなユーザが任意のサイズを定義可能な用紙についてもコンフリクトを管理できる。例えば、一定以上のサイズのユーザ定義用紙は両面設定とはコンフリクトを発生させるが、一定未満のサイズのユーザ定義用紙は両面印刷が可能、といった管理が行えるものとする。図１１で例示すれば、例えば、ユーザが入力した値（高さ２００ｍｍ、幅３６０ｍｍ）を超える用紙サイズの設定については、両面印刷が入力されるとコンフリクトとなる。
【００３６】
ポートモニタ３１４は、画像形成装置１０７に接続された情報処理装置１０１のポートと、ランゲージモニタ３１３との間の通信を仲介する。画像形成装置１０７によっては、機種ごとに取り扱える通信が異なる場合があり、ポートモニタ３１４により、接続される画像形成装置１０７に特化した通信処理を行える。
【００３７】
一方の仮想デバイス３０１は、情報処理装置１０１が持つポートの内、仮想デバイス３００とは別のポートを介して画像形成装置１０８と接続されている。仮想デバイス３０１のソフトウェア構成は仮想デバイス３００のものと同様であり、仮想デバイス３０１も仮想デバイス３００と同様の機能を備える。仮想デバイス３０１の、受信部３２０、ＲＰＣサーバ３２１、仮想デバイススプーラ３２２、仮想デバイスランゲージモニタ３２３、ポートモニタ３２４の構成は、仮想デバイス３００の符号３１０〜３１４で示すものと同様である。
【００３８】
図４は、画像形成装置のハード構成を示すブロック図である。図４では、ＵＳＢ接続される画像形成装置１０７と有線ＬＡＮによりネットワーク接続される画像形成装置１０８のうち、代表して画像形成装置１０８の構成を説明する。
【００３９】
ＣＰＵ４３２は、画像形成装置１０８の全体の動作を制御する。ＲＡＭ４３９は、ＣＰＵ４３２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。ＲＡＭ４３９は、ＮＶＲＡＭ（不揮発性ＲＡＭ）領域も備えており、図示しない増設用ソケットに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ４３３は、各種フォントを記憶するフォントＲＯＭ４３３ａ、ＣＰＵ４３２により実行される制御プログラム等を記憶するプログラムＲＯＭ４３３ｂ、及び各種データを記憶するデータＲＯＭ４３３ｃを備えている。Ｉ／Ｆ制御部４３８は、情報処理装置１０１との間でデータの送受信を行い、本実施の形態では有線ＬＡＮによる送受信を行う。
【００４０】
印刷部Ｉ／Ｆ４３６は、プリンタエンジンである印刷部４３７とのインターフェースを制御する。外部メモリ４３４は、オプションとして接続されるハードディスク（ＨＤ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）等を含み、外部メモリＩ／Ｆ４４０によりアクセスが制御される。外部メモリ４３４はハードディスク等であり、フォントデータ、フォームデータ等を記憶すると共に、画像形成装置１０８で一時的に作成、外部とのやり取りを行うためのファイル４４３を記憶することも可能である。なお、外部メモリ４３４が接続されていない場合には、ＲＯＭ４３３のデータＲＯＭ４３３ｃに、情報処理装置１０１で利用される情報等を記憶することもできる。外部メモリ４３４は１個に限らず複数備えてもよい。例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００４１】
操作部４４２には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。なお、操作部４４２に、不図示のＮＶＲＡＭを備え、操作パネルからのプリンタモード設定情報を記憶できるようにしてもよい。ＣＰＵ４３２は、ＲＯＭ４３３のプログラムＲＯＭ４３３ｂに記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ４３６を介して有線ＬＡＮ経由で印刷部４３７に出力情報としての画像信号を出力する。また、ＣＰＵ４３２は、Ｉ／Ｆ制御部４３８を介して情報処理装置１０１との通信処理が可能となっている。Ｉ／Ｆ制御部４３８と情報処理装置１０１との間には、情報処理装置１０１から送信された印刷ジョブを受信すると共に、画像形成装置１０７内の情報等を情報処理装置１０１に通知可能な双方向通信経路が構成されている。
【００４２】
なお、画像形成装置１０７は、ＵＳＢＩ／Ｆ経由で情報処理装置１０１と接続される点以外は、画像形成装置１０８と同様の構成にて実現可能である。本発明は、Ｉ／Ｆの種類を問わず実現用可能である。
【００４３】
図５は、ＵＩ制御部２０１により表示されるＵＩの一例を示す図である。ＵＩ制御部２０１は印刷設定ダイアログ５００を表示する。印刷設定ダイアログ５００は、用紙サイズ設定５０１、用紙タイプ設定５０２、出力方法設定５０３、ＯＫボタン５０４、キャンセルボタン５０５を有する。用紙サイズ設定５０１は、画像形成装置１０７、１０８のサポートしている機能や能力に応じた用紙サイズを選択可能なドロップダウンリストである。用紙タイプ設定５０２は、画像形成装置１０７、１０８のサポートしている機能や能力に応じた用紙タイプを選択可能なドロップダウンリストである。出力方法設定５０３は、複数ある出力設定の中から１つを選択可能なラジオボタンであり、本実施の形態では片面／両面を択一的に選択可能である。ＯＫボタン５０４が押下されることで、印刷設定ダイアログ５００はクローズされる。その際、各設定項目に入力されている内容が設定内容として確定され、印刷設定管理部２０２に管理される。キャンセルボタン５０５が押下されることで、印刷設定ダイアログ５００はクローズされ、その際、各設定項目に入力した内容は破棄される。
【００４４】
図６は、印刷設定管理部２０２によるコンフリクト対応処理のフローチャートである。この処理は、ユーザがアプリケーション１０２から印刷を指示すると開始される。ステップＳ６０１では、ＵＩ制御部２０１が印刷設定ダイアログ５００（図５）を表示し、印刷設定管理部２０２は、印刷設定ダイアログ５００の各設定項目に、印刷設定管理部２０２が保持しているデフォルト値を初期表示として表示させる。ステップＳ６０２では、印刷設定管理部２０２は、ユーザによりＯＫボタン５０４が押下されたか否かを判別し、ＯＫボタン５０４が押下された場合は処理をステップＳ６０７に進める一方、押下されない場合は、処理をステップＳ６０３に進める。
【００４５】
ステップＳ６０３では、印刷設定管理部２０２は、ユーザによりキャンセルボタン５０５が押下されたか否かを判別する。その判別の結果、印刷設定管理部２０２は、キャンセルボタン５０５が押下された場合は処理をステップＳ６０８に進める一方、押下されない場合は、処理をステップＳ６０４に進める。ステップＳ６０４では、印刷設定管理部２０２は、ユーザがいずれかの印刷設定項目（設定５０１、５０２、５０３）の値を変更したか否かを判別する。その判別の結果、印刷設定管理部２０２は、いずれの印刷設定項目も変更されない場合は処理をステップＳ６０２に戻す一方、いずれかの印刷設定項目が変更された場合は処理をステップＳ６０５に進める。
【００４６】
ステップＳ６０５では、印刷設定管理部２０２は、ユーザにより変更された後の印刷設定項目の値をコンフリクト情報（図１０）と照らし合わせて、コンフリクトが発生したか否かを判別する。その判別の結果、印刷設定管理部２０２は、コンフリクトが発生しない場合は、処理をステップＳ６０２に戻す一方、コンフリクトが発生した場合は処理をステップＳ６０６に進める。具体例を示すと、印刷設定管理部２０２が管理するコンフリクト情報が図１０で示すものであるとする。図５の示す表示状態の印刷設定ダイアログ５００において、用紙サイズ設定５０１が「Ａ３」の状態で、出力方法設定５０３が「片面」から「両面」に変更されたとする。すると、印刷設定管理部２０２は、図１０の番号１で規定されるコンフリクトが発生したと判断する。
【００４７】
ステップＳ６０６では、印刷設定管理部２０２は、発生したコンフリクトに対応する対処方法を実施すると共に、コンフリクトの発生をユーザへ通知して、処理をステップＳ６０２へ戻す。具体例を示すと、図１０の番号１で規定されるコンフリクトが発生した場合、コンフリクト対処として、印刷設定管理部２０２は出力方法を「片面」に修正する。それと共に、印刷設定管理部２０２は、印刷設定ダイアログ５００上に、図７に示すような警告メッセージ７０１を表示させることで、コンフリクトの発生及び対処内容をユーザに通知する。図７に示す警告メッセージ７０１内のＯＫボタンが押下されると、修正後の設定内容が印刷設定ダイアログ５００に表示される。従って、コンフリクトが生じた場合は、印刷設定管理部２０２はコンフリクトを生じない印刷設定を決定し、ＯＫボタンの押下によって、コンフリクトを生じないような印刷設定に自動修正する。
【００４８】
ステップＳ６０８では、印刷設定管理部２０２は、印刷設定ダイアログ５００に設定されている値を保存することなく破棄し、図６の処理を終了させる。ステップＳ６０７では、印刷設定管理部２０２は、印刷設定ダイアログ５００に現在設定されている値を、確定した入力値として保存して管理し、図６の処理を終了させる。
【００４９】
図６の処理で保存された印刷設定項目の値は、その後、印刷ジョブ生成部２０４が印刷ジョブを生成する際のレンダリング等の処理に用いられる。その際、印刷ジョブ生成部２０４は、生成した印刷ジョブ内に印刷設定項目を含めた各種情報を印刷設定として埋め込む。その後、生成された印刷ジョブは標準スプーラ１０４を介して仮想デバイスサービス１０６の仮想デバイス３００（３０１）へと送信され、仮想デバイススプーラ３１２（３２２）に保存される。そして、仮想デバイススプーラ３１２（３２２）に保存された印刷ジョブの処理が開始される際に、後述の図８の処理が実行される。
【００５０】
図８は、仮想デバイスランゲージモニタ３１３によるコンフリクト対応処理のフローチャートである。なお、仮想デバイス３０１での仮想デバイスランゲージモニタ３２３によるコンフリクト対応処理も図８に示すものと同様であるので、代表して仮想デバイス３００による処理を説明する。この処理は、標準スプーラ１０４を介してＶ４ドライバ１０３から印刷ジョブを仮想デバイス３０１が受信すると開始される。
【００５１】
ステップＳ８０１では、ランゲージモニタ３１３は、Ｖ４ドライバ１０３から受信した印刷ジョブを仮想デバイススプーラ３１２から受信する。ステップＳ８０２では、ランゲージモニタ３１３は、印刷ジョブが持つ全ページの送信が完了したか否かを判別し、全ページの送信が完了した場合は図８の処理を終了させる一方、未送信のページが残っている場合は、処理をステップＳ８０３に進める。ステップＳ８０３では、ランゲージモニタ３１３は、印刷ジョブにおける未送信のページのうち先頭のページを解析する。すなわち、印刷ジョブに含まれる印刷設定項目を取得し、取得した印刷設定項目の値を含めた各種情報に基づいて、解析対象となる先頭のページにつきコンフリクトが生じるか否かを解析する。
【００５２】
具体例を示すと、ランゲージモニタ３１３が管理するコンフリクト情報が図１１に示すものであるとし、取得した印刷設定項目は、用紙サイズがユーザ定義用紙、用紙タイプが普通紙、出力方法が両面であるとする。ランゲージモニタ３１３は、解析した各種情報の中にあるユーザ定義用紙の実サイズを参照し、高さが２００ｍｍを越えるか、または幅が３６０ｍｍを越える場合は、図１１の番号５に規定されるコンフリクトが発生したと判断する。
【００５３】
次に、ステップＳ８０４では、ランゲージモニタ３１３は、ステップＳ８０３での解析の結果、印刷ジョブを構成する各種印刷設定項目に基づきコンフリクトが発生するか否かを判別する。その判別の結果、コンフリクトが発生しない場合は、ランゲージモニタ３１３は、処理をステップＳ８０６へ進め、今回解析の対象となったページの送信処理を実行する。これにより、印刷ジョブにおいてコンフリクトを生じないページが送信される。その後、処理はステップＳ８０２へ戻る。一方、コンフリクトが発生する場合は、ランゲージモニタ３１３は、ステップＳ８０５で、コンフリクトに応じたエラー処理を実行、すなわち、コンフリクトの発生を原因としたエラー状態へ移行する。これにより、印刷ジョブにおいてコンフリクトを生じるページは送信されない。その後、図８の処理は終了する。
【００５４】
ステップＳ８０５で実行されるエラー処理では、例えば、図９に示すようなエラー画面が表示される。すなわち、ステータスウィンドウ１０５は、コンフリクト発生によりエラー状態へ移行したランゲージモニタ３１３から状態情報を取得し、不正な印刷設定であることを報知するためのエラー画面を表示する。これにより、ランゲージモニタ３１３で、印刷ジョブにおいてコンフリクトを生じるページが存在すると判断された場合は、エラーの発生（コンフリクトが発生したこと）が画像形成装置１０７へ通知される。
【００５５】
本実施の形態によれば、Ｖ４ドライバ１０３で生成された印刷ジョブは仮想デバイスサービス１０６に送信され、仮想デバイスサービス１０６で印刷設定項目のコンフリクトを判断された上で画像形成装置へページが送信される。ランゲージモニタ３１３では、Ｖ４ドライバ１０３では管理できないような組み合わせもコンフリクト情報として管理できる。従って、受信した印刷ジョブに含まれる印刷設定の解析の結果、コンフリクトを生じるページは送信しないようにできる。よって、画像形成装置で対応できない印刷設定を有する印刷ジョブのページが画像形成装置に送信されないようにすることができる。また、画像形成装置に関してコンフリクトを生じないページは送信することができる。
【００５６】
ところで、本実施の形態では、印刷ジョブをページ毎に解析してコンフリクトが発生するか否かを判断した。しかし、コンフリクト発生の判断や送信可否の判断は、ページ単位でなくてもよく、印刷ジョブ毎など、ページ以外の単位で行ってもよい。例えば、解析の結果、印刷ジョブにおいてコンフリクトを生じるページが１ページでも存在する場合は、印刷ジョブにおける全てのページを送信しないようにしてもよい。このようにすることで、画像形成装置で対応できない印刷設定を有する（矛盾した印刷設定項目を持つ）印刷ジョブは画像形成装置１０７へ投入されない。
【００５７】
なお、コンフリクトが発生するページが存在する場合、ユーザへエラー通知をした後、ユーザからのエラー確認の旨を受信したら、当該印刷ジョブキャンセルするようにしてもよい。
【００５８】
なお、印刷設定項目として「用紙サイズ」、「用紙タイプ」、「出力方法」の３つを例示したが、これらの印刷設定項目に限るものではなく、異なる数や種類の印刷設定項目を採用してもよい。
【００５９】
なお、仮想デバイスサービス１０６は、Ｖ４ドライバ１０３で生成された印刷ジョブを受信し、その後、画像形成装置へ投入できるように配置されればよく、Ｖ４ドライバ１０３と同じ装置内に配置されることは必須でない。従って、仮想デバイスサービス１０６は、スタンドアロンの装置内に限られず、サーバまたはクライアントに配置されてもよく、ネットワーク上のいずれかの場所に配置されてもよい。
【００６０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６１】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【符号の説明】
【００６２】
１０３  Ｖ４ドライバ
１０６  仮想デバイスサービス
２０２  印刷設定管理部
２０４  印刷ジョブ生成部
３００、３０１  仮想デバイス
３１３、３２３  仮想デバイスランゲージモニタ
３１４、３２４  ポートモニタ
【図１】
0006604834.tif 000002
【図２】
0006604834.tif 000003
【図３】
0006604834.tif 000004
【図４】
0006604834.tif 000005
【図５】
0006604834.tif 000006
【図６】
0006604834.tif 000007
【図７】
0006604834.tif 000008
【図８】
0006604834.tif 000009
【図９】
0006604834.tif 000010
【図１０】
0006604834.tif 000011
【図１１】
0006604834.tif 000012