(57)【特許請求の範囲】
【請求項１】
原稿の画像情報を読み取る読取手段と、
画像入力バッファと、
上記読取手段で読み取られた原稿の画像情報を上記画像入力バッファに蓄積する原稿入力制御手段と、
上記画像入力バッファに蓄積された画像情報を用紙に印刷出力する際の条件を記憶する条件記憶手段と、
上記条件記憶手段に記憶されている条件に基づいて上記原稿入力制御手段とのメッセージ通信を行い上記原稿入力制御手段の制御と並行して上記画像入力バッファに蓄積された画像情報を印字出力する印刷制御手段と、
上記画像入力バッファに蓄積された画像情報を圧縮したデータを記憶する記憶手段と、
上記画像入力バッファに記憶された画像情報もしくは上記記憶手段に記憶されたデータを伸長して得られる画像情報を上記印刷制御手段に出力するために一時的に記憶する画像出力バッファと、
上記読取手段で読み取られるｎ枚の原稿をｍ部複写する場合に、その複写物を１部，ｎ枚を先に印刷する逐次出力処理のモードと、上記読取手段で読み取ったｎ枚の原稿の画像情報をすべて入力してからｍ部の複写物を印刷する蓄積後出力処理のモードとを、選択的に設定する複写モード設定部と、
上記原稿入力制御手段で画像入力する際の上記画像入力バッファと上記印刷制御手段で印刷出力を行う際の上記画像出力バッファの容量を、その画像入力バッファおよび画像出力バッファが割当てられる実装メモリの容量、上記複写モード設定部で設定されるモード、上記用紙のサイズに応じて自動的に設定する設定手段と、
を具備したことを特徴とする複合型画像形成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、画像の圧縮・伸長手段，画像蓄積手段を有するデジタル方式の画像入出力装置、あるはデジタル方式の複写機に関する。
【０００２】
【従来の技術】
従来、デジタル方式の複写機は、スキャナから読み込んだ入力画像を圧縮・蓄積、伸長・印刷する電子ソート複写機能や、複数の原稿画像を１枚の画像として結合して複写するいわゆるメモリ編集複写機能を有している。
【０００３】
そして、前者の電子ソート複写では、スキャナから全ての画像を入力した後に印刷を開始する。
また、後者のメモリ編集複写では画像を圧縮・蓄積しないで、ページメモリ上で画像を結合処理して、印刷するようにしている。
【０００４】
【発明が解決しようとする課題】
ところが、従来の電子ソート複写ではすべての原稿をいったん読み込み、その画像を圧縮して蓄積用メモリ領域に記憶させた後、その圧縮された画像を伸長・印刷するようにしている。このため、原稿の枚数が多いほど、複写物の出力が開始されるまでの時間が遅くなってしまい、その複写が正しく行われているかの確認がなかなかできないという問題が生じる。さらに、全複写物が印刷終了するまでの時間がかかるという問題がある。
【０００５】
また、従来のメモリ編集では、連結する画像分の原稿が入力された時点で印刷が行われるので、複写物はすぐ手に入れることはできるが、圧縮・蓄積動作を行っていないため、印刷ジャムの場合に原稿を再度入力しなおさなければならないという問題があった。さらに、複数部を複写する場合には、原稿枚に指定部数の複写が行われるまで次の複写の入力を行うことができないため、すべて原稿を入力し終えるまでに時間がかかるという問題があった。
【０００６】
本発明は上記の点に鑑みてなされたもので、その目的は一つの複写作業の開始から完了するまでの時間を短縮でき、一枚目あるいは１部目の複写物をより早い時点で確認することを可能にした複合型画像形成装置を提供することにある。
また、本発明の複合型画像形成装置は、画像入力に用いる画像入力バッファおよび印刷出力に用いる画像出力バッファの容量を最適な値に設定できることを目的とする。
【０００９】
【課題を解決するための手段】
請求項１に係わる発明の複合型画像形成装置は、原稿の画像情報を読み取る読取手段と、画像入力バッファと、上記読取手段で読み取られた原稿の画像情報を上記画像入力バッファに蓄積する原稿入力制御手段と、上記画像入力バッファに蓄積された画像情報を用紙に印刷出力する際の条件を記憶する条件記憶手段と、上記条件記憶手段に記憶されている条件に基づいて上記原稿入力制御手段とのメッセージ通信を行い上記原稿入力制御手段の制御と並行して上記画像入力バッファに蓄積された画像情報を印字出力する印刷制御手段と、上記画像入力バッファに蓄積された画像情報を圧縮したデータを記憶する記憶手段と、上記画像入力バッファに記憶された画像情報もしくは上記記憶手段に記憶されたデータを伸長して得られる画像情報を上記印刷制御手段に出力するために一時的に記憶する画像出力バッファと、上記読取手段で読み取られるｎ枚の原稿をｍ部複写する場合に、その複写物を１部，ｎ枚を先に印刷する逐次出力処理のモードと、上記読取手段で読み取ったｎ枚の原稿の画像情報をすべて入力してからｍ部の複写物を印刷する蓄積後出力処理のモードとを、選択的に設定する複写モード設定部と、上記原稿入力制御手段で画像入力する際の上記画像入力バッファと上記印刷制御手段で印刷出力を行う際の上記画像出力バッファの容量を、その画像入力バッファおよび画像出力バッファが割当てられる実装メモリの容量、上記複写モード設定部で設定されるモード、上記用紙のサイズに応じて自動的に設定する設定手段と、を備えている。
【００１４】
【作用】
読取手段で読み取られるｎ枚の原稿をｍ部複写する場合に、その複写物を１部，ｎ枚を先に印刷する逐次出力処理のモードと、読取手段で読み取ったｎ枚の原稿の画像情報をすべて入力してからｍ部の複写物を印刷する蓄積後出力処理のモードとが、選択的に設定される。原稿入力制御手段で画像入力する際の画像入力バッファと印刷制御手段で印刷出力を行う際の画像出力バッファの容量が、その画像入力バッファおよび画像出力バッファが割当てられる実装メモリの容量、上記設定されるモード、用紙のサイズに応じて自動的に設定される。
【００１５】
【実施例】
本発明をコピー（ＰＰＣ），ファクシミリ（ＦＡＸ），プリンタ（ＰＲＴ）の３機能を有する複合画像形成装置の実施例について説明する。
図１は、本発明に係る画像形成装置としての電子複写機の全体構成を概略的に示す。この装置は原稿走査部140 及び画像形成部160 を備え、上部に原稿自動給送装置200 を装着している。
【００１６】
原稿自動給送装置200 は、筐体としてのカバー本体２１の後端縁部が、装置本体の上面後端縁部に図示しないヒンジ装置を介して開閉自在に取付けられており、必要に応じて原稿自動給送装置200 全体を回動変位させて原稿台２上を開放し得る構成となっている。カバー本体２１の上面やや左方向部位には、複数枚の原稿を一括保持し得る原稿給紙台２２が設けられている。装置の一端側には、原稿を順次一枚ずつ取出し原稿台２の一端側（図中左端側）に供給する給送手段２３が設けられている。給送手段２３は、原稿を取出すためのピックアップローラ２７、原稿をピックアップローラ２７に押付けるウエイト板２８、原稿給紙台２２への原稿のセット状態を検知する原稿検知センサとしてのエンプテイセンサ２９等が配設されている。さらに、ピックアップローラ２７の原稿取出し方向には、給紙ローラ３１が配置され、確実に原稿が一枚ずつ給送されるようになっている。原稿台２の上面には、これを覆う原稿搬送ベルト３７が張設されている。原稿搬送ベルト３７は、一対のベルトローラ４０、４０に掛渡された外表面が白色の幅広無端ベルトからなり、ベルト駆動機構（図示しない）によって正逆両方向に走行し得る構成となっている。また、原稿搬送ベルト３７の内周部の裏面側には、ベルト面を原稿台２上に押さえ付けるための複数のベルト押えローラ４１…および原稿自動給送装置の開閉状態を検知するセットスイッチ（図示せず）が設けられている。そして、前記給送手段２３によって給送された原稿を、原稿台２の一端側（左端側）から他端側（右端側）に搬送する。装置の右側部位に排紙手段３８が設けられ、排紙手段３８は、搬送ローラ４４と、この搬送ローラ４４に原稿を押付けるピンチローラ４５と、排紙方向に送られる原稿の後端を検出する原稿検出手段としての排紙センサ４６等が設けられている。原稿排出路の下流側には、排紙ローラ４８が配設されている。また、原稿排出路には、原稿を表裏逆にして原稿台２に導くためにゲート８２が設けられ、原稿を両面複写可能としている。
【００１７】
原稿走査部140 は、光源としての露光ランプ６、ミラー１５を設置した第１キャリッジ７、光路を折曲げるミラー８ａ，８ｂを設置した第２キャリッジ９、レンズ１０、反射光を受光する光電変換部１１、これらを各部の位置を変更する駆動系（図示しない）、および光電変換部１１の出力つまり画像データをアナログデータからディジタルデータに変換するＡ／Ｄ変換部（図示せず）により構成されている。上記第１、第２キャリッジ７、９は、互いにタイミングベルト（図示しない）で結ばれており、第２キャリッジ９は第１キャリッジ７の１／２の速さで同じ方向に移動するようになっている。これにより、レンズ１０までの光路長が一定になるように走査できるようになっている。上記レンズ１０は、焦点距離固定で、変倍時に光軸方向へ移動されるようになっている。上記光電変換部１１は、原稿からの反射光を光電変換するするもので、たとえばＣＣＤ形ラインイメージセンサなどを主体に構成される。この場合、原稿の１画素がＣＣＤセンサの１つの素子に対応している。上記光電変換部１１の出力はＡ／Ｄ変換部へ出力されるようになっている。上記第１、第２キャリッジ７、９、ミラー１２ａ、１２ｂの移動は、それぞれステッピングモータ（図示しない）により行われるようになっている。上記第１、第２キャリッジ７、９は、上記ステッピングモータの回転軸に連結されたドライブプーリ（図示しない）とアイドルプーリ（図示しない）間に掛渡されたタイミングベルト（図示しない）の動作に応じて移動されるようになっている。上記レンズ１０は、対応するステッピングモータ（図示しない）によりスパイラルシャフト（図示しない）が回転し、このスパイラルの動きによって光軸方向へ移動されるようになっている。
【００１８】
６０は電光変換部（半導体レーザ）で、この電光変換部６０に対応してコリメートレンズ６２、ポリゴンミラー（多面反射鏡）６４、レンズ６６、反射鏡６８，７０、レンズ７２が配置され、露光装置５２からレーザ光を感光体ドラム５０に照射するようになっている。
【００１９】
画像形成部160 は、たとえばレーザ光学系と転写紙に画像形成が可能な電子写真方式を組み合せている。すなわち、画像形成部160 は、装置内のほぼ中央部に回転自在に軸支された像担持体としての感光体ドラム５０を有し、この感光体ドラム５０の周囲には、露光装置５２、現像装置５４、転写チャージャ５５、剥離チャージャ５６、清掃チャージャ５７、除電チャージャ５８及び帯電チャージャ５９が順に配置されている。感光体ドラム５０は、帯電チャージャ５９によって一様に帯電されるようになっているとともに、原稿走査部140 からレーザ光を出力して前記感光体ドラム５０上に原稿の画像を結像し、静電潜像が形成されるようになっている。
【００２０】
そして、前記感光体ドラム５０上に形成された静電潜像は、現像装置５４により現像され、後述する給紙手段としての給紙カセット３０からレジストローラ２０を介して送紙されるコピー用紙Ｐ上に現像画像を転写チャージャ５５により転写される。この転写チャージャ５５による転写後のコピー用紙Ｐは、ＡＣコロナ放電による剥離チャージャ５６により剥離されて、搬送ベルトを介して定着器７２に搬送され、この定着器７２によって現像画像が溶融定着されたコピー用紙Ｐは、排紙ローラ対７３により排紙トレイ７４上に排出される。一方、前記コピー用紙Ｐへの現像画像の転写・剥離後の感光体ドラム５０上に残留した現像剤は、清掃チャージャ５７により清掃され、除電チャージャ５８により感光体ドラム５０上の電位を一定のレベル以下にして、次のコピー動作を可能にしている。
【００２１】
なお、コピー用紙Ｐの両面に印刷する両面コピーの場合には、前述した定着器７２によって現像画像が溶融定着されたコピー用紙Ｐは搬送路７３ａを介して搬送された後、自動両面反転機構のトレイ（以下、ＡＤＤと呼称する）７３ｂに蓄積される。このトレイ７３ｂに蓄積された片面印刷済みの用紙Ｐは搬送路７３ｃを介して前述した転写チャージャ５５に搬送され、印刷されていない他方の面に現像画像が転写される。
【００２２】
また、図中３０は前記装置本体１のフロント側より着脱自在に上下複数段に装着された給紙手段としての給紙カセットである。この給紙カセット３０は、コピー用紙Ｐが収納された筐体であるカセットケース３１からなり、このカセットケース３１の取出し端部は、用紙取出し方向に向け傾斜させてなる構成を有する。そして、前記給紙カセット３０のカセットケース３１内に収納されたコピー用紙Ｐは、ピックアップローラ８１にて最上層からピックアップされて取り出されるようになっている。このピックアップローラ８１にて取り出されて前記カセットケース３１の取出し端部側に送り込まれたコピー用紙Ｐは、前記カセットケース３１の取出し端部の内側上方に設置された給紙ローラ８４と分離ローラ（または分離パッド）８５とからなる用紙分離部にて一枚ずつ分離されて、画像形成部160 に向け搬送されるようになっているものである。
【００２３】
次に、図２乃至図５を参照して画像形成装置の制御回路について説明する。図２は一実施例に係わるデジタル複写機制御システム等の画像形成記憶装置の構成ブロック図の概略図、図３はスキャナー部を、図４はＣＰＵ部を、図５はプリンタ部を示す。
【００２４】
上記デジタル複写機制御システムは、全体は大きく２つのブロックより成り、スキャナ313 、プリンタ315 との間を画像処理手段314 で繋ぎ、デジタル複写機を構成する基本部301 と、この基本部301 からの画像データを受け取り記憶し、その記憶した画像データを再び基本部301 に転送することでメモリコピーを実現するページメモリ部302 とから構成される。
【００２５】
基本部301 とページメモリ部302 は制御データをやりとりする基本部システムインタフェース316 、画像データをやりとりする基本部画像インタフェース317 とで接続されている。
【００２６】
次に、基本部301 は入力手段（スキャナ）313 、出力手段（プリンタ）315 、画像処理手段314 、およびこれらを制御する制御手段（基本部ＣＰＵ）311 から構成される。
【００２７】
制御手段（基本部ＣＰＵ）311 のメインＣＰＵ100 には、ＲＯＭ102 、ＲＡＭ104 、画像メモリ106 、タイマメモリ108 、暗唱コードメモリ110 、タイマ112 、内部インタフェース122 、外部インターフェース124 、プリンタインターフェース128 を接続している。内部インタフェース122 には操作パネル114 が接続され、操作パネル114 にはＬＣＤ表示器116 、テンキー118 、ジョブ暗唱モードボタン120 等が配置されている。プリンタインターフェース128 は、外部装置138 に接続されている。
【００２８】
ここで、画像情報の記憶・呼び出し等はメインＣＰＵ100 によって行われる。例えば、暗唱コードと画像情報を記憶する場合、スキャナＣＰＵ160 の制御でスキャナ部によって読みこまれた画像情報はメインＣＰＵ100 の指示により画像メモリ106 に記憶される。メインＣＰＵ100 の指示は、操作部からの入力（キー入力）によってモードが決定され行われる。
【００２９】
次に、図３を参照してスキャナ部313 の詳細な構成について説明する。スキャナ部313 のスキャナーＣＰＵ160 には、照明ランプ６を制御するランプ制御部164 、走査モータ166 を制御するモータドライバ168 、センサ、スイッチ、ソレノイド類170 を駆動制御する駆動部172 に接続してこれらを制御し、また、光電素子１１からの画像情報について画像処理するためのＡ／Ｄ変換回路176 、解像度変換回路178 、シェーディング補正回路176 、画質改善回路180 、２値化回路182 に接続して、これらを制御する。
【００３０】
次に、図５を参照してプリンタ315 について詳細に説明する。プリンタ315 において、プリンタＣＰＵ190 には、メインモータ192 を駆動するメインモータドライバ194 、センサ、スイッチ、ソレノイド類196 を駆動制御する駆動部198 、定着ランプ200 を制御する定着ランプ制御部202 、帯電チャージャ204 、転写チャージャ206 、剥離チャージャ208 、ＰＣＣチャージャ210 を制御する高圧出力制御部212 、除電ランプ214 を制御する除電ランプ制御部216 、給紙ローラ218 、ピックアップローラ220 用の給紙モータ222 を制御する給紙制御部224 、電光変換部（レーザダイオード）６０、ポリゴンモータ228 用のレーザ駆動回路230 を制御する変調回路323 に接続して、これらを制御する。
【００３１】
次に、ページメモリ部302 について図２を参照して説明する。ページメモリ部302 は、画像データを一時的に記憶しておく記憶手段（ページメモリ）323 、ページメモリ323 のアドレスを生成するアドレス制御部306 、ページメモリ部302 内の各デバイス間のデータ転送を行う画像バス320 、画像バス320 を介してページメモリ323 と他のデバイスとのデータ転送を行うときのデータ転送を制御するデータ制御手段307 、基本部画像インタフェース317 を介して基本部301 と画像データを転送するときに画像データをインタフェースする画像データＩ／Ｆ手段308 、解像度の異なる機器に画像データを送信するときに画像データを他の機器の解像度に変換したり、解像度の異なる機器から受信した画像データを基本部301 のプリンタ315 の解像度に変換したり、２値画像データの９０度回転処理を実行する解像度変換／２値回転手段325 、ファクシミリ送信や光ディスク記憶のように画像データを圧縮して送信したり、記憶したりするデバイスのために入力した画像データを圧縮したり、圧縮された形態の画像データをプリンタ315 を介して可視化するために伸長する圧縮／伸長手段324 、画像データＩ／Ｆ手段308 に接続され、プリンタ315 から画像データを出力するときに画像データを９０度あるいは−９０度回転して出力するときに使用する多値回転メモリ309 で構成される。ページメモリ部302 内の各手段についての詳細は後述する。
【００３２】
ところで、本複写機のは基本ＣＰＵ311 内のＲＯＭ102 には図１０のフローチャートに示す複写管理タスクＡを実行する制御プログラムが、図１１乃至図１３のフローチャートに示す原稿入力タスクＢを実行する制御プログラムが、図１５乃至図２８のフローチャートに示す印刷タスクＣを実行する制御プログラムが、図２９，図３１，図３４のフローチャートに示すファイル書き込みルーチンを実行する制御プログラムが記憶されている。
【００３３】
また、複写管理タスクＡと原稿入力タスクＢとの間，複写管理タスクＡと印刷タスクＣとの間は図６に示すようにメッセージ通信により相互タクス間の通信を行っている。
【００３４】
複写管理タスクＡにはコントロールパネル（図示しない）で指示された内容（複写部数，原稿サイズ，サイズ変倍率，とじしろ方向，とじしろ幅，表紙種類，片面縮小連結の有無）が入力される。
【００３５】
また、基本ＣＰＵ311 内のＲＡＭ104 には複写テーブルＤと蓄積編集指示テーブルＥとを備えている。
この複写テーブルＤには前述した操作部114 で指示された内容が書き込まれる。
【００３６】
さらに、蓄積編集指示テーブルＥには蓄積コピーに関する指定（出力順（グループ，ソート）、出力部数、ファイル番号、解像度、入力頁数、両面印刷／片面印刷、頁毎入力完了情報が設定される。
【００３７】
この蓄積編集指示テーブルＥに記憶される頁毎入力完了情報は図７に示すようなフォーマットで設定されている。つまり、この頁毎入力完了情報は原稿を１頁入力される毎に、その頁の入力フラグを“完了”フラグに設定し、その頁が印刷された場合には、その頁の出力フラグを“完了”フラグに設定するようにしている。
【００３８】
また、基本ＣＰＵ311 内のＲＡＭ104 には、図８に示すようにジョブ番号に対応して入力タスク（原稿の読取り処理）、出力タスク（印刷処理）がどのような状態にあるかが設定されるテーブルを備えている。ここで、ジョブとは１つの複写動作を１ジョブとしており、例えば１０枚の原稿を両面コピーする動作を１つのジョブとし、５枚の原稿をソートして１０部ずつ片面複写する動作を１つのジョブとしている。
【００３９】
また、ページメモリ323 は図９に示すようにスキャナ部313 で読み込まれた原稿のイメージデータが書き込まれる頁バッファ領域Ｍ１とそのイメージデータを圧縮したデータが書き込まれる１ページ単位毎に区切られたファイルエリアＭ２に区分されている。
【００４０】
このファイルエリアＭ２の各ページの先頭アドレスはファイルエリア頁毎データ先頭アドレス格納領域Ｍ３に記憶されている。
次に、図１０乃至図１３を参照して複写管理タスク，原稿入力タスクの動作について説明する。
【００４１】
まず、図１０において、オペレータが操作部114 蓄積コピー指示後に、スタートキーを押すと、その旨が基本ＣＰＵ301 に通信で送られる。そして、複写管理タスクＡではスタートキーが押されたかを判定する（ステップＳ１）。
【００４２】
そして、このステップＳ１で「ＹＥＳ」と判定された場合には、オペレータが操作部114 で指示した内容を複写テーブルＤに書き込む（ステップＳ２）。
このようにして、複写テーブルＤには、複写部数，原稿サイズ，サイズ変倍率，とじしろ方向，とじしろ幅，表紙種類，片面縮小連結の有無等が記憶されている。
【００４３】
次に、原稿入力タスクＢに『入力開始メッセージ』を送信する（ステップＳ３）。
このように、『入力開始メッセージ』が原稿入力タスクＢに送信されると、図１１に示すような原稿入力タスクＢの動作が開始される。
【００４４】
つまり、図１１において、複写管理タスクＡから『入力開始メッセージ』を受信したかを判定する（ステップＳ１１）。
このステップＳ１１の判定で「ＹＥＳ」と判定された場合には、複写テーブルＤの内容を処理しやすい様に翻訳して蓄積編集指示テーブルＥに書き込む処理を行う（ステップＳ１２）。
【００４５】
そして、蓄積編集指示テーブルＥを参照して、中折りとじ指定ありかが判定される（ステップＳ１３）。このステップＳ１３で「ＮＯ」と判定された場合には、原稿枚数が予めわかるかどうか判定される（ステップＳ１４）。
【００４６】
原稿入力時にコントロールパネル（図示しない）から原稿枚数を設定している場合には、ステップＳ１４の判定で「ＹＥＳ」と判定されて、出力作業用メモリ確保可能であるかが判定される（ステップＳ１５）。このステップＳ１５で「ＹＥＳ」と判定された場合には、図１２のフローチャートの処理により逐次出力処がなされる。この逐次出力処理は図１４に示すように、ｎ枚の原稿をｍ部複写する場合に、複写物を１部，ｎ枚を先に印刷する処理を示している。この処理は図１２に示すように、複写管理タスクＡに『出力開始指示メッセージ』に送信する（ステップＳ２１）。
【００４７】
そして、原稿を１枚入力し、ページメモリ323 にそのデータを書き込む処理を行う（ステップＳ２２）。そして、すべての原稿を入力したかを判定し（ステップＳ２３）、このステップＳ２３で「ＮＯ」と判定されている間は、ステップＳ２２の処理が継続される。
【００４８】
このステップＳ３３の判定で「ＹＥＳ」と判定された場合には、複写管理タスクＡに『入力完了メッセージ』を出力する（ステップＳ３４）。
一方、前述したステップＳ１３の判定で「ＹＥＳ」と判定された場合には、すべて蓄積後出力と判定され、図１３のフローチャートの処理が行われて、すべて蓄積後出力に対する原稿を入力する処理がなされる。このすべて蓄積後出力は図１４に示すようにｎ枚の原稿をすべて入力してから、ｍ部の複写物を印刷する処理のことを意味する。この処理は図１３に示すように、スキャナ部313 から入力された原稿をすべてページメモリ323 に蓄積するようにしている（ステップＳ３１）。
【００４９】
そして、すべて入力後に『出力開始指示メッセージ』及び『入力完了メッセージ』を複写管理タスクＡに出力する処理が行われる。
図１１に戻って、ステップＳ１４で「ＮＯ」と判定された場合には、用紙の両面印刷が指定されているかが判定される（ステップＳ１６）。
【００５０】
このステップＳ１６の判定で「ＮＯ」と判定された場合には、複数ペ−ジ分を１ペ−ジに納める、所謂Ｘin１（Ｘは例えば、２や４）が指定されているかが判定される（ステップＳ１７）。このステップＳ１７の判定で「ＮＯ」と判定された場合には、前述したステップＳ１５の判定に移る。このステップＳ１５の判定で『ＹＥＳ』であると判定されれば、図１２に示す逐次出力処理が行われる。
【００５１】
ステップＳ１６の判定で「ＹＥＳ」、あいるはステップＳ１７で「ＹＥＳ」と判定された場合には、不都合が生じても早く印刷したいかが判定される（ステップＳ１８）。
【００５２】
このステップＳ１８の判定で「ＹＥＳ」と判定された場合には、ステップＳ１５の判定処理がなされる。このステップＳ１５の判定で「ＹＥＳ」と判定された場合には、逐次出力処理がなされる。
【００５３】
一方、ステップＳ１８において「ＮＯ」と判定された場合には、図１３のフローチャートの処理が実行されて、蓄積後出力処理がなされる。
以上のように、図１１のステップＳ１３〜Ｓ１８により逐次出力か蓄積後出力かを判定する判定手段が構成される。
【００５４】
つまり、この判定手段により蓄積編集指示テーブルの内容に応じて自動的に逐次出力か蓄積後出力かが自動的に選択される。
図１１乃至図１３で説明した原稿入力タスクＢから複写管理タスクＡに『出力開始指示メッセージ』が送信されると、図１０のフローチャートのステップＳ４での「原稿入力タスクＢからの『出力開始指示メッセージ』を受信したか」の判定で「ＹＥＳ」と判定され、印刷タスクＣに『出力開始メッセージ』が送信される（ステップＳ５）。
【００５５】
以下。図１５乃至図２８のフローチャートを参照して印刷タスクの処理について説明する。
まず、複写管理タスクＡからの『出力開始メッセージ』を受信したかが判定される（ステップＳ４１）。
【００５６】
このステップＳ４１で「ＹＥＳ」と判定された場合には逐次印刷可能であるかが判定される（ステップＳ４２）。この逐次印刷可能かの判定は、図８のテーブルが参照されて、ジョブに対してページメモリ323 に作業領域Ｍ１が十分にとれるかで判定される（ステップＳ４２）。
【００５７】
このステップＳ４１及びＳ４２の判定で「ＮＯ」と判定される間はステップＳＳ４１の判定が繰り返される。
そして、ステップＳ４２の判定で「ＹＥＳ」と判定されると、図６に示した蓄積編集指示テーブルＥが参照されて、ソートモード，メモリ編集の有無が判定される（ステップＳ４３）。
【００５８】
そして、ステップＳ４３の判定の結果、両面印刷を行うかが判定される（ステップＳ４４）。
このステップＳ４４の判定で「ＮＯ」と判定された場合、つまり片面印刷の場合には、操作部114 からすべての複写を行うか指定されているかが判定される（ステップＳ４５）。
【００５９】
このステップＳ４５の判定で「ＮＯ」と判定されると「一部目であるか」が判定される（ステップＳ４６）。
このステップＳ４６の判定で「ＹＥＳ」と判定された場合には、ソートモードの一部目の片面印刷処理が行われる（ステップＳ４７）。
【００６０】
このステップＳ４７の処理は図１８を参照して後述する。
一方、ステップＳ４５で「ＹＥＳ」あるいはステップＳ４６で「ＮＯ」と判定された場合には、グループモードで全部数を片面印刷する処理が行われる（ステップＳ４８）。この処理については図２０を参照して後述する。
【００６１】
このように、ステップＳ４４の判定で「片面印刷」であると判定された場合でも、コントロールパネル（図示しない）からすべてを複写することが指定されていれば、ステップＳ４８の処理によりグループモード、全部数を片面印刷する処理がなされる。
【００６２】
ところで、ステップＳ４７のソートモード（一部目）片面印刷が終了後に、その原稿をチェックして、例えばｙ頁の原稿を再入力する必要がある場合には、操作部114 からｙ頁削除というキーを押す。
【００６３】
このようなことを考慮して、ステップＳ４７のソートモード（一部目）片面印刷の後に操作部114 からｙ頁目消去というキーが押されたかという判定を設けている（ステップＳ４９）。
【００６４】
そして、このステップＳ４９の判定で「ＹＥＳ」と判定された場合には、図９に示したページメモリ323 のｙ頁のデータが削除される（ステップＳ５０）。
そして、ｙ頁の原稿が再入力され、それに対応する処理がなされる（ステップＳ５１）。
【００６５】
一方、ステップＳ４９の判定で「ＮＯ」と判定された場合には、図１７のフロ−チャ−トに進んで２部以降の印刷処理がなされる。この図１７のフロ−チャ−トの詳細に説明については後述する。
【００６６】
ところで、ステップＳ４４の判定で「ＹＥＳ」と判定、つまり両面印刷であると判定された場合には、コントロールパネル（図示しない）からすべての複写を行うか指定されているかが判定される（ステップＳ５２）。
【００６７】
このステップＳ５２の判定で「ＮＯ」と判定されると「一部目であるか」が判定される（ステップＳ５３）。
このステップＳ５３の判定で「ＹＥＳ」と判定された場合には、ソートモード・グループモードの一部目の両面印刷処理が行われる（ステップＳ５４）。
【００６８】
このステップＳ５４の処理は図２２を参照して後述する。
一方、ステップＳ５２で「ＹＥＳ」あるいはステップＳ４３で「ＮＯ」と判定された場合には、グループモードで全部数を両面印刷する処理が行われる（ステップＳ５５）。この処理については図２１を参照して後述する。
【００６９】
このように、ステップＳ４４の判定で「両面印刷」であると判定された場合でも、操作部114 からすべてを複写することが指定されていれば、ステップＳ５５の処理によりグループモード、全部数を両面印刷する処理がなされる。
【００７０】
ところで、ステップＳ５４のソート・グループモード（一部目）両面印刷が終了後に、その原稿をチェックして、例えばｙ頁の原稿を再入力する必要がある場合には、操作部114 からｙ頁削除というキーを押す。
【００７１】
このようなことを考慮して、ステップＳ５４のソートモード（一部目）両面印刷の後に操作部114 からｙ頁目消去というキーが押されたかという判定を設けている（ステップＳ５６）。
【００７２】
そして、このステップＳ５６の判定で「ＹＥＳ」と判定された場合には、図９に示したページメモリ323 のｙ頁のデータが削除される（ステップＳ５７）。
そして、ｙ頁の原稿が再入力され、それに対応する処理がなされる（ステップＳ５８）。
【００７３】
一方、ステップＳ５６の判定で「ＮＯ」と判定された場合には、図１７のフローチャートに進んで２頁以降の印刷処理がなされる。この図１７のフローチャートの詳細に説明については後述する。
【００７４】
ところで、前述したステップＳ４８のグループモード（全部数）片面印刷を終了した後あるいは前述したステップＳ５５のグループ（全部数）両面印刷を終了した後に、印刷のために使用していた全ファイルバッファを解放する処理がなされる（ステップＳ５９）。
【００７５】
そして、印刷のために専有していたリソースを解放する処理がなされる（ステップＳ６０）。
ところで、ステップＳ４９あるいはステップＳ５６の判定で「ＮＯ」と判定された場合には、図１７のフローチャートに進んで２部目以降の印刷処理がなされる。
【００７６】
図１７において、まず、図８のテーブルをサーチして入力タスクが入力完了しているかを判定する（ステップＳ７１）。
このステップＳ７１の判定で「ＮＯ」と判定されている間は、入力タスクが入力完となるまで待つ処理がなされる。
【００７７】
そして、ステップＳ７１の判定で「ＹＥＳ」と判定された場合には、ページ割当て変更があるかが判定される（ステップＳ７２）。
このステップＳ７２の判定で「ＹＥＳ」と判定された場合には、ページバッファ割当てを変更する処理が行われる（ステップＳ７３）。
【００７８】
前述したステップＳ７２で「ＮＯ」あるいはステップＳ７３の処理が終了した後に、メモリ編集の有無が蓄積・編集指示テーブルＥを参照して判定される（ステップＳ７４）。
【００７９】
そして、その蓄積・編集指示テーブルＥで両面印刷が指定されているかが判定される（ステップＳ７５）。
そして、このステップＳ７５の判定で「ＮＯ」と判定された場合には、ソートモードで２部目を片面印刷する処理がなされる（ステップＳ７６）。この片面印刷処理は図１９のフローチャートを参照して後述する。
【００８０】
一方、ステップＳ７５の判定で「ＹＥＳ」と判定された場合には、出力部数がＡＤＤ７３ｂの許容範囲を越えているかが判定される（ステップＳ７７）。
このステップＳ７７の判定で「ＮＯ」と判定された場合には、ソートモードで一括スタックで両面印刷する処理がなされるか（ステップＳ７８）、あるいはグループモードで一括スタックで両面印刷する処理がなされる（ステップＳ７９）。  このステップＳ７８の処理については、図２３を参照して後述する。
【００８１】
さらに、ステップＳ７９の処理については、図２４を参照して後述する。
一方、ステップＳ７７において「ＹＥＳ」と判定された場合には、ソートモードでカスケードで両面印刷をする処理がなされるか（ステップＳ８０）、グループモードでカスケードで両面印刷する処理がなされる（ステップＳ８１）。
【００８２】
このステップＳ８０の処理については図２５及び図２６のフローチャートを参照して説明する。
また、ステップＳ８１の処理については図２７及び図２８のフローチャートを参照して説明する。
【００８３】
以上のように、図１７のフローチャートの処理により、２部目以降のソートモート片面印刷（ステップＳ７６）、ソートモード一括スタック両面印刷（ステップＳ７８）、グループモード一括ステック両面印刷（ステップＳ７９）、ソートモードカスケード両面印刷（ステップＳ８０）、グループモードカスケード両面印刷（ステップＳ８１）がなされる。
【００８４】
それら処理の終了後には図１６のフローチャートのステップＳ５９以降の処理がなされる。その処理については前述したとおりである。
次に、図１８を参照して前述した図１５のソートモード（一部目）片面印刷の処理について説明する。図１８において、まずカウンタが初期化される（ステップＳ９１）。つまり、印刷頁数を計数する印刷頁カウンタＯpc、図９のファイルエリアＭ２に圧縮して記憶されている原稿の頁数を計数する入力頁カウンタｆpcがゼロクリアされる。つまり、操作部114 から設定された頁結合数が入力待ち頁数Wait-in として設定される。この頁結合数とは、例えばＡ４の原稿２枚をそれぞれＢ５に縮小し、Ｂ４の用紙に２枚印刷するような場合に、頁結合数として「２」が設定される。つまり、ファイルエイアＭ２に記憶されている複数頁の原稿を結合して１枚の用紙に印刷するような場合である（以下、2 in  １と称する）。なお、結合する頁がない場合には、Wait-in に「１」が設定される。
【００８５】
次に、印刷処理用リソースを確保する処理、印刷用頁バッファ、プリンタ等が確保される（ステップＳ９２）。
次に、入力タスクのステータスを図８のテーブルを検索して異常が発生していないかを確認する。さらに、図６の蓄積管理テーブルＥを参照して、ファイルエリアＭ２に格納された原稿の入力頁総数ｆpcmax を検索する（ステップＳ９３）。
【００８６】
次に、『ｆpcmax ≧ｆpc＋Wait-in （case 1）』または『入力完了かつｆpcmax ≦ｆpc＋Wait-in （case 2）』であるかどうか判定される（ステップＳ９４）。
【００８７】
ここで、case 1の場合とは、原稿の入力がこれから出力する画像データに対応した原稿よりも先行していて、入力頁総数ｆpcmax が多い場合に発生するケースである。
【００８８】
case 2の場合とは、印刷が行われて、その度に入力頁カウンタｆpcがWait-in だけカウントアップされて大きくなり、ｆpcmax とｆpcとの差がWait-in 以下になる場合がある。例えば、2 in 1を指定した場合でも奇数枚数の原稿を入力したような場合には、最後の頁には１枚分の原稿しか印刷されないような場合である。この場合には、オペレータが入力完了を指示していれば、case 2の条件が満足される。
【００８９】
このステップＳ９４の判定で「ＹＥＳ」と判定された場合には、頁展開処理が以下のようにして行われる（ステップＳ９５）。
つまり、case 1の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。一方、case 2の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpcmax ）頁までが伸長されて印刷用頁バッファに伸長される。
【００９０】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理がなされる（ステップＳ９６）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ９７）。
【００９１】
そして、再度case 2であるかが判定される（ステップＳ９８）。このステップＳ９８の判定で「ＮＯ」と判定された場合には、入力頁カウンタｆpcにWait-in だけ加算された後、前述したステップＳ９３以降の処理がなされる。つまり、2 in in の場合には入力頁カウンタｆpcが「２」ずつカウントアップされる。
【００９２】
このような処理が繰り返し行われると、入力頁カウンタｆpcが入力総頁数ｆpcmax 以上になる場合がある。つまり、case 2の条件が満たされる。この場合には、ステップＳ９８の判定で「ＹＥＳ」と判定され、ｆpc←ｆpcmax ，Ｏpcmax ←Ｏpcとされて、ソートモード（一部目）片面印刷が終了する。
【００９３】
次に、図２２を参照して図１５のソート・グループモード（一部目ソート）両面印刷（ステップＳ５４）の処理について詳細に説明する。まず、カウンタが初期化される（ステップＳ１６０）。つまり、印刷頁数を計数する印刷頁カウンタＯpc、図９のファイルエリアＭ２に圧縮して記憶されている原稿の頁数を計数する入力頁カウンタｆpcがゼロクリアされる。また、操作部114 から設定された頁結合数が入力待ち頁数Wait-in として設定される。
【００９４】
次に、印刷処理用リソースを確保する処理、印刷用頁バッファ、プリンタ等の確保及び給紙トレイ及び排紙トレイの初期設定が行われる（ステップＳ１６１）。
【００９５】
次に、入力タスクのステータスを図８のテーブルを検索し、入力タスクで異常が発生しているかを検索する。さらに、図６の蓄積管理テーブルＥを参照して、ファイルエリアＭ２に格納された原稿の入力頁総数ｆpcmax を検索する（ステップＳ１６２）。
【００９６】
次に、『ｆpcmax ≧ｆpc＋Wait-in （case 1）』または『入力完了かつｆpcmax ≦ｆpc＋Wait-in （case 2）』であるかどうか判定される（ステップＳ１６３）。
【００９７】
このステップＳ１６３の判定で「ＹＥＳ」と判定された場合には、頁展開処理が以下のようにして行われる（ステップＳ１６４）。
つまり、case 1の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。一方、case 2の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpcmax ）頁までが伸長されて印刷用頁バッファに伸長される。
【００９８】
そして、給紙，排紙カセットの切り替えが行われる（ステップＳ１６５）。つまり、印刷頁カウンタＯpcが『０』（偶数）であると、給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙するように、給紙カセット３０及び排紙トレイ７４を切り換える処理を行う（ステップＳ１６５）。
【００９９】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理、つまり用紙の裏面に原稿が印刷される（ステップＳ１６６）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１６７）。
【０１００】
そして、再度case 2であるかが判定される（ステップＳ１６８）。このステップＳ１６８の判定で「ＮＯ」と判定された場合には、入力頁カウンタｆpcにWait-in （ここでは、連結頁がなければ、『１』）だけ加算された後、前述したステップＳ１６３以降の処理がなされる（ステップＳ１６９）。
【０１０１】
そして、再度ステップＳ１６５にくると、印刷頁カウンタＯpcに『１』（奇数）が計数されているため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排紙するように切り換えている。
【０１０２】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理、つまり用紙の表面に原稿が印刷される（ステップＳ１６６）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１６７）。
【０１０３】
このようにして、用紙の片面に印刷される毎に、入力頁カウンタｆpc及び印刷頁カウンタＯpcは「＋１」される。
このような処理が繰り返し行われると、入力頁カウンタｆpcが入力総頁数ｆpcmax 以上になる場合がある。つまり、case 2の条件が満たされる。この場合には、ステップＳ１６８の判定で「ＹＥＳ」と判定され、ＡＤＤ７３ｂの残り用紙が有るならば、排出する処理がなされる。つまり、両面印刷で原稿が奇数の場合には、ＡＤＤ７３ｂに裏面が印刷された用紙が残るためである。このようにして、ソートモード（一部目ソート）両面印刷が終了する。
【０１０４】
以上の処理によりソートモード（一部目）片面印刷（ステップＳ４７，図１８）、ソートモード（一部目ソート）両面印刷（ステップＳ５４，図２２）の処理が終了した後、２部目以降を印刷する処理が行われる。
【０１０５】
そして、ステップＳ４９及び５６の判定で「ＮＯ」と判定されると、図１７のフローチャートに進んで、２部目以降を印刷する処理が行われる。
図１７において、入力タスクが完了しているか、つまり２頁以降の原稿入力作業が終了しているかが図８のテーブルを参照して判定される（ステップＳ７１）。そして、このステップＳ７１で「ＹＥＳ」と判定されると、頁バッファの割当て変更するかを判定する（ステップＳ７２）。
【０１０６】
このステップＳ７２の判定で「ＹＥＳ」と判定された場合には、頁バッファの割り当てが変更される（ステップＳ７３）。
そして、メモリ編集の有無を蓄積編集指定テーブルＥを参照して判定する（ステップＳ７４）。
【０１０７】
そして、この蓄積編集指定テーブルＥより両面印刷が指定されているかが判定される（ステップＳ７５）。
このステップＳ７５の判定で「ＮＯ」と判定された場合には、ソートモード片面印刷（２部目〜）処理（ステップＳ７６）が行われる。
【０１０８】
一方、ステップＳ７５の判定で「ＹＥＳ」と判定された場合には、出力部数がＡＤＤ７３ｂの許容範囲を越えているかが判定される（ステップＳ７７）。つまり、ＡＤＤ７３ｂには、積載枚数許容量があり、これを仮にＡＤＤ−max とすると、「出力部数≧ＡＤＤ−max 」かを判定している。
【０１０９】
このステップＳ７７の判定で「ＮＯ」と判定された場合には、ソートモード（２部目以降）一括スタック両面印刷（ステップＳ７８）あるいはグループモード（２部目以降）一括スタック両面印刷（ステップＳ７９）がなされる。なお、ソートモード（２部目以降）一括スタック両面印刷の詳細な処理については図２３を参照して、グループモード（２部目以降）一括スタック両面印刷の詳細な処理については、図２４を参照して後述する。
【０１１０】
ところで、ステップＳ７７の判定で「ＹＥＳ」と判定された場合には、ソートモード（２部目以降）カスケード両面印刷（ステップＳ８０）あるいはグループモード（２部目以降）カスケード両面印刷（ステップＳ８１）がなされる。なお、ソートモード（２部目以降）カスケード両面印刷の詳細な処理については図２５及び図２６を参照して、グループモード（２部目以降）カスケード両面印刷の詳細な処理については図２７及び図２８を参照して後述する。
【０１１１】
まず、図１９を参照してソートモード（２部目〜）片面印刷処理について詳細に説明する。まず、印刷頁数としてＯpcmax を印刷部数として、１部目は印刷されているので、ｎ−１を得る（ステップＳ１００）。
【０１１２】
印刷頁カウンタＯpcを『１』にセットし、入力頁カウンタｆpcを『０』にセットするカウンタ初期化処理がなされる（ステップＳ１０１）。
そして、頁カウンタＯpc＜Ｏpcmax であるかが判定される（ステップＳ１０２）。このステップＳ１０２の判定で「ＹＥＳ」と判定された場合には、前述したcase 1の場合として、頁展開処理が行われる（ステップＳ１０３）。
【０１１３】
つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理がなされる（ステップＳ１０４）。
【０１１４】
一方、ステップＳ１０２で「ＮＯ」と判定された場合には、前述したcase 2の場合として、頁展開処理が行われる（ステップＳ１０９）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１０５）。
【０１１５】
そして、再度case 2であるかが判定される（ステップＳ１０６）。このステップＳ１０６の判定で「ＮＯ」と判定された場合には、入力頁カウンタｆpcにWait-in だけ加算された後、前述したステップＳ１０２以降の処理がなされる。
【０１１６】
以下、ステップＳ１０６で「ＹＥＳ」と判定されるまで、１頁ずつ片面印刷がされる毎に、入力頁カウンタｆpcが＋１ずつされ、前述したcase 2、つまり、『入力完かつｆpcmax ≦ｆpc＋Wait-in 』となるとステップＳ１０６で「ＹＥＳ」と判定され、印刷部数ｎ←ｎ−１とされる（ステップＳ１０８）。
【０１１７】
そして、印刷部数ｎが「＞０」であるかを判定する（ステップＳ１１０）。そして、このステップＳ１１０の判定で「ＹＥＳ」と判定される間はステップＳ１０１以降の処理が繰り返されて、次の部数（３部目，４部目，…ｎ−１部目）の印刷がなされる。そして、ｎ−１部目の印刷が終了するとステップＳ１１０で「ＮＯ」と判定されて、ソートモード（２部目〜）の印刷処理が終了する。
【０１１８】
次に、図２３を参照してソ−トモ−ド（２部目以降）一括スタック両面印刷処理について詳細に説明する。図２３において、まず、印刷頁数Ｏpcmax としてＯpc ／2 、印刷部数カウンタＮとして（ｎ−１）×２を設定すると共に、裏面フラグをオフする（ステップＳ１８０）。ここで、両面印刷であるのでＯpcを２で割っている。さらに、残り（ｎ−１）部を印刷するわけであるが、両面印刷であるので２倍して印刷部数カウンタＮを設定している。この裏面フラグがオンのときは給紙カセット３０から給紙して用紙の裏面に印刷した後、ＡＤＤ７３ｂに排紙し、裏面フラグがオフのときはＡＤＤ７３ｂから裏面印刷済みの用紙を給紙して、用紙の表面に印刷した後に、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う。
【０１１９】
そして、裏面フラグの切り換え（反転処理）及び給紙トレイ，排紙トレイの切替え設定処理がなされる（ステップＳ１８１）。つまり、裏面フラグがオンのときは給紙カセット３０から給紙して、ＡＤＤ７３ｂに排紙し、裏面フラグがオフのときはＡＤＤ７３ｂから裏面印刷済みの用紙を給紙して、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う。
【０１２０】
そして、頁カウンタＯpc←１とする。また、裏面フラグがオンのときは頁カウンタｆpcを『０』とし、裏面フラグがオフのときは入力頁カウンタｆpcを『ｆpcmax −wait-in 』とする初期設定がなされる（ステップＳ１８２）。
【０１２１】
そして、裏面フラグがオンのときは『印刷頁カウンタＯpc≦Ｏpcmax 』であるかが判定され、裏面フラグがオフのときは『入力頁カウンタｆpc≦０』であるかが判定される（ステップＳ１８４）。このステップＳ１８４の判定で「ＹＥＳ」と判定された場合には、前述したcase 1の場合として、頁展開処理が行われる（ステップＳ１８４）。
【０１２２】
つまり、裏面フラグがオンの場合にはファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納され、裏面フラグがオフの場合にはファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc）頁から（ｆpc−Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
【０１２３】
一方、ステップＳ１８３で「ＮＯ」と判定された場合には、前述したcase 2の場合として、頁展開処理が行われる（ステップＳ１８４ａ）。
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理がなされる（ステップＳ１８５）。
【０１２４】
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１８６）。
そして、再度case 2であるかを判定することにより最終頁になったかを判定している。（ステップＳ１８７）。このステップＳ１８７の判定で「ＮＯ」と判定された場合には、裏面フラグがオンのときは入力頁カウンタｆpcにWait-in ×２だけ加算され、裏面フラグがオフのときは入力頁カウンタｆpc−Wait-in ×２とした後、前述したステップＳ１８３以降の処理がなされる。
【０１２５】
ここで、結合頁数Wait-in が『１』である場合には、入力頁カウンタｆpcは２ずつカウントアップされる。つまり、初期値で入力頁カウンタｆpcに『１』が設定されていれば、２部目の１枚目の用紙の裏面に２頁，４頁，…Ｘ頁の内容が印刷される。つまり、図３６（Ｂ）に示すように、２部目の用紙の裏面に２頁，４頁の内容が印刷されて、ＡＤＤ７３ｂにスタックされる。
【０１２６】
そして、Ｘ頁まで用紙の裏面に印刷されると、ステップＳ１８７で「ＹＥＳ」と判定され、部数カウンタＮ＝Ｎ−１とされる（ステップＳ１８９）。
そして、「Ｎ＝０」であるかが判定される（ステップＳ１９０）。まだ、すべては印刷されていないため、「ＮＯ」と判定されてステップＳ１８１の処理に戻る。
【０１２７】
そして、裏面フラグの切り替え（つまり、裏面フラグをオン→オフ）及び給紙トレイ，排紙トレイの切替え設定処理がなされ、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う（ステップＳ１８１）。つまり、Ｘ頁の表面に「Ｘ−１頁」、「Ｘ−２頁」、「３頁」、「１頁」の印刷を行う処理が同様にして行われる。
【０１２８】
そして、順次部数カウンタＮが「−１」ずつされ、「Ｎ＝０」となるとステップＳ１９０で「ＹＥＳ」と判定された後、図１６の処理に進んで全ファイルバッファが解放され（ステップＳ５９）、その他のリソースが解放される（ステップＳ６０）。
【０１２９】
以上のようにして、ソートモード（２部目以降）一括スタック両面印刷の印刷は図３６（Ｂ）に示すようにして印刷される。
次に、図２４を参照してグループモード（２部目以降）一括スタック両面印刷の処理について説明する。図２４において、印刷頁数としてＯpmax，印刷部数としてｎ−１を得る（ステップＳ１９１）。
【０１３０】
次に、カウンタを初期設定する。つまり、頁カウンタＯpc←１，入力頁カウンタｆpc←１と設定する（ステップＳ１９２）。
そして、給紙トレイ，排紙トレイの切替え設定処理がなされる（ステップＳ１９３）。つまり、印刷頁カウンタＯpcが奇数であると、給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙し、印刷頁カウンタＯpcが偶数であると、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う（ステップＳ１９３）。印刷頁カウンタＯpcの初期値は奇数（１）である。
【０１３１】
case 1の場合として、頁展開処理が行われる（ステップＳ１９４）。
つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。ｆpcの初期値は『１』であり、Wait-in を『１』とすると、２頁のデータが印刷用頁バッファに格納される。
【０１３２】
一方、前述したcase 2の場合には、（ｆpc＋１）〜ｆpcmax 頁までの頁展開処理が行われる（ステップＳ１９５）。
そして、図３６（Ａ）に示すように（ｎ−１）部の用紙の裏面に２頁の内容が印刷され、ＡＤＤ７３ｂにスタックする処理が行われる（ステップＳ１９６）。そして、印刷頁カウンタＯpcが「＋１」される（ステップＳ１９７）。
【０１３３】
そして、「Ｏpc≦Ｏpcmax 」であるかを判定する（ステップＳ１９８）。このステップＳ１９８で「ＹＥＳ」と判定された場合には、印刷頁カウンタＯpcが偶数であれば『入力頁カウンタｆpc−Wait-in 』され、奇数であれば『入力頁カウンタｆpc＋Wait-in ×３』された（ステップＳ１９９）後、ステップＳ１９３に戻る。例えば、図３６（Ａ）に示すようにＮ（ｎ−１）部の裏面にファイルエリアＭ２の２頁（入力頁カウンタｆpc＝１）の内容が印刷された後、印刷頁カウンタＯpcは＋１されて、Ｏpc＝２（偶数）とされるため、入力頁カウンタｆpcが「−１」されて、ｆpc＝０とされる。
【０１３４】
そして、ステップＳ１９３に戻って、給紙トレイ，排紙トレイの切替え設定処理がなされ、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う（ステップＳ１９３）。印刷頁カウンタＯpcは偶数に設定されるため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理を行う。この際に、プリンタ313 でＡＤＤ７３ｂから取り出された用紙の表面にファイルエリアＭ２の１頁（入力頁カウンタｆpc＝０）の内容が印刷される。
【０１３５】
このようにして、２枚目の印刷が終了すると印刷頁カウンタＯpcは「＋１」されて、Ｏpc＝３（奇数）とされるため、入力頁カウンタｆpc←ｆpc＋Wait-in ×３とされる。つまり、入力頁カウンタｆpc＝３とされ、４頁（裏面），３頁（表面）の印刷が同様にしてなされる。つまり、入力頁カウンタｆpcは１→０→３→２→５→４…というように変化する。
【０１３６】
以上のようにして、グループモード（２部目以降）一括スタック両面印刷の印刷は図３６（Ａ）に示すようにして印刷される。
次に、ソートモード（２部目以降）カスケード両面印刷の処理について図２５及び図２６を参照して説明する。
【０１３７】
図２５において、まず初期設定が行われる（ステップＳ２００）。つまり、印刷部数カウンタＮ＝ｎ−１、印刷頁数Ｏpcmax ＝Ｏpcmax ／２、カスケード回数CCmax ＝Ｏpcmax ／ADDmax（小数点以下切り捨て）、
一回目の印刷頁数ADD1st＝Ｏpcmax −CCmax ×ADDmax；
２回目〜CCmax 回の印刷頁数＝ADDmaxとする（ただし、ADD1st＝０の場合は２回目以降の処理のみ）。
【０１３８】
ここで、ADDmaxはＡＤＤ７３ｂにスタックできる原稿の枚数の最大値である。従って、Ｏpcmax をADDmaxで除算した際の商は、何回ＡＤＤ７３ｂを満杯にするかの倍数である。
【０１３９】
一回目の印刷頁数ADD1stは、Ｏpcmax をADDmaxで除算した際の余りに相当するものである。この実施例では、印刷頁数がADDmaxの整数倍でない場合には、その半端な印刷頁数を先に印刷するようにしている。
【０１４０】
次に、裏面フラグを『１』にセット（ＯＮ）させる（ステップＳ２０１）。この裏面フラグが『１』の場合には、用紙の裏面に原稿が印刷されることを示し、その際に用紙は給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙されるように、給紙トレイ，排紙トレイが設定される。
【０１４１】
一方、裏面フラグが『０』（リセット）された場合には、用紙の表面に原稿が印刷されることを示し、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２０２）。
【０１４２】
次に、印刷頁カウンタＯpc←１とする。さらに、裏面フラグがオンの場合には入力頁カウンタｆpc←０、裏面フラグがオフの場合には入力頁カウンタｆpc←
２×ADD1st×Wait-in −Wait-in とする設定がなされる（ステップＳ２０３）。
【０１４３】
そして、case 1の場合として、頁展開処理が行われる（ステップＳ２０４）。つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
【０１４４】
あるいは、case 2の場合の処理として頁展開処理がなされる。つまり、（ｆpc＋１）〜ｆpcmax のでの頁が展開される。
次に、印刷用頁バッファに格納された１頁のデータがプリンタ315 に送られて印刷処理がなされる（ステップＳ２０５）。
【０１４５】
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ２０６）。
そして、印刷頁カウンタＯpc≦ADD1stであるか判定される（ステップＳ２０７）。このステップＳ２０７の判定で「ＮＯ」と判定された場合には、裏面フラグがオンの場合には入力頁カウンタｆpcにWait-in ×２だけ加算され、裏面フラグがオフの場合には入力頁カウンタｆpcからWait-in ×２だけ減算され、前述したステップＳ２０４以降の処理がなされる。
【０１４６】
ここで、結合頁数Wait-in が『１』である場合には、入力頁カウンタｆpcは２ずつカウントアップされる。つまり、初期値で入力頁カウンタｆpcに『１』が設定されていれば、２部目の１枚目の用紙の裏面に２頁，４頁，…２×ADD1stの内容が印刷される。つまり、図３７に示すように、２部目の用紙の裏面に２頁，４頁の内容が印刷されて、ＡＤＤ７３ｂにスタックされる。
【０１４７】
そして、２部目の用紙の裏面に２頁、４頁、…というように１頁印刷される毎に、印刷頁カウンタＯpcが「＋１」される（ステップＳ２０６）。
そして、ADD1st枚印刷するとステップＳ２０７で「ＹＥＳ」と判定され、裏面フラグは『１』（オン）かどうか判定される（ステップＳ２０９）。
【０１４８】
裏面フラグは『１』であるため、「ＹＥＳ」と判定されて、裏面フラグが『０』（オフ）される（ステップＳ２１０）。その後、ステップＳ２０２以降の処理が行われる。ここで、裏面フラグは『０』であるため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２０２）。
【０１４９】
そして、ステップＳ２０４〜Ｓ２０８の処理が同様に繰り返されて行われ、ＡＤＤ７３ｂから給紙されて用紙の表面に奇数頁が印刷される。そして、ｎ頁の表面に２×ADD1st−１，…３頁，１頁が印刷されると、ステップＳ２０７で「ＹＥＳ」と判定されてステップＳ２０９に進む。このステップＳ２０９の判定では、裏面フラグは『０』（オフ）であるため、「ＮＯ」と判定されて、カスケードカウンタCC←１が設定される（ステップＳ２１１）。
【０１５０】
そして、裏面フラグが再度『１』（オン）に設定され（ステップＳ２１２）、用紙は給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙されるように、給紙トレイ，排紙トレイが設定される（ステップＳ２１３）。
【０１５１】
次に、印刷頁カウンタＯpc←ADD1st＋（CC−1 ）×ADDmaxが設定され、入力頁カウンタｆpcに、裏面フラグがオンのときは２×｛ADD1st＋（CC−１）×ADDmax｝×Wait-in が設定され、裏面フラグがオフのときは２×｛ADD1st＋（CC−１）×ADDmax｝×Wait-in ＋ADDmax×２×Wait-in −Wait-in が設定される（ステップＳ２１４）。CC←1 に初期設定されているから印刷頁カウンタＯpc←ADD1stに設定される。
【０１５２】
そして、case 1の場合として、頁展開処理が行われる（ステップＳ２２０）。つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
【０１５３】
あるいは、case 2の場合の処理として頁展開処理がなされる。
次に、印刷用頁バッファに格納された１頁のデータがプリンタ315 に送られて印刷処理がなされる（ステップＳ２２１）。
【０１５４】
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ２２２）。
そして、印刷頁カウンタＯpc≦ADD1st＋（CC−1 ）×ADDmaxであるか判定される（ステップＳ２２３）。このステップＳ２２３の判定で「ＮＯ」と判定された場合には、裏面フラグがオンであれば入力頁カウンタｆpcにWait-in ×２だけ加算され、裏面フラグがオフであれば入力頁カウンタｆpcからWait-in ×２だけ減算された後、前述したステップＳ２２０以降の処理がなされる。
【０１５５】
ここで、結合頁数Wait-in が『１』である場合には、入力頁カウンタｆpcは２ずつカウントアップされる。つまり、１部目の用紙の裏面に２×｛ADD1st＋（CC−１）×ADDmax｝＋２頁，２×｛ADD1st＋（CC−１）×ADDmax｝＋４頁，…，２×｛ADD1st＋CC×ADDmax｝頁の内容が印刷される。つまり、図３８に示すように、カスケード２回目の用紙の裏面に２頁，４頁の内容が印刷されて、ＡＤＤ７３ｂにスタックされる。
【０１５６】
そして、用紙の裏面に２×｛ADD1st＋（CC−１）×ADDmax｝＋２頁、２×｛ADD1st＋（CC−１）×ADDmax｝＋４頁、…というように１頁印刷される毎に、印刷頁カウンタＯpcが「＋１」される（ステップＳ２２２）。
【０１５７】
そして、ADDmax枚印刷するとステップＳ２２３で「ＹＥＳ」と判定され、裏面フラグは『１』（オン）かどうか判定される（ステップＳ２２５）。
裏面フラグは『１』であるため、「ＹＥＳ」と判定されて、裏面フラグが『０』（オフ）される（ステップＳ２１０）。その後、ステップＳ２１３以降の処理が行われる。ここで、裏面フラグは『０』であるため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２１３）。
【０１５８】
そして、ステップＳ２２０〜Ｓ２２４の処理が同様に繰り返されて行われ、ＡＤＤ７３ｂから給紙されて用紙の表面に奇数頁が印刷される。そして、ADDmax頁の表面に２×｛ADD1st＋CC×ADDmax｝−１頁，…、２×｛ADD1st＋（CC−１）×ADDmax｝＋３頁，２×｛ADD1st＋（CC−１）×ADDmax｝＋１頁，…が印刷されると、ステップＳ２２３で「ＹＥＳ」と判定されてステップＳ２２５に進む。このステップＳ２２５の判定では、裏面フラグは『０』（オフ）であるため、「ＮＯ」と判定されて、カスケードカウンタCCが「＋１」される（ステップＳ２２７）。
【０１５９】
そして、カスケードカウンタCC≦CCmax であるかが判定される（ステップＳ２２８）。このステップＳ２２８の判定で「ＹＥＳ」と判定された場合には、前述したステップＳ２１２以降の処理が繰り返されて、次のカスケード３回目の印刷でADDmax枚の用紙の両面に印刷される。
【０１６０】
そして、カスケードの印刷が終了する毎に、カスケードカウンタCCが「＋１」ずつされる（ステップＳ２２７）。
そして、カスケードカウンタCC＞CCmax となると、ステップＳ２２８の判定で「ＮＯ」と判定されて部数カウンタＮ←Ｎ−１とされる（ステップＳ２２９）。
【０１６１】
そして、印刷部数Ｎが０であるかを判定する（ステップＳ２３０）。このステップＳ２３０の判定で「ＮＯ」と判定された間は、前述したステップＳ２０１以降の処理が繰り返し行われる。
【０１６２】
そして、『Ｎ＝０』となると、ステップＳ２３０で「ＹＥＳ」と判定されて図１６のステップＳ５９以降の処理に戻る。
以上のように、ソートモード（２部目以降）カスケード両面印刷の処理がなされる。
【０１６３】
次に、グループモード（２部目以降）カスケード両面印刷の処理について図２７及び図２８を参照して説明する。図２７において、まず初期設定が行われる。つまり、印刷部数カウンタＮ＝ｎ−１、印刷頁数Ｏpcmax ＝Ｏpcmax ／２、カスケード回数CCmax ＝Ｎ／ADDmax（小数点以下切り捨て）、
一回目の印刷部数ADD1st＝Ｎ−CCmax ×ADDmax；
２回目〜CCmax 回の印刷部数＝ADDmaxとする。ただし、ADD1st＝０の場合は２回目以降の処理のみ行なう。
【０１６４】
ここで、ADDmaxはＡＤＤ７３ｂにスタックできる原稿の枚数の最大値である。従って、ＮをADDmaxで除算した際の商は、何回ＡＤＤ７３ｂを満杯にするかの倍数である。
【０１６５】
一回目の印刷頁数ADD1stは、ＮをADDmaxで除算した際の余りに相当するものである。この実施例では、印刷頁数がADDmaxの整数倍でない場合には、その半端な印刷頁数を先に印刷するようにしている。
【０１６６】
次に、印刷頁カウンタＯpc←１とし、入力頁カウンタｆpc←１とする設定がなされる（ステップＳ２３２）。
次に、裏面フラグを『１』にセット（ＯＮ）させる（ステップＳ２３３）。この裏面フラグが『１』の場合には、用紙の裏面に原稿が印刷されることを示し、その際に用紙は給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙されるように、給紙トレイ，排紙トレイが設定される。
【０１６７】
一方、裏面フラグが『０』（リセット）された場合には、用紙の表面に原稿が印刷されることを示し、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２３４）。
【０１６８】
そして、case 1の場合として、頁展開処理が行われる（ステップＳ２３５）。つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
【０１６９】
あるいは、case 2の場合の処理として頁展開処理がなされる。つまり、（ｆpc＋１）〜ｆpcmax のでの頁が展開される。
連結頁数が『１』である場合には、（ｆpc＋１）頁だけが印刷用頁バッファに格納される。初期設定で入力頁カウンタｆpcは『１』に設定されているため、ファイルバッファＭ２の２頁のデータ（用紙の裏面に印刷するためのデータ）が印刷用頁バッファに格納される。
【０１７０】
そして、用紙の裏面にADD1st部数、つまり第３７図（Ａ）に示すようにADD1st部だけ用紙の裏面に２頁の内容が印刷されて、ＡＤＤ７３ｂにスタックされる（ステップＳ２３６）。
【０１７１】
そして、入力頁カウンタｆpcを−（Wait−in）、つまり『−１』する（ステップＳ２３７）。
次に、裏面フラグは『１』（オン）かどうか判定される（ステップＳ２３８）。裏面フラグは『１』であるため、「ＹＥＳ」と判定されて、裏面フラグが『０』（オフ）される（ステップＳ２３９）。その後、ステップＳ２３４以降の処理が行われる。ここで、裏面フラグは『０』であるため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２３４）。
【０１７２】
そして、ＡＤＤ７３ｂからADD1st部の２頁が裏面印刷済された用紙がプリンタ315 に送られて、その表面に１頁のデータが印刷される（ステップＳ２３６）。このようにしてカスケード１回目の処理として、図３７（Ａ）に示すようにｎ部印刷される。
【０１７３】
そして、入力頁カウンタｆpcが「＋Wait-in 」され（ステップＳ２３７）、再度裏面フラグが『１』（オン）であるかが判定される（ステップＳ２３８）。
この判定では、すでに裏面フラグは『０』（オフ）であるため、「ＮＯ」と判定されて、カスケードカウンタCC←１が設定される（ステップＳ２４０）。
【０１７４】
そして、裏面フラグが再度『１』（オン）に設定される（ステップＳ２４１）。次に、入力頁カウンタｆpcを「＋Wait-in 」する（ステップＳ２４２）。
裏面フラグは『１』（オン）に設定されため、用紙は給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙されるように、給紙トレイ，排紙トレイが切り替えられる。
【０１７５】
そして、case 1の場合として、頁展開処理が行われる（ステップＳ２４４）。つまり、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。
【０１７６】
あるいは、case 2の場合の処理として頁展開処理がなされる。つまり、（ｆpc＋１）〜ｆpcmax までの頁が展開される。
連結頁数が『１』である場合には、（ｆpc＋１）頁だけが印刷用頁バッファに格納される。初期設定で入力頁カウンタｆpcは『１』に設定されているため、ファイルバッファＭ２の２頁のデータ（用紙の裏面に印刷するためのデータ）が印刷用頁バッファに格納される。
【０１７７】
そして、用紙の裏面にADDmax部数、つまり第３７図（Ａ）に示すようにADDmax部だけ用紙の裏面に２頁の内容が印刷されて、ＡＤＤ７３ｂにスタックされる（ステップＳ２４５）。
【０１７８】
次に、裏面フラグは『１』（オン）かどうか判定される（ステップＳ２４７）。裏面フラグは『１』であるため、「ＹＥＳ」と判定されて、裏面フラグが『０』（オフ）される（ステップＳ２４８）。その後、ステップＳ２４３以降の処理が行われる。ここで、裏面フラグは『０』であるため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排出するように給紙カセット３０及び排紙トレイ７４を切り換える処理がなされる（ステップＳ２４３）。
【０１７９】
そして、ＡＤＤ７３ｂからADDmax部の２頁が裏面印刷済された用紙がプリンタ315 に送られて、その表面に１頁のデータが印刷される（ステップＳ２３６）。このようにしてカスケード２回目の処理として、図３７（Ａ）に示すようにADDmax部印刷される。
【０１８０】
そして、入力頁カウンタｆpcが「−（wait−in）」、つまり「−１」され（ステップＳ２４６）、再度裏面フラグが『１』（オン）であるかが判定される（ステップＳ２４７）。
【０１８１】
この判定では、すでに裏面フラグは『０』（オフ）であるため、「ＮＯ」と判定されて、カスケードカウンタCCが「＋１」される（ステップＳ２４９）。
そして、カスケードカウンタCC≦CCmax であるかが判定される（ステップＳ２５０）。
【０１８２】
このステップＳ２５０で「ＹＥＳ」と判定される場合は、前述したステップＳ２４１の処理が繰り返し行われ、次にカスケードの印刷が終了する毎に、カスケードカウンタCCが「＋１」される（ステップＳ２４９）。
【０１８３】
そして、ステップＳ２５０の判定で「ＮＯ」と判定された場合には、印刷頁カウンタＯpcを「＋１」し、入力頁カウンタｆpcを「＋（wait−in）×３」、つまり、「＋３」する（ステップＳ２５１）。
【０１８４】
そして、印刷頁カウンタＯpc≦Ｏpcmax であるかを判定する（ステップＳ２５２）。このステップＳ２５２で「ＹＥＳ」と判定された場合には、前述したステップＳ２３３以降の処理が繰り返し行われ、３頁及び４頁に対する両面印刷がカスケード１回目からカスケードCCmax 回目まで行われる。
【０１８５】
そして、ステップＳ２５２の判定で「ＮＯ」と判定されると、すべての印刷が終了したと判定されて、図１６のステップＳ５９、Ｓ６０の処理により、全ファイルの解放及びその他のリソースの解放が行われる。
【０１８６】
以上の処理により、グループモード（２部目以降）カスケード両面印刷の処理が終了する。
次に、図２０のフローチャートを参照して図１５のステップＳ４８で行われるグループモード（全部数）片面印刷処理について説明する。図２０において、まずカウンタが初期化されると共に、印刷部数ｎが確認される（ステップＳ１２０）。つまり、印刷頁数を計数する印刷頁カウンタＯpc、図９のファイルエリアＭ２に圧縮して記憶されている原稿の頁数を計数する入力頁カウンタｆpcがゼロクリアされる。つまり、操作部114 から設定された頁結合数が入力待ち頁数Wait-in として設定される。この頁結合数とは、例えばＡ４の原稿２枚をそれぞれＢ５に縮小し、Ｂ４の用紙に２枚印刷するような場合に、頁結合数として「２」が設定される。つまり、ファイルエイアＭ２に記憶されている複数頁の原稿を結合して１枚の用紙に印刷するような場合である（以下、2 in  １と称する）。なお、結合する頁がない場合には、Wait-in に「１」が設定される。
【０１８７】
次に、印刷処理用リソースを確保する処理、印刷用頁バッファ、プリンタ等が確保される（ステップＳ１２１）。
次に、入力タスクのステータスを図８のテーブルを検索して異常が発生していないかを確認する。さらに、図６の蓄積管理テーブルＥを参照して、ファイルエリアＭ２に格納された原稿の入力頁総数ｆpcmax を検索する（ステップＳ９３）。
【０１８８】
次に、『ｆpcmax ≧ｆpc＋Wait-in （case 1）』または『入力完了かつｆpcmax ≦ｆpc＋Wait-in （case 2）』であるかどうか判定される（ステップＳ９４）。
【０１８９】
ここで、case 1の場合とは、原稿の入力がこれから出力する画像データに対応した原稿よりも先行して入力頁総数ｆpcmax が多い場合に発生するケースである。
【０１９０】
case 2の場合とは、印刷が行われて、その度に入力頁カウンタｆpcがWait-in だけカウントアップされて大きくなり、すでに入力は完了しているのにｆpcmax とｆpcとの差がWait-in 以下になる場合がある。例えば、2 in 1を指定した場合でも奇数枚数の原稿を入力したような場合には、最後の頁には１枚分の原稿しか印刷されないような場合である。この場合には、case 2の条件が満足される。
【０１９１】
このステップＳ１２３の判定で「ＹＥＳ」と判定された場合には、頁展開処理が以下のようにして行われる（ステップＳ１２４）。
つまり、case 1の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。一方、case 2の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpcmax ）頁までが伸長されて印刷用頁バッファに伸長される。
【０１９２】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて原稿の１頁をｎ部印刷する処理がなされる（ステップＳ１２５）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１２６）。
【０１９３】
そして、印刷頁逐次解放するかが判定される（ステップＳ１２７）。この判定は、印刷頁、つまり、１頁をｎ部印刷した後に、ファイルバッファＭ２のその１頁分を解放するかの判定である。
【０１９４】
このステップＳ１２７の判定で「ＮＯ」と判定された場合には、case 2であるかが判定される（ステップＳ１２８）。このステップＳ１２８の判定で「ＮＯ」と判定された場合には、入力頁カウンタｆpcにWait-in だけ加算された後、前述したステップＳ１２２以降の処理がなされる。つまり、2 in 1の場合には入力頁カウンタｆpcが「２」ずつカウントアップされる。
【０１９５】
このような処理が繰り返し行われると、入力頁カウンタｆpcが入力総頁数ｆpcmax 以上になる場合がある。つまり、case 2の条件が満たされる。この場合には、ステップＳ１２８の判定で「ＹＥＳ」と判定された場合には、グループモード（全部数）片面印刷が終了する。
【０１９６】
一方、ステップＳ１２７で「ＹＥＳ」と判定された場合には、case 2であるかが判定される（ステップＳ１３０）。このステップＳ１３０の判定で「ＹＥＳ」と判定された場合には、ファイルバッファＭ２の印刷終了した１頁分、つまり（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁が解放されてステップＳ１２２の処理に戻る。
【０１９７】
一方、ステップＳ１３０において「ＹＥＳ」と判定された場合には、一連の処理が終了する。
次に、図２１を参照して図１５のステップＳ５５の処理であるグループモード（全部数）両面印刷処理について説明する。まず、カウンタが初期化される（ステップＳ１４０）。つまり、印刷頁数を計数する印刷頁カウンタＯpc←１、図９のファイルエリアＭ２に圧縮して記憶されている原稿の頁数を計数する入力頁カウンタｆpcがゼロクリアされる。また、操作部114 から設定された頁結合数が入力待ち頁数Wait-in として設定される。さらに、印刷部数ｎが確保される。
【０１９８】
次に、印刷処理用リソースを確保する処理、印刷用頁バッファ、プリンタ等の確保及び給紙トレイ及び排紙トレイの初期設定が行われる（ステップＳ１４１）。
【０１９９】
次に、入力タスクのステータスを図８のテーブルを検索し、入力タスクで異常が発生しているかを検索する。さらに、図６の蓄積管理テーブルＥを参照して、ファイルエリアＭ２に格納された原稿の入力頁総数ｆpcmax を検索する（ステップＳ１４２）。
【０２００】
次に、『ｆpcmax ≧ｆpc＋Wait-in （case 1）』または『入力完了かつｆpcmax ≦ｆpc＋Wait-in （case 2）』であるかどうか判定される（ステップＳ１６３）。
【０２０１】
このステップＳ１４３の判定で「ＹＥＳ」と判定された場合には、給紙，排紙カセットの切り替えが行われる（ステップＳ１４４）。つまり、印刷頁カウンタＯpcが『１』（奇数）であると、給紙カセット３０から給紙され、ＡＤＤ７３ｂに排紙するように、給紙カセット３０及び排紙トレイ７４を切り換える処理を行う（ステップＳ１６５）。印刷頁カウンタＯpcが『０』（偶数）であると、ＡＤＤ７３ｂから給紙され、排紙トレイ７４に切り換える処理を行う。
【０２０２】
次に、頁展開処理が以下のようにして行われる（ステップＳ１６４）。
つまり、case 1の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpc＋Wait-in ）頁までが伸長されて印刷用頁バッファに格納される。一方、case 2の場合には、ファイルエリアＭ２に圧縮して格納されている原稿の（ｆpc＋１）頁から（ｆpcmax ）頁までが伸長されて印刷用頁バッファに伸長される。
【０２０３】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理、つまりｎ部の用紙の裏面に原稿が印刷され、順次ＡＤＤ７３ｂにスタックされる（ステップＳ１４５）。
【０２０４】
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１４６）。
そして、表面印刷済みかつ印刷頁逐次解放するかかが判定される（ステップＳ１４７）。
【０２０５】
このステップＳ１４７で「ＮＯ」と判定された場合には、case 2であるかが判定される（ステップＳ１４８）。
このステップＳ１４８で「ＮＯ」と判定された場合には、入力頁カウンタｆpcにWait-in （ここでは、連結頁がなければ、『１』）だけ加算された後、前述したステップＳ１４２以降の処理がなされる（ステップＳ１４９）。
【０２０６】
そして、ＡＤＤ７３ｂスタックされていた裏面に２頁が印刷済みのｎ部の用紙が順次プリンタ315 で印刷されて排紙トレイ７４に排出される。
つまり、再度ステップＳ１４４にくると、印刷頁カウンタＯpcに『２』（偶数）が計数されているため、ＡＤＤ７３ｂから給紙し、排紙トレイ７４に排紙するように切り換えている。
【０２０７】
次に、印刷用頁バッファに格納されたデータがプリンタ315 に送られて印刷処理、つまりｎ部の用紙の表面に原稿が印刷される（ステップＳ１６６）。
そして、印刷頁カウンタＯpcがカウントアップ（＋１）される（ステップＳ１４６）。
【０２０８】
このようにして、原稿の表面に１頁、裏面に２頁が印刷された原稿がｎ部印刷される。
そして、ステップＳ１４７の判定で「ＮＯ」、ステップＳ１４８の判定で「ＮＯ」と判定され、ｎ部の原稿の表面に３頁、裏面に４頁が印刷される。このような処理が繰り返されると、入力頁カウンタｆpcが入力総頁数ｆpcmax 以上になる場合がある。つまり、case 2の条件が満たされる。この場合には、ステップＳ１４８の判定で「ＹＥＳ」と判定され、グループモード（全部数）両面印刷が終了する。
【０２０９】
ところで、ステップＳ１４７の判定で「ＹＥＳ」と判定された場合には、case2の条件が満たされたかを判定し（ステップＳ１５０）、「ＮＯ」と判定された場合には、ファイルエリアＭ２の『ｆpc−（wait-in ）』〜『ｆpc＋（Wait-in ）』までの２頁分が解放する（ステップＳ１５１）。その後、ステップＳ１４２以降の処理が繰り返し行われる。
【０２１０】
つまり、印刷頁を逐次解放する指定がされた場合には、ｎ部の原稿の裏面と表面に印刷がされた後、裏面と表面の２頁分だけファイルエリアＭ２が解放される（ステップＳ１５１）。
【０２１１】
そして、ステップＳ１５０で「ＹＥＳ」と判定された場合には、グループモード（全部数）両面印刷処理は終了する。
次に、図２９乃至図３０を参照してページメモリ323 内の図９の頁バッファＭ１に生成する画像入力用及び画像出力用のためのバッファの確保の仕方について説明する。
【０２１２】
図４のＲ０Ｍ１０２には、図２９のフローチャートに示すプログラムを記憶していると共に、図３４に示すメモリアロケート処理を行うプログラムも記憶している。
【０２１３】
まず、図３０（Ａ）は逐次出力用に画像入力用及び画像出力用のためのバッファの確保するテーブルを示している。
図３０（Ａ）は逐次出力用のテーブルを示す。この逐次用とは原稿をスキャナ部313 から１頁読み込む毎に、印刷することを意味する。
例えば用紙がＡ４で、ページメモリ323 の実装メモリが８Ｍの場合には、画像入力用として４ＭB 、出力用として４ＭB を図９の頁バッファ領域Ｍ１に確保することを意味している。
【０２１４】
図３（Ｂ）は完了用のテーブルを示す。この完了用とは原稿をすべてスキャナ部313 から読み込んだ後に、印刷することを示す。従って、この完了用の場合には、逐次用のテーブルよりも確保するメモリ容量が多い。例えば用紙がＡ４で、ページメモリ323 の実装メモリが８ＭB の場合には、画像入力用として４ＭB 、出力用として４ＭB を図９の頁バッファ領域Ｍ１に確保することを意味している。
【０２１５】
次に、図２９のフローチャートを参照しながら画像入力用と画像出力用のバッファを確保する方法について説明する。
図２９において、まず、実装メモリ容量をシステムから取得する（ステップＳ２６０）。そして、逐次出力可能であるかを図１１のフローチャートのステップＳ１３〜Ｓ１８を参照して判定する（ステップＳ２６１）。
【０２１６】
このステップＳ２６１の判定で「ＹＥＳ」と判定された場合には、図３０（Ａ）の逐次出力用のテーブルを参照して画像入力用及び画像出力用のバッファを確保するようにしている（ステップＳ２６３）。
【０２１７】
一方、ステップＳ２６１で「ＮＯ」と判定された場合には、図３０（Ｂ）の完了用のテーブルを参照して画像入力用及び画像出力用のバッファを確保するようにしている（ステップＳ２６２）。
【０２１８】
このように、図９の頁バッファ領域Ｍ１に確保する画像入力用及び画像出力用のバッファの容量を実装メモリ容量、複写モード（逐次出力，完了後出力）、用紙サイズに基づいて決定するようにしたので、画像入力用及び画像出力用のバッファの容量を最適な値とすることができる。
【０２１９】
次に、図３１乃至図３４を参照してファイル書き込みルーチン及びメモリアロケート処理について説明する。まず、画像蓄積用メモリとしてのページメモリ323 の管理方法を、図３２と図３３に示すブロック管理テーブル３３ｅの記憶例を用いて説明する。
【０２２０】
画像蓄積用メモリとして使用されるページメモリ部323 のエリアは１ブロックが１６Ｋバイトからなる領域に分割して、上記ブロック管理テーブル３３ｅによりブロック管理される。サイズは１６Ｋに限定されず、３２Ｋ、６４Ｋに設定することも可能である。
【０２２１】
ページメモリ323 の全蓄積領域は、図３３に示すように、電源オン時に例えば８メガバイト（ＭＢ）ずつジョブ種別ごとに割当てられる。どのジョブ種別に割当てられているかは、ブロック管理テーブル３３ｅの属性情報として、各ブロックに１ヶのジョブ種別識別フラグで識別できるようになっている。たとえば、「Ｉ：画像入出力用」、「Ｓ：電子ソート用」等が設けられている。
【０２２２】
次に、各ジョブの画像蓄積メモリつまりページメモリ部323 の使用方法を図３１、図３４に示すフローチャートにより説明する。図３１は各ジョブが画像蓄積の際に使用する画像蓄積エリアへの画像蓄積ルーチンである。
【０２２３】
図３１において、まず、ｎキロバイトのメモリをアロケートして、アロケートＯＫかメモリフルかを判定する（ステップＳ２７０）。
ｎキロバイトのメモリのアロケートは図３４に示すフローチャートにより行われる。
【０２２４】
つまり、図３４において、各ジョブ種別ごとにブロック管理テーブル３３ｅの空き（ＮＵＬＬ）エリアを先頭からサーチする（ステップＳ２８０）。そして、このステップＳ２８０の判定で、ＮＵＬＬがみつかれば、対応するブロックを使用する。そして、図３２に示すように、このＮＵＬＬフラグをＥＮＤに変更し（ステップＳ２８１）、いままでＥＮＤであったフラグを、あらたに使用したブロック番号を設定する（ステップＳ２８２）。そして、正常終了としてのステータスを返す（ステップＳ２８３）。
【０２２５】
これにより、ブロックをどういう順番で使用しているかのリンク情報とする。画像データが大きくたとえば３０Ｋバイトある場合にはブロックの確保を２回繰り返し、計２つのＮＵＬＬであったブロックがあらたに使用される。
【０２２６】
一方、ステップＳ２８０で空きブロックがサーチできなかった場合には、メモリフルとしてのステータスを返す（ステップＳ２８４）。
以上のようにして、図３４のメモリアロケートルーチンで設定されたステータスが正常終了であれば、そのアロケートされた領域にデータを書き込む処理がなされる（ステップＳ２７１）。
【０２２７】
そして、まだ書き込むデータがあるかを判定し（ステップＳ２７２）、「ＹＥＳ」と判定された場合には再度ステップＳ２７０でメモリアロケートルーチンを呼び、ｎキロバイトのメモリをアロケートする。
【０２２８】
一方、ステップＳ２７２の判定で「ＮＯ」と判定された場合には、ステータスとして正常終了を設定する（ステップＳ２７３）。
一方、ステップＳ２７０で「メモリフル」と判定された場合には、ステータスとしてメモリフルが設定される（ステップＳ２７５）。
以上のようにして、ページメモリ323 のメモリ確保が行われる。
【０２２９】
【発明の効果】
以上詳述したように本発明によれば、１枚目あるいは１部目の複写物を早く印刷するようにしたので、原稿の複写物をより早い時点で確認することができる。このため、複写のやり直しの時間を短縮でき、かつ無駄紙の枚数を減らすことができる複合型画像形成装置を提供することができる。このため、複写のやり直しの時間を短縮でき、かつ無駄紙の枚数を減らすことができる複合型画像形成装置を提供することができる。
とくに、本発明によれば、画像入力に用いる画像入力バッファおよび印刷出力に用いる画像出力バッファの容量を最適な値に設定できる複合型画像形成装置を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施例に係わる複合型画像形成装置の断面図。
【図２】同複合型画像形成装置のシステム構成図。
【図３】スキャナ部の構成を示すブロック図。
【図４】基本ＣＰＵの構成を示すブロック図。
【図５】プリンタ部の構成を示すブロック図。
【図６】複写管理タスク、原稿入力タスク、印刷タスクの相互間の関係を示す図。
【図７】頁毎入力完了情報のフォーマットを示す図。
【図８】ジョブ番号に対応して入力タスク（原稿の読取り処理）、出力タスク（印刷処理）がどのような状態にあるかが設定されるテーブルを示す図。
【図９】ページメモリの頁バッファ領域Ｍ１とファイルエリアＭ２の関連を示す図。
【図１０】複写管理タスクの動作を説明するためのフローチャート。
【図１１】原稿入力タスクの動作を説明するためのフローチャートの一部。
【図１２】原稿入力タスクの動作を説明するためのフローチャートの一部。
【図１３】原稿入力タスクの動作を説明するためのフローチャートの一部。
【図１４】蓄積後出力と逐次出力それぞれの入出力関係を示す図。
【図１５】印刷タスクの動作を説明するためのフローチャートの一部。
【図１６】印刷タスクの動作を説明するためのフローチャートの一部。
【図１７】印刷タスクの動作を説明するためのフローチャートの一部。
【図１８】ソートモード（一部目）片面印刷処理を説明するためのフローチャート。
【図１９】ソートモード（２部目〜）片面印刷処理を説明するためのフローチャート。
【図２０】グループモード（全部数）片面印刷処理を説明するためのフローチャート。
【図２１】グループモード（全部数）両面印刷処理を説明するためのフローチャート。
【図２２】ソート・グループモード（一部目ソート）両面印刷処理を説明するためのフローチャート。
【図２３】ソートモード（２部目以降）一括スタック両面印刷処理を説明するためのフローチャート。
【図２４】グループモード（２部目以降）一括スタック両面印刷処理を説明するためのフローチャート。
【図２５】ソートモード（２部目以降）カスケード両面印刷処理を説明するためのフローチャートの一部。
【図２６】ソートモード（２部目以降）カスケード両面印刷処理を説明するためのフローチャートの一部。
【図２７】グループモード（２部目以降）カスケード両面印刷処理を説明するためのフローチャートの一部。
【図２８】グループモード（２部目以降）カスケード両面印刷処理を説明するためのフローチャートの一部。
【図２９】頁バッファＭ１に生成する画像入力用及び画像出力用のためのバッファの確保方法を説明するためのフローチャート。
【図３０】逐次出力用及び完了用の画像入力用及び画像出力用のためのバッファの確保するテーブルを示す図。
【図３１】ファイル書き込みルーチンを示すフローチャート。
【図３２】ブロック管理テーブルの記憶例を示す図。
【図３３】ブロック管理テーブルの記憶例を示す図。
【図３４】メモリアロケートルーチンを示すフローチャート。
【図３５】両面印刷処理の一部目のイメージを示す図。
【図３６】両面一括処理の流れを示す図。
【図３７】両面印刷，カスケード処理のイメージを示す図。
【図３８】両面印刷，カスケード処理のイメージを示す図。
【符号の説明】
301 …基本部、302 …ページメモリ部、313 …スキャナ、315 …プリンタ、100 …メインＣＰＵ、102 …ＲＯＭ、104 …ＲＡＭ。
【図１】
0003539781.tif 000002
【図２】
0003539781.tif 000003
【図３】
0003539781.tif 000004
【図４】
0003539781.tif 000005
【図５】
0003539781.tif 000006
【図６】
0003539781.tif 000007
【図７】
0003539781.tif 000008
【図８】
0003539781.tif 000009
【図９】
0003539781.tif 000010
【図１０】
0003539781.tif 000011
【図１１】
0003539781.tif 000012
【図１２】
0003539781.tif 000013
【図１３】
0003539781.tif 000014
【図１４】
0003539781.tif 000015
【図１５】
0003539781.tif 000016
【図１６】
0003539781.tif 000017
【図１７】
0003539781.tif 000018
【図１８】
0003539781.tif 000019
【図１９】
0003539781.tif 000020
【図２０】
0003539781.tif 000021
【図２１】
0003539781.tif 000022
【図２２】
0003539781.tif 000023
【図２３】
0003539781.tif 000024
【図２４】
0003539781.tif 000025
【図２５】
0003539781.tif 000026
【図２６】
0003539781.tif 000027
【図２７】
0003539781.tif 000028
【図２８】
0003539781.tif 000029
【図２９】
0003539781.tif 000030
【図３０】
0003539781.tif 000031
【図３１】
0003539781.tif 000032
【図３２】
0003539781.tif 000033
【図３３】
0003539781.tif 000034
【図３４】
0003539781.tif 000035
【図３５】
0003539781.tif 000036
【図３６】
0003539781.tif 000037
【図３７】
0003539781.tif 000038
【図３８】
0003539781.tif 000039