本発明は、画像パターンを利用して電子データを紙に印字することができる画像形成装置および画像形成方法に関する。また、本発明は、入力画像を解析して、当該画像に埋め込まれている電子データを抽出することができる画像形成装置および画像形成方法に関する。
従来から電子データを符号化して生成した画像パターンを印字することによって電子データを紙に埋め込み、その画像を光学的に読み取り、電子データを抽出するという二次元コード技術がある。二次元コードで情報を埋め込むことで、より多くの電子情報を紙に埋め込むことが可能となった。
プリント機能とスキャン機能を合わせ持つ複写機を用いれば、二次元コードの埋め込みと読み込みを1台の機器で実現できる為、二次元コードを利用した複写機特有のシステムが開発されている。例えば、印刷出力に二次元コードとして機密文書であることを示す情報を埋め込み、複写時に画像形成装置において複写の禁止された機密文書であるかを判別して、機密文書であった場合は複写動作を停止するシステムがある(特許文献1)。他にも、画像形成装置の利用ログを紙文書に埋め込み文書の追跡に利用するシステムや、画像情報そのものを二次元コードとして、スキャン時にその画像情報を元にオリジナルの画像を印刷するシステム(特許文献2)などがある。また、画像形成装置において、予め文書を画像形成装置に登録しておき、前記予め登録された文書と、別の文書を画像合成(オーバーレイ)して印刷するシステム(特許文献3)がある。
これら用途に従って、最適な埋め込み方式が選択され、利用される。二次元コードの埋め込み方式は以下のように2通りに分類できる。
図1は、反復埋め込み方式と、単純埋め込み方式を用いて二次元コードが埋め込まれた原稿を示す図である。
10は、反復埋め込み方式により二次元コードが埋め込まれた原稿を示す。図中の点線で囲まれた矩形は、一つの情報埋め込みタイルを示す。この点線は実際には印刷されないが、10では情報埋め込みタイルの存在を分かりやすく示す為に点線を表記する。原稿10には、原稿全面に印刷されている各情報埋め込みタイルに全て同じ情報が埋め込まれているため、原稿の一部分からでも情報を抽出することが可能である。したがって、反復埋め込み方式により二次元コードが埋め込まれた原稿は、汚れやしわなどに対する耐性がある。また、反復埋め込み方式は二次元コードを原稿全面に印刷する為、二次元コードの可視性を下げるために情報埋め込みにはドットや線などを利用したパターンを生成するものが多い。一方、20は、単純埋め込み方式により二次元コードが埋め込まれた原稿を示す。図中の原稿の右下に二次元コードが印刷されている。単純埋め込み方式の場合、二次元コードの一部が欠けたり二次元コードが汚れたりすると、二次元コードから情報を抽出できなくなる。しかし、単純埋め込み方式の場合、高密度な二次元コードを生成するので、
原稿に埋め込める情報量を多くできるという利点がある。
機密文書を検出するシステムの場合、反復埋め込み方式を利用することが多い。一方、画像情報を埋め込んで利用するシステムの場合、多量の情報量を扱うため、単純埋め込み方式を利用することが多い。
次に、特許文献3で提案された、予め登録された文書と、別の文書を画像合成(オーバーレイ)して印刷するシステムの概要を説明する。図11は、特許文献3で提案されたシステムのデータの流れを示すブロック図である。図11において、1003は、ROM(プログラムROM)である。ROM1003には、制御プログラムとして以下のモジュールを構成として格納している。
201は、フォームファイル207を生成するためのフォーム生成モジュールである。202は、埋め込みデータファール208を生成するための埋め込みデータ生成モジュールである。203は、複数のフォームファイル207と埋め込みデータファイル208とから複合フォームファイル209を生成する複合ファイル生成モジュールである。204は、複合フォームファイルを展開するメモリ展開モジュールである。205は、展開された複合フォームファイルを順次解析する順次解析処理モジュールである。206は、複合フォームファイルを解析することにより得られた指示通りにオーバーレイ印刷をプリンタにおいて処理させるためのオーバーレイモジュールである。メモリ展開モジュール204と順次解析モジュール205とオーバーレイモジュール206を合わせてランタイムライブラリモジュールもしくはオーバーレイ指定モジュールとも言う。
1002は、上記のモジュールがロードされるメモリとして機能するRAMであり、帳票オブジェクトが格納される。帳票オブジェクトとは、帳票データ(フォームデータ)と埋め込みデータ(フィールドデータ)のことである。またRAM1002は、作業領域でもある。
1009は、データベース、埋め込みデータファイル、フォームファイル、あるいは複合フォームファイルが格納されるハードディスクである。207は、フォームファイルであり、前述したフォーム生成モジュール201により生成される帳票データ(フォームデータ)からなるファイルである。208は、埋め込みデータファイルであり、前述した埋め込みデータ生成モジュール203により生成される埋め込みデータ(フィールドデータ、後付けデータとも言う)からなるファイルである。209は、複合フォームファイルであり、前述した複合ファイル生成モジュール203により生成される複数のフォームファイルから定義付けられる複合フォームファイルである。複合フォームファイル209は、複数種の帳票フォームを1つの関連した連続なフォームとして管理されるフォーム情報と、フォーム毎の出力先用紙カセットなどの出力情報とを併せ持つ情報ファイルと定義される。210は、データベースであり、後述するように埋め込みデータ生成モジュール202によりアクセスされ、埋め込みデータファイル208が生成される。
ROM1003に格納されたそれぞれのプログラムモジュールにより生成されたオーバーレイデータ(帳票データと埋め込みデータとからなる)は、OSへ渡される。OSは、アプリケーションから出力されたデータ関数(GDI関数)を出力デバイスで認識できる共通のデータ関数(DDI関数)に対応させて、該アプリケーションにより指定されたプリンタドライバ211にデータ関数を出力する。ここの部分を処理する関数対応手段は、OSの機能の一部であり、Windows(登録商標)でいうGDIに相当する部分である。この機能は公知であるので、詳細な制御は省略する。
プリンタドライバ211は、OSの関数対応手段から入力されたデータ関数(DDI関数)を印刷出力するプリンタで解析し、印刷処理可能なページ記述言語(PDL)で印刷データを生成する。生成された印刷データは、印刷装置であるプリンタに出力送信される。プリンタでは、印刷データで指示されたように、ビットマップデータを生成し、印刷出力する。プリンタはオーバーレイ可能であり、フォーム用印刷データと埋め込み用印刷データとを受信し、オーバーレイ(重ね合せ)処理を実行して、印刷する。なお、プリンタがオーバーレイ機能を有していない場合は、プリンタドライバ211でオーバーレイ処理を実行することにより、すべてのページの印刷データを生成してプリンタに送信すればよい。
特開2002−305646号公報
特開2004−153568号公報
特開2000−122837号公報
このように、二次元コードを用いたシステムでは、その目的にしたがって様々な二次元コードが利用されるため、異なる複数の二次元コードが同時に利用されることが考えられる。すなわち、同一の紙面上に異なる複数の二次元コードを印刷することが考えられる。異なる複数の二次元コードが同時に利用された場合、それらの二次元コードがお互いに干渉し合うことにより、各二次元コードから情報を読み取れなくなるおそれがある。つまり、異なる複数の二次元コードを同時に利用するシステムの場合、二次元コードが既に埋め込まれている原稿を複写する際にその上に新たな二次元コードを追加して印刷すると、既に埋め込まれている二次元コードを破損する可能性がある。
また、二次元コードを用いたシステムでは、その目的にしたがって様々な二次元コードが利用されるため、異なる複数の二次元コードが同時に利用されることが考えられる。例えば、既に二次元コードが埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成(オーバーレイ)した後に印刷するシステムがある。この印刷システムの場合、それらの二次元コードが互いに干渉し合うことにより各二次元コードから情報を読み取れなくなるおそれがある。つまり、二次元コードが既に埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成した後、印刷する際にその上に新たな二次元コードを追加して印刷すると、既に埋め込まれている二次元コードを破損する可能性がある。
既に埋め込まれている二次元コードの破損を防ぐために、二次元コードを利用した機能を有効にした場合は、フォーム合成機能を使用出来なくするシステムが容易に考えられるが、ユーザの利便性を損なう可能性がある。
そこで、本発明の第一の目的は、既に二次元コードが埋め込まれている原稿を複写する場合に、新たに埋め込む二次元コードが既に埋め込まれている二次元コードを破損することを防止することにある。
本発明の第二の目的は、既に二次元コードが埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成した後、印刷する場合、新たに埋め込む二次元コードが既に埋め込まれている二次元コードを破損することを防止することにある。
本発明に係る装置は、反復埋め込み方式のコードを含むスキャン画像に対して単純埋め込み方式のコードを合成する設定が行われているか、反復埋め込み方式のコードを合成する設定が行われているか判定する判定手段と、前記判定手段で前記スキャン画像に対して単純埋め込み方式のコードを合成する設定が行われていると判定した場合には、前記単純埋め込み方式のコードを前記反復埋め込み方式のコードに重なった位置に合成し、合成結果を印刷する印刷手段とを有し、前記印刷手段は、前記判定手段で前記スキャン画像に対して反復埋め込み方式のコードを合成する設定が行われていると判定した場合には、画像の印刷を行わないことを特徴とする。
本発明によって、既に二次元コードが埋め込まれている原稿を複写する場合に、既に埋め込まれている二次元コードを破損するのを防止できる。
また、既に二次元コードが埋め込まれている原稿を複写する場合に、新たな二次元コードを追加して印刷しても、既に埋め込まれていた二次元コードと新たに埋め込まれた二次元コードの両方から情報を抽出できる。
また、本発明によって、既に二次元コードが埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成(オーバーレイ)した後、印刷する場合に、既に埋め込まれている二次元コードを破損するのを防止できる。
また、本発明によって、既に二次元コードが埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成された印刷データを印刷する場合に、新たな二次元コードを追加して印刷しても、二次元コードを破損するのを防止できる。
まず、本実施形態で利用する情報埋め込み方式に対応する情報抽出方式について説明する。
前述の通り、情報埋め込み方式には反復埋め込み方式と単純埋め込み方式の2種類あるが、各情報埋め込み方式に対応する情報抽出方式を説明する。
以下の説明において、情報抽出処理は、画像形成装置により行われる。画像形成装置は、各情報抽出方式を用いて、スキャナが読み取った画像から情報を抽出する。ここで、画像形成装置は、内部にCPUや記憶部を有し、CPUは、記憶部に格納されているプログラムやデータを読み出すことによって以下に例示する処理を実行する。
(A)反復埋め込み方式
反復埋め込み方式として、原稿上に二次元コードとしてドットを印刷することで埋め込まれた情報を抽出する例に示す。反復埋め込み方式では、原稿全体に二次元コードを印刷する為、できるだけ可視性の低い埋め込み方法が望まれる。本実施形態では、図2に示すように原稿に引かれた仮想グリッド202の交差点付近にドット(201)を印刷し、交差点からのドットの変位により情報を埋め込む二次元コードを例にあげる。
図3は、反復埋め込み方式により、入力画像中に埋め込まれている二次元コードを抽出する処理の流れを示すフローチャートである。
画像形成装置は、スキャナが読み取った画像を入力すると、その入力画像を走査して画像中に含まれるドットを検出する(S301)。
画像形成装置は、検出した全てのドットの絶対座標、粒形サイズおよび濃度等のドット情報を算出する(S302)。
画像形成装置は、情報ドットのみを検出するために、算出したドット情報に基づき、検出したドットから埋め込み情報に係わる情報ドット以外のドットを削除するハーフトーン除去処理を行う(S303)。
画像形成装置は、グリッドを再現するために、検出した情報ドットと近隣ドットとの距離を計測し、グリッド間隔を算出する。また、画像形成装置は、すべての情報ドットに対して近隣の情報ドットまでの角度を測定し、グリッドの回転角度も算出する(S304)。画像形成装置は、グリッド間隔、回転角度を求めた後、グリッド(図2の202)の交差点に対する情報ドットの相対的位置を計測する。
画像形成装置は、各データ領域の位置とサイズを算出するために、反復されて埋め込まれているデータ領域の繰り返しサイズを決定する(S305)。
画像形成装置は、繰り返し埋め込まれたデータ領域にある情報ドットの位置とサイズを算出し(S306)、埋め込まれたデータを抽出する(S307)。
最後に、画像形成装置は、抽出したデータにエラー訂正処理を施して(S308)、埋め込まれた情報を取得する。
以上は、本実施形態で示す反復埋め込み方式に対応する情報抽出方式の一例であるが、本発明はこれに限るものではなく他の反復埋め込み方式に対応する情報抽出方式を用いてもよい。
(B)単純埋め込み方式
単純埋め込み方式の抽出方法として、二次元コード(QRコード)の抽出の例に示す。
図4は、入力画像中に付加された二次元コードを抽出する処理の流れを示すフローチャートである。
画像形成装置は、スキャナが読み取った画像を入力すると、その入力画像を走査して所定の二次元コードの位置を検出する(S401)。二次元コードの位置の検出は、二次元コードの4隅のうち3隅に配置される同一の切り出しシンボルのパターンを利用して行う。
画像形成装置は、切り出しシンボルに隣接する形式情報を復元し、シンボルに適用されている誤り訂正レベル及びマスクパターンを取得する(S402)。
画像形成装置は、取得したマスクパターンを利用して、符号化領域ビットパターンをXOR演算することによってマスク処理を解除する(S403)。
画像形成装置は、モデルに対応する配置規則に従いシンボルキャラクタを読み取り、メッセージのデータ及び誤り訂正コードを復元する(S404)。
画像形成装置は、復元されたデータに対して誤り訂正コードを適用して、復元されたデータに誤りがあるかどうかを判定し(S405)、誤りがある場合には、その誤りを訂正する(S406)。
画像形成装置は、誤り訂正されたデータに対して誤り検出符号を適用して、当該データに誤りがないか否かを判定し(S407)、誤りがない場合には、抽出データの復号が成功したと判断し、当該データを出力する(S408)。これに対して、誤りがある場合には、抽出データの復号が失敗したと判断し、処理を終了する(4609)。
以上は、本実施の形態で示す単純埋め込み方式に対応する情報抽出方式の一例であるが、本発明はこれに限るものではなく他の単純埋め込み方式に対応する情報抽出方式を用いてもよい。
次に複数の二次元コードが同一の紙面上に印刷される場合の課題について説明する。
ここでは、二次元コードが既に印刷されている原稿を複写し、更に新しい二次元コードを印刷した場合に、複写後の原稿に印刷されている各二次元コードから情報を抽出する際の課題を説明する。以降の説明では、既に原稿に印刷されていた二次元コードを第2の二次元コード(第2の符号画像)とよび、新たに印刷される二次元コードを第1の二次元コード(第1の符号画像)とよぶ。
以下の表2は、第1の二次元コードの埋め込み方式及び第2の二次元コードの埋め込み方式と、それら2つの二次元コードが埋め込まれた原稿から情報を抽出した際の抽出結果を示した表である。抽出結果における「○」は情報抽出可能であることを示し、「×」は情報抽出不可であることを示し、「△」は、情報抽出が可能な場合と不可な場合とがあることを示す。
表2からわかるように、二次元コードが重なり合って印刷されると情報の復元ができなくなる。情報復元が可能か否かは、二次元コードの印刷の順番とその埋め込み方式の特性に依存する為、以下、表2を参照して実施例を説明する。
実施例1では、上述の情報埋め込み技術を用いて複写時に情報を埋め込む場合に、原稿に既に埋め込まれている第2の二次元コードと、新たに埋め込む第1の二次元コードとが重なり合わないようにする埋め込み制御の処理を示す。
図5は、実施例1の処理を示すフローチャートである。
スキャナは、原稿を読み取り、読み取った画像を画像形成装置に送る(S501)。
画像形成装置は、スキャナから画像を受け取ると、その入力画像(スキャン画像)に第2の二次元コードが埋め込まれているか否かを判定する(S502)。入力画像に第2の二次元コードが埋め込まれていない場合は、画像形成装置は、そのまま複写動作を継続し、印刷を行う(S507)。これに対して、入力画像に第2の二次元コードが埋め込まれている場合は、画像形成装置は、第2の二次元コードの位置と埋め込み方式を特定する(S503)。
画像形成装置は、複写時の設定として、新たな二次元コードである第1の二次元コードの埋め込み指示がされているかどうかを判定し(S504)、第1の二次元コードの埋め込みが指定されていない場合は、そのまま複写動作を継続し、印刷を行う(S507)。これに対して、第1の二次元コードの埋め込み指示がされている場合は、画像形成装置は、指示された第1の二次元コードの印刷が可能か否かを判定する(S505)。
ここで、第1の二次元コードの印刷が可能か否かの判定処理(S505)を詳細に説明する。
図6は、第1の二次元コードの印刷が可能か否かを判定する判定処理(S505)の流れを示すフローチャートである。
画像形成装置は、第2の二次元コードの埋め込み方式の種類(反復埋め込み方式又は単純埋め込み方式)と、第2の二次元コードの印刷領域の位置情報を取得する(S601)。
画像形成装置は、第1の二次元コードの埋め込み方式の種類と、第1の二次元コードの印刷領域の位置情報を取得する(S602)。
画像形成装置は、第1の二次元コードの埋め込み方式が反復埋め込み方式である場合、表2で示した通り、第2の二次元コードの上に印刷すると第2の二次元コードを破損する恐れがあるため、第1の二次元コードは印刷不可と決定する(S606)。これに対して、第1の二次元コードの埋め込み方式が単純埋め込み方式である場合、画像形成装置は、第1の二次元コードの印刷領域と、第2の二次元コードの印刷領域に重なりがあるか否かを判定する(S604)。判定した結果、第2の二次元コードの印刷領域と第1の二次元コードの印刷領域に重なりがある場合は、第1の二次元コードを埋め込むと第2の二次元コードが破損される恐れがあるため、印刷不可(出力停止)と決定する(S606)。これに対して、第1の二次元コードの印刷領域と第2の二次元コードの印刷領域に重なりがない場合は、第1の二次元コードは印刷可能と決定し(S605)、画像形成装置の処理を終了する。
以下、図5に示すフローチャートの説明に戻る。
S505において、第1の二次元コードが印刷可能と判定した場合、画像形成装置は、第1の二次元コードと入力画像上の第2の二次元コードとを合成して(S506)、印刷を行う(S507)。これに対して、第1の二次元コードは印刷不可と判定した場合、画像形成装置は、ジョブをキャンセルする(S508)。尚、画像形成装置は、ジョブをキャンセルせずに、第1の二次元コードを合成しないで入力画像をそのまま複写してもよい。また、画像形成装置は、第1の二次元コードが印刷不可と判定した場合にジョブをキャンセルするか否かをユーザが設定した値に基づいて判定する手段を備えても良い。
以上説明したように、実施例1によれば、既に二次元コードが埋め込まれた原稿を複写する際に、その二次元コードが破損しないように新たな二次元コードの埋め込みを制御できる。
実施例2では、上述の情報埋め込み技術を用いて、複写時に情報を埋め込む場合に、第2の二次元コードと第1の二次元コードから情報が復元可能な最低領域を保証する埋め込み制御の処理を示す。
実施例2で示す処理は、第1の二次元コードの印刷が可能か否かを判定する判定処理(S505)が図5に示す処理とは異なり、他の処理は同様である。したがって、第1の二次元コードが印刷可能か否かを判定する判定処理(S505)を詳細に説明する。
図7は、第1の二次元コードの印刷が可能か否かを判定する判定処理(S505)の流れを示すフローチャートである。
S701〜S703の処理は、図6に示すS601〜S603の処理と同じであるため説明を省略する。
実施例1では、S604において、第1の二次元コードと第2の二次元コードの印刷領域に重なりがある場合、第2の二次元コードから情報を復元できないとみなして、第1の二次元コードの印刷を無条件に不可と決定した。その理由は、第2の二次元コードが反復埋め込み方式で埋め込まれている場合、第2の二次元コードは原稿の全面に印刷されているため、第1の二次元コードを第2の二次元コードに重ならないように埋め込むことはできないからである。しかし、反復埋め込み方式の特性から、反復埋め込み方式によって埋め込まれている第2の二次元コードの領域の一部が失われても、残りの部分から情報を復元することができる場合がある。すなわち、第1の二次元コードの埋め込み方式が単純埋め込み方式である場合、第1の二次元コードを第2の二次元コードの上に印刷しても第1の二次元コード及び第2の二次元コードから情報を復元できる場合がある(表2の2のケース)。ただし、反復埋め込み方式でも情報を復元するための最低の領域は必要である。
実施例2では、このような反復埋め込み方式の特性を利用した判定処理を行う。
画像形成装置は、S703において第1の二次元コードの埋め込み方式が単純埋め込み方式と判定した場合には、S704の処理に進む。
画像形成装置は、第1の二次元コードの印刷領域と、第2の二次元コードの印刷領域に重なりがあるか否かを判定し(S704)、重なりがある場合にはS705の処理に進む。
画像形成装置は、S701とS702で取得した第2の二次元コードの位置情報と第1の二次元コードの位置情報から、第1の二次元コードの領域と重ならない第2の二次元コード領域の個数を取得する(S705)。図8は、第1の二次元コード21を第2の二次元コード11の上に印刷した状態を示す図である。図において、丸印が付けられた領域(情報埋め込みタイル)は、両者が重ならない領域である。
画像形成装置は、第1の二次元コードと重ならない第2の二次元コードの領域の個数と既定の値とを比較する(S706)。画像形成装置は、第1の二次元コードと重ならない第2の二次元コードの領域の個数が既定値よりも大きい場合は、第2の二次元コードの上に第1の二次元コードを印刷しても情報の復元は可能と判定し、第1の二次元コードは印刷可能と決定する(S708)。これに対して、第1の二次元コードと重ならない第2の二次元コードの領域の個数が既定値よりも小さい場合は、第1の二次元コードを印刷すると第2の二次元コードの情報の復元は不能と判定し、第1の二次元コードは印刷不可と決定する(S707)。
以下、図5に示すフローチャートの説明に戻る。
S505において、第1の二次元コードは印刷可能と判定した場合、画像形成装置は、第1の二次元コードを入力画像上の第2の二次元コードに合成して(S506)、印刷を行う(S507)。これに対して、第1の二次元コードが印刷不可と判定した場合、画像形成装置は、ジョブをキャンセルする(S508)。尚、画像形成装置は、ジョブをキャンセルせずに、第1の二次元コードを合成しないで入力画像をそのまま複写してもよい。
また、画像形成装置は、第2の次元コードが印刷不可と判定した場合にジョブをキャンセルするか否かをユーザが設定した値に基づいて判定する手段を備えても良い。
以上説明したように、実施例2によれば、既に二次元コードが埋め込まれた原稿を複写する際に、当該二次元コードから情報を復元できる最低領域を考慮して新たな二次元コードを埋め込むため、多くの種類の二次元コードを埋め込むことができる。
実施例1及び実施例2では、複写時に指定された新たな二次元コード(第1の二次元コード)を印刷できるか否かを判定し、印刷できない場合は、新たな二次元コードの印刷を行わないよう制御した。一方、実施例3では、既に埋め込まれている二次元コード(第2の二次元コード)の領域に従って、新たに埋め込む二次元コードの印刷位置を調整する制御を行う。
図9は、実施例3の処理を示すフローチャートである。
S901〜S903の処理は、図5に示すS501〜S503の処理と同じであるため説明を省略する。
画像形成装置は、複写時の設定として、新たな二次元コードである第1の二次元コードの埋め込み指示がされているかどうかを判定し(S904)、第1の二次元コードの埋め込みが指示されていない場合は、そのまま複写動作を継続し、印刷を行う(S910)。これに対して、第1の二次元コードの埋め込み指示がされている場合は、画像形成装置は、S905の処理に進む。
画像形成装置は、出力原稿のサイズを取得する(S905)。
画像形成装置は、第1の二次元コードの埋め込み方式が単純埋め込み方式か反復埋め込み方式かを判定し(S906)、単純埋め込み方式の場合には、S907の処理に進み、反復埋め込み方式の場合には、S911の処理に進む。
画像形成装置は、第1の二次元コードの埋め込み方式が反復埋め込み方式の場合には、第1の二次元コードを第2の二次元コードの印刷領域に埋め込まないように合成し(S911)、印刷する(S910)。これに対して第1の二次元コードの埋め込み方式が単純埋め込み方式の場合には、第2の二次元コードに重ならないように第1の二次元コードを埋め込む領域を探索し(S907)、探索した領域に第1の二次元コードを埋め込み可能な否かを判定する(S908)。図10は、第1の二次元コードを埋め込む領域の探索を説明するための図である。探索は、第2の二次元コード22の周りの8領域((1)〜(8))のいずれかに第1の二次元コード23を埋め込めるか否かを判定することによって行われる。画像形成装置は、第2の二次元コード22の位置座標とサイズ、第1の二次元コード23のサイズ、印刷原稿のサイズに基づいて判定を行う。8領域のいずれかに埋め込み可能と判定した場合、画像形成装置は、第1の二次元コードをその埋め込み可能領域に埋め込み、印刷を行う(S909、S910)。これに対して、8領域のいずれにも埋め込めないと判定した場合、画像形成装置は、第1の二次元コードの埋め込みはできない
と決定し、ジョブをキャンセルする(S912)。尚、画像形成装置は、ジョブをキャンセルせずに、第1の二次元コードを合成しないで入力画像をそのまま複写してもよい。また、画像形成装置は、第2の次元コードが印刷不可と判定した場合にジョブをキャンセルするか否かをユーザが設定した値に基づいて判定する手段を備えても良い。
実施例3では、第1の二次元コードの埋め込みが可能か否かの判定を図10に示す8領域に対して行うが、それ以外の判定方法、埋め込み位置の指定でも構わない。例えば、複写の指示を行ったユーザに第1の二次元コードの埋め込み位置を指定させる構成にしてもよい。
以上説明したように、実施例3によれば、既に二次元コードが埋め込まれた原稿を複写する際に、新たな二次元コードの埋め込みにより、既に埋め込まれている二次元コードが破損することを防止できる。さらに、既に埋め込まれている二次元コードの領域に重ならないように新たな二次元コードを埋め込むため、多くの種類の二次元コードを埋め込むことができる。
実施例4では、上述の情報埋め込み技術を用いて既に二次元コードが埋め込まれているフォームデータに、二次元コードが埋め込まれた原稿を画像合成(オーバーレイ)した後、印刷時に情報を埋め込む場合の処理を示す。具体的には、フォームデータに既に埋め込まれている二次元コードと、新たに埋め込む二次元コードとが重なり合わないようにする埋め込み制御の処理を示す。
図12は、フォームデータを登録する際の実施例4の処理を示すフローチャートである。
画像形成装置は、パソコンやサーバーなどホストコンピュータからフォームデータを受信する(S1201)。
画像形成装置は、ホストコンピュータからフォームデータを受け取ると、その入力画像(フォームデータ)に二次元コードが埋め込まれているか否かを判定する(S1202)。入力画像に二次元コードが埋め込まれていない場合は、画像形成装置は、そのままフォーム登録動作を継続する(S1205)。これに対して、入力画像に二次元コードが埋め込まれている場合は、画像形成装置は、二次元コードの位置と埋め込み方式を特定する(S1203)。つぎに、画像形成装置は、S1203で特定した二次元コードの位置と埋め込み方式を元に、二次元コードのみのレイヤー(電子透かし情報レイヤー等の二次元コードレイヤー)を作成して、二次元コードレイヤーを記憶装置に記憶する(S1204)。そして、画像形成装置は、二次元コードを含まないデータのみのレイヤー(画像レイヤー)を作成して、記憶装置に記憶する(S1207)。
ここで、実施例4における二次元コードは、第1の二次元コード、第2の二次元コードのどちらでも良い。
次に、図13を用いて、実施例4における画像形成装置の動作を説明する。
画像形成装置は、図12に示す処理において登録されたフォームデータと画像合成するための画像データを画像形成装置に入力した際、フォームデータに含まれる二次元コードと、画像データに含まれる二次元コードが重なり合うことを防止する機能を有する。
図13において、画像形成装置は、ホストコンピュータから印刷のための印刷データを受信する(S1301)。画像形成装置は、印刷時の設定として、図12で登録したフォームデータの合成の指示がされているかどうかを判定する(S1302)。フォームデータの合成が指定されていない場合は、画像形成装置は、そのまま印刷動作を継続し、印刷を行う(S1308)。これに対して、フォームデータの合成が指定されている場合、画像形成装置は、印刷データに二次元コードが埋め込まれているか判定する(S1303)。印刷データに二次元コードが埋め込まれていない場合、S1305に進む。印刷データに二次元コードが埋め込まれている場合、画像形成装置は、印刷データ中の二次元コードの種類と、印刷データ中の二次元コードの位置を特定する(S1304)。次に、画像形成装置は、フォームデータに二次元コードが埋め込まれているか判定する(S1305)。フォームデータに二次元コードが埋め込まれていない場合、画像形成装置は、フォームデータと印刷データを合成する(S1309)。フォームデータに二次元コードが埋め込まれている場合、画像形成装置は、フォームデータと印刷データを合成した際に、フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合うかどうか判断する(S1306)。フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合わない場合、画像形成措置は、フォームデータと印刷データを合成する(S1309)。フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合う場合、画像形成装置は、フォームデータ中の二次元コードを含まないデータ(画像レイヤー)と印刷データを合成する(フォームデータ中の二次元コードは合成しない)(S1307)。次いで、画像形成装置は、S1307で合成した印刷データを印刷する(S1308)。
ここで、ホストコンピュータから印刷データを受信した場合として説明してきたが、画像形成装置に接続されたスキャナから複写のための複写データを受信した場合においても本実施例と同様の手段を用いても良い。
以上説明したように、実施例4によれば、二次元コードが埋め込まれたフォームデータと印刷データを合成する指示をされた状態で、二次元コードが埋め込まれた印刷データを印刷する際に、二次元コードが破損しないように二次元コードの埋め込みを制御できる。
実施例5では、予め登録されたフォームデータと、印刷データの合成に加えて、画像形成装置に二次元コードの埋め込みが設定(二次元コード付加の設定)された場合の動作について説明する。表3は、予め登録されたフォームデータと、印刷データの合成に加えて、画像形成装置に二次元コードの埋め込み設定のそれぞれの有無の組み合わせと、印刷結果を示す表である。
表3において、各マス中の斜め線の上部は画像データの構成を示し、画像データの構成に複数の要素が書かれているマスは、それぞれの画像が重ね合わされたものが印刷されることを示す。各マス中の斜め線の下部は二次元コードの構成を示す。二次元コードの構成に複数の要素が書かれているマスは、それぞれの二次元コードが重ならない場合、全ての二次元コードが印刷されることを示す。また、当該マスは、それぞれの二次元コードの一部が重なる場合、重ならない二次元コードが印刷されることを示す。また、当該マスは、それぞれの二次元コードの全てが重なる場合、いずれか一つの二次元コードが印刷されることを示す。A行1列およびB行1列は、印刷データ中の画像データおよび二次元コードの有無を示し、C行は、フォームデータ中の画像データおよび二次元コードの有無を示し、D行は、埋め込み設定中の画像データおよび二次元コードの有無を示す。A行2列〜7列およびB行2列〜7列は印刷されたデータの画像データおよび二次元コードの構成を示す。
次に、図14を用いて、実施例5における画像形成装置の動作を説明する。
画像形成装置は、図12に示す処理において登録されたフォームデータと画像合成するための画像データを画像形成装置に入力した際、二次元コードの重なりを防止する機能を有する。具体的には、画像形成装置は、フォームデータに含まれる二次元コードと、画像データに含まれる二次元コードと、画像形成装置に強制埋め込みを設定された二次元コードが重なり合うことを防止する機能を有する。
図14において、画像形成装置は、ホストコンピュータから印刷のための印刷データを受信する(S1401)。画像形成装置は、印刷時の設定として、図12に示す処理において登録されたフォームデータの合成の指示がされているかどうかを判定する(S1402)。フォームデータの合成が指定されていない場合は、S1408に進む。これに対して、フォームデータの合成が指定されている場合、画像形成装置は、印刷データに二次元コードが埋め込まれているか判定する(S1403)。印刷データに二次元コードが埋め込まれていない場合、S1405に進む。印刷データに二次元コードが埋め込まれている場合、画像形成装置は、印刷データ中の二次元コードの種類と、印刷データ中の二次元コードの位置を特定する(S1404)。
次に、画像形成装置は、フォームデータに二次元コードが埋め込まれているか判定する(S1405)。フォームデータに二次元コードが埋め込まれていない場合、画像形成装置は、フォームデータと印刷データを合成する(S1412)。フォームデータに二次元コードが埋め込まれている場合、画像形成装置は、フォームデータと印刷データを合成した際に、フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合うかどうか判断する(S1406)。フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合わない場合、画像形成装置は、フォームデータと印刷データを合成する(S1412)。フォームデータ中の二次元コードと、印刷データ中の二次元コードが重なり合う場合、画像形成装置は、フォームデータ中の二次元コードを含まないデータ(画像レイヤー)と、印刷データを合成し、フォームデータ中の二次元コードは合成しない(S1407)。
次に、画像形成装置は、自装置に二次元コードの埋め込みの設定(強制埋込設定)がされているかどうか判断する(S1408)。強制埋め込みが設定されていない場合、画像形成装置は、S1412またはS1407で合成した印刷データを印刷する(S1411)。
次に画像形成装置に二次元コードの埋め込みの設定(強制埋込設定)がされている場合、当該二次元コードを埋め込むと、二次元コードが重なり合うか否かを判定する(S1409)。具体的には、画像形成装置は、S1412またはS1407で合成した印刷データと、設定により埋め込まれる二次元コードを合成した際に、合成した印刷データ中の二次元コードと、設定により埋め込まれる二次元コードが重なり合うかどうか判断する。S1412またはS1407で合成した印刷データ中の二次元コードと、設定により埋め込まれる二次元コードが重なり合う場合、画像形成装置は、二次元コードが重なっても印刷する設定かどうか判断する(S1413)。二次元コードが重なっても印刷する設定の場合、画像形成装置は、印刷を行う(S1411)。二次元コードが重なったら印刷しない設定の場合、画像形成装置は、印刷ジョブをキャンセルする(S1414)。また、S1409において、S1412またはS1407で合成した印刷データ中の二次元コードと、設定により埋め込まれる二次元コードが重ならない場合、S1410に進む。S1410において、画像形成装置は、S1412またはS1407で合成した印刷データ中の二次元コードと、設定により埋め込まれる二次元コードを合成し(S1410)、S1410で合成されたータを印刷する(S1411)。
上述した通り、画像形成装置は、入力画像に二次元コードが含まれているかどうか、画像形成装置に二次元コード付加の設定がされているかどうか、及び、入力画像に合成されるべきフォームデータに二次元コードが含まれるかいるかどうかを判定する。そして、これらの3つの判定結果に従って印刷出力の可否を判定し、印刷出力の二次元コードを切り替える。
また、図には示さないが、画像形成装置は、指示部と、第1の検出部と、第1の合成画像形成部と、記憶部と、第2の検出部と、第2の合成画像形成部と、出力部とを備え、各部が以下に述べる処理を実行する構成であってもよい。
指示部は、第1の入力画像(印刷データ)に第1の符号画像(第1の二次元コード)の合成を指示する。
第1の検出部は、第1の入力画像(印刷データ)に第2の符号画像(第2の二次元コード)が含まれているかどうかを検出する。
第1の合成画像形成部は、第1の検出部が第2の符号画像(第2の二次元コード)を検出した場合、第1の入力画像(印刷データ)と第1の符号画像(第1の二次元コード)とを合成しない。これに対して、第1の検出部が第2の符号画像(第2の二次元コード)を検出しない場合、第1の入力画像(印刷データ)と第1の符号画像(第1の二次元コード)とを合成する。
記憶部は、第2の入力画像(フォームデータ)を記憶する。
第2の検出部は、第2の入力画像(フォームデータ)に第3の符号画像(第3の二次元コード)が含まれているかどうかを検出する。
第2の合成画像形成部は、第2の検出部が第3の符号画像(第3の二次元コード)を検出した場合、第1の合成画像形成手段による第1の合成画像出力と、第3の符号画像(第3の二次元コード)を含まない第2の入力画像(フォームデータ)とを合成する。これに対して、第2の検出部が第3の符号画像(第3の二次元コード)を検出しない場合は、第1の合成画像形成部による第1の合成画像出力と、第3の符号画像(第3の二次元コード)を含めた第2の入力画像(フォームデータ)とを合成する。
出力部は、第2の合成画像形成部による第2の合成画像を出力する。
実施例5によれば、既に二次元コードが埋め込まれているフォームデータに二次元コードが埋め込まれた原稿が画像合成された印刷データを印刷する場合に、新たな二次元コードを追加して印刷しても、二次元コードを破損するのを防止できる。
(他の実施例)
ここで説明のため、フォームデータはホストコンピュータから受信するとして、説明してきたが、画像形成装置に接続されたスキャナから入力するなど、画像データを転送できるものであればどのような装置からフォームデータを入力しても良い。
実施例1〜3では、画像形成装置に接続されたスキャナから入力した原稿を複写する場合を例として説明した。しかし、実施例4又は5のようにホストコンピュータから受信した印刷データを印刷する場合のように、画像形成装置に画像データを転送できるものであればどのような装置から印刷データを入力しても良い。
本発明の目的は、上述した実施例で示した構成の動作(ステップ)を達成するプログラムコードを記録した記録媒体から、システムあるいは装置のコンピュータ(またはCPUやMPU)が、プログラムコードを読出し実行することによっても達成される。記録媒体とは、コンピュータ読み取り可能な記録媒体である。この場合、コンピュータ読み取り可能な記録媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記録した記録媒体も本発明の一つを構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、そのプログラムコードの指示に基づきコンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
反復埋め込み方式と、単純埋め込み方式を用いて二次元コードが埋め込まれた原稿を示す図である。
反復埋め込み方式による情報埋め込みの一例を示す図である。
反復埋め込み方式により、入力画像中に埋め込まれている二次元コードを抽出する処理の流れを示すフローチャートである。
入力画像中に付加された二次元コードを抽出する処理の流れを示すフローチャートである。
実施例1の処理を示すフローチャートである。
実施例1における、第1の二次元コードの印刷が可能か否かを判定する判定処理の流れを示すフローチャートである。
実施例2における、第1の二次元コードの印刷が可能か否かを判定する判定処理の流れを示すフローチャートである。
第1の二次元コードを第2の二次元コードの上に印刷した状態を示す図である。
実施例3の処理を示すフローチャートである。
第1の二次元コードを埋め込む領域の探索を説明するための図である。
本発明の従来例におけるシステムのデータの流れを示すブロック図である。
実施例4における、フォームデータの登録処理の流れを示すフローチャートである。
実施例4における、フォーム合成印刷処理の流れを示すフローチャートである。
実施例5における、フォーム合成印刷処理の流れを示すフローチャートである。
符号の説明
10 反復埋め込み方式により二次元コードが埋め込まれた原稿
20 単純埋め込み方式により二次元コードが埋め込まれた原稿