(57)【特許請求の範囲】
【請求項１】
印刷対象用紙のレイアウトを行うことにより印刷装置で印刷される印刷データを生成するホストコンピュータとしての印刷制御装置であって、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取り、加工対象となる中間データとしてスプールファイルを生成するスプーラ手段と、
前記生成されたスプールファイルに対して、論理ページ単位に縦サイズと横サイズを取得する取得手段と、
物理ページをＮ（Ｎ：自然数）分割して、同一の面積であり、かつ、同一の縦横比となるＮ個の印刷領域を決定する領域決定手段と、
該各印刷領域の縦サイズと横サイズ、および、前記取得手段で取得された論理ページ毎の縦サイズと横サイズと論理ページのページ順とに基づいて、論理ページ毎に、物理ページにおける論理ページの縦サイズと横サイズとを示すサイズ情報と、物理ページ上における位置を示す位置情報とを含む影響情報を決定する決定手段と、
前記決定手段で決定された影響情報の内容に従って、前記領域決定手段で決定された各印刷領域に、前記スプールファイルの各論理ページ内の描画データの物理ページにおける位置とサイズを計算し、計算処理された描画データを生成して、前記グラフィックエンジンに再度出力する再出力手段と、
前記再出力手段により出力された計算処理済みの描画データを前記グラフィックエンジンから受け取り、前記印刷装置で印刷される印刷データを生成する印刷データ生成手段とを備え、
前記決定手段は、前記サイズ情報を決定する際、同一物理ページに配置される第１論理ページに設定された用紙向きと第２論理ページに設定された用紙向きとが異なる場合に、前記第１論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第１拡大縮小率を算出し、当該第１拡大縮小率を用いて第１論理ページの縦サイズおよび横サイズを決定し、かつ、前記第２論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第２拡大縮小率を算出し、当該第２拡大縮小率を用いて第２論理ページの縦サイズおよび横サイズを決定することを特徴とし、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取った場合に、前記スプーラ手段に当該描画データを振り分け、前記再出力手段により出力された計算処理済みの描画データを前記グラフィックエンジンから受け取った場合に、前記印刷データ生成手段に当該計算処理済みの描画データを振り分ける振り分け手段を更に備えることを特徴とする印刷制御装置。
【請求項２】
前記スプールファイルでスプールされた中間データの生成状況を監視して、該中間データに基づく印刷処理が可能であるかを判断する判断手段を更に備え、前記再出力手段は、Ｎページ分の論理ページの中間データのスプールファイルが生成されており、前記判断手段により印刷処理が可能であると判断される場合に、計算処理した描画データを前記グラフィックエンジンに再度出力することを特徴とする請求項１記載の印刷制御装置。
【請求項３】
印刷対象用紙のレイアウトを行うことにより印刷装置で印刷される印刷データを生成するホストコンピュータにおける印刷制御方法であって、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取り、加工対象となる中間データとしてスプールファイルを生成するスプールファイル生成ステップと、
前記生成されたスプールファイルに対して、論理ページ単位に縦サイズと横サイズを取得する取得ステップと、
物理ページをＮ（Ｎ：自然数）分割して、同一の面積であり、かつ、同一の縦横比となるＮ個の論理ページの印刷領域を決定する領域決定ステップと、
該各印刷領域の縦サイズと横サイズ、及び、前記取得ステップで取得された論理ページ毎の縦サイズと横サイズと論理ページのページ順とに基づいて、論理ページ毎に、物理ページにおける論理ページのサイズを示すサイズ情報と、物理ページ上における位置を示す位置情報とを含む影響情報を決定する決定ステップと、
前記決定ステップで決定された影響情報の内容に従って、前記領域決定ステップで決定された各印刷領域に、前記スプールファイルの各論理ページ内の描画データの物理ページにおける位置とサイズを計算し、計算処理された描画データを生成して、前記グラフィックエンジンに再度出力する再出力ステップと、
前記再出力ステップにより出力された計算処理済みの描画データを前記グラフィックエンジンから受け取り、前記印刷装置で印刷される印刷データを生成する印刷データ生成ステップとを含み、
前記決定ステップは、前記サイズ情報を決定する際、同一物理ページに配置される第１論理ページに設定された用紙向きと第２論理ページに設定された用紙向きとが異なる場合に、前記第１論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第１拡大縮小率を算出し、当該第１拡大縮小率を用いて第１論理ページの縦サイズおよび横サイズを決定し、かつ、前記第２論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第２拡大縮小率を算出し、当該第２拡大縮小率を用いて第２論理ページの縦サイズおよび横サイズを決定することを特徴とし、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取った場合に、前記生成ステップで前記スプールファイルを生成すべく当該描画データを振り分け、前記再出力ステップにより出力された計算処理済みの描画データを前記グラフィックエンジンから受け取った場合に、前記印刷データ生成ステップで前記印刷データを生成すべく当該計算処理済みの描画データを振り分ける振分ステップを更に備えることを特徴とする印刷制御方法。
【請求項４】
前記スプールファイルでスプールされた中間データの生成状況を監視して、該中間データに基づく印刷処理が可能であるかを判断する判断ステップを更に含み、
前記再出力ステップは、Ｎページ分の論理ページの中間データのスプールファイルが生成されており、前記判断ステップにより印刷処理が可能であると判断される場合に、計算処理した描画データを前記グラフィックエンジンに再度出力することを特徴とする請求項３記載の印刷制御方法。
【請求項５】
印刷対象用紙のレイアウトを行うことにより印刷装置で印刷される印刷データを生成するホストコンピュータで実行されるプログラムを記憶した記憶媒体であって、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取り、加工対象となる中間データとしてスプールファイルを生成するスプールファイル生成ステップと、
前記生成されたスプールファイルに対して、論理ページ単位に縦サイズと横サイズを取得する取得ステップと、
物理ページをＮ（Ｎ：自然数）分割して、同一の面積であり、かつ、同一の縦横比となるＮ個の印刷領域を決定する領域決定ステップと、
該各印刷領域の縦サイズと横サイズ、及び、前記取得ステップで取得された論理ページ毎の縦サイズと横サイズと論理ページのページ順とに基づいて、論理ページ毎に、物理ページにおける論理ページの縦サイズと横サイズを示すサイズ情報と、物理ページ上における位置を示す位置情報とを含む影響情報を決定する決定ステップと、
前記決定ステップで決定された影響情報の内容に従って、前記領域決定ステップで決定された各印刷領域に、前記スプールファイルの各論理ページ内の描画データの物理ページにおける位置とサイズを計算し、計算処理された描画データを生成して、前記グラフィックエンジンに再度出力する再出力ステップと、
前記再出力ステップにより出力された計算処理済みの描画データを前記グラフィックエンジンから受け取り、前記印刷装置で印刷される印刷データを生成する印刷データ生成ステップとを含み、
前記決定ステップは、前記サイズ情報を決定する際、同一物理ページに配置される第１論理ページに設定された用紙向きと第２論理ページに設定された用紙向きとが異なる場合に、前記第１論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第１拡大縮小率を算出し、当該第１拡大縮小率を用いて第１論理ページの縦サイズおよび横サイズを決定し、かつ、前記第２論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第２拡大縮小率を算出し、当該第２拡大縮小率を用いて第２論理ページの縦サイズおよび横サイズを決定することを特徴とし、
任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取った場合に、前記生成ステップで前記スプールファイルを生成すべく当該描画データを振り分け、前記再出力ステップにより出力された計算処理済みの描画データを前記グラフィックエンジンから受け取った場合に、前記印刷データ生成ステップで前記印刷データを生成すべく当該計算処理済みの描画データを振り分ける振分ステップを更に備えることを特徴とするコンピュータ読み取り可能なプログラムを記憶した記憶媒体。
【請求項６】
前記スプールファイルでスプールされた中間データの生成状況を監視して、該中間データに基づく印刷処理が可能であるかを判断する判断ステップを更に含み、
前記再出力ステップは、Ｎページ分の論理ページの中間データのスプールファイルが生成されており、前記判断ステップにより印刷処理が可能であると判断される場合に、計算処理した描画データを前記グラフィックエンジンに再度出力することを特徴とする請求項５記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷制御装置及び印刷制御方法並びに記憶媒体に係り、更に詳しくは、例えばパーソナルコンピュータ等の情報処理装置及びプリンタを備えたシステムで印刷を行う際に同一文書内に用紙サイズや向きが混在している場合、または、上記システムで拡大縮小印刷を行う場合等に好適な印刷制御装置及び印刷制御方法並びに記憶媒体に関する。
【０００２】
【従来の技術】
従来、プリンタで印刷を行う際に１枚の用紙上に１ページの印刷データを印刷するのではなく、１枚の用紙上に複数ページ分の印刷データを縮小配置して印刷する技術がある。この種の印刷は、Ｎページ印刷或いはＮｕｐ印刷と呼ばれており、推敲やレイアウト確認等を目的とした文書の試し刷りを行う場合、出力用紙を少なくしたい場合、フォントサイズやレイアウトといった印刷体裁を変えて印刷したいような場合等、さまざまな用途に利用されている。
【０００３】
また、この種の従来システムで拡大縮小印刷を行う場合、ホストコンピュータ上で解像度を操作し印刷データの拡大縮小を行うか、または、印刷装置が前記機能を有するときは印刷装置自体が印刷データの拡大縮小を行うのが一般的であった。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来技術においては下記のような問題があった。即ち、従来のＮページ印刷では、全てのページサイズ、ページ向きが同じであるような文書を印刷することを想定している。このため、複数のページサイズやページ向きが混在しているような文書をＮページ印刷しようとすると、同一用紙にＮページ分印刷していないにも関わらず、ページサイズが変わった所で排紙してしまうという問題がある。
【０００５】
また、実現方法によっては途中で排紙しないようなＮページ印刷方法もあるが、この場合は、用紙サイズが変わったことによって、印刷データが印刷領域からはみ出してしまったりするという問題がある。
【０００６】
また、従来のシステムにおいては、上述した如く、拡大縮小印刷を行う場合、ホストコンピュータ上で解像度を操作し印刷データの拡大縮小を行うか、または、印刷装置が前記機能を有するときは印刷装置自体が印刷データの拡大縮小を行うのが一般的であったので、前者の場合は、アプリケーションがその解像度で印刷データを再構築するため、文書の出力形態が変わってしまうことがあるという欠点があった。
【０００７】
また、後者の場合は、印刷装置自体が上記機能を有していなければ、拡大縮小印刷を行うことができないという欠点があった。
【０００８】
更に、従来のシステムにおいては、拡大縮小印刷を行う際、用紙の適正な位置に印字を行うという考慮がなされていないという問題があった。更にまた、従来のシステムが複数の論理ページ（アプリケーションで扱われるページ）を１枚の物理ページ（実際に印刷出力されるページ）に印刷することが可能な機能を有する場合、当該印刷において印刷データを正確に用紙の左右、上下対称な位置に印刷することが考慮されていないという問題があった。
【０００９】
本発明は、上述した点に鑑みなされたものであり、同一文書内に用紙サイズや用紙向きが混在しているような場合でも、途中で排紙したり印刷領域からはみ出してしまうことなく、用紙サイズや用紙向きが混在していない文書に近い出力結果を得ること等を可能とした印刷制御装置及び印刷制御方法並びに記憶媒体を提供することを目的とする。
【００１１】
また、従来のＮｕｐ印刷機能、自動レイアウト機能のないプリンタに対応するプリンタドライバ部分、つまりグラフィックエンジン（例えばＧＤＩ（Graphical Device Interface））が出力したＤＤＩ（Device Driver Interface）関数からＰＤＬ（Page Description Language）を生成する部分を新たに制作することなしに、複数種類の用紙（例えば、用紙サイズや用紙向きなど）が混在した印刷データにおけるＮｕｐ印刷を行えるよう制御することを可能とする印刷制御装置及び印刷制御方法並びに記憶媒体を提供することを目的としている。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本願の第１の発明は、印刷対象用紙のレイアウトを行うことにより印刷装置で印刷される印刷データを生成するホストコンピュータとしての印刷制御装置であって、任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取り、加工対象となる中間データとしてスプールファイルを生成するスプーラ手段と、前記生成されたスプールファイルに対して、論理ページ単位に縦サイズと横サイズを取得する取得手段と、物理ページをＮ（Ｎ：自然数）分割して、同一の面積であり、かつ、同一の縦横比となるＮ個の印刷領域を決定する領域決定手段と、該各印刷領域の縦サイズと横サイズ、および、前記取得手段で取得された論理ページ毎の縦サイズと横サイズと論理ページのページ順とに基づいて、論理ページ毎に、物理ページにおける論理ページの縦サイズと横サイズとを示すサイズ情報と、物理ページ上における位置を示す位置情報とを含む影響情報を決定する決定手段と、前記決定手段で決定された影響情報の内容に従って、前記領域決定手段で決定された各印刷領域に、前記スプールファイルの各論理ページ内の描画データの物理ページにおける位置とサイズを計算し、計算処理された描画データを生成して、前記グラフィックエンジンに再度出力する再出力手段と、前記再出力手段により出力された計算処理済みの描画データを前記グラフィックエンジンから受け取り、前記印刷装置で印刷される印刷データを生成する印刷データ生成手段とを備え、前記決定手段は、前記サイズ情報を決定する際、同一物理ページに配置される第１論理ページに設定された用紙向きと第２論理ページに設定された用紙向きとが異なる場合に、前記第１論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第１拡大縮小率を算出し、当該第１拡大縮小率を用いて第１論理ページの縦サイズおよび横サイズを決定し、かつ、前記第２論理ページの縦サイズおよび横サイズが前記印刷領域に収まる第２拡大縮小率を算出し、当該第２拡大縮小率を用いて第２論理ページの縦サイズおよび横サイズを決定することを特徴とし、任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取った場合に、前記スプーラ手段に当該描画データを振り分け、前記再出力手段により出力された計算処理済みの描画データを前記グラフィックエンジンから受け取った場合に、前記印刷データ生成手段に当該計算処理済みの描画データを振り分ける振り分け手段を更に備えることを特徴とする。
【００１３】
また、前記スプールファイルでスプールされた中間データの生成状況を監視して、該中間データに基づく印刷処理が可能であるかを判断する判断手段を更に備え、前記再出力手段は、Ｎページ分の論理ページの中間データのスプールファイルが生成されており、前記判断手段により印刷処理が可能であると判断される場合に、計算処理した描画データを前記グラフィックエンジンに再度出力することを特徴とする。
【００１４】
また、任意のアプリケーションにより生成された文書の描画データをオペレーティングシステムの描画手段であるグラフィックエンジンから受け取った場合に、前記スプーラ手段に当該描画データを振り分け、前記再出力手段により出力された計算処理済みの描画データを前記グラフィックエンジンから受け取った場合に、前記印刷データ生成手段に当該計算処理済みの描画データを振り分ける振り分け手段を更に備えることを特徴とする。
【００１６】
上記目的を達成するため、本発明のその他の解決手段は、上記装置を制御する方法、もしくは上記装置を制御するためのコンピュータ読み取り可能なプログラムが格納された記憶媒体において実現する。
【００７２】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００７３】
〔１〕第１の実施の形態
先ず、第１の実施の形態に係るプリンタ制御システムの構成を図１のブロック図を参照して説明する。尚、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ローカルエリアネットワーク）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：広域ネットワーク）等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用することができることは言うまでもない。
【００７４】
また、本発明を適用可能な実際の商品の形態としては、ＦＤ（Ｆｌｌｏｐｙ  Ｄｉｓｋ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）、インターネットＷｅｂサイト、Ｎｉｆｔｙ  Ｓｅｒｖｅ等のＢＢＳ（Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ：コンピュータを利用したメッセージ交換システム）を挙げることができる。即ち、プリンタ制御システムに対して本発明のプログラムをＦＤやＣＤ−ＲＯＭから供給し、また、プリンタ制御システムをインターネットやＮｉｆｔｙ  Ｓｅｒｖｅに接続することが可能である。
【００７５】
第１の実施の形態に係るプリンタ制御システムは、ホストコンピュータ３０００とプリンタ１５００とから構成されている。ホストコンピュータ３０００は、ＣＰＵ１と、ＲＡＭ２と、ＲＯＭ３と、キーボードコントローラ（ＫＢＣ）５と、ＣＲＴコントローラ（ＣＲＴＣ）６と、ディスクコントローラ（ＤＫＣ）７と、プリンタコントローラ（ＰＲＴＣ）８と、キーボード（ＫＢ）９と、ＣＲＴディスプレイ（ＣＲＴ）１０と、外部メモリ１１とを備えている。また、プリンタ１５００は、ＣＰＵ１２と、ＲＡＭ１９と、ＲＯＭ１３と、入力部１８と、印刷部インタフェース（Ｉ／Ｆ）１６と、メモリコントローラ（ＭＣ）２０と、印刷部１７と、操作部１５０１と、外部メモリ１４とを備えている。
【００７６】
先ず、ホストコンピュータ３０００各部の構成を詳述すると、ＣＰＵ１は、システムバス４に接続された各デバイスを総括的に制御する中央処理装置であり、ＲＯＭ３のプログラム用ＲＯＭ３ｂ（後述）或いは外部メモリ１１に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行する。また、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴディスプレイ１０上でのＷＹＳＩＷＹＧ（Ｗｈａｔ  Ｙｏｕ  Ｓｅｅ  Ｉｓ  Ｗｈａｔ  Ｙｏｕ  Ｇｅｔ：ＣＲＴディスプレイ画面上に見えているそのままの大きさや形で印刷できる機能）を可能としている。
【００７７】
更に、ＣＰＵ１は、ＣＲＴディスプレイ１０上のマウスカーソル（図示略）等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはプリンタ１５００を使用して印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタ１５００の設定や印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができるようになっている。
【００７８】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。ＲＯＭ３は、フォント用ＲＯＭ３ａと、プログラム用ＲＯＭ３ｂと、データ用ＲＯＭ３ｃとを備えている。フォント用ＲＯＭ３ａ或いは外部メモリ１１は、上記文書処理の際に使用するフォントデータ等を記憶する。プログラム用ＲＯＭ３ｂ或いは外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）等を記憶する。データ用ＲＯＭ３ｃ或いは外部メモリ１１は、上記文書処理等を行う際に使用する各種データを記憶する。
【００７９】
キーボードコントローラ（ＫＢＣ）５は、キーボード９やポインティングデバイス（図示略）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェース２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。キーボード９は、各種キーを備えている。
【００８０】
ＣＲＴディスプレイ（ＣＲＴ）１０は、図形、イメージ、文字、表等を表示する。外部メモリ１１は、ハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等から構成されており、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下、プリンタドライバ）等を記憶する。
【００８１】
上述したＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８は、コンピュータ制御ユニット２０００上に配設されている。
【００８２】
次に、プリンタ１５００各部の構成を詳述すると、ＣＰＵ１２は、システムバス１５に接続された各デバイスを総括的に制御する中央処理装置であり、ＲＯＭ１３のプログラム用ＲＯＭ１３ｂ（後述）に記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいて、印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、ＣＰＵ１２は、入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、プリンタ１５００内の情報等をホストコンピュータ３０００に通知できる構成となっている。
【００８３】
ＲＡＭ１９は、ＣＰＵ１２の主メモリやワークエリア等として機能し、増設ポートに接続されるオプションＲＡＭ（図示略）によりメモリ容量を拡張することができるように構  成されている。尚、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。ＲＯＭ１３は、フォント用ＲＯＭ１３ａと、プログラム用ＲＯＭ１３ｂと、データ用ＲＯＭ１３ｃとを備えている。フォント用ＲＯＭ１３ａは、上記出力情報を生成する際に使用するフォントデータ等を記憶する。プログラム用ＲＯＭ１３ｂは、ＣＰＵ１２の制御プログラム等を記憶する。データ用ＲＯＭ１３ｃは、プリンタ１５００にハードディスク等の外部メモリ１４が接続されていない場合には、ホストコンピュータ３０００上で利用される情報等を記憶する。
【００８４】
入力部１８は、双方向性インタフェース２１を介してプリンタ１５００とホストコンピュータ３０００との間におけるデータの送受を行う。印刷部インタフェース（Ｉ／Ｆ）１６は、ＣＰＵ１２と印刷部１７との間におけるデータの送受を行う。メモリコントローラ（ＭＣ）２０は、外部メモリ１４のアクセスを制御する。印刷部１７は、ＣＰＵ１２の制御に基づき印刷動作を行う。操作部１５０１は、各種操作のためのスイッチや表示手段（例えばＬＥＤ表示器）等を備えている。
【００８５】
外部メモリ１４は、ハードディスク（ＨＤ）、ＩＣカード等から構成されており、プリンタ１５００にオプションとして接続される。外部メモリ１４は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶するものであり、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。尚、外部メモリ１４は、１個に限らず複数個備えることが可能となっている。即ち、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを、プリンタ１５００に複数接続できるように構成されていてもよい。更に、ＮＶＲＡＭ（図示略）を有し、操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００８６】
上述したＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、メモリコントローラ（ＭＣ）２０は、プリンタ制御ユニット１０００上に配設されている。
【００８７】
図２はプリンタ等の印刷装置が直接接続、或いはネットワーク経由で接続されているホストコンピュータ３０００における典型的な印刷処理の構成を示すブロック図である。図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、及びシステムスプーラ２０４は、上記図１の外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラムモジュールである。
【００８８】
また、アプリケーション２０１及びプリンタドライバ２０３は、外部メモリ１１のＦＤやＣＤ−ＲＯＭ或いはネットワーク（以上図示略）を経由して外部メモリ１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、該アプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００８９】
グラフィックエンジン２０２は、印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数からＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経てインタフェース２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００９０】
第１の実施の形態に係るプリンタ制御システムは、上記図１及び図２で示すプリンタ１５００とホストコンピュータ３０００からなる印刷システムに加えて、更に図３に示す如くアプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【００９１】
図３は上記図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦、中間コードからなるスプールファイル３０３を生成する構成を示したものである。上記図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのは、プリンタドライバ２０３がグラフィックエンジン２０２からの全ての印刷命令をプリンタ１５００の制御コマンドへ変換し終わった時点である。
【００９２】
これに対して、図３のシステムでは、アプリケーション２０１が印刷処理から開放されるのは、スプーラ３０２が全ての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図３で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これにより、アプリケーションからの印刷データに対して、拡大／縮小や、複数ページを１ページに縮小して印刷するＮアップ印刷等、アプリケーションの持たない機能を実現することができる。
【００９３】
これらの目的のために、上記図２のシステムに対し、図３の如く中間コードデータでスプールするよう、システムの拡張がなされてきている。尚、印刷データの加工を行うためには、通常、プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上或いは外部メモリ１１上に保管する。
【００９４】
以下、図３の詳細を説明する。図示の如く、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令を送付する。
【００９５】
スプーラ３０２は、受け取った印刷命令を中間コードに変換してスプールファイル３０３に出力する。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定をプリンタドライバ２０３から取得してスプールファイル３０３に保存する。尚、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更に、スプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。
【００９６】
その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従ってプリンタドライバ２０３が印刷データを作成できるかを判断する。ここでスプールファイル３０３は、アプリケーションが出力したページである論理ページ単位で中間データを管理している。また、スプールファイル２０３は、前述したように、利用者がプリンタドライバ２０３に対して設定した加工設定（例えば、４ｕｐ（１ページの紙に４ページ分のデータを縮小して印刷すること）印刷の設定）を管理している。よって、プリンタドライバ２０３が印刷データを作成できるかの判断は、スプールファイル３０３に格納されている加工設定に基づいて必要な論理ページがすべてスプールファイル３０３に管理されていれば、印刷データの作成に必要なデータが揃っているので印刷データの作成が可能であると判断できる。
【００９７】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用してプリンタドライバにより印刷データを作成できると判断した場合は、スプールファイルマネージャ３０４は、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間データの印刷処理を行うように指示する。このときに、スプールファイルマネージャ３０４はデスプーラ３０５に対して加工設定に伴う論理ページへの影響情報も指示する。例えば、４ｕｐ印刷の設定がなされている場合に、それぞれの論理ページが物理ページのどこに印刷されるかを示す位置情報と、物理ページにおける論理ページのサイズを示すサイズ情報とをスプールファイルマネージャ３０４が計算し、位置情報とサイズ情報とを含む影響情報を論理ページごとにデスプーラに対して指示する。
【００９８】
デスプーラ３０５は、スプールファイル３０３に含まれる中間コードをスプールファイルマネージャ３０４によって指示される影響情報の内容に従って加工し、加工された中間データをＧＤＩ関数に変換し、グラフィックエンジン２０２に出力する。デスプーラ３０５は、以下のような加工を行う。デスプーラ３０５は、スプールファイル３０３から所得した論理ページと、スプールファイルマネージャ３０４から取得した影響情報とに基づいて、論理ページ内に描画される文字データの物理ページにおける位置とサイズを再計算する。具体的には、例えば論理ページの用紙サイズと物理ページの用紙サイズが同じで、且つ４ｕｐの場合は、データサイズは単純に１／４倍される。データ位置に関しては、デスプーラ３０５が物理ページ上の該論理ページの位置情報から割り当てられる論理ページ位置を認識し、その論理ページ内のデータ位置を距離が１／４倍を考慮して求めるのである。また、論理ページの用紙サイズと物理ページの用紙サイズが異なり、且つＮｕｐ指定されているときは、後述するような計算を行い拡大縮小率を導出する。このように加工して得られた中間データをデスプーラ３０５はＧＤＩ関数に変換してグラフィックエンジン２０２に出力する。
【００９９】
グラフィックエンジン２０２は、デスプーラ３０５から受け取ったＧＤＩ関数からＤＤＩ関数を生成し、ディスパッチャ３０１にＤＤＩ関数からなる印刷命令を出力する。グラフィックエンジン２０２からディスパッチャが受け取ったＤＤＩ関数の印刷命令がデスプーラ３０５からグラフィックエンジン２０２へ発行されたＧＤＩ関数の印刷命令の場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。プリンタドライバ２０３は、受け取った印刷命令に基づいてプリンタ制御コマンドからなる印刷データを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【０１００】
図１０は第１の実施の形態に係るプリンタ１５００の一例としてレーザビームプリンタ（以下、ＬＢＰと略称）の場合における内部構造を示す断面図である。ＬＢＰとしてのプリンタ１５００は、文字パターンデータ等を入力して記録紙に印刷することができる。プリンタ１５００は、供給されるプリンタ制御コマンド等を基に記録媒体である記録紙上に像を形成するＬＢＰ本体７４０に、プリンタ制御ユニット１０００と、操作部１５０１と、レーザドライバ７０２と、半導体レーザ７０３と、回転多面鏡７０５と、静電ドラム７０６と、現像ユニット７０７と、用紙カセット７０８と、給紙ローラ７０９と、搬送ローラ７１０と、外部メモリ７１１と、定着部７１２と、切り替えくさび７１３と、フェイスアップ排出部７１４と、フェイスダウン排出部７１５と、排紙トレイ７１６とを備えている。
【０１０１】
上記各部の構成を動作と共に詳述すると、プリンタ制御ユニット１０００は、ＬＢＰ本体７４０全体の制御及び文字パターン情報等を解析するものであり、主にプリンタ制御コマンドをビデオ信号に変換してレーザドライバ７０２に出力する。プリンタ制御ユニット１０００には、フォントデータやページ記述言語のエミュレーションプログラム等を記憶する外部メモリ７１１を接続することもできる。操作部１５０１には、上述した如く操作のためのスイッチ及び表示手段（例えばＬＥＤ表示器）等が配設されている。
【０１０２】
レーザドライバ７０２は、半導体レーザ７０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ７０３から発射されるレーザ光７０４のオン・オフ切り替えを行う。半導体レーザ７０３は、回転多面鏡７０５へ向けてレーザ光を発射する。回転多面鏡７０５は、レーザ光７０４を左右方向に振り、静電ドラム７０６上を走査させる。静電ドラム７０６は、レーザ光７０４の走査により文字パターンの静電潜像がドラム表面に形成される。
【０１０３】
現像ユニット７０７は、静電ドラム７０６の周囲に配設されており、静電潜像を現像する。現像後は、記録紙に転写される。用紙カセット７０８は、記録紙として例えばカットシート記録紙を収納する。給紙ローラ７０９及び搬送ローラ７１０は、給紙カセット７０８内のカットシート記録紙をＬＢＰ本体７４０内に取り込み、静電ドラム７０６に供給する。この場合、用紙カセット７０８の蓋部上面に設けられた手挿し給紙トレイ（図示略）からカットシート記録紙を供給することもできる。
【０１０４】
定着部７１２は、カットシート記録紙に転写されたトナー像を加熱してカットシート記録紙上に定着させる。画像が形成されたカットシート記録紙は、切り替えくさび７１３を上向きに設定した場合には、フェイスアップ排出部７１４から記録面を上にした状態で排紙トレイ７１６に排出され、また、切り替えくさび７１３を下向きに設定した場合には、フェイスダウン排出部７１５から記録面を下にした状態で排出される。
【０１０５】
図１１は、本発明の実施の形態に係るプリンタ制御システムにおける印刷モード制御プログラムを含む関連モジュールがホストコンピュータ３０００上のＲＡＭ２へロードされ、実行可能となった状態を示している。即ち、ＲＡＭ２には、アプリケーション６０１、空きメモリ６０２、関連データ６０３、印刷関連モジュール６０４、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）６０５、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ：入出力装置のインタフェースで必要な最も基本的な処理を行うプログラム）６０６がロードされている。
【０１０６】
次に、上記の如く構成してなる第１の実施の形態に係るプリンタ制御システムのデスプーラ３０５の処理、Ｎページ印刷における処理、Ｎページ印刷における用紙決定方法の処理について、図４乃至図７のフローチャートを中心に詳細に説明する。
【０１０７】
図４はデスプーラ３０５がスプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、もう一度、グラフィックエンジン２０２経由で出力する際の処理の概略を示すフローチャートである。実際には加工内容によってさまざま処理を行うが、加工内容に依存しない中核となるフローを示すと本図のようになる。
【０１０８】
先ず、ステップＳ４０１において、デスプーラ３０５は、スプールファイル３０３から加工設定及び入力ページデータを読み込む。例えば、加工内容として逆順印刷（ページ順を逆にした印刷）が指定されているとすれば、読み込む入力ページデータは最終ページのデータからというように、必要に応じて、または印刷処理速度や必要メモリ削減等の最適化を目的として、読み込み方も加工内容により変化させることが可能である。
【０１０９】
更に、ステップＳ４０２において、デスプーラ３０５は、加工設定の内容に従った加工処理を行う。特別な加工設定がされていない場合は、単に中間コードをグラフィックエンジン２０２の入力形式であるＧＤＩ関数に変換する。余白付けや拡縮等の加工設定が指定されていれば、余白にあった座標移動変換や、拡縮率にあった座標系の変換も併せて行われる。次に、ステップＳ４０３において、グラフィックエンジン２０２の入力形式となったコードをグラフィックエンジン２０２に対して送信する。その後、ステップＳ４０４において、更に変換すべき中間コードがある場合は、再び上記ステップＳ４０１へ戻り処理を続ける。変換すべき中間コードがない場合は、本処理を終了する。
【０１１０】
尚、上記図４のフローは概略であり、上記ステップＳ４０１で中間コードをまとめ読みするようになっているならば、まとめて読んだ分の中間コードに対して上記ステップＳ４０２、ステップＳ４０３の処理を繰り返し、読み込んだ中間コードの処理が終わったならば上記ステップＳ４０１へ戻るというように、実装形式に細かなバリエーションが存在することは言うまでもない。
【０１１１】
図５は上記図４のステップＳ４０２において加工設定に従って行われる各種加工処理のうち、特に、本発明に特有の部分を抜き出した処理の概略を示すフローチャートである。
【０１１２】
先ず、ステップＳ５０１において、デスプーラ３０５は、Ｎページ分の入力ページのサイズ情報を読み込み、更に、ステップＳ５０２において、Ｎページ分の入力ページデータを印刷するための出力用紙を決定する。出力用紙の決定方法は出力形態等により異なり、例えば両面印刷のＮページ印刷のように両面を考慮して出力用紙を決定する場合は、Ｎ＊２の２Ｎページ分の入力ページサイズ情報を読み込み、２Ｎページ分の入力ページサイズ情報から出力用紙を決定する必要がある。
【０１１３】
逆に出力用紙を途中で変更する必要が無ければ、該ステップＳ５０２は省略することも可能である。例えば定型拡縮のように出力用紙サイズがユーザの指定した用紙サイズで固定しなくてはいけない場合には、出力サイズは入力用紙サイズから決定するのではなく、ユーザの指定した用紙サイズとなる。
【０１１４】
更に、ステップＳ５０３において、デスプーラ３０５は、上記ステップＳ５０２において決定された出力用紙サイズをＮ分割する。ここで単に出力用紙の紙サイズをそのままＮ分割すると、有効印字領域の関係で印刷できない部分が生じるため、出力用紙の用紙サイズ情報として用紙の有効印字領域を求め、Ｎ分割する。次に、ステップＳ５０４において、デスプーラ３０５は、Ｎ分割された領域（エリア）に収めるための拡縮率を求める。ここで有効印字領域は、プリンタによって決まっておりプリンタドライバ２０３に問い合わせることにより簡単に得られる。
【０１１５】
Ｎ分割された領域（エリア）の縦、横のサイズが（Ｈ、Ｗ）、入力ページサイズ（ここでは、論理ページサイズ）が（ｈ、ｗ）とすると、Ｗ／ｗとＨ／ｈのうち小さい方を選び、その小さい方の値に基づいてサイズを計算すれば、縦横比を変えずに領域内に収めることができる。具体的には、Ｎ分割エリアの縦、横のサイズが（２０、１０）であり、入力される論理ページのサイズが（５０、３０）であるのなら、２０／５０と１０／３０とでは、１０／３０の方が小さいので、この１／３という値を選び、論理ページのサイズに１／３を掛け算して、入力ページサイズを（５０／３、１０）とするように求めるのである。入力ページサイズとして用紙サイズでなく、論理ページの有効印字領域や、実際に描画されているデータの外接矩形を選べば更に大きな拡縮率を得ることも可能である。この後、ステップＳ５０５において、デスプーラ３０５は、上記拡縮された入力ページデータを領域内にレイアウトする。
【０１１６】
このように、デスプーラ３０５が、すべての論理ページに対して、レイアウト位置と拡縮サイズを求めているが、これに限るものではなく、この処理はスプールファイルマネージャ３０４が行い、レイアウトするための中間データの加工をデスプーラ３０５が行うようにしてもよい。
【０１１７】
従来のＮページ印刷では、全てのページに対して同じ拡縮率を使用していたが、本発明の第１の実施の形態では、入力ページ毎に異なる拡縮率を適用することが可能であることが特徴であり、上記図５のステップＳ５０４においては入力ページ毎に拡縮率を求めている。
【０１１８】
図６及び図７はＮページ印刷における上記図５のステップＳ５０２での出力用紙サイズ決定方法の例を示すフローチャートである。
【０１１９】
ステップＳ６０２乃至ステップＳ６０４の処理を１〜Ｎまで繰り返す（ステップＳ６０１〜Ｓ６０５）。即ち、先ず、ステップＳ６０２において、デスプーラ３０５は、Ｉ（Ｉ＝０〜Ｎ）番目の入力用紙Ｓと向きＯの組（Ｓ、Ｏ）が記憶済みであるか否かを判定し、記憶済みでない場合は、ステップＳ６０３において、（Ｓ、Ｏ）の組を新たに記憶すると共にカウントを１とする。他方、記憶済みの場合は、ステップＳ６０４において、デスプーラ３０５は、（Ｓ、Ｏ）の組のカウントをインクリメントする。
【０１２０】
上記ステップＳ６０１〜Ｓ６０５の処理後、ステップＳ６０６において、デスプーラ３０５は、最大カウントを有する（Ｓ、Ｏ）の組が一つであるか否かを判定し、（Ｓ、Ｏ）の組が一つでない場合は、ステップＳ６０７において、最大カウントを有する（Ｓ１、Ｏ１）、（Ｓ２、Ｏ２）、・・・の組の中で一番若いページで使用されている組を出力用紙及び用紙向きに決定する。他方、（Ｓ、Ｏ）の組が一つである場合は、ステップＳ６０８において、デスプーラ３０５は、当該（Ｓ、Ｏ）の組を出力用紙及び用紙向きに決定する。
【０１２１】
即ち、本例では、４ページからなる文書を４ページ印刷する場合、１ページ目から順に（Ａ４、縦）、（Ｂ４、横）、（Ｂ４、横）、（Ａ４、縦）とすると、（Ａ４、縦）と（Ｂ４、横）がカウント２で同数であるので、ステップＳ６０７へ移行し、（Ａ４、縦）の一番若い番号は１、（Ｂ２、横）の一番若い番号は２であるため、若い番号で使用されている（Ａ４、縦）が用紙サイズ・用紙向きとして選択される。
【０１２２】
図８は第１の実施の形態に係るＮページ印刷（Ｎ＝４）の場合における出力結果の例を示す図である。最初の例は用紙向きが混在している場合で、用紙としては全てＡ４であるが、用紙向きは縦横が混在している。（Ａ４、縦）が３ページ、（Ａ４、横）が１ページなので、（Ａ４、縦）の用紙サイズ・用紙向きが採用され、用紙向きの異なる４ページ目だけが他の３ページと拡縮率を変えて、もしくは向きを変えて印刷される。二つ目の例は用紙サイズが混在している場合で、（Ａ４、縦）が３ページ、（Ａ３、縦）が１ページであるので、（Ａ４、縦）用紙が選択され、Ａ３用紙である４ページ目が他のページと異なる拡縮率で縮小されて印刷される。
【０１２３】
上述したように、第１の実施の形態によれば、プリンタ制御システムは、印刷データのページサイズ情報に基づき用紙サイズ及び用紙向きを決定し、用紙をＮ（自然数）分割して印刷領域を決定し、各印刷領域のサイズ及びページデータ毎のサイズに基づきページデータ毎に独立した拡縮率で拡縮し、拡縮した各ページデータを各印刷領域に配置するデスプーラ３０５を有するため、Ｎページ印刷する文書が同一文書内に用紙サイズや用紙向きが混在しているような場合でも、用紙サイズや用紙向きが変わったときに、途中で排紙したり印刷領域からはみ出してしまうことなく、Ｎページ印刷することができる。これにより、用紙サイズや用紙向きが混在していない文書に近い出力結果を得ることができる。
【０１２４】
〔２〕第２の実施の形態
第２の実施の形態に係るプリンタ制御システムは、上記第１の実施の形態と同様に、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、メモリコントローラ（ＭＣ）２０、印刷部１７、操作部１５０１、外部メモリ１４を備えたプリンタ１５００とから構成されている（上記図１参照）。また、第２の実施の形態に係るホストコンピュータ３０００における印刷データ生成を行う制御構成（上記図２参照）、上記図２を拡張した印刷データ生成を行う制御構成（上記図３参照）、プリンタ１５００の内部構成（上記図１０参照）も、上記第１の実施の形態と同様であるため説明は省略する。また、第２の実施の形態においても、前述したような第１の実施の形態の処理が可能である。
【０１２５】
図９は第２の実施の形態に係る用紙分割方法の例を示す図である。Ｎページ印刷では、Ｎがある自然数Ｉの二乗となるような場合（Ｎ＝４、９、１６・・・）は、縦横方向ともＩ分割すればよいが、Ｎが二乗の形で表すことのできないような数であるＮ＝２やＮ＝８といった分割も行われる。このような場合、通常は用紙向きを入力ページから変更し、例えばＮ＝２では、（Ａ４、縦）の用紙であれば（Ａ４、横）の用紙にし、出力用紙での長辺となる横方向に２分割して入力ページを縮小配置する。
【０１２６】
しかし、長辺が短辺の２倍以上となるような用紙では、長辺を２分割しても依然として短辺方向は長辺方向の２分割した長さよりも長いままであり、用紙向きを変えないで印刷した方が大きな分割領域を得ることができる。従って、出力用紙を決定後に出力用紙の縦横比を見て、長辺方向に２分割しても短辺と同じかもしくは長い場合は用紙方向を変更しないで印刷する。
【０１２７】
上述したように、第２の実施の形態によれば、プリンタ制御システムは、用紙分割数Ｎが２の倍数であり且つ自然数の二乗でない場合は、用紙分割時に長辺方向長さが短辺方向長さの２倍以上の用紙については用紙向きを変更せず、長辺方向長さが短辺方向長さの２倍以下の用紙については用紙向きを変更するため、長辺方向長さが短辺方向長さの２倍以上あるような細長い用紙の場合でも、より大きな分割領域を得ることが可能となり、より大きな表示サイズで印刷することができる。
【０１２８】
〔３〕第３の実施の形態
第３の実施の形態に係るプリンタ制御システムは、上記第１の実施の形態と同様に、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、メモリコントローラ（ＭＣ）２０、印刷部１７、操作部１５０１、外部メモリ１４を備えたプリンタ１５００とから構成されている（上記図１参照）。また、第３の実施の形態に係るホストコンピュータ３０００における印刷データ生成を行う制御構成（上記図２参照）、上記図２を拡張した印刷データ生成を行う制御構成（上記図３参照）、プリンタ１５００の内部構成（上記図１０参照）も、上記第１の実施の形態と同様であるため説明は省略する。また、本第３の実施の形態においても、前述したような第１および第２の実施の形態における処理が可能である。
【０１２９】
第３の実施の形態は、本発明によるレイアウト方法をＮ＝１の場合であってもそのまま適用可能としたものである。上記図７のステップＳ６０６で（Ｓ、Ｏ）をそのまま用紙サイズとするのでなく、（Ａ４、Ｏ）を出力用紙、用紙向きとして指定し、そして、上記図５のステップＳ５０３で出力用紙を１分割つまり分割しないという処理を行う。その後、ステップＳ５０４でＡ４用紙の有効印字領域内に入力ページのデータを縦横比が変わらないような最大の拡縮比で拡縮して印刷する。
【０１３０】
この場合、文書が全て同じ用紙サイズ（Ａ３、縦）であっても、用紙サイズが混在している場合でも、同様に元のデータがはみ出さずに縦横比も変わらないような最大の拡縮率でＡ４用紙に印刷することができる。
【０１３１】
上述したように、第３の実施の形態によれば、プリンタ制御システムは、上記第１の実施の形態のレイアウト制御を出力用紙を１分割（非分割）する場合に適用可能としているため、印刷する文書が全て同じ用紙サイズの場合でも、用紙サイズが混在しているような場合でも、元のデータが用紙の印刷領域からはみ出すことなく、且つ縦横比も変わらないような最大の拡縮率で用紙に印刷することができる。
【０１３２】
〔４〕第４の実施の形態
第４の実施の形態に係るプリンタ制御システムは、上記第１の実施の形態と同様に、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、メモリコントローラ（ＭＣ）２０、印刷部１７、操作部１５０１、外部メモリ１４を備えたプリンタ１５００とから構成されている（上記図１参照）。また、第４の実施の形態に係るホストコンピュータ３０００における印刷データ生成を行う制御構成（上記図２参照）、上記図２を拡張した印刷データ生成を行う制御構成（上記図３参照）、プリンタ１５００の内部構成（上記図１０参照）も、上記第１の実施の形態と同様であるため説明は省略する。また、本第４の実施の形態においても、前述したような第１及び第２並びに第３の実施の形態の処理が可能である。
【０１３３】
第４の実施の形態は、本発明によるレイアウト方法を他のレイアウト方式と組み合わせて使うことを可能としたものである。例えば余白が、指定されている方向にパラメータで指定された分だけ印刷データ全体を平行移動することにより実現しているとする（これは最も一般的な余白の設定方法である）。本発明によるレイアウトと該余白設定を組み合わせる場合、上記図５のステップＳ５０５で印刷データを拡縮・レイアウトした後またはレイアウトと同時に、余白分、印刷データを平行移動すればよい。
【０１３４】
上述したように、第４の実施の形態によれば、プリンタ制御システムは、上記第１の実施の形態のレイアウト制御を例えば用紙上に余白を設定する場合にも適用可能としているため、Ｎページ印刷する文書が同一文書内に用紙サイズや用紙向きが混在しているような場合でも、用紙サイズや用紙向きが変わったときに、途中で排紙したり印刷領域からはみ出してしまうことなく、Ｎページ印刷することができる。これにより、用紙サイズや用紙向きが混在していない文書に近い出力結果を得ることができる。
【０１３５】
〔５〕第５の実施の形態
第５の実施の形態に係るプリンタ制御システムは、上記第１の実施の形態と同様に、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、メモリコントローラ（ＭＣ）２０、印刷部１７、操作部１５０１、外部メモリ１４を備えたプリンタ１５００とから構成されている（上記図１参照）。また、第５の実施の形態に係るホストコンピュータ３０００における印刷データ生成を行う制御構成（上記図２参照）、上記図２を拡張した印刷データ生成を行う制御構成（上記図３参照）、プリンタ１５００の内部構成（上記図１０参照）も、上記第１の実施の形態と同様であるため説明は省略する。また、本第５の実施の形態においても、前述したような実施の形態の処理が可能である。
【０１３６】
第５の実施の形態は、拡大縮小が外部から指定された場合に、ホストコンピュータ側でその拡縮率に基づいて加工された印刷データを生成し、プリンタ側では拡縮の機能を結う指定いなくても拡大縮小処理を可能としたものである。
【０１３７】
このような第５の実施の形態に係るプリンタ制御システムにおける各処理について、図１２〜図２０のフローチャートを中心に詳細に説明する。
【０１３８】
図１２はスプーラ３０２の処理の流れを示すフローチャートである。先ず、ディスパッチャ３０１からスプーラ３０２に印刷命令が来た時、プリンタドライバを介してユーザが設定した拡大縮小印刷を本システムが実現させるために、入力用紙の有効印字領域、出力用紙のサイズ、出力用紙の有効印字領域、オフセット値及び設定された拡大縮小モードの取得処理（ステップＳ１２０１）が行われる。これは、前記設定値をプリンタドライバより、取得命令またはディスパッチャ３０１を介して渡ってくるパラメータからこれらを取得する処理である。
【０１３９】
そして、入力用紙の有効印字領域、出力用紙のサイズ、出力用紙の有効印字領域、オフセット値、設定された拡大縮小モードの一時保存処理（ステップＳ１２０２）が行われる。これは、先に取得された各種のデータをスプールファイル３０３へ保存する処理である。これにより、デスプーラ３０４において、印刷データを再生する時に拡大縮小印刷を行うためのデータを提供することができるわけである。また、ここでは、その他の印刷のためのデータの取得、一時保存は、図１２に示す前処理、後処理で行われるものとする。その後、上述したようにデスプーラ３０４による中間データ形式からＧＤＩ関数形式への印刷データの生成処理が行われるわけである。
【０１４０】
図１３は拡大縮小印刷のための処理の流れを示すフローチャートである。先ず、デスプーラ３０５によって、入力用紙の有効印字領域、出力用紙のサイズ、出力用紙の有効印字領域、オフセット値、拡大縮小モードの読み込み処理（ステップＳ１３０１）が行われる。これは、スプーラ３０２により生成されたスプールファイル３０３から拡大縮小印刷のために必要なデータが読み込まれる処理である。そして、この中の拡大縮小モードにより以下の振り分けが行われる。拡大縮小印刷には、出力用紙指定による拡大縮小、拡大縮小率指定による拡大縮小、出力用紙指定及び拡大縮小率指定による拡大縮小の三種類が存在する。
【０１４１】
最初、読み込まれた拡大縮小モードより、出力用紙指定による拡大縮小及び拡大縮小率指定による拡大縮小のモード設定がされているかの判定処理（ステップＳ１３０２）により、同判定が行われる。ここで、出力用紙指定による拡大縮小と拡大縮小率指定による拡大縮小の両方のモード設定がされていると判定されると、次の出力用紙指定及び拡大縮小率指定による出力デバイス座標の設定処理（ステップＳ１３０３）が行われる。この詳細は図１８及び図１９に示す通りであり、後述することにする。
【０１４２】
ここで、出力用紙指定による拡大縮小と拡大縮小率指定による拡大縮小の両方が同時に設定されていないとする。すると、次の出力用紙指定による拡大縮小モード設定がされているかの判定処理（ステップＳ１３０４）が行われる。ここで、出力用紙指定による拡大縮小のモード設定がされていると判定されると、出力用紙指定による出力デバイス座標の設定処理（ステップＳ１３０５）が行われる。この詳細は図１５及び図１６に示す通りであり、後述することにする。
【０１４３】
同様にここでは、出力用紙指定による出力デバイス座標の設定はされていないとし、次の拡大縮小率指定による拡大縮小のモード設定がされているかの判定処理（ステップＳ１３０６）が行われる。ここで、拡大縮小率指定による拡大縮小のモード設定がされていると判定されると、拡大縮小率指定による出力デバイス座標の設定処理（ステップＳ１３０８）が行われる。この詳細は図１７に示す通りであり、これも後述することにする。
【０１４４】
ここでも同様に、拡大縮小率指定による拡大縮小のモード設定はされていないと判定されるとすると、次の通常印刷（拡大縮小処理を行わない印刷）出力デバイス座標の設定処理（ステップＳ１３０７）が行われる。これは拡大縮小印刷を行わない場合の出力デバイス座標の設定であり、拡大縮小印刷以外の他の出力体裁を変更するような設定がなされていない限り、入力用紙と出力用紙設定は同等となる。
【０１４５】
ここで、出力用紙指定による出力デバイス座標の設定処理（上記図１４のステップＳ１３０５）について、図１５、図１６、図２１を用いて説明することにする。図２１で（ａ）、（ｂ）はそれぞれ入力用紙、出力用紙を表し、ａ、ｂ、ａ１、ｂ１は有効印字領域、Ｘ、Ｙは用紙サイズ、ｘ、ｙは原点からのオフセット値を表している。本例では、用紙Ａから用紙Ｂへの縮小印刷を例に説明することにする。図１５において、まず、入力用紙の有効印字領域の縦、横の取得処理（ステップＳ１５０１）により、ソースとなる有効印字領域の大きさが取得される。ここでは、ａ、ｂが取得される。そして、次に出力用紙（サイズ、有効印字領域、オフセット値）の縦、横の取得処理（ステップＳ１５０２）により、どの大きさに縮小するかの目標となるサイズ、有効印字領域、オフセット値のそれぞれの値が取得される。ここでは、Ｘ、Ｙ、ａ１、ｂ１、ｘ、ｙが取得される（図２１（ｂ）参照）。
【０１４６】
これらが取得された後、縦方向及び横方向の拡大縮小率の算出処理（ステップＳ１５０３）が行われる。先ず、出力用紙サイズ（Ｘ、Ｙ）、出力用紙有効印字領域（ａ１、ｂ１）、オフセット値（ｘ、ｙ）より、有効印字領域外の部分を上下、左右を合わせるために、上下、左右共に広い方を取るように、有効印字領域を調整する（図２１（ｃ）参照）。こうして得られた新しい有効印字領域をａ２、ｂ２とする。これらと、入力用紙の有効印字領域（ａ、ｂ）により、拡大縮小率が計算される。即ち、横方向の拡大縮小率はａ２／ａ、縦方向の拡大縮小率はｂ２／ｂとなる。
【０１４７】
次に、横方向の拡大縮小率の方が縦方向の拡大縮小率より大きいかの判定処理（ステップＳ１５０４）が行われる。これは、拡大縮小印刷において、縦横比を変えずに拡大縮小するために、どちらの拡大縮小率を用いて拡大縮小を行うかの判断となる。縦、横の拡大縮小率の小さい方を用いて、縦、横共に縮小するため、縦方向の方が小さいと判断されれば、縦方向の拡大縮小率による縦及び横の印刷領域の算出処理（ステップＳ１５０５）が行われ、横方向の方が小さいと判断されれば、横方向の拡大縮小率による縦及び横の印刷領域の算出処理（ステップＳ１５０６）が行われる。
【０１４８】
ここでは、横方向の方が小さい、つまり、ａ２／ａの方が小さいと判断されたとする。すると、横方向の拡大縮小率による縦及び横の印刷領域の算出処理（ステップＳ１５０６）により、横方向の印刷領域はａ２、縦方向の印刷領域はｂ×ａ２／ａとなる（図２１（ｅ）参照）。これらの算出された印刷領域により、次の出力デバイス座標の設定処理（ステップＳ１５０７）が行われる。これは、座標点を論理座標からデバイス座標に変換する方法を定義するものであり、出力デバイスのｘ範囲、ｙ範囲を設定するものである。ここでは、ａ２及びｂ×ａ２／ａが設定され、これにより、今後処理される印刷データが縮小されて印刷されるようになるわけである。
【０１４９】
また、次に、拡大縮小率指定による出力デバイス座標の設定処理（上記図１４のステップＳ１３０８）について、図１７を用いて説明する。
【０１５０】
先ず、入力用紙の有効印字領域の縦、横の取得処理（ステップＳ１７０１）により、ソースとなる有効印字領域の大きさが取得される。図２１でいうと、ａ、ｂが取得される。次に、拡大縮小率の取得処理（ステップ１７８０２）が行われる。これもその他のデータと同様にスプーラ３０２により保存され、のちにデスプーラ３０５により読み込まれたものであり、ユーザにより設定された値である。ここではｃ１とする。
【０１５１】
また、次に、拡大縮小率による縦及び横の印刷領域の算出処理（ステップＳ１７０３）が行われる。先に取得されたｃ１により印刷領域が求められるわけであり、横方向がａ×ｃ１、縦方向がｂ×ｃ１となる。そして、上述したと同様、出力デバイス座標の設定処理（ステップＳ１７０４）により、ａ×ｃ１及びｂ×ｃ１が出力デバイスのｘ範囲、ｙ範囲として設定される。これにより、今後処理される印刷データが縮小されて印刷されるようになるわけである。
【０１５２】
また、次に、出力用紙指定及び拡大縮小率指定による出力デバイス座標の設定処理（上記図１３のステップＳ１３０３）について、図１８及び図１９を用いて説明する。
【０１５３】
図１８のステップＳ１８０１〜ステップＳ１８０６までは上記図１５、図１６のステップＳ１５０１〜ステップＳ１５０６と同様の処理であり、出力用紙指定による拡大縮小印字領域が算出される。その後、拡大縮小率の取得処理（ステップＳ１８０７）が行われる。ここで取得されるのはユーザにより設定された拡大縮小率と出力用紙指定による拡大縮小率（ドライバより取得してスプールしてあるもの）である。ここでは、それぞれｄ１、ｅ１とする。更に、第２拡大縮小率の算出処理（ステップＳ１８０８）が行われる。既に出力用紙指定による拡大縮小印字領域が算出されているので、ここで算出される値はｄ１／ｅ１となる。
【０１５４】
そして、第２拡大縮小率による印刷領域の算出処理（ステップＳ１８０９）が行われる。既に算出された出力用紙指定による拡大縮小印字領域が上記図２１の（ｅ）とすると、これによって得られる値は、横方向がａ２×ｄ１／ｅ１、縦方向がｂ×ａ２／ａ×ｄ１／ｅ１となる。その後、出力デバイス座標の設定処理（ステップＳ１８１０）により、ａ２×ｄ１／ｅ１及びｂ×ａ２／ａ×ｄ１／ｅ１が出力デバイスのｘ範囲、ｙ範囲として設定される。これにより、今後処理される印刷データが拡大または縮小されて印刷されるようになるわけである。
【０１５５】
上述したように、第５の実施の形態によれば、プリンタ制御システムは、入力用紙の有効印字領域、出力用紙のサイズ及び有効印字領域、オフセット値、設定された拡大縮小モードを記憶するスプーラ３０２と、拡大縮小モードが出力用紙指定による拡大縮か、拡大縮小率指定による拡大縮小か、出力用紙指定及び拡大縮小率指定による拡大縮小かを判定し、該判定に基づき出力デバイスの座標を設定し、該設定に基づき上記印刷データで印刷するように制御するデスプーラ３０５とを有するため、拡大縮小機能を持たないデバイス（プリンタ等の印刷装置）に対し拡大縮小機能を提供することができると共に、元々の印刷データの内容を変えずに、そのまま拡大縮小印刷を行うことができる。
【０１５６】
〔６〕第６の実施の形態
第６の実施の形態に係るプリンタ制御システムは、上記第１の実施の形態と同様に、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、外部メモリ１１を備えたホストコンピュータ３０００と、ＣＰＵ１２、ＲＡＭ１９、ＲＯＭ１３、入力部１８、印刷部インタフェース（Ｉ／Ｆ）１６、ディスクコントローラ（ＤＫＣ）２０、印刷部１７、操作部１５０１、外部メモリ１４を備えたプリンタ１５００とから構成されている（上記図１参照）。
【０１５７】
また、第６の実施の形態に係るホストコンピュータ３０００における印刷データ生成を行う制御構成（上記図２参照）、上記図２を拡張した印刷データ生成を行う制御構成（上記図３参照）、印刷モード制御プログラムを含む印刷関連モジュールがホストコンピュータ３０００のＲＡＭ２へロードされ実行可能となった状態のメモリマップの構成（上記図４参照）も、上記第１の実施の形態と同様であるため説明は省略する。また、本第６の実施の形態においても、前述したような実施の形態の処理が可能である。
【０１５８】
第６の実施の形態に係るプリンタ制御システムは、出力用紙指定による拡大縮小印刷、または出力用紙指定による拡大縮小印刷及び拡大縮小率指定による拡大縮小印刷が指定されている時、出力用紙の適正な位置にセンタリングを行うようにしたものである。また、第６の実施の形態に係るプリンタ制御システムは、複数の論理ページ（アプリケーションで扱われるページ）を１枚の物理ページ（実際に印刷出力されるページ）に印刷することが可能な機能を有する。
【０１５９】
次に、上記の如く構成してなる第６の実施の形態に係るプリンタ制御システムにおけるセンタリング処理について、図２０及び図２２を中心に詳細に説明する。図２０はセンタリングを行うための概要を表すフローチャート、図２２はそれを例示した図であり、図２２（ａ）は出力用紙を表し、上記第１の実施の形態における図２１（ｂ）と同じである。
【０１６０】
先ず、調整有効印字領域の取得（ステップＳ２００１）が行われる。上記第５の実施の形態と同様の処理により、上下、左右の用紙サイズからの有効印字領域の位置が等しくなるようにａ２、ｂ２が求められる（図２２（ｂ）参照）。これらが取得されるわけである。また、この調整を行った後のオフセット値をｘ１、ｘ２とする。次に、拡大縮小後の印刷領域の取得（ステップＳ２００２）により、先に計算された縦方向、横方向の拡大縮小率の小さい方のより求められた印刷領域が取得される。ここでは、これらをａ３、ｂ３と置く（図２２（ｃ）参照）。
【０１６１】
そして、オフセット値の調整処理（ステップＳ２００３）が行われる。これは、実際の印刷領域が用紙サイズの左右、上下共に中央にくるようにオフセット値を調整する処理である。この調整を行った後の左上の座標（用紙の左上を原点としたもの）をｘ２、ｙ２とすると、それらはそれぞれ、
ｘ２＝ｘ１＋（ａ２−ａ３）／２
ｙ２＝ｙ１＋（ｂ２−ｂ３）／２
と算出される。これにより、オフセット値が調整され、印刷領域が用紙サイズから適正な位置にセンタリングされる（図２２（ｄ）参照）。
【０１６２】
次に、第６の実施の形態に係るプリンタ制御システムで複数の論理ページを１枚の物理ページに印刷する場合の例として、製本印刷の例を上げ、上記図２０及び図２３を中心に詳細に説明する。この場合、製本印刷とは、真ん中で綴じた時に見開きの本となるように用紙の表裏面を印刷する印刷手法である。本例では、入力用紙と出力用紙は同じとする。
【０１６３】
先ず、調整有効印字領域の取得（ステップＳ２００１）が行われる。上記第５の実施の形態と同様の処理により、上下、左右の用紙サイズからの有効印字領域の位置が等しくなるようにａ２、ｂ２が求められる（図２３（ｂ）参照）。但し、ここでは、印刷の向きが変わり、更に２ページの論理用紙を１ページの物理用紙に印刷するため、ａ２＝ｂ１／２、ｂ２＝ａ１となる。この値が取得される。次に、拡大縮小後の印刷領域の取得（ステップＳ１００２）により、先に計算された縦方向、横方向の拡大縮小率の小さい方のより求められた印刷領域が取得される。これらはそれぞれ、ｂ１×ａ２／ａ１（用紙向き変更後の縦方向）、ａ１×ａ２／ａ１（用紙向き変更後の横方向）となり、それぞれｂ３、ａ３とする（図２３（ｃ）参照）。
【０１６４】
そして、オフセット値の調整処理（ステップＳ２００３）が行われる。実際の印刷領域が用紙サイズの左右、上下共に中央にくるようにオフセット値を調整する処理である。この調整を行った後の左上の座標（用紙の左上を原点としたもの）をｘ２、ｙ２とすると、それらはそれぞれ、拡大縮小時のセンタリング同様、ｘ２＝ｘ１＋（ａ２−ａ３）／２、ｙ２＝ｙ１＋（ｂ２−ｂ３）／２と算出される。これにより、オフセット値が調整され、印刷領域を用紙サイズから適正な位置に置くことができる（図２３（ｄ）参照）。
【０１６５】
上述したように、第６の実施の形態によれば、プリンタ制御システムは、入力用紙の有効印字領域、出力用紙のサイズ及び有効印字領域、オフセット値、設定された拡大縮小モードを記憶するスプーラ３０２と、拡大縮小モードが出力用紙指定による拡大縮か、拡大縮小率指定による拡大縮小か、出力用紙指定及び拡大縮小率指定による拡大縮小かを判定し、該判定に基づき出力デバイスの座標を設定し、該設定に基づき上記印刷データで印刷するように制御すると共に、更に、入力用紙の有効印字領域、出力用紙のサイズ及び有効印字領域、オフセット値、設定された拡大縮小モードに基づき適正な印字位置にセンタリングを行い、複数の論理ページを１枚の物理ページに印刷する場合は複数の論理ページを左右上下対称な印字位置に配置するデスプーラ３０５とを有するため、拡大縮小機能において適正な位置に印刷データをセンタリングできるようにしたことにより、出力体裁を整えることができ、特に両面印刷を行う場合、用紙表裏とも同じ位置に印刷することができる。
【０１６６】
また、複数の論理ページを１枚の物理ページに印刷することが可能な印刷装置において印刷データを正確に左右、上下対称な位置に印刷することができ、特に製本印刷を行う場合、出力結果に手を加えずに本を綴じることができる。
【０１６７】
また、上記第５の実施の形態と同様に、拡大縮小機能を持たないデバイスに対し拡大縮小機能を提供することができると共に、元々の印刷データの内容を変えずに、そのまま拡大縮小印刷を行うことができる。
【０１６８】
尚、上記第１〜第６の実施の形態で説明された本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、１つの機器からなる装置（例えば複写機、プリンタ、ファクシミリ装置等）に適用してもよい。また、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０１６９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１７１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７２】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７３】
【発明の効果】
以上説明したように、本発明によれば、印刷装置で印刷される印刷データを生成する部分を新たに制作することなしに、サイズや向きが混在した複数の論理ページを、各論理ページ毎にサイズを適宜決定して物理ページにレイアウトする機能を提供することが可能となる。
【０１７５】
また本発明によれば、印刷制御装置の前記用紙決定手段は、同一用紙に印刷されるＮページ分のページサイズ情報に基づき最適な用紙サイズを決定するため、ページデータを最適な用紙サイズの用紙の各印刷領域に配置することが可能となり、同一文書内に用紙サイズや用紙向きが混在しているような場合でも、途中で排紙したり印刷領域からはみ出してしまうことなく、用紙サイズや用紙向きが混在していない文書に近い出力結果を得ることができる。
【図面の簡単な説明】
【図１】本発明の第１乃至第６の実施の形態に係るプリンタ制御システムの全体構成を示すブロック図である。
【図２】本発明の第１乃至第６の実施の形態に係るホストコンピュータにおける典型的な印刷処理の構成を示すブロック図である。
【図３】本発明の第１乃至第６の実施の形態に係る印刷データ生成方法を説明するためのブロック図である。
【図４】本発明の第１の実施の形態に係るデスプーラの処理の流れを示すフローチャートである。
【図５】本発明の第１の実施の形態に係るＮページ印刷の処理の流れを示すフローチャートである。
【図６】本発明の第１の実施の形態に係るＮページ印刷における用紙決定方法の例を示すフローチャートである。
【図７】本発明の第１の実施の形態に係るＮページ印刷における用紙決定方法の例を示すフローチャートである。
【図８】本発明の第１の実施の形態に係るＮページ印刷（Ｎ＝４）の場合の出力結果例を示す説明図である。
【図９】本発明の第２の実施の形態に係る用紙分割方法の例を示す説明図である。
【図１０】本発明の第１乃至第６の実施の形態に係るプリンタの内部構成を示す断面図である。
【図１１】本発明の第１乃至第６の実施の形態に係る印刷モード自動制御プログラムを含む印刷関連モジュールがホストコンピュータ上のＲＡＭへロードされ実行可能となった状態のメモリマップを示す説明図である。
【図１２】本発明の第５の実施の形態に係るスプーラの処理を示すフローチャートである。
【図１３】本発明の第５の実施の形態に係る拡大縮小印刷処理を示すフローチャートである。
【図１４】本発明の第５の実施の形態に係る拡大縮小印刷処理を示すフローチャートである。
【図１５】本発明の第５の実施の形態に係る出力用紙指定による出力デバイス座標の設定処理を示すフローチャートである。
【図１６】本発明の第５の実施の形態に係る出力用紙指定による出力デバイス座標の設定処理を示すフローチャートである。
【図１７】本発明の第５の実施の形態に係る拡大縮小率指定による出力デバイス座標の設定処理を示すフローチャートである。
【図１８】本発明の第５の実施の形態に係る出力用紙指定及び拡大縮小率指定による出力デバイス座標の設定処理を示すフローチャートである。
【図１９】本発明の第５の実施の形態に係る出力用紙指定及び拡大縮小率指定による出力デバイス座標の設定処理を示すフローチャートである。
【図２０】本発明の第６の実施の形態に係る拡大縮小印刷が指定されている時のセンタリング処理を示すフローチャートである。
【図２１】本発明の第５の実施の形態に係る縮小印刷を行う場合の説明図であり、（ａ）は入力用紙と有効印字領域の関係を示す説明図、（ｂ）は出力用紙と有効印字領域の関係を示す説明図、（ｃ）は出力用紙と有効印字領域の関係を示す説明図、（ｄ）は出力用紙と有効印字領域の関係を示す説明図、（ｅ）は出力用紙と有効印字領域の関係を示す説明図である。
【図２２】本発明の第６の実施の形態に係るセンタリングを行う場合の説明図であり、（ａ）は出力用紙と有効印字領域の関係を示す説明図、（ｂ）は出力用紙と有効印字領域の関係を示す説明図、（ｃ）は出力用紙と有効印字領域の関係を示す説明図、（ｄ）は出力用紙と有効印字領域の関係を示す説明図である。
【図２３】本発明の第６の実施の形態に係る製本印刷を行う場合の説明図であり、（ａ）は出力用紙と有効印字領域の関係を示す説明図、（ｂ）は出力用紙と有効印字領域の関係を示す説明図、（ｃ）は出力用紙と有効印字領域の関係を示す説明図、（ｄ）は出力用紙と有効印字領域の関係を示す説明図である。
【符号の説明】
１、１２  ＣＰＵ
２、１９  ＲＡＭ
３、１３  ＲＯＭ
７  ディスクコントローラ
８  プリンタコントローラ
１１、１４  外部メモリ
１７  印刷部
２０  メモリコントローラ
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
３０１  ディスパッチャ
３０２  スプーラ
３０３  スプールファイル
３０４  スプールファイルマネージャ
３０５  デスプーラ
１５００  プリンタ
３０００  ホストコンピュータ
【図１】
0004054444.tif 000002
【図２】
0004054444.tif 000003
【図３】
0004054444.tif 000004
【図４】
0004054444.tif 000005
【図５】
0004054444.tif 000006
【図６】
0004054444.tif 000007
【図７】
0004054444.tif 000008
【図８】
0004054444.tif 000009
【図９】
0004054444.tif 000010
【図１０】
0004054444.tif 000011
【図１１】
0004054444.tif 000012
【図１２】
0004054444.tif 000013
【図１３】
0004054444.tif 000014
【図１４】
0004054444.tif 000015
【図１５】
0004054444.tif 000016
【図１６】
0004054444.tif 000017
【図１７】
0004054444.tif 000018
【図１８】
0004054444.tif 000019
【図１９】
0004054444.tif 000020
【図２０】
0004054444.tif 000021
【図２１】
0004054444.tif 000022
【図２２】
0004054444.tif 000023
【図２３】
0004054444.tif 000024