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