(57)【特許請求の範囲】
【請求項１】
分散印刷を制御する分散印刷システムであって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、
前記複数の子ジョブの各々を対応する各々のプリンタへ出力するよう制御する第１出力制御手段と、
前記複数の子ジョブへの何れかへの削除指示に応じて、他の子ジョブが削除されず有れば親ジョブを削除することなく削除指示された子ジョブを削除させ、他の子ジョブが削除されて無ければ削除指示された子ジョブを削除させると共に対応する親ジョブを削除するよう制御する第１削除制御手段とを有することを特徴とする分散印刷システム。
【請求項２】
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューに、前記中間データに基づく複数の子ジョブを出力させる第２出力制御手段と、
前記親ジョブに対する削除指示に応じて前記第１及び第２のプリントキューに保持された各々の子ジョブを削除するよう制御する第２削除制御手段とを有することを特徴とする請求項１に記載の分散印刷システム。
【請求項３】
分散印刷を制御する分散印刷システムであって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューの各々に、前記中間データに基づく子ジョブを出力させる第１出力制御手段と、
前記複数の子ジョブの各々を、第１及び第２のプリントキューを介し、ネットワークを介して通信可能な第１及び第２のプリンタへ出力させる第２出力制御手段と、
前記親ジョブに関連した複数の子ジョブの各々について、プリントキューに保持されているのか、ジョブ転送先のプリンタに転送されプリンタで保持されているのかを、個別に管理する管理手段と、
前記複数の子ジョブの各々の状況に基づく前記親ジョブの状況の表示部への表示を行わせる表示制御手段と、
操作画面を介して前記親ジョブへの操作指示がなされた場合に前記管理手段による管理に基づき、指示された親ジョブに対応する子ジョブを操作するよう制御する操作制御手段とを有し、前記操作制御手段は指示された親ジョブに関連する複数の子ジョブの各々に関して、前記プリントキューに保持されていればプリントキューに保持される子ジョブを操作するよう制御し、前記第２出力制御手段によりプリンタへ出力済みの場合にはプリンタに保持される子ジョブを操作するよう制御することを特徴とする分散印刷システム。
【請求項４】
前記表示制御手段は、前記子ジョブが生成される前においては親ジョブの出力状況を前記親ジョブの状況として前記表示部に表示させ、前記子ジョブが生成された後は前記子ジョブの状況に基づく親ジョブの状況の前記表示部への表示を行わせることを特徴とする請求項３に記載の分散印刷システム。
【請求項５】
分散印刷を制御する分散印刷システムであって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、
前記生成された複数の子ジョブを対応する各プリンタへ出力させる出力制御手段と、
前記生成された親ジョブの状況の表示部への表示を行わせる表示制御手段とを有し、前記表示制御手段は、前記子ジョブが生成される前においては親ジョブの出力状況を前記親ジョブの状況として前記表示部に表示させ、前記子ジョブが生成された後は前記子ジョブの状況に基づく親ジョブの状況の前記表示部への表示を切り替え行わせることを特徴とする分散印刷システム。
【請求項６】
前記親ジョブに対する削除指示に応じて、前記親ジョブに対応する複数の子ジョブが削除された後に前記親ジョブを削除するよう制御する第１削除制御手段を有し、前記第１削除制御手段は前記複数の子ジョブの中に削除できない子ジョブがあれば、複数の子ジョブを削除しなくとも前記親ジョブを削除するよう制御することを特徴とする請求項５記載の分散印刷システム。
【請求項７】
操作指示画面を介しての前記複数の子ジョブの何れかへの削除指示に応じて、他の子ジョブが削除されず有れば親ジョブを削除することなく削除指示された子ジョブを削除させ、他の子ジョブが削除されて無ければ削除指示された子ジョブを削除させると共に対応する親ジョブを削除するよう制御する第２削除制御手段を有することを特徴とする請求項５又は６の何れかに記載の分散印刷システム。
【請求項８】
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューに、前記中間データに基づく複数の子ジョブを出力させる第２出力制御手段と、
前記親ジョブに対する削除指示に応じて前記第１及び第２のプリントキューに保持された各々の子ジョブを削除するよう制御する第３削除制御手段とを有することを特徴とする請求項５乃至７の何れかに記載の分散印刷システム。
【請求項９】
前記親ジョブに対する削除指示に応じて、第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューを介して前記第１及び第２のプリンタの各々に転送された子ジョブを前記第１及び第２のプリンタから削除するよう制御する第４削除制御手段を有することを特徴とする請求項５乃至７に記載の分散印刷システム。
【請求項１０】
前記第１及び第２のプリントキューの各々を介して子ジョブがジョブ転送先のプリンタに転送されている場合には、前記第３削除制御手段は転送先のプリンタに保持される子ジョブを削除するよう制御することを特徴とする請求項８に記載の分散印刷システム。
【請求項１１】
分散印刷を制御する分散印刷制御方法であって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御工程と、
前記複数の子ジョブの各々を対応する各々のプリンタへ出力するよう制御する第１出力制御工程と、
前記複数の子ジョブへの何れかへの削除指示に応じて、他の子ジョブが削除されず有れば親ジョブを削除することなく削除指示された子ジョブを削除させ、他の子ジョブが削除されて無ければ削除指示された子ジョブを削除させると共に対応する親ジョブを削除するよう制御する第１削除制御工程とを有することを特徴とする分散印刷制御方法。
【請求項１２】
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューに、前記中間データに基づく複数の子ジョブを出力させる第２出力制御工程と、
前記親ジョブに対する削除指示に応じて前記第１及び第２のプリントキューに保持された各々の子ジョブを削除するよう制御する第２削除制御工程とを有することを特徴とする請求項１１に記載の分散印刷制御方法。
【請求項１３】
分散印刷を制御する分散印刷制御方法であって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御工程と、
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューの各々に、前記中間データに基づく子ジョブを出力させる第１出力制御工程と、
前記複数の子ジョブの各々を、第１及び第２のプリントキューを介し、ネットワークを介して通信可能な第１及び第２のプリンタへ出力させる第２出力制御工程と、
前記親ジョブに関連した複数の子ジョブの各々について、プリントキューに保持されているのか、ジョブ転送先のプリンタに転送されプリンタで保持されているのかを、個別に管理する管理工程と、
前記複数の子ジョブの各々の状況に基づく前記親ジョブの状況の表示部への表示を行わせる表示制御工程と、
操作画面を介して前記親ジョブへの操作指示がなされた場合に前記管理工程による管理に基づき、指示された親ジョブに対応する子ジョブを操作するよう制御する操作制御工程とを有し、前記操作制御工程は指示された親ジョブに関連する複数の子ジョブの各々に関して、前記プリントキューに保持されていればプリントキューに保持される子ジョブを操作するよう制御し、前記第２出力制御工程を介してプリンタへ出力済みの場合にはプリンタに保持される子ジョブを操作するよう制御することを特徴とする分散印刷制御方法。
【請求項１４】
前記表示制御工程は、前記子ジョブが生成される前においては親ジョブの出力状況を前記親ジョブの状況として前記表示部に表示させ、前記子ジョブが生成された後は前記子ジョブの状況に基づく親ジョブの状況の前記表示部への表示を行わせることを特徴とする請求項１３に記載の分散印刷制御方法。
【請求項１５】
分散印刷を制御する分散印刷制御方法であって、
アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御工程と、
前記生成された複数の子ジョブを対応する各プリンタへ出力させる出力制御工程と、
前記親ジョブの状況の表示部への表示を行わせる表示制御工程とを有し、前記表示制御工程は、前記子ジョブが生成される前においては親ジョブの出力状況を前記親ジョブの状況として前記表示部に表示させ、前記子ジョブが生成された後は前記子ジョブの状況に基づく親ジョブの状況の前記表示部への表示を切り替え行わせることを特徴とする分散印刷制御方法。
【請求項１６】
前記親ジョブに対する削除指示に応じて、前記親ジョブに対応する複数の子ジョブが削除された後に前記親ジョブを削除するよう制御する第１削除制御工程を有し、前記第１削除制御工程は前記複数の子ジョブの中に削除できない子ジョブがあれば、複数の子ジョブを削除しなくとも前記親ジョブを削除するよう制御することを特徴とする請求項１５記載の分散印刷制御方法。
【請求項１７】
操作指示画面を介しての前記複数の子ジョブの何れかへの削除指示に応じて、他の子ジョブが削除されず有れば親ジョブを削除することなく削除指示された子ジョブを削除させ、他の子ジョブが削除されて無ければ削除指示された子ジョブを削除させると共に対応する親ジョブを削除するよう制御する第２削除制御工程を有することを特徴とする請求項１５又は１６の何れかに記載の分散印刷制御方法。
【請求項１８】
第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューに、前記中間データに基づく複数の子ジョブを出力させる第２出力制御工程と、
前記親ジョブに対する削除指示に応じて前記第１及び第２のプリントキューに保持された各々の子ジョブを削除するよう制御する第３削除制御工程とを有することを特徴とする請求項１５乃至１７の何れかに記載の分散印刷制御方法。
【請求項１９】
前記親ジョブに対する削除指示に応じて、第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューを介して前記第１及び第２のプリンタの各々に転送された子ジョブを前記第１及び第２のプリンタから削除するよう制御する第４削除制御工程を有することを特徴とする請求項１５乃至１７の何れかに記載の分散印刷制御方法。
【請求項２０】
前記第１及び第２のプリントキューの各々を介して子ジョブがジョブ転送先のプリンタに転送されている場合には、前記第３削除制御工程は転送先のプリンタに保持される子ジョブを削除するよう制御することを特徴とする請求項１８に記載の分散印刷制御方法。
【請求項２１】
請求項１１乃至２０の何れかに記載の分散印刷制御方法をコンピュータに実行させるためのプログラムをコンピュータ可読の形態で記憶した記憶媒体。
【請求項２２】
請求項１１乃至２０の何れかに記載の分散印刷制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願発明は、分散印刷に関するものであり、特に各々のジョブに対するユーザからの操作指示を確実に実行したり、各々のジョブの状態を一括してユーザが効率的に認識できる仕組みに関する。
【０００２】
【従来の技術】
従来の技術では、汎用的なＯＳが提供する印刷機能を用いたアプリケーションソフトで作成した文書の印刷処理は、一度の印刷指示に対応して１つの印刷装置に対する印刷処理のみ行われるものであり、ユーザが複数の印刷装置に対して文書を分散して印刷することを望んだ場合、ユーザは、分散したい印刷装置それぞれに対して、分散印刷するページ数を指定して複数回印刷指示をしなければならなかった。その際には、アプリケーションが行う印刷処理（ＯＳのグラフィックエンジンに対する印刷命令の出力処理）は、その回数分行われ、ユーザの手間とアプリケーションの複数回の処理による時間がかかってしまっている。
【０００３】
【発明が解決しようとする課題】
そのため、分散印刷を行う場合に、ユーザの手間とアプリケーションの印刷処理の時間を考慮して、アプリケーションが吐き出した印刷命令をスプールしておき、自動的に複数のプリンタドライバにページ数を指定して複数の印刷ジョブを発行する仕組みが考えられる。その場合は、アプリケーションが印刷命令を出力する処理は一度で済むため、アプリケーションの印刷処理からの開放は早くなり、また自動的に分散印刷処理を行えるため、ユーザにとっても手間のかからないものになると考えられる。
【０００４】
このような仕組みを考えると、複数のプリンタドライバに対して印刷要求が行われるため、結果として複数の印刷ジョブが発行されることになる。そのため、ユーザから印刷ジョブの管理を行うために、各々の印刷ジョブのステータスなどの表示や印刷ジョブの操作を行う場合には、以下に示すような問題が考えられる。
【０００５】
まず第一に、ユーザにとっては１つの分散印刷ジョブと認識しているにもかかわらず、複数の分散先の印刷装置分の印刷ジョブが発行されてしまうため、１つの分散印刷ジョブとして印刷ジョブの操作やステータス表示を行うことができないため、ユーザにとって理解しづらいものとなってしまうという問題がある。
【０００６】
第二に、分散印刷ジョブを１つの印刷ジョブとしてユーザに認識させるように印刷ジョブの表示を行うことを考えると、分散印刷処理で生成された印刷ジョブ（親印刷ジョブと子印刷ジョブ）と、一般的な単一の印刷ジョブとを区別することができないという問題がある。
【０００７】
第三に、分散印刷ジョブとして表示する１つの親印刷ジョブと、分散印刷により生成される複数の子印刷ジョブとを表示する場合に、それぞれの異なる印刷ジョブ（親印刷ジョブと子印刷ジョブ）に対する操作の違いがあるにもかかわらず、親印刷ジョブ或は子印刷ジョブにおける分散印刷固有の操作をユーザに容易に区別させ、操作させることができないという問題がある。
【０００８】
第四には、分散印刷処理には、必ず、オリジナルの親印刷ジョブ（または、印刷データ）が存在し、このオリジナルの親印刷ジョブ、またはオリジナルの親印刷ジョブを基に分割生成された複数の子印刷ジョブが、プリンタに送られる。しかし、複数の子印刷ジョブが生成されるタイミング、出力装置に送られるタイミング、出力装置の印刷処理完了のタイミング、エラーの発生或はそのタイミング、等の生成されたジョブの各ステータスの状況の表示などは、必ずしも同期しているとは限らず、これらの関連するジョブに対する一括した操作や、表示を効率的に行う手段がないという問題がある。
【０００９】
本発明は、複数に分散された印刷ジョブからなる分散印刷ジョブを、あたかも１つの分散印刷ジョブのように理解できるような管理の仕組みを提供することを課題とする。
【００１０】
或いは、操作された印刷ジョブ（親印刷ジョブ或は子印刷ジョブ）に関連する印刷ジョブ（親印刷ジョブ或は子印刷ジョブ）を正しく制御することができる仕組みを提供することを課題とする。
【００１１】
【課題を解決するための手段】
上記課題を解決するために、本発明における分散印刷システムは、アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、前記複数の子ジョブの各々を対応する各々のプリンタへ出力するよう制御する第１出力制御手段と、前記複数の子ジョブへの何れかへの削除指示に応じて、他の子ジョブが削除されず有れば親ジョブを削除することなく削除指示された子ジョブを削除させ、他の子ジョブが削除されて無ければ削除指示された子ジョブを削除させると共に対応する親ジョブを削除するよう制御する第１削除制御手段とを有することを特徴とする。
【００１２】
或いは、アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、第１及び第２のプリンタの各々をジョブ転送先にした第１及び第２のプリントキューの各々に、前記中間データに基づく子ジョブを出力させる第１出力制御手段と、前記複数の子ジョブの各々を、第１及び第２のプリントキューを介し、ネットワークを介して通信可能な第１及び第２のプリンタへ出力させる第２出力制御手段と、前記親ジョブに関連した複数の子ジョブの各々について、プリントキューに保持されているのか、ジョブ転送先のプリンタに転送されプリンタで保持されているのかを、個別に管理する管理手段と、前記複数の子ジョブの各々の状況に基づく前記親ジョブの状況の表示部への表示を行わせる表示制御手段と、操作画面を介して前記親ジョブへの操作指示がなされた場合に前記管理手段による管理に基づき、指示された親ジョブに対応する子ジョブを操作するよう制御する操作制御手段とを有し、前記操作制御手段は指示された親ジョブに関連する複数の子ジョブの各々に関して、前記プリントキューに保持されていればプリントキューに保持される子ジョブを操作するよう制御し、前記第２出力制御手段によりプリンタへ出力済みの場合にはプリンタに保持される子ジョブを操作するよう制御する。
【００１３】
或いは、アプリケーションデータに基づいて生成された親ジョブとしての中間データに基づく複数の子ジョブを生成させるよう制御する子ジョブ生成制御手段と、前記生成された複数の子ジョブを対応する各プリンタへ出力させる出力制御手段と、前記生成された親ジョブの状況の表示部への表示を行わせる表示制御手段とを有し、前記表示制御手段は、前記子ジョブが生成される前においては親ジョブの出力状況を前記親ジョブの状況として前記表示部に表示させ、前記子ジョブが生成された後は前記子ジョブの状況に基づく親ジョブの状況の前記表示部への表示を切り替え行わせることを特徴とする。
【００２６】
【発明の実施の形態】
以下に本発明の情報処理装置を含む印刷システムを適用する実施形態の一例を説明する。
【００２７】
図１は、本発明の情報処理装置を含む印刷システムの構成図である。１０１は、本発明の情報処理装置の一例であるクライアントコンピュータ（以下、クライアントと呼ぶこともある）であり、本発明の印刷制御プログラムがインプリメントされ、分散印刷処理を実行するものであり、ネットワーク上の複数の印刷装置（以下、プリンタ）にそれぞれ対応する複数のプリンタドライバをインストールしているものである。１０２〜１０４はネットワークに接続されるプリンタであり、クライアント１０１から印刷ジョブを受信し、印刷処理を行うものである。以下の実施の形態では、情報処理装置にクライアントコンピュータを適用させた例を説明するが、本発明はこれに限定されるものではなく、例えば、情報処理装置にプリンタサーバなどを適用させることも可能であり、以下に説明する処理と同様の処理をプリンタサーバに実行させることも想定される。また、本発明における印刷ジョブとは、ジョブ開始命令からジョブ終了命令までの一くくりの印刷データをいい、各々のプリンタは印刷ジョブ単位で印刷処理を行う（他の印刷ジョブの割り込みを禁止する）ものであり、印刷データとは、印刷ジョブの中身の描画内容及びプリンタを制御するコマンドを指すものである。クライアント１０１にインプリメントされてるプリンタドライバによって、アプリケーションからＯＳを介して受け取る印刷命令（ＤＤＩ関数）は印刷データ（プリンタ制御言語：ページ記述言語とも言う）に変換され、一まとまりの印刷データによる印刷ジョブが特定のプリンタに発行される。また、後述するが、本発明の情報処理装置であるクライアント１０１は、アプリケーションからの印刷命令を所定のデータ形式（ＥＭＦスプールもしくはＲＡＷスプールを用いる）でスプールし、複数のプリンタドライバによる生成処理により、複数の印刷ジョブを発行するものである。
【００２８】
図２は、図１に示したクライアント１０１のハード構成を概略的に示すブロック図である。２００は、ＣＰＵであり、クライアント１０１の全体の制御を行う。２０１はＲＯＭであり、クライアント１０１を制御するための各種のプログラム及びデータが記憶されており、ＣＰＵ２００は、ＲＯＭ２０１あるいはＲＡＭ２０２に格納されたプログラムに従って、ＲＡＭ２０２をワークメモリとして利用しながらクライアント上での各種処理を実行する。
【００２９】
２０３は、本発明の一つの発明である制御プログラムを格納した記憶媒体の一例であるＦＤ２０４からのデータ（プログラム）を読み出したり、また書き込んだりする機能を有するＦＤドライブである。図３に示すように、ＦＤドライブ２０３にフロッピーディスク（ＦＤ）２０４が挿入され、クライアントマシンとフロッピーディスク２０４との間でデータの入出力が実行される。
【００３０】
図４は、上記フロッピーディスク２０４の内部におけるデータのメモリマップを示す図である。図４に示すように、フロッピーディスク２０４の中には、ボリューム情報４０１と、ディレクトリ情報４０２と、ネットワークプリンタ１０２〜１０４の制御プログラム４０３と関連データ４０４が格納されている。
【００３１】
また、図５は、上記フロッピーディスク２０４からＲＡＭ２０２に制御プログラム４０３を展開したときのメモリマップを示す図である。図５に示すように、ＲＡＭ２０２は、基本Ｉ／Ｏプログラム５０１、オペレーティングシステム（ＯＳ）５０２、フロッピーディスク２０４から展開されたネットワークプリンタ制御プログラム５０３および関連データ５０４を格納するエリアと、ワークエリア５０５とを有している。
【００３２】
２０５は外部メモリの一例であるハードディスク（ＨＤ）であり、アプリケーションソフトウェアや、また、本発明の印刷制御プログラムもＦＤ２０４からＦＤドライブ２０３を介して読み込まれ、このＨＤ２０５にインストールされている。２０６は入力装置の一例であるキーボードであり、ユーザからの指示を入力する機能を有している。また、入力装置の他の例としては、マウスなどのポインティングデバイスが存在している。
【００３３】
２０７は表示手段の一例であるディスプレイであり、ＣＲＴであってもＬＣＤであっても形式は問わない。本印刷制御プログラムにより提供されるユーザインタフェースをＯＳの指示に基づいて表示する機能を有している。また、ディスプレイ２０７への表示は実際にはＣＰＵ２００の指示に基づくものであり、この表示制御手段として機能するＣＰＵ２００の指示に基づく信号をディスプレイ２０７が処理することによって所定の画面の表示が実現される。尚、後述にて説明する例えば図７に示されるようなユーザインターフェースもＣＰＵ２００の指示に基づく信号をディスプレイ２０７が処理し表示することによって実現される。
【００３４】
２０９はインタフェース（本実施例では、ネットワークボードが好ましい。）であり、図１に示すように、本情報処理装置をＬＡＮ（ローカルエリアネットワーク）に接続し、外部装置と通信する機能を有している。
【００３５】
以上に述べた２００〜２０８は、（２０４を除く）システムバス２０９を介して接続されており、相互にデータをやりとりできるようになっている。
【００３６】
図６は、本発明の印刷制御プログラム（方法）に基づいて、分散印刷ジョブの操作及び表示方式を実現する分散印刷システムの一実施例である。この図は、Ｗｉｎｄｏｗｓ（米国マイクロソフトの登録商標）ＯＳ（オペレーションシステム）のスプーラおよび、印刷処理の組み合わせにより実現する例を示している。本発明では、実施例として、Ｗｉｎｄｏｗｓ上の表示機能や印刷システムを例にして説明するが、ＯＳは、Ｗｉｎｄｏｗｓでなくてもよく、また、スプーラもＷｉｎｄｏｗｓスプーラに依存しなくても実現することができる。
【００３７】
また、本発明の操作方式が対象とする分散印刷方法についても、アプリケーションソフトから一つの印刷指示をもとに複数のプリンタに対して分散印刷処理する印刷方法であれば、ＯＳやハードの仕様、分散のタイプを指定する分散印刷方法などにも依存しない。即ち、複数のプリンタに対して子印刷ジョブが親印刷ジョブを元に生成され出力処理されるような分散方法であれば、本発明に適用することが可能となる。例えば、複数の出力先毎に所定の部数が割り当てられるような部数分散、或は、出力先毎に所定の印刷ページが割り振られるようなページ分散、或は、ページ分散の１つとして、ユーザの用途や、カラーか白黒か等の印刷条件に応じて、印刷ジョブ中のページ毎に出力先デバイスが決定され分散される分散方法などが分散方法のタイプとして挙げられる。
【００３８】
図６において、文書（ドキュメント形式、表形式、画像ファイル、ＤＴＰなどを含む）の作成機能を有するアプリケーションソフトウェア（以下、アプリケーションと呼ぶ）において、ユーザは分散印刷の指示をすることが可能となっている。例えば、１つの仮想的なプリンタドライバ（以下、この仮想的なプリンタドライバを分散印刷ドライバと呼ぶ）を予め分散印刷用に作成しておく。この分散印刷ドライバは、実際には複数のプリンタドライバを呼び出すモジュールを有しており、印刷命令を受けると、所定のデータ形式（例えばＥＭＦ：エンハンスドメタファイル）で印刷命令をスプールし、分散印刷ドライバで設定されている複数のプリンタドライバに対して自動的に該印刷命令を分散して印刷依頼する。それぞれのドライバに渡される印刷命令自体は、すべての印刷命令であるが、ページ数を指定したものとなっているため、それぞれのプリンタドライバでは、指定されたページ番号のものに対して印刷データを生成する処理を行うことになる。
【００３９】
図６において、ユーザが分散印刷ドライバに対してアプリケーションから文書の印刷指示を行うと、アプリケーションは印刷命令（ＧＤＩ関数）をＯＳのグラフィックエンジンであるＧＤＩに出力する。また、アプリケーションとＧＤＩの間には、ＥＭＦスプーラが存在し、アプリケーションが吐き出した印刷命令の内容をバイナリ形式のＥＭＦでスプールしている。なお、ＥＭＦについては、ＷｉｎｄｏｗｓＯＳではよく知られた技術であるため、詳細な説明は省略する。
【００４０】
ＯＳのグラフィックエンジンであるＧＤＩは、出力すべきプリンタドライバが解釈可能な印刷命令（ＤＤＩ関数）に変換して処理を渡す。プリンタドライバは、ＧＤＩから取得した印刷命令（ＤＤＩ関数）と指定されたページ番号に基づいて、必要なページ番号の印刷データを生成し、スプーラ１（ＲＡＷスプーラ）に印刷データを出力する。スプーラ１は、スプールしている印刷データを所定単位ごとに転送部を介してＬＡＮに接続されるプリンタに出力し、所定のプリンタで印刷を行わせる。
【００４１】
また、ここでいうスプーラ１は、説明を簡単にするために、印刷データをスプールするＲＡＷスプーラと、ＧＤＩに渡される前のＥＭＦ形式のデータをスプールするＥＭＦスプーラとを同じくくりで説明している。詳細に説明するのであれば、ＥＭＦスプーラは、前述したように、アプリケーションが吐き出したデータに基づいてスプールされるため、ＧＤＩの前に存在している。ＥＭＦスプーラにスプールされているＥＭＦ形式のデータは、分散印刷ドライバに指示に基づいて、再スプール部（本印刷制御プログラムの一つのモジュール）にページ番号と共に渡される。そして、分散すべきプリンタに相当する第２のプリンタドライバで印刷データの生成処理をさせるために、もう一度ＧＤＩを介してプリンタドライバに印刷命令をページ番号と共に出力し、スプーラ２を介して印刷データをプリンタに出力する。また、必要に応じて（３つ以上のプリンタに分散する場合）、再スプール部から、異なる第３のプリンタドライバで印刷データの生成処理をさせるために、もう一度ＧＤＩを介してプリンタドライバに印刷命令をページ番号と共に出力し、スプーラ３を介して印刷データをプリンタに出力する。
【００４２】
また、図６の印刷システムでは、スプールファイルとして、ＥＭＦを利用する例について説明したが、分散印刷をさせるプリンタが同系列のプリンタである場合は、印刷データのプリンタ言語が同一になるため、ＲＡＷスプーラを利用することも可能である。その場合は、プリンタドライバで最初の印刷データの生成時にすべてのページの生成を行い、分散するプリンタごとにページ数を指定して印刷を行わせる。
【００４３】
このように分散印刷を自動的に行わせることにより、ユーザの手間が省け、また、アプリケーションからの印刷命令の出力も一度で済むため、印刷処理からの開放が早くなり、その間に他の処理をすることが可能となり、ユーザにとって使い勝手のよい分散印刷が提供されることになる。
【００４４】
図７は、分散印刷処理中の分散印刷ジョブの操作、表示の対象となるプリンタオブジェクトの表示の一例である。ここで各々の印刷ジョブのステータス取得の処理は通常の印刷ジョブのステータス取得の処理と同様であり、その手段は特に問わない。例えば、図示省略したプリントサーバやプリンタに対して直接クライアントからポーリングを行ってステータスを取得してもよいし、プリントサーバからのステータス通知を受けてもよいし、また、プリンタから直接トラップを用いてステータス通知を受けてもよい。このようにして取得した各々の印刷ジョブのステータスに基づいて、分散印刷ジョブの親印刷ジョブと子印刷ジョブのステータスを認識することができる。ここでいう親印刷ジョブとは、アプリケーションが依頼した印刷命令に基づく分散印刷ジョブそのものであり、子印刷ジョブとは、分散印刷ジョブ内のそれぞれのプリンタに対して分散された実際の印刷ジョブのことである。更に具体的には、親印刷ジョブとは、アプリケーションから依頼された印刷命令に基づいて生成され、スプールファイルとして保持されるものに対応するものであり、親ジョブに対応するスプールファイルは例えば上に説明したＥＭＦなどが相当するが、本発明はこれに限定されるものではなく、ＰＤＬに変換できる形式のファイルであれば、異なるページ記述言語に対応した複数のプリンタを対象にしてでも子印刷ジョブを生成することが可能となり、本発明に適用可能である。
【００４５】
また、子印刷ジョブとは、分散印刷ドライバの指示に基づいてオリジナルの親印刷ジョブに対応するスプールファイル（ＰＤＬに変換できる形式のファイルであり例えばＥＭＦに相当）を再スプール部を介し更に分散すべきプリンタに対応するプリンタドライバにより生成された印刷データを含む印刷ジョブに対応する。
【００４６】
７０１は、オリジナルの親印刷ジョブに関する表示、および操作をするためのユーザインタフェース画面の一例である。このユーザインタフェース画面（以下、ＵＩと呼ぶことがある）は、分散印刷ドライバのアイコンをダブルクリックすることにより、本印刷制御プログラムにより提供されて表示部に表示される。このＵＩでは、親印刷ジョブのステータス（状態）が「スプール中」と表示されている。「スプール中」とは、印刷データをプリンタに対してスプール（転送し、プリンタのメモリに対して保存）しているという意味である。他の状態としては、「印刷待ち」、「印刷中」、「印刷終了（削除）」、「エラー発生」などがある。また、７０１のＵＩにおいて、例えば、メニューの「プリンタ（Ｐ）」から「分散先プリンタ」というメニュー（図示省略）を選択すると、以下の７０２と７０３のダイアログ（ＵＩ）が表示される。
【００４７】
７０２、７０３は、オリジナルのジョブから、２つの出力装置に対して分散印刷処理を行うことで生成した子印刷ジョブに関する表示、および操作をするためのユーザインタフェース画面（ダイアログボックス）の一例である。このように、親印刷ジョブのＵＩから対応する子印刷ジョブのみを抽出することができるので、ユーザは親印刷ジョブの表示を見ることにより、分散印刷処理全体として現在どのような状態なのかを容易に認識することができるばかりでなく、親印刷ジョブに対応する複数の子印刷ジョブに関する情報を容易に抽出し得ることが可能となる。また、所定のプリンタにおいて、子印刷ジョブが他の一般的な印刷ジョブと混在して処理されるような環境下でも、ユーザが、親印刷ジョブに関連する子印刷ジョブを容易に区別することができるという効果に結びつくものとなる。尚、子印刷ジョブの表示のさせ方は上に説明したものに限定されるものではなく、上の説明で７０２、７０３は親印刷ジョブに対応する子印刷ジョブの状態をそれぞれ別の表示枠に示すようにしたが、無論、１つの表示枠中に、親印刷ジョブに対応する複数の子印刷ジョブのリストを表示させるような形態も想定される。また、この時に１つの表示枠中に表示される複数の子印刷ジョブのリストは、複数の親印刷ジョブのリストが表示されたＵＩから指定された、所定の親印刷ジョブに対応して抽出された複数の子印刷ジョブの夫々に関する出力先、状態が一覧表示されたリストに対応する。
【００４８】
ここで、注意しておく点として、図７の７０１における親印刷ジョブのステータス（状態）とは、オリジナルとして生成された印刷データそのもののステータスを表わすものではなく、オリジナルの印刷データから分割され生成された複数の子印刷ジョブの夫々のステータスを組み合わせることによって生成した仮想的なステータスであるということである。この仮想的な親印刷ジョブのステータスがユーザに提供されることによって、例えば、ユーザは分散印刷処理が全体として完了したか否かなどの状態を、複数に分割された子印刷ジョブの夫々のステータスをわざわざ確認しなくとも、容易に知ることができる。即ち、もともとユーザが印刷指示をした１つのドキュメントの印刷状況を知るには、どのような分散印刷方法の場合でも、どれだけの数の子印刷ジョブが生成され、夫々がどういう状況であろうとも、親印刷ジョブを把握するだけで良いという効果を得ることができる。
【００４９】
このように、仮想プリンタドライバのダイアログボックスを表示させることにより、分散印刷の親印刷ジョブのステータス表示や操作を行うことができ、また、分散先プリンタのダイアログボックスを表示することにより子印刷ジョブのステータス表示や操作を行うことができ、ユーザにとって分散印刷ジョブの表示が明確に理解でき、それぞれのジョブの操作が容易に理解可能となる。
【００５０】
図８は、オリジナルの親印刷ジョブ（図８中では親ジョブと呼ぶ）と、分散印刷により分割された子印刷ジョブ（図８中では子印刷ジョブと呼ぶ）の状態遷移の一例を示す表である。前述したように、オリジナルの印刷ジョブを親印刷ジョブ、分散印刷処理により生成されたジョブを子印刷ジョブとしている。本発明の情報処理装置においては、図８に示すような,複数の子印刷ジョブの夫々の状態の組み合わせより、親印刷ジョブの状態が決定されるようになっている。これにより、ユーザはそれぞれ同期していない子印刷ジョブの夫々の状態を理解せずとも、分散印刷ジョブの状態がどのようなものであるかを親印刷ジョブの状態を知ることにより容易に把握することができる。また、状態の種類としては図８に示される状態に限定されるものではなく、例えば、エラーなどの状態なども想定され、複数の子印刷ジョブのうちの何れかの状態がエラーであったような場合には、親印刷ジョブの状態をエラーとするような制御形態も本発明では想定される。以下、本実施例の説明では、親印刷ジョブと子印刷ジョブとで、印刷ジョブを区別して説明する。
【００５１】
ここで、本発明の特徴について説明する。
【００５２】
本発明の情報処理装置（クライアント１０１）は、分散印刷を制御する情報処理装置であって、操作者から本印刷制御プログラムに対して入力される分散印刷の指示（分散印刷ドライバに対する印刷指示）に基づいて、印刷すべきデータ（アプリケーションから吐き出される印刷命令であるＧＤＩ関数、または、対応するＥＭＦ形式のデータ）から複数のプリンタに対する複数の子印刷ジョブを、それぞれのプリンタで印刷させることができるプリンタドライバを用いて生成させるよう制御する分散印刷制御手段（それぞれのプリンタドライバに対してＥＭＦのデータをページ番号を指示して渡す本印刷制御プログラムの処理）と、前記分散印刷制御手段による制御に応じて生成される複数の子印刷ジョブ（図７でいう７０２、７０３）と、複数の子印刷ジョブの基となる親印刷ジョブ（図７でいう７０１）との状態を識別可能に（実施例ではダイアログを分けている。また、後述する子印刷ジョブの一覧表示に親印刷ジョブを分類「親」として表示させてもよい。）表示させる表示制御手段と、前記親印刷ジョブに対する操作指示に応じて、親印刷ジョブに対応する複数の子印刷ジョブが同様に操作されるよう制御する操作制御手段（図９以降に後述する処理）とを有することを特徴とする。
【００５３】
また、前記操作制御手段における印刷ジョブの操作は、削除操作（図９のフローチャート）である。
【００５４】
また、前記操作制御手段における削除は、該情報処理装置のメモリに該当する子印刷ジョブが格納されている場合は、該メモリの子印刷ジョブを削除し、また、プリンタに該当する子印刷ジョブが送信されている場合は、該プリンタに対して当該子印刷ジョブの削除を指示する制御である。
【００５５】
また、前記操作制御手段における印刷ジョブの操作は、一時停止操作である。
【００５６】
また、前記操作制御手段における一時停止は、該情報処理装置のメモリに該当する子印刷ジョブが格納されている場合は、該メモリの子印刷ジョブを一時停止し、また、プリンタに該当する子印刷ジョブが送信されている場合は、該プリンタに対して当該子印刷ジョブの一時停止を指示する制御である。
【００５７】
また、前記表示制御手段は、親印刷ジョブの状態を認識させるためのユーザインタフェースを提供する。
【００５８】
また、前記表示制御手段は、前記ユーザインタフェースにおいて親印刷ジョブを指定して子印刷ジョブの表示指示がなされた場合に、親印刷ジョブから分散印刷処理により生成されたすべての子印刷ジョブの状況を一覧表示する。
【００５９】
図９は本発明の印刷制御プログラムを用いたジョブの操作方式のうち、親印刷ジョブを指定して削除指示することにより、子印刷ジョブも一括削除する手順を示すフローチャートである。以下、図９を用いて詳しい手順を説明する。尚、以下説明する図９、図１０、図１１、図１２の各フローチャートの各ステップの処理は、情報処理装置におけるＣＰＵ２００が、ＲＯＭ２０１、ＨＤ２０５などの不揮発性記憶手段に記憶されたプログラムコードを読込み、該読込んだプログラムコードに即した処理を実行することに基づいて実現されるもであるが、各フローチャートの一部、或は、全てのステップをプリントサーバ或はプリンタなどが処理するような場合には、その都度処理の主体となる装置に備えられたＣＰＵが不揮発性記憶手段に記憶されたプログラムコードを読込み、該読込んだプログラムコードに即した処理を実行することに基づいて実現されるものとする。
【００６０】
図９のステップＳ９０１は図９のフローチャートの処理の開始を示すものであるが、その開始の状況としてはあるジョブに対して、分散印刷処理が行われ、親印刷ジョブと子印刷ジョブが図７の例で示したようなダイアログボックスを用いたＵＩ表示がなされているような場合が想定される。この時の各ジョブのステータスはジョブが削除可能なステータスであれば、どのようなステータスであってもよい。
【００６１】
ステップＳ９０２において、ユーザがマウスやキーボードなどの操作部を用いて親印刷ジョブをＵＩ上で指定し、ｄｅｌキーやＵＩ上のメニューの「ドキュメント」の「削除メニュー」（図示省略）などから、親印刷ジョブの削除指示が入力されると、ステップＳ９０３において、指示された親印刷ジョブを管理する印刷システム（印刷制御プログラム）は、削除指示された親印刷ジョブのジョブ管理情報（ＲＡＭ２０２で管理されている）に付随している子印刷ジョブの管理情報（ＲＡＭ２０２で管理されている）を参照して、この削除指示されたジョブが分散印刷処理の親印刷ジョブであり、操作可能な子印刷ジョブが存在するかを、判断する。例えば、指定されたジョブが親印刷ジョブであり、印刷装置（プリンタ１０２〜１０４）の機能により印刷処理が開始されたため削除できない状態になっていない子印刷ジョブがある、つまり、操作可能な子印刷ジョブが存在していれば、ステップＳ９０４に進み、また、指定されたジョブが親印刷ジョブでない、もしくは操作可能な子印刷ジョブが存在していない場合は、ステップＳ９０７に進む。
【００６２】
ステップＳ９０３における、処理について更に詳細な説明を行う。図１３はステップＳ９０３において情報処理装置によって参照されるジョブ管理情報の具体的な一例を示すものである。図１３は本発明におけるジョブ管理情報の一部を示すものであるが、１３０１はジョブを識別するためのジョブＩＤを示す。また、１３０２は印刷ジョブの名前を指すものである。また、１３０３はジョブがスプールされるプリンタの名前を指定するためのものである。１３０４はプリンタの稼動状態、エラー発生状況などのジョブに関連する状態を示すものである。また、１３０５は元のジョブＩＤを指すものである。１３０６は子印刷ジョブ情報リストのポインタであって、該ポインタの指し示すアドレスには子印刷ジョブのジョブの情報が記憶されおり、図１３の場合は１３０７〜１３０９を参照するための情報が記憶されている。１３０７〜１３０９には子印刷ジョブのＩＤと夫々のＩＤに対応したドキュメント名、ステータス、出力先プリンタ名などを示す情報が記憶されている。
【００６３】
ここで、更に親印刷ジョブのジョブ管理情報と、子印刷ジョブ管理情報とを夫々区別して説明すると、親印刷ジョブのジョブ管理情報においては、図１３における元のジョブＩＤ１３０５の値は自身が元のジョブの為に、例えば、「ＸＸＸＸ」など、自身が元のジョブであることを識別するための情報が記憶されている。そして、子印刷ジョブの情報リストのポインタ１３０６には、自身の印刷データを元に生成された複数の子印刷ジョブの夫々の情報を参照するためのポインタが記憶されている。
【００６４】
次に、子印刷ジョブのジョブ管理情報を図１３を用いて説明すると、ジョブＩＤ１３０１は子印刷ジョブ自身のＩＤが記憶されており、元のジョブＩＤ１３０５には元のジョブである親印刷ジョブのＩＤが記憶されており、この１３０５が参照されることにより、子印刷ジョブに対応する親印刷ジョブを特定することが可能となる。そして、子ジョブ情報リストのポインタには、自身が子印刷ジョブであることを識別するための情報が記憶されている。無論、自身以外の子印刷ジョブのステータス等の情報を参照するためのポインタを格納するようにすることも想定され、そうすることにより、子印刷ジョブのジョブ管理情報から他の子印刷ジョブを特定することが可能となる。
【００６５】
尚、本発明におけるジョブ管理情報は上に説明したものに限定されるものではなく、親印刷ジョブと子印刷ジョブとが相互にお互いの情報を参照したり、更新したりできて、かつ、それぞれの情報更新が連動して処理されるような形式のデータであれば、本発明における親印刷ジョブと子印刷ジョブとの関係を実現することができる。
【００６６】
また、図１３に示したようなジョブ管理情報は、後述にて説明する図１０のＳ１００３、Ｓ１００５、図１１のＳ１１０３、Ｓ１１０４図１２のＳ１２０３などの処理においても利用される。
【００６７】
ステップＳ９０４では、本印刷制御プログラムは、削除指示された親印刷ジョブから生成された子印刷ジョブを削除するよう制御する。子印刷ジョブの削除処理は、従来から行われている印刷ジョブの削除と同様に行われる。例えば、クライアントにスプールされている場合はその子印刷ジョブの削除が行われる。また子印刷ジョブがプリントサーバにスプールされている場合は、クライアントはプリントサーバに対して該当する子印刷ジョブの削除指示を行い、またプリンタにスプールされている場合はプリンタで発行されたジョブＩＤを用いて子印刷ジョブの削除指示を行う。この子印刷ジョブの削除処理自体に特徴はなく、従来の印刷ジョブの削除と同様であり、その削除処理方法はどのような方法を用いてもよい。ここでは、親印刷ジョブの削除指示に基づいて、対応する子印刷ジョブを認識し、その子印刷ジョブに対する削除処理をするよう制御することが特徴となる。
【００６８】
ステップＳ９０４において子印刷ジョブの削除処理が行われると、ステップＳ９０５において、印刷制御プログラム（実際は、印刷制御プログラムに基づいてＣＰＵ２００が制御する）は、親印刷ジョブの管理情報の更新を行う。例えば、「印刷待ち」として管理していた、子印刷ジョブのステータスを「削除済み」に更新する。子印刷ジョブの削除と親印刷ジョブの管理情報の更新後ステップＳ９０６に進み、例えば図７の７０２のジョブの表示をひとつ消すといったような、子印刷ジョブが削除されている表示にＣＰＵ２００は印刷制御プログラムに基づいて更新する。そして再び、ステップＳ９０３にもどり、操作可能な子印刷ジョブがすべて、削除されるまでステップＳ９０４，９０５，９０６の手順を繰り返す。
【００６９】
ステップＳ９０３〜ステップＳ９０６において、削除可能な子印刷ジョブがすべて削除されると、ステップＳ９０７に進み、ＣＰＵ２００は印刷制御プログラムに基づいてユーザにより指示された親印刷ジョブを削除する。ここでいう親印刷ジョブの削除処理は、親印刷ジョブの表示を行うために管理している管理情報の削除と、分散印刷ジョブを生成するためにスプールしていたスプールファイル（ＥＭＦデータ形式などに相当するファイル）の削除とを行う。
【００７０】
そして、ステップＳ９０８において、ステップＳ９０７に対応して削除された親ジョブのステータス表示の更新（図９の場合親ジョブのリストの削除に相当）を行い削除処理を終了する。例えば、図７の７０１のような親印刷ジョブの表示の場合、ジョブをひとつ消した表示に更新して、削除処理を終了する。もし、ステップＳ９０３において、管理している子印刷ジョブが存在しない場合も、そのまま、ステップＳ９０７において、指示されたジョブのみ削除し、ステップＳ９０８で、ジョブの表示情報を更新して、終了する。
【００７１】
なお、ジョブの削除処理の判断が異なるだけで、一時停止の場合も同様の操作で実現することができる。
【００７２】
また、ジョブのプライオリティの設定のようにジョブに関する情報であっても親印刷ジョブと関連付けられた子印刷ジョブの情報であれば、同様の方法で更新することができる。
【００７３】
図１０は、子印刷ジョブが削除された場合に、すべての子印刷ジョブが削除されると、親印刷ジョブも削除する手順を示すフローチャートである。
【００７４】
ステップＳ１００１は図１０のフローチャートの処理の開始を示すものであるが、その開始の状況としてはあるジョブに対して、分散印刷処理が行われ、親印刷ジョブと子印刷ジョブが図７の例で示したような表示がなされているような場合が想定される。この時の各ジョブのステータスはジョブが削除可能なステータスであれば、どのようなステータスであってもよい。
【００７５】
ステップＳ１００２において、図７の７０２の例で示したような子印刷ジョブに対し、ジョブの削除の指示が入力されると、ステップＳ１００３において、ジョブの削除を指示されたプリントシステムは、子印刷ジョブのジョブ管理情報内を参照し、このジョブを生成した親印刷ジョブが存在するかどうかを図１３に示したジョブ管理情報を用いて判断する。即ち、図１３の１３０５元のジョブＩＤに相当するＩＤのジョブが存在するか否かを判断する。
【００７６】
親印刷ジョブが存在すれば、親印刷ジョブの管理情報内の自分の子印刷ジョブの情報をジョブＩＤで識別しステータスを「削除済み」に更新する。更新された親印刷ジョブのもつ子印刷ジョブの管理情報内（図１３の１３０７から１３０９に相当）で、他のジョブがなんらかの操作や、印刷終了などで、すべて削除されていた場合、ステップＳ１００６において、ひとつの分散印刷処理が完結したとみなし、ユーザが削除を指示した子印刷ジョブと、この子印刷ジョブを生成した親印刷ジョブの両方を削除する。次にステップＳ１００７において、子印刷ジョブと親印刷ジョブの両方の表示を更新して、ステップＳ１０１０で削除処理を終了する。ステップＳ１０１０においては、図７の例で示したようなプリンタオブジェクト内のジョブは、ひとつの親印刷ジョブと生成された子印刷ジョブすべての表示が消される。
【００７７】
もし、ステップＳ１００５において、まだ、別の子印刷ジョブが削除されずに残っている場合は、ステップＳ１００８に進み、削除を指示された子印刷ジョブのみ削除し、ステップＳ１００９において子印刷ジョブの表示のみ更新して終了する。また、ステップＳ１００９における処理として、フローチャートには図示されていないが、ステップＳ１００８の子印刷ジョブのステータスの更新に伴い、更新された子印刷ジョブのステータスと他の子印刷ジョブのステータスの組み合わせに応じて図８に示したような規則にのっとり親印刷ジョブのステータスも更新されることも想定される。例えば、図８における子ジョブ１のステータスが「転送中」で、子ジョブ２のステータスが「印刷待ち」であったような場合に、子ジョブ２が削除されると、親印刷ジョブのステータスは「印刷待ち」から「印刷中」に更新され、ＵＩの表示も該ステータスの更新に伴い更新される。
【００７８】
また、ステップＳ１００３において、親印刷ジョブが存在しない場合は、ステップＳ１００８の手順で指示されたジョブのみ削除し、ステップＳ１００９において指示されたジョブが削除された表示に更新することで、一般的なジョブの操作と同様に特別な操作をすることなくユーザは本発明の操作方式を実行することができる。
【００７９】
このように、本発明によれば、図９、１０に示されるようなフローチャートを実現することができるので、例えば、ＬＡＮ環境下などにおいて複数のプリンタに分散され生成された複数の子印刷ジョブに対して一括した操作を行うことや、子印刷ジョブから親印刷ジョブ或は別の出力装置に分散された子印刷ジョブに対して一括した操作が可能となり、より使い勝手の良い印刷環境をユーザに提供することができる。
【００８０】
図１１は、子印刷ジョブの情報やステータスが更新された場合に親印刷ジョブに通知する手順を示したフローチャートである。
【００８１】
図１１のステップＳ１１０１は図１１のフローチャートの処理の開始を示すものであるが、その開始の状況としては例えば、「印刷待ち」から「印刷中」のステータス更新のような、子印刷ジョブの情報が更新されようとしている状態なら、どんな場合でもよい。
【００８２】
ステップＳ１１０２において、ユーザ（操作者）からの操作入力によりジョブのステータスが更新される。ユーザからの操作入力としては、例えば、ＵＩを介して操作対象となるジョブの処理が一時停止されるよう指示する入力などが想定される。また、情報処理装置、プリンタサーバ、プリンタの何れかの装置においてエラーが発生した場合などには、エラー発生元の装置から情報処理装置（ユーザが操作するパーソナルコンピュータ）にエラーを示す情報の通知が自動的なされ、該通知された情報に基づいてステップＳ１１０２で、子印刷ジョブのジョブ管理情報の更新が行われる。
【００８３】
ステップＳ１１０３において、ＣＰＵ２００は印刷制御プログラムに基づいて、ステータスが更新したジョブの管理情報内から、ステータスが更新されたジョブが子印刷ジョブであるのならば、当該子印刷ジョブに対応する親印刷ジョブの存在を判断する。該判断は実際には上に説明した図１３における元のジョブＩＤ１３０５を参照し、該ＩＤに該当するジョブが存在するか否かの判断が情報処理装置になされることにより親印刷ジョブの存在の判断が行われる。
【００８４】
もし、親印刷ジョブが存在すれば、ステップＳ１１０４において、親印刷ジョブのもつ、子印刷ジョブの管理情報内から、ジョブＩＤで自分の情報を検索し、その管理情報内の自分のＩＤに対応するステータスを更新させる。ステップＳ１１０４の処理の終了後に、ステップＳ１１０５において、ステータスが更新されたジョブのＵＩの表示を更新して、終了する。このステップＳ１１０５におけるＵＩの表示の更新は、子印刷ジョブに対応するＵＩの表示の更新、或は、上の図８にて説明したような仕組みに基づく子印刷ジョブのステータスの更新に伴う親印刷ジョブのＵＩの表示の更新などが本実施の形態において想定される。
【００８５】
親印刷ジョブの存在しないジョブの情報更新の場合は、ステップＳ１１０３からステップＳ１１０５に進み、情報が更新されたジョブの表示のみ更新する。ここで、親印刷ジョブが存在しないような状況としては、例えば、子印刷ジョブが親印刷ジョブが生成された情報処理装置とは異なる他の情報処理装置で生成されるような印刷処理が行われ環境下において、他の情報処理装置から子印刷ジョブの削除の指示が入力されたような場合に、親印刷ジョブが生成された情報処理装置と通信障害のために通信が行えないような場合に、他の情報処理装置から親印刷ジョブの存在を確認できないようなことが想定される。また、このことは上に説明した図１０においても同様のことが想定される。
【００８６】
図１２は、親印刷ジョブを指示することにより、子印刷ジョブの状況表示を行う手順を示したフローチャートである。
【００８７】
ステップＳ１２０１は図１２のフローチャートの処理の開始を示すものであるが、その開始の状況としては親印刷ジョブが存在していれば、どんな状況でもよい。ステップＳ１２０２において、例えば、図７の７０１のようなＵＩを介してユーザから、親印刷ジョブを指定し、ＵＩのメニューから「状態表示」（図示省略）するよう指示がなされると、ステップＳ１２０２において、ＣＰＵ２００は、印刷制御プログラムに基づいて、親印刷ジョブに対応する複数の（分散された）子印刷ジョブの管理情報内を参照する。該参照の際には図１３にて説明したようなジョブ管理情報が利用される。また、このジョブ管理情報は、図１１のフローチャートで示した手順で、常に最新の子印刷ジョブの情報が反映されており、削除された子印刷ジョブの情報も残されている。
【００８８】
次に、ステップＳ１２０３において、ＣＰＵ２００は、印刷制御プログラムに基づいて、該管理情報から取得した、ジョブのＩＤ、ドキュメント名、ステータス、出力先プリンタ名、例えば、（１／２）のような、各ジョブの分割順などを一覧表示する。この手順により、複数の子印刷ジョブの状況を、削除された子印刷ジョブの情報も含めて、表示することが可能となる。また、この一覧表示には、親印刷ジョブに対応するすべての子印刷ジョブの表示だけでなく、基となる親印刷ジョブも同時に表示し、その際に、「分類」などの項目を設けて親印刷ジョブは「親」、子印刷ジョブは「子」というように識別可能に表示してもよい。親印刷ジョブと子印刷ジョブとを同時に一括して一覧表示した図７とは別のユーザインターフェース例を図１４に示す。１４０１と同じ枠内に示されるＰｒｉｎｔｅｒＡ〜Ｂは、子印刷ジョブが夫々処理されるプリンタに対応し、１４０１の分散くんは親印刷ジョブに対応するプリンタを示す。１４０２の状態（図中には印刷中と表記）には、１４０３〜１４０４の夫々に対応する状態を元に生成された親印刷ジョブの状態が表示されている。１４０２と同じ枠内には親印刷ジョブに対応する表示が１つしかなされていないが、１４０２の枠内に複数の親印刷ジョブに関するリストが表示される場合には、複数の中から選択された所定の親印刷ジョブに対応する子印刷ジョブのリストが１４０３〜１４０５が表示されている同じ枠に切換え表示される。また、１４０２のような情報と１４０３〜１４０５のような情報とを一括して表示させるのではなく、図７にて説明したように、親印刷ジョブと子印刷ジョブに関する表示の枠を別々のタイミングで表示させても良い。尚、図１４では子印刷ジョブの数が３となっているが、生成可能な子印刷ジョブ数であれば、例えば、１００個の子印刷ジョブと該１００個の子印刷ジョブの元となる親印刷ジョブの表示がなされるような形態でも本発明を適用可能なことは言うまでもない。
【００８９】
以上のような手順で、本発明の操作方式の操作、表示を実現することができる。
【００９０】
本発明の実施例は、ＰＣにＷｉｎｄｏｗｓのようなＯＳ上での動作を例にして説明したが、他のＯＳやＰＣ以外の装置であっても、複数の出力装置に対して異なるスプール方式や、プリンタ制御を行なえる装置から、一つのジョブを複数の出力装置から出力するような装置であれば、どんなものでもよい。
【００９１】
本発明は、ユーザが意図した印刷データをひとつのジョブとして扱い、その印刷データから、新たに複数のジョブが生成された場合には、例えば、印刷データを分割する場合であっても、コピーを生成して部数やページ数を増やす場合でも、どのような分散印刷処理にも適用できる。
【００９２】
分散印刷処理により、新しいジョブが生成した後は、オリジナルジョブの管理情報のみ存在し、印刷データを削除して、同等の機能を提供してもよい。
【００９３】
本発明のジョブの操作、表示の適応範囲は、プリンタに転送するまでのホストコンピュータ上に限らず、プリンタ内にスプールされる場合や、印刷処理中のジョブ、排紙確認待ちのジョブなど、プリントシステム内に、ジョブ、または、印刷データ、ジョブの管理情報のいずれか一方が存在する、すべての状況に適応することができる。
【００９４】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【００９５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【００９６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体、或は、そのプログラムコード自体は本発明を構成することになる。
【００９７】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９９】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１００】
【発明の効果】
以上説明したように、本発明によれば、ユーザにとって理解しやすい分散印刷ジョブの表示や操作をすることができる仕組みを提供することができる。
【図面の簡単な説明】
【図１】本発明の情報処理装置が適用される印刷システムの一例を示す図である。
【図２】本発明の情報処理装置の機能構成を概略的に示すブロック図である。
【図３】本発明の記憶媒体から本プログラムモジュールをＲＡＭ２０１に展開したときのメモリマップである。
【図４】本発明の記憶媒体内部のプログラムモジュール等のデータ配置を表すメモリマップである。
【図５】情報処理装置と本発明の記憶媒体の関係を示す図である。
【図６】本発明の分散印刷の操作、表示を実現するプリントシステムの一例を説明する機能ブロック図ある。
【図７】本発明のプログラムモジュール（機能）により提供される表示方法の一例である。
【図８】本発明の操作方式の前提となる分散印刷処理によるジョブのステータスの遷移の一例である。
【図９】本発明のオリジナルジョブに対する削除処理の手順を示すフローチャートである。
【図１０】本発明の分散印刷処理により生成された印刷ジョブに対する削除処理の手順を示すフローチャートである。
【図１１】本発明のオリジナルのジョブの管理情報に分散印刷により生成されたジョブの情報を更新する手順を示すフローチャートである。
【図１２】本発明の分散印刷処理による生成されたジョブの状況をオリジナルのジョブに関する情報として表示する手順を示すフローチャートである。
【図１３】本発明のジョブ管理情報の一例である。
【図１４】本発明のプログラムモジュール（機能）により提供される表示方法の一例である。
【符号の説明】
１０１  クライアントコンピュータ（情報処理装置）
１０２  プリンタ
１０３  プリンタ
１０４  プリンタ
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  ＦＤドライブ
２０４  ＦＤ（記憶媒体）
２０５  ＨＤ（外部メモリ）
２０６  キーボード（入力装置）
２０７  ディスプレイ（表示部）
２０８  システムバス
２０９  インタフェース
３０３  ネットワークプリンタ制御プログラム
４０３  ネットワークプリンタ制御プログラム
【図１】
0003720740.tif 000002
【図２】
0003720740.tif 000003
【図３】
0003720740.tif 000004
【図４】
0003720740.tif 000005
【図５】
0003720740.tif 000006
【図６】
0003720740.tif 000007
【図７】
0003720740.tif 000008
【図８】
0003720740.tif 000009
【図９】
0003720740.tif 000010
【図１０】
0003720740.tif 000011
【図１１】
0003720740.tif 000012
【図１２】
0003720740.tif 000013
【図１３】
0003720740.tif 000014
【図１４】
0003720740.tif 000015