(57)【要約】【課題】  グルーピングの条件に合致する印刷ジョブをグルーピングしてプリンタに送信する。【解決手段】  スプールした印刷ジョブのスケジュール要求を、印刷処理をスケジューリングするプリンタサーバに送信する(S92)。スケジュールアップ通知を受信すると(S93)、スケジュールアップ通知に対応する印刷ジョブにグルーピングするグルーピング対象の印刷ジョブを、スプールした印刷ジョブから抽出する(S95)。スケジュールアップ通知に対応する印刷ジョブとグルーピング対象の印刷ジョブをグルーピングする(S97)。そして、グルーピングした印刷ジョブをプリンタサーバに送信し(S98)、送信した印刷ジョブの完了通知を受信すると、完了通知が示す印刷ジョブをスプールから削除する(S99)。【選択図】  図8
2008059371.tif 000002
【特許請求の範囲】
【請求項１】
スプールした印刷ジョブのスケジュール要求を、印刷処理をスケジューリングするプリンタサーバに送信して、前記スケジュール要求に対するスケジュールアップ通知を受信するスケジュール要求手段と、
前記スケジュールアップ通知を受信すると、前記スケジュールアップ通知に対応する印刷ジョブにグルーピングするグルーピング対象の印刷ジョブを、前記スプールした印刷ジョブから抽出して、前記スケジュールアップ通知に対応する印刷ジョブと前記グルーピング対象の印刷ジョブをグルーピングするグルーピング手段と、
前記グルーピングした印刷ジョブを前記プリンタサーバに送信する送信手段とを有することを特徴とする印刷制御装置。
【請求項２】
さらに、前記送信した印刷ジョブの完了通知を受信すると、前記完了通知が示す印刷ジョブを前記スプールから削除する削除手段を有することを特徴とする請求項1に記載された印刷制御装置。
【請求項３】
前記グルーピング手段は、前記スケジュールアップ通知に対応する印刷ジョブの受付時間と、その後に受け付けた印刷ジョブの受付時間の差分に基づき、前記グルーピング対象の印刷ジョブか否かを判定することを特徴とする請求項1または請求項2に記載された印刷制御装置。
【請求項４】
さらに、前記差分に対応する時間を設定する設定手段を有することを特徴とする請求項3に記載された印刷制御装置。
【請求項５】
前記グルーピング手段は、前記スプールした印刷ジョブの前記スケジュール要求済みの印刷ジョブから前記グルーピング対象の印刷ジョブを抽出することを特徴とする請求項1から請求項4の何れかに記載された印刷制御装置。
【請求項６】
前記グルーピング手段は、前記印刷ジョブに設定されているジョブ属性に基づき、前記グルーピング対象の印刷ジョブか否かを判定することを特徴とする請求項5に記載された印刷制御装置。
【請求項７】
前記プリンタサーバは、前記スケジュール要求を受信した印刷ジョブの印刷の順番を制御し、前記印刷の順番に達した印刷ジョブに対する前記スケジュールアップ通知を送信することを特徴とする請求項1から請求項6の何れかに記載された印刷制御装置。
【請求項８】
スプールした印刷ジョブのスケジュール要求を、印刷処理をスケジューリングするプリンタサーバに送信して、前記スケジュール要求に対するスケジュールアップ通知を受信するスケジュール要求ステップと、
前記スケジュールアップ通知を受信すると、前記スケジュールアップ通知に対応する印刷ジョブにグルーピングするグルーピング対象の印刷ジョブを、前記スプールした印刷ジョブから抽出して、前記スケジュールアップ通知に対応する印刷ジョブと前記グルーピング対象の印刷ジョブをグルーピングするグルーピングステップと、
前記グルーピングした印刷ジョブを前記プリンタサーバに送信する送信ステップとを有することを特徴とする印刷制御方法。
【請求項９】
さらに、前記送信した印刷ジョブの完了通知を受信すると、前記完了通知が示す印刷ジョブを前記スプールから削除する削除ステップを有することを特徴とする請求項8に記載された印刷制御方法。
【請求項１０】
前記グルーピングステップは、前記スケジュールアップ通知に対応する印刷ジョブの受付時間と、その後に受け付けた印刷ジョブの受付時間の差分に基づき、前記グルーピング対象の印刷ジョブか否かを判定することを特徴とする請求項8または請求項9に記載された印刷制御方法。
【請求項１１】
さらに、前記差分に対応する時間を設定する設定ステップを有することを特徴とする請求項10に記載された印刷制御方法。
【請求項１２】
前記グルーピングステップは、前記スプールした印刷ジョブの前記スケジュール要求済みの印刷ジョブから前記グルーピング対象の印刷ジョブを抽出することを特徴とする請求項8から請求項11の何れかに記載された印刷制御方法。
【請求項１３】
前記グルーピングステップは、前記印刷ジョブに設定されているジョブ属性に基づき、前記グルーピング対象の印刷ジョブか否かを判定することを特徴とする請求項12に記載された印刷制御方法。
【請求項１４】
前記プリンタサーバは、前記スケジュール要求を受信した印刷ジョブの印刷の順番を制御し、前記印刷の順番に達した印刷ジョブに対する前記スケジュールアップ通知を送信することを特徴とする請求項8から請求項13の何れかに記載された印刷制御方法。
【請求項１５】
情報処理装置を制御して、請求項8から請求項14の何れかに記載された印刷制御を実現することを特徴とするコンピュータプログラム。
【請求項１６】
請求項15に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グルーピング印刷に関する。
【背景技術】
【０００２】
プリンタに対して、複数のクライアントからLPRなどの簡単な印刷機能によって無造作に大量の印刷ジョブを転送するプリントシステムが存在する。このようなシステムにおいて、印刷ジョブの順番の制御、プリンタに転送した印刷ジョブの管理、監視を行うには、プリントサーバが必要である。
【０００３】
一方、以前は業務用に部署ごとに設定されていたサーバが、業務アプリケーションのWeb化によって減少する傾向にある。また、プリントサーバ機能のためだけのサーバ導入は、コストや管理コストの面から減少している。
【０００４】
しかし、印刷管理、印刷監視の要望は依然高く、プリンタのサーバ機能（プリンタデバイスエンベッドプリントサーバ）を使用して、印刷ジョブを管理するシステムが考案された。このシステムは、複数のクラインアントからの印刷ジョブをプリンタに送信し、プリンタのサーバ機能によって印刷ジョブのスケジューリング処理などを行う。このようなシステムにおいて、オフライン印刷など、印刷時にプリンタ側で操作が必要な印刷処理は、ユーザがプリンタに赴き記録紙を挿入したり、処理後にオフラインを解除したりといった、一連の操作が必要である。
【０００５】
また、印刷ジョブの転送方法として、複数の印刷ジョブを一つの印刷ジョブに結合（以下「結合ジョブ」と呼ぶ）し、複数の印刷ジョブの印刷設定情報を解析して、結合ジョブ用の印刷設定情報を生成する手法が知られている。しかし、印刷の順番は、印刷指示の順番によって決定される。そのため、複数のクライアントから印刷ジョブが連続的に発生すると、異なるユーザの印刷物が重なり合い、自分の印刷物を探すのに苦労する場合がある。これを防ぐために、ユーザは、印刷ジョブを発行する都度、印刷物を取りにプリンタに赴くことになり、決して作業効率がよいとは言えない。
【０００６】
【特許文献１】特開2001-134394公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、グルーピングの条件に合致する印刷ジョブをグルーピングしてプリンタに送信することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる印刷制御は、スプールした印刷ジョブのスケジュール要求を、印刷処理をスケジューリングするプリンタサーバに送信して、前記スケジュール要求に対するスケジュールアップ通知を受信し、前記スケジュールアップ通知を受信すると、前記スケジュールアップ通知に対応する印刷ジョブにグルーピングするグルーピング対象の印刷ジョブを、前記スプールした印刷ジョブから抽出して、前記スケジュールアップ通知に対応する印刷ジョブと前記グルーピング対象の印刷ジョブをグルーピングし、前記グルーピングした印刷ジョブを前記プリンタサーバに送信することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、グルーピングの条件に合致する印刷ジョブをグルーピングしてプリンタに送信することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。
【００１２】
［印刷システムの構成］
図1は実施例の印刷システムの構成例を示すブロック図である。
【００１３】
図1において、クライアント101〜104は、ネットワークインタフェイスカード(NIC)を備え、ネットワーク107を介して互に通信可能なコンピュータであり、典型的にはパーソナルコンピュータ(PC)である。クライアント101〜104は、アプリケーションプログラムなどの各種プログラムを実行し、印刷データをプリンタに対応するプリンタ言語に変換するプリンタドライバを搭載する。なお、各クライアント101〜104はそれぞれ、複数種類のプリンタに対応するプリンタドライバを実行可能とする。また、各クライアント101〜104は、プリンタ言語に変換した印刷データを含む印刷ジョブをネットワーク107に接続されたプリンタ105に転送する。
【００１４】
プリンタ105は、ネットワークインタフェイスカード(NIC) 106を介してネットワーク107に接続され、クライアント101〜104などから受信した印刷データを含む印刷ジョブを解析する。そして、頁単位またはバンド単位にドットイメージを生成し、記録紙のような記録媒体に画像を印刷する。なお、図1は、ネットワーク107に一台のプリンタ105が接続された状態を示すが、プリンタ105のほかにもプリンタが接続されているものとする。それらプリンタの機能は同一でも相違していてもよい。
【００１５】
［クライアントのハードウェア構成］
図2はクライアント101〜104用のPCの構成例を示すブロック図である。
【００１６】
図2において、CPU 200は、RAM 202をワークメモリとして、ROM 201、ハードディスク(HD) 205に格納されたソフトウェアを実行し、システムバス208を介して装置全体を制御する。なお、ROM 201は、基本I/Oシステム(BIOS)などのプログラムが格納する。また、HD 205は、オペレーティングシステム(OS)、各種ドライバ、フォントデータ、アプリケーションプログラムとそれに関係するテンプレートや各種データ、後述するネットワークプリンタ制御プログラムなどを格納する。
【００１７】
ディスクドライブ203は、CD-ROMのような記憶媒体204からデータを読み込む手段で、記憶媒体204に格納されたプログラムやデータなどをRAM 202やHD 205にロードする際に使用される。なお、記憶媒体204はCD-ROMに限らず、CD-R、CD-RW、PCカード、DVD、メモリカード、MOなど任意である。
【００１８】
また、CPU 200は、印刷データのスプールにHD 205を利用する。なお、クライアント101〜104におけるスプール機能はクライアントスプーラと呼び、プリントサーバにおけるスプール機能はサーバスプーラと呼ぶことにする。また、プリントサーバによる印刷ジョブの蓄積、印刷ジョブの処理順序を制御するためのテーブルの格納は、ハードディスクのような記憶手段を利用して行う。
【００１９】
また、CPU 200は、ディスプレイ207にユーザインタフェイス、アプリケーションソフトの動作状態、プリンタの動作状態などを表示する。CPU 200は、キーボード206や図示しないマウスを介して、ユーザのクライアントに対する指示や、オペレータや管理者のプリントサーバに対する指示を入力する。
【００２０】
インタフェイス209は、USBやIEEE1394などのシリアルバスインタフェイス、NIC 106のようなネットワークインタフェイスを備える。CPU 200は、インタフェイス209を介して他のクライアントやプリンタ105などと通信し、データの送受信を行う。
【００２１】
［印刷制御プログラム］
図3はRAM 202のメモリマップの一例を示す図である。
【００２２】
例えば、ネットワークプリンタ制御プログラム303が、記憶媒体204からRAM 202にロードされ、実行可能となった状態の一例を示している。例えば、RAM 202の下位アドレスから順にBIOS 301、OS 302（各種ドライバを含む）、ネットワークプリンタ制御プログラム303とその関連データ304が配置され、残りのメモリ領域はワークエリア305に利用される。
【００２３】
BIOS 301は、コンピュータの電源がオンされると、ROM 201からRAM 202に読み込まれる。CPU 200はBIOS 301を実行することで、HD 205に格納されたOS 302をRAM 202にロードし実行する。つまり、BIOS 301はイニシャルプログラムローダ(IPL)としての機能を有する。
【００２４】
以下では、ネットワークプリンタ制御プログラム303を、単に「印刷制御プログラム」または「プリンタドライバ」と呼ぶことがある。
【００２５】
以下では、印刷制御プログラム303を記憶媒体204からRAM 202にロードして実行する例を説明するが、印刷制御プログラム303をHD 205にインストールして、HD 205からRAM 202にロードしてもよい。あるいは、印刷制御プログラム303をROM 201に格納して、印刷制御プログラム303の格納領域がメインメモリの一部になるように構成してもよい。この場合、印刷制御プログラム303は、CPU 200から直接（言い替えればRAM 202にロードせずに）で実行することができる。
【００２６】
クライアント101〜104において、印刷制御プログラムは、印刷ジョブの実行先（プリンタ）の変更を指示したり、印刷順序の変更を指示するための制御プログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序を制御したり、印刷ジョブの終了や印刷ジョブの実行先の変更要求などを通知するための制御プログラムを含む。このような制御を行う印刷制御プログラムは、クライアント101〜104にインストールするモジュールと、プリントサーバにインストールするモジュールを分けて構成することができる。しかし、一つの印刷制御プログラムとして構成し、その実行環境により、クライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用のモジュールとプリントサーバ用のモジュールをインストールして、同時または時分割に並列動作させることも可能である。
【００２７】
図4は記憶媒体204のメモリマップの一例を示す図である。
【００２８】
図4において、ボリューム情報401は記憶媒体204自体の情報を示す。ディレクトリ情報402は、記憶媒体204に格納されたプログラムやデータの格納位置を示す。記憶媒体204には、印刷制御プログラム（ネットワークプリンタ制御プログラム）403とその関連データ404などが格納されている。
【００２９】
［印刷システムのソフトウェア構成］
アプリケーションを介した印刷指示に応じて、OSを介して出力される描画命令を解釈し、ページ記述言語などのプリンタ言語を生成してプリンタへ出力するソフトウェアを一般にプリンタドライバと呼ぶ。なお、描画命令としては、Windows（登録商標）におけるDDI (device drive interface)関数やGDI (graphic device interface)関数が知られている。なお、OSはWindows（登録商標）に限定されるわけではなく、描画命令を備えるOSであればよい。
【００３０】
図5は印刷ジョブ制御システムの動作を説明する図である。つまり、実施例の印刷システムにおいて、クライアント101のアプリケーションの印刷指示によって発行された、文書などを印刷する描画命令を含む印刷ジョブをプリンタ105が処理する手順を説明する図である。
【００３１】
ジョブ制御デバイススケジューラ（以下「ジョブ制御DS」と呼ぶ）66は、プリンタ105のプリントサーバ機能によって提供される。ジョブ制御DS 66は、複数のジョブ制御クライアント65から発行される印刷ジョブのスケジュールを管理し、印刷処理を制御する。以下では、クライアント101のアプリケーション61から印刷する場合の処理を、クライアント101のスプーラ62、ジョブ制御クライアント65、および、プリンタ105のジョブ制御DS 66を関連させて説明する。
【００３２】
アプリケーション61が印刷指示を発行すると、一連の描画命令が生成される。この描画命令はプリンタドライバを経て所定のフォーマットに変換された後、スプーラ62に入力される(S1)。スプーラ62は、一連の描画命令を印刷ジョブとして、ジョブ制御用のポートモニタ63を介して(S1')、HD 205にスプールする(S2)。ジョブ制御クライアント65は、印刷ジョブのスプールの完了を検知すると(S3)、ジョブ制御DS 66にスケジュール要求を発行する(S4)。
【００３３】
スケジュール要求は、クライアントで印刷ジョブが発生すると、ジョブ制御DS 66に対して印刷ジョブのスケジューリングを依頼するために、ジョブ制御クライアント65が発行するコマンドである。
【００３４】
ジョブ制御DS 66は、スケジュール要求を受信すると、スケジュール機能によりスケジュール処理を行う(S5)。スケジュール機能とは、印刷ジョブの印刷順序を制御する機能である。スケジューリング機能に基づいて印刷ジョブをデバイス（プリンタ）へ送信するタイミングが決定すると、ジョブ制御DS 66は、印刷ジョブのスケジュールアップ（転送開始指示）をジョブ制御クライアント65に送信する(S6)。なお、スケジュールアップの発行順は、スケジュール要求を受信した順番になる。つまり、複数のクライアントにおいて、アプリケーションが印刷指示を発行（言い替えれば印刷を開始）した場合、印刷の開始順に印刷ジョブがプリンタ105に転送されるのではなく、先にスプールを完了した印刷ジョブから転送が開始されることになる。
【００３５】
ジョブ制御クライアント65は、スケジュールアップを受信すると、プリンタ105への印刷ジョブの転送を開始し(S7')、印刷ジョブはプリンタ105のバッファ67に蓄えられる(S7')。プリンタ105のコントローラ68は、バッファ67から印刷ジョブを読み出して(S8)、印刷処理を実行する(S9)。ジョブ制御DS 66は、コントローラ68からジョブ管理情報を取得して(S10)、印刷ジョブの状況（完了など）をジョブ制御クライアント65へ通知する(S11)。
【００３６】
ジョブ制御クライアント65は、印刷ジョブの完了を受信すると(S12)、対応する印刷ジョブをHD 205から削除する(S13)。もし、印刷中にプリンタ105のエラーが発生した場合、ジョブ制御DS 66は、コントローラ68からエラー情報を取得して(S10)、ジョブ制御クライアント65へ通知する(S11)。
【００３７】
●印刷ジョブ情報リスト
図6はジョブ制御クライアント65が管理する印刷ジョブ情報リストの構成例を示す図である。なお、印刷ジョブ情報リストは、印刷ジョブ単位に生成される印刷ジョブ情報テーブルを複数含む。
【００３８】
印刷ジョブ数フィールド701は、ジョブ情報リストに登録されたジョブ情報テーブルの総数を示す。
【００３９】
本実施例のジョブ情報テーブルは、ポートモニタ63から印刷ジョブを示すデータがジョブ制御クライアント65に送信されると、プリンタキュー情報として、ジョブ制御クライアント65によって作成される。
【００４０】
ジョブIDフィールド702は、プリンタキュー情報として管理するジョブ情報テーブルに割り当てた任意のIDを格納する。ジョブIDは、印刷ジョブの識別に使用される。ドキュメント名フィールド703は、アプリケーション61が印刷指示した文書名を格納する。文書名は、ポートモニタ63がジョブ制御クライアント65に通知する印刷ジョブを示すデータに含まれる。スプールファイルパスフィールド704は、HD 205にスプールされた印刷ジョブファイルのパス名を格納する。
【００４１】
スケジュール状態フィールド705は、スケジュール要求の状態を示す。この状態には、待機中、スケジュール要求済み、スケジュールアップ通知受信済みなどがある。なお、ジョブ制御DS 66のスケジュールジョブ数が最大値を超えた場合など、スケジュール要求しても直ぐにはスケジュール要求が受け付けられるわけではなく、待機中になる。また、スケジュール状態フィールド705がスケジュール要求済みを示す場合は、スケジュール要求の受付時間も記録される。
【００４２】
ジョブ属性フィールド706の値は、印刷ジョブの属性情報として、出力先プリンタ名、出力先プリンタアドレス（例えばIPアドレス、ポート情報を含む）、フィニッシング属性、オフライン印刷のオン/オフなどを示す。グループIDフィールド707は、自動グルーピングモードをオンにした場合にジョブ制御クライアント65が発行する任意のグループIDを格納する。ジョブ受付時間フィールド708は、ジョブ制御クライアント65が印刷ジョブを受け付けた時間を格納する。
【００４３】
●ジョブ管理リスト
図7はジョブ制御DS 66が管理するジョブ管理リストの構成例を示す図である。
【００４４】
受付ジョブ数フィールド801は、ジョブ制御DS 66が各クライアントから受信したスケジュール要求の総数を示す。この総数は、スケジュール受付ジョブ情報フィールド805〜807の総数mと等しい。
【００４５】
クライアントアドレスフィールド802〜804は、スケジュール要求を受信したクライアントのアドレス（例えばIPアドレス）とクライアントのコンピュータ名を保持する。なお、同一クライアントから複数のスケジュール要求を受信した場合、クライアントアドレスフィールドに登録するアドレスは一つだけである。
【００４６】
スケジュール受付ジョブ情報フィールド805〜807は、スケジュール要求の受付時間、印刷ジョブのサイズ、頁数、部数、オーナ情報、クライアントのコンピュータ名などの情報を受け付けたスケジュール要求ごとに保持する。
【００４７】
●自動グルーピング処理
図8はジョブ制御クライアント65が実行する自動グルーピング処理を説明するフローチャートである。
【００４８】
まず、ジョブ制御クライアント65は、自動グルーピングモードのオンオフの設定と、印刷ジョブをグルーピングする条件の設定を受け付ける(S90)。
【００４９】
次に、ジョブ制御クライアント65は、ジョブのスプールを検出する(S91)。つまり、スプーラ62による印刷ジョブのスプールを、ポートモニタ63の通知によって検出する。スプールを検出した場合は、印刷ジョブ情報リスト（図6）に印刷情報テーブルを作成し、スプールの開始時間を示すジョブ受付時間フィールド708の値を設定する。また、ステップS90で設定を受け付けた自動スプーリングモードに関しても、ジョブ属性フィールド706の値の一つとして、ステップS91で当該フィールドに値を設定する。
【００５０】
次に、ジョブ制御クライアント65は、スプールの完了を検知すると、ジョブ制御DS 66にスケジュール要求を行い、印刷ジョブ情報テーブルのスケジュール状態フィールド705を（通常は）スケジュール要求済みにする(S92)。勿論、印刷ジョブが存在しない、スプールが未了の場合は、ステップS92の処理をスキップする。
【００５１】
一方、スケジュール要求を受信したジョブ制御DS 66は、ジョブ管理リスト（図7）にスケジュール受付ジョブ情報を登録する(S81)。そして、印刷ジョブをデバイス（プリンタ）へ送信するタイミングが決定すると、印刷ジョブのスケジュールアップ（転送開始指示）をジョブ制御クライアント65に送信する(S82)。
【００５２】
次に、ジョブ制御クライアント65は、ジョブ制御DS 66からスケジュールアップが通知されたか否かを判定する(S93)。当該通知があった場合は、ステップS94以降の処理を実行する。また、当該通知がない場合は処理をステップS90へ戻す。
【００５３】
スケジュールアップが通知された場合、ジョブ制御クライアント65は、スケジュールアップした印刷ジョブに自動グルーピングモードが設定されているか否かを判定する(S94)。自動グルーピングモードが設定されている場合は処理をステップS95へ進める。また、自動グルーピングモードが設定されていない場合は、スケジュールアップした印刷ジョブのジョブIDフィールド702に記録されたジョブIDを送信用ジョブIDリストに登録して、処理をステップS98へ進める。
【００５４】
スケジュールアップした印刷ジョブに自動グルーピングモードが設定されている場合、ジョブ制御クライアント65は、当該印刷ジョブにグルーピングして送信すべき印刷ジョブを印刷ジョブ情報リストから検索する(S95)。続いて、検索結果に基づき、グルーピング対象の印刷ジョブが存在するか否かを判定する(S96)。本実施例では、スケジュールアップした印刷ジョブのグループIDフィールド707にグループIDが設定されているか否かを判定し、グループIDが設定されていればグルーピング対象の印刷ジョブがあると判定し、処理をステップS97へ進める。また、グルーピング対象の印刷ジョブがないと判定した場合は、スケジュールアップした印刷ジョブのジョブIDフィールド702に記録されたジョブIDを送信用ジョブIDリストに登録して、処理をステップS98へ進める。
【００５５】
グルーピング対象の印刷ジョブがあると判定した場合、ジョブ制御クライアント65は、印刷ジョブをグルーピングする(S97)。つまり、グループIDフィールド707に設定されたグループIDと同グループIDが設定された印刷ジョブを印刷ジョブ情報リストから抽出する。そして、それら印刷ジョブ（スケジュールアップした印刷ジョブを含む）のジョブIDを送信用ジョブIDリストに登録して、処理をステップS98へ進める。
【００５６】
次に、ジョブ制御クライアント65は、送信用ジョブIDリストに登録された印刷ジョブを、逐次、HD 205から読み出してプリンタ105に送信する(S98)。なお、本実施例では、グルーピング対象の印刷ジョブはすべてスプール済みであるから、印刷ジョブを送信するセッションの保持時間は短く、他のクライアントのスケジュール要求を妨げることはない。
【００５７】
一方、プリンタ105のコントローラ68は受信した印刷ジョブに従い印刷処理を実行し、ジョブ制御DS 66はコントローラ68からジョブ管理情報を取得して印刷ジョブの完了を検知する。そして、完了した印刷ジョブのジョブID（と、グルーピングされている場合はグループID）を含む完了通知をジョブ制御クライアント65へ通知する(S83)。なお、ジョブ制御DS 66は、完了通知の発行すると、当該印刷ジョブのジョブIDに対応するスケジュール受付ジョブ情報をジョブ管理リストから削除する。
【００５８】
ジョブ制御クライアント65は、印刷ジョブの完了通知を受信すると、完了した印刷ジョブのジョブIDに対応する、印刷ジョブ情報テーブルを印刷ジョブ情報リストから削除し、スプールされた印刷データを削除する(S99)。
【００５９】
なお、ジョブ制御クライアント65のステップS99の処理は、印刷ジョブの完了通知を受信したタイミングで実行すればよい。従って、ジョブ制御クライアント65は、ステップS98で印刷ジョブの送信を終了した時点で処理をステップS90に戻すことができる。同様に、ジョブ制御DS 66のステップS101〜S103の処理は、連続して行う必要はなく、それぞれスケジュール要求を受信したタイミング、スケジュールアップしたタイミング、印刷ジョブが完了したタイミングで実行すればよい。従って、複数のクライアントからスケジュール要求を受信し、複数のクライアントにスケジュールアップおよび印刷ジョブの完了を通知する処理を並列に実行することができる。
【００６０】
図9はステップS90の詳細な処理を示すフローチャートである。
【００６１】
まず、自動グルーピングモードを設定するか否かを判定し(S101)、自動グルーピングモードを設定しない場合はステップS90を終了する。自動グルーピングモードを設定する場合は、投入時間モードを設定するか否かを判定し(S102)、設定する場合は投入時間を設定する(S103)。
【００６２】
ステップS103で設定する投入時間は、スケジュールアップが通知されたジョブAに自動グルーピングする対象ジョブを判定するための時間である。つまり、ジョブAの受付時間（ジョブ受付時間フィールド708の値）の後、投入時間内に受け付けたジョブを自動グルーピングの対象にする。例えば、投入時間として指定された10分間を設定した場合、受付時間が10:00のジョブAの後に、10:10にジョブBを受け付け、10:15にジョブCを受け付けると、ジョブAとジョブBが自動グルーピングの対象になる。
【００６３】
次に、ジョブ属性設定モードを設定するか否かを判定する(S104)。ジョブ属性とは、ジョブに設定されたオフライン印刷属性やフィニッシング属性などを指す。ジョブ属性設定モードを設定する場合は、ジョブ属性モードとして、例えば、オフライン印刷属性のオン/オフ、フィニッシング属性としてステイプル、パンチ、製本などの属性のオン/オフを設定する(S105)。
【００６４】
なお、ステップS90の処理における各モードの指定は、印刷指示時に、アプリケーション61から行えばよい。また、印刷時に関係なく、クライアントの起動タイミングなどに各モードの設定をレジストリなどに保持して、スケジュールアップ後の処理（ステップS94以降）で、レジストリを参照するような方法にしてもよい。
【００６５】
図10はステップS95の詳細を処理を示すフローチャートである。
【００６６】
まず、印刷ジョブ情報テーブルを参照して、スケジュール状態フィールド705がスケジュール要求済みを示すジョブの読み出しがすべて終了しているか否かを判定する(S111)。当該ジョブすべての読み出しが終了している場合はステップS95を終了する。
【００６７】
また、読み出しが未了の、スケジュール状態フィールド705がスケジュール要求済みを示すジョブがある場合は、当該ジョブを、順次、読み出す(S112)。そして、読み出したジョブがグループピングの条件に合致するか否かを判定し(S113)、後述する判定用フラグがオンの場合は当該ジョブの印刷ジョブ情報テーブルのグループIDフィールド707にグループIDを設定する(S114)。なお、判定用フラグがオフの場合はステップS114の処理をスキップする。その後、処理をステップS111に戻す。
【００６８】
なお、ステップS114では、スケジュールアップしたジョブのジョブIDフィールド702に設定されたジョブIDをグループIDにする。また、スケジュールアップしたジョブのグループIDフィールド707にグループIDが設定されていない場合、当該ジョブのジョブIDをグループIDとして設定する。
【００６９】
図11はステップS113の詳細な処理を示すフローチャートである。
【００７０】
まず、グルーピング条件に合致するか否かを示す判定用フラグをオンに初期化する(S120)。
【００７１】
次に、判定対象のジョブ（ステップS112で読み出したジョブ）の印刷ジョブ情報テーブルのジョブ属性フィールド706に設定されたプリンタが、スケジュールアップしたジョブの出力プリンタと同一か否かを判定する(S121)。プリンタが一致しない場合は判定用フラグをオフに設定し(S126)、ステップS113の処理を終了する。
【００７２】
プリンタが一致する場合は、自動グルーピングモードの投入時間が設定されているか否かを判定し(S122)、投入時間が未設定の場合は処理をステップS124に進める。
【００７３】
投入時間が設定されている場合は、判定対象のジョブの受付時間（ジョブ受付時間フィールド708の値）と、スケジュールアップしたジョブの受付時間の差分が投入時間内か否かを判定する(S123)。差分が投入時間内であればステップS113の処理を終了する。
【００７４】
差分が投入時間を超える場合は、ジョブ属性が設定されているか否かを判定し(S124)、ジョブ属性が未設定の場合は判定用フラグをオフに設定す(S126)、ステップS113の処理を終了する。
【００７５】
ジョブ属性が設定されている場合は、判定対象のジョブの印刷ジョブ情報テーブルのジョブ属性フィールド706に、ステップS91で設定したジョブ属性があるか否かを判定する(S125)。該当するジョブ属性があればステップS113の処理を終了し、また該当するジョブ属性がない場合は判定用フラグをオフに設定し(S126)、ステップS113の処理を終了する。
【００７６】
上記のように、ステップS113では、出力プリンタが一致すれば、モード設定のORを取る（一つでも合致する条件があればグループジョブのメンバにする）方法で判定を行う。しかし、モード設定のANDを取る（すべての条件に一致すればグループジョブのメンバにする）方法で判定を行ってもよい。
【００７７】
図12はステップS99の詳細な処理を示すフローチャートである。
【００７８】
まず、印刷ジョブ情報テーブルを参照して、スケジュール状態フィールド705がスケジュール要求済みを示すジョブの読み出しがすべて終了しているか否かを判定する(S131)。当該ジョブすべての読み出しが終了している場合はステップS99を終了する。
【００７９】
また、読み出しが未了の、スケジュール状態フィールド705がスケジュール要求済みを示すジョブがある場合はステップS132の処理を実行する。ステップS132では、当該ジョブのジョブ属性フィールド706に設定された出力先プリンタが、ジョブ制御DS 66が完了通知を発行したプリンタと同一か否かを判定する(S132)。プリンタが一致しない場合は処理をステップS131に戻す。
【００８０】
プリンタが一致する場合は、完了通知に含まれるジョブIDと、当該ジョブのジョブID（ジョブIDフィールド702の値）が一致するか否かを判定する(S133)。ジョブIDが一致しない場合は処理をステップS131に戻す。また、ジョブIDが一致する場合は当該ジョブの印刷は完了したとして当該ジョブの、印刷ジョブ情報テーブルを印刷ジョブ情報リストから削除し、スプールされた印刷データを削除する(S134)。そして、処理をステップS131に戻す。勿論、完了通知に含まれるグループジョブIDと印刷ジョブ情報テーブルのグループIDフィールド707の値が一致する場合に、当該ジョブの印刷ジョブ情報テーブルを削除してもよい。
【００８１】
図13は自動ジョブグルーピング機能を実現するために、図8に示した処理において行われる印刷プロトコルの手順を示す図である。クライアントからプリンタに接続した後、スケジュール要求(S92)、スケジュールアップ通知(S102)、印刷ジョブの送信(S98)、完了通知(S103)が行われ、接続が切断される。印刷ジョブのグルーピングが行われた場合、印刷ジョブの送信(S98)セッション（一つのセッション）で、複数の印刷ジョブのデータが送信される。
【００８２】
このように、自動グルーピングモードを設定し、かつ、その条件に合致した印刷ジョブを自動的にグルーピングしてプリンタに送信して印刷させることにより、ユーザは複数のジョブを連続印刷することが可能になる。従って、設定した（された）投入時間内であれば、異なるユーザの印刷物が重なり合いを防ぐことができる。その結果、自分の印刷物を探す苦労を防ぐために、印刷ジョブを発行する度に、ユーザは印刷物を取りにプリンタに赴く必要はない。つまり、ユーザがプリンタに赴く回数を大幅に削減することが可能になり、ユーザの作業効率の向上を図ることができる。
【００８３】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８４】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【００８５】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００８６】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００８７】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【００８８】
【図１】実施例の印刷システムの構成例を示すブロック図、
【図２】クライント用のPCの構成例を示すブロック図、
【図３】RAMのメモリマップの一例を示す図、
【図４】記憶媒体のメモリマップの一例を示す図、
【図５】印刷ジョブ制御システムの動作を説明する図、
【図６】ジョブ制御クライアントが管理する印刷ジョブ情報リストの構成例を示す図、
【図７】ジョブ制御DSが管理するジョブ管理リストの構成例を示す図、
【図８】ジョブ制御クライアントが実行する自動グルーピング処理を説明するフローチャート、
【図９】ステップS90の詳細な処理を示すフローチャート、
【図１０】ステップS95の詳細な処理を示すフローチャート
【図１１】ステップS113の詳細な処理を示すフローチャート
【図１２】ステップS99の詳細な処理を示すフローチャート、
【図１３】自動ジョブグルーピング機能を実現するために、図8に示した処理において行われる印刷プロトコルの手順を示す図である。
【図１】
2008059371.tif 000003
【図２】
2008059371.tif 000004
【図３】
2008059371.tif 000005
【図４】
2008059371.tif 000006
【図５】
2008059371.tif 000007
【図６】
2008059371.tif 000008
【図７】
2008059371.tif 000009
【図８】
2008059371.tif 000010
【図９】
2008059371.tif 000011
【図１０】
2008059371.tif 000012
【図１１】
2008059371.tif 000013
【図１２】
2008059371.tif 000014
【図１３】
2008059371.tif 000015