本発明は、本発明は、パターン生成の仕組みに関する。例えば、不正な目的での複写を牽制する地紋画像の生成に適用できる。
従来、住民票や証券等の有価書類に対して、コピー抑制を目的とした偽造防止用紙と呼ばれる特殊な印刷を施した用紙が用いられていた。この偽造防止用紙は、原本においては人間にとって見えにくいが、複写機などを用いてこれを複写した場合には、複写されたシート上に「COPY」などの文字が浮かび上がるような用紙である。これにより、原本としてのプリントシートと、原本を複写した複写物とを視覚的に容易に認識できるようになる。この偽造防止用紙を利用することにより、複写する者はその複写物の使用を躊躇する。また、複写行為そのものを抑止するという心理的牽制効果を有するものである。
偽造防止用紙の原本において文字列が人間にとって見えにくくする必要があるのは、原本と複写物とを明確に区別可能とするためである。もし、原本において人間が明らかに識別できるように「COPY」などの文字列が見えてしまっていると、複写物として識別されてしまう可能性が生じ、偽造防止用紙としての意味をなさない。
しかし、このような偽造防止用紙は、特殊な印刷技術を駆使して作成されているため、通常の用紙と比較してコストが高いという問題がある。また、偽造防止用紙の製作時に設定した文字などしか浮び上がらせることができない。そのため、偽造防止用紙の用途や設定する文字列が制限されてしまう。つまり、従来の偽造防止用紙はその製作上の都合により、用途に関して柔軟性に欠ける部分がある。
こうした状況の中、近年のプリンタ性能の飛躍的な向上も起因して、従来の偽造防止用紙と同様の効果を有する用紙を、コンピュータとプリンタを用いてオンデマンドに印刷する技術が注目されている。特許文献1及び特許文献2には、コンピュータを用いて作られたコンテンツデータを、プリンタを用いて印刷出力する際に、コンテンツデータの背景に複写牽制地紋(以後、単に地紋と称する場合もある)と呼ばれる画像を重ねて出力する技術が開示されている。地紋画像は、原本(プリンタで出力した印刷物)においては人間の目に対して単なる模様や背景色などに見えるが、原本を複写すると複写物上に所定の文字などが浮び上がるようなものである。これにより、複写した者に偽造防止用紙と同様の牽制効果を与えることができる。
コンピュータを用いて作成した地紋画像を重ねて出力する場合、当然のことながら通常の印刷用の紙などを用いることができる。そのため、偽造防止用紙に比べてコストの面で利点がある。更に、コンテンツを印刷出力する際に地紋画像を生成することができる。これにより、複写の際に顕在化させる文字等を自由に設定することが可能となる。あるいは、印刷を実行したユーザ名や出力日時などの動的な情報を文字列として浮び上がらせることができるという利点もある。
地紋画像は、上述したように、複写をした場合、複写前には認識できなかった所定の文字などが複写物において顕在化し、その複写物を使用等することを抑止する。また複写物であること、換言すれば原本ではないことを視覚的に容易に識別可能とする効果を実現するものである。この効果を実現すべく、地紋画像は、基本的に、複写時、複写物において画像が残る(現れる)領域と、複写物において画像が消えるか、あるいは上記の残る領域に較べて薄くなって認識し難くなる領域の2つの領域から構成される。この2つの領域は印刷した状態ではほぼ同じ濃度であり、マクロ的には、一見すると「COPY」などの複写によって顕在化する文字などが隠れている(埋め込まれている)ことが分からない。
以後、複写によって現れる画像を「潜像」と呼び、複写によって消えるかあるいは薄くなる画像を「背景」と便宜的に呼ぶ。そして、地紋画像は、基本的にこの潜像画像と背景画像からなるものである。なお、ユーザインタフェース上の用語として潜像を前景と呼ぶ場合もある。
但し、地紋印刷は上記構成に限定されるものではなく、複写物において人間が認識可能に「COPY」などの文字列やロゴ、模様などが現れる(顕像化する)ように構成すればよい。つまり、複写物において「COPY」といった文字列が白抜き状態で示されても地紋印刷としてはその目的を達成することになる。この場合、「COPY」という文字列を背景画像として生成していることは言うまでもない。
上述した各特許文献にも開示されているように、一般的な複写牽制地紋を印刷することのできる印刷システムでは、複写牽制地紋に潜像として文字列を設定するものがある。文字列は、あらかじめ用意された選択肢から選んで設定される場合や、自由文字列をユーザが入力して設定される場合がある。また、印刷システムのIPアドレスやコンピュータ名などの識別情報を自動的に取得し文字列として設定するもの、印刷時間などの動的な情報を取得して文字列として設定するものなどが考えられる。また、これらの文字列を複数設定し、潜像とすることも可能である。
一般的な地紋印刷の場合、印刷される用紙全面に対して印刷されることが多い。また、ある特定の領域のみに対して印刷される場合もある。いずれにしても所定の領域相当の地紋画像を生成するわけである。この地紋画像の生成は、特許文献1の図17に示されているように、潜像文字列を含む領域を一つの単位とし、この領域を所定の領域相当の地紋画像となるように繰り返し配置する手法で生成されることが多い。
特開2001−197297号公報
特開2001−238075号公報
上述したが、複写牽制地紋のねらいとして、潜像文字列を配置することにより印刷物のコピー自体を抑制する、という効果がある。さらに、潜像文字列がコンテンツの内容と重なって印刷されることによって、コンテンツを改ざんすることが難しくなるという抑止効果もある。また、潜像文字列に固有情報または動的な情報を設定することにより、流出経路の特定などに利用できるという効果もある。
これらの効果を確実に得ることを考慮するならば、複写牽制地紋の潜像文字列はプリントされるシート上に無駄なスペースを作ることなく効率的に配置され敷き詰められることが望ましいといえる。これはオンデマンドに複写牽制地紋を生成する印刷システムであっても同様である。
ここで、上述したような、潜像となる文字列を自由に設定できる場合において、複数の文字列をひとつのグループとし、そのグループを地紋を設定する領域、例えば用紙サイズ相当の領域に繰り返し配置される状態を考える。
本明細書の図17には、「COPY」と「VOID」の2種類の文字列を1つのグループとして生成された地紋画像ブロック1701を用紙を想定した領域1702にタイル状に配列することで地紋画像を生成した例を示している。ここで、「COPY」と「VOID」という文字列は文字数及びフォントサイズが略同一であり、かつ文字列の配置角度は水平としてあるため、比較的隙間無く領域内に潜像文字列を配置することができている。このように、所定の領域にほぼ隙間無く地紋画像ブロックを配列することができれば、複写物における潜像文字列の視認性もより高まる。
しかしながら、オンデマンドな複写牽制地紋の印刷システムでは、文字列の長さ、フォントサイズ、角度をユーザが自由に設定できることがメリットの一つである。特に、潜像文字列に動的な情報を設定する場合、印刷データを生成してプリンタに送信する時点まで文字列の内容や文字数(長さ)が決定されない場合がある。
図18では、潜像文字列として「Warning:This paper is copied.」「IP Add」「UserLoginName」の3種類をユーザが指定して印刷した状態を示している。ここで、各文字列のフォントサイズは総て同じ値であり、配置角度を30度に設定した状態を示している。なお、「IP Add」には印刷を実行するコンピュータのIPアドレスが動的に設定されるものとする。また、「UserLoginName」には印刷を実行したユーザのログイン名を動的に設定するものとする。この場合、動的に設定される文字列の内容によってグループ1801のサイズは可変となる。従来の印刷システムにおいては、ユーザが指定した文字列と動的に取得した文字列にフォントサイズや配置角度を反映させたブロックサイズを定義し、このブロックサイズと地紋画像を配置する領域のサイズとから、ブロックの最適な配列を決定している。しかしながら、潜像文字列間の長さの違いや設定内容によって、ブロックを繰り返し配置する際に、潜像文字列の存在しない背景部(空白)が多く発生してしまう。この場合、ユーザは実際の出力物を複写機で複写してみなければ、どの程度空白があるのか認識できない。当然、空白を減らすように各種の設定を変更する場合にも同様のテスト出力を繰り返すことになり、非常に煩雑である。また、場合によっては本来所望していた文字列の選択を諦めざるを得ない。
本発明はこのような課題を解決するためになされたものであり、ユーザの手を煩わせることなく、文字列などのオブジェクトを効率的に配置できる仕組みの提供を目的とする。
上述した課題を解決するため、本発明では、該目的を達成するために、複数の文字列を含む地紋画像を生成するための情報処理装置は以下を有する、複数の文字列の指定を受け付ける受付手段、各文字列に対する描画属性の指定を受け付ける描画属性受付手段、前記受付手段及び前記描画属性受付手段で指定された情報とから、各文字列長を算出する算出手段、前記算出手段で算出された各文字列長に応じて、前記複数の文字列を組み合わせた文字列行を生成する生成手段。
或は、複数の文字列を含む地紋画像を生成するための地紋画像生成装置は以下を有する、各文字列の長さに応じて、各文字列を長い順から降順で並列に配置した第1の文字列群と、各文字列を短い順から降順で並列に配置した第2の文字列群とを所定の間隔を設けて組み合わせた第3の文字列群を生成する生成手段、前記生成手段で生成された第3の文字列群を所定の領域内にタイル状に配置することで地紋画像を生成する配置手段。
或は、複数の文字列を含むパターンを生成するための画像生成装置は以下を有する、複数通りの文字列の入力を受け付ける受付手段、各文字列の文字列長に従って、空白が少なくなるように複数通りの文字列からなる組合単位を決定する決定手段、前記決定手段により決定された組合単位を繰り返し配置して出力パターンを生成する生成手段。
或は、複数の文字列を含むパターンを生成するための画像生成装置は以下を有する、複数通りの文字列の入力を受け付ける受付手段、前記受付手段により受け付けた複数通りの文字列から、基準長に近くなるように、着目すべき単数又は複数の文字列を決定する決定手段、前記決定手段により決定された単数又は複数の文字列を配置する配置手段、前記配置手段は、前記決定された以外の文字列を前記基準長に近くなるように配置する。
或は、複数の文字列を含むパターンを生成するための画像生成装置は以下を有する、複数通りの文字列の入力を受け付ける受付手段、前記受付手段により受け付けた複数通りの文字列のうちの何れかの文字列を複数回用いる文字列に決定する決定手段、前記決定手段により決定され文字列を複数回用いて、複数の文字列を配置し文字列パターンを生成する生成手段。
本発明によれば、複数の文字列の組み合わせを潜像文字列とする地紋画像において、ユーザの手を煩わせることなく、文字列などのオブジェクトを効率的に配置できる。
以下、図面を参照して本発明を実施するための最良の形態を詳細に説明する。なお、以下の実施例においては、複写時に複写物において顕在化する画像を潜像部または前景部と称する。また、複写時に複写物において消失または潜像部に比して薄くなる画像を背景部と称している。そして、潜像部には「COPY」などのテキスト情報を設定するものとする。しかしながら、本発明における地紋画像はこれに限られるものではなく、複写物において、テキスト情報(潜像部)は周囲の画像(背景部)に対して白抜き文字のように表現される(顕在化する)形態であってもよい。
また、複写牽制地紋において、複写物が確実に複写物であることを識別可能とするものであれば、潜像部が顕在化し、背景部が消失または薄くなるという手法以外の手法を用いてもよい。例えば、複写物において、潜像部と背景部のモアレの出方の違いを考慮したドットパターンで複写牽制地紋を生成する手法などが考えられる。
以下、本発明の実施例における複写牽制地紋は、潜像部が複写機で読み取り可能なレベルのサイズに集中化したドットパターンで形成される。また、背景部が複写機で読み取り困難なレベルのサイズのドットを分散させたパターンで形成するものとする。そして、潜像部と背景部それぞれのドットパターンの面積階調が同一となるように画像を形成する。これにより、プリント出力した時点では潜像部と背景部の違いを認識困難とし、プリント出力物を複写機で読み取ることで得られた複写物においては、潜像部が明らかに複写されることで、複写物として認識可能とするものである。しかしながら、本発明自体は複写牽制地紋のドットパターンやその形成方法、画像処理方法に依存するものではない。そのため、画像をドットではなく万線を用いて形成するものなど、考慮される様々な手法を用いることが可能である。
続いて、実施例1を図面を参照して説明する。
図1は、本発明の実施形態に係る印刷システムの構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
同図において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、後述する本発明の特徴的な処理を実行するCPU1を備えている。また、CPU1は、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理およびそれに基づく印刷処理の実行を制御する。このCPU1がシステムバス4に接続される各デバイスの制御を総括する。また、ROM3のプログラム用ROMあるいは外部メモリ11は、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶している。ROM3のフォント用ROMあるいは外部メモリ11は、上記文書処理の際に使用するフォントデータ等を記憶している。ROM3のデータ用ROMあるいは外部メモリ11は上記文書処理等を行う際に使用する各種データを記憶している。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、地紋画像の表示を含む、CRTディスプレイ(CRT)10による表示を制御する。7はディスクコントローラ(DKC)を示し外部メモリ11とのアクセスを制御する。外部メモリ11には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等が記憶されている。また外部メモリ11としてはハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等が挙げられる。プリンタコントローラ(PRTC)8は、双方向性インターフェイス(インターフェイス)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行する。そして、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
プリンタ1500は、プリンタ1500に設けられたCPU12によって制御される。プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいて、システムバス15に接続される印刷部17に印刷出力情報としての画像信号を出力する。また、このROM13のプログラムROMは、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMは上記印刷出力情報を生成する際に使用するフォントデータ等が記憶されている。また、ROM13のデータ用ROMは、ハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
印刷部17は本実施形態では電子写真方式のエンジンを備えている。従って、画像の印刷およびそれに伴う地紋画像はそれらの印刷データに従って形成されるトナーのドットによって印刷が行われる。なお、本発明の適用上、印刷の方式はこのような電子写真方式に限られないことはもちろんであり、例えば、インクジェット方式や従来からのオフセット印刷技術など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
なお、本実施形態では、潜像部を含む地紋画像の生成をホストコンピュータで行い、生成した画像を印刷部17で印刷する構成を採用する。しかしながら、本発明は当該構成に限定されるものではなく、印刷装置内で地紋画像の生成を行うものであってもよい。また、ホストコンピュータと印刷装置とからなるシステムではなく、印刷装置単体で地紋画像の生成処理を実行可能な構成を採用してもよい。
図2は、図1に示したホストコンピュータ3000における印刷処理のための一構成を示す図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。そして、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部メモリ11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行される。このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
グラフィックエンジン202は、プリンタなどの印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。そして、アプリケーション201から受け取るGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインターフェイス21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
本実施形態の印刷システムは、プリンタドライバ203内に地紋処理部205を有する。地紋処理部205はプリンタドライバ203のビルドインモジュールであってもよいし、個別のインストーレーションによって追加されるライブラリモジュールの形式であっても構わない。また、プリンタドライバ203は、地紋画像の印刷に関し、その地紋処理部205の実行により、後述の地紋画像の生成などの処理を行う。
なお、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204の詳細及び印刷実行時の動作については、一般的に知られたものとほぼ同等であり、本発明の本質ではないため、説明を省略する。
続いて、地紋印刷のための設定処理について図3及び図4を用いて説明を行う。
図3及び図4は、地紋画像生成に関する設定をおこなうユーザインタフェイスの一例を示す図である。
図3はプリンタドライバ203内に配された、地紋印刷に関するユーザインタフェイスの初期画面の一例である。この例では、ダイアログ内のプロパティシート301において地紋印刷に関する設定が行えるようになっている。このプロパティシート301において、地紋画像のスタイルを選択することができる。また、スタイルを1つ選択した状態で編集ボタン302を押下することで、選択したスタイルの詳細な設定編集作業を行うことができる。
図4は、図3の編集ボタン302を押下することで表示される、地紋スタイルの編集画面の一例である。
図4において、地紋の潜像となるテキストは、3つのテキストを設定することができるように構成されている。また、テキストのドロップダウンリスト401を操作することにより、ホスト3000の名称、ホスト3000のユーザ名称、ホスト3000のIPアドレス情報、物理アドレス情報、印刷するジョブ名称、ジョブのID、日付・時刻情報などを選択できる。
テキストとして任意文字列を選択した場合は、ユーザが文字列入力欄402に所望の文字列を入力することができる。
また、テキストのスタイルとして、フォントが選択可能である。フォント選択ドロップダウンリスト403では、複数種類のフォントをユーザが選択することができる。
また、テキストのスタイルとして、フォントサイズが選択可能である。フォントサイズ選択ドロップダウンリスト404では、複数種類のサイズをユーザが選択することができる。もちろん、ユーザが任意のポイント数値を直接入力することも可能である。なお、フォントサイズは各テキスト単位で指定可能なものであってもよいし、各テキスト共通の設定としてもよい。
また、テキストのスタイルとして、配置角度が選択可能である。角度選択ドロップダウンリスト405では、複数種類の配置角度をユーザが選択することができる。もちろん、ユーザが任意の角度値を直接入力することも可能である。
その他、スタイル編集画面では、地紋画像の色情報や、地紋画像と重ね合わせる背景模様なども任意に指定可能となっている。
なお、各種スタイルの入力形式は図4に示した形式以外のインターフェイスを用いてもよい。
図4において、ユーザが地紋のスタイルを設定すると、不図示の地紋画像設定ファイルにこれらの情報が登録される。この地紋画像設定ファイルはROM3に格納されるものとする。
次に、上述した設定に基づく、地紋画像の生成処理の一部である、潜像文字列の配置制御について説明を行う。
まず、地紋画像として好適な潜像文字列の配列について述べる。
背景技術としても説明したように、一般的に、地紋画像の潜像文字列は、ひとつあるいは複数の文字列の組を、単純に並べて配置するものである。また、複数の文字列を潜像画像とする場合であっても、各文字列間はそれぞれ個別の情報であり、文字列の順序自体に強い意味は無い。例えば、図4のテキスト1、テキスト2、テキスト3にそれぞれ、「COPY」「ユーザ名」「日付」と指定すると、潜像文字列は上から順に「COPY」「ユーザ名」「日付」と並べられたブロックが生成される。しかし、この順で配列すること自体に特別な意味は無く、上から順に「ユーザ名」「日付」「COPY」と配列されても問題は生じない。即ち、特段の事情が無い限り、複数の潜像文字列の配列順序は変更しても地紋画像における影響は無いと考えることができる。
そこで、本発明では、潜像画像として指定された文字列の長さを算出し、必要に応じて配列順序を変更することで、配置効率の最も高い地紋画像を生成する。
まず、地紋処理部205は、図4の地紋スタイル編集画面で設定された地紋画像設定情報から、文字列の描画時の長さを、文字、設定されているフォント名やフォントサイズ設定などに基づいて計算する。設定内容によって各文字列の長さが判明すると、続いて、すべての文字列を長さ順に並べ替える。
以下、上記並び替えの処理を図を用いて説明する。図5(a)は、従来の配置処理を実行した場合の地紋画像ブロックである。図4に示した設定画面において、テキスト1では「任意文字列」が選択され、文字列として”VOID!!”が指定されたものとする。また、テキスト2では「コンピュータ名」が選択され、ホストコンピュータ3000の名称である”aaa”が設定されたものとする。さらに、テキスト3では「日付」が選択され、印刷実行時の日付である”yyyy/mm/dd”が設定されたものとする。この場合、文字列として最も長いのは”yyyy/mm/dd”であり、次に”VOID!!”、最も短いのが”aaa”となる。
この地紋画像ブロックを所定の領域に繰り返し配置することで、所定サイズの地紋画像が生成される。この状態を図5(b)として示す。
対して、本実施形態では、図5(a)の3種類のテキストを文字列の長さ順に並べ替えを行い、それを180度回転させた文字列と組み合わせる。これを図6(a)、図6(b)、図6(c)に示す。
図6(a)は文字列を並び替えた地紋画像ブロックである。また、図6(b)は図6(a)を180度回転させた文字列と組み合わせた地紋画像ブロックである。また、図6(c)は、図6(a)の文字列を文字列長が短い順に並べ替え、図6(a)の文字列と組み合わせた地紋画像ブロックである。そして、この図6(b)または図6(c)を一つのブロックと見なして繰り返し配置することで、潜像文字列の存在しない領域(無駄なスペース)の少ない地紋画像を生成することができる。この概略図を図7に示す。図7は図6(b)に示した地紋画像ブロックを繰り返し配置したものである。図7を従来の地紋画像における潜像文字列の配列を示した図5(b)と比較すると、本発明を実施した地紋画像の方が、より潜像文字列が存在しない領域が減少していることがわかる。
なお、地紋画像が形成された印刷物を複写することで得られる複写物においては、一方の方向から確実に認識可能に読めれば、図6(b)や図7のように潜像文字列の向きが反転していても大きな問題とはならない。
続いて、上述した潜像文字列の構成を有する地紋画像を生成するフローを図8を用いて説明する。以下の処理は、地紋処理部205において実行される制御プログラムをCPU1が実行することで動作するものである。
まず、地紋印刷処理が開始されると、図2に示した地紋処理部205が、不図示の地紋画像設定ファイルに登録された設定情報を取得する。なお、本実施形態においては、まず地紋画像ブロック(図5(a)や図6(b)など)を生成し、その生成した地紋画像ブロックを所定の印刷サイズにあわせて繰り返し配置することとしている。
ステップS801では、地紋画像設定ファイルに登録されたテキスト情報から、潜像文字列情報を取得する。この場合、スタイル編集画面(図4)で任意文字列を選択してユーザが所望する文字列を入力していた場合には、その文字列を取得する。また、コンピュータ名称や日付・時刻などを文字列として指定していた場合には、CPU1が指定された情報を取得する。
次に、ステップS802において、潜像文字列のフォント情報及びフォントサイズ情報を地紋画像設定ファイルから取得する。
そしてステップS803では、ステップS801で取得した文字列をステップS802で取得したフォント情報及びフォントサイズ情報に基づいて実際に描画した場合の文字列長をそれぞれのテキスト毎に求める。
次に、ステップS804では、ステップS803で求めた各テキストの文字列長に基づいて、文字列長の長い順または短い順に各テキストをソートし、図9に示したような管理テーブルを作成する。もちろん、ここでの処理において、管理テーブルの作成以外の構成を採用して各テキストの文字列長を管理することも可能である。
図9に示した管理テーブルでは、図4のスタイル編集画面に設けられた3つのテキスト選択ドロップダウンリストに対応するようにそれぞれテキストIDが設けられている。そして、そのテキストIDに対応するテキスト種別と、ステップS803で求めた文字列長とを対応付けて管理している。そして、この文字列長に応じて、文字列の長いテキストから順に順序が1から3まで自動的に設定される。もちろん、文字列の短いテキストから順に順序を1から3まで自動的に設定してもよい。また、文字列長が同一のテキストが複数存在する場合は、テキストID順に順序を付与することで対応することができる。
次に、ステップS805で、テキストの個数が1つまたは複数かを判定する。テキストの個数が1つの場合はステップS806に移行する。
テキストの個数が複数であると判定されると、ステップS807に進む。ステップS807では、複数のテキストのうち、文字列長の値が最も大きいテキストと、文字列長の値が最も小さいテキストとの差を算出し、所定の閾値と比較する。比較の結果、最大文字列長と最小文字列長との差が所定の閾値以下である場合には、ステップS806に移行する。最大文字列長と最小文字列長との差が所定の閾値より大きい場合には、ステップS808に移行する。
ステップS808では、後に詳細に説明する地紋画像ブロックの描画処理を実行し、ステップS809に進む。
ステップS809では、ステップS808で生成された地紋画像ブロックを地紋画像を所定の領域、例えば、用紙の印字可能領域全面に繰り返し配置する処理を実行する。以上の処理が終了することで、地紋画像の生成処理は終了する。
なお、ステップS806では、従来の地紋画像ブロック生成処理と同等の処理を行い、ステップS809に移行する。これは、潜像文字列としてのテキストが1つである場合、これらの潜像文字列を含む地紋画像ブロックを生成し、繰り返し配置したとしても、潜像文字列が存在しない領域が比較的発生しにくいためである。また、また、潜像文字列としてのテキストが複数であったとしても、それらの文字列長に大きな差が存在しない場合も同様のことがいえる。
上述した図17が、潜像文字列としてのテキストが複数であったとしても、それらの文字列長に大きな差が存在しないため、潜像文字列が存在しない領域が比較的発生しにくいケースに相当する。
このときの所定の閾値は、制御プログラムに予めイニシャル値として値を保持しておいても良いし、ユーザが任意に設定するものであってもよい。例えば、複数のテキストにおける最大文字列長と最小文字列長の差が無くても、文字列を反転した地紋画像ブロック(図6(b)に相当)又は順序を入れ替えた地紋画像ブロック(図6(c)に相当)を作成したいユーザであれば閾値にゼロを設定すればよい。
また、ステップS807の判断をスキップすることも可能である。この場合、図4のスタイル編集画面などに、「潜像文字列の自動配置を実行」するためのチェックボックスなどを設け、ユーザが任意に自動配置の実行の可否を選択可能にする構成を採用すればよい。もちろん、ステップS807の判断をスキップするために他の構成を採用するものであってもよい。
続いて、図8のフローのステップS808で説明した地紋画像ブロックの生成処理の詳細を説明する。
図10は、ステップS808の地紋画像ブロックの生成処理の詳細手順を示したフローチャートである。この処理も地紋画像処理部205が実行することになる。具体的には、生成処理のプログラムをCPU1が実行することで可能となる。
なお、後述する地紋画像ブロックの生成処理における地紋画像生成演算及び描画処理については、特願2003−324690号に詳細に記載されているため、ここでは当該特許出願に記載された演算及び描画処理を用いるものとする。もちろん、本発明を実施するにあたっては、当該特許出願に記載された処理以外の構成を採用することも可能である。
まず、ステップS1001では、ステップS803で算出された各テキストの文字列長を用いて、最長行の長さを算出する。ここで、最長行とは、昇順で配列した文字列に降順で配列した文字列を行方向に組み合わせた場合、組み合わせた文字列長からなる行の長さのうち、最大のものを言う。具体的に図を用いて説明する。
本実施例では、図6(b)または図6(c)で示したように、各テキストを文字列長が長い順に並べた第1の文字列群(図6(a)の状態)と、第1の文字列群の順序を反転させた第2の文字列群とを組み合わせることによって地紋画像ブロックを生成している。つまり、図6では、3つのテキストのうち、最大文字列長となるテキストID3(日付)と、最小文字列長となるテキストID2(コンピュータ名)とが1行となるように組み合わされている。
テキストが3種類の場合、それぞれの文字列長をL1、L2、L3(L1>L2>L3)とすると、組み合わされた場合の各行の長さは、L1+L3、L2+L2、L3+L1となる。このとき、L1+L3の長さと、L2+L2の長さとを比較し、長い方の組み合わせを最長行とする。
図9に示した例を用いると、L1=50mm(日付)、L2=30mm(任意文字列)、L3=15mm(コンピュータ名)となる。
L1+L3から構成される行の長さは65mmとなり、L2+L2から構成される行の長さは60mmとなる。つまり、このケースにおいては、L1+L3が最長行となる。
ここで、最長行の定義として注意すべきことは、最長文字列と最短文字列とを組み合わせた行の長さと、それ以外の文字列を組み合わせた行の長さの比較を行い、どちらかが最長行として定義される、ということである。つまり、L1とL2とからなる文字列長(80mm)の方がL1とL3とからなる文字列長(65mm)よりも長くなるが、L1+L2の組み合わせは最長文字列と最短文字列とを組み合わせた行ではないため、最長行とは見なさない、ということになる。
続いて、ステップS902では、最長行となったテキストの組み合わせにおけるテキスト間の余白距離を加算する。これは、テキスト間の距離を空けることで、各テキストが複写によって顕像した場合の視認性を高めることを目的としている。
距離の設定は、図12に示したような設定画面を用いてユーザがその都度、または予め設定してもよいし、制御プログラムが予め保持した値を適用してもよい。図12の場合は、20mmが設定されている。この場合、テキストID3(日付)とテキストID1(コンピュータ名)を組み合わせた長さである65mmにこの20mmを加算した85mmが地紋画像ブロックにおける行方向の長さとなる。
なお、好適にはテキストの組み合わせの前後や上下にマージン(余白)を設定するとよい。これは、テキスト間の距離を適度に空けることで視認性を高めたのと同様、隣接する地紋画像ブロックの文字列とが近接し過ぎないようにするためのものである。よって、地紋画像ブロックにおける行方向の長さは、上述した85mmに加えて、前後の余白分加算した値を採用してもよい。
次に、ステップS1003では、テキストの上下反転に関する設定情報を取得する。テキストの上下反転に関する設定とは、図6(b)で示した地紋画像とするか、図6(c)で示した地紋画像とするかの選択に相当する。この設定は、制御プログラムにおいて予め設定された値であってもよいし、図4に示したスタイル編集画面を用いて設定された値であってもよい。
ステップS1004では、ステップS1001及びS1002で算出した長さ情報とステップS1003で設定されたテキストの上下反転設定に従って、テキストを描画する。この描画の概念図を図11に示す。図11はテキストの上下反転設定が「反転しない」旨の設定となっている場合の描画イメージである。
まず、1行目となる文字列を、ステップS1001及びステップS1002で算出した各種設定情報に従って描画する。1行目となる文字列は、図6(a)の場合では、テキストID3(日付)とテキストID1(コンピュータ名)の組み合わせ文字列である。ブロック間の余白を上と左右に設け、描画基準位置とテキスト間余白を考慮して描画を行う。
次に、2行目となる文字列である任意文字列(VOID!!)を組み合わせた行を描画する。このとき、1行目の文字列に対して、所定の行間を空け、描画基準位置から2行目の文字列は描画される。行間は、制御プログラムにおいて予め設定しておいても良いし、ユーザが任意に設定可能であってもよい。
なお、2行目となる文字列の組み合わせの長さは1行目となる文字列の組み合わせよりも行長さが短いため、2行目の長さが1行目の長さとほぼ等しくなるように、テキスト間余白を自動で設定する。
続いて、3行目となる文字列は2行目に対して任意の行間を空けて1行目と同様に描画される。
以後、スタイル編集画面で設定されたテキストの数だけ、同様の処理を繰り返す。なお、テキストの描画前にテキスト数やフォントサイズ、各種余白情報などからブロックのサイズを確定し、そのブロック内に各行を描画するような処理手順としてもよい。
また、文字列の描画順序を1行目からとしたが、本発明はそれに限定されるものではない。
また、描画基準位置は垂直線である必要はなく、任意の角度をつけたラインを文字列の先頭基準とすればよい。
ステップS1004でブロック画像の描画が終了したら、ステップS1005に進み、そのブロック描画データに基づいて地紋画像データを生成する。なお、描画データから地紋画像を生成する点については、種々の手法が存在するが、本発明においてはどのような手法を採用してもよい。本実施形態では、上述した特許出願に記載された描画データと潜像部用ドットパターン及び背景部用ドットパターンとを用いた論理演算により地紋画像を生成することとする。
以上のステップが終了することで、地紋画像のブロック描画処理は終了し、図8のステップS809の処理へ移行する。
図8のステップS809の処理が終了することで、最終的に図7で示したような地紋画像が生成される。
なお、本実施例では、ブロック画像を地紋画像としてからそれをタイル状に配列する手順を採用したが、文字列を描画した描画データをタイル状に配列し、その配列されたデータを地紋画像とする手順を採用してもよい。
また、図13のように、最長行を2行目に設定するように構成してもよい。この設定は文字列の重要度などに応じて、ユーザが任意に指定可能であってもよい。また、テキストの組み合わせに応じて、制御部が自動的に判定してもよい。この設定情報を参照し、地紋画像処理部205が図10のステップS1004のブロック画像描画処理を実行することで実現できる。
以上説明した構成と手順を実行することで、複数の文字列からなる地紋画像を生成する際に、効率的に文字列を配置した地紋画像を容易に作成することができる。
実施例1に記載の方法を採用することで、地紋画像の無駄なスペースを十分削減することが可能ではあったが、図14に示すような、複数の文字列において、各文字列の長さに大きな偏りがある場合には、無駄なスペースが増加してしまうことが考えられる。
そこで、本実施例では、各文字列の長さに大きな偏りがある場合であっても、効率的に文字列を配置した地紋画像の生成方法を提供する。なお、地紋画像の生成方法以外の部分については、実施例1と同様であるため説明を省略する。
図14は実施例1の図8のステップS808で示した地紋画像ブロック描画処理に対応する本実施例での処理フローである。
まず、ステップS1401では、図10のステップS1001と同様に最長行の長さを求めるとともに、最短行の長さも求める。
次に、ステップS2402では、最長行の長さと最短行の長さの比率を算出し、算出された値を所定の閾値と比較する。比率の算出についてはどのようなものであってもよいが、本実施例では、最長行の長さ(mm)を最短行の長さ(mm)で除算し、算出された値と所定の閾値とを比較する。
算出された比率が所定の閾値よりも小さい場合には、これらに基づいて描画される地紋画像に不要な隙間が大きく生じないと判断し、ステップS1404に進む。即ち、以後は実施例1の図10の処理フローと同様の処理を実行する。
ステップS1402において、算出された比率が所定の閾値以上である場合には、地紋画像に不要な隙間が生じると判断し、ステップS1403に進む。
ステップS1403では、最長行の長さと最短行の長さの比率が所定の閾値より小さくなるようにテキストのフォントサイズを変更する処理を行う。
テキストのフォントサイズを変更する処理の詳細を図15に示す。
本処理フローでは、最短行や最長行を構成するテキストのフォントサイズを変更する処理を実行する。ここで、不用意にフォントサイズを変更すると地紋画像に埋め込まれるテキストのバランスが崩れるだけでなく、地紋画像としての意味をなさない画像になってしまうことが考えられる。特に、小ドットと大ドットのパターンで画像を形成する、という地紋画像の性質上、一定以上のフォントサイズでなければ複写物における潜像画像の可読性に支障が生じる場合がある。その場合は、可読性を保てるサイズ以下にはフォントサイズを変更しない必要がある。そのため、フォントサイズの変更にあたっては、地紋画像としての可読性や文字列全体のバランスを崩さない程度に予め設定された比率を元にフォントサイズを段階的に変更する。
まず、ステップS1501で最短行を構成するテキストのフォントサイズが所定の上限値か否かを判定する。
判定の結果、所定の上限値ではない場合、ステップS1502に進み、最短行を構成するテキストのフォントサイズを所定のレンジで上昇させる。
ここで、上限値とは、上述した、地紋画像としてのバランスを崩さない程度のフォントサイズ値である。例えば最短行を構成するテキストの現在のフォントサイズが45である場合、上限値をフォントサイズ60と決め、更にサイズを5ずつ上昇させる構成にすれば、不用意にバランスを崩さずユーザが所望するサイズに近い文字サイズを適用することができる。上限の設定は、フォントサイズごとにその約1.5倍程度に設定しておいてもよいし、フォントサイズに限らず一定の上限値を設けてもよい。
ステップS1503では、変更したフォントサイズを元に最短行の長さを算出し直し、最長行との比率を求めて閾値と比較する。
比較の結果、閾値よりも小さくなれば、フォントサイズの変更によって効率的な地紋文字列の配置が可能になったとして、フォントサイズ変更処理を終了する。
比較の結果、閾値以上の場合は、ステップS1501に戻り、処理を繰り返す。
ステップS1501において、最短行のフォントサイズが上限値以上になるような場合には、ステップS1504に進む。
最短行は既にフォントサイズの変更が不可のため、続いて最長行のフォントサイズの変更処理を行う。
ステップS1504では、最長行のフォントサイズが複写物において可読性を有する程度の値(下限値)以下か否かを判断する。この下限値は予め設定された値を保持しておけばよい。
ステップS1504において、下限値以下ではないと判断された場合は、最長行のフォントサイズを所定のレンジで小さくする。
続いて、ステップS1505において、変更したフォントサイズを元に最長行の長さを算出し直し、最短行との比率を求めて閾値と比較する。
比較の結果、閾値よりも小さくなれば、フォントサイズの変更によって効率的な地紋文字列の配置が可能になったとして、フォントサイズ変更処理を終了する。
比較の結果、閾値以上の場合は、ステップS1504に戻り、処理を繰り返す。
ステップS1504において、最長行のフォントサイズが下限値以下である場合には、最短行及び最長行のフォントサイズを変更しても効率的な文字列の配列が困難である。即ち、地紋画像全体に対する文字列が配置されないスペース(隙間)が所定の比率以上存在する、としてユーザに対して警告表示を行って、本処理を終了する。
警告表示により、ユーザは地紋画像のスタイル編集画面でスタイルの変更を行うことも可能となる。また、そのまま地紋画像の生成処理を続行することも可能ではある。
このようにしてフォントサイズが変更された文字列のブロック画像のイメージを図16に示す。
図16(a)はフォントサイズの変更を行わない場合のブロック画像である。図16(b)は図15のフォントサイズ変更処理を実行した場合のブロック画像である。
図16(a)では2行目のテキスト「XXXX」と「XXXX」の間に大きなスペースが生じている。他方、図16(b)は1行目のテキスト「THIS IS COPIED.」と「aaa」のフォントサイズを小さくし、かつ2行目の「XXXX」のフォントサイズを大きくしたことにより、2行目のテキスト間余白が少なくなっているのがわかる。
さらに、最長行のテキストのフォントサイズを小さくしていることに起因して、図16(a)の文字列ブロックのサイズよりも図16(b)の文字列ブロックのサイズの方が小さくなる。つまり、このブロックをタイル状に配列する地紋画像では、ブロックサイズが小さい方が、所定のサイズ、たとえば印刷用紙の印字可能領域に多く配置でき、更に無駄な余白領域の少ない地紋画像を生成することができる。
以上、本実施例では、文字列長に大きな差がある場合においても、無駄な余白の少ない効果的な地紋画像を生成することができる。
なお、本実施例のフローでは、説明を容易にするため、複数のテキストのフォントサイズが全て共通である場合を想定して説明した。しかしながら、複数のテキストのフォントサイズが全て異なるケースもある。こうしたケースでは、行を構成するテキストのうち、最短行であればフォントサイズが大きいもので上限値と比較するのが好適である。また、最短行であればフォントサイズが小さいもので下限値と比較するのが好適である。
また、フォントサイズだけではなく、文字列を太字にすることによっても無駄なスペースの削減に効果がある。同様に、文字と文字の間隔を広げたり、狭めたりすることによっても無駄なスペースの削減に効果がある。文字列を太字にする、文字間隔の調整を行う、といった方法とフォントサイズの変更処理とを組み合わせることで更に効果的な地紋画像を生成することができる。
上の実施例においては、複数の文字列を含むパターンを生成するべく、複数通りの文字列を入力し、該入力された各文字列を、順序入替え及び/又は複製し、空白が少なくなるように文字列の組合せ(組合単位とも呼ぶ)を決定するよう説明してきた。実施例3では、これを実現する為の、別の形態について説明する。
以下、図19乃至図22のフローチャートを用い説明をする。尚、図19乃至22のフローチャートは、地紋処理部205において実行される制御プログラムをCPU1が実行することで行われる。まず、図19のフローチャートについて説明する。
S1901では、上に説明した図4のユーザインタフェースの文字列入力欄402を介し指示された、ユーザ所望の文字列を入力し受け付ける。ユーザは複数通りの文字列を入力することができる。図4の文字列入力欄402では3通りの文字列を入力可能であったが、さらに4通り、5通り、6通りなど、4以上の文字列を入力することも想定できる。
S1902では、S1901で入力された文字列の長さを演算する。ここで入力される文字列とは複数の文字から構成されていも良いし、単数の文字から構成されても良い。
ここで文字列の長さについて詳しく説明すると、例えば横書き固定ピッチの場合には、文字の横サイズに文字数を乗算したものに基づき演算される。また、横書き可変ピッチ(プロポーショナルフォント)の場合には、各文字列の横サイズの和に基づいて演算される。さらに、文字を配置する際の字送り量や、字間を文字列長の演算に考慮すれば、より正確な文字列長を演算することができる。なお、字送り量とは、ある文字と次の文字の間に形成される空白を指す。また、字間とは、ある文字の基準点から、次の文字の基準点の移動量のことを指す。尚、この文字列の長さについては、上に説明した第1及び第2実施例でも同様のこととする。
S1903では、S1901で入力された文字列のうち文字列長を未演算のものがあるか否かを判断する。未演算のものがあると判断すればS1902に処理を戻し、未演算のものがないと判断すれば処理をS1904に進める。尚、S1903の処理は、S1904以降の何れかのステップの処理を実行中であっても、S1901による文字列の入力が行われる度に、処理をS1902に戻し、その入力された文字列について文字列長の演算を実行する。
そして、S1904では、S1903で演算した文字列のうち、最長の文字列長をmax_lengthに、最短の文字列長をmin_lengthに、”1”を行パラメータLに夫々格納する。ここで、max_length、min_lengthは、文字列長を格納する変数である。また、このmax_length及びmin_lengthに文字列長が格納された文字列も、これらの変数に対応して格納されている。
さらに、S1905では有効領域長をrec_length(recはrectangleの略)に格納する。有効領域長とは、例えば、図6に示されるブロック画像の文字列進行方向に従う長さに基づく。文字列進行方向とは、例えば横書きの文字列であれば横方向を指す。また縦書きの文字列であれば縦方向を指す。なお、有効領域長の対象としてはブロック画像には限定されない。例えば、印刷用紙の印字有効領域の文字列進行方向の長さそのものを有効領域長としても良い。
この有効領域長は、一行に単数の文字列を配置するか、或は、複数の文字列を配置するか、或は、文字列を複製して複数個配置するかを決定する際の基準長となる。
S1906では、max_lengthの値がrec_lengthの値以上か否かを判断する。
S1906でNOと判断すると、S1907でmax_lengthの値とmin_lengthの値との和が、rec_lengthの値よりも大きいかを判断する。この判断はrec_lengthが示す値に、最長文字列と最短文字列とを並べて配置できるか否かを判断する為に行われる。
S1907でNOと判断すると、S1908で、最長文字列と最短文字列とを、L行目の文字列に決定する。言い換えれば、S1901で受け付けた複数通りの文字列から、基準の長さに近くなるように、着目すべき複数の文字列を決定する。そして、着目された文字列を配置する処理が行われる。そして、処理を図20に移す。
一方、S1907でYESと判断すると、S1909で、最短文字列を除く最長文字列をL行目に決定する。言い換えれば、S1901で受け付けた複数通りの文字列から、基準の長さに近くなるように、着目すべき単数の文字列を決定する。そして、着目された文字列を配置する処理が行われる。なお、L行目とは、この時点では、S1904の処理により、1行目となる。
一方、S1906でYESと判断すると、S1910で最長文字列を有効領域長(rec_length)に収まるよう縮小する。例えばフォントサイズを小さくすることにより最長文字列長を縮小する。またS1906で等しいと判断した場合にはS1910で1.0倍の縮小処理を行うこととなる。そして、S1911でS1910で縮小した最長文字列をL行目の文字列に決定する。言い換えれば、S1901で受け付けた複数通りの文字列から、基準の長さに近くなるように、着目すべき複数の文字列を決定する。そして、着目された文字列を配置する処理が行われる。
次に、図20について、説明する。図20は、図19のS1908、1909、1911の処理に引き続き実行され、単数又は複数の一行目の文字列が決定された後に、次の行の文字列を決定する為の処理に相当する。
まず、S2001では、S1901で入力された文字列から、既にL行目までの文字列として決定された文字列を除く、残りの文字列の通りが零か否かを判断する。残りの文字列が零であると判断すると処理を終了する。一方、零でないと判断するとS2002で、残りの文字列が1つか否かを判断する。
S2002でYESと判断すると、S2005で、行パラメータLの値に1加算した値をLに格納し直し、変数pに1を格納する。
S2006ではremain_lengthに変数pを乗算した値が、rec_lengthの値よりも大きいかを判断する。なお、remain_lengthとは、残りの文字列の長を指す。このS2007では、残りの文字列を何個まで複製し、一行に配置するかを決定する。言い換えれば、S1908、S1909、S1911で着目された以外の単数の文字列を用いて、基準長に近くなるような配置方法を決定する。
S2006でYESと判断すれば、S2002で残り1つと判断した文字列をp個複製した文字列をL行目に決定する。一方、S2006でNOと判断すればpに1加算した値を格納しS2006の処理を再度繰り返す。
一方、S2002でNOと判断すると、S2003で残りの文字列の数が2つか否かを判断する。S2003でYESと判断すると、S2004で行パラメータLの値に1加算した値をLに格納し直し(S2004)、処理を図22のフローチャートに移す。
一方、S2003でNOと判断すると、S2009で行パラメータLの値に1加算した値をLに格納し直し(S2009)、処理を図23のフローチャートに移す。
次に、図21のフローチャートを説明する。この図21のフローチャートは、図20のフローチャートのS2004の処理に引き続き実行され、残りの2つの文字列を如何に並べるかを決定する処理に相当する。
S2101では、残りの2通りの文字列の長さの和が有効領域長(rec_length)よりも大きいかを判断する。まず、S2101でYESと判断した場合について説明する。
S2102では、長いほうの文字列をL行目に決定する。S2103では、変数rに2を格納する。
S2104では、2通りの文字列のうち、短いほうの文字列にrを乗算した値が、rec_lengthの値よりも大きいかを判断する。S2104でYESと判断すると、再度L行目に配置する文字列を、長い文字列と短い文字列を縮小したものに決定する。言い換えれば、S1908、S1909、S1911で着目された以外の複数の文字列を用いて、基準長に近くなるような配置方法を決定する。
一方、S2104でNOと判断すると、行パラメータLの値に1加算した値をLに格納し直し(S2106)、S2107で短いほうの文字列にrを乗算した値が、rec_lengthの値よりも大きいかを判断する。
S2107でYESと判断するとS2108で短い文字列をr個複製したものをL行目の文字列に決定する。言い換えれば、S1908、S1909、S1911で着目された以外の単数の文字列を用いて、基準長に近くなるような配置方法を決定する。
一方、S2107でNOと判断すると変数rに1加算した値を代入し直し、S2107の処理を繰り返し実行する。
次にS2101でNOと判断した場合について、説明する。S2110では、変数qに1を格納する。
S2111で、長いほうの文字列の長さ値と、短いほうの文字列の長さにrを乗算した値が、rec_lengthの値よりも大きいか又は等しいかを判断する。
S2111でYESと判断すると、S2112で、長い文字列と短い文字列をr個複製した文字列をL行目に決定する。言い換えれば、S1908、S1909、S1911で着目された以外の複数の文字列を用いて、基準長に近くなるような配置方法を決定する。一方、S2111でNOと判断すると、qに1加算した値を格納しS2111の処理を繰り返す。
次に図22のフローチャートを説明する。この図22のフローチャートは、図20のS2003でNOと判断したことに引き続き実行され、未だ並べ方が決定されてない3以上の文字列を如何に並べるかを決定する処理に相当する。
まず、S2201で準最長文字列の長さをsmax_lengthに格納し、準最短文字列の長さをsmin_lengthに格納する。
ここで、準最長文字列とは、まだ行への並べ方が決まっていない、残りの文字列の中で最も文字列長が大きいものを指す。また準最短文字列とは、残りの文字列の中で最も文字列長が短いものを指す。
S2202ではsmax_lengthの値が、rec_lengthの値よりも大きいか否かを判断する。まず、S2202でNOと判断した場合について説明する。
S2202でNOと判断すると、S2203でsmax_lengthとsmin_lengthの和の値がrec_lengthよりも大きいかを判断する。S2203でNOと判断するとS2204で、準最長文字列と準最短文字列とをL行目に決定する。そして、処理を図20のフローチャートへ戻す。言い換えれば、S1908、S1909、S1911で着目された以外の複数の文字列を用いて、基準長に近くなるような配置方法を決定する。
一方、S2203でYESと判断すると、S2206で準最長文字列をL行目に決定する。言い換えれば、S1908、S1909、S1911で着目された以外の単数の文字列を用いて、基準長に近くなるような配置方法を決定する。そして、処理を図20のフローチャートへ戻す。
次にS2202でYESと判断した場合について説明する。
S2208では、準最長文字列を縮小し、S2209で縮小後の最長文字列をL行目の文字列として決定する。言い換えれば、S1908、S1909、S1911で着目された以外の単数の文字列を用いて、基準長に近くなるような配置方法を決定する。なお、S2209での縮小処理は、S1910で説明した通りである。そして、処理を図20のフローチャートへ戻す。そして、上に説明した図20に従う処理を繰り返し実行する。
図23は、図19乃至図22に示されるフローチャートに基づき生成された文字パターンの生成結果の一例を示す。
まず、図23の(a)の説明をする。図23の(a)は、S1906でYESと判断し、S2003でYESと判断し、S2101でNOと判断し、S2111でNOと2回判断した後、3回目でYESと判断した場合に生成されるパターンを示す。
図23の(b)について説明する。まず、S1906、S1907でNOと判断する。そして、図20のフローチャートのS2003でNOと判断し処理を図22のフローチャートに移行する。図22のフローチャートでは、S2202、S2203でNOと判断する。そして再び図20フローチャートへ処理を戻し、「VOIID!」の文字列のみが残っているので、S2002でYESと判断する。そして、S2006、S2008を経由してS2007の処理を実行することにより、図23の(b)のパターンが生成される。
そして、これら図23の(a)、(b)のように生成された文字パターン(組合単位)が、図8のS808、図10のS1005の処理と同様に繰り返し配置され、図13のようなパターンが作成される。これら作成されたパターンは情報処理装置のプリンタドライバにより、背景パターンや、地紋画像などとして利用され、印刷データの一部としてプリンタに送信され、プリンタによって印刷出力される。
このように、第3実施例に拠れば、視認性高い文字列パターンを生成することができる。特に地紋に適用した場合には、複写物における潜像文字列の視認性が高まる。
実施例3では画像ブロックに文字列を配置する例を説明してきたが、これには限定されない。例えば、画像ブロックではなく、ある有効領域に文字列を配置する場合でも良い。ある有効領域としては、たとえば、所定用紙サイズの有効領域を指す。
このような場合には、まず、単数又は複数の文字列を図4のユーザインタフェースを介して入力し、その入力された単数又は複数の文字列を所定間隔で可能な限り繰り返し配置するようにする。例えば、入力された文字列が「AA」、「BBB」、「CCCC」であれば、まず、この「AA」、「BBB」、「CCC」の順番で、一行に可能な限り繰り返し文字列を配置する。そして、一行内に配置できなくなった場合には、次の行に繰り返し文字列を配置するようにすれば良い。これを有効領域内の全行について実行すれば、文字列の視認性が高まる。特に地紋画像に適用した場合には、複写物における潜像文字列の視認性が高まる。
(さらに他の実施例)
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現する、各図に示した手順を実現するプログラムコードを記憶した媒体を、システム又は装置のCPUやMPUが媒体に格納されたプログラムコードを読出し実行することでも達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限定されない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、次のような場合も想定される。まず、記憶媒体から読出されたプログラムコードを、コンピュータに挿入された機能拡張ボードや、コンピュータに接続された機能拡張ユニットがに備わるメモリに書き込む。その後、書き込んだそのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現する。
本発明の実施形態の一例であるシステムの構成ブロック図である。
図1に示したホストコンピュータ3000における印刷処理のための一構成を示す図である。
印刷設定入力ダイアログの一例を示した図である。
印刷設定入力ダイアログの一例を示した図である。
従来の文字列配置処理を実行した場合の画像である。
本発明の実施例による文字列配置処理を実行した場合の画像である。
図6に示した文字列ブロック画像をタイル状に配置した状態を示す図である。
本発明の実施例における地紋画像生成フロー図である。
本発明の実施例における文字列管理テーブルの一例を示す図である。
本発明の実施例における地紋画像ブロック描画処理フロー図である。
描画処理におけるブロックの構成を示す図である。
本発明の実施例における文字列間の余白調整ダイアログの一例を示した図である。
本発明の実施例における文字列ブロックをタイル状に配置した状態を示す図である。
本発明の実施例2における地紋画像ブロック描画処理フロー図である。
本発明の実施例2におけるフォントサイズ変更処理フロー図である。
本発明の実施例1によって生成された文字列ブロックと実施例2によって生成された文字列ブロックとを比較するための図である。
従来の地紋画像を説明するための図である。
従来の地紋画像の文字列長による不具合を説明するための図である。
本発明の実施例3における文字列パターン生成フロー図である。
本発明の実施例3における文字列パターン生成フロー図である。
本発明の実施例3における文字列パターン生成フロー図である。
本発明の実施例3における文字列パターン生成フロー図である。
本発明の実施例3による文字列配置処理を実行した場合の画像の一例である。