(57)【特許請求の範囲】
【請求項１】
印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置であって、
印刷対象データを任意のページ単位に読み出し可能に格納する格納手段と、
表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定手段と、
前記指定手段により指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定手段と、
前記指定手段により表紙の各部に対して指定されたページの前記格納手段に格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理手段と、
前記表紙ページ数判定手段により判定されるページ数よりも前記格納手段に格納されている印刷対象データのページ数が多い場合に、前記指定手段により表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理手段と、
前記表紙面付け処理手段及び前記本文面付け処理手段により面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成手段とを有することを特徴とする製本印刷制御装置。
【請求項２】
前記格納手段に格納されている印刷対象データの総ページ数が前記表紙ページ数判定手段により判定されるページ数よりも多いか否かを判定する判定処理手段を更に有し、
前記判定処理手段により前記印刷対象データの総ページ数が前記表紙ページ数判定手段により判定されたページ数よりも大きいと判定された場合に、前記本文面付け処理手段が、前記指定手段により表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行い、一方、前記判定処理手段により前記印刷対象データの総ページ数が前記表紙ページ数判定手段により判定されたページ数よりも小さいと判定された場合に、前記本文面付け処理手段により本文用紙への面付け処理を行わずに、前記表紙面付け処理手段により表紙への面付け処理を行うことを特徴とする請求項１記載の製本印刷制御装置。
【請求項３】
前記格納手段は、印刷対象データを中間コード形式で任意のページ単位に読み出し可能に格納するものであり、
前記製本印刷制御装置は、更に、前記中間コード形式で一時保存されたデータから再びオペレーションシステムの描画手段に対して出力すべき描画関数を生成するデスプール手段を有し、
前記印刷データ生成手段は、前記デスプール手段からオペレーションシステムの描画手段を介して受け取る印刷対象データに基づいて、前記印刷装置に送信する制御コマンドを含む印刷データを生成することを特徴とする請求項１又は２記載の製本印刷制御装置。
【請求項４】
前記指定手段は、表紙となる記録用紙の各部に対して印刷対象の任意のページ及び印刷しないことを個別に指定可能であることを特徴とする請求項１乃至３のいずれかに記載の製本印刷制御装置。
【請求項５】
前記指定手段は、表紙となる記録用紙の各部に相当するおもて表紙、おもて表紙見返し、裏表紙見返し、裏表紙に対して、それぞれ印刷対象データの任意のページを指定可能であることを特徴とする請求項１乃至４のいずれかに記載の製本印刷制御装置。
【請求項６】
印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置で実行される製本印刷制御方法であって、
印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、
表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、
前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、
前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、
前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、
前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とする製本印刷制御方法。
【請求項７】
前記格納ステップで格納されている印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されるページ数よりも多いか否かを判定する判定処理ステップを更に有し、
前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも大きいと判定された場合に、前記本文面付け処理ステップが、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行い、一方、前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも小さいと判定された場合に、前記本文面付け処理ステップにより本文用紙への面付け処理を行わずに、前記表紙面付け処理ステップにより表紙への面付け処理を行うことを特徴とする請求項６記載の製本印刷制御方法。
【請求項８】
前記格納ステップは、印刷対象データを中間コード形式で任意のページ単位に読み出し可能に格納し、
更に、前記中間コード形式で一時保存されたデータから再びオペレーションシステムの描画手段に対して出力すべき描画関数を生成するデスプールステップを有し、
前記印刷データ生成ステップは、前記デスプールステップからオペレーションシステムの描画手段を介して受け取る印刷対象データに基づいて、前記印刷装置に送信する制御コマンドを含む印刷データを生成することを特徴とする請求項６又は７記載の製本印刷制御方法。
【請求項９】
前記指定ステップでは、表紙となる記録用紙の各部に対して印刷対象の任意のページ及び印刷しないことを個別に指定可能であることを特徴とする請求項６乃至８のいずれかに記載の製本印刷制御方法。
【請求項１０】
前記指定ステップでは、表紙となる記録用紙の各部に相当するおもて表紙、おもて表紙見返し、裏表紙見返し、裏表紙に対して、それぞれ印刷対象データの任意のページを指定可能であることを特徴とする請求項６乃至９のいずれかに記載の製本印刷制御方法。
【請求項１１】
印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置に適用される製本印刷制御方法を実行するプログラムを記憶したコンピュータにより読み出し可能な記憶媒体であって、
前記製本印刷制御方法は、
印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、
表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、
前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、
前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、
前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、
前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とする記憶媒体。
【請求項１２】
前記格納ステップで格納されている印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されるページ数よりも多いか否かを判定する判定処理ステップを更に有し、
前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも大きいと判定された場合に、前記本文面付け処理ステップが、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行い、一方、前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも小さいと判定された場合に、前記本文面付け処理ステップにより本文用紙への面付け処理を行わずに、前記表紙面付け処理ステップにより表紙への面付け処理を行うことを特徴とする請求項１１記載の記憶媒体。
【請求項１３】
前記格納ステップは、印刷対象データを中間コード形式で任意のページ単位に読み出し可能に格納し、
更に、前記中間コード形式で一時保存されたデータから再びオペレーションシステムの描画手段に対して出力すべき描画関数を生成するデスプールステップを有し、
前記印刷データ生成ステップは、前記デスプールステップからオペレーションシステムの描画手段を介して受け取る印刷対象データに基づいて、前記印刷装置に送信する制御コマンドを含む印刷データを生成することを特徴とする請求項１１又は１２記載の記憶媒体。
【請求項１４】
前記指定ステップでは、表紙となる記録用紙の各部に対して印刷対象の任意のページ及び印刷しないことを個別に指定可能であることを特徴とする請求項１１乃至１３のいずれかに記載の記憶媒体。
【請求項１５】
前記指定ステップでは、表紙となる記録用紙の各部に相当するおもて表紙、おもて表紙見返し、裏表紙見返し、裏表紙に対して、それぞれ印刷対象データの任意のページを指定可能であることを特徴とする請求項１１乃至１４のいずれかに記載の記憶媒体。
【請求項１６】
印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置に供給されるプログラムであって、
印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、
表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、
前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、
前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、
前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、
前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とするプログラム。
【請求項１７】
前記格納ステップで格納されている印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されるページ数よりも多いか否かを判定する判定処理ステップを更に有し、
前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも大きいと判定された場合に、前記本文面付け処理ステップが、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行い、一方、前記判定処理ステップにより前記印刷対象データの総ページ数が前記表紙ページ数判定ステップにより判定されたページ数よりも小さいと判定された場合に、前記本文面付け処理ステップにより本文用紙への面付け処理を行わずに、前記表紙面付け処理ステップにより表紙への面付け処理を行うことを特徴とする請求項１６記載のプログラム。
【請求項１８】
前記格納ステップは、印刷対象データを中間コード形式で任意のページ単位に読み出し可能に格納し、
更に、前記中間コード形式で一時保存されたデータから再びオペレーションシステムの描画手段に対して出力すべき描画関数を生成するデスプールステップを有し、
前記印刷データ生成ステップは、前記デスプールステップからオペレーションシステムの描画手段を介して受け取る印刷対象データに基づいて、前記印刷装置に送信する制御コマンドを含む印刷データを生成することを特徴とする請求項１６又は１７記載のプログラム。
【請求項１９】
前記指定ステップでは、表紙となる記録用紙の各部に対して印刷対象の任意のページ及び印刷しないことを個別に指定可能であることを特徴とする請求項１６乃至１８のいずれかに記載のプログラム。
【請求項２０】
前記指定ステップでは、表紙となる記録用紙の各部に相当するおもて表紙、おもて表紙見返し、裏表紙見返し、裏表紙に対して、それぞれ印刷対象データの任意のページを指定可能であることを特徴とする請求項１６乃至１９のいずれかに記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、製本印刷制御装置、製本印刷制御方法、記憶媒体、及びプログラムに関し、特に、パーソナルコンピュータ等の情報処理装置とプリンタ等の印刷装置から構成されるシステムにおける製本印刷処理に適用する場合に好適な製本印刷制御装置、製本印刷制御方法、記憶媒体、及びプログラムに関する。
【０００２】
【従来の技術】
従来、プリンタと接続されたパーソナルコンピュータ（ＰＣ）等の情報処理装置から構成されるシステムであって、更に、前記情報処理装置上で、前記プリンタに送信する印刷データを生成する前に、一旦、最終的に前記プリンタに送信する印刷データとは異なる形式のデータ形式（いわゆる中間コード形式）でのデータ一時保存を行うスプール手段を備え、この中間コード形式で一時保存されたデータから改めて最終的に前記プリンタに送信する印刷データを生成するデスプール手段と、プリンタ制御コマンドを生成する生成手段を備えるシステムが存在する。
【０００３】
また、従来における製本に関する機能としては、上記システムにおいて実現している製本機能（プリンタで印刷が完了した印刷物をＰＣ側の制御に基づきプリンタで製本する機能）と、デバイスによる製本機能（プリンタで印刷が完了した印刷物をプリンタ側の制御に基づきプリンタで製本する機能）と、デバイスによる表紙インサート機能（プリンタで印刷が完了した印刷物に対しプリンタ側の制御に基づきプリンタ付設のインサータにより表紙を１枚挿入する機能）が存在している。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来技術においては次のような問題があった。即ち、上記従来のシステムにおいては、上記デバイスによる表紙インサート機能以外の機能、即ち、ＰＣ側から表紙データをプリンタへ送信して表紙を付加する機能を用いて、製本対象印刷物に表紙を付けて製本する処理（表紙付きの製本印刷機能）を可能とする技術も開発されている。しかし、製本対象印刷物の表紙を構成する「おもて表紙」「おもて表紙見返し」「裏表紙見返し」「裏表紙」に対して、ＰＣ側のアプリケーションで設定した、印刷データの任意のページを割り当てる技術については実現されていないという課題があった。
【０００５】
本発明は、上述した点に鑑みなされたものであり、より柔軟性の高い表紙付きの製本印刷機能を実現することを可能とし、ユーザの所望する製本表紙を容易に得ることを可能とした製本印刷制御装置、製本印刷制御方法、記憶媒体、及びプログラムを提供することを目的とする。
【０００６】
上記目的を達成するため、本発明は、印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置であって、印刷対象データを任意のページ単位に読み出し可能に格納する格納手段と、表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定手段と、前記指定手段により指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定手段と、前記指定手段により表紙の各部に対して指定されたページの前記格納手段に格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理手段と、前記表紙ページ数判定手段により判定されるページ数よりも前記格納手段に格納されている印刷対象データのページ数が多い場合に、前記指定手段により表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理手段と、前記表紙面付け処理手段及び前記本文面付け処理手段により面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成手段とを有することを特徴とする。
【０００８】
また、本発明は、印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置で実行される製本印刷制御方法であって、印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とする。
【０００９】
また、本発明は、印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置に適用される製本印刷制御方法を実行するプログラムを記憶したコンピュータにより読み出し可能な記憶媒体であって、前記製本印刷制御方法は、印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とする。
【００１０】
また、本発明は、印刷対象データから印刷装置の製本印刷を制御するための印刷データを生成するホストコンピュータとしての製本印刷制御装置に供給されるプログラムであって、印刷対象データを任意のページ単位に読み出し可能に格納する格納ステップと、表紙を付加した製本印刷を前記印刷装置で行う場合、表紙となる記録用紙の各部に対して印刷する任意のページを指定する指定ステップと、前記指定ステップにより指定された表紙の各部に対するページの指定に従って、表紙に面付けすべきページ数を判定する表紙ページ数判定ステップと、前記指定ステップにより表紙の各部に対して指定されたページの前記格納ステップで格納されている印刷対象データを用いて、表紙への面付け処理を行う表紙面付け処理ステップと、前記表紙ページ数判定ステップにより判定されるページ数よりも前記格納ステップで格納されている印刷対象データのページ数が多い場合に、前記指定ステップにより表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行う本文面付け処理ステップと、前記表紙面付け処理ステップ及び前記本文面付け処理ステップにより面付けされたデータに基づき最終的に前記印刷装置に送信する印刷データを生成する印刷データ生成ステップとを有することを特徴とする。
【００１１】
【発明の実施の形態】
先ず、本発明の実施の形態を説明する前に本発明の概要を説明する。本発明は、製本対象印刷物の表紙を構成する「おもて表紙」「おもて表紙見返し」「裏表紙見返し」「裏表紙」に対し印刷データの任意のページを指定可能とするといった、より柔軟な表紙付きの製本印刷機能を実現することを可能とするものである。以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１２】
［第１の実施の形態］
＜印刷システムの構成＞
図１は本発明の第１の実施の形態に係る印刷システムの構成を示すブロック図である。印刷システムは、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、システムバス４、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、システムバス１５、入力部１８、印刷部インタフェイス１６、印刷部（プリンタエンジン）１７、操作部１５０１、メモリコントローラ（ＭＣ）２０、外部メモリ１４を備えたプリンタ１５００とから構成されている。図中２１は双方向性インタフェイスである。
【００１３】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用することができる。
【００１４】
先ず、ホストコンピュータ３０００の構成を説明する。ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ或いは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するものであり、システムバス４に接続される各デバイスを総括的に制御する。また、ＣＰＵ１は、後述の各フローチャートに示す処理を実行する。また、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（What You See Is What You Get：画面上に見えているそのままの大きさや形で印刷を可能とする機能）を可能としている。
【００１５】
また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはホストコンピュータ３０００からプリンタ１５００により印刷を実行する際、ＣＲＴ１０上で印刷の設定に関するウインドウを開き、プリンタ１５００に関する設定や印刷モードの選択を含む、ホストコンピュータ３０００のプリンタドライバ（図２、図３参照）に対する印刷処理方法の設定を行うことができる。
【００１６】
ＲＯＭ３のプログラム用ＲＯＭ或いは外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶する。ＲＯＭ３のフォント用ＲＯＭ或いは外部メモリ１１は、上記文書処理の際に使用するフォントデータ等を記憶する。ＲＯＭ３のデータ用ＲＯＭ或いは外部メモリ１１は、上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。キーボード（ＫＢ）９は、各種データ入力に用いる。
【００１７】
ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴ１０の表示を制御する。ＣＲＴ１０は、後述の各種ウインドウを表示する。なお、表示手段はＣＲＴに限定されず液晶等でもよい。ディスクコントローラ（ＤＫＣ）７は、外部メモリ１１に対するアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェイス２１を介してプリンタ１５００の入力部１８に接続されることで、プリンタ１５００との間における通信制御処理を実行する。外部メモリ１１は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等から構成されている。
【００１８】
次に、プリンタ１５００の構成を説明する。ＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいて、システムバス１５に接続される印刷部１７に出力情報としての画像信号を印刷部インタフェイス１６を介して出力する。また、ＣＰＵ１２は、入力部１８を介してホストコンピュータ３０００との間の通信処理が可能となっており、プリンタ１５００内部の情報等をホストコンピュータ３０００に通知することができる。
【００１９】
ＲＯＭ１３のプログラムＲＯＭは、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭは、上記出力情報を生成する際に使用するフォントデータ等を記憶する。ＲＯＭ１３のデータ用ＲＯＭは、プリンタ１５００がハードディスク等の外部メモリ１４を装備していない場合に、ホストコンピュータ上で利用される情報等を記憶する。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するものであり、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００２０】
印刷部インタフェイス１６は、印刷部１７との間のインタフェイスを司るものであり、ＣＰＵ１２から送出された出力情報としての画像信号を印刷部１７に供給する。印刷部１７は、印刷部インタフェイス１６を介して供給された画像信号に基づき用紙上に画像を形成する印刷動作を司る。操作部１５０１は、プリンタ１５００の操作のためのスイッチ及びＬＥＤ表示器等を備えている。
【００２１】
外部メモリ１４は、ハードディスク（ＨＤ）、ＩＣカード等から構成され、プリンタ１５００にオプションとして接続されるものであり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。なお、外部メモリ１４は、１個に限らず、複数個装備することが可能であり、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。メモリコントローラ（ＭＣ）２０は、外部メモリ１４に対するアクセスを制御する。
【００２２】
＜ホストコンピュータの印刷処理制御系の構成＞
図２は上記図１のプリンタ１５００等の印刷装置が直接接続されている（或いはネットワーク経由で接続されている）ホストコンピュータ３０００における典型的な印刷処理制御系の構成を示すブロック図である。ホストコンピュータ３０００は、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、システムスプーラ２０４を備えている。
【００２３】
アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、及びシステムスプーラ２０４は、上記図１の外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１及びプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、或いは不図示のネットワークを経由して、外部メモリ１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１は、ＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行わせる際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００２４】
グラフィックエンジン２０２は、プリンタごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、グラフィックエンジン２０２は、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数からＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、双方向性インタフェイス２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００２５】
本実施形態の印刷システムは、上記図１及び図２に示したプリンタ１５００とホストコンピュータ３０００からなる印刷システムにおいて、更に図３に示すような、アプリケーション２０１からの印刷データを一旦中間コードデータでスプールする構成を、ホストコンピュータ３０００に加えたものである。
【００２６】
＜ホストコンピュータの印刷処理制御系の拡張構成＞
図３は上記図２の印刷システムにおけるホストコンピュータ３０００の機能を拡張したものであり、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成を示すブロック図である。ホストコンピュータ３０００は、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、システムスプーラ２０４、ディスパッチャ３０１、スプーラ３０２、スプールファイル３０３、スプールファイルマネージャ３０４、デスプーラ３０５、プレビューア３０６、設定変更エディタ３０７を備えている。
【００２７】
上記図２の印刷システムでは、アプリケーション２０１が印刷処理から開放されるのは、プリンタドライバ２０３がグラフィックエンジン２０２からの全ての印刷命令をプリンタ１５００の制御コマンドへ変換し終った時点である。これに対して、図３の印刷システムでは、アプリケーション２０１が印刷処理から開放されるのは、スプーラ３０２が全ての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図３の印刷システムにおいては、スプールファイル３０３の内容に対して加工を施すことができる。これにより、アプリケーション２０１からの印刷データに対して、画像データの拡大／縮小や、複数ページを１ページに縮小して印刷する等、アプリケーション２０１が持たない機能を実現することができる。
【００２８】
これらの目的のために、図２の印刷システムに対し、図３の印刷システムのように、中間コードデータでスプールするよう印刷システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常、プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上或いは外部メモリ１１上に保管する。
【００２９】
以下、図３の詳細を説明する。図３に示す通り、この拡張された印刷システムにおける処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１は、グラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００３０】
スプーラ３０２は、ディスパッチャ３０１から受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。このページ単位に格納されている中間コードのスプールファイルを、ページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する「Ｎｕｐ」、用紙の両面に印刷する「両面」、印刷が完了した用紙を綴じる「ステイプル」、カラー印刷かモノクロ印刷かを指定する「カラー／モノクロ指定」等）をプリンタドライバ２０３から取得して、ジョブ単位の設定ファイルとしてスプールファイル３０３に保存する。
【００３１】
このジョブ単位に格納されている設定ファイルをジョブ設定ファイル（簡略してＳＤＦ：Spool Description Fileと呼ぶこともある）と呼ぶ。このジョブ設定ファイルについては後述する。なお、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更に、スプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか否かを判断する。
【００３２】
スプールファイルマネージャ３０４は、グラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。デスプーラ３０５は、スプールファイル３０３に含まれる中間コードのページ描画ファイルを、スプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度、グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００３３】
ディスパッチャ３０１は、グラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、デスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、スプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。プリンタドライバ２０３は、グラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００３４】
更に、図３では、これまで説明した拡張システムに加えて、プレビューア３０６、設定変更エディタ３０７を配設し、印刷プレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、先ず、ユーザがホストコンピュータ３０００のＣＲＴ１０に表示される図９に示すプリンタドライバ２０３のプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにより「ストア」を指定する必要がある。なお、ユーザがプレビューだけを見たい場合は、出力先の指定として「プレビュー」を選択することによってもプレビュー表示が可能である。
【００３５】
このように、プリンタドライバ２０３のプロパティで設定されている内容は、設定ファイルとしてＯＳが提供する構造体（Windows（登録商標）ＯＳではDEVMODEと呼ばれる）に格納される。その構造体には、例えばスプールファイル３０３に含まれる加工設定中にスプールファイルマネージャ３０４にストアを行うかどうかの設定が含まれている。スプールファイルマネージャ３０４がプリンタドライバ２０３を介して加工設定を読み込み、ストア指定がなされていた場合、上述したようにスプールファイル３０３にページ描画ファイルとジョブ設定ファイルとが生成・格納され、ＣＲＴ１０には図１７に示すようにスプールファイルマネージャ３０４のウインドウ画面がポップアップされ、スプールファイル３０３にスプールされたジョブがリスト表示される。
【００３６】
図１７は４つのジョブがスプールされている印刷ジョブ一覧を表示する画面の例を示す図である。メニューバーもしくはそのすぐ下のメニューアイコンを押下することにより、ジョブの操作を行うことができる。メニューバーとメニューアイコンを操作する数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、複数の中間コードのスプールファイルのジョブを結合して１つのジョブにする「結合」、結合ジョブを元の複数のジョブに分割する「分割」、単体ジョブもしくは結合ジョブの印刷設定（レイアウト設定やフィニッシング設定等）を変更する「ジョブ編集」、あるジョブの印刷順序を最初にする「先頭に移動」、あるジョブの印刷順序を１つ早くする「１つ上に移動」、あるジョブの印刷順序を１つお則する「１つ下に移動」、あるジョブの印刷順序を最後にする「最後に移動」の以上１３個の操作がある。
【００３７】
スプールファイルマネージャ３０４のウインドウ画面（図１７）上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ１１に格納されているプレビューア３０６をＲＡＭ２にロードし、プレビューア３０６に対して、スプールファイル３０３に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【００３８】
プレビューア３０６は、スプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工し、グラフィックエンジン２０２に対してＧＤＩ関数を出力し、グラフィックエンジン２０２が自身のクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
【００３９】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５と同様に、スプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を利用して出力する方法で実現することが可能となる。
【００４０】
このように、プリンタドライバ２０３で設定されている加工設定をジョブ設定ファイルとしてスプールファイル３０３に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Ｎｕｐ（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理）が指定されている場合、両面印刷が指定されている場合、製本印刷が指定されている場合、用紙にスタンプを押すスタンプ印刷が指定されている場合のそれぞれに応じて、プリンタ１５００で出力されるものに近い印刷プレビューをユーザに提供することができる。
【００４１】
なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションソフトウェアにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできない。
【００４２】
上記のようにプレビュー処理を行うことにより、図１８に示すようにスプールファイル３０３に含まれる印刷の加工設定の大プレビューが、プレビューア３０６によってＣＲＴ１０の画面上に表示される。その後、ユーザの非表示指示によってプレビューア３０６がクローズされ、制御がスプールファイルマネージャ３０４のウインドウ画面（図１７）に移行する。
【００４３】
そして、ユーザがプレビューア３０６によってＣＲＴ１０の画面上に表示された内容に従って、プリンタ１５００により印刷を行う場合は、スプールファイルマネージャ３０４上で「印刷」もしくは「セーブして印刷」を指示することにより、印刷要求を発行する。印刷要求は、上述したように、デスプーラ３０５によりジョブ設定ファイルに基づいてページ描画ファイルを加工してＧＤＩ関数を生成することで、グラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、プリンタ１５００により印刷が実行される。
【００４４】
次に、設定変更エディタ３０７を用いた設定変更について説明する。設定変更の実現方法としては、プレビューと同様に、ＣＲＴ１０に表示される図１０の画面上において「ストア」指定されたジョブに関して設定変更が可能である。上記と同様にスプールファイルマネージャ３０４がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャ３０４のウインドウ画面（図１７）上で「ジョブ編集」が指定され、設定変更が指示された場合、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし、設定変更エディタ３０７に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして、図１９に示すようなジョブ設定画面がＣＲＴ１０に表示される。
【００４５】
設定変更エディタ３０７は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルをスプールファイル３０３から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図１９のジョブ設定画面のデフォルト値を変更する。図１９に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数：１部、印刷方法：片面、ステイプル：なし、レイアウト：１ページ／枚等が指定されていることになる。
【００４６】
この設定変更エディタ３０７でも、スプールファイル３０３に含まれる中間コードのページ描画ファイルを、スプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、図１９に示す画面上の小プレビュー出力が可能となる。
【００４７】
また、図１９の画面上で、スプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容を、変更・修正することが可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインタフェイスに持っていても、プリンタドライバ２０３自身のユーザインタフェイスを呼び出しても構わない。図１９に示すように、部数、印刷方法（片面印刷、両面印刷、製本印刷）、ステイプル（サドルフィニッシャ等を使用したステイプル）、ページレイアウト、配置順等の指定を行うことができ、また「詳細設定」を押下することにより、プリンタドライバ２０３で指定できる項目の大半を設定し直すことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【００４８】
図１９の画面上で変更された変更項目は、設定変更エディタ３０７上の認証要求に従い変更が認証され、制御がスプールファイルマネージャ３０４に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は図１１以降で後述する。
【００４９】
そして、ユーザがプレビューア３０６での確認と同様に、設定変更内容に従って印刷を行う場合は、スプールファイルマネージャ３０４上で印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令が送られ、プリンタ１５００により印刷が実行される。
【００５０】
また、スプールファイルマネージャ３０４のウインドウ画面（図１７）では、複数の印刷ジョブを結合し、一つの印刷ジョブとして印刷するように指定することが可能である。これも、プレビュー、設定変更と同様に、図１０のプリンタドライバ２０３のプロパティにおいて出力先を「ストア」指定されたジョブが前提となる。
【００５１】
ユーザが印刷ジョブの結合を行う場合、先ず、アプリケーション２０１からプリンタドライバ２０３を呼び出し、図１０に示すようなユーザインタフェイス上からストアを選択する。上記と同様に、この選択により、スプールファイル３０３に印刷ジョブがストアされ、図１７のようにスプールファイルマネージャ３０４のウインドウ画面がポップアップされる。スプールされた印刷ジョブはスプールファイルマネージャ３０４のウインドウ画面上にリスト表示される。アプリケーション２０１から同様の操作をすることにより、スプールファイルマネージャ３０４上に複数の印刷ジョブのリスト表示がされることになる。
【００５２】
図１７の画面上で、複数ジョブを選択し、「結合」を指定した場合、スプールファイルマネージャ３０４は、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし、設定変更エディタ３０７に対して、リスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示する。そして、ＣＲＴ１０には図１９のような結合設定画面が表示される。本例では、設定変更エディタ３０７を結合設定画面として用いているが、別モジュールのものを用いても構わない。
【００５３】
この設定変更エディタ３０７は、スプールファイル３０３に含まれる中間コードのページ描画ファイルを、スプールファイル３０３に格納されているジョブ設定情報に含まれる加工設定の内容に従って加工し、結合ジョブとして指定された全てのジョブに対して、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、画面上の出力を行う。その際、図１９に示すプレビュー領域に選択された全てのジョブの小プレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイルを拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものである。これは、編集ジョブや結合ジョブは、内部的にそれぞれ新たなジョブとして扱われるためである。
【００５４】
ここでは、それぞれのジョブに対して、結合する前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更・修正して表示することも可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインタフェイスに持っていても、プリンタドライバ２０３自身のユーザインタフェイスを呼び出しても構わない。
【００５５】
ここで結合されたジョブ及び変更された変更項目は、上述したように、設定変更エディタ３０７上の認証要求に従い変更が認証され、制御がスプールファイルマネージャ３０４に移行する。これらの操作により、先に選択された複数ジョブは、スプールファイルマネージャ３０４のウインドウ上で一つの結合ジョブとして表示される。
【００５６】
そして、ユーザがプレビューア３０６での確認と同様に、設定変更内容に従って印刷を行うならば、スプールファイルマネージャ３０４上で印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令が送られ、プリンタ１５００により印刷が実行される。
【００５７】
＜プリンタの構成＞
図４はプリンタ１５００の一例である両面印刷機能を有するカラーレーザプリンタの内部構造を示す断面図である。このカラーレーザプリンタは、ホストコンピュータ３０００より入力した印刷データに基づいて得られる各色毎の画像データに従って変調されたレーザ光を、ポリゴンミラー３１により反射させ、感光ドラム１５を走査することで、感光ドラム１５の表面に静電潜像を形成する。そして、この静電潜像をトナー現像して可視画像を取得し、可視画像を中間転写体９へ全色について多重転写することで、カラー可視画像を形成する。そして、更に、このカラー可視画像を転写材（記録用紙）２へ転写し、転写材２上にカラー可視画像を定着させる。
【００５８】
以上の制御を行う画像形成部は、感光ドラム１５を有するドラムユニット１３、接触帯電ローラ１７を有する一次帯電部、クリーナ容器１４を有するクリーニング部、カラー現像器２０Ｙ、２０Ｍ、２０Ｃ、ブラック現像器２１Ｂを有する現像部、中間転写体９、用紙カセット１や各種ローラ３、４、５、７を有する給紙部、中間転写体９、転写ローラ１０を有する転写部、及び、定着ローラ２６、加圧ローラ２７を有する定着部２５によって構成されている。
【００５９】
ドラムユニット１３は、感光ドラム（感光体）１５と感光ドラム１５のホルダを兼ねたクリーニング機構を有するクリーナ容器１４とを一体に構成したものである。このドラムユニット１３は、プリンタ本体に対して着脱自在に支持され、感光ドラム１５の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム１５は、アルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器１４に回転可能に支持されている。感光ドラム１５は、図示しない駆動モータの駆動力が伝達されて回転するものである。駆動モータは、感光ドラム１５を画像形成動作に応じて図中反時計回り方向に回転させる。感光ドラム１５の表面を選択的に露光させることにより、感光ドラム１５の表面に静電潜像が形成されるように構成されている。
【００６０】
スキャナ部３０では、変調されたレーザ光を、モータ３１ａにより画像信号の水平同期信号に同期して回転するポリゴンミラー３１により反射し、レンズ３２、反射鏡３３を介して感光ドラム１５を照射する。現像部は、上記静電潜像を可視画像化するために、イエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）の現像を行う３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃと、ブラック（Ｂ）の現像を行う１個のブラック現像器２１Ｂとを備えた構成を有する。
【００６１】
カラー現像器２０Ｙ、２０Ｍ、２０Ｃ及びブラック現像器２１Ｂには、スリーブ２０ＹＳ、２０ＭＳ、２０ＣＳ及び２１ＢＳと、これらスリーブ２０ＹＳ、２０ＭＳ、２０ＣＳ、２１ＢＳそれぞれの外周に圧接する塗布ブレード２０ＹＢ、２０ＭＢ、２０ＣＢ及び２１ＢＢとがそれぞれ設けられている。また、３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃには、塗布ローラ２０ＹＲ、２０ＭＲ、２０ＣＲが設けられている。また、ブラック現像器２１Ｂは、プリンタ本体に対して着脱可能に取り付けられており、カラー現像器２０Ｙ、２０Ｍ、２０Ｃは、回転軸２２を中心に回転する現像ロータリ２３にそれぞれ着脱可能に取り付けられている。
【００６２】
ブラック現像器２１Ｂのスリーブ２１ＢＳは、感光ドラム１５に対して例えば３００μｍ程度の微小間隔を持って配置されている。ブラック現像器２１Ｂは、現像器内に内蔵された送り込み部材によってトナーを搬送すると共に、図中時計回り方向に回転するスリーブ２１ＢＳの外周に塗布ブレード２１ＢＢによって塗布するように、摩擦帯電によってトナーへ電荷を付与する。また、スリーブ２１ＢＳに現像バイアスを印加することにより、静電潜像に応じて感光ドラム１５に対して現像を行うことで、感光ドラム１５にブラックトナーによる可視画像を形成する。
【００６３】
３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃは、画像形成に際して現像ロータリ２３の回転に伴って回転し、所定のスリーブ２０ＹＳ、２０ＭＳ、２０ＣＳが感光ドラム１５に対して３００μｍ程度の微小間隔を持って対向することになる。これにより、所定のカラー現像器２０Ｙ、２０Ｍ、２０Ｃが感光ドラム１５に対向する現像位置に停止し、感光ドラム１５に可視画像が作成される。
【００６４】
カラー画像形成時には、中間転写体９の１回転毎に現像ロータリ２３が回転し、イエロー現像器２０Ｙ、マゼンダ現像器２０Ｍ、シアン現像器２０Ｃ、次いでブラック現像器２１Ｂの順で各現像器による現像工程を実行し、中間転写体９が４回転することで、イエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果、フルカラー可視画像を中間転写体９上に形成する。
【００６５】
中間転写体９は、感光ドラム１５に接触して感光ドラム１５の回転に伴って回転するように構成されたもので、カラー画像形成時に図中時計回り方向に回転し、感光ドラム１５から４回の可視画像の多重転写を受ける。また、中間転写体９は、画像形成時に後述する転写ローラ１０が接触することで転写材２を挟持搬送することにより、転写材２に中間転写体９上のカラー可視画像を同時に多重転写する。中間転写体９の外周部には、中間転写体９の回転方向に関する位置を検知するためのＴＯＰセンサ９ａ及びＲＳセンサ９ｂと、中間転写体９に転写されたトナー像の濃度を検知するための濃度センサ９ｃが配置されている。
【００６６】
転写ローラ１０は、感光ドラム１５に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。転写ローラ１０は、図４に実線で示すように中間転写体９上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体９上に４色のカラー可視画像が形成された後は、このカラー可視画像を転写材２に転写するタイミングに合わせて、カム部材（不図示）により転写ローラ１０を図示点線で示す上方に位置させる。これにより、転写ローラ１０は、転写材２を介して中間転写体９に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体９上のカラー可視画像が転写材２に転写される。
【００６７】
定着部２５は、転写が完了した転写材２を下記の両ローラ間を搬送させながら、転写材２に転写されたカラー可視画像を定着させるものであり、転写材２を加熱する定着ローラ２６と、転写材２を定着ローラ２６に圧接させるための加圧ローラ２７とを備えている。定着ローラ２６と加圧ローラ２７は、中空状に形成されており、内部にそれぞれヒータ２８、２９が内蔵されている。即ち、カラー可視画像を保持した転写材２は、定着ローラ２６と加圧ローラ２７とにより搬送されると共に、熱及び圧力が加えられることにより、トナーが表面に定着される。可視画像定着後の転写材２は、その後、排紙ローラ３４、３５、３６によって排紙部３７へ排出され、画像形成動作が終了する。
【００６８】
クリーニング部は、感光ドラム１５上及び中間転写体９上に残ったトナーをクリーニングするものであり、感光ドラム１５上に形成されたトナーによる可視画像を中間転写体９に転写した後の廃トナー、或いは、中間転写体９上に作成された４色のカラー可視画像を転写材２に転写した後の廃トナーは、クリーナ容器１４に蓄えられる。
【００６９】
画像が印刷される転写材（記録用紙）２は、給紙トレイ１から給紙ローラ３により取り出され、中間転写体９と転写ローラ１０との間に挟まれるようにして搬送されることで、カラートナー画像が記録され、定着部２５を通過することで、トナー像が定着される。片面印刷の場合には、案内部材３８が上方の排紙部に転写材２を導くように搬送経路を形成するが、両面印刷の場合には、案内部材３８が下方の両面ユニットに転写材２を導くように搬送経路を形成する。
【００７０】
両面ユニットに導かれた転写材２は、搬送ローラ４０により給紙トレイ１の下部（二点鎖線で示す搬送経路）に一旦送り込まれた後に逆方向に搬送され、両面トレイ３９に送られる。両面トレイ３９上では、転写材２は給紙トレイ１に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で転写材２に再びトナー像の転写、定着を再度行うことで、両面印刷を行うことができる。
【００７１】
次に、上記の如く構成された第１の実施の形態に係る印刷システムのホストコンピュータ３０００における各処理について図１乃至図３５を参照しながら詳細に説明する。
【００７２】
＜ページ単位保存処理＞
図５は上記図３のホストコンピュータ３０００のスプーラ３０２における、スプールファイル３０３の生成に関するページ単位保存処理を示すフローチャートである。先ず、ステップＳ５０１では、スプーラ３０２は、アプリケーション２０１からグラフィックエンジン２０２を介して印刷要求を受け付ける。アプリケーション２０１においては、図９に示すような印刷設定を入力するための印刷設定入力ダイアログがＣＲＴ１０に表示され、この印刷設定入力ダイアログから入力された印刷設定がプリンタドライバ２０３よりスプーラ３０３に渡される。図９に示す印刷設定入力ダイアログにおいては、８０１で示すような１物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【００７３】
ステップＳ５０２では、スプーラ３０２は、上記受け付けた印刷要求がジョブ開始要求であるかどうかを判定する。もし、ステップＳ５０２で上記受け付けた印刷要求がジョブ開始要求であると判断した場合には、ステップＳ５０３に進み、スプーラ３０２は、中間データを一時的に保存するためのスプールファイル３０３を作成する。続いてステップＳ５０４では、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、続くステップＳ５０５で、スプーラ３０２のページ数カウンタを１に初期化する。ここで、スプールファイルマネージャ３０４においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、記憶する。
【００７４】
一方、ステップＳ５０２で上記受け付けた印刷要求がジョブ開始要求ではなかったと判断した場合には、ステップＳ５０６に進む。ステップＳ５０６では、スプーラ３０２は、上記受け付けた印刷要求がジョブ終了要求かどうかの判別を行う。ステップＳ５０６で上記受け付けた印刷要求がジョブ終了要求でないと判断した場合には、ステップＳ５０７に進み、スプーラ３０２は、上記受け付けた印刷要求が改ページかどうかの判別を行う。もしも、ステップＳ５０７で改ページであると判断した場合には、ステップＳ５０８に進み、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。そして、スプーラ３０２は、ページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【００７５】
一方、ステップＳ５０７で上記受け付けた印刷要求が改ページではないと判断した場合には、ステップＳ５０９に進み、スプーラ３０２は、ページ描画ファイルへの中間コードの書き出しの準備を行う。次に、ステップＳ５１０では、印刷要求をスプールファイル３０３へ格納するため、スプーラ３０２は、印刷要求のＤＤＩ関数の中間コードへの変換処理を行う。ステップＳ５１１では、スプーラ３０２は、ステップＳ５１０において格納可能な形に変換された印刷要求（中間コード）をスプールファイル３０３のページ描画ファイルへ書き込む。その後、ステップＳ５０１に戻り、スプーラ３０２は、再びアプリケーション２０１からの印刷要求を受け付ける。
【００７６】
スプーラ３０２は、この一連のステップＳ５０１からステップＳ５１１までの処理を、アプリケーション２０１よりジョブ終了要求（End Doc）を受け取るまで続ける。また、スプーラ３０２は、同時にプリンタドライバ２０３からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル３０３に格納する。一方、ステップＳ５０６でアプリケーション２０１からの印刷要求がジョブ終了であると判断した場合には、アプリケーション２０１からの印刷要求は全て終了であるので、ステップＳ５１２に進み、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、本処理を終了する。
【００７７】
＜印刷制御処理＞
図６・図７は上記図３のホストコンピュータ３０００のスプールファイルマネージャ３０４における、スプールファイル３０３生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細を示すフローチャートである。ステップＳ６０１では、スプールファイルマネージャ３０４は、スプーラ３０２或いはデスプーラ３０５からの印刷処理の進捗通知を受け付ける。ステップＳ６０２では、スプールファイルマネージャ３０４は、進捗通知が上記図５のステップＳ５０４において通知されるスプーラ３０２からの印刷開始通知であるかどうかを判定する。ステップＳ６０２でスプーラ３０２からの印刷開始通知であると判断した場合は、ステップＳ６０３へ進み、スプールファイルマネージャ３０４は、印刷の加工設定をスプールファイル３０３から読み込み、ジョブの管理を開始する。
【００７８】
一方、ステップＳ６０２でスプーラ３０２からの印刷開始通知でないと判断した場合は、ステップＳ６０４へ進み、スプールファイルマネージャ３０４は、進捗通知が上記図５のステップＳ５０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知であるかどうかを判定する。ステップＳ６０４でスプーラ３０２からの１論理ページの印刷終了通知であると判断した場合は、ステップＳ６０５へ進み、スプールファイルマネージャ３０４は、この論理ページに対する論理ページ情報を格納する。そして、続くステップＳ６０６では、スプールファイルマネージャ３０４は、この時点でスプールが終了したｎ論理ページに対して、１物理ページの印刷が開始できるかどうかを判定する。
【００７９】
ステップＳ６０６で１物理ページの印刷が開始可能であると判断した場合は、ステップＳ６０７へ進み、スプールファイルマネージャ３０４は、印刷する１物理ページに対して割り付けられる論理数から物理ページ番号を決定する。物理ページの計算については、例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは第４論理ページがスプールされた時点で印刷可能となり、第１物理ページとなる。続いて、第２物理ページは第８論理ページがスプールされた時点で印刷可能となる。つまり、物理ページ内に配置する論理ページに対して、スプーラ３０２が全てスプール終了している場合に印刷可能となる。また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、上記図５のステップＳ５１２におけるスプール終了通知によって１物理ページに配置する論理ページが決定可能である。
【００８０】
そして、ステップＳ６０８では、スプールファイルマネージャ３０４は、図１１に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号とその物理ページ番号などの情報を、ジョブ出力用設定ファイル（物理ページ情報を含むファイル）に保存し、物理ページ情報が１物理ページ分追加されたことをデスプーラ３０５に通知する。その後、ステップＳ６０１に戻り、次の通知を待つ。本実施形態においては、印刷データ１ページ、即ち、１物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【００８１】
一方、ステップＳ６０４において進捗通知がスプーラ３０２からの１論理ページの印刷終了通知でなかったと判断した場合は、ステップＳ６０９へ進み、スプールファイルマネージャ３０４は、上記図５のステップＳ５１２において通知されるスプーラ３０２からのジョブ終了通知であるかどうかを判定する。ステップＳ６０９でジョブ終了通知であると判断した場合は、上記ステップＳ６０６へ進む。一方、ステップＳ６０９でジョブ終了通知でないと判断した場合は、ステップＳ６１０へ進み、スプールファイルマネージャ３０４は、上記受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知であるかどうかを判定する。
【００８２】
ステップＳ６１０で上記受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知であると判断した場合は、ステップＳ６１１へ進み、スプールファイルマネージャ３０４は、加工設定の印刷が全て終了したかどうかを判定する。ステップＳ６１１で加工設定の印刷が全て終了したと判断した場合は、ステップＳ６１２へ進み、スプールファイルマネージャ３０４は、デスプーラ３０５に印刷終了の通知を行う。一方、ステップＳ６１１で加工設定に対する印刷がまだ終了していないと判断した場合は、上記ステップＳ６０６へ進む。本実施形態におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数を想定している。
【００８３】
また、上記ステップＳ６０８では、１物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等の高速な媒体を使用し、１物理ページ単位で次々と上書きすることで速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や、全ページのスプール終了後からデスプールが開始されるような場合には、上記ステップＳ６０８で１物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【００８４】
ステップＳ６１０で上記受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知でないと判断した場合は、ステップＳ６１３へ進み、スプールファイルマネージャ３０４は、上記受け付けた通知がデスプーラ３０５からの印刷終了通知かどうかを判定する。ステップＳ６１３で上記受け付けた通知がデスプーラ３０５からの印刷終了通知であると判断した場合は、ステップＳ６１４へ進み、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイルの削除を行い本処理を終了する。ただし、ステップＳ６１３で上記受け付けた通知がデスプーラ３０５からの印刷終了通知でなかったと判断した場合は、ステップＳ６１５へ進み、その他のエラー処理を行い、上記ステップＳ６０１へ戻り次の通知を待つ。
【００８５】
＜印刷データ生成処理＞
図８は上記図３のホストコンピュータ３０００のデスプーラ３０５における、印刷データの生成プロセスの詳細を示すフローチャートである。デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報（ページ描画ファイル及びジョブ設定ファイル）を読み出して印刷データを生成する。生成された印刷データのプリンタ１５００への転送方法については上記図３で説明した通りである。印刷データの生成では、先ず、ステップＳ７０１において、上述のスプールファイルマネージャ３０４からの通知を入力する。続くステップＳ７０２では、デスプーラ３０５は、スプールファイルマネージャ３０４から入力された通知がジョブの終了通知かどうかを判定する。
【００８６】
ステップＳ７０２でジョブ終了通知であると判断した場合は、ステップＳ７０３へ進み、デスプーラ３０５は、終了フラグを立て、ステップＳ７０５へ進む。一方、ステップＳ７０２でジョブ終了通知でないと判断した場合は、ステップＳ７０４に進み、デスプーラ３０５は、上記図６のステップＳ６０８における１物理ページの印刷開始要求が通知されたかどうかを判定する。ステップＳ７０４で１物理ページの印刷開始要求通知でないと判断した場合は、ステップＳ７１０へ進み、その他のエラー処理を行い、ステップＳ７０１へ戻り次の通知を待つ。
【００８７】
一方、ステップＳ７０４で１物理ページの印刷開始要求通知であると判断した場合は、ステップＳ７０５へ進み、デスプーラ３０５は、ステップＳ７０４で通知を受けた印刷処理可能な物理ページのＩＤを保存する。続くステップＳ７０６では、デスプーラ３０５は、ステップＳ７０５で保存した物理ページＩＤの全ての物理ページに関して印刷処理が済んでいるかどうかを判定する。ステップＳ７０６で全物理ページの印刷処理が済んでいると判断した場合は、ステップＳ７０７へ進み、デスプーラ３０５は、上記ステップＳ７０３で終了フラグが立てられているのかどうかを判定する。
【００８８】
ステップＳ７０７で上記終了フラグが立っていると判断した場合は、デスプーラ３０５は、ジョブの印刷が終了したとみなし、デスプーラ３０５の処理が終了した旨をスプールファイルマネージャ３０４に通知し、本処理を終了する。ステップＳ７０７で上記終了フラグが立っていないと判断した場合は、ステップＳ７０１へ戻り次の通知を待つ。
【００８９】
一方、ステップＳ７０６で印刷可能な物理ページが残っていると判断した場合には、ステップＳ７０８へ進み、デスプーラ３０５は、保存された物理ページＩＤから未処理の物理ページＩＤを順に読み出し、読み出した物理ページＩＤに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理においては、スプールファイル３０３に格納された印刷要求命令をデスプーラ３０５においてグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、転送する。例えば、複数論理ページを１物理ページにレイアウトするような加工設定（以下Ｎページ印刷）については、このステップＳ７０８で縮小配置を考慮にいれながら変換する。
【００９０】
必要な印刷処理を終えたならば、続くステップＳ７０９において、デスプーラ３０５は、１物理ページの印刷データ生成終了の通知をスプールファイルマネージャ３０４に対して行う。そして、再びステップＳ７０６へ戻り、ステップＳ７０５で保存しておいた印刷可能な物理ページＩＤ全てについて印刷処理を行うまで繰り返す。
【００９１】
以上が、ディスパッチャ３０１、スプーラ３０２、スプールファイルマネージャ３０４、デスプーラ３０５を用いた印刷処理の流れである。上記のように処理することにより、スプーラ３０２が中間コードを生成してスプールファイル３０３に格納するタイミングでアプリケーション２０１が印刷処理から開放されるので、プリンタドライバ２０３に直接出力するよりも短時間で済む。また、スプールファイル３０３にプリンタドライバ２０３の印刷設定を踏まえた中間ファイル（ページ描画ファイル、ジョブ設定ファイル）として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
【００９２】
ここで、スプーラ３０２を用いた印刷処理において、デスプーラ３０５によりグラフィックエンジン２０２への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【００９３】
＜ジョブ出力用設定ファイル＞
図１１は上記図６のステップＳ６０８においてスプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す図である。フィールド１００１は、ジョブを識別するためのＩＤであり、物理ページを構成する情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド１００２は、ジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン２０２に対してジョブの印刷を開始するために必要な構造体、Ｎページ印刷の指定、ページ枠などの追加描画の指定、部数、ステイプルなどのフィニッシング指定など、１つのジョブに対して１つしか設定できない情報が含まれている。フィールド１００２のジョブ設定情報には、ジョブに対する機能に応じて必要なだけ情報が保存される。
【００９４】
フィールド１００３は、ジョブの物理ページ数であり、本フィールド１００３以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールド１００３は無くても動作可能である。これ以降、フィールド１００４から最後までフィールド１００７の数だけ物理ページ情報が格納される。物理ページ情報については図１３で説明する。
【００９５】
＜ジョブ設定情報＞
図１２は上記図１１のフィールド１００２に図示されたジョブ設定情報の一例を示す図である。フィールド１１０１は、全物理ページ数である。フィールド１１０２は、全論理ページ数である。フィールド１１０１及びフィールド１１０２は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値となるか、もしくは、印刷が終了するまでスプールファイルマネージャ３０４は印刷可能な物理ページの情報の作成を延期する。
【００９６】
フィールド１１０３は、本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド１１０４は、フィールド１１０３で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド１１０４は、用紙を綴じるステイプル、用紙に穿孔するパンチ、用紙をＺ状に折るＺ折などを示すフィニッシング情報であり、プリンタ本体もしくはプリンタ外部にフィニッシャがある場合に指定される。フィールド１１０６は、付加印刷情報であり、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷（透かし文字印刷）等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
【００９７】
＜物理ページ情報＞
図１３は上記図１１のフィールド１００４に図示された物理ページ情報の一例を示す図である。最初のフィールド１２０１は、物理ページ番号であり、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド１２０２は、物理ページ設定情報であり、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド１２０３は、本物理ページに割り付けられる論理ページ数であり、１物理ページに４ページを割り付ける場合には４もしくは４ページ印刷を示すＩＤが保存される。
【００９８】
フィールド１２０４以降は、フィールド１２０３で指定された数だけ論理ページの情報が保存される。アプリケーション２０１からプリンタ１５００に対し印刷を実行させた際のプリンタ１５００で印刷されたページ数によっては、フィールド１２０３で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
【００９９】
＜物理ページ設定情報＞
図１４は上記図１３のフィールド１２０２で示された物理ページ設定情報の例を示す図である。フィールド１３０１は、物理ページ上への論理ページの配置順であり、Ｎページ印刷で、物理ページ上に論理ページを配置する順番（左上から横へ、左上から下へ等）の指定が保存されている。システムによっては、配置順ではなく、フィールド１２０４以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することで、フィールド１３０１の設定を代用する場合もある。フィールド１３０２は、両面印刷の表・裏の情報であり、例えば綴じ代を表裏でそろえる際に使用される。
【０１００】
フィールド１３０３は、カラーページかモノクロページかの指定を示すものであり、プリンタがモノクロモードとカラーモードを持つ場合、カラーページとモノクロページが混在する文書で、カラーページをカラーモードで、モノクロページをモノクロモードで印刷したい場合などに使用される値である。この情報を持つことにより、オートカラーモードとして、ページ単位にカラープリンタで処理を変更することが可能となる。つまり、カラーページは、中間転写体（中間転写ドラム、中間転写ベルト）もしくは転写体（転写ドラム、転写ベルト）がデバイスカラーの数分、ＹＭＣＫなら４回転し、モノクロページは、ブラックだけ１回転することにより転写制御することを可能とする。フィールド１３０４は、付加印刷情報であり、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
【０１０１】
＜論理ページ情報＞
図１５は上記図１３のフィールド１２０４で示された論理ページ情報の一例を示す図である。フィールド１４０１は、論理ページのＩＤであり、このＩＤを利用して、スプールファイル３０３から論理ページに対応するページ描画ファイルの中間コードを参照する。このＩＤを利用して論理ページの中間コードへアクセス可能であればよく、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド１４０２は、論理ページ番号であり、論理ページ番号を付加情報として印刷する場合や、論理ページＩＤの補助情報に使用される。
【０１０２】
フィールド１４０３は、フォーマット情報であり、フォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存することも可能である。逆に、論理ページ単位で設定を切りかえる事や論理ページ単位での属性情報が不要であるようなシステムでは、フィールド１４０３は不要である。
【０１０３】
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁（片面印刷、両面印刷、製本印刷）、印刷レイアウト（Ｎｕｐ印刷、ポスター印刷）、付加情報（ウォーターマーク、日付、ユーザ名の付加）、部数、用紙サイズ情報をジョブとして有しており、物理ページ毎に、論理ページの配置順を示す情報、両面印刷の表面か裏面かの区別を示す情報、カラーモードを示す情報等から構成されている。
【０１０４】
更に、上記図３では、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ３０７を配設した例を示している。本実施形態では、ジョブの設定内容に関しては、単体ジョブはジョブ設定ファイルに含まれ、また結合ジョブは図１１に示したジョブ出力用設定ファイル中に含まれており、中間コードを保存しているページ描画ファイル３０３とは独立しているため、ジョブ出力用設定ファイルを作り変えることで、ジョブの設定変更が可能である。設定変更エディタ３０７は、単独で、或いはスプールファイルマネージャ３０４と連携して、ジョブ出力用設定ファイルを作り変えることで、或いは一部を書き換えることで、ジョブの設定変更機能を実現している。
【０１０５】
＜ジョブ設定変更処理＞
図１６は上記図３のホストコンピュータ３０００の設定変更エディタ３０７におけるジョブ設定変更処理プロセスの詳細を示すフローチャートである。先ず、ステップＳ１５０１では、設定変更エディタ３０７は、ジョブ設定ファイルもしくはジョブ出力用設定ファイルを読み込む。ジョブ出力用設定ファイルは、プレビューア３０５、デスプーラ３０３が読み込むものと同じファイルである。次に、ステップＳ１５０２へ進み、設定変更エディタ３０７は、読み込んだ結果をＣＲＴ１０によりユーザに表示する。ステップＳ１５０３では、図１９に示したようなユーザインタフェイス上でユーザとの対話を行い、上述したメニューの指定等により設定内容を変更する。このステップＳ１５０３の設定内容変更形式は、対話形式でなく、ファイルなどに書きこまれた設定変更の内容に応じて変更するバッチ形式でもよい。
【０１０６】
次に、ステップＳ１５０４へ進み、設定変更エディタ３０７は、ステップＳ１５０１で最初に読み込んだ内容と、現在指定されている設定内容に変更があったかどうかの判定を行う。ステップＳ１５０４で設定内容に変更があったと判断した場合は、ステップＳ１５０５へ進み、設定変更エディタ３０７は、新規のジョブ出力用設定ファイルを生成し、変更があったことをスプールファイルマネージャ３０４に通知して本処理を終了する。ステップＳ１５０４で設定内容に変更がないと判断した場合は、変更がなかったことをスプールファイルマネージャ３０４に通知して本処理を終了する。
【０１０７】
このように新規のジョブ出力用設定ファイルを生成するが、図１９のユーザインタフェイス画面において「ＯＫ」ボタンが選択されることにより、新規のジョブ出力用設定ファイルが有効となり、古いジョブ出力用設定ファイルは削除される。また、ジョブ出力用設定ファイルからの変更ではなく、単体ジョブのジョブ設定ファイルの場合は、削除せずに保存しておく。また、図１９の画面で「初期状態に戻す」ボタンが選択された場合は、新規のジョブ出力用設定ファイルを削除し、古いジョブ出力用設定ファイルが有効となり、表示に反映させる。
【０１０８】
本実施形態では、設定変更エディタ３０７を別モジュールとして説明しているが、単にスプールファイルマネージャ３０４のユーザインタフェイスの一部であってもよい。設定変更エディタ３０７で実際に変更内容をジョブ出力用設定ファイルに書きこ先ずに、設定変更の内容のみをスプールファイルマネージャ３０４へと通知するだけで、実際のジョブ出力用設定ファイルの変更はスプールファイルマネージャ３０４側で行う実装形式でもよい。
【０１０９】
上記図３では、更に、複数の印刷ジョブを結合し、一つの印刷ジョブ（結合ジョブ）として印刷する拡張システムが図示されているが、結合ジョブをデスプール・プレビューするための拡張について説明する。通常、中間形式のスプールファイル３０３はジョブ単位で作成される。単独ジョブの場合は、処理対象ジョブファイル中の各論理ページの中間コードを順に読み出して処理を行うので、図１５のフィールド１４０１の論理ページＩＤは、各論理ページがファイルのどこに位置しているのかを示す相対オフセット或いは絶対オフセットで実現可能である。結合ジョブの場合は、図１５のフィールド１４０１のジョブＩＤから、スプールファイルと、そのジョブに属するページ情報を特定する必要がある。
【０１１０】
本実施形態では、スプールファイルを識別するＩＤを論理ページＩＤに付加することで、スプールファイルを特定する方式とする。この場合、主な変更点は図１５のフィールド１４０１のみで済む。スプールファイルが識別できれば、ページ部分の読み込みは単独ジョブの処理と同じロジックで処理することが可能であるからである。また、スプールファイルが各論理ページ毎に別ファイルの形で保存されている場合は、論理ページのファイル名をそのまま図１５のフィールド１４０１の論理ページＩＤとする実装形式もある。
【０１１１】
＜製本印刷とその実現結果＞
図２１は本実施形態における製本印刷とその実現結果について説明した図である。製本印刷とは、紙の両面に出力された印刷結果を２つ折りにした場合にページ順序が合致するように印刷するものである。製本印刷には、以下に述べる２つの方法がある。
（１）印刷される全ページを製本の枚数単位とする場合：この場合には図２１の印刷物４１のような出力を得て、それをまとめて２つ折りにして本とする。
（２）任意のページを製本の枚数単位とする場合：この場合には図２１の印刷物４２のような出力を得て、それを製本の枚数単位ごとに２つ折りにし、更にそれを並べて本とする。ここでいう製本の枚数単位とは、出力された用紙を何枚単位でまとめて２つ折りにして製本印刷をすればよいかを表す単位である。
【０１１２】
また、図２２に示すように、製本印刷によって出力される製本の体裁には以下の場合がある。
（１）左から昇順にページ配置（左開き）
（２）右から昇順にページ配置（右開き）
また、印刷されるページが横向きの場合も、ページの回転を行うだけでページの順序は変わらない。
【０１１３】
製本印刷に関するこれらの設定に関しては、ホストコンピュータ３０００のＣＲＴ１０に表示される例えば図３０の画面上のボックス３１０６などから設定することが可能である。図３０の詳細は後述する。
【０１１４】
＜製本処理における割り付ける論理ページの計算方法＞
以下、製本処理における割り付ける論理ページの計算方法について、［Ｉ］印刷するページ全てをひとまとめにして製本印刷する場合、［II］指定された枚数単位をひとまとめにして製本印刷する場合、［III］最終ブロックの用紙を節約しながら製本印刷する場合に分けて詳細に説明する。
［Ｉ］印刷するページ全てをひとまとめにして製本印刷する場合の処理（図２  ３）
ステップＳ２６０１において、スプールファイルマネージャ３０４は、ユーザが製本印刷の設定をしているかどうかを判定する。ステップＳ２６０１で製本印刷の設定をしていると判断した場合は、ステップＳ２６０２へ進み、ステップＳ２６０１で製本印刷の設定をしていないと判断した場合は、通常の印刷を行うとしてステップＳ２６０７へ進む。ステップＳ２６０２では、製本印刷の枚数単位に関する設定と印刷体裁に関する設定を取得する。
【０１１５】
印刷枚数単位の設定には以下の選択肢がある。
（ｉ）印刷するページ全てをひとまとめにして製本印刷
（ii）指定された枚数単位をひとまとめにして製本印刷
また、印刷体裁の設定には以下の選択肢がある。
（ｉ）左開き
（ii）右開き
ステップＳ２６０３では、製本印刷の枚数単位に全ページが選択されているかどうかを判定する。ステップＳ２６０３で製本印刷の枚数単位に全ページが選択されていると判断した場合は、ステップＳ２６０４へ進み、ステップＳ２６０３で製本印刷の枚数単位に全ページが選択されていないと判断した場合は、ステップＳ２６０５へ進む。ステップＳ２６０４では、製本の枚数単位を印刷ページ全体に設定し、プリンタ１５００により製本印刷を行う。この処理の詳細については後述する。
【０１１６】
ステップＳ２６０５では、製本印刷の枚数単位に特定の枚数が選択されているかどうかを判定する。ステップＳ２６０５で製本印刷の枚数単位に特定の枚数が選択されていると判断した場合は、ステップＳ２６０６へ進み、ステップＳ２６０５で製本印刷の枚数単位に特定の枚数が選択されていないと判断した場合は、ステップＳ２６０７へ進む。ステップＳ２６０６では、指定された枚数単位でプリンタ１５００により製本印刷を行う。この処理の詳細については後述する。ステップＳ２６０７では、通常の印刷処理を行う。なお、製本印刷の設定や枚数単位の設定は、ホストコンピュータ３０００からのオペレータ入力などで行われる。
【０１１７】
次に、上記図２３におけるステップＳ２６０４に関する処理を図２４・図２５を用いて詳しく説明する。
【０１１８】
ステップＳ２７０１において、スプールファイルマネージャ３０４は、ユーザの設定に基づき印刷体裁（印刷物を左開きとするか右開きとするか）を取得する。ステップＳ２７０２では、印刷ページ数を取得する。この印刷ページは、アプリケーション２０１からの印刷対象データが全てスプール終了した時点で取得可能である。ここで印刷対象データとは、アプリケーションが生成した単位のデータであり、印刷命令とも呼ばれる。また、印刷データとは、印刷対象データを所望とされるレイアウトに配置して得られるデータのことであり、プリンタに送信されるべき印刷ジョブそのもの、または、デスプーラが吐き出す描画関数にいずれかに相当する。ステップＳ２７０３では、製本印刷の印刷進捗を示す印刷進捗カウンタを０にセットする。この印刷進捗カウンタが偶数のときに印刷されるページは、折り込まれたときに内側になるように印刷され、印刷進捗カウンタが奇数のときに印刷されるページは、折り込まれたときに外側になるように印刷される。
【０１１９】
ステップＳ２７０４では、製本印刷に使用する用紙の枚数を以下の式を用いて計算する。
【０１２０】
用紙枚数＝ページ数÷４ （小数点以下切り上げ）
ステップＳ２７０５では、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページに相当する２ページ分を以下の式を用いて計算する。この２ページを基に以降印刷されるページを算出する。
【０１２１】
基本ページ１＝用紙枚数×２
基本ページ２＝用紙枚数×２−１
例えばアプリケーション２０１から５０ページの印刷対象データが送られてきた場合は、製本印刷の結果使用する用紙枚数は５０÷４＝１３枚となり、２つ折りにした時に折り込まれる用紙に印刷される基本ページは、基本ページ１＝１３×２＝２６ページと、基本ページ２＝１３×２−１＝２５ページとなる。図２１の例では、印刷物４１の最も内側に折り込まれる面である第１１ページと第１０ページとがこれらに相当する。
【０１２２】
次に、ステップＳ２７０６では、製本印刷処理が終了したかどうかを判定する。ステップＳ２７０６で製本印刷終了が終了したと判断した場合は、本処理を終了し、ステップＳ２７０６で製本印刷終了が終了していないと判断した場合は、ステップＳ２７０７へ進む。ステップＳ２７０７では、印刷要求を行う２ページを以下の式を用いて計算する。
【０１２３】
印刷ページ１＝基本ページ１＋印刷進捗カウンタ
印刷ページ２＝基本ページ２−印刷進捗カウンタ
例えば上記の５０ページ製本印刷の場合は、２回目の印刷面に含まれるのは、２６＋１＝２７ページと２５−１＝２４ページとなる。以降、印刷進捗カウンタの値が増加するたびに２８ページと２３ページ、２９ページと２２ページ・・・となっていく。また、始めは印刷進捗カウンタの値が０なので、基本ページが最初の印刷ページとなる。
【０１２４】
次に、ステップＳ２７０８では、上記計算された印刷ページ１がアプリケーション２０１からの印刷ページ数より大きいかどうかを判定する。ステップＳ２７０８で印刷ページ１がアプリケーション２０１からの印刷ページ数より大きくなったと判断した場合は、余白扱いとなり、ステップＳ２７０９へ進む。ステップＳ２７０８で印刷ページ１がアプリケーション２０１からの印刷ページ数より大きくないと判断した場合は、ステップＳ２７１０へスキップする。ステップＳ２７０９では、印刷ページ１は余白が配置されるので、例えば余白を表すページ番号０を代入する。
【０１２５】
次に、ステップＳ２７１０及びステップＳ２７１１では、印刷体裁（印刷物を左開きとするか右開きとするか）及び印刷進捗カウンタ（用紙を折り込んだ際に内側にくるか外側にくるか）から計算された２ページの配置を決定する。具体的には、用紙を折り込んだ際の内側／外側の判定は、それまでに出された印刷要求回数が偶数の場合は内側となり、印刷要求回数が奇数の場合は外側となる。ステップＳ２７１０及びステップＳ２７１１による判定の結果、次のように処理が進む。左開きで折り込み内側になるページの場合は、ステップＳ２７１２へ進む。左開きで折り込み外側になるページの場合は、ステップＳ２７１３へ進む。右開きで折り込み外側になるページの場合は、ステップＳ２７１２へ進む。右開きで折り込み内側になるページの場合は、ステップＳ２７１３へ進む。
【０１２６】
ステップＳ２７１２では、印刷ページ１を左側に配置し、印刷ページ２を右側に配置する。ステップＳ２７１３では、印刷ページ１を右側に配置し、印刷ページ２を左側に配置する。上記ステップＳ２７１０から上記ステップＳ２７１３の処理は、例えば、２５ページの裏面には２４ページを印刷し、２６ページの裏面には２７ページを印刷するための処理である。ステップＳ２７１４では、印刷進捗カウンタを１増加させる。ステップＳ２７１５では、デスプーラ３０５に対して次の印刷要求が可能かどうかを判定する。ステップＳ２７１５で次の印刷要求が可能と判断した場合は、ステップＳ２７１６へ進み、ステップＳ２７１５で次の印刷要求が不可能と判断した場合は、次の印刷要求が可能になるまで待つ。
【０１２７】
次に、ステップＳ２７１６では、配置完了した印刷ページに対して記録用紙１面分の印刷要求を行う。ステップＳ２７１７では、次のページの出力要求が可能かどうかを判定する。ステップＳ２７１７で次のページの出力要求が可能と判断した場合は、ステップＳ２７０６へ戻り、ステップＳ２７１７で次のページの出力要求が可能でないと判断した場合は、可能になるまで待つ。
【０１２８】
以上のようにしてデスプーラ３０５からＯＳの描画手段であるグラフィックエンジンに出力された印刷命令（ＧＤＩ関数）は、グラフィックエンジンによりＤＤＩ関数に変換され、プリンタドライバに渡され、プリンタドライバにより印刷データ（印刷ジョブ）が生成される。そしてこの印刷ジョブがプリントスプーラを介してプリンタに送信され、プリンタ側で印刷出力された印刷物は、重ねた状態にして２つ折りにするだけで製本することができる。
［II］指定された枚数単位をひとまとめにして製本印刷する場合の処理（図２  ２６、図２７）
以下に上記図２３におけるステップＳ２６０６に関する処理を図２６・図２７を用いて詳細に説明する。ここでいう枚数単位とは、何枚毎に折り込んで製本印刷を行うかを表している。この単位をブロックと称する。例えば、アプリケーション２０１からの４０ページの印刷対象データを２枚単位で製本印刷する場合、２つ折りされた２枚の用紙を１つのブロックとして、１つのブロックには８ページ分のデータが配置されることになる。よって、印刷対象データ全体を５ブロックに分けて製本印刷することになる。
【０１２９】
ステップＳ２８０１において、スプールファイルマネージャ３０４は、ユーザの設定に基づき印刷体裁及び枚数単位を取得する。ステップＳ２８０２では、印刷終了ページを０にセットする。ステップＳ２８０３では、製本印刷処理が終了かどうかを判定する。ステップＳ２８０３で製本印刷処理が終了と判断した場合は、本処理を終了し、ステップＳ２８０３で製本印刷処理が終了していないと判断した場合は、ステップＳ２８０４へ進む。ステップＳ２８０４では、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）を取得する。ステップＳ２８０４で求められる製本印刷可能判定ページ数は、ブロック内の最大ページ数となる。
【０１３０】
初めのブロックにおける製本印刷可能判定ページ数は以下の式を用いて求められる。
【０１３１】
製本印刷可能判定ページ＝枚数単位×４
第２ブロック以降における製本印刷可能判定ページは以下の式を用いて求められる。
【０１３２】
製本印刷可能判定ページ＝前のブロックの製本印刷可能判定ページ＋枚数単  位×４
例えば、４０ページ２枚単位の製本印刷の場合、最初のブロックにおける製本印刷可能判定ページは２×４＝８ページとなり、次のブロックは８＋２×４＝１６ページとなる。以降２４ページ、３２ページ、４０ページとなっていく。
【０１３３】
次に、ステップＳ２８０５では、スプーラ３０３においてスプールが終了しているページ数を取得する。ステップＳ２８０６では、製本印刷処理可能になる印刷ページ（製本印刷可能判定ページ）までスプールが終了しているか、或いは全ページのスプールが終了しているかどうかを判定する。ステップＳ２８０６で製本印刷処理可能と判断した場合は、ステップＳ２８０７へ進み、ステップＳ２８０６で製本印刷終了可能でないと判断した場合は、ステップＳ２８０５へ戻る。ステップＳ２８０７では、印刷進捗カウンタを０にセットする。ステップＳ２８０８では、２つ折りにしたとき一番内側になる用紙の内側に印刷されるページ２ページ分を以下の式を用いて計算する。この２ページを元に以降印刷されるページを算出する。
【０１３４】
基本ページ１＝製本印刷可能判定ページ−枚数単位×２+１
基本ページ２＝製本印刷可能判定ページ−枚数単位×２
次に、ステップＳ２８０９では、現在のブロックの印刷要求が終了したかどうかを判定する。ステップＳ２８０９で現在のブロックの印刷要求が終了したと判断した場合は、ステップＳ２８０３へ戻り、ステップＳ２８０９で現在のブロックの印刷要求が終了していないと判断した場合は、ステップＳ２８１０へ進む。具体的には、印刷進捗カウンタが枚数単位に等しくなった場合に印刷要求が終了したと判定する。ステップＳ２８１０では、印刷要求を行う２ページを以下の式を用いて計算する。
【０１３５】
印刷ページ１＝基本ページ１＋印刷進捗カウンタ
印刷ページ２＝基本ページ２−印刷進捗カウンタ
始めは印刷進捗カウンタが０なので基本ページが最初の印刷ページとなる。
【０１３６】
次に、ステップＳ２８１１では、上記計算された印刷ページがアプリケーション２０１からの印刷ページ数より大きいかどうかを判定する。ステップＳ２８１１で上記計算された印刷ページがアプリケーション２０１からの印刷ページ数より大きくなったと判断した場合は、余白扱いとなり、ステップＳ２８１２へ進む。ステップＳ２８１１で上記計算された印刷ページがアプリケーション２０１からの印刷ページ数より大きくないと判断した場合は、ステップＳ２８１３へスキップする。ステップＳ２８１２では、印刷ページは余白が配置されるので、例えば余白を表すページ番号０を代入する。
【０１３７】
次に、ステップＳ２８１３及びステップＳ２８１４では、印刷体裁（印刷物を左開きとするか右開きとするか）及び印刷進捗カウンタ（用紙を折り込んだ際に内側にくるか外側にくるか）から計算された２ページの配置を決定する。具体的には、用紙を折り込んだ際の内側／外側の判定は、印刷要求回数が偶数の場合は内側となり、印刷要求回数が奇数の場合は外側となる。ステップＳ２８１３及びステップＳ２８１４による判定の結果、次のように処理が進む。左開きで折り込み内側になるページの場合は、ステップＳ２８１５へ進む。左開きで折り込み外側になるページの場合は、ステップＳ２８１６へ進む。右開きで折り込み外側になるページの場合は、ステップＳ２８１５へ進む。右開きで折り込み内側になるページの場合は、ステップＳ２８１６へ進む。
【０１３８】
ステップＳ２８１５では、印刷ページ１を左側に配置し、印刷ページ２を右側に配置する。ステップＳ２８１６では、印刷ページ１を右側に配置し、印刷ページ２を左側に配置する。ステップＳ２８１７では、印刷進捗カウンタを１増加させる。ステップＳ２８１８では、次の印刷要求が可能かどうかを判定する。ステップＳ２８１８で次の印刷要求が可能と判断した場合は、ステップＳ２８１９へ進み、ステップＳ２８１８で次の印刷要求が不可能と判断した場合は、次の印刷要求が可能になるまで待つ。
【０１３９】
次に、ステップＳ２８１９では、配置完了した印刷ページに対して記録用紙１面分の印刷要求を行う。ステップＳ２８２０では、次のページの出力要求が可能かどうかを判定する。ステップＳ２８２０で次のページの出力要求が可能と判断した場合は、ステップＳ２８０９へ戻り、ステップＳ２８２０で次のページの出力要求が可能でないと判断した場合は、可能になるまで待つ。
【０１４０】
以上の手順により発行された印刷要求に対して、プリンタ１５００により両面印刷を行えば、印刷出力された用紙を所望の枚数単位ごとに２つ折りにして並べるだけで、製本された印刷物を作成することができる。
［III］上記［II］において最終ブロックの用紙を節約しながら製本印刷する  場合の処理（図２８）
また、アプリケーション２０１からの全ページをスプール終了してから任意枚数単位の製本印刷処理を行う場合において、その最終ブロックに印刷されるページ数が少ない場合、最終ブロックに限り指定枚数より少ない枚数単位で製本印刷を行うことによって、使用する用紙を少なくすることが可能である。例えば、残りページ数が３ページに対して枚数単位が２の場合、５ページ分が余白になってしまうが、これを１枚単位に変更した場合、余白は１ページ分ですみ、用紙の枚数が１枚少なくてすむ。
【０１４１】
以降、図２８に基づき最終ブロックの枚数調整処理について詳細に説明する。枚数調整処理は、印刷ページに対して必要以上に大きい枚数単位が指定された場合にも適用される。例えば、アプリケーション２０１からの３０ページの印刷対象データに対して１０枚単位での製本印刷が指定された場合、実際に必要な用紙枚数は８枚なので、枚数単位は１０枚から８枚へ調整される。これはページ全体で製本印刷した場合と同じ出力結果になる。図２８の処理を、上記図２６におけるステップＳ２８０６での判定がＹＥＳとなった場合にステップＳ２８０６とステップＳ２８０７の間において実行することによって、上述の用紙の枚数の削減が達成される。
【０１４２】
ステップＳ２９０１において、スプールファイルマネージャ３０４は、全ページのスプールが終了したかどうかを判定する。ステップＳ２９０１で全ページのスプールが終了したと判断した場合は、ステップＳ２９０２に進み、ステップＳ２９０１で全ページのスプールが終了していないと判断した場合は、本処理を抜ける。ステップＳ２９０２では、残りページ数を以下の式を用いて計算する。
【０１４３】
残りページ＝アプリケーションからの印刷ページ−現在の製本印刷可能判定  ページ
ステップＳ２９０３では、現在設定されている枚数単位におけるブロックに収まるページ数と、残りページ数とを比較して、残りページが少ないかどうかを判定する。ステップＳ２９０３で残りページが少ないと判断した場合は、ステップＳ２９０４へ進み、ステップＳ２９０３で残りページが少なくないと判断した場合は、調整処理は必要ないとして本処理を抜ける。ステップＳ２９０４では、残りページが収まる最も小さい製本の枚数単位を以下の式を用いて求める。
【０１４４】
新しい製本枚数単位＝残りページ÷４（小数点以下切り上げ）
こうして得られた新しい製本枚数単位を用いて、上記図２６・図２７のステップＳ２８０７以降で最後のブロックを印刷すれば、白紙のページはせいぜい１ページで済み、記録用紙を無駄にせず、また、記録面数も減るため、印刷出力に要する時間も短くなる。
【０１４５】
＜本発明を特徴付ける表紙付きの製本印刷＞
図２０は本発明を特徴付ける表紙付きの製本印刷を実現する際の、スプールファイルマネージャ３０４における大まかな処理を示すフローチャートである。図２０のフローチャートを用い本発明の表紙付きの製本印刷を説明する。
【０１４６】
上述したように、一連の印刷処理の中で、スプーラ３０２からロードされたスプールファイルマネージャ３０４はジョブ設定ファイルを読み込み、先ずステップＳ２００１で、製本印刷を行うかどうかの判定処理を行う。該判定処理は、例えば図２９に示すような、プリンタドライバ２０３のユーザインタフェイスにより指定された印刷設定において、製本印刷が指定されているかどうかを判定する処理である。ステップＳ２００１で製本印刷が指定されていないと判断した場合は、本発明の範囲外であるためステップＳ２００３へ進み、別処理を行う。ステップＳ２００１で製本印刷が指定されていると判断した場合は、ステップＳ２００２へ進む。即ち、本例では製本印刷が指定されているとする。
【０１４７】
ステップＳ２００２では、製本表紙印刷（製本印刷における表紙の印刷）を行うかどうかの判定処理を行う。該判定処理も、上記の製本印刷指定と同様に、例えば後述する図３０に示すような、プリンタドライバ２０３のユーザインタフェイスから製本表紙印刷が指定されているかどうかを判定する処理である。ステップＳ２００２で製本表紙印刷が指定されていないと判断した場合は、ステップＳ２００６へ進み、通常の製本印刷処理となり、現状通りの製本の面付けを行う。ステップＳ２００２で製本表紙印刷が指定されていると判断した場合は、ステップＳ２００４へ進む。即ち、本例では製本表紙印刷が指定されているものとする。
【０１４８】
ステップＳ２００４では、表紙の各部分、即ち、「おもて表紙」「おもて表紙見返し」「裏表紙見返し」「裏表紙」の各部に対して印刷される論理ページを読み込む処理を行う。これは、以下に示す図３０のようなプリンタドライバ２０３のユーザインタフェイスから製本表紙指定時に選択することができる。
【０１４９】
図３０は本実施形態における製本表紙印刷を指定するためのＣＲＴ１０上のユーザインタフェイスの一例を示す図である。図中、３１０１は、製本表紙印刷を行うか行わないかを指定するためのチェックボックスである。３１０２は、おもて表紙、おもて表紙見返し、裏表紙見返し、裏表紙に対するページ指定方法を変更するためのチェックボックス群である。この例では、チェックされた場合は、印刷したい論理ページを直接数値入力するとして、数値入力エリア３１０３に属するスピンボックスが有効になる。一方、チェックされない場合は、「最終ページ」、「最終ページ-１」など、直接数値入力を行わないで指定するとして、ドロップダウンコントロール群３１０４に属するドロップダウンコントロールが有効となる。
【０１５０】
なお、数値入力エリア３１０３に属するスピンボックスにおいて指定された値において、アプリケーション２０１が有さない値、例えば、１０ページの文書に対して１１以上の値や０などの値が入力された場合は、該当する表紙部分は空白ページとして扱うこととする。また、ドロップダウンコントロール群３１０４には、３１０５に示すような「空白」「最終ページ」「最終ページ-１」「最終ページ-２」及び「最終ページ-３」を指定可能とする。数値入力を行わない場合も、上記選択項目により、大抵の場合ユーザのページ指定を効率的に行うことが可能である。
【０１５１】
図２０に戻り、次に、ステップＳ２００５では、表紙部分に印刷される論理ページ数の算出処理を行う。これは、表紙部分に印刷すべきページ数Ｍを算出する処理である。１０ページの文書に対して図３０の設定がなされた場合を例に挙げて説明すると、空白部分が１論理ページ分存在するので、Ｍ＝３となる。次に、ステップＳ２００７では、アプリケーション２０１からの印刷対象データの総ページ数がＮページ以上かどうかの判定処理を行う。これは、先に行われた上記ステップＳ２００５における表紙に必要なページ数の算出処理により算出された論理ページ数Ｍと、アプリケーション２０１からの印刷対象データとを比較する処理であり、以下の関係がある。
【０１５２】
Ｎ＝Ｍ＋１
つまり、ステップＳ２００７では、アプリケーション２０１からの論理ページ数が３＋１＝４ページ以上かどうかを判定する。ステップＳ２００７で論理ページ数が４ページ以上であると判断した場合は、本文に印刷すべきページが存在するので、ステップＳ２００８へ進み、表紙への面付け処理を行う。即ち、本例では１０ページ文書であるのでステップＳ２００８の面付け処理へ進むこととなる。ステップＳ２００８の処理は、図３０のユーザインタフェイスによって指定された各表紙部分に該当する指定ページをそれぞれ「おもて表紙」「おもて表紙見返し」「裏表紙見返し」「裏表紙」に面付けする処理である。
【０１５３】
ここでは、「おもて表紙」にアプリケーション２０１から送られる１０ページ文書の１ページ目が、「おもて表紙見返し」に最終ページ、即ち１０ページ文書の１０ページ目が、「裏表紙見返し」に空白ページが、そして「裏表紙」に１０ページ文書の２ページ目が各々割り付けられることとなる。また、ここでは、「おもて表紙見返し」に対して、最終ページを基準にした指定がなされているので、スプール完了まで処理を待つことになる。
【０１５４】
次に、ステップＳ２０１０では、残りのページでの製本面付け処理を行う。該製本面付け処理は、表紙、裏表紙分を除いた、アプリケーション２０１からの印刷対象データを内側の用紙に製本印刷用データとして割り付ける処理である。製本処理の詳細は上述した通りであるが、製本処理に用いる論理ページ番号については、図３３に示すＩＮＤＥＸ-論理ページ対応表のＩＮＤＥＸ番号を用いて行う。そして、各ＩＮＤＥＸ番号に対応する論理ページを実際に描画することにより、印刷体裁の整合性を確保する。ここでは、１０論理ページのうち３論理ページ分が表紙用物理ページに出力されるので、残り７ページに対して上述の割り付け処理が施される。
【０１５５】
次に、論理ページが算出されたならば、その都度、図３３に示すＩＮＤＥＸ-論理ページ対応表により、描画すべき論理ページ番号を確定することになる。この処理の流れをより詳細に説明すると、本文用の製本処理において、第一物理ページにはＩＮＤＥＸ番号４及び５が算出される。即ち、各ＩＮＤＥＸ番号に対応する第６論理ページ、第７論理ページが本文の上記第一物理ページに描画されることになる。その後、ステップＳ２０１１で、表紙を含めたデスプール処理を行う。該処理は、上記ステップＳ２００８の表紙への面付け処理、及び上記ステップＳ２０１０の残りのページでの製本面付け処理により面付けされたデータをデスプール処理にかけるものである。このようにして得られた結果が図３４である。
【０１５６】
＜印刷情報の格納＞
図３１は上記図２０のステップＳ２００８の表紙への面付け処理及びステップＳ２０１０の残りページでの製本面付け処理によって、印刷情報が上記図１３及び図１５に示したデータ構造に対してどのように格納されるかを示した図である。本実施形態の製本印刷では、製本対象用紙における折り込みの内側を最初にデスプールする方式をとっているので、第１物理ページ情報には、「おもて表紙見返し」部分（第１０論理ページ）、「裏表紙見返し」部分（空白ページ：ここでは０として扱っている）の順で格納される。次に、第２物理ページ情報には、「裏表紙」部分（第２論理ページ）、「おもて表紙」部分（第１論理ページ）の順で格納される。更に第３物理ページ以降、上記図２０のステップＳ２０１０の残りページでの製本面付け処理により生成された物理ページ情報が続く。もし、図３０の画面上で「右開き」の指定がなされている場合は、各物理ページに格納された論理ページの順番が反対になることで実現される。
【０１５７】
また、上記図２０のステップＳ２００７における、アプリケーション２０１からの印刷対象データの総ページ数がＮページ以上かどうかの判定処理で、アプリケーション２０１からの論理ページ数が表紙作成に必要な論理ページ数Ｎページ未満であると判断した場合、ステップＳ２００９へ進み、総ページ数がＮページ未満の表紙への面付け処理を行う。具体的には、図３０の設定が無効になり、ステップＳ２００６における通常の製本印刷処理と同様の処理が行われる。
【０１５８】
以上説明したように、本発明の第１の実施の形態によれば、表紙を構成する各論理ページ部分に対して任意論理ページの指定が可能となり、より柔軟性の高い表紙付きの製本印刷機能を実現することが可能となり、ユーザの所望する製本表紙を容易に得ることができるという効果を奏する。
【０１５９】
［第２の実施の形態］
上記第１の実施の形態では、始めに表紙をデスプールし、その後、本文のデスプール処理を行った。これに対し、第２の実施の形態では、両者の順序を入れ替えることにより、用紙の入れ替えを行うことなく表紙付きの製本印刷を実現することで、より利便性を向上させるようにしたものである。具体的には、上記図２０のステップＳ２０１１の前段において、物理ページのスワップ処理を行う。なお、第２の実施の形態の印刷システムの構成（図１）、ホストコンピュータの構成（図３）、プリンタの構成（図４）等は、第１の実施の形態と同様であり説明を省略する。
【０１６０】
＜表紙／本文物理ページ情報のスワップ処理＞
図３２は表紙／本文物理ページ情報のスワップ処理を示すフローチャートである。図３２に示す通り、処理の手順としては、先ず、ステップＳ３３０１において、スプールファイルマネージャ３０４は、表紙に用いる物理ページ２ページ分を格納するために必要なスワップ領域を確保する。続いて、ステップＳ３３０２では、表紙に対する物理ページ情報を上記ステップＳ３３０１で格納した領域に書き込む。この際、各物理ページ番号は任意の値を格納しておけばよい。
【０１６１】
次に、ステップＳ３３０３では、本文に関わる物理ページを生成し、図１１におけるフィールド１００４に示される領域に書き込む。このとき、物理ページ番号は１から順に格納していく。ステップＳ３３０４では、上記ステップＳ３３０１で格納した表紙に対する物理ページ情報を、本文に対する物理ページ情報に続いて書き込む。その際、先ほど任意の数値を格納した物理ページ番号については、本文に要した物理ページ数＋１、及び本文に要した物理ページ数＋２を代入する。最後に、ステップＳ３３０５では、表紙に用いる物理ページ２ページ分を格納するために確保した必要なスワップ領域を解放する。
【０１６２】
以上のスワップ処理を経てから、上記図２０のステップＳ２０１１のデスプール処理を行うことによって、図３５に示すように、表紙と本文をまとめて２つ折りにした際、ユーザが用紙を入れ替えることなしに所望のページ順序となるように出力することが可能となる。
【０１６３】
以上説明したように、本発明の第２の実施の形態によれば、第１の実施の形態と同様に、より柔軟性の高い表紙付きの製本印刷機能を実現することが可能となり、ユーザの所望する製本表紙を容易に得ることができるという効果を奏する。
【０１６４】
［他の実施の形態］
上記実施形態では、プリンタの印刷方式を電子写真方式とした場合を例に挙げたが、本発明はこれに限定されるものではなく、インクジェット方式、熱転写方式、感熱方式、静電方式など各種印刷方式に適用することが可能である。
【０１６５】
上記実施形態では、プリンタとコンピュータを各１台ずつ接続した場合を例に挙げたが、本発明はこれに限定されるものではなく、１台のプリンタと複数台のコンピュータをＬＡＮ等のネットワークを介して接続した場合や、複数台のプリンタと複数台のコンピュータをＬＡＮ等のネットワークを介して接続した場合に適用することも可能である。
【０１６６】
上記実施形態では、画像形成機能のみを備えたプリンタに本発明の製本印刷処理を適用した場合を例に挙げたが、本発明はこれに限定されるものではなく、画像読取機能・画像形成機能を備えた複写機や、画像読取機能・画像形成機能・ファクシミリ機能等の複数の機能を備えた複合機（ＭＦＰ）に本発明の製本印刷処理を適用することも可能である。
【０１６７】
尚、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体等の媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体等の媒体に格納されたプログラムコードを読み出し実行することによっても、本発明が達成されることは言うまでもない。
【０１６８】
この場合、記憶媒体等の媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体等の媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体等の媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、或いはネットワークを介したダウンロードなどを用いることができる。
【０１６９】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【０１７０】
更に、記憶媒体等の媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【０１７１】
【発明の効果】
以上説明したように、本発明によれば、表紙を付加した製本印刷を印刷装置で行う場合、表紙に印刷するページ数を算出し、表紙となる記録用紙の各部に対して印刷するページを指定し、該指定されたページの印刷対象データを用いて表紙への面付け処理を行い、表紙に面付けすべきページ数よりも印刷対象データのページ数が多い場合に、表紙の各部に対して指定されたページを除いた残りのページの印刷対象データに基づいて、本文用紙への面付け処理を行い、前記面付けされたデータに基づき最終的に印刷装置に送信する印刷データを生成する制御を行うため、より柔軟性の高い表紙付きの製本印刷機能を実現することが可能となり、ユーザの所望する製本表紙を容易に得ることができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１、第２の実施の形態に係る印刷システムの構成を示すブロック図である。
【図２】第１、第２の実施の形態に係る印刷システムを構成するホストコンピュータの典型的な印刷制御系の構成を示すブロック図である。
【図３】第１、第２の実施の形態に係るアプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に一旦中間コードスプールする印刷制御系の構成を示すブロック図である。
【図４】第１、第２の実施の形態に係る印刷システムを構成するプリンタの内部構造を示す断面図である。
【図５】第１の実施の形態に係るスプーラにおけるページ単位保存処理を示すフローチャートである。
【図６】第１の実施の形態に係るスプールファイルマネージャにおける印刷制御処理を示すフローチャートである。
【図７】第１の実施の形態に係るスプールファイルマネージャにおける印刷制御処理を示すフローチャートである。
【図８】第１の実施の形態に係るデスプーラにおける印刷データ生成処理を示すフローチャートである。
【図９】第１の実施の形態に係る印刷設定画面の一例を示す図である。
【図１０】第１の実施の形態に係る印刷スプール設定画面の一例を示す図である。
【図１１】第１の実施の形態に係るスプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１２】第１の実施の形態に係るスプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１３】第１の実施の形態に係るスプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１４】第１の実施の形態に係るスプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１５】第１の実施の形態に係るスプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１６】第１の実施の形態に係る設定変更エディタにおける設定変更処理を示すフローチャートである。
【図１７】第１の実施の形態に係るスプールファイルマネージャでスプールされている印刷ジョブ一覧を表示する画面の一例を示す図である。
【図１８】第１の実施の形態に係るプレビューアの印刷加工設定プレビュー画面の一例を示す図である。
【図１９】第１の実施の形態に係る設定変更エディタのジョブ設定画面の一例を示す図である。
【図２０】第１の実施の形態に係るスプールファイルマネージャの処理を示すフローチャートである。
【図２１】第１の実施の形態に係る製本印刷の体裁を示す図である。
【図２２】第１の実施の形態に係る製本の開き方向を示す図である。
【図２３】第１の実施の形態に係る製本印刷の処理手順を示すフローチャートである。
【図２４】第１の実施の形態に係る全ページ単位製本印刷の処理手順を示すフローチャートである。
【図２５】第１の実施の形態に係る全ページ単位製本印刷の処理手順を示すフローチャートである。
【図２６】第１の実施の形態に係る指定枚数単位製本印刷の処理手順を示すフローチャートである。
【図２７】第１の実施の形態に係る指定枚数単位製本印刷の処理手順を示すフローチャートである。
【図２８】第１の実施の形態に係る指定枚数単位製本印刷における最終ブロックの用紙節約における処理手順を示すフローチャートである。
【図２９】第１の実施の形態に係る製本印刷を指定するユーザインタフェイスの一例を示す図である。
【図３０】第１の実施の形態に係る製本印刷に関する設定を行うユーザインタフェイスの一例を示す図である。
【図３１】第１の実施の形態に係る面付け処理及び製本処理におけるデータ格納格納形式の一例を示す図である。
【図３２】第２の実施の形態に係る表紙／本文物理ページ情報のスワップ処理を示すフローチャートである。
【図３３】第１の実施の形態に係る製本処理において用いるＩＮＤＥＸと対応する論理ページ番号の対応表の一例を示す図である。
【図３４】第２の実施の形態に係る表紙製本印刷の出力結果の一例を示す図である。
【図３５】第１の実施の形態に係る表紙製本印刷の出力結果の一例を示す図である。
【符号の説明】
２０３  プリンタドライバ
３０２  スプーラ（スプール手段）
３０４  スプールファイルマネージャ（面付け処理手段、第一の面付け処理手段、第二の面付け処理手段、第三の面付け処理手段、印刷データ生成手段、第一の判定処理手段、第二の判定処理手段、第三の判定処理手段、表紙ページ選択手段、算出処理手段）
３０５  デスプーラ（デスプール手段）
１５００  プリンタ（印刷装置）
３０００  ホストコンピュータ（製本印刷制御装置）
【図１】
0003720771.tif 000002
【図２】
0003720771.tif 000003
【図３】
0003720771.tif 000004
【図４】
0003720771.tif 000005
【図５】
0003720771.tif 000006
【図６】
0003720771.tif 000007
【図７】
0003720771.tif 000008
【図８】
0003720771.tif 000009
【図９】
0003720771.tif 000010
【図１０】
0003720771.tif 000011
【図１１】
0003720771.tif 000012
【図１２】
0003720771.tif 000013
【図１３】
0003720771.tif 000014
【図１４】
0003720771.tif 000015
【図１５】
0003720771.tif 000016
【図１６】
0003720771.tif 000017
【図１７】
0003720771.tif 000018
【図１８】
0003720771.tif 000019
【図１９】
0003720771.tif 000020
【図２０】
0003720771.tif 000021
【図２１】
0003720771.tif 000022
【図２２】
0003720771.tif 000023
【図２３】
0003720771.tif 000024
【図２４】
0003720771.tif 000025
【図２５】
0003720771.tif 000026
【図２６】
0003720771.tif 000027
【図２７】
0003720771.tif 000028
【図２８】
0003720771.tif 000029
【図２９】
0003720771.tif 000030
【図３０】
0003720771.tif 000031
【図３１】
0003720771.tif 000032
【図３２】
0003720771.tif 000033
【図３３】
0003720771.tif 000034
【図３４】
0003720771.tif 000035
【図３５】
0003720771.tif 000036