説明

プリンタ制御用プログラム、情報処理装置、および印刷システム

【課題】プリンタドライバのレンダリング部での処理によりウォーターマークを付加可能で、その際、プリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行しなくても済むようにすること。
【解決手段】ウォーターマークを描画する際、プリンタドライバのレンダリング部は、表示用デバイスコンテキストを取得し(S401)、表示用デバイスコンテキストに対してウォーターマークを描画する(S403〜S409)。そして、表示用デバイスコンテキストから、描画されたウォーターマークを取得して(S411)、取得したウォーターマークを印刷用の描画メモリと合成する(S413)。これにより、プリンタドライバのレンダリング部は、印刷用のデバイスコンテキストに対する描画命令を発行することなく、印刷用の描画メモリに対してウォーターマークを描画できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタ制御用プログラム、情報処理装置、および印刷システムに関する。
【背景技術】
【0002】
従来、文書中にウォーターマークを付加して印刷する技術が知られている。この種の技術は、例えば、関係者以外への配布が禁じられた文書を印刷する場合などに利用され、この場合、文書中に「マル秘」など文字や画像をウォーターマークとして付加して印刷することで、文書を受け取った関係者に注意喚起を図ることができる。
【0003】
このようなウォーターマーク付加機能に関し、例えば下記特許文献1には、プリンタドライバにおいて、印刷すべき画像のビットマップデータを作成するとともに、作成されたビットマップデータにウォーターマークを合成する技術が開示されている。このような技術を利用すれば、プリンタドライバにより、文書中にウォーターマークを付加することができた(特許文献1:[0056]〜[0079]参照)。
【特許文献1】特開平11−298717号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載された技術の場合、プリンタドライバのインタフェース部においてウォーターマークがビットマップ化され、そのビットマップデータがプリンタドライバのレンダリング部に渡される仕組みになっている。
【0005】
そのため、プリンタドライバのインタフェース部とレンダリング部が同一のPC(Personal Computer)上で動作しない環境(例えば、プリンタが共有設定されている場合)において上記技術を適用すると、ウォーターマークの受け渡しができなくなり、ウォーターマークを印刷することができなくなる、という問題があった。
【0006】
また、上記のような問題を避けるには、プリンタドライバのレンダリング部でウォーターマークをビットマップ化できるとよいのであるが、ウォーターマークを描画するための描画命令を、プリンタドライバのレンダリング部が発行すると問題が生じることがあった。
【0007】
より具体的に説明すると、Windows(登録商標)系のOS(Operating System)には、GDI(Graphic Device Interface)と呼ばれるソフトウェアが含まれている。このGDIは、仮想化された描画領域であるデバイスコンテキストの管理と、このデバイスコンテキストへの描画に伴う表示用ないし印刷用データの作成とを行う周知のソフトウェアである。
【0008】
このようなGDIを備えるOSが搭載されたPCにおいて、アプリケーションソフトウェアが印刷処理を実行する際には、その処理の中で、印刷用のデバイスコンテキストを取得する。そして、GDIに対して指令を与えるための関数(API;Application Program Interface)を呼び出すことにより、取得した印刷用のデバイスコンテキストに対する描画命令を発行する。
【0009】
これにより、印刷に必要となる各種情報がGDI経由でプリンタドライバのレンダリング部へと伝達されて、プリンタドライバのレンダリング部がGDIを利用した描画処理を実行し、その結果、最終的には印刷出力がなされることになる。
【0010】
しかし、GDIは、本来、アプリケーションソフトウェアが上記のような手順で利用するために用意されたソフトウェアであって、プリンタドライバのレンダリング部が利用することを前提とした設計にはなっていない。
【0011】
そのため、ウォーターマークを描画するためにプリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行すると、自ら発行した描画命令に関連する各種情報がGDI経由でプリンタドライバのレンダリング部自身へ戻されるという変則的な状況に陥る。その結果、例えば、描画命令によってはGDIによる描画処理が適切に実行されない、といった問題を招くことがあった。
【0012】
本発明は、上記問題を解決するためになされたものであり、その目的は、プリンタドライバのレンダリング部での処理によりウォーターマークを付加可能で、その際、プリンタドライバのレンダリング部が印刷用のデバイスコンテキストに対する描画命令を発行しなくても済むプリンタ制御用プログラム、情報処理装置、および印刷システムを提供することにある。
【課題を解決するための手段】
【0013】
以下、本発明において採用した構成について説明する。
【0014】
本発明のプリンタ制御用プログラムは、情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置において、前記情報処理装置が備える制御部を、前記プリンタドライバのレンダリング部として機能させるためのプリンタ制御用プログラムであって、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させるためのプログラムである。
【0015】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させた場合、プリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、プリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【0016】
このようなプリンタドライバのレンダリング部であれば、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がGDI経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、GDIを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【0017】
また、本発明のプリンタ制御用プログラムにおいては、さらに次のような構成を備えていると好ましい。
【0018】
まず、本発明のプリンタ制御用プログラムにおいて、前記付加画像描画手段は、前記付加画像を複数の部分画像に分割して、各部分画像を描画するための描画命令を前記表示用のデバイスコンテキストに対して発行することにより、前記ディスプレイドライバに各部分画像を描画させる手段、前記付加画像取得手段は、前記ディスプレイドライバによって1つの前記部分画像が描画される毎に、前記部分画像を取得する手段、前記画像合成手段は、前記付加画像取得手段によって取得された前記部分画像について、当該部分画像を重ね合わせるべき前記ベース画像上の位置を、前記付加画像を複数の部分画像に分割したときの分割条件に基づいて算出し、算出された位置に前記部分画像を合成する手段、とされており、これら前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成されるものであると好ましい。
【0019】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、表示出力用の記憶領域に収まらない大きさの付加画像であっても、複数の部分画像に分割して、各部分画像とベース画像との合成を繰り返すことで、付加画像とベース画像を合成することができる。
【0020】
また、本発明のプリンタ制御用プログラムは、前記ベース画像上において想定された複数の領域について、各領域が、当該領域内に重ね合わせるべき前記部分画像が存在する有効領域か、当該領域内に重ね合わせるべき前記部分画像が存在しない無効領域かを判別する判別手段を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させ、前記判別手段によって前記有効領域と判別された領域を対象にして、前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成されるものであると好ましい。
【0021】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、有効領域と判別された領域を対象にして、付加画像描画手段、付加画像取得手段、および画像合成手段による各処理が実行される。したがって、有効領域か無効領域かを問わず、一律に部分画像とベース画像との合成を試行する場合に比べ、付加画像をより迅速に描画することができる。
【0022】
また、本発明のプリンタ制御用プログラムは、前記ベース画像描画手段が、前記印刷出力用の記憶領域にベース画像を描画した後に、前記画像合成手段が、前記付加画像を前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、前記印刷用画像を前記印刷出力用の記憶領域に合成するものであると好ましい。
【0023】
このように構成されたプリンタ制御用プログラムに従って情報処理装置の制御部をプリンタドライバのレンダリング部として機能させれば、ベース画像に対して重ねて描画されることを前提とした付加画像が、ベース画像よりも後から描画される。したがって、付加画像に対して重ねて描画されるとの前提がないベース画像を、付加画像よりも後から描画する場合に比べ、付加画像を消失させることなく確実にベース画像と合成することができる。
【0024】
次に、本発明の情報処理装置は、情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置であって、前記プリンタドライバのレンダリング部は、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えることを特徴とする。
【0025】
このように構成された情報処理装置において、プリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、プリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【0026】
このような情報処理装置によれば、プリンタドライバのレンダリング部は、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がGDI経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、GDIを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【0027】
次に、本発明の印刷システムは、情報処理装置と、前記情報処理装置によって制御される印刷装置とを備えてなる印刷システムであって、前記情報処理装置は、前記情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、前記印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成されており、しかも、前記情報処理装置が備える前記プリンタドライバのレンダリング部は、前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段とを備えることを特徴とする。
【0028】
このように構成された印刷システムにおいて、情報処理装置が備えるプリンタドライバのレンダリング部は、ソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域にベース画像を描画する。また、情報処理装置が備えるプリンタドライバのレンダリング部は、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバによって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像が印刷装置へと出力される。
【0029】
このような印刷システムによれば、情報処理装置が備えるプリンタドライバのレンダリング部は、付加画像を描画する際には、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバのレンダリング部が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバのレンダリング部にとっては、自ら発行した描画命令がGDI経由でプリンタドライバのレンダリング部自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、GDIを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【発明を実施するための最良の形態】
【0030】
次に、本発明の実施形態について一例を挙げて説明する。
【0031】
[システム全体の構成]
図1は、パーソナルコンピュータ1(以下、PC1という)と、このPC1に接続されたプリンタ2とを備えたシステムの概略構成を示すブロック図である。このシステム内に含まれるPC1は、本発明でいう情報処理装置に相当し、プリンタ2は、本発明でいう印刷装置に相当する。
【0032】
このシステムの内、PC1は、図1に示すように、CPU11、ROM12、RAM13、HDD14(ハードディスク装置14)、操作部15、表示部16、および通信インターフェース17などを備えている。
【0033】
CPU11は、ROM12やRAM13に記憶されたプログラムに従って、PC1各部に対する制御および各種演算を実行する装置で、プリンタドライバとしての処理、OSやアプリケーションなどとしての各処理は、このCPU11によって実行される。
【0034】
ROM12は、PC1の電源スイッチを切っても記憶内容を保持可能な記憶装置で、BIOS(Basic Input Output System)や通常であれば更新されない読み出し用のデータ等を記憶している。
【0035】
RAM13は、CPU11から直接アクセスされるメインメモリ等として利用される記憶装置である。このRAM13には、OSや各種アプリケーションなどのソフトウェアがHDD14から読み込まれ、また、CPU11による各種演算の結果やHDD14から読み込まれたデータもRAM13に記憶される。後述するプリンタドライバ(プリンタドライバレンダリング部27およびプリンタドライバインターフェース部29)としての処理を実行する際には、プリンタドライバを機能させる上で必要となるプリンタ制御用プログラムがHDD14からRAM13に読み込まれ、RAM13に記憶されたプログラムに従って、CPU11がプリンタドライバとしての処理を実行することになる。
【0036】
HDD14は、OS、各種アプリケーションプログラム、および各種データファイルを保存しておくための装置で、上記プリンタ制御用プログラムもHDD14に保存されている。
【0037】
操作部15は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス(例えば、マウス)等によって構成される。表示部16は、各種情報を利用者に提示するための出力装置であり、例えば、液晶ディスプレイ等によって構成される。
【0038】
通信インターフェース17は、プリンタおよびその他の周辺機器を接続可能なシリアルインターフェース(例えば、USBインターフェース)、あるいは、LAN(Local Area Network)インターフェース等である。
【0039】
[ウォーターマーク付加機能の概要]
次に、ウォーターマーク付加機能に関連するソフトウェアの概要について、図2に基づいて説明する。
【0040】
本実施形態において、PC1には、OSとして、WindowsXP(登録商標)が搭載されている。このOSは、周知のマルチタスク機能を備えており、これにより、PC1上では、複数のプロセスが並列に機能して、それら複数のプロセスが連携して各種処理を実行する仕組みになっている。
【0041】
アプリケーション21は、例えばワープロソフトや表計算ソフトなどのソフトウェアであり、このアプリケーション21の印刷機能を利用者が利用した際には、アプリケーション21上で編集された画像(ベース画像)を印刷するための描画命令が発行される。
【0042】
Win32(GDI32)23は、OSの一部として実装されたアプリケーションプログラムインターフェースで、アプリケーション21は、Win32(GDI32)23が提供する関数を呼び出すことにより、GDI25に対して描画命令を与えることができる。
【0043】
GDI25は、仮想化された描画領域であるデバイスコンテキストの管理と、このデバイスコンテキストに対する描画に伴う印刷用データの作成を行う部分である。Win32(GDI32)23の提供する関数をアプリケーション21が呼び出した際、アプリケーション21から渡された各種情報はGDI25へと伝達される。そして、それらの情報がGDI25およびプリンタドライバレンダリング部27において処理される。
【0044】
また、プリンタドライバレンダリング部27には、プリンタドライバインターフェース部29から、ウォーターマーク(付加画像)を付加した印刷を実行する上で必要となる情報なども伝達される。
【0045】
プリンタドライバインターフェース部29は、アプリケーション21とは別に、印刷関連の各種設定を実施可能なユーザインターフェースを提供する部分である。このユーザインターフェースを利用して、利用者は、ウォーターマークを付加した印刷を指示することができる。また、この他にも、プリンタドライバインターフェース部29を利用すれば、縮小印刷、レイアウト印刷といった特殊な印刷の実行や、用紙種別、印刷部数といった印刷関連の各種設定を指示することができる。
【0046】
プリンタドライバレンダリング部27は、描画命令レンダリング部31、ウォーターマーク描画・合成部33、データ出力部35、および描画メモリ37などを備えている。これらの内、描画命令レンダリング部31は、アプリケーション21からの描画命令を、GDI25を利用して処理することで、描画メモリ37への描画を実行する。
【0047】
また、ウォーターマーク描画・合成部33は、プリンタドライバインターフェース部29からウォーターマークを付加した印刷を実行する旨の情報が到来した場合に、ウォーターマークについての描画命令を発行する。
【0048】
ウォーターマークについての描画命令を発行する際、ウォーターマーク描画・合成部33は、表示用のデバイスコンテキスト(=厳密には、ディスプレイのデバイスコンテキストと互換性のあるメモリデバイスコンテキスト)を取得する。そして、この表示用のデバイスコンテキストに対する描画を行うため、Win32(GDI32)23が提供する関数を呼び出すことで、グラフィックエンジン(GDI)41に対して描画命令を与える。
【0049】
これにより、ウォーターマークについての描画命令は、ディスプレイドライバ43へと伝達され、ディスプレイドライバ43により、表示用の描画メモリ(=上記メモリデバイスコンテキストに対応付けられたイメージバッファ)にウォーターマークとなる画像が描画されることになる。
【0050】
このようにして表示用の描画メモリに描画されたウォーターマークとなる画像は、描画命令レンダリング部31によって読み出され、その解像度や色数が印刷用の描画メモリ37に合わせて最適化される。そして、その最適化された画像がウォーターマーク描画・合成部33によって描画メモリ37へと合成され、その結果、アプリケーション21上で編集された画像(ベース画像)とウォーターマーク(付加画像)を合成してなる画像が描画メモリ37内に形成されることになる。
【0051】
こうして描画メモリ37内に形成されたウォーターマーク付きの画像は、データ出力部35によってプリンタ2へと出力される。なお、プリンタ2への出力に当たっては、周知のスプーラシステムが利用され、その際、データ出力部35は、印刷ジョブを管理するための各種コマンド等も発行する。ただし、このようなスプーラシステムそのものは周知技術であり、本発明の要部に直接関連する技術ではないので、これ以上の説明は省略する。
【0052】
[PC1における印刷処理の説明]
次に、上記PC1において実行される印刷処理の詳細について、図3のフローチャートに基づいて説明する。なお、本明細書においては、説明を簡潔にするため、図3〜図5に示した各処理ステップが、アプリケーション21およびプリンタドライバレンダリング部27によって実行される旨の説明を行う。ただし、これらの処理ステップが、厳密には、アプリケーション21として機能するCPU11、およびプリンタドライバレンダリング部27として機能するCPU11によって実行されることは周知の通りである。
【0053】
図3に示す印刷処理は、アプリケーション21およびプリンタドライバレンダリング部27が協働することで実行されることになる処理であり、図3には、アプリケーション側(図中左側)およびプリンタドライバレンダリング部側(図中右側)の各処理が併記してある。
【0054】
アプリケーション側の処理は、利用者がドキュメントの印刷を指令する操作を実行したときに開始される処理で、この処理を開始すると、アプリケーション21は、まず、印刷用デバイスコンテキストを作成する(S101)。デバイスコンテキスト作成の命令は、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、GDI25を利用して印刷に必要な情報を作成する(S201)。
【0055】
続いて、アプリケーション21は、ドキュメントの開始を命令する(S103)。ドキュメント開始の命令も、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、GDI25を利用して印刷ジョブに必要な情報の取得と印刷ジョブのコマンド出力を実行する(S203)。
【0056】
そして、アプリケーション21は、ページの開始を命令する(S105)。ページ開始の命令も、他の命令同様、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、GDI25を利用して各ページに必要な情報の取得とページ開始のコマンド出力を実行する(S205)。
【0057】
次いで、アプリケーション21は、ページ内の描画を命令する(S107)。このS107は、ページ内にある個々の描画物毎に実行され、例えば、複数の描画物が存在する場合であればS107が複数回にわたって実行され、これにより、各描画物に対応する描画命令が順に発行されることになる。
【0058】
S107においても、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで描画命令が発行され、その情報がGDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、各ページに対して描画される命令をコマンドとして出力、または、描画メモリに描画してBMP(ビットマップ)化する(S207)。
【0059】
S207において、コマンドとして出力するか描画メモリに描画してBMP(ビットマップ)化するかは、プリンタ2側にコマンドによる描画を実行する機能があるか否かによって変わる。
【0060】
このようにしてページ内の描画をすべて終えたら、これにより、アプリケーション21上で編集された1ページ分の画像(ベース画像)の描画が完了したことになるので、アプリケーション21は、ページの終了を命令する(S109)。ページの終了命令も、他の命令同様、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、ページ出力処理を実行する(S209)。このページ出力処理の中で、ウォーターマークの描画などが実行されることになるが、その詳細については後述する。
【0061】
なお、以上説明したS105〜S109は、ドキュメント内に含まれる個々のページ毎に実行され、例えば、複数のページからなるドキュメントの場合であれば、S105〜S109が複数回にわたって繰り返される。その結果、複数ページ分の描画がなされることになる。
【0062】
このような処理の結果、ドキュメント内の最終ページについての処理が完了したら、アプリケーション21は、ドキュメントの終了を命令する(S111)。ドキュメントの終了も、他の命令同様、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、印刷ジョブ終了のコマンド出力を実行する(S211)。
【0063】
最後に、アプリケーション21は、印刷用デバイスコンテキストの破棄を命令する(S113)。S113で発行された命令も、他の命令同様、Win32(GDI32)23が提供する関数をアプリケーション21が呼び出すことで、GDI25を介してプリンタドライバレンダリング部27へと伝達される。これにより、プリンタドライバレンダリング部27は、印刷に必要な情報を破棄する(S213)。
【0064】
そして、以上のようなS101〜S113の処理手順すべてを終えたら、これにて、アプリケーション21による印刷処理は終了することになる。
【0065】
[ページ出力処理の詳細]
次に、上記S209のページ出力処理について、その詳細を図4および図5に基づいて説明する。
【0066】
このページ出力処理を開始すると、プリンタドライバレンダリング部27は、ウォーターマークの描画が必要か否かを判断する(S305)。ウォーターマークの描画が必要か否かは、プリンタドライバインターフェース部29を利用して、利用者が任意に設定可能となっており、S305では、利用者による設定に基づく判断がなされる。
【0067】
S305において、ウォーターマークの描画が必要と判断された場合(S305:YES)、プリンタドライバレンダリング部27は、ウォーターマーク描画処理を実行する(S307)。このS307は、詳しくは図5に示すような処理となる。
【0068】
以下、図5に示す処理の説明をするに当たっては、具体的な事例として、図6(a)に示す印刷用の描画エリア51に対して、ウォーターマーク53を描画する事例を挙げて説明を続ける。
【0069】
ここで例示する描画エリア51は、解像度が横4900×縦6400ドットのエリアで、この描画エリア51は描画メモリ37内に確保されるものである。また、ウォーターマーク53は、上記横4900×縦6400ドットの左上を原点(0,0)とする座標系で、「左上頂点の座標(x,y)=(1000,1700)、(横方向ドット数cx,縦方向ドット数cy)=(3000,3000)の範囲」に描かれている。また、表示部16としては、解像度:横800×縦600の表示装置を採用しており、表示用の描画エリアの解像度も横800×縦600ドットとなっている。
【0070】
さて、図5に示す処理に進んだ場合について説明を続けると、プリンタドライバレンダリング部27は、まず、表示用デバイスコンテキストを取得する(S401)。S401により、表示用のデバイスコンテキストとしては、ディスプレイのデバイスコンテキストと、およびそのディスプレイのデバイスコンテキストと互換性のあるメモリデバイスコンテキストが取得される。
【0071】
続いて、プリンタドライバレンダリング部27は、表示用デバイスコンテキストから描画可能なサイズを取得し、分割数を算出する(S403)。S403において、表示用デバイスコンテキストから取得される「描画可能なサイズ」は、表示部16の描画エリアの解像度に相当し、本実施形態で例示する事例の場合、解像度:横800×縦600が取得される。
【0072】
また、S403において算出される分割数は、印刷用の描画エリア51を、表示部16の描画エリア相当のサイズを持つ領域単位で分割した場合に、横および縦それぞれがいくつの領域に分割されるのかを示す値である。
【0073】
例えば、印刷用の描画エリア51が上記横4900×縦6400ドット、表示用の描画エリアが上記横800×縦600ドットの場合、横方向の分割数としては、計算式「4900÷800=6.125」から小数点以下を切り上げることで、分割数「7」が算出される。同様に、縦方向の分割数としては、計算式「6400÷600=10.66…」から小数点以下を切り上げることにより、分割数「11」が算出される。
【0074】
この場合、印刷用の描画エリア51(横4900×縦6400ドット)は、仮想的には、図6(b)に示すように、横800×縦600ドットの単位描画エリアを横方向に7列、縦方向に11行並べてなる仮想的な描画エリア55(横5600×縦6600ドット)の一部に該当する領域であると見なすことができる。
【0075】
また、そのように見なした場合、上記「座標x,y(1000,1700)を左上の頂点とする横方向ドット数cx,縦方向ドット数cy(3000,3000)の範囲」に描かれるウォーターマーク53は、上記仮想的な描画エリア55内では、図6(c)に示すような位置にあるものと見なすことができる。この場合、ウォーターマーク53が実際に描画されるのは、図6(d)に示すように、番号:16〜19,23〜26,30〜33,37〜40,44〜47,51〜54が付された横4×縦6の各単位描画エリアとなる。
【0076】
このような想定の下、S403を終えたら、プリンタドライバレンダリング部27は、ウォーターマーク53の描画対象領域から、分割された表示用デバイスコンテキストへの描画の有無を判別する(S405)。S405では、上記横4×縦6の各単位描画エリアについては、分割された表示用デバイスコンテキストへの描画があり、それ以外の各単位描画エリアについては、分割された表示用デバイスコンテキストへの描画がないものと判別する。
【0077】
より具体的には、次の4つの関係式;「ウォーターマーク53の左上頂点のx座標(x)>{(表示用の描画エリアの横方向ドット数)×(仮想的な描画エリア55内にある単位描画エリアの左からの位置)}」、「ウォーターマーク53の左上頂点のy座標(y)>{(表示用の描画エリアの縦方向ドット数)×(仮想的な描画エリア55内にある単位描画エリアの上からの位置)}」、「{ウォーターマーク53の左上頂点のx座標(x)+ウォーターマーク53の横方向ドット数(cx)}<{(表示用の描画エリアの横方向ドット数)×((仮想的な描画エリア55内にある単位描画エリアの左からの位置)−1)}」、「{ウォーターマーク53の左上頂点のy座標(y)+ウォーターマーク53の縦方向ドット数(cy)}<{(表示用の描画エリアの縦方向ドット数)×((仮想的な描画エリア55内にある単位描画エリアの上からの位置)−1)}」について、仮想的な描画エリア55内にある各単位描画エリアが、いずれか1つの関係式を満たす場合、S405では、分割された表示用デバイスコンテキストへの描画がないと判別される。
【0078】
例えば、番号:1が付された単位描画エリアの場合、「ウォーターマーク53の左上頂点のx座標(x=1000)>{(表示用の描画エリアの横方向ドット数=800)×(仮想的な描画エリア55内にある単位描画エリアの左からの位置=1)}」については、「1000>800」となって関係式が成り立つので、この場合、「分割された表示用デバイスコンテキストへの描画がない(=図6(c)でいえば、ウォーターマーク53との重なりがない単位描画エリア)」と判別される。
【0079】
また、番号:16が付された単位描画エリアの場合、「ウォーターマーク53の左上頂点のx座標(x=1000)>{(表示用の描画エリアの横方向ドット数=800)×(仮想的な描画エリア55内にある単位描画エリアの左からの位置=2)}」については、「1000>1600」となって成り立たない。同様に、「ウォーターマーク53の左上頂点のy座標(y=1700)>{(表示用の描画エリアの縦方向ドット数=600)×(仮想的な描画エリア55内にある単位描画エリアの上からの位置=3)}」についても、「1700>1800」となって成り立たず、「{ウォーターマーク53の左上頂点のx座標(x=1000)+ウォーターマーク53の横方向ドット数(cx=3000)}<{(表示用の描画エリアの横方向ドット数=800)×((仮想的な描画エリア55内にある単位描画エリアの左からの位置=2)−1)}」についても、「1000+3000<800×(2−1)」となって成り立たず、「{ウォーターマーク53の左上頂点のy座標(y=1700)+ウォーターマーク53の縦方向ドット数(cy=3000)}<{(表示用の描画エリアの縦方向ドット数=600)×((仮想的な描画エリア55内にある単位描画エリアの上からの位置=3)−1)}」についても、「1700+3000<600×(3−1)」となって成り立たない。したがって、この場合、4つの関係式すべてが成り立たないので、この場合、「分割された表示用デバイスコンテキストへの描画がある(=図6(c)でいえば、ウォーターマーク53との重なりがある単位描画エリア)」と判別される。
【0080】
つまり、上記のような判別方法により、図6(d)に示すような、番号:16〜19,23〜26,30〜33,37〜40,44〜47,51〜54が付された横4×縦6の各単位描画エリアを残して、それ以外の単位描画エリアを処理対象から除外できるのである。
【0081】
さて、このようにして処理対象となる単位描画エリアを選別したら、続いて、処理対象となる単位描画エリアの数に相当する回数の繰り返し処理を実行し、各回ともに、以下に説明するS407〜S413を実行する。
【0082】
すなわち、まず、プリンタドライバレンダリング部27は、表示用デバイスコンテキストに対しての描画座標を計算して(S407)、表示用デバイスコンテキストに対してAPI(Win32(GDI32)23)を利用してウォーターマークを描画する(S409)。
【0083】
上記S407では、ウォーターマーク53の左上頂点としてどのような座標を指定してウォーターマーク53の描画を行えば、左上頂点の座標が(0,0)となっている表示用描画エリアに対し、所期の「分割されたウォーターマーク53の一部」を描画できるのかが計算により求められる。
【0084】
具体的には、次の2つの計算式;「x座標(cx’)=(ウォーターマーク53の左上頂点のx座標)−{(表示用の描画エリアの横方向ドット数)×((仮想的な描画エリア55内にある単位描画エリアの左からの位置)−1)}」、「y座標(cy’)=(ウォーターマーク53の左上頂点のy座標)−{(表示用の描画エリアの縦方向ドット数)×((仮想的な描画エリア55内にある単位描画エリアの上からの位置)−1)}」に基づいて、ウォーターマーク53の左上頂点として設定される座標が算出される。
【0085】
例えば、繰り返し処理の1回目において、番号:16が付された単位描画エリアが処理対象となった場合であれば、図6(b)に示す通り、左から2個目、上から3個目のエリアなので、「cx’=1000−(800×(2−1))=200」、「cy’=1700−(600×(3−1))=500」と算出される。
【0086】
この場合、S409では、左上頂点の座標が(0,0)となっている表示用描画エリア(800×600)における座標(200,500)を左上頂点としてウォーターマーク53を描画し、これにより、番号:16が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画されることになる。
【0087】
同様に、繰り返し処理の2回目において、番号:17が付された単位描画エリアが処理対象となった場合であれば、図6(b)に示す通り、左から3個目、上から3個目のエリアなので、「cx’=1000−(800×(3−1))=−600」、「cy’=1700−(600×(3−1))=500」と算出される。
【0088】
この場合、S409では、左上頂点の座標が(0,0)となっている表示用描画エリア(800×600)における座標(−600,500)を左上頂点としてウォーターマーク53を描画し、これにより、番号:17が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画されることになる。
【0089】
すなわち、ウォーターマーク53の左上頂点のx座標として負の値を設定することにより、表示用描画エリア(800×600)の左方へウォーターマーク53の一部がはみ出すかたちで描画を実行し、これにより、表示用描画エリア内には、所期の部分画像(ウォーターマーク53内で表示用描画エリアと一致する座標を持つ範囲)を描画することができるのである。
【0090】
さらに同様に、繰り返し処理の24回目において、番号:54が付された単位描画エリアが処理対象となった場合であれば、図6(b)に示す通り、左から5個目、上から8個目のエリアなので、「cx’=1000−(800×(5−1))=−2200」、「cy’=1700−(600×(8−1))=−3900」と算出される。
【0091】
この場合、S409では、左上頂点の座標が(0,0)となっている表示用描画エリア(800×600)における座標(−2200,−3900)を左上頂点としてウォーターマーク53を描画し、これにより、番号:54が付された単位描画エリア内に描かれるべき部分画像が表示用描画エリア内に描画される。
【0092】
このケースが、ウォーターマーク53の左上頂点のx,y座標として絶対値が最も大きい負の値を設定するケースである。このケースでは、表示用描画エリア(800×600)の最も左方および最も上方までウォーターマーク53の一部が大きくはみ出すかたちで描画が実行され、その結果、表示用描画エリア内には、ウォーターマーク53の最も右下に当たる部分画像を描画することができる。
【0093】
なお、以上説明したS409において、表示用描画エリアへの描画は、表示用のデバイスコンテキストに対する描画として実行される。ただし、その際には、S401において取得したデバイスコンテキストの内、ディスプレイのデバイスコンテキストは利用せず、メモリデバイスコンテキストの方を利用する。これにより、表示用のデバイスコンテキストに対する描画を実行しても、描画物が実際に表示部16に表示されてしまうのを回避することができる。
【0094】
さて、このようにして処理対象となった1つの単位描画エリアに対応する部分画像(ウォーターマーク53の一部)を描画したら、プリンタドライバレンダリング部27は、表示用デバイスコンテキストから、描画されたウォーターマークを取得する(S411)。このS411では、S409において描画された表示用描画エリア相当のサイズを持つウォーターマークの一部分に相当する画像を取得する。
【0095】
そして、取得したウォーターマークを印刷用の描画メモリと合成する(S413)。すなわち、既に説明したS207により、印刷用の描画エリア51内には、アプリケーション21上で編集された画像(ベース画像)が格納されているので、これに対し、取得したウォーターマークを合成する。
【0096】
ここで、例えば、繰り返し処理の1回目において、番号:16が付された単位描画エリアが処理対象となった場合であれば、図7(a)に示すように、印刷用の描画エリア51内にウォーターマーク53の一部が合成される。以下、繰り返し処理の2〜4回目においては、図7(b)に示すように、印刷用の描画エリア51内にウォーターマーク53の一部が矢印で示す順に合成されてゆく。さらに、繰り返し処理の5〜6回目においては、図7(c)に示すように、上から2つ目の位置にも、印刷用の描画エリア51内にウォーターマーク53の一部が矢印で示す順に合成されてゆく。そして、最終的には、番号:54が付された単位描画エリアが処理対象となって、図7(d)に示すように、24個目の部分画像が合成されて、印刷用の描画エリア51内にウォーターマーク53全体が合成されることになる。
【0097】
以上説明したようなS407〜S413の処理は、ウォーターマークに必要な描画がすべて終了するまで繰り返される(S415:NO)。そして、ウォーターマークに必要な描画がすべて終了した場合(S415:YES)、プリンタドライバレンダリング部27は、表示用デバイスコンテキストを破棄する(S417)。すなわち、S401において取得したディスプレイのデバイスコンテキストとメモリデバイスコンテキストを破棄し、これらのデバイスコンテキストに関連するリソースを解放する。
【0098】
さて、以上のような手順で、図5に示したS401〜S417を終了すると、図4に示したS307を終了することになる。そこで、以下、図4に戻って処理の説明を続けると、S307を終えた場合、S309へと進む。また、S305において、ウォーターマークの描画が不要と判断した場合(S305:NO)、プリンタドライバレンダリング部27は、S307を実行せず、この場合もS309へと進む。つまり、上記S307を実行するか否かは、ウォーターマークの描画が必要か不要かに応じて変わるが、いずれの場合ともS309へ進む。
【0099】
そして、S309では、BMP化された描画メモリの画像やページ終了のコマンドを出力して(S309)、図4に示したページ出力処理を終了する。このS309によって、1ページ分の画像がプリンタ2に対して出力されることになる。このとき、S307を実行していれば、アプリケーション21上で編集された画像(ベース画像)に対してウォーターマークが付加された画像がプリンタ2へ出力されることになる。また、S307を実行していなければ、アプリケーション21上で編集された画像(ベース画像)そのものがプリンタ2へ出力されることになる。
【0100】
[効果]
以上説明した通り、上記プリンタドライバレンダリング部27を備えたPC1によれば、S207により、アプリケーション21等のソフトウェアから発行された描画命令に応じて印刷出力用の記憶領域である描画メモリ37にベース画像を描画する。また、プリンタドライバレンダリング部27は、S409により、表示用のデバイスコンテキストに対する描画命令を発行し、その結果、ディスプレイドライバ43によって表示出力用の記憶領域に付加画像が描画される。そして、この付加画像は、S411,S413により、印刷出力用の記憶領域においてベース画像と合成されて印刷用画像とされ、この印刷用画像がS309により印刷装置へと出力される。
【0101】
そのため、このようなプリンタドライバレンダリング部27を備えたPC1であれば、付加画像を描画する際には、S409により、表示用のデバイスコンテキストに対する描画命令を発行すればよく、印刷用のデバイスコンテキストに対する描画命令を発行しなくても済む。したがって、プリンタドライバレンダリング部27が自ら印刷用のデバイスコンテキストに対する描画命令を発行する場合とは異なり、プリンタドライバレンダリング部27にとっては、自ら発行した描画命令がGDI経由でプリンタドライバレンダリング部27自身へ戻ってくる、といった変則的な状況に陥ることがない。よって、GDIを適正に利用することができ、これにより、所期の付加画像を確実に描画することができる。
【0102】
また、上記のような手法で、プリンタドライバレンダリング部27においてウォーターマークがビットマップ化されれば、プリンタドライバインターフェース部29からプリンタドライバレンダリング部27へビットマップデータを渡さなくてもよい。したがって、例えばプリンタが共有設定されている場合のように、プリンタドライバレンダリング部27およびプリンタドライバインターフェース部29が必ずしも同一のPC上で動作するとは限らない環境であっても、プリンタドライバインターフェース部29を備えるPC側において、ウォーターマークの描画、印刷出力を実施することができる。
【0103】
また、上記プリンタドライバレンダリング部27を備えたPC1によれば、表示出力用の記憶領域(描画メモリ)に収まらない大きさの付加画像であっても、S403〜S415により、複数の部分画像に分割して、各部分画像とベース画像との合成を繰り返すことで、付加画像とベース画像を合成することができる。
【0104】
さらに、上記プリンタドライバレンダリング部27を備えたPC1によれば、S405により、有効領域と判別された領域を対象にして、S409(付加画像描画手段)、S411(付加画像取得手段)、およびS413(画像合成手段)による各処理が実行される。したがって、有効領域か無効領域かを問わず、一律に部分画像とベース画像との合成を試行する場合に比べ、付加画像をより迅速に描画することができる。
【0105】
加えて、上記プリンタドライバレンダリング部27を備えたPC1によれば、S207を実行した後に、S209を実行することで、ベース画像に対して重ねて描画されることを前提とした付加画像が、ベース画像よりも後から描画されることになる。したがって、付加画像に対して重ねて描画されるとの前提がないベース画像を、付加画像よりも後から描画する場合に比べ、付加画像を消失させることなく確実にベース画像と合成することができる。
【0106】
[変形例等]
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【0107】
例えば、上記実施形態では、表示用の描画領域にウォーターマークの一部に相当する画像を描画して、その画像を印刷用の描画領域に合成する処理を複数回にわたって繰り返す事例を示したが、このような画像の分割を行うか否かも任意である。例えば、付加したいウォーターマークが比較的小さい場合には、表示用の描画領域に分割することなくウォーターマークを描画できることもあるので、その場合、上記実施形態で説明したような画像の分割は不要となる。
【0108】
さらに、上記実施形態では、S405により、仮想的な描画エリア55内において、ウォーターマークの描画が必要となる単位描画エリア(上記実施形態の場合、番号:16〜19,23〜26,30〜33,37〜40,44〜47,51〜54が付された横4×縦6の各単位描画エリア)を抽出していたが、このような処理を行うか否かも任意である。すなわち、例えば、このような処理を行うことなく、仮想的な描画エリア55内にあるすべての単位描画エリアを対象に、ウォーターマークの描画処理を行っても、最終的な処理結果としては、上記実施形態とまったく差異のない処理結果が得られる。ただし、より迅速に処理を完了したい場合には、上記実施形態の如く、処理対象とすべき単位描画エリアを選別する方が好ましい。
【図面の簡単な説明】
【0109】
【図1】印刷システムのハードウェア構成を示すブロック図。
【図2】印刷システムのソフトウェア構成を示すブロック図。
【図3】印刷処理のフローチャート。
【図4】ページ出力処理のフローチャート。
【図5】ウォーターマーク描画処理のフローチャート。
【図6】印刷用の描画エリアと表示用の描画エリアと仮想的な描画エリアの関係を説明するための説明図。
【図7】表示用の描画エリアから取得した画像を印刷用の描画エリアに合成してゆく状況を説明するための説明図。
【符号の説明】
【0110】
1・・・パーソナルコンピュータ(PC)、2・・・プリンタ、11・・・CPU、12・・・ROM、13・・・RAM、14・・・ハードディスク装置、15・・・操作部、16・・・表示部、17・・・通信インターフェース、21・・・アプリケーション、23・・・Win32(GDI32)、25…グラフィックデバイスインターフェース(GDI)、27・・・プリンタドライバレンダリング部、29・・・プリンタドライバインターフェース部、31・・・描画命令レンダリング部、33・・・ウォーターマーク描画・合成部、35・・・データ出力部、37・・・描画メモリ、41・・・グラフィックエンジン(GDI)、43・・・ディスプレイドライバ、51・・・印刷用の描画エリア、53・・・ウォーターマーク、55・・・仮想的な描画エリア。

【特許請求の範囲】
【請求項1】
情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置において、前記情報処理装置が備える制御部を、前記プリンタドライバのレンダリング部として機能させるためのプリンタ制御用プログラムであって、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させるためのプリンタ制御用プログラム。
【請求項2】
前記付加画像描画手段は、前記付加画像を複数の部分画像に分割して、各部分画像を描画するための描画命令を前記表示用のデバイスコンテキストに対して発行することにより、前記ディスプレイドライバに各部分画像を描画させる手段、
前記付加画像取得手段は、前記ディスプレイドライバによって1つの前記部分画像が描画される毎に、前記部分画像を取得する手段、
前記画像合成手段は、前記付加画像取得手段によって取得された前記部分画像について、当該部分画像を重ね合わせるべき前記ベース画像上の位置を、前記付加画像を複数の部分画像に分割したときの分割条件に基づいて算出し、算出された位置に前記部分画像を合成する手段、
とされており、
これら前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成される
ことを特徴とする請求項1に記載のプリンタ制御用プログラム。
【請求項3】
前記ベース画像上において想定された複数の領域について、各領域が、当該領域内に重ね合わせるべき前記部分画像が存在する有効領域か、当該領域内に重ね合わせるべき前記部分画像が存在しない無効領域かを判別する判別手段
を備えた前記プリンタドライバのレンダリング部として、前記制御部を機能させ、
前記判別手段によって前記有効領域と判別された領域を対象にして、前記付加画像描画手段、前記付加画像取得手段、および前記画像合成手段による各処理が、前記複数の部分画像それぞれについて実行されることにより、前記印刷用画像が前記印刷出力用の記憶領域に合成される
ことを特徴とする請求項2に記載のプリンタ制御用プログラム。
【請求項4】
前記ベース画像描画手段が、前記印刷出力用の記憶領域にベース画像を描画した後に、前記画像合成手段が、前記付加画像を前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、前記印刷用画像を前記印刷出力用の記憶領域に合成する
ことを特徴とする請求項1〜請求項3のいずれかに記載のプリンタ制御用プログラム。
【請求項5】
情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成された前記情報処理装置であって、
前記プリンタドライバのレンダリング部は、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えることを特徴とする情報処理装置。
【請求項6】
情報処理装置と、前記情報処理装置によって制御される印刷装置とを備えてなる印刷システムであって、
前記情報処理装置は、
前記情報処理装置上で機能する少なくとも1つのソフトウェアからGDI(Graphic Device Interface)経由でプリンタドライバのレンダリング部へ描画命令を伝達することにより、前記印刷装置での印刷出力を実行可能で、且つ、前記ソフトウェアから前記GDI経由でディスプレイドライバへ描画命令を伝達することにより、表示装置での表示出力を実行可能に構成されており、しかも、
前記情報処理装置が備える前記プリンタドライバのレンダリング部は、
前記ソフトウェアから印刷用のデバイスコンテキストに対する描画命令が発行された際に、前記GDIを利用した描画処理を実行することにより、印刷出力用の記憶領域にベース画像を描画するベース画像描画手段と、
表示用のデバイスコンテキストに対する描画命令を発行して、前記GDIを利用した描画処理を前記ディスプレイドライバに実行させることにより、表示出力用の記憶領域に付加画像を描画する付加画像描画手段と、
前記付加画像描画手段によって前記表示出力用の記憶領域に描画された前記付加画像を取得する付加画像取得手段と、
前記付加画像取得手段によって取得された前記付加画像を、前記印刷出力用の記憶領域に描画された前記ベース画像に重ねて描画することにより、印刷用画像を前記印刷出力用の記憶領域に合成する画像合成手段と、
前記画像合成手段によって前記印刷出力用の記憶領域に合成された印刷用画像を、前記印刷装置へと出力するための制御を実行する出力制御手段と
を備えることを特徴とする印刷システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−134539(P2010−134539A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−307560(P2008−307560)
【出願日】平成20年12月2日(2008.12.2)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】