(57)【要約】【課題】原稿画像データを縮小するなどの手を加えることなく、原稿画像データとコード画像データを重ならないように合成する情報処理装置を提供する。【解決手段】情報をエンコードしてコード画像データを生成し、原稿画像データにおけるオブジェクト存在領域と、コード画像生成手段で生成されたコード画像データの重なりを解消し、原稿画像データにおけるオブジェクト存在領域との重なりを解消されたコード画像データを原稿画像データに合成し、合成されたデータを用いて印刷出力する。【選択図】図３
2008278362.tif 000002
【特許請求の範囲】
【請求項１】
情報をエンコードしてコード画像データを生成する手段と、
原稿画像データにおけるオブジェクト存在領域と、前記コード画像データ領域の重なりを解消する手段と、
前記オブジェクト存在領域との重なりを解消されたコード画像データを前記原稿画像データに合成する手段と、
前記合成されたデータを用いて、印刷データを生成する手段
を備えることを特徴とする情報処理装置。
【請求項２】
前記重なりを解消する手段は、
前記原稿画像データにおけるオブジェクト存在領域を取得する手段と、
前記原稿画像データに合成されるコード画像データ領域を取得する手段と、
前記オブジェクト存在領域と前記コード画像データ領域が重なるかどうかを判定する手段と、
前記オブジェクト存在領域と前記コード画像データ領域が重なると判定された場合に、プレビューを起動する手段と、
前記プレビュー上で、前記コード画像データが合成される前記原稿画像データの領域をユーザからの指示に基づいて変更する手段
を備えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記変更する手段は、
ユーザからの指示に基づいて、前記コード画像データが合成される前記原稿画像データの領域の形を変更する手段と、
前記変更される領域の形に応じて仮コード画像データを生成して表示する手段と、
前記仮コード画像データの領域にコード画像データを合成することをユーザから指示された場合に、当該仮コード画像データの領域に合わせたコード画像データを生成する手段
を備えることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記仮コード画像データの領域の面積は、前記コード画像データ領域の面積と同じであることを特徴とする請求項３記載の情報処理装置。
【請求項５】
情報をエンコードしてコード画像データを生成するステップと、
原稿画像データにおけるオブジェクト存在領域と、前記コード画像データ領域の重なりを解消するステップと、
前記オブジェクト存在領域との重なりを解消されたコード画像データを前記原稿画像データに合成するステップと、
前記合成されたデータを用いて、印刷データを生成するステップ
を含むことを特徴とする情報処理方法。
【請求項６】
コンピュータに、請求項５に記載された方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
コンピュータに、請求項５に記載された方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード画像データを生成することができる情報処理装置等に関する。
【背景技術】
【０００２】
バーコードに代表されるような一次元コード技術や、ＱＲコード（商標）に代表されるような二次元コード技術が存在する。
【０００３】
こうした技術では、エンコードされるべき情報をエンコードしてコード画像データを作成し、当該作成されたコード画像データを印刷媒体上に出力することでコード画像を有する印刷物を作成している。
【０００４】
そして、この技術では、作成されたコード画像を光学的に読取り、コード画像データを生成し、当該生成されたコード画像データをデコードすることで、上記情報を取出している。
【０００５】
このコード画像データは、印刷媒体上に単独で出力されることもあるが、多くの場合は他の文章や画像等（以下、原稿画像データという。）に合成されてから出力される。そして、この合成の際に、コード画像データが、他の原稿画像データと重なってしまうと、後にデコードする際にエラーが生じてしまう可能性が高い。特許文献１は、原稿画像データとコード画像データとが重ならないように両者を合成する技術を開示している。
【０００６】
このため、特許文献１では、コード画像データに重ならないように、原稿画像データを変倍し、当該変倍後の原稿画像データとコード画像データとを合成する。
【０００７】
【特許文献１】特開２００６−１３５４４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、この特許文献１開示の技術を用いると、原稿画像データが縮小されてしまい読みづらくなってしまうという課題がある。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、情報をエンコードしてコード画像データを生成する手段と、原稿画像データにおけるオブジェクト存在領域と、コード画像データ領域の重なりを解消する手段と、オブジェクト存在領域との重なりを解消されたコード画像データを原稿画像データに合成する手段と、合成されたデータを用いて、印刷データを生成する手段を備えることを特徴とする。
【００１０】
本発明の情報処理方法は、情報をエンコードしてコード画像データを生成するステップと、原稿画像データにおけるオブジェクト存在領域と、コード画像データ領域の重なりを解消するステップと、オブジェクト存在領域との重なりを解消されたコード画像データを原稿画像データに合成するステップと、合成されたデータを用いて、印刷データを生成するステップを含むことを特徴とする。
【発明の効果】
【００１１】
原稿画像データを縮小するなどの手を加えることなく、原稿画像データとコード画像データを重ならないように合成することが可能である。また、その合成処理においては、ページ毎にコード画像データと原稿画像データを視覚的に確認しながら、コード画像データの位置やサイズを決定できるので、原稿画像データに適した合成が可能である。
【発明を実施するための最良の形態】
【００１２】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【００１３】
（実施例１）
＜印刷システム（図１）＞
実施例１について図面を参照して詳細に説明する。
【００１４】
図１は本発明の実施形態に係る印刷システムの構成を示すブロック図である。
【００１５】
このシステムでは、情報処理装置であるホストコンピュータ４０及びプリンタ（画像形成装置の一例）８０５がＬＡＮ５０に接続されている。しかし、本発明における印刷システムにおいては、これらの接続数に限られることはない。また、本実施例では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１６】
ホストコンピュータ（以下、ＰＣと称する）４０はパーソナルコンピュータの機能を有している。このＰＣ４０はＬＡＮ５０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。またＰＣ４０から画像形成装置（図示せず）に対して、プリンタドライバを介した印字命令を行うことが可能となっている。
【００１７】
なお、本明細書では、コード画像とは、二次元コード画像やバーコード画像といった画像や電子透かし技術により生成された電子透かし画像のことを示す。
【００１８】
＜ホストコンピュータ４０（図２）＞
図２は、図１に示したホストコンピュータ４０における印刷処理のための構成の一例を示す。
【００１９】
アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部記憶装置に保存されたファイルとして存在するプログラムモジュールである。このモジュールは、実行される際にＯＳやそのモジュールを利用するモジュールによってＲＡＭにロードされ実行される。アプリケーション２０１がプリンタ２０５に対して印刷を行う際には、ＲＡＭにロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００２０】
グラフィックエンジン２０２は、プリンタなどの印刷装置毎用意されたプリンタドライバ２０３を外部記憶装置からＲＡＭにロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数をＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。
【００２１】
プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭにロードされたシステムスプーラ２０４を経て双方向性インターフェース経由でプリンタ２０５へ印刷データとして出力される仕組みとなっている。
【００２２】
本実施形態の印刷システムは、プリンタドライバと連携するプレビュー２０６、およびプリンタドライバ２０３の内部にコード画像処理部２０７を有する。
【００２３】
プレビュー２０６は内部にコード画像処理部２０７と同様のコード画像処理部２０８を有する。プレビュー２０６（コード画像処理部２０８を含む）とコード画像処理部２０７はプリンタドライバ２０３のビルトインモジュールであってもよいし、個別のインストーレーションによって追加されるライブラリモジュールの形式であっても構わない。また、プリンタドライバ２０３は、コード画像の印刷に関し、プレビュー２０６、コード画像処理部２０７、２０８の実行により、後述のコード画像の処理を行う。
【００２４】
＜コード画像印刷設定（図１０）＞
図１０は、コード画像データと原稿画像データとの印刷に関する設定画面の一例である。
【００２５】
ユーザがチェックボックス１００１をＯＮにする指示を行うと、この指示を受付けたプリンタドライバは、チェックボックスをＯＮに設定する。次いで、プリンタドライバは、原稿画像データから生成される印刷データにコード画像データを合成する機能を有効とし、その他の設定項目に対するユーザからの指示を受付けられるように制御する。
【００２６】
ラジオボタン１００２はコード画像データを印刷するページを制御するための設定である。この画面例では、全ページを印刷するか最初のページのみ印刷するかの設定であるが、より詳細にページを指定できても良い。
【００２７】
コントロール群１００３には、コード画像データの印刷位置・サイズがユーザにより設定される。
【００２８】
テキストボックス１００４には、コード画像データにエンコードされるべき情報がユーザにより入力される。この画面例は文字情報をエンコードする例であるが、ファイルパス名を設定可能にすることにより、イメージ画像などのバイナリ情報をエンコードできても良い。
【００２９】
ユーザがチェックボックス１００５をＯＮにする指示を行うと、この指示を受付けたプリンタドライバは、チェックボックスをＯＮに設定する。次いで、プリンタドライバは、ユーザがコントロール群１００３で設定した位置・サイズのコード画像データが原稿画像データに重なる場合に、後述のプレビューを自動的に起動する。
【００３０】
ユーザがボタン１００６を押すと、プリンタドライバは、設定された内容をホストコンピュータ４０のＲＡＭや外部記憶装置に保存し、設定画面を閉じる制御を行う。コード画像処理部２０７はコード画像データの処理に際しこの設定内容を参照する。
【００３１】
ユーザがボタン１００７を押すと、プリンタドライバは、設定された内容を保存することなく、設定画面を閉じる制御を行う。また、これらのコード画像印刷設定は、アプリケーションからのプログラム制御により動的に行われてもよい。
【００３２】
＜コード画像処理部２０７（図３）＞
図３は、プリンタドライバ２０３により実行される、印刷データ出力の処理全体の流れを示すフローチャートである。
【００３３】
まず、印刷要求をグラフィックエンジン２０２より受け取ったプリンタドライバ２０３は、プリンタが認識可能な印刷データを生成する（ステップ３０１）。印刷データ生成されると、コード画像処理部２０７は、ホストコンピュータ４０のＲＡＭや外部記憶装置に保存されているコード画像印刷設定を参照する。次いで、コード画像処理部２０７は、原稿画像データから生成される印刷データにコード画像データを合成する設定かどうかを判定する（ステップ３０２）。図１０に示すコード画像印刷設定画面の場合、チェックボックス１００１がＯＮであればコード画像データを合成する設定であると判定される。コード画像データを合成する設定であると判定されれば、コード画像処理部２０７は、コード画像印刷設定に従ってコード画像データを生成する（ステップ３０３）。
【００３４】
コード画像処理部２０７は、ホストコンピュータ４０のＲＡＭや外部記憶装置に保存されているコード画像印刷設定を参照する。コード画像処理部２０７は、原稿画像データにおけるオブジェクト存在領域とコード画像データ領域の重なりを検知する設定となっているかどうかを判定する（ステップ３０４）。図１０の場合、チェックボックス１００５がＯＮであれば、重なりを検知する設定である。
【００３５】
重なりを検知する設定と判定されれば、コード画像処理部２０７は、重なり解消処理を行う（ステップ３０５）。つまり、コード画像処理部２０７は、プレビュー２０６を用いて原稿画像データにおけるオブジェクト存在領域とコード画像データ領域が重ならないようにする。
【００３６】
ステップ３０４で重なりを検知しない設定と判定されれば、コード画像処理部２０７はステップ３０５をスキップする。コード画像処理部２０７は、原稿画像データにおけるオブジェクト存在領域との重なりが解消されたコード画像データを原稿画像データに合成する（ステップ３０６）。
【００３７】
コード画像処理部２０７は、合成結果を印刷データとして再生成する（ステップ３０７）。
【００３８】
再生成された印刷データを受け取ったプリンタドライバ２０３は、印刷データを印刷装置に出力し（ステップ３０８）、処理を終了する。
【００３９】
ステップ３０２でコード画像データを合成しない設定と判定されれば、ステップ３０８へ進む。
【００４０】
ステップ３０８で印刷データを受け取った印刷装置は、印刷データを解析して紙上に印刷する。
【００４１】
図４は、コード画像処理部２０７により実行される、重なり解消処理３０５の流れを示すフローチャートである。
【００４２】
まず、ページカウンタＮを初期化し（ステップ４０１）、Ｎページ目のオブジェクト存在領域を取得する（ステップ４０２）。オブジェクト存在領域は、Ｎページ目全体の外接矩形ではなく、Ｎページ目の原稿画像を構成する各描画オブジェクトの外接矩形の和の領域である。従って、原稿画像に応じて凸凹した領域である。図１１のページの場合、グレーの領域がオブジェクト存在領域である。更に、ホストコンピュータ４０のＲＡＭや外部記憶装置に保存されているコード画像印刷設定を参照し、Ｎページ目のコード画像データ領域を取得する（ステップ４０３）。Ｎページ目がコード画像データを印刷しない設定であるならば、コード画像データ領域は空領域となる。Ｎページ目がコード画像データを印刷する設定ならば、コード画像の位置・サイズの設定からコード画像データ領域が求められる。次に、ステップ４０２で取得したオブジェクト存在領域とステップ４０３で取得したコード画像データ領域が重なるか判定する（ステップ４０４）。重ならないと判定されれば、ページカウンタＮを１つカウントアップし（ステップ４０５）、次のページの印刷データが存在するか判定する（ステップ４０６）。次のページが存在すれば、ステップ４０２に戻る。ステップ４０４で重なると判定されれば、プレビュー２０６を起動し（ステップ４０７）、プレビュー上でコード画像データの編集をし（ステップ４０８）、処理を抜ける。
【００４３】
上述したとおり本実施例では、ステップ３０１で原稿画像データから生成された印刷データの中のオブジェクト存在領域がコード画像データと重なる場合に（１ページでも重なるページがある場合に）、ステップ４０７に移行しプレビュー起動を行う処理を行う。
【００４４】
＜プレビュー２０６（図５）＞
図５は、プレビュー２０６により実行される、コード画像編集処理４０８の流れを示すフローチャートである。
【００４５】
まず、プレビュー２０６はコード画像処理部４０７から印刷データとコード画像データを取得し（ステップ５０１）、それらを表示する（ステップ５０２）。初期表示が終われば、ユーザは編集操作を行う。この編集操作を受付けたプレビュー２０６はユーザの編集操作の種別を判定する（ステップ５０３）。プレビュー２０６は判定された編集種別に従って（ステップ５０４）、選択処理（ステップ５０５）、移動処理（ステップ５０６）、サイズ変更処理（ステップ５０７）、その他の編集処理（ステップ５０８）を繰り返し行う。その他の処理には、表示ページ番号の変更やスクロール処理などが含まれるが、説明を省く。ステップ５０４で編集終了操作と判定されれば、プレビュー２０６はこれまでの編集結果のコード画像データをプリンタドライバ２０３へ戻し（ステップ５０９）、プレビュー２０６を終了させる（ステップ５１０）。
【００４６】
図６は、プレビュー２０６により実行される、編集種別判定処理５０３の流れを示すフローチャートである。
【００４７】
まず、プレビュー２０６は、ＯＳから送られてくるマウスやキーボードのイベントからユーザの入力を検知し（ステップ６０１）、編集終了の操作かどうか判定する（ステップ６０２）。編集終了の操作の一例には、キーボードやマウス操作により”終了”メニューを選択する方法などがある。ユーザの操作がステップ６０２で編集終了の操作であると判定されれば、プレビュー２０６は、編集種別として”編集終了”をセットして（ステップ６０３）、処理を抜ける。編集終了でないと判定されれば、プレビュー２０６はユーザの操作がマウスのクリックか判定し（ステップ６０４）、ユーザの操作がクリックと判定されれば、編集種別として”選択”をセットして（ステップ６０５）、処理を抜ける。
【００４８】
ステップ６０４でクリックでないと判定されれば、プレビュー２０６はユーザの操作がマウスのドラッグ開始か判定し（ステップ６０６）、ドラッグ開始と判定されれば、ドラッグ開始座標にサイズ変更ハンドルがあるか判定する（ステップ６０７）。
【００４９】
サイズ変更ハンドルとは、選択されたコード画像データのコード画像の外枠の頂点や中点に表示される小さなマークのことで、選択解除されると表示が消される８つのマークである（図１２参照）。このサイズ変更ハンドルは、ユーザはコード画像データのサイズを変更する指示をユーザがする場合にユーザにより用いられる。具体的なサイズ変更処理は以下のような手順で行われる。
【００５０】
ユーザは、まずコード画像データへの選択指示を行う。すると、この選択指示を受けてプレビュー２０６がサイズ変更ハンドルを表示する。その後、ユーザが、表示したサイズ変更ハンドル上でドラッグを開始することにより、プレビュー２０６がその指示に合わせてコード画像データのサイズ変更を行う。
【００５１】
なお、本実施例のコード画像印刷設定画面（図１０）では、１ページに複数のコード画像を印刷するような設定はできないものとするが、複数のコード画像を印刷可能なように拡張することは容易である。そのように拡張した場合には複数のコード画像データの選択が可能なようにすることも可能である。その場合でも、ステップ６０７は同様の処理でよい。
【００５２】
次に、プレビュー２０６は、ステップ６０７でドラッグ開始座標にサイズ変更ハンドルが見つかったか判定する（ステップ６０８）。サイズ変更ハンドルが見つからないと判定されれば、プレビュー２０６は編集種別として”移動”をセットし（ステップ６０９）、処理を抜ける。一方、ドラッグ開始座標にサイズ変更ハンドルが見つかったと判定されれば、プレビュー２０６は編集種別として”サイズ変更”をセットして（ステップ６１０）、処理を抜ける。ステップ６０６でドラッグ開始ではないと判定されれば、プレビュー２０６は編集種別として”その他”をセットして（ステップ６１１）、処理を抜ける。
【００５３】
図７は、プレビュー２０６により実行される、選択処理５０５の流れを示すフローチャートである。
【００５４】
まず、プレビュー２０６は、「既に選択テーブルに登録されているコード画像データ」が存在するか判定する（ステップ７０１）。ステップ７０１で存在すると判定されれば、選択テーブルに登録されているコード画像データのサイズ変更ハンドルを非表示にし（ステップ７０２）、選択テーブルをクリアする（ステップ７０３）。
【００５５】
上述したように、ステップ５０２とステップ５０３との間で選択されたコード画像データをステップ７０６で新たに選択テーブルに登録するために、「既に選択テーブルに登録されているコード画像データ」を選択テーブルから削除する。「既に選択テーブルに登録されているコード画像データ」とは、以前に選択されたコード画像データのことである。
【００５６】
次に、プレビュー２０６は、クリック座標に存在するコード画像データを検索し（ステップ７０４）、コード画像データが見つかったか判定する（ステップ７０５）。ステップ７０５でコード画像データが見つかったと判定されれば、プレビュー２０６は選択テーブルに見つかったコード画像データを登録し（ステップ７０６）、そのコード画像データにサイズ変更ハンドルを表示し（ステップ７０７）、処理を抜ける。
【００５７】
なお、本実施例のコード画像印刷設定画面（図１０）では、１ページに複数のコード画像を印刷するよう設定できないが、複数のコード画像を印刷可能なように拡張することは容易である。そのように拡張した場合にはコード画像同士が重なっている可能性もあるので、ステップ７０４はクリック座標に存在する最前面のコード画像データを検索すればよい。
【００５８】
図８は、プレビュー２０６により実行される、移動処理５０６の流れを示すフローチャートである。
【００５９】
まず、プレビュー２０６はドラッグ開始座標を取得し（ステップ８０１）、ドラッグ開始座標にあるコード画像を選択する（ステップ８０２）。次に、プレビュー２０６は選択処理によってコード画像データが選択されたか判定し（ステップ８０３）、選択されていないと判定されれば、そのまま処理を抜ける。ステップ８０３でコード画像データが選択されたと判定されれば、プレビュー２０６は移動対象のコード画像データを特定する（ステップ８０４）。前述のステップ６０７と同様に、ステップ８０１で取得した座標に存在するコード画像データを選択テーブルから検索すれば、移動対象のコード画像データが特定可能である。移動対象のコード画像データが特定できたら、プレビュー２０６はそのコード画像データを一旦非表示にし（ステップ８０５）、仮コード画像を生成する（ステップ８０６）。
【００６０】
仮コード画像は、コード画像データを移動中やサイズ変更中に一時的に表示する画像で、色又は枠の付いた画像データである。仮コード画像は、コード画像よりも生成するのに時間のかからない画像であって、コード画像のサイズがユーザに一目でわからせるようにするための画像データである。この画像データは、ホストコンピュータ４０のＲＡＭに格納し、移動やサイズ変更の操作が完了すれば削除する。移動処理においては、処理の結果によってコード画像データの座標以外は変更する必要がないので、移動前のコード画像データをコピーして使う。
【００６１】
次に、プレビュー２０６は既に仮コード画像データを表示しているか判定し（ステップ８０７）、表示していれば仮コード画像データを一旦非表示にする（ステップ８０８）。そして、プレビュー２０６はドラッグ中である現在のマウス座標を取得し（ステップ８０９）、その座標とステップ８０１で取得したドラッグ開始座標から仮コード画像データの領域の座標を計算する（ステップ８１０）。
【００６２】
例えば、移動前のコード画像データの座標が (l, t)-(r, b)、ドラッグ開始座標が (x1, y1)、現在のマウス座標が (x2, y2)の場合を説明する。この場合、現在の仮コード画像データの領域の座標は、(l + x2 - x1, t + y2 - y1)-(r + x2 - x1, b + y2 - y1)となる（図１３参照）。そして、プレビュー２０６はステップ８１０で求めた座標に従い仮コード画像データの領域の座標を更新し（ステップ８１１）、表示する（ステップ８１２）。更に、プレビュー２０６はマウス入力を検知して（ステップ８１３）、ドラッグ終了か判定し（ステップ８１４）、まだドラッグ中と判定されれば、ステップ８０７へ戻り、ステップ８０７〜８１４を繰り返す。ステップ８１４でドラッグ終了と判定されれば、プレビュー２０６は仮コード画像を非表示にし（ステップ８１５）、仮コード画像データを削除する（ステップ８１６）。そして、プレビュー２０６はドラッグの終了座標を取得し（ステップ８１７）、ステップ８１０と同様にして移動後のコード画像の座標を計算し（ステップ８１８）、コード画像データの座標を変更する（ステップ８１９）。座標変更後、プレビュー２０６はコード画像データを表示し（ステップ８２０）、処理を抜ける。
【００６３】
本実施例のコード画像印刷設定画面（図１０）では、１ページに複数のコード画像を印刷するよう設定できないが、複数のコード画像を印刷可能なように拡張することは容易である。そのように拡張した場合には複数のコード画像データの選択が可能なようにすることも可能である。その場合、選択された複数のコード画像データ同士が重なっている可能性もあるので、ステップ８０４ではドラッグ開始座標に存在する最前面のコード画像データを選択テーブルから検索すればよい。
【００６４】
図９は、プレビュー２０６により実行される、サイズ変更処理５０７の流れを示すフローチャートである。
【００６５】
サイズ変更処理は、エンコードされている情報量が変わらないように幅や高さなどを制御する必要がある。本実施例では、コード画像データにエンコードされる情報量はコード画像の面積によって決まる場合の例で、その他の要素のよって決まる場合にはそれらの要素を考慮した制御する。
【００６６】
まず、プレビュー２０６はドラッグ開始座標を取得し（ステップ９０１）、サイズ変更しようとしているコード画像データを特定する（ステップ９０２）。前述のステップ６０７と同様に、ステップ９０１で取得した座標に選択ハンドルが表示されるコード画像データを選択テーブルから検索すれば、サイズ変更対象のコード画像データが特定可能である。
【００６７】
サイズ変更対象のコード画像データが特定できたら、プレビュー２０６はそのコード画像データを一旦非表示にし（ステップ９０３）、そのコード画像の面積を求める（ステップ９０４）。求めた面積は、後のステップでコード画像データの座標を求めるのに用いる。次に、プレビュー２０６は既に仮コード画像データを表示しているか判定し（ステップ９０５）、表示していれば仮コード画像データを一旦非表示にする（ステップ９０６）。そして、プレビュー２０６はドラッグ中である現在のマウス座標を取得し（ステップ９０７）、その座標とステップ９０１で取得したドラッグ開始座標から仮コード画像データの領域の幅や高さ、座標を計算する（ステップ９０８）。例えば、移動前のコード画像データの座標が (l, t)-(r, b)、ドラッグ開始座標が (x1, y1)（＝右辺のサイズ変更ハンドル）、現在のマウス座標が (x2, y2)の場合を説明する。この場合、現在の仮コード画像データの領域の幅、高さ、座標は以下のように求められる（図１４参照）。
幅W= |x2 - l|
高さH = (r - l) * (b - t) / |x2 - l|
左 = min(l, x2)
上 = (t + b) /2 - H / 2
右 = max(l, x2)
下 = (t + b) /2 + H / 2
(ただし、x2 ≠ l)
【００６８】
そして、プレビュー２０６はステップ９０８で求めた座標に従って仮コード画像データを生成し（ステップ９０９）、表示する（ステップ９１０）。
【００６９】
サイズ変更処理においては、処理の結果によってコード画像データを再生成する必要がある。しかし、サイズ変更のドラッグ中に正しいコード画像データを逐次生成すると時間が掛かる。そこで、薄い色などが付いた、あるいは、枠のみが付いた、サイズが正しい仮コード画像データを生成し、その画像を表示する。
【００７０】
また、既に仮コード画像データが生成済みであれば、ステップ９０９では、その仮コード画像データの領域の座標位置を更新する。更に、プレビュー２０６はマウス入力を検知して（ステップ９１１）、ドラッグ終了か判定し（ステップ９１２）、まだドラッグ中と判定されれば、ステップ９０５へ戻り、ステップ９０５〜９１２を繰り返す。ステップ９１２でドラッグ終了と判定されれば、プレビュー２０６は仮コード画像を非表示にし（ステップ９１３）、仮コード画像データを削除する（ステップ９１４）。そして、プレビュー２０６はドラッグの終了座標を取得し（ステップ９１５）、ステップ９０８と同様にしてサイズ変更後のコード画像データの座標を計算する（ステップ９１６）。コード画像処理部２０８はその結果に従いコード画像データを再生成し（ステップ９１７）、プレビュー２０６は生成されたコード画像データを表示し（ステップ９１８）、処理を抜ける。
【００７１】
本実施例のコード画像印刷設定画面（図１０）では、１ページに複数のコード画像を印刷するよう設定できないが、複数のコード画像を印刷可能なように拡張することは容易である。そのように拡張した場合には複数のコード画像データの選択が可能なようにすることも可能である。その場合、選択された複数のコード画像データのサイズ変更ハンドル同士が重なっている可能性もあるので、ステップ６０７ではドラッグ開始座標にサイズ変更ハンドルを表示する最前面のコード画像データを選択テーブルから検索すればよい。
【００７２】
（実施例２）
図４に示されるステップ３０５の重なり解消処理は、いずれかのページでコード画像データが原稿画像データと重なることを検知するとプレビューを起動し、ユーザはどのページを編集すべきか分からない。そこで、図１５に示されるフローチャートのようにすることにより、編集すべきページを事前にユーザに提示することができるようになる。
【００７３】
以下、図４のフローチャートと異なる処理のみ説明をする。図４と同じ番号のステップは、同じ処理であることを表している。
【００７４】
まず、ステップ４０４で原稿画像データにおけるオブジェクト存在領域とコード画像データが重なると判定されると、ページ番号Nを警告リストに追加し（ステップ１５０９）、ステップ４０５へ進む。警告リストは、ユーザが編集すべきページのリストで、ホストコンピュータ４０のＲＡＭに格納される。全てのページに対してステップ４０２〜４０６と１５０９の処理を終えたら、警告リスト数が0より多いか判定し（ステップ１５１０）、0より多ければ、警告リストに格納されたページ番号を表示し（ステップ１５１１）、ステップ４０７へ進む。図１６は、表示画面の一例である。ステップ１５１０で警告リスト数が0と判定されれば、そのまま処理を抜ける。
【００７５】
（その他の実施例）
さらに本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【００７６】
また本発明の目的は、上述した実施例で示したフローチャートの手順を実現するプログラムコードを記録した記録媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。記録媒体とは、コンピュータ読み取り可能な記録媒体である。この場合、コンピュータ読み取り可能な記録媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記録した記録媒体も本発明の一つを構成することになる。
【００７７】
プログラムコードを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７８】
また、そのプログラムコードの指示に基づきコンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００７９】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込みまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８０】
【図１】画像形成システムの全体構成を示す図である。
【図２】プリンタが接続されたホストコンピュータのプリントシステムの構成を示すブロック図である。
【図３】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図４】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図５】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図６】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図７】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図８】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図９】プリンタドライバにおけるコード画像合成印刷を示すフローチャートである。
【図１０】コード画像印刷設定画面の一例を示す図である。
【図１１】オブジェクト存在領域の説明図である。
【図１２】サイズ変更ハンドルの説明図である。
【図１３】移動処理における移動後のコード画像座標の説明図である。
【図１４】サイズ変更処理におけるサイズ変更後のコード画像座標の説明図である。
【図１５】実施例２における重なり解消処理を示すフローチャートである。
【図１６】警告リスト表示画面の一例を示す図である。
【符号の説明】
【００８１】
４０  ホストコンピュータ
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
２０５  プリンタ
２０６  プレビュー
２０７  コード画像処理
２０８  コード画像処理
【図１】
2008278362.tif 000003
【図２】
2008278362.tif 000004
【図３】
2008278362.tif 000005
【図４】
2008278362.tif 000006
【図５】
2008278362.tif 000007
【図６】
2008278362.tif 000008
【図７】
2008278362.tif 000009
【図８】
2008278362.tif 000010
【図９】
2008278362.tif 000011
【図１０】
2008278362.tif 000012
【図１１】
2008278362.tif 000013
【図１２】
2008278362.tif 000014
【図１３】
2008278362.tif 000015
【図１４】
2008278362.tif 000016
【図１５】
2008278362.tif 000017
【図１６】
2008278362.tif 000018