(57)【特許請求の範囲】
【請求項１】
複数のホストコンピュータで生成される印刷データを含む印刷ジョブを該複数のホストコンピュータから並行して受信して処理する印刷制御装置であって、
前記ホストコンピュータから受信する各印刷ジョブをそれぞれの印刷ジョブの印刷が完了するまで格納するジョブ格納手段と、
前記ジョブ格納手段に格納されている全印刷ジョブの処理順を管理する印刷ジョブ処理順管理手段と、
前記ジョブ格納手段の空き容量が追加格納困難なフル状態かどうかを判定する状態判定手段と、
前記状態判定手段によりフル状態であると判定された場合に、前記ジョブ格納手段に格納している最中の印刷ジョブが前記印刷ジョブ処理順管理手段より管理されている先頭の印刷ジョブであるかどうかを調査する調査手段と、
前記調査手段により格納中の印刷ジョブが先頭の印刷ジョブであると判断された場合に、当該印刷ジョブを読み飛ばして次の印刷ジョブを受信可能に制御する処理を実行し、前記調査手段により格納中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、前記処理を実行しないジョブ処理手段と、
を有することを特徴とする印刷制御装置。
【請求項２】
前記ジョブ処理手段は、前記調査手段によりスプーリング中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、先頭の印刷ジョブの印刷処理が終了するまで、後続する印刷ジョブを前記ジョブ格納手段にスプーリングさせるのを一時的に中断させることを特徴とする請求項１記載の印刷制御装置。
【請求項３】
複数のホストコンピュータで生成される印刷データを含む印刷ジョブを該複数のホストコンピュータから並行して受信して処理する印刷制御装置におけるデータ処理方法であって、
前記ホストコンピュータから受信する各印刷ジョブをそれぞれの印刷ジョブの印刷が完了するまでジョブ格納手段に格納するジョブ格納ステップと、
前記ジョブ格納手段に格納されている全印刷ジョブの処理順を管理する印刷ジョブ処理順管理ステップと、
前記ジョブ格納手段の空き容量が追加格納困難なフル状態かどうかを判定する状態判定ステップと、
前記状態判定ステップによりフル状態であると判定された場合に、前記ジョブ格納手段に格納している最中の印刷ジョブが前記印刷ジョブ処理順管理ステップより管理されている先頭の印刷ジョブであるかどうかを調査する調査ステップと、
前記調査ステップにより格納中の印刷ジョブが先頭の印刷ジョブであると判断された場合に、当該印刷ジョブを読み飛ばして次の印刷ジョブを受信可能に制御する処理を実行し、前記調査ステップにより格納中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、前記処理を実行しないジョブ処理ステップと、
を有することを特徴とするデータ処理方法。
【請求項４】
前記ジョブ処理ステップは、前記調査ステップにより前記ジョブ格納手段にスプーリング中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、先頭の印刷ジョブの印刷処理が終了するまで、後続する印刷ジョブを前記ジョブ格納手段にスプーリングさせるのを一時的に中断することを特徴とする請求項３に記載のデータ処理方法。
【請求項５】
複数のホストコンピュータで生成される印刷データを含む印刷ジョブを該複数のホストコンピュータから並行して受信して処理する印刷制御装置に、
前記ホストコンピュータから受信する各印刷ジョブをそれぞれの印刷ジョブの印刷が完了するまでジョブ格納手段に格納するジョブ格納ステップと、
前記ジョブ格納手段に格納されている全印刷ジョブの処理順を管理する印刷ジョブ処理順管理ステップと、
前記ジョブ格納手段の空き容量が追加格納困難なフル状態かどうかを判定する状態判定ステップと、
前記状態判定ステップによりフル状態であると判定された場合に、前記ジョブ格納手段に格納している最中の印刷ジョブが前記印刷ジョブ処理順管理ステップより管理されている先頭の印刷ジョブであるかどうかを調査する調査ステップと、
前記調査ステップにより格納中の印刷ジョブが先頭の印刷ジョブであると判断された場合に、当該印刷ジョブを読み飛ばして次の印刷ジョブを受信可能に制御する処理を実行し、前記調査ステップにより格納中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、前記処理を実行しないジョブ処理ステップとを実行させるためのプログラムを記録したコンピュータが読み取り可能な記憶媒体。
【請求項６】
前記ジョブ処理ステップは、前記調査ステップにより前記ジョブ格納手段にスプーリング中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、先頭の印刷ジョブの印刷処理が終了するまで、後続する印刷ジョブを前記ジョブ格納手段にスプーリングさせるのを一時的に中断することを特徴とする請求項５に記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータで生成されるＰＤＬデータを含む印刷ジョブを受信して処理する印刷制御装置およびデータ処理方法および記憶媒体に関するものである。
【０００２】
【従来の技術】
従来、ユーザの指示にしたがって印刷データを生成するホストコンピュータと所定の通信媒体を介して前記ホストコンピュータから送信された印刷データをデータ処理して画像データを生成し、用紙などのメディアに実際に印刷を行なう印刷装置からなる印刷システムが提案されている。
【０００３】
このようなホストコンピュータと印刷装置から構成された印刷システムにおいては、ホストコンピュータから生成される印字データを印刷するだけではなく、ホストコンピュータから印刷装置の情報獲得、環境設定を行なうといった機能が要求されている。
【０００４】
特に、昨今のネットワークの普及により、印刷処理時間の速い高機能な１台の印刷装置を複数のユーザでネットワークを介して共有することにより、オフィスにおける大量の印刷ニーズを満たしながら管理コストを最低限に抑えるといった使用形態が一般化している。
【０００５】
このような状況下で、管理者はリアルタイムで遠隔地にある印刷装置の管理を行ないたいという要求があり、また一般ユーザは自分が発行した印刷ジョブの処理状況の確認や、取り消しといった二次操作を行ないたいという要求があり、この要求を満たす印刷システムが数多く実現化されている。
【０００６】
図１５は、従来の印刷システムにおける機能構成を説明するブロック図であり、所定の印刷媒体３８０を介して接続されているホストコンピュータ３００から印刷装置３５０への印刷ジョブ送信、印刷装置の情報獲得、環境設定を行なう仕組みを具現化した印刷システムの機能構成に対応する。
【０００７】
図１５において、ホストコンピュータ３００はアプリケーション部３０１、プリンタドライバ部３０２、送信バッファ３０３、Ｉ／Ｆドライバ部３０４、ユーティリティ部３０５、論理チャネル制御部３０６、ジョブパケット生成部３０７から構成されている。
【０００８】
アプリケーション部３０１はユーザにグラフィカルユーザインタフェースを提供し、ユーザの目的にあった画像データを生成する。プリンタドライバ部３０２は、アプリケーション部３０１が生成した画像データを印刷装置３５０で印刷可能なページ記述言語（以下ＰＤＬと略称）データ（ＰＤＬデータ）に変換する。送信バッファ３０３はプリンタドライバ部３０２が生成したＰＤＬデータを一時的に格納しておく。
【０００９】
ジョブパケット生成部３０７は送信バッファ３０３に蓄えられたデータに、アプリケーション部３０１が所有する印刷ジョブの情報を付加して所定のフォーマットに従ってジョブパケットを生成する。
【００１０】
ユーティリティ部３０５は印刷装置３５０に関する情報を獲得してグラフィックユーザインタフェースを提供して、ユーザや管理者の要望に従って、印刷装置３５０における機器の情報を設定したり、印刷ジョブの状態の獲得や取り消しの要求を行なったりするための管理パケットの生成を行なう。
【００１１】
論理チャネル制御部３０６はジョブパケット生成部３０７が生成するジョブパケットとユーティリティ部３０５が生成する管理パケットとの多重化の制御を行い、ＯＳＩ７階層におけるトランスポート層の役割を受け持つ。Ｉ／Ｆドライバ部３０４は論理チャネル制御部３０６から生成されたデータの送信と印刷装置３５０から送信されたデータの受信を行なう。
【００１２】
印刷装置３５０は、論理チャネル制御部３５１、機器データベース部３５２、ジョブプリプロセッサ部３５３、受信バッファ３５４、ＰＤＬトランスレータ部３５５、描画バッファ３５６、描画部３５７、プリンタエンジン部３５８、Ｉ／Ｆドライバ部３５９、情報管理部３６０、操作パネル３６１等から構成されている。
【００１３】
Ｉ／Ｆドライバ部３５９はホストコンピュータ３００から送信されたデータの受信と、論理チャネル制御部３５１から生成されたデータの送信を行なう。論理チャネル制御部３５１はＩ／Ｆドライバ部３５９が受信したデータを解析し、ジョブパケットはジョブプリプロセッサ部３５３、管理パケットは情報管理部３６０に分別し、逆に情報管理部３６０から送信される管理パケットをＩ／Ｆドライバ部３５９に送信する。
【００１４】
ジョブプリプロセッサ部３５３は、ジョブパケットを受け取って解釈し、ＰＤＬデータを受信バッファ３５４に、ジョブの管理情報を機器データベース部３５２に送る。受信バッファ３５４は受信されたＰＤＬデータが順番に格納されている。
【００１５】
機器データベース部３５２はコピー数、出力用紙サイズ、複数ページ印刷などのジョブ情報や、機器に関する情報が格納されている。ＰＤＬトランスレータ部３５５は受信バッファ３５４に格納されたＰＤＬデータと機器データベース３５２に格納されたジョブ情報を元にトランスレート処理を行い、描画部３５７がリアルタイムに描画できる中間データに変換し、描画バッファ３５６に送信する。
【００１６】
描画バッファ３５６は複数ページ分の中間データを格納し、描画部３５７に渡す。描画部３５７は描画バッファ３５６から中間データを取得し、プリンタエンジン３５８が行なう用紙搬送処理とともにリアルタイムに中間データのレンダリングを行い、プリンタエンジン部３５８にビデオデータとして送信を行なう。
【００１７】
プリンタエンジン部３５８は既知の電子写真技術を用いて描画部３５７から送信されたビデオデータを元に、用紙に物理的に印刷を行なう。
【００１８】
そして、そのジョブの全ての用紙への印刷を行い排紙が完了すると、機器データベース３５２からそのジョブの情報が削除される。
【００１９】
情報管理部３６０はユーティリティ部３０５の情報獲得要求を管理パケットの形で受け取り、機器データベース３５２から必要な情報を獲得し、管理パケットに変換して論理チャネル制御部３５１を介してホストコンピュータ３００に返答する。また、ジョブの終了を検知して自発的に終了の通知を管理パケットに変換してホストコンピュータ３００に通知する。
【００２０】
操作パネル３６１は印刷装置３５０の本体に備え付けられている液晶やＬＥＤなどのディスプレイ装置と操作ボタンから構成されており、ユーザからの設定を情報管理部３６０を通して機器データベースに反映させ、あるいは、エラーなど現在の機器の状態を表示するという処理を行なう。
【００２１】
次に従来例におけるジョブの取り消し機能の仕組みを説明する。
【００２２】
従来のジョブの取り消し機能は、印刷要求を出したユーザあるいは管理者が印刷装置３５０に対して送信されたジョブの印刷取り消しを要求する機能で、ホストコンピュータ３００側のユーティリティ部３０５にあるユーザインタフェース、あるいは、印刷装置３５０側の操作パネル３６１から取り消しを要求する。
【００２３】
印刷装置３５０は印刷ジョブの印刷要求を受けると、ジョブプリプロセッサ部３５３で新規ジョブを認識し、印刷装置３５０内で一意に保たれるジョブＩＤをジョブに対して割り振り、その情報を機器データベース部３５２に格納する。この情報は印刷ジョブの全ページが解釈、描画され、プリンタエンジン部３５８で最後の１ページの排紙が完了したと検知された段階で削除が行なわれる。
【００２４】
ユーティリティ部３０５は、印刷装置３５０に対して装置内ジョブリストの獲得を要求する管理パケットを発行すると、印刷装置３５０は装置内で認識しているすべてのジョブの前記ジョブＩＤのリストをホストコンピュータ３００に対して送信する。ユーティリティ部３０５はこれを受け取り、グラフィックユーザインタフェースを用いてそのジョブ管理情報の表示を行なう。
【００２５】
また、印刷ジョブを送信したユーザあるいは印刷装置３５０の管理者は、ジョブの取り消しが可能であり、具体的には、ホストコンピュータ３００側のユーティリティ部３０５のグラフィックユーザインタフェースから取り消しを行なうジョブＩＤの指定が行なわれ、管理パケットに変換されて印刷装置３５０に取り消し要求の指令が行なわれる。そして、ホストコンピュータ３００から印刷装置３５０へジョブ取り消し要求の管理パケットが送信されると、情報管理部３６０が検知を行い、印刷パス上に該当ジョブが存在する場合にはその印刷の取り消しを行なう。
【００２６】
一方、操作パネル３６１から取り消しを行なう場合は、ジョブＩＤを明示的に指定するのが困難であるので、印刷パス上もっとも処理が進んでいるジョブを取り消しの対象とする。具体的にはプリンタエンジン部３５８でジョブを処理しているときはそのジョブＩＤを取り消しの対象とし、そうでない場合には描画部３５７、ＰＤＬトランスレータ部３５５といった感じに印刷パス上で処理中のジョブが見つかった段階で該当ジョブＩＤの決定を行い、取り消しの対象とする。
【００２７】
操作パネル３６１によるジョブの取り消しは、該当ジョブＩＤの決定方法が異なるだけで、実際の印刷装置内の取り消し処理はユーティリティ部３０５による取り消しと同じである。
【００２８】
以上の操作によって、印刷装置３５０内に格納された任意のジョブの取り消し動作が可能となっている。
【００２９】
また、割り込み印刷機能を有する印刷装置では、印刷ジョブのすべてのページの排紙を終えて印刷が完了するまで、その印刷ジョブのＰＤＬデータを常に保持しておく。そして、割り込みの指示がなされた場合に、ＰＤＬデータの解析処理やプリントエンジンでの排紙処理など実際の印刷処理を行なっているすべての印刷ジョブを一旦取り消し、割り込み指示を受けた印刷ジョブの処理を最優先で行い、その後、再び、さきほど取り消した印刷ジョブのＰＤＬデータを解析しなおし、すでに排出が完了したページの次のページから印刷を行なっている。
【００３０】
この場合、受信した印刷ジョブのＰＤＬデータをジョブ完了まで保持する必要があるため、従来の受信バッファより大きなサイズの受信バッファ、ジョブスプーラを備えることが多い。ジョブスプーラがフルにならないよう、たとえば、ＨＤＤなどのジョブスプーラに格納しながら処理をする場合、通常の印刷ジョブのＰＤＬデータサイズに比べ十分大きなサイズのスプーラを使用し、ジョブスプーラがフルにならないことを前提としている。
【００３１】
【発明が解決しようとする課題】
しかし、印刷ジョブのＰＤＬデータが想定以上に膨大な場合や、投入されている印刷ジョブの数が多い場合は、ジョブスプーラがフルになってしまいＰＤＬデータの追加格納ができない状態になってしまうことがあり得る。
【００３２】
例えば先頭以外のジョブを格納する場合、現在印刷処理中の先頭の印刷ジョブが完了すれば、その印刷ジョブのＰＤＬデータがジョブスプーラから削除されてジョブスプーラに空きができるため、しばらく待っていれば再びＰＤＬデータの格納を続けることが可能となる。
【００３３】
しかし、先頭のジョブのＰＤＬデータの格納時にジョブスプーラがフルになってしまった場合は、いくら待っていてもジョブスプーラに空きはできないので、印刷装置は処理ができずに止まってしまうことになる。
【００３４】
また、複数のインタフェースから複数のジョブを同時に受信格納している場合、よりいっそうジョブスプーラフルの状態が発生しやすい。
【００３５】
本発明は、上記の問題点を解決するためになされたもので、本発明の第１の目的は、先頭の印刷ジョブのデータ量が印刷装置で保持可能なデータ容量を超えるような場合に、後続する印刷ジョブの処理が滞ってしまうフル状態を自動的に回避して、後続する印刷ジョブを有効に処理できる状態に遷移させることができる。
【００３７】
更に、第２の目的は、ジョブスプーリングフル状態に遷移してしまう事態を確実に回避することができる印刷制御装置およびデータ処理方法および記憶媒体を提供することである。
【００３８】
【課題を解決するための手段】
本発明は、複数のホストコンピュータで生成される印刷データを含む印刷ジョブを該複数のホストコンピュータから並行して受信して処理する印刷制御装置であって、前記ホストコンピュータから受信する各印刷ジョブをそれぞれの印刷ジョブの印刷が完了するまで格納するジョブ格納手段（図１に示すジョブスプーラ１０４に相当）と、前記ジョブ格納手段に格納されている全印刷ジョブの処理順を管理する印刷ジョブ処理順管理手段（図１に示すジョブ読み出しテーブル１１１に相当）と、前記ジョブ格納手段の空き容量が追加格納困難なフル状態かどうかを判定する状態判定手段（図１に示すジョブプリプロセッサ部１０３に相当）と、前記状態判定手段によりフル状態であると判定された場合に、前記ジョブ格納手段に格納している最中の印刷ジョブが前記印刷ジョブ処理順管理手段より管理されている先頭の印刷ジョブであるかどうかを調査する調査手段（図１に示すジョブプリプロセッサ部１０３に相当）と、前記調査手段により格納中の印刷ジョブが先頭の印刷ジョブであると判断された場合に、当該印刷ジョブを読み飛ばして次の印刷ジョブを受信可能に制御する処理を実行し、前記調査手段により格納中の印刷ジョブが先頭の印刷ジョブでないと判断された場合に、前記処理を実行しないジョブ処理手段（図１に示すジョブプリプロセッサ部１０３に相当）とを有するものである。
【００５１】
【発明の実施の形態】
〔第１実施形態〕
図１は、本発明の第１実施形態を示す印刷制御装置を適用可能な印刷装置の構成を説明するブロック図であり、図２は、本発明の第１実施形態を示す情報処理装置の構成を説明するブロック図であり、図１に示す印刷装置１００と図２に示すホストコンピュータ２００とは所定のインタフェース１２０，２１０を介して通信可能に構成されており、印刷装置１００とホストコンピュータ２００とで印刷システム、特に、ホストコンピュータから印刷装置への印刷ジョブ送信、印刷装置の情報獲得、環境設定を行なう仕組みを具現化した印刷システムの機能構成に対応する。
【００５２】
なお、印刷システムは印刷すべきジョブを生成するホストコンピュータ２００と実際に用紙に印刷を行なう印刷装置１００、および所定のインタフェース２１０、１２０から構成されているが、インタフェース２１０、１２０はIEEE１２８４で規定されているローカルインタフェースでもEtherNetのようなネットワークインタフェースでもよく、本実施形態ではローカルインタフェースで構成されているものとして以下各部の構成について説明する。
【００５３】
図１に示す印刷装置１００において、１０１はＩ／Ｆドライバ部で、論理的なデータを電気信号に変換し、インタフェースとのやりとりを行なう。１０２は論理チャネル制御部で、Ｉ／Ｆドライバ部１０１から受信したデータを解析し、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスポート層の多重化を行なう。
【００５４】
１０３はジョブプリプロセッサ部で、ジョブパケットを受け取って解析を行い、印刷ジョブの属性情報は機器データベース部１０５、ＰＤＬデータはジョブスプーラ１０４に振り分けて格納する。１０４はジョブスプーラで、印刷ジョブのＰＤＬデータを印刷完了まで一時的に保持する。
【００５５】
１０６はＰＤＬトランスレータ部で、ジョブの処理順番および停止しているかどうかを記述したジョブ読み出しテーブル１１１、ジョブ読み出しテーブル１１１に記述された順番にジョブを取り出し、機器データベース部１０５に格納された属性情報とジョブスプーラ１０４に格納されたＰＤＬデータを解析し、リアルタイムに描画処理可能な中間データを生成して描画バッファ１０７に格納する。
【００５６】
１０７は描画バッファで、中間データをページ単位に印刷完了まで一時的に保持する。１０８は描画部で、描画バッファ１０７から中間データを取得し、プリンタエンジン１０９部が行なう用紙搬送処理とともにリアルタイムに中間データのレンダリングを行い、プリンタエンジン部１０９にビデオデータとして送信を行なう。プリンタエンジン部１０９は、既知の電子写真技術を用いて描画部１０８から送信されたビデオデータをもとに、用紙に物理的に印刷を行なう。
【００５７】
１１０は情報管理部で、ホストコンピュータ２００から送信された管理パケットを受け取り、要求に応じて機器データベース部１０５から情報の獲得を行い、またジョブの取り消し要求や停止要求、再開要求を行い、またジョブの終了や機器の異常を検知して自立的にホストコンピュータ２００に通知イベントを発行する。
【００５８】
１１２は処理部で、後述する用紙サイズ変更指定が行なわれた時に、実際の用紙サイズ変更処理を行なう。１１３は操作パネルで、印刷装置１００の本体に備え付けられている液晶やＬＥＤなどのディスプレイ装置と操作ボタンから構成されている。
【００５９】
なお、ジョブスプーラ１０４は、ＨＤＤやＦＬＡＳＨメモリ、あるいはＤＲＡＭなどの大容量メモリデバイスから構成される。ホストからの印刷データの格納スピードを向上させるため、通常の印刷ジョブのＰＤＬデータのサイズに対し十分大きな容量のメモリデバイスを用いる。
【００６０】
図２に示すホストコンピュータ２００において、２０１はアプリケーション部で、ユーザがグラフィックユーザインタフェースを操作しながら所望の印刷データを生成する。２０２はプリンタドライバ部で、アプリケーション部２０１が作成した画像データを、印刷装置１００が印刷可能なページ記述言語（以下ＰＤＬと略称）データに変換するプリンタドライバ部２０２、プリンタドライバ部２０２が変換したＰＤＬデータを一時的に格納しておく送信バッファ２０３、送信バッファ２０３に格納されたＰＤＬデータとアプリケーション部２０１が有するジョブ属性情報とから所定のジョブパケットを生成するジョブパケット生成部２０７、印刷装置１００の状態の確認や送信した印刷ジョブの印刷状態の確認や、印刷ジョブの取り消し、停止などの操作をグラフィックユーザインタフェースを用いて、これらの要求を印刷装置１００が解釈可能な管理パケットに変換するユーティリティ部２０５、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスポート層の多重化を行なう論理チャネル制御部２０６、論理的なデータを電気信号に変換し、インタフェースとのやりとりを行なうＩ／Ｆドライバ部２０４から構成される。
【００６１】
図２に示すホストコンピュータ２００において、ホストコンピュータ部２００の論理チャネル制御部２０６から印刷装置１００の論理チャネル制御部１０２までに行なわれるデータ通信は、例えばネットワークの場合はTCP/IP、ローカルの場合はIEEE1284/IEEE1284.4  による規定のプロトコルにより、トランスポート層レベルの多重化が行なわれているものとし、詳細な説明については省略する。
【００６２】
論理的にジョブパケット生成部２０７から送信されるジョブパケットは、ジョブプリプロセッサ部１０３によって受信され、この経路をジョブチャネルという。また、ユーティリティ部２０５から送受信される管理パケットは情報管理部１１０によって送受信され、この経路を管理チャネルという。
【００６３】
双方のチャネルは双方向通信が可能であることを規定しているが、ジョブチャネルに関してはホストコンピュータ２００から印刷装置１００への片方向だけでも本実施形態を阻害するものではない。ジョブチャネルと管理チャネルはＯＳＩ７階層におけるトランスポート層レベルで多重化されており、片方のフロー処理が他方に影響することはない。
【００６４】
次にジョブパケット、管理パケットの構造について説明する。
【００６５】
ジョブパケット、管理パケットはアプリケーション層のプロトコルであり、ヘッダ部、パラメータ部から構成されるパケット構造になっている。
【００６６】
１つの印刷ジョブは複数のジョブパケットから構成される。印刷ジョブを構成する一連のジョブパケットの集まりをジョブスクリプトと呼ぶ。
【００６７】
図３は、図２に示したジョブパケット生成部２０７から送信されるジョブパケットの構造を示す説明図であり、縦軸はバイトを示し、横軸は各バイトのビットを示している。
【００６８】
図３において、０〜１バイト目のオペレーションコードは、パケットの機能を示す長さ２バイトのIDである。ジョブパケットにおいては以下の値、すなわち、「０ｘ０２０１」はジョブ開始オペレーションを、「０ｘ０２０２」はジョブ属性設定オペレーションを、「０ｘ０２０４」はＰＤＬデータ送信オペレーションを、「０ｘ０２０５」はジョブ終了オペレーションを取ることができる。
【００６９】
２〜３バイト目のブロック番号は、ジョブパケットを送信した側が返答を要求する場合に、受信側からの返答が送信側のどの返答要求に対するものであるか、その対応を取るために使用する番号である。
【００７０】
例えばそれぞれブロック番号＝１,２,３というジョブパケットを立て続けに送信した時にブロック番号＝２というエラーパケットが返ってきた場合、返答が返ってきたとき、送信側は、２番目に送ったジョブパケットにエラーが発生したことを特定することが可能である。
【００７１】
４〜５バイト目のパラメータ長はデータ部のバイト長さを示す領域で、０〜６４Ｋバイトまでを示すことが可能である。
【００７２】
６〜７バイト目はジョブパケットの各種フラグを示す領域でそれぞれ以下の値を示す。
【００７３】
例えばエラーフラグの値が「１」の場合、印刷装置１００で何らかのエラーが発生したことを示す。このフラグは印刷装置からホストコンピュータ２００に送られる返信パケットに付加される。また、通知フラグの値が「１」の時は、ホストコンピュータ２００からの要求パケットに対する返答ではなく、印刷装置１００がなんらかの通知事項があることをホストコンピュータ２００に通知することを示している。
【００７４】
また、継続フラグの値が「１」の場合、データ部にすべてのデータが入らなかったため、次のジョブパケットで残りのデータが送られることを示す。次のジョブパケットは前のパケットと同じオペレーション・コード、ブロック番号を設定しなくてはならない。
【００７５】
返答要求は、ホストコンピュータ２００から印刷装置１００に対して返答パケットが必要な場合に「１」をセットする。一方、返答要求が「０」のときは要求パケットは正常に処理された場合には返答は返さない。なお、印刷装置１００でエラーが発生した場合には返答要求の「０」／「１」に関わらず、つねにエラーフラグの値を「１」にした返答パケットを送出する。
【００７６】
８〜９バイト目のユーザＩＤおよび１０〜１１バイト目のパスワードは、要求パケットでできる操作にセキュリティ的制限を設ける際に認証に使われる領域であり、本実施形態には影響しない。
【００７７】
１２バイト目以降はオペレーションコードに対応した追加データが格納される。
【００７８】
ジョブ属性設定オペレーションの場合、設定したいジョブ属性IDとジョブ属性値を設定する。ジョブ属性IDとは、ジョブに関する属性あるいは環境に対応した識別子を示すもので、ISO−１０１７５（DPA）で規定されるジョブの属性に相当するIDが予め割り振られている。以下にジョブ属性の代表的なものを挙げる。
【００７９】
ジョブ属性IDが「０ｘ０１０１」はジョブ名称を、「０ｘ０１０３」はジョブオーナー名を、「０ｘ０１６a」はジョブサイズを、「０ｘ０１０４」  は用紙サイズを、「０ｘ０１０５」は複数ページ印刷を示す。
【００８０】
この他、印刷装置の機能に応じて、印刷部数、モノクロ・カラーなどのジョブ属性とそれに対応するIDを割り振ることができる。
【００８１】
ＰＤＬデータ送信オペレーションの場合は、追加データ部にはＰＤＬデータが入る。１つのジョブパケットのデータは前記パラメータ長に格納できる最大サイズまでなので、６４ＫＢまで格納可能であり、それ以上のデータは複数のＰＤＬデータ送信オペレーションに分割して送信する。この場合は前記継続フラグに１を立てる。ジョブ終了オペレーションの場合は追加データは存在しない。
【００８２】
次にホストコンピュータ２００にあるジョブパケット生成部２０７の機能処理を説明する。
【００８３】
図４、図５は、本発明に係る情報処理装置における第１のデータ処理手順の一例を示すフローチャートであり、図２に示したジョブパケット生成部２０７の動作手順に対応する。なお、（５０１）〜（５０５），（６０１）〜（６０７）は各ステップを示す。
【００８４】
ジョブパケット生成部２０７は、アプリケーション部２０１により、印刷指定が選択された時にプリンタドライバ部２０２が起動し、プリンタドライバ部２０２が印刷データを送信バッファ２０３に生成を完了した後に処理が開始される。
【００８５】
そして、ステップ（５０１）において、図３に示したオペレーションコードを格納する領域にジョブ開始オペレーションコード「０ｘ０２０１」を指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００８６】
以降、ジョブ終了オペレーションを発行するまで、全てのオペレーションは当該ジョブの情報設定のためだけに用いられる。
【００８７】
次に、ステップ（５０２）において、ジョブの名称の設定が行なわれる。さらに、図３に示したオペレーションコードを格納する領域にジョブ属性設定オペレーションコード「０ｘ０２０２」、パラメータ部に、ジョブ名称を示すジョブ属性ID（＝「０ｘ０１０１」）およびジョブ属性値となる名称を指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００８８】
そして、ステップ（５０３）において、ジョブの所有者の設定が行なわれる。さらに、図３に示したのオペレーションコードを格納する領域にジョブ属性設定オペレーションコード「０ｘ０２０２」、パラメータ部に、ジョブ所有者を示すジョブ属性ID（＝「０ｘ０１０３」）およびジョブ属性値となる所有者名を指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００８９】
次に、ステップ（５０４）において、ジョブのサイズの設定が行なわれる。さらに、図３に示したオペレーションコードを格納する領域にジョブ属性設定オペレーションコード「０ｘ０２０２」、パラメータ部に、ジョブサイズを示すジョブ属性ID  （＝「０ｘ０１６a」）およびジョブ属性値となるジョブのデータサイズを指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００９０】
そして、ステップ（５０５）において、変数sizeに送信すべきＰＤＬデータのサイズを代入する。
【００９１】
次に、図５に示すステップ（６０１）において、変数sizeの大きさをチェックし、変数sizeの大きさが６４Ｋより大きいかどうかを比較判定する。なお、６４Ｋと比較するのは、ジョブパケットに指定できるパラメータのサイズはパケットヘッダのパラメータ長のサイズが１６ビットで表現されているため、最大６４Ｋバイトの制限があるので、それ以上のデータは複数のジョブパケットに分割して発行されることになるからである。
【００９２】
ここで、もしＰＤＬデータのサイズが６４Ｋバイトよりも大きいと判定された時は、ステップ（６０５）において、図３に示したパケットヘッダの継続フラグの値を「１」に設定し、さらに、ステップ（６０６）において、送信バッファ２０３から６４Ｋバイト分のＰＤＬデータが取り出され、図３に示したオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）に、パラメータ部に前記取り出されたＰＤＬデータを指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００９３】
そして、ステップ（６０７）において、送信した分の６４Ｋバイトをsizeから減じて、ステップ（６０１）の分岐に戻る。
【００９４】
一方、ステップ（６０１）において、データのサイズが６４Ｋバイト以下の場合は、あと１回のＰＤＬデータ送信オペレーションで全データの送信が完了する。この場合、ステップ（６０２）において、図３に示したパケットヘッダの継続フラグの値を「０」にして、ＰＤＬデータ送信が最後であることを設定し、さらにステップ（６０３）において送信バッファ２０３からすべてのＰＤＬデータが取り出され、図３のオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）に、パラメータ部に前記取り出されたＰＤＬデータを指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００９５】
その後、ステップ（６０４）において、図３に示したオペレーションコードを格納する領域にジョブ終了オペレーションコード「０ｘ０２０５」を指定したジョブパケットを論理チャネル制御部２０６に発行して、処理を終了する。
【００９６】
次に、図１に示した印刷装置１００におけるジョブ読み出しテーブル１１１の説明を行なう。
【００９７】
図６は、図１に示した印刷装置１００におけるジョブ読み出しテーブル１１１を説明する図である。
【００９８】
図６の（Ａ）は読み出しテーブルにジョブ「１」〜「４」が登録されていることを示す。
【００９９】
ＰＤＬトランスレータ部１０６はトランスレートを実行する時、読み出しテーブル１１１の上から順番に、ジョブスプーラ１０４から印刷ジョブの取り出しを行なう。ジョブプリプロセッサ部１０３が、後述する図７のステップ（７０５）において、ジョブ読み出しテーブル１１１にジョブ「５」を追加する場合、図６の（Ｂ）に示すように、ジョブ「５」は読み出しテーブルの最後尾に追加される。
【０１００】
すなわち、この図６の（Ｂ）に示す例の場合には、ジョブ「４」の後ろに追加されることになる。
【０１０１】
また、ジョブ「１」を最後まで読み出しを完了したと認識すると、図６の（Ｃ）に示すように、ジョブ「１」はジョブ読み出しテーブルから削除される。以上のようにジョブ読み出しテーブル１１１はＰＤＬトランスレータ部１０６が処理するジョブの順番の制御を行なう。ＰＤＬトランスレータ部１０６以降の印刷ジョブの処理については従来系と同じ処理であるため、説明を省略する。
【０１０２】
次に、図２に示したホストコンピュータ２００におけるユーティリティ部２０５の説明を行なう。
【０１０３】
ユーティリティ部２０５は印刷装置１００に対して、印刷ジョブのリストや属性表示およびジョブのキャンセル，停止、再開指示等の操作を指定するために存在する。
【０１０４】
ユーティリティ部２０５が行なう操作は管理チャネルを用い、印刷ジョブを送信するジョブパケットと同等の管理パケットを送受信することによって行なわれる。管理パケットはジョブパケットと同様、図３に示すようなデータ構造を持つ。「０〜１１」バイト目のパケット・ヘッダの各情報の内容もジョブパケットと同様で、オペレーションコードのみが以下のように異なる。
【０１０５】
例えばオペレーションコードが「０ｘ０１０ｂ」の場合は、印刷ジョブのキャンセル指定を示し、オペレーションコードが「０ｘ０１２３」の場合は、印刷ジョブの割り込み指定を示し、オペレーションコードが「０ｘ０１０ｄ」の場合は、印刷ジョブのリスト獲得を示し、オペレーションコードが「０ｘ０１２０」の場合は、印刷ジョブの停止指定を示し、オペレーションコードが「０ｘ０１２１」の場合は、印刷ジョブの再開指定を示し、オペレーションコードが「０ｘ０１０５」の場合は、属性の設定を示し、オペレーションコードが「０ｘ０１０６」の場合は、属性の獲得を示す。
【０１０６】
一方、管理パケットはジョブパケットと異なり、個々のパケットが固有の目的に使用される。ジョブパケットにより、印刷ジョブが送信されると、印刷装置１００はジョブプリプロセッサ部１０３の働きにより、機器データベース部１０５にジョブの情報が格納される。ユーティリティ部２０５が印刷装置１００にどのジョブが格納されているかを知りたい時は、前記印刷ジョブのリスト獲得のオペレーションコード「０ｘ０１０ｄ」を指定した管理パケットを管理チャネルに送信する。パラメータ部には獲得したいオブジェクトである印刷ジョブクラスを示すオブジェクトid＝０ｘ０１０２を指定する。
【０１０７】
この管理パケットは図２に示すホストコンピュータ２００の論理チャネル制御部２０６に送られ、インタフェース２１０を介して印刷装置１００の情報管理部１１０に送られる。
【０１０８】
情報管理部１１０は、受け取った管理パケットのオペレーションコードによって、印刷ジョブのリスト獲得だと認識し、機器データベース部１０５に蓄えられた印刷ジョブのリスト情報を獲得して、返信パケットの返信を行なう。返信パケットのパラメータ部には、印刷装置１００が認識している印刷ジョブの個数および、各印刷ジョブによって一意に決まるオブジェクトidのリストが格納されている。
【０１０９】
各印刷ジョブが、ジョブ属性設定オペレーションによりジョブ名称、オーナ、サイズの情報を持っている場合、ユーティリティ部２０５は印刷ジョブに関する詳細な情報を獲得可能である。
【０１１０】
ユーティリティ部２０５は印刷ジョブのリストを獲得した場合、さらに個々の印刷ジョブに対して、詳細な属性を獲得するために、属性の獲得をオペレーションコード（＝「０ｘ０１０６」）に指定した管理パケットを印刷装置２００に送信する。
【０１１１】
情報管理部１１０は、受け取った管理パケットのオペレーションコードによって、属性の獲得だと認識し、機器データベース部１０５に蓄えられた指定印刷ジョブのオブジェクトidに対応する指定した属性idの属性を獲得し、返信パケットの返信を行なう。
【０１１２】
そして、管理パケットのパラメータ部には、獲得したい印刷ジョブのオブジェクトid、獲得したい属性のidを指定する。例えば、１番の印刷ジョブのジョブ名称と獲得したい場合には、オブジェクトidに「１」、属性idに「０ｘ０１０１」を指定する。
【０１１３】
次に、図１に示した印刷装置１００におけるジョブプリプロセッサ部１０３の説明を行なう。
【０１１４】
図７，図８は、本発明に係る印刷制御装置における第１のデータ処理手順の一例を示すフローチャートであり、図１に示したジョブプリプロセッサ部１０３の動作手順の一例に対応する。なお、（７０１）〜（７１９）は各ステップを示す。
【０１１５】
ジョブプリプロセッサ部１０３は印刷装置１００の起動時に開始され、以後印刷装置１００の電源遮断まで処理を継続する。
【０１１６】
最初に、ステップ（７０１）において、これからの動作のための種々の初期化処理を行い、ジョブパケットの受信を行なう。該ジョブパケットを受信すると、ステップ（７０２）において、ジョブ開始オペレーションかどうかの比較が行なわれる。ここで、ジョブ開始オペレーション以外のオペレーションが到着したと判定した場合には、不正動作となり、ステップ（７０３）で、ジョブパケットの破棄が行なわれ、その後、ステップ（７０１）に戻る。
【０１１７】
一方、ステップ（７０２）において、ジョブ開始オペレーションと判断された場合は、ステップ（７０４）で、当該ジョブのジョブIDの獲得が行なわれる。ジョブIDは２バイトの番号として割り振られ、機器データベース部１０５におけるジョブ属性情報の読み書き処理のキーとして利用される。
【０１１８】
次に、ステップ（７０５）において、ジョブ読み出しテーブル１１１に当該ジョブのジョブIDが追加される。続いて、ステップ（７０６）で、次のジョブパケットの受信を行なう。そして、ステップ（７０７）において、ジョブパケットがジョブ終了オペレーションであるかどうかの比較を行い、ジョブ終了オペレーションであると判断した場合には、一連のループを抜けて、ステップ（７０１）の初期状態に戻る。
【０１１９】
一方、ステップ（７０７）においてジョブ終了オペレーションでないと判断された場合には、ステップ（７０８）において、受信したジョブパケットが属性設定オペレーションであるかどうかを判断して、属性設定オペレーションであると判断した場合は、ステップ（７０９）において、機器データベース部１０５に属性データの設定を行なう。この時キーとなるのはステップ（７０４）で獲得したジョブIDとジョブパケットの追加データに記述されている属性IDおよび属性データである。このようにして属性設定が完了すると次のジョブパケットを受信するため、ステップ（７０６）に戻る。
【０１２０】
一方、ステップ（７０８）で、属性設定オペレーションでないと判断した場合は、ステップ（７１０）において、ジョブパケットがＰＤＬデータ送信オペレーションであるかどうかの比較判定を行い、ＰＤＬデータ送信オペレーションでないと判断した場合は、いずれのオペレーションにも該当しない不正なジョブパケットであるので、ステップ（７１１）において、ジョブパケットの破棄を行い、ステップ（７０６）に戻る。
【０１２１】
一方、ステップ（７１０）で、ＰＤＬデータ送信オペレーションであったと判定した場合、ステップ（７１２）において、ジョブスプーラ１０４がフル（満杯状態）かどうかを調べ、フルでないと判定した場合は、ステップ（７１３）において、ジョブスプーラ１０４にＰＤＬデータの追加を行なう。この時、ジョブIDをキーとして渡し、後で取り出すときにもジョブIDをキーとして取り出せるようにしておく。
【０１２２】
ジョブスプーラ１０４に格納されたＰＤＬデータは、ジョブの完了などにより消されるまでは、何度でも読み出すことができる。
【０１２３】
このようにしてジョブスプーラ１０４への追加が完了すると、次のジョブパケットを受信するため、ステップ（７０６）に戻る。
【０１２４】
一方、ステップ（７１２）において、ジョブスプーラ１０４がフルであったと判断した場合は、ステップ（７１４）において、当該ジョブが先頭のジョブかどうかを調べ、先頭のジョブではなかったと判断した場合、ステップ（７１２）に戻る。そして、ジョブスプーラ１０４がフルでなくなるか、先頭のジョブになるかのいずれかになるまで、データ処理を待つことになる。
【０１２５】
そして、ステップ（７１４）において当該ジョブが先頭のジョブであったと判断された場合、ステップ（７１５）において、ジョブスプーラフルというエラーを発生させる。印刷装置１００上の操作パネル１１３には「ジョブスプーラフル」というエラー表示がなされる。そして、ステップ（７１６）において、情報管理部１１０にジョブの取り消しを指示し、それにより情報管理部１１０は、上述したようなジョブの取り消し処理を行なう。
【０１２６】
そして、この後はジョブ終了オペレーションまでの全てのジョブパケットを読み飛ばしていく。すなわち、ステップ（７１７）において、次のジョブパケットの受信を行い、ステップ（７１８）において、ジョブパケットがジョブ終了オペレーションであるかどうかの比較判定を行い、ジョブ終了オペレーションであると判断した場合には、ステップ（７０１）の初期状態に戻る。
【０１２７】
一方、ジョブ終了オペレーションでないと判断した場合には、ステップ（７１９）において、ジョブパケットの破棄を行い、ステップ（７１７）に戻り、再びジョブパケットを受信から繰り返す。
【０１２８】
以上の動作によって、ジョブプリプロセッサ部１０３はジョブパケットを機器データベース部１０５とジョブスプーラ１０４にデータの振り分けを行なう。
【０１２９】
以上説明してきたように、先頭の印刷ジョブをジョブスプーラ１０４に格納している時にジョブスプーラ１０４がフルになりそれ以上格納ができなくなった場合、ジョブスプーラフルエラーを発生させ、その格納できなくなった印刷ジョブは読み飛ばす。すなわち、すべての印刷処理を止めてしまうことなく、次の印刷ジョブの処理を行なうことが可能となる。
【０１３０】
〔第２実施形態〕
上記第１実施例では、図８に示したステップ（７１２）とステップ（７１４）の判断により、ジョブスプーラ１０４がフルのために、先頭の印刷ジョブのジョブスプーラ１０４への追加ができなかった時点で、即時にジョブスプーラフルエラーを発生させてその印刷ジョブを削除するというように制御する場合について説明したが、ジョブスプーラフルエラーが発生しているケースでも、すでに１枚以上排紙しているかどうかによって、他の動作を選択できるように構成してもよい。以下、その実施形態について説明する。
【０１３１】
図９，図１０は、本発明に係る印刷制御装置における第２のデータ処理手順の一例を示すフローチャートであり、図１に示した印刷装置１００におけるジョブプリプロセッサ部１０３の動作手順に対応する。なお、（９０１）〜（９２１）は各ステップを示す。
【０１３２】
なお、図９，図１０におけるステップ（９０１）〜（９１４）までの処理は、図７，図８に示したステップ（７０１）〜ステップ（７１４）の処理と全く同じで、すでに説明済みなので、ここでの説明は省略するので、以下、ステップ（９１５）以後の処理について説明する。
【０１３３】
また、説明を省略したステップ（９１４）までの処理により、当該印刷ジョブは先頭のジョブであり、かつ、ジョブスプーラ１０４への書き込み追加中にジョブスプーラ１０４がフルだということがわかっているものとする。
【０１３４】
ステップ（９１５）において、ジョブプリプロセッサ部１０３が当該印刷ジョブを１ページ以上印刷排紙しているか、あるいは、まだ１ページも排紙していないのかを、プリンタエンジン部１０９に問い合わせる。そして、１ページ以上排紙していると判断した場合、ステップ（９１６）において、ジョブプリプロセッサ部１０３がＰＤＬトランスレータ部１０６が処理し終えたＰＤＬデータを随時ジョブスプーラ１０４から削除して動くモード（以下、随時ＰＤＬデータ削除モード）に移行させる。
【０１３５】
通常、ジョブスプーラ１０４のＰＤＬデータは、ジョブの完了のタイミングまで消去されることはなく、それまでの間は何度も読み出すことができるが、この随時ＰＤＬデータ削除モードに移行したあとは、ＰＤＬトランスレータ部１０６が読み出した分のＰＤＬデータは、随時ジョブスプーラ１０４から削除される。その削除された分、ジョブの続きのＰＤＬデータがジョブスプーラ１０４へ格納できることになる。
【０１３６】
なお、この随時ＰＤＬデータ削除モードは、フローチャートの先頭のステップ（９０１）に戻り、初期化処理が行なわれるまで継続することになる。
【０１３７】
そして、ステップ（９１２）に戻り、ジョブスプーラ１０４に空きができてＰＤＬデータを追加できるのを待つことになる。
【０１３８】
一方、ステップ（９１５）で、まだ１ページも排紙していないと判断した場合は、以下図８に示したステップ（７１５）以後の処理と同様になり、ステップ（９１７）において、ジョブスプーラフルのエラーを発生し、ステップ（９１８）において当該印刷ジョブの取り消しを指示し、ステップ（９１９）以下で、ジョブパケットを受信したら、ステップ（９２０）で、そのジョブパケットがジョブ終了オペレーションかどうかを判断して、ジョブ終了オペレーション以外のジョブパケットはステップ（９２１）で、読み飛ばすことによりジョブパケットを破棄して、ステップ（９１９）へ戻る。
【０１３９】
一方、ステップ（９２０）で、ジョブ終了オペレーションのジョブパケットを受信したと判断した場合は、先頭のステップ（９０１）へに戻る。
【０１４０】
これによりステップ（９０１）において、随時ＰＤＬデータ削除モードなどのクリアを含む初期化処理を行い、ジョブパケットの受信から始める。
【０１４１】
すなわち、先頭の印刷ジョブのジョブスプーラ１０４への格納追加時にフルなのを検知した場合、本実施形態ではその印刷ジョブが１枚以上排紙しているかどうかにより、処理を変える。１枚以上排紙していれば、そのタイミングでジョブを取り消してしまうと、中途半端なジョブが排紙ビンに残ってしまうことになるので、その印刷ジョブは最後まで印刷を行なう。
【０１４２】
他方、１枚も排紙していなかった場合、ジョブスプーラフルエラー状態のエラースキップ操作により、そのジョブは読み飛ばされることになる。
【０１４３】
このように本実施形態によれば、印刷ジョブ全体のページが排紙されずに途中までの不完全な形で保持されている印刷ジョブが排紙されてしまうことを防ぐことが可能となる。
【０１４４】
〔第３実施形態〕
上記第１実施形態では、１つのホストコンピュータと接続されている場合の例を示したが、本実施形態では複数のホストコンピュータと複数のＩ／Ｆを介して接続されている場合の例を示す。この場合、複数接続されている各ホストコンピュータから、任意のタイミングで、印刷データが転送されることになる。複数のホストコンピュータから同時に複数のジョブが転送される、という場合もあり得る。その場合は、１つのホストコンピュータからのジョブ転送時よりも、ジョブスプーラへ格納するＰＤＬデータも増えるし、ジョブの数も増えることがおおいにあり得る。
【０１４５】
図１１は、本発明の第３実施形態を示す印刷制御装置の構成を説明するブロック図であり、複数のホストコンピュータと通信するための複数のインタフェースドライバ部を備えている。なお、図９に示す印刷制御装置は、図２に示した印刷装置の印刷制御装置と同様の構成を備えるが、図２の構成と対比すると、Ｉ／Ｆドライバ部１００１，１０５１、論理チャネル制御部１００２，１０５２、ジョブプリプロセッサ部１００３，１０５３をそれぞれ２つずつ備えることを特徴としている。
【０１４６】
図１１において、２つのＩ／Ｆのそれぞれに１つずつジョブプリプロセッサ部１００３とジョブプリプロセッサ部１０５３があり、それぞれ独立に印刷ジョブのＰＤＬデータ部分を、ジョブスプーラ１００４に格納することができることになる。ジョブプリプロセッサ部１００３，１０５３の動作を以下で説明する。
【０１４７】
なお、図１と同様の機能処理を実行する構成に対しては、同一の符号を付してある。
【０１４８】
図１２，図１３は、本発明に係る印刷制御装置における第３のデータ処理手順の一例を示すフローチャートであり、図１１に示したジョブプリプロセッサ部１００３およびジョブプリプロセッサ部１０５３の動作手順に対応する。なお、（１１０１）〜（１１１２），（１１１４）〜（１１２２）は各ステップを示す。
【０１４９】
また、図１２におけるステップ（１１０１）〜（１１１１）までの処理は、図７，図８に示したステップ（７０１）〜（７１１）の処理と全く同じで、すでに説明済みなので、ここでの説明は省略し、図１３に示すステップ（１１１２）以後の処理について説明する。
【０１５０】
ステップ（１１１１）までの処理により、当該印刷ジョブのＰＤＬデータ送信オペレーションのジョブパケットを受け取ると、ステップ（１１１２）において、ジョブスプーラ１００４がフル状態かどうかを判断し、フル状態であったと判断した場合は、ステップ（１１１４）に進む。この場合の処理は、すなわち図１０におけるステップ（１１１４）〜（１１１９）までの処理は、図７に示したステップ（７１４）から（７１９）の処理と全く同じで、すでに説明済みなので、ここでの説明は省略する。
【０１５１】
一方、ステップ（１１１２）において、ジョブスプーラ１００４がフルでなかった場合、ステップ（１１２０）において、ジョブスプーラ１００４の空きサイズを調べ、あらかじめ決められている所定サイズ以上の空きがあるかどうかを判断する。この所定サイズは、ジョブスプーラ１００４のトータルサイズより小さいサイズで、例えばトータルサイズの７割のサイズとする。
【０１５２】
ここで、所定サイズ以上の空きがあったと判断した場合は、ステップ（１１２１）においてジョブスプーラ１００４にＰＤＬデータを追加して、ステップ（１１０６）へ戻る。
【０１５３】
一方、ステップ（１１２０）で、所定サイズ以上の空きが無かったと判断した場合、ジョブスプーラ１００４は、７割以上ＰＤＬデータが格納されていることになり、残りの空きの容量が比較的少なくなってきていると言える。
【０１５４】
そこで、ステップ（１１２２）において、当該印刷ジョブが、ジョブスプーラ１００４へ格納中のジョブのうち、最も先頭にあるジョブかどうかを調べる。ここで、最も先頭にあるジョブであると判断した場合、ステップ（１１２１）に進み、ジョブスプーラ１００４へＰＤＬデータの追加を行なう。
【０１５５】
一方、ステップ（１１２２）で、先頭のジョブでないと判断した場合、ステップ（１１１２）に戻る。
【０１５６】
以上により、複数のジョブを受信格納中に、ジョブスプーラの空きサイズが少なくなってきた場合には、受信格納中の印刷ジョブのうち、最も先頭にある印刷ジョブの格納を優先させ、他の印刷ジョブの格納は一時的に中断しておくように動作する。これにより、ジョブスプーラフルの状態になるのを回避しやすくなる。
【０１５７】
以下、図１４に示すメモリマップを参照して本発明に係る情報処理装置，印刷制御装置を適用可能な印刷システムで読み出し可能なデータ処理プログラムの構成について説明する。
【０１５８】
図１４は、本発明に係る情報処理装置，印刷制御装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１５９】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６０】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６１】
本実施形態における図４，図５，図７，図８，図９，図１０，図１２，図１３に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６２】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１６３】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ等を用いることができる。
【０１６５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６７】
上記実施形態によれば、先頭の印刷ジョブをジョブスプーラに格納している時にジョブスプーラがフルになりそれ以上格納ができなくなった場合、ジョブスプーラフルエラーを発生させ、その格納できなくなった印刷ジョブは読み飛ばすことにより、すべての印刷処理を止めてしまうことなく、次の印刷ジョブの処理を行なうことが可能となる。
【０１６８】
また、印刷ジョブ全体のページが排紙されずに途中までの不完全な形での印刷ジョブの排紙になってしまうことを防ぐことが可能となる。
【０１６９】
さらに、複数のジョブを受信格納中に、ジョブスプーラの空きサイズが少なくなってきた場合には、受信格納中の印刷ジョブのうち、最も先頭にある印刷ジョブの格納を優先させ、他の印刷ジョブの格納は一時的に中断しておくように動作する。これにより、ジョブスプーラフルの状態になるのを回避しやすくなる。
【０１７０】
なお、上記各実施形態を適宜有効に組み合わせた実施形態も本発明の適用範囲であることはいうまでもない。
【０１７１】
【発明の効果】
以上説明したように、本発明によれば、先頭の印刷ジョブのデータ量が印刷装置で保持可能なデータ容量を超えるような場合に、後続する印刷ジョブの処理が滞ってしまうフル状態を自動的に回避して、後続する印刷ジョブを有効に処理できる状態に遷移させることができる。
【０１７３】
更に、ジョブスプーリングフル状態に遷移してしまう事態を確実に回避することができる。
【０１７４】
したがって、最初に処理受信した印刷ジョブのデータ容量がスプール容量を超えてしまうような印刷ジョブを受信した場合でも、速やかに後続する印刷ジョブを受信処理可能な状態に自動的に遷移させることができ、ユーザによるジョブ解除処理等が行われなくても、後続の印刷ジョブを有効に処理できる利便性に優れた印刷処理環境を自在に構築することができる等の効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１実施形態を示す印刷制御装置を適用可能な印刷装置の構成を説明するブロック図である。
【図２】本発明の第１実施形態を示す情報処理装置の構成を説明するブロック図である。
【図３】図２に示したジョブパケット生成部から送信されるジョブパケットの構造を示す説明図である。
【図４】本発明に係る情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図５】本発明に係る情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】図１に示した印刷装置におけるジョブ読み出しテーブルを説明する図である。
【図７】本発明に係る印刷制御装置における第１のデータ処理手順の一例を示すフローチャートである。
【図８】本発明に係る印刷制御装置における第１のデータ処理手順の一例を示すフローチャートである。
【図９】本発明に係る印刷制御装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１０】本発明に係る印刷制御装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１１】本発明の第３実施形態を示す印刷制御装置の構成を説明するブロック図である。
【図１２】本発明に係る印刷制御装置における第３のデータ処理手順の一例を示すフローチャートである。
【図１３】本発明に係る印刷制御装置における第３のデータ処理手順の一例を示すフローチャートである。
【図１４】本発明に係る情報処理装置，印刷制御装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図１５】従来の印刷システムにおける機能構成を説明するブロック図である。
【符号の説明】
２００  ホストコンピュータ
１００  印刷装置
１２０，２１０  インタフェース
２０１  アプリケーション部
２０２  プリンタドライバ部
２０３  送信バッファ
２０４  Ｉ／Ｆドライバ部
２０５  ユーティリティ部
２０６  論理チャネル制御部
２０７  ジョブパケット生成部
１０１  Ｉ／Ｆドライバ部
１０２  論理チャネル制御部
１０３  ジョブプリプロセッサ部
１０４  ジョブスプーラ
１０５  機器データベース部
１０６  ＰＤＬトランスレータ部
１０７  描画バッファ
１０８  描画部
１０９  プリンタエンジン部
１１０  情報管理部
１１１  ジョブ読み出しテーブル
１１２  処理部
１１３  操作パネル
【図１】
0004541581.tif 000002
【図２】
0004541581.tif 000003
【図３】
0004541581.tif 000004
【図４】
0004541581.tif 000005
【図５】
0004541581.tif 000006
【図６】
0004541581.tif 000007
【図７】
0004541581.tif 000008
【図８】
0004541581.tif 000009
【図９】
0004541581.tif 000010
【図１０】
0004541581.tif 000011
【図１１】
0004541581.tif 000012
【図１２】
0004541581.tif 000013
【図１３】
0004541581.tif 000014
【図１４】
0004541581.tif 000015
【図１５】
0004541581.tif 000016