(57)【要約】【課題】代行されて出力先の処理装置が変わっても一貫した条件で代行処理を行うことが可能なる情報処理装置を提供する。【解決手段】印刷装置で印刷すべき印刷ジョブを生成する情報処理装置において、印刷装置における印刷を行わせない条件としての代行条件を設定し、設定された代行条件と印刷装置の状態とに応じて、該印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断し、代行印刷すべきであると判断された場合に、第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせ、且つ、設定された代行条件を、印刷ジョブに関係付けて管理しておき、印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断する。【選択図】　　　　図９
2004054909.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置で印刷すべき印刷ジョブを生成する情報処理装置において、
前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定手段と、
前記設定手段で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断手段と、
前記判断手段により代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理手段とを備え、
前記設定手段により設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする情報処理装置。
【請求項２】
プリンタドライバにより生成される印刷ジョブを入力して管理する物理プリンタ管理手段を更に備え、
前記設定手段は、前記物理プリンタ管理手段に対して代行条件を設定するものであり、
前記代行処理手段は、前記物理プリンタ管理手段に入力される印刷ジョブに対応付けて、前記物理プリンタ管理手段に設定された代行条件を管理することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記代行処理手段は、前記プリンタドライバに対応する印刷装置と同じ機種の印刷装置に代行印刷すべく印刷ジョブの送信を行わせる
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
アプリケーションが出力する描画命令に基づいて印刷装置に依存しない汎用ドキュメントデータを含む汎用印刷ファイルを生成する仮想プリンタドライバ手段と、
前記仮想プリンタドライバにより生成される汎用印刷ファイルを入力して管理する論理プリンタ管理手段とを更に備え、
前記設定手段は、前記論理プリンタ管理手段に対して代行条件を設定するものであり、
前記代行処理手段は、前記論理プリンタ管理手段に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理手段に設定された代行条件を管理することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記代行処理手段は、最初に出力先として指定される印刷装置とは依存関係のない複数の印刷装置のいずれかに代行印刷すべく前記汎用印刷ファイルの印刷ジョブの送信を行わせることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記代行処理手段は、代行印刷を行う場合に、論理プリンタ管理手段に管理されている汎用印刷ファイルに基づいて代行出力先のプリンタドライバに対して描画命令の出力を行うことを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記設定手段は、前記論理プリンタ管理手段に対する代行条件として、自動で代行処理を行う自動代行条件と、自動で代行処理を行わずユーザからの指示に応じて代行処理を行う手動代行条件とを設定するものであり、
前記代行処理手段は、前記論理プリンタ管理手段に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理手段に設定された自動代行条件と手動代行条件とを管理することを特徴とする請求項４乃至６のいずれかに記載の情報処理装置。
【請求項８】
複数の印刷装置と、該印刷装置で印刷すべき印刷ジョブを生成する情報処理装置とを含む印刷システムにおいて、
前記情報処理装置に、
前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定手段と、
前記設定手段で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断手段と、
前記判断手段により代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理手段とを備え、
前記設定手段により設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする印刷システム。
【請求項９】
印刷装置で印刷すべき印刷ジョブを生成する情報処理装置の印刷制御方法であって、
前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定工程と、
前記設定工程で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断工程と、
前記判断工程で代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理工程とを含み、
前記設定工程で設定された代行条件を、印刷ジョブに関係付けて管理しておき、　前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする印刷制御方法。
【請求項１０】
プリンタドライバにより生成される印刷ジョブを入力して管理する物理プリンタ管理工程を更に含み、
前記設定工程は、前記物理プリンタ管理工程に対して代行条件を設定するものであり、
前記代行処理工程は、前記物理プリンタ管理工程に入力される印刷ジョブに対応付けて、前記物理プリンタ管理工程に設定された代行条件を管理することを特徴とする請求項９記載の印刷制御方法。
【請求項１１】
前記代行処理工程は、前記プリンタドライバに対応する印刷装置と同じ機種の印刷装置に代行印刷すべく印刷ジョブの送信を行わせることを特徴とする請求項１０記載の印刷制御方法。
【請求項１２】
アプリケーションが出力する描画命令に基づいて印刷装置に依存しない汎用ドキュメントデータを含む汎用印刷ファイルを生成する仮想プリンタドライバ工程と、
前記仮想プリンタドライバにより生成される汎用印刷ファイルを入力して管理する論理プリンタ管理工程とを更に含み、
前記設定工程は、前記論理プリンタ管理工程に対して代行条件を設定するものであり、
前記代行処理工程は、前記論理プリンタ管理工程に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理工程に設定された代行条件を管理することを特徴とする請求項９記載の印刷制御方法。
【請求項１３】
前記代行処理工程は、最初に出力先として指定される印刷装置とは依存関係のない複数の印刷装置のいずれかに代行印刷すべく前記汎用印刷ファイルの印刷ジョブの送信を行わせることを特徴とする請求項１２記載の印刷制御方法。
【請求項１４】
前記代行処理工程は、代行印刷を行う場合に、論理プリンタ管理工程に管理されている汎用印刷ファイルに基づいて代行出力先のプリンタドライバに対して描画命令の出力を行うことを特徴とする請求項１３記載の印刷制御方法。
【請求項１５】
前記設定工程は、前記論理プリンタ管理工程に対する代行条件として、自動で代行処理を行う自動代行条件と、自動で代行処理を行わずユーザからの指示に応じて代行処理を行う手動代行条件とを設定するものであり、前記代行処理工程は、前記論理プリンタ管理工程に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理工程に設定された自動代行条件と手動代行条件とを管理することを特徴とする請求項１２乃至１４のいずれかに記載の印刷制御方法。
【請求項１６】
印刷装置で印刷すべき印刷ジョブを生成する情報処理装置で実行可能な印刷制御プログラムであって、
前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定工程と、
前記設定工程で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断工程と、
前記判断工程で代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理工程とを前記情報処理装置に実行させ、
前記設定工程で設定された代行条件を、印刷ジョブに関係付けて管理しておき、　前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とするコンピュータ読み取り可能な印刷制御プログラム。
【請求項１７】
プリンタドライバにより生成される印刷ジョブを入力して管理する物理プリンタ管理工程を更に含み、
前記設定工程は、前記物理プリンタ管理工程に対して代行条件を設定するものであり、
前記代行処理工程は、前記物理プリンタ管理工程に入力される印刷ジョブに対応付けて、前記物理プリンタ管理工程に設定された代行条件を管理することを特徴とする請求項１６記載の印刷制御プログラム。
【請求項１８】
前記代行処理工程は、前記プリンタドライバに対応する印刷装置と同じ機種の印刷装置に代行印刷すべく印刷ジョブの送信を行わせることを特徴とする請求項１７記載の印刷制御プログラム。
【請求項１９】
アプリケーションが出力する描画命令に基づいて印刷装置に依存しない汎用ドキュメントデータを含む汎用印刷ファイルを生成する仮想プリンタドライバ工程と、
前記仮想プリンタドライバにより生成される汎用印刷ファイルを入力して管理する論理プリンタ管理工程とを更に含み、
前記設定工程は、前記論理プリンタ管理工程に対して代行条件を設定するものであり、
前記代行処理工程は、前記論理プリンタ管理工程に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理工程に設定された代行条件を管理することを特徴とする請求項１６記載の印刷制御プログラム。
【請求項２０】
前記代行処理工程は、最初に出力先として指定される印刷装置とは依存関係のない複数の印刷装置のいずれかに代行印刷すべく前記汎用印刷ファイルの印刷ジョブの送信を行わせることを特徴とする請求項１９記載の印刷制御プログラム。
【請求項２１】
前記代行処理工程は、代行印刷を行う場合に、論理プリンタ管理工程に管理されている汎用印刷ファイルに基づいて代行出力先のプリンタドライバに対して描画命令の出力を行うことを特徴とする請求項２０記載の印刷制御プログラム。
【請求項２２】
前記設定工程は、前記論理プリンタ管理工程に対する代行条件として、自動で代行処理を行う自動代行条件と、自動で代行処理を行わずユーザからの指示に応じて代行処理を行う手動代行条件とを設定するものであり、前記代行処理工程は、前記論理プリンタ管理工程に入力される汎用印刷ファイルの印刷ジョブに対応付けて、前記論理プリンタ管理工程に設定された自動代行条件と手動代行条件とを管理することを特徴とする請求項１９乃至２１のいずれかに記載の印刷制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、代行処理機能を有する情報処理装置等に関し、特に印刷データを生成する情報処理装置、印刷システム、情報処理装置の印刷制御方法、及び印刷制御プログラムに関するものである。
【０００２】
【従来の技術】
現在のプリントシステムでは、プリンタデバイスにおいて「紙なし」や「ジャム」などのエラーにより印刷が失敗した場合、プリンタ毎に設定された「紙なし」や「ジャム」などの代行印刷条件に従って別のプリンタに代行印刷を行っていた。代行印刷のやり方としては、大きく２つに分けられる。１つ目の代行印刷の仕組みは、プリントサーバで印刷ジョブを管理しておき、出力先のプリンタの状態を監視し、出力先のプリンタで何らかの障害が発生し印刷継続できない場合に、プリントサーバで管理している印刷ジョブを他のプリンタに出力先を変更して印刷を行う方法である（例えば、特許文献１参照）。
【０００３】
そして、２つ目の代行印刷の仕組みは、プリンタが受信した印刷ジョブを保持しておき、何らかの障害が発生し、自身のプリントエンジンで印刷継続できない場合に、プリンタが自身で管理している印刷ジョブをインターフェースを介して他のプリンタに転送することで、他のプリンタで代替印刷を行う方法である（例えば、特許文献２参照）。
【０００４】
【特許文献１】
特開平１１−３２７８５６号公報
【特許文献２】
特開平０７−１５２５０６号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来のプリンタシステムでは、代行印刷が発生する条件をユーザが指定することができない。そこで、近年、代行印刷が発生する条件をユーザが指定することができる仕組みが考えられている。例えば、特定のプリンタに対して、代行条件を設定することで、そのプリンタで印刷中に障害が発生した場合に、発生した障害と設定されている代行条件とを比較し、代行条件と一致した障害が発生している場合に、他のプリンタに代行印刷を行わせることが考えられる。しかし、このような代行印刷の仕組みでは、次のにような問題点が考えられる。
【０００６】
（１）あるプリンタから別のプリンタに代行印刷を実行した場合には、代行先のプリンタでは独立して代行条件が設定されていることになり、代行印刷先のプリンタで更に障害が発生することにより更に代行印刷が実行されるかは、代行先のプリンタに設定されている代行条件によるところとなる。つまり、代行先のプリンタにおける代行印刷条件の設定が最初のプリンタの代行印刷条件と異なることにより、望んだ印刷動作が得られないという問題がある。例えば、大量な出力ページを持つジョブが、「紙なし」で代行するという代行印刷条件を持つプリンタで印刷されているときに、「紙なし」エラーが発生し別のプリンタに代行されたが、そのプリンタの代行印刷条件が「紙なし」エラーで代行しないという代行印刷条件を持つ設定になっていた場合には、代行が行われない。つまり、大量ページを持つジョブは、「紙なし」によって代行されることが望ましいのに、プリンタ毎に設定された代行条件により、印刷が止まってしまうという問題がある。
【０００７】
また、特許文献１にあるように、中間データのように汎用印刷データをスプールしておき、出力先が決定した後で、デバイスに依存する印刷データを生成するプリンタドライバに該汎用印刷データを渡す仕組みにおいて、プリンタ毎に代行条件を持たせた場合には、次の問題点が考えられる。
【０００８】
（２）汎用印刷データを出力するドライバを有する仮想プリンタドライバを用いて印刷を行う場合には、デバイスに合った出力データを吐き出す専用プリンタドライバに再出力する必要がある。このような構成において、プリンタ毎に代行条件を持ってしまうと、ユーザがアプリケーションで汎用印刷データを出力する仮想プリンタドライバを出力先に選んでも、実際に出力データを吐き出す専用プリンタドライバに対応するプリンタに設定されている代行条件で代行印刷動作が行われてしまい、代行印刷条件の設定の面からユーザの自由度が少なくなるという問題がある。
【０００９】
また、近年考えられている代行条件は自動的に代行印刷を行う仕組みであるため、次の問題点が考えられる。
【００１０】
（３）自動代行印刷を行うプリントシステムにおいて、デバイスのエラーによっては自動代行が望まれないケースも自動代行されるという問題がある。例えば、自動代行用プリンタに印刷を行い、デバイスでオフライン状態が発生して代行印刷される必要性がない場合でも、他のプリンタに代行処理されてしまうという課題がある。
【００１１】
本発明は上記問題点に鑑み、（１）代行されて出力先の処理装置が変わっても一貫した条件で代行処理を行うことが可能なる、（２）ユーザが選択した処理装置の代行条件によって代行処理を行うことが可能になる、（３）自動代行が望まれないようなケースの場合には手動代行に移行することが可能になる情報処理装置等を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置において、前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定手段と、前記設定手段で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断手段と、前記判断手段により代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理手段とを備え、前記設定手段により設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする。
【００１３】
本発明の印刷システムは、複数の印刷装置と、該印刷装置で印刷すべき印刷ジョブを生成する情報処理装置とを含む印刷システムにおいて、前記情報処理装置に、前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定手段と、前記設定手段で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断手段と、前記判断手段により代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理手段とを備え、前記設定手段により設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする。
【００１４】
本発明の印刷制御方法は、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置の印刷制御方法であって、前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定工程と、前記設定工程で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断工程と、前記判断工程で代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理工程とを含み、前記設定工程で設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする。
【００１５】
本発明のコンピュータ読み取り可能な印刷制御プログラムは、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置で実行可能な印刷制御プログラムであって、前記印刷装置における印刷を行わせない条件としての代行条件を設定する設定工程と、前記設定工程で設定された代行条件と前記印刷装置の状態とに応じて、前記印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断する判断工程と、前記判断工程で代行印刷すべきであると判断された場合に、前記第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる代行処理工程とを前記情報処理装置に実行させ、前記設定工程で設定された代行条件を、印刷ジョブに関係付けて管理しておき、前記判断手段は、前記印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断することを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１７】
［第一実施形態］
＜システム構成＞
図１は、本発明の印刷システムの構成を示すブロック図である。なお、本システムにおけるクライアントコンピュータは、１台または複数台接続されていることを仮定している。
【００１８】
同図において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。
【００１９】
１０１は、本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。構成としては、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置であり、クライアントとプリントサーバ１０１には、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。また、プリントサーバ１０１は、一般的な情報処理装置であり、クライアント１０２〜１０４の機能を同時に持つこともできる。
【００２０】
本発明の情報処理装置は、クライアントとして動作してもよいし、サーバ（プリントサーバ）として動作してもよい。例えば、クライアントがＬＰＲを用いて印刷データをプリンタに直接送信する印刷システムの場合は、クライアントが本発明の情報処理装置として動作すべきである、また、クライアントはプリントサーバに印刷要求を行い、プリントサーバがプリンタを監視しつつ印刷ジョブの発行を行う印刷システムの場合は、プリントサーバが本発明の情報処理装置として動作すべきである。
【００２１】
さらに、本実施形態におけるプリントサーバ１０１は、クライアントコンピュータ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、またはクライアントコンピュータ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ１０２、１０３、１０４に通知したりする機能を備えている。
【００２２】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインターフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して１ページ毎に印刷する。プリンタ１０５としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、様々な方式のものに適応できることも無論想定される。
【００２３】
１０６はネットワークであり、クライアントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等と接続している。
【００２４】
＜情報処理装置の構成＞
図２は、図１に示した情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライアントコンピュータ１０２、１０３、１０４も同じ構成であり、さらにサーバ１０１も同様あるいは同等のハードウェア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
【００２５】
同図において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラムや、プリンタドライバプログラム、ＯＳ、本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２６】
２０１は記憶手段であるＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、及びテンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリやワークエリア等として機能する。
【００２７】
２０３は、記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯあるいはメモリスティック等、任意である。２０４は記憶媒体であるフロッピー（登録商標）ディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２８】
２０５は外部記憶手段の１つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、及び関係プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。スプール手段は、クライアント１０２〜１０４ではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、クライアント１０２〜１０４から受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２９】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータ１０２〜１０４に対して、また、オペレータや管理者がプリントサーバ１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。
【００３０】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタ１０５の状態等を表示したりするものである。２０８はシステムバスであり、クライアント１０２〜１０４やプリントサーバ１０１であるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインターフェースであり、該インターフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００３１】
＜メモリマップ等の説明＞
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３２】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関係データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００３３】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭや、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカード等であってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３４】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアント１０２〜１０４において印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、またプリントサーバ１０１において、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。
【００３５】
このような制御を行う本発明の印刷制御プログラムは、クライアント１０２〜１０４にインストールされるモジュールと、プリントサーバ１０１にインストールされるモジュールを別々に分けてもよいし、１つの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールを共にインストールし、同時に、あるいは時分割で擬似的に並行動作させる構成も可能である。
【００３６】
図３中の３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローディング）機能などを有しているプログラムが入っている領域である。
【００３７】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関係データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３８】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３９】
同図において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関係データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント１０２〜１０４、サーバ１０１共に同様の構成を採っている。
【００４０】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
【００４１】
同図において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラム及び関係データを格納している。
【００４２】
＜印刷ジョブ制御システム＞
次に、本実施形態における、プリンタを複数台使用して、前述の分散、同報、及び代行といった印刷処理を行う印刷ジョブ制御システムについて説明する。なお、この印刷ジョブ制御システムの印刷処理は、上述した印刷制御プログラムで実行される。本発明の印刷制御プログラムは、複数のモジュールで構成されており、それぞれのモジュール構成を図６で後述する。また、本実施形態では、複数のプリンタデバイスのそれぞれに対応する個々のプリンタドライバに対して一元的に印刷設定を指示可能で、且つ、デスプーラ（Ｄｅ−ｓｐｏｏｌｅｒ：後述にて詳しく説明）が各プリンタドライバに描画命令を通知する際に用いる汎用印刷ファイルを生成するためにデータ（汎用ドキュメントデータ）を生成するドライバをグループプリンタドライバ（仮想プリンタドライバとも呼ぶ）と呼ぶ。また、プリンタデバイスに依存した個々のプリンタドライバをメンバプリンタドライバ（専用プリンタドライバとも呼ぶ）と呼ぶ。
【００４３】
＜印刷ジョブの処理＞
図６は、アプリケーションから発行された印刷ジョブの処理を示す図であり、本システムのクライアントサーバモデルにおいてＭｉｃｒｏＳｏｆｔＷｏｒｄ（登録商標）などの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを表している。
【００４４】
同図において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す（クライアント１０２〜１０４に相当）。
【００４５】
通常、印刷の指示がされると、アプリケーションプログラムは、ＯＳのグラフィック機能を介して一連の描画命令を生成させ、プリンタドライバを経てＷｉｎｄｏｗｓ（登録商標）スプーラ６０４に渡される。Ｗｉｎｄｏｗｓ（登録商標）スプーラ６０４は、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順を採る。アプリケーション６０１は、ＯＳ上で実行される一般的なアプリケーションであり、文書作成や、文書保管、文書印刷の機能を備えている。アプリケーション６０１は、本システムに登録されている出力先のドライバを指定することで、印刷指示を行うことができる。本印刷システムでは、３種類のプリンタドライバが考えられる。
【００４６】
まずＰＤＬドライバ６０２は、一般的なプリンタドライバ（専用プリンタドライバ）であり、アプリケーション６０１からの描画命令に基づいてＰＤＬの印刷データを生成する。ここでＰＤＬドライバ６０２の出力先のポート設定がプリンタデバイス６５０に割り当てられている場合は、ＰＤＬドライバ６０２で生成された印刷データは、Ｗｉｎｄｏｗｓ（登録商標）スプーラ６０４を介してＷｉｎｄｏｗｓ（登録商標）ジョブ制御ポートモニタ６６０に出力され、Ｗｉｎｄｏｗｓ（登録商標）ジョブ制御ポートモニタを介してプリンタデバイス６５０に送信される。また、ＰＤＬドライバ６０２の出力先のポート設定がジョブ制御ポートモニタ６２１に設定されている場合は、ジョブ制御ポートモニタ６２１に出力される。ジョブ制御ポートモニタ６２１は、ジョブ制御プリントサービス６２２（本発明の代行処理手段に相当する）とＡＰＩを介して連動して動作する本願発明の特徴的構成であり、印刷ジョブの管理及び出力先の決定など、様々な機能を実現することができる。
【００４７】
ＰＤＬドライバ６０２から入力される印刷データの印刷を行う場合には、ジョブ制御プリントサービス６２２は、ＰＤＬ形式の印刷データをＨＤ２０５に格納して管理すると共に、プリンタデバイス６５０に印刷データの送信を行う。印刷データの送信後もＨＤ２０５に格納されている印刷データを管理するのは、プリンタデバイス６５０で印字不能になった場合にも代替印刷を行うことで印刷保証を実現するためであり、その詳細は後述する。
【００４８】
一方、グループプリンタドライバ６０３（仮想プリンタドライバ）は、アプリケーション６０１からの描画命令に基づいて、印刷装置に依存しないデータフォーマットの汎用ドキュメントデータを生成し、Ｗｉｎｄｏｗｓ（登録商標）スプーラ６０４を介してジョブ制御ポートモニタ６２１に出力される。グループプリンタドライバ６０３から入力される汎用ドキュメントデータの印刷を行う場合には、ジョブ制御プリントサービス６２２がアプリケーション６０１のように動作し、ＯＳのグラフィック機能を介して一連の描画命令を生成させ、出力先のＰＤＬドライバ６０２に出力される。ジョブ制御プリントサービス６２２からＰＤＬドライバ６０２に渡された描画命令は、ＰＤＬの印刷データとしてジョブ制御ポートモニタ６２１に再び入力され、ジョブ制御プリントサービス６２２を介して、適するプリンタデバイス６５０に出力される。
【００４９】
なお、本発明の印刷制御プログラムは、グループプリンタドライバ６０３、ジョブ制御ポートモニタ６２１、及びジョブ制御プリントサービス６２２のそれぞれのモジュール構成を備えている。更に詳細なモジュール構成は、後述する。
【００５０】
本実施形態では、ユーザは予め、グループプリンタドライバ６０３もしくはＰＤＬドライバ６０２の出力先のポートとして、印刷ジョブ制御システム用のポートモニタ（以下、ジョブ制御ポートモニタと記す）６２１を指定して印刷を指示する。アプリケーションプログラム６０１は、ユーザから印刷指示されると、ＯＳを介して描画命令を生成する。
【００５１】
描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ここで、汎用ドキュメントデータは、例えば、米国アドビ社のＰＤＦ形式のドキュメントデータなどが好ましい。汎用印刷ファイルとは、プリンタデバイスに依存しないデータ形式の印刷ファイルであり、本実施形態では、汎用ドキュメントデータに印刷設定情報が記述された印刷指示書（ジョブチケット）が付加されたファイルとして説明する。
【００５２】
ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム用のプリントサービス（以下、ジョブ制御プリントサービスと記す）６２２に送信する。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０が管理するジョブ／デバイスの状態を管理する機能を備える。
【００５３】
さらに、デバイスとクライアントＰＣがピアツーピア接続環境で互いに動作するような場合には、ジョブ制御プリントサービス６２２はデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令をする機能も備える。これは、複数のプリンタデバイス６５０のデバイス情報やジョブ情報を管理する機能に相当する。
【００５４】
印刷ジョブ制御システム用プリントマネージャ（以下、ジョブ制御プリントマネージャもしくはプリントマネージャと記す）６２３は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインターフェース（ＵＩ）を提供するプログラムである。
【００５５】
図７は、ジョブ制御プリントマネージャ６２３のユーザインターフェース（ＵＩ）の画面例を示す図である。このユーザインターフェース画面には、本発明の印刷管理モジュール（ジョブ制御ポートモニタ６２１、ジョブ制御プリントサービス６２２、及びジョブ制御プリントマネージャ６２３からなる）で管理するプリンタデバイスの名称や状態等の一覧を表示するプリンタ一覧ウインドウ、印刷管理モジュールで管理される印刷ジョブの一覧を表示するジョブ一覧ウインドウ、印刷ジョブの履歴を一覧表示する履歴ウインドウ等の複数のウインドウが切り替え表示可能になっている（図７の例では、プリンタ一覧ウインドウが表示されている）。
【００５６】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインターフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報の送受信を実行し、主に、ジョブ制御プリントサービス６２２が管理する外部のプリンタデバイスの状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００５７】
印刷ジョブ制御システム用サーバ（以降、ジョブ制御サーバと略記）６３０は、個々のクライアントマシン６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。また、印刷ジョブ制御システム用サーバ６３０は、ネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中に、電力制御状態や障害情報（紙ジャム）等のステータスを監視し、ジョブ制御プリントサービス６２２にイベントを通知する機能を備える。ここで、プリンタステータスの状態変化の監視について、ジョブ制御プリントサービス６２２は直接的に状態の変化の通知（イベント）をプリンタデバイスから取得することもできる。
【００５８】
印刷ジョブ制御システム用のマネージメントコンソール６３３（以降、ジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアが、アクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００５９】
また、ジョブ制御サーバ６３０は、デバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアントマシン６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００６０】
＜グループプリンタドライバ６０３からの印刷＞
次に、本実施形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００６１】
グループプリンタドライバ６０３は、アプリケーションプログラムが生成した一連の描画コマンドから、上述した汎用ドキュメントデータを生成する。この汎用ドキュメントデータは、ジョブ制御プリントサービス６２２によってプリンタデバイスの種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換される。この汎用印刷ファイルの構成については後述する。
【００６２】
ここで、グループプリンタドライバ（仮想プリンタドライバ）６０３が汎用ドキュメントデータを生成するのは、出力先のプリンタを代替処理などで適宜変更した場合に、変更されたプリンタに対応するプリンタドライバでデバイスに依存する印刷データを生成できるようにするためである。すなわち、グループプリンタドライバ６０３からの入力の場合は、代替先としてあらゆるプリンタデバイスを選択することが可能となる。つまり、代行処理手段であるジョブ制御プリントサービス６２２は、最初に出力先として指定される印刷装置とは依存関係のない複数の印刷装置のいずれかに代行印刷すべく前記汎用印刷ファイルの印刷ジョブの送信を行わせる。なお、デバイスに依存する印刷データがＰＤＬドライバ６０２からジョブ制御ポートモニタ６２１に入力された場合には、代替先として、同一ＰＤＬを解釈可能なプリンタデバイス（例えば同一機種）に限定されることになる。
【００６３】
グループプリンタドライバ６０３により生成された汎用印刷ファイルは、前述したようにＷｉｎｄｏｗｓ（登録商標）スプーラ６０４からジョブ制御ポートモニタ６２１を経て（図６の経路ａ）、ジョブ制御プリントサービス６２２に導かれる（図６の経路ｂ）。ジョブ制御プリントサービス６２２は、このプリントジョブに対して行うジョブ制御の種類に応じて、アプリケーション６０１と同様に汎用印刷ファイルを基に描画コマンドを生成してＯＳの描画機能（ＧＤＩ）を介してＰＤＬドライバ６０２に描画出力する（図６の経路ｃ）。
【００６４】
具体的には、ジョブ制御プリントサービス６２２は、受け付けたプリントジョブがグループプリンタドライバ６０３から出力された汎用印刷ファイル形式のプリントジョブであれば、ＯＳの描画機能に対して描画コマンド（ＧＤＩ関数）を出力してＯＳの描画機能により変換された描画コマンド（ＤＤＩ関数）をＰＤＬドライバ６０２に描画出力する。一方、受け付けたプリントジョブがＰＤＬドライバ６０２から出力されたＰＤＬ形式の印刷データファイルであれば、後述するように、プリンタデバイスの印刷キューの空き状況を判断して、プリンタデバイス６５０に印刷データを出力する。ここで、汎用印刷ファイル形式のプリントジョブの場合は、図６の経路ｃを辿り、ＰＤＬドライバ６０２がその描画コマンド（ＤＤＩ関数）をプリンタデバイス６５０で解釈可能なＰＤＬ形式の印刷データファイルにする。
【００６５】
図６では、ジョブ制御プリントサービス６２２で、プリントジョブを２つに分けるジョブ制御（分散印刷制御）が行われる場合において、２つのメンバジョブが生成された例を２つの経路ｃで示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ（登録商標）スプーラ６０４、ジョブ制御ポートモニタ６２１を経て（図６の経路ｄ）、再びジョブ制御プリントサービス６２２に渡される（図６の経路ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（図６の経路ｆ）。
【００６６】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書（ジョブチケットと呼ばれる）の指示に従って、１つの汎用印刷ファイルを複数のプリントジョブに論理的に分割して、それぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図６中の経路ｃ，ｄ，ｅ，ｆはそのような場合のプリントジョブデータの経路を示している。
【００６７】
一方、汎用印刷ファイルを特定のアプリケーションソフトウェアが作成し、その特定アプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合が存在する。この特定のアプリケーションは、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ６０３にＯＳを介して描画情報（ＤＤＩ関数）を渡す際、通常のプリンタドライバと同じようにＷｉｎｄｏｗｓ（登録商標）のＧＤＩ関数を呼び出し、ＯＳの描画手段が受け取り、ＯＳの描画手段がＧＤＩ関数をＤＤＩ関数に変換してグループプリンタドライバにＤＤＩ関数を渡し、グループプリンタドライバ６０３がそのＤＤＩ関数に応じて汎用ドキュメントデータを生成し、該生成された汎用ドキュメントデータがジョブ制御プリントサービス６２２によって汎用印刷ファイルに生成される。
【００６８】
これに対して、汎用印刷ファイルを直接作成する特定のアプリケーションの場合は、アプリケーションが汎用印刷ファイルを既に持ち、それをグループプリンタドライバ６０３に直接もしくはＯＳの描画手段をスルーして供給する。グループプリンタドライバ６０３は必要に応じて予め設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてＷｉｎｄｏｗｓ（登録商標）スプーラ６０４に送る。
【００６９】
＜ＰＤＬドライバからの印刷１＞
ここで、ＰＤＬドライバの出力先のポートがジョブ制御ポートモニタ６２１に割り当てられている場合の処理について説明する。
【００７０】
図６の構成例では、ＰＤＬドライバ６０２はアプリケーションプログラム６０１が生成した一連の描画コマンドから、プリンタデバイス６５０で解釈可能なＰＤＬ形式の印刷データファイル（以下、ＰＤＬファイルと呼ぶ）を生成する。このＰＤＬファイルは、Ｗｉｎｄｏｗｓ（登録商標）スプーラ６０４からジョブ制御ポートモニタ６２１を経て（図６の経路ｇ）、ジョブ制御プリントサービス６２２に導かれる（図６の経路ｈ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（図６の経路ｉ）。
【００７１】
ジョブ制御プリントサービス６２２は、ＰＤＬファイルをプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図６中の経路ｇ，ｈ，ｉは、そのような場合のプリントジョブデータの経路を示している。
【００７２】
＜ＰＤＬドライバからの印刷２＞
ここで、ＰＤＬドライバの出力先のポートがプリンタデバイスのポート（ＩＰアドレスもしくはインターフェースポート）に割り当てられている場合の処理について説明する。これは、従来のプリンタドライバからの通常印刷の処理系である。
【００７３】
図６では、ＰＤＬドライバ６０２はアプリケーションプログラム６０１が生成した一連の描画コマンドから、プリンタデバイス６５０で解釈可能なＰＤＬファイルを生成する。このＰＤＬファイルは、Ｗｉｎｄｏｗｓ（登録商標）スプーラ６０４からＷｉｎｄｏｗｓ（登録商標）のジョブ制御ポートモニタ６６０を経て（図６の経路ｊ）、プリンタデバイス６５０に送信される（図６の経路ｉ）。
【００７４】
Ｗｉｎｄｏｗｓ（登録商標）のジョブ制御ポートモニタ６６０を使った印刷の系（図６の経路ｊ）は、通常のＷｉｎｄｏｗｓ（登録商標）などのＯＳのプリントシステムで印刷する系を表していて、代行印刷などの処理は行われない。
【００７５】
＜汎用印刷ファイルの構成＞
図８は、汎用印刷ファイルの構成の一例を示した図である。
【００７６】
同図に示すように、本実施形態で使用される汎用印刷ファイルは、印刷指示部（ジョブチケット部とも呼ぶ）とドキュメントデータ部からなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００７７】
印刷指示部は、ヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、及びメンバプリンタドライバ設定情報部などから構成されている。
【００７８】
ヘッダ部は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部は、ドキュメントデータ部のドキュメントデータのページ数や、各ページのサイズなどの情報を格納する部分である。印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００７９】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。メンバプリンタ数はグループプリンタドライバが関係付けているメンバプリンタの数を格納する部分である。
【００８０】
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。メンバプリンタドライバ設定情報部は、メンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。グループプリンタドライバ６０３からジョブ制御ポートモニタ６２１にプリントジョブが出力される処理系では、メンバプリンタドライバ名が記述され、ＰＤＬドライバ６０２からジョブ制御ポートモニタ６２１にプリントジョブが出力される処理系では、メンバプリンタドライバ名は記述されることはない。これは、グループプリンタドライバ６０３のユーザインターフェースで各メンバプリンタを割り当てることが可能になるからである。
【００８１】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００８２】
前述の図６で説明したグループプリンタドライバ６０３では、汎用印刷ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部へ記録する。さらに、グループプリンタドライバ６０３はＯＳの描画手段であるＧＤＩから受け取った描画コマンド（ＤＤＩ関数）を汎用的なデータに変換しドキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
【００８３】
＜Ｗｉｎｄｏｗｓ（登録商標）プリントシステムと印刷ジョブの関係＞
次に、図９を用い、Ｗｉｎｄｏｗｓ（登録商標）が提供するプリントシステムと印刷ジョブ制御システムにおける印刷ジョブの関係並びに処理概要をさらに詳しく述べる。この図９の処理系は、グループプリンタドライバ６０３を介する印刷処理に関する。
【００８４】
図９中で印刷ジョブ制御システム７００は、サーバ１０１とクライアント１０２、１０３または１０４の制御プログラムが動作する物理的なマシンを跨いだ印刷ジョブ制御システムの範囲を示している。また、サーバ１０１が管理している出力ポート（ＯｕｔｐｕｔＰｏｒｔ）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（ＰｒｏｘｙＯｕｔｐｕｔＰｏｒｔ）７１２と関係づけられ、１つのポートに関係付けられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。
【００８５】
本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００８６】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、及び同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００８７】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、及び同報印刷などの付加価値的な印刷を行う場合には、１つの方法として、前述のようにユーザまたはアプリケーション６０１はグループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを発行する必要がある。また、後述するが、もう１つの方法として、ＰＤＬドライバ６０２の出力先のポートをジョブ制御ポートモニタ６２１に割り当てられていれば、ＰＤＬドライバ６０２に印刷ジョブを発行してもよい。
【００８８】
アプリケーション６０１が印刷処理を開始すると、グループプリンタドライバ６０３は、ジョブ制御プリントサービス６２２のロジカルキュー情報（後述）を取得し、印刷プロパティで参照できる図１０のような情報を、汎用印刷ファイルに設定する。図１０は、論理プリンタ管理７０５の印刷プロパティを設定するためのユーザインターフェース画面の一例である。ここでは、同図に示すように、出力方法として自動代行が選択でき、更に出力先プリンタ（メンバプリンタドライバ）として優先順位を付けて登録することができる。
【００８９】
ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのプリントジョブを受け取り、デスプーラ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。デスプーラ７０１は、通常のアプリケーションと同様に、プリントジョブである汎用印刷ファイルのドキュメントデータに基づいて、ＯＳの描画手段を介して描画コマンド（ＧＤＩ関数）の生成と出力を行い、ＰＤＬドライバ６０２Ａが描画コマンド（ＤＤＩ関数）を受け取ることになる。
【００９０】
この時、デスプーラ７０１は前述の図８で説明した汎用印刷ファイルの印刷指示部（ジョブチケット部）を解釈し、ドキュメントデータ部のドキュメントデータを加工して、Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、「２−ＵＰ」の指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また、分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部に記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定に応じて、手動代行ではユーザの操作に応じて、メンバジョブを発行する。
【００９１】
また、上述したデスプーラ７０１とは別のモジュールに各メンバプリンタドライバに対応する指示情報を印刷指示部から抽出させ、該抽出された各メンバプリンタドライバに対する印刷指示をデスプーラ７０１に解釈させるような形態も想定される。
【００９２】
さらに、デスプーラ７０１は、各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥ（印刷設定情報）を作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部に記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。なお、本実施形態では、米国マイクロソフト社のＯＳであるＷｉｎｄｏｗｓ（登録商標）２０００やＷｉｎｄｏｗｓ（登録商標）ＸＰを用いた印刷システムについて説明しているため、印刷設定情報としてプリンタドライバが制御可能な構造体としてのＤＥＶＭＯＤＥを用いているが、印刷設定情報はＤＥＶＭＯＤＥに限る必要はなく、印刷設定情報が記述されたＸＭＬ形式のファイルであっても構わない。つまり印刷設定情報のプリンタドライバへの渡し方は、ＯＳにより異なるものであり、本発明はいずれか１つに限定されるものではない。
【００９３】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によって生成された、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったＰＤＬ形式のプリントジョブに関する情報をサーバ１０１側に知らせ、ジョブデータは自身のプロキシ出力ポート（ＰｒｏｘｙＯｕｔｐｕｔＰｏｒｔ）７１２Ａまたは７１２Ｂで一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後に、印刷ジョブ制御システム７００はプロキシ出力ポート７１２を介してＰＤＬ形式の印刷データをプリンタデバイス６５０に送信する。
【００９４】
＜各種の情報と代行条件等の内容＞
Ｉ．ロジカルキュー情報
図１１は、ロジカルキュー（論理プリンタ管理）７０５に設定されたロジカルキュー情報を示す図である。ロジカルキュー情報は、自動代行印刷処理を行う場合に参照する情報で、代行先プリンタや代行プリンタの優先順位などの情報が設定されている。
【００９５】
図１２、図１３、及び図１４は、ロジカルキュー（論理プリンタ管理）７０５にロジカルキュー情報を設定するためのユーザインターフェース画面の一例を表している。
【００９６】
印刷ジョブ制御システム７００のユーザインターフェース（図１３）からロジカルキュー（ここではＯｕｔｐｕｔ　Ｍａｎａｇｅｒプリンタ）を選択すると、図１４に示すユーザインターフェースが表示される。図１４のユーザインターフェース画面では、グループプリンタドライバ６０３のロジカルキューを追加、編集、複製、削除を行うことができる。この画面において、追加ボタンを押下することにより、グループプリンタドライバ６０３で管理する１つ以上のメンバプリンタを選択することができ、新規にロジカルキューを追加することができる。また、図１４のユーザインターフェース画面において、既に作成されているロジカルキューを選択し、編集ボタンを押下することによりロジカルキューで設定されている内容を編集することが可能になり、この操作により図１２のユーザインターフェース画面が表示される。
【００９７】
図１２において、グループプリンタドライバ６０３のロジカルキュー（論理プリンタ管理）７０５に対して代行先のメンバプリンタを設定し、代行先のメンバプリンタの優先順位を決定することができる。このユーザインターフェースで設定されたロジカルキュー情報はロジカルキュー（論理プリンタ管理）７０５で管理される。この図１２のユーザインターフェース画面において、ユーザからの指示により、グループプリンタドライバ６０３で利用する各メンバプリンタの設定を行うことができる。グループプリンタドライバ６０３は前述したように、汎用印刷ファイルを出力するため、その出力先としてデバイスに依存することがないので、各メンバプリンタを自由に追加することが可能になる。図１２の出力先プリンタの一覧で表示されている各プリンタは、ＰＤＬ形式が異なっていても、機種が異なっていてもよい。また、出力方法として、「自動代行」を設定することができる。自動代行モードが設定されている場合は、出力先プリンタの一覧に表示される各メンバプリンタの優先順位に基づいて、代行先が順次決定されることになる。この優先順位も、このユーザインターフェース画面を介して自由に設定することが可能になっている。図１２の画面を介して設定されるグループプリンタ設定値（ロジカルキュー情報と呼ぶ）は、ＨＤ２０５に記憶され、印刷ジョブ制御システム７００により管理される。
【００９８】
ＩＩ．自動代行条件
図１５は、自動代行機能を持つロジカルキュー（論理プリンタ管理）７０５に設定される自動代行条件を示す図である。自動代行条件は、ロジカルキュー（論理プリンタ管理）７０５で受け付けられたプリントジョブの情報に設定されるもので、印刷を行ったプリンタデバイスにおいて「用紙なし」などのエラーが発生した場合、代行印刷処理を行うかどうかを判断する条件である。自動代行条件の設定方法については、次の自動代行抑止条件と合わせて説明する。ここでは、自動代行条件の設定内容について説明する。
【００９９】
ここで、自動代行条件の設定内容の、プリンタエラー、プリンタワーニング、ポートエラー、印刷待ちジョブ数、印刷待ちジョブサイズ、及び印刷待ちジョブトータルページについて説明する。
【０１００】
自動代行条件にプリンタエラーが設定されていると、印刷したプリンタデバイスにおいて、「用紙なし」などのデバイスエラーが発生した場合に自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。自動代行条件にプリンタワーニングが設定されていると、印刷したプリンタデバイスにおいて、トナー残量が少ないなどのデバイスワーニングの状態が発生した場合に自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。
【０１０１】
自動代行条件にポートエラーが設定されていると、印刷したプリンタに対応したプロキシ出力ポート７１２Ａまたは７１２Ｂにエラー状態が発生した場合に自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。
【０１０２】
印刷待ちジョブ数は、デバイスからの出力されるのを待たされているジョブの数であり、自動代行条件に印刷待ちジョブ数が設定されているときに、印刷待機ジョブの数を越えると自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。印刷待ちジョブサイズは、デバイスからの出力されるのを待たされているジョブの総サイズであり、自動代行条件に印刷待ちジョブサイズが設定されているときに、印刷待機ジョブの総サイズを越えると自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。
【０１０３】
印刷待ちジョブトータルページは、デバイスからの出力されるのを待たされているジョブの総ページ数であり、自動代行条件に印刷待ちジョブサイズが設定されているときに、印刷待機ジョブの総ページ数を越えると、自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。
【０１０４】
また、これらの条件は、複数同時に設定することも可能である。
【０１０５】
ＩＩＩ．自動代行抑止条件
図１６は、自動代行機能を持つロジカルキュー（論理プリンタ管理）７０５に設定される自動代行抑止条件を示す図である。
【０１０６】
自動代行抑止条件とは、ここで設定される条件に一致する場合に、自動代行を行わずにユーザ指示により、代行をするか／しないかを選択できる手動代行処理に以降する条件に相当する。よって、本実施形態において説明する自動代行抑止条件とは、手動代行条件のことである。
【０１０７】
まず、自動代行条件の設定方法について説明する。図１３から図１８はロジカルキュー（論理プリンタ管理）７０５に自動代行条件を設定するユーザインターフェース画面を表している。
【０１０８】
図１３の画面からグループプリンタドライバ６０３のロジカルキュー（ここではＯｕｔｐｕｔ　Ｍａｎａｇｅｒプリンタ）を選択すると、前述したように、図１４のユーザインターフェース画面に表示が切り替わり、ロジカルキューの一覧が表示される。出力方法として自動代行条件を設定するロジカルキューを選択し、図１４の編集ボタンを押下することにより図１７の画面が表示される。
【０１０９】
自動代行条件を設定するには、図１７のユーザインターフェース画面においてプリンタオプションボタン（本発明の自動代行条件設定手段）を押下することで、図１８に示すユーザインターフェース画面が表示され、各条件のチェックボックスをチェックすることにより自動代行条件を設定することができる。この図１８のユーザインターフェース画面で設定された自動代行条件は、選択されたロジカルキュー（論理プリンタ管理）７０５に設定され、ロジカルキュー（論理プリンタ管理）７０５により管理される。
【０１１０】
また、図１９は、印刷方法として自動代行モードが選択されている場合に表示される画面であり、自動代行モードの場合に、ロジカルキュー（論理プリンタ管理）７０５に対して自動代行抑止条件（手動代行条件）を設定することが可能となっている。この自動代行抑止条件（手動代行条件）は、ロジカルキューに対して設定されるものであり、各メンバプリンタで個別に設定するものではい。自動代行抑止条件（手動代行条件）を設定するには、図１７のユーザインターフェース画面において代行設定ボタン（本発明の手動代行条件設定手段）を押下することで、図１９に示すユーザインターフェース画面が表示され、各条件のチェックボックスをチェックすることにより自動代行抑止条件（手動代行条件）を設定することができる。
【０１１１】
この図１９のユーザインターフェース画面で設定された自動代行抑止条件（手動代行条件）は、選択されたロジカルキュー（論理プリンタ管理）７０５に設定され、ロジカルキュー（論理プリンタ管理）７０５により管理される。自動代行抑止条件は、ロジカルキュー（論理プリンタ管理）７０５で受け付けられたジョブの情報に設定されもので、前述したようにプリンタデバイスで自動代行条件に設定された状態が発生した場合に、自動で代行処理を行わず、手動で代行印刷処理を行うようにするための条件である。
【０１１２】
以下、自動代行抑止条件の設定内容である、用紙なし、用紙詰まり、ドアオープン、トレイフル、オフライン、キャリブレーションについて説明する。
【０１１３】
自動代行抑止条件に「用紙なし」が設定されていると、印刷したプリンタデバイスにおいて、「用紙なし」などのデバイスエラーが発生したことをジョブ制御プリントサービス６２２が認識した場合には自動代行印刷処理が行われず、ジョブ制御プリントサービス６２２は、図２０に示されるような代行の通知を表すポップアップダイアログをディスプレイ２０７に表示させる。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。
【０１１４】
図２０のポップアップダイアログにおいて、代行先の選択ボタンが押下されることにより手動代行が指示されると、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１１５】
ここで、図２１は、手動代行時に表示されるポップアップダイアログを示す図であり、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。また、自動代行印刷は汎用印刷ファイルを使用した印刷であるため図２１にあるようにＰＤＬ形式が異なる種類のデバイスを代行印刷先から選択することが可能である。
【０１１６】
自動代行抑止条件に「用紙詰まり」が設定されていると、印刷したプリンタデバイスにおいて、「用紙詰まり」などのデバイスエラーが発生した場合にも同様に、自動代行印刷処理が行われず、図２０に示されるような代行の通知を表すポップアップダイアログが表示される。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。代行処理を行うと決定した場合には、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１１７】
自動代行抑止条件に「ドアオープン」が設定されていると、印刷したプリンタデバイスにおいて、「ドアオープン」などのデバイスエラーが発生した場合にも同様に、自動代行印刷処理が行われず、図２０に示されるような代行の通知を表すポップアップダイアログが表示される。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。代行処理を行うと決定した場合には、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１１８】
自動代行抑止条件に「トレイフル」が設定されていると、印刷したプリンタデバイスにおいて、「トレイフル」などのデバイスエラーが発生した場合にも同様に、自動代行印刷処理が行われず、図２０に示されるような代行の通知を表すポップアップダイアログが表示される。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。代行処理を行うと決定した場合には、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１１９】
自動代行抑止条件に「オフライン」が設定されていると、印刷したプリンタデバイスにおいて、「オフライン」などのデバイス状態が発生した場合にも同様に、自動代行印刷処理が行われず、図２０に示されるような代行の通知を表すポップアップダイアログが表示される。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。代行処理を行うと決定した場合には、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１２０】
自動代行抑止条件に「キャリブレーション」が設定されていると、印刷したプリンタデバイスにおいて、「キャリブレーション」などのデバイス状態が発生した場合にも同様に、自動代行印刷処理が行われず、図２０に示されるような代行の通知を表すポップアップダイアログが表示される。このポップアップダイアログは印刷したジョブの代行処理を行うか、または、そのまま印刷を継続するかの動作を決定することが可能である。代行処理を行うと決定した場合には、図２１に示されるような手動代行ポップアップダイアログが表示され、ユーザが印刷したジョブの代行印刷先の選択や、代行印刷するページ、部数、ジョブの削除やそのまま印刷を継続するなどの動作を決定することが可能となる。
【０１２１】
また、これらの条件は、複数同時に設定することも可能である。
【０１２２】
ＩＶ．代行条件
図２２は、代行機能を持つプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに設定される代行条件を示す図である。なお、本実施形態では、ＰＤＬドライバ６０２からのプリントジョブに対する代行印刷は、自動代行印刷を行わず、手動代行印刷を行うよう構成されている。よって、以下の実施形態では、図２２の代行条件を手動代行条件として説明するが、これに限るものではなく、自動代行処理を行うべく自動代行条件として扱ってもよい。少なくとも図２２は、プリンタキュー（物理プリンタ管理）７２２に設定される代行条件であればよい。
【０１２３】
図２３、図２４、図２５、及び図２６は、プリンタキュー（物理プリンタ管理）７２２に手動代行条件を設定するユーザインターフェース画面を表している。ここで、ＰＤＬドライバ６０２の出力先のポートがジョブ制御ポートモニタ６２１に設定されている場合に、本発明の印刷ジョブ制御システム（ジョブ制御ポートモニタ６２１、ジョブ制御プリントサービス６２２、プリントマネージャ６２３を含む）がＰＤＬドライバ６０２からのＰＤＬ形式の印刷データを管理し、プリンタデバイス６５０でエラーが発生した場合に、印刷データを代行印刷することができる。このように、ＰＤＬドライバ６０２から入力されたプリントジョブを代行印刷するための設定が、物理プリンタ管理の設定情報に相当する。
【０１２４】
図２３のユーザインターフェース画面からプリンタキュー（物理プリンタ管理：ここではプリンタ）を選択すると、プリンタドライバのインストールと対応するポートを設定すべく、図２４に示すユーザインターフェース画面が表示される。図２４のユーザインターフェース画面では、本発明の印刷ジョブ制御システム７００に出力先のポートが設定されているＰＤＬドライバのプリンタキューの一覧が表示される。このプリンタキューの一覧から１つのプリンタ名を選択している状態で、編集ボタンを押下することにより図２５の画面が表示される。
【０１２５】
図２５の画面では、選択されたプリンタキューに対するプリンタ名、ポート名、及びプリンタドライバ名が表示される。手動代行条件を設定するには、図２５のプリンタオプションボタン（手動代行設定手段）を押下することで表示される図２６のユーザインターフェース画面を用いて行われる。つまり、プリンタキュー（物理プリンタ管理）毎に、手動代替条件を設定することが可能になっている。図２６のユーザインターフェース画面は、ロジカルキューの代行条件のように複数種類の手動代行条件を設定することが可能になっている。これにより設定された手動代行条件は、選択されたプリンタキュー（物理プリンタ管理）７２２に設定され、ＨＤ２０５に記憶されて、各プリンタキュー（物理プリンタ管理）７２２により管理される。
【０１２６】
手動代行条件は、プリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂで受け付けられたプリントジョブの情報に設定されもので、印刷を行ったプリンタデバイスにおいて「用紙なし」などのエラーが発生した場合、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する条件である。
【０１２７】
ここで、代行条件の設定内容の、プリンタエラー、プリンタワーニング、ポートエラー、印刷待ちジョブ数、印刷待ちジョブサイズ、及び印刷待ちジョブトータルページについて説明する。
【０１２８】
図２６の画面で手動代行条件にプリンタエラーが設定されていると、印刷したプリンタデバイスにおいて、「用紙なし」などのデバイスエラーが発生した場合に、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する。また、ＰＤＬドライバ６０２からの印刷処理にかかる手動代行印刷は、デバイスに依存するＰＤＬ形式の印刷データファイルを使用した印刷であるため、図２７にあるように、本印刷ジョブ制御システムに登録されているプリンタキュー（物理プリンタ管理）の中からＰＤＬ形式が同じ種類のデバイスを自動的に抽出し、抽出されたデバイスの中からユーザは代行印刷先を選択することになる。
【０１２９】
なお、このデバイス抽出は、ＰＤＬ形式が同じ種類のデバイスとして説明したが、これに限定されるものではなく、同一機種のみ抽出することも考えられる。なぜなら、ＰＤＬ形式が同じ種類のデバイスであれば、確かにＰＤＬファイルを解釈することが可能であるが、デバイスがサポートしている用紙サイズや印字可能領域など、デバイスにより異なっており、代替印刷ができない場合が考えられるからである。
【０１３０】
図２６の画面で手動代行条件にプリンタワーニングが設定されていると、印刷したプリンタデバイスにおいて、トナー残量が少ないなどのデバイスワーニングが発生した場合に、エラー発生であるとジョブ制御プリントサービス６２２が認識し、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する。
【０１３１】
図２６の画面で手動代行条件にポートエラーが設定されていると、印刷したプリンタに対応したプロシキ出力ポート７１２Ａまたは７１２Ｂにエラー状態が発生した場合に、ポート使用不可であるとジョブ制御プリントサービス６２２が認識し、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する。
【０１３２】
印刷待ちジョブ数は、デバイスからの出力されるのを待たされているジョブの数であり、図２６で手動代行条件に印刷待ちジョブ数が設定されているときに、印刷待機ジョブの数を越えると、印刷待ちジョブの個数が指定数以上になったことをジョブ制御プリントサービス６２２が認識し、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する。
【０１３３】
印刷待ちジョブサイズは、デバイスからの出力されるのを待たされているジョブの総サイズであり、図２６で手動代行条件に印刷待ちジョブサイズが設定されているときに、印刷待機ジョブの総サイズを越えると、印刷待ちジョブのサイズが指定サイズ以上になったことをジョブ制御プリントサービス６２２が認識し、図２７に示されるような手動代行ポップアップダイアログが表示され、その後の印刷処理をユーザに決定させる処理に移行する。
【０１３４】
印刷待ちジョブトータルページは、デバイスからの出力されるのを待たされているジョブの総ページ数であり、図２６で手動代行条件に印刷待ちジョブの総ページ数が設定されているときに、印刷待機ジョブの総ページ数を越えると、印刷待ちジョブの総ページ数が指定ページ数以上になったことをジョブ制御プリントサービス６２２が認識し、自動代行印刷処理が行われ、印刷ジョブが異なるプリンタデバイスに印刷される。
【０１３５】
また、これらの条件は、複数同時に設定することも可能である。
【０１３６】
以上説明したような、ロジカルキュー（論理プリンタ管理）７０５に設定される自動代行条件及び自動代行抑止条件（手動代行条件）、また、プリンタキュー（物理プリンタ管理）７２２に設定される手動代行条件は、それぞれのプリンタ管理毎に設定されているが、後述するように、印刷ジョブが投入された場合には、その印刷ジョブに関連付けて設定されることになり、以後、ジョブ制御プリントサービス６２２は、印刷ジョブ毎に、それぞれに関連付けられている代行条件に基づいて、代行処理すべきかを判断する。この処理の詳細は後述する。
【０１３７】
Ｖ．オリジナルジョブ情報
図２８は、オリジナルジョブのジョブ情報（以下、オリジナルジョブ情報と記す）を示す図である。
【０１３８】
このオリジナルジョブ情報は、ユーザがグループプリンタドライバ６０３を選択し印刷指示されたプリントジョブ（つまりオリジナルジョブ）がロジカルキュー（論理プリンタ管理）７０５に渡されるときに印刷ジョブ制御システム７００で作成されるジョブ情報であり、その印刷ジョブのドキュメント名、ジョブＩＤ、メンバジョブＩＤ、自動代行条件、及び自動代行抑止条件などが設定されるものである。
【０１３９】
ドキュメント名は、ユーザが印刷した印刷ジョブのドキュメント名であり、ジョブＩＤは本システムがジョブ毎に割り振るジョブ識別子、メンバジョブＩＤは、オリジナルジョブを元にして作成され、プリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに渡されるジョブのジョブ識別子である。自動代行条件は、ロジカルキュー（論理プリンタ管理）７０５に設定された自動代行条件をロジカルキュー（論理プリンタ管理）７０５が受け付けたジョブに設定する情報であり、自動代行抑止条件は、ロジカルキュー（論理プリンタ管理）７０５に設定された自動代行抑止条件をロジカルキュー（論理プリンタ管理）７０５が受け付けたジョブに設定する情報である。なお、自動代行抑止条件（手動代行条件）は、ロジカルキュー毎に設定可能であるが、本実施形態では、自動代行モードのロジカルキュー（論理プリンタ管理）７０５で設定されている手動代行条件が読み出されて設定される。
【０１４０】
このように、グループプリンタドライバ６０３から汎用印刷ファイルのプリントジョブがジョブ制御ポートモニタ６２１からのジョブ制御プリントサービス６２２に入力された際に、オリジナルジョブ情報として自動代行条件及び自動代行抑止条件（手動代行条件）が論理プリンタ管理７０５から読み出されて設定されるので、それぞれの代行条件がプリントジョブと対応して管理されることになる。
【０１４１】
印刷処理時には、ジョブ制御プリントサービス６２２が汎用印刷ファイルに基づき、ＰＤＬドライバ６０２に描画出力を行い、その結果としてＰＤＬファイルが再びジョブ制御ポートモニタ６２１を介してジョブ制御プリントサービス６２２に入力されるが、このときは既にプリントジョブに対応付けられている代行条件が引き継がれるため、優先度の高いプリンタデバイスでエラー発生等の自動代行条件に合致する状況になり、代行印刷が発生した後も、自動代行条件及び手動代行条件が変更されることなく引き継がれ、代行先のプリンタデバイスで更に同じ代行条件で代行判断を行うことになる。
【０１４２】
ＶＩ．メンバジョブ情報
図２９は、メンバジョブのジョブ情報を示す図である。
メンバジョブは、ユーザがグループプリンタドライバ６０３を選択し印刷指示されたプリントジョブを元に作成された出力単位毎のプリントジョブであり、ジョブ制御プリントサービス６２２がＰＤＬドライバ６０２に対して描画出力した結果、再びジョブ制御ポートモニタ６２１を介してジョブ制御プリントサービス６２２に入力されるプリントジョブに対応する。メンバジョブ情報は、メンバジョブがプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに渡されるときに作成されるジョブ情報であり、その印刷ジョブのドキュメント名、ジョブＩＤ、オリジナルジョブＩＤ、自動代行条件、及び自動代行抑止条件などが設定されるものである。
【０１４３】
ドキュメント名は、ユーザが印刷したオリジナルジョブのドキュメント名から作成されたドキュメント名であり、通常、オリジナルジョブと同じドキュメント名であったり、ドキュメント名の後に番号が割り当てられたものである。ジョブＩＤは、本システムがジョブ毎に割り振るジョブ識別子であり、オリジナルジョブＩＤは、メンバジョブの元となるオリジナルジョブのジョブ識別子であり、自動代行条件は、オリジナルジョブに設定された自動代行条件を引き継いだもので、自動代行抑止条件は、オリジナルジョブに設定された自動代行条件を引き継いだものである。
【０１４４】
このように、図２９に示すメンバジョブ情報の自動代行条件及び自動代行抑止条件（手動代行条件）は、オリジナルジョブ情報の自動代行条件及び自動代行抑止条件（手動代行条件）をそのまま引き継ぐことが、本発明の１つの特徴となっている。
【０１４５】
ＶＩＩ．ＰＤＬジョブ情報
図３０は、ＰＤＬジョブ情報を示す図である。
【０１４６】
ＰＤＬジョブ情報は、ユーザが印刷指示する一般のアプリケーション６０１において、出力先のポートがジョブ制御ポートモニタ６２１に設定されているＰＤＬドライバ６０２を選択し印刷指示したプリントジョブのジョブ情報であり、ここでは、このジョブをＰＤＬジョブと表記する。すなわち、このＰＤＬジョブ情報は、ユーザがＰＤＬドライバを選択し印刷したジョブがプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに渡されるときに作成されるジョブ情報であり、その印刷ジョブのドキュメント名、ジョブＩＤ、及び代行条件などが設定されるものである。
【０１４７】
ドキュメント名はユーザが印刷した印刷ジョブのドキュメント名であり、ジョブＩＤは本システムがジョブ毎に割り振るジョブ識別子であり、代行条件は、図２３〜図２６で説明したプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに設定された代行条件（ここでは手動代行条件）をプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂが受け付けたプリントジョブ（ＰＤＬジョブ）に設定する情報である。
【０１４８】
＜自動代行印刷処理及び手動代行印刷処理における印刷データの流れ＞
図３１は、自動代行印刷処理及び手動代行印刷処理における印刷データの流れを示す図である。
【０１４９】
図中の経路（１）は、アプリケーションＡが、出力先のポートがジョブ制御ポートモニタ６２１に設定されているＰＤＬドライバ６０２Ａを選択し印刷指示を行った印刷ジョブの流れを表している。
【０１５０】
経路（２）は、前記経路（１）で選択されたＰＤＬドライバ６０２Ａに対応するプリンタデバイス６５０Ａにおいて、印刷処理前または印刷処理中にデバイスエラーが発生したことをジョブ制御プリントサービス６２２が認識すると、本システムが持つ代行印刷処理によってジョブ制御プリントサービス６２２が認識したデバイスの状態が、代行条件（手動代行条件）の設定を満たすものかを判断し、代行条件を満たす場合に、プリンタキュー（物理プリンタ管理）７２２Ａからプリンタキュー（物理プリンタ管理）７２２Ｂに印刷ジョブを移動し、プリンタデバイス６５０Ｂに代行印刷されるジョブデータの流れを表している。
【０１５１】
経路（３）は、アプリケーションＢが、グループプリンタドライバ６０３を選択し印刷指示を行った印刷ジョブの流れを表している。
【０１５２】
経路（４）は、経路（３）で選択されたグループプリンタドライバ６０３により生成された汎用印刷ファイルを元にＰＤＬドライバ６０２Ａで作成されたメンバジョブが、プリンタデバイス６５０Ａにおいて印刷処理前または印刷処理中にデバイスエラーが発生したことをジョブ制御プリントサービス６２２が認識すると、本システムが持つ代行印刷処理によってジョブ制御プリントサービス６２２が認識されたデバイスの状態が、自動代行条件の設定を満たすものかを判断し、自動代行条件を満たす場合に、ロジカルキュー７０５が管理する汎用印刷ファイルを元にＰＤＬドライバ６０２Ｂを介して作成される印刷ジョブをプリンタデバイス６５０Ｂに送信することで、再度印刷される印刷ジョブの流れを表している。
【０１５３】
＜本実施形態の代行処理＞
図３２及び図３３は、本実施形態の代行処理を示すフローチャートである。
本実施形態の代行処理では、アプリケーションが印刷指示を行ったプリンタ（論理プリンタまたは物理プリンタ）の代行条件を印刷ジョブに反映させ、代行印刷が実行された場合でも、代行先プリンタの代行条件を基に代行処理を行うのではなく、印刷ジョブに反映された代行条件を基に代行処理を行うことにより、代行されて印刷先のプリンタが変わっても一貫した条件で代行処理が行われることを実現する（前述の課題（１）に対応）。なお、論理プリンタとは、グループプリンタドライバに対応するロジカルキュー（論理プリンタ管理）に相当し、物理プリンタとは、ＰＤＬドライバに対応するプリンタキュー（物理プリンタ管理）に相当する。図３２では、特にアプリケーション６０１からＰＤＬドライバ６０２に印刷指示された場合の処理について説明する。
【０１５４】
まずステップＳ１８０１において、ＰＤＬドライバ６０２が、アプリケーション６０１からＯＳの描画手段を介して描画コマンド（ＤＤＩ関数）を受け付ける。次のステップＳ１８０２において、ＰＤＬドライバ６０２が受け付けた描画コマンドに基づいてＰＤＬ形式の印刷データ（ＰＤＬファイル）を生成し、生成されたＰＤＬファイルをＷｉｎｄｏｗｓ（登録商標）プリントシステム６６０経由でジョブ制御プリントサービス６２２のプリンタキュー（物理プリンタ管理）７２２Ａが受け付ける。
【０１５５】
続くステップＳ１８０３において、ジョブ制御プリントサービス６２２は、プリンタキュー（物理プリンタ管理）７２２Ａに設定されている図２２の代行条件（ＰＤＬ代行条件であり、本実施形態では手動代行条件に相当する）を、ステップＳ１８０２で受け付けた印刷データの図３０のＰＤＬジョブ情報に設定する。そして、ステップＳ１８０４において、ジョブ制御プリントサービス６２２は、出力されるデバイスの状態を自身で監視するか、またはサーバ・マシンのデバイス情報コントロールモジュール６３１で監視されたプリンタデバイス６５０の状態をジョブ制御サーバ６３０を介して通知されることにより確認して、認識されたプリンタデバイスの状態がプリントジョブに設定されたＰＤＬジョブ情報（図２２）の代行条件に当てはまるかどうかを判断する。
【０１５６】
例えば、プリンタデバイスが「用紙なし」エラーの状態で、代行条件に「プリンタエラー」が設定されていれば、代行条件が満たされたこととなる。代行条件に「プリンタエラー」が設定されていなければ、代行条件が満たされていないこととなる。代行条件が満たされていないと判断されると、ジョブ制御プリントサービス６２２はプロシキ出力ポート７１２Ａに印刷指示を行い、ステップＳ１８０５に処理を移行する。
【０１５７】
ステップＳ１８０５において、プロシキ出力ポート７１２Ａまたは７１２Ｂが印刷ジョブを受け付け、図３３のステップＳ１８０６において、サーバ・マシン（サーバ装置）のジョブ制御サーバ６３０に入力ジョブ情報を渡し、スケジュール要求を行う。サーバ装置では、デバイス情報コントロールモジュール６３１によりプリンタデバイス６５０の印刷状況を監視し、プリンタデバイスが印刷を受け付けれる状態であると判断すると、ジョブ制御サーバ６３０は、クライアントマシン６００のジョブ制御プリントサービス６２２にジョブ送信指示を発行する。
【０１５８】
その後のステップＳ１８０７において、ジョブ制御プリントサービス６２２がジョブ制御サーバ６３０からジョブ送信指示を受け付けると、ステップＳ１８０８において、ジョブ制御プリントサービス６２２は、プリンタデバイスに対して、プリンタキュー７２２Ａに保持されている印刷データの転送を開始する。さらに、ステップＳ１８０９において、ジョブ制御プリントサービス６２２は、印刷ジョブの送信先のプリンタデバイス６５０でエラーが発生したかをジョブ制御プリントサービス６２２が認識することにより、代行条件が満たされるかを判断する。具体的には、ジョブ制御プリントサービス６２２は、印刷ジョブが出力されるデバイスの状態を自身で監視するか、またはサーバ・マシンのデバイス情報コントロールモジュール６３１で監視されたプリンタデバイス６５０の状態についての通知をジョブ制御サーバ６３０を介して受け取ることにより確認し、認識されたプリンタデバイスの状態がプリントジョブに設定されたＰＤＬジョブ情報（図２２）の代行条件に当てはまるかどうかを判断する。代行条件が満たされていないと判断される場合には、ステップＳ１８１０に処理を移行し、プリンタデバイスから印刷完了の通知を監視する。
【０１５９】
プリンタデバイスから印刷完了通知を受け付けると、処理をステップＳ１８１１に移行する。ステップＳ１８１１においてプリンタデバイスにおいて印刷が終了したことにより、ジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２から受け取ったＰＤＬファイルの印刷データや、印刷ジョブに関係するＰＤＬジョブ情報などをＨＤ２０５から削除し処理を終了する。
【０１６０】
ステップＳ１８０４において、代行条件が満たされた場合には、ステップＳ１８１２に処理を移行し、ジョブ制御プリントサービス６２２は、印刷ジョブを生成したＰＤＬドライバ６０２に対応するプリンタデバイスと同一機種のプリンタデバイスを管理している複数のプリンタデバイスから抽出し、図２７のような代行ポップアップダイアログを表示し、ユーザに印刷ジョブの以降の処理を選択させる。また、前述したように、抽出するプリンタデバイスは最初に印刷依頼を行うプリンタデバイスと同一機種に必ずしも限定する必要はなく、同じＰＤＬを解釈可能なプリンタデバイスを抽出することで対応してもよい。
【０１６１】
ステップＳ１８１３において、ジョブ制御プリントサービス６２２は、代行印刷、続行、印刷中止のいずれか選択されたかを判断する。ユーザが代行ポップアップダイアログで、代行先プリンタを選び、印刷ジョブを代行することを選択した場合、処理をステップＳ１８１４に移行する。ステップＳ１８１４では、代行管理Ｐｌｕｇｉｎが代行処理を行う。またステップＳ１８１３で、ジョブ制御プリントサービス６２２が続行指示が選択されたと判断した場合には、処理をステップＳ１８０５に移行し、ステップＳ１８１３で、印刷中止指示が選択されたと判断した場合には、処理をステップＳ１８１１に移行する。
【０１６２】
ステップＳ１８１４において、ジョブ制御プリントサービス６２２は、印刷ジョブを代行先プリンタに対応した、プリンタキュー（物理プリンタ管理）７２２Ｂに代行する。具体的には、代行前のプリンタキュー（物理プリンタ管理）７２２Ａに管理されているＰＤＬファイルの印刷データを代行先のプリンタキュー（物理プリンタ管理）７２２Ｂに移動し、プリンタキュー（物理プリンタ管理）７２２Ｂ用のＰＤＬジョブ情報を作成し、代行処理前のＰＤＬジョブ情報に設定されている印刷ジョブの代行条件を代行先に作成したＰＤＬジョブ情報に設定し、代行処理前のプリンタキュー（物理プリンタ管理）７２２Ａに管理されている印刷ジョブに関係する印刷データ、ジョブ情報を削除する。
【０１６３】
そして、ステップＳ１８１５において、ジョブ制御プリントサービス６２２は、代行先プリンタキュー（物理プリンタ管理）７２２Ｂが印刷処理を開始し、処理をステップＳ１８０４に移行する。
【０１６４】
ステップＳ１８１３において、ジョブ制御プリントサービス６２２が削除が選択されたと判断した場合には、処理をステップＳ１８１１に移行する。ステップＳ１８１３において、ジョブ制御プリントサービス６２２が継続が選択されたと判断した場合には、処理をステップＳ１８０５に移行する。
【０１６５】
ステップＳ１８０９において、ジョブ制御プリントサービス６２２が、印刷ジョブの送信先のプリンタデバイスでエラーが発生し、代行条件（手動代行）が満たされたと判断した場合には、ステップＳ１８１７に処理を移行し、ジョブ制御プリントサービス６２２は、図２７のような手動代行ポップアップダイアログを表示し、ユーザに印刷ジョブの以降の処理を選択させる。
【０１６６】
ステップＳ１８１７において、ジョブ制御プリントサービス６２２が、ユーザが代行ポップアップダイアログで代行先プリンタを選ぶことで印刷ジョブを代行することを選択したと判断した場合は、処理をステップＳ１８１８に移行する。
【０１６７】
ステップＳ１８１８では、代行管理Ｐｌｕｇｉｎが代行処理を行う。つまり、印刷ジョブを代行先プリンタに対応したプリンタキュー（物理プリンタ管理）７２２Ｂに代行する。具体的には、代行前のプリンタキュー（物理プリンタ管理）７２２Ａに管理されているＰＤＬファイルの印刷データを代行先のプリンタキュー（物理プリンタ管理）７２２Ｂに移動し、プリンタキュー（物理プリンタ管理）７２２Ｂ用のＰＤＬジョブ情報を作成し、代行処理前のＰＤＬジョブ情報に設定されている印刷ジョブの代行条件を代行先に作成したＰＤＬジョブ情報に設定し、代行処理前のプリンタキュー（物理プリンタ管理）７２２Ａに管理されている印刷ジョブに関係する印刷データ、ジョブ情報を削除する。
【０１６８】
次のステップＳ１８１９において、ジョブ制御プリントサービス６２２は、代行先プリンタキュー（物理プリンタ管理）７２２Ｂが印刷処理を開始し、処理をステップＳ１８０５に移行する。
【０１６９】
ステップＳ１８１７において、ジョブ制御プリントサービス６２２が、ユーザにより印刷中止（削除）が選択されたと判断した場合には、処理をステップＳ１８１１に移行する。ステップＳ１８１７において、ジョブ制御プリントサービス６２２が、ユーザにより続行（継続）が選択された場合には、処理をステップＳ１８１０に移行する。
【０１７０】
このように本実施形態では、代行処理によりジョブが別のプリンタに移動された場合でも、ジョブの代行条件を引き継ぐことによって、代行印刷される毎に、代行先のプリンタによって代行条件が変わることを防ぎ、ジョブの種類や性質によって予期せぬ代行結果とならない。
［第二実施形態］
図３４及び図３５は、本発明の第二実施形態に係る代行処理を示すフローチャートである。
【０１７１】
本実施形態では、汎用印刷データを出力するグループプリンタドライバ６０３から、ジョブ制御プリントサービス６２２を介して、プリンタデバイスに合った出力データを吐き出すプリンタドライバであるＰＤＬドライバ６０２に再出力され作成されたＰＤＬファイルの印刷ジョブは、汎用印刷データを出力するグループドライバドライバのロジカルキューで設定されているプリンタの自動代行条件で動作するように印刷ジョブに設定し、印刷ジョブに対応して管理されている代行条件で代行処理を行うことにより、ユーザが予期しない自動代行条件で動作しないようにする（前述の課題（２）に対応）。
【０１７２】
また、プリンタデバイスで発生したある種のエラーの場合には自動で代行を行わず、例えばオフラインの場合には自動代行せず手動代行に移行することが可能なように設定し、ユーザに現状発生しているエラーを通知し、同じプリンタで印刷を継続させるかどうか、別のプリンタに代行印刷するかどうか、印刷をキャンセルするかどうかなどの選択を、ダイアログを表示させることによりユーザに判断させるものである（前述の課題（３）に対応）。
【０１７３】
まずステップＳ１９０１において、グループプリンタドライバ６０３がアプリケーション６０１からＯＳの描画手段を介して描画コマンド（ＤＤＩ関数）を受け付ける。次のステップＳ１９０２において、グループプリンタドライバ６０３が受け付けた描画コマンドに基づいて、汎用印刷ファイルの印刷データをＷｉｎｄｏｗｓ（登録商標）プリントシステム６６０経由でジョブ制御プリントサービス６２２のロジカルキュー（論理プリンタ管理）７０５が受け付ける。
【０１７４】
続くステップＳ１９０３において、ジョブ制御プリントサービス６２２は、ロジカルキュー（論理プリンタ管理）７０５に設定されている図１５の自動代行条件、図１６の自動代行抑止条件を、ステップＳ１９０２で受け付けた印刷データに関係する図２８のオリジナルジョブ情報に設定する。さらに、ステップＳ１９０４において、ジョブ制御プリントサービス６２２の代行管理プラグインが印刷ジョブを受け付ける。そして、ステップＳ１９０５において代行管理プラグインは、まず図１１のロジカルキュー情報に設定された、印刷先を示すメンバプリンタ名の中から優先度の高いプリンタ名を取得する。ここではメンバプリンタ名１に設定されたプリンタに対応するプリンタデバイスからプリンタデバイスの状態を取得し、ジョブに設定された図２８の自動代行条件に当てはまるかどうかを判断する。
【０１７５】
例えば、プリンタプリンタデバイスが「用紙なし」エラーの状態で、自動代行条件に「プリンタエラー」が設定されていれば、自動代行条件が満たされたこととなる。自動代行条件に「プリンタエラー」が設定されていなければ、自動代行条件が満たされていないこととなる。自動代行条件が満たされていないと判断されると、ステップＳ１９０６に処理を移行し、ジョブ制御プリントサービス６２２は、自動代行条件が満たされていないと判断された優先度の高いメンバプリンタに対応したＰＤＬドライバ６０２に印刷することをデスプーラ７０１に指示を行う。
【０１７６】
その後のステップＳ１９０７では、デスプーラ７０１が指示されたＰＤＬドライバ６０２にＧＤＩ関数の描画出力処理を行い、その結果として、ＰＤＬドライバ６０２がＰＤＬファイルの印刷データを生成する。続くステップＳ１９０８において、ジョブ制御プリントサービス６２２のプリンタキュー（物理プリンタ管理）７２２Ａは、ＰＤＬドライバ６０２が生成したＰＤＬファイルの印刷ジョブを受け付ける。プリンタキュー（物理プリンタ管理）７２２Ａが印刷ジョブを受け付けるとプリンタキュー（物理プリンタ管理）７２２Ａがジョブ情報を作成するが、これが図２９のメンバジョブ情報となる。さらに、ステップＳ１９０９において、プリンタキュー（物理プリンタ管理）７２２Ａは、ロジカルキュー（論理プリンタ管理）７０５で管理されている図２８に示したオリジナルジョブ情報から図１５の自動代行条件、図１６の自動代行抑止条件を取得し、図２９のメンバジョブ情報に設定する。
【０１７７】
プロシキ出力ポート７１２Ａにジョブを渡す前にステップＳ１９１０において、ジョブ制御プリントサービス６２２は、対応するプリンタデバイスからプリンタデバイスの状態を取得するか、またはサーバ・マシンのデバイス情報コントロールモジュール６３１で監視されたプリンタデバイス６５０の状態についての通知をジョブ制御サーバ６３０を介して受け取ることによりプリンタデバイスの状態を確認し、認識されたプリンタデバイスの状態がメンバジョブ情報に設定された図２８の自動代行条件に当てはまるかどうかを判断する。自動代行条件が満たされていない場合には、ステップＳ１９１１に処理を移行する。
【０１７８】
ステップＳ１９１１において、プロシキ出力ポート７１２Ａが印刷ジョブを受け付けると、図３５のステップＳ１９１２において、ジョブ制御サーバ６３０に入力ジョブ情報を渡し、スケジューリング要求を行わせ、ジョブ制御サーバ６３０からジョブ送信指示が来るのを待機する。サーバ装置では、デバイス情報コントロールモジュール６３１によりプリンタデバイス６５０の印刷状況を監視し、プリンタデバイスが印刷を受け付けれる状態であると判断すると、ジョブ制御サーバ６３０は、クライアントマシン６００のジョブ制御プリントサービス６２２にジョブ送信指示を発行する。
【０１７９】
そして、ステップＳ１９１３において、ジョブ制御プリントサービス６２２がジョブ制御サーバ６３０からジョブ送信指示を受け付けると、ステップＳ１９１４において、ジョブ制御プリントサービス６２２は、プリンタデバイスに対して、プリンタキュー７２２Ａに保持されている印刷ジョブの転送を開始する。
【０１８０】
さらにステップＳ１９１５において、ジョブ制御プリントサービス６２２は、印刷ジョブの送信先のプリンタデバイス６５０でエラーが発生したかを認識することにより、代行条件が満たされるかを判断する。具体的には、ジョブ制御プリントサービス６２２は、対応するプリンタデバイスからプリンタデバイスの状態を取得するか、またはサーバ・マシンのデバイス情報コントロールモジュール６３１で監視されたプリンタデバイス６５０の状態についての通知をジョブ制御サーバ６３０を介して受け取ることによりプリンタデバイスの状態を確認し、メンバジョブ情報に設定された図２８の自動代行条件に当てはまるかどうかを判断する。自動代行条件が満たされていない場合には、ステップＳ１９１６に処理を移行する。
【０１８１】
ステップＳ１９１６において、ジョブ制御プリントサービス６２２は、直接もしくはサーバ装置経由でプリンタデバイスから印刷完了の通知を監視する。プリンタデバイスから印刷完了通知を受け付けると、処理をステップＳ１９１７に移行し、ジョブ制御プリントサービス６２２は、ＰＤＬドライバから受け取った印刷データや、印刷ジョブに関係するメンバジョブ情報などを削除し、ステップＳ１９１８において、オリジナルジョブの汎用印刷データ、オリジナルジョブ情報を削除し、処理を終了する。
【０１８２】
ステップＳ１９０５において、ジョブ制御プリントサービス６２２が自動代行条件が満たされていると判断した場合には、処理をステップＳ１９１９に移行する。ステップＳ１９１９において、ジョブ制御プリントサービス６２２は、オリジナルジョブ情報に設定された、自動代行抑止条件とプリンタデバイスの状態を比較し、自動代行抑止条件に当てはまるかを判断する。
【０１８３】
例えば、プリンタプリンタデバイスが「用紙なし」エラーの状態で、自動代行抑止条件に「用紙なし」が設定されていれば、自動代行抑止条件（手動代行条件）が満たされたこととなる。自動代行条件に「用紙なし」が設定されていなければ、自動代行抑止条件（手動代行条件）が満たされていないこととなる。自動代行抑止条件が満たされていないと判断されると、自動代行処理が行われることになる。ステップＳ１９２０において出力先プリンタ選択処理を行う。
【０１８４】
ステップＳ１９２０において、ジョブ制御プリントサービス６２２は、自動代行処理を行うため、図１１のロジカルキュー情報に設定された印刷先を示すメンバプリンタ名の中から現在印刷されようとしていたメンバプリンタの次に優先度の高いプリンタ名を取得する。そしてステップＳ１９０５に処理を移行し、ジョブ制御プリントサービス６２２は、選択されたメンバプリンタに対応するプリンタデバイスのプリンタデバイス状態との代行条件を判断する。
【０１８５】
一方、ステップＳ１９１９において、ジョブ制御プリントサービス６２２により代行抑止条件が満たされていると判断された場合には、ステップＳ１９２１において、ジョブ制御プリントサービス６２２は、図２０のようなポップアップダイアログを表示し、またユーザから代行先の選択ボタンが押下されることに応じて、図２１のような手動代行ポップアップダイアログを表示し、ユーザに印刷ジョブの以降の処理を選択させる。
【０１８６】
ステップＳ１９２２において、ジョブ制御プリントサービス６２２は、図２０の続行ボタン、図２１の代行印刷ボタン、印刷中止ボタンのいずれかがユーザにより選択指示されたかを判断する。図２１の手動代行ポップアップダイアログ画面は、前述したように、本印刷処理系が汎用印刷ファイルによるロジカルキュー経由の印刷処理であるため、代行先のプリンタデバイスを任意に選択できるため、ジョブ制御プリントサービス６２２が管理しているプリンタデバイスの一覧を表示することになる。
【０１８７】
ユーザが代行ポップアップダイアログで、代行先プリンタを選び、印刷ジョブを代行することを選択した場合、処理をステップＳ１９０６に移行し、ジョブ制御プリントサービス６２２は、ユーザが選択したプリンタに印刷することをデスプーラ７０１に指示する。これにより、選択されたプリンタに対応するＰＤＬドライバ６０２に対して、デスプーラ７０１は、ロジカルキュー（論理プリンタ管理）７０５で管理されている汎用印刷ファイルに基づいて、ＧＤＩ関数の描画コマンドをＯＳの描画手段を介して描画出力し、その結果、代行用のＰＤＬドライバ６０２により生成されたＰＤＬファイルの印刷データをジョブ制御プリントサービス６２２が受け取り、前述した印刷処理を行う。
【０１８８】
ステップＳ１９２２において、ジョブ制御プリントサービス６２２が、ユーザが継続することを選択したと判断した場合には、代行印刷処理を行わず処理をステップＳ１９０６に移行し印刷処理を継続する。ステップＳ１９２２において、ジョブ制御プリントサービス６２２が、ユーザが削除することを選択したと判断した場合には、処理をステップＳ１９１７に移行し、ジョブ削除の処理を行う。
【０１８９】
ステップＳ１９１０において、ジョブ制御プリントサービス６２２が、代行条件が満たされていると判断した場合には、処理をステップＳ１９２３に移行する。ステップＳ１９２３において、ジョブ制御プリントサービス６２２は、メンバジョブ情報に設定された、自動代行抑止条件とプリンタデバイスの状態とを比較し、自動代行抑止条件に当てはまるかを判断する。自動代行抑止条件が満たされていないと判断されると、自動代行処理が行われることになる。
【０１９０】
ステップＳ１９２０において、ジョブ制御プリントサービス６２２は、出力先プリンタ選択処理を行う。そして、ステップＳ１９２３において、ジョブ制御プリントサービス６２２は、自動代行抑止条件が満たされていると判断されるとステップＳ１９２４に移行する。ステップＳ１９２４において、前述したように、ジョブ制御プリントサービス６２２は、図２０と図２１のような代行ポップアップダイアログを表示し、ユーザに印刷ジョブの以降の処理を選択させる。
【０１９１】
ステップＳ１９２５において、ユーザが代行ポップアップダイアログで、代行先プリンタを選び、印刷ジョブを代行することを選択した場合、処理をステップＳ１９２６に移行し、ジョブ制御プリントサービス６２２は、現在印刷しようとしていたＰＤＬファイルの印刷ジョブを削除する。そして、ステップＳ１９０６において、ジョブ制御プリントサービス６２２は、ユーザが選択したプリンタに印刷することをデスプーラ７０１に指示する。
【０１９２】
ステップＳ１９２５において、ユーザが続行ボタンを押下することにより継続することを選択した場合には、処理をステップＳ１９１１に移行し、ジョブ制御プリントサービス６２２は、印刷処理を継続する。ステップＳ１９２５において、ユーザが削除することを選択した場合には、処理をステップＳ１９１７に移行し、ジョブ削除の処理を行う。
【０１９３】
ステップＳ１９１５において、ジョブ制御プリントサービス６２２が、代行条件が満たされていると判断した場合には、処理をステップＳ１９２７に移行する。ステップＳ１９２７において、ジョブ制御プリントサービス６２２は、メンバジョブ情報に設定された、自動代行抑止条件とプリンタデバイスの状態とを比較し、自動代行抑止条件（手動代行条件）に当てはまるかを判断する。自動代行抑止条件（手動代行条件）が満たされていないと判断されると、自動代行処理が行われることになる。
【０１９４】
ステップＳ１９２０においてジョブ制御プリントサービス６２２は、自動代行処理を行うべく、前述した方式で優先度の高いプリンタを選択することで、出力先プリンタ選択処理を行う。ステップＳ１９２７において、ジョブ制御プリントサービス６２２により自動代行抑止条件が満たされていると判断されるとステップＳ１９２８に移行する。ステップＳ１９２８において、ジョブ制御プリントサービス６２２は、図２０及び図２１のような代行ポップアップダイアログを表示し、ユーザに印刷ジョブの以降の処理を選択させる。ステップＳ１９２９において、ユーザが代行ポップアップダイアログで、代行先プリンタを選び、印刷ジョブを代行することを選択した場合、処理をステップＳ１９２６に移行し、ジョブ制御プリントサービス６２２は、現在印刷しようとしていた印刷ジョブを削除して、ステップＳ１９０６においてユーザが選択したプリンタに印刷することをデスプーラ７０１に指示する。デスプーラ７０１の処理は前述した処理と同様である。
【０１９５】
ステップＳ１９２９において、ジョブ制御プリントサービス６２２が、ユーザが継続することを選択したと判断した場合には、処理をステップＳ１９１６に移行し、印刷処理を継続する。ステップＳ１９２９において、ジョブ制御プリントサービス６２２が、ユーザが削除することを選択したと判断した場合には、処理をステップＳ１９１７に移行し、ジョブ削除の処理を行う。
【０１９６】
このように本実施形態では、汎用印刷ファイルをもつオリジナルジョブを、ロジカルキューにオリジナルジョブ情報と共に管理しておき、オリジナルジョブから作成され、実際にデバイスに印刷されるデータファイルを持つメンバジョブに、オリジナルジョブ情報に設定されている各代行条件を引き継ぐことによって、実際にデバイスに印刷される場合に、ユーザが選択したプリンタの代行条件（自動代行条件、自動代行抑止条件）によって代行処理が行われる。
【０１９７】
また、自動代行印刷において、自動代行を抑止し手動代行に切り替える自動代行抑止条件を、オリジナルジョブからメンバジョブに引き継ぐことによって、代行印刷され出力先プリンタが変更された場合でも自動代行抑止条件は変わらない。
【０１９８】
なお、本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用してもよい。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０１９９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２００】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２０１】
以上詳細に説明したように本実施形態によれば、外部処理装置に設定されている代行条件を、ジョブデータに関係付けて設定するようにしたので、代行されて出力先の処理装置が変わっても一貫した条件で代行処理を行うことが可能になり、ユーザが望む代行結果を得ることができる。
【０２０２】
さらに、外部処理装置で処理されるデータファイルを有する第二のジョブデータに、汎用処理ファイルを有する第一のジョブデータに設定した代行条件を関係付けて設定するようにしたので、ユーザが選択した処理装置の代行条件によって代行処理を行うことが可能になり、ユーザが汎用処理データを出力する処理装置を出力先に選んでも、予期した代行結果を得ることができる。
【０２０３】
また、外部処理装置で処理されるデータファイルを有する第二のジョブデータに、第一のジョブデータに設定した自動代行抑止条件を関係付けて設定するようにしたので、自動代行が望まれないようなケースの場合には手動代行に移行することが可能になり、ユーザが望む代行結果を得ることができる。
【０２０４】
【発明の効果】
以上説明したように、本発明によれば、印刷装置で印刷すべき印刷ジョブを生成する情報処理装置において、印刷装置における印刷を行わせない条件としての代行条件を設定し、設定された代行条件と印刷装置の状態とに応じて、該印刷装置とは異なる第二の印刷装置で代行印刷すべきかを判断し、代行印刷すべきであると判断された場合に、第二の印刷装置で代行印刷すべく印刷ジョブの送信を行わせる構成を採り、特徴として、該設定された代行条件を、印刷ジョブに関係付けて管理しておき、印刷ジョブ毎に関連付けられている代行条件に基づいて、代行印刷すべきかを判断するので、代行されて出力先の印刷装置が変わっても一貫した条件で代行処理を行うことが可能になり、ユーザが望む代行結果を得ることができる。
【図面の簡単な説明】
【図１】本発明の印刷システムの構成を示すブロック図である。
【図２】図１に示した情報処理装置の構成を説明するブロック図である。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【図５】図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図である。
【図６】アプリケーションから発行された印刷ジョブの処理を示す図である。
【図７】ジョブ制御プリントマネージャ６２３のユーザインターフェース画面の一例を示す図である。
【図８】汎用印刷ファイルの構成の一例を示した図である。
【図９】Ｗｉｎｄｏｗｓ（登録商標）が提供するプリントシステム６６０と印刷ジョブ制御システムにおける印刷ジョブの関係を示す図である。
【図１０】論理プリンタ管理７０５の印刷プロパティを設定するためのユーザインターフェース画面の一例を示す図である。
【図１１】ロジカルキュー（論理プリンタ管理）７０５に設定されたロジカルキュー情報を示す図である。
【図１２】論理プリンタ管理にロジカルキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図１３】論理プリンタ管理にロジカルキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図１４】論理プリンタ管理にロジカルキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図１５】自動代行機能を持つロジカルキュー（論理プリンタ管理）７０５に設定される自動代行条件を示す図である。
【図１６】自動代行機能を持つロジカルキュー（論理プリンタ管理）７０５に設定される自動代行抑止条件を示す図である。
【図１７】論理プリンタ管理にロジカルキュー情報として自動代行条件を設定するためのユーザインターフェース画面の一例を示す図である。
【図１８】自動代行条件を設定するためのユーザインターフェース画面の一例を示す図である。
【図１９】自動代行抑止条件（手動代行条件）を設定するためのユーザインターフェース画面の一例を示す図である。
【図２０】手動代行条件に合致した場合に、代行の通知を表すポップアップダイアログ画面の一例を示す図である。
【図２１】論理プリンタ管理で管理される印刷ジョブの手動代行時に表示される代行先を選択するためのユーザインターフェース画面の一例を示す図である。
【図２２】代行機能を持つプリンタキュー（物理プリンタ管理）７２２Ａ，７２２Ｂに設定される代行条件を示す図である。
【図２３】物理プリンタ管理にプリントキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図２４】物理プリンタ管理にプリントキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図２５】物理プリンタ管理にプリントキュー情報を設定するためのユーザインターフェース画面の一例を示す図である。
【図２６】手動代行条件を設定するためのユーザインターフェース画面の一例を示す図である。
【図２７】物理プリンタ管理で管理される印刷ジョブの手動代行時に表示される代行先を選択するためのユーザインターフェース画面の一例を示す図である。
【図２８】オリジナルジョブ情報を示す図である。
【図２９】メンバジョブのジョブ情報を示す図である。
【図３０】ＰＤＬジョブ情報を示す図である。
【図３１】自動代行印刷処理及び手動代行印刷処理における印刷データの流れを示す図である。
【図３２】第一実施形態の代行処理を示すフローチャートである。
【図３３】図３２の続きのフローチャートである。
【図３４】本発明の第二実施形態に係る代行処理を示すフローチャートである。
【図３５】図３４の続きのフローチャートである。
【符号の説明】
６００　クライアントマシン
６０１　アプリケーションプログラム
６０２　ＰＤＬドライバ
６０３　グループプリンタドライバ
６０４　Ｗｉｎｄｏｗｓ（登録商標）スプーラ
６２１　ジョブ制御ポートモニタ
６２２　ジョブ制御プリントサービス
６２３　ジョブ制御プリントマネージャ
６３０　ジョブ制御サーバ
６３１　デバイス情報コントロールモジュール
６３３　ジョブ制御マネージメントコンソール
６５０　プリンタデバイス
【図１】
2004054909.tif 000003
【図２】
2004054909.tif 000004
【図３】
2004054909.tif 000005
【図４】
2004054909.tif 000006
【図５】
2004054909.tif 000007
【図６】
2004054909.tif 000008
【図７】
2004054909.tif 000009
【図８】
2004054909.tif 000010
【図９】
2004054909.tif 000011
【図１０】
2004054909.tif 000012
【図１１】
2004054909.tif 000013
【図１２】
2004054909.tif 000014
【図１３】
2004054909.tif 000015
【図１４】
2004054909.tif 000016
【図１５】
2004054909.tif 000017
【図１６】
2004054909.tif 000018
【図１７】
2004054909.tif 000019
【図１８】
2004054909.tif 000020
【図１９】
2004054909.tif 000021
【図２０】
2004054909.tif 000022
【図２１】
2004054909.tif 000023
【図２２】
2004054909.tif 000024
【図２３】
2004054909.tif 000025
【図２４】
2004054909.tif 000026
【図２５】
2004054909.tif 000027
【図２６】
2004054909.tif 000028
【図２７】
2004054909.tif 000029
【図２８】
2004054909.tif 000030
【図２９】
2004054909.tif 000031
【図３０】
2004054909.tif 000032
【図３１】
2004054909.tif 000033
【図３２】
2004054909.tif 000034
【図３３】
2004054909.tif 000035
【図３４】
2004054909.tif 000036
【図３５】
2004054909.tif 000037