(57)【要約】【課題】  地紋印刷において複数の潜像文字列がある場合であっても、顕像後の各潜像文字列の可読性を向上させ、潜像文字列に含まれる意味を容易に理解可能にする。【解決手段】  各文字列サイズを計算する（Ｓ５４０１）。ステップＳ５４０１で求めた各々の文字列サイズの情報からブロックサイズを算出する（Ｓ５４０２）。ブロック内における各文字列の位置を割り出す（Ｓ５４０３）。各文字列の開始位置を計算する（Ｓ５４０３）。印刷領域に対して指示された配置方法に従いブロックを配置する。そして、各ブロックの原点に、先にステップＳ５４０３で求めた各文字列の相対開始位置を加算することで、各々の文字列の物理的な配置位置を決定する（Ｓ５４０４）。【選択図】  図２７
2005210538.tif 000002
【特許請求の範囲】
【請求項１】
印刷出力する画像に付加される地紋パターンを生成する画像処理装置であって、
複数の潜像用オブジェクトを指定可能な入力手段と、
前記入力手段で指定された複数の潜像用オブジェクトをまとめてブロック化し、該ブロックを１つの潜像画像として地紋パターンを生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記生成手段は、
前記複数の潜像用オブジェクトの各々のサイズを算出するオブジェクトサイズ算出手段と、
前記オブジェクトサイズ算出手段により算出されたオブジェクトのサイズから、前記ブロックのサイズを算出するブロックサイズ算出手段と、
前記ブロックサイズ算出手段によりサイズが算出されたブロック内における各潜像用オブジェクトの開始位置を決定する開始位置決定手段と、
前記開始位置決定手段により決定された開始位置から各文字列を配置する配置手段と
を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力手段は前記ブロックの配置方法を指定可能であり、前記生成手段は前記入力手段から指定された配置方法に従い前記ブロックを有効印刷領域に配置した地紋パターンを生成することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
印刷出力する画像に付加される地紋パターンを生成するコンピュータにより実行される画像処理方法であって、
複数の潜像用オブジェクトを指定するステップと、
前記指定するステップにおいて指定された複数の潜像用オブジェクトをまとめてブロック化し、該ブロックを１つの潜像画像として扱い地紋パターンを生成するステップと
を備えることを特徴とする画像処理方法。
【請求項５】
前記生成するステップは、
前記複数の潜像用オブジェクトの各々のサイズを算出するステップと、
算出された前記オブジェクトのサイズから前記ブロックのサイズを算出するステップと、
前記サイズが算出されたブロック内における各潜像文字列の開始位置を決定するステップと、
決定された前記開始位置から各文字列を配置するステップと
を有することを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記指定するステップは前記ブロックの配置方法を指定するステップを有し、前記配置するステップは指定された前記配置方法に従い前記ブロックを有効印刷領域に配置した地紋パターンを生成することを特徴とする請求項４または５に記載の画像処理方法。
【請求項７】
コンピュータを請求項１ないし３のいずれかに記載の画像処理装置として機能させるためのコンピュータプログラム。
【請求項８】
印刷出力する画像に付加される地紋パターンを生成する地紋パターン生成方法であって、
複数の潜像用オブジェクトを指定するステップと、
前記指定するステップにおいて指定された複数の潜像用オブジェクトの各々を所定の位置を基準として縦方向に配置し、前記配置した複数の潜像用オブジェクトを用いて地紋パターンを生成するステップと
を有することを特徴とする地紋パターン生成方法。
【請求項９】
前記縦方向に配置した複数の潜像用オブジェクトを１つの基本パターンとするステップを有し、前記基本パターンを所定の方向に繰り返すことで地紋パターンを生成することを特徴とする請求項８に記載の地紋パターン生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法、地紋パターン生成方法およびコンピュータプログラムに関し、詳しくは、パーソナルコンピュータ等の情報処理装置とプリンタなどの印刷装置を有して構成されるシステムにおいて、複写物の使用などを牽制する地紋画像を含んだ画像を生成し、プリントする際の処理に関するものである。
【背景技術】
【０００２】
従来、帳票や住民票などの複写を禁止、あるいは抑止する目的で、これらのコンテンツは偽造防止用紙と呼ばれる特殊な印刷を施した用紙に印刷されていた。この偽造防止用紙は、原本においては人間にとって見えにくいが、複写機などを用いて複写した場合には「禁複写」の文字などが浮び上がるような用紙であり、これにより、複写する者にその複写物の使用などを躊躇わせる効果を生じさせるものである。延いては、このような帳票などは偽造防止用紙に印刷されているとして、複写そのものを抑止する効果をも生じさせるものである。しかし、このような偽造防止用紙は、通常の用紙と比較してコストが高いという問題があり、また、偽造防止用紙の製作時に設定されている文字しか浮び上がらせることができず、その用紙の用途が限られるなど、用途に関して柔軟性に欠ける部分がある。
【０００３】
一方、様々なコンテンツのデジタル化が進む中、帳票や住民票などのコンテンツも同様にデジタル化されている。しかしながら、これら帳票や住民票の利用など、その扱いに関するデジタル化は、まだ過渡期にあり、コンピュータを用いて作成したコンテンツを、プリンタなどを用いて紙に出力して利用することが多い。
【０００４】
こうした状況に加えて、近年のプリンタの性能の飛躍的な向上も起因して、従来の偽造防止用紙と同様の効果をコンピュータとプリンタを用いて行う技術が注目されている(特許文献１)。これは、コンピュータを用いて作られたコンテンツを、プリンタを用いて印刷出力する際に、コンテンツの背景に地紋と呼ばれる画像を重ねて出力する技術である。地紋画像は、原本（プリンタで出力した印刷物）においては単なる模様などに見えるが、複写すると所定の文字などが浮び上がるようなものであり、複写した者に偽造防止用紙と同様の牽制効果を与えることができる。
【０００５】
コンピュータを用いて作成した地紋画像を重ねて出力する場合、当然のことながら通常の印刷用の紙などを用いて出力できるため、偽造防止用紙に比べてコストの面で利点がある。更に、コンテンツを印刷出力する際に地紋画像を生成することができ、これにより、基本的に複写の際に顕在化させる文字等を自由に定めることが可能となる。あるいは、「禁複写」など一定の予め定まった静的な文字列などに加えて、ユーザ名や出力日時などの動的もしくは任意の文字列を浮び上がらせることができるという利点もある。
【０００６】
地紋画像は、上述したように、複写をした場合複写前には認識できなかった所定の文字などが顕在化し、その複写物を使用等することを抑止する効果を実現するものである。この効果を実現すべく、地紋画像は、基本的に、複写後に画像が残る領域と複写後に画像が消えるか、あるいは上記の残る領域に較べて薄くなって認識し難くなる領域の２つの領域から構成される。この２つの領域は印刷した状態ではほぼ同じ濃度であり、マクロ的には、一見すると「禁複写」などの複写によって顕在化する文字などが隠れていることが分からないが、ミクロ的には、例えば、印刷のドットのレベルでは以下に示されるようにそれぞれ異なる特性を持っている。この隠されていて複写によって現れる文字などの画像を「潜像(あるいは潜像画像)」と呼び、複写によって消えるかあるいは薄くなる画像を「背景(あるいは背景画像)」と便宜的に呼ぶ。そして、地紋画像は、基本的にこの潜像画像と背景画像からなるものであり、また、後述のカモフラージュ画像を更に含む場合もある。尚、ユーザインタフェース上の用語として潜像を前景と呼ぶ場合もある。
【０００７】
但し、地紋印刷は上記構成に限定されるものではなく、複写時にユーザが認識可能に「禁複写」などの文字列などが現れる（顕像化する）ように構成すればよい。つまり、文字列などが背景部として指定され、複写時に白抜き文字のような状態で示されても地紋印刷としてはその目的を達成することになる。この場合、潜像部と背景部の上述したドットの集中と分散の関係は白抜きでないものと逆の関係となることはもちろんである。
【０００８】
さて、複写後にドットが残る領域（潜像部または前景部）はドットが集中したドットの塊の集まりで構成され、複写後にドットが消える領域（背景部）は分散したドットの集まりで構成される。更に、それぞれの集まりが濃度が同じになるよう構成されることにより、潜像部と背景部の濃度をほぼ同じものとすることができる。
【０００９】
図３３は、この２つの領域を示す図である。同図に示すように、ドットが分散して配置される背景部と集中したドットの塊が配置される潜像部によって地紋画像が構成される。このふたつの領域は、それぞれ異なる網点処理や異なるディザ処理により生成することができる。網点処理を用いて地紋画像を生成する場合、潜像部は低い線数の網点処理、背景部は高い線数の網点処理が適している。ディザ処理を用いて地紋画像を生成する場合、潜像部はドット集中型ディザマトリクスを用いたディザ処理、背景部はドット分散型ディザマトリクスを用いたディザ処理が適している。
【００１０】
一般に複写機には、原稿の微小なドットを読み取る入力解像度や微小なドットを再現する出力解像度に依存した再現能力の限界が存在する。地紋画像の背景部のドットが、複写機で再現できるドットの限界より小さく形成され、潜像部のドット塊が限界より大きく形成されている場合、複写により地紋画像の大きなドット塊による画像は再現され、小さなドットによる画像は再現されず、潜像が顕在化される。また、複写によって分散した小さなドットが完全に消えなくとも、集中したドット塊と比較して複写後の濃度がより低い場合でも、潜像は相対的により顕著に認識できる。このように画像が浮び上がる画像は顕像と呼ばれる。
【００１１】
図３４(ａ)および(ｂ)は、この顕像化を示す図である。同図は集中したドットの塊の集まりによる潜像が現れ、分散したドットによる背景が消えた場合を示している。
【００１２】
また、地紋画像には、潜像をより認識しにくくする「カモフラージュ」という技術が適用されることも良く知られている。カモフラージュは、潜像部や背景部とは濃度を異ならせた模様を地紋画像全体に配置する技術であり、一見、潜像部や背景部とは異なる濃度のカモフラージュ画像が目立ち、潜像が更に目立たなくなる効果がある。また、カモフラージュ画像が存在する地紋画像は、印刷物に装飾的な印象を与える効果もある。図３５(ａ)はカモフラージュ画像が施されない地紋画像を示し、同図(ｂ)はカモフラージュ画像を施した地紋画像を示している。このカモフラージュ画像は、複写後に顕在化される潜像の判別が容易となるように、その画像を構成するドットができるだけ複写後に消失することが望ましい。これは、例えば、図３５(ｂ)に示すように、カモフラージュ画像を地紋画像の中に形成された輪郭のみの画像とし、その輪郭に相当する箇所にドットを打たないことで実現することができる。
【００１３】
地紋画像において、潜像用オブジェクトは地紋画像を適用する領域内にタイル状に敷き詰めて配置されるのが一般的である。これは同じオブジェクトを繰り返し配置することで、オブジェクトの意味を強調し、複写物であること及びその意味を容易に認識・可読する効果を狙って行われるものである。例えば単一のオブジェクトを潜像用のオブジェクトとする場合、潜像画像の上下左右に適切なマージンを設け、これをタイル状に敷き詰めることで、容易に潜像オブジェクトの強調と認識性の向上という目的が達成される。
【００１４】
【特許文献１】特開２００１−１９７２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、潜像オブジェクトが複数あり、各オブジェクトの長さや高さなどのサイズが異なる場合などにおいて、各オブジェクト単位での繰り返し処理を行うと、潜像オブジェクトの可読性が著しく低下することがある。このような場合、潜像オブジェクトの意味を強調する目的が達成することができないという問題があった。
【００１６】
図３６は印刷日及び時刻、ユーザ名、任意文字列をそれぞれ個別の潜像オブジェクトとし、これらをオブジェクト単位で繰り返すようにして生成した地紋画像を付加したプリント出力物を複写して得られた原稿のうち、地紋画像に埋め込まれていた潜像画像が顕像化した場合のを示したものである。同図に示す例では、印刷日および時刻には“2003/10/31 23:58”、ユーザ名には“User”、任意文字列には“この文章を印刷しました。”と、それぞれに対応するオブジェクトを繰り返し配置している。なお、本明細書における「オブジェクト」とはフォントデータから生成されるテキストや、ロゴ画像などのイメージなどを含むものである。以下、説明を簡略化するため、オブジェクトはテキストデータからなる文字列として説明を行う。
【００１７】
さて、図３６に示した３つの潜像オブジェクトとしてのこの３行の文字列は、「“2003/10/31 23:58”に“User”が“この文章を印刷しました。”」という意味を表現しようとしているが、容易に理解できるとは言い難い。この可読性の悪さは、文字列ごとに繰り返した配置、換言すれば、他の文字列の長さや配置個所を考慮しないで画像を生成しているため、全体としての可読性が低下していることによる。
【００１８】
本発明は以上のような問題点を鑑みて考案されたものであり、その目的とするところは、地紋印刷において複数の潜像用オブジェクトを用いて地紋画像を生成する場合であっても、顕像後の各潜像用オブジェクトの可読性を向上させることで、地紋画像が埋め込まれた印刷出力物を複写して得られた複写物における潜像画像のメッセージ性を高める画像処理装置、画像処理方法、地紋パターン生成方法およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
このような目的を達成するために、本発明に係る画像処理装置は、印刷出力する画像に付加される地紋パターンを生成する画像処理装置であって、複数の潜像用オブジェクトを指定可能な入力手段と、前記入力手段で指定された複数の潜像用オブジェクトをまとめてブロック化し、該ブロックを１つの潜像画像として地紋パターンを生成する生成手段とを備える。
【００２０】
ここで、前記生成手段は、前記複数の潜像用オブジェクトの各々のサイズを算出するオブジェクトサイズ算出手段と、前記オブジェクトサイズ算出手段により算出されたオブジェクトのサイズから、前記ブロックのサイズを算出するブロックサイズ算出手段と、前記ブロックサイズ算出手段によりサイズが算出されたブロック内における各潜像用オブジェクトの開始位置を決定する開始位置決定手段と、前記開始位置決定手段により決定された開始位置から各文字列を配置する配置手段とを有するものとすることができる。
【００２１】
ここで、前記入力手段は前記ブロックの配置方法を指定可能であり、前記生成手段は前記入力手段から指定された配置方法に従い前記ブロックを有効印刷領域に配置した地紋パターンを生成するものとすることができる。
【００２２】
本発明に係る画像処理方法は、印刷出力する画像に付加される地紋パターンを生成するコンピュータにより実行される画像処理方法であって、複数の潜像用オブジェクトを指定するステップと、前記指定するステップにおいて指定された複数の潜像用オブジェクトをまとめてブロック化し、該ブロックを１つの潜像画像として扱い地紋パターンを生成するステップとを備える。
【００２３】
ここで、前記生成するステップは、前記複数の潜像用オブジェクトの各々のサイズを算出するステップと、算出された前記オブジェクトのサイズから前記ブロックのサイズを算出するステップと、前記サイズが算出されたブロック内における各潜像文字列の開始位置を決定するステップと、決定された前記開始位置から各文字列を配置するステップとを有するものとすることができる。
【００２４】
ここで、前記指定するステップは前記ブロックの配置方法を指定するステップを有し、前記配置するステップは指定された前記配置方法に従い前記ブロックを有効印刷領域に配置した地紋パターンを生成するものとするこができる。
【００２５】
本発明に係るコンピュータプログラムは、コンピュータを上記の画像処理装置として機能させる。
【００２６】
本発明に係る地紋パターン生成方法は、印刷出力する画像に付加される地紋パターンを生成する地紋パターン生成方法であって、複数の潜像用オブジェクトを指定するステップと、前記指定するステップにおいて指定された複数の潜像用オブジェクトの各々を所定の位置を基準として縦方向に配置し、前記配置した複数の潜像用オブジェクトを用いて地紋パターンを生成するステップとを有する。
【００２７】
ここで、前記縦方向に配置した複数の潜像用オブジェクトを１つの基本パターンとするステップを有し、前記基本パターンを所定の方向に繰り返すことで地紋パターンを生成するものとすることができる。
【発明の効果】
【００２８】
本発明によれば、複数の潜像用オブジェクトをまとめてブロック化し、該ブロックを１つの潜像画像として地紋パターンを生成することで、可読性が向上した潜像用オブジェクトを地紋画像に埋め込むことが可能となる。結果として、複写後に浮き上がる潜像画像のメッセージ性を高めることができる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明を適用するのに好適な実施の形態を詳細に説明する。  
図１から図２６は、本発明の一実施形態に係わる情報処理装置であるホストコンピュータと印刷装置であるプリンタを有して構成されるシステムにおける、印刷処理およびそれに伴う地紋画像の描画データの生成に関する構成を説明するとともに、後述される本発明の地紋画像の表示・生成のいくつかの実施形態ための前提となる構成を説明する図である。以下、これらの図を参照して地紋画像表示の前提となる構成について説明する。
【００３０】
なお、本実施形態においては、複写時に顕像化する部分を潜像部（潜像画像）または前景部（前景画像）と定義し、複写時に消失または潜像部に比較して薄くなる部分を背景部（背景画像）と定義して説明を行う。そして、「禁複写」などのテキスト情報などのオブジェクトを指定し、複写物ではこの指定情報が顕像化するもの（潜像部）としている。しかしながら本発明における地紋画像はこれに限られるものではなく、複写物においてテキスト情報が周囲の画像に対して白抜き文字のように表現される（顕像化する）形態であってもよい。この場合、上述した潜像部と背景部の定義が反対となるが、これは本実施形態を説明するにあたって、本発明の理解を容易とするための一例として定義したものであり、本発明の本質に影響を与えるものではない。また、本発明における「オブジェクト」とはフォントデータから生成されるテキスト情報や、ロゴ画像などのイメージなどを含むものである。以下、説明を簡略化するため、オブジェクトはテキストデータからなる文字列として説明を行う。また、本発明は、地紋画像の種類や生成処理、色、形状、サイズなどによって規定されるものではない。
【００３１】
＜印刷システムの構成＞
図１は本発明の実施形態を示すプリンタ制御システムの構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ,ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
【００３２】
同図において、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて、後述される本発明の各実施形態に係わる処理を含む、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理およびそれに基づく印刷処理の実行を制御するＣＰＵ１を備える。このＣＰＵ１は、システムバス４に接続される各デバイスの制御を総括する。また、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）等を記憶し、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００３３】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０による表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェース２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００３４】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００３５】
プリンタ１５００は、そのＣＰＵ１２により制御される。プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に印刷出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラム用ＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記印刷出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００３６】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ１５００内の情報等をホストコンピュータ３０００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するメモリで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入力部１８には前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００３７】
また、前述した外部メモリ１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００３８】
印刷部１７は本実施形態では電子写真方式のエンジンを備えており、従って、画像の印刷およびそれに伴う地紋画像はそれらの印刷データに従って形成されるトナーのドットによって印刷が行われる。なお、本発明の適用上印刷の方式はこのような電子写真方式に限られないことはもちろんであり、例えば、インクジェット方式など、ドットを形成して印刷を行う方式の印刷方式にも本発明を適用することができる。
【００３９】
図２は、図１に示したホストコンピュータ３０００における印刷処理のための構成の一例を示す。アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部メモリ１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００４０】
グラフィックエンジン２０２は、プリンタなどの印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数をＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て双方向性インタフェース２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００４１】
本実施形態の印刷システムは、プリンタドライバ２０３内に地紋処理部２０５を有する。地紋処理部２０５はプリンタドライバ２０３のビルトインモジュールであってもよいし、個別のインストーレーションによって追加されるライブラリモジュールの形式であっても構わない。また、プリンタドライバ２０３は、地紋画像の印刷に関し、その地紋処理部２０５の実行により、後述の地紋画像の描画などの処理を行う。
【００４２】
＜印刷関連のソフトウエアモジュール＞
図３は、ホストコンピュータ３０００における印刷処理のための構成の他の例を示す図である。  
同図は、図２に示した構成を拡張したものであり、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２の構成では、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からの全ての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図３の構成は、スプーラ３０２が全ての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点で開放されるという点で異なっている。通常、後者の方がアプリケーションによる印刷処理が短時間で済む。また、図３で示す構成においては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
【００４３】
これらの目的のために、図２の構成に対し、図３に示すように中間コードデータでスプールするよう、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３がＣＲＴディスプレイ（ＣＲＴ）１０に表示させるウィンドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上あるいは外部メモリ１１上に保管する。
【００４４】
以下、図３に示す構成の詳細を説明する。同図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００４５】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（Ｎｕｐ、両面、ステープル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル３０３に保存する。このジョブ単位に格納されている設定ファイルをジョブ設定ファイル（簡略してＳＤＦ：Spool Description Fileと呼ぶこともある）と呼ぶ。このジョブ設定ファイルについては後述する。なお、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更にスプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【００４６】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００４７】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。その際、地紋画像の印刷に関する描画については、地紋処理部２０５をロードし、描画処理を行う。
【００４８】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。
【００４９】
プリンタドライバ２０３はグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００５０】
更に、図３は、上述した拡張システムに加えて、プレビューア３０６、設定変更エディタ３０７を配し、地紋画像のプレビューを含むプレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、まずユーザが図４に示すプリンタドライバのプロパティシートにおいて、「出力先の指定」を行う手段であるプルダウンメニュー９０１において「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【００５１】
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてＯＳが提供する構造体（Windows（登録商標）ＯＳでは、DEVMODEと呼ばれる）に格納される。その構造体には、例えばスプールファイル３０３に含まれる加工設定ファイル中にスプールファイルマネージャ３０４にストアを行うかどうかの設定が含まれている。スプールファイルマネージャ３０４がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル３０３にページ描画ファイルとジョブ設定ファイルとが生成・格納される。そして、スプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル３０３にスプールされたジョブがリスト表示される。
【００５２】
スプールファイルマネージャのウィンドウ画面上で、ある単体ジョブまたは結合ジョブのプレビュー指定がされた場合、外部メモリ１１に格納されているプレビューア３０６をＲＡＭ２にロードし、プレビューア３０６に対して、スプールファイル３０３に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【００５３】
（プレビューア）
プレビューア３０６はスプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工する。グラフィックエンジン２０２に対してＧＤＩ関数を出力する。グラフィックエンジン２０２が自身の確保するクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
【００５４】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５同様に、スプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を利用して出力する方法で実現可能となる。このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルとしてスプールファイル３０３に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力する。
【００５５】
通常の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。これに対し本発明では上述の処理を行うことにより、実際の描画データがどのように印刷されるか、更には、Ｎｕｐ（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理）指定されている場合、両面印刷されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。
【００５６】
上記のようにプレビュー処理を行うことにより、スプールファイル３０３に含まれる印刷の加工設定の大プレビューがプレビューア３０６によって画面上に表示される。図５はプレビューア３０６が表示するプレビュー画面の一例である。その後、ユーザの非表示指示によって、プレビューア３０６がクローズされ、制御が図６に示すようなスプールファイルマネージャのウィンドウ画面に移行する。そして、ユーザがプレビューア３０６によって表示された内容に従って印刷を行うとき、スプールファイルマネージャ３０４上で、「印刷」または「セーブして印刷」を指示することにより印刷要求を発行する。この印刷要求により、前述したようにデスプーラ３０５がジョブ設定ファイルに基づいてページ描画ファイルを加工してＧＤＩ関数を生成し、グラフィックエンジン２０２に伝える。グラフィックエンジン２０２からディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００５７】
（設定変更エディタ）
次に、設定変更エディタ３０７を用いた設定変更について説明する。その実現方法としては、プレビュー同様、図４に示す「ストア」指定されたジョブに関して設定変更が可能である。プレビューと同様の手順によりスプールファイルマネージャ３０４のウィンドウがポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウィンドウ画面上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし、設定変更エディタ３０７に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そしてジョブ設定画面が表示される。
【００５８】
設定変更エディタ３０７は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルをスプールファイル３０３から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいてジョブ設定画面のデフォルト値を変更する。この設定変更エディタ３０７でもスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を用いてメモリに出力することによって、画面上の小プレビュー出力が可能となる。
【００５９】
また、ここで、スプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、設定変更エディタ３０７上のユーザインタフェースがプリンタドライバ２０３の設定可能な項目を持つこととしてもよく、あるいはプリンタドライバ２０３自身のユーザインタフェースを呼び出しても構わない。ここでは、部数、印刷方法（片面、両面、製本印刷）、ステープル（サドルフィニッシャー等）、ページレイアウト、配置順等の指定ができ、また「詳細設定」を押下することにより、プリンタドライバで指定できる項目の大半を設定し直すことが可能となる。ただし、地紋印字は所定範囲の印刷品位により実現されるので、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【００６０】
ここで変更された変更項目は設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は、図１１以降を参照して後述する。
【００６１】
そして、ユーザがプレビューア３０６での確認後、設定変更内容に従って印刷を行うならば、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられる。グラフィックエンジン２０２からディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００６２】
また、スプールファイルマネージャのウィンドウ画面では、複数の印刷ジョブを結合し、一つの印刷ジョブとして印刷するように指定することが可能である。これも、プレビュー、設定変更同様、図４に示すプリンタドライバのプロパティにおいて出力先を「ストア」指定されたジョブが前提となる。また、出力データを一旦保存した上で、本体側の操作で出力できる機能（メールボックス）やセキュアプリントなどの機能もプルダウンメニュー９０１より選択可能である。
【００６３】
ユーザが印刷ジョブの結合を行う場合、まず、アプリケーション２０１からプリンタドライバ２０３を呼び出し、図４に示すようなユーザインタフェースから「ストア」を選択する。上記と同様、この選択により中間コードデータがスプールファイル３０３にストアされ、スプールファイルマネージャのウィンドウ画面がポップアップされる。スプールされたジョブはスプールファイルマネージャのウィンドウ上にリスト表示される。アプリケーション２０１から同様の操作をすることにより、スプールファイルマネージャ３０４上に複数ジョブのリスト表示がなされる。
【００６４】
ここで、複数ジョブを選択し、「結合」が指定された場合、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし実行する。ユーザは、設定変更エディタ３０７に対して、リスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示する。そして結合設定画面が表示される。ここでは、設定変更エディタ３０７を結合設定画面として用いているが、別モジュールのものを用いても構わない。
【００６５】
この設定変更エディタ３０７は、スプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定情報に含まれる加工設定の内容に従って加工し、結合ジョブとして指定された全てのジョブに対して、グラフィックエンジン２０２を用いてメモリに出力することによって、画面上の出力を行う。その際、プレビュー領域に選択された全てのジョブの小プレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイルを拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものであり、１つのジョブに対して１つできるものであり、結合ジョブの場合もまた１つ生成される。
【００６６】
ここではそれぞれのジョブに対して、結合する前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更、修正して表示することも可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインタフェースで設定可能としてもよく、あるいはプリンタドライバ２０３自身のユーザインタフェースを呼び出しても構わない。
【００６７】
ここで結合されたジョブおよび変更された変更項目は、前述したように、設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。これらの操作により、先に選択された複数ジョブは、スプールファイルマネージャのウィンドウ上で１つの結合ジョブとして表示される。
【００６８】
そして、ユーザがプレビューア３０６での確認同様、設定変更内容に従って印刷を行うならば、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられる。グラフィックエンジン２０２からディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００６９】
＜印刷用中間データの保存処理＞
図７は、スプーラ３０２により実行される、スプールファイル３０３の生成におけるページ単位保存ステップの処理を示すフローチャートである。
【００７０】
同図において、まずステップＳ５０１では、スプーラ３０２は、アプリケーション２０１からグラフィックエンジン２０２を介して印刷要求を受け付ける。アプリケーションにおいては、図８に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ３０２に渡される。図８に示す設定入力ダイアログにおいては、リストボックス８０１のように１物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【００７１】
ステップＳ５０２では、受け付けた印刷要求がジョブ開始要求か判定し、ここで、ステップＳ５０２でジョブ開始要求であると判断した場合には、ステップＳ５０３に進み、中間データを一時的に保存するためのスプールファイル３０３を作成する。続いて、ステップＳ５０４では、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、続くステップＳ５０５でスプーラ３０２のページ数カウンタを１に初期化する。ここで、スプールファイルマネージャ３０４においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、記憶する。
【００７２】
一方、ステップＳ５０２において、ジョブ開始要求ではなかったと判断した場合には、ステップＳ５０６に進む。このステップＳ５０６では、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップＳ５０７に進み、改ページかどうかの判別を行う。もしもステップＳ５０７で改ページであると判断した場合には、ステップＳ５０８に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【００７３】
ステップＳ５０７において、受け付けた印刷要求が改ページではないと判断した場合には、ステップＳ５０９に進み、ページ描画ファイルへの中間コードの書き出しの準備を行う。
【００７４】
次に、ステップＳ５１０では、印字要求をスプールファイル３０３へ格納するため、印字要求のＤＤＩ関数の中間コードへの変換処理を行う。ステップＳ５１１では、ステップＳ５１０において格納可能な形に変換された印刷要求（中間コード）をスプールファイル３０３のページ描画ファイルへ書き込む。その後、ステップＳ５０１に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップＳ５０１からステップＳ５１１までの処理を、アプリケーションよりジョブ終了要求（EndDoc）を受け取るまで続ける。また、スプーラ３０２は、上記処理中にプリンタドライバ２０３からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル３０３に格納する。一方、ステップＳ５０６にて、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップＳ５１２に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、処理を終える。
【００７５】
＜スプールファイルの生成＞
図９は、スプールファイルマネージャ３０４により実行される、スプールファイル３０３生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細を示すフローチャートである。
【００７６】
ステップＳ６０１では、スプールファイルマネージャ３０４は、スプーラ３０２あるいはデスプーラ３０５からの印刷処理の進捗通知を受け付ける。
【００７７】
ステップＳ６０２では、進捗通知が前述のステップＳ５０４において通知されるスプーラ３０２からの印刷開始通知であるかどうか判定し、もしそうであればステップＳ６０３へ進み、印刷の加工設定をスプールファイル３０３から読み込み、ジョブの管理を開始する。一方、ステップＳ６０２において、スプーラ３０２からの印刷開始通知でなければステップＳ６０４へ進み、進捗通知が前述のステップＳ５０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知であるか否かを判定する。ここで１論理ページの印刷終了通知であればステップＳ６０５へ進み、この論理ページに関する論理ページ情報を格納する。そして、続くステップＳ６０６では、この時点でスプールが終了したn論理ページに対して、１物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップＳ６０７へ進み、印刷する１物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
【００７８】
物理ページの計算については、例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは第４論理ページがスプールされた時点で印刷可能となり、第１物理ページとなる。続いて、第２物理ページは第８論理ページがスプールされた時点で印刷可能となる。
【００７９】
また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、ステップＳ５１２におけるスプール終了通知によって１物理ページに配置する論理ページが決定可能である。
【００８０】
そして、ステップＳ６０８では、図１１に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル（物理ページ情報を含むファイル）に保存され、物理ページ情報が１物理ページ分追加されたことがデスプーラ３０５に通知される。その後ステップＳ６０１に戻り、次の通知を待つ。本実施形態においては、印刷ジョブのスプールが全て終了していなくても、印刷データ１ページ、即ち１物理ページを構成する論理ページがスプールされた時点で印刷処理が可能である。
【００８１】
一方、ステップＳ６０４において、進捗通知がスプーラ３０２からの１論理ページの印刷終了通知でなかった場合ステップＳ６０９へ進み、前述のステップＳ５１２において通知されるスプーラ３０２からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップＳ６０６へ進む。一方、ジョブ終了通知でない場合、ステップＳ６１０へ進み、受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知であるかどうか判定する。ここで、１物理ページの印刷終了通知である場合はステップＳ６１１へ進み、印刷が全て終了したかを判定する。印刷終了した場合、ステップＳ６１２へ進み、デスプーラ３０５に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述のステップＳ６０６へ進む。本実施形態におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数を想定している。また、ステップＳ６０８では、１物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、１物理ページ単位で次々と上書きし、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合、ステップＳ６０８で１物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じた通知を行ってもよい。例えば、複数物理ページまたは全物理ページが印刷可能になったことを通知すれば、通知回数を節約することが可能である。
【００８２】
ステップＳ６１０において、通知がデスプーラ３０５からの１物理ページの印刷終了通知でないと判断された場合、ステップＳ６１３へ進み、スプールファイルマネージャ３０４は、デスプーラ３０５からの印刷終了通知かどうかを判定する。通知がデスプーラ３０５からの印刷終了通知と判定された場合、ステップＳ６１４へ進み、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイルの削除を行い、処理を終える。一方、デスプーラ３０５からの印刷終了通知でなかった場合はステップＳ６１５へ進みエラー処理を実行する。その後、図示しないその他の処理を実行し、次の通知を待つ。
【００８３】
＜スプールファイルの出力＞
図１０は、デスプーラ３０５により実行される、印刷データの生成プロセスの詳細を示すフローチャートである。
【００８４】
デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報（ページ描画ファイルおよびジョブ設定ファイル）を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図３を用いて前述した通りである。
【００８５】
印刷データの生成では、まず、ステップＳ７０１において、前述のスプールファイルマネージャ３０４からの通知を入力する。続くステップＳ７０２では、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップＳ７０３へ進み、終了フラグを立て、ステップＳ７０５へ進む。一方、ステップＳ７０２においてジョブ終了通知でない場合は、ステップＳ７０４に進み、前述のステップＳ６０８における１物理ページの印刷開始要求が通知されたかどうか判定する。ステップＳ７０４において開始要求と判定されなかった場合は、ステップＳ７１０へ進み、その他エラー処理を行い、ステップＳ７０１へ戻り次の通知を待つ。一方、ステップＳ７０４において１物理ページの印刷開始要求と判定された場合は、ステップＳ７０５へ進み、ステップＳ７０４で通知を受けた印刷処理可能な物理ページのIDを保存する。続くステップＳ７０６では、ステップＳ７０５で保存した物理ページIDの全てのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップＳ７０７へ進み、前述のステップＳ７０３で終了フラグが立てられているのか判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ３０５の処理終了の通知をスプールファイルマネージャ３０４に通知し、処理を終える。ステップＳ７０７で、終了フラグが立っていないと判定された場合は、ステップＳ７０１へ戻り次の通知を待つ。一方、ステップＳ７０６で、印刷可能な物理ページが残っていると判定された場合には、ステップＳ７０８へ進み、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル３０３に格納された印刷要求命令をデスプーラ３０５においてグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、転送する。本実施形態のような、複数論理ページを１物理ページにレイアウトするような加工設定（以下Nページ印刷）については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理を終えたならば、続くステップＳ７０９において１物理ページの印刷データ生成終了の通知をスプールファイルマネージャ３０４に対して行う。そして再びステップＳ７０６へ戻り、ステップＳ７０５で保存しておいた印刷可能な物理ページID全てについて印刷処理を行うまで繰り返す。
【００８６】
以上が、ディスパッチャ３０１、スプーラ３０２、スプールファイルマネージャ３０４、デスプーラ３０５を用いた印刷処理の流れである。上記のように処理することにより、スプーラ３０２が中間コードを生成してスプールファイル３０３に格納するタイミングでアプリケーション２０１が印刷処理から開放されるので、プリンタドライバ２０３に直接出力するよりも短時間で済む。また、スプールファイル３０３にプリンタドライバの印刷設定を踏まえた中間ファイル（ページ描画ファイル、ジョブ設定ファイル）として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並べ替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることが可能となる。
【００８７】
ここで、スプーラ３０２を用いた印刷処理において、デスプーラ３０５からグラフィックエンジン２０２への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【００８８】
＜ジョブ出力用設定ファイルの構成＞
図１１は、ステップＳ６０８において、スプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド１００１は、ジョブを識別するためのIDで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド１００２はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン２０２に対してジョブの印刷を開始するために必要な構造体、Ｎページ印刷の指定、ページ枠などの追加描画の指定、部数、ステープルなどのフィニッシング指定など、１つのジョブに対して１つしか設定できない情報が含まれている。ジョブ設定情報１００２には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド１００３はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド１００４から最後までフィールド１００３の数だけ物理ページ情報が格納される。物理ページ情報については図１３を参照して後述する。
【００８９】
図１２は、図１１のフィールド１００２に図示されたジョブ設定情報の一例である。フィールド１１０１は全物理ページ数である。フィールド１１０２は、全論理ページ数である。フィールド１１０１および１１０２は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ３０４は印刷可能な物理ページの情報の作成を延期する。フィールド１１０３は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド１１０４は、フィールド１１０３で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド１１０４はステープル、パンチ、Ｚ折などのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャーがある場合に指定される。フィールド１１０６は付加印刷情報で、本発明の地紋プリントを始め、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
【００９０】
図１３は、図１１のフィールド１００４に図示された物理ページ情報の一例を示す。最初のフィールド１２０１は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド１２０２は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド１２０３は本物理ページに割り付けられる論理ページ数で、１物理ページに４ページを割り付ける場合には４もしくは４ページ印刷を示すIDが保存される。フィールド１２０４以降はフィールド１２０３で指定された数だけ論理ページの情報が保存される。アプリケーション２０１から印刷されたページ数によっては、フィールド１２０３で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
【００９１】
図１４は、フィールド１２０２の物理ページ設定情報の例である。フィールド１３０１は物理ページ上への論理ページの配置順で、Ｎページ印刷で、物理ページ上に論理ページを配置する順番（左上から横へ、左上から下へ等）の指定が保存されている。システムによっては、配置順ではなく、フィールド１２０４以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することでフィールド１３０１の設定を代用する場合もある。フィールド１３０２は両面印刷の表・裏の情報で、例えば綴じ代を表裏でそろえる際に使用される。フィールド１３０３はカラーページかモノクロページかの指定を示し、このフィールドを使用して物理ページ単位にカラー／モノクロのモード指定が可能である。フィールド１３０４は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
【００９２】
本実施形態の場合、図１８以降を参照して後述する地紋画像印刷に関する情報は物理ページに対して付加される情報なので、フィールド１１０６に保持された地紋プリントに関する情報に基づき、各物理ページに対する設定情報として、フィールド１３０４内にも格納される。ジョブに対する付加印刷情報１１０６および付加印刷情報１３０４内における、地紋プリントに関する設定情報を格納するデータ形式の一例については、図２１を参照して後述する。
【００９３】
図１５は、フィールド１２０４で示された論理ページ情報の一例を示す。フィールド１４０１は論理ページのIDで、このIDを利用して、スプールファイル３０３から論理ページに対応するページ描画ファイルの中間コードを参照する。このIDを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド１４０２は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページIDの補助情報に使用される。フィールド１４０３のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存することも可能である。逆に、論理ページ単位で設定を切りかえることや論理ページ単位での属性情報が不要であるようなシステムでは、フィールド１４０３は不要である。
【００９４】
本実施形態の場合、図１８から２０を参照して後述する地紋プリントに関する機能設定情報はフィールド１４０３内には保持されない。これは、N-Upなどによる論理ページの拡大縮小に対して地紋プリントで使用されるパターンが影響を受けないようにするためである。
【００９５】
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁（片面、両面、製本印刷）、印刷レイアウト（Ｎｕｐ、ポスター印刷）、付加情報（地紋プリント情報、ウォーターマーク、日付、ユーザ名など）、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
【００９６】
図３はこれまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ３０７を配した例を示している。本実施形態ではジョブの設定内容は、単体ジョブは、ジョブ設定ファイルに、また結合ジョブは、図１１に示すジョブ出力用設定ファイル中に含まれており、中間コードを保存しているページ描画ファイル（スプールファイル）３０３とは独立している。このため、ジョブ出力用設定ファイルを作り変えることでジョブの設定変更が可能である。設定変更エディタ３０７は単独で、あるいはスプールファイルマネージャ３０４と連携して、ジョブ出力用設定ファイルを作り変え、あるいは、一部を書き換えることでジョブの設定変更機能を実現している。
【００９７】
図１６は、設定変更エディタ３０７におけるジョブ設定変更処理プロセスの詳細を示すフローチャートである。
【００９８】
まずステップＳ1501では，設定変更エディタは、ジョブ設定ファイルもしくはジョブ出力用設定ファイルを読み込む。ジョブ出力用設定ファイルはプレビューア３０６，デスプーラ３０５が読み込むものと同じファイルである。次に，ステップＳ1502へ進み，読み込んだ結果を，ユーザに表示する。ステップＳ1503で，図１７に示すようなユーザインタフェースを使用して，ユーザとの対話を行い，前述したメニューの指定等により設定内容を変更する。このステップは，対話形式でなく，ファイルなどに書きこまれた設定変更の内容に応じて変更するバッチ形式でもよい。次にステップＳ1504へ進み，ステップＳ1501で設定変更エディタは、最初に読み込んだ内容と，現在指定されている設定内容に変更があったかどうかの判定を行う。設定内容に変更が合った場合は，ステップＳ1505へ進み，新規のジョブ出力用設定ファイルを生成し，変更があったことをスプールファイルマネージャに通知して終了する。ステップＳ1505で，変更がないと判定された場合は，変更がなかったことをスプールファイルマネージャに通知して終了する。このように新規のジョブ出力用設定ファイルを生成するが、図１７のユーザインタフェース画面において、「ＯＫ」ボタンが選択されることにより、新規のジョブ出力用設定ファイルが有効となり、古いジョブ出力用設定ファイルは削除される。また、ジョブ出力用設定ファイルからの変更ではなく、単体ジョブのジョブ設定ファイルの場合は削除せずに保存しておく。また、図１７の画面で「初期状態へ戻す」ボタンが選択された場合は、新規のジョブ出力用設定ファイルを削除し、古いジョブ出力用設定ファイルが有効となり、表示に反映させる。
【００９９】
なお、本実施形態では，設定変更エディタ３０７を別モジュールとして説明しているが，単にスプールファイルマネージャ３０４のユーザインタフェースの一部であってもよい。また、設定変更エディタ３０７で実際に変更内容をジョブ出力用設定ファイルに書きこまずに，設定変更の内容のみをスプールファイルマネージャ３０４へ通知し、実際のジョブ出力用設定ファイルの変更はスプールファイルマネージャ３０４側で行う実装形式でもよい。
【０１００】
＜地紋プリント処理の説明＞
以下、地紋プリントに関する設定をおこなうユーザインタフェースの一例について、図１８、図１９、図２０を用いて行う。
【０１０１】
図１８はプリンタドライバ２０３内に配された、地紋プリントに関するユーザインタフェースの初期画面の一例である。この例では、ダイアログ内のプロパティシート５２０１において地紋プリントに関する設定が行えるようになっている。
【０１０２】
チェックボックス５２０２は、印刷ジョブに対して地紋プリントを行うかどうかを指定するものであり、図１２における付加印刷情報１１０６内で地紋プリントを行うかどうかの設定が格納される。
【０１０３】
リストボックス５２０３は、地紋プリントの複数の設定情報から１つを識別子（スタイル）で指定可能にするための領域である。プリンタドライバ２０３は複数のスタイルを選択可能となっており、各スタイルと図２１に示す地紋プリント情報との関係がレジストリに登録される。また、新規追加ボタン５２０４を押下することで図１９に示すダイアログ５３０１とほぼ相当のダイアログが表示され、スタイル登録を行うことが可能となる。さらに、編集ボタン５２０５を押下することにより、図１９で表示されるダイアログ５３０１が表示され、既に登録されたすタイルの登録情報を変更することが可能である。削除ボタン５２０６を押下することで、選択状態にあるスタイル情報の登録を削除することが可能となる。
【０１０４】
キャリブレーションボタン５２０７は地紋プリントにおける前景、背景のコントラストを調整する際に用いられ、このボタンを押下することで、図２０に示すダイアログ２３０１が表示される。
【０１０５】
図１９は地紋プリントの個々の詳細設定を編集するためのダイアログの一例である。この例では図１８の編集ボタン５２０５が押下された場合の状態を示す。
【０１０６】
ダイアログ５３０１は地紋プリント設定情報編集用に構成されており、同領域に後述する個々の地紋プリント設定情報によって生成される地紋パターンの結果の簡易プレビューが表示される形式となっている。図１８の新規追加ボタン５２０４が押下された場合には、このダイアログ５３０１内の領域に任意の文字を入力することでスタイル名称を設定することができる。
【０１０７】
入力エリア５３０３、５３０４、５３０５は潜像用オブジェクトとして文字列を入力または表示するテキスト領域であり、本実施形態では３行までの指定が可能である。リストボックス５３０６、５３０７、５３０８は各テキスト領域（５３０３、５３０４、５３０５）の属性を指定するためのものであり、「任意文字列」、「ユーザー名」、「日付と時刻」などの指定が行える。図１９ではリストボックス５３０６、５３０７、５３０８はすべて「任意文字列」が指定されており、対応する入力エリア５３０３、５３０４、５３０５の各領域に任意に文字列を入力することが可能である。また、「ユーザー名」、「日付と時刻」などが指定されている場合、入力エリア５３０３、５３０４、５３０５の各コントロールは入力不可の状態となり、指定された属性に相当する文字列表示する。
【０１０８】
リストボックス５３０９は文字列のフォント情報を選択するための領域である。本実施形態ではフォント名称のみの選択となっているが、書体の属性（ボールド、イタリックなど）や飾り文字（アンダーラインや打消し線など）が指定可能なように拡張してもよい。
【０１０９】
リストボックス５３１０は地紋パターンとして使用する文字列のフォントサイズを表示、設定する領域である。本実施形態では「大（１０８）」、「中（７２）」、「小（３６）」の３段階の指定を想定しているが、直接ポイントサイズを入力するなどの指定方法でもかまわない。なお、大、中、小各表示のカッコ内の数値はポイントサイズを示している。
【０１１０】
なお、図示しないが、潜像用オブジェクトとしてJPEG画像やGIF画像、ビットマップ画像などのイメージ画像を指定する入力エリアを設け、上述したテキストによる文字列の他に、イメージ画像を潜像用オブジェクトとすることも当然可能である。
【０１１１】
リストボックス５３１１は地紋パターンとして使用する文字列の角度を指定するコントロールであり、本実施形態では「右上がり」、「右下がり」、「横」、「縦」の４通りの選択を可能にしているが、任意角度を数値で入力して指定したり、スライダーバーを用いて指定するなどの構成を採用してもよい。  リストボックス５３１２は地紋パターンに埋め込んだ潜像文字列を認識しづらくするためのカモフラージュ画像を指定するエリアであり、複数のカモフラージュ画像から一つの画像を選択し設定する。同図に示す例では、カモフラージュ画像「なし」も指定可能となっている。
【０１１２】
リストボックス５３１３は地紋パターンに使用する色を指定するエリアである。本実施形態では印刷デバイスとしてカラーレーザービームプリンタを想定し、使用するトナー原色である「黒」、「シアン」、「マゼンタ」が指定可能になっている。もちろん、これらのトナー原色を混色させてピンクや緑などのように、指定可能な色数を増やしても構わない。また、ユーザに自由にR、G、Bの値を入力させるようなインタフェースとしてもかまわない。チェックボックス５３１４は前景パターンと背景パターンとを入れ替えるかどうかを指定するためのものである。このチェックボックスをユーザがチェックすると、複写後の潜像文字列は白抜き画像で印刷され、背景領域のドットが残るような地紋画像を生成することになる。説明の都合上、本実施形態では特に断りがない限り、このチェックボックスはOFFの状態、つまり複写物でトナーによって顕像化する画像は潜像文字列であるものとする。
【０１１３】
ラジオボタン５３１５は地紋パターン（地紋画像）と原稿データの印刷順序を設定するためのものである。ここでは、「透かし印刷」が指定された場合、図２２を参照して後述するように、地紋パターンの描画後、原稿データの描画を行う。また、「重ね印刷」が指定された場合、図２３にて後述するように、原稿データを描画後、地紋パターンの描画を行う。いわゆるレイヤーの重ね順序を指定することに相当するものである。
【０１１４】
図２０は、図１８におけるキャリブレーションボタン５２０７を押下した際に表示されるダイアログの一例である。
【０１１５】
地紋プリントでは、前景パターンと背景パターンの面積濃度をあわせることで前景画像を背景画像に溶け込ませて見え難くさせるため、図２０に例示するように、トラックバー２３０２および２３０３で前景パターン、背景パターンそれぞれに対する濃度調整を行うインタフェースを提供する。
【０１１６】
＜地紋プリント設定情報のデータ形式＞
次に、図１９を用いて説明した地紋プリント設定情報に関する付加情報１１０６および１３０４に格納されるデータ形式について図２１を用いて説明する。
【０１１７】
フィールド２００１には図１９の入力エリア５３０３〜５３０５、リストボックス５３０６〜５３０８で指定される、地紋プリントの潜像文字列およびその属性が格納される。
【０１１８】
フィールド２００２では図１９のリストボックス５３０９、５３１０で指定される、潜像文字列のフォント情報が格納される。
【０１１９】
フィールド２００３では図１９のリストボックス５３１１で指定される、潜像文字列の角度に関する情報が格納される。
【０１２０】
フィールド２００４では図１９のリストボックス５３１２で指定される、カモフラージュ画像情報が格納される。
【０１２１】
フィールド２００５では図１９のリストボックス５３１３で指定される、地紋パターンの色情報が格納される。
【０１２２】
フィールド２００６では図１９のチェックボックス５３１４で指定される、前景パターン、背景パターンの入れ替えを行うかどうかの情報が格納される。
【０１２３】
フィールド２００７では図１９のラジオボタン５３１５で指定される、原稿データに対して地紋パターンを先に描画するか、後から描画するか（印刷順序）を指定する情報が格納される。
【０１２４】
フィールド２００８では、図２０のトラックバー２３０２で指定される、前景パターンの濃度情報が格納される。
【０１２５】
フィールド２００９では、図２０のトラックバー２３０３で指定される、背景パターンの濃度情報が格納される。
【０１２６】
もちろん、地紋プリントにおける設定内容は上述したもののみに限定されるものではない。
【０１２７】
＜地紋パターンの追加描画処理＞
次に、地紋プリントにおける描画処理の流れについて、図２２および図２３を用いて説明する。なお、これらの処理は、それぞれ図１９を参照して説明した「透かし印刷」および「重ね印刷」に対応し、図１０のステップＳ７０８の印刷処理において行われる。
【０１２８】
まず、地紋パターン情報の追加描画処理について、図１９のラジオボタン５３１５において「透かし印刷」、すなわち、先に地紋パターンを描画するケースについて、図２２のフローチャートを用いて説明する。
【０１２９】
ステップＳ１９０１において、図２１に示す地紋パターン情報で示される地紋に関する情報に従い、描画を行う。その詳細な処理については、図２５を参照して後述する。続いて、以降原稿データに関する描画処理を行う。ステップＳ１９０２において、カウンタを初期化する。ステップＳ１９０３において、カウンタが予め設定されている１物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったらステップＳ１９０８へ進み、等しくなければステップＳ１９０４へ進む。ステップＳ１９０４において、カウンタを１増加させる。ステップＳ１９０５において、１ページあたりの論理ページ数およびカウンタをもとに、これから描画する論理ページに対する有効印字領域を計算する。ステップＳ１９０６において、図１１に示すような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小描画する。ただし、Ｎページ印刷が指定されていない場合にはもちろん縮小の必要はない。
【０１３０】
次に、図１９のラジオボタン５３１５において「重ね印刷」、すなわち、原稿データを描画した後から地紋パターンを描画するケースについて、図２３のフローチャートを用いて詳細に述べる。
【０１３１】
ステップＳ１９０２において、カウンタを初期化する。ステップＳ１９０３において、カウンタが、予め設定されている１物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったらステップＳ１９０８へ進み、等しくなければステップＳ１９０４へ進む。
【０１３２】
ステップＳ１９０４において、カウンタを１増加させる。ステップＳ１９０５において、１ページあたりの論理ページ数およびカウンタをもとに、これから描画する論理ページに対する有効印字領域を計算する。ステップＳ１９０６において、図１１のような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小描画する。ただし、Ｎページ印刷が指定されていない場合にはもちろん縮小の必要はない。１物理ページとして所定数の論理ページを展開し終えたなら、ステップＳ１９０８に進む。ステップＳ１９０８ではアプリケーションから取得している物理ページの有効印字領域に対して、図２１に示す地紋パターン情報で示される地紋に関する情報に従い、描画を行う。尚、描画処理の詳細については、図２５を用いて後述する。
【０１３３】
次に、地紋パターンの描画に用いられる前景背景領域指定画像の生成方法について述べる。前景背景領域指定画像とは背景領域と前景（潜像）領域を識別するための画像であり、たとえば背景領域を０、前景領域を１で表現する２値(1Bit/Pixel)の画像のことである。
【０１３４】
前景背景領域指定画像は前景背景領域指定画像を生成するにあたっての基本ブロックを出力用紙の有効印字領域に敷き詰めたものとなる。
【０１３５】
図２４の(ａ)に基本ブロックの一例を示す。この例は図１９のリストボックス５３０６に対して任意文字列、入力エリア５３０３に“VOID”の文字列が指定され、かつ図１９のリストボックス５３１１（角度）に対して「横」が指定された場合の前景背景領域指定画像の基本ブロックを示す。
【０１３６】
この基本ブロックを正方配置した場合の前景背景領域指定画像を図２４の（ｂ）に、一行毎にずらす交差配置を行った場合の前景背景領域指定画像を図２４の（ｃ）に示す。同様に、図２４の（ｄ）は図１９のリストボックス５３１１（角度）に対して「右上がり」を指定した場合の文字列“VOID”に対する基本ブロックを示し、図２４の（ｅ）はこれを正方配置した場合、図２４の（ｆ）はこれを交差配置した場合の前景背景領域指定画像を示す。このようにオブジェクトを斜めに配置した前景背景領域指定画像を用いることで、斜め方向の潜像文字列やイメージを含んだ地紋パターンの形成が可能となる。
【０１３７】
図２５は本実施の形態にかかる、図２２に示したステップＳ１９０１における地紋パターン描画および図２３に示したステップＳ１９０８における地紋パターン描画の内部処理手順を記したフローチャートである。以下、図２５を用いて、地紋パターン描画処理を説明する。
【０１３８】
初めにユーザインタフェース等を通じて、ステップＳ２７０１で地紋パターン描画処理が開始される。
【０１３９】
次にステップＳ２７０２で、入力背景画像、背景閾値パターン、前景閾値パターン、前景背景領域指定画像、カモフラージュ領域指定画像を読み込む。
【０１４０】
次にステップＳ２７０３で、地紋画像を生成する際の初期画素を決定する。例えば、入力画像全体に対して左上から右下までラスター走査順に画像処理を行い地紋画像に変更する場合、左上を初期位置とする。
【０１４１】
次にステップＳ２７０４では、背景閾値パターン、前景閾値パターン、前景背景領域指定画像、カモフラージュ画像は入力背景画像の左上からタイル上に配置するとし、処理対象となっている入力背景画像の画素に対して、以下の式（１）を計算し、ステップＳ２７０５で、印刷時のドットに対応する画素値を書き込むか否かを判定する。このとき画素値は入力された色情報に対応する。なお、ここで、背景閾値パターンおよび前景閾値パターンは、ドットの書き込み／非書き込みに対応する「１」と「０」からなるデータであり、これらのデータは前景（潜像）及び背景画像を作成するに適したそれぞれのディザマトリクスによって２値化されたデータである。
【０１４２】
【数１】
2005210538.tif 000003
【０１４３】
式の構成要素の定義を以下に示す。
【０１４４】
【数２】
2005210538.tif 000004
【０１４５】
なお、各処理対象画素で式（１）の全ての要素を用いて計算する必要は無い。不必要な計算を省くことで処理の高速化を図れる。
【０１４６】
【数３】
2005210538.tif 000005
【０１４７】
【数４】
2005210538.tif 000006
【０１４８】
の計算を省略すると良い。
【０１４９】
また、生成される地紋画像では、背景閾値パターン、前景閾値パターン、前景背景領域指定画像、カモフラージュ領域指定画像の縦横の長さの最小公倍数の大きさの画像が繰り返しの最小単位となる為、地紋パターン描画部では繰り返しの最小単位である地紋画像の一部分のみを生成し、その地紋画像の一部分を入力背景画像の大きさにタイル状に繰り返し並べると地紋画像生成にかかる処理時間を短縮できる。
【０１５０】
【数５】
2005210538.tif 000007
【０１５１】
ステップＳ２７０６では、印刷時のドットに対応する画素値を書き込む処理を行う。
画素値の値は、地紋画像の色により変えることができる。黒色の地紋を作成したい場合、入力背景画像の処理対象画素を黒に設定する。
【０１５２】
その他、プリンタのトナーまたはインクの色に合わせ、シアン、マゼンダ、イエローに設定すれば、カラーの地紋画像を作成することもできる。
【０１５３】
入力背景画像が１画素あたり１〜数ビットの画像データである場合には、インデックスカラーを用いて画素値を表現すればよい。インデックスカラーとは画像データの表現方法で、対象とするカラー画像で頻繁に出現する色情報を目次に設定し（例えばインデックス０は白、インデックス１はシアンなど）、各画素の値は色情報を記載した目次の番号で表現する（例えば、１番目の画素値はインデックス１の値、２番目の画素値はインデックス２の値、・・・と表現する。）
【０１５４】
ステップＳ２７０７では、入力背景画像の処理対象領域の全画素が処理されたかを判定する。入力背景画像の処理対象領域の全画素が処理されていない場合はステップＳ２７０８に進み、未処理の画素を選択し、再びステップＳ２７０４〜ステップＳ２７０６の処理を実行する。
【０１５５】
入力背景画像の処理対象領域の全画素に対する処理が完了していれば、ステップＳ２７０９に進む。
【０１５６】
以上の処理により、入力背景画像に対して画像処理を加えた地紋パターンが生成できる。ただし、これだけの処理では、前景背景領域指定画像の前景と背景の切り替わる部分（境界部分）にドットの固まりが生じ、前景の概形がエッジとして目立ってしまい、偽造防止地紋の効果が薄れるデメリットが生じる可能性がある。そこで、前景背景領域指定画像の前景と背景の境界部でドットの固まりが生じないようにするバウンダリ処理もあわせて施してもよい。図２６は、そのバウンダリ処理まで施した地紋パターン生成の例である。
【０１５７】
再び図２５を参照すると、ここまでの処理で地紋パターンが生成される。この処理は図２２のステップＳ１９０１と図２３のステップＳ１９０８とで共通であるが、以下のステップで説明される生成した地紋パターンの描画方法は各々異なる。
【０１５８】
図２２のステップＳ１９０１の処理では、地紋パターン自体が下地となるのでステップＳ２７１０の透かし描画処理が実行される。ステップＳ２７１０は、地紋パターンの描画の後にアプリケーションソフトで作成した文字などを透かして描画することを意味する。つまり、地紋パターンの描画については何ら特殊な処理は行われない。
【０１５９】
一方、図２３のステップＳ１９０８の処理では、地紋パターンは既に描画済みの下地に対し後から描画することになるので、ステップＳ２７１１の重ね描画処理が実行される。この場合は、アプリケーションソフトで作成した文字などの上に地紋パターンを重ねて描画することになるので、単純に地紋パターンを描画してしまうと下地が上書きされて見えなくなってしまう。そこで、ANDやORといった論理描画を利用することで完全に上書きしてしまうことを避ける。例えば、下地の画素が白色（つまり画素値がゼロ）だったら、そのピクセルに対応する地紋パターンの画素を描画し、下地の画素の画素値がゼロ以外であれば地紋パターンの画素を描画しないといった処理を行う。
【０１６０】
そして、ステップＳ２７１２に進み、地紋パターン描画が終了する。  
以上、地紋パターン描画部の内部処理について述べた。
【０１６１】
図２７は、指定された複数の潜像用オブジェクトをまとめてブロック化し、このブロックを一つの潜像画像として扱って、地紋パターンを生成するための前景背景領域指定画像の作成手順を示すフローである。
【０１６２】
ステップＳ５４０１にて各オブジェクトサイズを計算する。このステップの詳細を図２８に示す。なお、以降の説明ではオブジェクトとして文字列を例に挙げて説明する。
【０１６３】
先ず、図２８のステップＳ５５０１にてオブジェクト（文字列）カウンタ（Ｎ）の初期化を行う。ここではＮ＝１とする。次に、ステップＳ５５０２にて文字列Ｎに対する文字列の内容、フォント属性およびフォントサイズなどの、文字列Ｎに対する文字列及びフォント情報を取得する。先に図１９で提示したＵＩ例では文字列毎のフォント名称やフォントサイズの指定は行えないようになっているが、個々の文字列に対してこれらの情報が設定されるようになっていてもかまわない。
【０１６４】
次に、ステップＳ５５０３にて該当文字列Ｎの文字列サイズの計算を行う。固定ピッチ文字列の場合は、フォントサイズを加味した一般的なフォント情報から得られる平均文字幅と、文字列に含まれる文字数とを用いて容易に文字列の幅を求めることができる。また、文字列の高さについても一般的なフォント情報から取得することが可能である。可変ピッチフォントの場合、文字列の幅は文字列に含まれる各々の文字について文字の幅を取得し、合算することで求めることが可能である。また本システムが動作しているＯＳのグラフィックエンジンが提供する機能などを用いて文字列の幅・高さの値を求めるなどの手段をとっても良い。
【０１６５】
更に、文字列の可読性を向上するために、文字列の上下左右にそれぞれマージンを設け、このマージンの値も加味したサイズを文字列のサイズとして採用しても良い。
【０１６６】
このようにして求めた文字列Ｎに対する幅・高さの情報は、以降のステップで参照することを可能にするため、記憶領域に保存される。
【０１６７】
尚、ステップＳ５５０３にて文字列が存在しない場合、文字列のサイズは幅０、高さ０として扱うことにする。
【０１６８】
また、オブジェクトがイメージ画像の場合は、イメージ画像のサイズに基づいて、潜像となる画像部分の幅と高さを算出すればよい。
【０１６９】
次にステップＳ５５０４にて文字列カウンタが最大値を超えていないかどうかのチェックを行う。文字列カウンタの最大値とは図１９のＵＩ例だと文字列は３つまで指定可能であるため、文字列カウンタの最大値は３となる。
【０１７０】
文字列カウンタが最大値未満であれば文字列カウンタの値をインクリメントし（ステップＳ５５０３）、ステップＳ５５０２から次の文字列に対する処理を繰り返す。  
文字列カウンタが最大値に達したのであれば、図２７のステップＳ５４０２に進む。
【０１７１】
図２７のステップＳ５４０２では、ステップＳ５４０１で求めた各々の文字列サイズの情報からブロックサイズを算出する。ブロックサイズの幅は各文字列サイズ幅の中で最大のものを採用し、ブロックサイズの高さは各々の文字列サイズの高さを合算した値を採用すればよい。更に、複数の潜像文字列をまとめたブロックの認識性を向上させるため、上記のようにして求めたブロックの幅・高さの値に上下左右のブロックマージンを加味した値をブロックサイズとして採用しても良い。
【０１７２】
図２９（ａ）にブロックサイズを計算する場合の一例を示す。この例では３つの文字列のそれぞれのサイズをsSize1=(s1w,s1h), sSize2=(s2w,s2h), sSize3=(s3w,s3h)とし、求めるべきブロックサイズをbSize=(bw,bh)とすれば、bw=Max(s1w,s2w,s3w)であり、bh=ΣsNh (N=1,2,3)となる。尚、この例にはブロックマージンを含んでいないが、ブロックマージンを含む場合にはブロックの幅にはブロックの左右マージンを、ブロックの高さにはブロックの上下マージンを加えれば良い。
【０１７３】
図２７に戻り、次にステップＳ５４０３にてブロック内における各文字列の位置を割り出す。各文字列の幅sNwは左文字列マージン＋文字列長＋右文字列マージンで構成され、各文字列の高さは上文字列マージン＋文字列の高さ＋下文字列マージンで構成される。
【０１７４】
ブロックサイズが決定されたのであれば、ステップＳ５４０３で各文字列の開始位置を計算する。図２９（ａ）の例では、それぞれの文字列開始位置を●で示してある。ブロック内に含まれる文字の開始位置は、文字列の大きさ、文字列に対する上下左右のマージン、文字のアセント、ディセントなどの情報から決定することが可能である。なお、アセントとはベースラインから文字の上端までの量、ディセントとはベースラインから文字の下端までの量のことである。
【０１７５】
文字列の開始位置をブロックの左上を原点とし、左方向にＸ座標、下方向にＹ座標をとるブロック座標系を用い、文字列１の開始点をs1s=(s1sx,s1sy)、文字列２の開始点をs2s=(s2sx,s2sy)、文字列Ｎの開始点をsNs=(sNsx,sNsy)と表記すると、任意の文字列Nの開始点のX座標は左マージン値と等しく、任意の文字列Nの開始点のY座標はΣsNsy(N=1,2,…N-1) + （上文字列マージン） ＋ （アセント）  または  ΣsNsy(N=1,2,…N) − （下文字列マージン） − （ディセント）で表現される。
【０１７６】
これらの位置関係を図２９（ｂ）に示す。  
これらの計算をブロック内に含まれる各文字列について実施し、ステップＳ５４０２ではブロックに対する各文字列の相対開始位置を算出して、これを記憶しておく。
【０１７７】
なお、以上の説明では、複数の潜像オブジェクトの左端（図２９（ａ）の各文字列の開始位置●）を揃えるようにした構成を説明したが、本発明はこれに限るものではない。たとえば、可読性を損なわない程度に、各文字列の開始位置をずらすように階段状に配置してもよく、また、開始位置をユーザが任意に設定可能なユーザインタフェースを設けてもよい。
【０１７８】
図２７のステップＳ５４０４では印刷領域に対して指示された配置方法に従い前景背景領域指定画像の基本ブロックを配置する。そして、各ブロックの原点に、先にステップＳ５４０３で求めた各文字列の相対開始位置を加算することで、各々の文字列の物理的な配置位置を決定する。
【０１７９】
続いて、ブロックの配置方法について述べる。同じサイズの矩形ブロックを印刷領域に隙間なく配置する配置方法として、図３０（ａ）に示す正方配列と、図３０（ｂ）に示す交差配列の例を述べる。当然これ以外の配置方法も考えられるが、配置方法自体は本発明を限定するものではなく、どのような配置方法及び配置位置の算出方法であってもかまわない。
【０１８０】
尚、先に述べた図１９や図２１では配置方法については特に触れていないが、図２１で示すデータ構造に配置方法に関する設定が含まれているものとしても良い。また、図１９のＵＩ例では配置方法に関する設定事項は特に設けていないが、配置方法に関する設定を行うコントロール（選択）機能をＵＩとして設けるものであってもよい。
【０１８１】
まずは角度が横の場合について述べる。正方配列とは図３０（ａ）に示すようにブロックを横方向に左辺と右辺を揃えて並べ、縦方向についても上辺と下辺とを揃えて並べる方法を指す。この正方配列の場合、前景背景領域指定画像の基本ブロックサイズを幅bw,高さbhとすると、任意の位置(N行、M列目)に配置されるブロックの左上原点の座標は((M-1)*bw,(N-1)*bh)となる。この絶対ブロック原点座標に先にステップＳ５４０３で求めた各文字列の相対開始位置を加算することで、各々の文字列の絶対開始位置が決定される。この位置にそれぞれの文字列を指定された属性で描画することで、前景背景領域指定画像が生成される。この場合、絶対ブロック原点位置が有効印刷領域外となるブロックについては描画を行う必要はない。
【０１８２】
次に交差配列の場合について述べる。交差配列とは図３０（ｂ）に示すように、ブロックを横方向に左辺と右辺を揃えて並べることは正方配列と同じであるが、縦方向にブロックを配置する場合、一行毎に上辺と下辺とが直ぐ上のブロックと半分ずつ横方向にずれた状態となるように配置する方法を指す。この場合、ブロックサイズを幅bw,高さbhとすると、任意の位置(N行、M列目)に配置されるブロックの左上原点の座標は、Nが奇数であれば((M-1)*bw,(N-1)*bh)、Nが偶数であれば(((M-1)-1/2)*bw ,(N-1)*bh)となる。あとは先の正方配列の場合と同様に、各々の絶対ブロック座標に各々の文字列の相対開始位置を加算することで、全ての文字列の開始位置が求まり、この位置から該当する文字列の描画を行えば良い。また各ブロックの開始位置が記録紙における有効印刷領域に入っていなくとも、該当ブロックの一部の領域が印刷領域に含まれる場合、その領域に文字列の一部を描画する必要がある可能性があるため、領域外からの文字列描画を行う必要がある。
【０１８３】
尚、これらの例では１行１列目に配置するブロックの原点と前景背景領域指定画像の原点とを一致させるケースについて述べたが、ｘ方向およびｙ方向に任意の量だけずらして各文字列の絶対座標を求めてもかまわない。
【０１８４】
次にブロックの配置に角度をつけたケースについて述べる。図３１はx’,y’で表される直交座標系の原点を中心として時計回りに任意角θだけ回転させた新たなx,yの座標系を示している。x’,y’を上述した、ブロックを水平方向に配置した場合の座標系とすると、ブロックの開始位置の算出はこのx’,y’座標系における各々のブロックの原点位置を求め、これに各々の文字列の相対開始位置を加えることで、x’,y’座標系での全ての文字列の開始位置を算出することが可能である。このようにして求められたx’,y’座標系での各ブロックの開始位置を任意の角度θだけ回転させることで、x,y座標系での各々のブロックについての文字列開始位置が計算される。図示しないが、交差配列の場合であっても、異なるのはx’,y’座標系での各々のブロックの開始位置だけであり、正方配列の場合と同様にx’,y’座標系での各々の文字列の絶対開始座標を求め、これを回転変換すればx,y座標系での各々のブロックの開始位置が求まる。また、図３１の例ではともにx’,y’座標系の原点を中心として回転することを示したが、任意の位置を中心に回転してもかまわない。尚、文字列の描画に際しては文字列方向に回転角を指定して描画を行う必要がある。
【０１８５】
このようにして作成した前景背景領域指定画像を用いて地紋画像を作成した一例を図３２に示す。図３６に示した各々の潜像文字列を文字列単位で繰り返した場合の例と比較すると、可読性が向上しているのが容易に理解されよう。
【０１８６】
なお、本実施形態では、地紋画像が付与された印刷出力物を複写した際に得られる複写物において、文字列が顕像化する構成を例示して説明したが、複写物において文字列が白抜きとして表示される場合においても、上述した構成を用いれば本発明の課題を解決することが可能である。
【０１８７】
以上のようにして作成した前景背景領域指定画像を用いて地紋画像を作成することで、本発明の目的とする顕像後の各潜像オブジェクトの可読性を向上させるように、複数の潜像用オブジェクトを地紋画像に埋め込むことが可能となる。
【０１８８】
（他の実施形態）
尚、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０１８９】
また、本発明の目的は、前述した実施形態の機能を実現する、各図のフローチャートの手順を実現するプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【０１９０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１９１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１９２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１９３】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１９４】
【図１】本発明の一実施形態にかかる印刷制御システムの構成を示すブロック図である。
【図２】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成例を示すブロック図である。
【図３】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦スプールファイルにスプールするプリントシステムの構成例を示すブロック図である。
【図４】印刷ジョブの出力先についての設定画面の一例を示す図である。
【図５】プレビューアが表示するプレビュー画面の一例を示す図である。
【図６】スプールファイルマネージャのユーザインタフェースの一例を示す図である。
【図７】スプーラにおける印刷データのスプールを示すフローチャートである。
【図８】印刷設定入力ダイアログの一例を示す図である。
【図９】スプールファイルマネージャによる印刷制御および物理ページ番号の決定処理の一例を示すフローチャートである。
【図１０】デスプーラにおける処理の一例を示すフローチャートである。
【図１１】スプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１２】図１１に図示されたジョブ設定情報の一例を示す図である。
【図１３】スプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１４】図１３における物理ページ設定情報の一例を示す図である。
【図１５】スプールファイルマネージャからデスプーラに対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示す図である。
【図１６】設定変更エディタにおける設定変更処理の一例を示すフローチャートである。
【図１７】設定変更エディタの画面の一例を示す図である。
【図１８】地紋プリントに関するユーザインタフェースの初期画面の一例を示す図である。
【図１９】地紋プリントの個々の詳細設定を編集するためのダイアログの一例を示す図である。
【図２０】図１８のキャリブレーションボタンを押下した際に表示されるダイアログの一例を示す図である。
【図２１】図１４の付加印刷情報のデータ形式の一例を示す図である。
【図２２】地紋パターンの描画処理の一例を示すフローチャートである。
【図２３】地紋パターンの描画処理の一例を示すフローチャートである。
【図２４】基本ブロックの例および前景背景領域指定画像を示す図である。
【図２５】地紋パターンの描画処理の一例を示すフローチャートである。
【図２６】地紋パターン生成例を示す図である。
【図２７】地紋パターンを生成するための前景背景領域指定画像の作成手順を示すフローチャートである。
【図２８】各文字列サイズを計算ステップの詳細な手順を示すフローチャートである。
【図２９】（ａ）および（ｂ）は、ブロックサイズの計算方法の例を示すフローチャートである。
【図３０】（ａ）は基本ブロックの正方配列の例、（ｂ）は交差配列の例を示す図である。
【図３１】回転時の基本ブロックの配置方法を示す図である。
【図３２】本発明を用いて作成した前景背景領域指定画像での地紋画像作成例を示す図である。
【図３３】偽造牽制地紋の画像の２つの領域を示す図である。
【図３４】（ａ）および（ｂ）は、偽造牽制地紋の顕像を示す図である。
【図３５】（ａ）および（ｂ）は、偽造牽制地紋におけるカモフラージュを示す図である。
【図３６】各々の潜像文字列を文字列単位で繰り返した場合の例を示す図である。
【符号の説明】
【０１９５】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  キーボードコントローラ（ＫＢＣ）
６  ＣＲＴコントローラ（ＣＲＴＣ）
７  ディスクコントローラ（ＤＫＣ）
８  プリンタコントローラ（ＰＲＴＣ）
９  キーボード（ＫＢ）
１０  ＣＲＴ
１１  外部メモリ
１２  ＣＰＵ
１３  ＲＯＭ
１４  外部メモリ
１５  システムバス
１６  印刷部Ｉ／Ｆ
１７  印刷部
１８  入力部
１９  ＲＡＭ
２０  メモリコントローラ（ＭＣ）
１５００  プリンタ
１５０１  操作部
３０００  ホストコンピュータ
【図１】
2005210538.tif 000008
【図２】
2005210538.tif 000009
【図３】
2005210538.tif 000010
【図４】
2005210538.tif 000011
【図５】
2005210538.tif 000012
【図６】
2005210538.tif 000013
【図７】
2005210538.tif 000014
【図８】
2005210538.tif 000015
【図９】
2005210538.tif 000016
【図１０】
2005210538.tif 000017
【図１１】
2005210538.tif 000018
【図１２】
2005210538.tif 000019
【図１３】
2005210538.tif 000020
【図１４】
2005210538.tif 000021
【図１５】
2005210538.tif 000022
【図１６】
2005210538.tif 000023
【図１７】
2005210538.tif 000024
【図１８】
2005210538.tif 000025
【図１９】
2005210538.tif 000026
【図２０】
2005210538.tif 000027
【図２１】
2005210538.tif 000028
【図２２】
2005210538.tif 000029
【図２３】
2005210538.tif 000030
【図２４】
2005210538.tif 000031
【図２５】
2005210538.tif 000032
【図２６】
2005210538.tif 000033
【図２７】
2005210538.tif 000034
【図２８】
2005210538.tif 000035
【図２９】
2005210538.tif 000036
【図３０】
2005210538.tif 000037
【図３１】
2005210538.tif 000038
【図３２】
2005210538.tif 000039
【図３３】
2005210538.tif 000040
【図３４】
2005210538.tif 000041
【図３５】
2005210538.tif 000042
【図３６】
2005210538.tif 000043