(57)【要約】【課題】プリンタドライバのレンダリング部での処理によりウォーターマークを付加可能で、その際、プリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行しなくても済むようにすること。【解決手段】ウォーターマークを描画する際、プリンタドライバのレンダリング部は、表示用デバイスコンテキストを取得し（Ｓ４０１）、表示用デバイスコンテキストに対してウォーターマークを描画する（Ｓ４０３〜Ｓ４０９）。そして、表示用デバイスコンテキストから、描画されたウォーターマークを取得して（Ｓ４１１）、取得したウォーターマークを印刷用の描画メモリと合成する（Ｓ４１３）。これにより、プリンタドライバのレンダリング部は、印刷用のデバイスコンテキストに対する描画命令を発行することなく、印刷用の描画メモリに対してウォーターマークを描画できる。【選択図】図５
2010134539.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置において、前記情報処理装置が備える制御部を、前記プリンタドライバのレンダリング部として機能させるためのプリンタ制御用プログラムであって、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させるためのプリンタ制御用プログラム。
【請求項２】
前記付加画像描画手段は、前記付加画像を複数の部分画像に分割して、各部分画像を描画するための描画命令を前記表示用のデバイスコンテキストに対して発行することにより、前記ディスプレイドライバに各部分画像を描画させる手段、
前記付加画像取得手段は、前記ディスプレイドライバによって１つの前記部分画像が描画される毎に、前記部分画像を取得する手段、
前記画像合成手段は、前記付加画像取得手段によって取得された前記部分画像について、当該部分画像を重ね合わせるべき前記ベース画像上の位置を、前記付加画像を複数の部分画像に分割したときの分割条件に基づいて算出し、算出された位置に前記部分画像を合成する手段、
とされており、
これら前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成される
ことを特徴とする請求項１に記載のプリンタ制御用プログラム。
【請求項３】
前記ベース画像上において想定された複数の領域について、各領域が、当該領域内に重ね合わせるべき前記部分画像が存在する有効領域か、当該領域内に重ね合わせるべき前記部分画像が存在しない無効領域かを判別する判別手段
を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させ、
前記判別手段によって前記有効領域と判別された領域を対象にして、前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成される
ことを特徴とする請求項２に記載のプリンタ制御用プログラム。
【請求項４】
前記ベース画像描画手段が、前記印刷出力用の記憶領域にベース画像を描画した後に、前記画像合成手段が、前記付加画像を前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、前記印刷用画像を前記印刷出力用の記憶領域に合成する
ことを特徴とする請求項１〜請求項３のいずれかに記載のプリンタ制御用プログラム。
【請求項５】
情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置であって、
前記プリンタドライバのレンダリング部は、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えることを特徴とする情報処理装置。
【請求項６】
情報処理装置と、前記情報処理装置によって制御される印刷装置とを備えてなる印刷システムであって、
前記情報処理装置は、
前記情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、前記印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成されており、しかも、
前記情報処理装置が備える前記プリンタドライバのレンダリング部は、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えることを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ制御用プログラム、情報処理装置、および印刷システムに関する。
【背景技術】
【０００２】
従来、文書中にウォーターマークを付加して印刷する技術が知られている。この種の技術は、例えば、関係者以外への配布が禁じられた文書を印刷する場合などに利用され、この場合、文書中に「マル秘」など文字や画像をウォーターマークとして付加して印刷することで、文書を受け取った関係者に注意喚起を図ることができる。
【０００３】
このようなウォーターマーク付加機能に関し、例えば下記特許文献１には、プリンタドライバにおいて、印刷すべき画像のビットマップデータを作成するとともに、作成されたビットマップデータにウォーターマークを合成する技術が開示されている。このような技術を利用すれば、プリンタドライバにより、文書中にウォーターマークを付加することができた（特許文献１：［００５６］〜［００７９］参照）。
【特許文献１】特開平１１−２９８７１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載された技術の場合、プリンタドライバのインタフェース部においてウォーターマークがビットマップ化され、そのビットマップデータがプリンタドライバのレンダリング部に渡される仕組みになっている。
【０００５】
そのため、プリンタドライバのインタフェース部とレンダリング部が同一のＰＣ（Personal Computer）上で動作しない環境（例えば、プリンタが共有設定されている場合）において上記技術を適用すると、ウォーターマークの受け渡しができなくなり、ウォーターマークを印刷することができなくなる、という問題があった。
【０００６】
また、上記のような問題を避けるには、プリンタドライバのレンダリング部でウォーターマークをビットマップ化できるとよいのであるが、ウォーターマークを描画するための描画命令を、プリンタドライバのレンダリング部が発行すると問題が生じることがあった。
【０００７】
より具体的に説明すると、Ｗｉｎｄｏｗｓ（登録商標）系のＯＳ（Operating System）には、ＧＤＩ（Graphic Device Interface）と呼ばれるソフトウェアが含まれている。このＧＤＩは、仮想化された描画領域であるデバイスコンテキストの管理と、このデバイスコンテキストへの描画に伴う表示用ないし印刷用データの作成とを行う周知のソフトウェアである。
【０００８】
このようなＧＤＩを備えるＯＳが搭載されたＰＣにおいて、アプリケーションソフトウェアが印刷処理を実行する際には、その処理の中で、印刷用のデバイスコンテキストを取得する。そして、ＧＤＩに対して指令を与えるための関数（ＡＰＩ；Application Program Interface）を呼び出すことにより、取得した印刷用のデバイスコンテキストに対する描画命令を発行する。
【０００９】
これにより、印刷に必要となる各種情報がＧＤＩ経由でプリンタドライバのレンダリング部へと伝達されて、プリンタドライバのレンダリング部がＧＤＩを利用した描画処理を実行し、その結果、最終的には印刷出力がなされることになる。
【００１０】
しかし、ＧＤＩは、本来、アプリケーションソフトウェアが上記のような手順で利用するために用意されたソフトウェアであって、プリンタドライバのレンダリング部が利用することを前提とした設計にはなっていない。
【００１１】
そのため、ウォーターマークを描画するためにプリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行すると、自ら発行した描画命令に関連する各種情報がＧＤＩ経由でプリンタドライバのレンダリング部自身へ戻されるという変則的な状況に陥る。その結果、例えば、描画命令によってはＧＤＩによる描画処理が適切に実行されない、といった問題を招くことがあった。
【００１２】
本発明は、上記問題を解決するためになされたものであり、その目的は、プリンタドライバのレンダリング部での処理によりウォーターマークを付加可能で、その際、プリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行しなくても済むプリンタ制御用プログラム、情報処理装置、および印刷システムを提供することにある。
【課題を解決するための手段】
【００１３】
以下、本発明において採用した構成について説明する。
【００１４】
本発明のプリンタ制御用プログラムは、情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置において、前記情報処理装置が備える制御部を、前記プリンタドライバのレンダリング部として機能させるためのプリンタ制御用プログラムであって、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させるためのプログラムである。
【００１５】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させた場合、プリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、プリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【００１６】
このようなプリンタドライバのレンダリング部であれば、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がＧＤＩ経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、ＧＤＩを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【００１７】
また、本発明のプリンタ制御用プログラムにおいては、さらに次のような構成を備えていると好ましい。
【００１８】
まず、本発明のプリンタ制御用プログラムにおいて、前記付加画像描画手段は、前記付加画像を複数の部分画像に分割して、各部分画像を描画するための描画命令を前記表示用のデバイスコンテキストに対して発行することにより、前記ディスプレイドライバに各部分画像を描画させる手段、前記付加画像取得手段は、前記ディスプレイドライバによって１つの前記部分画像が描画される毎に、前記部分画像を取得する手段、前記画像合成手段は、前記付加画像取得手段によって取得された前記部分画像について、当該部分画像を重ね合わせるべき前記ベース画像上の位置を、前記付加画像を複数の部分画像に分割したときの分割条件に基づいて算出し、算出された位置に前記部分画像を合成する手段、とされており、これら前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成されるものであると好ましい。
【００１９】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、表示出力用の記憶領域に収まらない大きさの付加画像であっても、複数の部分画像に分割して、各部分画像とベース画像との合成を繰り返すことで、付加画像とベース画像を合成することができる。
【００２０】
また、本発明のプリンタ制御用プログラムは、前記ベース画像上において想定された複数の領域について、各領域が、当該領域内に重ね合わせるべき前記部分画像が存在する有効領域か、当該領域内に重ね合わせるべき前記部分画像が存在しない無効領域かを判別する判別手段を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させ、前記判別手段によって前記有効領域と判別された領域を対象にして、前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成されるものであると好ましい。
【００２１】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、有効領域と判別された領域を対象にして、付加画像描画手段、付加画像取得手段、および画像合成手段による各処理が実行される。したがって、有効領域か無効領域かを問わず、一律に部分画像とベース画像との合成を試行する場合に比べ、付加画像をより迅速に描画することができる。
【００２２】
また、本発明のプリンタ制御用プログラムは、前記ベース画像描画手段が、前記印刷出力用の記憶領域にベース画像を描画した後に、前記画像合成手段が、前記付加画像を前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、前記印刷用画像を前記印刷出力用の記憶領域に合成するものであると好ましい。
【００２３】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、ベース画像に対して重ねて描画されることを前提とした付加画像が、ベース画像よりも後から描画される。したがって、付加画像に対して重ねて描画されるとの前提がないベース画像を、付加画像よりも後から描画する場合に比べ、付加画像を消失させることなく確実にベース画像と合成することができる。
【００２４】
次に、本発明の情報処理装置は、情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置であって、前記プリンタドライバのレンダリング部は、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えることを特徴とする。
【００２５】
このように構成された情報処理装置において、プリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、プリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【００２６】
このような情報処理装置によれば、プリンタドライバのレンダリング部は、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がＧＤＩ経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、ＧＤＩを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【００２７】
次に、本発明の印刷システムは、情報処理装置と、前記情報処理装置によって制御される印刷装置とを備えてなる印刷システムであって、前記情報処理装置は、前記情報処理装置上で機能する少なくとも１つのソフトウェアからＧＤＩ（Graphic Device Interface）経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、前記印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記ＧＤＩ経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成されており、しかも、前記情報処理装置が備える前記プリンタドライバのレンダリング部は、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記ＧＤＩを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記ＧＤＩを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えることを特徴とする。
【００２８】
このように構成された印刷システムにおいて、情報処理装置が備えるプリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、情報処理装置が備えるプリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【００２９】
このような印刷システムによれば、情報処理装置が備えるプリンタドライバのレンダリング部は、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がＧＤＩ経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、ＧＤＩを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【発明を実施するための最良の形態】
【００３０】
次に、本発明の実施形態について一例を挙げて説明する。
【００３１】
［システム全体の構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）と、このＰＣ１に接続されたプリンタ２とを備えたシステムの概略構成を示すブロック図である。このシステム内に含まれるＰＣ１は、本発明でいう情報処理装置に相当し、プリンタ２は、本発明でいう印刷装置に相当する。
【００３２】
このシステムの内、ＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４（ハードディスク装置１４）、操作部１５、表示部１６、および通信インターフェース１７などを備えている。
【００３３】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムに従って、ＰＣ１各部に対する制御および各種演算を実行する装置で、プリンタドライバとしての処理、ＯＳやアプリケーションなどとしての各処理は、このＣＰＵ１１によって実行される。
【００３４】
ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能な記憶装置で、ＢＩＯＳ（Basic Input Output System）や通常であれば更新されない読み出し用のデータ等を記憶している。
【００３５】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリ等として利用される記憶装置である。このＲＡＭ１３には、ＯＳや各種アプリケーションなどのソフトウェアがＨＤＤ１４から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１４から読み込まれたデータもＲＡＭ１３に記憶される。後述するプリンタドライバ（プリンタドライバレンダリング部２７およびプリンタドライバインターフェース部２９）としての処理を実行する際には、プリンタドライバを機能させる上で必要となるプリンタ制御用プログラムがＨＤＤ１４からＲＡＭ１３に読み込まれ、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１がプリンタドライバとしての処理を実行することになる。
【００３６】
ＨＤＤ１４は、ＯＳ、各種アプリケーションプログラム、および各種データファイルを保存しておくための装置で、上記プリンタ制御用プログラムもＨＤＤ１４に保存されている。
【００３７】
操作部１５は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。表示部１６は、各種情報を利用者に提示するための出力装置であり、例えば、液晶ディスプレイ等によって構成される。
【００３８】
通信インターフェース１７は、プリンタおよびその他の周辺機器を接続可能なシリアルインターフェース（例えば、ＵＳＢインターフェース）、あるいは、ＬＡＮ（Local Area Network）インターフェース等である。
【００３９】
［ウォーターマーク付加機能の概要］
次に、ウォーターマーク付加機能に関連するソフトウェアの概要について、図２に基づいて説明する。
【００４０】
本実施形態において、ＰＣ１には、ＯＳとして、ＷｉｎｄｏｗｓＸＰ（登録商標）が搭載されている。このＯＳは、周知のマルチタスク機能を備えており、これにより、ＰＣ１上では、複数のプロセスが並列に機能して、それら複数のプロセスが連携して各種処理を実行する仕組みになっている。
【００４１】
アプリケーション２１は、例えばワープロソフトや表計算ソフトなどのソフトウェアであり、このアプリケーション２１の印刷機能を利用者が利用した際には、アプリケーション２１上で編集された画像（ベース画像）を印刷するための描画命令が発行される。
【００４２】
Ｗｉｎ３２（ＧＤＩ３２）２３は、ＯＳの一部として実装されたアプリケーションプログラムインターフェースで、アプリケーション２１は、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数を呼び出すことにより、ＧＤＩ２５に対して描画命令を与えることができる。
【００４３】
ＧＤＩ２５は、仮想化された描画領域であるデバイスコンテキストの管理と、このデバイスコンテキストに対する描画に伴う印刷用データの作成を行う部分である。Ｗｉｎ３２（ＧＤＩ３２）２３の提供する関数をアプリケーション２１が呼び出した際、アプリケーション２１から渡された各種情報はＧＤＩ２５へと伝達される。そして、それらの情報がＧＤＩ２５およびプリンタドライバレンダリング部２７において処理される。
【００４４】
また、プリンタドライバレンダリング部２７には、プリンタドライバインターフェース部２９から、ウォーターマーク（付加画像）を付加した印刷を実行する上で必要となる情報なども伝達される。
【００４５】
プリンタドライバインターフェース部２９は、アプリケーション２１とは別に、印刷関連の各種設定を実施可能なユーザインターフェースを提供する部分である。このユーザインターフェースを利用して、利用者は、ウォーターマークを付加した印刷を指示することができる。また、この他にも、プリンタドライバインターフェース部２９を利用すれば、縮小印刷、レイアウト印刷といった特殊な印刷の実行や、用紙種別、印刷部数といった印刷関連の各種設定を指示することができる。
【００４６】
プリンタドライバレンダリング部２７は、描画命令レンダリング部３１、ウォーターマーク描画・合成部３３、データ出力部３５、および描画メモリ３７などを備えている。これらの内、描画命令レンダリング部３１は、アプリケーション２１からの描画命令を、ＧＤＩ２５を利用して処理することで、描画メモリ３７への描画を実行する。
【００４７】
また、ウォーターマーク描画・合成部３３は、プリンタドライバインターフェース部２９からウォーターマークを付加した印刷を実行する旨の情報が到来した場合に、ウォーターマークについての描画命令を発行する。
【００４８】
ウォーターマークについての描画命令を発行する際、ウォーターマーク描画・合成部３３は、表示用のデバイスコンテキスト（＝厳密には、ディスプレイのデバイスコンテキストと互換性のあるメモリデバイスコンテキスト）を取得する。そして、この表示用のデバイスコンテキストに対する描画を行うため、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数を呼び出すことで、グラフィックエンジン（ＧＤＩ）４１に対して描画命令を与える。
【００４９】
これにより、ウォーターマークについての描画命令は、ディスプレイドライバ４３へと伝達され、ディスプレイドライバ４３により、表示用の描画メモリ（＝上記メモリデバイスコンテキストに対応付けられたイメージバッファ）にウォーターマークとなる画像が描画されることになる。
【００５０】
このようにして表示用の描画メモリに描画されたウォーターマークとなる画像は、描画命令レンダリング部３１によって読み出され、その解像度や色数が印刷用の描画メモリ３７に合わせて最適化される。そして、その最適化された画像がウォーターマーク描画・合成部３３によって描画メモリ３７へと合成され、その結果、アプリケーション２１上で編集された画像（ベース画像）とウォーターマーク（付加画像）を合成してなる画像が描画メモリ３７内に形成されることになる。
【００５１】
こうして描画メモリ３７内に形成されたウォーターマーク付きの画像は、データ出力部３５によってプリンタ２へと出力される。なお、プリンタ２への出力に当たっては、周知のスプーラシステムが利用され、その際、データ出力部３５は、印刷ジョブを管理するための各種コマンド等も発行する。ただし、このようなスプーラシステムそのものは周知技術であり、本発明の要部に直接関連する技術ではないので、これ以上の説明は省略する。
【００５２】
［ＰＣ１における印刷処理の説明］
次に、上記ＰＣ１において実行される印刷処理の詳細について、図３のフローチャートに基づいて説明する。なお、本明細書においては、説明を簡潔にするため、図３〜図５に示した各処理ステップが、アプリケーション２１およびプリンタドライバレンダリング部２７によって実行される旨の説明を行う。ただし、これらの処理ステップが、厳密には、アプリケーション２１として機能するＣＰＵ１１、およびプリンタドライバレンダリング部２７として機能するＣＰＵ１１によって実行されることは周知の通りである。
【００５３】
図３に示す印刷処理は、アプリケーション２１およびプリンタドライバレンダリング部２７が協働することで実行されることになる処理であり、図３には、アプリケーション側（図中左側）およびプリンタドライバレンダリング部側（図中右側）の各処理が併記してある。
【００５４】
アプリケーション側の処理は、利用者がドキュメントの印刷を指令する操作を実行したときに開始される処理で、この処理を開始すると、アプリケーション２１は、まず、印刷用デバイスコンテキストを作成する（Ｓ１０１）。デバイスコンテキスト作成の命令は、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、ＧＤＩ２５を利用して印刷に必要な情報を作成する（Ｓ２０１）。
【００５５】
続いて、アプリケーション２１は、ドキュメントの開始を命令する（Ｓ１０３）。ドキュメント開始の命令も、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、ＧＤＩ２５を利用して印刷ジョブに必要な情報の取得と印刷ジョブのコマンド出力を実行する（Ｓ２０３）。
【００５６】
そして、アプリケーション２１は、ページの開始を命令する（Ｓ１０５）。ページ開始の命令も、他の命令同様、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、ＧＤＩ２５を利用して各ページに必要な情報の取得とページ開始のコマンド出力を実行する（Ｓ２０５）。
【００５７】
次いで、アプリケーション２１は、ページ内の描画を命令する（Ｓ１０７）。このＳ１０７は、ページ内にある個々の描画物毎に実行され、例えば、複数の描画物が存在する場合であればＳ１０７が複数回にわたって実行され、これにより、各描画物に対応する描画命令が順に発行されることになる。
【００５８】
Ｓ１０７においても、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで描画命令が発行され、その情報がＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、各ページに対して描画される命令をコマンドとして出力、または、描画メモリに描画してＢＭＰ（ビットマップ）化する（Ｓ２０７）。
【００５９】
Ｓ２０７において、コマンドとして出力するか描画メモリに描画してＢＭＰ（ビットマップ）化するかは、プリンタ２側にコマンドによる描画を実行する機能があるか否かによって変わる。
【００６０】
このようにしてページ内の描画をすべて終えたら、これにより、アプリケーション２１上で編集された１ページ分の画像（ベース画像）の描画が完了したことになるので、アプリケーション２１は、ページの終了を命令する（Ｓ１０９）。ページの終了命令も、他の命令同様、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、ページ出力処理を実行する（Ｓ２０９）。このページ出力処理の中で、ウォーターマークの描画などが実行されることになるが、その詳細については後述する。
【００６１】
なお、以上説明したＳ１０５〜Ｓ１０９は、ドキュメント内に含まれる個々のページ毎に実行され、例えば、複数のページからなるドキュメントの場合であれば、Ｓ１０５〜Ｓ１０９が複数回にわたって繰り返される。その結果、複数ページ分の描画がなされることになる。
【００６２】
このような処理の結果、ドキュメント内の最終ページについての処理が完了したら、アプリケーション２１は、ドキュメントの終了を命令する（Ｓ１１１）。ドキュメントの終了も、他の命令同様、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、印刷ジョブ終了のコマンド出力を実行する（Ｓ２１１）。
【００６３】
最後に、アプリケーション２１は、印刷用デバイスコンテキストの破棄を命令する（Ｓ１１３）。Ｓ１１３で発行された命令も、他の命令同様、Ｗｉｎ３２（ＧＤＩ３２）２３が提供する関数をアプリケーション２１が呼び出すことで、ＧＤＩ２５を介してプリンタドライバレンダリング部２７へと伝達される。これにより、プリンタドライバレンダリング部２７は、印刷に必要な情報を破棄する（Ｓ２１３）。
【００６４】
そして、以上のようなＳ１０１〜Ｓ１１３の処理手順すべてを終えたら、これにて、アプリケーション２１による印刷処理は終了することになる。
【００６５】
［ページ出力処理の詳細］
次に、上記Ｓ２０９のページ出力処理について、その詳細を図４および図５に基づいて説明する。
【００６６】
このページ出力処理を開始すると、プリンタドライバレンダリング部２７は、ウォーターマークの描画が必要か否かを判断する（Ｓ３０５）。ウォーターマークの描画が必要か否かは、プリンタドライバインターフェース部２９を利用して、利用者が任意に設定可能となっており、Ｓ３０５では、利用者による設定に基づく判断がなされる。
【００６７】
Ｓ３０５において、ウォーターマークの描画が必要と判断された場合（Ｓ３０５：ＹＥＳ）、プリンタドライバレンダリング部２７は、ウォーターマーク描画処理を実行する（Ｓ３０７）。このＳ３０７は、詳しくは図５に示すような処理となる。
【００６８】
以下、図５に示す処理の説明をするに当たっては、具体的な事例として、図６（ａ）に示す印刷用の描画エリア５１に対して、ウォーターマーク５３を描画する事例を挙げて説明を続ける。
【００６９】
ここで例示する描画エリア５１は、解像度が横４９００×縦６４００ドットのエリアで、この描画エリア５１は描画メモリ３７内に確保されるものである。また、ウォーターマーク５３は、上記横４９００×縦６４００ドットの左上を原点（０，０）とする座標系で、「左上頂点の座標（ｘ，ｙ）＝（１０００，１７００）、（横方向ドット数ｃｘ，縦方向ドット数ｃｙ）＝（３０００，３０００）の範囲」に描かれている。また、表示部１６としては、解像度：横８００×縦６００の表示装置を採用しており、表示用の描画エリアの解像度も横８００×縦６００ドットとなっている。
【００７０】
さて、図５に示す処理に進んだ場合について説明を続けると、プリンタドライバレンダリング部２７は、まず、表示用デバイスコンテキストを取得する（Ｓ４０１）。Ｓ４０１により、表示用のデバイスコンテキストとしては、ディスプレイのデバイスコンテキストと、およびそのディスプレイのデバイスコンテキストと互換性のあるメモリデバイスコンテキストが取得される。
【００７１】
続いて、プリンタドライバレンダリング部２７は、表示用デバイスコンテキストから描画可能なサイズを取得し、分割数を算出する（Ｓ４０３）。Ｓ４０３において、表示用デバイスコンテキストから取得される「描画可能なサイズ」は、表示部１６の描画エリアの解像度に相当し、本実施形態で例示する事例の場合、解像度：横８００×縦６００が取得される。
【００７２】
また、Ｓ４０３において算出される分割数は、印刷用の描画エリア５１を、表示部１６の描画エリア相当のサイズを持つ領域単位で分割した場合に、横および縦それぞれがいくつの領域に分割されるのかを示す値である。
【００７３】
例えば、印刷用の描画エリア５１が上記横４９００×縦６４００ドット、表示用の描画エリアが上記横８００×縦６００ドットの場合、横方向の分割数としては、計算式「４９００÷８００＝６．１２５」から小数点以下を切り上げることで、分割数「７」が算出される。同様に、縦方向の分割数としては、計算式「６４００÷６００＝１０．６６…」から小数点以下を切り上げることにより、分割数「１１」が算出される。
【００７４】
この場合、印刷用の描画エリア５１（横４９００×縦６４００ドット）は、仮想的には、図６（ｂ）に示すように、横８００×縦６００ドットの単位描画エリアを横方向に７列、縦方向に１１行並べてなる仮想的な描画エリア５５（横５６００×縦６６００ドット）の一部に該当する領域であると見なすことができる。
【００７５】
また、そのように見なした場合、上記「座標ｘ，ｙ（１０００，１７００）を左上の頂点とする横方向ドット数ｃｘ，縦方向ドット数ｃｙ（３０００，３０００）の範囲」に描かれるウォーターマーク５３は、上記仮想的な描画エリア５５内では、図６（ｃ）に示すような位置にあるものと見なすことができる。この場合、ウォーターマーク５３が実際に描画されるのは、図６（ｄ）に示すように、番号：１６〜１９，２３〜２６，３０〜３３，３７〜４０，４４〜４７，５１〜５４が付された横４×縦６の各単位描画エリアとなる。
【００７６】
このような想定の下、Ｓ４０３を終えたら、プリンタドライバレンダリング部２７は、ウォーターマーク５３の描画対象領域から、分割された表示用デバイスコンテキストへの描画の有無を判別する（Ｓ４０５）。Ｓ４０５では、上記横４×縦６の各単位描画エリアについては、分割された表示用デバイスコンテキストへの描画があり、それ以外の各単位描画エリアについては、分割された表示用デバイスコンテキストへの描画がないものと判別する。
【００７７】
より具体的には、次の４つの関係式；「ウォーターマーク５３の左上頂点のｘ座標（ｘ）＞｛（表示用の描画エリアの横方向ドット数）×（仮想的な描画エリア５５内にある単位描画エリアの左からの位置）｝」、「ウォーターマーク５３の左上頂点のｙ座標（ｙ）＞｛（表示用の描画エリアの縦方向ドット数）×（仮想的な描画エリア５５内にある単位描画エリアの上からの位置）｝」、「｛ウォーターマーク５３の左上頂点のｘ座標（ｘ）＋ウォーターマーク５３の横方向ドット数（ｃｘ）｝＜｛（表示用の描画エリアの横方向ドット数）×（（仮想的な描画エリア５５内にある単位描画エリアの左からの位置）−１）｝」、「｛ウォーターマーク５３の左上頂点のｙ座標（ｙ）＋ウォーターマーク５３の縦方向ドット数（ｃｙ）｝＜｛（表示用の描画エリアの縦方向ドット数）×（（仮想的な描画エリア５５内にある単位描画エリアの上からの位置）−１）｝」について、仮想的な描画エリア５５内にある各単位描画エリアが、いずれか１つの関係式を満たす場合、Ｓ４０５では、分割された表示用デバイスコンテキストへの描画がないと判別される。
【００７８】
例えば、番号：１が付された単位描画エリアの場合、「ウォーターマーク５３の左上頂点のｘ座標（ｘ＝１０００）＞｛（表示用の描画エリアの横方向ドット数＝８００）×（仮想的な描画エリア５５内にある単位描画エリアの左からの位置＝１）｝」については、「１０００＞８００」となって関係式が成り立つので、この場合、「分割された表示用デバイスコンテキストへの描画がない（＝図６（ｃ）でいえば、ウォーターマーク５３との重なりがない単位描画エリア）」と判別される。
【００７９】
また、番号：１６が付された単位描画エリアの場合、「ウォーターマーク５３の左上頂点のｘ座標（ｘ＝１０００）＞｛（表示用の描画エリアの横方向ドット数＝８００）×（仮想的な描画エリア５５内にある単位描画エリアの左からの位置＝２）｝」については、「１０００＞１６００」となって成り立たない。同様に、「ウォーターマーク５３の左上頂点のｙ座標（ｙ＝１７００）＞｛（表示用の描画エリアの縦方向ドット数＝６００）×（仮想的な描画エリア５５内にある単位描画エリアの上からの位置＝３）｝」についても、「１７００＞１８００」となって成り立たず、「｛ウォーターマーク５３の左上頂点のｘ座標（ｘ＝１０００）＋ウォーターマーク５３の横方向ドット数（ｃｘ＝３０００）｝＜｛（表示用の描画エリアの横方向ドット数＝８００）×（（仮想的な描画エリア５５内にある単位描画エリアの左からの位置＝２）−１）｝」についても、「１０００＋３０００＜８００×（２−１）」となって成り立たず、「｛ウォーターマーク５３の左上頂点のｙ座標（ｙ＝１７００）＋ウォーターマーク５３の縦方向ドット数（ｃｙ＝３０００）｝＜｛（表示用の描画エリアの縦方向ドット数＝６００）×（（仮想的な描画エリア５５内にある単位描画エリアの上からの位置＝３）−１）｝」についても、「１７００＋３０００＜６００×（３−１）」となって成り立たない。したがって、この場合、４つの関係式すべてが成り立たないので、この場合、「分割された表示用デバイスコンテキストへの描画がある（＝図６（ｃ）でいえば、ウォーターマーク５３との重なりがある単位描画エリア）」と判別される。
【００８０】
つまり、上記のような判別方法により、図６（ｄ）に示すような、番号：１６〜１９，２３〜２６，３０〜３３，３７〜４０，４４〜４７，５１〜５４が付された横４×縦６の各単位描画エリアを残して、それ以外の単位描画エリアを処理対象から除外できるのである。
【００８１】
さて、このようにして処理対象となる単位描画エリアを選別したら、続いて、処理対象となる単位描画エリアの数に相当する回数の繰り返し処理を実行し、各回ともに、以下に説明するＳ４０７〜Ｓ４１３を実行する。
【００８２】
すなわち、まず、プリンタドライバレンダリング部２７は、表示用デバイスコンテキストに対しての描画座標を計算して（Ｓ４０７）、表示用デバイスコンテキストに対してＡＰＩ（Ｗｉｎ３２（ＧＤＩ３２）２３）を利用してウォーターマークを描画する（Ｓ４０９）。
【００８３】
上記Ｓ４０７では、ウォーターマーク５３の左上頂点としてどのような座標を指定してウォーターマーク５３の描画を行えば、左上頂点の座標が（０，０）となっている表示用描画エリアに対し、所期の「分割されたウォーターマーク５３の一部」を描画できるのかが計算により求められる。
【００８４】
具体的には、次の２つの計算式；「ｘ座標（ｃｘ’）＝（ウォーターマーク５３の左上頂点のｘ座標）−｛（表示用の描画エリアの横方向ドット数）×（（仮想的な描画エリア５５内にある単位描画エリアの左からの位置）−１）｝」、「ｙ座標（ｃｙ’）＝（ウォーターマーク５３の左上頂点のｙ座標）−｛（表示用の描画エリアの縦方向ドット数）×（（仮想的な描画エリア５５内にある単位描画エリアの上からの位置）−１）｝」に基づいて、ウォーターマーク５３の左上頂点として設定される座標が算出される。
【００８５】
例えば、繰り返し処理の１回目において、番号：１６が付された単位描画エリアが処理対象となった場合であれば、図６（ｂ）に示す通り、左から２個目、上から３個目のエリアなので、「ｃｘ’＝１０００−（８００×（２−１））＝２００」、「ｃｙ’＝１７００−（６００×（３−１））＝５００」と算出される。
【００８６】
この場合、Ｓ４０９では、左上頂点の座標が（０，０）となっている表示用描画エリア（８００×６００）における座標（２００，５００）を左上頂点としてウォーターマーク５３を描画し、これにより、番号：１６が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画されることになる。
【００８７】
同様に、繰り返し処理の２回目において、番号：１７が付された単位描画エリアが処理対象となった場合であれば、図６（ｂ）に示す通り、左から３個目、上から３個目のエリアなので、「ｃｘ’＝１０００−（８００×（３−１））＝−６００」、「ｃｙ’＝１７００−（６００×（３−１））＝５００」と算出される。
【００８８】
この場合、Ｓ４０９では、左上頂点の座標が（０，０）となっている表示用描画エリア（８００×６００）における座標（−６００，５００）を左上頂点としてウォーターマーク５３を描画し、これにより、番号：１７が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画されることになる。
【００８９】
すなわち、ウォーターマーク５３の左上頂点のｘ座標として負の値を設定することにより、表示用描画エリア（８００×６００）の左方へウォーターマーク５３の一部がはみ出すかたちで描画を実行し、これにより、表示用描画エリア内には、所期の部分画像（ウォーターマーク５３内で表示用描画エリアと一致する座標を持つ範囲）を描画することができるのである。
【００９０】
さらに同様に、繰り返し処理の２４回目において、番号：５４が付された単位描画エリアが処理対象となった場合であれば、図６（ｂ）に示す通り、左から５個目、上から８個目のエリアなので、「ｃｘ’＝１０００−（８００×（５−１））＝−２２００」、「ｃｙ’＝１７００−（６００×（８−１））＝−３９００」と算出される。
【００９１】
この場合、Ｓ４０９では、左上頂点の座標が（０，０）となっている表示用描画エリア（８００×６００）における座標（−２２００，−３９００）を左上頂点としてウォーターマーク５３を描画し、これにより、番号：５４が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画される。
【００９２】
このケースが、ウォーターマーク５３の左上頂点のｘ，ｙ座標として絶対値が最も大きい負の値を設定するケースである。このケースでは、表示用描画エリア（８００×６００）の最も左方および最も上方までウォーターマーク５３の一部が大きくはみ出すかたちで描画が実行され、その結果、表示用描画エリア内には、ウォーターマーク５３の最も右下に当たる部分画像を描画することができる。
【００９３】
なお、以上説明したＳ４０９において、表示用描画エリアへの描画は、表示用のデバイスコンテキストに対する描画として実行される。ただし、その際には、Ｓ４０１において取得したデバイスコンテキストの内、ディスプレイのデバイスコンテキストは利用せず、メモリデバイスコンテキストの方を利用する。これにより、表示用のデバイスコンテキストに対する描画を実行しても、描画物が実際に表示部１６に表示されてしまうのを回避することができる。
【００９４】
さて、このようにして処理対象となった１つの単位描画エリアに対応する部分画像（ウォーターマーク５３の一部）を描画したら、プリンタドライバレンダリング部２７は、表示用デバイスコンテキストから、描画されたウォーターマークを取得する（Ｓ４１１）。このＳ４１１では、Ｓ４０９において描画された表示用描画エリア相当のサイズを持つウォーターマークの一部分に相当する画像を取得する。
【００９５】
そして、取得したウォーターマークを印刷用の描画メモリと合成する（Ｓ４１３）。すなわち、既に説明したＳ２０７により、印刷用の描画エリア５１内には、アプリケーション２１上で編集された画像（ベース画像）が格納されているので、これに対し、取得したウォーターマークを合成する。
【００９６】
ここで、例えば、繰り返し処理の１回目において、番号：１６が付された単位描画エリアが処理対象となった場合であれば、図７（ａ）に示すように、印刷用の描画エリア５１内にウォーターマーク５３の一部が合成される。以下、繰り返し処理の２〜４回目においては、図７（ｂ）に示すように、印刷用の描画エリア５１内にウォーターマーク５３の一部が矢印で示す順に合成されてゆく。さらに、繰り返し処理の５〜６回目においては、図７（ｃ）に示すように、上から２つ目の位置にも、印刷用の描画エリア５１内にウォーターマーク５３の一部が矢印で示す順に合成されてゆく。そして、最終的には、番号：５４が付された単位描画エリアが処理対象となって、図７（ｄ）に示すように、２４個目の部分画像が合成されて、印刷用の描画エリア５１内にウォーターマーク５３全体が合成されることになる。
【００９７】
以上説明したようなＳ４０７〜Ｓ４１３の処理は、ウォーターマークに必要な描画がすべて終了するまで繰り返される（Ｓ４１５：ＮＯ）。そして、ウォーターマークに必要な描画がすべて終了した場合（Ｓ４１５：ＹＥＳ）、プリンタドライバレンダリング部２７は、表示用デバイスコンテキストを破棄する（Ｓ４１７）。すなわち、Ｓ４０１において取得したディスプレイのデバイスコンテキストとメモリデバイスコンテキストを破棄し、これらのデバイスコンテキストに関連するリソースを解放する。
【００９８】
さて、以上のような手順で、図５に示したＳ４０１〜Ｓ４１７を終了すると、図４に示したＳ３０７を終了することになる。そこで、以下、図４に戻って処理の説明を続けると、Ｓ３０７を終えた場合、Ｓ３０９へと進む。また、Ｓ３０５において、ウォーターマークの描画が不要と判断した場合（Ｓ３０５：ＮＯ）、プリンタドライバレンダリング部２７は、Ｓ３０７を実行せず、この場合もＳ３０９へと進む。つまり、上記Ｓ３０７を実行するか否かは、ウォーターマークの描画が必要か不要かに応じて変わるが、いずれの場合ともＳ３０９へ進む。
【００９９】
そして、Ｓ３０９では、ＢＭＰ化された描画メモリの画像やページ終了のコマンドを出力して（Ｓ３０９）、図４に示したページ出力処理を終了する。このＳ３０９によって、１ページ分の画像がプリンタ２に対して出力されることになる。このとき、Ｓ３０７を実行していれば、アプリケーション２１上で編集された画像（ベース画像）に対してウォーターマークが付加された画像がプリンタ２へ出力されることになる。また、Ｓ３０７を実行していなければ、アプリケーション２１上で編集された画像（ベース画像）そのものがプリンタ２へ出力されることになる。
【０１００】
［効果］
以上説明した通り、上記プリンタドライバレンダリング部２７を備えたＰＣ１によれば、Ｓ２０７により、アプリケーション２１等のソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域である描画メモリ３７にベース画像を描画する。また、プリンタドライバレンダリング部２７は、Ｓ４０９により、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバ４３によって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、Ｓ４１１，Ｓ４１３により、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像がＳ３０９により印刷装置へと出力される。
【０１０１】
そのため、このようなプリンタドライバレンダリング部２７を備えたＰＣ１であれば、付加画像を描画する際には、Ｓ４０９により、表示用のデバイスコンテキストに対する描画命令を発行すればよく、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバレンダリング部２７が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバレンダリング部２７にとっては、自ら発行した描画命令がＧＤＩ経由でプリンタドライバレンダリング部２７自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、ＧＤＩを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【０１０２】
また、上記のような手法で、プリンタドライバレンダリング部２７においてウォーターマークがビットマップ化されれば、プリンタドライバインターフェース部２９からプリンタドライバレンダリング部２７へビットマップデータを渡さなくてもよい。したがって、例えばプリンタが共有設定されている場合のように、プリンタドライバレンダリング部２７およびプリンタドライバインターフェース部２９が必ずしも同一のＰＣ上で動作するとは限らない環境であっても、プリンタドライバインターフェース部２９を備えるＰＣ側において、ウォーターマークの描画、印刷出力を実施することができる。
【０１０３】
また、上記プリンタドライバレンダリング部２７を備えたＰＣ１によれば、表示出力用の記憶領域（描画メモリ）に収まらない大きさの付加画像であっても、Ｓ４０３〜Ｓ４１５により、複数の部分画像に分割して、各部分画像とベース画像との合成を繰り返すことで、付加画像とベース画像を合成することができる。
【０１０４】
さらに、上記プリンタドライバレンダリング部２７を備えたＰＣ１によれば、Ｓ４０５により、有効領域と判別された領域を対象にして、Ｓ４０９（付加画像描画手段）、Ｓ４１１（付加画像取得手段）、およびＳ４１３（画像合成手段）による各処理が実行される。したがって、有効領域か無効領域かを問わず、一律に部分画像とベース画像との合成を試行する場合に比べ、付加画像をより迅速に描画することができる。
【０１０５】
加えて、上記プリンタドライバレンダリング部２７を備えたＰＣ１によれば、Ｓ２０７を実行した後に、Ｓ２０９を実行することで、ベース画像に対して重ねて描画されることを前提とした付加画像が、ベース画像よりも後から描画されることになる。したがって、付加画像に対して重ねて描画されるとの前提がないベース画像を、付加画像よりも後から描画する場合に比べ、付加画像を消失させることなく確実にベース画像と合成することができる。
【０１０６】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１０７】
例えば、上記実施形態では、表示用の描画領域にウォーターマークの一部に相当する画像を描画して、その画像を印刷用の描画領域に合成する処理を複数回にわたって繰り返す事例を示したが、このような画像の分割を行うか否かも任意である。例えば、付加したいウォーターマークが比較的小さい場合には、表示用の描画領域に分割することなくウォーターマークを描画できることもあるので、その場合、上記実施形態で説明したような画像の分割は不要となる。
【０１０８】
さらに、上記実施形態では、Ｓ４０５により、仮想的な描画エリア５５内において、ウォーターマークの描画が必要となる単位描画エリア（上記実施形態の場合、番号：１６〜１９，２３〜２６，３０〜３３，３７〜４０，４４〜４７，５１〜５４が付された横４×縦６の各単位描画エリア）を抽出していたが、このような処理を行うか否かも任意である。すなわち、例えば、このような処理を行うことなく、仮想的な描画エリア５５内にあるすべての単位描画エリアを対象に、ウォーターマークの描画処理を行っても、最終的な処理結果としては、上記実施形態とまったく差異のない処理結果が得られる。ただし、より迅速に処理を完了したい場合には、上記実施形態の如く、処理対象とすべき単位描画エリアを選別する方が好ましい。
【図面の簡単な説明】
【０１０９】
【図１】印刷システムのハードウェア構成を示すブロック図。
【図２】印刷システムのソフトウェア構成を示すブロック図。
【図３】印刷処理のフローチャート。
【図４】ページ出力処理のフローチャート。
【図５】ウォーターマーク描画処理のフローチャート。
【図６】印刷用の描画エリアと表示用の描画エリアと仮想的な描画エリアの関係を説明するための説明図。
【図７】表示用の描画エリアから取得した画像を印刷用の描画エリアに合成してゆく状況を説明するための説明図。
【符号の説明】
【０１１０】
１・・・パーソナルコンピュータ（ＰＣ）、２・・・プリンタ、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・ハードディスク装置、１５・・・操作部、１６・・・表示部、１７・・・通信インターフェース、２１・・・アプリケーション、２３・・・Ｗｉｎ３２（ＧＤＩ３２）、２５…グラフィックデバイスインターフェース（ＧＤＩ）、２７・・・プリンタドライバレンダリング部、２９・・・プリンタドライバインターフェース部、３１・・・描画命令レンダリング部、３３・・・ウォーターマーク描画・合成部、３５・・・データ出力部、３７・・・描画メモリ、４１・・・グラフィックエンジン（ＧＤＩ）、４３・・・ディスプレイドライバ、５１・・・印刷用の描画エリア、５３・・・ウォーターマーク、５５・・・仮想的な描画エリア。
【図１】
2010134539.tif 000003
【図２】
2010134539.tif 000004
【図３】
2010134539.tif 000005
【図４】
2010134539.tif 000006
【図５】
2010134539.tif 000007
【図６】
2010134539.tif 000008
【図７】
2010134539.tif 000009