(57)【特許請求の範囲】
【請求項１】
アプリケーションが作成した文書のページの印刷データがシステムを通じて蓄えられる印刷設定情報と描画データを含むスプールファイルの描画データをプリンタが解釈可能なコマンドに変換するプリンタドライバを記憶する情報処理装置であって、
前記プリンタドライバで特定機能の設定がされた場合、特定機能を実現する描画データと描画データで使用される資源情報を含む機能表示用文書情報を作成し、作成された機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却する返却手段と、
スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、ページに特定機能が施された画像を印刷するコマンドを生成する生成手段とを有し、
前記システムは前記返却手段により返却された印刷設定情報をアプリケーションが通知した印刷設定情報の代わりにスプールファイルに格納することを特徴とする情報処理装置。
【請求項２】
前記特定機能は、スタンプ機能または背景機能のいずれかを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記返却手段は、特定機能の設定がされた場合、機能表示用文書情報を生成するモジュールを起動し、起動されたモジュールに機能表示用文書情報を生成させ、生成させた機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記資源情報は、フォント、または機能表示用ビットマップを含むことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記返却手段は、印刷設定が変わる際、印刷設定に応じた機能表示用文書情報を含む印刷設定情報をシステムに返却することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記生成手段は、スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、各ページの描画情報の前か後ろに特定機能の描画情報を挿入することにより、各ページに特定機能が施された画像を印刷するコマンドを生成することを特徴とする請求項１記載の情報処理装置。
【請求項７】
アプリケーションが作成した文書のページの印刷データがシステムを通じて蓄えられる印刷設定情報と描画データを含むスプールファイルの描画データをプリンタが解釈可能なコマンドに変換するプリンタドライバを記憶する情報処理装置における情報処理方法であって、
前記プリンタドライバで特定機能の設定がされた場合、特定機能を実現する描画データと描画データで使用される資源情報を含む機能表示用文書情報を作成し、作成された機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却する返却ステップと、
スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、ページに特定機能が施された画像を印刷するコマンドを生成する生成ステップとを有し、
前記システムは前記返却ステップにより返却された印刷設定情報をアプリケーションが通知した印刷設定情報の代わりにスプールファイルに格納することを特徴とする情報処理方法。
【請求項８】
前記特定機能は、スタンプ機能または背景機能のいずれかを含むことを特徴とする請求項７記載の情報処理方法。
【請求項９】
前記返却ステップは、特定機能の設定がされた場合、機能表示用文書情報を生成するモジュールを起動し、起動されたモジュールに機能表示用文書情報を生成させ、生成させた機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却することを特徴とする請求項７記載の情報処理方法。
【請求項１０】
前記資源情報は、フォント、または機能表示用ビットマップを含むことを特徴とする請求項７記載の情報処理方法。
【請求項１１】
前記返却ステップは、印刷設定が変わる際、印刷設定に応じた機能表示用文書情報をシステムに返却することを特徴とする請求項７記載の情報処理方法。
【請求項１２】
前記生成ステップは、スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、各ページの描画情報の前か後ろに特定機能の描画情報を挿入することにより、各ページに特定機能が施された画像を印刷するコマンドを生成することを特徴とする請求項７記載の情報処理方法。
【請求項１３】
アプリケーションが作成した文書のページの印刷データがシステムを通じて蓄えられる印刷設定情報と描画データを含むスプールファイルの描画データをプリンタが解釈可能なコマンドに変換するプリンタドライバを記憶するコンピュータに実行させるプログラムであって、
前記プリンタドライバで特定機能の設定がされた場合、特定機能を実現する描画データと描画データで使用される資源情報を含む機能表示用文書情報を作成し、作成された機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却する返却ステップと、
スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、ページに特定機能が施された画像を印刷するコマンドを生成する生成ステップとをコンピュータに実行させ、
前記システムは前記返却手段により返却された印刷設定情報をアプリケーションが通知した印刷設定情報の代わりにスプールファイルに格納することを特徴とするプログラム。
【請求項１４】
前記特定機能は、スタンプ機能または背景機能のいずれかを含むことを特徴とする請求項１３記載のプログラム。
【請求項１５】
前記返却ステップは、特定機能の設定がされた場合、機能表示用文書情報を生成するモジュールを起動し、起動されたモジュールに機能表示用文書情報を生成させ、生成させた機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却することを特徴とする請求項１３記載のプログラム。
【請求項１６】
前記資源情報は、フォント、または機能表示用ビットマップを含むことを特徴とする請求項１３記載のプログラム。
【請求項１７】
前記返却ステップは、印刷設定が変わる際、印刷設定に応じた機能表示用文書情報をシステムに返却することを特徴とする請求項１３記載のプログラム。
【請求項１８】
前記生成ステップは、スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、各ページの描画情報の前か後ろに特定機能の描画情報を挿入することにより、各ページに特定機能が施された画像を印刷するコマンドを生成することを特徴とする請求項１３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが作成した文書のページの印刷データがシステムを通じて蓄えられるスプールファイルの印刷データをプリンタが解釈可能なコマンドに変換してプリンタに供給する情報処理装置、情報処理方法及びプログラムに関するものである。
【背景技術】
【０００２】
情報伝達用の印刷データと機能表示用の印刷データとを含む印刷を行なう一例として、例えば「社外秘」扱いの文書を配布する場合に、文書の各ページに「社外秘」という文字が現われる印を押す場合などがある。ところが、印刷後の印刷物の各ページに人手により印を押すという作業はコストがかかるため、一般に電子化された「社外秘」等のマークを文書と共に印刷する手法が取られる。この「社外秘」といったマークをスタンプと呼んでいる。
【０００３】
スタンプ付きの文書印刷の場合には、アプリケーションはユーザが希望するスタンプの文字列等を受け付ける入力部分を持つ必要がある。そして、文書の印刷時において、アプリケーションは文書の各ページの印刷データを作成する際にユーザに指定されたスタンプを合成し、プリンタに対し送信する必要がある。すなわち、文書に重ねあわせるスタンプを変更するたびに、文書自体を編集する必要がある。これを改善するため、プリンタドライバによるスタンプ機能の実現手法がある。
【０００４】
プリンタドライバによるスタンプ機能の実現手法において重要なことの一つに、ユーザーが指定したスタンプの設定を印刷結果に正しく反映させることがある。ここで、ユーザが印刷設定を変更し設定できるのは印刷処理を開始する前である。一方、印刷処理においてプリンタドライバがスタンプの合成処理を行うのは印刷処理が開始され、アプリケーションの文書がスプールされ、スプールされた文書の印刷データのデスプール処理が開始された後である。従って、例えばスタンプ設定のフォントやロゴ等の画像が、印刷設定時においては存在していても、プリンタドライバが合成処理を行う時点では存在しない可能性が有る。
【０００５】
スタンプで使用されるフォントや画像等の資源をデスプール処理が開始された時点においてプリンタドライバが利用可能にする。そのようにすることで、ユーザーが指定したスタンプの設定を印刷結果に正しく反映させることができるため、この点を考慮したプリンタドライバによるスタンプ機能が提案されている。
【０００６】
一手法としては、アプリケーションが作成する文書のページの印刷データの間隙にプリンタドライバがアプリケーションに成り代わりスタンプのみを描画したページの印刷データを挿入する。そして、蓄えられた印刷ページをプリンタが解釈可能な印刷コマンドに変換する時点で、プリンタドライバがアプリケーションの各ページと挿入されたスタンプが描画されたページを重ね合わせるという手法である。
【０００７】
また、他の手法ではアプリケーションが作成した文書の各ページの印刷データを作成した段階で、プリンタドライバがアプリケーションの印刷データを独自形式の印刷データに変換するとともにスタンプで使用されるフォントなどを格納する。そして、蓄えられた独自形式の印刷データをプリンタが解釈可能な印刷コマンドに変換する時点で、プリンタドライバがアプリケーションの各ページにスタンプを描画するという手法である。
【特許文献１】特開２００２−３３３９５９号公報
【特許文献２】特開２００３−０１５８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、前記のような従来の技術には次のような解決すべき課題があった。
【０００９】
前記従来例の第一の手法では、アプリケーションが作成した文書の印刷データの各ページの間隙にプリンタドライバが作成したスタンプ等を描画したページを挿入する必要が有った。このためオペレーティングシステム（以下ＯＳと略す）の印刷サポート機能によっては、プリンタドライバによるスタンプを描画したページの挿入処理が行えない欠点がある。
【００１０】
また前記従来例の第二の手法は、アプリケーションの各ページの印刷データと共にスタンプで使用されるフォントなどを独自形式の印刷データに変換して格納するものである。よって、ＯＳの印刷サポート機能の内部的な仕様が変更されると、その変更に追従して独自形式を更新していく必要が有るため、長期間に渡りプリンタドライバの機能を保守するためにコストが増大する欠点がある。
【００１１】
本発明は、前記従来手法の欠点を除去するものである。
【００１２】
本発明では、ＯＳの印刷サポート機能が提供するシステム標準の印刷データのスプール形式を利用して、スタンプ等を描画したページの挿入処理を行うことなく、社外秘などのスタンプを含む印刷データをプリントする印刷システムを提供する。またユーザーが指定したスタンプの設定を印刷結果に正しく反映させることが可能となる印刷システムを提供する。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、
本発明の情報処理装置は、アプリケーションが作成した文書のページの印刷データがシステムを通じて蓄えられる印刷設定情報と描画データを含むスプールファイルの描画データをプリンタが解釈可能なコマンドに変換するプリンタドライバを記憶する情報処理装置であって、
前記プリンタドライバで特定機能の設定がされた場合、特定機能を実現する描画データと描画データで使用される資源情報を含む機能表示用文書情報を作成し、作成された機能表示用文書情報を印刷設定情報に格納し、機能表示用文書情報が格納された印刷設定情報をシステムに返却する返却手段と、
スプールファイルの印刷設定情報を取得し、機能表示用文書情報が含まれているか判別し、機能表示用文書情報が含まれていないと判別された場合、ページに対応する画像を印刷するコマンドを生成し、機能表示用文書情報が含まれていると判別された場合、ページに特定機能が施された画像を印刷するコマンドを生成する生成手段とを有し、
前記システムは前記返却ステップにより返却された印刷設定情報をアプリケーションが通知した印刷設定情報の代わりにスプールファイルに格納することを特徴とする。
【発明の効果】
【００１４】
上記構成により本発明によれば以下のような効果が得られる。
（１）特定機能たとえばスタンプ機能を実現する際に、アプリケーションの印刷データのページの隙間にプリンタドライバが機能表示用ページを挿入できない場合であっても、ユーザーが指定した特定機能の設定を印刷結果に正しく反映させることが可能になる。
（２）ＯＳの印刷サポート機能が提供するＯＳ標準の印刷データのスプール形式を利用するため、プリンタドライバの機能の保守が容易になる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、以下において、ＵＳＢとはユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）の略であり、双方向通信が可能な公知のインタフェースであるので、その詳細説明は省略する。
【００１６】
＜印刷システムの構成＞
図１は、本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。
【００１７】
プリンタ１０１は、画像形成を行うインクジェット方式の印刷装置であり、後述するデータ処理装置１０２（情報処理装置）で生成された印刷コマンドに基づいて画像の形成を行う。
【００１８】
印刷装置の種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。プリンタ１０１は、各種機能ブロック１１０〜１１３、１２０〜１２５によって構成される。
【００１９】
データ処理装置１０２は、アプリケーションソフトが印刷ジョブを作成し、プリンタドライバが印刷ジョブの印刷命令からイメージデータを作成し、接続されたプリンタ１０１の印刷動作を制御する印刷コマンドの生成を行う。
【００２０】
本実施形態ではデータ処理装置１０２としてパーソナルコンピュータを用いている。印刷の設定に関するユーザーからの指示や入力を受ける役割も果たす。
【００２１】
データ処理装置１０２は、各種機能ブロック１３０〜１３５、１４０〜１４３によって構成される。
【００２２】
また、データ処理装置１０２には、データ処理装置１０２を制御するＯＳが組み込まれており、このＯＳ上で各種機能ブロックが動作する。
【００２３】
通信インターフェース１０３は、データ処理装置１０２とプリンタ１０１を接続する通信インタフェースである。
【００２４】
本実施形態ではシリアルインタフェースであるＵＳＢを用いているが、この他に、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線などのシリアルインターフェースや、セントロニクス、ＳＣＳＩなどのパラレルインタフェースを利用することもできる。
【００２５】
通信を実現するものであれば有線／無線を問わずどのようなインタフェースであっても構わない。
【００２６】
このように、本実施形態における印刷システムは、単体の装置ではなく、データ処理装置１０２と画像形成を行うプリンタ１０１とが特定の双方向インタフェースで接続された構成をとっている。
【００２７】
しかしながら、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。
【００２８】
尚、プリンタ１０１及びデータ処理装置１０２とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００２９】
印刷制御部１１０は、データ処理装置１０２から送信されてきた印刷コマンドを受けて印刷部１２０の印刷動作の制御を行う。
【００３０】
印刷部１２０は記録媒体１００を搬送したり、記録媒体１００に印刷を行うための部分である。
【００３１】
記録媒体１００は、一般に印刷用紙と呼ばれ、プリンタ１０１に備え付けられた給紙トレイやカセットなどに積載されているものとする。
【００３２】
ヘッド制御部１１１はヘッド駆動部１２１の動作の制御を行ない、ヘッドのオリフィスよりインクを吐出させる。
【００３３】
フィード制御部１１２は記録媒体１００をプリンタ１０１に備えつけられた給紙トレイや給紙カセットから１枚ずつ給紙し、搬送路上の定位置を経由し印刷可能位置に搬送し、ラスタの印刷とともに排紙動作を行うために用紙搬送部１２３の制御を行う。
【００３４】
画像形成部１１３は、データ処理装置１０２から発行された印刷コマンドに含まれるイメージデータを展開する。
【００３５】
印刷制御部１１０には、印刷制御部１１０による制御動作の作業領域や、イメージデータの展開、受信した印刷コマンドの保存のためにメモリが用意されており、そのメモリが画像形成部１１３により使用される。
【００３６】
このように印刷制御部１１０は印刷コマンドに含まれる印刷制御用のコマンドに従ってプリンタエンジンの制御を総合的に行う。
【００３７】
具体的には、印刷制御部１１０はＣＰＵにより制御用手順を記述したプログラムを実行することで実現できる。
【００３８】
また、印刷制御用のコマンドとしては、印刷用の量子化されたイメージデータとインクの打ち込み量、パス数、印刷方向及び用紙の搬送量を制御する各種コマンド、および、後述する入力操作部１３１で設定される用紙種類指示で構成されるコマンドが使用される。
【００３９】
なお、量子化されたイメージデータは２値あるいは２値化前の中間データを含む。
【００４０】
ヘッド駆動部１２１は、印刷制御部１１０で展開された印刷コマンドのイメージデータに基づき記録媒体１００に対して印刷を行う。
【００４１】
プリンタ１０１はインクジェット方式のプリンタであるため、インクの吐出によって画像形成を行う。
【００４２】
用紙ピックアップ部１２２は給紙トレイや給紙カセットに積載されている記録媒体１００を搬送路に乗せる動作を行う。
【００４３】
用紙搬送部１２３は用紙ピックアップ部により搬送路に乗せられた記録媒体１００を搬送路に沿って定位置を経由し排紙までの搬送動作を行う。
【００４４】
用紙検知センサ１２４は、搬送路途中に設置されており、搬送されている記録媒体１００の端部を検出し、記録媒体１００が搬送路中の定位置にあることを確認することができる。
【００４５】
Ｉ／Ｆ制御部１２５は、プリンタ１０１のインタフェース機能を司るＩ／Ｆ制御部である。
【００４６】
Ｉ／Ｆ制御部１２５では用紙情報の送信や印刷コマンドの受信などが行われる。また、Ｉ／Ｆ制御部１２５は、プリンタ本体で発生したエラーや通信状態などステータス情報に関しても要求があればデータ処理装置１０２に対して返却する。
【００４７】
中央制御部１４１は、データ処理装置１０２の各種機能を制御し、ＣＰＵの持つ機能がこれに該当する。
【００４８】
入力操作部１４２は、ユーザーの意図を印刷設定に反映させるための各種入力機器から構成される。
【００４９】
設定情報通知部１４３は、印刷設定をユーザーに通知する。通知方法としては、モニタなどの表示装置を使用する場合や音声による通知などが考えられる。
【００５０】
Ｉ／Ｆ制御部１４０は、データ処理装置１０２のインタフェース機能を司る。
【００５１】
Ｉ／Ｆ制御部１４０はＵＳＢのホスト側のコントローラによって構成され、ＵＳＢホストとしての機能を有する。
【００５２】
ＵＳＢホストとしての機能の一部はＯＳやドライバなどソフトウェアによっても構成される。
【００５３】
プリンタドライバ１３０は、印刷のための各種設定や印刷データの生成及びプリンタの制御をデータ処理装置１０２上で行うためのソフトウェアであり、ハードディスクに記憶されている。
【００５４】
中央制御部１４１によりプリンタドライバのプログラムが実行されて、印刷設定処理部１３１や、ページ合成処理部とイメージ生成処理部を含む印刷コマンド生成部１３４、データ通信処理部１３３などの機能が実現される。
【００５５】
印刷設定処理部１３１は、用紙の設定や印刷品位の設定などを含む各種印刷設定を行う。
【００５６】
印刷設定処理部１３１は、ユーザーからの指示や入力を受け付け、設定された内容を表示もしくは通知する機能を有する。
【００５７】
印刷コマンド生成部１３４では、ページ合成処理部においてアプリケーションにより作成された印刷ジョブの印刷データにスタンプや背景等を付加する加工処理を行う。
【００５８】
その後、イメージ生成処理部において加工処理後の印刷データのイメージデータを作成して印刷コマンドを生成する。
【００５９】
印刷コマンド生成部１３２で作成された印刷ジョブの印刷コマンドは、データ通信処理部１３３を介してＩ／Ｆ制御部１４０に送られ、プリンタ１０１へ印刷コマンドが送られる。
【００６０】
プリンタ状態表示部１３５はデータ通信処理部１３３を介して得られるプリンタ本体のエラーや通信状態などのステータス情報を、ユーザーに理解できる形式で表示したり、ステータス情報に基づいてプリンタ本体に対する適した処置をユーザーに促す。
【００６１】
＜プリンタドライバの動作＞
図２は、本発明におけるプリンタドライバの実施形態を説明するために図１の印刷システムをＯＳの印刷サポート機能とプリンタドライバを中心に表したブロック図である。
【００６２】
図２において、本発明に関するモジュールは、グレーの網掛けがされたモジュールであるユーザインタフェースドライバ２０５と機能表示用文書作成モジュール２０７とレイヤーシーケンス２１１である。
【００６３】
具体的には、ユーザインタフェースドライバ２０５は、機能表示用の模様の設定を行う機能を有するプログラムであり、データ処理装置１０２のハードディスクに記憶されている。
【００６４】
機能表示用文書作成モジュール２０７は、ユーザインタフェースドライバ２０５により設定された機能表示用の模様が描画されたページを含むＯＳ標準形式の文書を生成するプログラムであり、データ処理装置１０２のハードディスクに記憶されている。
【００６５】
レイヤーシーケンス２１１は、ＯＳの印刷サポート機能２０３により蓄えられた印刷データからプリンタが解釈可能な印刷コマンドを生成するプログラムであり、データ処理装置１０２のハードディスクに記憶されている。
【００６６】
ここでレイヤーシケンス２１１は一つ以上のレイヤーで構成されている。
【００６７】
図２では印刷データ編集レイヤー２１３と、イメージ生成レイヤー２１５で構成される。印刷データ編集レイヤー２１３はアプリケーションの印刷データにスタンプ等の機能表示用の印刷データを合成する機能を有する。イメージ生成レイヤー２１５は印刷データからイメージデータを作成しプリンタが解釈可能な印刷コマンドを生成する機能を有する
図２における印刷システムは、アプリケーション２０１が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能２０３を通じてスプールファイル２０９に一時的に蓄えられる。そして、これをプリンタドライバがイメージデータ（すなわちビットマップデータ）に展開し、プリンタが解釈可能な印刷コマンドに変換してプリンタ１０１に供給して印刷するよう構成されている。
【００６８】
ユーザインタフェースドライバ２０５は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。
【００６９】
同時に本発明におけるユーザインタフェースドライバ２０５は、特定機能として、用紙サイズ等の属性の他にスタンプ等の模様の属性を設定する能力を提供する機能情報用模様設定処理部を有する。
【００７０】
また、ユーザインタフェースドライバ２０５は機能表示用模様の属性が設定された場合、文字列を用いるならばフォント名やポイント数や枠線の色、回転角や位置等の設定値を格納した印刷設定情報をアプリケーション２０１に返却する。
【００７１】
また、画像を用いるならばファイル名や拡大率、濃度や位置、配置方法等の設定値が格納された印刷設定情報をアプリケーション２０１に返却する。
【００７２】
アプリケーション２０１は作成した任意の文書の印刷にあたる。そして、アプリケーション２０１はＯＳの印刷サポート機能２０３に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースドライバ２０５から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。ここで、ＯＳの印刷サポート機能２０３はアプリケーション２０１により印刷開始や印刷設定の変更等が行われる度に、印刷イベントをユーザインタフェースドライバ２０５に通知する。
【００７３】
ユーザインタフェースドライバ２０５は印刷が開始された旨の印刷イベントならびに印刷設定が変更された旨の印刷イベントを受け取ると、印刷イベントと共に供給される印刷設定情報を参照する。
【００７４】
印刷設定情報にスタンプ等の機能表示用模様を描画する設定がなされている場合は、ユーザインタフェースドライバ２０５は機能表示用文書作成モジュール２０７を呼び出す。
【００７５】
機能表示用文書作成モジュール２０７は、スタンプ等を描画するのに必要なフォントや画像などの資源と、スタンプ等が描画されたページの印刷データを含む機能表示用文書を生成してユーザインタフェースドライバ２０５に返却する。
【００７６】
ユーザインタフェースドライバ２０５は、機能表示用文書作成モジュールから返却された機能表示用文書を印刷設定情報の中に格納し、印刷設定が変更された旨の印刷イベントの返却値として印刷設定情報を返却する。
【００７７】
続いてＯＳの印刷サポート機能２０３は印刷設定情報をスプールファイル２０９に格納する。
【００７８】
すなわち、アプリケーション２０１が通知した印刷設定情報の代わりに、ユーザインタフェースドライバ２０５が返却した印刷設定情報がスプールファイル２０９に格納される。
【００７９】
従って、機能表示用文書作成モジュール２０７が作成した機能表示用文書もスプールされることになる。
【００８０】
レイヤーシーケンス２１１は一つ以上のレイヤーで構成されており、印刷時にスプールファイルから印刷設定情報と印刷データとを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ１０１に供給し、印刷を行う機能を有する。
【００８１】
本実施形態におけるレイヤーシーケンス２１１はページ合成処理部である印刷データ編集レイヤー２１３を有する。
【００８２】
印刷データ編集レイヤー２１３は、まず、スプールファイル２０９から印刷すべき文書ページの印刷データと印刷設定情報を読み出す。
【００８３】
次に、読み出した印刷設定情報にスタンプ等を描画する設定がなされている場合、印刷設定情報から機能表示用文書を抽出する。そして、印刷データ編集レイヤー２１３は、機能表示用文書に格納されている機能表示用模様の描画に必要なフォントや画像などの資源を文書の印刷データに合成する。
【００８４】
印刷データ編集レイヤー２１３は、次に、機能表示用文書に格納されている機能表示用模様が描画されたページの印刷データと文書ページの印刷データとを合成し、合成後の印刷データをイメージ生成レイヤー２１５に供給する。
【００８５】
本実施形態におけるレイヤーシーケンス２１１は同時にイメージ生成処理部であるイメージ生成レイヤー２１５を有する。
【００８６】
イメージ生成レイヤー２１５は、まず、印刷データ編集レイヤー２１３から供給された合成ページの印刷データをもとにイメージデータに展開する。
【００８７】
イメージ生成レイヤー２１５は、次に、展開されたイメージデータをプリンタ１０１が解釈可能な印刷コマンドに変換し、変換した印刷コマンドを図２に示していないデータ通信処理部を介してプリンタ１０１に供給する。
【００８８】
出力デバイスであるプリンタ１０１は、上位装置であるデータ装置から渡された、印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。
【００８９】
印刷用紙２２１で図示される印刷結果の例は、印刷データ編集レイヤー２１３が機能表示用の模様を文書ページの上に重ね合わせた場合を示しており、これを前面模様と呼ぶことにする。
【００９０】
また印刷用紙２２７で図示される印刷結果の例は印刷データ編集レイヤー２１３が機能表示用の模様を文書ページの下に重ね合わせた場合を示しており、これを背面模様と呼ぶことにする。
【００９１】
また、図示していないが前面模様と背面模様との属性を個別に設定し、機能表示用文書作成モジュール２０７は同一の機能表示用文書中に前面模様を描画したページと背面模様を描画したページを格納する。
【００９２】
そして、印刷データ編集レイヤー２１３は背面模様とアプリケーション２０１の文書ページと前面機能表示用ページとの各々の印刷データを重ね合わせることで、前面模様と背面模様を併用することもできる。
【００９３】
さらに、ユーザインタフェースドライバ２０５は前面機能表示用ページと背面機能表示用ページとを１ページずつではなくそれぞれ複数生成し、印刷データ編集レイヤー２１３はこれらの複数の機能表示用ページと文書ページの印刷データを重ね合わせてもよい。
【００９４】
本実施形態で機能表示用の模様の属性に文字列を設定する場合、印刷開始時ならびに印刷中における印刷設定変更時においてユーザインタフェースドライバ２０５は機能表示用モジュール２０７を呼び出す。
【００９５】
機能表示用文書作成モジュール２０７は文字列を描画した機能表示用ページを含む機能表示用文書を作成し、ユーザインタフェースドライバ２０５が印刷設定情報に機能表示用文書を格納してＯＳの印刷サポート機能に返却する。
【００９６】
印刷データ編集レイヤー２１３は機能表示用ページの印刷データとアプリケーション２０１の文書ページの印刷データとを重ね合わせた合成ページの印刷データ生成しイメージ生成レイヤー２１５に供給する。
【００９７】
イメージ生成レイヤー２１５は供給された合成ページの印刷データを印刷すべき文書ページと機能表示用ページとが重ね合わされた状態のイメージデータに展開し、イメージデータを印刷コマンドに変換し、印刷コマンドをプリンタ１０１に供給する。
【００９８】
ここで、ＯＳとしてＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ等を想定して図２との対応を説明すると、レイヤーシーケンス２１１はフィルタパイプラインとして実現され、印刷データ編集レイヤー２１３やイメージ生成レイヤー２１５はフィルタパイプライン中のフィルタとして実現される。
【００９９】
機能表示用文書とスプールファイル２０９の形式はＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）文書形式となる。
【０１００】
ユーザインタフェースドライバ２０５が機能表示用文書を作成してもよいが、機能表示用文書作成モジュール２０７を用意し、ユーザインタフェースドライバ２０５は機能表示用文書作成モジュール２０７を呼び出す形態を取る方がプリンタドライバの機能の保守が容易になる。
【０１０１】
＜印刷設定画面＞
図３Ａ、図３Ｂ、図４は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。
【０１０２】
図３Ａにおいて、印刷設定ダイアログ３０１は、表示エリア３０２〜３１１、３２０〜３３１から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でもタブを使用する。同様に図３Ｂにおいては、表示エリア３０２〜３１１、３２０〜３５７から構成される。基本設定タブ３０２では、印刷の基本に関する内容を表示する。
【０１０３】
ページ設定タブ３０３は、用紙の大きさ、印刷方向、印刷レイアウト（Ｎ−ｕｐ）などの各種ページ設定に関する内容を表示する。
【０１０４】
これらのタブにおける詳細については後述する。
【０１０５】
特殊効果タブ３０４は、各種画像補整やセピア調など特殊な効果を画像に与える場合に使用する機能の選択画面を表示する。
【０１０６】
お気に入りタブ３０５は頻繁に使用する印刷設定などの保存と呼び出し機能を選択させる画面を表示する。ユーティリティタブ３０６は、ヘッドの調整やクリーニングなどの機能の選択画面を表示する。
【０１０７】
図４はスタンプ／背景を設定するためのダイアログであり、スタンプ／背景設定ダイアログ４０１は表示エリア４０２〜４２３から構成され、印刷文書に対して文字を重ねるスタンプ機能と、印刷文書の下に画像を重ねる背景機能との、印刷時に付加する機能表示用の模様の選択を行う。
【０１０８】
これらのダイアログは設定に関する内容を表示するとともに、同時にユーザーによる上記設定内容の変更指示や入力を受け付ける。
【０１０９】
図３Ａに基本設定タブ３０２が選択された場合の表示例を示す。基本設定の簡易表示エリア３２０には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部３２２は、用紙の種類を表示するとともに利用者により選択させることができる。
【０１１０】
用紙種類選択部３２２はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。
【０１１１】
選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。
【０１１２】
給紙方法選択部３２３は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。
【０１１３】
利用者は、給紙方法選択部３２３により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。
【０１１４】
印刷品質選択部３２４は利用者に印刷の品位を設定させるための項目である。
【０１１５】
色調整部３２５は利用者に印刷の色を調整させるための項目である。
【０１１６】
モノクロ印刷設定部３２６は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。
【０１１７】
プレビュー印刷設定部３２７は、各種印刷設定がどのように印刷文書に反映されるかをプリンタにより実際の印刷が行われる前に確認するためのチェックボックスである。
【０１１８】
標準設定部３３１が押されると、基本設定３０２の設定が標準（出荷時設定）に戻される。
【０１１９】
ユーザーは各項目を選択した後にＯＫボタン３０８を押下することで印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させることができる。
【０１２０】
キャンセルボタン３０９を押下すると印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。
【０１２１】
適用ボタン３１０は印刷設定ダイアログ３０１は開いたままで選択した印刷設定を印刷に反映させることができる。
【０１２２】
ヘルプボタン３１１は基本設定３０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【０１２３】
図３Ｂにページ設定タブ３０３が選択された場合の表示例を示す。
【０１２４】
用紙サイズ選択部３４１は、アプリケーションで作成する原稿の用紙サイズを表示するとともに利用者により選択させることができる。
【０１２５】
また、出力用紙サイズ選択部３４４は、プリンタで印刷するのに使用する用紙サイズを表示し、選択させることができる。
【０１２６】
用紙サイズ３４１と出力用紙サイズ３４３には、図示されているＡ４の他にもＡ５、Ｂ５、Ｌｅｔｔｅｒ、葉書等プリンタで利用できる用紙サイズが含まれる。また用紙サイズ３４１にはプリンタで扱うことのできないサイズのＢ４、Ａ３、Ａ２等を用意してもよい。
【０１２７】
印刷の向き選択部３４２は、アプリケーションで作成する原稿の向きを選択することができる。
【０１２８】
１８０度回転選択部３４３では、アプリケーションで作成された原稿を印刷する際に印刷用紙に対して１８０度回転して印刷するかどうかを選択できる。
【０１２９】
印刷の種類のフチなし全面印刷選択部３４５では、印刷用紙に対して余白無しの印刷を行うことを指示することができる。
【０１３０】
印刷の種類選択部３４６では、等倍印刷やアプリケーションの原稿を出力用紙サイズに合わせるフィットページ印刷、任意の拡大率を設定できる拡大／縮小印刷、印刷レイアウト（Ｎ−ｕｐ）等を設定することが可能である。
【０１３１】
両面印刷選択部３４７では両面印刷を行うかどうかを、自動選択部３４８では両面印刷時に自動両面印刷を行うか手動両面印刷を行うかを選択できる。
【０１３２】
印刷領域設定ボタン３４９は両面印刷選択部３４７と自動選択部３４８両方が選択された場合に有効となり、印刷領域設定ボタン３４９を押すと図示しない別のダイアログが表示され自動両面印刷時の印刷領域の設定を行うことができる。
【０１３３】
とじ方向選択部３５０では印刷後にとじる辺を指定することができる。とじしろ指定ボタン３５１を押すと図示しない別のダイアログが表示されとじしろ幅を設定することができる。
【０１３４】
印刷部数設定部３５２は印刷部数を利用者に設定させるための項目である。この数値を設定することによりアプリケーションが作成した印刷ジョブの印刷データを、プリンタドライバが指定された回数繰り返し印刷することにより、複数部数の印刷結果を得ることができる。
【０１３５】
逆順指定部３５３は最終ページから印刷するかどうかを設定するための項目である。部単位設定部３５４は印刷を部単位で行うかどうかを設定するための項目であり、印刷部数３５２の設定が２以上の場合に設定が有効となる。
【０１３６】
印刷オプション設定部３５５を押すと図示しない別のダイアログが表示され、スプールファイルのサイズを小さくするためのオプション等を設定することができる。
【０１３７】
スタンプ／背景設定部３５６を押すと図４に示されるスタンプ／背景設定ダイアログが表示され、印刷文書に対して重ね合わせる機能表示用の模様の設定を行うことができる。
【０１３８】
図４にスタンプ／背景設定ダイアログの表示例を示す。本実施例のおいてはスタンプ／背景ダイアログ４０１で、スタンプと背景それぞれを個別に設定できる。
【０１３９】
スタンプ設定部４１０ではチェックボックスを設定することでスタンプ機能を有効にすることができる。
【０１４０】
スタンプ種別設定部４１１では事前に登録されたスタンプをドロップダウンリストにより選択することが可能である。
【０１４１】
スタンプ設定部４１２を押すと図示しない別のダイアログが開き、登録されているスタンプの設定を変更したり、新たにスタンプを作成し登録することもできる。
【０１４２】
前面スタンプ設定部４１３はスタンプの模様をアプリケーションの印刷データより前面に印刷するか、あるいはスタンプの模様をアプリケーションの印刷データの後面に印刷するかを設定することができる。
【０１４３】
先頭スタンプ設定部４１４はアプリケーションの文書の第一ページにのみスタンプの模様を合成するか、あるいは全てのページにスタンプの模様を合成するかを設定できる。
【０１４４】
背景設定部４２０ではチェックボックスを設定することで背景機能を有効にすることができる。
【０１４５】
背景種別設定部４２１では事前に登録された背景をドロップダウンリストにより選択することが可能である。
【０１４６】
背景設定部４２２を押すと図示しない別のダイアログが開き、登録されている背景の設定を変更したり、新たに背景を作成し登録することもできる。
【０１４７】
先頭背景設定部４２３はアプリケーションの文書の第一ページにのみ背景の模様を合成するか、あるいは全てのページに背景の模様を合成するかを設定できる。
【０１４８】
ここで、スタンプと背景の両方の機能が有効で、かつ前面スタンプ機能がオフになっている場合、最も前面に印刷されるのはアプリケーションのページの印刷データとなり、次にスタンプの模様となり、最後に背景の模様となる。
【０１４９】
ユーザーは各項目を選択した後にＯＫボタン４０２を押下することでスタンプ／背景設定ダイアログ４０１を閉じ、選択した印刷設定を印刷に反映させることができる。
【０１５０】
キャンセルボタン４０３を押下するとスタンプ／背景設定ダイアログ４０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。
【０１５１】
標準に戻すボタン４０４が押下されるとスタンプ／背景設定ダイアログ４０１上の各設定項目の設定値が標準状態に戻される。
【０１５２】
ただし、このとき登録されているスタンプと背景の設定値には影響しない。
【０１５３】
ヘルプボタン４０５はスタンプ／背景設定ダイアログ４０１の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【０１５４】
＜スプールファイルと機能表示用文書＞
図５はスプールファイルの構造と、印刷設定情報に格納される機能表示用文書の構造を示した概念図である。
【０１５５】
ここではスタンプ／背景として文字列が設定されている場合を考える。
【０１５６】
スタンプ／背景が設定されていない通常印刷時のスプールファイルの構造は通常印刷時スプールファイル５０１で表される。
【０１５７】
通常印刷時スプールファイル５０１は、印刷設定情報５０３と、アプリケーションが描画したページの印刷データ５０７と、印刷データ５０７で使用されるアウトラインフォントファイルやビットマップフォントファイルを含むフォント情報の資源５０５で構成されている。
【０１５８】
アプリケーションが画像を描画した場合は、フォント情報の他にもビットマップファイルを含む画像等の資源（リソース情報）も格納される。
【０１５９】
５０３の印刷設定情報には、図３、４の画面で設定される用紙の種類、印刷品位、用紙サイズ、等の情報が含まれる。
【０１６０】
５０７の印刷データには、印刷すべき文字に対応する文字コードや印刷すべき文字の描画位置や印刷すべき文字に指定されているフォントの情報等が含まれる。
【０１６１】
スタンプ／背景印刷で文字列を指定した場合のスプールファイルの構成は、スタンプ／背景印刷時スプールファイル５１１で表される。
【０１６２】
スタンプ／背景印刷時スプールファイル５１１は、通常印刷時スプールファイル５０１と同様に、印刷設定情報５１３と、アプリケーションが描画したページの印刷データ５１７と、アプリケーションの描画で使用されたフォント情報の資源５１５で構成される。
【０１６３】
アプリケーションが画像を描画した場合は、ビットマップフォントを含むフォント情報の他にもビットマップファイルを含む画像等の資源も格納される。
【０１６４】
通常印刷時スプールファイル５０１との相違点は印刷設定情報５１３の中にユーザインタフェースドライバが格納した機能表示用文書５２１が存在する点である。
【０１６５】
機能表示用文書５２１は機能表示用ページである描画データ５２７と、描画データ５２７で使用されるフォント等の資源５２５と、機能表示用ページが描画された際に使用された印刷設定情報５２３で構成される。
【０１６６】
描画データ５２７には、たとえばスタンプに使用される文字の文字コード、サイズ情報、書体情報が含まれる。
【０１６７】
資源５２５には、スタンプに使用される文字のアウトラインフォントファイルやビットマップフォントファイルが含まれる。
【０１６８】
このフォントファイルは、スタンプに使われる文字のフォントデータだけを含むファイルでも良いし、スタンプに使われる文字を含む書体の全部の文字のフォントデータを含むファイルでもよい。
【０１６９】
以上のように、機能表示用文書５２１の構成を通常印刷時スプールファイル５０１と同様にしておくことで、スプールファイルを解析する際の手法を、そのまま機能表示用文書５２１を解析する際に用いることが可能となる。
【０１７０】
ここでスタンプ／背景としてビットマップが使用される場合、機能表示用文書５２１には機能表示用ビットマップの資源が格納されることになる。
また、言うまでもないがスタンプ／背景等の機能表示はフォントとビットマップの組合わせでもよい。
【０１７１】
ここで、ＯＳとしてＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ等を想定して図５との対応を説明すると、機能表示用文書とスプールファイルの形式はＸＰＳ文書形式となる。
【０１７２】
印刷設定情報はＰｒｉｎｔＴｉｃｋｅｔと呼ばれるＸＭＬ文書となる。
【０１７３】
ユーザインタフェースドライバが機能表示用文書を印刷設定情報に格納する際は、機能表示用文書のバイナリデータをテキストデータに変換し、独自のスキーマに従ってプライベートな要素として格納する。
【０１７４】
＜印刷データの合成＞
図６はアプリケーションの印刷データと機能表示用文書の印刷データを合成との合成結果を示す模式図である。
【０１７５】
図６（Ａ）で示すのは文字列のスタンプが設定された印刷ジョブがスプールされた状態を示している。
【０１７６】
アプリケーションが印刷する文書は３ページで構成されており、第１ページと第２ページは同一の印刷設定で印刷され、第３ページは印刷の向きを横に変更して印刷することを想定している。
【０１７７】
ここでアプリケーションの第１ページ６１３と第２ページ６１５の印刷設定は印刷設定情報６０９で表現される。
【０１７８】
印刷設定情報６０９は機能表示用文書６０５を格納しており、機能表示用文書６０５はスタンプや背景等が描画された機能表示用ページ６０１を格納している。
【０１７９】
同様にアプリケーションの第３ぺージ６１７の印刷設定は印刷設定情報６１１で表現される。
【０１８０】
印刷設定情報６１１は機能表示用文書６０７を格納しており、機能表示用文書６０７はパターンが描画された機能表示用ページ６０３を格納している。
【０１８１】
図２を用いて前述したようにユーザインタフェースドライバはアプリケーションが印刷を開始したり、印刷設定を変更する度に機能表示用文書を作成し直し印刷設定情報に格納する。
【０１８２】
従って図６（Ａ）においてはアプリケーションが印刷を開始した際の印刷設定情報６０９と、第３ページにおいて印刷設定を変更した際の印刷設定情報６１１に機能表示用文書６０５と機能表示用文書６０７がそれぞれ格納されている。
【０１８３】
また、アプリケーションが第３ページにおいて印刷設定のうち印刷の向きを横に変更しているため、印刷設定情報６０７に格納される機能表示用ページ６０３も同様に印刷の向きが横に変更されている。
【０１８４】
図６（Ｂ）で示すのは図６（Ａ）のアプリケーションのページと機能表示用ページが合成された印刷結果を示している。
【０１８５】
印刷結果である第１物理ページ６２１は、アプリケーションの第１ページ６１３と機能表示用ページ６０１が合成された結果である。
【０１８６】
同様に第２物理ページ６２３はアプリケーションの第２ページ６１５と機能表示用ページ６０１が合成された結果である。
【０１８７】
同様に第３物理ページ６２５はアプリケーションの第３ページ６１７と機能表示用ページ６０３が合成された結果である。
【０１８８】
以上の説明では文字列の模様をアプリケーションの前面に配置する図面を用いて、アプリケーションの印刷データと機能表示用文書の印刷データを合成する例を示した。
【０１８９】
しかしながら、模様をアプリケーションの印刷データの背面に配置したり、模様として文字列ではなく画像を用いることができることは言うまでも無い。
【０１９０】
また、前面と背面の模様を複数個同時に設定した場合の合成処理も、同様の概念で行える。
【０１９１】
＜機能表示用文書作成格納処理＞
図７と図８と図１１を用いてアプリケーションの印刷データのスプール時における、機能表示用文書の作成・格納処理について説明する。
【０１９２】
図７はユーザインタフェースドライバの機能表示用文書格納処理プログラムにかかわるフローチャートである。
【０１９３】
図８は機能表示用文書作成モジュールの機能表示用文書作成処理プログラムにかかわるフローチャートである。
【０１９４】
まず図７を用いてユーザインタフェースドライバによる機能表示用文書の格納処理について説明する。
【０１９５】
アプリケーションが印刷を開始したり印刷設定を変更すると、ＯＳの印刷サポート機能により、ユーザインタフェースドライバに印刷イベントが通知される。
【０１９６】
また他にもアプリケーションが文書中のページの印刷を開始したり、終了した場合にも印刷イベントがユーザインタフェースドライバに通知される。
【０１９７】
ユーザインタフェースドライバは印刷イベントを受け取ると、Ｓ１０１で印刷開始の印刷イベントか、または印刷設定変更の印刷イベントかどうかを判定する。
【０１９８】
印刷開始あるいは印刷設定変更の印刷イベントの場合はＳ１０２に移り、その他の印刷イベントの場合は終了する。
【０１９９】
Ｓ１０２では印刷イベントと共に通知された印刷設定情報を参照し、スタンプや背景等の機能表示用の模様の描画を行う必要がある印刷設定になっているかを判別する。
【０２００】
機能表示用の模様の描画を行う必要がある印刷設定の場合Ｓ１０３に移り、機能表示用の模様の描画を行う必要が無い場合は終了する。
【０２０１】
Ｓ１０３ではユーザインタフェースドライバは機能表示用文書作成モジュールを起動し、機能表示用文書作成モジュールに機能表示用ページを含む機能表示用文書を生成させる。この時、ユーザインタフェースドライバは印刷設定情報を機能表示用文書作成モジュールに供給する。  機能表示用文書作成モジュールによる機能表示用文書の生成処理は図８を用いて後述する。
【０２０２】
続くＳ１０４では生成した機能表示用文書を、印刷イベントと共に通知された印刷設定情報に格納する。
【０２０３】
続くＳ１０５では機能表示用文書を格納した印刷設定情報をＯＳの印刷サポート機能に返却し、終了する。
【０２０４】
ＯＳの印刷サポート機能は機能表示用文書が格納された印刷設定情報をスプールする。
【０２０５】
次に図８を用いて機能表示用文書作成モジュールによる機能表示用文書作成処理について説明する。
【０２０６】
まずＳ１１１で機能表示用文書を作成するために必要な初期化や印刷設定情報の格納等の開始処理を行う。
【０２０７】
続いてＳ１１２では印刷設定情報にスタンプ機能の設定がされているかどうかを判定する。
【０２０８】
スタンプ機能の設定がされている場合はＳ１１３に移り、スタンプ機能の設定がされていない場合はＳ１１４に移る。
【０２０９】
Ｓ１１３では機能表示用文書の中に機能表示用ページを作成し、スタンプの模様を描画する。
【０２１０】
Ｓ１１４では印刷設定情報に、背景機能の設定がされているかどうかを判定する。
【０２１１】
背景機能の設定がされている場合はＳ１１５に移り、背景機能の設定がされていない場合はＳ１１６に移る。
【０２１２】
Ｓ１１５では機能表示用文書の中に機能表示用ページを作成し背景の模様を描画する。
【０２１３】
最後にＳ１１６では機能表示用文書の作成を完了するにあたり必要な終了処理を行う。
【０２１４】
以上のように機能表示用文書を作成することで、スタンプや背景で使用されるフォント情報や画像常用が機能表示用文書に格納される。
【０２１５】
ここでは、まずスタンプの機能表示用ページを作成した後に背景の機能表示用ページを作成したが、この順序は逆でも良い。
【０２１６】
また、ここでは機能表示用の模様としてスタンプと背景を例示したが、機能表示用の模様の数は一つでも三つ以上でも良い。
【０２１７】
図１１はアプリケーションの印刷データのスプール時における、機能表示用文書の作成・格納処理のタイミングチャートである。
【０２１８】
なお、ここではアプリケーションの文書のページの描画については省略する。
【０２１９】
１００１でアプリケーションが印刷開始を要求すると、ＯＳの印刷サポート機能は印刷開始処理を行い、１００３で印刷開始の印刷イベントをユーザインタフェースドライバに通知する。
【０２２０】
ここで印刷開始の印刷イベントの通知と共に印刷設定情報がユーザインタフェースドライバに渡される。
【０２２１】
ユーザインタフェースドライバは、印刷設定情報を解析し、スタンプ／背景等の機能表示用の模様の設定がされていると判断した場合は、１００５で機能表示用文書作成モジュールを呼び出す。
【０２２２】
続いてユーザインタフェースドライバは、１００７で機能表示用文書作成モジュールに機能表示用文書の作成要求を行う。この時、ユーザインタフェースドライバは印刷設定情報を機能表示用文書作成モジュールに供給する。
【０２２３】
機能表示用文書作成モジュールは機能表示用文書を作成し１００９でユーザインタフェースドライバに供給する。
【０２２４】
ユーザインタフェースドライバは機能表示用文書を印刷設定情報に格納し、１０１１で印刷設定情報をＯＳの印刷サポート機能に返却する。
【０２２５】
ＯＳの印刷サポート機能はユーザインタフェースドライバから返却された印刷設定情報をスプールファイルに格納し、１０１３でアプリケーションに制御を返す。
【０２２６】
印刷中に１０２１でアプリケーションが印刷設定の変更を行った場合、ＯＳの印刷サポート機能は１０２３で印刷設定変更の印刷イベントをユーザインタフェースドライバに通知する。
【０２２７】
ここで印刷設定変更の印刷イベントの通知と共に印刷設定情報がユーザインタフェースドライバに渡される。
【０２２８】
ユーザインタフェースドライバは、印刷設定情報を解析し、スタンプ／背景等の機能表示用の模様の設定がされていると判断した場合は、１０２５で機能表示用文書作成モジュールに機能表示用文書の作成要求を行う。この時、ユーザインタフェースドライバは印刷設定情報を機能表示用文書作成モジュールに供給する。
【０２２９】
なお、この時点で機能表示用文書作成モジュールが呼び出されていない場合、機能表示用文書の作成要求を行う前に呼び出しを行う。
【０２３０】
機能表示用文書作成モジュールは機能表示用文書を作成し１０２７でユーザインタフェースドライバに供給する。ユーザインタフェースドライバは機能表示用文書を印刷設定情報に格納し、１０２９で印刷設定情報をＯＳの印刷サポート機能に返却する。
【０２３１】
ＯＳの印刷サポート機能はユーザインタフェースドライバから返却された印刷設定情報をスプールファイルに格納し、１０３１でアプリケーションに制御を返す。
【０２３２】
１０４１でアプリケーションが印刷終了を要求すると、ＯＳの印刷サポート機能は印刷終了処理を行い、１０３３で印刷開始の印刷イベントをユーザインタフェースドライバに通知する。
【０２３３】
ユーザインタフェースドライバは、既に機能表示用文書作成モジュールを呼び出している場合、機能表示用文書作成モジュールに終了要求を行う。
【０２３４】
終了要求を受けた機能表示用文書作成モジュールは終了する。
【０２３５】
１０３７でユーザインタフェースドライバからＯＳの印刷サポート機能に制御を返し、１０３９でＯＳの印刷サポート機能からアプリケーションに制御を返す。
【０２３６】
＜ページ合成処理＞
図９と図１０を用いてデスプール時にレイヤーシーケンスの印刷データ編集レイヤーが行うページ合成処理について説明する。
【０２３７】
図９は印刷データ編集レイヤーが実行するプログラムに関するページ合成処理のフローチャートである。
【０２３８】
図９はＳ２０１からＳ２１７までがスプールされたアプリケーションのページの印刷データに対してパターン合成処理を行うためのループとなっている。
【０２３９】
このループの中において、まずＳ２０３では処理対象のアプリケーションのページに対応する印刷設定情報を取得する。
【０２４０】
前述したように印刷設定情報もアプリケーションのページの印刷データと共にスプールファイルに格納されている。
【０２４１】
続いてＳ２０５で印刷設定情報にスタンプ／背景等の機能表示用の模様との合成を必要とする印刷設定がされているか判定する。
【０２４２】
合成を必要とする印刷設定がされている場合はＳ２０７へ移り、不要な場合はＳ２１５へ移る。
【０２４３】
Ｓ２０７では機能情報用模様の合成で使用されるフォントや画像等の資源が、処理中の印刷データに追加済みかどうかを判定する。
【０２４４】
合成で使用される資源が未追加であればＳ２０９に移り、追加済みであればＳ２１３に移る。
【０２４５】
ここで、スタンプ合成で使用されるフォントや画像等の資源は各ページの印刷データに対して必要なのではなく、処理中の印刷ジョブの印刷データに対して一度追加されていればよい。
【０２４６】
また、複数のページに対するスタンプ合成において、同一の資源を参照することが可能であり、背景の合成についても同様である。
【０２４７】
Ｓ２０９では印刷設定情報から機能表示用文書を抽出する。
【０２４８】
続いてＳ２１１で機能表示用文書に格納されたフォントや画像等の資源を処理中の印刷ジョブの印刷データに追加する。
【０２４９】
Ｓ２１３では処理中のアプリケーションのページの印刷データを編集し、機能表示用ページと合成する。
【０２５０】
この合成処理の詳細は図１０を用いて後述する。
【０２５１】
Ｓ２１５では処理対象のページの印刷データを次のレイヤーに送信する。
【０２５２】
具体的にＳ２１５では機能表示用模様の設定がある場合には処理対象のページの印刷データに機能表示用ページが合成された印刷データを次のレイヤーに送信する。
【０２５３】
またＳ２１５では機能表示用模様の設定がない場合には処理対象のページの印刷データ（機能表示用ページが合成されていない印刷データ）を次のレイヤーに送信する。
【０２５４】
次のレイヤーとは図２を用いて前述したように、本実施例ではイメージ生成レイヤーを想定している。
【０２５５】
イメージ生成レイヤーは、機能表示用模様の設定がある場合に印刷データ編集レイヤーが合成したページの印刷データから機能表示用模様の合成されたページのイメージデータを展開し、さらにプリンタが解釈可能な印刷コマンドに変換する。
【０２５６】
また、イメージ生成レイヤーは、機能表示用模様の設定がない場合に印刷データ編集レイヤーが送信した通常印刷時の印刷データから機能表示用模様を含まない通常ページのイメージデータを展開し、さらにプリンタが解釈可能な印刷コマンドに変換する。
【０２５７】
ここでレイヤーシーケンスは二つのレイヤーのみで構成されるのではない。
【０２５８】
例えば複数のページを１つの印刷面にレイアウトする機能を持つＮ−ｕｐレイヤーや、また例えば１つのページを複数の印刷面に分割してレイアウトする機能を持つポスターレイヤー等を組合わせてもよい。また逆に、複数の機能を単一のレイヤーにまとめることで、構成を単純にしてもよい。
【０２５９】
最後にＳ２１７では処理対象のアプリケーションのページが最終ページか判断し、最終ページでなければ、次のページに処理を進めてＳ２０１に戻る。最終ページであれば、終了する。
【０２６０】
図１０はＳ２１３の処理の詳細を示す印刷データ編集レイヤーが実行するプログラムに関するページ編集処理のフローチャートである。
【０２６１】
図１０を用いてアプリケーションの文書のページの印刷データを編集し、機能表示用文書のページの印刷データを合成する処理を説明する。
【０２６２】
まずＳ２３１で印刷設定情報に背面の模様の設定があるか判断し、背面の模様の設定がある場合はＳ２３３に移り、背面の模様の設定がない場合はＳ２３５に移る。
【０２６３】
Ｓ２３３では機能表示用文書に格納された背面の機能表示用ページの印刷データから描画情報を抽出し、アプリケーションのページの印刷データの描画情報の前に挿入する。Ｓ２３５では印刷設定情報に前面の模様の設定があるか判断し、前面の模様の設定がある場合はＳ２３７に移り、前面の模様の設定が無い場合は終了する。
【０２６４】
Ｓ２３７では機能表示用文書に格納された前面の機能表示用ページの印刷データから描画情報を抽出し、アプリケーションのページの印刷データの描画情報の後に挿入する。
【０２６５】
以上の処理を行うことで編集後のアプリケーションのページの印刷データの中の描画情報の並びは、まず背面の機能表示用模様、次にアプリケーションのページの印刷データ、最後に前面の機能表示用模様の順となる。
【０２６６】
この並び順にすることで、編集後の印刷データがイメージ生成レイヤーに送信され、イメージデータに展開される際に、まず背面模様が描画され、次にアプリケーションのページの印刷データが描画され、最後に前面模様が描画されることになる。
【０２６７】
従って図４を用いて前述したユーザインタフェースドライバにより設定されたスタンプ／背景の印刷設定が印刷結果に反映される。
【０２６８】
ここで本実施例における前面の模様とは、図４の前面スタンプ設定部がＯＮとなっているスタンプ設定となる。
【０２６９】
また背面の模様とは図４の前面スタンプ設定部がＯＦＦとなっているスタンプ設定と、図４の背景設定となる。
【０２７０】
ここで本実施例におけるレイヤーシーケンスは印刷データ編集レイヤーとイメージ生成レイヤーの二つのレイヤーで構成されるとした。しかしながら、構成を単純にするため、複数の機能を単一のレイヤーで実現してもよいことは言うまでもない。
【０２７１】
以上説明したように、本実施形態によれば次のような効果が得られる。
（１）スタンプを含む印刷データをプリントする際に、アプリケーションの印刷データのページの隙間にプリンタドライバが機能表示用ページを挿入できない場合であっても、ユーザーが指定したスタンプの設定を印刷結果に正しく反映させることが可能になる。
（２）ＯＳの印刷サポート機能が提供するＯＳ標準の印刷データのスプール形式を利用するため、プリンタドライバの機能の保守が容易になる。
【図面の簡単な説明】
【０２７２】
【図１】本発明の実施形態に係わる印刷システムのブロック図
【図２】本発明の実施形態に係わるプリンタドライバのブロック図
【図３】Ａ及びＢは印刷設定ダイアログの一例を示す図
【図４】印刷設定ダイアログの一例を示す図
【図５】本発明の実施形態に係わる機能表示用文書の格納方法の概念図
【図６】本発明の実施形態に係わるスプールファイルと印刷結果の関係を示す概念図
【図７】本発明の実施形態に係わるユーザインタフェースドライバの機能表示用文書格納手順を示すフローチャート
【図８】本発明の実施形態に係わる機能表示用文書作成手順を示すフローチャート
【図９】本発明の実施形態に係わるパターン合成処理手順を示すフローチャート
【図１０】本発明の実施形態に係わるパターン合成処理手順を示すフローチャート
【図１１】本発明の実施形態に係わるユーザインタフェースドライバの機能表示用文書格納を示すタイミングチャート
【図１】
0004630847.tif 000002
【図２】
0004630847.tif 000003
【図３】
0004630847.tif 000004
【図４】
0004630847.tif 000005
【図５】
0004630847.tif 000006
【図６】
0004630847.tif 000007
【図７】
0004630847.tif 000008
【図８】
0004630847.tif 000009
【図９】
0004630847.tif 000010
【図１０】
0004630847.tif 000011
【図１１】
0004630847.tif 000012