(57)【特許請求の範囲】
【請求項１】
印刷処理を実行するための印刷手段と、上位装置から印刷ジョブを受信するための受信手段と、受信した印刷ジョブを解読して該ジョブに含まれる各ページを印刷処理可能なビデオデータに順次展開する翻訳手段と、各ビデオデータを展開順に記憶するためのビデオデータ記憶手段と、前記ビデオデータ記憶手段に各ビデオデータが記憶される毎に前記印刷手段が各ビデオデータの印刷処理を順次実行するよう制御する印刷制御手段とを備える印刷装置であって、
ユーザから中断指示を受け付けるための処理中断ボタンを有する操作入力パネルと、
前記ビデオデータを退避させるための記憶手段とを備え、
前記印刷制御手段は、前記印刷手段の印刷処理を実行中に前記処理中断ボタンの押下を検知すると、前記印刷手段に印刷処理を中断させると共に、前記翻訳手段に印刷未処理の残ページを解読させてビデオデータに展開させて該残ページ分のビデオデータを前記記憶手段に退避させ、前記印刷手段に次の印刷ジョブに基づく印刷処理を実行させて該印刷処理の終了を検知すると、前記記憶手段の残ページ分のビデオデータを前記印刷手段に印刷処理させるべく供給することを特徴とする印刷装置。
【請求項２】
前記記憶手段は、外部記憶ユニットであることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記記憶手段は、ハードディスクであることを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記印刷制御手段は、前記処理中断ボタンの押下を前記印刷ジョブのジョブ記述子に含まれる印刷中断フラグの値に基づいて検知することを特徴とする請求項１乃至３のいずれか１項に記載の印刷装置。
【請求項５】
前記印刷制御手段は、前記残ページ分のビデオデータの前記記憶手段への退避処理が完了するまで、前記印刷手段に印刷処理の実行を継続させることを特徴とする請求項１乃至４のいずれか１項に記載の印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶メモリ以外にハードディスクやフラッシュメモリ等の大容量の不揮発の外部記憶手段を内蔵した印刷装置に関する。
【０００２】
【従来の技術】
一般に、印刷装置は、大きく２つのユニットで構成されている。１つは、用紙、封筒、ＯＨＰシート等の物理的な記録媒体を吸引および搬送し、その上にインク、トナー等を用いて白黒やカラーの像を形成する印刷ユニットである。もう１つは、ホストコンピュータから印刷データを受信し、この印刷データを処理して前記記録媒体上の像を表すデータ（以下、ビデオデータという）を生成し、前記印刷ユニットを制御しながら前記ビデオデータを前記印刷ユニットへ送信する制御ユニットである。
通常、印刷ユニットは、印刷前の記録媒体を格納しておく入力トレイを１つまたは複数有しており、入力トレイごとに異なるサイズや種類の記録媒体、例えばＡ４サイズの厚紙、Ｂ５サイズの薄紙、封筒、ＯＨＰシート等を収納できる。また、印刷ユニットは、印刷後の記録媒体の排出先となる１つまたは複数の出力ビンを有している。例えば、印刷面を上にして排出するための出力ビンや印刷面を下にして排出するための出力ビン、あるいは複写機と同様の複数段の出力ビンを有している。
【０００３】
ホストコンピュータが、１ページまたは複数ページで構成される文書を印刷するために印刷装置へ送信するデータ（以下、印刷ジョブデータという）は、通常、印刷に用いる記録媒体の指定、記録媒体を吸引する入力トレイおよび搬出先の出力ビンの指定、あるいは印刷時の解像度の指定、印刷部数の指定等を行うためのジョブ制御コマンドと、そのジョブに属する各ページのページデータと、データの終わりを示すジョブ終端データで構成される。また、各ページデータは、通常、ビットマップ、ＪＰＥＧ、ＴＩＦＦ等の画像データ形式や、文字コード、画像データ、描画コマンド等を含むページ記述言語形式等で送信される。ページデータには、ジョブ制御コマンドと同様に、そのページの印刷に用いる記録媒体や入力ビンを指定するための制御コマンドが含まれている場合もある。
【０００４】
制御ユニットは、前記ジョブ制御コマンドを解釈して、印刷の際に印刷ユニットに指定する記録媒体のサイズ、種類、入力トレイ、出力ビン、データの解像度等に関する印刷制御パラメータを取得する。また、ページデータに含まれる画像データの変換やページ記述言語コマンドの解釈・実行等の処理を行い、印刷ユニットへ送出するビデオデータを生成する。
【０００５】
ビデオデータの形式としては、印刷ユニットごとに種々の形式があるが、例えば、白黒印刷装置ならば、ビットマップまたはそのビットマップを圧縮した形式が考えられるが、カラー印刷装置ならばシアン、マゼンタ、イエロー、ブラックといった色成分ごとのビットマップあるいは前記色成分ごとのビットマップを圧縮した形式が考えられる。
制御ユニットでは、ビデオデータが生成されると、前記印刷制御パラメータに従って、印刷ユニットに記録媒体の吸引と搬送を指示し、印刷ユニット内での記録媒体の走行に同期して、前記ビデオデータを印刷ユニットへ送出する。
以上のように、制御ユニットは、印刷ジョブデータの受信以降印刷ユニットからの記録媒体の排出までを制御する。
【０００６】
図１４は、従来の印刷装置の構成を示すブロック図である。この印刷装置１４０１は、制御ユニット１４０２と印刷ユニット１４０３で構成されている。制御ユニット１４０２は、ＣＰＵ１４０４、ＲＯＭ１４０５、ＲＡＭ１４０６、ホストインタフェース（Ｉ／Ｆ）デバイス１４０７、ビデオインタフェース（Ｉ／Ｆ）デバイス１４０８、およびコマンドインタフェース（Ｉ／Ｆ）デバイス１４０９で構成されている。ＲＯＭ１４０５には、制御ユニット１４０２の機能を実現するためのプログラムが格納されており、それはＣＰＵ１４０４によって実行される。ＲＡＭ１４０６は、主メモリであり、受信データやビデオデータを格納する領域や、ＲＯＭ１４０５に格納されているプログラムが使用する作業領域が割り振られる。制御ユニット１４０２は、ホストインタフェースデバイス１４０７を介してホストコンピュータ１４００と接続されており、ホストコンピュータ１４００が送信した印刷ジョブデータを受信する。この印刷ジョブデータは、制御ユニット１４０２内で処理され、ビデオデータが生成される。制御ユニット１４０２は、コマンドインタフェースデバイス１４０９を通じて前記ビデオデータを印刷ユニット１４０３へ送信する。また、印刷ユニット１４０３からの記録媒体の排出や異常状態の発生等の通知も、コマンドインタフェースデバイス１４０９を通じて制御ユニット１４０２へ送信される。
【０００７】
このように構成された従来の印刷装置１４０１では、ホストコンピュータ１４００から送信された印刷ジョブデータを受信した順に、前記のような処理手順に従って印刷処理が行われるため、印刷中の印刷ジョブデータがある場合には、その印刷ジョブデータの印刷が終了するか、印刷中の印刷ジョブデータを途中で破棄するまで、次の印刷ジョブデータを処理することができなかった。
【０００８】
【発明が解決しようとする課題】
近年、ホストコンピュータ・印刷装置間のデータ通信には、ＬＡＮやＵＳＢ等の高速インタフェースが採用されており、また、制御ユニットに備えられるＣＰＵの動作も高速化されてきているため、印刷ジョブデータの受信と、その解釈・実行によるビデオデータの生成過程が高速化されている。特に、主要なデータが文字であって、１ページ当たりのデータが少ないビジネス文書等の印刷では、ホストコンピュータからの印刷ジョブデータの送信開始から印刷ユニットでの最終ページの排出までの印刷処理工程で、最も時間を要する処理は、印刷ユニット内での記録媒体の吸引、搬送および印刷の工程である。印刷ユニットの処理速度（通常１分当たりの印刷枚数を表すＰＰＭ値が用いられる）が全体の処理時間を決定することになるのである。
【０００９】
また、昨今、印刷装置の処理速度の向上および印刷装置に収納できる記録媒体の大容量化に伴って、ＬＡＮ等のネットワークを介して、複数のホストコンピュータから印刷装置へ印刷ジョブデータを送信することによって、１台の印刷装置を複数のホストコンピュータあるいは複数の利用者間で共用する利用形態が増えてきた。また、印刷される文書に含まれるページ数も増加している。
【００１０】
このような形態の印刷装置では、印刷ジョブデータが集中している時間帯や、ページ数の多い印刷ジョブデータの印刷処理を行っている場合には、後から印刷ジョブデータを送信した利用者は印刷処理完了まで長く待たされるケースが多くなる。これでは、急を要する文書の印刷を行いたい場合に不都合が生じる。このような場合には、印刷装置に装着されているオペレータ用のパネルを操作して、印刷処理中の印刷ジョブデータを破棄（キャンセル）することも考えられるが、共有された印刷装置では、印刷処理中の印刷ジョブデータが誰の指示によるものかも分からないため、印刷ジョブデータを破棄すること自体が許されない状況にある。そのため、共有されている印刷装置では、印刷処理中の印刷ジョブデータを途中で破棄することなく中断して、優先度の高い印刷ジョブデータを先に処理し、その後に中断した印刷ジョブデータの処理を再開できる機能が望まれている。
【００１１】
そこで、本発明は上記のような従来技術の有する問題点に鑑みなされたものであり、その目的は、受信した印刷ジョブデータの先後を問わず、その印刷ジョブデータの処理順序を任意に決定できる印刷装置を提供することにある。
【００１２】
【課題を解決するための手段】
〈構成１〉
上記目的を達成するため、本発明の印刷装置は、印刷処理を実行するための印刷手段と、上位装置から印刷ジョブを受信するための受信手段と、受信した印刷ジョブを解読して該ジョブに含まれる各ページを印刷処理可能なビデオデータに順次展開する翻訳手段と、各ビデオデータを展開順に記憶するためのビデオデータ記憶手段と、ビデオデータ記憶手段に各ビデオデータが記憶される毎に印刷手段が各ビデオデータの印刷処理を順次実行するよう制御する印刷制御手段とを備える印刷装置であって、ユーザから中断指示を受け付けるための処理中断ボタンを有する操作入力パネルと、ビデオデータを退避させるための記憶手段とを備え、印刷制御手段は、印刷手段の印刷処理を実行中に処理中断ボタンの押下を検知すると、印刷手段に印刷処理を中断させると共に、翻訳手段に印刷未処理の残ページを解読させてビデオデータに展開させて該残ページ分のビデオデータを記憶手段に退避させ、印刷手段に次の印刷ジョブに基づく印刷処理を実行させて該印刷処理の終了を検知すると、記憶手段の残ページ分のビデオデータを印刷手段に印刷処理させるべく供給することを特徴とする。
【００１５】
【発明の実施の形態】
以下、図示した一実施形態により本発明を詳細に説明する。
〈実施の形態１〉
図１は、本実施の形態にかかる印刷装置のハードウェア構成を示すブロック図である。本実施の形態の印刷装置１０１は、ＣＰＵ１０４、ＲＯＭ１０５、ＲＡＭ１０６、ホストインタフェース（Ｉ／Ｆ）デバイス１０７、ビデオインタフェース（Ｉ／Ｆ）デバイス１０８、コマンドインタフェース（Ｉ／Ｆ）デバイス１０９、ディスクインタフェース（Ｉ／Ｆ）デバイス１１０、オペレータパネルインタフェース（Ｉ／Ｆ）デバイス１１１からなる制御ユニット１０２と、カットされた用紙や封筒、ＯＨＰシート等の記録媒体上にトナーやインク等を用いて白黒やカラーの像を形成する印刷ユニット１０３と、ビデオデータを格納するための外部記憶ユニット１１２と、制御ユニット１０２や印刷ユニット１０３に発生するエラーや警報等のメッセージを表示したり、ユーザが印刷処理中の印刷ジョブデータを中断させるためのボタン操作を行うオペレータパネル１１３と、を含み構成されている。
【００１６】
ＲＯＭ１０５には、制御ユニット１０２の機能を実現するためのプログラムが格納されており、これはＣＰＵ１０４によって実行される。ＲＡＭ１０６は、主メモリであり、受信データやビデオデータを格納する領域や、ＲＯＭ１０５に格納されているプログラムが使用する作業領域が割り振られる。制御ユニット１０２は、ホストインタフェースデバイス１０７を介してホストコンピュータ１００と接続されており、ホストコンピュータ１００が送信した印刷ジョブデータを受信する。この印刷ジョブデータは、制御ユニット１０２内で処理され、ビデオデータが生成される。このとき生成されるビデオデータの形式としては、例えば、白黒印刷装置ならば１ページ分のビットマップデータあるいはそのビットマップデータを圧縮した後のデータを用いることができる。また、カラー印刷装置の場合には、例えば、１ページ内のシアン、マゼンタ、イエロー、ブラック等の色成分ごとのビットマップデータまたはそのビットマップデータを圧縮した後のデータをビデオデータとすることができる。制御ユニット１０２は、そのビデオデータをコマンドインタフェースデバイス１０９を介して印刷ユニット１０３へ送信する。
【００１７】
外部記憶ユニット１１２は、ディスクインタフェースデバイス１１０を介して制御ユニット１０２と接続されており、制御ユニット１０２からのビデオデータを書き込みまたは読み出しすることができるようになっている。この外部記憶ユニット１１２はできるだけ大容量のものが好ましく、例えばハードディスクを採用することが考えられる。外部記憶ユニット１１２内のビデオデータの格納形式としては、例えば、外部記憶ユニット１１２内にビデオデータを読み書きするための固定長の大容量ランダムアクセスファイルを１つ作成し、ファイルの先頭から印刷処理する順にビデオデータを書き込む形式が好ましい。
【００１８】
印刷ユニット１０３は、制御ユニット１０２から、コマンドインタフェースデバイス１０９を介して記録媒体の吸引や印刷のための搬送開始等のタイミングに関する印刷コマンドを受信するとともに、ビデオインタフェースデバイス１０８を介してビデオデータを受信し、記録媒体の搬送に同期して記録媒体上に前記ビデオデータで表現された像を形成していく。また、印刷ユニット１０３は、印刷中の記録媒体が排出されたことや、異常が発生したこと等をコマンドインタフェースデバイス１０９を介して制御ユニット１０２へ通知する。具体的には、制御ユニット１０２に対して割り込みを発生させたり、メッセージを送信したりする。
【００１９】
制御ユニット１０２が受信した印刷ユニット１０３からの記録媒体の排出や異常状態の発生等の通知と、制御ユニット１０２自身に発生した異常等の通知は、オペレータパネルインタフェースデバイス１１１を介してオペレータパネル１１３へ通知され、そのディスプレイ上にメッセージが表示される。また、オペレータパネル１１３のボタンの押下状態は、制御ユニット１０２がオペレータパネルインタフェースデバイス１１１を介して定期的に検出する。
【００２０】
次に、印刷装置１０１を構成する制御ユニット１０２内のモジュール構成について説明する。制御ユニット１０２内のモジュールはソフトウェアであり、そのプログラムは図１に示したＲＯＭ１０５内に格納されており、これはＣＰＵ１０４によって実行される。図２は、この制御ユニット１０２内のモジュール構成を示すブロック図である。制御ユニット１０２は、印刷ジョブデータ受信モジュール２０１、印刷データ翻訳モジュール２０２、印刷制御モジュール２０３およびオペレータパネル監視モジュール２０４を有しており、各モジュールはそれぞれ独立して動作することが可能である。また、データ受信領域として、受信バッファ２０５とジョブ記述子スタック２０６が設けられている。受信バッファ２０５は、ホストコンピュータ１００から受信した印刷ジョブデータを図１に示したＲＡＭ１０６内に書き込み、または前記ＲＡＭ１０６内に書き込まれてた印刷ジョブデータを書き込まれた順に読み出すことができる。なお、この印刷ジョブデータの読み書きは排他的に行われる。
【００２１】
ジョブ記述子スタック２０６内の構成は、各印刷ジョブデータに対して１つずつ生成されるジョブ記述子を生成された順に積み上げた配列となっており、ジョブ記述子スタック２０６へのジョブ記述子の追加削除は排他的に行われる。図３は、ジョブ記述子スタック２０６の構成の一例を示す図である。ここでは、２つのジョブ記述子３０１、３０２が格納されているジョブ記述子スタック２０６を示している。ジョブ記述子３０１が印刷中断された印刷ジョブデータを表し、ジョブ記述子３０２が現在印刷処理がなされているものより後に受信された印刷ジョブデータを表している。また、印刷ジョブポインタ３００は、現在印刷中の印刷ジョブデータを示すポインタであり、印刷中の印刷ジョブデータがない場合には０に設定される。
【００２２】
ジョブ記述子３０１は、ページ記述子リスト３０１ａと、ジョブ終端検出フラグ３０１ｂと、印刷中断フラグ３０１ｃを備えている。ページ記述子リスト３０１ａは、印刷ジョブポインタ３００が示す印刷ジョブデータに属するページのページ記述子３０１ａ−１、３０１ａ−２、…を印刷処理を行う順に配列したものである。ジョブ終端検出フラグ３０１ｂは、ページ記述子リスト３０１ａに印刷ジョブポインタ３００が示す印刷ジョブデータに属するすべてのページ記述子が配列されている場合には１に、さもなくば０に設定されるフラグである。印刷中断フラグ３０１ｃは、印刷ジョブポインタ３００が示す印刷ジョブデータの処理が中断された場合には１に、さもなくば０に設定されるフラグである。また、ジョブ記述子３０２もこのジョブ記述子３０１と同様に構成されている。
【００２３】
ページ記述子が新しく生成されると（例えば、ページ記述子３０１ａ−ｎ）、新しく生成されたページ記述子３０１ａ−ｎは、それが所属するページ記述子リスト３０１ａの最後に追加されていく。また、印刷ユニット１０３内でページデータの印刷は、ページ記述子リスト３０１ａの先頭のページ記述子３０１ａ−１から順に行われる。ページ記述子３０１ａ−１の印刷処理が終了すると、ページ記述子３０１ａ−１はページ記述子リスト３０１ａから削除される。
【００２４】
図４は、このページ記述子３０１ａ−１の構成の一例を示す図である。ページ記述子３０１ａ−１は、外部記憶フラグ３０１ａ−１ａと、格納位置ポインタ３０１ａ−１ｂを備えている。外部記憶フラグ３０１ａ−１ａは、前記印刷データ翻訳モジュール２０２が、印刷ジョブデータに含まれる画像データや文字コード、描画コマンド等を翻訳・実行することによって生成した１ページ分のビデオデータが、外部記憶ユニット１１２に格納されている場合には１に、制御ユニット１０２内の主メモリであるＲＡＭ１０６上にある場合には０に設定されるフラグである。格納位置ポインタ３０１ａ−１ｂは前記ビデオデータの格納位置（ＲＡＭ１０６上にあるか外部記憶ユニット１１２内にあるか）を指し示すものである。
【００２５】
本実施の形態の印刷装置１０１では、印刷ジョブデータ受信モジュール２０１は、ホストインタフェースデバイス１０７を介して、ホストコンピュータ１００が送信した印刷ジョブデータを受信し、この印刷ジョブデータを受信バッファ２０５に書き込む。また、印刷ジョブデータ受信モジュール２０１は、受信バッファ２０５が一杯になった場合あるいは一杯になりかけた場合には、ホストインタフェースデバイス１０７を介してホストコンピュータ１００へ印刷ジョブデータの送信停止要求信号を送る。また、受信バッファ２０５から印刷ジョブデータが読み出されて空き容量ができると、印刷ジョブデータ受信モジュール２０１は、ホストコンピュータ１００へ印刷ジョブデータの送信再開要求信号を送る。ホストコンピュータ１００から送られてくる印刷ジョブデータには、印刷データ翻訳モジュール２０２が、印刷ジョブデータの境界の検出が可能なように、印刷ジョブデータの終わりを示す所定の終端マーク用のデータやコマンドを付与してある。また、印刷ジョブデータの先頭にその印刷ジョブデータの長さを付与しても同様の効果がある。
【００２６】
印刷データ翻訳モジュール２０２は、受信バッファ２０５からの印刷ジョブデータの最初のデータを受信した際に、図３に示したジョブ記述子３０１を生成し、その中のジョブ終端検出フラグ３０１ｂと印刷中断フラグ３０１ｃを０に設定した後、このジョブ記述子３０１をジョブ記述子スタック２０６に積む。その後、受信バッファ２０５から印刷ジョブデータを逐次読み出して翻訳・実行し、１ページ分のビデオデータがＲＡＭ１０６上に生成されると、図４に示したページ記述子３０１ａ−１を生成して、その中の外部記憶フラグ３０１ａ−１ａを０に設定し、ＲＡＭ１０６上のビデオデータの格納アドレスを格納位置ポインタ３０１ａ−１ｂへ書き込む。この後、ジョブ記述子スタック２０６の一番上にあるジョブ記述子内のページ記述子リストの終わりに、生成したページ記述子を追加する。この処理は、印刷ジョブデータの終端が検出されるまで繰り返される。印刷データ翻訳モジュール２０２は、印刷ジョブデータの終端を検出すると、ジョブ記述子スタック２０６の一番上に積まれているジョブ記述子内のジョブ終端検出フラグを０に設定する。このようにして、１つの印刷ジョブデータの処理が終了し、次の印刷ジョブデータも同様の方法で処理していく。
【００２７】
前記ページ記述子リストにページ記述子が追加されると、印刷制御モジュール２０３に状態変化、即ち新たなページ記述子の追加が通知される。印刷データ翻訳モジュール２０２が停止するのは、印刷ジョブデータを読み出そうとした時に受信バッファ２０５中に印刷ジョブデータがない場合か、ジョブ記述子やページ記述子を生成するための必要なメモリ領域が獲得できない場合である。印刷データ翻訳モジュール２０２が、受信バッファ２０５中に印刷ジョブデータがないことによって停止した場合は、印刷ジョブデータ受信モジュール２０１が印刷ジョブデータを受信バッファ２０５へ送ると、印刷データ翻訳モジュール２０２は動作を再開する。一方、必要なメモリ領域を確保できないために印刷データ翻訳モジュール２０２が停止したときは、次の場合に印刷データ翻訳モジュール２０２が動作を再開する。即ち、印刷制御モジュール２０３がすでに生成されているページの印刷を行って、不要となったページ記述子に割り付けられていたメモリ領域の解放がなされるか、中断された印刷ジョブデータのページを外部記憶ユニット１１２へビデオデータとして書き込み、このビデオデータが格納されていたメモリ領域を解放するかして、空きメモリ領域ができた場合である。
【００２８】
オペレータパネル監視モジュール２０４は、図１に示したオペレータパネルインタフェースデバイス１１１を介してオペレータパネル１１３の処理中断指令用のボタンが押下されたか否かを検出する。処理中断ボタンが押下されたのを検出すると、印刷ジョブポインタ３００が０でない場合に、印刷ジョブポインタ３００が指し示すジョブ記述子内の印刷中断フラグを１に設定する。
【００２９】
次に、印刷制御モジュール２０３が行う処理の手順を図５に示したプログラムを参照しながら説明する。図５に示すプログラム文は、if-elseやwhile等の制御文を用いてＣ言語を真似た疑似言語で記載してある。
まず、印刷制御モジュール２０３は、ジョブ記述子スタック２０６を空の状態に初期化し、処理中の印刷ジョブデータのジョブ記述子を指す印刷ジョブポインタ３００を０に初期化する（５００〜５０１行目）。その後、５０２〜５４８行目の処理を繰り返すことになる。
【００３０】
ループの先頭では、まず、印刷ジョブポインタ３００が０でなく（処理中の印刷ジョブデータが存在し）、かつ、印刷ジョブポインタ３００が指し示すジョブ記述子内のページ記述子リストが空でない場合には（５０３〜５０４行目）、前記ページ記述子リスト中のページ記述子に対して５０６〜５２６行目の処理を繰り返す。もし、印刷ジョブポインタ３００が指し示すジョブ記述子の印刷中断フラグが０（印刷中）の場合、ページ記述子内のビデオデータを印刷ユニット１０３に送信し、印刷を行う（５１５〜５１８行目）。その際、印刷ジョブポインタ３００が指し示すジョブ記述子が、中断されていた印刷ジョブデータのものならば、そのビデオデータは外部記憶ユニット１１２内のファイルに格納されているため、ビデオデータをファイルからＲＡＭ１０６上に読み上げる必要がある（５１１〜５１３行目）。印刷ジョブポインタ３００が指し示すジョブ記述子の印刷中断フラグが１（中断処理中）の場合には、外部記憶ユニット１１２内のファイルに書き出されていないジョブ記述子リスト内のデータをそのファイルに書き込む（５２０〜５２３行目）。
【００３１】
ページ記述子リストの終わりに到達すると、印刷ジョブポインタ３００が指し示すジョブ記述子の全ページが処理されたか否かを調べる。すべてのページ記述子の処理が終了していない場合には、新たなページ記述子が生成されるまで待つ（５４５〜５４７行目）。印刷ジョブポインタ３００が指し示すジョブ記述子内の全ページ記述子の処理が完了した場合には、次に処理すべき印刷ジョブデータを選択することになる。ただ、印刷ジョブポインタ３００が指すジョブ記述子が、印刷処理されたか中断されたかによって、次に選択される印刷ジョブデータは異なる。
【００３２】
印刷ジョブポインタ３００が指し示すジョブ記述子の処理が中断された場合には、ジョブ記述子スタック２０６内の未処理のジョブ記述子の中で、最も古い（スタックのより下にある）ものが、次に処理するジョブ記述子として選択され、処理される（５２９〜５３１行目）。未処理のジョブ記述子がない場合には、新たなジョブ記述子が生成され、そこに最初のページ記述子が追加されるまで待つことになる。
【００３３】
一方、印刷ジョブポインタ３００が指し示すジョブ記述子が印刷処理された場合には、まず、印刷ジョブポインタ３００が指すジョブ記述子は不要になったため、ジョブ記述子スタック２０６から取り除かれ、その分メモリ領域が解放される。次に、ジョブ記述子スタック２０６中に、処理が中断されているジョブ記述子が存在するか否かを調べる。処理が中断されているジョブ記述子が存在する場合には、最も新しい（スタックのより上側にある）ジョブ記述子を次に処理するジョブ記述子として選ぶ。その際、選択されたジョブ記述子内の印刷中断フラグは０に設定される（５３５〜５３７行目）。処理が中断されているジョブ記述子がない場合には、未処理の印刷ジョブデータのジョブ記述子があればそのもっとも古いものを選び、それを次に処理するジョブ記述子とする（５３８〜５３９行目）。ジョブ記述子スタック２０６が空の場合には、新たなジョブ記述子が生成され、そこに最初のページ記述子が登録されるまで待つ。
【００３４】
以上説明したように、本実施の形態の印刷装置では、オペレータパネル１１３に現在印刷中の印刷ジョブデータの処理中断が表示されると、印刷制御モジュール２０３は現在印刷処理中の印刷ジョブデータの残りページのビデオデータを印刷ユニット１０３に送るのではなく、外部記憶ユニット１１２に保存する。通常、圧縮されたビデオデータはそれを印刷ユニット１０３で印刷するよりも、外部記憶ユニット１１２に格納するほうが速い。したがって、印刷処理中のビデオデータを最後まで処理することに比べ、印刷処理を中断してビデオデータを外部記憶ユニット１１２に格納するほうが、速やかに次の印刷ジョブデータの処理に移行できる。
【００３５】
例えば、縦横１インチ当たり６００ドットの画素（以下、６００ＤＰＩという）で構成されるＡ４サイズの白黒の画像を１画素当たり１ビットで表現したビデオデータあるいはビットマップデータは、圧縮を行わない場合４Ｍバイト程度の容量がある。また、通常のビジネス文書は、面積的に画像データよりも文字データを多く含むため、そのビデオデータを圧縮した場合、１／１０〜１／５程度の容量に簡単に圧縮できるものが多い。そのような場合、６００ＤＰＩのＡ４サイズ１ページ当たりのビデオデータの容量は、０．４〜０．８Ｍバイト程度にまで小さくなる。一方、近年のパーソナルコンピュータ（以下、ＰＣという）で用いられている標準的なハードディスクでは、１秒当たり８Ｍバイト以上のデータ転送速度を実現している。そのため、圧縮しなくても、Ａ４サイズの６００ＤＰＩの白黒のビデオデータを約０．５秒で書き込める。１０／１〜５／１に圧縮した場合には、そのビデオデータを０．０５〜０．１秒でハードディスクに書き込める。また、ハードディスクの容量も数Ｇバイト程度のものが主流となっており、標準的なＰＣの主メモリに対して数十〜数百倍程度の容量となっている。これに対し、印刷ユニット１０３での印刷速度はビデオデータの容量に関係なく一定であり、比較的高速な印刷装置でも１分当たりの印刷ページ数（以下ＰＰＭという）は２０〜５０程度であり、１ページ当たりの印刷所要時間は１〜３秒程度を要する。したがって、前記ビデオデータをハードディスクに格納する時間は、印刷ユニット１０３での印刷時間に比べて、ビデオデータを圧縮できない場合でも１／６〜１／２、圧縮できた場合には１／６０〜１／１０程度にできる。
【００３６】
また、本実施の形態の印刷装置では、通常の文書では、前述のように外部記憶ユニット１１２へのビデオデータの書き出し時間と、印刷ユニット１０３での印刷時間の差が大きく開くことを利用し、印刷処理中の印刷ジョブデータを中断する間に、ビデオデータを外部記憶ユニット１１２へ退避させることによって、印刷処理中の印刷ジョブデータの受信とビデオデータ生成処理を速やかに終了させる。そして、次の印刷ジョブデータの印刷処理を速やかに開始し、その印刷ジョブデータの処理が終了した後に、外部記憶ユニット１１２に退避させておいたビデオデータを用いて、中断した前記印刷ジョブデータの残りのページ印刷を再開することができる。
【００３７】
〈実施の形態２〉
本実施の形態にかかる印刷装置のハードウェア構成は実施の形態１のものと同様であるため、説明は省略する。図６は、本実施の形態の印刷装置６０１を構成する制御ユニット６０２内のモジュール構成を示すブロック図である。制御ユニット６０２内のモジュールはソフトウェアであり、そのプログラムは図１に示したＲＯＭ１０５内に格納されており、これはＣＰＵ１０４によって実行される。本実施の形態の印刷装置６０１のモジュール構成は、図２に示したものに加えて、ビデオデータ格納モジュール６０３が設けられている。そして、このビデオデータ格納モジュール６０３を含めた各モジュールはそれぞれ独立して動作することが可能である。
【００３８】
本実施の形態の印刷装置６０１も、実施の形態１のものと同様、印刷処理中の印刷ジョブデータを廃棄することなく、できる限り速やかに中断して、後続の印刷ジョブデータの印刷処理を開始し、それが終了した時点で、中断していた前記印刷ジョブデータの印刷処理を再開することができる。
以下の説明では、実施の形態１の装置と同様の動作が行われる部位の説明は省略している。
【００３９】
ビデオデータ格納モジュール６０３は、オペレータパネル１１３の処理中断ボタンが押下され、それをオペレータパネル監視モジュール２０４が検出し、図３に示した印刷ジョブポインタ３００が差し示す印刷処理中のジョブ記述子内の中断フラグが１に設定された際に、オペレータパネル監視モジュール２０４からの信号で作動する。作動したビデオデータ格納モジュール６０３は、印刷処理中のジョブ記述子内のページ記述子リストを後ろから前に向かってたどりながら、図５に示したプログラムの５２０〜５２３行目の記述と同様の方法により、ビデオデータを外部記憶ユニット１１２に格納し、前記ビデオデータを格納していたＲＡＭ１０６のメモリ領域を解放する。その際、ビデオデータ格納モジュール６０３は、すでに外部記憶ユニット１１２に格納されているページ記述子と同じページ記述子と出会うと、そこで処理を中断し待機状態となる。また、印刷データ翻訳モジュール２０２は、新たに生成したページ記述子を、印刷ジョブポインタ３００が指し示す印刷処理中のジョブ記述子のページ記述子リストに追加した際に、ビデオデータ格納モジュール６０３を作動させる。再度作動したビデオデータ格納モジュール６０３は、前述した方法で、印刷処理中のジョブ記述子のページ記述子リストを後ろからたどって、当該ビデオデータを外部記憶ユニット１１２に格納し、ＲＡＭ１０６のメモリ領域を解放していく。
【００４０】
印刷制御モジュール２０３は、図７に示すプログラムに従った処理を実行する。特に、実施の形態１の装置と異なるのは次の点である。即ち、図７に示すプログラムの７０６〜７０９行目の記述にあるように、印刷ジョブポインタ３００が指し示す印刷処理中のジョブ記述子の中断フラグが１に設定された場合（印刷中断要求があった場合）でも、印刷処理中のジョブ記述子のページ記述子リストに最終のページ記述子が生成されるまで、印刷ユニット１０３では印刷処理を継続する。また、前記ページ記述子リストに最終のページ記述子が追加された際に、印刷処理中のジョブ記述子内の当該ページ記述子リストに他のページ記述子がなかったならば、最終ページも印刷し、中断要求のあった印刷処理中の印刷ジョブデータを中断させずに正常に終了させる。
【００４１】
実施の形態１では、印刷ジョブデータが複雑であるため印刷データ翻訳モジュール２０２がビデオデータを生成するために時間を要する。したがって、現在印刷処理中の印刷ジョブデータの処理を中断しないでそのまま印刷する場合とそれを中断する場合とで、次の印刷ジョブデータの印刷処理が可能になるまでの時間差が殆どないといった状態が発生することがある。
【００４２】
そこで、このような欠点を補うため、本実施の形態では、印刷制御モジュール２０３が印刷処理中の印刷ジョブデータの処理を中断する場合でも、印刷処理中のジョブ記述子内のページ記述子リストに最終のページ記述子が生成されるまでは、印刷ユニット１０３での印刷の中止は行わない。したがって、印刷データ翻訳モジュール２０２がビデオデータを生成する速度が印刷ユニット１０３の印刷速度（ＰＰＭ値）よりも遅い場合、前記最終のページ記述子が生成された時点で、印刷処理中のジョブ記述子内に前記最終のページ記述子しか存在しない場合には、その最終のページ記述子も印刷するようにしておけば、前述した実施の形態１の装置における問題点も解消できる。
【００４３】
また、本実施の形態では、現在印刷処理中の印刷ジョブデータの処理を中断する際に、印刷制御モジュール２０３自体は、最後のページ記述子が生成されるまでは印刷処理を継続するが、この間ビデオデータ格納モジュール６０３が印刷処理中のジョブ記述子につながれているページ記述子内のデータを外部記憶ユニット１１２に書き出していく。したがって、ＲＡＭ１０６上で保存されているビデオデータは、印刷ユニット１０３が印刷中のページのものだけになる。それ以外の未印刷ページのビデオデータ用のメモリ領域は、ビデオデータ格納モジュール６０３によって解放される。したがって、装置全体としては、利用可能なメモリ領域が増えるため、印刷データ翻訳モジュール２０２は、より多くのページ記述子を生成することが可能になり、結果として、現在印刷処理中の印刷ジョブデータの処理中断速度が加速される。この効果は、印刷データ翻訳モジュール２０２によるビデオデータの生成速度が、印刷ユニット１０３の印刷速度より速いほど大きくなる。
【００４４】
〈実施の形態３〉
本実施の形態にかかる印刷装置のハードウェア構成は、図１に示した実施の形態１の装置と同様である。また、印刷装置を構成する制御ユニット内のモジュール構成は図６に示した実施の形態２のものと同様である。本実施の形態の印刷装置では、印刷データ翻訳モジュール２０２が受信した印刷ジョブデータを外部記憶ユニット１１２に格納し、中断された印刷ジョブデータの処理を再開する際に、格納しておいた前記印刷ジョブデータを読み出して再度処理を行うものである。
以下の説明では、実施の形態１または２の装置と同様の動作が行われる部位の説明は省略している。
【００４５】
図８は、印刷データ翻訳モジュール２０２が生成するジョブ記述子８０１の構成の一例を説明するための図である。ジョブ記述子８０１は、図３に示したジョブ記述子３０１、３０２と同様のページ記述子リスト８０１ａ、ジョブ終端検出フラグ８０１ｂ、印刷中断フラグ８０１ｃに加え、ページ記述子総数８０１ｄと印刷ジョブデータ格納位置ポインタ８０１ｅを備えている。ページ記述子総数８０１ｄは、印刷ジョブデータの処理を中断した時点（正確には、処理中断に伴い印刷データ翻訳モジュール２０２がページ記述子の生成を停止した時点）までに生成されていたページ記述子の総数を示すものである。また、印刷ジョブデータ格納位置ポインタ８０１ｅは、印刷データ翻訳モジュール２０２が外部記憶ユニット１１２に格納した印刷ジョブデータの格納位置を示すポインタである。
【００４６】
印刷データ翻訳モジュール２０２は、最初の印刷ジョブデータを受信したとき、図８に示すジョブ記述子８０１を生成し、すべての要素を０に初期化する。その後、外部記憶ユニット１１２上に受信した印刷ジョブデータを格納するためのファイルを生成し、そのファイルへのポインタを印刷ジョブデータ格納位置ポインタ８０１ｅに設定する。そして、ジョブ記述子８０１をジョブ記述子スタック２０６へ送る。また、印刷データ翻訳モジュール２０２内にもジョブ記述子８０１へのポインタを保持しておく。
【００４７】
次に、印刷データ翻訳モジュール２０２は、受信した印刷ジョブデータを外部記憶ユニット１１２上の前記ファイルに書き込みながら、印刷ジョブデータを翻訳・実行し、１ページ分のビデオデータとページ記述子を生成し、これを前記ジョブ記述子８０１のページ記述子リスト８０１ａの終わりに追加する。その際、ジョブ記述子８０１のページ記述子総数８０１ｄが１増加される。その後、印刷データ翻訳モジュール２０２は、ページ記述子８０１の印刷中断フラグ８０１ｃが０か１かを確認し、それが０の間は前記印刷ジョブデータの受信、翻訳・実行、およびページ記述子の生成と、ここで生成されたページ記述子をページ記述子リスト８０１ａへ追加する動作を繰り返す。これに対して、印刷中断フラグ８０１ｃが１の場合には、印刷ジョブデータの翻訳・実行は中止し、これ以降は印刷ジョブデータを単に受信して、外部記憶ユニット１１２に格納するだけのデータ読み込みモードに移行する。そして、印刷ジョブデータの終わりに到達するまで、そのデータ読み込みモードは維持される。
【００４８】
印刷制御モジュール２０３は、実施の形態２の装置と同様に、ジョブ終端検出フラグ８０２ｂが設定されるを待つことなく、即座に印刷ジョブデータの処理を停止する。そして、印刷制御モジュール２０３は、ページ記述子リストに最初のページ記述子が登録されたジョブ記述子がジョブ記述子スタック２０６に登録されるまで待機する。
【００４９】
一方、印刷処理の中断に伴い、印刷ジョブデータの読み出しと外部記憶ユニット１１２への格納のみを行っている印刷データ翻訳モジュール２０２は、印刷ジョブデータの終端に到達すると、前記データ読み込みモードを終了し、再び印刷データの翻訳・実行を行うモードに戻る。そして、次の印刷ジョブデータを中断することなく処理し終えた場合には、印刷ジョブポインタが０でなければ、そのポインタが指し示すジョブ記述子から、印刷ジョブデータ格納位置ポインタを取得する。そして、これが示すファイルから印刷ジョブデータを読み込んで、これを翻訳・実行しページ記述子を生成する。ただし、ファイルから読み出した印刷ジョブデータから生成されたページ記述子の個数が、ジョブ記述子に格納されているページ記述子総数を越えない間は、生成したページ記述子を印刷ジョブポインタが指し示すジョブ記述子に登録することなく破棄し、前記ページ記述子総数を越えたものからは、前記ジョブ記述子に追加していく。これにより、１度生成されたビデオデータと同じものが重複して生成されることを防止する。
【００５０】
実施の形態１および２の装置は、現在印刷処理中の印刷ジョブデータの処理中断の要請があった場合に、その印刷ジョブデータを終わりまで翻訳・実行し、ビデオデータとページ記述子は生成してしまうが、外部記憶ユニット１１２へのビデオデータの格納速度に比べかなり低速な印刷ユニット１０３へのビデオデータの転送および印刷を行わないことによって、印刷処理中の印刷ジョブデータの処理を速やかに中断し、後続の印刷ジョブデータのできる限りはやい処理を可能にしていた。しかし、印刷ジョブデータの翻訳・実行に時間がかかっている場合には、印刷処理中の印刷ジョブデータを最後まで翻訳・実行すること自体に問題があった。
【００５１】
この問題点を解決するため、本実施の形態の装置は、印刷データ翻訳モジュール２０２において、受信した印刷ジョブデータを外部記憶ユニット１１２に格納し、外部記憶ユニット１１２に格納しておいた印刷ジョブデータを読み出して処理する機能と、前記ジョブ記述子内の印刷中断フラグが１に設定されると、その後ページ記述子を生成した時点で、印刷ジョブデータの翻訳・実行処理を中止し、印刷ジョブデータの読み込みと外部記憶ユニット１１２への格納のみを行う機能を追加した。また、印刷ユニット１０３においては、印刷処理中の印刷ジョブデータの処理を中断した際に、その時点までに印刷したページ数と、印刷データ翻訳モジュール２０２が外部記憶ユニット１１２に格納した印刷ジョブデータの格納位置をジョブ記述子に記録しておき、印刷データ翻訳モジュール２０２が外部記憶ユニット１１２に格納しておいた印刷ジョブデータを再度読み出してページ記述子を生成した場合に、ジョブ記述子に記録しておいたページ数分のページ記述子を破棄する機能を追加している。
【００５２】
即ち、予め印刷ジョブデータを外部記憶ユニット１１２に格納しておくことにより、印刷処理の中断要求があった場合には、それ以降印刷ジョブデータは翻訳・実行せずに単に外部記憶ユニット１１２に格納していき、印刷処理再開時に、格納しておいた印刷ジョブデータを先頭から再度翻訳・実行していき、中断前に生成済みのページ以降のページ記述子のみを生成する。これにより、印刷処理中断時の印刷ジョブデータの翻訳・実行による遅延の問題を回避できる。
【００５３】
〈実施の形態４〉
実施の形態１〜３に示した装置では、セントロやＲＳ２３２Ｃ、ＵＳＢのようなホストインタフェースを通して、印刷装置がホストコンピュータから印刷ジョブデータを受信する場合に、これらのインタフェースは、図９に示すように、１つのデータチャンネル上に複数の印刷ジョブデータが逐次送信されてくる状態を想定している。このため、例えば、図９に示す先頭の印刷ジョブデータ９００−１の印刷処理を中断して、次の印刷ジョブデータ９００−２の印刷処理を開始するには、先に送られた印刷ジョブデータ９００−１をすべて受信してから次の印刷ジョブデータ９００−２を取り出す必要がある。そこで、実施の形態１〜３の装置では、中断対象の印刷ジョブデータを最後まで翻訳・実行してビデオデータを生成するか、単に印刷ジョブデータを保存しながら読み飛ばすかしているが、何れにせよ、そのことが印刷処理中の印刷ジョブデータの処理を中断する際に状況によっては長い時間を要する原因となっている。
【００５４】
一方、図１０に示すように、ＬＡＮ上のＴＣＰ／ＩＰプロトコルを用いて、ホストコンピュータ・印刷装置間で複数の仮想チャンネルを張り、各チャンネルごとに１つの印刷ジョブデータを送ることも考えられる。
そこで、本実施の形態では、図１０に示した状況において、次の印刷ジョブデータを取り出すために、処理中断した印刷ジョブデータの最後まで読み進むことをせずに、印刷処理中の印刷ジョブデータをより素早く中断することを可能とする。特に、ＴＣＰ／ＩＰプロトコルを用いた複数の仮想チャンネルから印刷ジョブデータを受信するような環境では、基本的に各印刷ジョブデータはすべて別のチャンネルから受信されるため、どのような印刷ジョブデータであっても、即座に（直近のページ境界）で処理を中断し、別の印刷ジョブデータの印刷処理を開始することが可能となる。
【００５５】
本実施の形態にかかる印刷装置のハードウェア構成も図１に示した実施の形態１の装置と同様であるため、説明は省略する。また、図１１は、本実施の形態の印刷装置１１０１を構成する制御ユニット１１０２内のモジュール構成を示すブロック図である。制御ユニット１１０２内のモジュールはソフトウェアであり、そのプログラムは図１に示したＲＯＭ１０５内に格納されており、これはＣＰＵ１０４によって実行される。本実施の形態のモジュールは、複数のホストインタフェースに対応するため、複数の印刷ジョブデータ受信モジュール１１０３ａ、１１０３ｂ、１１０３ｃ、…と、複数の受信バッファ１１０４ａ、１１０４ｂ、１１０４ｃ、…を備えている点を除き、実施の形態２に示した印刷装置のものと同様である。
【００５６】
また、図１２に示すように、本実施の形態の印刷装置で生成されるジョブ記述子１２０１は、図８に示したジョブ記述子８０１と同様の、ページ記述子リスト１２０１ａ、ジョブ終端検出フラグ１２０１ｂ、印刷中断フラグ１２０１ｃ、ページ記述子総数１２０１ｄ、印刷ジョブデータ格納位置ポインタ１２０１ｅに加え、ホストインタフェース（Ｔ／Ｆ）識別子１２０１ｆを含んでいる。このホストインタフェース識別子１２０１ｆは、印刷処理中の印刷ジョブデータの処理を中断する際に、現在受信中のホストインタフェースを認識し、次に処理すべき印刷ジョブデータを処理中断された印刷ジョブデータを受信したホストインタフェース以外から受信できないかを調べる際に参照される。
以下の説明では、実施の形態１〜３の装置と同様の動作が行われる部位の説明は省略している。
【００５７】
本実施の形態の印刷装置１１０１では、印刷データ翻訳モジュール２０２は、最初または次の印刷ジョブデータの受信を行う際には、ラウンドロビンや固定順序等所定の順番にホストインタフェースにアクセスしてデータの有無を調べ、印刷ジョブデータを有するホストインタフェースからデータの受信を始める。その際、まず、図１２に示すジョブ記述子１２０１を生成し、すべての要素を０に初期化した後、外部記憶ユニット１１２上に受信した印刷ジョブデータを格納するためのファイルを生成し、そのファイルへのポインタをジョブ記述子１２０１の印刷ジョブデータ格納位置ポインタ１２０１ｅに設定する。また、印刷ジョブデータを受信するホストインタフェースの識別子をジョブ記述子１２０１のホストインタフェース識別子１２０１ｆに設定する。最後に、ジョブ記述子１２０１をジョブ記述子スタック２０６へ送る。また、印刷データ翻訳モジュール２０２内に、ジョブ記述子スタック２０６へ送ったジョブ記述子１２０１へのポインタを保持しておく。
【００５８】
次に、印刷データ翻訳モジュール２０２は、受信した印刷ジョブデータを外部記憶ユニット１１２上の前記ファイルに書き込みながら印刷ジョブデータを翻訳・実行し、１ページ分のビデオデータとページ記述子を生成し、それをジョブ記述子１２０１のページ記述子リスト１２０１ａの終わりに追加する。その際、ジョブ記述子１２０１中のページ記述子総数１２０１ｄが１増加される。その後、印刷データ翻訳モジュール２０２はページ記述子１２０１の印刷中断フラグ１２０１ｃが０か１かを調べる。印刷中断フラグ１２０１ｃが０の間は、前記の印刷ジョブデータの受信、翻訳・実行、およびページ記述子１２０１の生成とページ記述子リスト１２０１ａへの追加を繰り返す。一方、印刷中断フラグ１２０１ｃが１の場合には、印刷ジョブデータの翻訳・実行を中断する。
【００５９】
次に、中断された印刷ジョブデータのジョブ記述子１２０１に格納されているホストインタフェース識別子１２０１ｆを取り出し、この識別子で指定されるホストインタフェースの受信バッファ上に別の印刷ジョブデータがあるか否かを所定の順番にアクセスして調べる。もし、存在していない場合には、実施の形態３の場合と同様に、それ以降は印刷ジョブデータを受信して、外部記憶ユニット１１２に格納するだけのデータ読み込みモードに移行し、印刷ジョブデータの終わりに到達するまで、そのデータ読み込みモードを継続する。そして、印刷ジョブデータの終わりに到達すると、そこでホストインタフェースを０クリアする。他のホストインタフェース上に印刷ジョブデータがある場合には、中断したジョブ記述子１２０１中のホストインタフェース識別子１２０１ｆはそのままにして、新たなホストインタフェースからの印刷ジョブデータの受信・処理を開始する。
【００６０】
中断した印刷ジョブデータのジョブ記述子１２０１中のホストインタフェース識別子１２０１ｆの値が０である場合は、中断した印刷ジョブデータの処理を再開時に、ジョブ記述子１２０１中の印刷ジョブデータ格納位置ポインタ１２０１ｅが指し示す外部記憶ユニット１１２上のファイルに、すべての印刷ジョブデータが格納済みの状態である。また、ホストインタフェース識別子１２０１ｆが０でない場合は、まず、ジョブ記述子１２０１中の印刷ジョブデータ格納位置ポインタ１２０１ｅが指し示す外部記憶ユニット１１２上のファイルから、印刷ジョブデータを読み出し、すべてのデータを読み出すと、ホストインタフェース識別子１２０１ｆが指し示すホストインタフェースから残りのデータを読み出す処理に移る。
【００６１】
〈実施の形態５〉
実施の形態１〜４に示した印刷装置では、オペレータパネル１１３経由で印刷処理中の印刷ジョブデータの処理を中断することを想定しているが、本実施の形態では、ＬＡＮ等のネットワークに接続されている印刷装置において、送信した印刷ジョブデータそのもの、あるいは印刷ジョブデータを受信したホストインタフェースに優先度をもたせ、その優先度に従って印刷処理中の印刷ジョブデータの処理の中断、再開を制御することを可能にした。
【００６２】
本実施の形態にかかる印刷装置のハードウェア構成も図１に示した実施の形態１の装置と同様であるため、説明は省略する。また、図１３は、本実施の形態の印刷装置１３０１を構成する制御ユニット１３０２内のモジュール構成を示すブロック図である。制御ユニット１３０２内のモジュールはソフトウェアであり、そのプログラムは図１に示したＲＯＭ１０５内に格納されており、これはＣＰＵ１０４によって実行される。本実施の形態では、印刷処理中の印刷ジョブデータの処理を中断するか否かをオペレータパネル１１３からの指示に従うのではなく、現在印刷処理中の印刷ジョブデータの優先度と新たな印刷ジョブデータを受信したホストインタフェースの優先度との比較によって、現在印刷処理中の印刷ジョブデータの処理を中断して、新たに受信した印刷ジョブデータの印刷処理を行うか否かを決定する。このため、本実施の形態の印刷装置１３０１の制御ユニット１３０２内に、ホストインタフェース監視モジュール１３０３を設けた。
【００６３】
このホストインタフェース監視モジュール１３０３は、複数のホストインタフェースから印刷ジョブデータを受信する受信バッファ１２０４ａ、１２０４ｂ、１２０４ｃ、…を監視し、新たなデータを受信すると、そのホストインタフェースの優先度を割り出し、これと現在印刷中の印刷ジョブデータのジョブ記述子に格納されている優先度とを比較して、現在印刷中の印刷ジョブデータの優先度が低ければ現在印刷処理中の印刷ジョブデータのジョブ記述子の印刷中断フラグを１に設定する。この他の構成は、図１１に示した実施の形態４のものと同様である。
以下の説明では、実施の形態１〜４の装置と同様の動作が行われる部位の説明は省略している。
【００６４】
制御ユニット１３０２中の印刷データ翻訳モジュール２０２は、最初または次の印刷ジョブデータの受信を行う際には、各ホストインタフェースに割りつけられている優先度の高い順に、印刷ジョブデータの有無を調べ、最も優先度の高いホストインタフェースからデータの受信を開始する。その際、まず、図１２に示したジョブ記述子１２０１を生成するが、印刷ジョブデータを受信したホストインタフェースの優先度をジョブ記述子１２０１に書き込む。
【００６５】
一方、ホストインタフェース監視モジュール１３０３は、現在印刷処理中または処理が中断されているもの以外のホストインタフェースにはその優先度の順に定期的にアクセスし、新たな印刷ジョブデータの到着の有無を調べる。もし、新たな印刷ジョブデータが到着していた場合には、その印刷ジョブデータを受信したホストインタフェースの優先度を調べる。そして、その優先度が現在印刷処理中の印刷ジョブデータのジョブ記述子１２０１に書き込まれている優先度より高い場合には、現在印刷処理中の印刷ジョブデータのジョブ記述子１２０１の印刷中断フラグ１２０１ｃを１に設定する。
【００６６】
このように、本実施の形態の印刷装置では、ホストインタフェースに優先度を割りつけ、これによって印刷ジョブデータの処理の中断、再開を判定する。したがって、オペレータが印刷装置のそばに出向いてオペレータパネル１１３の操作を行う必要がない。また、本実施の形態の装置では、ホストインタフェースに優先度を割りつけたが、送信される印刷ジョブデータの先頭に優先度情報を付与しておき、ホストインタフェース監視モジュール１３０３や印刷データ翻訳モジュール２０２が、先頭の優先度を読み出すことによっても、同様の処理の中断、再開の機能を実現できる。
【００６７】
以上、本発明の一実施形態を図面に沿って説明した。しかしながら本発明はこの実施の形態に示した事項に限定されず、特許請求の範囲の記載に基づいてその変更、改良等が可能であることは云うまでもない。例えば、本発明では、外部記憶ユニット１１２としてハードディスクを想定しているが、大容量の記憶機能を備えたものであればハードディスクに代えて他の手段を用いることが可能である。また、本発明では、制御ユニット内のモジュールをソフトウェアで構成しているが、これをハードウェアで構成することも可能である。さらに、上記各実施の形態において示した装置構成を組み合わせることも可能である。
【００６８】
【発明の効果】
上述のように、本発明によれば、受信した印刷ジョブデータの先後を問わず、受信した印刷ジョブデータの処理順序を任意に設定できる印刷装置を提供できる。
【図面の簡単な説明】
【図１】実施の形態１にかかる印刷装置のハードウェア構成を示すブロック図である。
【図２】実施の形態１にかかる印刷装置のモジュール構成を示すブロック図である。
【図３】ジョブ記述子スタック２０６の構成の一例を示す図である。
【図４】ページ記述子３０１ａ−１の構成の一例を示す図である。
【図５】実施の形態１の印刷装置において、印刷制御モジュール２０３が行う処理手順のプログラムである。
【図６】実施の形態２にかかる印刷装置のモジュール構成を示すブロック図である。
【図７】実施の形態２の印刷装置において、印刷制御モジュール２０３が行う処理手順のプログラムである。
【図８】ジョブ記述子８０１の構成の一例を示す図である。
【図９】１つのデータ通信路を介してホストコンピュータから印刷装置が印刷ジョブデータを受信する状態を説明するための図である。
【図１０】複数のデータ通信路を介してホストコンピュータから印刷装置が印刷ジョブデータを受信する状態を説明するための図である。
【図１１】実施の形態４にかかる印刷装置のモジュール構成を示すブロック図である。
【図１２】ジョブ記述子１２０１の構成の一例を示す図である。
【図１３】実施の形態５にかかる印刷装置のモジュール構成を示すブロック図である。
【図１４】従来の印刷装置のハードウェア構成を示すブロック図である。
【符号の説明】
１００、１４００  ホストコンピュータ
１０１、６０１、１１０１、１３０１、１４０１  印刷装置
１０２、６０２、１１０２、１３０２、１４０２  制御ユニット
１０３、１４０３  印刷ユニット
１０４、１４０４  ＣＰＵ
１０５、１４０５  ＲＯＭ
１０６、１４０６  ＲＡＭ
１０７、１４０７  ホストインタフェースデバイス
１０８、１４０８  ビデオインタフェースデバイス
１０９、１４０９  コマンドインタフェースデバイス
１１０  ディスクインタフェースデバイス
１１１  オペレータパネルインタフェースデバイス
１１２  外部記憶ユニット
１１３  オペレータパネル
２０１、１１０３ａ、１１０３ｂ、１１０３ｃ、…  印刷ジョブデータ受信モジュール
２０２  印刷データ翻訳モジュール
２０３  印刷制御モジュール
２０４  オペレータパネル監視モジュール
２０５、１１０４ａ、１１０４ｂ、１１０４ｃ、…  受信バッファ
２０６  ジョブ記述子スタック
３００  印刷ジョブポインタ
３０１、３０２、８０１、１２０１  ジョブ記述子
３０１ａ、３０２ａ、８０１ａ、１２０１ａ  ページ記述子リスト
３０１ｂ、３０２ｂ、８０１ｂ、１２０１ｂ  ジョブ終端検出フラグ
３０１ｃ、３０２ｃ、８０１ｃ、１２０１ｃ  印刷中断フラグ
３０１ａ−１〜３０１ａ−ｎ、３０２ａ−１〜３０２ａ−ｎ  ページ記述子
３０１ａ−１ａ  外部記憶フラグ
３０１ａ−１ｂ  格納位置ポインタ
６０３  ビデオデータ格納モジュール
８０１ｄ、１２０１ｄ  ページ記述子総数
８０１ｅ、１２０１ｅ  印刷ジョブデータ格納位置ポインタ
９００−１〜９００−２  印刷ジョブデータ
１２０１ｆ  ホストインタフェース識別子
１３０３  ホストインタフェース監視モジュール
【図１】
0004364475.tif 000002
【図２】
0004364475.tif 000003
【図３】
0004364475.tif 000004
【図４】
0004364475.tif 000005
【図５】
0004364475.tif 000006
【図６】
0004364475.tif 000007
【図７】
0004364475.tif 000008
【図８】
0004364475.tif 000009
【図９】
0004364475.tif 000010
【図１０】
0004364475.tif 000011
【図１１】
0004364475.tif 000012
【図１２】
0004364475.tif 000013
【図１３】
0004364475.tif 000014
【図１４】
0004364475.tif 000015