(57)【要約】【課題】プリンタの障害発生時にリカバリを良好に行うことができる印刷システムを提供する。【解決手段】下位装置６０は、プリンタエンジン８０から再送信要求Ｊ１として、リカバリしたい画像データ９０Ｃに割当てられている上位装置カウント値２９を受信すると、スプール７０から該上位装置カウント値２９が割当てられている画像データ９０Ｃを読取ってプリンタエンジン８０に再送信する。読取れない場合は、再送信要求Ｊ２として、該上位装置カウント値２９を中間装置４０に送信し、該上位装置カウント値２９が割当てられた画像データ９０Ｂを中間装置４０から受信し、さらに、プリンタエンジンに再送信する。【選択図】図７
2008186094.tif 000002
【特許請求の範囲】
【請求項１】
画像データを処理する順に第１の処理単位毎にカウントして第１の処理単位毎にカウントした第１のカウント値を割当てる第１のカウント手段と、
前記第１の処理単位毎に前記第１のカウント値が割当てられた第１の画像データを記憶する第１の記憶手段と、
前記第１の記憶手段に記憶された前記第１のカウント値が割当てられた前記第１の画像データを第２の装置に送信すると共に、前記第２の装置から前記第１のカウント値を受信した場合に、前記受信した第１のカウント値が割当てられた前記第１の処理単位のデータを前記第１の記憶手段から読取って前記第２の装置に再送信する第１の送信手段と、
を含む第１の装置と、
前記第１の送信手段から送信された前記第１の画像データを処理する順に第２の処理単位毎にカウントして、第２の処理単位毎に前記第１の装置で割当てられた第１のカウント値と共に、カウントした第２のカウント値を割当てる第２のカウント手段と、
前記第２の処理単位毎に前記第２のカウント値が割当てられた第２の画像データを記憶する第２の記憶手段と、
前記第２の記憶手段に記憶された前記第２のカウント値が割当てられた前記第２の画像データを第３の装置に送信すると共に、前記第３の装置から前記第１のカウント値を受信した場合に、前記受信した第１のカウント値が割当てられた前記第２の処理単位のデータを前記第２の記憶手段から読取って再送信し、読取れない場合は前記受信した第１のカウント値を前記第１の装置に送信し、前記第１の装置から再送信された前記受信した第１のカウント値が割当てられた第１の処理単位のデータを前記第３の装置に再送信する第２の送信手段と、
を含む第２の装置と、
前記第２の送信手段から送信された前記第２の画像データを処理する順に第３の処理単位毎にカウントして、第３の処理単位毎に第１の装置で割当てられた第１のカウント値、及び前記第２の装置で割当てられた第２のカウント値と共に、カウントした第３のカウント値を割当てる第３のカウント手段と、
前記第３の処理単位毎に前記第３のカウント値が割当てられた第３の画像データを記憶する第３の記憶手段と、
前記第３の記憶手段に記憶された前記第３の画像データをプリンタエンジンに送信すると共に、前記プリンタエンジンから前記第３の画像データの再送信の要求を受信した場合に、前記再送信が要求された第３の画像データを前記第３の記憶手段から読取って再送信し、読取れない場合は前記再送信が要求された第３の画像データに対して前記第１の装置で割当てられた第１のカウント値を前記第２の装置に送信し、前記第２の装置から再送信された前記送信した第１のカウント値が割当てられた前記第２の処理単位のデータまたは、前記第１の装置から前記第２の装置へ再送信され、さらに前記第２の装置から再送信された前記送信した第１のカウント値が割当てられた第１の処理単位のデータをプリンタエンジンに再送信する第３の送信手段と、
を含む第３の装置と、
を備えた印刷システム。
【請求項２】
前記第２の装置を２以上備えた、特許請求項１に記載の印刷システム。
【請求項３】
プリンタエンジンからの前記第３の画像データの再送信の要求を検出する検出手段を備え、
前記第３の装置の前記第３の送信手段は、前記検出手段の検出結果に基づいてプリンタエンジンに再送信を実行する特許請求項１または請求項２に記載の印刷システム。
【請求項４】
前記検出手段を、第１の装置、第２の装置、または第３の装置に設けた請求項３記載の印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムに関する。
【背景技術】
【０００２】
一般に、ホストコンピュータ等の画像形成装置から画像データを受信して記録媒体に印刷するプリンタを備えた印刷システムが知られている。
【０００３】
この印刷システムでは、プリンタでジャム等の障害が発生し、画像データの印刷の中断や中止等が行われた場合、障害から復帰した後、画像形成装置からプリンタに画像データを再送するリカバリが行われる。リカバリを行うために、プリンタに設けられたジャムセンサに基づいて障害の発生したページ位置をユーザに表示し、表示に基づいてユーザがリカバリするページ（画像データ）を指示する技術が知られている（例えば、特許文献１参照）。また、印刷ジョブを中断した場合、両面印刷の有無等の印刷属性に基づいてリカバリを開始するページを判断する技術が知られている（例えば、特許文献２参照）。さらにまた、画像形成装置が印刷ジョブ中止後に再印刷を開始する位置を、プリンタが印刷を開始、あるいは完了した画像等の印刷進捗状況に基づいて指示する技術が知られている（例えば、特許文献３参照）。
【特許文献１】特開２００２−１３７４５８号公報
【特許文献２】特開２００４−００５２４５号公報
【特許文献３】特開２００４−２４０９４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、画像形成装置とプリンタとの間に中間装置を介する印刷システムの場合、各装置は、各装置固有のカウンタで、画像データを処理単位毎にカウントしてカウント値を割当て、割当てたカウント値と画像データとを下位の装置に送信するため、これらの固有のカウンタが異なっていると、同一の画像データに対して割当てられるカウント値が装置毎に異なってしまい、リカバリの指示が適切に行えなくなることがある。例えば、リカバリ時に中間装置がダウンした場合、プリンタでは、直前の装置のカウンタ値しかわからないため、リカバリしたい画像データに対して、中間装置よりも上位の画像形成装置が割当てたカウント値を認識することができないので、プリンタから画像形成装置に対して、リカバリしたい画像の画像データを適切に指示することができないため、リカバリを良好に行えない、という問題がある。
【０００５】
本発明は、上記問題を解消するためになされたもので、プリンタの障害発生時にリカバリを良好に行うことができる印刷システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の印刷システムは、画像データを処理する順に第１の処理単位毎にカウントして第１の処理単位毎にカウントした第１のカウント値を割当てる第１のカウント手段と、前記第１の処理単位毎に前記第１のカウント値が割当てられた第１の画像データを記憶する第１の記憶手段と、前記第１の記憶手段に記憶された前記第１のカウント値が割当てられた前記第１の画像データを第２の装置に送信すると共に、前記第２の装置から前記第１のカウント値を受信した場合に、前記受信した第１のカウント値が割当てられた前記第１の処理単位のデータを前記第１の記憶手段から読取って前記第２の装置に再送信する第１の送信手段と、を含む第１の装置と、前記第１の送信手段から送信された前記第１の画像データを処理する順に第２の処理単位毎にカウントして、第２の処理単位毎に前記第１の装置で割当てられた第１のカウント値と共に、カウントした第２のカウント値を割当てる第２のカウント手段と、前記第２の処理単位毎に前記第２のカウント値が割当てられた第２の画像データを記憶する第２の記憶手段と、前記第２の記憶手段に記憶された前記第２のカウント値が割当てられた前記第２の画像データを第３の装置に送信すると共に、前記第３の装置から前記第１のカウント値を受信した場合に、前記受信した第１のカウント値が割当てられた前記第２の処理単位のデータを前記第２の記憶手段から読取って再送信し、読取れない場合は前記受信した第１のカウント値を前記第１の装置に送信し、前記第１の装置から再送信された前記受信した第１のカウント値が割当てられた第１の処理単位のデータを前記第３の装置に再送信する第２の送信手段と、を含む第２の装置と、前記第２の送信手段から送信された前記第２の画像データを処理する順に第３の処理単位毎にカウントして、第３の処理単位毎に第１の装置で割当てられた第１のカウント値、及び前記第２の装置で割当てられた第２のカウント値と共に、カウントした第３のカウント値を割当てる第３のカウント手段と、前記第３の処理単位毎に前記第３のカウント値が割当てられた第３の画像データを記憶する第３の記憶手段と、前記第３の記憶手段に記憶された前記第３の画像データをプリンタエンジンに送信すると共に、前記プリンタエンジンから前記第３の画像データの再送信の要求を受信した場合に、前記再送信が要求された第３の画像データを前記第３の記憶手段から読取って再送信し、読取れない場合は前記再送信が要求された第３の画像データに対して前記第１の装置で割当てられた第１のカウント値を前記第２の装置に送信し、前記第２の装置から再送信された前記送信した第１のカウント値が割当てられた前記第２の処理単位のデータまたは、前記第１の装置から前記第２の装置へ再送信され、さらに前記第２の装置から再送信された前記送信した第１のカウント値が割当てられた第１の処理単位のデータをプリンタエンジンに再送信する第３の送信手段と、を含む第３の装置と、を備えたことを特徴とする。
【０００７】
本発明の第１の装置の第１のカウント手段は、画像データを処理する順に第１の処理単位毎にカウントし、該カウントしたカウント値を第１のカウント値として割当てる。第１の記憶手段は、前記第１のカウント値が割当てられた第１の画像データを記憶する。第１の送信手段は、前記記憶手段に記憶された前記第１のカウント値が割当てられた前記第１の画像データを第２の装置に送信すると共に、第２の装置から第１のカウント値を受信した場合に、該第１のカウント値が割当てられた前記第１の処理単位のデータを前記第１の記憶手段から読取って、第２の装置に再送信する。
【０００８】
第２の装置の第２のカウント手段は、第１の送信手段から送信された前記第１の画像データを処理する順に第２の処理単位毎にカウントし、前記第１のカウント値と共に、該カウントしたカウント値を第２のカウント値として割当てる。第２の記憶手段は、前記第２のカウント値が割当てられた第２の画像データを記憶する。第２の送信手段は、前記第２の記憶手段に記憶された前記第２のカウント値が割当てられた前記第２の画像データを第３の装置に送信すると共に、第３の装置から第１のカウント値を受信した場合に、該第１のカウント値が割当てられた前記第２の処理単位のデータを前記第２の記憶手段から読取って再送信し、読取れない場合は該第１のカウント値を第１の装置に送信し、第１の装置から再送信された該第１のカウント値が割当てられた第１の処理単位のデータを第３の装置に再送信する。
【０００９】
第３の装置の第３のカウント手段は、第２の送信手段から送信された前記第２の画像データを処理する順に第３の処理単位毎にカウントし、前記第１のカウント値及び前記第２のカウント値と共に、該カウントしたカウント値を第３のカウント値として割当てる。第３の記憶手段は、前記第３のカウント値が割当てられた第３の画像データを記憶する。第３の送信手段は、前記第３の記憶手段に記憶された前記第３の画像データをプリンタエンジンに送信すると共に、プリンタエンジンから前記第３の画像データの再送信の要求を受信した場合に、該第３の画像データを前記第３の記憶手段から読取って再送信し、読取れない場合は該第３の画像データに対して第１の装置で割当てられた第１のカウント値を第２の装置に送信し、第２の装置から再送信された該第１のカウント値が割当てられた前記第２の処理単位のデータまたは、第１の装置から第２の装置へ、さらに第２の装置から第３の装置へ再送信された該第１のカウント値が割当てられた第１の処理単位のデータをプリンタエンジンに再送信する。
【００１０】
このように本発明の印刷システムでは、プリンタエンジンから第３の画像データの再送信の要求があった場合、第３の装置の第３の記憶手段から読取れる場合は、読取って再送信する。読取れない場合は、第３の画像データに対して割当てられた第１のカウント値を第２の装置に送信し、第２の装置が、第２の記憶手段から該第１のカウント値が割当てられた第２の処理単位のデータを読取れる場合は、読取って再送信するので、該再送信された第２の処理単位のデータをプリンタエンジンに再送信することができる。
【００１１】
一方、第２の装置が、読取れない場合は、該第１のカウント値を第１の装置に送信し、第１の装置が、第１の記憶手段から該第１のカウント値が割当てられた第１の処理単位のデータを、第２の装置に再送信し、さらに第２の装置が第３の装置に再送信するので、該再送信された第１の処理単位のデータをプリンタエンジンに再送信することができる。従って、プリンタの障害発生時にリカバリを良好に行うことができる。
【００１２】
本発明では、前記第２の装置を２以上備えることができる。
【００１３】
本発明では、プリンタエンジンからの前記第３の画像データの再送信の要求を検出する検出手段を備え、前記第３の装置の前記第３の送信手段は、前記検出手段の検出結果に基づいてプリンタエンジンに再送信を実行することができる。
【００１４】
本発明では、前記検出手段は、前記第１の装置、前記第２の装置、または前記第３の装置に設けることができる。
【発明の効果】
【００１５】
以上説明したように、請求項１及び請求項２に記載の本発明によれば、リカバリを良好に行うことができる、という効果が得られる。
【００１６】
請求項３に記載の本発明によれば、再送信の実行を適切に行うことができる、という効果が得られる。
【００１７】
請求項４に記載の本発明によれば、印刷システムの構成を簡略にすることができる、という効果が得られる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１９】
図１は、本実施の形態に係る印刷システム１０の概略構成を示すブロック図である。印刷システム１０は、上位装置２０、中間装置４０、下位装置（プリンタコントローラ）６０、及びプリンタエンジン８０を備えている。
【００２０】
上位装置２０は、制御部２２及びスプール３０を備えている。制御部２２には、ＩＯＴコントローラ１６が接続されており、ＩＯＴコントローラ１６には、ユーザインターフェイス１８が接続され、ユーザの操作によって、印刷等に関する指示がなされると共に、印刷実行時の情報をユーザへ報知する。制御部２２は、ＣＰＵ２４と、ＲＯＭ（図示せず）、ＲＡＭ（図示せず）、及びＨＤＤＤ（図示せず）を含むメモリ２６と、上位装置カウンタ２８とを備えており、スプール３０が接続されている。ＣＰＵ２４では、詳細を後述する書出し処理や排紙通知受信処理等の制御処理が実行される。制御処理のプログラムは記憶媒体としてのＲＯＭに記憶されている。スプール３０には、図示しない画像形成部により形成され、上位装置カウンタ２８により上位装置カウント値が割当てられた画像データ９０Ａ（詳細後述）が蓄積される。
【００２１】
中間装置４０は、制御部４２及びスプール５０を備えている。制御部４２と上位装置２０の制御部２２とは、図示しない通信手段により、画像データ等の送受信が可能に接続されている。制御部４２は、ＣＰＵ４４と、ＲＯＭ（図示せず）、ＲＡＭ（図示せず）、及びＨＤＤＤ（図示せず）を含むメモリ４６と、中間装置カウンタ４８とを備えており、スプール５０が接続されている。ＣＰＵ４４では、詳細を後述する読込み処理や書出し処理や排紙通知受信処理等の制御処理が実行される。制御処理のプログラムは記憶媒体としてのＲＯＭに記憶されている。スプール５０には、上位装置カウント値及び中間装置カウント値が割当てられた画像データ９０Ｂ（詳細後述）が蓄積される。
【００２２】
下位装置６０は、プリンタのプリンタコントローラであり、プリンタエンジン８０の動作を制御する。下位装置６０は、制御部６２、スプール７０、及びプリントエラー検出部７４を備えている。制御部６２と中間装置４０の制御部４２とは、図示しない通信手段により、画像データ等の送受信が可能に接続されている。制御部６２は、ＣＰＵ６４と、ＲＯＭ（図示せず）、ＲＡＭ（図示せず）、及びＨＤＤＤ（図示せず）を含むメモリ６６と、下位装置カウンタ６８とを備えており、スプール７０が接続されている。ＣＰＵ６４では、詳細を後述する読込み処理やプリンタエンジン制御処理や排紙通知受信処理等の制御処理が実行される。制御処理のプログラムは記憶媒体としてのＲＯＭに記憶されている。スプール７０には、上位装置カウント値、中間装置カウント値、及び下位装置カウント値が割当てられた画像データ９０Ｃ（詳細後述）が蓄積される。また、制御部６２には、プリンタエンジン８０が接続されており、プリンタエンジン８０は、制御部６２の指示により画像データ９０Ｃに基づいて記録媒体に印刷を行う。さらに、制御部６２には、プリンタエンジン８０で発生したジャム等のプリントエラーを検出するためのプリントエラー検出部７４が接続されている。
【００２３】
次に、本実施の形態の印刷システム１０において実行される印刷処理を図２〜図１７を参照して説明する。
【００２４】
まず、上位装置２０、中間装置４０、及び下位装置６０の各々で実行される制御処理の概略を説明する。
【００２５】
図２は、上位装置２０のＣＰＵ２４で実行される制御処理のフローチャートである。図２に示す制御処理は、例えば、上位装置２０の電源投入時やＩＯＴコントローラ１６から印刷を実行する指示が制御部２２に入力されたときに実行される。
【００２６】
上位装置２０に電源が投入されると、ステップ１００では、印刷指示が入力されたか否かを判断する。否定されると待機状態となり、肯定されるとステップ１０２へ進む。ステップ１０２では、スプール３０に蓄積されている図示しない画像形成部により形成され、上位装置カウンタ２８により上位装置カウント値が割当てられたた画像データ９０Ａ（詳細後述）を中間装置４０に送信する書出し処理（詳細後述）を実行し、スプール３０に蓄積されている画像データ９０Ａを全て送信するとステップ１０４へ進む。
【００２７】
ステップ１０４では、排紙通知受信処理（詳細後述）を実行し、スプール３０に蓄積されている画像データ９０Ａを全て消去するとステップ１０６へ進み、ステップ１０６では、印刷を終了するか否かを判断する。否定されるとステップ１０２に戻り、本処理を繰返す。一方、ステップ１０４の排紙通知受信処理で最終フラグがセットされた場合（詳細後述）等は肯定されて、本処理を終了する。
【００２８】
また、図３は、中間装置４０のＣＰＵ４４で実行される制御処理のフローチャートである。図３に示す制御処理は、例えば、中間装置４０の電源投入時や上位装置２０から画像データ９０Ａを制御部４２が受信したときに実行される。
【００２９】
制御部４２に電源が投入されると、ステップ１２０では、印刷指示が入力されたか否かを判断する。否定されると待機状態となり、肯定されるとステップ１２１へ進む。ステップ１２１では、上位装置２０で実行される制御処理のステップ１０２の書出し処理により送信された画像データ９０Ａを受信して、受信した画像データ９０Ａを中間装置４０で処理する処理単位毎に、中間装置カウンタ４８でカウントして、中間装置カウント値を割当て、スプール５０に上位装置カウント値及び中間装置カウント値が割当てられたた画像データ９０Ｂを蓄積する読込み処理（詳細後述）を実行する。
【００３０】
次のステップ１２２では、ステップ１２１の処理によりスプール５０に蓄積された上位装置カウント値及び中間装置カウント値が割当てられたた画像データ９０Ｂを下位装置６０に送信する書出し処理（詳細後述）を実行し、スプール５０に蓄積されている画像データ９０Ｂを全て送信するとステップ１２４へ進む。
【００３１】
ステップ１２４では、排紙通知受信処理（詳細後述）を実行し、スプール５０に蓄積されている画像データ９０Ｂを全て消去するとステップ１２６へ進み、ステップ１２６では、印刷を終了するか否かを判断する。否定されるとステップ１２１に戻り、本処理を繰返す。一方、ステップ１２４の排紙通知受信処理で最終フラグがセットされた場合（詳細後述）等は肯定されて、本処理を終了する。
【００３２】
さらに、図４は、下位装置６０のＣＰＵ６４で実行される制御処理のフローチャートである。図４に示す制御処理は、例えば、下位装置６０の電源投入時や中間装置４０から画像データ９０Ｂを制御部６２が受信したときに実行される。
【００３３】
制御部６２に電源が投入されると、ステップ１４０では、印刷指示が入力されたか否かを判断する。否定されると待機状態となり、肯定されるとステップ１４１へ進む。ステップ１４１では、中間装置４０で実行される制御処理のステップ１２２の書出し処理により送信された画像データ９０Ｂを受信して、受信した画像データ９０Ｂを下位装置６０で処理する処理単位毎に、下位装置カウンタ６８でカウントして、下位装置カウント値を割当て、スプール７０に上位装置カウント値、中間装置カウント値、及び下位装置カウント値が割当てられたた画像データ９０Ｃを蓄積する読込み処理（詳細後述）を実行する。
【００３４】
次のステップ１４２では、ステップ１４１の処理によりスプール７０に蓄積された上位装置カウント値、中間装置カウント値、及び下位装置カウント値が割当てられた画像データ９０Ｃの印刷をプリンタエンジン８０に実行させるためのプリンタエンジン制御処理（詳細後述）を実行し、スプール７０に蓄積されている画像データ９０Ｃ全ての印刷処理をプリンタエンジン８０に指示するとステップ１４４へ進む。
【００３５】
ステップ１４４では、排紙通知受信処理（詳細後述）を実行し、スプール７０に蓄積されている画像データ９０Ｃを全て消去するとステップ１４６へ進み、ステップ１４６では、印刷を終了するか否かを判断する。否定されるとステップ１４１に戻り、本処理を繰返す。一方、ステップ１４４の排紙通知受信処理で最終フラグがセットされた場合（詳細後述）等は肯定されて、本処理を終了する。
【００３６】
ここで、下位装置６０のプリントエラー検出部７４で実行されるジャム等のプリントエラーを検出するためのエラー検出処理を図５を参照して説明する。図５に示すエラー検出処理は、例えば、下位装置６０の電源投入時に実行される。
【００３７】
下位装置６０に電源が投入されるとステップ２００では、プリントエラーを検出したか否か判断する。本実施の形態では、プリントエラーの検出は、例えば、プリンタエンジン８０の稼働状態をモニタして、紙詰まりやトナー切れ等の異常を検知することにより検出している。否定されるとステップ２０８へ進み、肯定されるとステップ２０２へ進む。ステップ２０２では、制御部６２へプリントエラーが生じたことを通知する。
【００３８】
次のステップ２０４では、リカバリが必要か否かを判断する。プリントエラー発生後、そのまま続けて、印刷処理の実行が可能な場合は否定されてステップ２０８へ進む。一方、制御部６２からプリンタエンジン８０に画像データ９０Ｃの再送が必要な場合は、肯定されて、ステップ２０６へ進み、制御部６２へリカバリが必要な旨を通知する。
【００３９】
次のステップ２０８では、本処理を終了するか否かを判断する。否定されるとステップ２００に戻り、エラー検出処理を繰返す。一方、例えば、印刷処理を終了する旨の指示が入力された場合等は肯定され、本処理を終了する。
【００４０】
ここで、本実施の形態の印刷システム１０全体から見た各処理の流れを図６及び図７を参照して説明する。
【００４１】
まず、図６を参照して本実施の形態の印刷システム１０における通常時に各装置で実行される書出し処理、読込み処理、及び排紙通知受信処理を説明する。上位装置２０のスプール３０には、図示しない画像形成部により形成され、上位装置カウンタ２８により上位装置カウント値２９が割当てられた画像データ９０Ａが蓄積されている。上位装置２０が書出し処理Ｌ１により、上位装置カウント値２９が割当てられた画像データ９０Ａを中間装置４０に送信すると、中間装置４０では、読込み処理Ｍ１により、これらを受信して、受信した画像データ９０Ａを処理する順（処理単位毎）に中間装置カウンタ４８でカウントして、中間装置カウント値４９を割当てて、スプール５０に蓄積する。これにより、スプール５０には、上位装置カウント値２９及び中間装置カウント値４９が割当てられた画像データ９０Ｂが蓄積された状態となる。なお、各装置が画像データを処理する処理単位は、例えば、１頁分の画像毎や１枚の記録媒体に印刷される画像（両面印刷を実行する場合は、２頁分の画像を含む）毎等があり、各装置毎に異なっていても、同一であっても、いずれでも良い。
【００４２】
中間装置４０が書出し処理Ｌ２により、上位装置カウント値２９及び中間装置カウント値４９が割当てられた画像データ９０Ｂを下位装置６０に送信すると、下位装置６０では、読込み処理Ｍ２により、これらを受信して、受信した画像データ９０Ｂを処理する順（処理単位毎）に下位装置カウンタ（プリンタカウンタ）６８でカウントして、下位装置カウント値６９を割当てて、スプール７０に蓄積する。これにより、スプール７０には、上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９が割当てられた画像データ９０Ｃが蓄積された状態となる。
【００４３】
下位装置６０が上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９が割当てられた画像データ９０Ｃをプリンタエンジン８０にプリンタエンジン制御処理Ｋにより送信し、記録媒体への印刷処理を指示することにより、プリンタエンジン８０は、画像データ９０Ｃに基づいて記録媒体に印刷を行う。
【００４４】
プリンタエンジン８０で画像データ９０Ｃに基づいた印刷が実行されると、下位装置６０では、排紙通知受信処理Ｎ１により、印刷が実行されたページ（画像データ９０Ｃ）を通知する排紙通知（上位装置カウント値２９）をプリンタエンジン８０から受信する。下位装置６０は、排紙通知受信処理Ｎ１により上位装置カウント値２９を受信すると、受信した上位装置カウント値２９が割当てられている画像データ９０Ｃをスプール７０から消去する。また、中間装置４０に排紙通知（受信した上位装置カウント値２９）を送信する。
【００４５】
中間装置４０は、排紙通知受信処理Ｎ２により、排紙通知（上位装置カウント値２９）を受信すると、受信した上位装置カウント値２９が割当てられている画像データ９０Ｂをスプール５０から消去する。また、上位装置２０に排紙通知（受信した上位装置カウント値２９）を送信する。
【００４６】
上位装置２０は、排紙通知受信処理Ｎ３により、排紙通知（上位装置カウント値２９）を受信すると、受信した上位装置カウント値２９が割当てられている画像データ９０Ａをスプール３０から消去する。
【００４７】
さらに、図７を参照して本実施の形態の印刷システム１０におけるリカバリ時に各装置で実行される処理を説明する。
【００４８】
プリンタエンジン８０で紙詰まりやトナー切れ等のジャムによりプリントエラーが発生し、リカバリ（画像データ９０Ｃの再送）処理が必要になると、下位装置６０は、プリンタエンジン８０から再送信要求Ｊ１として、リカバリしたい画像データ９０Ｃに割当てられている上位装置カウント値２９を受信する。
【００４９】
下位装置６０は、上位装置カウント値２９を受信すると、スプール７０から受信した上位装置カウント値２９が割当てられている画像データ９０Ｃを読取れる場合は読取って、プリンタエンジン制御処理Ｋにより、読取った画像データ９０Ｃをプリンタエンジン８０に再送信する。
【００５０】
一方、再送信要求Ｊ１として、上位装置カウント値２９を受信したとき、スプール７０の故障等により、画像データ９０Ｃを読取れない場合は、下位装置６０は、中間装置４０にプリンタエンジンより受信した上位装置カウント値２９を再送信要求Ｊ２として送信する。中間装置４０は、上位装置カウント値２９を受信すると、スプール５０から受信した上位装置カウント値２９が割当てられている画像データ９０Ｂを読取って、書出し処理Ｌ２により、該画像データ９０Ｂを下位装置６０に再送信する。下位装置６０は、該画像データ９０Ｂを読込み処理Ｍ２により受信して、スプール７０に蓄積する。そして、蓄積された該画像データ９０Ｃをプリンタエンジン制御処理Ｋによりプリンタエンジン８０に再送信する。
【００５１】
このように、リカバリ処理することにより、プリンタエンジン８０は、再送信された画像データ９０Ｃに基づいて記録媒体に印刷を実行することができる。なお、中間装置においても、受信した上位装置カウント値２９が割当てられている画像データ９０Ｂをスプール５０から読取れない場合は、受信した上位装置カウント値２９を上位装置２０に送信し、上記と同様にして、リカバリ処理を行えば良い。
【００５２】
一方、従来の印刷システム全体から見た各処理の流れを図８及び図９を参照して説明する。
【００５３】
まず、図８を参照して従来の印刷システムにおける書出し処理、読込み処理、及び排紙通知受信処理を説明する。上位装置２０’のスプール３０’には、画像形成部により形成され、上位装置カウンタ２８’により上位装置カウント値２９’が割当てられた画像データ９０Ａ’が蓄積されている。上位装置２０’が上位装置カウント値２９’が割当てられた画像データ９０Ａ’を中間装置４０’に書出し処理Ｌ１’により送信すると、中間装置４０’では、読込み処理Ｍ１’によりこれらを受信し、受信した画像データ９０Ａ’を処理する順に中間装置カウンタ４８’で中間装置カウント値４９’を割当てて、スプール５０’に蓄積する。これにより、スプール５０’には、上位装置カウント値２９’及び中間装置カウント値４９’が割当てられた画像データ９０Ｂ’が蓄積された状態となる。
【００５４】
中間装置４０’が中間装置カウント値４９’が割当てられた画像データ９０Ｂ’を下位装置６０’に書出し処理Ｌ２’により送信すると、下位装置６０’では、読込み処理Ｍ２’によりこれらを受信し、受信した画像データ９０Ｂ’を処理する順に下位装置カウンタ（プリンタカウンタ）６８’で下位装置カウント値６９’を割当てて、スプール７０’に蓄積する。これにより、スプール７０’には、中間装置カウント値４９’及び下位装置カウント値６９’が割当てられた画像データ９０Ｃ’が蓄積された状態となる。
【００５５】
下位装置６０’が下位装置カウント値６９’が割当てられた画像データ９０Ｃ’をプリンタエンジン８０’にプリンタエンジン制御処理Ｋ’により送信し、記録媒体への印刷処理を指示することにより、プリンタエンジン８０’では、画像データ９０Ｃ’に基づいて記録媒体に印刷を行う。
【００５６】
プリンタエンジン８０’で画像データ９０Ｃ’に基づいた印刷が実行されると、下位装置６０’では、印刷が実行されたページ（画像データ９０Ｃ’）を通知する排紙通知（下位装置カウント値６９’）をプリンタエンジン８０’から受信するための排紙通知受信処理Ｎ１’が実行される。
【００５７】
下位装置６０’は、排紙通知受信処理Ｎ１’により下位装置カウント値６９’を受信すると、受信した下位装置カウント値６９’が割当てられている画像データ９０Ｃ’をスプール７０’から消去する。また、中間装置４０’に排紙通知（消去した画像データ９０Ｃ’に割当てられた中間装置カウント値４９’）を送信する。
【００５８】
中間装置４０’は、排紙通知受信処理Ｎ２’により排紙通知（中間装置カウント値４９’）を受信すると、受信した中間装置カウント値４９’が割当てられている画像データ９０Ｂ’をスプール５０’から消去する。また、上位装置２０’に排紙通知（消去した画像データ９０Ｂ’に割当てられた上位装置カウント値２９’）を送信する。
【００５９】
上位装置２０’は、排紙通知受信処理Ｎ３’により排紙通知（上位装置カウント値２９’）を受信すると、受信した上位装置カウント値２９’が割当てられている画像データ９０Ａ’をスプール３０’から消去する。
【００６０】
さらに、図９を参照して従来の印刷システムにおけるリカバリ時に各装置で実行される処理を説明する。
【００６１】
プリンタエンジン８０’で紙詰まりやトナー切れ等のジャムによりプリントエラーが発生し、リカバリ（画像データ９０Ｃ’の再送）処理が必要になると、下位装置６０’は、プリンタエンジン８０’から再送信要求Ｊ１’として、リカバリしたい画像データ９０Ｃ’に割当てられている下位装置カウント値６９’を受信する。
【００６２】
下位装置６０’は、下位装置カウント値６９’を受信すると、スプール７０’から受信した下位装置カウント値６９’が割当てられている画像データ９０Ｃ’を読取れる場合は読取って、プリンタエンジン制御処理Ｋ’により、読取った画像データ９０Ｃ’をプリンタエンジン８０’に再送信する。このように、リカバリ処理することにより、プリンタエンジン８０’は、再送信された画像データ９０Ｃ’に基づいて記録媒体に印刷を実行することができる。
【００６３】
一方、再送信要求Ｊ１’として、下位装置カウント値６９’を受信したとき、スプール７０’の故障等により、画像データ９０Ｃ’を読取れない場合は、下位装置６０’は、中間装置４０’に再送信要求Ｊ２’として、中間装置カウント値４９’を送信することができないため、プリンタエンジン８０’から受信した下位装置カウント値６９’を送信する。しかしながら、中間装置４０’では、下位装置カウント値６９’とスプール５０’に蓄積されている画像データ９０Ｂ’との対応がわからないため画像データ９０Ｂ’をスプール５０’から読取って再送することができない。従って、プリンタエンジン８０’では、リカバリ（印刷続行）を実行することができない。このように従来の印刷システムでは、リカバリを良好に行えない場合がある。
【００６４】
次に、上位装置２０、中間装置４０、及び下位装置６０において実行される各処理の詳細を図１０〜図１７を参照して説明する。
【００６５】
（上位装置書出し処理）
まず、上位装置２０において実行される書出し処理Ｌ１（図２のステップ１０２）を図１０を参照して詳細に説明する。図１０は、上位装置２０のＣＰＵ２４で実行される書出し処理Ｌ１のフローチャートである。
【００６６】
まず、ステップ３００では、上位装置カウンタ２８の上位装置カウント値２９を初期化する。次のステップ３０２では、画像データ９０Ａがスプール３０に蓄積されているか否か判断する。画像データ９０Ａが蓄積されていない場合は否定され、ステップ３１２へ進む。一方、蓄積されている場合は肯定され、ステップ３０４へ進む。
【００６７】
ステップ３０４では、上位装置カウンタ２８の現在セットされている上位装置カウント値２９に対応する画像データ９０Ａ及び画像データ９０Ａに割当てられている上位装置カウント値２９をスプール３０から読出して、次のステップ３０６では、読出した上位装置カウント値２９を中間装置４０に送信する。そして、次のステップ３０８では、読出した画像データ９０Ａを中間装置４０に送信する。
【００６８】
次のステップ３１０では上位装置カウンタ２８の上位装置カウント値２９をインクリメントしてステップ３１２へ進む。
【００６９】
ステップ３１２では、プリントエラーが発生したか否かを判断する。本実施の形態では、中間装置４０からプリントエラーが発生した旨の通知を受信した場合に、プリントエラーが発生したと判断する。通知を受信しない場合は、否定されてステップ３２６へ進み、一方、通知を受信した場合は、肯定されてステップ３１４へ進む。
【００７０】
ステップ３１４では、書出し処理を一時停止する。これにより、プリンタエンジン８０で記録媒体への印刷が再開できる状態（プリントエラーの発生原因が取り除かれた状態）になるまで、待機状態になる。各装置間で画像データ９０等を送受信するための通信路の状態や、プリンタエンジン８０からの通知等に基づいて、プリンタエンジン８０で記録媒体への印刷が再開できる状態になった事を検知すると、書出し処理を再開する。
【００７１】
次のステップ３１６では、リカバリが必要か否か、即ち、画像データ９０Ａを中間装置４０に再送するか否かを判断する。本実施の形態では、画像データ９０Ａを再送しなくてもプリンタエンジン８０が記録媒体に印刷を続行できる場合等、リカバリが不要な場合は否定されて、ステップ３２６へ進む。一方、中間装置４０からリカバリの要求（図１２に詳細を後述する中間装置４０の読込み処理Ｍ１のステップ５０４で中間装置４０が送信）を受信した場合、リカバリが必要と判断し、ステップ３１８へ進む。
【００７２】
ステップ３１８では、中間装置４０からリカバリが必要な画像データ９０Ｃに割当てられている上位装置カウント値２９を受信し、次のステップ３２０では、上位装置カウンタ２８の現在の上位装置カウント値２９を受信した上位装置カウント値２９に復元する。これにより、上位装置カウンタ２８には、受信した上位装置カウント値２９がセットされた状態になる。
【００７３】
次のステップ３２２では、リカバリが可能か否かを判断する。本実施の形態では、例えば、復元された上位装置カウント値２９が割当てられた画像データ９０Ａをスプール３０から読出せる場合は、リカバリが可能と判断し、一方、画像データ９０Ａが消去されていたり、スプール３０の故障等で読出せない場合はリカバリが不可能と判断する。リカバリが不可能な場合は、否定され、ステップ３２４へ進み、ユーザにリカバリが不可能なプリントエラーが生じた旨を表示する等の所定のエラー処理を行った後、本処理を終了する。一方、リカバリが可能な場合は、肯定され、ステップ３２６へ進む。
【００７４】
ステップ３２６では、本処理を終了するか否かを判断する。否定されるとステップ３０２に戻り、本処理を繰返す。なお、ステップ３２２で肯定（リカバリ可能と判断）されて本ステップに進んだ場合は、ここでは否定判断され、ステップ３０２に戻り、リカバリのために画像データ９０Ａを中間装置４０に送信する処理を繰返す。一方、スプール３０に蓄積されている全ての画像データ９０Ａを中間装置４０へ送信した場合やユーザから印刷終了の指示を受信した場合等は、肯定されて本処理を終了する。
【００７５】
このように書出し処理Ｌ１により、スプール３０に蓄積された上位装置カウント値２９が割当てられている画像データ９０Ａを中間装置４０に送信することができる。また、リカバリが必要な場合は、リカバリを要求された画像データ９０Ａを中間装置４０に再送信することができる。
【００７６】
（上位装置排紙通知受信処理）
次に、上位装置２０において実行される排紙通知受信処理Ｎ３（図２のステップ１０４）を図１１を参照して詳細に説明する。図１１は、上位装置２０のＣＰＵ２４で実行される排紙通知受信処理Ｎ３のフローチャートである。
【００７７】
まず、ステップ４００では、排紙通知（上位装置カウント値２９）を中間装置４０から受信する。なお、排紙通知は、詳細を後述する中間装置４０の排紙通知受信処理（図１４のステップ７０６）により上位装置２０に送信されている。
【００７８】
次のステップ４０２では、受信した上位装置カウント値２９が割当てられている画像データをスプール３０から削除する。これにより、プリンタエンジン８０により記録媒体に正常に印刷された画像データ９０Ａがスプール３０から削除される。
【００７９】
次のステップ４０４では、スプール３０内が空か否か、即ち、画像データ９０Ａがスプール３０内に残っているか否かを判断する。否定されるとステップ４００に戻り、排紙通知を中間装置４０から受信してスプール内の画像データ９０Ａを削除する処理を繰返す。一方、肯定されると、ステップ４０６へ進む。
【００８０】
ステップ４０６では、受信した排紙通知が、最終ページのものであるか否かを判断する。本実施の形態では、最終ページのものであるか否かの判断は、例えば、ユーザにより印刷を指示された画像の最終ページであるか否かを判断することにより行う。否定されると本処理を終了し、一方、肯定されるとステップ４０８へ進み、最終フラグ（プリンタエンジンが最終ページを記録媒体に印刷したことを示すフラグ）を図示しないフラグ設定手段にセットし、本処理を終了する。
【００８１】
このように排紙通知受信Ｎ３により、スプール３０に蓄積された上位装置カウント値２９が割当てられている画像データ９０Ａを削除することができる。
【００８２】
（中間装置読込み処理）
次に、中間装置４０において実行される読込み処理Ｍ１（図３のステップ１２１）を図１２を参照して詳細に説明する。図１２は、中間装置４０のＣＰＵ４４で実行される読込み処理のフローチャートである。
【００８３】
まず、ステップ５００では、中間装置カウンタ４８の中間装置カウント値４９を初期化する。次のステップ５０２では、リカバリを行うのか否かを判断する。即ち、詳細を後述する書出し処理Ｌ２、図１３のステップ６２４における読込み処理か否かを判断する。否定されるとステップ５０８へ進み、通常の場合の読込み処理を実施する。一方、肯定されると、リカバリのための画像データの読込み処理を実施するため、ステップ５０４へ進む。
【００８４】
ステップ５０４では、上位装置２０にリカバリ要求を送信し、次のステップ５０６では、上位装置カウント値２９（図１３に詳細を後述する書出し処理Ｌ２のステップ６１８で下位装置６０から受信した上位装置カウント値２９）を上位装置２０に送信する。
【００８５】
次のステップ５０８では、全カウント値を上位装置２０から受信し、次のステップ５１０では、ステップ５０８で受信した全カウント値が割当てられている画像データ９０Ａを上位装置２０から受信し、次のステップ５１２では、受信した画像データ９０Ａを処理する順（処理単位毎）に、中間装置カウンタ４８でカウントして、中間装置カウント値４９を、該処理により得られた画像データ９０Ｂに割当てる。
【００８６】
次のステップ５１４では、画像データ９０Ｂ及び画像データ９０Ｂに割当てられている全カウント値（上位装置カウント値２９及び中間装置カウント値４９）をスプール５０に蓄積する。これにより、スプール５０には、画像データ９０Ｂ及び、画像データ９０Ｂに割当てられている全カウント値（上位装置カウント値２９及び中間装置カウント値４９）が蓄積された状態となる。
【００８７】
次のステップ５１６では、中間装置カウンタ４８の中間装置カウント値４９をインクリメントし、ステップ５１８へ進む。
【００８８】
ステップ５１８では、本処理を終了するか否か判断する。否定されるとステップ５０２に戻り、本処理を繰返す。一方、印刷終了の指示を受信した場合や、上位装置２０から上位装置２０のスプール３０に蓄積されている全ての画像データ９０Ａを受信した場合等は、肯定されて本処理を終了する。
【００８９】
このように読込み処理Ｍ１により、上位装置カウント値２９及び中間装置カウント値４９が割当てられた画像データ９０Ｂをスプール５０に蓄積することができる。また、リカバリが必要な場合は、リカバリを要求されている上位装置カウント値２９が割当てられている画像データ９０Ｂをスプール５０に蓄積することができる。
【００９０】
（中間装置書出し処理）
次に、中間装置４０において実行される書出し処理Ｌ２（図３のステップ１２２）を図１３を参照して詳細に説明する。図１３は、中間装置４０のＣＰＵ４４で実行される書出し処理のフローチャートである。
【００９１】
まず、ステップ６００では、中間装置カウンタ４８の中間装置カウント値４９を初期化する。次のステップ６０２では、画像データ９０Ｂがスプール５０に蓄積されているか否か判断する。画像データ９０Ｂが蓄積されていない場合は否定され、ステップ６１２へ進む。一方、蓄積されている場合は肯定され、ステップ６０４へ進む。
【００９２】
ステップ６０４では、中間装置カウンタ４８の現在セットされている中間装置カウント値４９に対応する画像データ９０Ｂ及び画像データ９０Ｂに割当てられている全てのカウント値（上位装置カウント値２９及び中間装置カウント値４９）をスプール３０から読出して、次のステップ６０６では、読出した全てのカウント値（上位装置カウント値２９及び中間装置カウント値４９）を下位装置６０に送信する。そして、次のステップ６０８では、読出した画像データ９０Ｂを下位装置６０に送信する。
【００９３】
次のステップ６１０では中間装置カウンタ４８の中間装置カウント値４９をインクリメントしてステップ６１２へ進む。
【００９４】
ステップ６１２では、プリントエラーが発生したか否かを判断する。本実施の形態では、下位装置６０からプリントエラーが発生した旨の通知を受信した場合、プリントエラーが発生したと判断する。通知を受信しない場合は、否定されてステップ６２６へ進み、一方、通知を受信した場合は、肯定されてステップ６１４へ進む。
【００９５】
ステップ６１４では、書出し処理を一時停止する。これにより、プリンタエンジン８０で記録媒体への印刷が再開できる状態（プリントエラーの発生原因が取り除かれた状態）になるまで、待機状態になる。また、プリントエラーが発生した旨を上位装置２０に送信する。さらに、各装置間で画像データ９０等を送受信するための通信路の状態や、プリンタエンジン８０からの通知等に基づいて、プリンタエンジン８０で記録媒体への印刷が再開できる状態になった事を検知すると、書出し処理を再開する。
【００９６】
次のステップ６１６では、リカバリが必要か否か、即ち、画像データ９０Ｂを下位装置６０に再送するか否かを判断する。本実施の形態では、画像データ９０Ｂを再送しなくてもプリンタエンジン８０が記録媒体に印刷を続行できる場合等、リカバリが不要な場合は否定されて、ステップ６２６へ進む。一方、下位装置６０からリカバリの要求（図１５に詳細を後述する下位装置６０の読込み処理Ｍ２のステップ８０４で下位装置６０が送信）を受信した場合、リカバリが必要と判断し、ステップ６１８へ進む。
【００９７】
ステップ６１８では、下位装置６０からリカバリが必要な画像データ９０Ｃに割当てられている上位装置カウント値２９を受信し、受信した上位装置カウント値２９に対応する中間装置カウント値４９に変換する。中間装置カウント値４９への変換は、例えば、予め、読込み処理Ｍ１（詳細後述）により同一の画像データに割当てた上位装置カウント値２９と中間装置カウント値４９との対応関係をメモリ４６等に記憶させておいて、該対応関係に基づいて変換しても良いし、変換したい上位装置カウント値２９が割当てられている画像データ９０Ｂをスプール内から検出し、該画像データ９０Ｂに割当てられている中間装置カウント値４９を読取ることにより中間装置カウント値４９に変換する等しても良い。
【００９８】
次のステップ６２０では、中間装置カウンタ４８の現在の中間装置カウント値４９を変換した中間装置カウント値４９に復元する。これにより、中間装置カウンタ４８には、変換した中間装置カウント値４９がセットされた状態になる。
【００９９】
次のステップ６２２では、リカバリが可能か否かを判断する。本実施の形態では、例えば、復元された中間装置カウント値４９が割当てられた画像データ９０Ｂをスプール５０から読出せる場合は、リカバリが可能と判断し、一方、画像データ９０Ｂが消去されていたり、スプール５０の故障等で読出せない場合はリカバリが不可能と判断する。リカバリが不可能な場合は、否定され、ステップ６２４へ進み、リカバリのために上位装置２０から画像データを読込むための読込み処理Ｍ１（図１２）を行った後、本処理を終了する。一方、リカバリが可能な場合は、肯定され、ステップ６２６へ進む。
【０１００】
ステップ６２６では、本処理を終了するか否かを判断する。否定されるとステップ６０２に戻り、本処理を繰返す。なお、ステップ６２２で肯定（リカバリ可能と判断）されて本ステップに進んだ場合は、ここでは否定判断され、ステップ６０２に戻り、リカバリのために画像データ９０Ｂを下位装置６０に送信する処理を繰返す。一方、スプール５０に蓄積されている全ての画像データ９０Ｂを下位装置６０へ送信した場合やユーザから印刷終了の指示を受信した場合等は、肯定されて本処理を終了する。
【０１０１】
このように書出し処理Ｌ２により、スプール５０に蓄積された上位装置カウント値２９及び中間装置カウント値４９が割当てられている画像データ９０Ｂを下位装置６０に送信することができる。また、リカバリが必要な場合は、リカバリを要求された画像データ９０Ｂを下位装置６０に再送信することができる。
【０１０２】
（中間装置排紙通知受信処理）
次に、中間装置４０において実行される排紙通知受信処理Ｎ２（図３のステップ１２４）を図１４を参照して詳細に説明する。図１４は、中間装置４０のＣＰＵ４４で実行される排紙通知受信処理Ｎ２のフローチャートである。
【０１０３】
まず、ステップ７００では、排紙通知（上位装置カウント値２９）を下位装置６０から受信する。なお、排紙通知は、詳細を後述する下位装置６０の排紙通知受信処理（図１７のステップ１００６）により中間装置４０に送信されている。
【０１０４】
次のステップ７０２では、受信した上位装置カウント値２９を中間装置カウント値４９に変換する。なお、本実施の形態では、中間装置カウント値４９への変換は、上記書出し処理Ｌ２（図１３）のステップ６１８と同様に行えばよい。
【０１０５】
次のステップ７０４では、変換した中間装置カウント値４９が割当てられている画像データをスプール５０から削除する。これにより、プリンタエンジン８０により記録媒体に正常に印刷された画像データ９０Ｂがスプール５０から削除される。
【０１０６】
次のステップ７０６では、排紙通知（上位装置カウント値２９）を上位装置２０に送信し、次のステップ７０８では、スプール５０内が空か否か、即ち、画像データ９０Ｂがスプール５０内に残っているか否かを判断する。否定されるとステップ７００に戻り、排紙通知を下位装置６０から受信してスプール５０内の画像データ９０Ｂを削除する処理を繰返す。一方、肯定されると、ステップ７１０へ進む。
【０１０７】
ステップ７１０では、受信した排紙通知が、最終ページのものであるか否かを判断する。本実施の形態では、最終ページのものであるか否かの判断は、例えば、ユーザにより印刷を指示された画像の最終ページであるか否かを判断することにより行う。否定されると本処理を終了し、一方、肯定されるとステップ７１２へ進み、最終フラグ（プリンタエンジンが最終ページを記録媒体に印刷したことを示すフラグ）を図示しないフラグ設定手段にセットし、本処理を終了する。
【０１０８】
このように排紙通知受信Ｎ２により、スプール５０に蓄積された上位装置カウント値２９が割当てられている画像データ９０Ｂを削除することができる。
【０１０９】
（下位装置読込み処理）
次に、下位装置６０において実行される読込み処理Ｍ２（図４のステップ１４１）を図１５を参照して詳細に説明する。図１５は、下位装置６０のＣＰＵ６４で実行される読込み処理のフローチャートである。
【０１１０】
まず、ステップ８００では、下位装置カウンタ６８の下位装置カウント値６９を初期化する。次のステップ８０２では、リカバリを行うのか否かを判断する。即ち、詳細を後述するプリンタエンジン制御処理Ｋ（図１６）のステップ９２４における読込み処理か否かを判断する。否定されるとステップ８０８へ進み、通常の場合の読込み処理を実施する。一方、肯定されると、リカバリのための画像データの読込み処理を実施するため、ステップ８０４へ進む。
【０１１１】
ステップ８０４では、中間装置４０にリカバリ要求を送信し、次のステップ８０６では、上位装置カウント値２９（図１６に詳細を後述するプリンタエンジン制御処理Ｋのステップ９１８でプリンタエンジン８０から受信した上位装置カウント値２９）を上位装置２０に送信する。
【０１１２】
次のステップ８０８では、全カウント値を中間装置４０から受信し、次のステップ８１０では、ステップ８０８で受信した全カウント値が割当てられている画像データ９０Ｂを中間装置４０から受信し、次のステップ８１２では、受信した画像データ９０Ｂを処理する順（処理単位毎）に、下位装置カウンタ６８でカウントして、下位装置カウント値６９を、該処理により得られた画像データ９０Ｃに割当てる。
【０１１３】
次のステップ８１４では、画像データ９０Ｃ及び画像データ９０Ｂに割当てられている全カウント値（上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９）をスプール５０に蓄積する。これにより、スプール５０には、画像データ９０Ｃ及び、画像データ９０Ｃに割当てられている全カウント値（上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９）が蓄積された状態となる。
【０１１４】
次のステップ８１６では、下位装置カウンタ６８の下位装置カウント値６９をインクリメントし、ステップ８１８へ進む。
【０１１５】
ステップ８１８では、本処理を終了するか否か判断する。否定されるとステップ８０２に戻り、本処理を繰返す。一方、印刷終了の指示を受信した場合や、中間装置４０から中間装置４０のスプール５０に蓄積されている全ての画像データ９０Ｂを受信した場合等は、肯定されて本処理を終了する。
【０１１６】
このように読込み処理Ｍ２により、上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９が割当てられた画像データ９０Ｃをスプール７０に蓄積することができる。また、リカバリが必要な場合は、リカバリを要求されている上位装置カウント値２９が割当てられている画像データ９０Ｃをスプール７０に蓄積することができる。
【０１１７】
（下位装置プリンタエンジン制御処理）
次に、下位装置６０において実行されるプリンタエンジン８０の制御処理Ｋ（図４のステップ１４２）を図１６を参照して詳細に説明する。図１６は、下位装置６０のＣＰＵ６４で実行されるプリンタエンジン制御処理のフローチャートである。
【０１１８】
まず、ステップ９００では、下位装置カウンタ６８の下位装置カウント値６９を初期化する。次のステップ９０２では、画像データ９０Ｃがスプール７０に蓄積されているか否か判断する。画像データ９０Ｃが蓄積されていない場合は否定され、ステップ９１２へ進む。一方、蓄積されている場合は肯定され、ステップ９０４へ進む。
【０１１９】
ステップ９０４では、下位装置カウンタ６８の現在セットされている下位装置カウント値６９に対応する画像データ９０Ｃ及び画像データ９０Ｃに割当てられている全てのカウント値（上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９）をスプール５０から読出して、次のステップ９０６では、読出した全てのカウント値（上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９）をプリンタエンジン８０に送信する。そして、次のステップ９０８では、読出した画像データ９０Ｃをプリンタエンジン８０に送信する。
【０１２０】
次のステップ９１０では下位装置カウンタ６８の下位装置カウント値６９をインクリメントしてステップ９１２へ進む。
【０１２１】
ステップ９１２では、プリントエラーが発生したか否かを判断する。本実施の形態では、プリントエラー検出部７４からプリントエラーが発生した旨の通知を受信した場合、プリントエラーが発生したと判断する。通知を受信しない場合は、否定されてステップ９２６へ進み、一方、通知を受信した場合は、肯定されてステップ９１４へ進む。
【０１２２】
ステップ９１４では、プリンタエンジン制御処理を一時停止する。これにより、プリンタエンジン８０で記録媒体への印刷が再開できる状態（プリントエラーの発生原因が取り除かれた状態）になるまで、待機状態になる。また、プリントエラーが発生した旨を中間装置４０に送信する。さらに、各装置間で画像データ９０等を送受信するための通信路の状態や、プリンタエンジン８０からの通知等に基づいて、プリンタエンジン８０で記録媒体への印刷が再開できる状態になった事を検知すると、プリンタエンジン制御処理を再開する。
【０１２３】
次のステップ９１６では、リカバリが必要か否か、即ち、画像データ９０Ｃをプリンタエンジン８０に再送するか否かを判断する。本実施の形態では、画像データ９０Ｃを再送しなくてもプリンタエンジン８０が記録媒体に印刷を続行できる場合等、リカバリが不要な場合は否定されて、ステップ９２６へ進む。一方、プリントエラー検出部７４からリカバリの要求を受信した場合、リカバリが必要と判断し、ステップ９１８へ進む。
【０１２４】
ステップ９１８では、プリンタエンジン８０からリカバリが必要な画像データ９０Ｃに割当てられている上位装置カウント値２９を受信し、受信した上位装置カウント値２９に対応する下位装置カウント値６９に変換する。上位装置カウント値２９に対応する下位装置カウント値６９への変換は、予め、読込み処理Ｍ２（詳細後述）により同一の画像データに割当てた上位装置カウント値２９と下位装置カウント値６９との対応関係をメモリ６６等に記憶させておいて、該対応関係に基づいて変換しても良いし、変換したい上位装置カウント値２９が割当てられている画像データ９０Ｃをスプール内から検出し、該画像データ９０Ｃに割当てられている下位装置カウント値６９を読取ることにより下位装置カウント値６９に変換する等しても良い。
【０１２５】
次のステップ９２０では、下位装置カウンタ６８の現在の下位装置カウント値６９を変換した下位装置カウント値６９に復元する。これにより、下位装置カウンタ６８には、変換した下位装置カウント値６９がセットされた状態になる。
【０１２６】
次のステップ９２２では、リカバリが可能か否かを判断する。本実施の形態では、例えば、復元された下位装置カウント値６９が割当てられた画像データ９０Ｃをスプール７０から読出せる場合は、リカバリが可能と判断し、一方、画像データ９０Ｃが消去されていたり、スプール７０の故障等で読出せない場合はリカバリが不可能と判断する。リカバリが不可能な場合は、否定され、ステップ９２４へ進み、リカバリのために中間装置４０から画像データを読込むための読込み処理Ｍ２（図１５）を行った後、本処理を終了する。一方、リカバリが可能な場合は、肯定され、ステップ９２６へ進む。
【０１２７】
ステップ９２６では、本処理を終了するか否かを判断する。否定されるとステップ９０２に戻り、本処理を繰返す。なお、ステップ９２２で肯定（リカバリ可能と判断）されて本ステップに進んだ場合は、ここでは否定判断され、ステップ９０２に戻り、リカバリのために画像データ９０Ｃをプリンタエンジン８０に送信する処理を繰返す。一方、スプール７０に蓄積されている全ての画像データ９０Ｃをプリンタエンジン８０へ送信した場合やユーザから印刷終了の指示を受信した場合等は、肯定されて本処理を終了する。
【０１２８】
このようにプリンタエンジン制御処理Ｋにより、スプール７０に蓄積された上位装置カウント値２９、中間装置カウント値４９、及び下位装置カウント値６９が割当てられている画像データ９０Ｃをプリンタエンジン８０に送信し、記録媒体への印刷を指示することができる。また、リカバリが必要な場合は、リカバリを要求された画像データ９０Ｃをプリンタエンジン８０に再送信することができる。これにより、プリンタエンジン８０では、画像データ９０Ｃに基づいて記録媒体に印刷を実行する。
【０１２９】
（下位装置排紙通知受信処理）
次に、下位装置６０において実行される排紙通知受信処理Ｎ１（図４のステップ１４４）を図１７を参照して詳細に説明する。図１７は、下位装置６０のＣＰＵ６４で実行される排紙通知受信処理Ｎ１のフローチャートである。
【０１３０】
まず、ステップ１０００では、排紙通知（上位装置カウント値２９）をプリンタエンジン８０から受信する。なお、排紙通知は、プリンタエンジン８０が記録媒体に画像データ９０Ｃの印刷を終了すると、印刷を終了したページを通知するために、プリンタエンジンから下位装置６０に送信される。
【０１３１】
次のステップ１００２では、受信した上位装置カウント値２９を下位装置カウント値６９に変換する。なお、本実施の形態では、下位装置カウント値６９への変換は、プリンタエンジン制御処理Ｋ（図１６）のステップ９１８と同様に行えばよい。
【０１３２】
次のステップ１００４では、変換した下位装置カウント値６９が割当てられている画像データをスプール７０から削除する。これにより、プリンタエンジン８０により記録媒体に正常に印刷された画像データ９０Ｃがスプール７０から削除される。
【０１３３】
次のステップ１００６では、排紙通知（上位装置カウント値２９）を中間装置４０に送信し、次のステップ１００８では、スプール７０内が空か否か、即ち、画像データ９０Ｃがスプール７０内に残っているか否かを判断する。否定されるとステップ１０００に戻り、排紙通知をプリンタエンジン８０から受信してスプール７０内の画像データ９０Ｃを削除する処理を繰返す。一方、肯定されると、ステップ１０１０へ進む。
【０１３４】
ステップ１０１０では、受信した排紙通知が、最終ページのものであるか否かを判断する。本実施の形態では、最終ページのものであるか否かの判断は、例えば、ユーザにより印刷を指示された画像の最終ページであるか否かを判断することにより行う。否定されると本処理を終了し、一方、肯定されるとステップ１０１２へ進み、最終フラグ（プリンタエンジンが最終ページを記録媒体に印刷したことを示すフラグ）を図示しないフラグ設定手段にセットし、本処理を終了する。
【０１３５】
このように排紙通知受信Ｎ１により、スプール７０に蓄積された上位装置カウント値２９が割当てられている画像データ９０Ｃを削除することができる。
【０１３６】
なお、本実施の形態では、中間装置４０は１つしか備えていないが、２つ以上備えていてもよい。この場合、各中間装置の各処理は上記で説明した中間装置４０における各処理と同様に行えばよい。
【０１３７】
また、本実施の形態では、プリントエラー検出部７４でプリンタエンジン８０でのプリントエラーの発生を検知する等して、リカバリを実施するようにしているが、ユーザ等の指示によりリカバリを実施するようにしてもよい。さらにまた、本実施の形態では、プリントエラー検出部７４を下位装置６０に含むように構成してるが、上位装置２０や中間装置４０に含まれるように構成しても良いし、別個の装置（例えば、プリントエラー検出装置）として構成しても良い。尚、上位装置２０、中間装置４０、及び下位装置６０の何れかに含まれるように構成することにより印刷システムの構成を簡略にすることができる。
【０１３８】
以上説明したように、本実施の形態の印刷システム１０では、各装置では、画像データ９０を受信すると、受信した画像データ９０に割当てられているカウント値と共に自装置のカウンタのカウント値を割当て、スプールに蓄積するので、リカバリを行う場合に、リカバリしたい画像データ９０に割当てられている上位装置カウント値２９を受信すると、該上位装置カウント値２９に基づいて、画像データ９０を再送信することができる。即ち、リカバリを行う場合、下位装置６０がプリンタエンジン８０から、上位装置カウント値２９を受信すると、該上位装置カウント値２９が割当てられている画像データ９０Ｃがスプール７０から読取れる場合は、読取ってプリンタエンジン８０に再送信する。読取れない場合は、該上位装置カウント値２９を中間装置４０に送信し、中間装置４０が、スプール５０から該上位装置カウント値２９が割当てられた画像データ９０Ｂを読取れる場合は、読取って再送信するので、これをプリンタエンジン８０に再送信する。一方、中間装置４０でも読取れない場合は、該上位装置カウント値２９を上位装置２０に送信し、上位装置２０が、スプール３０から該上位装置カウント値２９が割当てられた画像データ９０Ａを、中間装置４０に再送信し、さらに中間装置４０が下位装置８０に再送信するので、これをプリンタエンジンに再送信する。従って、プリンタの障害発生時にリカバリを良好に行うことができる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の実施の形態に係る印刷システムの概略構成を示すブロック図である。
【図２】本発明の実施の形態に係る印刷システムの上位装置で実行される制御処理のフローチャートである。
【図３】本発明の実施の形態に係る印刷システムの中間装置で実行される制御処理のフローチャートである。
【図４】本発明の実施の形態に係る印刷システムの下位装置で実行される制御処理のフローチャートである。
【図５】本発明の実施の形態に係る印刷システムの下位装置のプリントエラー検出部で実行されるプリントエラー検出処理のフローチャートである。
【図６】本実施の形態の印刷システム全体から見た通常時の書出し処理、読込み処理、及び排紙通知受信処理の流れを説明するための説明図である。
【図７】本実施の形態の印刷システム全体から見たリカバリ時の処理の流れを説明するための説明図である。
【図８】従来の印刷システム全体から見た通常時の書出し処理、読込み処理、及び排紙通知受信処理の流れを説明するための説明図である。
【図９】従来の印刷システム全体から見たリカバリ時の処理の流れを説明するための説明図である。
【図１０】本発明の実施の形態に係る印刷システムの上位装置で実行される書出し処理のフローチャートである。
【図１１】本発明の実施の形態に係る印刷システムの上位装置で実行される排紙通信受信処理のフローチャートである。
【図１２】本発明の実施の形態に係る印刷システムの中間装置で実行される読込み処理のフローチャートである。
【図１３】本発明の実施の形態に係る印刷システムの中間装置で実行される書出し処理のフローチャートである。
【図１４】本発明の実施の形態に係る印刷システムの中間装置で実行される排紙通信受信処理のフローチャートである。
【図１５】本発明の実施の形態に係る印刷システムの下位装置で実行される読込み処理のフローチャートである。
【図１６】本発明の実施の形態に係る印刷システムの下位装置で実行されるプリンタエンジン制御処理のフローチャートである。
【図１７】本発明の実施の形態に係る印刷システムの下位装置で実行される排紙通信受信処理のフローチャートである。
【符号の説明】
【０１４０】
１０  印刷システム
２０  上位装置
２２  制御部
２８  上位装置カウンタ
３０  スプール
４０  中間装置
４２  制御部
４８  中間装置カウンタ
５０  スプール
６０  下位装置
６２  制御部
６８  下位装置カウンタ
７０  スプール
７４  プリントエラー検出部
【図１】
2008186094.tif 000003
【図２】
2008186094.tif 000004
【図３】
2008186094.tif 000005
【図４】
2008186094.tif 000006
【図５】
2008186094.tif 000007
【図６】
2008186094.tif 000008
【図７】
2008186094.tif 000009
【図８】
2008186094.tif 000010
【図９】
2008186094.tif 000011
【図１０】
2008186094.tif 000012
【図１１】
2008186094.tif 000013
【図１２】
2008186094.tif 000014
【図１３】
2008186094.tif 000015
【図１４】
2008186094.tif 000016
【図１５】
2008186094.tif 000017
【図１６】
2008186094.tif 000018
【図１７】
2008186094.tif 000019