(57)【特許請求の範囲】
【請求項１】
１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に接続されたホストコンピュータとしての印刷ジョブ生成装置であって、
アプリケーションからの描画命令を中間コードデータでスプールするスプール手段と、
前記スプール手段によってスプールされた中間コードデータの印刷ページ数を取得する第１取得手段と、
前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得手段と、
前記第１取得手段で取得された印刷ページ数と前記第２取得手段で取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断手段と、
前記印刷後処理判断手段において印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定手段と、
前記スプール手段によってスプールされている中間コードデータから、前記設定手段によって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力手段と
前記出力手段によって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行手段と、
前記スプール手段によってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行手段の発行に応じて印刷開始命令を発行する印刷開始命令発行手段と、
前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成手段を有し、
前記印刷ジョブ生成手段は前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とする印刷ジョブ生成装置。
【請求項２】
前記設定手段は、前記第２取得手段によって取得された上限枚数以下の枚数単位を設定することを特徴とする請求項１に記載の印刷ジョブ生成装置。
【請求項３】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行手段および前記印刷開始命令発行手段は、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、
前記印刷ジョブ生成手段は１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とする請求項１または２に記載の印刷ジョブ生成装置。
【請求項４】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定手段によって設定された枚数単位を変更可能であることを特徴とする請求項１乃至３のいずれかに記載の印刷ジョブ生成装置。
【請求項５】
前記製本印刷の分冊出力方法を選択する選択手段と、
前記選択手段によって選択された分冊出力方法に応じて、前記出力手段によって出力される中間コードデータの出力順序が変更する変更手段を有することを特徴とする請求項１乃至４のいずれかに記載の印刷ジョブ生成装置。
【請求項６】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出手段を有することを特徴とする請求項１乃至５のいずれかに記載の印刷ジョブ生成装置。
【請求項７】
１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に接続されたホストコンピュータとしての印刷ジョブ生成装置の制御方法であって、
アプリケーションからの描画命令を中間コードデータでスプールするスプールステップと、
前記スプールステップによってスプールされた中間コードデータの印刷ページ数を取得する第１取得ステップと、
前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得ステップと、
前記第１取得ステップで取得された印刷ページ数と前記第２取得ステップで取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断ステップと、
前記印刷後処理判断ステップにおいて印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定ステップと、
前記スプールステップによってスプールされている中間コードデータから、前記設定ステップによって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力ステップと
前記出力ステップによって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行ステップと、
前記スプールステップによってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行ステップの発行に応じて印刷開始命令を発行する印刷開始命令発行ステップと、
前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成ステップを有し、
前記印刷ジョブ生成ステップは前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とする印刷ジョブ生成方法。
【請求項８】
前記設定ステップは、前記第２取得ステップによって取得された上限枚数以下の枚数単位を設定することを特徴とする請求項７に記載の印刷ジョブ生成方法。
【請求項９】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行ステップおよび前記印刷開始命令発行ステップは、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、
前記印刷ジョブ生成ステップは１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とする請求項７または８に記載の印刷ジョブ生成方法。
【請求項１０】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定ステップによって設定された枚数単位を変更可能であることを特徴とする請求項７乃至９のいずれかに記載の印刷ジョブ生成方法。
【請求項１１】
前記製本印刷の分冊出力方法を選択する選択ステップと、
前記選択ステップによって選択された分冊出力方法に応じて、前記出力ステップによって出力される中間コードデータの出力順序が変更する変更ステップを有することを特徴とする請求項７乃至１０のいずれかに記載の印刷ジョブ生成方法。
【請求項１２】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出ステップを有することを特徴とする請求項７乃至１１のいずれかに記載の印刷ジョブ生成方法。
【請求項１３】
１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に対する印刷ジョブを生成する印刷ジョブ生成プログラムが格納された記憶媒体であって、
アプリケーションからの描画命令を中間コードデータでスプールするスプールステップと、
前記スプールステップによってスプールされた中間コードデータの印刷ページ数を取得する第１取得ステップと、
前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得ステップと、
前記第１取得ステップで取得された印刷ページ数と前記第２取得ステップで取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断ステップと、
前記印刷後処理判断ステップにおいて印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定ステップと、
前記スプールステップによってスプールされている中間コードデータから、前記設定ステップによって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力ステップと
前記出力ステップによって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行ステップと、
前記スプールステップによってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行ステップの発行に応じて印刷開始命令を発行する印刷開始命令発行ステップと、
前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成ステップを有し、
前記印刷ジョブ生成ステップは前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とするコンピュータが読み取り可能なプログラムが格納された記憶媒体。
【請求項１４】
前記設定ステップは、前記第２取得ステップによって取得された上限枚数以下の枚数単位を設定することを特徴とするプログラムを記録した請求項１３に記載の記憶媒体。
【請求項１５】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行ステップおよび前記印刷開始命令発行ステップは、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、
前記印刷ジョブ生成ステップは１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とするプログラムを記録した請求項１３または１４に記載の記憶媒体。
【請求項１６】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定ステップによって設定された枚数単位を変更可能であることを特徴とするプログラムを記録した請求項１３乃至１５のいずれかに記載の記憶媒体。
【請求項１７】
前記製本印刷の分冊出力方法を選択する選択ステップと、
前記選択ステップによって選択された分冊出力方法に応じて、前記出力ステップによって出力される中間コードデータの出力順序が変更する変更ステップを有することを特徴とするプログラムを記録した請求項１３乃至１６のいずれかに記載の記憶媒体。
【請求項１８】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出ステップを有することを特徴とするプログラムを記録した請求項１３乃至１７のいずれかに記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１ジョブにつき一連の印刷後処理（シート処理）を１回行う印刷後処理装置（シート処理装置）を有する印刷装置に対して、文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書を印刷する複数の印刷命令から成る印刷ジョブを送出する印刷ジョブ生成装置および印刷ジョブ生成方法、記憶媒体に関する。
【０００２】
【従来の技術】
ステープル機能を有する複写機、プリンタなどの印刷装置（ハードウェア）において、サドルステッチと呼ばれるシート処理機能を有する印刷装置がある。サドルステッチとは、用紙を２つ折りにした際に、折り目に沿った位置にステープルを打つ方法で、ハードウェア内でページを製本の順序に並べて出力する場合に主に使用されている。
【０００３】
また、複写機をプリンタとして利用するために、プリンタ用のボードを搭載することが可能である。これにより、コンピュータからの印刷においても、本体側に製本印刷機能をもつハードウェアに関してサドルステッチを併用することが可能である。
【０００４】
印字したシートの量が多いと、シート処理装置の中綴じ及び中折りの能力が不十分であることから、印刷又はコピーが不可能になっていた。
【０００５】
そこで、この種の課題を解決するサドルステッチを備えた画像出力装置として、従来下記の技術が知られている。
【０００６】
特開平７−１５７１７８公報記載の技術では、シート処理装置で中綴じすべきシートの枚数が、そのシート処理装置で一度に処理可能なシート枚数よりも多い場合に、正しい頁配列で中綴じした冊子を作成できるよう、画像出力装置において、出力するシートの枚数とシート処理装置が処理可能なシート枚数とを比較して、処理可能なシート枚数に基づいて頁配列を入れ替えて正しい順序で中綴じした冊子を作成できる画像出力装置について記載されている。
【０００７】
【発明が解決しようとする課題】
しかし、サドルステッチをはじめとする印刷後処理が、複写あるいは印刷時１ジョブに対して１回という制限を持つ印刷装置（印刷後処理装置）では、複数冊子に分けて出力することができなかった。複数冊子に分けて出力することができない場合、１度にステープル及び中折りできる用紙枚数は限られており、枚数によっては処理できず、エラーを起こす可能性があった。
【０００８】
また、このような印刷装置では、印刷ジョブで複数部数指定された場合、１ジョブに対し１回という制限から、印刷１部ごとにサドルステッチされず、複数部数まとめてサドルステッチされてしまう可能性があった。
【０００９】
本発明は上記問題点を鑑みてなされたものであり、ハードウェアの制限を吸収しながら、ユーザの求める印刷後処理機能を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に接続されたホストコンピュータとしての印刷ジョブ生成装置であって、アプリケーションからの描画命令を中間コードデータでスプールするスプール手段と、前記スプール手段によってスプールされた中間コードデータの印刷ページ数を取得する第１取得手段と、前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得手段と、前記第１取得手段で取得された印刷ページ数と前記第２取得手段で取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断手段と、前記印刷後処理判断手段において印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定手段と、前記スプール手段によってスプールされている中間コードデータから、前記設定手段によって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力手段と前記出力手段によって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行手段と、前記スプール手段によってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行手段の発行に応じて印刷開始命令を発行する印刷開始命令発行手段と、前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成手段を有し、前記印刷ジョブ生成手段は前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とする。
【００１１】
前記設定手段は、前記第２取得手段によって取得された上限枚数以下の枚数単位を設定することを特徴とする。
【００１２】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行手段および前記印刷開始命令発行手段は、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、前記印刷ジョブ生成手段は１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とする。
【００１３】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定手段によって設定された枚数単位を変更可能であることを特徴とする。
【００１４】
前記製本印刷の分冊出力方法を選択する選択手段と、前記選択手段によって選択された分冊出力方法に応じて、前記出力手段によって出力される中間コードデータの出力順序が変更する変更手段を有することを特徴とする。
【００１５】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出手段を有することを特徴とする。
【００１６】
１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に接続されたホストコンピュータとしての印刷ジョブ生成装置の制御方法であって、アプリケーションからの描画命令を中間コードデータでスプールするスプールステップと、前記スプールステップによってスプールされた中間コードデータの印刷ページ数を取得する第１取得ステップと、前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得ステップと、前記第１取得ステップで取得された印刷ページ数と前記第２取得ステップで取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断ステップと、前記印刷後処理判断ステップにおいて印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定ステップと、前記スプールステップによってスプールされている中間コードデータから、前記設定ステップによって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力ステップと
前記出力ステップによって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行ステップと、前記スプールステップによってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行ステップの発行に応じて印刷開始命令を発行する印刷開始命令発行ステップと、前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成ステップを有し、前記印刷ジョブ生成ステップは前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とする。
【００１７】
前記設定ステップは、前記第２取得ステップによって取得された上限枚数以下の枚数単位を設定することを特徴とする。
【００１８】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行ステップおよび前記印刷開始命令発行ステップは、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、前記印刷ジョブ生成ステップは１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とする。
【００１９】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定ステップによって設定された枚数単位を変更可能であることを特徴とする。
【００２０】
前記製本印刷の分冊出力方法を選択する選択ステップと、前記選択ステップによって選択された分冊出力方法に応じて、前記出力ステップによって出力される中間コードデータの出力順序が変更する変更ステップを有することを特徴とする。
【００２１】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出ステップを有することを特徴とする。
【００２２】
１つの印刷ジョブから画像形成された印刷媒体に対して行える印刷後処理の実行可能な回数が１回と限定されている印刷装置に対する印刷ジョブを生成する印刷ジョブ生成プログラムが格納された記憶媒体であって、アプリケーションからの描画命令を中間コードデータでスプールするスプールステップと、前記スプールステップによってスプールされた中間コードデータの印刷ページ数を取得する第１取得ステップと、前記印刷装置において印刷後処理を行える上限枚数を取得する第２取得ステップと、前記第１取得ステップで取得された印刷ページ数と前記第２取得ステップで取得された上限枚数から前記印刷装置において印刷後処理が行えるか否かを判断する印刷後処理判断ステップと、前記印刷後処理判断ステップにおいて印刷後処理が行えないと判断された場合、製本印刷の単位である枚数単位を設定する設定ステップと、前記スプールステップによってスプールされている中間コードデータから、前記設定ステップによって設定された前記枚数単位に配置される中間コードデータを前記印刷後処理可能な印刷ジョブを生成すべく出力する出力ステップと
前記出力ステップによって前記枚数単位に配置される中間コードデータが出力された場合、印刷終了命令を発行する印刷終了命令発行ステップと、前記スプールステップによってスプールされている全ての中間コードデータを出力したか否かを判定し、全ての中間コードデータが出力されていないと判定された場合、前記印刷終了命令発行ステップの発行に応じて印刷開始命令を発行する印刷開始命令発行ステップと、前記印刷開始命令および前記印刷終了命令の間に出力される前記中間コードデータから前記印刷後処理可能な印刷ジョブを生成する印刷ジョブ生成ステップを有し、前記印刷ジョブ生成ステップは前記アプリケーションからの一連の描画命令に対して複数の前記印刷後処理可能な印刷ジョブを生成することを特徴とする。
【００２３】
前記設定ステップは、前記第２取得ステップによって取得された上限枚数以下の枚数単位を設定することを特徴とする。
【００２４】
前記１つの印刷ジョブに対して複数部数の印刷が指定されていた場合、前記印刷終了命令発行ステップおよび前記印刷開始命令発行ステップは、指定された前記複数部数および枚数単位に応じて前記印刷終了命令および前記印刷開始命令を複数回発行し、前記印刷ジョブ生成ステップは１部の製本印刷結果を構成する複数の印刷ジョブを生成する順序で、前記複数部数に応じて繰り返し前記複数の印刷ジョブを生成することを特徴とする。
【００２５】
前記１つの印刷ジョブの製本印刷が終了する前に、前記設定ステップによって設定された枚数単位を変更可能であることを特徴とする。
【００２６】
前記製本印刷の分冊出力方法を選択する選択ステップと、前記選択ステップによって選択された分冊出力方法に応じて、前記出力ステップによって出力される中間コードデータの出力順序が変更する変更ステップを有することを特徴とする。
【００２７】
前記印刷後処理可能な印刷ジョブを前記印刷装置に送出する送出ステップを有することを特徴とする。
【００３８】
【発明の実施の形態】
以下、本発明を適用するのに好適である一実施形態について説明するが、本発明は以下の実施形態に限定されるものではない。
【００３９】
図１は、本発明の実施形態の一つであるプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
【００４０】
同図において、ホストコンピュータ３０００は、ＲＯＭ１０３のプログラム用ＲＯＭあるいは外部メモリ１１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１０１を備え、システムバス１０４に接続される各デバイスをＣＰＵ１０１が総括的に制御する。また、このＲＯＭ１０３のプログラム用ＲＯＭあるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ１０３のフォント用ＲＯＭあるいは外部メモリ１１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ１０３のデータ用ＲＯＭあるいは外部メモリ１１１には上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００４１】
キーボードコントローラ（ＫＢＣ）１０５は、キーボード１０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０の表示を制御する。１０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）１０８は、双方向性インターフェース（インターフェース）１２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００４２】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００４３】
プリンタ１５００は、ＣＰＵ１１２により制御される。プリンタＣＰＵ１１２は、ＲＯＭ１１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１１４に記憶された制御プログラム等に基づいてシステムバス１１５に印刷部インターフェース１１６を介して接続される印刷部（プリンタエンジン）１１７へ出力情報としての画像信号を出力し、印刷部から出力されたシートに対しサドルステッチなどのシート処理を行うシート処理部１２３へ、シート処理部インターフェース１２２を介してシート処理信号を出力する。また、このＲＯＭ１１３のプログラムＲＯＭには、ＣＰＵ１１２の制御プログラム等を記憶する。ＲＯＭ１１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００４４】
ＣＰＵ１１２は入力部１１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知できる。ＲＡＭ１１９は、ＣＰＵ１１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１１４は、メモリコントローラ（ＭＣ）１２０によりアクセスを制御される。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１２４は操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００４５】
また、前述した外部メモリ１１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作パネル１２４からのプリンタモード設定情報を記憶するようにしてもよい。
【００４６】
図２は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。
【００４７】
アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部ディスク１１１のＨＤに追加することが可能となっている。外部メモリ１１１に保存されているアプリケーション２０１はＲＡＭ１０２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ１０２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００４８】
グラフィックエンジン２０２は、印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１１からＲＡＭ１０２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）関数からＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経てインタフェース１２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００４９】
本発明の一実施形態である印刷システムは、図２で示したプリンタとホストコンピュータからなる印刷システムに加えて、更に図３に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【００５０】
図３は、図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へＤＤＩ関数を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からのすべてのＤＤＩ関数をプリンタの制御コマンドへ変換し終った時点である。これに対して、図３のシステムでは、スプーラ３０２がすべてのＤＤＩ関数を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図３で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現する事ができる。
【００５１】
これらの目的のために、図２のシステムに対し、図３の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上あるいは外部メモリ１１１上に保管する。
【００５２】
以下、図３の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からのＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取ったＤＤＩ関数が、アプリケーション２０１からグラフィックエンジン２０２へ発行されたＧＤＩ関数の場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へＤＤＩ関数を送付する。
【００５３】
スプーラ３０２は受け取ったＤＤＩ関数を中間コードに変換してスプールファイル３０３に出力する。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定をプリンタドライバ２０３から取得してスプールファイル３０３に保存する。なお、スプールファイル３０３は外部メモリ１１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更にスプーラ３０２は、外部メモリ１１１に格納されているスプールファイルマネージャ３０４をＲＡＭ１０２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【００５４】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１１に格納されているデスプーラ３０５をＲＡＭ１０２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードの印刷処理を行うように指示する。
【００５５】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、ＧＤＩ関数に変換する。そして、グラフィックエンジン２０２でＧＤＩ関数からＤＤＩ関数に変換して出力する。
【００５６】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取ったＤＤＩ関数がデスプーラ３０５からグラフィックエンジン２０２へ発行されたＧＤＩ関数を変換したＤＤＩ関数の場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３にＤＤＩ関数を送る。
【００５７】
プリンタドライバ２０３はプリンタ制御コマンド（ＰＤＬなど）を生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００５８】
このように、図３の印刷処理システムでは、一旦中間コードに変換した印刷ジョブをデスプーラによってＧＤＩ関数に変換したのち、再びグラフィックエンジンに戻す構成になっている。したがって、図３の印刷処理システムは、３０１乃至３０５の構成をプリンタドライバ毎に変える必要はないという利点もある。
【００５９】
図４は、サドルステッチと併用するのに好適な、製本印刷とその実現結果について説明した一例である。
【００６０】
製本印刷とは、紙の両面に出力された印刷結果を２つ折りにしたときに、ページ順序があうように印刷ページを並べ替えて印刷された４０１もしくは４０２のようなものである。
【００６１】
この製本印刷された４０１、４０２は、何らかの方法で４０３、４０４のように２つ折りすれば正しいページ順になるようになっている。製本印刷の設定は、例えば図１８に示すようなダイアログで「製本印刷」をチェックすることによって指定可能である。
【００６２】
製本印刷には、大きく分けて以下に述べる２つの方法、「印刷される全ページから製本の枚数単位を求めて印刷する方法」と「任意の指定された枚数を製本の枚数単位として印刷する方法」とがある。
【００６３】
ただし、ここでいう製本の枚数単位とは、製本印刷で出力された用紙を何枚単位でまとめて２つ折りにすればよいかをあらわす。
【００６４】
印刷される全ページから製本の枚数単位を求めて印刷する方法の場合は、図４の印刷物４０１のような出力を得て、それをまとめて２つ折りにして本とする。
【００６５】
任意の指定された枚数を製本の枚数単位として印刷する方法の場合は、図４の印刷物４０２のような出力を得て、それを枚数単位ごとに２つ折りにし、更にそれを並べて本とする。
【００６６】
また、図５に示すように、製本印刷によって出力される製本の体裁には以下の場合がある。
「左から昇順にページ配置（左開き）」の場合
「右から昇順にページ配置（右開き）」の場合
【００６７】
また、印刷されるページが横向きの場合も、ページの回転を行うだけで、ページの順序は変わらない。
【００６８】
これらの設定は、例えば図１９に示すようなダイアログ「開き方向」から設定可能である。
【００６９】
本実施形態の印刷システムでは、以上のような製本印刷の種々のやり方に加えて適切なサドルステッチ（シート処理）を行いながら印刷出力を行う。
【００７０】
本発明におけるサドルステッチは、例えば図１８の「中とじ」のチェックボックスをＯＮにすることによって実現可能である。
【００７１】
以下、通常のサドルステッチ（シート処理）を行わない製本印刷の処理について詳しく述べた後、シート処理が１ジョブに対し１回という制限をもつ印刷装置に対し、サドルステッチ（シート処理）する場合について、本発明の一実施形態について述べる。
【００７２】
図６は、製本印刷の方法として、「印刷される全ページから製本の枚数単位を求めて印刷する方法」と「任意の指定された枚数を製本の枚数単位として印刷する方法」のどちらで行うかを決定するのを示すフローチャートである。
【００７３】
ステップ６０１において、ユーザが製本印刷の設定をしていればステップ６０２へ進み、していなければ通常の印刷を行うとしてステップ６０７へ進む。
【００７４】
ステップ６０２において、製本印刷の枚数単位に関する設定と印刷体裁に関する設定を取得する。
【００７５】
印刷枚数単位の設定には以下の選択肢がある。
「印刷される全ページから製本の枚数単位を求めて製本印刷」
「任意の指定された枚数を製本の枚数単位として製本印刷」
【００７６】
また、印刷体裁の設定には以下の選択肢がある。
「左開き」
「右開き」
【００７７】
ステップ６０３において、製本印刷の枚数単位に全ページが選択されていればステップ６０４へ進み、選択されていなければステップ６０５へ進む。
【００７８】
ステップ６０４において、印刷ページ全体から製本の枚数単位を求めて製本印刷を行う。この処理の詳細については後述する。
【００７９】
ステップ６０５において、製本印刷の枚数単位に特定の枚数が選択されていればステップ６０６へ進み、選択されていなければステップ６０７へ進む。
【００８０】
ステップ６０６において、指定された枚数単位で製本印刷を行う。この処理の詳細については後述する。
【００８１】
ステップ６０７において、通常の印刷処理を行う。
【００８２】
なお、製本印刷の設定や枚数単位の設定は、ホストコンピュータ３０００からのオペレータ入力などで行われる。
【００８３】
以下に図６におけるステップ６０４に関する処理（印刷される全ページから製本の枚数単位を求めて製本印刷）を図７、図８を用いて詳しく説明する。
【００８４】
ステップ７０１において、印刷体裁を取得する。
【００８５】
ステップ７０２において、印刷ページ数を取得する。この印刷ページはアプリケーションからの印刷データがすべてスプール終了した時点で取得可能である。
【００８６】
ステップ７０３において、製本印刷の進捗カウンタを０にセットする。このカウンタが偶数のときに印刷されるページは織り込まれたときに内側になるように印刷され、奇数のときに印刷されるページは織り込まれたときに外側になるように印刷される。（最初の印刷面は、進捗カウンタが０なので内側になる。）
【００８７】
ステップ７０４において、使用する紙の枚数を以下の式によって計算する。
【００８８】
用紙枚数  ＝  ページ数  ÷  ４  （小数点以下切り上げ）
【００８９】
ステップ７０５において、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページ２ページ分を以下の式を用いて計算する。この２ページを基に以降印刷されるページを算出する。
【００９０】
基本ページ１＝用紙枚数×２＋１
基本ページ２＝用紙枚数×２
【００９１】
例えば、アプリケーションから５０ページの印刷データが送られてきた場合は、製本印刷の結果使用する枚数は５０÷４＝１３枚（小数点以下切り上げ）となり、２つ折りにした時に織り込まれる用紙に印刷される基本ページは基本ページ１＝１３×２＋１＝２７ページと、基本ページ２＝１３×２＝２６ページとなる。図４の例では、印刷物４０１の最も内側に折り込まれる面である第１１ページと第１０ページとがこれらに相当する。
【００９２】
ステップ７０６において、製本印刷処理が終了したなら処理を終え、終わっていなかったらステップ７０７へ進む。具体的には、進捗カウンタが用紙枚数×２に等しければ処理終了とする。
【００９３】
ステップ７０７において、印刷要求を行う２ページを以下の式で計算する。
【００９４】
印刷ページ１＝基本ページ１＋進捗カウンタ
印刷ページ２＝基本ページ２−進捗カウンタ
例えば上の５０ページ製本印刷の場合は、２回目の印刷面に含まれるのは、２７＋１＝２８ページと２６−１＝２５ページとなる。
【００９５】
以降進捗カウンタが増加するたびに２９ページと２４ページ、３０ページと２３ページ・・となっていく。
【００９６】
また、始めは進捗カウンタが０なので基本ページが最初の印刷ページとなる。
【００９７】
ステップ７０８において、計算された印刷ページ１がアプリケーションからの印刷ページ数より大きいかどうか判定し、大きくなった場合は余白扱いとなり、ステップ７０９へ進む。大きくなければステップ７１０へスキップする。
【００９８】
ステップ７０９において、印刷ページ１は余白が配置されるので、例えば余白をあらわすページ番号０を代入する。
【００９９】
ステップ７１０およびステップ７１１において、印刷体裁（左開きか右開きか）および進捗カウンタから（折り込んだ際に内側にくるか外側にくるか）から計算された２ページの配置を決定する。
【０１００】
具体的には、内側／外側の判定は、進捗カウンタ（それまでに出された印刷要求回数）が偶数の場合内側、奇数の場合外側となる。一番最初の印刷面は、それまでに出された印刷要求回数が０回（進捗カウンタが０）なので内側になる。以降、外、内、外・・と続く。
ステップ７１０およびステップ７１１による判定の結果、次のように処理が進む。
【０１０１】
左開きで折り込み内側になるページの場合ステップ７１３へ進む。
【０１０２】
左開きで折り込み外側になるページの場合ステップ７１２へ進む。
【０１０３】
右開きで折り込み外側になるページの場合ステップ７１３へ進む。
【０１０４】
右開きで折り込み内側になるページの場合ステップ７１２へ進む。
【０１０５】
ステップ７１２において、印刷ページ１を左側に、印刷ページ２を右側に配置する。
【０１０６】
ステップ７１３において、印刷ページ１を右側に、印刷ページ２を左側に配置する。
【０１０７】
ステップ７１０からステップ７１３の処理は、例えば２６ページの裏面には２５ページを、２７ページの裏面には２８ページを印刷するための処理である。
【０１０８】
ステップ７１４において、印刷進捗カウンタを１増加させる。
【０１０９】
ステップ７１５において、デスプーラ３０５に対して次の印刷要求が可能かどうかを判定し、可能ならばステップ７１６へ進み、不可能なら次の印刷要求が可能になるまで待つ。
【０１１０】
ステップ７１６において、配置完了した印刷ページに対して記録用紙１面分の印刷要求を行う。
【０１１１】
ステップ７１７において、次のページの出力要求が可能かどうか判定し、可能ならばステップ７０６へ進み、可能でないならば可能になるまで待つ。
【０１１２】
以上のようにして印刷出力された印刷物は、重ねた状態にして２つ折りにするだけで製本することができる。
【０１１３】
次に、図６におけるステップ６０６に関する処理（任意の指定された枚数を製本の枚数単位として製本印刷）を図９、図１０を用いて詳しく説明する。
【０１１４】
ここでいう枚数単位とは何枚毎に織り込んで製本印刷を行うかを表している。この単位をブロックと称する。例えば、アプリケーションからの４０ページの印刷データを２枚単位で製本印刷する場合、２つ折りされた２枚の用紙を１つのブロックとして、１つのブロックには８ページ分のデータが配置されることになる。よって、印刷データ全体を５ブロックに分けて製本印刷することになる。
【０１１５】
ステップ８０１において、印刷体裁および枚数単位を取得する。
【０１１６】
ステップ８０２において、印刷終了ページを０にセットする。
【０１１７】
ステップ８０３において、製本印刷処理が終わりかどうか判定し、終了ならば処理を終え、終了でなければステップ８０４へ進む。
【０１１８】
ステップ８０４において、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）を取得する。ステップ８０４で求められる製本印刷可能判定ページは、ブロック内の最後のページとなる。
【０１１９】
初めのブロックにおける製本印刷可能判定ページは以下によって求められる。
【０１２０】
製本印刷可能判定ページ＝枚数単位×４
第２ブロック以降については、製本印刷可能判定ページは以下によって求められる。
【０１２１】
製本印刷可能判定ページ＝前のブロックの製本印刷可能判定ページ＋枚数単位×４
例えば、４０ページ２枚単位の製本印刷の場合、最初のブロックにおける製本印刷可能判定ページは２×４＝８ページとなり、次のブロックは８＋２×４＝１６ページとなる。以降２４ページ、３２ページ、４０ページとなっていく。
【０１２２】
ステップ８０５において、スプーラ３０３において、スプールが終了しているページ数を取得する。
【０１２３】
ステップ８０６において、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）までスプール終了しているかあるいは全ページのスプールが終了しているかどうかを判定し、処理可能ならばステップ８０７へ進み、可能でなければステップ８０５へ戻る。
【０１２４】
ステップ８０７において、進捗カウンタを０にセットする。
【０１２５】
ステップ８０８において、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページ２ページ分を以下の式を用いて計算する。この２ページを元に以降印刷されるページを算出する。
【０１２６】
基本ページ１＝製本印刷可能判定ページ−枚数単位×２＋１
基本ページ２＝製本印刷可能判定ページ−枚数単位×２
【０１２７】
ステップ８０９において、現在のブロックの印刷要求が終了したか判定し、終了ならばステップ８０３へすすみ、終了していなければステップ８１０へ進む。具体的には、進捗カウンタが枚数単位×２に等しくなった場合にブロックの印刷要求が終了したと判定する。
【０１２８】
ステップ８１０において、印刷要求を行う２ページを以下の式で計算する。
【０１２９】
印刷ページ１＝基本ページ１＋進捗カウンタ
印刷ページ２＝基本ページ２−進捗カウンタ
始めは進捗カウンタが０なので基本ページが最初の印刷ページとなる。
【０１３０】
ステップ８１１において、計算された印刷ページ１または印刷ページ２がアプリケーションからの印刷ページ数より大きいかどうか判定し、大きくなった印刷ページ１又は印刷ページ２は余白扱いとなり、ステップ８１２へ進む。大きくなければステップ８１３へスキップする。
【０１３１】
ステップ８１２において、印刷ページは余白が配置されるので、例えば余白をあらわすページ番号０を代入する。
【０１３２】
ステップ８１３およびステップ８１４において、印刷体裁（左開きか右開きか）および進捗カウンタから（折り込んだ際に内側にくるか外側にくるか）から計算された２ページの配置を決定する。
【０１３３】
具体的には、内側外側の判定は、進捗カウンタ（印刷要求回数）が偶数の場合内側、奇数の場合外側となる。
【０１３４】
左開きで折り込み内側になるページの場合ステップ８１６へ進む。
【０１３５】
左開きで折り込み外側になるページの場合ステップ８１５へ進む。
【０１３６】
右開きで折り込み外側になるページの場合ステップ８１６へ進む。
【０１３７】
右開きで折り込み内側になるページの場合ステップ８１５へ進む。
【０１３８】
ステップ８１５において、印刷ページ１を左側に、印刷ページ２を右側に配置する。
【０１３９】
ステップ８１６において、印刷ページ１を右側に、印刷ページ２を左側に配置する。
【０１４０】
ステップ８１７において、印刷進捗カウンタを１増加させる。
【０１４１】
ステップ８１８において、次の印刷要求が可能かどうかを判定し、可能ならばステップ８１９へ進み、不可能なら次の印刷要求が可能になるまで待つ。
【０１４２】
ステップ８１９において、配置完了した印刷ページに対して記録用紙１面分の印刷要求を行う。
【０１４３】
ステップ８２０において、次のページの出力要求が可能かどうか判定し、可能ならばステップ８０９へ進み、可能でないならば可能になるまで待つ。
【０１４４】
以上の手順により発行された印刷要求に対して、プリンタ１５００により両面印刷を行えば、印刷出力された用紙を所望の枚数単位ごとに二つ折りにして並べるだけで、製本された印刷物を作成することができる。
【０１４５】
また、アプリケーションからの全ページをスプール終了してから任意枚数単位の製本印刷処理を行う場合において、その最終ブロックに印刷されるページ数が少ない場合、最終ブロックに限り指定枚数より少ない枚数単位で製本印刷を行うことによって、使用する用紙を少なくすることが可能である。
【０１４６】
例えば、残りページ数が３ページに対して枚数単位が２の場合、５ページ分が余白になってしまうが、これを１枚単位に変更した場合、余白は１ページ分ですみ、用紙の枚数が１枚少なくてすむ。
【０１４７】
図１１を用い、最終ブロックの枚数調整処理について詳しく説明する。
【０１４８】
図１１に示した処理は図９におけるステップ８０６とステップ８０７の間において、ステップ８０６での判定がＹＥＳとなった場合に処理することによって上述の用紙の枚数の削減が達成される。
【０１４９】
ステップ９０１において、全ページのスプールが終了したかどうか（印刷ジョブの最終ページのスプールが完了したかどうか）判定し、終了していれば９０２に進み、進んでいなければ処理を抜ける。
【０１５０】
ステップ９０２において、残りページ数を以下の式で計算する。
【０１５１】
残りページ＝アプリケーションからの印刷ページ−現在の製本印刷可能判定ページ
【０１５２】
ステップ９０３において、現在設定されている枚数単位におけるブロックに収まるページ数と、残りページ数を比較して、残りページが少なければステップ９０４へすすみ、そうでなければ調整処理は必要ないとして処理を抜ける。
【０１５３】
ステップ９０４において、残りページがおさまるもっとも小さい製本の枚数単位を以下の式によって求める。
【０１５４】
新しい製本枚数単位＝残りページ÷４（小数点以下切り上げ）
【０１５５】
こうして得られた新しい製本枚数単位を用いて、ステップ８０７以降で最後のブロックを印刷すれば、白紙のページは多くても３ページで済み、記録用紙を無駄にせず、また、記録面数も減るため、印刷出力に要する時間も短くなる。
【０１５６】
これは、印刷ページに対して必要以上に大きい枚数単位が指定された場合にも適用される。例えば、アプリケーションからの３０ページの印刷データに対して１０枚単位での製本印刷が指定された場合、実際に必要な用紙枚数は８枚なので、枚数単位は１０枚から８枚へ調整される。これはページ全体で製本印刷した場合と同じ出力結果になる。
【０１５７】
次に、上記に述べたような３通りの製本印刷において、サドルステッチ機能を付加した場合の処理について説明する。
【０１５８】
サドルステッチ処理において、サドルステッチ可能なシート処理装置の制限以上の印刷枚数があるときや、任意の枚数単位で分冊したときのサドルステッチ処理など、分冊してサドルステッチ処理する必要がある。
【０１５９】
図１２のように、分冊の方法は、分冊方法１として、全ページをまとめて製本印刷して内側のものから所定の枚数ずつ（上限枚数又は任意の枚数）分冊する方法（１２０４）と、分冊方法２として、任意の指定された枚数を製本の枚数単位として製本印刷したものをそのままサドルステッチ処理して分冊する方法（１２０５）の、大きく分けて２つの方法がある。具体的な方法については、図１４乃至１７に示されるフローチャートの様なものになる。図１４乃至１７の説明は後述する。
【０１６０】
サドルステッチ処理方法の選択には、製本印刷処理を示す図６のステップ６０４において、図１４のステップ１４０１以下の処理を行い、ステップ６０６において図１６のステップ１６０１以下の処理を行うことによって、サドルステッチの方法が選択される。
【０１６１】
図１３は印刷設定情報の一例で、製本印刷の方法、開き方向、最終ブロックの用紙節約を行うかどうかのフラグ、サドルステッチ（中とじ）をするかしないかのフラグ、ジョブ分割をするかしないかのフラグ、サドルステッチ可能な上限用紙枚数、その他の印刷設定が格納されている。これらの設定はスプールファイル３０３に格納されている。
【０１６２】
また、指定枚数毎に製本印刷を行う印刷方法においては、サドルステッチの上限枚数と比較を行い、指定された製本枚数単位がサドルステッチの上限枚数を超えないように数値を変更してもよいし、プリンタドライバ２０３において上限枚数以上の設定を許さないようにしておいてもよい。
【０１６３】
さらに、ジョブ分割についても、プリンタドライバ２０３において内部的に定数値を格納してもよいし、必要ならば図１８などのようなダイアログにチェックボックスを設けることによってユーザの選択を要求してもよい。
【０１６４】
図１４は、全ページをまとめて製本印刷する場合（ステップ６０４）においてサドルステッチ処理を付加した場合のフローチャートである。
【０１６５】
ステップ１４０１において、印刷体裁を取得する。
【０１６６】
ステップ１４０２において、サドルステッチを行うならば、ステップ１４０３へ進み、サドルステッチを行わないならば、ステップ１４０４の前述したサドルステッチを行わない通常の製本印刷を行う。
【０１６７】
ステップ１４０３において、接続されている印刷装置が１ジョブに対して１回のサドルステッチ処理しか行えないという制限を持つ場合など、ジョブ分割が必要ならば、ステップ１４０５へ進み、ジョブ分割を行わないならば、ステップ１４０４へ進み、サドルステッチ処理において、用紙枚数が制限枚数を超えた場合の処理はハードウェアの仕様にゆだねることとし、処理を抜ける。
【０１６８】
ステップ１４０５において、印刷ジョブの印刷部数を、部数カウンタＩに代入する。この部数カウンタは、複数部数の印刷指定があるとき分冊処理を繰返すために用いられる。また、後述するが、分冊処理時において、通常デスプーラによってＧＤＩ関数に変換された中間コードは順次スプーラファイルから消去されるが、この部数カウンタが１より大きいときは、中間コードは消去しない。ただし部数カウンタが１のときはＧＤＩ関数に変換されたものから順次消去する。
【０１６９】
ステップ１４０６において、印刷ページ数を取得する。
【０１７０】
ステップ１４０７において、印刷装置でシート処理可能な上限枚数を取得する。
【０１７１】
ステップ１４０８において、印刷ページ数が、上限枚数×４より大きければステップ１４１１に進み、上限枚数×４以下ならばステップ１４０９に進む。
【０１７２】
ステップ１４０９において、印刷ジョブの処理するシートは上限枚数以下であるので、全ページまとめてサドルステッチするかユーザの設定により選択する。全ページまとめてサドルステッチするならステップ１４１０に進み、通常の製本印刷を行い、まとめてサドルステッチを行う。全ページまとめてサドルステッチしないならば、ステップ１４１１に進む。
【０１７３】
ステップ１４１１において、分冊出力方法を選択し、ステップ１４１２で枚数単位を設定（上限枚数を使用してもよいし、上限枚数以下の任意の枚数単位を設定できるようにしてもよい）し、ステップ１４１３の分冊方法１にするか、もしくは、ステップ１４１４で枚数単位を設定（上限枚数を使用してもよいし、上限枚数以下の任意の枚数単位としてもよい）し、ステップ１４１５の分冊方法２に変更する。なお、図示しないが、通常の製本印刷を行うという方法を選択できるようにしてもよい。
【０１７４】
この処理方法の選択については、内部的に決定しておいても良いし、必要ならば図１８などのようなダイアログにチェックボックスを設けることによってユーザの選択を要求してもよい。
【０１７５】
ステップ１４１６において、部数カウンタＩを１減らす。
【０１７６】
ステップ１４１７において、部数カウンタが０であるかどうか調べ、０ならば印刷を終了し、０でないならば、ステップ１４１１に戻り同じ分冊処理を繰り返す。
【０１７７】
次にステップ１４１３の分冊方法１について、図１５、図８を参照しながら説明する。
【０１７８】
ステップ１５０１において、進捗カウンタを０にする。
【０１７９】
ステップ１５０２において、使用する紙の枚数を以下の式によって計算する。
【０１８０】
用紙枚数  ＝  ページ数  ÷  ４  （小数点以下切り上げ）
【０１８１】
ステップ１５０３において、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページ２ページ分を以下の式を用いて計算する。この２ページを基に以降印刷されるページを算出する。
【０１８２】
基本ページ１＝用紙枚数×２＋１
基本ページ２＝用紙枚数×２
【０１８３】
ステップ１５０４においてブロックが終了していれば、ステップ１５０５に進み、終了していなければ、ステップ１５０７に進む。具体的には、進捗カウンタが（枚数単位×２）の整数倍に等しい、もしくは印刷するページがなくなれば、ブロック終了とする。
【０１８４】
ステップ１５０５において印刷ジョブを切る。印刷ジョブの分割を行うことで、印刷装置においてサドルステッチ処理を行うことができる。具体的には、ジョブの分割はデスプーラ３０５によって、システムスプーラ２０４に印刷終了命令が発行され、直後に印刷開始命令を発行することによって行われる。
【０１８５】
ステップ１５０６において、印刷処理が終了したなら処理を終え、終わっていなかったらステップ１５０７に進む。
【０１８６】
ステップ１５０７において、印刷要求を行う２ページを以下の式で計算し、図８のステップ７０８以降に進む。
【０１８７】
印刷ページ１＝基本ページ１＋進捗カウンタ
印刷ページ２＝基本ページ２−進捗カウンタ
【０１８８】
ステップ７０８以降の説明は、前述の製本印刷処理での図８の説明とほぼ同様であるので、処理が異なる部分だけ説明する。通常の製本印刷処理では、ステップ７１６において、印刷要求を行った際（中間コードをＧＤＩ関数に変換した際）に、スプールファイル３０３の中間コードを消去していくが、部数カウンタＩが１より大きいときは中間コードを消去しない。ただし、部数カウンタＩが１のときは、中間コードを消去していく。
【０１８９】
ステップ１４１５の分冊方法２は、次に述べる任意の指定された枚数を製本の枚数単位として製本印刷のステップ１６１１分冊方法２と同じであるので、分冊方法２については後述する。
【０１９０】
図１６は、最終ブロックの用紙節約のＯＮ／ＯＦＦにかかわらず、任意の指定枚数単位の製本印刷におけるサドルステッチ処理（ステップ６０６）について示したフローチャートである。
【０１９１】
ステップ１６０１において、印刷体裁及び枚数単位を取得する。
【０１９２】
ステップ１６０２において、サドルステッチを行うならば、ステップ１６０３へ進み、サドルステッチを行わないならば、通常の製本印刷であるとして以降の処理を行わずに１６０４に進む。
【０１９３】
ステップ１６０３において、接続されている印刷装置が１ジョブに対して１回のサドルステッチ処理しか行えないという制限を持つ場合など、ジョブ分割が必要ならば、ステップ１６０５へ進み、ジョブ分割を行わないならば、ステップ１６０４へ進み、サドルステッチ処理において、用紙枚数が制限枚数を超えた場合の処理はハードウェアの仕様にゆだねることとし、処理を抜ける。
【０１９４】
ステップ１６０５において、印刷ジョブの印刷部数を、部数カウンタＩに代入する。この部数カウンタは、分冊処理を繰返すために用いられる。また、後述するが、分冊処理時において、通常デスプーラによってＧＤＩ関数に変換された中間コードは順次スプーラファイルから消去されるが、この部数カウンタが１より大きいときは、中間コードは消去しない。部数カウンタが１のときはＧＤＩ関数に変換されたものから順次消去する。
【０１９５】
ステップ１６０６において、サドルステッチ処理可能な上限枚数を取得する。
【０１９６】
ステップ１６０７において、枚数単位が上限枚数より大きければステップ１６０８に進み、枚数単位が上限枚数以下ならばステップ１６１０の分冊方法２に進む。
【０１９７】
ステップ１６０８において、枚数単位を上限枚数以下に変更するかどうか決定する。変更するならばステップ１６１０に進み、変更しないならばステップ１６０９にて通常の製本印刷を行う。
【０１９８】
なお、あらかじめ枚数単位が上限枚数を超えないよう設定範囲に制限を設けておけば、ステップ１６０７乃至１６０９は必要ないことは言うまでもない。
【０１９９】
ステップ１６１０において、分冊方法２の処理を行う。
【０２００】
ステップ１６１１において、部数カウンタＩを１減らす。
【０２０１】
ステップ１６１２において、部数カウンタが０であるかどうか調べ、０ならば印刷を終了し、０でないならば、ステップ１６１０に戻り同じ分冊処理を繰り返す。
【０２０２】
次に、ステップ１６１０および、ステップ１４１５における分冊方法２について、図１７、図１０、図１１を参照しながら説明する。
【０２０３】
ステップ１７０１において、製本印刷処理が終わりかどうか判定し、終了ならば処理を終え、終了でなければステップ１７０２に進む。
【０２０４】
ステップ１７０２において、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）を取得する。ステップ１７０２で求められる製本印刷可能判定ページは、ブロック内の最後のページとなる。
【０２０５】
初めのブロックにおける製本印刷可能判定ページは以下によって求められる。
【０２０６】
製本印刷可能判定ページ＝枚数単位×４
【０２０７】
第２ブロック以降については、製本印刷可能判定ページは以下によって求められる。
【０２０８】
製本印刷可能判定ページ＝前のブロックの製本印刷可能判定ページ＋枚数単位×４
【０２０９】
ステップ１７０３において、スプーラ３０３において、スプールが終了しているページ数を取得する。
【０２１０】
ステップ１７０４において、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）までスプール終了しているかあるいは全ページのスプールが終了しているかどうかを判定し、処理可能ならばステップ１７０５へ進み、可能でなければステップ１７０３へ戻る。
【０２１１】
ステップ１７０５において、進捗カウンタを０にセットする。
【０２１２】
ステップ１７０６において、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページ２ページ分を以下の式を用いて計算する。この２ページを元に以降印刷されるページを算出する。
【０２１３】
基本ページ１＝製本印刷可能判定ページ−枚数単位×２＋１
基本ページ２＝製本印刷可能判定ページ−枚数単位×２
【０２１４】
ステップ１７０７において、現在のブロックの印刷要求が終了したか判定し、終了ならばステップ１７０８へすすみ、終了していなければステップ１７０９へ進む。具体的には、進捗カウンタが枚数単位×２に等しくなった場合にブロックの印刷要求が終了したと判定する。
【０２１５】
ステップ１７０８において印刷ジョブを切る。印刷ジョブの分割を行うことで、印刷装置においてサドルステッチ処理を行うことができる。具体的には、ジョブの分割はデスプーラ３０５によって、システムスプーラ２０４に印刷終了命令が発行され、直後に印刷開始命令を発行することによって行われる。
【０２１６】
ステップ１７０９において、印刷要求を行う２ページを以下の式で計算し、図１０のステップ８１１以降に進む。
【０２１７】
印刷ページ１＝基本ページ１＋進捗カウンタ
印刷ページ２＝基本ページ２−進捗カウンタ
【０２１８】
ステップ８１１以降の説明は、前述の製本印刷処理での図１０の説明とほぼ同様であるので、処理が異なる部分だけ説明する。通常の製本印刷処理では、ステップ８１９において、印刷要求を行った際（中間コードをＧＤＩ関数に変換した際）に、スプールファイル３０３の中間コードを消去していくが、部数カウンタＩが１より大きいときは中間コードを消去しない。ただし、部数カウンタＩが１のときは、中間コードを消去していく。
【０２１９】
また、最終ブロックで用紙節約をする場合は、前述の製本印刷の場合の説明と同様に、図１１のステップ９０１乃至ステップ９０４の処理を、図１７のステップ１７０４とステップ１７０５の間で行うことにより、用紙節約をすることができる。
【０２２０】
なお、本実施形態では、ブロックの処理が終わってステップ１７０８にて印刷ジョブを分割したが、ステップ１７０４で処理可能な枚数（分冊するページ分）スプールした時点であらかじめジョブを分割する構成にしてもよい。その場合、ステップ１７０８は不必要となる。
【０２２１】
以上の処理により、最終ブロックの用紙節約のＯＮ／ＯＦＦにかかわらず、指定枚数単位の製本印刷において、ハードウェアの制限を考慮に入れながらサドルステッチ処理を行うことが可能となり、ユーザの求めるステープル機能を提供可能となる。
【０２２２】
さらに、印刷設定に対して複数部数印刷が指定されていた場合、サドルステッチ処理を部数に対応した回数行うことになる。その際、部の終わり毎にジョブ分割要求を行うことによって、複数部の製本印刷においても正しくサドルステッチを行うことができる。
【０２２３】
〔実施形態２〕
前述した実施形態では、印刷ジョブに複数部数の印刷指定がしてある場合、図１４、図１６に示したように、中間コードからＧＤＩ関数に変換する処理（分冊処理）を複数回繰返し行うことにより、複数部数に対する印刷ジョブの分割を行った。
【０２２４】
しかし、前述の実施形態では、複数部数印刷に対する印刷ジョブの分割を行う際、中間コードからＧＤＩ関数に変換する処理を複数回行うので、処理の時間が余分にかかってしまうという問題がある。また、この変換処理を行っている時間があるため、分割した印刷ジョブ間に、プリンタに対して他のホストコンピュータなどからの印刷ジョブが割り込む可能性が高くなるという問題点もある。
【０２２５】
複数部数の印刷指定により、印刷ジョブの分割を行う他の実施形態を次に示す。
【０２２６】
図２３は、図３の印刷システムに加えて、３０６に示したＧＤＩ関数スプールファイルを有する印刷システムの構成図である。
【０２２７】
図２４及び図２５は、図２３の印刷システムにおける複数部数指定がある場合の印刷処理のフローチャートを示したものである。
【０２２８】
図２４は、印刷される全ページから製本の枚数単位を求めてサドルステッチ処理する方法である。図２４において、ステップ２４０１乃至ステップ２４１５は、図１４のステップ１４０１乃至ステップ１４１５とほぼ同様であり詳しい説明は省略する。図１４と異なる部分について説明すると、分冊方法１又は分冊方法２において、印刷要求先はＧＤＩ関数スプールファイルであり、中間コードからＧＤＩ関数に変換された印刷ジョブは、一旦ＧＤＩ関数スプールファイルに保存される。また、分冊方法１又は分冊方法２において、ジョブの分割はデスプーラ３０５によって、ＧＤＩ関数スプールファイル３０６に印刷終了命令が発行され、直後に印刷開始命令を発行することによって行われる。
【０２２９】
ステップ２４１６において、部数カウンタＩが１以上ならばステップ２４１７へ進み、部数カウンタが０ならばステップ２４１９に進む。
【０２３０】
ステップ２４１７において、ＧＤＩ関数スプールファイルからＧＤＩ関数を読み出しグラフィックエンジンに出力する。
【０２３１】
ステップ２４１８において、部数カウンタＩを１減らす。
【０２３２】
ステップ２４１９において、ＧＤＩ関数スプールファイルに一旦保存されていたＧＤＩ関数を消去し、処理を終了する。
【０２３３】
図２５は、任意の指定された枚数を製本の枚数単位としてサドルステッチ処理する方法である。図２５において、ステップ２５０１乃至ステップ２５１０は、図１６のステップ１６０１乃至ステップ１６１０とほぼ同様であり詳しい説明は省略する。図１６と異なる部分について説明すると、分冊方法２において、印刷要求先はＧＤＩ関数スプールファイルであり、中間コードからＧＤＩ関数に変換された印刷ジョブは、一旦ＧＤＩ関数スプールファイルに保存される。また、分冊方法２において、ジョブの分割はデスプーラ３０５によって、ＧＤＩ関数スプールファイル３０６に印刷終了命令が発行され、直後に印刷開始命令を発行することによって行われる。
【０２３４】
ステップ２５１１において、部数カウンタＩが１以上ならばステップ２５１２へ進み、部数カウンタが０ならばステップ２５１４に進む。
【０２３５】
ステップ２５１２において、ＧＤＩ関数スプールファイルからＧＤＩ関数を読み出しグラフィックエンジンに出力する。
【０２３６】
ステップ２５１３において、部数カウンタＩを１減らす。
【０２３７】
ステップ２５１４において、ＧＤＩ関数スプールファイルに一旦保存されていたＧＤＩ関数を消去し、処理を終了する。
【０２３８】
実施形態２では、図２４及び図２５に示したように、印刷部数に複数部数の印刷指定がしてある場合、中間コードから変換されたＧＤＩ関数を一旦保存し、そのＧＤＩ関数を複数回出力することによって、印刷ジョブの分割を行う他の実施形態を示した。実施形態２では、ジョブの分割はデスプーラ３０５によって、ＧＤＩ関数スプールファイル３０６に印刷終了命令が発行され、直後に印刷開始命令を発行することによって行われる。
【０２３９】
以上のように、実施形態２においては、ＧＤＩ関数スプールファイル３０６を用いることで、複数部数印刷の場合、２部め以降の中間コードからＧＤＩ関数への変換の処理時間が不要になるので、印刷の処理時間の短縮が可能になる。また、複数部数もしくは分冊で、分割した印刷ジョブを一旦ＧＤＩ関数スプールファイルに保存してから、プリンタに送信するので、分割した印刷ジョブ間に、他のホストコンピュータなどからの印刷ジョブが割り込むという可能性を低減することが出来る。また、印刷部数が１部数のときもＧＤＩ関数スプールファイルに一旦保存することで、分冊処理で分割された印刷ジョブに対しても、他のホストコンピュータからの印刷ジョブが割り込む可能性を低減することが出来る。
【０２４０】
また、実施形態２では、中間コードから変換されたＧＤＩ関数は、全て一旦ＧＤＩ関数スプールファイルに保存したが、他のホストコンピュータからの印刷ジョブが割り込む可能性が高くなってもよければ、印刷部数が１部のときはＧＤＩ関数スプールファイルに保存しない構成にしてもよい。
【０２４１】
図２２は、プリンタ、複写機などの画像形成装置が備えるシート処理装置の一例を示すサドルステッチ装置の断面図である。
【０２４２】
シート処理装置２は、図２２に示すように入り口フラッパ３を備えており、この入り口フラッパ３は、中心軸３ａを中心に揺動可能に構成されており、入口ソレノイドの電源ＯＮ、ＯＦＦによる作動によって製本モード／スタックモードの切換えを行っている。
【０２４３】
一方、図２２において、４は排紙ガイドであり、この排紙ガイド４の下流にはスタッカ排出ローラ５とスタッカ排出コロ６とが配置されている。７はスタッカトレイであり、スタッカ排出ローラ５から排出されたシートを積載するものである。そして、シート処理の際、スタックモードが選択された時、画像形成装置（プリンタ、複写機など）１により画像が形成され、排出されたシートはフラッパ３により排紙ガイド４に導かれ、スタッカ排出ローラ５及びスタッカ排出コロ６によりスタッカトレイ７上に排出され、積載されるようになっている。
【０２４４】
また、図２２において、１１，１２はガイド、１３は第１の搬送ローラであり、この第１の搬送ローラ１３の対向面には搬送ローラ１３に押圧されている搬送コロ１４が配置されている。１５，１６は上部及び下部切換フラッパであり、これら上部及び下部切換フラッパ１５，１６には、上部及び下部切換ソレノイドが係合しており、これら上部及び下部切換ソレノイドを電気的信号でＯＮ、ＯＦＦすることにより、上部及び下部切換フラッパ１５，１６は図２２に示す１点鎖線と実線の２つの位置を取るように構成されている。この上部及び下部切換えフラッパ１５，１６は、本シート後処理装置２で処理される紙サイズによって切換えられ、本装置内で積載整合されているシート束が重ねられる順序が常に一定になるよう、つまり、後から積載される紙は常に束の左上方に重なるようになっている。
【０２４５】
また、図２２において、１７ａ、２２ａは、第２及び第３の搬送ローラであり、これら第２及び第３の搬送ローラ１７ａ，２２ａの対向面には、シートを搬送ローラ１７ａ，２２ａに当接させる弾性部材１７ｄ，２２ｄが配設されている。なお、これら弾性部材１７ｄ，２２ｄは弾性ローラ１７ａ、２２ａに弾性的に付勢された状態で当接している。また、この搬送ローラ１７ａ，２２ａは同期して回転するようになっている。
【０２４６】
ここで、これら第２及び第３の搬送ローラ１７ａ，２２ａは、第１の搬送ローラ１３により送られて来るシートを受けて、さらに搬送し、シート先端が先端ストッパ２３に達したことが、センサ３３によって検知されると停止するようになっている。
【０２４７】
１８は、後で説明するステイプラユニットであり、シート束を針綴じするものである。このステイプラユニット１８は、回転軸１８ａを中心に揺動可能に支持された上側の針打ち込み手段としての針打ち込み部（フォーミング部）と、駆動ユニット及びアンビル部（折り曲げ部）とで構成されており、フレームに固定された支持板により幅よせ部材２４ａ，２４ｂで整合されたシート束のセンターに対し左右対称位置に配置されている。
【０２４８】
２０，２１はステイプラユニット１８の下流側に配置されたガイドである。
【０２４９】
２４ａ，２４ｂは、幅よせ部材（整合手段）であって、シートを両サイドから押えてシートを整合するためのものである。２４ｄはステッピングモータで構成されたる幅よせモータであって、その出力軸上には、ピニオンギヤ２４ｃが固着している。なお、２４ｅはフォトインタラプタで構成された幅よせホームセンサであり、この幅よせホームセンサ２４ｅは、幅よせ部材２４ａ，２４ｂが整合しうる最大シート束の幅よりも所定量外側に待避した時に、幅よせ部材２４ａの一部に形成された図示しないフラグを検知する位置に配置されている。そして、この幅よせ部材２４ａ，２４ｂは、幅寄せモータ２４ｄにより駆動されて、ストッパ２３に搬入されたシートを整合するようになっている。
【０２５０】
また、２３は先端ストッパ（位置決め手段）であり、ガイド２０，２１間に進入してきたシート束の先端を受ける部材である。先端ストッパ２３には、コロ２３ａが回転自在に取り付けられており、ガイド２０，２１に沿って矢印Ａ方向に移動してシートの、ステイプラユニット１８で針打ちするときの位置決めと、折りの位置決めを行う位置に移動するように構成されている。また、このストッパ２３の両端にはラック２３ｅが構成されており、このラック２３ｅはストッパモータの駆動を伝達するピニオンギヤ２３ｂと係合している。なお、この先端ストッパ２３には、シート束先端を検知する先端ストッパセンサ３３が配設されている。また、３３はストッパ部先端のシート束の有無を検知するストッパセンサであり、既述したようにこのストッパセンサ３３により、シート先端が先端ストッパ２３に達したことが検知されると第２及び第３の搬送ローラ１７ａ，２２ａは、停止するようになっている。
【０２５１】
２５はシート束の折りに使用される突き出しユニットであり、折りを行う前はガイド１２，２１に沿って先端ストッパ２３に向かうシートに触れることのないようガイド１２，２１より離れた退避位置に移動している。２６，２７は圧接している一対の折り手段である折りローラ、２８は排出ガイドである。ここで、この排出ガイド２８は、折りローラ２６，２７から排出されるシート束を排出手段を形成する排出ローラ３０、排出コロ３１のニップ間に案内するためのものである。
【０２５２】
２９は排出センサであり、折りローラ２６，２７により、折られながら搬送されるシート束の先端、後端を検知するものである。３２は積載トレイであり、排出ローラ３０、排出コロ３１により排出されたシート束を略水平方向の積載面に積載するようになっている。
【０２５３】
図２２では、サドルステッチ装置の一例を示したが、プリンタ・複写機などの印刷装置内部にこのサドルステッチ装置と同様の機構を備えている場合も同様であることは言うまでもない。
【０２５４】
また、本実施形態では、１つの印刷ジョブに対し、１回のサドルステッチ処理を行う印刷装置について述べたが、本発明は、サドルステッチ以外にも、中折り機能だけを有する印刷装置や、ステープル機能を有する印刷装置や、パンチ穴（穴あけ）機能を有する印刷装置などで、１つのジョブに対し、一連のシート処理が１回（サドルステッチ、中折り、ステープル、穴あけなどの少なくとも一つの処理を行う一連の印刷後処理を１ジョブに対し１回）のみ実行可能な印刷装置に、印刷ジョブを送出する印刷ジョブ生成装置に適用できることは言うまでもない。
【０２５５】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（ワープロ、複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０２５６】
また、前記説明した本発明に係る印刷ジョブ生成プログラムは、外部からインストールされるプログラムによって、印刷ジョブ生成プログラムが稼動可能なＰＣの構成を示すブロック図である図１におけるホストコンピュータ３０００と同等の構成を持つＰＣによって遂行されてもよい。その場合、図２０のように、前記実施形態の機能を実現するソフトウェアのプログラムコードを記録した２００２のような記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２５７】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２５８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２５９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０２６０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０２６１】
図２１は、ＣＤ−ＲＯＭなどの記憶媒体のメモリマップの一例を示す図である。２１０１はディレクトリ情報を記憶している領域で、インストールプログラムを記憶している領域２１０２及び印刷ジョブ生成プログラム２１０３を記憶している領域の位置を示している。本発明を構成する印刷ジョブ生成プログラムが図１に示したホストコンピュータ３０００と同等の構成を持つＰＣにインストールされる際には、まず領域２１０２に記憶しているインストールプログラムがシステムにロードされ、ＣＰＵ１０１によって実行される。次に、ＣＰＵ１０１によって実行されるインストールプログラムが、印刷ジョブ生成プログラムを記憶している領域２１０３からネットワークデバイス管理プログラムを読み出して、ハードディスク１１１に格納する。
【０２６２】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図３のモジュール構成例に示す様な各モジュールを記憶媒体に格納することになる。
【０２６３】
また、本発明の目的は、前述した実施形態における様々な機能を実現するソフトウェアのプログラムコードを、図２０に示すように、送出装置２００４、例えばＨＴＴＰサーバやＦＴＰサーバなどから送出してもらい、それを２００５に示されるネットワーク又は公衆回線又は無線などを介して受け取り、そのシステム或は装置のコンピュータ（又はＣＰＵ，ＭＰＵ）がそのプログラムコードを実行することによっても達成されることは言うまでもない。
【０２６４】
この場合、送出装置から送出されたプログラムコード自体が、前述した実施形態における機能を実現することになり、よって、そのプログラムコードを送出する送出装置は本発明を構成することになる。
【０２６５】
【発明の効果】
本発明の請求項１に記載のホストコンピュータとしての印刷ジョブ生成装置によれば、アプリケーションからの一連の描画命令から複数の印刷後処理可能な印刷ジョブを生成することが可能になるので、１つの印刷ジョブに対して印刷後処理の実行可能な回数が１回と限定されている印刷装置であっても、ユーザが所望とする印刷後処理を行うことができる。
なお、請求項７に記載の印刷ジョブ生成方法、および請求項１３に記載の記憶媒体においても同様の効果を得ることができる。
【０２６６】
本発明の請求項２に記載のホストコンピュータとしての印刷ジョブ装置によれば、枚数単位を印刷装置において印刷後処理可能な上限枚数以下に設定されるので、枚数単位に基づいて生成された印刷ジョブは印刷後処理を実行することが可能となる。なお、請求項８に記載の印刷ジョブ生成方法、および請求項１４に記載の記憶媒体においても同様の効果を得ることができる。
【０２６７】
本発明の請求項３に記載のホストコンピュータとしての印刷ジョブ装置によれば、複数部数の印刷が指定されていた場合であっても、１部の製本印刷を行う際に印刷ジョブを生成する順序で、指定された印刷部数に応じて繰り返し印刷ジョブの生成を行うので、印刷結果が生成される順番にならべるだけで本を作成することが可能となる。なお、請求項９に記載の記載の印刷ジョブ生成方法、および請求項１５に記載の記憶媒体においても同様の効果を得ることができる。
【０２６８】
本発明の請求項４に記載のホストコンピュータとしての印刷ジョブ装置によれば、枚数単位を印刷が終了する前に変更することができるので、無駄な白紙を節約することが可能になる。なお、請求項１０に記載の印刷ジョブ生成方法、および請求項１６に記載の記憶媒体においても同様の効果を得ることができる。
【０２６９】
本発明の請求項５に記載のホストコンピュータとしての印刷ジョブ装置によれば、分冊出力方法を選択することが可能なので、ユーザーが所望とする編集方法で本を作成することが可能となる。なお、請求項１１に記載の印刷ジョブ方法、および請求項１７に記載の記憶媒体においても同様の効果を得ることができる。
【０２７０】
本発明の請求項６に記載のホストコンピュータとしての印刷ジョブ装置によれば、送出手段を備えることにより、印刷装置に対し、印刷後処理可能な印刷ジョブを送出することが可能となる。なお、請求項１２に記載の印刷ジョブ方法、および請求項１８に記載の記憶媒体においても同様の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すホストコンピュータ（印刷ジョブ生成装置）とシート処理部を備えたプリンタの構成を説明するブロック図である。
【図２】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図３】アプリケーションからの印刷ジョブをプリンタ制御コマンドに変換する前に、一旦中間コードに変換してスプールするプリントシステムの構成を示すブロック図である。
【図４】製本印刷の体裁を示す図である。
【図５】製本の開き方向を示す図である。
【図６】製本印刷の処理手順を示すフローチャートである。
【図７】全ページ単位の製本印刷の処理手順を示すフローチャートである。
【図８】全ページ単位の製本印刷の処理手順を示すフローチャートである。
【図９】指定枚数単位の製本印刷の処理手順を示すフローチャートである。
【図１０】指定枚数単位の製本印刷の処理手順を示すフローチャートである。
【図１１】指定枚数単位の製本印刷における、最終ブロックの用紙節約における処理手順を示すフローチャートである。
【図１２】サドルステッチを行った製本印刷の体裁を示す図である。
【図１３】印刷設定情報の一例を示した図である。
【図１４】本発明を実施する全ページ枚数単位のサドルステッチ処理を行う製本印刷を示すフローチャートである。
【図１５】サドルステッチを行うときの分冊方法１のフローチャートである。
【図１６】本発明を実施する指定枚数単位のサドルステッチ処理を行う製本印刷を示すフローチャートである。
【図１７】サドルステッチを行うときの分冊方法２のフローチャートである。
【図１８】製本印刷およびサドルステッチの設定画面の一例である。
【図１９】製本印刷の詳細を設定する画面の一例である。
【図２０】プログラムコードを記憶した記憶媒体、及びプログラムコードを送出する送出装置の一例を示す図である。
【図２１】本発明における印刷ジョブ生成プログラムが記憶された記憶媒体のメモリマップを示すイメージ図である。
【図２２】プリンタ、複写機などの画像形成装置が備えるシート処理装置の一例を示すサドルステッチ装置の断面図である。
【図２３】ＧＤＩ関数スプールファイルを備えた本発明の実施形態２のプリントシステムの構成を示すブロック図である。
【図２４】実施形態２として本発明を実施する全ページ枚数単位のサドルステッチ処理を行う製本印刷を示すフローチャートである。
【図２５】実施形態２として本発明を実施する指定枚数単位のサドルステッチ処理を行う製本印刷を示すフローチャートである。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  システムバス
１０５  キーボードコントローラ（ＫＢＣ）
１０６  ＣＲＴコントローラ（ＣＲＴＣ）
１０７  ディスクコントローラ（ＤＫＣ）
１０８  プリンタコントローラ（ＰＲＴＣ）
１０９  キーボード
１１０  ＣＲＴディスプレイ（ＣＲＴ）
１１１  ハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ
１１２  ＣＰＵ
１１３  ＲＯＭ
１１４  外部メモリ
１１５  システムバス
１１６  印刷部インターフェース
１１７  印刷部（プリンタエンジン）
１１８  入力部
１１９  ＲＡＭ
１２０  メモリコントローラ（ＭＣ）
１２１  双方向性インターフェース（インターフェース）
１２２  シート処理部インターフェース
１２３  シート処理部
１２４  操作部
３０００  ホストコンピュータ
１５００  プリンタ
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
３０１  ディスパッチャ
３０２  スプーラ
３０３  スプールファイル
３０４  スプールファイルマネージャ
３０５  デスプーラ
３０６  ＧＤＩ関数スプールファイル
【図１】
0003619038.tif 000002
【図２】
0003619038.tif 000003
【図３】
0003619038.tif 000004
【図４】
0003619038.tif 000005
【図５】
0003619038.tif 000006
【図６】
0003619038.tif 000007
【図７】
0003619038.tif 000008
【図８】
0003619038.tif 000009
【図９】
0003619038.tif 000010
【図１０】
0003619038.tif 000011
【図１１】
0003619038.tif 000012
【図１２】
0003619038.tif 000013
【図１３】
0003619038.tif 000014
【図１４】
0003619038.tif 000015
【図１５】
0003619038.tif 000016
【図１６】
0003619038.tif 000017
【図１７】
0003619038.tif 000018
【図１８】
0003619038.tif 000019
【図１９】
0003619038.tif 000020
【図２０】
0003619038.tif 000021
【図２１】
0003619038.tif 000022
【図２２】
0003619038.tif 000023
【図２３】
0003619038.tif 000024
【図２４】
0003619038.tif 000025
【図２５】
0003619038.tif 000026