(57)【要約】【課題】  代行印刷は固定的に行われており、データやジョブの種類に応じて、代行方法を切り替えることがなかった。【解決手段】  代行印刷を行わせる際に、データの種類を判別し、判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理手段とを有すること。【選択図】  図１７
2006202332.tif 000002
【特許請求の範囲】
【請求項１】
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させる手段と、
前記部数を指定する画面で指定された部数の代行印刷を行わせる手段と、
前記ページを指定する画面で指定されたページの代行印刷を行わせる手段とを有することを特徴とする代行印刷処理装置。
【請求項２】
前記表示させる手段は、代行印刷を行わせる際に、部数指定のジョブである場合、部数を指定する画面させ、部数指定のジョブでない場合、ページを指定する画面を表示させることを特徴とする請求項１記載の代行印刷処理装置。
【請求項３】
代行印刷を行わせる際に、データの種類を判別する判別手段と、
前記判別手段による判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理手段とを有することを特徴とする代行印刷処理装置。
【請求項４】
前記処理手段は、前記判別手段によりデータの種類が汎用的なデータであると判別された場合、部分代行印刷処理を行わせ、前記判別手段によりデータの種類が汎用的なデータでないと判別された場合、全部代行印刷処理を行わせることを特徴とする請求項３記載の代行印刷処理装置。
【請求項５】
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させるステップと、
前記部数を指定する画面で指定された部数の代行印刷を行わせるステップと、前記ページを指定する画面で指定されたページの代行印刷を行わせるステップとを有することを特徴とする代行印刷処理方法。
【請求項６】
前記表示させるステップは、代行印刷を行わせる際に、部数指定のジョブである場合、部数を指定する画面させ、部数指定のジョブでない場合、ページを指定する画面を表示させることを特徴とする請求項５記載の代行印刷処理方法。
【請求項７】
代行印刷を行わせる際に、データの種類を判別する判別ステップと、
前記判別ステップによる判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理ステップとを有することを特徴とする代行印刷処理方法。
【請求項８】
前記処理ステップは、前記判別ステップによりデータの種類が汎用的なデータであると判別された場合、部分代行印刷処理を行わせ、前記判別ステップによりデータの種類が汎用的なデータでないと判別された場合、全部代行印刷処理を行わせることを特徴とする請求項７記載の代行印刷処理方法。
【請求項９】
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させるステップと、
前記部数を指定する画面で指定された部数の代行印刷を行わせるステップと、前記ページを指定する画面で指定されたページの代行印刷を行わせるステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
前記表示させるステップは、代行印刷を行わせる際に、部数指定のジョブである場合、部数を指定する画面させ、部数指定のジョブでない場合、ページを指定する画面を表示させることを特徴とする請求項９記載のプログラム。
【請求項１１】
代行印刷を行わせる際に、データの種類を判別する判別ステップと、
前記判別ステップによる判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
前記処理ステップは、前記判別ステップによりデータの種類が汎用的なデータであると判別された場合、部分代行印刷処理を行わせ、前記判別ステップによりデータの種類が汎用的なデータでないと判別された場合、全部代行印刷処理を行わせることを特徴とする請求項１１記載のプログラム。
【請求項１３】
請求項９乃至１２いずれかに記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、代行印刷処理を行う代行印刷処理装置、方法、プログラム、および記憶媒体に関するものである。
【背景技術】
【０００２】
従来、ネットワークに接続されたプリンタにおいて、印刷時にプリンタにエラーが発生した際、他のプリンタへ代行印刷を依頼し、他のプリンタで代行印刷を行っていた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら上記従来例では、自動代行、手動代行を切り替えて利用することができなかった。
また、自動代行時に手動代行に切り替えることができなかった。
また、データやジョブの種類に応じて、代行方法を切り替えることがなかった。
【課題を解決するための手段】
【０００４】
上記課題を解決するために本発明の代行印刷処理装置は、
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させる手段と、
前記部数を指定する画面で指定された部数の代行印刷を行わせる手段と、
前記ページを指定する画面で指定されたページの代行印刷を行わせる手段とを有することを特徴とする。
【０００５】
また、本発明の代行印刷処理装置は、
代行印刷を行わせる際に、データの種類を判別する判別手段と、
前記判別手段による判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理手段とを有することを特徴とする。
【０００６】
また、本発明の代行印刷処理方法は、
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させるステップと、
前記部数を指定する画面で指定された部数の代行印刷を行わせるステップと、前記ページを指定する画面で指定されたページの代行印刷を行わせるステップとを有することを特徴とする。
【０００７】
また、本発明のプログラムは、
代行印刷を行わせる際に、ジョブの種類に応じて、部数を指定する画面またはページを指定する画面を表示させるステップと、
前記部数を指定する画面で指定された部数の代行印刷を行わせるステップと、前記ページを指定する画面で指定されたページの代行印刷を行わせるステップとをコンピュータに実行させることを特徴とする。
【０００８】
また、本発明のプログラムは、
代行印刷を行わせる際に、データの種類を判別する判別ステップと、
前記判別ステップによる判別結果に応じて、部分代行印刷または全部代行印刷を行わせる処理ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
以上詳述したように、本発明によれば、自動代行、手動代行を切り替えて利用することができるようになった。
また、自動代行時に手動代行に切り替えることができるようになった。
また、データの種類に応じて、代行方法を切り替える（部分または全部）ことができるようになった。
また、ジョブの種類に応じて、代行方法を切り替える（部数またはページ）ことができるようになった。
【００１０】
これにより、たとえば、ユーザは中間ファイルを使用しないでページ記述言語のみ展開されたＰＤＬ印刷ジョブの場合は先頭ページから代行することに限定されるものの印刷結果は同一ページ記述言語をサポートした印刷装置に正しく行うことが可能となり、また、中間ファイルを使用した結果派生した子ジョブの印刷ジョブの場合は、途中まで印刷していると確認できた場合にユーザが続きのページからを指定して代行印刷を指定することと、空いている正常な印刷装置を自由に選んでその装置に併せたページ記述言語にページ指定で再展開した印刷ジョブを代行させることにより、紙と印刷待ち時間を最小限にして且つ正しい結果を出力できる代行印刷を行うことが出来る。また、部数単位であれば余分な部数を出すことなく残り部数のみ指定して代行印刷を行うことにより、同じく紙と印刷待ち時間を最小限にすることにより、ユーザに印刷資源と時間を有効に使った印刷環境を提供することが可能である。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【００１２】
図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、１台、または複数台接続されていることを仮定している。
【００１３】
図１において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。また、プリンタとしては印刷装置であるところの、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等様々な方式のものに適応できることも無論想定される。
【００１４】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。
【００１５】
構成としては、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００１６】
また、プリントサーバ１０１は、一般的な情報処理装置であり、クライアント１０２〜１０４の機能を同時に持つこともできる。
【００１７】
本実施形態におけるプリントサーバ１０１は、さらにクライアントコンピュータ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、または、クライアントコンピュータ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ１０２、１０３、１０４に通知したりする機能を揃えている。
【００１８】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して、１ページ毎に印刷する。１０６はネットワークであり、クライントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等と接続している。
【００１９】
図２は、本実施の形態における情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ１０２、１０３、１０４も同じ構成であり、さらにサーバ１０１も同様あるいは同等のハードウエア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
【００２０】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２１】
２０１は記憶手段であるＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２２】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
２０４は記憶媒体であるフロッピー（登録商標）ディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２３】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２４】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２５】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２６】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２７】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００２８】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００２９】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３０】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に並行動作させる構成も可能である。
【００３１】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００３２】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３３】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００は前記ＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施の形態では、クライアント、サーバ共、同様の構成をとっている。
【００３４】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
【００３５】
次に本実施の形態における、プリンタを複数台使用して、代行印刷処理を行う、印刷ジョブ制御システムについて説明する。
【００３６】
本印刷システムはＷｉｎｄｏｗｓ（登録商標）スプーラからあるいはＡＰＩ経由で印刷ジョブを受け取ると、前処理を行ったのちジョブをいったん内部に保持し、新たにスケジュールの対象に追加する。そのジョブより先に印刷されるべき優先度の高いジョブがほかに存在する場合、印刷システムはまず優先度の高いジョブを先にデバイスに送信してから、次に優先度の低いジョブを送信する。本印刷システムは一つのジョブを、デバイスに送信した後もジョブの印刷が終了するまでジョブを追い続ける（ただし後述する制約が存在する）。無事にジョブの印刷が終了した場合、印刷システムは印刷ジョブを発行したユーザに通知する。通知の形態は以下に述べるような印刷方法や設定によって異なる。
【００３７】
印刷ジョブの処理途中でエラーが発生し、印刷を完了できなくなった場合、本印刷システムは状況に応じて以下に示す処理を行う。それぞれの詳細は後述する。
【００３８】
自動代行印刷
印刷ジョブが本印刷システムで送信待ちの状態にそのデバイスで印刷不可能なエラーが発生した場合や、印刷ジョブの送信中に送信が不可能になった場合、あるいはデバイスに印刷ジョブを送信した後、印刷終了通知が来る前にデバイス側でエラーが発生したことを検出した場合、印刷システムはまずユーザが代行用に予め指定しておいた他のデバイスに印刷先を変更することを試みる。
【００３９】
手動代行印刷
上記のようなエラー／問題が発生した際、自動代行印刷の設定が行われていない場合、あるいは自動代行印刷でも印刷を行うことができなかった場合には、印刷システムはユーザにその旨を知らせ、他のデバイスを明示的に指定して印刷先を変更するか（手動代行印刷）、もとのデバイスへ印刷するように待機させるか、ジョブをキャンセルするかをユーザに選択させる。印刷システムはユーザが選択した処理を実行する。
【００４０】
次に、代行印刷機能の概要を説明する。
【００４１】
本印刷システムが指定されたプリンタに印刷ジョブを出力指示しようとした時、そのプリンタが使用不能な場合、あるいは印刷中にデバイスでエラーが発生した場合のように、印刷先として指定されたプリンタで印刷を実行することができない状況に陥ったとき、あるいはその他ユーザが指定した代行条件がジョブに発生したとき、印刷システムはこのジョブの印刷先を他のプリンタに変更することができる。
【００４２】
代行印刷には次の二つのタイプがある。
（１）自動代行印刷
印刷システムが、ユーザが予め指定しておいた別のプリンタに印刷先を変更する。この場合、障害発生時にユーザの明示的な指示を待たずに代行を実行する。
（２）手動代行印刷
ユーザが明示的に印刷先を指定する。
【００４３】
代行条件の発生したジョブがアプリケーションから仮想プリンタを用いて印刷ジョブが発行され、ジョブの印刷方法が自動代行に設定されている場合にはその設定にもとづいて自動代行を実行する。代行条件の発生したジョブが仮想プリンタを用いて印刷ジョブが発行されていても、ジョブの印刷方法が自動代行以外に設定されている場合、あるいは自動代行機能によっても印刷を完了することができなかった場合、印刷システムはユーザに手動代行を行う機会をＵＩで与える。また、代行条件の発生したジョブがアプリケーションからＰＤＬドライバの割り当てられたプリンタを用いて印刷ジョブが発行された場合も自動代行はされず、印刷システムはユーザに手動代行の機会をＵＩで与える（手動代行を選択する以外に、もとのプリンタを指定したままにする選択肢、印刷処理をキャンセルする選択肢も用意される）。
【００４４】
自動、手動によらず、代行印刷を行ったときには、本印刷システムは初めに印刷しようとしたデバイスにジョブデータが残っており、かつそのデバイスが内部のジョブをネットワーク上の他のマシンが操作する機能をサポートしている場合にはそれを削除する。
【００４５】
次に、自動代行印刷の設定について説明する。
【００４６】
自動代行印刷を行うには、グループプリンタドライバが割り当てられた一つのプリンタに対して、ＰＤＬドライバを用いる一つまたは複数のプリンタ（出力先プリンタ）を登録する。
【００４７】
出力先プリンタのおのおのに優先順位を定めなければならない。重複は許されない。
【００４８】
出力先プリンタは自動代行プリンタと同一のマシン上に存在していなければならない。共有プリンタ機能によって作成されたプリンタは、そのマシン上の自動代行プリンタの出力先プリンタとして登録することはできない。
【００４９】
次に、代行印刷発生条件と代行印刷処理への移行について説明する。
【００５０】
代行印刷発生条件はグループプリンタドライバイバが割り当てられているかＰＤＬドライバが割り当てられているかによらず、Ｏｕｔｐｕｔ  ポートを持つどのプリンタも設定を持つ。アプリケーションから印刷ジョブを発行する際、用いられるプリンタが持っている設定が当該ジョブの代行印刷発生条件となる。この条件は、当該ジョブがオリジナルジョブの場合にはその出力ジョブにも継承される。また、代行印刷が行われた場合、代行後のジョブにも継承される。
【００５１】
以下の条件に該当した場合、当該ジョブがオリジナルジョブであり出力方法が自動代行に設定されている時には自動代行に移行し、それ以外の場合はダイアログを表示してユーザに手動代行を行う機会を与える。ただし、ユーザはこれらのうちどの条件で実際に代行印刷が行われるかを個々に選択することができる。
【００５２】
（エラー発生時）
印刷ジョブが印刷システム内部で送信待ち状態にあるときに、印刷予定のデバイスで印刷不可能なエラーが発生していることが検出された場合。
【００５３】
デバイスにジョブデータを送信中に何らかの原因で（例えばデバイスの電源断により）送信が不能になり、デバイスとの通信エラーが検出された場合。
【００５４】
デバイスにジョブデータを送信中に、デバイスで印刷不可能なエラーが発生していることが検知された場合。
【００５５】
デバイスに印刷ジョブデータを送信した後、印刷終了通知が来ないうちにデバイスで印刷不可能なエラーが発生した場合。
【００５６】
（デバイスにおける警告発生時）
印刷ジョブが印刷システム内部で送信待ち状態にあるときに、印刷予定のデバイスで警告が発生していることが検出された場合。
【００５７】
デバイスにジョブデータを送信中に、デバイスで警告が発生していることが検知された場合。
【００５８】
デバイスに印刷ジョブデータを送信した後、印刷終了通知が来ないうちにデバイスで警告が発生した場合。
【００５９】
（デバイスの印刷負荷の高い時）
デバイスが印刷ジョブを正常に処理中であっても、デバイスの印刷負荷の高い場合代行印刷を行う。すなわち、印刷を行おうとしているプリンタについてあらかじめ設定されたしきい値以上のジョブが印刷待ちになっている場合。しきい値は、印刷待ちジョブの数と印刷待ちジョブサイズの合計の一方または両方を指定できる。印刷待ちジョブを調べる範囲は、対象プリンタに関連付けられた出力ポート内である。
【００６０】
（出力ポートの一時停止・エラー時）
出力ポートが一時停止状態またはエラー状態にある場合。
【００６１】
次に、ジョブ種別による代行印刷の抑止の例を説明する。
【００６２】
下記の種類のジョブについては、代行印刷は行わない。
フォーム登録ジョブ
セキュアジョブ
ＢＯＸジョブ
ＦＡＸジョブ
次に、自動代行印刷設定時における自動代行抑止条件について説明する。
【００６３】
自動代行に設定されている場合でも、発生したデバイスのエラーの種類によっては自動代行を行わないように設定することができる。これは、例えばユーザによっては、用紙切れならば他のデバイスで代行印刷をさせるよりも用紙を補給する方を選択することも考慮したものである。どのエラーの時に自動代行を抑止するかはあらかじめユーザが選択しておく。選択可能なエラーの種類を以下に挙げる。
用紙切れ
用紙ジャム
ドア／カバー・オープン
排紙トレー満載
これらは独立に選択することができる。
【００６４】
また、本実施の形態では、複数のプリンタデバイスの夫々に対応する個々のプリンタドライバに対して一元的に印刷設定を指示可能で、且つ、Ｄｅ−ｓｐｏｏｌｅｒ（後述にて詳しく説明）が各プリンタドライバに描画命令を通知する為の汎用印刷ファイルを生成する為の基データ（汎用ドキュメントデータ）を生成するドライバをグループプリンタドライバと呼ぶ。また、プリンタデバイスに依存した個々のプリンタドライバをメンバプリンタドライバと呼ぶ。
【００６５】
図６は本システムのクライアントサーバモデルにおいてワープロソフトなどの一般的なアプリケーションプログラムから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図６において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
【００６６】
通常、印刷の指示がされるとアプリケーションプログラムはＯＳのグラフィック機能を介して一連の描画命令を生成させ、プリンタドライバを経てＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒに渡される。Ｗｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００６７】
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、本実施の形態ではジョブ制御ポートモニタと略記）を指定して印刷を指示する。アプリケーションプログラム６０１は一連のＯＳを介して描画命令を生成する。
【００６８】
描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成する為の汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、本実施の形態ではジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の管理するジョブ／デバイスの状態を管理する機能を備える。更に、デバイスとクライアントＰＣがピアツーピア接続環境で互いに動作するような場合には、ジョブ制御プリントサービス６２２はデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令をする機能も備える。これは、複数のプリンタデバイス６５０のデバイス情報やジョブ情報を管理する機能に相当する。
【００６９】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、本実施の形態ではジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作しりするためのユーザインタフェース（ＵＩ）を提供するプログラムである。
【００７０】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報の送受信を実行し、主に、ジョブ制御プリントサービス６２２が管理する外部のプリンタデバイスの状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレー満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００７１】
印刷ジョブ制御システム用サーバ６３０（以降、本実施の形態ではジョブ制御サーバと略記）は、個々のクライアント６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。また、印刷ジョブ制御システム用サーバ６３０はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスを監視し、ジョブ制御プリントサービス６２２にイベントを通知する機能を備える。ここで、プリンタステータスの状態変化の監視について、ジョブ制御プリントサービス６２２は直接的に状態の変化の通知（イベント）をプリンタデバイスから取得することもできる。
【００７２】
印刷ジョブ制御システム用マネージメントコンソール６３３（以降、本実施の形態ではジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００７３】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００７４】
次に本実施の形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００７５】
グループプリンタドライバ６０３はアプリケーションプログラムが生成した一連の描画コマンドを、上に説明した汎用ドキュメントデータを生成する。この汎用ドキュメントデータはジョブ制御プリントサービス６２２によってプリンタデバイスの種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換される。この汎用印刷ファイルの構成については後述する。
【００７６】
この汎用印刷ファイルは前述したようにＷｉｎｄｏｗｓ（登録商標）スプーラ６０４からジョブ制御ポートモニタ６２１を経て（ａ）、ジョブ制御プリントサービス６２２に導かれる（ｂ）。ジョブ制御プリントサービス６２２はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（ｃ）、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス６５０が解釈可能なＰＤＬファイルにする。図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、２つのメンバジョブが生成された例を２つの矢印（ｃ）で示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ（登録商標）スプーラ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される（ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００７７】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図Ａ中の（ｃ）（ｄ）（ｅ）（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００７８】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにＷｉｎｄｏｗｓ（登録商標）のＧＤＩ関数を呼び出し、グループプリンタドライバ６０３がそれに応じて汎用ドキュメントデータを生成し、該生成された汎用ドキュメントデータがジョブ制御プリントサービス６２２によって汎用印刷ファイルに生成される。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。グループプリンタドライバ６０３は必要に応じてあらかじめ設定された印刷方法にもとづいて汎用印刷ファイル内部の印刷指示書を書き換えてＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ６０４に送る。
【００７９】
図８は、汎用印刷ファイルの構成の一例を示した図である。
本実施の形態で使用される汎用印刷ファイルは、印刷指示部８−ａと、ドキュメントデータ部８−ｂからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００８０】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
ページ情報部は、ドキュメントデータ部８−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００８１】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００８２】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
【００８３】
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【００８４】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
【００８５】
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
【００８６】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００８７】
前述の図６で説明したグループプリンタドライバ６０３では、汎用印刷ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部８−ａへ記録する。さらに、グループプリンタドライバ６０３はＧＤＩで受け取ったデータを汎用的なデータに変換したドキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
【００８８】
次に図７でＷｉｎｄｏｗｓ（登録商標）が提供するＰｒｉｎｔＳｙＳｔｅｍと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。
【００８９】
図７中で印刷ジョブ制御システム７００は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施の形態では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００９０】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００９１】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１はグループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのジョブを受け取り、ＤｅＳｐｏｏｌｅｒ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。
【００９２】
この時、ＤｅＳｐｏｏｌｅｒ７０１は前述の図８で説明した汎用印刷ファイルの印刷指示部８−ａを解釈し、ドキュメントデータ部８−ｂのドキュメントデータを加工して、Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部８−ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。また、上に説明したＤｅ−ｓｐｏｏｌｅｒとは別のモジュールに印各メンバプリンタドライバに対応する指示情報を刷指示部８−ａから抽出させ、該抽出された各メンバプリンタドライバに対する印刷指示をＤｅ−ｓｐｏｏｌｅｒに解釈させるような形態も想定される。
【００９３】
また、ＤｅＳｐｏｏｌｅｒ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８−ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００９４】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【００９５】
図８は、上に説明してきた汎用印刷ファイルの構成の一例を示した図である。
本実施の形態で使用される汎用印刷ファイルは、印刷指示部８−ａと、ドキュメントデータ部８−ｂからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００９６】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
【００９７】
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
ページ情報部は、ドキュメントデータ部８−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００９８】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００９９】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【０１００】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【０１０１】
尚、本ファイルは、印刷指示部８−ａとドキュメントデータ部８−ｂが分離可能な形態として処理することができるファイルであってもかまわない。その場合、印刷指示部は印刷指示書ファイルとして、ドキュメントデータ部はドキュメントデータファイルとしてそれぞれ存在し、これらを一つのアーカイブ形式でまとめて同様に一つのファイルのように扱うことも可能である。
【０１０２】
図９は本実施の形態の分散及び代行印刷システムを構成する装置を説明する使用方法の１例である。以下フローチャートに従い本実施の形態を説明する。尚、図１１のフローチャートに示される各ステップの処理は処理の主体となる装置に設けられた中央演算処理装置がＲＯＭ，補助記憶手段等に記憶された印刷制御用モジュール（プログラム）を実行させることに応じて実現されるものとする。
【０１０３】
ホストコンピュータ側で分散及び代行印刷システムに対して図１〜図８に示されるようなシステムを介して印刷先設定がなされた環境において、印刷指示がなされた場合に、分散及び代行印刷システムはジョブ制御プリントサービス（６２２）の指示に従いＰＤＬドライバ（６０２）にてジョブの分割処理を行い、設定された分散割合にて分散印刷を実行する（Ｓ１１０１）。
【０１０４】
分散印刷先では印刷を正常に流せる状態であるかの確認処理を経て（Ｓ１１０２）必要に応じて転送が行われるが、転送においてはジョブ制御プリントサービスは印刷ジョブを追跡管理する為に分散先情報を中間ファイル識別子をキーに保持する。分散先情報には分散された頁記述言語（ＰＤＬ）の印刷ジョブ識別子も含まれ、これらはメモリ上に保持される。
【０１０５】
実際の入出力機器からのイベントは頁記述言語の印刷ジョブ識別子に対して登録され同じく頁記述言語の印刷ジョブ識別子単位で通知されるがシステムでは頁記述言語の印刷ジョブ識別子と中間ファイル側の識別子の参照が行えるのでどのようなユーザによる元の印刷指示の結果派生した印刷の通知であるかを判断することが可能であり、通知情報に含まれるプリンタに出力されたページ数を取得することも出来る（Ｓ１１０３）。
【０１０６】
また、ジョブ保有の総ページ数及び部数指定情報も合わせて取得確認する（Ｓ１１０４）。
【０１０７】
次にジョブの種別を確認し、通常のＰＤＬ記述言語のみ保有する印刷ジョブの場合はジョブ再展開を行わずに全ページ指定でジョブを再投入して（Ｓ１１０６）指定された代行印刷を実行する（Ｓ１１１０）が、中間ファイル（たとえば、アドビ社のＰＤＦデータ形式やマイクロソフト社のＥＭＦ形式のファイル）を保持している印刷ジョブにおいては、再投入先のプリンタに合わせたＰＤＬ記述言語に図９でユーザが指定したページ数（Ｓ１１０７）にて再展開を行い（Ｓ１１０９）再展開されたジョブを変更された出力先に投入する（Ｓ１１１０）。また、部数指定においても図１０にてユーザが指定した部数（Ｓ１１０８）にて再展開を行い（Ｓ１１０９）再展開されたジョブを変更された出力先に投入する（Ｓ１１１０）
ユーザはこれらの動作状況及び印刷結果を機器状態表示部であるプリントマネージャ（６２３）を介して確認することが出来る。
【０１０８】
次に、代行印刷処理の流れの説明をフローチャートに従い説明する。尚、図１６、図１７のフローチャートに示される各ステップの処理は処理の主体となる装置に設けられた中央演算処理装置がＲＯＭ，補助記憶手段等に記憶された印刷制御用モジュール（プログラム）を実行させることに応じて実現されるものとする。
【０１０９】
Ｓ１６０１で印刷ジョブを受け付けたか否かを判別し、印刷ジョブを受け付けなかったと判別された場合、Ｓ１６０５に進み、その他の処理を行う。
【０１１０】
Ｓ１６０１で印刷ジョブを受け付けたと判別された場合、Ｓ１６０２に進み、印刷ジョブの処理を行い、印刷予定のデバイスで印刷不可能なエラーが発生したことを検知したか判別する。エラーが発生したことを検知した場合はＳ１６０６に進み、エラーが発生したことを検知しない場合はＳ１６０３に進む。Ｓ１６０３では、デバイスにジョブデータを送信中に何らかの原因で（例えばデバイスの電源断により）送信が不能になり、デバイスとの通信エラーが検出されたか否かを判別する。Ｓ１６０３で通信エラーが検知された場合はＳ１６０６に進み、通信エラーが検知されなかった場合はＳ１６０４に進む。Ｓ１６０４ではデバイスにジョブデータを送信中に、デバイスで印刷不可能なエラーが発生していることが検知されたか否かを判別する。Ｓ１６０４で印刷不可能なエラーが発生していることが検知された場合はＳ１６０６に進む。
【０１１１】
なお、Ｓ１６０２からＳ１６０４の処理は、前述した（エラー発生時）の処理であるが、前述した（デバイスにおける警告発生時）（デバイスの印刷負荷の高い時）（出力ポートの一時停止時）を同時に行ってもよいし、置き換えてもよい。
【０１１２】
次にＳ１６０６では、ユーザによって自動代行する設定が行われているか否かを判別する。自動代行する設定が行われている場合Ｓ１６０７に進み、ユーザの明示的な指示を待たずに、ユーザがあらかじめ指定しておいた優先順位にしたがって別のプリンタに印刷先を変更する自動代行印刷処理を行い、Ｓ１６０８に進み、指定され特定のタイプのエラーか否かを判別する。特定のタイプのエラーであると判別された場合はＳ１６１０に進み、特定のタイプのエラーでないと判別された場合はＳ１６０９に進む。
【０１１３】
ここで、特定のタイプのエラーとは、用紙切れ、用紙ジャム、ドア／カバー・オープン、排紙トレー満載のいずれかの場合であり、ユーザは自動代行を抑止するか否かを、それぞれのエラーに対して独立的に設定しておく。
【０１１４】
次に、Ｓ１６０９では、自動代行が成功したか否かを判別し、成功しなかったと判別された場合はＳ１６１０に進む。
次にＳ１６１０の手動代行処理について図１７を用いて説明する。
【０１１５】
まず、Ｓ１７０１では図１２の１２０１のチェックボックスで手動代行印刷する設定がされているか否かを判別する。手動代行印刷する設定がされていないと判別された場合は、処理を抜け、手動代行印刷する設定がされていると判別された場合はＳ１７０２に進む。Ｓ１７０２では図１２の１２０２のチェックボックスで代行印刷時にジョブの詳細を確認する設定がされているか否かを判別する。代行印刷時にジョブの詳細を確認する設定がされていないと判別された場合はＳ１７０７に進み、代行印刷時にジョブの詳細を確認する設定がされていると判別された場合はＳ１７０３に進む。Ｓ１７０３では図１２の１２０３のチェックボックスで複数のプリンタで代行が発生したときリスト表示を行う設定がされているか否かの判別を行う。複数のプリンタで代行が発生したときリスト表示を行う設定がされていると判別された場合はＳ１７０４に進み、図１４の代行イベント小ダイアログ画面を表示させる。複数のプリンタで代行が発生したときリスト表示を行う設定がされていないと判別された場合はＳ１７０５に進み、図１３の代行イベント小ダイアログ画面を表示させる。
【０１１６】
次に図１３または図１４の代行イベント小ダイアログ画面で代行先の選択ボタン１３０２、１４０２が押下されたか判別し、代行先の選択ボタン１３０２、１４０２が押下されたと判別された場合はＳ１７０７に進み、代行先の選択ボタン１３０２、１４０２が押下されなかったと判別された場合はＳ１７１５に進み、続行ボタン１３０１、１４０１が押下されたか否かを判別し、続行ボタン１３０１、１４０１が押下されたと判別された場合はＳ１７１８に進み、続行ボタン１３０１、１４０１が押下されなかったと判別された場合はＳ１７０３に戻る。
【０１１７】
次にＳ１７０７では、図１５の画面を表示させる。Ｓ１７０８では図１５の画面でユーザにより１５０８のプリンタが選択され、１５０５の代行印刷ボタンが押下されたかを判別し、図１５の画面でユーザにより１５０８のプリンタが選択され、１５０５の代行印刷ボタンが押下されたと判別された場合はＳ１７０９に進み、図１５の画面でユーザにより１５０８のプリンタが選択され、１５０５の代行印刷ボタンが押下されなかったと判別された場合はＳ１７１６に進む。なお、ユーザがプリンタを選択する際、図１５の１５０２の欄に各プリンタの状態（エラー状態、警告状態、たくさんのジョブが投入されている状態、ビジー状態、ポート停止状態等）が表示され、１５０１の欄には１５０２で選択したプリンタのジョブ一覧が表示され、１５０３には１５０２で選択したプリンタの機能一覧（カラー機能、両面印刷機能、ステイプル機能、紙サイズ等）が表示されているので、適切なプリンタを代行先として選択できる。
【０１１８】
Ｓ１７１６では続行ボタン１５０６が押下されたか否かを判別し、続行ボタン１５０６が押下されたと判別された場合はＳ１７１８に進み、代行印刷させずに、エラーの発生したプリンタでの処理を続行する続行処理を行う。続行ボタン１５０６が押下されなかったと判別された場合はＳ１７１７に進み、その他の処理（１５０４の更新ボタンが押下された場合は１５０２の欄に表示されるプリンタの情報を最新のものに更新する処理、１５０７の印刷中止ボタンが押下された場合は印刷を中止する処理を行う）を行う。
【０１１９】
Ｓ１７０９では、指定されたプリンタで代行印刷処理を行わせる。その際Ｓ１７１０で代行印刷させる印刷ジョブのデータが汎用的なデータ（たとえばＰＤＦデータ形式、ＥＭＦ形式）であるかＰＤＬであるかを判別する。代行印刷させる印刷ジョブのデータが汎用的なデータではないプリンタに固有なＰＤＬであると判別された場合はＳ１７６１に進み、部分的ではなく全部の代行印刷を行わせる。汎用的なデータ（たとえばＰＤＦデータ形式、ＥＭＦ形式）であると判別された場合はＳ１７１２に進み、代行印刷するジョブが部数指定されているジョブであるか否かを判別する。部数指定のジョブであると判別された場合はＳ１７１３に進み、図１０の部数を指定させる画面を表示させ、部数を指定する部分代行印刷を行わせる。部数指定のジョブでないと判別された場合はＳ１７１４に進み、図９のページ数を指定させる画面を表示させ、ページ数を指定する部分代行印刷を行わせる。
【図面の簡単な説明】
【０１２０】
【図１】本実施の形態の分散及び代行印刷システムを構成するモジュールと入出力装置を説明するブロック図である。
【図２】本実施の形態における情報処理装置の構成を説明するブロック図である。
【図３】図２で示したブロック図におけるメモリマップを示す図である。
【図４】図３のメモリマップの一例を示す図である。
【図５】図２に示したＦＤドライブに挿入されるＦＤとの関係を示す図である。
【図６】本システムのクライアントサーバモデルの処理の流れを示した図である。
【図７】本システムのクライアントサーバモデルの印刷ジョブ制御システムを示した図である。
【図８】本システムの汎用印刷ファイルの構成の一例を示した図である。
【図９】本システムの部分印刷機能のページ指定例を示すＵＩ例を示す図である。
【図１０】本システムの部分印刷機能の部数指定例を示すＵＩ例を示す図である。
【図１１】分散及び代行印刷全般のアルゴリズムを示すフローチャートを示す図である。
【図１２】プロパティ画面の例を示す図である。
【図１３】代行イベント小ダイアログの例を示す図である。
【図１４】代行イベント小ダイアログの例を示す図である。
【図１５】手動代行ＵＩの例を示す図である。
【図１６】代行印刷のアルゴリズムを示すフローチャートを示す図である。
【図１７】手動代行印刷のアルゴリズムを示すフローチャートを示す図である。
【図１】
2006202332.tif 000003
【図２】
2006202332.tif 000004
【図３】
2006202332.tif 000005
【図４】
2006202332.tif 000006
【図５】
2006202332.tif 000007
【図６】
2006202332.tif 000008
【図７】
2006202332.tif 000009
【図８】
2006202332.tif 000010
【図９】
2006202332.tif 000011
【図１０】
2006202332.tif 000012
【図１１】
2006202332.tif 000013
【図１２】
2006202332.tif 000014
【図１３】
2006202332.tif 000015
【図１４】
2006202332.tif 000016
【図１５】
2006202332.tif 000017
【図１６】
2006202332.tif 000018
【図１７】
2006202332.tif 000019