(57)【要約】【課題】  Ｎｕｐ印刷（割付印刷）が指定され、論理ページの回転処理を必要とする場合に、ＯＳのプリントプロセッサで回転処理させると、スループットや色見が不用意に変更されてしまう問題がある。【解決手段】  ＯＳによる回転／拡大縮小処理を回避するため、論理ページの用紙方向と物理用紙の用紙方向が異なる場合は、グラフィックドライバがラスタライズ時に回転するように印刷設定を変更し、描画領域の向きを変え、論理ページの回転は行なわずに拡大／縮小処理のみ行なう。【選択図】  図１
2005182694.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションは文書を印刷するための印刷設定の情報を印刷設定構造に格納し、スプーラはアプリケーションから渡された印刷設定構造と印刷データをスプールファイルに格納し、デスプーラはスプールファイルに格納された印刷設定構造を抽出しプリントプロセッサに供給し、プリントプロセッサはデスプーラから取得した印刷設定構造と印刷データを用いてページ単位で印刷データをレイアウトしプリンタグラフィックドライバに供給し、プリンタグラフィックドライバはレイアウトされた印刷データのビットマップに対して色変換処理と同時に必要に応じ回転処理を行ないプリンタが解釈できる印刷コマンドを作成してプリンタに供給し、プリンタは供給された印刷コマンドに従い印刷用紙に印刷処理を行なう印刷システムにおいて、
印刷実行時に印刷設定構造に割付印刷が設定されており、プリントプロセッサが印刷可能領域を割付数で分割し文書ページの印刷データをレイアウトする際に、分割された印刷可能領域の長辺方向と文書ページの長辺方向が異なる場合、印刷設定構造の印刷の向きを逆に設定し、プリンタグラフィックドライバに通知することで印刷可能領域の長辺方向を変更してから、文書ページの印刷データを回転せずにレイアウトすることを特徴とした印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが作成した文書の印刷データを、ページ単位でレイアウトして印刷する割付印刷機能を有するプリンタドライバを含む、印刷システム及び印刷装置に関する。
【背景技術】
【０００２】
従来の印刷システムでは、目的の文書を印刷する際に、印刷設定の各項目はユーザインタフェースドライバを介して行われ、ユーザインタフェースドライバはユーザに設定された各設定項目の設定値を含む情報を印刷設定構造としてアプリケーションに返却し、アプリケーションは返却された印刷設定構造を使用して印刷処理を行なう。
【０００３】
印刷設定構造に格納される情報は、アプリケーションがユーザインタフェースドライバを介して対話的にユーザに各設定項目を設定させることが可能である。代表的な設定項目にはアプリケーションの文書の各ページのサイズを設定する論理的なアプリケーション用紙サイズや、印刷用紙の大きさを表す出力用紙サイズがある。さらにアプリケーション用紙サイズに関る印刷設定として印刷の向きがあり、印刷の向きで横を設定すると、アプリケーション用紙サイズで設定したサイズを９０度回転した論理的な用紙がアプリケーションで使用できるようになる。また、アプリケーションが作成した文書の複数ページを一枚の印刷用紙の上に配置し印刷する割付印刷設定があり、一般に割付数をＮとしてＮ−ｕｐ印刷と呼ばれている。例えば２−ｕｐ印刷ではアプリケーションが作成した文書を１枚の印刷用紙に２ページずつ配置する。
【０００４】
アプリケーションが文書を印刷する環境を提供する印刷システムのスプーラは、アプリケーションが印刷に使用する印刷設定構造や、印刷用に作成した文書内容の描画命令をスプールファイルに格納し、印刷システムのデスプーラはスプールファイルから格納されている印刷設定構造を抽出し、文書のページをレイアウトするプリントプロセッサに提供する。プリントプロセッサは抽出された印刷設定構造を用いてスプールファイルに格納された印刷データをページ単位でレイアウトし、プリンタグラフィックドライバに供給する。プリンタグラフィックドライバに供給される印刷データはビットマップ化され、プリンタグラフィックドライバはレイアウト済みのビットマップに対して色変換処理等と同時に必要に応じて回転処理を行ないプリンタが解釈できる印刷コマンドを作成し、作成した印刷コマンドをプリンタに供給する。プリンタは供給された印刷コマンドに従い印刷用紙に印刷処理を行ない、印刷結果が得られる構造になっている。ここで、印刷設定構造の印刷の向きで横が設定されている場合、一般的にプリンタグラフィックドライバは画像処理と同時にレイアウト済みの印刷データを９０度回転しつつ印刷コマンドを作成する。従って印刷の向きで縦が設定されている時とほぼ同等の処理時間で印刷コマンドを作成することができる。
【０００５】
なお、従来、この種の印刷システムとして、下記特許文献が提案されている。
【特許文献１】特開２００３−０９１５２５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら上述した従来の技術においては、以下のような問題があった。アプリケーションで作成した文書を割付印刷設定で印刷する場合、プリントプロセッサはアプリケーションの文書ページの印刷データを１ページずつ繰り返しレイアウトし、プリンタグラフィックドライバに供給する印刷データを作成する。ここで出力用紙の印刷可能領域を印刷設定構造に格納されている割付数（Ｎ−ｕｐ数）で分割し、分割した印刷可能領域に文書ページをレイアウトする際に、分割した印刷可能領域の長辺方向とレイアウトされる文書ページの長辺方向が異なる場合、文書ページの印刷データを回転してレイアウトし、レイアウト後の印刷データをプリンタグラフィックドライバに供給していた。プリンタグラフィックドライバに渡される印刷データはビットマップに変換されるが、プリントプロセッサが文書ページを回転してレイアウトするために、ビットマップに変換する際に文書ページの印刷データを全て回転する処理が必要になり、回転しない場合と比較しオーバーヘッドが増大する問題があった。また、ＯＳのプリントプロセッサが文書ページをビットマップ変換して回転させると、アプリケーションが本来指定した色見が変更されてしまい、正確な色処理が行えなくなる問題があった。
【０００７】
また、同じく出力用紙の印刷可能領域を印刷設定構造に格納されている割付数（Ｎ−ｕｐ数）で分割し、分割した印刷可能領域に文書ページをレイアウトする際に、分割した印刷可能領域の外形の長辺方向とレイアウトされる文書ページの外形の長辺方向が異なる場合に、プリントプロセッサで文書ページを回転しないでレイアウトすると、分割した印刷可能領域の長辺方向と文書ページの長辺方向が異なるため、レイアウト結果に空白が多くなってしまい、印刷可能領域を有効に活用できない問題が在った。
【課題を解決するための手段】
【０００８】
本発明は上記従来の問題点に鑑みなされたものであり、アプリケーションは文書を印刷するための印刷設定の情報を印刷設定構造に格納し、スプーラはアプリケーションから渡された印刷設定構造と印刷データをスプールファイルに格納し、デスプーラはスプールファイルに格納された印刷設定構造を抽出しプリントプロセッサに渡し、プリントプロセッサはデスプーラから取得した印刷設定構造と印刷データを用いてページ単位で印刷データをレイアウトしプリンタグラフィックドライバに供給し、プリンタグラフィックドライバはレイアウトされた印刷データのビットマップに対して色変換処理を行ないプリンタが解釈できる印刷コマンドを作成してプリンタに供給し、プリンタは供給された印刷コマンドに従い印刷用紙に印刷処理を行なう印刷システムにおいて、
印刷実行時に印刷設定構造に割付印刷が設定されており、プリントプロセッサが印刷可能領域を割付数で分割し文書ページの印刷データをレイアウトする際に、分割された印刷可能領域の長辺方向と文書ページの長辺方向が異なる場合、印刷設定構造の印刷の向きを逆に設定し、プリンタグラフィックドライバに通知することで印刷可能領域の長辺方向を変更してから、文書ページの印刷データを回転せずにレイアウトする構成とした。
【発明の効果】
【０００９】
以上説明したように、本発明によれば次のような効果が得られる。
【００１０】
アプリケーションで作成した文書を割付印刷設定で印刷する際に、プリントプロセッサにより、割付数で分割した印刷用紙の印刷可能領域とアプリケーションの文書ページの長辺方向が一致しなければ、印刷設定構造の印刷の向きを反転しグラフィックドライバに通知し論理的な印刷用紙を９０度回転することで、文書ページを回転せずにレイアウトすることができ、プリンタグラフィックドライバはビットマップ作成にあたり文書ページの回転処理を行なう必要がなくなるため印刷時のオーバーヘッドの増加を抑制することが可能となる。また、同時に分割された印刷可能領域とアプリケーションの文書ページの長辺方向が一致するので印刷可能領域を有効に活用することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００１２】
まず発明に関る基本的な印刷システムを具体例を用いて説明する。なお本具体例ではオペレーティングシステム（以下ＯＳと略す）としてＭｉｃｒｏｓｏｆｔ  ＷＩＮＤＯＷＳ（登録商標）２０００／ＸＰ  を用いた場合を示す。
【００１３】
図１は、本発明による印刷システムの具体例を示すブロック図である。図において、本発明に関るモジュールは、ユーザインタフェースドライバ１０２とプリントプロセッサ１０７とプリンタグラフィックドライバ１０８である。印刷システムを構成する１０１〜１０８はプリンタ１０９の上位装置であるパーソナルコンピュータ等で動作し、アプリケーション１０１が作成した文書の印刷データをＧＤＩ１０３を介して一時的にＥＭＦ形式でスプールファイル１０５に一時保持し、これをプリンタ１０９が解釈可能な印刷コマンド形式のビットマップデータに変換しプリンタ  １０９に供給して印刷するよう構成されている。ここでＧＤＩとはグラフィックデバイスインタフェースのことでＷＩＮＤＯＷＳ（登録商標）のグラフィクスエンジンである。またＥＭＦとはＥｎｈａｎｃｅｄＭｅｔａＦｉｌｅの略でＷＩＮＤＯＷＳ（登録商標）における描画データの論理的な格納形式であり、スプールファイルには印刷データがＥＭＦ形式で格納される。ここで、プリンタドライバを構成するモジュールはユーザインタフェースドライバ１０２と、プリントプロセッサ１０７とプリンタグラフィックドライバ１０８である。また、ＷＩＮＤＯＷＳ（登録商標）が提供するモジュールはＧＤＩ１０３とスプーラ１０４とデスプーラ１０６である。
【００１４】
ユーザインタフェースドライバ１０２は印刷に使用する用紙サイズやアプリケーション文書の用紙サイズと印刷の向き、その他の属性を設定する機能をユーザに提供する。ユーザはユーザインタフェースドライバを介して対話的に印刷設定の各設定項目を変更することが可能であり、設定値を印刷設定構造ＤＥＶＭＯＤＥに格納し、アプリケーション１０１に返却する。ユーザインタフェースドライバと印刷設定構造については後述する。
【００１５】
アプリケーションは印刷設定構造ＤＥＶＭＯＤＥを作成し、必要に応じユーザインタフェースドライバ１０２を介してユーザに印刷設定を行なわせ印刷設定構造を獲得し、印刷設定構造に格納されている設定を利用することや文書の内容を描画命令としてＧＤＩ１０３に供給する。
【００１６】
スプーラ１０４はＧＤＩ１０３を介してアプリケーション１０１が作成した文書の内容を印刷データとしてスプールファイル１０５に格納する。またアプリケーション１０１が印刷に用いた印刷設定構造ＤＥＶＭＯＤＥもスプールファイル１０５に格納する機能を有する。
【００１７】
デスプーラ１０６は印刷時にスプールファイル１０５から印刷設定構造と印刷データを抽出しプリントプロセッサ１０７に渡す機能を有する。またスプールファイル１０５に格納された印刷データはページ単位で扱えるような形式でプリントプロセッサ１０７に供給する機能を有する。
【００１８】
プリントプロセッサ１０７は、印刷時にスプールファイル１０５から印刷設定構造と印刷データを取得し、印刷データを１ページずつレイアウトし、レイアウト後の印刷データをＧＤＩ１０３を介してプリンタグラフィックドライバ１０８に供給し印刷を行うモジュールである。
【００１９】
プリンタグラフィックドライバ１０８はイメージ生成処理部であり、プリントプロセッサ  １０７が供給した印刷データをもとにＧＤＩ２が生成したグラフィック描画コマンドからビットマップデータを生成するモジュールであり、生成したビットマップデータに色変換処理や必要に応じ同時に回転処理行ないつつプリンタが解釈できる印刷コマンド形式にして、図に示していないデータ送信部を介してプリンタ１０９に供給する。
【００２０】
ここで出力デバイスであるプリンタ１０９は、プリンタグラフィックドライバ１０８から渡された、印刷コマンド形式のビットマップデータを印刷用紙１３０に対し印刷する機能を持つ。
【００２１】
例えば印刷設定構造の割付印刷数が１である場合、アプリケーションの文書ページ１２０は出力用紙１３０の様に印刷され、割付印刷数が２、つまり２−ｕｐである場合、アプリケーションの文書ページ１２０が複数在るとすると、出力用紙１３１のように２ページ分の文書ページが１枚の印刷用紙にレイアウトされ印刷される。
【００２２】
図４に印刷設定構造ＤＥＶＭＯＤＥの概念図を示す。図に示されるようにパブリック構造とプライベート構造で構成され、パブリック構造には一般的な印刷に必要な設定項目の情報が格納される。本図では印刷の向き、印刷品位、アプリケーションの原稿の用紙サイズ、プリンタにセットされているメディアの種類、メディアがセットされている給紙口をパブリック構造の設定項目として例に挙げている。一方プライベート構造にはプリンタドライバ固有の情報が格納されており、ハーフトーン手法、割付印刷の割付数、プリンタにセットされているメディアのサイズ、スタンプ機能、背景機能を設定項目の例に挙げている。一般アプリケーションからはパブリック構造は参照可能であるがプリベート構造の内容は参照できない。しかし、プリントプロセッサにおいては、割付数等のプライベート構造の一部の内容についてはユーザインタフェースドライバに問い合わせることで取得することが可能である。アプリケーションは図３で示されるユーザインタフェースドライバの印刷設定ダイアログを表示し、ユーザは設定項目を変更するために印刷設定ダイアログを操作し、その結果印刷設定ダイアログの各設定項目の設定値が印刷設定構造に格納される。
【００２３】
図３は本実施形態におけるユーザインタフェースドライバが提供する、各種印刷設定を行う際に表示される印刷設定ダイアログの一例を示す図である。この印刷設定ダイアログによりユーザによる上記設定内容の変更指示や入力を受け付ける。同図において、３０１は印刷設定ダイアログであり、３０２〜３１１、３２０〜３３１までの各表示エリアから構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でもタブを使用する。３０２は基本設定タブであり、印刷の基本に関する内容を表示する。詳細については後述する。３０３はページ設定のタブであり、印刷レイアウト（割付印刷）、両面印刷、逆順印刷などの各種ページ設定に関する内容を表示する。３０４はスタンプ／背景のタブであり、印刷文書に対して文字を重ねるスタンプ機能や、画像を重ねる背景機能という、印刷文書を変更することなしに印刷時に付加するパターンの選択画面を表示する。３０５は特殊効果のタブであり、各種画像補整やセピア調など特殊な効果を画像に与える場合に使用する機能の選択画面を表示する。３０６はお気に入りのタブであり頻繁に使用する印刷設定などの保存と呼び出し機能を選択させる画面を表示する。３０７はユーティリティのタブであり、ヘッドの調整やクリーニングなどの機能の選択画面を表示する。３２０は基本設定の簡易表示エリアであり、文字情報だけでなく視覚に訴える形で、設定された情報を表示する。３２１はプリントアドバイザであり印刷目的から最適な印刷設定を段階的に導く機能を持つサブダイアログを表示する。３２２は用紙種類選択部であり用紙種類を表示するとともに選択することができ、ドロップダウンメニューとなっており普段は選択されている用紙種類が表示され、クリックすることで選択可能な用紙種類がリストされる。選択可能な用紙種類はプリンタで印刷可能な用紙である。３２３はプリンタ本体が用紙を給紙する給紙方法を表示選択することができ、たとえば自動給紙口である給紙トレイや給紙カセットが選択できる。３２４は印刷の品位を設定する項目である。３２５は印刷の色や濃度を調整するための項目である。３２６は印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。３２７はアプリケーションが文書を作成するにあたり使用する用紙サイズを設定する項目である。この設定項目を変更することでアプリケーションが使用する用紙サイズを変更することができる。３２８はアプリケーションの用紙の印刷の向きを設定する項目である。印刷の向きが縦の場合は用紙サイズの縦横がアプリケーションに返却される用紙サイズと一致する。印刷の向きが縦の場合は用紙サイズの縦横を回転したサイズがアプリケーションに返却される。印刷の向きを変更した際の印刷結果は後述する。３２９はプリンタにセットされている出力用紙サイズを設定する。出力用紙サイズを設定することにより、アプリケーションの用紙サイズとは異なるサイズの印刷用紙に印刷することが可能である。３３０は本ダイアログを表示するドライバのバージョンを示すサブダイアログを表示する。３３１は基本設定３０２の設定を標準（出荷時設定）に戻す機能をもつ。ユーザは各項目を選択した後にＯＫボタン３０８を押下することで印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させることができる。つまりＯＫボタン３０８が押下されたことによりユーザが操作した印刷設定ダイアログの情報を、印刷設定構造ＤＥＶＭＯＤＥの設定項目として格納することになる。Ｃａｎｃｅｌボタン３０９を押下すると印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。Ａｐｐｌｙボタン３１０は印刷設定ダイアログ３０１は開いたままで選択した印刷設定を印刷に反映させることができる。Ｈｅｌｐボタン３１１は基本設定３０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００２４】
図９は、印刷設定構造の印刷の向きの設定と、アプリケーションまたはプリントプロセッサに返却される用紙サイズと印刷可能領域の関係を示している。ここでは印刷設定構造の印刷の向きに横が設定された場合、論理的な用紙は物理用紙を時計回りに９０度回転したサイズとなり、プリントグラフィックドライバは印刷時に論理的な用紙サイズから反時計回りに９０度回転した印刷コマンドを生成するとする。また、理解を容易にするために印刷設定構造に設定するアプリケーションの用紙サイズとプリンタにセットする用紙サイズを等しくしているものとする。
【００２５】
縦長の印刷用紙、例えばＡ４サイズの用紙を利用する場合、印刷設定構造の用紙サイズと出力用紙サイズにはＡ４を、印刷の向きには縦を設定する。この印刷設定の場合、アプリケーションやプリントプロセッサに返却される論理的な用紙サイズは９０１で示されるように縦長になる。ＡＴは上マージン、ＡＢは下マージン、ＡＬは左マージン、ＡＲは右マージンであり、用紙サイズがから各マージンを除いた矩形領域が印刷可能領域となる。ここで印刷設定構造の印刷の向きを横に設定しなおした場合、アプリケーションやプリントプロセッサに返却される論理的な用紙サイズは９０２で示され、ＢＴ、ＢＢ、ＢＬ、ＢＲはそれぞれ上、下、左、右マージンとなる。９０２で示される論理的な用紙サイズは横長になるが、プリンタにセットされている物理的な用紙は縦長であるため、各マージンも回転しＡＴ＝ＢＬ、ＡＢ＝ＢＲ、ＡＬ＝ＢＢ、ＡＲ＝ＢＴとなる。
【００２６】
一方、横長の用紙、例えばＡ５Ｌサイズの用紙を利用する場合、印刷設定構造の用紙サイズと出力用紙サイズにはＡ５Ｌを、印刷の向きには縦を設定する。この印刷設定の場合、アプリケーションやプリントプロセッサに返却される論理的な用紙サイズは９０３で示されるように横長になる。ＡＴは上マージン、ＡＢは下マージン、ＡＬは左マージン、ＡＲは右マージンであり、用紙サイズがから各マージンを除いた矩形領域が印刷可能領域となる。ここで印刷設定構造の印刷の向きを横に設定しなおした場合、アプリケーションやプリントプロセッサに返却される論理的な用紙サイズは９０４で示され、ＢＴ、ＢＢ、ＢＬ、ＢＲはそれぞれ上、下、左、右マージンとなる。９０４で示される論理的な用紙サイズは縦長になるが、プリンタにセットされている物理的な用紙は横長であるため、各マージンも回転しＡＴ＝ＢＬ、ＡＢ＝ＢＲ、ＡＬ＝ＢＢ、ＡＲ＝ＢＴとなる。
【００２７】
図５は、印刷設定構造のアプリケーションの用紙サイズと出力用紙サイズの長辺方向が等しい場合における、用紙の外形と印刷の向きの組み合わせによる回転処理の概念を示している。印刷の向きが縦向きの場合は用紙サイズの縦横がそのままアプリケーションに返却され、プリンタグラフィックドライバは印刷コマンド作成時に回転処理を行なわない。印刷の向きが横向きの場合は用紙サイズが回転され縦横を逆にしたサイズがアプリケーションに返却され、プリンタグラフィックドライバは印刷コマンド作成時に回転処理を行なう。本図では、グラフィックドライバは印刷の向きが横向きの場合、印刷コマンド作成時に色変換処理と同時に時計回りに９０度回転処理を行なうとして説明する。
【００２８】
（１）は用紙が縦長で印刷の向きが縦向きの場合であり、アプリケーションは縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙に文書ページの印刷データを回転しないでレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため無回転で印刷コマンドに変換する。
【００２９】
（２）は用紙が縦長で印刷の向きが横向きの場合であり、アプリケーションには縦長用紙を回転した横長用紙サイズが返却されるので横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙に文書ページの印刷データを回転しないでレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計回りに９０度回転して印刷コマンドに変換する。
【００３０】
（３）は用紙が横長で印刷の向きが縦向きの場合であり、アプリケーションは横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙に文書ページの印刷データを回転しないでレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため無回転で印刷コマンドに変換する。
【００３１】
（４）は用紙が横長で印刷の向きが横向きの場合であり、アプリケーションには横長用紙を回転した縦長用紙サイズが返却されるので縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙に文書ページの印刷データを回転しないでレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計回りに９０度回転して印刷コマンドに変換する。このように印刷の向きが横である場合はアプリケーションに返却するサイズが縦横逆になり、グラフィックドライバが印刷コマンド作成時に回転処理を行なうので、もとの用紙のサイズに印刷することが可能となっている。
【００３２】
図６は、印刷設定構造のアプリケーションの用紙サイズと出力用紙サイズの長辺方向が等しい場合における、２−ｕｐ、つまり割付印刷数が２であるときの用紙の外形と印刷の向きの組み合わせによる従来方法の回転処理の概念を示している。プリントプロセッサは割付数に応じ印刷可能領域を分割し、分割された印刷可能領域の長辺方向とアプリケーションの用紙サイズの長辺方向を比較し、一致していなければアプリケーションの文書ページの印刷データを回転してレイアウトする。
【００３３】
（１）は用紙が縦長で印刷の向きが縦向きの場合であり、アプリケーションは縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙の印刷可能領域を２分割し長辺方向が用紙サイズと異なるので文書ページの印刷データを時計回りに９０度回転してレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため無回転で印刷コマンドに変換する。
【００３４】
（２）は用紙が縦長で印刷の向きが横向きの場合であり、アプリケーションは横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙の印刷可能領域を２分割し長辺方向が用紙サイズと異なるので文書ページの印刷データを反時計回りに９０度回転してレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計回りに９０度回転して印刷コマンドに変換する。
【００３５】
（３）は用紙が横長で印刷の向きが縦向きの場合であり、アプリケーションは横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙の印刷可能領域を２分割し長辺方向が用紙サイズと異なるので文書ページの印刷データを時計回りに９０度回転してレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため無回転で印刷コマンドに変換する。
【００３６】
（４）は用紙が横長で印刷の向きが横向きの場合であり、アプリケーションは縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙の印刷可能領域を２分割し長辺方向が用紙サイズと異なるので文書ページの印刷データを反時計回りに９０度回転してレイアウトし、プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計回りに９０度回転して印刷コマンドに変換する。このように割付数に応じて印刷可能領域を分割し、分割された印刷可能領域と印刷用紙サイズの長辺方向が異なる場合はプリントプロセッサで回転してレイアウトを行なうため、プリンタグラフィックドライバが供給された印刷データからビットマップを作成する際にはアプリケーションの印刷データを回転処理する必要がある。したがって印刷データの内容が多くなると共にプリンタドライバのオーバーヘッドも大きくなっていた。
【００３７】
図７は、印刷設定構造のアプリケーションの用紙サイズと出力用紙サイズの長辺方向が等しい場合における、２−ｕｐ、つまり割付印刷数が２であるときの用紙の外形と印刷の向きの組み合わせによる本実地例の回転処理の概念を示している。プリントプロセッサは割付数に応じ印刷可能領域を分割し、分割された印刷可能領域の長辺方向とアプリケーションの用紙サイズの長辺方向を比較し、一致していなければ印刷設定構造の印刷の向きを変更し、ＧＤＩを介してプリンタグラフィックドライバに通知することで論理的な印刷可能領域を回転する。つまり縦長用紙であれば横長に、横長用紙であれば縦長になるので印刷可能領域も回転し、分割した印刷可能領域にはアプリケーションの文書ページの印刷データを回転しないでレイアウトすることが可能になる。
【００３８】
（１）は用紙が縦長で印刷の向きが縦向きの場合であり、アプリケーションは縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙の印刷可能領域を２分割し、分割した印刷可能領域と文書ページの用紙サイズの長辺方向が異なるので印刷設定構造の印刷の向きを横向きに変更しＧＤＩを介してプリンタグラフィックドライバに通知する。印刷の向きが横向きに変更されため、プリントプロセッサに返却される論理的な用紙サイズは横長となり、割付数で分割した印刷可能領域と文書ページの用紙サイズの長辺方向が等しくなり、文書ページの印刷データは無回転でレイアウトできる。プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計方向に９０度回転して印刷コマンドに変換する。
【００３９】
（２）は用紙が縦長で印刷の向きが横向きの場合であり、アプリケーションは横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙の印刷可能領域を２分割し、分割した印刷可能領域と文書ページの用紙サイズの長辺方向が異なるので印刷設定構造の印刷の向きを縦向きに変更しＧＤＩを介してプリンタグラフィックドライバに通知する。印刷の向きが縦向きに変更されため、プリントプロセッサに返却される論理的な用紙サイズは縦長となり、割付数で分割した印刷可能領域と文書ページの用紙サイズの長辺方向が等しくなり、文書ページの印刷データは無回転でレイアウトできる。プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため回転せずに印刷コマンドに変換する。
【００４０】
（３）は用紙が横長で印刷の向きが縦向きの場合であり、アプリケーションは横長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは横長用紙の印刷可能領域を２分割し、分割した印刷可能領域と文書ページの用紙サイズの長辺方向が異なるので印刷設定構造の印刷の向きを横向きに変更しＧＤＩを介してプリンタグラフィックドライバに通知する。印刷の向きが横向きに変更されため、プリントプロセッサに返却される論理的な用紙サイズは縦長となり、割付数で分割した印刷可能領域と文書ページの用紙サイズの長辺方向が等しくなり、文書ページの印刷データは無回転でレイアウトできる。プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが横向きであるため時計方向に９０度回転して印刷コマンドに変換する。
【００４１】
（４）は用紙が横長で印刷の向きが横向きの場合であり、アプリケーションは縦長用紙サイズの文書ページを作成し印刷を行ない、プリントプロセッサは縦長用紙の印刷可能領域を２分割し、分割した印刷可能領域と文書ページの用紙サイズの長辺方向が異なるので印刷設定構造の印刷の向きを縦向きに変更しＧＤＩを介してプリンタグラフィックドライバに通知する。印刷の向きが縦向きに変更されため、プリントプロセッサに返却される論理的な用紙サイズは横長となり、割付数で分割した印刷可能領域と文書ページの用紙サイズの長辺方向が等しくなり、文書ページの印刷データは無回転でレイアウトできる。プリンタグラフィックドライバはプリントプロセッサに供給された印刷データをビットマップにし、印刷の向きが縦向きであるため回転せずに印刷コマンドに変換する。
【００４２】
図２は本実施例におけるプリントプロセッサの割付印刷処理のフローチャートである。一枚の出力用紙に複数の文書ページをレイアウトする際に回転が必要な場合は、文書ページを回転するのではなく、印刷構造設定の印刷の向きを反転することで、印刷可能領域を回転することを特徴とする。プリントプロセッサはアプリケーションが文書ページの印刷処理を行ない、スプールファイルに文書ページの印刷データが保存された時にデスプーラにより起動される。まずＳ２０１でＧＤＩを介してＯＳの印刷システムに印刷処理開始を通知する。続いてＳ２０１からＳ２１１までが印刷用紙のループであり最終物理用紙まで処理を繰り返す。Ｓ２０３では印刷用紙に配置される複数の文書ページの中から、代表する文書ページを決定し、その代表文書ページと割付数で分割した印刷可能領域の長辺方向が等しいか比較し、異なっていれば回転が必要と判断し、等しければ回転は不要と判断する。ここで印刷用紙に配置される文書ページの中から代表する文書ページを選択するには、例えばページ番号が一番小さい文書ページを用いればよい。あるいは、一枚の出力用紙にレイアウトされる全ての文書ページの回転の有無を調査し、複数の文書ページのうち半数以上に回転の必要性が在るかどうかで決定してもよい。Ｓ２０４で回転が必要である場合にはＳ２０５に移り、回転が不要である場合にはＳ２０６に移る。Ｓ２０５ではプリントプロセッサの描画領域を回転するために印刷設定構造の印刷の向きを、縦ならば横、横ならば縦というように反転し、ＧＤＩを介してプリンタグラフィックドライバに通知する。こうしてプリントプロセッサが文書ページをレイアウトする論理的な用紙サイズと印刷可能領域が回転するため、各文書ページを回転せずにレイアウトすることが可能になる。続いてＳ２０６ではＯＳの印刷システムに１ページ印刷開始を通知する。Ｓ２０７からＳ２０９が印刷用紙の印字領域に文書ページをレイアウトするループであり、割付数の回数だけ文書ページが存在する限り繰り返す。Ｓ２０８では印刷可能領域を割付数で分割し、分割された印刷可能領域に対して文書ページを無回転でレイアウトする。該当の物理用紙に対応する文書ページをレイアウトした後、Ｓ２１０で印刷システムに１ページ印刷終了を通知する。こうして１枚の物理用紙のレイアウトが終了し、レイアウト後の印刷データがプリンタグラフィックドライバに供給される。Ｓ２１１で全ての物理ページを処理した後、Ｓ２１２で印刷システムに印刷終了を通知し、プリントプロセッサの割付印刷処理を終了する。
【００４３】
図８は本実施形態における印刷システムのハードウェア構成を示すブロック図である。本図において、９０１は、ＣＲＴ表示装置であり、図３に示すユーザインタフェースドライバが提供する印刷設定ダイアログ等を表示する。９０２はＣＲＴＣで表示装置用のコントローラである。９０３は、キーボードなどのデータ入力装置であり、９０４は、キーボードコントローラである。９０５は、ポインティングデバイス等の座標入力装置であり、９０６は、ポインティングデバイスコントローラである。９０７は、装置全体の制御を司るＣＰＵである。９０８は、ブートプログラムなどを記憶しているＲＯＭである。９０９は、ＯＳ、各アプリケーションプログラムと図２のフローチャートに関るプリンタドライバプログラムを格納したり、さらにはワークエリアとしても利用されるＲＡＭである。９１０は、ＯＳ、各アプリケーションプログラムと図２のフローチャートに関るプログラムを含むプリンタドライバプログラム、フォントデータを記憶しており、さらにはスプールファイル等を一時的に記憶するハードディスク装置であり、９１１はハードディスクコントローラである。９１２は、可搬性記憶媒体の駆動装置であるフロッピー（登録商標）ディスク装置であり、９１３はフロッピー（登録商標）ディスクコントローラである。９１４は、インターフェースであり、インターフェースケーブルを介してインクジェットプリンタなどの印刷装置９１５に接続される。９１６は、各デバイスを接続するバスである。本装置に電源が投入されると、ＣＰＵ９０７はＲＯＭ９０８に格納されているブートプログラムに従って起動し、ハードディスク装置９１０からＯＳをロードし、操作者の操作待ち状態になる。そして、操作者からＫＢ９０３またはＰＤ９０５からアプリケーションを介して印刷指示やプリンタドライバの印刷設定変更指示を受けた場合、もしくは自動的に起動するように設定されている場合は、ハードディスク装置９１０に格納されているプリンタドライバプログラムがＲＡＭ９０９にロードされ実行される。
【００４４】
本実施例ではプリンタグラフィックドライバは印刷設定構造の印刷の向きの設定が横の場合は、印刷コマンド作成時に時計回りに９０度回転処理（右回転）を行なうとしたが、プリンタグラフィックドライバが反時計回りに９０度回転処理（左回転）する場合においても、割付印刷時にプリントプロセッサが文書ページをレイアウトするにあたり回転が必要と判断した時は、印刷設定構造の印刷の向きの設定値を反転することで、同様の効果が得られることは言うまでもない。
【００４５】
また、本実施例では割付数が２である割付印刷（２−ｕｐ）について説明したが、２−ｕｐに限らず、一般に言うＮ−ｕｐ印刷においても同様の効果が得られることは言うまでもない。
【００４６】
また、本実施例ではアプリケーションの用紙サイズとプリンタの出力用紙サイズが等しい場合において説明したが、これら二つの用紙サイズが異なっている場合においても同様の効果が得られることは言うまでもない。
【図面の簡単な説明】
【００４７】
【図１】印刷システムのブロック図
【図２】実施例におけるプリントプロセッサの割付印刷のフローチャート
【図３】ユーザインタフェースドライバの画面例
【図４】印刷設定構造の例
【図５】印刷の向きとプリンタグラフィックドライバの回転方向の図
【図６】従来方法の２−ｕｐの割付印刷の説明図
【図７】本実施例の２−ｕｐの割付印刷の説明図
【図８】実施例のハードウェアのブロック図
【図９】印刷の向きと印刷用紙の印刷可能領域の関係図
【図１】
2005182694.tif 000003
【図２】
2005182694.tif 000004
【図３】
2005182694.tif 000005
【図４】
2005182694.tif 000006
【図５】
2005182694.tif 000007
【図６】
2005182694.tif 000008
【図７】
2005182694.tif 000009
【図８】
2005182694.tif 000010
【図９】
2005182694.tif 000011