(57)【要約】【課題】  オーバーレイを行うとき、元データの白描画による白抜きを防止できる情報処理装置を提供する。【解決手段】  オーバーレイを背面に印刷する場合、描画命令に白描画があるかを判断し、その白描画が意図的な白描画かを判断し、意図的で無いと判断した場合には、白描画を無視する。また、ユーザの意思で無視するかどうか切り替えることを可能とすることを特徴とする。【選択図】        図１
2006331259.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションにより生成された印刷ドキュメントに付加情報を付加する情報処理装置であって、
前記付加情報を印刷ドキュメントの前面に描画するか背面に描画するかを判断する判断手段と、
前記付加情報を前記印刷ドキュメントの背面に印刷する場合は、前記付加情報の描画命令を、前記印刷ドキュメントの描画命令よりも先にスプールするスプール順序制御手段と、
前記印刷ドキュメントの該印刷ドキュメントの描画命令が白色で塗りつぶす設定である場合は、意図的な白描画かを判断する手段と、
前記意図的な白描画でないと判断した場合には、描画命令をスプールする際に、透過設定または描画しないように変更する手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記意図的な白描画手段として、特殊なクリッピングが指定されているかどうかで判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記意図的な白描画手段として、出力アプリケーション名によって判断することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
アプリケーションにより生成された印刷ドキュメントに付加情報を付加する情報処理装置であって、
前記付加情報を印刷ドキュメントの前面に描画するか背面に描画するかを判断する判断手段と、
前記付加情報を前記印刷ドキュメントの背面に印刷する場合は、前記付加情報の描画命令を、前記印刷ドキュメントの描画命令よりも先にスプールするスプール順序制御手段と、
前記印刷ドキュメントの該印刷ドキュメントの描画命令が白色で塗りつぶす設定である場合は、意図的な白描画かを判断する手段と、
前記意図的な白描画でないと判断した場合には、描画命令を描画する際に、透過設定または描画しないように変更する手段と、
を有することを特徴とする情報処理装置。
【請求項５】
前記意図的な白描画判断手段として、特殊なクリッピングが指定されているかどうかで判断することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記意図的な白描画判断手段として、出力アプリケーション名によって判断することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
白塗りつぶし描画を透過設定または描画しないように変更するかどうか、ユーザの意思で変更する手段を有することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に関するものであり、特にオーバーレイ印刷を行う情報処理装置に関するものである。
【背景技術】
【０００２】
アプリケーションにより生成した印刷ドキュメントに対して、プリンタドライバでスタンプやページ番号等を付加することにより、オーバーレイ機能のないプリンタでもスタンプやページ番号の付加された印刷ドキュメントを得ることを可能とする方法が考えられている。
【０００３】
しかし、印刷ドキュメントはオーバーレイがあることを意識していないため、文字の周りを白で塗りつぶしたり、描画領域全体を白で塗りつぶしたりなどすることがある。するとオーバーレイと印刷ドキュメントが重なったところで、文字の周りなどが白く抜けることがあった。
【０００４】
この問題に対し、文字の白塗り背景を透過に変更する方法が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２０００−２５５１３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では、文字の背景以外の白塗りつぶしについては、白く抜けるという問題は解決されていない。この問題を回避するための、白塗り描画全てを無視し描画しないという方法も考えられるが、図形を重ねあわせて描画する場合などで、下位層の描画の一部を消し（白く塗りつぶし）上から描画を行う場合には問題が発生する。
【０００６】
本発明は上記従来例に鑑みてなされたものであり、文字の背景などの白塗り描画とオーバーレイが重なるとき、又は手前側に印刷されるオーバーレイに文字の背景などの白塗り描画がある場合に、背景の白抜けを防止できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の情報処理装置は、アプリケーションにより生成された印刷ドキュメントに付加情報を付加する情報処理装置であって、前記付加情報を印刷ドキュメントの前面に描画するか背面に描画するかを判断する判断手段と、前記付加情報を前記印刷ドキュメントの背面に印刷する場合は、前記付加情報の描画命令を、前記印刷ドキュメントの描画命令よりも先にスプールするスプール順序制御手段と、前記印刷ドキュメントの該印刷ドキュメントの描画命令が白色で塗りつぶす設定である場合は、意図的な白描画かを判断する手段と、前記意図的な白描画でないと判断した場合には、描画命令をスプールする際に、透過設定または描画しないように変更する手段と、を有することを特徴とする。
【０００８】
又本発明の情報処理装置によれば、アプリケーションにより生成された印刷ドキュメントに付加情報を付加する情報処理装置であって、前記付加情報を印刷ドキュメントの前面に描画するか背面に描画するかを判断する判断手段と、前記付加情報を前記印刷ドキュメントの背面に印刷する場合は、前記付加情報の描画命令を、前記印刷ドキュメントの描画命令よりも先にスプールするスプール順序制御手段と、前記印刷ドキュメントの該印刷ドキュメントの描画命令が白色で塗りつぶす設定である場合は、意図的な白描画かを判断する手段と、前記意図的な白描画でないと判断した場合には、描画命令を描画する際に、透過設定または描画しないように変更する手段と、を有することを特徴とする。
【０００９】
又本発明の情報処理装置によれば、白塗りつぶし描画を透過設定または描画しないように変更するかどうか、ユーザの意思で変更する手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、オーバーレイに重なるドキュメント中の文字の背景などが白抜きになるのを防ぐことができる。
【００１１】
また、文字の背景など白塗り描画があるオーバーレイが手前側にある場合、その描画を行わないことで白抜きを防ぐことができる。
【００１２】
また更に、白抜け防止判定に誤って必要な白描画を行えず、不正な印刷結果になった場合にはユーザの操作で判定処理をやめることができる。
【００１３】
その結果、オーバーレイが後ろでも、前でも文字背景など白抜けを防止でき、特別な描画処理機能を備えずに、オーバーレイを印刷ドキュメントの手前側に置いたり、背景側においたりすることが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【実施例】
【００１５】
［実施の形態１］
＜用語の説明＞
最初に、本実施の形態における主要な用語の説明を行う。
【００１６】
「スプール処理」＝描画命令をファイルに保存する処理。
【００１７】
「スプールファイル」＝スプール処理により保存されたファイル（本実施の形態では、外部記憶装置のないシステムで、メモリ内に保存した場合もファイルと呼ぶことにする）。
【００１８】
「バンディング処理」＝画像を分割して描画転送処理を行うこと。
【００１９】
「バンド」＝バンディング処理で分割された画像。
【００２０】
「イメージメモリ」＝画面には表示されないが、画面と同じようにイメージを展開できるメモリ空間のこと。
【００２１】
＜プリンタドライバの処理の概要＞
次に、本実施の形態におけるプリンタドライバの処理の概要を説明する。
【００２２】
図１は、本実施の形態の付加情報であるオーバーレイと、アプリケーションにより生成された印刷ドキュメントとを描画するプリンタ制御システムの階層図である。
【００２３】
図１において、１０１はアプリケーションプログラムであり、１０２はＯＳ（オペレーティングシステム）である。１０３はプリンタドライバで、１０４はプリンタ、１０５はオフスクリーン（イメージメモリ）、１０６はスプールファイルである。１０７はオーバーレイ情報（スタンプ、付加情報）である。
【００２４】
図１から明らかなように、プリンタドライバ１０３はホストコンピュータのＯＳ１０２の下位層に位置し、アプリケーションプログラム１０１から描画命令を受け取り、それをプリンタ１０４が処理できる印刷命令に変換した後にプリンタ１０４に転送する。
【００２５】
特にラスタ画像を印刷するプリンタの場合、処理機能として複雑な描画命令の処理機能を持っていないために、アプリケーションプログラム１０１からの描画命令を一度スプールファイル１０６に保存し、転送時に保存されたスプールファイル１０６を用いてイメージメモリ１０５でビットマップ画像を作成し、プリンタ１０４に転送する。
【００２６】
ここで、ビットマップ画像を作成する時にホストコンピュータのメモリが少ない場合は画像を分割して描画及び転送処理を行う。
【００２７】
本実施の形態１は、ラスタープリンタを例にして説明しているが、高度なＰＤＬ（ページ記述言語）を持つページプリンタでもページプリンタ内部でＰＤＬをメモリにスプールし、イメージメモリに画像を描画し、印刷エンジンにイメージメモリの内容を転送するという意味では同じ処理構成になっている。
【００２８】
＜ハードウェアの構成＞
本実施の形態１を実現するためのハードウェアの構成例を図２に基づいて説明する。
【００２９】
図２の構成で、２０１は本実施の形態１の制御を司る制御部（以後ＣＰＵと称する）である。２０２は各種データを入力するキーボード、２０３はカラー表示器で、ＲＡＭ２０５に貯えられている画像データを表示する。２０４はＲＯＭで、この装置全体を制御する制御手順およびその他の必要な処理手順、データ、情報等が予め記憶されている。２０５はワークメモリとして利用されるランダムアクセスメモリ（ＲＡＭ）である。２０６はハードディスクで、各種データの読み書きやプログラムが格納されている。２０７は印刷データを送信するプリンタインターフェースであり、１０４は前述したプリンタである。２０９はデータバスであり、各種データを転送するために用いられる。なおハードディスク２０６にはアプリケーションプログラムやプリンタドライバなどが格納されており、ＲＡＭ２０５にロードされて、ＣＰＵ２０１により制御される。
【００３０】
＜スプール処理＞
次に本実施の形態１におけるプリンタドライバのスプール処理を図３及び図４に示すフローチャートを用いて以下説明する。本実施の形態の画面表記ではオーバーレイをスタンプと表現している。
【００３１】
図３及び図４に示す処理は、プリンタドライバがアプリケーションからの印刷命令を受けて、スプールファイルと呼ばれるファイルに保存する処理であり、実際の印刷命令への変換はこの処理の後に行う。
【００３２】
まずステップＳ１０１で、プリンタドライバはスプールファイルを初期化する。ステップＳ１０２乃至Ｓ１０５の処理は、オーバーレイをドキュメントの背景としてスプールする処理（図３）である。ステップＳ１０２では、プリンタドライバは図６の「前面に印刷」チェックボックスのチェック状態を調べ、チェックボックスがチェックされていなければオーバーレイを背景側に印刷すると判断し、チェックされていればオーバーレイを手前側に印刷すると判断する。図６の「スタンプ」メニューが「なし」の場合はオーバーレイを印刷しないと判断する。オーバーレイを背景側に印刷する場合はステップＳ１０３へ進み、オーバーレイを手前側に印刷するか、またはオーバーレイを印刷しない場合はステップＳ１０６へ進む。
【００３３】
ステップＳ１０３では、プリンタドライバは図６の「スタンプ」メニューで選ばれたオーバーレイ描画命令を図１のオーバーレイ情報１０７から取り出し、次にステップＳ１０４に進み、ステップＳ１０３で取り出したオーバーレイ命令をスプールファイルに付加する。そしてステップＳ１０５に進み、オーバーレイが複数の描画命令から成り立っているか判断し、オーバーレイが終了していない場合はステップＳ１０３へ戻り、終了していればステップＳ１０６へ進む。これで、書類の背景側にオーバーレイがスプールされたことになる。
【００３４】
（ドキュメントをスプールするためのステップ）ステップＳ１０６では、プリンタドライバはアプリケーションからの描画命令を受け取る。具体的にはアプリケーションからＯＳに渡った描画命令をＯＳが細分化し、プリンタドライバのＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）を呼び出す。呼び出されたプリンタドライバは、呼ばれたＤＤＩの種類と引数の内容をメモリに保存する。ステップＳ１０７で、プリンタドライバはオーバーレイを背景側にスプールしたか否かを判断する。
【００３５】
ステップＳ１０７で、オーバーレイを背景側にスプールしなかったと判断した場合にはステップＳ１０８に進む。ステップＳ１０８では、プリンタドライバはメモリに保存してある描画命令をスプールファイルに付加する。
【００３６】
一方、ステップＳ１０７でオーバーレイを背景側にスプールすると判断した場合、背景の白抜け防止処理を行うためにステップＳ１０９へ進む。
【００３７】
ステップＳ１０９では、プリンタドライバはオーバーレイを背景側にスプールした場合であって、白抜け防止処理を行うかどうか判断する。
【００３８】
これは、白抜け防止処理を行うと、印刷ドキュメント内に複数層に重ね合わせたデータで意図的に白い色で描画している場合に誤って、白塗りの部を透過させてしまうため、ユーザが意図しない印刷結果になるという問題があるためである。
【００３９】
図８は、白抜け防止処理を行わない方が良い例である。（ａ）はユーザが作成した印刷ドキュメントで、模様入りのデータ１の上に文字３を記載する際、文字を読みやすくするために、意図的に文字の背景２を白くしている。このような印刷ドキュメントに対して、白抜け防止処理を行うと、（ｂ）のような出力結果になってしまうため、白抜け防止処理を行わないようにする必要がある。データの上下関係を調べて判断することも可能であるが、そのような処理は時間やメモリ等のリソースを多く使ってしまうという問題がある。また、正確な判断は行えても、ユーザの意図は異なる可能性もある。そこで、本実施例では、高速に判定しユーザの判断で白抜け防止処理を行うかどうかの切り替えできるようにする。この切り替えは、図６のプリンタドライバ設定画面の「白塗りつぶしを無視する」チェックボックスで指定することができる。
【００４０】
つまり、ステップＳ１０９では、プリンタドライバは図６設定画面の「白塗りつぶしを無視する」チェックボックスのチェック状態を調べ、チェックボックスがチェックされていなければ白抜け防止処理を行わないのでそのままステップＳ１０８に進む。
【００４１】
一方、「白塗りつぶしを無視する」チェックボックスがチェックされている場合、まず、アプリケーションからの描画命令が文字描画命令かどうか判断する。具体的にはステップＳ１０６でＤＤＩのＤｒｖＴｅｘｔＯｕｔ関数が呼び出されたか判断する。ＤｒｖＴｅｘｔＯｕｔ関数はプリンタドライバが持つＤＤＩの一つである。ＤｒｖＴｅｘｔＯｕｔ関数が呼び出されていたら、ステップＳ１１１へ進む。
【００４２】
ステップＳ１１１では、ステップＳ１０６で受け取った命令が背景を塗りつぶしで描画するか否かを判断する。具体的にはステップＳ１０６で保存したＤｒｖＴｅｘｔＯｕｔ関数の引数ｐｂｏＯｐａｑｕｅ構造体のアドレスがＮＵＬＬ（００００００００Ｈ）かどうかで判断する。ｐｂｏＯｐａｑｕｅ構造体のアドレスがＮＵＬＬであれば、塗りつぶしは無いのでステップＳ１０８へ進む。ｐｂｏＯｐａｑｕｅ構造体のアドレスがＮＵＬＬでないなら、塗りつぶしがあるのでステップＳ１１２へ進む。
【００４３】
次に、ステップＳ１１２では、背景が白色の塗りつぶしかどうかを判断する。具体的にはステップＳ１０６で受け取ったＤｒｖＴｅｘｔＯｕｔ関数の引数ｐｂｏＯｐａｑｕｅ構造体のｉＳｏｌｉｄＣｏｌｏｒメンバが白色を示すＩＤになっているかで判断する。ｐｂｏＯｐａｑｕｅ構造体のｉＳｏｌｉｄＣｏｌｏｒメンバが白色を示すＩＤになっていなければステップＳ１０８へ進む。ｐｂｏＯｐａｑｕｅ構造体のｉＳｏｌｉｄＣｏｌｏｒメンバが白色を示すＩＤならステップＳ１１３へ進む。
【００４４】
ステップＳ１１３ではステップＳ１０６で保存したｐｂｏＯｐａｑｕｅ構造体をＮＵＬＬに変更する。その後ステップＳ１０８へ進む。
【００４５】
一方、ステップＳ１１０で文字描画でないと判断した場合には、ステップＳ１１４で白塗り描画かどうかを判断する。具体的にはステップＳ１０６で、ＤＤＩのＤｒｖＢｉｔＢｌｔ関数が呼び出され、ＤｒｖＢｉｔＢｌｔ関数の引数ｒｏｐ４（Ｒａｓｔｅｒ  ＯＰｅｒａｔｉｏｎ）がＰＡＴＣＯＰＹ（Ｆ０Ｆ０Ｈ）であり、また、ＤｒｖＢｉｔＢｌｔ関数の引数ｐｂｏ構造体が白色ブラシを示しているかどうかで判断する。なお、ＰＡＴＣＯＰＹに加えて、ＤｒｖＢｉｔＢｌｔ関数の引数ｒｏｐ４（Ｒａｓｔｅｒ  ＯＰｅｒａｔｉｏｎ）がＷＨＩＴＥＮＥＳＳ（ＦＦＦＦＨ）かどうかを判断に追加することも可能である。どちらかに該当すれば、白塗り描画と判断できる。ＤｒｖＢｉｔＢｌｔ関数もプリンタドライバが持つＤＤＩの一つである。白色塗り描画でないと判断した場合には、ステップＳ１０８へ進む。白塗り描画であると判断した場合には、ステップＳ１１５へ進む。
【００４６】
次に、白塗り描画に特殊な属性が無いかを判定する。これは、白描画を無視して描画しないようにした場合に、図形を重ね合わせて描画する場合、下位層の描画の一部を白く塗ることにより描画している場合に問題が発生するためである。図９は下位層の描画の一部を白く塗ることで描画したために問題が発生している例である。この例では、白描画で星型を描画しているが（ａ）はユーザが作成した印刷ドキュメントで、模様入りの描画１の上に白塗りで星型を描画２している。このような印刷ドキュメントに対して、白描画を無視すると、白い部分が背景の模様が印刷されることになり、（ｂ）のような出力結果になってしまうため、不必要な白塗りは無視しないようにする必要がある。
【００４７】
しかし、白塗り描画が他の描画と重なっているかを判断するのは非常に多くの処理時間が必要となってしまう。そこで、ステップＳ１１５では、白塗り描画の属性などから意図的な白描画と判断できる場合のみ白描画を無視しないようにすることで、図９の（ｂ）のように誤って描画する可能性を減らす。判断するひとつの方法として描画コマンドのクリッピングから判断する方法がある。クリッピングとは描画コマンドのうち一部のみを切りぬくことであるが、図９のような描画の場合には、クリッピングとして星型が指定される。逆に、オーバーレイがあることを意識していないため、文字などの周りを白で塗りつぶす場合には、クリッピングが指定されていないか、単純な矩形である。具体的には、ＤｒｖＢｉｔＢｌｔ関数の引数ｐｃｏ構造体のメンバｉＤＣｏｍｐｌｅｘｉｔｙがＤＣ＿ＣＯＭＰＬＥＸかどうかで判断できる。
【００４８】
ＤＣ＿ＣＯＭＰＬＥＸであれば、単純な矩形のクリッピングでは無いので、意図的な描画であると判断でき、ステップＳ１０８へ進む。一方、ＤＣ＿ＣＯＭＰＬＥＸでなければ、意図的な描画でないと判断し、ステップＳ１０８をパスしてステップＳ１１６へ進むことで、描画命令を無視することができる。
【００４９】
ステップＳ１１５の判断には、その他に、出力するアプリケーション名で判断する方法もある、オーバーレイがあることを意識せずに、文字などの周りを白で塗りつぶすアプリケーションというのは、特定のアプリケーションのみであるので、出力するアプリケーション名から判断することも可能である。
【００５０】
そしてステップＳ１１６に進み、１ページ分の描画が終了したか判断し、１ページ分の描画が終了していればステップＳ２０１へ進み、そうでなければステップＳ１０６へ戻る。
【００５１】
（オーバーレイをアプリケーションの手前側にスプールする処理：図４）ステップＳ２０１では、プリンタドライバは図６の「前面に印刷」チェックボックスのチェック状態を調べ、チェックボックスがチェックされていなければオーバーレイを背景側に印刷すると判断し、チェックされていればオーバーレイを手前側に印刷するかと判断する。図６の「スタンプ」メニューが「なし」の場合はオーバーレイを印刷しないと判断する。手前側に印刷するならステップＳ２０２へ進み、そうでなければステップＳ２０５へ進む。ステップＳ２０２では、プリンタドライバは図６の「スタンプ」メニューで選ばれたオーバーレイ描画命令を図１のオーバーレイ情報１０７から取り出し、ステップＳ１０９へ進む。
【００５２】
以降の処理ステップＳ１０９からステップＳ１１５は、図３の処理と同じであるが、ステップＳ１０８では、プリンタドライバはメモリに保存してある描画命令をスプールファイルに付加するのに対し、ステップＳ２０３では、オーバーレイ描画命令をスプールファイルに付加し、ステップＳ２０４に進む。
【００５３】
次にステップＳ２０４に進み、プリンタドライバはオーバーレイが複数の描画命令から成り立っているか調べ、オーバーレイが完了したかを判断する。ここで完了していればステップＳ２０５へ進み、そうでなければステップＳ２０２へ戻る。
【００５４】
ステップＳ２０５では、プリンタドライバは印刷ドキュメントの全ページについて、スプール処理が終了したか否かを判断し、まだ全ページのスプール処理が終了していないならステップＳ１０２へ進み、全ページのスプール処理が終了したらならば、スプール処理は終了する。
【００５５】
次に本実施の形態１におけるプリンタドライバの印刷処理を図５に示すフローチャートを用いて説明する。この印刷処理は通常の印刷処理と同じで、ラスタライズ処理、色変換処理、二値化処理、コマンド変換処理を行う。オーバーレイのための特別な処理は必要ない。
【００５６】
ステップＳ３０１では、スプール処理で作成されたスプールファイルをオープンする。ステップＳ３０２では全ページ印刷したかどうかを判断する。全ページ印刷したらステップＳ３１２へ進む。全ページ印刷していなければステップＳ３０３へ進む。
【００５７】
ステップＳ３０３ではオフスクリーンメモリの初期化を行う。ステップＳ３０４では、１ページ分の描画命令が終了したか判断する。１ページ終了したらステップＳ３０７へ進む。まだ終了していなければステップＳ３０５へ進む。ステップＳ３０５では、スプールファイルから描画命令を取得する。ステップＳ３０６では、取得した描画命令にオフスクリーンメモリに描画を行う。
【００５８】
プリンタドライバ１０３はスプールファイル１０６から描画命令を取り出してオフスクリーンメモリ１０５に描画している。スプールファイル１０６からの描画命令（印刷データ描画命令およびスタンプ描画命令を含む）の取得は、スプールファイル１０６に描画命令がスプールされた順序で取り出すことになる。つまり、先にスプールされたものが先に読み出され、結果として先に描画されることになる。よって、背面に描画されるべき付加情報は、アプリケーションから受け取った描画命令よりも先にスプールファイル１０６にスプールされているので、背面に描画されるべき付加情報はプリンタドライバに先に読み出され、オフスクリーンメモリ１０５に描画される。
【００５９】
プリンタドライバ１０３のオフスクリーンメモリ１０５への描画は、上書きすることにより描画される。つまり描画命令が重なる部分については、後で描画される方が優先となる。関連技術として、スタンプ等の付加情報はアプリケーションからの描画命令よりも後に描画し、その描画時に、前面に印刷する場合はそのまま上書きを行い、背面に印刷する場合はＲＯＰ処理（ラスターオペレーション：論理描画の一種）を行い、ＯＲを取って元のデータが消えないようにすることも可能である。この場合はアプリケーションからの描画命令である文字の周りが白く塗りつぶされる指定がなされていても、付加情報が消えてなくなることはない。しかしながら、この方法だと、例えば、赤い文字の背面に緑の背景を描画したい場合は、ＯＲを取ることにより文字が黄色になってしまうことになる。つまり、ユーザの希望する出力とならないという不具合がある。よって、本実施の形態では、描画は上書きで行い、描画順序を考慮しているのである。そして、描画順序に加え更に、文字の周りの属性を制御しているのである。
【００６０】
ステップＳ３０７では、オフスクリーンの全ての行を印刷命令に変換し、送信したかどうか判断する。全ての行を送信したらステップＳ３０２へ戻る。全ての行を送信していなければステップＳ３０８へ進む。ステップＳ３０８では、オフスクリーンのＲＧＢ→ＣＭＹＫ色変換を行う。ステップＳ３０９では、変換した多値のＣＭＹＫデータを２値データに変換する。ステップＳ３１０では、変換したＣＭＹＫ２値データを印刷命令に変換する。ステップＳ３１１では、変換した印刷命令をプリンタに送信する。その後ステップＳ３０７へ戻る。
【００６１】
ステップＳ３１２では、印刷処理終了後のスプールファイルのクローズを行う。ステップＳ３１３はスプールファイルの削除を行う。
【００６２】
［実施の形態２］
上記の実施の形態１では、ホストコンピュータ側でラスタライズして得られたイメージデータに基づく印刷データをプリンタ（インクジェットプリンタやホストベースプリンタ）に送る制御について説明している。
【００６３】
この実施の形態２では、ページ記述言語等のプリンタ言語をプリンタに送り、プリンタでプリンタ言語を解釈して印刷処理を行う場合のホストコンピュータの処理について説明する。
【００６４】
アプリケーションにより生成された描画命令とスタンプ等の付加情報をスプールする図２及び図３の処理については同様である。図５の制御が変更される。
【００６５】
実施の形態３の処理では、ステップＳ３０３〜Ｓ３１１の制御は行わずに、スプールファイルから順次描画命令を読み出して、描画命令（付加情報の描画命令およびアプリケーションから受け取ったオリジナル描画命令）を解析して、付加情報の描画命令と重なるオリジナル描画命令を判断する。もし、付加情報と重なるオリジナル描画命令がある場合は以下の処理を行う。
【００６６】
該当する付加情報が「背面に印刷」か「前面に印刷」かを判断し、「背面に印刷」の場合はオリジナル描画命令が付加情報の上に上書きするように印刷順序を指定する。また、付加情報が「前面に印刷」の場合は、付加情報がオリジナル描画命令の上に上書きするように印刷順序を指定する。このように印刷順序の描画属性を設定した後、それぞれの描画命令に基づいてページ記述言語のプリンタ言語に変換した印刷データを生成し、プリンタに出力する。
【００６７】
このように制御することにより、プリンタ言語を解釈して印刷処理を行うプリンタに対しても、アプリケーションが生成した印刷ドキュメント（オリジナル描画命令）にスタンプ等の付加情報を付加することが可能となり、その際に、印刷ドキュメントの前面に印刷するか背面に印刷するかを指定された場合でも、文字の周りが抜けることなくプリンタ側で印刷処理を行うことが可能となる。
【００６８】
［実施の形態３］
前述の実施の形態では、全ページのスプール処理が終了してから印刷処理へ移行する流れを説明したが、１ページ単位でスプール処理と印刷処理を繰り返す処理も本発明の実施の形態となることは言うまでもない。
【００６９】
［実施の形態４］
上記の実施の形態１から３では、スプールファイルに保存する際に白描画コマンドを変更または無視するようにしたが、スプール後のステップＳ３０５の際に同じ判断を行っても効果が変わることがないことは言うまでもない。
【００７０】
［その他の実施の形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００７１】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或は装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【００７２】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７３】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７５】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の形態に係るシステムの階層図である。
【図２】本実施の形態に係るハードウェアの構成を示すブロック図である。
【図３】本発明の実施の形態１に係る処理を説明するフローチャートである。
【図４】本発明の実施の形態１に係る処理を説明するフローチャートである。
【図５】本発明の実施の形態１に係る印刷処理を説明するフローチャートである。
【図６】本発明の実施の形態１と２のプリンタドライバの画面例で、オーバーレイを使わない状態を示す図である。
【図７】本発明の実施の形態１と２のプリンタドライバの画面例で、オーバーレイをドキュメントの背面に印刷する状態を示す図である。
【図８】白抜け防止処理を行わない方が良い例を示す図である。
【図９】下位層の描画の一部を白く塗ることで描画したために問題が発生している例を示す図である。
【符号の説明】
【００７７】
１０１  アプリケーションプログラム
１０２  ＯＳ
１０３  プリンタドライバ
１０４  プリンタ
１０５  オフクスリーン
１０６  スプールファイル
１０７  オーバーレイ情報
【図１】
2006331259.tif 000003
【図２】
2006331259.tif 000004
【図３】
2006331259.tif 000005
【図４】
2006331259.tif 000006
【図５】
2006331259.tif 000007
【図６】
2006331259.tif 000008
【図７】
2006331259.tif 000009
【図８】
2006331259.tif 000010
【図９】
2006331259.tif 000011