(57)【要約】【課題】  複数部数印刷する場合、ラスタライズ後のイメージデータを１ジョブ分記憶して繰り返し使用する方法があり、更に、メモリフルが発生した場合、ホストに再送要求を出すという方法があるが、再送の間に他のジョブを受信すると、先に受信したジョブと後に受信したジョブの印刷結果が混ざってしまうという問題がある。【解決手段】  ジョブＡ（大量ページ複数部数）の再送の間にジョブＢに割り込まれてしまってもプリンタコントローラはジョブＡが複数部数であることを認識し、ジョブＢを処理せず、ジョブＡ（２部目）を処理する手段を有する。【選択図】  図７
2007055024.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された情報処理装置から受信した印刷データに応じて印刷処理を行う印刷システムであって、
印刷装置は、印刷データを受信する受信手段と、前記印刷データを解析する解析手段と、解析の結果に応じて印刷イメージデータを生成するイメージデータ生成手段と、前記イメージデータを記憶する記憶手段と、前記イメージデータに従って用紙に印刷する印刷手段を有し、
同じ印刷データを複数部数印刷する際、前記記憶手段に記憶されたイメージデータを使用して印刷を行う手段を有し、前記記憶領域の容量を越えた場合、情報処理装置に対して印刷データの再送信を要求する手段を有するものであって、
情報処理装置は前記再送信要求に応じて印刷データの再送信手段を有する印刷システムにおいて、
再送信要求を情報処理装置に送信し、情報処理装置から再送信データを受信する間に他の印刷データを受信した場合、再送信データを優先させて印刷する制御手段を有することを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に関するものであり、より具体的には、複数部数印刷時に、生成したイメージデータを記憶し、2部目以降は前記記憶されたイメージデータを使用して印刷を行う機能を有する印刷装置に関するものである。
【背景技術】
【０００２】
特開平１０−３１６７３０号公報に開示されている技術では、ラスタライズしたイメージデータをデータ記憶装置に格納し、データ記憶装置に格納したイメージデータを用いて2部目以降を印刷することによって、ラスタライズ処理を部数回繰り返すことなく複数部数印刷を行うことが可能である。
【０００３】
また、特開平１１−０６４３９１号広報に開示されている画像記録システムは、画像記録装置がデータの再送信要求を画像データ供給装置に送信し、画像データ供給装置は印刷データを再送信することにより、複数部数印刷を行う際に、印刷データを記憶しきれなかった場合に印刷データを再送信することによって2部目以降を印刷することが可能である。
【特許文献１】特開平１０−３１６７３０号公報
【特許文献２】特開平１１−０６４３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特開平１０−３１６７３０広報、および、特開平１１−０６４３９１広報に記載の技術では、イメージデータ格納領域がいっぱいになり、印刷データの再送要求をホストコンピュータ１に送信し、ホストコンピュータ１が印刷データを再送信する間に、他のホストコンピュータ２から別の印刷データが送信されてきた場合の処理は考慮されておらず、上記のような場合、ホストコンピュータ１から送信されたジョブの印刷物と、ホストコンピュータ２から送信されたジョブの印刷物が混ざってしまうという問題があった。
【課題を解決するための手段】
【０００５】
上記の課題を解決するため、本発明の印刷システムは、
印刷装置は、印刷データを受信する受信手段と、前記印刷データを解析する解析手段と、解析の結果に応じて印刷イメージデータを生成するイメージデータ生成手段と、前記イメージデータを記憶する記憶手段と、前記イメージデータに従って用紙に印刷する印刷手段を有し、
同じ印刷データを複数部数印刷する際、前記記憶手段に記憶されたイメージデータを使用して印刷を行う手段を有し、前記記憶領域の容量を越えた場合、情報処理装置に対して印刷データの再送信を要求する手段を有するものであって、
情報処理装置は前記再送信要求に応じて印刷データの再送信手段を有する印刷システムにおいて、
再送信要求を情報処理装置に送信し、情報処理装置から再送信データを受信する間に他の印刷データを受信した場合、再送信データを優先させて印刷する制御手段を有する。
【発明の効果】
【０００６】
以上述べたように本発明によれば、イメージデータ格納領域がいっぱいになり、印刷データの再送要求をホストコンピュータ１に送信し、ホストコンピュータ１が印刷データを再送信する間に、他のホストコンピュータ２から別の印刷データが送信されてきた場合、ホストコンピュータ１から送信されたジョブの印刷物と、ホストコンピュータ２から送信されたジョブの印刷物が混ざることなく、ホストコンピュータ１の印刷を優先して行うことが可能となる。
【発明を実施するための最良の形態】
【０００７】
図1は、本発明の１つの実施形態に係る印刷装置のシステム構成の概略を示す図である。図において、情報処理装置101は、例えば、コンピュータであり、画像情報の供給源、あるいはプリンタの制御装置として機能する。この実施の形態においては、印刷装置102として、レーザビームプリンタ（プリンタ）を用いている。本実施形態において適用される印刷装置は、レーザビームプリンタに限られるものではなく、インクジェットプリンタ等他のプリント方式のプリンタでもよいことは言うまでもない。
【０００８】
プリンタコントローラ103は、情報処理装置101から供給される画像情報（例えば、イメージデータ、ページ記述言語等）に基づいて、ページ毎にラスタデータを生成し、プリンタエンジン105に送出する。
【０００９】
プリンタエンジン105は、プリンタコントローラ103から供給されるラスタデータに基づいて、感光ドラム上に潜像を形成し、その潜像を記録媒体上に転写・定着（電子写真方式）することにより画像を記録する。
【００１０】
パネル部104は、ユーザインタフェースとして使用される。ユーザは、パネル部104を操作することにより、所望の動作を指示することができる。
【００１１】
図2は、印刷装置102の構成を説明する断面図である。図において、201は、プリンタ筐体である。202は、ユーザが各種指示を与えるためのスイッチ、メッセージやプリンタの設定内容等を表示するためのLED表示器やLCD表示器等が配された操作パネルであり、図1に示すパネル部104の一態様である。203は、ボードを収容部であり、プリンタコントローラ103及びプリンタエンジン105の電子回路部分を構成するボードを収容する。
【００１２】
220及び250は、用紙（記録媒体）Sを保持する用紙カセットであり、不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。221及び251は、カセットクラッチであり、それぞれ用紙カセット220及び250上に載置された用紙Sの最上位の一枚を取り出して、取り出した用紙Sを不図示の駆動手段から伝達される駆動力によって給紙ローラ222及び252まで搬送するカムを有する。このカムは、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙Sを給紙する。221s及び251sは用紙検知センサで、それぞれ用紙カセット220及び250に保持されている用紙Sの量を検知する。
【００１３】
給紙ローラ222は、用紙Sの先端部をレジストシャッタ224まで搬送するローラである。また、給紙ローラ252は、用紙Sの先端部を給紙ローラ222まで搬送するローラである。260は、オプション給紙ローラ（給紙中継搬送ローラ）であり、不図示の給紙オプションユニットから給紙された用紙Sをプリンタ102本体内へ供給する。224は、レジストシャッタであり、用紙Sを押圧することにより給紙を停止することができる。
【００１４】
231は、手差しトレイであり、225は、手差し給紙クラッチである。給紙クラッチ225は、用紙Sの先端をレジストシャッタ224まで搬送するために使用される。画像記録に供する用紙Sは、用紙カセット220及び250及び手差しトレイ225のいずれかの給紙手段を選択して給紙される。
【００１５】
プリンタエンジン105は、プリンタコントローラ103と所定の通信プロトコルにしたがって通信を行い、プリンタコントローラ部103からの指示にしたがって用紙カセット220及び250及び手差しトレイ225の中からいずれかの給紙手段を選択し、印刷の開始指示に応じて該当する給紙手段よりレジストシャッタ224まで用紙Sを搬送する。なお、プリンタエンジン105は、給紙手段、潜像の形成、転写、定着等の電子写真プロセスに関する機構、排紙手段及びそれらの制御手段を含む。
204は、感光ドラム205やトナー保持部等を有する画像記録部であり、電子写真プロセスにより、用紙S上にトナー像を形成する。一方、206は、レーザスキャナ部であり、画像記録部にレーザビームによる画像情報を供給する。
【００１６】
レーザスキャナ部206において、207は、レーザユニットであり、ビデオコントローラ203から送出される画像信号（/VIDEO信号）に応じて、内蔵の半導体レーザを駆動し、レーザビームを発射する。レーザユニット207から発せられたレーザビームは、ポリゴンミラー（回転多面鏡）208により走査され、結像レンズ群209及び反射ミラー211を介して感光ドラム205上に潜像を形成する。210は、ビーム検出器で、レーザユニット207から発せられたレーザビームを検知して主走査同期信号を出力する。212は、光量センサで、レーザユニット207から発せられたレーザビームの光量を検知する。
【００１７】
また、画像記録部204において、241は、一次帯電器で、感光ドラム205上を均一に帯電させる。240は、現像器で、一次帯電器241により帯電され、レーザスキャナ部206によりレーザ露光された感光ドラム205に形成された潜像をトナー現像する。244は、転写帯電器で、現像器240により現像された感光ドラム上のトナー像をレジストローラ223により給紙される用紙Sに転写する。243は、クリーナで、感光ドラム205上の残存トナーを取り除く。242は、前露光ランプで、感光ドラム205を光除電する。226は、定着器で、画像記録部204により用紙Sに形成されたトナー画像を記録紙Sに熱定着させる。227は、搬送ローラで、用紙Sを排紙搬送する。227sは、排紙センサで、用紙Sの排紙状態を検知する。228は、排紙フラッパで、画像記録が完了した用紙Sの搬送方向をフェースダウン排紙トレイ232側に切り換えるか、不図示のフェースアップ排紙トレイあるいは不図示の排紙オプションユニット側に切り換える。229及び230は、排紙ローラで、排紙フラッパ228の切り換えにより搬送される用紙Sをフェースダウン排紙トレイ230に排紙する。230sは排紙積載量検知センサで、フェースダウン排紙トレイ230上に積載された用紙Sの積載量を検知する。
【００１８】
プリンタ102には、さらにオプションカセットや封筒フィーダ等のオプションユニットを装備することができる。
【００１９】
図3は、プリンタコントローラ103の構成例を示すブロック図である。301はパネル部104とのデータ通信を行うパネルインタフェース部である。CPU 309はパネルインタフェース部301を介して、ユーザがパネル部104において設定・指示した内容を確認することができる。
【００２０】
302はネットワークを介してホストコンピュータ等の情報処理装置101と双方向に通信接続するためのネットワークインタフェー制御部である。306はプリンタエンジン105と通信接続するためのエンジンインタフェース部である。CPU 309はエンジンインタフェース部306を介して、信号を制御し、信号の状態、すなわち、プリンタエンジン105の状態を認識することができる。
【００２１】
303は情報処理装置101より供給された画像情報に基づいて、プリンタエンジン105に供給するラスタデータを生成（ラスタライズ）する画像データ発生部である。305は生成したラスタデータを一時的に保持するための画像メモリである。309はROM 304に保持された制御プログラムコードに基づいて、CPUバス311に接続されたデバイスを制御するCPUである。307はCPU 309が使用する一時記憶用メモリとしてのRAMである。310は例えば、濃度補正テーブル等の制御情報を保持するための不揮発性メモリで構成される。308はDMA制御部であり、CPU 309からの指示により画像メモリ305内のラスタデータをエンジンインタフェース部306に転送する。
【００２２】
311はアドレス、データ、コントロールバスを含むCPUバスである。パネルインタフェース部301、ホストインタフェース部302、画像データ発生部303、ROM 304、画像メモリ305、エンジンインタフェース部306、RAM 307、DMA制御部308、CPU 309及びEEPROM 310はそれぞれCPUバス311に接続されたすべてのデバイスにアクセス可能である。
【００２３】
図４はソフトウェアの構造を示す図である。ホストコンピュータ101とプリンタ本体102はインタフェースケーブルを介して接続されている。プリンタコントローラ103の内部はソフトウェアの構造を示している。ネットワークインタフェース制御部401はホストコンピュータ101との通信を司る部分であり、通信プロトコルの解析を行い、ホストコンピュータから入力されたデータを受信し、受信したデータを受信バッファ402に格納する。受信バッファ402にデータが格納されると解析部403が動作する。解析部403は受信バッファ402に格納されているデータを読み込み、データを解析して各コマンドに対応するオブジェクト（中間コード）を生成し中間バッファ404に格納する。本実施例ではプリンタがサポートしているコマンドはPDL(Page Description Language)とするが、PDLでなくてもページ毎に印刷を行うことが可能データはすべて同様である。中間データはページ毎に管理される。中間バッファ404にデータが格納されると描画処理部405が動作する。描画処理部405は中間バッファ404から中間データをページ毎に読み出し、１ページ分の印刷イメージデータを生成しイメージバッファ406に格納する。１ページ分の印刷イメージデータが生成されると出力部407が動作する。出力部407はイメージバッファ406からイメージデータを読み出し、ビデオ信号に変換してエンジンに転送するビデオ信号をエンジンに転送することによって実際の印刷が行われる。
【００２４】
パネル部104はユーザインタフェースであり、表示部と操作部から構成される。表示部はLCD（液晶ディスプレイ）等が使用される。操作部にはキーが配置されている。タッチパネル式のディスプレイの場合、表示が操作部を兼ねる場合がある。407はパネル部104を制御する部分であり、ユーザの操作に応じた文字列の表示、画面の切り替え、設定値を他のモジュールに伝達するなどの制御を行っている。
【００２５】
409はジョブ管理部であり、機器内のジョブを管理する部分であり、ジョブの生成と消滅、状態管理、ジョブ処理順番制御などを管理する。
【００２６】
図５は複数部数印刷時の印刷装置内部の処理を説明する図である。本実施例で示す印刷装置は、複数部数印刷を行う場合、PDLデータ解析後のイメージデータを1ジョブ分メモリに記憶し、記憶したイメージデータを部数分だけ繰り返しエンジンに転送することによって複数部数の印刷を実現しているものとする。
【００２７】
複数部数印刷を実現する他の手段としてPDLデータを１ジョブ分メモリに記憶しておいてPDLデータを部数分繰り返し解析、印刷する方法があるが、解析処理を複数回（部数分）繰り返さなければならないため前記の処理方法に比べて処理速度が遅いという問題がある。
【００２８】
また、本実施例で示す印刷装置は、1部だけの印刷の場合、用紙への印刷処理を完了したページに対応するイメージデータはメモリから削除するためメモリ容量の制限を受けずに何ページのジョブでも印刷することが可能である。
【００２９】
図６は複数部数印刷時にイメージデータ記憶領域でメモリフルが発生した場合の処理を示している。ホストAはジョブA（複数部数指定のPDLデータ）を印刷装置に転送する。（601）印刷装置はジョブAの処理中（複数部数印刷中）にメモリフルが発生した場合、ホストAに対して再送信要求を示すデータ（コマンド）を送信する。（602）再送信要求を受信したホストAは同じデータを再度転送する。(603)部数が3部以上ある場合、同じ処理を繰り返し、所望する部数分の印刷が完了した場合、印刷装置は印刷完了を示すデータをホストAに送信する。印刷完了を受信したホストAはジョブAのPDLデータをメモリ上から削除する。
【００３０】
図７は本発明の課題を説明する図である。ホストAはジョブA（複数部数指定のPDLデータ）を印刷装置に転送する。（701）印刷装置はジョブAの処理中（複数部数印刷中）にメモリフルが発生した場合、ホストAに対して再送信要求を示すデータ（コマンド）を送信する。（702）再送信要求を受信したホストAは同じデータを再度転送する(703)が、ホストAが再送信する間に他のホストからジョブBが送信される場合がある。この場合、ジョブAの1部目とジョブAの2部目の間にジョブBの印刷が混ざって出力されてしまうという問題がある。本発明は上記問題を解決するための発明である。
【００３１】
図８は本実施例で示される印刷装置の内部処理を示す図である。図７で複数のホスト（ホストAとホストB）から受信できることを説明したが、図８は複数のホストからジョブを同時受信するための仕組みを説明する図である。ホストA(801)、ホストB(802)、ホストC(803)がネットワーク上に存在し、それぞれジョブを送信してくる場合、印刷装置内のジョブを認識する部分（プリプロセッサ）はそれぞれのジョブを認識し、ジョブ管理テーブル900に登録する。プリプロセッサはPDL解析部（プロセッサ）の前段に位置し、PDLの中身までは解析しないが、ジョブチケット情報だけを解析するモジュールであり、複数のタスクを持ちそれぞれのタスクが独立してジョブチケット解析処理を行うので同時にジョブを受信することが可能である。ただし、同時受信可能なホストの数は内部のタスクの最大数によって決まり有限である。プリプロセッサが受信したデータは受信バッファ402に格納される。受信バッファ402は複数の異なるジョブを記憶できるようになっている。ホストA、B、Cから転送されたジョブは論理的に別の領域に記憶される。（402-1,402-2,403-3）PDL解析部403は複数のジョブを平行処理することはできない。図８で示す受信バッファ402-1,402-2,402-3のうちいずれかを選択し、選択した受信バッファのジョブ少なくとも1ジョブ分解析し終わらないと他の受信バッファを参照しない。PDL解析部403は解析の結果生成されたイメージデータを406のイメージバッファに記憶する。イメージデータはエンジン105に転送され印刷が行われる。ジョブ管理部409はPDL解析部が次にどの受信バッファを参照すべきかを制御している。
【００３２】
図９はジョブ管理テーブルを示す図である。ジョブ管理テーブルはジョブを管理するために使用するテーブルであり、本実施例のジョブ管理テーブルにはジョブ毎の属性として、ジョブ処理順番901、ジョブID902、ジョブ名903、部数904、再送カウント905、受信バッファID 906を記憶している。このうち、ジョブID902、ジョブ名903、部数904は、ホスト（アプリケーション）が決定してジョブチケット情報としてPDLデータに付加して転送するものである。ジョブ処理順番901、再送カウント905、受信バッファID 906は印刷装置側で決定して設定するものである。
【００３３】
ジョブ処理順番901とはPDL解析処理部がPDL解析を行う（印刷される）順番を示している。図9に示される例の場合、"JOB-A"の一部目、"JOB-A"の2部目、"JOB-B"の順番に印刷されることを示している。ジョブID(902)は各ジョブを識別するための識別子である。ジョブIDはホスト（アプリケーション）が決定する。ホスト（アプリケーション）は他のホストとの間でもジョブIDがユニークとなるようなプログラムを持つものとする。（例：UUIDのようにPC間で固有な数値を発生させるプログラム）ただし、再送要求が発生した場合は、同じジョブIDで送信する。（ホストは1部目と全く同じデータを再送信する）印刷装置側は再送要求を行ったこと（メモリフルが発生したこと）を記憶していて同じジョブIDのジョブが送られてきた場合は再送信であることを認識する。ジョブ名903は人間がジョブを識別するための文字列であり、操作パネル、ジョブリストプリント、Webページ等のユーザインタフェースに表示する際に使用される。部数904はユーザが指定する該ジョブの印刷部数である。再送カウントは再送が発生した場合の何回目の再送信（何部目）であるかを示す数値である。1部だけの印刷の場合は常に１である。受信バッファIDは図8で示される論理受信バッファを示すIDであり、該ジョブに対応するPDLデータが格納されている場所（受信バッファ）を示している。PDL解析部は本IDを参照してデータを読み込むべき受信バッファを決定するものとする。
【００３４】
図１０はジョブ・データ（印刷データ）のデータ構造を示す図である。ジョブデータ1000はジョブ属性情報（ジョブチケット）1001と、PDLデータ1002から構成されている。図１０ではジョブ属性情報としてジョブID、ジョブ名、部数の情報が格納されている。各属性は属性IDと設定値（数値や文字列）から構成されている。本実施例では簡略化のため上記３属性だけだが、実際には多数の属性が存在する。
【００３５】
図１１は本実施例で示される印刷装置のメイン処理を示すフローチャートである。本実施例で示される印刷装置は電源投入されると初期化処理（ステップ1100）を行う。初期化処理終了後、ステップ1101のデータ入力待ちループに入る。ネットワークで接続された情報処理装置101から印刷データの入力が行われるとデータ入力待ちループ1101から抜けてステップ1102へ進む。ステップ1102では印刷データの入力処理を行う。入力したデータは受信バッファ402に記憶される。（データ入力処理1102の詳細は後述する）ステップ1103ではデータを読み込むべき論理受信バッファの選択処理を行う。（受信バッファ選択処理1103の詳細は後述する）ステップ1104では受信バッファ402に記憶されているデータを解析し、コマンドに応じて内部処理に適した形式の中間コードを生成する。（データ解析処理1104の詳細は後述する）ステップ1105では解析すべきデータ（PDLデータ）が受信バッファ404に存在するかチェックを行う。解析すべきデータが存在する場合はデータ解析処理(1103)を繰り返す。解析すべきデータが受信バッファに無くなった場合ステップ1106へ進む。
【００３６】
ステップ1106では１ページ分以上の中間コードが存在するかをチェックする。１ページ分以上の中間コードが存在する場合は、ステップ1107へ進み、１ページ分の中間コードを中間バッファ404から読み出し、中間コードからイメージデータ（ビットマップ）を生成しイメージバッファ408に格納する。
【００３７】
ステップ1106で１ページ分の中間コードが完成していない場合はステップ1101へ戻り続きのデータの入力を待つ。
【００３８】
ステップ1108ではイメージバッファ406に1ページ以上のイメージデータが存在するかをチェックする。1ページ以上のイメージデータが存在する場合、ステップ1109へ進み、１ページ分のイメージデータをビデオ信号に変換しプリンタエンジンに転送する。ビデオ信号をプリンタエンジンに転送することによって実際に用紙に印刷が行われ、用紙が排紙されるようになっている。
【００３９】
ステップ1108において1ページ以上のイメージデータが存在しない場合、ステップ1106へ戻る。
【００４０】
用紙を排紙完了したらステップ1110へ進み、該ジョブが１部のみの印刷または再送ジョブかチェックする。１部のみまたは再送ジョブの場合、ステップ1113に進み、印刷完了したページのイメージデータはメモリから削除する。複数部数印刷で、再送ジョブでない場合はステップ1111へ進む。
【００４１】
ステップ1110で複数部数か、および再送ジョブかを判断する方法としては、図9のジョブ管理テーブルを参照し、部数と再送カウントの差を用いて、差が1以上であれば複数部数であると判断するものとする。また、再送カウントが１以上であれば再送ジョブであると判断するものとする。
【００４２】
ステップ1111では複数部数印刷の1部目の印刷処理中であるかを判断する。1部目の場合、2部目以降の印刷処理に備え、ステップ1112においてイメージデータの保存処理を行う。（イメージデータ保存処理の詳細は後述する。）
説明の簡素化のためシーケンシャルなフローになっているが、実際には各処理はマルチタスクで行われる。つまり、入力処理、PDLデータ解析処理、イメージデータ生成処理、印刷処理、印刷完了後の処理はそれぞれ独立に平行して行われる。
【００４３】
図１２は図１１のステップ１１０２データ入力処理の詳細を示すフローチャートである。まず、ステップ１２０１では受信バッファに空きがあるかをチェックする。受信バッファに空きがない場合は、空きができるまで待つ、本フローチャートは説明を簡略化するためシーケンシャルに記載してあるが、実際にはマルチタスク処理が行われているので受信バッファ空き待ちの間に解析処理が進めば、受信バッファの空きができてステップ１２０１のループから抜ける。ステップ１２０２ではインタフェース制御部から受信したデータを読み込み一時記憶領域にコピーする。ステップ１２０３では前記読み込んだデータの解析処理を行う。ここで言う解析処理はPDL解析処理とは異なり、ジョブチケット部だけを解析する処理であり、PDL解析処理（プロセッシング）の前処理という意味でプリプロセッシングとも呼ばれる。ステップ１２０４ではジョブチケット解析処理の結果ジョブの先頭（ジョブの開始）を認識した場合、ステップ１２０５に進み、再送ジョブかを判断する。再送ジョブであるかは、再送要求が発生したジョブのジョブIDを記憶しておき、記憶しておいたジョブIDと読み込んだジョブのジョブIDを比較し、ジョブIDの値が同じである場合、再送ジョブであると判断する。再送ジョブである場合はステップ１２０６で再送カウントをインクリメントする。
【００４４】
ステップ１２０７ではジョブ管理テーブルにジョブの登録を行う。ジョブの登録処理はジョブ管理テーブルに新しいエントリを作成し、ジョブの属性情報を格納する処理である。ジョブ管理テーブルにジョブを登録することによって、内部的にジョブの管理が可能となる。
【００４５】
ステップ１２０８では読み込んだPDLデータを受信バッファに格納する。
【００４６】
ステップ１２０４でジョブチケット解析処理の結果、ジョブの先頭でない場合、（ジョブチケット情報でない場合）、データはPDLデータであると判断し、ステップ１２０８に進む。
【００４７】
図１３は図１１のステップ１１０３の受信バッファ選択処理の詳細を示すフローチャートである。受信バッファ選択処理とはPDL解析部がデータを読出すべき受信バッファを選択する処理である。ステップ１４０１では、再送処理中かを判断する。再送処理中であれば、ステップ１４０２へ、再送信処理中でなければ、ステップ１４０６へ進む。
【００４８】
ステップ１４０２ではジョブ管理テーブルを検索し、ステップ１４０３では検索の結果、再送要求が発生したジョブと同じジョブIDのジョブが存在するかを判断する。コントローラは再送要求が発生したことを記憶しておく必要がある。また、再送要求が発生したジョブのジョブIDを記憶しておく必要がある。ホストは再送要求に対して同じジョブIDのジョブを再送信する必要がある。つまりホストは再送信の際はデータ（ジョブチケット情報を含む）の内容を変更することなく再送信する。ステップ１４０３で再送要求が発生したジョブと同じジョブIDのジョブが存在した場合、再送信ジョブ（2部目以降）と判断し、ステップ１４０４へ進む。同じジョブIDのジョブが存在しなければ図１１のステップ１１０１へ戻る。（図１１の（１））ステップ１４０４では再送要求が発生したジョブIDとおなじジョブIDのジョブを次に処理するジョブとして選択する。ステップ１４０５では前記選択したジョブが格納されている受信バッファをPDL解析部が次にデータを読み込む受信バッファとして選択する。ジョブIDと該ジョブが格納されている受信バッファの対応はジョブ管理テーブルに記憶されている。
【００４９】
ステップ１４０６では、（再送要求が発生していない場合）ジョブ管理テーブルに格納された順番に従って次に処理すべきジョブを選択する。ステップ１４０７では選択したジョブが格納されている受信バッファをPDL解析部が次にデータを読み込む受信バッファとして選択する。
【００５０】
図１４は図１１のステップ１１０４のデータ解析処理の詳細を示すフローチャートである。まず、ステップ１３０１でデータ解析を行い、データ解析の結果、コマンドが排紙命令であれば、ステップ１３０３において、ここまで生成した中間データを1ページ分の中間データとして認識し、コマンドが排紙命令以外であれば、ステップ１３０４において、各コマンド（描画コマンド）に応じて中間コードを生成する。
【００５１】
図１５は、図１１のステップ１１１２のイメージデータ保存処理の詳細を示すフローチャートである。まず、ステップ１５０１でイメージデータ（1ページ分）を保存するのに充分な保存領域の残容量があるかを判断する。充分な残量量がある場合、ステップ１５０２へ進み、イメージデータを保存する。充分な残量量がなければ、（メモリフル発生）ステップ１５０３に進み、現在格納されているイメージデータ（印刷し終わったもの）を削除し、残容量を増やす。ステップ１５０４ではホストに対して再送信を要求するコマンドを送信する。再送信を要求するコマンドには再送回数（要求部数−１）の情報が付加されているものとする。
【００５２】
イメージデータ格納領域のメモリフル発生後はイメージデータを保存せず、１ページの印刷が完了したら対応するイメージデータを削除しながら動作するものとする。
【００５３】
図１６はホスト側の印刷処理を示すフローチャートである。ステップ１６０１では印刷指示に従ってPDLデータを生成する。ステップ１６０２では、1ジョブ分のPDLデータをメモリに格納する。（もちろんマルチスレッドで格納しながら送信してもよい）ステップ１６０３ではPDLデータを指定されたプリンタに送信する。ステップ１６０４では、1ジョブ分のPDLデータの送信が終わったか判断する。1ジョブ分の送信が終了した場合、ステップ１６０５へ進む。終了していなければ、ステップ１６０３へ戻り、送信処理を繰り返す。ステップ１６０５では印刷装置から再送信要求があったか判断する。再送信要求があった場合、１６０８へ進み、PDLデータ（ジョブチケットを含む）を再度先頭から再送要求回数分だけ送信する。（ステップ１６０９）
ステップ１６０６では印刷装置から印刷完了通知を受信したかを判断し、印刷完了通知を受信した場合、ステップ１６０７へ進み、該当ジョブのPDLデータをメモリから削除する。印刷完了通知を受信していなければ、ステップ１６０５へ戻り、印刷完了通知を待つ。
【００５４】
（他の実施例）
他の実施例１
本実施例では、ジョブIDに限らず、他のジョブの属性情報によって再送信のジョブであることを認識する場合も同様である。
【００５５】
他の実施例２
本実施例では、印刷装置はレーザービーム・プリンタに限らず、インクジェット方式のプリンタ、あるいは同じレーザービーム方式であってデジタル複合機の場合も同様である。
【図面の簡単な説明】
【００５６】
【図１】システム構成図。
【図２】プリンタの断面図。
【図３】ビデオコントローラの構成を示すブロック図。
【図４】ソフトウェア構造図。
【図５】問題点の説明図。
【図６】シーケンス図。
【図７】問題点を示すシーケンス図。
【図８】内部構造を示す図。
【図９】ジョブ管理テーブルを示す図。
【図１０】ジョブのデータ構造を示す図。
【図１１】メイン処理を示すフローチャート。
【図１２】データ入力処理を示すフローチャート。
【図１３】受信バッファ選択処理を示すフローチャート。
【図１４】PDLデータ解析処理を示すフローチャート。
【図１５】イメージデータ保存処理を示すフローチャート。
【図１６】ホスト印刷処理を示すフローチャート。
【符号の説明】
【００５７】
１０１  情報処理装置
１０２  レーザビームプリンタ
１０３  ビデオコントローラ
１０４  パネル操作部
１０５  プリンタエンジン
１０６  ネットワークインタフェースカード
３０１  パネルインタフェース部
３０２  ホストインタフェース部
３０３  画像データ発生部
３０４  ROM
３０５  画像メモリ
３０６  エンジンインタフェース部
３０７  RAM
３０８  DMA制御部
３０９  CPU
３１０  EEPROM
３１１  CPUバス
【図１】
2007055024.tif 000003
【図２】
2007055024.tif 000004
【図３】
2007055024.tif 000005
【図４】
2007055024.tif 000006
【図５】
2007055024.tif 000007
【図６】
2007055024.tif 000008
【図７】
2007055024.tif 000009
【図８】
2007055024.tif 000010
【図９】
2007055024.tif 000011
【図１０】
2007055024.tif 000012
【図１１】
2007055024.tif 000013
【図１２】
2007055024.tif 000014
【図１３】
2007055024.tif 000015
【図１４】
2007055024.tif 000016
【図１５】
2007055024.tif 000017
【図１６】
2007055024.tif 000018