(57)【要約】【課題】  スプールファイルが特定解像度で保存される印刷環境において、アプリケーションの生成した画像の解像度をそのまま用いて、軽量かつ劣化の少ない拡大・縮小印刷を実現する。【解決手段】  アプリケーションに対して偽装解像度を返却して所望する解像度の画像を生成させると共に、物理用紙サイズに不要なマージンが挿入された場合はそれをレンダリング時に無視する構成を取る。【選択図】  図１１
2009048467.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムにより生成された印刷データを受信し、前記印刷データに付属の印刷設定に基づいて適したサイズのラスタデータに変換し、前記ラスタデータを元に印刷コマンドを生成する拡大縮小印刷方法であって、
前記アプリケーションプログラムに対して返却する印刷領域に関する情報を調整するための調整手段を持ち、かつ前記アプリケーションプログラムにより生成された印刷データが、一定の解像度を有するフォーマットに変換されるような印刷システムにおいて、
前記調整手段に対して、プリンタ本体の解像度と、前記印刷設定に伴う拡大・縮小率に基づき計算した偽装解像度を整数値にした上で返却する偽装解像度返却ステップと、
前記調整手段に対して、前記偽装解像度と、プリンタが望むピクセル単位の印刷可能領域サイズから逆算した調整用の印字可能領域を物理単位で返却する調整用印字可能領域返却ステップと、
前記偽装解像度返却ステップで返却した整数値の解像度でレンダリングするレンダリングステップとを有し、
前記アプリケーションが等倍で描画した画像を、拡大・縮小処理すること無くプリンタが望むサイズのラスタデータとして使用可能であることを特徴とする拡大縮小印刷方法。
【請求項２】
前記偽装解像度返却ステップは、計算した解像度が小数値であった場合に、切り上げ整数値を返却することを特徴とする請求項１に記載の拡大縮小印刷方法。
【請求項３】
前記レンダリングステップは、前記偽装解像度返却ステップによって返却された切り上げ整数値の解像度を元に前記調整手段が計算し、前記アプリケーションプログラムに返却することで、プリンタが望むピクセル単位の物理用紙サイズよりも大きな印刷データが生成された場合に発生するオフセットを無視してレンダリングすることを特徴とする請求項２に記載の拡大縮小印刷方法。
【請求項４】
前記レンダリングステップは、前記印刷設定により回転が指示された場合に、前記オフセットを除いた理論的な物理用紙サイズを基準に回転を行うことを特徴とする請求項３に記載の拡大縮小印刷方法。
【請求項５】
請求項１〜請求項４のいずれかに記載の拡大縮小印刷方法をコンピュータを介して実行可能なプログラム。
【請求項６】
請求項５に記載のプログラムを格納したコンピュータにより読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は拡大縮小印刷方法に関するものである。
【背景技術】
【０００２】
従来からホストコンピュータにおいて印刷コマンドを作成し、該作成した印刷コマンドをプリンタに出力し、プリンタによって紙媒体への記録を行わせる印刷システムが知られている。
【０００３】
このような構成で印刷を行う場合、ホストコンピュータでは、アプリケーションプログラム（以下、アプリケーション）からの印刷命令をプリンタドライバが解釈し、プリンタに適したプリントコマンドに変換し、送信する処理を行う。アプリケーションから発行される印刷命令は、機種非依存の共通形式であり、アプリケーションはプリンタ毎に特別な処理を必要としない形態が一般的である。プリンタドライバはプリンタとの接続、制御、通信を行うためのホストコンピュータ上で動作するソフトウェアプログラムで、ホストコンピュータ上で動作し、プリンタ毎に必要である。
【０００４】
ここで、プリンタ本体が印刷データのレンダリングやレイアウト等複雑な処理を行えない場合、プリンタドライバは全ての印刷命令を画像化した後、プリンタが解釈できるようなプリントコマンドに変換してプリンタに送信する。このようなプリンタに対しては、拡大，縮小を始めとした様々な処理をプリンタドライバ側で行う必要がある。
【０００５】
通常、このような構成においてプリンタドライバで拡大，縮小処理を実現する場合、主に以下の二通りの手法に分類される。
【０００６】
一つ目は、アプリケーションに偽の解像度を返却し、結果的に大きな領域を返却した上でアプリケーションに印刷データを生成させることで、結果的に大きなレンダリング結果を得るという方法、
又は、アプリケーションに偽の解像度を返却し、結果的に小さな領域を返却した上でアプリケーションに印刷データを生成させることで、結果的に小さなレンダリング結果を得るという方法である。
【０００７】
二つ目は、アプリケーションにプリンタ本来の解像度を返却し、得た印刷データを元にプリンタドライバ側で画像を作成する際に実際の拡大，縮小処理を行うという方法である。
【０００８】
前者はレンダリング時に特別な処理が不要であるというメリットがある。またそれに加え、特定のアプリケーションがピクセル単位で印字領域を取得して画像を生成した場合に、レンダリング時に余分な拡大・縮小処理が不要となり、元の画像の解像度で印刷データを作成することができるため、処理の無駄が無く出力結果も良好となる。
【０００９】
前者の手法を実現するための構成例の一例を図３に示す。図３は、オペレーティングシステム（以下、ＯＳ）としてＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ(登録商標)、及びＯＳの描画モジュールであるグラフィックデバイス・インターフェース（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ：以下、「ＧＤＩ」）を用いた印刷システム構成の概略図である。なお本構成においては、Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ（以下、ＥＭＦ）をスプールファイルとして用いる方式が一般的であるが、ここでは簡略化のため、ＥＭＦをスプールファイルとして用いず、直接プリントコマンドを生成するＲＡＷモードで説明する。
【００１０】
また図３において太枠で示したモジュールは、プリンタドライバの構成ファイルとしてＩＨＶが提供可能なモジュールである。
【００１１】
アプリケーション２００はまず、ユーザインタフェースモジュール２０２からＤＥＶＭＯＤＥ構造体に格納された印刷設定を取得する。そのＤＥＶＭＯＤＥ構造体の情報を用いて、デバイスコンテキスト（以下、ＤＣ）を作成する。ＤＣは、Ｗｉｎｄｏｗｓ（登録商標）において表示を取り扱うデバイスを仮想的に操作する概念で、アプリケーション２００は通常、このＤＣに対して描画を行うことで、プリンタ２０７に対する描画を実現する。
【００１２】
アプリケーション２００は、ＤＣからデバイス固有の情報を取得する事が可能である。図５に、取得可能なインデックス及び値の一例を示す。ここで、インデックスとは取得対象の項目を指す。
【００１３】
ＤＣにはピクセル単位の印字可能領域サイズを示す値（ＨＯＲＺＲＥＳ，ＶＥＲＴＲＥＳ）、解像度情報（ＬＯＧＰＩＸＥＬＳＸ，ＬＯＧＰＩＸＥＬＳＹ）、及び印字可能領域の物理（ミリメータ）単位の値（ＨＯＲＺＳＩＺＥ，ＶＥＲＴＳＩＺＥ）などが存在する。
【００１４】
これらＤＣの様々な値は、アプリケーション２００からＤＣを生成する際に、ＯＳ経由でグラフィックスドライバ３００が呼び出され、グラフィックスドライバ３００内で決定する。
【００１５】
ＤＣは通常ピクセル単位で管理される。そのため、グラフィックスドライバ３００は、本来のプリンタ２０７の解像度と異なる解像度を返却し、ピクセル単位の印字可能領域やオフセット値を調整することで、アプリケーション２００に対し、大きい（小さい）印刷領域を返却することが可能である。この場合、偽装したのは解像度のみであり、物理用紙サイズはアプリケーション２００から見ると変わらない。
【００１６】
これにより、印刷設定に応じて拡大・縮小を行いたい場合等に、アプリケーション２００に予め大きい（小さい）領域を返却することで、実質アプリケーション２００に拡大・縮小後の描画命令を生成させることができる。グラフィックスドライバ３００は、ＯＳ経由でＤＣに描画された描画を受け取りレンダリングすることで、特別な処理を行う事無く、大きい（小さい）ラスタデータを生成することが可能である。生成されたラスタデータを元にプリンタ２０７が解釈可能なプリントコマンド３０１を生成し、プリンタ２０７に送信する。送信したプリントコマンド３０１は一旦ＯＳによってスプールされ、プリントプロセッサー３０２を介してプリンタ２０７に送信される。
【００１７】
拡大，縮小印刷の一例として、プリンタ２０７でフチ無し印刷を行う際の例を挙げる。フチ無し印刷処理においては、用紙サイズ全面に印刷を行うため、オフセットが０になる。加えて、プリンタ２０７における印刷位置の誤差等に対応できるよう、本来の物理用紙サイズ全体よりも大きい印刷データをプリンタ２０７に送信し、本体側ではみ出す形で印刷する方法が一般的である。つまり、オフセットを０にするだけでは、プリンタ２０７が所望するサイズをアプリケーション２００に伝えることができない。
【００１８】
フチ無し印刷処理を実現するためのグラフィックスドライバ３００のデバイス固有情報の返却値の一例を図６に示す。図６では本来のプリンタの解像度、６００に対し、６０９を返却し、ピクセル単位の印字領域を大きく見せている。
【００１９】
アプリケーション２００はこの情報を元に、設定に応じて印字領域（５０４０ピクセル×７１２８ピクセル）の画像を生成し、印刷することが可能である。アプリケーション２００により生成された画像は、グラフィックスドライバ３００内でレンダリングする際、拡大，縮小処理を行う必要が無いため、無駄な処理を省略すると共に、画像のリスケールに伴う劣化を防止することが可能である。また、この例においては、５０４０ピクセル×７１２８ピクセルの値を返却するための理論解像度は６０９．６である。しかしＤＣの解像度情報は整数値である必要があるため、それを切り捨てた値を返却している。そのため、物理用紙サイズと解像度を元に計算されるピクセル値は異なる。しかし、アプリケーション２００においては、画像を描画する際にピクセル値を取得し、描画する事が一般的であるため、ピクセル単位の値を保証することが重要である。
【００２０】
このように解像度を偽装して返却することで、実際の印字領域を大きく（小さく）見せる技術が従来から知られる。
【００２１】
上記の例として、下記特許文献１をあげることが出来る。
【特許文献１】特開２００３−１１４７７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
前記の通り、一例として示したＧＤＩによる印刷システムの系においては、解像度を偽装することでアプリケーションが生成した画像をそのまま利用した拡大・縮小を行うことができた。
【００２３】
すなわち、前記の方法は、アプリケーションのデータ生成の単位、及びスプールされるデータの単位がピクセル単位であるため、実現可能であった。
【００２４】
しかし、例えば、Ｍｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットの一つであるＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以下、ＸＰＳ）をスプールファイルとする印刷システムでは前記手法により拡大・縮小を実現できない。
【００２５】
以下、ＸＰＳをスプールファイルとするようなドライバをＸＰＳＤｒｖと呼ぶ。
【００２６】
ＸＰＳＤｒｖにおいては、スプールファイルは９６ｄｐｉ単位で描画が記載されるＸＰＳ文書となる。
【００２７】
このようなＸＰＳ文書をスプールファイルとするＸＰＳＤｒｖに一般的なアプリケーションから印刷を行った場合、アプリケーションは前記の方法でＤＣに対して描画を行う。それにより生成された印刷命令は、Ｍｉｃｒｏｓｏｆｔ社によるＯＳの印刷サポート機能（ＭｉｃｒｏｓｏｆｔＸｐｓＤｏｃｕｍｅｎｔＷｒｉｔｅｒ：以下、ＭＸＤＷ）によって、前記９６ｄｐｉのＸＰＳファイルに置き換えられる。つまり、このような印刷系においては、アプリケーションに対し解像度を偽装し、大きなピクセル単位の領域を返却したとしても、最終的に生成される９６ｄｐｉのＸＰＳ文書に変換された時点で、理論的に全て同じサイズで生成されることになる。
【００２８】
この、ＸＰＳＤｒｖの印刷系の一例を図２に示す。図２の構成要素の詳細については実施例で説明する。
【００２９】
図２において、ＩＨＶが独自に作成することが可能なモジュールを太枠で示す。図２は、図３と対応した構成を取っているが、図３のグラフィックスドライバ３００がＩＨＶにより提供するモジュールであるのに対し、ＭＸＤＷ２０１はＯＳにより提供されるモジュールである。ＭＸＤＷ２０１は、グラフィックスドライバ３００同様、ＤＣ作成時のピクセル単位の印字領域情報返却を担うモジュールであるが、ＩＨＶが独自に作成するわけではないため、プリンタドライバからは返却値を正しくコントロールできない。
【００３０】
前記ＧＤＩによる印刷システムの系で説明したフチ無し印刷と同様のケースを考えると、所望するピクセル値を得るための理論解像度は６０９．６であった。しかしＤＣの解像度情報は整数値でしか取り扱われないため、この値は６１０に切り上げられ、ＭＸＤＷ２０１により計算されるピクセル単位の印字領域は、プリンタが所望する値とならない。このようにして計算されるＤＣの情報の一例を図７に示す。図７に示した通り、所望する印字領域の理論値（５０４０ピクセル×７１２８ピクセル）に対し数ピクセル大きい、（５０４３ピクセル×７１３３ピクセル）をアプリケーションに返却することとなる。全体から見ると誤差としては小さいが、この値を元にアプリケーション２００が画像を生成した場合、レンダリング時に極めて高解像度な画像の縮小処理、又は拡大処理が必要になる上、画像の劣化の原因となる。
【００３１】
このようにＩＨＶがアプリケーション２００に対する返却値をコントロールできないことを補うため、ＭＸＤＷ２０１はＤＣのサイズ等の調整を行うための仕組みを用意している。
【００３２】
これは、ＭＸＤＷ２０１から、ユーザインタフェースモジュール２０２に対し、アプリケーション２００に返却するための返却値を計算するための調整値を問い合わせる機能である。
【００３３】
この機能を用いてユーザインタフェースモジュール２０２から返却可能な値のうち、サイズ情報に関わるものには以下がある。
【００３４】
物理用紙サイズ中における、印字可能領域の上下左右位置（１／１０００ｍｍ単位）
調整用解像度（整数値）
上記の通り、調整用の解像度は整数値のままであるが、印字可能領域の上下左右位置を１／１０００ｍｍ単位で返却可能であるため、通常の解像度においては、ピクセル単位で最終的に所望する値を調整可能である。
【００３５】
しかしながら、フチ無しのケースを考えるとこれらの返却値だけでは不十分である。フチ無し印刷時のアプリケーション２００に対するＤＣの理想値は図６に示した通りである。しかし、上記調整方法では、物理用紙サイズを調整できないため、最終的にアプリケーション２００に返却する物理用紙サイズと、印字可能領域が一致しない。そのため、フチ無し設定で印刷を行ったにも関わらず、生成されるスプールデータは、不要なオフセットが存在してしまったり、逆に物理用紙サイズが印字領域よりも小さくなり、一部のデータが隠れたりてしまう。そのような出力が成される返却値の一例を図８及び図９に示す。
【００３６】
以上のように、ＸＰＳＤｒｖを用いた印刷システムのようにスプールファイルが一旦固定解像度を持つデータに変換される場合、拡大・縮小を背景技術で示したような手法で実現することができない。また特にＸＰＳＤｒｖの系においては、アプリケーションへの返却値を正しくコントロールできないため、レンダリング時に特別な処理が必要である。
【課題を解決するための手段】
【００３７】
本発明は、ＸＰＳＤｒｖのようにスプールファイルが固定解像度を持つデータに変換される印刷系において、アプリケーションが生成した画像を含む印刷データを、もとの画像の解像度をそのまま利用し、軽量かつ劣化の少ない拡大縮小方法を行うことを目的とする。
【００３８】
該目的を達成する為に、本発明の拡大縮小印刷方法は、
アプリケーションプログラムにより生成された印刷データを受信し、前記印刷データに付属の印刷設定に基づいて最適なサイズのラスタデータに変換し、前記ラスタデータを元に印刷コマンドを生成する拡大縮小印刷方法であって、
前記アプリケーションプログラムに対して返却する印刷領域に関する情報を調整するための調整手段を持ち、かつ前記アプリケーションプログラムにより生成された印刷データが、一定の解像度を有するフォーマットに変換されるような印刷システムにおいて、
前記調整手段に対して、プリンタ本体の解像度と、前記印刷設定に伴う拡大・縮小率に基づき計算した偽装解像度を整数値にした上で返却する偽装解像度返却ステップと、
前記調整手段に対して、前記偽装解像度と、プリンタの所望するピクセル単位の印刷可能領域サイズから逆算した調整用の印字可能領域を物理単位で返却する調整用印字可能領域返却ステップと、
前記偽装解像度返却ステップで返却した整数値の解像度でレンダリングするレンダリングステップとを有し、
前記アプリケーションが等倍で描画した画像を、拡大・縮小処理すること無くプリンタの所望するサイズのラスタデータとして使用可能であることを特徴とする。
【００３９】
また、本発明の拡大縮小印刷方法の
前記偽装解像度返却ステップは、計算した解像度が小数値であった場合に、切り上げ整数値を返却することを特徴とする。
【００４０】
また、本発明の拡大縮小印刷方法の
前記レンダリングステップは、前記偽装解像度返却ステップによって返却された切り上げ整数値の解像度を元に前記調整手段が計算し、前記アプリケーションプログラムに返却することで、プリンタの所望するピクセル単位の物理用紙サイズよりも大きな印刷データが生成された場合に発生するオフセットを無視してレンダリングすることを特徴とする。
【００４１】
また、本発明の拡大縮小印刷方法の
前記レンダリングステップは、前記印刷設定により回転が指示された場合に、前記オフセットを除いた理論的な物理用紙サイズを基準に回転を行うことを特徴とする。
【発明の効果】
【００４２】
本発明によれば、固定解像度でスプールファイルが生成されるような印刷系において、アプリケーションが生成した画像を劣化させることなく、軽量に拡大・縮小・フチ無し印刷を実現することができる。
【発明を実施するための最良の形態】
【００４３】
次に、本発明の詳細を実施の形態の記述に従って説明する。
【００４４】
＜印刷システムのハードウェア構成＞
図１は本発明の実施形態における印刷システムのハードウェア構成を示すブロック図である。本図において、一般的に１００がホストコンピュータ装置となる。１０１は、ＣＲＴ表示装置であり、プリンタドライバが提供する印刷設定ダイアログやプリンタステータス情報等を表示する。１０２はＣＲＴＣで表示装置用のコントローラである。１０３は、キーボードなどのデータ入力装置であり、１０４は、キーボードコントローラである。１０５は、ポインティングデバイス等の座標入力装置であり、１０６は、ポインティングデバイスコントローラである。１０７は、装置全体の制御を司るＣＰＵである。１０８は、ブートプログラムなどを記憶しているＲＯＭである。１０９は、ＯＳ、各アプリケーションプログラムやプリンタドライバプログラムを格納したり、さらにはワークエリアとしても利用されるＲＡＭである。１１０は、ＯＳ、各アプリケーションプログラムとプリンタドライバプログラム、フォントデータを記憶しており、さらにはスプールファイル等を一時的に記憶するハードディスク装置であり、１１１はハードディスクコントローラである。１１２は、可搬性記憶媒体の駆動装置であるフロッピー（登録商標）ディスク装置であり、１１３はフロッピー（登録商標）ディスクコントローラである。１１４は、インターフェースであり、インターフェースケーブルを介してインクジェットプリンタなどのプリンタ１１５に接続される。１１６は、各デバイスを接続するバスである。本装置に電源が投入されると、ＣＰＵ１０７はＲＯＭ１０８に格納されているブートプログラムに従って起動し、ハードディスク装置１１０からＯＳをロードし、ユーザーの操作待ち状態になる。そして、ユーザーからＫＢ１０３またはＰＤ１０５からアプリケーションを介して印刷指示やプリンタドライバの印刷設定変更指示を受けた場合、もしくは自動的に起動するように設定されている場合は、ハードディスク装置１１０に格納されているプリンタドライバプログラムがＲＡＭ１０９にロードされ実行される。
【００４５】
＜ＸＰＳ文書の構成＞
ＸＰＳとは、ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略で、Ｍｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットの一つである。
【００４６】
本文の理解を容易にするため、ＸＰＳについて簡単に説明する。ＸＰＳ文書はＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ （以下ＦＤＳ）をルートとするツリー構造になっている。ＦＤＳは複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下ＦＤ）を持ち、ＦＤは複数のＦｉｘｅｄＰａｇｅ（以下ＦＰ）を持つ。ＦＤＳとＦＤとＦＰのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰは文書のページの内容をＸＭＬ形式で記述しており、実際に表示または印刷される内容を含んでいる。ＦＰのページ内容で使用されるフォントや画像等の資源は複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰははそれぞれ印刷設定をＰｒｉｎｔＴｉｃｋｅｔ（以下ＰＴ）で持つことができる。ＰＴはＸＰＳ文書を印刷する際の印刷設定をＸＭＬ形式で記述したものである。ここで各ＦＰを印刷する際に使用する印刷設定は、ＦＤＳのＰＴと、印刷対象ＦＰの親ＦＤのＰＴと、印刷対象ＦＰのＰＴをマージしたＰＴとなる。
【００４７】
図４はＸＰＳ文書の論理構造を示したブロック図の一例である。ＸＰＳ文書の論理構造はＦＤＳ４０１がルートとなるツリー構造となっている。ＦＤＳ４０１は子としてＦＤ４０２とＦＤを４０５有する。ＦＤ４０２は子としてＦＰ４０３とＦＰ４０４を有する。ＦＤ４０５は子としてＦＰ４０６を有する。印刷設定を記述したＰＴについては、ＦＤＳ４０１がＰＴ４０７を、ＦＤ４０２がＰＴ４０８を、ＦＰ４０３がＰＴ４０９を、ＦＤ４０５がＰＴ４１１をそれぞれ保持している。ＦＰ４０４とＦＰ４０６はＰＴを保持していない。また、ＦＰ４０３とＦＰ４０４がフォントや画像等の資源４１０を共有しており、ＦＰ４０６はフォントや画像等の資源４１３を利用している。ここで例えばＦＰ４０３を印刷する際に使用するＰＴは、ＰＴ４０７とＰＴ４０８とＰＴ４０９をマージしたＰＴとなる。
【００４８】
また、ＦＰ内における座標系は９６ｄｐｉになっており、ＦＰ内に記載される各エレメント（画像、文字列、グラフィックス）はそれに従い配置される。但し、実際には各エレメントの配置位置やサイズは基本的にfｌｏａｔ型で取り扱われ、小数値であることが許容されているため、実解像度としては、９６ｄｐｉよりも高解像度であると言える。注意として、ＸＰＳ文書が資源として持つ画像については、９６ｄｐｉである必要は無く、ＦＰ内における配置位置が９６ｄｐｉで記載されているに過ぎない。画像は９６ｄｐｉよりもさらに高解像度であっても良い。
【００４９】
以上説明したように、ＸＰＳ文書は論理的にＸＰＳパートという概念を用いると理解が容易になる。ただし、ＸＰＳ文書自体はバイト列（ストリーム）として取り扱いが可能である為、ＸＰＳ文書内部のデータを指す場合はＸＰＳデータという言葉を用いることもある。
【００５０】
＜プリンタドライバの構成＞
図２は、本発明におけるプリンタドライバの実施形態を説明するためにＯＳの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。図２において、本発明に関るモジュールは、印刷設定処理の機能を有するユーザインタフェースモジュール２０２と、プリントコマンド生成部の機能を有するフィルターパイプライン２０４である。ここでフィルターパイプライン２０４は、ＸＰＳデータのページをレイアウト処理する機能を有するレイアウトフィルター２０５と、ＸＰＳデータをプリンタが解釈可能なプリントコマンドに変換する機能を有するレンダーフィルター２０６で構成される。
【００５１】
ここでフィルターとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【００５２】
図２における印刷システムでは、アプリケーション２００が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能（ＭＸＤＷ）２０１を通じてＸＰＳスプールファイル２０３に一時的に蓄えられ、これをプリンタドライバのフィルターパイプライン２０４がプリンタで解釈可能な印刷コマンドに変換してプリンタ２０７に供給して印刷するよう構成されている。
【００５３】
ユーザインタフェースモジュール２０２は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。ユーザインタフェースモジュール２０２は、複数の印刷設定項目の設定値が格納された印刷設定情報（ＤＥＶＭＯＤＥ）をアプリケーション２００に返却する。
【００５４】
アプリケーション２００は作成した任意の文書の印刷にあたり、ＭＸＤＷ２０１に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール２０２から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。ＭＸＤＷ２０１は、アプリケーション２００が描画した内容や印刷設定情報をＸＰＳスプールファイル２０２に変換し、格納する。
【００５５】
フィルターパイプライン２０４は任意の個数のフィルターで構成されており、印刷時にＸＰＳスプールファイル２０３から印刷設定情報とＸＰＳパートとを読込み、プリンタが解釈可能なプリントコマンドに変換してプリンタ２０７に供給し、印刷を行う機能を有する。各フィルターはスプールされた印刷ジョブをデスプールの際にＯＳの印刷サポート機能から呼び出される。スプールされたＸＰＳデータはフィルターパイプライン２０３の各フィルターを通過するＸＰＳデータのまま内容が編集され、或いはドライバ独自のデータ形式に変換され、最終的にプリンタが解釈可能なプリントコマンドに変換される。印刷ジョブのＸＰＳデータを全て処理し終えた場合、或いは、印刷ジョブがキャンセルされた場合は、フィルターパイプライン２０４の各フィルターは動作を終了する。本実施形態におけるフィルターパイプライン２０４はレイアウト処理部であるレイアウトフィルター２０５と、プリントコマンド変換部であるレンダーフィルター２０６で構成される。
【００５６】
レイアウトフィルター２０５は、ＸＰＳスプールファイル２０３に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。
【００５７】
レンダーフィルター２０６はレイアウトフィルター２０５の出力を入力とし、印刷設定情報に従い、ＸＰＳデータをプリンタが解釈可能なプリントコマンドに変換し出力する機能を有する。本実施系においては、レンダーフィルター２０６はプリントコマンド生成の際に、入力のＸＰＳデータを一度イメージデータに変換する。レンダーフィルターはイメージ生成後、色空間の変換や二値化等の画像処理を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できるプリントコマンドの種類にＸＰＳが含まれるならば、レンダーフィルター２０６の変わりに、入力のＸＰＳデータを編集しＸＰＳデータを出力するようなフィルターを持つ構成となる。また、ＸＰＳデータを編集する必要が無ければ、そのようなフィルター自体が不要となることは言うまでもない。
【００５８】
出力デバイスであるプリンタ２０７は、フィルターパイプライン２０４で生成されたプリントコマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。
【００５９】
以下、本発明にかかる一実施形態を、図面を参照して詳細に説明する。
【００６０】
〔第１の実施形態〕
本発明の処理は、大きく分けて二つの処理によって構成される。
【００６１】
一つ目の処理として、プリンタドライバはアプリケーション２００に対して拡大，縮小，フチ無しを実現するために適した印刷領域情報を返却する。アプリケーション２００に対する印刷領域情報の返却は、ＭＸＤＷ２０１によって成されるが、これはＯＳによって提供される機能であるため、ＩＨＶはユーザインタフェースモジュール２０２からそれらの返却値を調整可能となっている。これらの処理の詳細については後述する。
【００６２】
本実施例における印刷システム上では、アプリケーション２００が生成した印刷命令は、前述の通りＭＸＤＷ２０１によって一旦ＸＰＳスプールファイル２０３に変換される。ここで、ＸＰＳスプールファイルは９６ｄｐｉの座標系で各エレメントが記載されているため、このＸＰＳスプールファイルを再び拡大，縮小，フチ無しに適したサイズに展開する。これが二つ目の処理である。
【００６３】
まず、プリンタドライバからアプリケーション２００に対して拡大，縮小，フチ無しを実現するために適した印刷領域情報を返却する処理について説明する。
【００６４】
ここで、アプリケーション２００に返却する印字領域と最終的な印刷結果の関係について簡単に説明する。
【００６５】
本実施例における印刷システムにおいては、アプリケーション２００からはＤＣと呼ばれる仮想領域に描画を行うことによって印刷を実現する。ＤＣは図５に示すような値をパラメータとして持ち、座標系はピクセル単位であることは背景技術において説明した通りである。アプリケーション２００は、このＤＣのピクセル単位のサイズを取得することで、印字可能領域一杯に印刷するよう画像を拡大して配置したり、また予め印字可能領域と一致するようなサイズの画像を生成し、そのままのサイズで描画することが可能である。後者のケースでは、プリンタ２０７で出力可能な解像度を計算した上でアプリケーション２００が画像を生成する場合であり、それを生かした高解像度な出力が望まれる。
【００６６】
これらＤＣのサイズ等の情報は、印刷設定等によって変化する値であり、プリンタドライバにより決定される。図３のようなドライバ構成において、ＤＣのサイズ情報を決定するのはグラフィックスドライバ３００である。一方、図３のようなドライバ構成においては、ＤＣのサイズを決定するのはＯＳの印刷サポート機能であるＭＸＤＷになる。
【００６７】
通常の印刷設定においては、プリンタドライバ内では、ＤＣ用に返却した印字可能領域と等しいサイズのラスタデータを生成するため、アプリケーションが等倍で描画した画像はプリントコマンドを作成するためにそのまま利用される形となる。これは余計な拡大，縮小処理が不要という意味で処理が軽量であるだけでなく、画像の劣化も少ない。
【００６８】
一方、拡大・縮小印刷の場合を考えると、ＤＣ用に返却する値を通常の印刷の場合と同じ値とした場合、アプリケーション２００がＤＣに対して描画した画像の一部を拡大、及び全体を縮小して描画する形となる。これは拡大印刷の場合、解像度の劣化を招く。例えば２００％に拡大印刷を行った場合、例えアプリケーション２００がＤＣのピクセル値に応じて画像を作成してきたとしても、そのうちの１／４程の領域を拡大して印刷することになる。逆に、縮小印刷の場合、アプリケーション２００がプリンタ２０７の解像度に最適な画像を生成したとしても、結果的に縮小されるので、不要な解像度の画像をスプールしていることになる。
【００６９】
以上のようなＤＣ用の返却値とアプリケーション２００の動作を考えた場合、拡大，縮小時には、最終的にレンダリング時に用いるピクセル値を返却した方が、効率も良く、また画像のリスケールを行わないため画質面でも好ましいことがわかる。
【００７０】
例えば約６００ｄｐｉの解像度を持ち、Ａ４においては４０００×６０００ピクセルのラスタデータから生成されるプリントコマンドを受け取るプリンタがあるとする。ここで、例えば縦横それぞれ５０％の縮小を行う場合には、予めＤＣのサイズとしては２０００×３０００ピクセルの領域を返却しておく。そしてアプリケーションがこのＤＣに対して生成した描画をそのまま展開すれば、縮小されたのと同義の結果を得ることができる。
【００７１】
図３のような構成を持つ印刷システムにおいては、以上のような拡大・縮小方法を容易に実現することができた。これは予めＤＣのサイズとして返却した解像度、及びピクセル値に対してアプリケーションが生成した描画命令が、そのままの解像度でドライバまで到達するためである。
【００７２】
一方、図２のようなＸＰＳスプールファイル２０３を用いた印刷システムにおいては、アプリケーションに返却する解像度によらず、一律９６ｄｐｉの座標系を持つＸＰＳ文書がスプールデータとして使用される。
【００７３】
そのため、レンダリング時には拡大・縮小処理が必要になることになる。前記のようにＤＣのサイズとして返却する解像度を変えても、ＸＰＳスプールファイル２０３中のＦＰのサイズは、理論的に変化しないためである。
【００７４】
例えば、４０００×６０００ピクセル、６００ｄｐｉの情報をＤＣに返却した場合、生成されるＦＰのサイズは、
４０００×９６／６００    ＝  ６４０
６０００×９６／６００    ＝  ９６０
となる。一方２００％に拡大するために解像度を２倍に偽装（１２００ｄｐｉ）し、８０００×１２０００ピクセルの情報をＤＣに返却した場合、生成されるＦＰのサイズは、
８０００×９６／１２００  ＝  ６４０
１２０００×９６／１２００  ＝  ９６０
となる。このように、解像度を偽装して返却するピクセルサイズを調整しても、ＦＰの座標系においてサイズは変化しない。
【００７５】
しかしながら、返却する解像度の調整は画像に対しては無意味ではない。ＸＰＳ文書は、図４に示したとおり、階層構造をもつＸＭＬ文書及び、それらのＸＭＬ文書内から参照されるその他のパーツで構成される。ページの実情報（ページサイズや各描画）が記載されるＦＰは前述の通り９６ｄｐｉの座標系を持つ。一方、ＦＰから参照される画像オブジェクトに関しては９６ｄｐｉである必要は無く、より高解像度でも良いし、低解像度でも良い。よって最終的に、この９６ｄｐｉの画像を例えば６００ｄｐｉのプリンタ用に展開することを考えた場合、画像が６００ｄｐｉに最適化されたサイズであることは、図３の例同様、画質，並びに速度の面から有効であると言える。
【００７６】
以上のような理由から、本実施形態においては、ＭＸＤＷ２０１によって一旦９６ｄｐｉのＸＰＳスプールファイル２０３が生成されるような印刷システム上においても、アプリケーションに２００対して拡大・縮小後に最適な解像度情報を返却する。
【００７７】
図２のようなＸＰＳＤｒｖの構成の場合、アプリケーション２００がＤＣを作成しようとした場合、作成のための各種サイズ情報等の問い合わせはＭＸＤＷ２０１に来る。ＭＸＤＷはＯＳの提供する印刷サポート機能であるため、ＩＨＶはＤＣ作成のための返却値を正しくコントロールできない。そのため、ＩＨＶが提供するモジュールであるユーザインタフェースモジュール２０２と通信を行い、ユーザインタフェースモジュール２０２側でＤＣの値を調整する機能がある。
【００７８】
図１０に、図２のようなＸＰＳＤｒｖの印刷システムにおいて、アプリケーション２００がＤＣの生成を行った場合の処理の流れを示す。
【００７９】
まずアプリケーション２００はＯＳのＡＰＩを用いてＤＣの作成を依頼する。ＤＣの作成はＤＥＶＭＯＤＥ構造体に格納された各種印刷設定を引数として行われる。よってアプリケーションはＤＣを作成するために必要なＤＥＶＭＯＤＥを、予めユーザインタフェースモジュール２０２から取得しておく。
【００８０】
このようにして指定されたＤＥＶＭＯＤＥは、ユーザインタフェースモジュール２０２のサポートするＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数に渡され、エラーチェック等が成される。次に、そのようにして生成されたＤＥＶＭＯＤＥを用い、ＭＸＤＷ２０１のＤｒｖＥｎａｂｌｅＰＤＥＶ関数がコールされる。この関数では、ＤＥＶＭＯＤＥの各種印刷設定を参照し、その設定において必要なＤＣのサイズ情報等を返却する。
【００８１】
ＭＸＤＷ２０１からは、ユーザインタフェースモジュール２０２がＤＣ調整関数をサポートしていた場合、ＤＣ調整関数をコールする。
【００８２】
ＤＣ調整関数では、ＤＥＶＭＯＤＥ構造体の印刷設定を参照して、プリンタドライバが所望するピクセル値でＤＣが生成されるよう調整を行う。サイズに関連する項目で調整可能な値には以下のようなものがある。
【００８３】
物理用紙サイズ中における、印字可能領域の上下左右位置（１／１０００ｍｍ単位）
調整用解像度（整数値）
これらの値を決定する場合のユーザインタフェースモジュール２０２の処理の流れを図１２に示す。
【００８４】
まず引数として与えられた（Ｓ１２００）ＤＥＶＭＯＤＥ構造体を参照し、現在の印刷モードにおけるプリンタ解像度、及び拡大，縮小率及びフチ無しの設定に従って、調整用解像度を決定する（Ｓ１２０１）。フチ無し設定の場合は、通常オフセットを０にし、本来の物理用紙サイズよりも大きな印刷データを作成し、はみ出して印刷することによりフチなしを実現することが一般的である。はみ出し量はプリンタ２０７の斜行精度等の設計に基づき決定されるため、通常、ユーザインタフェースモジュール２０２は、フチ無し印刷時の拡大率を予め決められた値として保持している。ユーザインタフェースモジュール２０２により、はみ出し量を変更可能である場合もある。この時点における調整用解像度は必ずしも整数である必要は無い。
【００８５】
この調整用解像度を用いて、最終的にアプリケーション２００に返却したい理論印字領域，及び理論物理用紙サイズのピクセル単位の値を計算する（Ｓ１２０２）。次に調整用解像度が整数であるかどうかを確認する（Ｓ１２０３）。調整用解像度は、Ｓ１２０１の処理において、拡大，縮小設定時における拡大，縮小率や、フチ無し印刷時の拡大率を元に計算されるため、必ずしも整数とは限らない。ここで、調整用解像度が小数であった場合は、調整用解像度を切り上げる（Ｓ１２０４）。調整用解像度は、最終的に整数である必要があるためで、切り捨てるか切り上げるかの選択が存在するが、ここでは切り上げるものとする。これらの選択の違いによるアプリケーションに対する返却値については後述する。
【００８６】
次に、必要に応じてＳ１２０４で切り上げた調整用解像度、及びＳ１２０２で計算した理論印字領域を元に、最終的に理論印字領域になるように返却用の印字可能領域（１／１０００ｍｍ）を逆算する（Ｓ１２０５）。この逆算された値は１／１０００ｍｍ単位であるため、一般的な解像度の高さにおいては、最終的に計算されるピクセル値を保証することが可能である。ここでは、印字可能領域の上下左右位置を返却するため、オフセットにつていも考慮した値をとる。
【００８７】
このようにして必要に応じて切り上げられた調整用解像度、及び調整用解像度を用いて計算することでピクセル単位の理論印字領域が計算できるような調整用印字可能領域（１／１０００ｍｍ）を返却する（Ｓ１２０６）。以上が、ＭＸＤＷ２０１からＤＣ調整関数をコールされた際の、ユーザインタフェース２０２の処理の流れである。
【００８８】
このようにして調整した場合に生成されるＤＣの値について、図８に示す。対応する理想的な値は図６に示す。
【００８９】
図６で示されるＤＣの値に対し、図８ではＬＯＧＰＩＸＥＬＳＸ／Ｙ，及びＰＨＹＳＩＣＡＬＷＩＤＴＨ，ＰＨＹＳＩＣＡＬＨＥＩＧＨＴが異なる。図６及び図８では、フチ無し印刷設定の場合の例なのでＰＨＹＳＩＣＡＬＯＦＦＳＥＴＸ，及びＹが０になっているが、オフセットが存在するような印刷設定であっても、これらの値は理論値と一致させることが可能である。ユーザインタフェース２０２におけるＤＣ調整関数は、印字可能領域の上下左右位置を指定することが可能であるためである。
【００９０】
相違点として、まずＬＯＧＰＩＸＥＬＳの値については、理論値が小数であるため切り上げを行い６１０としたが、この値が６０９であるか６１０であるかについては大きな影響は無い。
【００９１】
一方、物理用紙サイズをＤＣ調整関数で調整する仕組みが無いため、この切り上げ解像度６１０で計算された物理用紙サイズは大きな値になってしまっている。ＰＨＹＳＩＣＡＬＷＩＤＴＨ，ＰＨＹＳＩＣＡＬＨＥＩＧＨＴで示される値である。このＤＣは、結果的に、印字可能領域の右下にオフセットが存在している事になる。
【００９２】
これについて、ＤＣ調整関数で、逆に調整用解像度を切り捨てた場合に生成されるＤＣの値を図９に示す。このＤＣの値は、逆に物理用紙サイズのピクセル値が印字可能領域のピクセル値（ＨＯＲＺＲＥＳ，ＶＥＲＴＲＥＳ）よりも小さくなってしまっている。これは本来ＤＣのそれぞれのパラメータが示す値としては不適切な組み合わせとなり、場合によってはアプリケーション２００内でエラーが発生する可能性がある。
【００９３】
よって本実施形態においては、解像度が小数になる場合には切り上げる前者のＤＣの値となるよう調整を行う。
【００９４】
次に、このようにして生成されたＤＣにアプリケーション２００が生成する描画、及びＭＸＤＷ２０１によって生成されるＸＰＳスプールファイル２０３について説明する。
【００９５】
図１１にその概略を示す。
【００９６】
まず、アプリケーション２００が生成する印刷データは、ＤＣへの描画によって成されるため、図８で示したＤＣの値と同じ座標系，サイズを持つことになる。またここでは、アプリケーション２００は、ＤＣから印字領域のピクセル単位の値を取得し、同一のサイズの画像をＤＣに描画しているものとする。前述の通り、物理用紙サイズは解像度の切り上げにより大きくなってしまうため、右下にオフセットが発生する（領域１１００と１１０１の差で示される白い領域）。
【００９７】
次に、ＭＸＤＷ２０１は、このようにしてアプリケーションが生成した描画命令をＸＰＳ文書に変換する。ＸＰＳ文書におけるＦＰの座標系は９６ｄｐｉの解像度で記載されるため、印字領域は図１１の※で示された計算により、７９３．１８×１１２１．７８に変換される。しかしながら、ＸＰＳ文書中において画像はファイルとして存在し、それをＦＰから参照する形で描画されるため、アプリケーションにより生成された印字領域全体と同じサイズの画像は、そのままの解像度を保持したままＸＰＳ文書中に存在することになる。
【００９８】
最後に、このようにして生成されたＸＰＳスプールファイル２０３をレンダーフィルター２０６で展開する。レンダーフィルター２０６における画像化は、解像度６１０で計算される。プリンタ本来の解像度ではなく、また小数の値である理論解像度６０９．６でも無い。これは、ＭＸＤＷ２０１により解像度６１０であるとして計算された元の印字領域を、そのまま復元するためである。この計算は、図１１の※で示される。一旦９６ｄｐｉに変換された座標系を、もう一度元に戻す形になる。
【００９９】
これにより、アプリケーションが作成した画像を、レンダーフィルター２０６の画像化のプロセスにおいてもそのままの解像度で利用することになり、不要な拡大・縮小処理が不要になる。
【０１００】
またＸＰＳスプールファイル２０３中に存在したオフセット領域を画像化の際に無視し、最終的にオフセットを無くす。これは理論印字領域のみをレンダリングすれば良いが、レンダリングエンジンに対して回転などの指示を行う場合には考慮が必要になる。
【０１０１】
そのような処理も含めた、レンダーフィルター２０６の処理のフローチャートを図１３に示す。
【０１０２】
なお、図１３のフローチャートでは、レンダーフィルターはＸＰＳ文書のＸＰＳパーツ毎に取得可能なモードで動作していることを前提としているが、ＸＰＳ文書をバイナリで受け取るモードにおいても同様に適用可能である。
【０１０３】
まず、Ｓ１３００において、初期化処理、並びにＦＤＳに対する処理を行う。ここでは、フィルターパイプライン２０４を構成するフィルターとして必要な各種初期化処理や、ＦＤＳに関連付けられたＰＴの取得などを行う。
【０１０４】
Ｓ１３０１からＳ１３１０まではＦＤの処理を行うループであり、ＦＤＳに存在するＦＤの個数だけループし、ＦＤＳに存在するＦＤを全て処理すれば終了する。ＦＤについても、ＦＤＳの処理同様、関連付けられたＰＴの取得などを行う。ＦＤに適用されるＰＴは、実際にはＦＤＳに存在したＰＴとＦＤに存在したＰＴをマージしたＰＴとなる。
【０１０５】
Ｓ１３０２からＳ１３０９まではＦＰの処理を行うループであり、現在のＦＤに存在するＦＰの個数だけループし、ＦＤに存在するＦＰを全て処理すれば終了である。ＦＰについても、ＦＤＳ，ＦＤの処理同様、関連付けられたＰＴの取得などを行う。
【０１０６】
Ｓ１４０３において、ＦＰにＰＴが存在した場合、前記ＦＤに適用されるＰＴとマージを行い、最終的にページに適用されるＰＴを求める。
【０１０７】
次に、Ｓ１４０３で求めたＰＴにおいて、レンダリング時に回転が必要な設定が成されているかを調べる。例えば、ランドスケープ設定で生成されたデータを、プリンタの給紙方向に回転するケースなどが該当する。
【０１０８】
回転が不要であった場合は、Ｓ１３０６で返却した解像度（小数である場合、切り上げた解像度）で、理論印字領域の範囲をレンダリングする。図１１においては、１１０５で示される領域をレンダリングする形となり、結果的に１１０４が持つオフセットは無視される。
【０１０９】
このようにして生成されたラスタデータを元に、Ｓ１４０８でプリンタ２０７が解釈できるプリントコマンドを生成し、プリンタ２０７に送信することで、印刷が実行される。
【０１１０】
以上のような処理をＦＰ／ＦＤがなくなるまで繰り返すことで、ＸＰＳ文書全体を処理すれば、レンダーフィルター２０６の処理は終了となる。
【０１１１】
Ｓ１４０４において、回転が必要であると判断した場合には、回転を行うサイズについて注意が必要である。回転処理は、例えば１８０度原点に対して行った場合、座標軸においてもとの位置の真裏にきて、全ての値はマイナスになることになる。そのため、回転後には回転を行いたい対象のサイズ分移動させる。つまり、回転後の原点を明らかにするために、回転対象のサイズが必要といえる。
【０１１２】
そのため、Ｓ１４０５で回転を行う対象のサイズを計算する。もし、ＦＰに記載のＦＰの物理用紙サイズ全体を回転させた場合、１４０４で示されるオフセット領域が左上に移動する形となる。それを左上を原点として印字領域のサイズでレンダリングした場合、レンダリング結果にオフセット領域が入ってしまう。Ｓ１４０５では、Ｓ１４０３で求めたＰＴの各種印刷設定を元に、９６ｄｐｉにおける理論物理用紙サイズを計算する。
【０１１３】
Ｓ１４０６では、Ｓ１４０５で求めた回転対象サイズを元に、レンダリングエンジンに回転を指示する。
【０１１４】
こうすることで、１１０５に示された印字領域（オフセットが存在する印刷設定であった場合それも含む）のみが回転される形となり、レンダリング結果にもオフセット領域が含まれることが無い。
【０１１５】
〔その他の実施形態〕
本発明の目的は前述したような実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステムあるいは装置に提供することによっても達成される。このような形態においては、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１１６】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【０１１７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまることで、前述した実施形態の機能が実現される場合も含む。この場合、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。
【図面の簡単な説明】
【０１１８】
【図１】実施形態におけるハードウェア構成を示す図である。
【図２】実施形態におけるプリンタドライバを中心としたソフトウェア構成及び印刷処理の流れを示す図である。
【図３】ＧＤＩを用いる印刷システムにおける、ソフトウェア構成及び印刷処理の流れを示す図である。
【図４】ＸＰＳ文書の論理構造の一例を示す図である。
【図５】領域情報に関連するＤＣの値の一例を示す図である。
【図６】フチ無し設定時のＤＣの値の一例を示す図である。
【図７】ＭＸＤＷにより計算されるフチ無し設定時のＤＣの値の一例を示す図である。
【図８】ＤＣ調整関数により調整したＤＣの値の一例を示す図である。
【図９】ＤＣ調整関数により調整したＤＣの値の一例を示す図である。
【図１０】アプリケーションがＤＣを作成した場合の、ＭＸＤＷ及びユーザインタフェースの処理の概要を示す図である。
【図１１】フチ無し印刷時における、ＤＣ，ＸＰＳ文書，レンダリング後の画像の解像度及びサイズの概略を示す図である。
【図１２】ユーザインタフェースにおける、ＤＣ調整関数の処理のフローチャートを示す図である。
【図１３】レンダーフィルターにおける、印刷コマンド作成処理のフローチャートを示す図である。
【符号の説明】
【０１１９】
１００  ホストコンピュータ装置
１１６  バス
４００  ＸＰＳ文書
１１００  ＤＣにおける物理用紙領域
１１０１  ＤＣにおける印字可能領域
１１０２  ＸＰＳ文書のＦＰにおける物理用紙領域
１１０３  ＸＰＳ文書のＦＰにおける印字可能領域
１１０４  レンダリング時に無視される物理用紙領域
１１０５  レンダリング後の印字可能領域
【図１】
2009048467.tif 000003
【図２】
2009048467.tif 000004
【図３】
2009048467.tif 000005
【図４】
2009048467.tif 000006
【図５】
2009048467.tif 000007
【図６】
2009048467.tif 000008
【図７】
2009048467.tif 000009
【図８】
2009048467.tif 000010
【図９】
2009048467.tif 000011
【図１０】
2009048467.tif 000012
【図１１】
2009048467.tif 000013
【図１２】
2009048467.tif 000014
【図１３】
2009048467.tif 000015