(57)【要約】    【課題】  本発明は、ステイプル許容枚数超過による不具合を回避すると共に、適切な印刷体裁で用紙をステイプルすることができる印刷制御装置を提供する。    【解決手段】  ホストコンピュータ３０００は、ＲＡＭ１０２に中間コードデータ及び合紙の挿入位置の情報を含む該中間コードデータの加工設定情報を保持し、ＣＰＵ１０１により、中間コードデータの論理ページ数を取得し、取得された論理ページ数及び加工設定情報に基づいて物理ページ数を算出し、算出された物理ページ数及び合紙の挿入位置の情報に基づいて、中間コードデータを分割して複数のジョブを生成する。【選択図】      図６
2006185156.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを生成する印刷制御装置であって、
前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持手段と、
前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得手段と、
前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出手段と、
前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割手段と
を備えることを特徴とする印刷制御装置。
【請求項２】
前記分割手段は、ステイプル許容枚数を記憶する記憶手段を備え、前記記憶手段に記憶されているステイプル許容枚数に基づいて前記印刷データを複数の印刷データに分割することを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記分割手段は、前記算出された印刷ページ数が、前記記憶されたステイプル許容枚数内に収まるか否かを判断する判断手段を備えることを特徴とする請求項２記載の印刷制御装置。
【請求項４】
前記分割手段は、前記算出された印刷ページ数が、前記記憶されたステイプル許容枚数内に収まらないときは、前記印刷データの印刷設定情報を変更し、該変更された印刷設定情報に基づいて前記印刷データの印刷ページ数を再算出し、前記再算出された印刷ページ数及び前記合紙ページ情報に基づいて、前記印刷データを複数の印刷データに分割することを特徴とする請求項３記載の印刷制御装置。
【請求項５】
前記分割された印刷データをステイプル印刷指示することを特徴とする請求項１乃至４記載の印刷制御装置。
【請求項６】
印刷装置と、前記印刷装置に接続された印刷制御装置とを備える印刷システムにおいて、
前記印刷制御装置は、
印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持手段と、
前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得手段と、
前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出手段と、
前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割手段と
前記分割された印刷データを前記印刷装置に送信する送信手段とを備え、
前記印刷装置は、
前記送信された印刷データを受信する受信手段と、
前記受信された印刷データを用紙に印刷する印刷手段と、
前記分割された印刷データ毎に前記印刷された用紙をステイプルするステイプル手段と
を備えることを特徴とする印刷システム。
【請求項７】
印刷データを生成する印刷制御方法において、  
前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持ステップと、
前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得ステップと、
前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出ステップと、
前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割ステップと
を備えることを特徴とする印刷制御方法。
【請求項８】
印刷制御装置で実行される印刷制御プログラムにおいて、
前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持プログラムと、
前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得プログラムと、
前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出プログラムと、
前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割プログラムと
を備えることを特徴とする印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷システム、印刷制御方法、及び印刷制御プログラムに関し、特に、適切な印刷体裁で用紙をステイプルすることができる印刷制御装置、印刷システム、印刷制御方法、及び印刷制御プログラムに関する。
【背景技術】
【０００２】
従来より、ページ単位での画像形成手段を有する印刷装置（以下、「プリンタ」という。）と、このプリンタと接続された情報処理装置（以下、「ホストコンピュータ」という。）からなる印刷システムにおいて、ホストコンピュータからプリンタに対して、ステイプルを指示する制御コマンドとホストコンピュータ上で作成された印刷データとを送信することにより、プリンタにおいてプリント出力された用紙にステイプル処理を行う印刷システムが知られている。
【０００３】
この印刷システムにおいて、ステイプル許容枚数を超過する印刷データをプリンタに送信した場合、プリンタでステイプル処理がキャンセルされ、プリント出力のみが行われるので、ユーザは印刷する前に印刷ドキュメントがステイプル許容枚数に収まるかを確認する必要がある。また、予期せずステイプル処理がキャンセルされて出力されてしまった場合には、用紙を手動でステイプルしなければならない。
【０００４】
そこで、ステイプルの許容枚数を超過している場合、プリンタにおいて自動的に２ｉｎ１、４ｉｎ１等の複数ページ印刷（以下、「Ｎｕｐ印刷」という。）や両面印刷を適用することにより出力用紙の枚数を削減し、出力用紙の枚数をステイプル許容枚数に収める印刷システムが提案されている（例えば、特許文献１参照）。
【０００５】
この印刷システムにおいて、複数頁の原稿をユーザが設定した出力制限枚数ａ以内に収めようとする場合、印刷部数ｂ及び原稿枚数ｃを確認し、これらの値に基づいて、出力用紙１枚あたりに印刷すべき印刷原稿頁数ｄを決定する。そして、この印刷原稿頁数ｄでの印刷を可能とする出力モード（例えば、両面印刷、Ｎｕｐ印刷）を決定して、印刷を実行する。また、給紙手段、排紙手段、及び後処理手段（例えば、ステイプル）等の許容量を出力制限枚数ａとして設定することもできる。
【特許文献１】特開２００２−３５８１８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の印刷システムには、以下の課題がある。
【０００７】
（１）プリンタにおいてホストコンピュータから送信される印刷データを解析し、ステイプル可能な許容枚数を超過しているかを判断しているため、予めホストコンピュータでＮｕｐ印刷が適用されている場合、プリンタ側では正確に印刷データのページ数を判断することができない。このためホストコンピュータ側とプリンタ側で２重に複数ページ印刷が適用される等、ユーザの期待しない出力結果となる場合がある。
【０００８】
（２）Ｎｕｐ印刷や両面印刷を適用してもステイプル許容枚数を超えるために、ステイプル出力することができない場合がある。例えば、ステイプル許容枚数が３０枚、印刷ドキュメントが８０枚であり、等倍で（Ｎｕｐ印刷せずに）印刷したい場合、両面印刷を適用しても３０枚に収まらない。このような場合、ユーザは当該許容枚数に収まるようにドキュメントの枚数を調整して、複数回に分けて印刷を行う必要があり、煩雑な作業が要求される。
【０００９】
（３）プリンタにおいてホストコンピュータから送信される印刷データを解析し、ステイプル可能な許容枚数を超過しているかを判断する際に、インサータ等の給紙装置から給紙される表紙や裏表紙や仕切り紙等の合紙は、出力枚数としてカウントされないので、ステイプル許容枚数を超過しているかの判断を正確に行うことができず、適切にステイプルされない場合がある。
【００１０】
本発明は、上記課題を解決するためになされたものであり、ステイプル許容枚数超過による不具合を回避すると共に、適切な印刷体裁で用紙をステイプルすることができる印刷制御装置、印刷システム、印刷制御方法、及び印刷制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
上述の目的を達成するために、請求項１記載の印刷制御装置は、印刷データを生成する印刷制御装置であって、前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持手段と、前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得手段と、前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出手段と、前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割手段とを備えることを特徴とする。
【００１２】
上述の目的を達成するために、請求項６記載の印刷システムは、印刷装置と、前記印刷装置に接続された印刷制御装置とを備える印刷システムにおいて、前記印刷制御装置は、印刷データ及び該印刷データの印刷設定情報を保持する保持手段と、前記印刷データより印刷ページ数の情報を取得する印刷ページ数情報取得手段と、前記印刷データの印刷設定情報より合紙ページ情報を取得する合紙ページ情報取得手段と、前記印刷ページ数の情報及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割手段と、前記分割された印刷データを前記印刷装置に送信する送信手段とを備え、前記印刷装置は、前記送信された印刷データを受信する受信手段と、前記受信された印刷データを用紙に印刷する印刷手段と、前記分割された印刷データ毎に前記印刷された用紙をステイプルするステイプル手段とを備えることを特徴とする。
【００１３】
上述の目的を達成するために、請求項７記載の印刷制御方法は、印刷データを生成する印刷制御方法において、前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持ステップと、前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得ステップと、前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出ステップと、前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割ステップとを備えることを特徴とする。
【００１４】
上述の目的を達成するために、請求項８記載の印刷制御プログラムは、印刷制御装置で実行される印刷制御プログラムにおいて、前記印刷データ及び合紙ページ情報を含む該印刷データの印刷設定情報を保持する保持プログラムと、前記印刷データの印刷ページ数情報を取得する印刷ページ数情報取得プログラムと、前記印刷ページ数情報及び前記印刷データの印刷設定情報に基づいて印刷ページ数を算出する算出プログラムと、前記算出された印刷ページ数及び前記合紙ページ情報に基づいて前記印刷データを複数の印刷データに分割する分割プログラムとを備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、印刷ページ数情報及び印刷データの印刷設定情報に基づいて印刷ページ数が算出され、算出された印刷ページ数及び合紙ページ情報に基づいて印刷データが複数の印刷データに分割されるので、ステイプル許容枚数超過による不具合を回避すると共に、適切な印刷体裁で用紙をステイプルすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１７】
図１は、本発明の実施の形態に係る印刷システムの構成を示すブロック図である。
【００１８】
図１において、印刷システムは、ホストコンピュータ３０００、及びプリンタ１５００を有し、これらはデータ転送経路１２１を介して互いに接続されている。
【００１９】
ホストコンピュータ３０００は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、入力コントローラ（入力Ｃ）１０５と、ビデオコントローラ（ＶＣ）１０６と、メモリコントローラ（ＭＣ）１０７と、通信インターフェースコントローラ（通信Ｉ／ＦＣ）１０８と、キーボード（ＫＢ）１０９と、ＣＲＴディスプレイ（ＣＲＴ）１１０と、外部メモリ１１１とを備える。
【００２０】
ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力Ｃ１０５、ＶＣ１０６、ＭＣ１０７、及び通信Ｉ／ＦＣ１０８は、システムバス１０４を介して互いに接続されている。
【００２１】
ＲＯＭ１０３又は外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input／Output System）、オペレーティングシステムプログラム（以下、「ＯＳ」という。）、及び後述する各処理を実行するために必要な各種プログラム等が記憶されている。本実施の形態で使用するＯＳは、例えば、マイクロソフト社製のウィンドウズ（登録商標）ＸＰを想定するが、これに限られるものではない。
【００２２】
ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０２にロードして、プログラムを実行することで各種動作を実現する。
【００２３】
入力コントローラ（入力Ｃ）１０５は、キーボード（ＫＢ）１０９や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ（ＶＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０等の表示器への表示を制御する。尚、表示器はＣＲＴに限られるものではなく、液晶ディスプレイであっても構わない。
【００２４】
メモリコントローラ（ＭＣ）１０７は、外部メモリ１１１へのアクセスを制御する。外部メモリ１１１は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及び各種データ等を記憶し、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）、又はＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等から構成される。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介した外部機器との接続・通信を制御する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信や、データ転送経路１２１を介してプリンタ１５００との間でデータ送受信等が可能である。
【００２６】
ＣＰＵ１０１は、例えば、ＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０に表示情報を表示する。また、ＣＰＵ１０１は、ＣＲＴ１１０にマウスカーソル等を表示することにより、ユーザによる指示を可能にする。
【００２７】
プリンタ１５００は、ＣＰＵ１１２と、ＲＡＭ１１９と、フォントＲＯＭ１１３ａと、プログラムＲＯＭ１１３ｂと、データＲＯＭ１１３ｃと、入力部１１８と、印刷部インターフェース（印刷部Ｉ／Ｆ）１１６と、印刷部１１７と、操作部１５０１と、メモリコントローラ（ＭＣ）１２０と、外部メモリ１１４とを備える。
【００２８】
ＣＰＵ１１２、ＲＡＭ１１９、ＲＯＭ１１３、入力部１１８、印刷部Ｉ／Ｆ１１６、操作部１５０１と、ＭＣ１２０は、システムバス１１５を介して互いに接続されている。
【００２９】
プリンタＣＰＵ１１２は、プログラムＲＯＭ１１３ｂ又は外部メモリ１１４に記憶された制御プログラム等に基づいて、印刷部Ｉ／Ｆ１１６を介して印刷部（プリンタエンジン）１１７に出力情報としての画像信号を出力する。
【００３０】
プログラムＲＯＭ１１３ｂには、ＣＰＵ１１２の制御プログラム等が記憶される。フォントＲＯＭ１１３ａには、上記出力情報を生成する際に使用するフォントデータ等が記憶される。データＲＯＭ１１３ｃには、プリンタ１５００がハードディスク等の外部メモリ１１４を有していない場合には、ホストコンピュータ３０００上で利用される情報等が記憶される。
【００３１】
ＣＰＵ１１２は、入力部１１８を介してホストコンピュータ３０００との通信処理を行い、プリンタ１５００内の情報等をホストコンピュータ３０００に通知することができる。
【００３２】
ＲＡＭ１１９はＣＰＵ１１２の主メモリであり、ワークエリア等として機能する。また、ＲＡＭ１１９は、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。尚、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等にも用いられる。
【００３３】
メモリコントローラ（ＭＣ）１２０は、外部メモリ１１４へのアクセスを制御する。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶し、ハードディスク（ＨＤ）、ＩＣカード等で構成される。
【００３４】
操作部１５０１は、操作のためのスイッチ及びＬＥＤ表示器等が配されている操作パネルである。
【００３５】
尚、プリンタ１５００が備える外部メモリ１１４は、１個に限られるものではなく、少なくとも１個以上であれば複数であってもよい。また、プリンタ１５００は、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されてもよい。更に、プリンタ１５００は、操作部１５０１により設定されたプリンタモード設定情報を記憶するＮＶＲＡＭを有していてもよい。
【００３６】
本実施の形態では、プリンタ１５００がサポートするページ記述言語（以下、「ＰＤＬ」という。）は、LBP Image Processing System（以下、「ＬＩＰＳ」という。）等の比較的に高度なＰＤＬであると想定しているが、これに限られるものではない。
【００３７】
本発明を実現するための印刷制御プログラム（以下、「プリンタドライバ」という。）は外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行される。プリンタドライバが用いる定義ファイル及び各種情報テーブルは外部メモリ１１１に格納されている。
【００３８】
尚、上記印刷システムの構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。例えば、本発明は、単体の機器に適用されてもよく、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークを介して接続された複数の機器からなるシステムに適用されてもよい。
【００３９】
図２は、図１におけるホストコンピュータ３０００のソフトウェア構成を示すブロック図である。
【００４０】
図２において、ホストコンピュータ３０００は、アプリケーションプログラム（以下、「アプリケーション」という。）２０１と、グラフィックスエンジン２０２と、プリンタドライバ２０３と、プリントサブシステム２０４とを備え、これらは、それぞれ外部メモリ１１１にファイルとして保存されたプログラムモジュールである。これらのモジュールは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされて実行される。
【００４１】
アプリケーション２０１及びプリンタドライバ２０３は、ＦＤ、不図示のＣＤ−ＲＯＭ等の外部メモリ１１１から、又は後述するネットワーク３０１（図３）を介して接続された外部機器から、ハードディスク（ＨＤ）等の外部メモリ１１１に追加される。
【００４２】
外部メモリ１１１に保存されているアプリケーション２０１は、ＣＰＵ１０１によってＲＡＭ１０２にロードされて実行される。このアプリケーション２０１からプリンタ１５００に対して印刷を行わせる際には、同様にＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるグラフィックスエンジン２０２を利用して出力（描画）を行う。
【００４３】
グラフィックスエンジン２０２は、印刷装置毎に用意されたプリンタドライバ２０３を起動する。これにより、プリンタドライバ２０３は、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードさせて実行される。グラフィックスエンジン２０２は、このプリンタドライバ２０３を用いて、アプリケーション２０１から出力された印字命令や描画命令をＰＤＬによるプリンタ制御命令に変換する。
【００４４】
プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経由して、データ転送経路１２１を介してプリンタ１５００に出力される。
【００４５】
プリントサブシステム２０４は、ＯＳによって起動されて、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードされて実行されるものであり、印刷ジョブのスケジューリング、ホストコンピュータ３０００とプリンタ１５００との接続制御、及びプリンタ１５００のステータスの管理を行う。
【００４６】
尚、プリンタドライバ２０３は、前述した、アプリケーション２０１から出力された印字命令や描画命令をプリンタ制御命令に変換し、プリント出力に反映されるようプリンタに指示する機能に加えて、プリンタドライバ２０３やプリンタ１５００が有する機能を制御するための設定を行う機能（以下、「ユーザインタフェース（ＵＩ）」という。）、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５００が有する機能の情報をアプリケーション２０１やＯＳに提供する機能、ＵＩで設定された機能がプリンタ１５００が有する機能である場合にプリンタ制御命令を生成する機能、及び、ＵＩで設定された機能がプリンタドライバ２０３独自で行う機能である場合にその機能を実現する機能等を有する。
【００４７】
図３は、図１におけるホストコンピュータ３０００及びプリンタ１５００が適用された印刷システムの構成を示すブロック図である。
【００４８】
図３において、印刷システムは、複数のホストコンピュータ３０００、プリンタ１５００、及びプリントサーバコンピュータ４０００を有し、これらはネットワーク３０１を介して互いに接続されている。
【００４９】
ネットワーク３０１に接続されたホストコンピュータ３０００の通信Ｉ／Ｆコントローラ１０８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００５０】
プリンタ１５００は、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介してプリントサーバコンピュータ４０００と接続されて該プリントサーバ４０００を介してネットワーク３０１に接続される形態であってもよく、ネットワーク３０１に直接接続される形態であってもよい。ネットワーク３０１に直接接続されたプリンタ１５００の入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００５１】
ホストコンピュータ３０００は、プリントサーバコンピュータ４０００を介してネットワーク３０１に接続されたプリンタ１５００に印刷ジョブを送信する場合、まず、プリントサブシステム２０４を介して、プリントサーバコンピュータ４０００へ印刷ジョブを送信する。プリントサーバコンピュータ４０００は、ホストコンピュータ３０００から送信されてきた印刷ジョブを、プリントサーバコンピュータ４０００上の不図示のプリントサブシステムを介して、プリンタ１５００に送信する。
【００５２】
また、ホストコンピュータ３０００は、ネットワーク３０１に直接接続されたプリンタ１５００に印刷ジョブを送信する場合、プリントサブシステム２０４を介して、プリンタ１５００に直接印刷ジョブを送信する。
【００５３】
図４は、図２のホストコンピュータ３０００によって実行される印刷制御処理の基本的な流れを示す図である。
【００５４】
図４において、アプリケーション２０１は、直接プリンタドライバ２０３と情報の送受信を行うのではなく、ＯＳが有するグラフィックスエンジン２０２を介してプリンタドライバ２０３と情報の送受信を行う。グラフィックスエンジン２０２は、アプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００５５】
まず、アプリケーション２０１は、片面／両面印刷設定や部数設定等の印刷設定情報をＲＡＭ１０２に確保されたメモリを介してグラフィックスエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックスエンジン２０２より、その印刷設定情報と、その印刷設定情報に基づいてプリンタドライバ２０３が印刷処理を行う上で必要な情報（プリンタドライバ情報）を格納するためにＲＡＭ１０２上に確保されたメモリ領域の初期化要求とを受信する（ステップＳ４０１）。これにより、プリンタドライバ２０３は、プリンタドライバ情報を保持するメモリ領域を確保し、印刷設定情報に従ってそのメモリ領域を初期化する。
【００５６】
プリンタドライバ２０３は、プリンタドライバ２０３が参照するプリンタドライバ情報を保持するメモリ領域の初期化要求の受信により必要な処理を完了すると、ステップＳ４０１で受信した印刷設定情報に応じたプリンタドライバ２０３の印刷能力情報をグラフィックスエンジン２０２に通知する。アプリケーション２０１は、グラフィックスエンジン２０２より、最終的にプリンタ１５００に送信される印刷ジョブとその印刷ジョブに反映させる印刷設定情報とを関連付けるために必要なハンドル値を取得する（ステップＳ４０２）。
【００５７】
次に、アプリケーション２０１が、印刷の開始要求をグラフィックスエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックスエンジン２０２より印刷開始要求を受信する（ステップＳ４０３）。これにより、プリンタドライバ２０３は、プリンタ１５００が印刷を開始するために必要なＰＤＬによるプリンタ制御命令を生成する。尚、プリンタ制御命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点、即ち、アプリケーションからの最初のページの描画指示を受信した時点で行ってもよい。
【００５８】
アプリケーション２０１は、文字やイメージ等の描画オブジェクトの描画を実現するための描画指示をグラフィックスエンジン２０２に対して行うと、プリンタドライバ２０３は、その描画指示をグラフィックスエンジン２０２より受信する（ステップＳ４０４）。これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、更には印刷設定情報を途中で変更するための要求等を含む描画指示を反映したプリンタ制御命令を適宜生成し、生成したプリンタ制御命令をプリンタ１５００に出力する。尚、印刷するページ数はアプリケーション２０１からの指定に因る。
【００５９】
次に、アプリケーション２０１が、印刷終了要求をグラフィックスエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックスエンジン２０２より印刷終了要求を受信する（ステップＳ４０５）。これにより、プリンタドライバ２０３は、プリンタ１５００が印刷終了に必要なプリンタ制御命令を生成し、プリンタ制御命令の生成処理を終了する。
【００６０】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックスエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックスエンジン２０２より、メモリ領域格納されたプリンタドライバ情報の破棄要求を受信する。これにより、プリンタドライバ２０３は、上記プリンタドライバ情報の破棄処理を行う（ステップＳ４０６）。
【００６１】
上記ステップＳ４０３〜Ｓ４０５の処理により、プリンタ１５００に送信される１つの印刷ジョブが生成される。
【００６２】
図５は、図２におけるプリンタドライバ２０３の構成を詳細に示す図である。
【００６３】
図５において、プリンタドライバ２０３は、アプリケーション２０１からの印刷データを一旦中間コードデータでスプールする構成を有し、一旦スプールした中間コードデータの内容に対して加工することができる。これにより、アプリケーション２０１からの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーション２０１が有していない機能を実現することができる。
【００６４】
尚、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上又は外部メモリ１１１上に保管する。
【００６５】
まず、グラフィックスエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ５０１が受け取る。ディスパッチャ５０１がグラフィックスエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックスエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ５０１は外部メモリ１１１に格納されている内部スプール処理モジュールであるスプーラ５０３をＲＡＭ１０２にロードし、通常の印字データ作成処理部５０７ではなくスプーラ５０３へ印刷命令（ＤＤＩ関数）を送付する。
【００６６】
スプーラ５０３は、受け取った印刷命令を解析し、ページ単位に中間コードデータに変換してスプールファイル５０４に保存する。このページ単位に保存されている中間コードデータのスプールファイルをページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。
【００６７】
また、スプーラ５０３は、プリンタドライバ２０３に対して設定されている製本印刷、Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等の印刷データに関する、後述する図１５の加工設定情報をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル５０４に保存する。このジョブ単位に保存されている加工設定情報のスプールファイルをジョブ設定ファイル（ＳＤＦ：Spool Description File）と呼ぶ。
【００６８】
尚、スプールファイル５０４は外部メモリ１１１上にファイルとして生成されるが、ＲＡＭ１０２上に生成されても構わない。
【００６９】
スプーラ５０３は、外部メモリ１１１に格納されているスプールファイルマネージャ５０５をＲＡＭ１０２にロードし、スプールファイルマネージャ５０５に対してスプールファイル５０４の生成状況を通知する。その後、スプールファイルマネージャ５０５は、スプールファイル５０４に保存された印刷データに関する加工設定情報の内容に従って印刷を行えるか否かを判断する。
【００７０】
スプールファイルマネージャ５０５がグラフィックスエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１１に格納されているデスプーラ５０６をＲＡＭ１０２にロードし、デスプーラ５０６に対して、スプールファイル５０４に記述された中間コードデータのページ描画ファイルの印刷処理を行うように指示する。
【００７１】
デスプーラ５０６はスプールファイル５０４に含まれる中間コードデータのページ描画ファイルを、スプールファイル５０４に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックスエンジン２０２にＧＤＩ関数を出力する。
【００７２】
ディスパッチャ５０１が、グラフィックスエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ５０６からグラフィックスエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ５０１はスプーラ５０３ではなく、プリンタドライバの通常の印字データ作成処理部５０７に印刷命令を送る。プリンタドライバ２０３は、グラフィックスエンジン２０２から取得したＤＤＩ関数に基づいてＰＤＬ等からなるプリンタ制御命令を生成し、生成したプリンタ制御命令をプリントサブシステム２０４を経由してプリンタ１５００に出力する。
【００７３】
本発明では、主にデスプーラ５０６がスプールファイルマネージャ５０５から印刷開始要求を受け付けた際の処理に機能が追加される。
【００７４】
図６は、ＣＰＵ１０１が図５におけるプリンタドライバ２０３を利用して実行する印刷制御処理のフローチャートである。
【００７５】
図６において、デスプーラ５０６は、スプールファイルマネージャ５０５から印刷開始要求を受け付けると、スプールファイル５０４に保存された印刷データに関する加工設定情報に含まれるステイプル有無の情報を参照して、ステイプル印刷が設定されているか否かを判別する（ステップＳ７０１）。
【００７６】
ステップＳ７０１の判別の結果、ステイプル有無の情報がＯＦＦであり、ステイプル印刷が設定されていないときは、スプールファイル５０４に保存された印刷データに関する加工設定情報（図１５）に基づいて通常印刷を行い（ステップＳ７１０）、本処理を終了する。
【００７７】
ステップＳ７０１の判別の結果、ステイプル有無の情報がＯＮであり、ステイプル印刷が設定されているときは、スプールファイル５０４に保存されている中間コードのページ描画ファイルから、改ページ情報（例えば、DrvSendPage  ＤＤＩ）をキーにして論理ページ数をカウントすることにより、印刷ページ数（論理ページ数）を計算する（ステップＳ７０２）。計算された総論理ページ数の情報は、ＲＡＭ１０２（図１６）上に記憶される。
【００７８】
次に、図１４のステイプル許容枚数テーブルをＲＡＭ１０２上に展開し、スプールファイル５０４に保存された印刷データに関する加工設定情報のフィニッシャ名称、用紙サイズ、及び用紙タイプの情報をキーに、ステイプル許容枚数テーブルからステイプル許容枚数の情報を検索して取得し、当該ステイプル許容枚数の情報をＲＡＭ１０２上に記憶する（ステップＳ７０３）。
【００７９】
次に、スプールファイル５０４に保存された加工設定情報から、合紙の挿入位置（論理ページ番号）の情報を取得する（ステップＳ７０４）。合紙の挿入位置の情報は、図１７のドライバＵＩ１６００上の挿入位置設定部１６０１でユーザにより設定され、挿入位置（論理ページ番号）として加工設定情報に記憶されている。
【００８０】
次に、スプールファイル５０４に保存された印刷データに関する加工設定情報から、両面印刷設定及びＮｕｐ設定の情報を取得し、当該情報をＲＡＭ１０２上に記憶する（ステップＳ７０５、Ｓ７０６）。
【００８１】
次に、後述する図８の物理ページ数算出処理を実行して、ＲＡＭ１０２上に記憶された両面印刷設定、Ｎｕｐ設定、合紙の挿入位置、及び印刷データの論理ページ数の情報に基づいて、総物理ページ数を算出してＲＡＭ１０２上に記憶し（ステップＳ７０７）、ステップＳ７０３で取得されたステイプル許容枚数の情報とステップＳ７０７で算出された総物理ページ数の情報とを比較して、総物理ページ数がステイプル許容枚数に収まるか否かを判別する（ステップＳ７０８）。
【００８２】
ステップＳ７０８の判別の結果、総物理ページ数がステイプル許容枚数に収まるときは、スプールファイル５０４に保存された印刷データに関する加工設定情報に基づいて通常印刷を行い（ステップＳ７１０）、本処理を終了する。
【００８３】
ステップＳ７０８の判別の結果、総物理ページ数がステイプル許容枚数に収まらないときは、後述する図７の印刷レイアウト制御処理を実行して、図１８のドライバＵＩ１７００上で設定された両面印刷可否設定及び最大Ｎｕｐ設定に基づいて、最適な印刷体裁を自動的に判断して適用し（ステップＳ７０９）、本処理を終了する。
【００８４】
図７は、図６のステップＳ７０９の印刷レイアウト制御処理のフローチャートである。
【００８５】
本処理は、ＣＰＵ１０１が、不図示のドライバＵＩ上にてユーザに指定された印刷設定（両面印刷設定、Ｎｕｐ設定）に基づき、印刷データを加工しても物理ページ数がステイプル許容枚数に収まらない場合に、図１８のドライバＵＩ１７００上で設定された両面印刷可否設定及び最大Ｎｕｐ設定に基づき、最適な印刷設定を自動的に適用する処理である。
【００８６】
図７において、ＲＡＭ１０２上に記憶されている両面印刷設定が、片面印刷から両面印刷に変更可能であるか否かを判別する（ステップＳ７２０）。ステップＳ７２０では、図１８の「両面印刷を適用する」のチェックボックス１７０２にチェックされていると共に、ＲＡＭ１０２上に記憶されている両面印刷設定がＯＦＦであれば、片面印刷から両面印刷に変更可能であると判断し、図１８の「両面印刷を適用する」のチェックボックス１７０２がチェックされていないか、又は、ＲＡＭ１０２上に記憶されている両面印刷設定が既にＯＮであれば、片面印刷から両面印刷に変更可能でないと判断する。
【００８７】
ステップＳ７２０の判別の結果、ＲＡＭ１０２上に記憶されている両面印刷設定が、片面印刷から両面印刷に変更可能であるときは、図６のステップＳ７０５においてＲＡＭ１０２上に記憶した両面印刷設定を両面に変更し（ステップＳ７２１）、ステップＳ７２４に進む。
【００８８】
ステップＳ７２０の判別の結果、ＲＡＭ１０２上に記憶されている両面印刷設定が、片面印刷から両面印刷に変更可能でないときは、図１８の最大Ｎｕｐ設定部１７０１において設定された最大Ｎｕｐ設定と、ＲＡＭ１０２上に記憶されているＮｕｐ設定とを比較して、ＲＡＭ１０２上に記憶されているＮｕｐ設定が、より縮小率の高いＮｕｐ設定に変更可能か否かを判別する（ステップＳ７２２）。
【００８９】
ステップＳ７２２の判別の結果、ＲＡＭ１０２上に記憶されているＮｕｐ設定が、より縮小率の高いＮｕｐ設定に変更可能であるときは、図６のステップＳ７０６においてＲＡＭ１０２上に記憶されているＮｕｐ設定を縮小率の１段階高い設定に変更し（ステップＳ７２３）、ステップＳ７２４に進む。例えば、ＲＡＭ１０２上に記憶されているＮｕｐ設定が２ｕｐの場合は、４ｕｐに変更する。
【００９０】
ステップＳ７２２の判別の結果、ＲＡＭ１０２上に記憶されているＮｕｐ設定が、より縮小率の高いＮｕｐ設定に変更可能でないときは、後述する図９及び図１０のジョブ分割処理を実行して、合紙の挿入位置に基づいてジョブ分割を行い（ステップＳ７２５）、本処理を終了する。このジョブ分割処理を適用することによって、如何なるページ数のデータであっても確実にステイプル処理を行うことができる。
【００９１】
ステップＳ７２４では、後述する図８の物理ページ数算出処理を実行して、ＲＡＭ１０２上に記憶された両面印刷設定、Ｎｕｐ設定、合紙の挿入位置、及び印刷データの論理ページ数の情報に基づいて、総物理ページ数を算出すると共に、レイアウト適用後の合紙の挿入位置（物理ページ番号）を再計算する。該処理において算出された総物理ページ数及び合紙の挿入位置（物理ページ番号）の情報は、ＲＡＭ１０２上に記憶される。
【００９２】
次に、ステップＳ７０３でＲＡＭ１０２上に記憶したステイプル許容枚数の情報とステップＳ７２４で算出した総物理ページ数の情報とを比較して、総物理ページ数がステイプル許容枚数に収まるか否かを判別し（ステップＳ７２６）、総物理ページ数がステイプル許容枚数に収まらないときは、ステップＳ７２０以降の処理を繰り返す一方、総物理ページ数がステイプル許容枚数に収まるときは、ＲＡＭ１０２上に記憶されている、変更されたレイアウト設定（両面印刷設定、Ｎｕｐ設定）及び合紙の挿入位置（物理ページ番号）の設定で印刷処理を実行し（ステップＳ７２７）、本処理を終了する。
【００９３】
図１１は、図６の印刷レイアウト制御処理を説明する図であり、（ａ）は印刷レイアウト制御処理の実行前の印刷体裁を示し、（ｂ）は印刷レイアウト制御処理の実行後の印刷体裁を示す。
【００９４】
図１１（ａ）において、ホストコンピュータ３０００上で作成した複数ページの印刷データ（ここでは１９ページとする）と、該印刷データとは別に仕切り紙として合紙（ここでは３枚とする）とが指定されたとする。論理ページ数は２１ページであり、ステイプル許容枚数（ここでは１０枚とする）に収まらない。図６の印刷レイアウト制御処理を実行して、図１１（ｂ）に示すように、合紙を考慮して最適なＮｕｐを自動適用する。
【００９５】
図１１（ｂ）において、合紙にはＮｕｐ印刷を適用せず（常に１ｕｐ印刷）、印刷データに最適なＮｕｐ印刷（ここでは４ｕｐ印刷）を自動適用することにより、物理ページは９ページとなり、ステイプル許容枚数に収めることができる。
【００９６】
図８は、図７のステップＳ７２４の物理ページ数算出処理のフローチャートである。
【００９７】
本処理は、ＣＰＵ１０１が、ＲＡＭ１０２上に記憶されている、論理ページ数及び合紙の挿入位置（論理ページ番号）、両面印刷設定、Ｎｕｐ設定に基づき、総物理ページ数を計算する処理である。尚、合紙には常に１ｕｐを適用し、それ以外の印刷データは設定されたＮｕｐ設定を適用するので、本処理は、合紙から次の合紙までの論理ページ数単位で行われる。
【００９８】
図８において、ＲＡＭ１０２上に記憶されている、合紙の挿入位置（論理ページ番号）の情報に基づいて、次の合紙までの論理ページ数を算出する（ステップＳ７３０）。次の合紙が存在しない場合は、最終ページまでの論理ページ数を算出する。該処理で算出された論理ページ数は、ＲＡＭ１０２上に記憶される。
【００９９】
次に、ＲＡＭ１０２に記憶されている挿入位置（論理ページ番号）を参照することにより、ステップＳ７３０で算出された論理ページの先頭ページが合紙であるか否かを判別する（ステップＳ７３１）。尚、この判別により、先頭ページが合紙でないと判断されるケースは、初回に算出された論理ページに限定され、２回目以降の先頭ページは必ず合紙である。尚、ＲＡＭ１０２に記憶されている合紙有無のＯＮ／ＯＦＦフラグ（図１６）を参照し、合紙有無のフラグがＯＮである場合にのみ、ステップＳ７３１で先頭ページが合紙であるか否かを判断してもよい。これにより、合紙有無のフラグがＯＦＦであれば、ステップＳ７３１の処理を行うことなく先頭ページが合紙でないと判断するので、効率的に処理を行うことができる。
【０１００】
ステップＳ７３１の判別の結果、先頭ページが合紙であるときは、スプールファイル５０４に含まれる加工設定情報の合紙への印刷設定の情報（印字なし／表面のみ／裏面のみ／両面）に基づいて、合紙に印刷を行うか否かを判別する（ステップＳ７３２）。合紙への印刷設定の情報は、図１７の印刷面設定部１６０２でユーザにより設定され、加工設定情報に記憶される。
【０１０１】
ステップＳ７３２の判別の結果、合紙に印刷を行わないときは、ステップＳ７３４に進む一方、合紙に印刷を行うときは、スプールファイル５０４に含まれる加工設定情報の合紙への印刷設定（表面のみ／裏面のみ／両面）に基づいて、論理ページ数を調整し（ステップＳ７３３）、ステップＳ７３４に進む。
【０１０２】
ステップＳ７３３の論理ページ数の調整は、以下のように行う。加工設定情報に「表面のみ」又は「裏面のみ」が記憶されている場合は、ステップＳ７３０にてＲＡＭ１０２上に記憶されている論理ページ数から１マイナスする。加工設定情報に「両面」が記憶されている場合は、ステップＳ７３０にてＲＡＭ１０２上に記憶されている論理ページ数から２マイナスする。ただし、ステップＳ７３０で算出された論理ページ数が１ページである場合は１をマイナスする。
【０１０３】
ステップＳ７３４では、ＲＡＭ１０２上に記憶されている、これまでに加算した総物理ページ数に、今回の合紙のページ数を加算し、ステップＳ７３５に進む。初回は０に加算することになる。尚、本処理では、合紙から次の合紙までの論理ページ単位で処理するため、合紙のページ数は常に１ページに限定される。
【０１０４】
ステップＳ７３５では、ＲＡＭ１０２上に記憶されている両面印刷設定及びＮｕｐ設定に基づいて、合紙以外の物理ページ数を計算する。ここでは、ＲＡＭ１０２上には、ステップＳ７３３により合紙の論理ページ数は調整済みのため、ＲＡＭ１０２上に記憶されている論理ページ数に基づき、以下の計算式で物理ページ数を算出すればよい。計算された物理ページ数は、ＲＡＭ１０２上に記憶されている総物理ページ数に加算される。
【０１０５】
面数＝（論理ページ数＋Ｎｕｐ−１）／Ｎｕｐ（少数点以下切り捨て）
物理ページ数＝（面数＋Ｄｕｐ−１）／Ｄｕｐ（少数点以下切り捨て）
尚、「Ｎｕｐ」には、Ｎｕｐ設定のＮに相当する値（１，２，４，６，８，９，１６）が代入され、「Ｄｕｐ」には、片面印刷設定であれば１、両面印刷設定であれば２が代入される。
【０１０６】
図１１を例に、物理ページの算出方法を記載する。図１１（ａ）において、合紙挿入位置は論理ページの５ページ目であるので、合紙以外の論理ページ数は４である。４ｕｐ、両面印刷なし、合紙印刷なしと設定した場合、上記計算式により、
面数＝（４＋４−１）／４（少数点以下切り捨て）＝１
物理ページ数＝（１＋１−１）／１（少数点以下切り捨て）＝１
となる。
【０１０７】
次に、合紙の挿入位置情報を、論理ページ番号から物理ページ番号に変換することにより、合紙の挿入位置（物理ページ番号）を再計算する（ステップＳ７３６）。該処理は、合紙が存在する場合のみ行なわれる。ここで再計算された挿入位置（物理ページ番号）の情報は、ＲＡＭ１０２上に記憶される（図１６）。
【０１０８】
図１１（ｂ）の例では、合紙の挿入位置の論理ページ番号は５であるが、合紙以外の物理ページ数が１であるので、合紙の挿入位置の物理ページ番号は２となる。
【０１０９】
次に、全論理ページに対してステップＳ７３０〜ステップＳ７３６の処理が完了したか否を判別し（ステップＳ７３７）、全論理ページに対して該処理が完了していないときは、ステップＳ７３０に戻り、次の合紙から合紙の論理ページに対して該処理を繰り返し行う一方、全論理ページに対して該処理が完了したときは、本処理を終了する。
【０１１０】
図９及び図１０は、図７のステップＳ７２５のジョブ分割処理のフローチャートである。
【０１１１】
本処理は、図１８のドライバＵＩ１７００にて設定される両面印刷可否設定及び最大Ｎｕｐ設定を適用しても、物理ページ数がステイプル許容枚数に収まらない場合に、ＲＡＭ１０２上に記憶されている合紙の挿入位置に基づいてステイプル分割位置を調整し、印刷データを最適なステイプル枚数に分割して出力する処理である。
【０１１２】
図９及び図１０において、ＲＡＭ１０２上に記憶されている合紙の挿入位置（物理ページ番号）を基に、最初の合紙ページの挿入位置の情報を取得し（ステップＳ７４０）、ステップＳ７４０で取得した情報に基づいて、合紙があるか否かを判別し（ステップＳ７４１）、合紙があるときは、ステップＳ７４２に進む一方、合紙が無いときは、ステップＳ７４３に進む。
【０１１３】
ステップＳ７４３では、最終ページまでの物理ページ数の情報を取得し、当該情報をＲＡＭ１０２上に加算後の物理ページ数として記憶し、ステップＳ７５４に進む。
【０１１４】
ステップＳ７４２では、合紙まで（合紙を含まない）の物理ページ数を取得し、当該物理ページ数の情報をＲＡＭ１０２上に加算後の物理ページ数として記憶し、ステップＳ７４２にてＲＡＭ１０２上に記憶した物理ページ数が、同様にＲＡＭ１０２上に記憶されているステイプル許容枚数に収まるか否かを判別する（ステップＳ７４４）。
【０１１５】
ステップＳ７４４の判別の結果、物理ページ数がステイプル許容枚数に収まるときは、ステップＳ７４５に進む一方、物理ページ数がステイプル許容枚数に収まらないときは、ステップＳ７５４に進む。
【０１１６】
ステップＳ７４５では、次の合紙のページ情報を取得し、ステップＳ７４５で取得した次の合紙のページ情報に基づいて、次の合紙があるか否かを判別し（ステップＳ７４６）、次の合紙がないときは、最終ページまでの物理ページ数の情報を取得する（ステップＳ７４７ａ）一方、次の合紙があるときは、次の合紙までの物理ページ数の情報を取得する（ステップＳ７４７ｂ）。ステップＳ７４７ａ又はＳ７４７ｂの処理で取得された情報は、ＲＡＭ１０２上に物理ページ数として記憶される（図１６）。
【０１１７】
次に、ステップＳ７４７ａ又はＳ７４７ｂで取得した物理ページ数を、ＲＡＭ１０２上に記憶されている加算後の物理ページ数に加算する（ステップＳ７４８）。初回は０に加算することとする。
【０１１８】
次に、ステップＳ７４８でＲＡＭ１０２上に記憶された加算後の物理ページ数が、ＲＡＭ１０２上に記憶されているステイプル許容枚数に収まるか否かを判別し（ステップＳ７４９）、加算後の物理ページ数がステイプル許容枚数に収まるときは、ステップＳ７５０に進む一方、加算後の物理ページ数がステイプル許容枚数に収まらないときは、ステップＳ７５１に進む。
【０１１９】
ステップＳ７５０では、最終ページまで物理ページ数の情報の取得が完了しているか否かを判別し、最終ページまで物理ページ数の取得が完了していないときは、ステップＳ７４５の処理に戻り、次の合紙までの物理ページ数の情報を取得する。
【０１２０】
ステップＳ７５０の判別の結果、最終ページまで物理ページ数の情報の取得が完了しているときは、ＲＡＭ１０２上に記憶されている両面印刷設定及びＮｕｐ設定に基づき、ＲＡＭ１０２上に記憶されている加算後の物理ページ数に対応する印刷データから１つのジョブを生成してプリンタ１５００に印刷指示を行い、ＲＡＭ１０２上に記憶された加算後の物理ページ数を０に初期化し（ステップＳ７５３）、ステップＳ７５５に進む。
【０１２１】
ステップＳ７５１では、ＲＡＭ１０２上に記憶されている加算後の物理ページの途中に合紙が存在するか否かを判別し、加算後の物理ページの途中に合紙が存在するときは、ステップＳ７５２に進む一方、加算後の物理ページの途中に合紙が存在しないときは、ステップＳ７５４に進む。
【０１２２】
ステップＳ７５２では、ＲＡＭ１０２上に記憶されている両面印刷設定及びＮｕｐ設定に基づき、ステップＳ７４８で物理ページを加算する前までの物理ページ数に対応する印刷データから１つのジョブを生成してプリンタ１５００に印刷指示を行い、ＲＡＭ１０２上に記憶された加算後の物理ページ数を０に初期化し、ステップＳ７４８に戻る。
【０１２３】
ステップＳ７５４では、図１３（ｃ）に示すように、物理ページ数を均等分割し、ＲＡＭ１０２上に記憶されている両面印刷設定及びＮｕｐ設定に基づいて、分割した物理ページ数に対応する印刷データから複数のジョブを生成してプリンタ１５００に印刷指示を行い、ステップＳ７５５に進む。
【０１２４】
この均等分割は、例えば、以下の計算式で行なわれる。
【０１２５】
ジョブ分割数＝（物理ページ数＋ステイプル許容枚数−１）／ステイプル許容枚数（少数点以下切り捨て）
分割ページ数＝物理ページ数／ジョブ分割数
余りページ数＝物理ページ数％ジョブ分割数
物理ページ数を分割ページ数のジョブに分割し、ジョブ分割数分のジョブを生成して印刷を行う。ただし、余りページ数が存在する場合には、余りページ数分のジョブは、分割ページ数＋１ページとなる。
【０１２６】
例えば、物理ページ数が３３枚、ステイプル許容枚数が１０枚の場合は、９ページ、８ページ、８ページ、８ページの４つのジョブに分割する。
【０１２７】
尚、分割する際には、ジョブとジョブの間に合紙を挿入するように設定可能に構成されてもよい。この場合、合紙を挿入した後に、再度合紙を挿入した際の物理ページを計算することにより、合紙が挿入されてもステイプルできるようにする。
【０１２８】
ステップＳ７５５では、全ての物理ページに対して処理が完了したか否かを判別し、全ての物理ページに対して処理が完了していないときは、ステップＳ７４５に戻り、次の合紙までの物理ページ数の取得を行う一方、全ての物理ページに対して処理が完了しているときは、本処理を終了する。
【０１２９】
ステップＳ７５２、Ｓ７５３、Ｓ７５４において、プリンタ１５００に印刷指示を行うと、印刷指示を受けたプリンタ１５００は、受信した印刷指示、例えば描画命令や印刷制御命令（両面印刷設定情報やステイプル印刷設定情報等）に基づいて、用紙に印刷を行う。
【０１３０】
尚、印刷される際には図１２の（ｂ）のように、分割された印刷データごとにステイプル処理される。
【０１３１】
図１２は、図９及び図１０のジョブ分割処理を説明する図であり、（ａ）はジョブ分割処理の実行前の印刷体裁を示し、（ｂ）はジョブ分割処理の実行後の印刷体裁を示す。
【０１３２】
図１２（ａ）において、両面印刷及び最大Ｎｕｐ設定（ここでは両面なし、４ｕｐ印刷とする）を適用した結果、ステイプル許容枚数の１０枚に収まっていないとする。図９及び図１０のジョブ分割処理を実行して、合紙の挿入位置に基づいて分割位置を調整して、複数のジョブに分割することにより、図１２（ｂ）に示すように、各ジョブの物理ページ数をステイプル許容枚数に納めることができる。
【０１３３】
図１３は、図９及び図１０のステップＳ７５４の均等分割を説明する図であり、（ａ）は均等分割前の印刷体裁を示し、（ｂ）は均等に分割しない場合の印刷体裁を示し、（ｃ）は均等分割後の印刷体裁を示す。
【０１３４】
図１３（ａ）において、最大Ｎｕｐ印刷を適用しても、合紙から次の合紙までの物理ページ数がステイプル許容枚数を超えていたとする。この場合に単純にステイプル許容枚数で分割すると，図１３（ｂ）に示すように、１ページだけ孤立してしまい、１ページのみステイプルされないといった不具合が発生する。図９及び図１０のステップＳ７５４の均等分割を行い、分割位置を調整することにより、図１３（ｃ）に示すように、最適な印刷体裁で且つ確実にステイプル印刷を行うことができる。
【０１３５】
本実施の形態によれば、ＲＡＭ１０２上に記憶された両面印刷設定、Ｎｕｐ設定、合紙の挿入位置、及び印刷データの論理ページ数の情報に基づいて物理ページ数を算出し、物理ページ数がステイプル許容枚数に収まらないときは、両面印刷設定及び最大Ｎｕｐ設定を適用し、両面印刷設定及び最大Ｎｕｐ設定を適用しても物理ページ数がステイプル許容枚数に収まらないときは、合紙の挿入位置に基づいてジョブ分割を行うので、ステイプル許容枚数超過による不具合を回避すると共に、適切な印刷体裁で用紙をステイプルすることができる。これにより、不正な印刷物の発生によるコストや時間の無駄を省くと同時に、手動で最適な設定を行う場合にユーザに掛かる負荷を解消することができる。
【０１３６】
尚、本実施の形態における各種テーブルの構成及びその内容は限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは云うまでもない。
【０１３７】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。例えば、本発明は、複数の機器から構成されるシステムに適用してもよく、一つの機器からなる装置に適用してもよい。
【０１３８】
また、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【０１３９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４０】
又、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１４１】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１４３】
【図１】本発明の実施の形態に係る印刷システムの構成を示すブロック図である。
【図２】図１におけるホストコンピュータのソフトウェア構成を示すブロック図である。
【図３】図１におけるホストコンピュータ及びプリンタが適用された印刷システムの構成を示すブロック図である。
【図４】図２のホストコンピュータによって実行される印刷制御処理の基本的な流れを示す図である。
【図５】図２におけるプリンタドライバの構成を詳細に示す図である。
【図６】ＣＰＵ１０１が図５におけるプリンタドライバ２０３を利用して実行する印刷制御処理のフローチャートである。
【図７】図６のステップＳ７０９の印刷レイアウト制御処理のフローチャートである。
【図８】図７のステップＳ７２４の物理ページ数算出処理のフローチャートである。
【図９】図７のステップＳ７２５のジョブ分割処理のフローチャートである。
【図１０】図７のステップＳ７２５のジョブ分割処理のフローチャートである。
【図１１】図６の印刷レイアウト制御処理を説明する図であり、（ａ）は印刷レイアウト制御処理の実行前の印刷体裁を示し、（ｂ）は印刷レイアウト制御処理の実行後の印刷体裁を示す。
【図１２】図９及び図１０のジョブ分割処理を説明する図であり、（ａ）はジョブ分割処理の実行前の印刷体裁を示し、（ｂ）はジョブ分割処理の実行後の印刷体裁を示す。
【図１３】図９及び図１０のステップＳ７５４の均等分割を説明する図であり、（ａ）は均等分割前の印刷体裁を示し、（ｂ）は均等に分割しない場合の印刷体裁を示し、（ｃ）は均等分割後の印刷体裁を示す。
【図１４】図１における外部メモリに保存されたステイプル許容枚数テーブルの一例を示す図である。
【図１５】図５におけるスプールファイルに保存された加工設定情報の一例を示す図である。
【図１６】図１におけるＲＡＭ上に記憶される情報の一例を示す図である。
【図１７】図１におけるＣＲＴに表示されるドライバＵＩの一例を示す図である。
【図１８】図１におけるＣＲＴに表示されるドライバＵＩの一例を示す図である。
【符号の説明】
【０１４４】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１１１  外部メモリ
２０１  アプリケーション
２０２  グラフィックスエンジン
２０３  プリンタドライバ
２０４  プリントサブシステム
１５００  プリンタ
３０００  ホストコンピュータ
【図１】
2006185156.tif 000003
【図２】
2006185156.tif 000004
【図３】
2006185156.tif 000005
【図４】
2006185156.tif 000006
【図５】
2006185156.tif 000007
【図６】
2006185156.tif 000008
【図７】
2006185156.tif 000009
【図８】
2006185156.tif 000010
【図９】
2006185156.tif 000011
【図１０】
2006185156.tif 000012
【図１１】
2006185156.tif 000013
【図１２】
2006185156.tif 000014
【図１３】
2006185156.tif 000015
【図１４】
2006185156.tif 000016
【図１５】
2006185156.tif 000017
【図１６】
2006185156.tif 000018
【図１７】
2006185156.tif 000019
【図１８】
2006185156.tif 000020