(57)【特許請求の範囲】
【請求項１】
情報処理装置と通信可能な印刷処理装置であって、
印刷ジョブを管理するための印刷管理データであることを示すヘッダが付加された印刷管理データと、印刷データであることと印刷データのデータサイズとが示されたヘッダとが付加された印刷データとを含むジョブデータを印刷ジョブとして入力する入力手段と、
前記入力手段を介して入力されたジョブデータのヘッダを解析し、入力されたジョブデータが印刷管理データであると判断された場合に入力データを印刷管理データとして管理情報格納領域に格納し、入力されたジョブデータが印刷データであると判断され場合にヘッダが示すデータサイズに基づく印刷データの読み飛ばしを行い、前記入力データを印刷データとして印刷データ格納領域に格納する処理手段と、を有することを特徴とする印刷処理装置。
【請求項２】
前記管理情報格納領域に格納された印刷管理データに対応する印刷データの処理状態を管理する管理手段を有することを特徴とする請求項１に記載の印刷処理装置。
【請求項３】
前記印刷管理データ及び前記印刷データはパケット化されており、さらに前記印刷データは複数のパケットにパケット化されており、前記入力手段は、前記情報処理装置から所定のデータ通信で送信されてくる、パケットのデータ内容を識別するためのヘッダを夫々含む複数のパケットにパケット化されたジョブデータを入力し、前記処理手段は前記複数のパケットの夫々のヘッダを解析し、該解析に基づき前記パケット化されたデータの前記管理情報格納領域及び印刷データ格納領域への格納を切り分けることを特徴とする請求項１又は２に記載の印刷処理装置。
【請求項４】
前記ヘッダを解析する第１解析手段と、
前記第１解析手段の解析に基づき前記印刷データ格納領域に格納された印刷データを、ラスタライズ処理行う為の中間データに変換するべく解釈する第２解釈手段と、を有することを特徴とする請求項１から３の何れかに記載の印刷処理装置。
【請求項５】
前記処理状態には前記印刷データの受信中、或いは、印刷待ち、或いは、解析中、が含まれることを特徴とする請求項２に記載の印刷制御装置。
【請求項６】
前記管理情報格納領域に格納された印刷管理データに対応する処理状態を前記情報処理装置に通信回線を介して出力する出力手段を有し、前記処理状態には前記印刷データの解析中であることが含まれていることを特徴とする請求項１から５の何れかに記載の印刷処理装置。
【請求項７】
前記管理情報格納領域に格納された印刷管理データに対応する処理状態を前記情報処理装置に通信回線を介して出力する出力手段を有することを特徴とする請求項１から６の何れかに記載の印刷処理装置。
【請求項８】
前記印刷管理用データには、ジョブ名、或いは、オーナ名が含まれることを特徴とする請求項１から７の何れかに記載の印刷処理装置。
【請求項９】
印刷ジョブを処理する印刷処理装置における印刷処理方法であって、
印刷ジョブを管理するための印刷管理データであることを示すヘッダが付加された印刷管理データと、印刷データであることと印刷データのデータサイズとが示されたヘッダとが付加された印刷データとを含むジョブデータを印刷ジョブとして入力する入力ステップと、
前記入力ステップにおいて入力されたジョブデータのヘッダを解析し、入力されたジョブデータが印刷管理データであると判断された場合に入力データを印刷管理データとして管理情報格納領域に格納し、入力されたジョブデータが印刷データであると判断され場合にヘッダが示すデータサイズに基づく印刷データの読み飛ばしを行い入力データを印刷データとして印刷データ格納領域に格納する処理ステップと、を有することを特徴とする印刷処理方法。
【請求項１０】
前記管理情報格納領域に格納された印刷管理データに対応する印刷データの処理状態を管理する管理ステップを有することを特徴とする請求項９に記載の印刷処理装置方法。
【請求項１１】
前記印刷管理データ及び前記印刷データはパケット化されており、さらに前記印刷データは複数のパケットにパケット化されており、前記入力ステップは、前記情報処理装置から所定のデータ通信で送信されてくる、パケットのデータ内容を識別するためのヘッダを夫々含む複数のパケットにパケット化されたジョブデータを入力し、前記処理ステップは前記複数のパケットの夫々のヘッダを解析し、該解析に基づき前記パケット化されたデータの前記管理情報格納領域及び印刷データ格納領域への格納を切り分けることを特徴とする請求項９又は１０に記載の印刷処理方法。
【請求項１２】
前記ヘッダを解析する第１解析ステップと、
前記第１解析ステップにおける解析に基づき前記印刷データ格納領域に格納された印刷データを、ラスタライズ処理行う為の中間データに変換するべく解釈する第２解釈ステップと、を有することを特徴とする請求項９から１１の何れかに記載の印刷処理方法。
【請求項１３】
前記管理情報格納領域に格納された印刷管理データに対応する処理状態を前記情報処理装置に通信回線を介して出力する出力ステップを有することを特徴とする請求項９から１２の何れかに記載の印刷処理方法。
【請求項１４】
印刷ジョブを処理する印刷処理装置における処理プログラムを格納した記憶媒体であって、
印刷ジョブを管理するための印刷管理データであることを示すヘッダが付加された印刷管理データと、印刷データであることと印刷データのデータサイズとが示されたヘッダとが付加された印刷データとを含むジョブデータを印刷ジョブとして入力する入力ステップと、
前記入力ステップにおいて入力されたジョブデータのヘッダを解析し、入力されたジョブデータが印刷管理データであると判断された場合に入力データを印刷管理データとして管理情報格納領域に格納し、入力されたジョブデータが印刷データであると判断され場合にヘッダが示すデータサイズに基づく印刷データの読み飛ばしを行い入力データを印刷データとして印刷データ格納領域に格納する処理ステップと、を含むコンピュータ読取可読のプログラムを記憶した記憶媒体。
【請求項１５】
前記管理情報格納領域に格納された印刷管理データに対応する印刷データの処理状態を管理する管理ステップを有することを特徴とする請求項１４に記載の記憶媒体。
【請求項１６】
前記印刷管理データ及び前記印刷データはパケット化されており、さらに前記印刷データは複数のパケットにパケット化されており、前記入力ステップは、前記情報処理装置から所定のデータ通信で送信されてくる、パケットのデータ内容を識別するためのヘッダを夫々含む複数のパケットにパケット化されたジョブデータを入力し、前記処理ステップは前記複数のパケットの夫々のヘッダを解析し、該解析に基づき前記パケット化されたデータの前記管理情報格納領域及び印刷データ格納領域への格納を切り分けることを特徴とする請求項１４又は１５に記載の記憶媒体。
【請求項１７】
前記ヘッダを解析する第１解析ステップと、
前記第１解析ステップにおける解析に基づき前記印刷データ格納領域に格納された印刷データを、ラスタライズ処理行う為の中間データに変換するべく解釈する第２解釈ステップと、を有することを特徴とする請求項１４から１７の何れかに記載の記憶媒体。
【請求項１８】
前記管理情報格納領域に格納された印刷管理データに対応する処理状態を前記情報処理装置に通信回線を介して出力する出力ステップを有することを特徴とする請求項１４から１７の何れかに記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータから送信された印刷ジョブを印刷出力するようにする印刷処理装置、特に、クライアント−ホスト間でデータをやり取りする際に、印刷ジョブをコマンド単位に解析して印刷する印刷処理装置、及び印刷処理方法及び印刷処理プログラムを記憶した記憶媒体に関するものである。
【０００２】
【従来の技術】
従来例を図５、図６を使って説明する。図５は印刷装置の構成を表す図であり、図６は従来例においてホストコンピュータからデータを受信した時の動作を表すフローチャートである。
【０００３】
図５において、５０１は印刷装置本体、５０２は印刷装置５０１にデータを送るホストコンピュータ（ホスト）、５０３はホスト５０２から送られてきたデータを受信する入力部、５０４は印刷ジョブのデータを解析して各印刷ぺ一ジのビデオ信号を作成する印刷処理部、５０５は印刷装置５０１全体の制御を行なう中央制御部、５０６は印刷処理部５０４から送られてきた各ページのビデオ信号を印刷用紙に転写して出力する出力部、５０７は印刷用紙を蓄積、供給する用紙カセットである。５０８はユーザによる印刷モードの設定等を行うための操作部である。
【０００４】
従来は、図５に示す印刷装置５０１に対して、ホスト５０２から印刷開始命令で始まり印刷終了命令で終るプリンタ言語で記述された印刷を行なうためのデータが送られてくる（図８）。
【０００５】
プリンタ等の周辺機器において、ホストコンピュータから受信したデータには、実際に印刷するページ記述言語等で表現された印刷データ（以下ＰＤＬ）を、ジョブランゲージ（以下ＪＬ）と呼ばれるコマンド情報で括り、印刷ジョブの制御等を行っていた。ＪＬはＰＤＬとは独立しているが、ＰＤＬと同じテキスト列で表現されている。
【０００６】
ホスト５０２から送られてきたデータは入力部５０３で受信される（Ｓ６０１：図６）。入力部５０３は印刷開始命令で始まるデータは印刷ジョブであると判断し、以後印刷終了命令を検出するするまでのデータを１つの印刷ジョブとして扱う。
【０００７】
入力部５０３は印刷開始命令（ＪＬ）を検出すると中央制御部５０５にジョブ開始通知を行なう。中央制御部５０５はジョブ開始通知を受けると、印刷処理手段５０４に対して現在受信中の印刷ジョブの印刷処理の開始を指示する。
【０００８】
印刷処理手段５０４はその指示を受けると入力部５０３からデータを取り込み、現在受信中の印刷ジョブの印刷処理を行なう（Ｓ６０２）。
【０００９】
印刷処理手段５０４は印刷ジョブのデータを解析し、１ぺ一ジ分のビデオ信号が完成すると、そのビデオ信号を出力部５０６に送り、また次のぺ一ジのビデオ信号を作成する。出力部５０６はビデオ信号が送られてくると用紙カセット５０７から用紙を取り込み、その用紙にビデオ信号を描画出力して排紙する。印刷処理手段５０４は、そのようにしてその印刷ジョブの印刷終了命令までの処理を行なうと（Ｓ６０３−ＹＥＳ）、中央制御部５０５に対して印刷終了の通知を行なう。
【００１０】
印刷処理手段５０４は印刷終了命令（ＪＬ）を受信するまで、受信した印刷ジョブの処理を継続する（Ｓ６０３−Ｎｏ）。
【００１１】
次に、また、ホスト５０２から別な印刷ジョブのデータが送られてくると同様の処理を行なう。例えば図８に示すように、印刷ジョブＡと印刷ジョブＢのような場合である。
【００１２】
ホスト５０２から連続で印刷ジョブが送られてくるような場合は、中央制御部５０５は、印刷処理手段５０４から前の印刷ジョブの印刷終了通知を受けるよりも前に入力部５０３から次の印刷ジョブの印刷開始通知を受けることがある。その場合中央制御部５０５は印刷処理手段５０４から前の印刷ジョブの印刷終了通知を受けてから、次の印刷ジョブの印刷開始を印刷処理手段５０４に指示することになる。
【００１３】
印刷ジョブＡ８０１（図８）の完了を受けて印刷ジョブＢ８０２の印刷処理が開始される。
【００１４】
従って、印刷処理部５０４で、印刷ジョブの解析に長時間を要すると後続の別の印刷ジョブの実行管理において、迅速な処理ができなくなる。
【００１５】
このような従来の印刷システムにおける情報獲得、環境設定を行う仕組みを具現化した印刷システムの模式的構成を示すブロック図を図１４に示す。
【００１６】
従来の印刷システムは、ホストコンピュータ１０９と、印刷装置１１０とを所定の通信媒体１４１３を介して接続した構成となっている。
【００１７】
ホストコンピュータ１０９は、アプリケーション部１４０１と、プリンタドライバ部１４０２と、送信バッファ１４０３と、Ｉ／Ｆ（インタフェース）ドライバ部１４０４と、ユーティリティ部１４０５とを備えている。
【００１８】
アプリケーション部１４０１は、ユーザにグラフィックユーザインタフェイスを提供し、ユーザの目的に適った画像データを生成する。プリンタドライバ部１４０２は、アプリケーション部１４０１が生成した画像データを印刷装置１１０で印刷可能なページ記述言語（ＰＤＬ）データに変換する。
【００１９】
送信バッファ１４０３は、プリンタドライバ部１４０２が生成したＰＤＬデータを一時的に格納しておく。Ｉ／Ｆドライバ部１４０４は、送信バッファ１４０３に蓄えられたＰＤＬデータを印刷装置１１０に送信、及び印刷装置１１０の情報の送受信を行う。ユーティリティ部１４０５は、印刷装置１１０の情報を獲得してグラフィックユーザインタフェイスに提供したり、ユーザの要望に従って印刷装置１１０の環境設定を変更する。
【００２０】
また、印刷装置１１０は、Ｉ／Ｆドライバ部１４０６と、受信バッファ１４０７と、ＪＬ（ジョブ制御言語）パーサ部１４０８と、ＰＤＬトランスレータ部１４０９と、描画バッファ１４１０と、描画部１４１１と、プリンタエンジン部１４１２と、機器データベース部１４１３とを備えている。Ｉ／Ｆドライバ部１４０６は、ホストコンピュータ１０９から送信されたＰＤＬデータの受信、印刷装置１１０の情報の送信、環境設定の受信を行う。受信バッファ１４０７は、Ｉ／Ｆドライバ部１４０６で受信した全データを一時的に確保し、後段の処理の遅延の緩衝材となる。
【００２１】
ＪＬパーサ部１４０８は、受信データを解析し、印刷装置１１０の情報獲得かＰＤＬデータの受信かの処理の振り分けを、所定のＪＬによって判断して処理を振り分ける。ＰＤＬトランスレータ部１４０９は、ＪＬパーサ部１４０８によってＰＤＬデータを振り分けられたＰＤＬの翻訳処理を行い、描画に適した描画オブジェクトである中間データに変換を行う。機器データベース部１４１３は、ＪＬにより設定された印刷装置１１０の情報を格納し、ＪＬにより獲得或いは後段のＰＤＬトランスレータ部１４０９に情報を提供する。ここでいう環境情報とは、例えば印刷枚数のことである。
【００２２】
描画バッファ１４１０は、ＰＤＬトランスレータ部１４０９によって生成された描画オブジェクトの中間データを実際に印刷を行うまで一時的に格納しておく。描画部１４１１は、描画バッファ１４１０に一時格納された描画オブジェクトを実際に描画を行ってビットマップ画像であるイメージデータを生成する。プリンタエンジン部１４１２は、描画部１４１１が生成したビットマップ画像を受取り、既知の印刷技術により用紙等のメディアに印刷を行う。
【００２３】
次に、ジョブ制御言語（ＪＬ）について説明する。先ず、ＪＬを用いた印刷データ送信の手段を説明する。
【００２４】
ＪＬ（Ｊｏｂ  Ｌａｎｇｕａｇｅ）は、ＰＤＬと共にホストコンピュータ１０９のプリンタドライバ部１４０２において生成され送信されるデータで、テキスト形式の構造をとっている。ＪＬは、＜ＥＳＣ＞で表されるエスケープ文字を含んでいる。例えば、それまで動作していたＰＤＬトランスレータ部１４０９の処理を終了してＪＬパーサ部１４０８に制御を渡し、パーサ処理を開始させることや、“ＬＩＰＳ”（ＬＩＰＳ：キヤノン（株）の登録商標）という名称のＰＤＬトランスレータ部１４０９に処理を移行し、ＰＤＬの翻訳及び描画処理を行うことを示している。上記のＪＬの働きにより、印刷装置１１０は複数の異なるＰＤＬから構成される印刷データを適切に切り替え、印刷が可能となる。
【００２５】
次に、ＪＬによる印刷装置１１０の情報獲得、環境設定の手段を説明する。例えば、ＪＬには、ホストコンピュータ９００のユーティリティ部９０５から生成される命令があり、印刷装置１１０のページの印刷枚数（ＣＯＰＩＥＳ）の初期値を印刷装置１１０から獲得する命令が存在する。尚、ＣＯＰＩＥＳは一例であり、その他の印刷装置１１０の環境情報は対応した文字列により獲得可能である。また、ＪＬには、ホストコンピュータ１０９のユーティリティ部１４０５から生成される命令があり、印刷装置１１０のページの印刷枚数の初期値を「Ｘ枚」に設定する命令がある。上記のＪＬの働きにより、ホストコンピュータ１０９は印刷装置１１０の情報の獲得及び設定が可能となっている。
【００２６】
【発明が解決しようとする課題】
しかしながら、従来例のように、ＪＬを使用した印刷ジョブ単位の印刷処理においては以下の３点のような不具合があった。
▲１▼ホストコンピュータから受信したデータで、実際に印刷するデータ（ＰＤＬ）を最後まで解釈しないとジョブの全体的な負荷量が検知できない。
▲２▼ＰＤＬを解釈するまでジョブが認識できない。
▲３▼ＰＤＬを解釈する以前の段階でジョブ管理ができない。
【００２７】
図２は本発明の実施形態において、印刷処理部５０４における印刷ジョブの処理を簡単にブロック図化したものであるが、従来では図２のキュー２０４以降においてのみジョブの管理が可能であった。
【００２８】
印刷ジョブを一体としてシリアルな情報として処理がなされていたために、複数の印刷ジョブが連続的に投入された場合、先行する印刷ジョブの印刷処理が完全に終了するまで、後続の印刷ジョブは処理待ちとなる。具体的には、従来例によると、上記図１４の印刷装置１１０の構造を見ればわかるように、印刷ジョブの認識を行うＪＬパーサ部１４０８が解釈する前に一度受信バッファ１４０７に格納されるため、受信バッファ１４０７に入った印刷データは印刷ジョブとして認識されず、印刷装置１１０に入ったすべての印刷ジョブの情報取得、設定という点に介して不完全なものになるという問題がある。
【００２９】
また、ホストコンピュータ１０９のアプリケーション部１４０１によって生成された印刷データは、プリンタドライバ部１４０２によってＰＤＬデータに変換され、送信バッファ１４０３、Ｉ／Ｆドライバ部１４０４を経由して印刷装置１１０に送信されるが、データ送信中にユーティリティ部１４０５から印刷装置１１０の情報取得、設定やジョブ制御を行おうとしても、Ｉ／Ｆドライバ部１４０４によって排他制御され、上記ＰＤＬデータの送信がすべて完了するまでユーティリティ部１４０５の要求を満たすことができないため、リアルタイム性を損なうことになっている。
【００３０】
さらに、付帯した課題として、印刷処理の実行は先行する印刷処理の状況に依存するために、後続の印刷ジョブの出力は、いつ出力されるか等不確定であり、余分な待ち時間が強いられることになる。印刷ジョブのうち、優先順位の高いジョブでも低いジョブでも一律に扱われるために、優先順位の高い重要な書類を印刷する場合でも先行する印刷ジョブが終了するまで待たなければならない。
【００３１】
本発明は、上述した点に鑑みなされたものであり、印刷装置等の周辺機器が受信したデータは従来技術同様にコマンド情報で括りながらも、前記コマンド情報自身、或いは前記コマンド情報に続くデータサイズをコマンド情報内に収めることにより、出力しようとするＪＢＬデータ全体を解釈することなく、コマンド情報を解析するだけでジョブが認識できるようにし、更にデータ受信時に、前記コマンド情報を解析するコマンド印刷処理部と、前記コマンド印刷処理部で解析したジョブ情報を保持する手段とを備え、データ受信直後、或いはデータ受信に続く一連のシーケンス上においてジョブの管理・制御が可能となる印刷制御装置及び印刷制御方法及び印刷制御プログラムを記憶した記憶媒体及び印刷制御システムを提供することを目的とする。
【００３２】
【課題を解決するための手段】
上記目的を達成するために本発明は以下の構成からなる。
【００３３】
すなわち、印刷ジョブを管理するための印刷管理データであることを示すヘッダが付加された印刷管理データと、印刷データであることと印刷データのデータサイズとが示されたヘッダとが付加された印刷データとを含むジョブデータを印刷ジョブとして入力し、該入力されたジョブデータのヘッダを解析し、入力されたジョブデータが印刷管理データであると判断された場合に入力データを印刷管理データとして管理情報格納領域に格納し、入力されたジョブデータが印刷データであると判断され場合にヘッダが示すデータサイズに基づく印刷データの読み飛ばしを行い、前記入力データを印刷データとして印刷データ格納領域に格納することを特徴とする仕組みを提供する。
【００５２】
【発明の実施の形態】
（第１の実施形態）
＜印刷装置・システムの構成＞
以下に本発明を図を用いて詳細に説明する。
【００５３】
図１は、本発明の印刷制御装置を含む印刷装置１１０のブロック図である。
【００５４】
入力部１０１は、本印刷装置とホストコンピュータ５２０等のクライアント間の通信を司る。入力部１０１は、図３に示す印刷ジョブデータの受信が可能である。すなわち、印刷ジョブの管理のためのデータ、印刷実行にかかる文書データ、さらに印刷制御のためのデータ等と、それぞれに対応したヘッダ部分が付加されたデータ構造を有する情報の受信が可能である。図３の場合、ヘッダ情報はデータ容量であるが、データの種類はこれに限定されず、たとえば、データの内容を識別するための情報であってもよい。
【００５５】
中央制御部（ＣＰＵ）１０２は、本印刷装置１１０の全体的な制御を司るものである。
【００５６】
操作部１０３は、本印刷装置に直接ユーザがふれる際のＩ／Ｆを提供するものである。
【００５７】
印刷処理部１０４は、入力部１０１で受信したコマンドの解析、及び印刷データ（ＰＤＬ）の解析等を行うものである。
【００５８】
記憶部１０５は、本装置を動作させるためのＲＯＭ（読み出し専用メモリ）、ＲＡＭ（ランダムアクセスメモリ）、２次記憶装置等からなる。ＲＡＭは使用制限のないデータ記憶領域であり、入力部１０１の受信バッファ、或いは印刷処理部１０４でのデータ展開等に使用される領域である。
【００５９】
出力部１０６は、入力部１０１を解して受信した印刷データを、印刷処理部１０４で印刷可能なイメージ情報に展開されたものを紙に転写するものである。用紙カセット１０８は出力部１０６の処理に合わせて適切な用紙を供給する。
【００６０】
図２は、本発明において、印刷ジョブの処理をブロック図を用いて表現したものである。
【００６１】
コマンド解析部２０１は、入力部１０１で受信したデータ、即ち後述の図３で示される印刷ジョブの各コマンドを順次解析する。解析された情報のうち、ジョブとして管理すべき情報は、記憶部１０５内に生成される後述の図４のジョブテーブルに格納される。
【００６２】
管理すべき情報とは受信した順番（ジョブ番号等）、ユーザ名、ファイル名、処理状態等である。
【００６３】
受信バッファ２０２は、コマンド解析部２０１で解析された情報のうち、実際の出力データを、記憶部１０５内に一時的に保存処理する。
【００６４】
ＰＤＬ印刷処理部２０３は、受信バッファ２０２に蓄積された実際に出力されるべき印刷情報（ＰＤＬ）を印刷可能なイメージデータに展開処理する。
【００６５】
キュー２０４は、後述の出力部２０５に渡される情報を記憶部１０５に順次蓄積処理する。
【００６６】
出力部（エンジン）２０５は、実際の印刷処理、即ち、記憶部１０５に順次蓄積された印刷ジョブを印刷用紙への転写処理を行う。
【００６７】
＜印刷データの生成＞
印刷ジョブデータの生成はホストコンピュータ１０９で行われる。ホストコンピュータ１０９は本実施形態においては、データ生成手段として機能する。
【００６８】
印刷ジョブデータは主に▲１▼印刷ジョブを管理するためのデータ、▲２▼印刷処理されるための文書データ、▲３▼印刷制御のためのデータ、という３種類の属性に分類でき、それぞれはコマンド情報により記述される。夫々のコマンド情報には、個々に対応したヘッダ情報が付加され、ヘッダ情報と、コマンド情報とが一対となる。印刷ジョブデータはヘッダ情報と、コマンド情報の一対が一つあるいは複数の組合わせにより記述されるデータである。
【００６９】
図３は、ホストコンピュータ１０９から受信された印刷データの構成図である。
【００７０】
３０１は、１つの印刷処理にかかる一連のコマンド、即ち、ジョブコマンドを表したものである。
【００７１】
３０２は、後述のコマンド３０３のパケットヘッダーであり、本ヘッダーにはコマンド３０３のデータサイズが格納されている。
【００７２】
３０３はジョブの開始を示すコマンドであり、本コマンドから後述のジョブの終了コマンド３０９までが１つのジョブとして管理されるべきデータある。
【００７３】
３０４は後述のコマンド３０５のパケットヘッダーであり、本ヘッダーにはコマンド３０５のデータサイズが格納されている。
【００７４】
３０５はパラメータの設定コマンド、及び設定データである。
【００７５】
３０６は後述のコマンド３０７のパケットヘッダーであり、本ヘッダーにはデータ３０７のデータサイズが格納されている。
【００７６】
３０７は実際に印刷されるべき印刷データ（ＰＤＬ情報）である。
【００７７】
３０８は後述のコマンド３０９のパケットヘッダーであり、本ヘッダーにはコマンド３０９のデータサイズが格納されている。
【００７８】
３０９はジョブの終了コマンドであり、ジョブ開始コマンド３０３と対になリジョブの情報を識別するものである。
【００７９】
なお、前記３０２，３０４，３０６，３０８の各パケットヘッダーには続くコマンドのサイズ以外の情報即ち、パケット識別データが格納されていても良く、続くコマンドのデータサイズ以外の情報に関しては特に制限するものではない。
【００８０】
パケットヘッダ情報は単一の情報に限定されず、複数種の情報を並記することも可能である。例えば、データ容量と、そのデータが制御データであるか、印刷される文書データのいずれかであるかの識別データとの並記である。パケットヘッダ情報の詳細な説明は図１６で後述する。
【００８１】
印刷ジョブ３０１は、パケットヘッダとパラメータとを１つのデータの塊としてパケット単位で送受信が行われる。ここでいうパケットとは、ネットワークにおけるデータ通信でのパケットという下層のパケットではなく、データの塊という上位概念である。
【００８２】
印刷開始命令３０３と印刷終了命令３０９で囲まれている情報は、一印刷ジョブ単位として扱われる。
【００８３】
図１６はパケットヘッダ情報の構造を示す説明図である。縦軸はバイトを示し、横軸は各バイトのビットを示している。図中において０〜１バイト目のオペレーションコードは、パケットの機能を示す長さ２バイトのＩＤを示すものである。オペレーションコードは、以下の値を取ることができる。
【００８４】
０ｘ０２０１  ジョブ開始オペレーション
０ｘ０２０２  ジョブ属性設定オペレーション
０ｘ０２０４  ＰＤＬデータ送信オペレーション
０ｘ０２０５  ジョブ終了オペレーション
０ｘ０３０１  ジョブ制御オペレーション
ここで「０ｘ」とは、１６進数という意味である。パケットヘッダ３０２では、オペレーションコードはジョブ開始オペレーション「０２０１」の値をとる。パケットヘッダ３０４では、オペレーションコードはジョブ属性設定オペレーション「０２０２」の値をとる。パケットヘッダ３０６では、オペレーションコードはＰＤＬデータ送信オペレーション「０２０４」の値をとる。パケットヘッダ３０８では、オペレーションコードはジョブ終了オペレーション「０２０５」の値をとる。ジョブ制御オペレーションは、ジョブ制御でホストコンピュータ１０９から印刷装置１１０に送信されるジョブ制御コマンドのパケットヘッダに付加されるものであり、オペレーションコードはジョブ制御オペレーション「０３０１」の値をとる。ジョブ制御オペレーションは、図１９で後述する処理に使用される。
【００８５】
２〜３バイト目のブロック番号は、ジョブパケットを送信した側が返答を要求する場合に、要求と返答の対応を取るために使用する番号である。例えばそれぞれブロック番号＝１、２、３というジョブパケットをホストコンピュータ１０９が立て続けに送信した時にブロック番号＝２というエラーパケットが印刷装置１１０から返ってきた場合、送信側は２番目に送ったジョブパケットにエラーが発生したことを特定することが可能である。
【００８６】
４〜５バイト目のパラメータ長は、１２バイト目以降のデータ部のバイト長さを示す領域で、０〜６４Ｋバイトまでを示すことが可能である。パラメータ長は、パケットヘッダが示す属性により異なる。
【００８７】
６〜７バイト目はジョブパケットの各種フラグを示す領域で、それぞれ以下の値を示す。
【００８８】
エラーフラグ：この値が１の場合、印刷装置１１０で何らかのエラーが発生したことを示す。このフラグは印刷装置１１０からホストコンピュータ１０９に送られる返信パケットに付加される。
【００８９】
通知フラグ：この値が１の時は、ホストコンピュータ１０９からの要求パケットに対する返答ではなく、印刷装置１１０が何らかの通知事項があることをホストコンピュータ１０９に通知することを示している。
【００９０】
継続フラグ：この値が１の場合、データ部に全てのデータが入らなかったため、次のジョブパケットで残りのデータが送られることを示す。次のジョブパケットは前のパケットと同じオペレーションコードを設定しなくてはならない。
【００９１】
返答要求：ホストコンピュータ１０９から印刷装置１１０に対して返答パケットが必要な場合に１をセットする。０のときは要求パケットは正常に処理された場合には返答は返さない。印刷装置１１０でエラーが発生した場合には返答要求の０／１に関わらず、常にエラーフラグを１にした返答パケットを送出する。
【００９２】
８〜９バイト目のユーザＩＤ及び１０〜１１バイト目のパスワードは、要求パケットでできる操作にセキュリティ的制限を設ける際に認証に使われる領域である。
【００９３】
１２バイト目以降はオペレーションコードに対応したデータ（パラメータやＰＤＬ）が格納される。ジョブ開始オペレーション及びジョブ終了オペレーションの場合は、データは存在しない。
【００９４】
ジョブ属性設定オペレーションの場合、設定したいジョブ属性ＩＤとジョブ属性値を設定する。ジョブ属性ＩＤとは、ジョブに関する属性或いは環境に対応した識別子を示すもので、ＩＳＯ−１０１７５（ＤＰＡ）（ＩＳＯ：国際標準化機構）で規定されるジョブの属性に相当するＩＤが予め割り振られている。
【００９５】
以下にジョブ属性の代表的なものを挙げる。
【００９６】
ジョブ属性ＩＤ
０ｘ０１０１  ジョブ名称
０ｘ０１０３  ジョブオーナ名
０ｘ０１６ａ  ジョブサイズ
【００９７】
ＰＤＬデータ送信オペレーションの場合は、データ部にはＰＤＬデータが入る。１つのジョブパケットのデータは上記パラメータ長に格納できる最大サイズまでなので、６４ＫＢまで格納可能であり、その以上のデータは複数のＰＤＬデータ送信オペレーションに分割して送信する。この場合は上記継続フラグに１を立てる。
【００９８】
図１５は、本発明の第１の実施の形態に係る印刷システムの模式的構成を示すブロック図である。本発明の第１の実施の形態に係る印刷システムは、ホストコンピュータ１０９と、印刷装置１１０とを双方向通信可能な所定の通信媒体１５１８を介して接続した構成となっている。本発明の第１の実施の形態では、通信媒体１５１８として例えばＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ：米国電気電子技術者協会）１２８４で規定されたローカルインタフェイスを使用した場合を例に上げ説明する。
【００９９】
本発明の第１の実施の形態に係る印刷システムを構成するホストコンピュータ１０９は、アプリケーション部１５０１と、プリンタドライバ部１５０２と、送信バッファ１５０３と、Ｉ／Ｆドライバ部１５０４と、ユーティリティ部１５０５と、論理チャネル制御部１５０６と、ジョブパケット生成部１５０７とを備える構成となっている。
【０１００】
上記各部の機能を詳述すると、アプリケーション部１５０１は、ユーザにグラフィックユーザインタフェイスを提供し、ユーザの目的に適った画像データを生成する。プリンタドライバ部１５０２は、アプリケーション部１５０１が生成した画像データを印刷装置１１０で印刷可能なページ記述言語（ＰＤＬ）データに変換する。送信バッファ１５０３は、プリンタドライバ部１５０２が生成したＰＤＬデータを一時的に格納しておく。ジョブパケット生成部１５０７は、送信バッファ１５０３に蓄えられたＰＤＬデータからジョブパケットデータを生成する。
【０１０１】
ユーティリティ部１５０５は、印刷装置１１０の情報を獲得してグラフィックユーザインタフェイスに提供したり、ユーザの要望に従って印刷装置１１０の環境設定を変更する。論理チャネル制御部１５０６は、ジョブパケット生成部１５０７から送られるジョブパケットデータをデータチャネルとし、ユーティリティ部１５０５から送受信される状態取得、環境設定を管理チャネルとして、２つの論理チャネルから送られるデータをパケット化して１つの物理チャネルに変換する。つまり、通信媒体１５１８は、物理的には１つの双方向インタフェース（本実施例ではＩＥＥＥ１２８４インタフェース）であるため、２つの異なる種類のデータを１つのインタフェースで送受信するため、論理チャネル制御部１５０６が存在する。
【０１０２】
ここで、本実施例の論理チャネル制御部１５０６は、ＩＥＥＥ１２８４．４の通信方式を用いて、マルチチャネル通信を行うよう制御している。ＩＥＥＥ１２８４．４は、データをクレジットという単位で送受信し、送受信ためにまずクレジット要求を出し、その要求に対応したクレジットをもらうことにより通信を行う。ここで、データ送受信用とは別に、常に管理用のクレジットを２つ用意しているので、例えば印刷装置において印刷データを受信中にも、管理チャネル（管理用クレジット）から制御コマンドを受信できるようになっている。
【０１０３】
Ｉ／Ｆドライバ部１５０４は、送信バッファ１５０３に蓄えられたＰＤＬデータを印刷装置１１０に送信、及び印刷装置１１０の情報の送受信を行う。
【０１０４】
他方、本発明の第１の実施の形態に係る印刷システムを構成する印刷装置１１０は、論理チャネル制御部１５０８と、機器データベース部１５０９と、ジョブプリプロセッサ部１５１０と、受信バッファ１５１１と、ＰＤＬトランスレータ部１５１２と、描画バッファ１５１３と、描画部１５１４と、プリンタエンジン部１５１５と、Ｉ／Ｆドライバ部１５１６と、情報管理部１５１７とを備える構成となっている。
【０１０５】
上記各部の機能を詳述すると、Ｉ／Ｆドライバ部１５１６は、ホストコンピュータ１０９から送信されたＰＤＬデータの受信、印刷装置１１０の情報の送信、環境設定の受信を行う。
【０１０６】
論理チャネル制御部１５０８は、Ｉ／Ｆドライバ部１５１６で受信したパケットデータをデータチャネル、管理チャネルの２つの論理チャネルに変換して後段に渡す。これは、ホストコンピュータ１０９から受信したパケットデータが印刷ジョブであればジョブプリプロセッサ部１５１０に渡し、ジョブの制御に使用するジョブ管理コマンドのパケットデータであれば情報管理部１５１７に渡すのである。
【０１０７】
本発明の付加情報解析手段に対応するジョブプリプロセッサ部１５１０は、論理チャネル制御部１５０８からデータチャネルのデータを受取り、ジョブパケットのパケットヘッダ情報（図１６）に書かれているオペレーションコードによって受信バッファ１５１１にＰＤＬデータを転送、或いは機器データベース部１５０９に情報を設定する。図７で後述するが、ジョブパケットがジョブ開始コマンドであれば、ジョブ番号を割り付けて機器データベース部１５０９のジョブ管理テーブルにジョブ番号を設定し、そのジョブ番号に対応するジョブ状態情報４０６を「受信中」に設定する。また、ジョブパケットがＰＤＬのデータコマンドであれば、受信バッファ１５１１にＰＤＬデータとジョブ番号を転送する。また、ジョブ属性パケットであれば、パラメータの内容を機器データベース部１５０９のジョブ管理テーブルに設定する。ジョブプリプロセッサ部１５１０は、あるジョブ番号のすべてのＰＤＬデータを受信バッファ１５１１に格納すると、機器データベース部１５０９のジョブ管理テーブルのジョブ状態情報４０６を「印刷待ち」に更新する。
【０１０８】
受信バッファ１５１１は、ジョブ番号が割り付けられたＰＤＬデータを一時的に保有し、後段の処理の遅延の緩衝材となる。機器データベース部１５０９は、印刷装置１１０の機器のデータベース、及び印刷ジョブを描画するためのジョブ情報を格納しておく。機器データベース部１５０９のジョブ管理テーブルは図４で後述する。
【０１０９】
情報管理部１５１７は、管理チャネルに送られた管理パケットを受取り、管理パケットに書かれているオペレーションコードとデータに応じて機器データベース部１５０９の情報の書き換えや、管理パケットのデータに応じてジョブを制御する。ジョブ制御については、図１９で後述する。
【０１１０】
ＰＤＬトランスレータ部１５１２は、ＰＤＬデータの翻訳処理を行い、描画に適した描画オブジェクトの中間データに変換を行い、描画バッファ１５１３に格納する。なお、ＰＤＬトランスレータ部１５１２は、受信バッファ１５１１から新たなジョブ番号が割り付けられたジョブの解析が始まることを認識すると、機器データベース部１５０９のジョブ管理テーブルのジョブ状態情報４０６を「解析中」に更新する。
【０１１１】
描画バッファ１５１３は、描画オブジェクトを実際に印刷を行うまで一時的に格納しておくものであり、１ページ分の中間データが格納されると描画部１５１４により印刷処理が開始される。
【０１１２】
描画部１５１４は、描画バッファ１５１３に一時格納された描画オブジェクトを実際に描画を行ってビットマップ画像を生成し、ビットマップ画像をプリンタエンジン部１５１５に送信する。描画部１５１４は、新しいジョブ番号のビットマップ画像の生成が始まると、機器データベース部１５０９のジョブ管理テーブルのジョブ状態情報４０６を「印刷中」に更新する。
【０１１３】
プリンタエンジン部１５１５は、描画部１５１４が生成したビットマップ画像を受取り、既知の印刷技術により用紙等のメディアに印刷を行う。
【０１１４】
図１７を用いて、ホストコンピュータ１０９のジョブパケット生成部１５０７におけるジョブパケット作成処理の制御の一例を説明する。
【０１１５】
ホストコンピュータ１０９によって送信するジョブパケットからなる印刷データの基になるデータを、ユーザがホストコンピュータ１０９上のアプリケーション１５０１を用いて作成するまでの処理はここでは省略する。
【０１１６】
アプリケーションから吐き出されたデータがＧＤＩ（Ｇｒａｐｈｉｃａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）等を通じてプリンタドライバ１５０２に送信されると、プリンタドライバ１５０２は、ＧＤＩから入力されたデータに基づいてＰＤＬデータを生成し、送信バッファ１５０３に格納する。送信バッファ１５０３にＰＤＬデータが順次生成されると、ジョブパケット生成部１５０７がジョブパケットの生成処理を開始する。
【０１１７】
ステップＳ１７０１において、ジョブパケット生成部１５０７は、ジョブ開始パケットを生成し、論理チャネル制御部１５０６に送信する。ジョブ開始パケットは、図３におけるパケットヘッダ３０２と印刷開始命令３０３からなる。ここでパケットヘッダ（図１６）のオペレーションコードは、前述したように「０２０１」の値をとる。印刷開始命令３０３に対応する図１６のデータ部には、ジョブパケット生成部１５０７が生成するジョブの識別子が入る。
【０１１８】
ステップＳ１７０２において、ジョブパケット生成部１５０７は、ジョブ属性パケットを生成し、論理チャネル制御部１５０７に送信する。ジョブ属性パケットは、図３におけるパケットヘッダ３０４とパラメータ情報３０５からなる。ここでパケットヘッダ（図１６）のオペレーションコードは、前述したように「０２０２」の値をとる。パラメータ情報３０５に対応する図１６のデータ部には、ジョブパケット生成部１５０７が生成する属性ＩＤと属性値が入る。ジョブ属性には、前述したように、ジョブ名、ジョブオーナ名、ジョブサイズがある。また、ジョブ依頼時刻やジョブページ数やカラーモードなどの属性が入ってもよい。ジョブ名は、ＧＤＩからプリンタドライバ部１５０２が取得でき、またジョブオーナ名は、ＯＳに付属されている関数からユーザのログオン時のユーザ名を取得でき、ジョブサイズは、プリンタドライバ１５０２が生成するＰＤＬを内部計算により求めることができる。
【０１１９】
ステップＳ１７０３において、ジョブパケット生成部１５０７は、送信可能なデータの最大サイズＮを取得する。上記説明したように、本システムでのジョブパケットの最大サイズは、６４Ｋｂｙｔｅである。
【０１２０】
次にステップＳ１７０４において、ジョブパケット生成部１５０７は、送信すべきデータのサイズを取得する。これは送信バッファ１５０３に格納されているＰＤＬデータのサイズを取得するのである。ステップＳ１７０５では、ステップＳ１７０４で取得した送信データ（ＰＤＬデータ）のサイズが最大サイズＮよりも大きいか否かをジョブパケット生成部１５０７が判別する。もし送信データのサイズが最大サイズＮよりも大きいと判断された場合は、ステップＳ１７０６に処理が進み、ジョブパケット生成部１５０７は、送信データであるＰＤＬをサイズＮ（ここでは６４Ｋｂｙｔｅ）の部分とそれ以外の部分（残りの部分）に分割する。
【０１２１】
ステップＳ１７０７において、ジョブパケット生成部１５０７は、分割されたデータのうちサイズがＮの部分のパケットヘッダ情報（図１６）を作成する。この送信データパケットのパケットヘッダ情報のオペレーションコードは、前述しように「０２０４」の値をとる。また、このときパケットヘッダの継続フラグを「１」に立てる。
【０１２２】
そしてステップＳ１７０８で、ジョブパケット生成部１５０７は、パケットヘッダ情報と送信データ（ＰＤＬ）とをつなげて、送信データパケットであるジョブパケットを作成する。ジョブパケットのデータ部には、ＰＤＬデータがそのまま入る。
【０１２３】
ステップＳ１７０９では、ジョブパケット生成部１５０７は、作成したジョブパケットを論理チャネル制御部１５０６に送信する。
【０１２４】
続いてステップＳ１７１０において、ジョブパケット生成部１５０７は、送信していない部分（分割された残りの部分）のＰＤＬデータのサイズを取得し、ステップ１７０５の処理に戻る。
【０１２５】
また、ステップＳ１７０５において、送信データのサイズが最大サイズＮ未満であると判断された場合は、ステップＳ１７１１に処理が進み、ジョブパケット生成部１５０７は、送信データに対するパケットヘッダ情報（図１６）を作成する。この送信データパケットのパケットヘッダ情報のオペレーションコードは、前述したように「０２０４」の値をとる。また、このときパケットヘッダの継続フラグは「０」にしておく。
【０１２６】
そしてステップＳ１７１２で、ジョブパケット生成部１５０７は、パケットヘッダ情報と送信データ（ＰＤＬ）とをつなげて、送信パケットであるジョブパケットを作成する。
【０１２７】
ステップＳ１７１３では、ジョブパケット生成部１５０７は、作成したパケットを論理チャネル制御部１５０６に送信し、処理を終了する。
【０１２８】
ステップＳ１７１４では、ジョブパケット生成部１５０７は、ジョブ終了パケットを生成し、論理チャネル制御部１５０６に送信する。ジョブ終了パケットは、図３におけるパケットヘッダ３０８と印刷終了命令３０９からなる。ここでパケットヘッダ（図１６）のオペレーションコードは、前述したように「０２０５」の値をとる。印刷終了命令３０９に対応する図１６のデータ部には、実際はパラメータやデータは存在しない。
【０１２９】
このようにして、ジョブパケットが生成され、論理チャネル制御部１５０６を介してホストコンピュータ１０９から印刷装置１１０に送信される。
【０１３０】
＜印刷ジョブの管理＞
図４は、本発明のジョブ情報が記憶されているジョブ管理テーブルの概略図である。解析された情報のうち、ジョブとして管理すべき情報は、記憶部１０５内に生成されるジョブ管理テーブルで管理される。ジョブ管理テーブルは機器データベース部１５０９に保管される。
【０１３１】
ジョブ番号４０１は、本実施形態では印刷装置等がジョブを受け取った順番にナンバリングされる。詳細には、印刷装置１１０のジョブプリプロセッサ部１５１０が、受け取った印刷ジョブそれぞれに対して、印刷装置１１０内でユニークになるようにジョブ識別情報であるジョブ番号を割り付け、機器データベース部１５０９に格納する。
【０１３２】
キュー番号４０２は、キュー２０４（受信バッファ１５１１）内で処理される順番が昇順で示される。
【０１３３】
ユーザ名４０３は、ジョブ番号４０１で示されるジョブを投入したユーザ名が格納される。これは、Ｉ／Ｆドライバ部１５１６から印刷ジョブを受け取った論理チャネル制御部１５０８が、印刷ジョブのジョブ属性パケットからジョブオーナ名を取得して、情報管理部１５１７に送信し、情報管理部１５１７は受け取ったジョブオーナ名をユーザ名として、機器データベース部１５０９に格納する。
【０１３４】
ファイル名４０４は、キュー２０４に格納されたファイル名が格納される。これは、Ｉ／Ｆドライバ部１５１６から印刷ジョブを受け取った論理チャネル制御部１５０８が、印刷ジョブのジョブ属性パケットからジョブ名を取得して、情報管理部１５１７に送信し、情報管理部１５１７は受け取ったジョブ名を機器データベース部１５０９に格納する。
【０１３５】
パラメータリストハンドル４０５は、ジョブに設定されるさまざまなパラメータが格納されている図外の情報テーブルを示すものである。これは、Ｉ／Ｆドライバ部１５１６から印刷ジョブを受け取った論理チャネル制御部１５０８が、印刷ジョブのジョブ属性パケットからジョブ属性（ページ数、カラーモード等）を取得して、情報管理部１５１７に送信し、情報管理部１５１７は受け取ったジョブ属性をパラメータとして機器データベース部１５０９に格納する。
【０１３６】
ジョブ状態情報４０６は、ジョブ番号４０１で示されるジョブの現在の状態を示す。これは情報管理部１５１７が、ジョブプリプロセッサ１５１０（受信中）、受信バッファ１５１１（印刷待ち状態）、ＰＤＬトランスレータ部１５１２（処理中：展開中）、描画部１５１４（印刷中）のそれぞれが処理しているジョブ番号４０１を認識し、プリンタエンジン部１５１５に近い方の処理部を優先させてジョブ状態を機器データベース部１５０９に格納する。つまり、ジョブ番号２のジョブがＰＤＬトランスレータ部１５１２と描画部１５１４にある場合は、描画部１５１４の方がプリンタエンジン部１５１５に近いのでジョブ状態情報４０６は「印刷中」となる。
【０１３７】
なお、本ジョブ管理テーブルが示す情報はジョブを管理できるものであれば、特に内容を上記に限定するものではなく、また、本実施形態のキュー番号４０２のようにデータの意味も特に限定するものではない。
【０１３８】
＜印刷ジョブデータの処理・実行＞
図７のフローチャートは、印刷装置１１０における入力データの処理を示すものである。入力データは主に▲１▼印刷ジョブを管理するためのデータ、▲２▼印刷処理されるための文書データ、▲３▼印刷制御のためのデータ、という３種類の属性に分類できる。コマンド解析部２０１はこの観点から入力されたデータを解析する。
【０１３９】
ホストコンピュータ５０２からなにかしらのデータを入力部１０１であるＩ／Ｆドライバ部１５１６が受信すると（Ｓ７０１）、ステップＳ７０２において、論理チャネル制御部１５０８とジョブプリプロセッサ部１５１０は、Ｉ／Ｆドライバ部１５１６で受信したコマンドを順次解析する。
【０１４０】
ステップＳ７０３では、論理チャネル制御部１５０８は、解析されたコマンドがジョブ終了パケットかチェックし、ジョブ終了パケットである場合はステップＳ７０８に遷移する。
【０１４１】
ジョブ終了パケットでない場合は、ステップＳ７０４において、論理チャネル制御部１５０８は、解析されたコマンドがジョブ開始パケットかチェックし、ジョブの開始コマンドである場合はステップＳ７１１に遷移する。
【０１４２】
ジョブ開始パケットでない場合は、ステップＳ７０５において、論理チャネル制御部１５０８は、解析されたコマンドがパラメータの設定コマンドであるジョブ属性パケットかチェックし、ジョブ属性パケットである場合はステップＳ７１２に遷移する。
【０１４３】
ジョブ属性パケットでない場合は、ステップＳ７０６において、論理チャネル制御部１５０８は、解析されたコマンドがデータコマンドである送信データパケットかチェックし、送信データパケットである場合はステップＳ７１３に遷移する。
【０１４４】
送信データパケットであい場合は、ステップＳ７０７において、論理チャネル制御部１５０８は、解析されたコマンドがジョブの制御コマンドかチェックし、ジョブの制御コマンドである場合はステップＳ７１４に遷移する。ジョブの制御コマンドでない場合は、予想されないデータが入力されたことになるので処理をステップＳ７０１に戻す。
【０１４５】
ステップＳ７０８では、論理チャネル制御部１５０８は、ジョブ終了コマンドを受け、すでに受信している一連の印刷ジョブデータをジョブプリプロセッサ部１５１０に転送する。なお、論理チャネル制御部１５０８からジョブプリプロセッサ部１５１０にデータ転送するタイミングは、本実施例のごとく全てのデータが揃ってから行われる必要はなく、特定のサイズ毎に順次転送されても良く、特に限定するものではない。例えば、後述するステップＳ７１１の次に続く処理であってもよい。
【０１４６】
続いてステップＳ７０９では、ジョブプリプロセッサ部１５１０で解析されたデータを受信バッファ１５１１に蓄積するステップである。なお、ジョブプリプロセッサ部１５１０から受信バッファ１５１１にデータ転送するタイミングも特に限定するものではない。
【０１４７】
ステップＳ７１０では、ジョブプリプロセッサ部１５１０は、受信バッファ１５１１にデータを蓄積終了後、図４のキュー番号４０２に適当な番号を機器データベース部１５０９内のジョブ管理テーブルに書き込む。
【０１４８】
ステップＳ７１１では、ジョブプリプロセッサ部１５１０は、論理チャネル制御部１５０８からジョブ開始パケットを受け、図４のジョブ管理テーブルにジョブ番号４０１を機器データベース部１５０９内のジョブ管理テーブルに書き込み、続く一連のコマンド受信の準備を行う。
【０１４９】
ステップＳ７１２では、ジョブプリプロセッサ部１５１０は、論理チャネル制御部１５０８からジョブ属性パケットを受け、図４の４０３〜４０５に所望のデータを機器データベース部１５０９内のジョブ管理テーブルに追加するステップである。
【０１５０】
ステップＳ７１３では、ジョブプリプロセッサ部１５１０は、論理チャネル制御部１５０８から送信データパケットを受け、送信データパケット内のＰＤＬデータを受信バッファ１５１１に蓄積する。ここでは、送信データパケットのパケットヘッダ情報に含まれるパラメータ長の分だけ、解析せずにそのまま受信バッファ１５１１に蓄積する。よって、従来のようにＰＤＬデータの終わりを探すために、常に印刷ジョブデータを解析する必要がなくなり、処理が早くなるという効果がある。
【０１５１】
ステップＳ７１４では、論理チャネル制御部１５８０は、ジョブ制御コマンドを情報管理部１５１７に渡し、情報管理部１５１７は、受信したジョブ制御コマンドに対応する各種ジョブを機器データベース部１５０９のジョブ管理テーブルから検索し、所望のジョブ制御を行う。このジョブ制御については図１９で後述する。
【０１５２】
このようにして印刷装置１１０は入力データの処理を行う。また、通新媒体１５１８は前述したようにマルチチャネルの通信が行えるため、印刷データのジョブパケットを受信中にも、ジョブ制御コマンドのジョブパケットを受信することが可能であり、例えば図１９で後述するようなキャンセル制御を受信中のジョブに対して行うことができるという効果が得られる。
【０１５３】
図１８は、本発明の印刷制御装置の一例である印刷装置の印刷時の概略フローである。
【０１５４】
ステップＳ１８０１において、情報管理部１５１７は、機器データベース部１５０９内のジョブ管理テーブルのキュー番号４０２に有効なデータがあるかチェックし、有効なデータが存在する場合は、印刷に必要なデータが図４ジョブ管理テーブル内に揃っていると認識しステップＳ１８０２に遷移する。キュー番号がついているジョブは、前述したようにジョブの認識が終わっているものであり、印刷処理が始めることが可能であることを示している。
【０１５５】
ステップＳ１８０２では、印刷処理を開始する。具体的には、情報管理部１５１７がＰＤＬトランスレータ部１５１２に対して、印刷すべきジョブのジョブ番号と開始命令を送信する。ＰＤＬトランスレータ部１５１２は、指示されたジョブ番号のＰＤＬデータを受信バッファ１５１１から取得し、ＰＤＬ解析を行い中間データに変換し描画バッファ１５１３に格納する。これに伴い、情報管理部１５１７もしくはＰＤＬトランスレータ部１５１２は、機器データベース部１５０９のジョブ管理テーブルの該当するジョブ番号に対応するジョブ状態情報４０６を「印刷待ち」から「解析中」に更新する。
【０１５６】
続いてステップＳ１８０３では、描画バッファ１５１３に１ページ分の中間データが溜まった後、描画部１５１４は一連の印刷処理を開始する。つまり、描画バッファ１５１３に格納された中間データを取得し、ラスタライズ処理を行いビットマップデータを生成し、プリンタエンジン部１５１５に出力する。一連の印刷処理の開始時に、情報管理部１５１７もしくは描画部１５１４は、機器データベース部１５０９のジョブ管理テーブルの該当するジョブ番号に対応するジョブ状態情報４０６を「解析中」から「印刷中」に更新する。また、１ページの印刷が終了したときに、情報管理部１５１７もしくは描画部１５１４は、機器データベース部１５０９のジョブ管理テーブルの該当するジョブ番号に対応する残りページ数情報（図示省略）を１つ少なくする。このようにして１ページ分の印刷処理が行われる。
【０１５７】
なお、印刷に必要なデータが揃ったことを識別する手段は、特に本実施例の手段に限定されるものではない。
【０１５８】
次にステップＳ１８０４では、情報管理部１５１７は、印刷ジョブの全ページの印刷が終了したかチェックする。終了していない場合はステップＳ１８０２に遷移し、続くページの印刷処理を継続して行う。
【０１５９】
なお、ステップＳ１８０２からステップＳ１８０４のごとく、印刷に必要なデータの転送手段は特に１ページ単位であることに限定するものではない。
【０１６０】
ステップＳ１８０５では、情報管理部１５１７は、印刷処理を行った印刷ジョブのジョブ情報を機器データベース部１５０９内のジョブ管理テーブルから削除する。なお、本ステップで削除したジョブ情報は一時的に別の領域に記憶されているものとする。
【０１６１】
ステップＳ１８０６では、ステップＳ１８０５において一時的に記憶されたジョブ情報を元に、ステップＳ１８０２で得たデータ領域の解放を行う。ここでいうデータ領域とは、受信バッファ１５１１、描画バッファ１５１３における該当印刷ジョブのデータ（ＰＤＬデータと中間データ）の占める領域である。
【０１６２】
図１９は、本発明の印刷制御装置の一例である印刷装置におけるジョブ制御を示すフローチャートである。図７のステップＳ７１４の処理を詳細に説明したものである。この処理は、ステップＳ７０７において論理チャネル制御部１５０８がジョブ制御コマンドを受信した際に、ジョブ制御コマンドを情報管理部１５１７に渡すことにより行われる。
【０１６３】
ジョブ制御コマンドは、ホストコンピュータ１０９のユーティリティ部１５０５において生成される。ジョブ制御コマンドには、印刷装置内のジョブリストを要求するステータス取得要求コマンド、印刷ジョブの中止を要求するジョブキャンセルコマンド、印刷ジョブの一時中断を要求するジョブ中断コマンド、中断されている印刷ジョブの再開を要求するジョブ再開コマンド、印刷ジョブのパラメータの変更を要求するパラメータ設定変更コマンド等がある。それぞれのジョブ制御コマンドもまた、図１６で前述したようにジョブパケット形式になっており、種類により属性が異なっている。
【０１６４】
ステップＳ１９０１において、情報管理部１５１７は、受信したジョブ制御コマンドがステータス取得要求コマンドであるかをジョブパケット内の属性により判断する。ステータス取得要求であると判断された場合は、ステップＳ１９０２に処理を進める。
【０１６５】
ステップＳ１９０２では、情報管理部１５１７は、機器データベース部１５０９に格納されているジョブ管理テーブルを取得する。続いてステップＳ１９０３では、取得したジョブ管理テーブルのそれぞれのジョブの情報を論理チャネル制御部１５０８経由でＩ／Ｆドライバ部１５１６に渡す。Ｉ／Ｆドライバ部１５１６は、受け取った情報をパケット方式に変換し、ＩＥＥＥ１２８４からなる通信媒体１５１８を介してホストコンピュータ１０９に返送する。この返送により、ホストコンピュータ１０９は、印刷装置１１０内でユニークに割り付けられたジョブ番号を認識することができる。
【０１６６】
図２０にホストコンピュータ１０９の図示省略した表示部に表示される印刷装置１１０のステータスモニタの一例を示す。「プリンタＪＯＢ内リスト」で示されるジョブが、現在印刷装置１１０内で処理されているジョブである。従来は、ＰＤＬ解析が終了したジョブしか見ることができなかったが、本発明により受信中のジョブのステータスモニタも認識することが可能となる。
【０１６７】
図２０のユーティリティー画面において、ユーザがあるジョブに対しジョブ制御（キャンセル、中断、再開、設定変更等）を行う場合は、図２１に示すように、ユーティリティー画面上で図示省略したマウスなどのポインティングデバイスでドキュメントを選択することにより、ジョブ制御ウィンドウ２１０１が新たに表示され、所望のジョブ制御を選択することができる。ここで選択されたジョブ制御に対応するジョブ制御コマンドがユーティリティ部１５０５により生成され、指定されたジョブ番号とともに論理チャネル制御部１５０６でジョブパケット化されて印刷装置１１０に送信されるのである。印刷装置１１０内でユニークに割り付けられたジョブ番号は、ステータス要求の返送により取得できるので、ジョブ制御が可能となるのである。
【０１６８】
ステップＳ１９０１で、ステータス取得要求でないと判断された場合は、ステップＳ１９０４に処理を進める。ステップＳ１９０４では、情報管理部１５１７は、ジョブ制御コマンドがジョブキャンセルコマンドであるかをジョブパケット内の属性により判断する。ジョブキャンセルコマンドであると判断された場合は、ステップＳ１９０５に処理を進める。
【０１６９】
ステップＳ１９０５では、情報管理部１５１７は、ジョブのキャンセル権限があるかを判断し、その後ジョブのキャンセルを行う。まず情報管理部１５１７は、ホストコンピュータ１０９から送信されたジョブキャンセル要求であるジョブパケット内のジョブ番号を取得し、そのジョブ番号のユーザ名と、ジョブキャンセルコマンドを送信したユーザ名をジョブパケットの属性ＩＤからして同一であるか判断する。同一でない場合は、キャンセル権限がないので、キャンセルせずにステップＳ１９０２〜１９０３の処理を飛ばす。同一である場合は、キャンセル権限があるので、そのジョブに対応する機器データベース部１５０９内のジョブ管理テーブルにおけるジョブ状態情報を取得する。情報管理部１５１７は、ジョブ状態情報に基づいてジョブキャンセルを制御する。つまり、ジョブ状態情報４０６が「印刷中」である場合は、ジョブプリプロセッサ４個所のジョブキャンセルを行う。
【０１７０】
まず、ジョブプリプロセッサ部１５１０に対し、ジョブ番号とジョブキャンセル指示を出す。ジョブプリプロセッサ部１５１０は、指示されたジョブ番号のジョブパケットを以後は受信しても受信バッファ１５１１には送信せずに破棄する。次に、情報管理部１５１７は、受信バッファ１５１１内の該当する印刷ジョブを無効にするよう制御する。受信バッファ１５１１では、それぞれのＰＤＬデータとともにジョブプリプロセッサ１５１０で割り付けられたジョブ番号を管理しており、どのＰＤＬデータがどのジョブ番号なのか常に把握できるようになっており、情報管理部１５１７が容易にキャンセルが必要なジョブがどれであるは認識できるようになっている。次に、情報管理部１５１７は、ＰＤＬトランスレータ部１５１２にジョブ番号とキャンセル命令とを送信する。ＰＤＬトランスレータ部１５１２は、受け取ったジョブ番号に対応するジョブを解析中であれば、キャンセル命令に従ってＰＤＬ解析を中止する。受け取ったジョブ番号と異なるジョブを解析しているのであれば命令を無視する。次に、情報管理部１５１７は、描画部１５１４にジョブ番号とキャンセル命令とを送信する。描画部１５１４は、受け取ったジョブ番号に対応するジョブを描画中であれば、キャンセル命令に従って中間データの展開処理を中止する。受け取ったジョブ番号と異なる中間データを展開中は、指定されたジョブ番号の中間データを受け取るまで処理を続ける。
【０１７１】
ジョブ状態情報が「処理中」であれば、情報管理部１５１７は、ジョブキャンセル命令をＰＤＬトランスレータ部１５１２に送った後はステップＳ１９０６に移る。ジョブ状態情報が「印刷待ち」であれば、情報管理部１５１７は、受信バッファ１５１１におけるジョブキャンセル処理を終えた後はステップＳ１９０６に移る。
【０１７２】
このようにして、ジョブの状態に応じて印刷装置１１０内のジョブキャンセル制御が行われる。また、ジョブのキャンセルは、ジョブが入力されるＩ／Ｆドライバ部１５１６に近い方、つまりデータの流れとして上流の方から止めていく。これは、プリンタエンジン部に近い方からキャンセルすると、キャンセルが移る時にデータが流れてしまい削除しきれないデータができてしまうからである。上流から削除することにより完全な制御が可能となる。
【０１７３】
続いて、ステップＳ１９０６では、情報管理部１５１７は、機器データベース部１５０９内のジョブ管理テーブルにおけるキャンセルした印刷ジョブの情報すべてを削除する。
【０１７４】
ステップＳ１９０４で、ジョブキャンセルでないと判断された場合は、ステップＳ１９０７に処理を進める。ステップＳ１９０７では、情報管理部１５１７は、ジョブ制御コマンドがジョブ中断コマンドであるかをジョブパケット内の属性により判断する。ジョブ中断コマンドであると判断された場合は、ステップＳ１９０８に処理を進める。
【０１７５】
ステップＳ１９０８では、情報管理部１５１７は、ジョブ中断制御を行う。ジョブの中断制御と権限判断は、前述したジョブキャンセル制御と流れは同じであり、キャンセル（削除）の替わりに一時待避を行う。このとき待避するデータは、受信バッファ１５１１に存在するＰＤＬデータだけであり、中間データは削除する。
【０１７６】
続いて、ステップＳ１９０９では、情報管理部１５１７は、機器データベース部１５０９内のジョブ管理テーブルにおける中断した印刷ジョブの状態情報４０６を「中断」に更新する。
【０１７７】
ステップＳ１９０７で、ジョブ中断でないと判断された場合は、ステップＳ１９０１０に処理を進める。ステップＳ１９１０では、情報管理部１５１７は、ジョブ制御コマンドがジョブ再開コマンドであるかをジョブパケット内の属性により判断する。ジョブ再開コマンドであると判断された場合は、ステップＳ１９１１に処理を進める。
【０１７８】
ステップＳ１９１１では、情報管理部１５１７は、ジョブ再開の権限判断とジョブ再開制御を行う。ジョブ再開の権限判断は、前述したジョブキャンセル判断と同じようにジョブ番号に対応したジョブ管理テーブルのユーザ名とジョブ再開のジョブパケットの属性ＩＤにより示されるユーザ名とを比較することにより判断する。ジョブの再開制御は、前述したジョブ中断制御により中断されているジョブを通常の印刷ルーチンに戻すことにより行う。つまりハードディスク等の不揮発性記憶媒体に一時待避された印刷ジョブのＰＤＬデータを受信バッファ１５１１にジョブ番号とともに戻すだけである。これにより印刷ジョブの再開を行うことができる。
【０１７９】
続いて、ステップＳ１９１２では、情報管理部１５１７は、機器データベース部１５０９内のジョブ管理テーブルにおける再開した印刷ジョブの状態情報４０６を「印刷待ち」に更新する。
【０１８０】
ステップＳ１９１０で、ジョブ再開でないと判断された場合は、ステップＳ１９１３に処理を進める。ステップＳ１９１３では、情報管理部１５１７は、ジョブ制御コマンドがパラメータ設定変更コマンドであるかをジョブパケット内の属性により判断する。パラメータ設定変更コマンドであると判断された場合は、ステップＳ１９１４に処理を進める。
【０１８１】
ステップＳ１９１４では、情報管理部１５１７は、パラメータ設定変更の権限確認とパラメータ設定変更制御を行う。パラメータ設定変更の権限確認もジョブ再開時の権限確認と同様に行う。情報管理部１５１７は、取得したパラメータ設定変更コマンドに基づいて、機器データベース部１５０９内のジョブ管理テーブルのパラメータリストハンドル４０５を変更する。パラメータリストハンドル４０５は、印刷部数、カラーモードなどである。この値を変更することにより、実際の印刷形態や枚数が変更される。
【０１８２】
ここで本発明の印刷制御装置の特徴的構成について説明する。
【０１８３】
印刷ジョブを解析して印刷する印刷制御装置（印刷装置１１０に相当）は、印刷管理データと印刷データとが分けられている印刷ジョブ（図３）を入力する入力手段（Ｉ／Ｄドライバ部１５１６に相当）と、前記入力手段により入力された印刷ジョブから、前記印刷管理データを解析する解析手段（ジョブプリプロセッサ部１５１０に相当）と、前記解析手段の解析結果に基づき、前記印刷ジョブを管理するための印刷管理データを格納する管理情報記憶手段（機器データベース部１５０９に相当）とを備え、前記解析手段により前記印刷ジョブの印刷データが解析せずとも、前記印刷管理データは前記管理情報記憶手段に格納可能（図７のステップＳ７１３の説明に相当）である。
【０１８４】
また、前記解析手段は、新しい印刷ジョブの解析が始まると、該印刷ジョブにジョブ識別情報を割り付け、前記管理情報記憶手段に作成されるジョブ管理テーブルにジョブ識別情報を設定し、前記印刷管理データを格納する（図７のステップＳ７１１に相当）。
【０１８５】
また、前記印刷ジョブのうち印刷実行にかかる印刷データ（ＰＤＬデータに相当）を中間データ（描画コマンドに相当）に変換するためのデータ変換手段（ＰＤＬトランスレータ部１５１２に相当）と、前記データ変換手段により変換された中間データを格納する中間データ記憶手段（描画バッファ１５１３に相当）と、前記中間データ記憶手段に格納されている中間データから印刷すべきイメージデータを生成し、該イメージデータを印刷部（プリンタエンジン部１５１５に相当）に出力する描画手段（描画部１５１４に相当）を更に備えている。
【０１８６】
また、前記印刷制御装置は、記録媒体にイメージデータを印刷する印刷手段（プリンタエンジン部１５１５）を含む印刷部を備えている。
【０１８７】
また、前記入力手段によりジョブ制御データを入力した場合に、該ジョブ制御データにより指定される印刷ジョブと制御命令に基づいて、前記管理情報記憶手段に格納されている印刷管理データにより特定される印刷ジョブに、該制御内容に応じた制御を行うジョブ制御手段（情報管理部１５１７もしくはＣＰＵ１０２に相当）を更に備える。
【０１８８】
また、前記印刷ジョブは、前記印刷管理データを識別するための識別情報（パケットヘッダ３０４に相当、詳細は図１６）と前記印刷管理情報（ジョブ属性パケットのパラメータ情報３０５に相当）とを含むジョブパケット（図１６）と、前記印刷データを識別するための識別情報（パケットヘッダ３０６に相当）と前記印刷データ（印刷データ３０７、ＰＤＬデータに相当）とを含むジョブパケット（図１６）とを含んでおり、前記ジョブ制御データは、前記制御命令を識別するための識別情報と前記制御命令とを含むジョブパケットを含んでいる（図１９の説明に相当）。
【０１８９】
また、前記入力手段により入力された入力データに含まれる識別情報を認識し、印刷ジョブと認識された入力データは前記解析手段に送信し、ジョブ制御データと認識された入力データは前記ジョブ制御手段に送信するデータ属性認識手段（論理チャネル制御部１５０８に相当）を更に有する。
【０１９０】
また、前記入力手段は双方向通信可能（本実施例におけるＩＥＥＥ１２８４に相当）であり、入力されたジョブ制御データが前記印刷制御装置内の印刷ジョブのリストを要求している場合（図１９のステップＳ１９０１のＹＥＳに相当）は、前記ジョブ制御手段は、前記管理情報記憶手段に格納されている印刷ジョブのジョブ管理データにより設定されるジョブ管理テーブルのジョブ情報を返送するよう制御する（ステップＳ１９０２〜１９０３の処理に相当）。
【０１９１】
また、前記識別情報は、前記識別情報に続くデータのデータサイズを示すサイズ情報を含んでいる（図１６のパラメータ長に相当）。
【０１９２】
また、前記解析手段は、印刷ジョブに含まれるジョブパケットの識別データを解析し、解析中のジョブパケットが印刷データであると判断された場合は、該ジョブパケットに含まれるサイズ情報で示されるサイズ分だけデータを読み飛ばす（図７のステップＳ７１３の説明に相当）。
【０１９３】
また、前記入力されたジョブ制御データが印刷中止を示している場合（ステップＳ１９０４のＹＥＳに相当）は、前記ジョブ制御手段は、ジョブ制御データに含まれるジョブ識別番号で特定される印刷ジョブの印刷処理を中止するよう制御する（ステップＳ１９０５の処理に相当）。
【０１９４】
また、前記入力されたジョブ制御データが印刷中断もしくは再開を示している場合（ステップＳ１９０７のＹＥＳに相当）は、前記ジョブ制御手段は、ジョブ制御データに含まれるジョブ識別番号で特定される印刷ジョブの印刷処理を中断もしくは再開するよう制御する（ステップＳ１９０８の処理に相当）。
【０１９５】
また、前記ジョブ制御手段は、ジョブの制御を前記解析手段、データ変換手段、描画手段の順で行う（ステップＳ１９０５、Ｓ１９０８の説明に相当）。
【０１９６】
＜第１の実施形態の効果＞
本発明により、印刷装置の受信データに付加情報を付加し、付加情報内に付加情報に続くパラメータやデータのデータサイズを収めているので、付加情報の解析により印刷ジョブが認識可能となり、更には印刷ジョブの全体的な負荷ボリュームの把握がきるようになった。
【０１９７】
更にデータ受信時に、前記付加情報を解析する付加情報解析部と、前記付加情報解析部で解析したジョブ情報を保持するための格納手段とを備えることにより、データ受信直後、或いはデータ受信に続く一連のシーケンス上においても、コマンド情報別のジョブの管理と、データ変換等の実行管理とを分離して行うことが可能となった。
【０１９８】
また、本発明の付加情報解析部の処理は、従来技術に示したＰＤＬ等の出力データそのものの解析処理と比較し格段にシンプルで処理自身の負担が少ないものになる。
【０１９９】
（第２の実施形態）
本発明の第２の実施の形態では、前述した第１の実施の形態のシステムを用いて更にキューに蓄積されているデータの処理順序をユーザに意図に応じて変更可能にするための制御を説明する。
【０２００】
＜優先順位付け＞
ホストコンピュータ１０９のプリンタドライバ部１５０２でユーザの設定した優先度情報をＰＤＬデータとともに送信バッファ１５０３に格納されている場合は、ジョブパケット生成部１５０７は、ジョブパケット内のパラメータ情報にジョブの優先順位を示す優先順位情報を付加し、印刷装置１１０に送信する。印刷装置１１０では、受信した印刷ジョブをキュー２０４に転送する際、キュー番号４０２の再割り当てを行い、指定された優先順位にしたがった順に処理する。優先順位は、ホストコンピュータ１０９から送信された優先度情報「１、２、３、…」や「Ａ，Ｂ，Ｃ」等によりランク付けされている。
【０２０１】
また、印刷装置１１０内で付ける場合は、印刷時刻の指定により前後関係を取り決める場合等がある。
【０２０２】
新しい印刷ジョブが受信されると、受信された印刷ジョブは、ジョブプリプロセッサ部１５１０により機器データベース部１５０９のジョブ管理テーブルに一旦一番優先順位の低いランクに登録された後、ジョブプリプロセッサ部１５１０が優先順位を示すコマンド情報を参照して、キュー番号を並び替える。同一の優先順位のジョブが投入された場合は、投入された順にキュー番号４０２を割り当て処理し、時間で判断する場合は印刷指定時刻の早い方が優先順が高いことになる。同じ時刻が指定された場合は同様にジョブ投入の早い方が優先順位は高い。
【０２０３】
図９に優先順位として、印刷時刻がパラメータ情報として設定された印刷ジョブデータの例を示す。時刻情報を時（Ｈ）：分（Ｍ）：秒（Ｓ）の形式で表示する。本例において先に入力された印刷ジョブＣの印刷指定時刻は１２：００：００であり、後に入力された印刷ジョブＤの印刷指定時刻は１１：５５：００であるので、優先順位は印刷ジョブＤの方が印刷ジョブＣより高い（印刷は先に実行される）ことになる。
【０２０４】
ジョブ管理テーブルに登録された夫々の印刷ジョブは、優先順位の情報に基づき中央制御部１０２の管理下で並び替えられる。
【０２０５】
優先順位が付加されたジョブ管理テーブルを図２２に示す。図４で説明したものは同じ符号を付けてある。ここで、優先順位２２０１は、ホストコンピュータ１０９で割り付けられたものである。この優先順位は、第１の実施の形態の図１９で説明したように、ジョブ制御コマンドにより変更することが可能である。優先順位が変更されると、情報管理部１５１７によりキュー番号が再び並び直される。
【０２０６】
＜中断、再開＞
第１の実施の形態で説明したように、ホストコンピュータ１０９もしくは操作部１０３からの入力に従い、中央制御部１０２が中断指示を受け付けると、その指示は印刷処理部１０４に送られ、印刷処理部１０４は印刷の再開に必要な全てのデータを記憶部１０５に保存する。
【０２０７】
それから、印刷処理部１０４は中断指示された印刷ジョブをジョブ管理テーブルから削除する。その後、ジョブ管理テーブルの優先順位を並び替える。印刷処理は並び替えられた後の印刷ジョブの優先順位に基づいて行われる。
【０２０８】
印刷再開の指示を受けると、記憶部１０５に保存されている中断印刷ジョブの再開に必要な情報を再度、ジョブ管理テーブルに復帰させ、中断指示のかけられた印刷ジョブの印刷処理を再開する。
【０２０９】
印刷ジョブの中断、再開における印刷ジョブの実行順位は、ジョブ管理テーブルに登録されたジョブの優先順位を基礎として、削除若しくは割り込みによるリナンバリングが行われる。リナンバリングは、中央制御部１０２の管理下で並び替えられる。
【０２１０】
＜ホストコンピュータ／ユーザによる限定＞
第１の実施の形態で説明したように、ジョブパケットと属性ＩＤを用いることにより、ホストコンピュータ（クライアント）の識別情報は印刷情報のジョブ属性パケットに付加され、機器データベース部１５０９内のジョブ管理テーブルでクライアント情報は管理される。
【０２１１】
本第２の実施の形態では、特定のＰＣから受信されＰＤＬ解析されるジョブを別のＰＣから削除、中断、再開する制御について説明する。
【０２１２】
また、ジョブ管理テーブルで管理されるクライアント情報に基づき、受信中、或いはＰＤＬ解析中を含む処理中のジョブの削除、中断、再開を制限することも可能なシステムを説明する。
【０２１３】
さらに、ユーザ識別情報は印刷情報に付加され、ジョブ管理テーブルでユーザ識別情報は管理される。
【０２１４】
ここで、特定のユーザから受信、或いはＰＤＬ解析中を含む処理中のジョブは別のＰＣから削除、中断、再開等が可能なシステムを説明する。
【０２１５】
また、ジョブ管理テーブルで管理されるユーザ情報に基づき、受信中、或いはＰＤＬ解析中を含む処理中のジョブの削除、中断、再開を制限することも可能なシステムを説明する。
【０２１６】
上記のようなシステムを実現するためには、以下の仕組みが必要となる。
【０２１７】
まず、ホストコンピュータ１０９のジョブパケット生成部１５０７において（図１７のステップＳ１７０２）ジョブ属性パケットを生成する際に、第１の実施の形態で説明したユーザ名（ユーザ情報）だけでなく、ホストコンピュータ１０９の機器を特定するクライアント情報を付加することになる。クライアント情報は、ＯＳに設定されているコンピュータ名を使用する。
【０２１８】
次に、印刷装置１１０のジョブプリプロセッサ部１５１０がジョブ属性パケットのパラメータを機器データベース部１５０９に設定するときに、上述したクライアント情報を一緒に設定するのである。
【０２１９】
更に、印刷装置１１０の機器データベース部１５０９に予め下記のような権限リストを管理者などにより図示省略した印刷装置の操作部から入力作成することにより用意しておく。権限リストとは、ユーザ情報「Ａ」からの印刷ジョブは、ユーザ情報「Ａ」のユーザがキャンセル可能であり、ユーザ情報「Ａ，Ｂ，Ｃ」のユーザが中断、再開の制御が可能であり、ユーザ情報「Ａ、Ｂ」のユーザがパラメータ設定変更可能であるというテーブルである。また、権限リストには、ユーザ情報と同様にクライアント情報についても設定されていればよい。本第２の実施の形態では、権限リストが操作部から設定入力されるとしたが、これに限られるものではなく、管理者などの特定のユーザが設定した権限リストを外部から受信し、機器データベース部１５０９に格納しておいてもよい。
【０２２０】
図１９のステップＳ１９０５、Ｓ１９０８、Ｓ１９１１、Ｓ１９１４における権限判断の際に、情報管理部１５１７が上記権限リストを参照することにより判断し、一致していた場合にのみジョブ制御を実行する。
【０２２１】
このように、権限リストを設けることにより、自分のジョブ以外でもジョブ制御が可能となり、かつ無秩序なジョブ制御が行われないようにすることができる。
【０２２２】
また、権限リストで、ユーザ情報やクライアント情報に対して、ランクを設けることも考えられる。例えばキャンセルが「Ａ」中断、再開が「Ｃ」、パラメータ設定変更が「Ｂ」とすると、ランクが「Ａ」に設定されているユーザもしくはクライアントは、すべてのジョブに対して、キャンセル、中断、再開、設定変更すべてのジョブ制御が可能となり、ランクが「Ｂ」のユーザは、中断、再開、設定変更のジョブ制御が可能となり、ランクが「Ｃ」のユーザは、中断、再開のジョブ制御が可能となり、ランクが「Ｄ」のユーザは、自分のジョブ以外はジョブ制御はできなくなる。
【０２２３】
このように権限にランクを設けることにより、より詳細なジョブ制御の権限割り当てが可能となる。
【０２２４】
また、ホストコンピュータ１０９でジョブを送信する際に、予めそのジョブに対してジョブ制御を行うことができるユーザもしくはクライアントを設定することも考えられる。
【０２２５】
つまり、プリンタドライバ部１５０２において、ユーザがジョブ制御を許可するクライアント情報もしくはユーザ情報を設定し、その情報をパケットヘッダ生成部１５０７がジョブパケットに設定する。それに応じて、データを受信する印刷装置１１０では、ジョブプリプロセッサ部１５１０がジョブ制御を許可するクライアント情報とユーザ情報を機器データベース部１５０９に格納しておき、情報管理部１５１７がジョブ制御の権限判断をするときにジョブ制御依頼をしたクライアントもしくはユーザと、機器データベース部１５１０に設定されているクライアント情報もしくはユーザ情報と一致するかを判断して制御すればよい。
【０２２６】
このように、ジョブ依頼者が該ジョブに対しジョブ制御権限対象者を設定できるので、制御対象となるジョブを送信したユーザの意志を反映することが可能となり、より詳細な設定を行ったジョブ制御を実行することができる。
【０２２７】
ここで本発明の印刷制御装置の特徴的構成について説明する。
【０２２８】
本第１の実施の形態で説明した印刷制御装置において、前記管理情報記憶手段は、更にジョブ制御を行う権限を示す権限情報（権限リストに相当）を格納しており、前記ジョブ制御手段は、ジョブの制御を前記権限情報に基づいて制御する。
【０２２９】
また、前記権限情報は、前記印刷制御装置の操作部（操作部１０３）から設定される。
【０２３０】
また、前記権限情報は、前記入力手段を介して外部（ホストコンピュータ１０９）から入力される。
【０２３１】
また、前記印刷管理データは優先度情報を含んでおり、該優先度情報に基づいて印刷処理される順序が並び替えられる。
【０２３２】
また、上記の仕組みからなる、印刷制御方法もしくは印刷制御プログラムが格納された記憶媒体である。
【０２３３】
また、ホストコンピュータは、印刷データを生成する生成手段と、印刷管理データと該印刷管理データを識別するための識別情報とを含むジョブパケットと、印刷データと該印刷データを識別するための識別情報とを含むジョブパケットとから印刷ジョブを生成するジョブパケット生成部とを有している。
【０２３４】
＜第２の実施形態の効果＞
コマンド情報として、印刷ジョブの優先順位を付加することにより、個々の印刷ジョブに設定された優先順位がコマンド解析部により解析され、ジョブ管理テーブルで優先順位は管理されることが可能となる。従って、印刷ジョブのうち、優先順位の高いジョブは、優先順位の低いジョブを追い抜き、先行した印刷処理が進められる。印刷ジョブの中断、再開における印刷ジョブの実行順位は、ジョブ管理テーブルに登録されたジョブの優先順位を基礎として、削除若しくは割り込みによるリナンバリングが行われる。
【０２３５】
優先順位の高い重要な書類を印刷する場合でも先行する印刷ジョブが終了するまで待たなければならないということは解消する。
【０２３６】
また、ジョブ制御を実行できるクライアントやユーザを制限することで、混乱した事態を防ぎ、より秩序あるジョブ制御を本印刷制御装置で行うことができる。
【０２３７】
（他の実施形態）
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０２３８】
また、複数の機能（コピー、プリント、ＦＡＸ）を持っている複合機に適用してもよい。
【０２３９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、図２３に示すようにシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２４０】
プログラムとは、本実施例で説明した、図７、図１７〜１９のフローチャートの制御をプログラムコード化したものである。
【０２４１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４２】
図２４は、本発明の制御プログラムが記憶部１０５に含まれるＲＡＭにロードされ実行可能となった状態のメモリマップを示す。
【０２４３】
本実施例では、記憶媒体から本制御プログラム及び関連データを直接ＲＡＭにロードして実行させる例を示したが、この他にＦＤ等の外部記憶媒体から本制御プログラム及び関連データを一旦記憶部１０５内の不揮発性記憶媒体であるハードディスクに格納（インストール）しておき、本データ作成・送信処理制御プログラムを動作させる際にハードディスクからＲＡＭにロードするようにしても良い。
【０２４４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０２４５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４７】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図１０のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。
【０２４８】
すなわち、少なくとも「コマンド解析モジュール１００１」、「イメージデータ変換モジュール１００２」および「印刷処理モジュール１００３」、「データ入力モジュール１００４」の各モジュールのプログラムコードを記憶媒体に格納すればよい。
【０２４９】
本実施形態において、コマンド解析モジュール１００１は、実施例でいうジョブプリプロセッサ部であるコマンド解析手段として機能し、記憶部１０５内の機器データベース部に生成されるジョブ管理テーブル（図４）は、第一のデータ格納手段として機能する。さらに、印刷実行にかかるデータを記憶するための記憶部１０５に生成された受信バッファ２０２は第二のデータ格納手段として機能する。
【０２５０】
イメージデータ変換モジュール１００２は、印刷ジョブデータのうち、印刷実行にかかるデータをイメージデータに変換するためのＰＤＬトランスレータ部であるデータ変換手段として機能する。
【０２５１】
印刷処理モジュール１００３は、印刷制御コマンドに基づき、印刷ジョブの実行処理を行う描画部として機能する。
【０２５２】
さらに、データ入力モジュール１００４は、前記印刷ジョブを管理するためのデータと、前記印刷ジョブを管理するためのデータを識別するためのコマンド情報と、前記印刷実行にかかるデータと、前記印刷実行にかかるデータを識別するためのコマンド情報と、前記印刷の制御指示のためのデータと、前記制御指示にためのデータを識別するためのコマンド情報と、から構成される印刷ジョブデータ等を受信する入力手段（Ｉ／Ｆドライバ部）として機能する。
【０２５３】
印刷装置としてレーザビームプリンタを用いても良い。図１１はこの場合のレーザビームプリンタ（以下、ＬＢＰと略す）の内部構造を示す断面図で、このＬＢＰは、文字パターンデータ等を入力して記録紙に印刷することができる。
【０２５４】
図１１において、１１４０はＬＢＰ本体であり、供給される文字パターン等を基に、記録媒体である記録紙上に像を形成する。１１００は操作のためのスイツチ及びＬＥＤ表示器などが配されている操作パネル、１１０１はＬＢＰ１１４０全体の制御及び文字パターン情報等を解析するプリンタ制御ユニツトである。このプリンタ制御ユニツト１１０１は主に文字パターン情報をビデオ信号に変換してレーザドライバ１１０２に出力する。
【０２５５】
レーザドライバ１１０２は半導体レーザ１１０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１１０３から発射されるレーザ光１１０４をオン・オフ切替えする。レーザ光１１０４は回転多面鏡１００５で左右方向に振られて静電ドラム１１０６上を走査する。これにより、静電ドラム１１０６上には文字パターンの静電潜像が形成される。この潜像は静電ドラム１１０６周囲の現像ユニツト１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１１４０に装着した複数種の用紙に対応した複数の用紙カセツト１００８に収納され、給紙ローラ１１０９及び搬送ローラ１１１０と１１１１とにより装置内に取込まれて、静電ドラム１１０６に供給される。
【０２５６】
尚、本実施形態の印刷装置として、レーザビームプリンタを例にして説明したが、これに限定されるものでなく、以下で説明するインクジェットプリンタ等にも適応可能である。
【０２５７】
図１１は、不図示であるが複数種の用紙を印刷ジョブに対応して給紙可能であるインクジェット記録装置ＩＪＲＡの概観図である。同図において、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギア５０１１，５００９を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合するキャリッジＨＣはピン（不図示）を有し、矢印ａ，ｂ方向に往復移動される。このキャリッジＨＣには、インクジェットカートリッジＩＪＣが搭載されている。５００２は紙押え板であり、キャリッジの移動方向に亙って紙をプラテン５０００に対して押圧する。５００７，５００８はフォトカプラで、キャリッジのレバー５００６のこの域での存在を確認して、モータ５０１３の回転方向切り換え等を行うためのホームポジション検知手段である。５０１６は記録ヘッドの前面をキャップするキャップ部材５０２２を支持する部材で、５０１５はこのキャップ内を吸引する吸引手段で、キャップ内開口５０２３を介して記録ヘッドの吸引回復を行う。５０１７はクリーニングブレードで、５０１９はこのブレードを前後方向に移動可能にする部材であり、本体支持板５０１８にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。又、５０２１は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム５０２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達手段で移動制御される。これらのキャッピング、クリーニング、吸引回復は、キャリッジがホームポジション側の領域に来た時にリードスクリュー５００５の作用によってそれらの対応位置で所望の処理が行えるように構成されているが、周知のタイミングで所望の作動を行うようにすれば、本例にはいずれも適用できる。
【０２５８】
次に、上述した装置の記録制御を実行するための制御構成について、図１３に示すブロック図を参照して説明する。制御回路を示す同図において、１７００は記録信号を入力するインターフェース、１７０１はＭＰＵ、１７０２はＭＰＵ１７０１が実行する制御プログラムを格納するプログラムＲＯＭ、１７０３は各種データ（上記記録信号やヘッドに供給される記録データ等）を保存しておくダイナミック型のＲＯＭである。１７０４は記録ヘッド１７０８に対する記録データの供給制御を行うゲートアレイであり、インターフェース１７００、ＭＰＵ１７０１、ＲＡＭ１７０３間のデータ転送制御も行う。１７１０は記録ヘッド１７０８を搬送するためのキャリアモータ、１７０９は記録紙搬送のための搬送モータである。１７０５はヘッドを駆動するヘッドドライバ、１７０６、１７０７はそれぞれ搬送モータ１７０９、キャリアモータ１７１０を駆動するためのモータドライバである。
【０２５９】
上記制御構成の動作を説明すると、インターフェース１７００に記録信号が入るとゲートアレイ１７０４とＭＰＵ１７０１との間で記録信号がプリント用の記録データに変換される。そして、モータドライバ１７０６、１７０７が駆動されると共に、ヘッドドライバ１７０５に送られた記録データに従って記録ヘッドが駆動され、印刷が行われる。
【０２６０】
以上のようなインクジェットプリンタの制御構成に、本発明の構成要素を組み込むことも可能であり、本発明はレーザビームプリンタに限らず、上記インクジェットプリンタ等にも適用できることは明らかである。
【０２６１】
本発明により、印刷ジョブデータは、コマンド情報と、前記コマンド情報に対応した、コマンド情報の属性を記述するヘッダ情報との一対を基本単位として生成される。
【０２６２】
コマンド情報は、印刷ジョブを管理するための情報、印刷実行にかかる情報と、印刷の制御指示のための情報の３種類がある。かかる印刷ジョブデータはデータ生成手段で生成され、印刷実行手段に送信される。
【０２６３】
入力手段で受信された印刷ジョブデータは、コマンド解析手段により、それぞれ印刷ジョブデータを構成するコマンド情報単位に解析される。
【０２６４】
印刷ジョブを管理するためのデータは、印刷実行順位により分類される一の格納手段に格納され、印刷実行にかかるデータは、データ変換手段によりイメージデータに変換された後他の格納手段に格納される。コマンド情報別に解析され、格納されたそれぞれのデータは、制御指示コマンドに従い読み出され印刷処理される。
【０２６５】
印刷ジョブ単位で受信された印刷ジョブデータは、コマンド情報単位に並列処理されるために直列的な処理に比べ、待ち時間が削減され高速な処理が可能となる。
【０２６６】
印刷ジョブの全体的な処理の完了を待たずに、コマンド情報単位に連続的に処理することが可能となり、印刷ジョブデータの受信に続く一連の処理においてジョブの管理・制御が容易となる。
【０２６７】
さらに、コマンド情報として、印刷ジョブの優先順位を付加することにより、個々の印刷ジョブに設定された優先順位がコマンド解析部により解析され、ジョブ管理テーブルで優先順位は管理されることが可能となる。従って、印刷ジョブのうち、優先順位の高いジョブは、優先順位の低いジョブを追い抜き、先行した印刷処理が進められる。
【０２６８】
【発明の効果】
本発明により、本印刷制御装置では、印刷ジョブ内の印刷データとジョブ管理情報とを分けているので、印刷データの解析をせずともジョブの管理情報の取得が可能となる。
【０２６９】
また、印刷データを解析せずとも、ジョブの認識が可能となり、ジョブの全体的な負荷量が検知でき、ジョブの管理ができるようになる。
【０２７０】
また、このジョブ管理情報により印刷制御装置内の印刷ジョブを管理できるので、外部装置から受信したジョブ制御コマンドによって印刷制御装置内の印刷ジョブの制御がリアルタイムで可能になる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の印刷制御装置のブロック図である。
【図２】本発明の第１の実施形態の処理をブロック図を用いて表現したものである。
【図３】本発明の第１の実施形態の通信データの構成図である。
【図４】本発明の第１の実施形態のジョブ管理テーブルの概略図である。
【図５】従来例の印刷制御装置のブロック図である。
【図６】従来例における印刷ジョブの処理を示すフローチャートである。
【図７】本実施形態における印刷制御装置の受信データの処理を示すフローチャートである。
【図８】印刷ジョブデータを示す図である。
【図９】印刷指定時刻が設定された印刷ジョブデータを示す図である。
【図１０】実施形態における記録媒体のメモリマップを示す図である。
【図１１】レーザープリンタの構成を表す図。
【図１２】インクジェットプリンタの構成を表す図。
【図１３】プリンタの動作を説明するブロック線図。
【図１４】従来例の印刷制御装置の機能ブロック図である。
【図１５】本発明の実施形態における印刷制御装置の機能ブロック図である。
【図１６】パケットヘッダ情報の構造を説明する図である。
【図１７】本発明のホストコンピュータにおけるジョブパケット作成処理の制御を示すフローチャートである。
【図１８】本発明の実施形態における印刷制御装置の印刷処理の制御を示すフローチャートである。
【図１９】本発明の実施形態における印刷制御装置のジョブ制御を示すフローチャートである。
【図２０】本発明のホストコンピュータにおけるユーティリティ画面におけるＧＵＩを示す図である。
【図２１】本発明のホストコンピュータにおけるユーティリティ画面においてジョブ制御を指定するＧＵＩを示す図である。
【図２２】本発明の第２の実施形態のジョブ管理テーブルの概略図である。
【図２３】本発明の印刷制御プログラムが記憶媒体からコンピュータシステムに供給されることを示す図である。
【図２４】本発明の印刷制御プログラムが動作するときのメモリマップ図の一例である。
【符号の説明】
１０１  入力部
１０２  中央制御部
１０３  操作部
１０４  印刷処理部
１０５  記憶部
１０６  出力部
２０１  コマンド解析部
２０２  受信バッファ
２０３  ＰＤＬ印刷処理部
２０４  キュー
２０５  出力部
３０１  １つの印刷処理にかかる一連のコマンド即ちジョブコマンド
３０２  後述のコマンド３０３のパケットヘッダー
３０３  ジョブの開始を示すコマンド
３０４  後述のコマンド３０５のパケットヘッダー
３０５  パラメータの設定コマンド、及び設定データ
３０６  後述のコマンド３０７のパケットヘッダー
３０７  実際に印刷されるＰＤＬ情報
３０８  後述のコマンド３０９のパケットヘッダー
３０９  ジョブの終了コマンド
４０１  ジョブ番号
４０２  キュー番号
４０３  ユーザ名
４０４  ファイル名
４０５  パラメータリストハンドル
【図１】
0003559713.tif 000002
【図２】
0003559713.tif 000003
【図３】
0003559713.tif 000004
【図４】
0003559713.tif 000005
【図５】
0003559713.tif 000006
【図６】
0003559713.tif 000007
【図７】
0003559713.tif 000008
【図８】
0003559713.tif 000009
【図９】
0003559713.tif 000010
【図１０】
0003559713.tif 000011
【図１１】
0003559713.tif 000012
【図１２】
0003559713.tif 000013
【図１３】
0003559713.tif 000014
【図１４】
0003559713.tif 000015
【図１５】
0003559713.tif 000016
【図１６】
0003559713.tif 000017
【図１７】
0003559713.tif 000018
【図１８】
0003559713.tif 000019
【図１９】
0003559713.tif 000020
【図２０】
0003559713.tif 000021
【図２１】
0003559713.tif 000022
【図２２】
0003559713.tif 000023
【図２３】
0003559713.tif 000024
【図２４】
0003559713.tif 000025