(57)【要約】【課題】  特定する情報を印刷することによって増加するトナーやインクなどの消耗品の消費量を低減すること。【解決手段】  特定情報取得部４１は、印刷データと印刷データ関連情報を取得し、画像データ生成部３６は、印刷データ関連情報から画像データを生成し、画像印刷領域抽出部３４は、印刷データの画像印刷領域を抽出し、合成処理部３７は、画像印刷領域に画像データを合成し、送信部３９は合成処理部３７で合成されたデータを印刷装置７０へ送信する。【選択図】        図１
2008022237.tif 000002
【特許請求の範囲】
【請求項１】
印刷データ、及び印刷データ関連情報を取得するデータ取得部と、
前記印刷データ関連情報から画像データを生成する画像データ生成部と、
前記印刷データの画像印刷領域を抽出する画像印刷領域抽出部と、
前記画像印刷領域に前記画像データを合成する合成部と、
前記合成部で合成されたデータを画像形成部に送信する送信部とを有することを特徴とする画像処理装置。
【請求項２】
前記合成部は、更に、前記画像印刷領域と前記画像データとの重なりを判定し、重なり有りと判定すると、前記画像印刷領域に前記画像データを合成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データは、地紋データであることを特徴とする請求項１または請求項２の画像処理装置。
【請求項４】
前記画像データは、文字として視認可能なデータであることを特徴とする請求項１または請求項２の画像処理装置。
【請求項５】
印刷データ、及び印刷データ関連情報を取得するデータ取得部と、
前記印刷データ関連情報から画像データを生成する画像データ生成部と、
前記印刷データの光学読み取り認識情報存在領域を抽出する画像印刷領域抽出部と、
少なくとも前記光学読み取り認識情報存在領域を除いて前記印刷データに前記画像データを合成する合成部と、
前記合成部で合成されたデータを画像形成部に送信する送信部を有することを特徴とする画像処理装置。
【請求項６】
前記合成部は、更に、前記光学読み取り認識情報存在領域と前記画像データとの重なりを判定し、重なり有りと判定すると、前記光学読み取り認識情報存在領域を除いて前記画像データを前記印刷データに合成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記光学読み取り認識情報は、バーコード情報であることを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項８】
前記光学読み取り認識情報は、ＯＣＲ文字であることを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項９】
前記画像データは、地紋データであることを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項１０】
前記画像データは、文字として視認可能なデータであることを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項１１】
印刷データ、及び印刷データ関連情報を取得するデータ取得部と、
前記印刷データ関連情報から画像データを生成する画像データ生成部と、
前記画像データを合成しない前記印刷データの領域を指定する画像除外指定部と、
前記画像除外指定部で指定された前記領域を画像除外領域とする画像印刷領域抽出部と、
前記画像除外領域を除いた前記画像印刷情報存在領域に前記画像データを合成する合成部と、
前記合成部で合成されたデータを画像形成部に送信する送信部を有することを特徴とする画像処理装置。
【請求項１２】
前記画像データが地紋データであることを特徴とする請求項１１記載の画像処理装置。
【請求項１３】
前記画像データが文字として視認可能なデータであることを特徴とする請求項１１記載の画像処理装置。
【請求項１４】
前記画像除外指定部は、描画手順内の一部分又は複数部分の描画オブジェクト群を指定することを特徴とする請求項１１に記載の画像処理装置。
【請求項１５】
前記画像除外指定部は、前記印刷データ内の一部分又は複数部分を画像除外領域として指示することを特徴とする請求項１１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷者や印刷状況を特定する情報を合成した画像データを生成する画像処理装置に関するものである。
【背景技術】
【０００２】
オフィスなどにおいて、印刷文書にその文書の印刷者などを特定できる情報、例えば、ウォーターマーク文字などを合成して印刷する場合がある（特許文献１参照）。こうすることによって、プリンタがネットワークで共有されていている場合であっても、印刷物の所有者を特定することが容易になる。又、オフィス内部用の社外秘印刷文書などが流出した場合に於いても、流出部門を特定することが容易になる。
【特許文献１】特開２００４−２６０２７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
かかる場合に、従来の技術では、ウォーターマーク文字や、電子透かし地紋や、複写牽制地紋が１ページの印刷可能領域全面に配置されるため、トナーの消費量が多くなり、利用者の負担が増加してしまうという解決すべき課題が残されていた。
【課題を解決するための手段】
【０００４】
本発明による画像処理装置は、印刷データ、及び印刷データ関連情報を取得するデータ取得部と、上記印刷データ関連情報から画像データを生成する画像データ生成部と、上記印刷データの画像印刷領域を抽出する画像印刷領域抽出部と、上記画像印刷領域に上記画像データを合成する合成部と、上記合成部で合成されたデータを画像形成部に送信する送信部とを有することを主要な特徴とする。
【発明の効果】
【０００５】
画像印刷領域抽出部が抽出した、印刷データが存在する領域のみに、画像データ生成部により生成された画像データが合成されるので、印刷文書の流出を抑止する目的で印刷者を特定する情報を強制的に印刷する場合に、ウォーターマークなどの視認可能なデータを視認可能な状態を保ったまま、特定する情報を印刷することによって増加するトナーやインクなどの消耗品の消費量を低減することが可能になるという効果を得る。
【実施例１】
【０００６】
本実施例では、印刷文書にその文書の印刷者などを特定することが可能な画像情報を、ウォーターマーク文字列によって生成し、印刷文書上で印刷画像が存在する領域またはその周辺の部分のみに合成し、それ以外の領域では合成しないことを特徴とする。
【０００７】
図１は、実施例１の画像処理装置の構成のブロック図である。
図に示すように実施例１の画像処理装置１００は、アプリケーション１０と、グラフィックデバイスインタフェース２１と、プリントスプーラ２２と、プリンタドライバ３０と、特定情報作成モジュール４０と、特定情報設定ユーティリティ５０と、特定情報設定記憶部６０とを備える。
【０００８】
アプリケーション１０は、ユーザの操作に基づいて、印刷文書を作成し、印刷実行を指示する部分である。グラフィックデバイスインタフェース２１は、アプリケーション１０が文書を印刷するために使用する、出力に依存しないグラフィック描画（以下、印刷データ描画と記す）を提供する部分である。プリントスプーラ２２は、印刷データ描画を印刷ジョブとして管理する部分である。プリンタドライバ３０は、印刷データ描画を印刷データに変換し、印刷装置７０に送信する部分である。この部分については、後に再度詳細に説明する。
【０００９】
特定情報作成モジュール４０は、特定情報取得部４１と特定情報生成部４２とを有し、プリンタドライバ３０の指示に基づいて、印刷文書に印刷者を特定するために付加する情報を作成する部分である。ここで、特定情報取得部４１は、プリンタドライバ３０が現在処理している印刷ジョブのＩＤを元に、プリントスプーラ２２から印刷ジョブの情報を取得する部分である。又、特定情報生成部４２は、特定情報取得部４１で取得した特定情報やその他の固定データを特定情報設定記憶部６０に格納可能な形式で特定情報データとして生成する部分である。特定情報は、印刷者を特定する情報であって、例えば、ドキュメント名、印刷者のユーザ名（ログインＩＤ）、印刷文書作成日時、出力先プリンタ名等が含まれる。又、固定の文字列などを含むことも可能である。この特定情報は、本実施例ではウォーターマーク文字列として、印刷文書に重ね合わされる（合成される）。
【００１０】
特定情報設定ユーティリティ５０は、その内部に特定情報設定部５１を有し、特定情報作成モジュール４０が作成する特定情報の書式、ユーザ情報、暗号化情報を設定する部分である。ここで、特定情報設定部５１は、特定情報の書式、ユーザ情報などを画面に表示してユーザに設定させ、特定情報設定記憶部６０に保存する部分である。特定情報設定記憶部６０は、特定情報作成モジュール４０が作成する特定情報の書式、ユーザ情報、暗号化情報などを保存するメモリである。
【００１１】
再度プリンタドライバ３０へ戻って、内容を詳細に説明する。図に示すように、プリンタドライバ３０は、印刷データ受付部３１と、印刷設定情報表示・変更部３２と、印刷情報設定記憶部３３と、画像印刷領域抽出部３４と、画像印刷領域記憶部３５と、画像データ生成部３６と、合成処理部３７と、印刷データ変換部３８と、送信部３９とを有し、上記のように、印刷データ描画を印刷データに変換し、印刷装置７０に送信する部分である。以下に各部分の詳細について説明する。
【００１２】
印刷データ受付部３１は、グラフィックデバイスインタフェース２１を介して印刷データ描画を受付ける部分である。印刷設定情報表示・変更部３２は、印刷文書が印刷される形態、特定情報の印刷ＯＮ／ＯＦＦなどの印刷設定情報を表示し、利用者からの変更を受入れる部分である。印刷情報設定記憶部３３は、印刷データ受付部３１によって受け付けられた印刷データ描画がアプリケーション１０によって印刷される形態、特定情報の印刷ＯＮ／ＯＦＦや、更に、合成する特定情報に関する情報などの印刷設定情報を記憶するメモリである。
【００１３】
画像印刷領域抽出部３４は、印刷データ描画の各描画オブジェクトを解析し、そのオブジェクトが画像としてページ上に描画される際の画像印刷領域を抽出する部分である。画像印刷領域記憶部３５は、画像印刷領域抽出部３４によって抽出された画像印刷領域を記憶するメモリである。画像データ生成部３６は、特定情報作成モジュール４０が作成した特定情報のウォーターマーク文字列を生成する部分である。合成処理部３７は、画像データ生成部３６が生成した特定情報のウォーターマーク文字列を、印刷文書の画像印刷領域記憶部３５に記憶されている画像印刷領域に重ね合わせる（合成する）部分である。
【００１４】
印刷データ変換部３８は、印刷データ描画を印刷情報設定記憶部３３に記憶された印刷設定情報に基づいて印刷データに変換する部分である。送信部３９は、印刷データ変換部３８によって変換された印刷データを印刷装置７０に送信する部分である。ここで印刷装置７０は、プリンタ、複写機、ファクシミリなど画像形成機能を持った装置である。
【００１５】
次に、図１を用いて、実施例１の動作について説明する。
最初に準備段階として、印刷文書を印刷する前に、画像処理装置１００上で動作する特定情報設定ユーティリティ５０が、特定情報の書式、ユーザ情報などを特定情報設定部５１を介して、特定情報設定記憶部６０に保存する。つまり、ＰＣ上で動作するユーティリティ（ツール）により、キーボート等から各情報を入力し、メモリに格納する。又、特定情報設定記憶部６０には、特定情報識別文字列、特定情報書式（地紋濃度、地紋サイズ、配置方法、色など）、管理者ユーザＩＤ、及び、管理者グループＩＤが保存される。データ構造は特に規定しないがバイナリ形式で保存される。管理者ユーザＩＤ、管理者グループ名は、機密情報なので、例えば、１バイトごとに一律にキーの値をＸＯＲするなどの暗号化が実行された上で保存される。
【００１６】
ここで、特定情報識別文字列とは、印刷文書に合成される情報を指示するための文字列で、例えば制御文字をカンマで区切った書式文字列であらわす、等である。その一例について以下に説明する。
図２は、特定情報識別文字列で使用する制御文字の１例説明図である。
図に示すように、制御文字列は特定情報のうちユーザ名やコンピュータ名などの特定情報に対応した名称で定義され、特定情報以外の固定文字列は‘（シングルコーテーション）で囲まれる。
【００１７】
また、印刷文書を印刷する前に、印刷文書が印刷される形態、特定情報の印刷ＯＮ／ＯＦＦなどを設定する場合、アプリケーション１０から、グラフィックデバイスインタフェース２１を介して印刷設定情報表示・変更部３２が呼び出され、ディスプレイなどの表示装置上に現在の設定が表示される。更に、この表示に基づいて、ユーザの設定変更をマウスやキーボードなどの入力装置から受け付ける。受付けられた、変更内容は、印刷情報設定記憶部３３に記憶される。以上で準備段階を終了し、印刷動作を開始する。
【００１８】
ユーザがアプリケーション１０を用いて印刷文書の生成を開始する。アプリケーション１０は、グラフィックデバイスインタフェース２１を呼び出して印刷ジョブの開始を宣言し、印刷データ描画を開始する。グラフィックデバイスインタフェース２１は、プリントスプーラ２２に対して印刷ジョブの開始を通知し、プリンタドライバ３０を呼び出して印刷ジョブの開始を指示し、印刷文書を各ページに分けて印刷データ描画を行う。プリントスプーラ２２は、印刷ジョブの開始が通知されると、印刷ジョブを生成し、そのジョブに関連するドキュメント名、印刷者のユーザ名（ログインＩＤ）、印刷文書作成日時、出力先プリンタなどの情報を印刷ジョブの情報として保持する。
【００１９】
プリンタドライバ３０の内部では、印刷データ受付部３１が、印刷ジョブの開始や終了および印刷データ描画を受け付ける。印刷ジョブの開始が指示されたら、印刷データ受付部３１は、印刷ジョブに関連する印刷ジョブＩＤと印刷情報設定記憶部３３に記憶されている特定情報のＯＮ／ＯＦＦの情報（ｂＴｒａｃｋｉｎｇＩｎｆｏＰｒｉｎｔ  ＴｒｕｅがＯＮでＦａｌｓｅがＯＦＦとする）とをパラメータとして特定情報作成モジュール４０を呼び出す。特定情報作成モジュール４０は、特定情報設定記憶部６０から特定情報識別文字列と特定情報書式を取得する。続いて、特定情報識別文字列に定義される制御文字を解析し、制御文字で定義されるユーザ名などの特定情報の部分をパラメータで指定された印刷ジョブＩＤが示す印刷ジョブの情報などに置き換え、特定情報データを作成する。特定情報書式と作成した特定情報データは印刷情報設定記憶部３３に保存する。特定情報作成モジュール４０は、特定情報の印刷がＯＦＦに指定されると、特定情報データをＮＵＬＬにする。
【００２０】
画像印刷領域抽出部３４は、印刷データ描画に基づいて、各描画オブジェクトが画像としてページに描画される際の画像印刷領域を抽出する。抽出された画像印刷領域は画像印刷領域記憶部３５に格納される。この画像印刷領域は、後に詳細に説明する描画オブジェクトに分解され、描画オブジェクトに基づく矩形情報として記憶される。
【００２１】
ページ終了（改ページ）の印刷データ描画が行われたとき、印刷ジョブ開始時に印刷情報設定記憶部３３に保存された特定情報データが参照される。特定情報データがＮＵＬＬでない場合には、画像データ生成部３６によりウォーターマーク文字列が生成され合成処理部３７へ送られる。合成処理部３７は、このウォーターマーク文字列と、印刷データ描画とを、印刷ジョブ開始時に画像印刷領域記憶部３５に記憶されている画像印刷領域内で合成する。この合成された画像情報は、印刷データ変換部３８で印刷データに変換され送信部３９を介して印刷装置７０へ送信される。
【００２２】
特定情報データがＮＵＬＬの場合は、管理者ユーザが特定情報の印刷をＯＦＦにして印刷しているため、特定情報のウォーターマーク文字列は印刷されない。ここで説明した合成処理部３７の動作については、後にフローチャートを用いて再度詳細に説明する。
【００２３】
図３は、実施例１の印刷結果の説明図（その１）である。
この図は、合成処理部３７が、特定情報書式を元に特定情報のウォーターマーク文字列と印刷データ描画とを印刷ページ全面に渡って合成した画像情報をそのまま印刷した例（従来技術）である。画像データ生成部３６で生成されるウォーターマーク文字列は、特定情報データの量に比例して文字量が多くなり、ウォーターマーク文字列の描画領域も大きくなる。また、特定情報書式の指定により、ウォーターマーク文字列の文字サイズは、任意に指定可能なので、描画する文字サイズによってもウォーターマーク文字列の描画領域が大きくなってしまう。
【００２４】
図４は、実施例１の印刷結果の説明図（その２）である。
この図は、画像印刷領域を単純な矩形の集合とし、その矩形に重なる部分の地紋を描画した図である。この場合には、図が示すようにウォーターマーク文字列の描画領域は小さくなるが、ウォーターマーク文字列が分断され、文字列として視認不可能になってしまう。これでは、ウォーターマーク文字列が意味を持たなくなるので、合成処理部３７において次の処理を行う。
【００２５】
図５は、実施例１の印刷結果の説明図（その３）である。
まず、ページ全体を所定の演算式（後記する）を用いて算出したサイズの描画ブロックに分割する。図では、１０（Ｘ方向０〜９）×１２（Ｙ方向０〜１１）に分割されている。合成処理部３７は、その各描画ブロックについて、画像印刷領域との重なりがあるか否かを判定する。画像印刷領域との重なりがある描画ブロックのみをウォーターマーク描画ブロックとして記憶する。
【００２６】
図６は、実施例１の印刷結果の説明図（その４）である。
この図は、上記図５のウォーターマーク描画ブロックにのみウォーターマークを描画した場合の印字例を示す。図より明らかなように、ウォーターマーク文字列は、図５で記憶したウォーターマーク描画ブロックのみに印刷されている。従って、その印字領域は、図３に比較して大幅に縮小されている。しかし、図４に示すように視認不可能にはなっていない。この合成処理部３７の動作（機能）については、次に、フローチャートを用いて再度詳細に説明する。
【００２７】
図７は、実施例１の合成処理部の動作のフローチャートである。
上記合成処理部３７（図１）の動作については、フローチャートを用いてステップＳ１〜ステップＳ１７まで、再度詳細に説明する。
ステップＳ１
合成処理部３７（図１）は、ウォーターマーク描画ブロック（図５）の矩形サイズを算出し、矩形の幅をＷＭＢＣｘに、矩形の高さをＷＭＢＣｙに取得する。
【００２８】
ステップＳ２
合成処理部３７（図１）は、画像印刷領域に含まれるウォーターマーク描画ブロックの矩形数を算出し、横の数をｃＷＭＢｘに、縦の数をｃＷＭＢｙに格納する。
合成処理部３７（図１）は、次の算出式で算出する。
横ｃＷＭＢｘ＝（画像印刷領域の幅＋（ウォーターマーク描画ブロックの矩形幅ＷＭＢＣｘ−１））÷ウォーターマーク描画ブロックの矩形幅ＷＭＢＣｘ
縦ｃＷＭＢｘ＝（画像印刷領域の高さ＋（ウォーターマーク描画ブロックの矩形高さＷＭＢＣｙ−１））÷ウォーターマーク描画ブロックの矩形高さＷＭＢＣｙ
【００２９】
ステップＳ３
合成処理部３７（図１）は、ウォーターマーク描画ブロックの領域情報（ここではＡ４サイズの全面）を初期化し、ＮＵＬＬ領域とする。
【００３０】
ステップＳ４
合成処理部３７（図１）は、重ねあわせ検出用矩形の縦情報を初期化する。
ｗＲｅｃｔ．ｔｏｐ＝０
ｗＲｅｃｔ．ｂｏｔｔｏｍ＝ＷＭＢＣｙ
【００３１】
ステップＳ５
合成処理部３７（図１）は、縦のループカウントＣｙを０で初期化する。
【００３２】
ステップＳ６
合成処理部３７（図１）は、横のループカウントＣｘを０で初期化する。
【００３３】
ステップＳ７
合成処理部３７（図１）は、重ねあわせ検出用矩形の横情報を初期化する。
ｗＲｅｃｔ．ｌｅｆｔ＝０
ｗＲｅｃｔ．ｒｉｇｈｔ＝ＷＭＢＣｘ
【００３４】
ステップＳ８
合成処理部３７（図１）は、重ねあわせ検出用矩形が画像印刷領域記憶部３５に記憶された描画オブジェクトの画像印刷領域矩形（図５）と重なりがあるか検出する。
【００３５】
ステップＳ９
合成処理部３７（図１）は、上記ステップＳ８の重なりの検出で、重なりがない場合ステップＳ１１に進む。
重なりが検出された場合は、ステップＳ１０に進む。
【００３６】
ステップＳ１０
合成処理部３７（図１）は、ウォーターマーク描画ブロック領域情報に現在の重ねあわせ検出用矩形を重ねて、ウォーターマーク描画ブロック領域情報を更新する。
【００３７】
ステップＳ１１
合成処理部３７（図１）は、重ねあわせ検出用矩形の横情報を更新する。
ｗＲｅｃｔ．ｌｅｆｔ＋＝ＷＭＢＣｘ
ｗＲｅｃｔ．ｒｉｇｈｔ＋＝ＷＭＢＣｘ
【００３８】
ステップＳ１２
合成処理部３７（図１）は、横のループカウントＣｘに＋１を行いカウンタを更新する。
【００３９】
ステップＳ１３
合成処理部３７（図１）は、横のループカウントＣｘがｃＷＭＢｘより小さいか判定し、小さい場合はステップＳ８に戻る。同じか、大きい場合、ステップＳ１４に進む。
【００４０】
ステップＳ１４
合成処理部３７（図１）は、縦のループカウントＣｙに＋１を行いカウンタを更新する。
【００４１】
ステップＳ１５
合成処理部３７（図１）は、重ねあわせ検出用矩形の縦情報を更新する。
ｗＲｅｃｔ．ｔｏｐ＋＝ＷＭＢＣｙ
ｗＲｅｃｔ．ｂｏｔｔｏｍ＋＝ＷＭＢＣｙ
【００４２】
ステップＳ１６
合成処理部３７（図１）は、縦のループカウントＣｙがｃＷＭＢｙより小さいか判定し、小さい場合はステップＳ５に戻る。同じか、大きい場合、ステップＳ１７に進む。
【００４３】
ステップＳ１７
合成処理部３７（図１）は、ウォーターマーク描画ブロック領域情報に、ウォーターマークを描画する領域が設定されているので、その領域にウォーターマーク文字列を描画する。ウォーターマーク描画ブロック領域情報がＮＵＬＬの場合は全面に描画してフローを終了する。
【００４４】
図８は、ウォーターマーク描画ブロック矩形サイズ算出処理のフローチャートである。
この図は上記ステップＳ１の処理について詳細に説明するフローチャートである。以下にステップＳ１０１〜ステップＳ１０９までステップ順に説明する。
【００４５】
ステップＳ１０１
印刷情報設定記憶部３３（図１）から印刷ジョブの先頭で作成した特定情報データと、特定情報書式を取得する。特定情報データにはウォーターマーク文字列が生成されており、また、特定情報書式にはウォーターマーク文字列の文字サイズや、回転角度、行ピッチなどが存在する。
【００４６】
ステップＳ１０２
ウォーターマークの文字サイズ、文字列、回転角度、からウォーターマーク文字列１つ分の幅、高さ、面積を算出する。
次の算出式で算出する。
実際に描画するウォーターマーク文字列１つ分の幅＝ウォーターマーク文字列高さ＊ＡＢＳ（ｓｉｎ（回転角度））＋ウォーターマーク文字列幅＊ＡＢＳ（ｃｏｓ（回転角度））
実際に描画するウォーターマーク文字列１つ分の高さ＝  ウォーターマーク文字列高さ＊ＡＢＳ（ｃｏｓ（回転角度））＋ウォーターマーク文字列幅＊ＡＢＳ（ｓｉｎ（回転角度））
ここで、
ＡＢＳ：絶対値
ｓｉｎ：サイン関数
ｃｏｓ：コサイン関数
実際に描画するウォーターマーク文字列１つ分の面積＝実際に描画するウォーターマーク文字列１つ分の幅＊実際に描画するウォーターマーク文字列１つ分の高さ
【００４７】
ステップＳ１０３
画像印刷領域記憶部３５の全描画オブジェクトの画像印刷矩形領域を合計し、画像印刷領域の全面積を算出する。
【００４８】
ステップＳ１０４
上記ステップＳ１０３で算出した画像印刷領域の面積と、上記ステップＳ１０２で算出した、実際に描画するウォーターマーク文字列１つ分の面積を比較し、画像印刷領域の全面積が小さい、または等しいとき、ステップＳ１０８に進む。それ以外はステップＳ１０５に進む。
【００４９】
ステップＳ１０５
ウォーターマーク行ピッチと回転角度から、行ピッチの幅ｘ成分、高さｙ成分を算出する。
次の算出式で算出する。
行ピッチの幅ｘ成分＝ウォーターマーク行ピッチ＊ＡＢＳ（ｓｉｎ（回転角度））
行ピッチの高さｙ成分＝ウォーターマーク行ピッチ＊ＡＢＳ（ｃｏｓ（回転角度））
【００５０】
ステップＳ１０６
ウォーターマーク描画ブロック縦サイズを算出し矩形の高さをＷＭＢＣｙに格納する。
次の算出式で算出する。
行ピッチの高さｙ成分＜実際に描画するウォーターマーク文字列１つ分の高さ、の場合
ＷＭＢＣｙ＝実際に描画するウォーターマーク文字列１つ分の高さ
行ピッチの高さｙ成分＜実際に描画するウォーターマーク文字列１つ分の高さ、の場合
ＷＭＢＣｙ＝行ピッチの高さｙ成分
【００５１】
ステップＳ１０７
ウォーターマーク描画ブロック横サイズを算出し矩形の幅をＷＭＢＣｘに格納する。
次の算出式で算出する。
行ピッチの幅ｘ成分＜実際に描画するウォーターマーク文字列１つ分の幅、の場合
ＷＭＢＣｘ＝実際に描画するウォーターマーク文字列１つ分の高さ
行ピッチの幅ｘ成分＜実際に描画するウォーターマーク文字列１つ分の幅、の場合
ＷＭＢＣｘ＝行ピッチの幅ｘ成分
【００５２】
ステップＳ１０８
ウォーターマーク文字列１つ分の高さをウォーターマーク描画ブロック矩形の高さとしＷＭＢＣｙに格納する。
ＷＭＢＣｙ＝実際に描画するウォーターマーク文字列１つ分の高さ
【００５３】
ステップＳ１０９
ウォーターマーク文字列１つ分の幅をウォーターマーク描画ブロック矩形としＷＭＢＣｘに格納する。
ＷＭＢＣｘ＝実際に描画するウォーターマーク文字列１つ分の幅
【００５４】
図９は、実施例１の重ねあわせ検出用矩形と画像印刷領域矩形の重なり検出処理のフローチャートである。
この図は上記ステップＳ８の処理について詳細に説明するフローチャートである。以下にステップＳ２０１〜ステップＳ２０８までステップ順に説明する。
【００５５】
ステップＳ２０１
合成処理部３７（図１）は、画像印刷領域記憶部３５（図１）に記憶されたオブジェクトの数をｃＴｏｔａｌＯｂｊに取得する。
【００５６】
ステップＳ２０２
合成処理部３７（図１）は、ループカウントｌｏｏｐを０で初期化する。
【００５７】
ステップＳ２０３
合成処理部３７（図１）は、ループカウントｌｏｏｐがｃＴｏｔａｌＯｂｊより大きいか等しい場合、重なりなしと判断しステップＳ２０８へ進む。それ以外の場合にはステップＳ２０４へ進む。
【００５８】
ステップＳ２０４
合成処理部３７（図１）は、画像印刷領域記憶部３５（図１）に記憶されたｌｏｏｐ番目の画像印刷領域矩形を取得する。（０番目を先頭とする。）
【００５９】
ステップＳ２０５
合成処理部３７（図１）は、重ねあわせ検出用矩形と画像印刷領域矩形との重なりがあるか判定する。重なりがある場合はステップＳ２０７へ進む。重なりが無い場合はステップＳ２０６へ進む。
【００６０】
ステップＳ２０６
合成処理部３７（図１）は、ループカウントｌｏｏｐに１を加算し更新する。
【００６１】
ステップＳ２０７
合成処理部３７（図１）は、重なり有りを呼び出し元に応答してフローを終了する。
【００６２】
ステップＳ２０８
合成処理部３７（図１）は、重なり無しを呼び出し元に応答してフローを終了する。
【００６３】
以上説明したように、本実施例によれば、印刷文書にその文書の印刷者が特定できるような情報を印刷データが存在する領域のみに合成して描画するため、印刷文書の流出を抑止する目的で印刷者を特定する情報を強制的に印刷する場合に、特定する情報を印刷することで増加したトナーやインクなどの消耗品の消費量を低減することが可能であるという効果を得る。又、合成処理部が、重ねあわせ検出用矩形と画像印刷領域矩形との重なりを判定してウォーターマーク描画ブロックを設定しているのでウォーターマークなどの視認可能なデータを視認可能な状態を保ったまま合成することが可能になるという効果を得る。
【実施例２】
【００６４】
上記実施例１では、１個のウォーターマークが占める面積が比較的大きいため、描画ブロックを比較的大きく設定する必要があった。一方、本実施例では、電子透かし地紋を用いることとする。電子透かし地紋は、ウォーターマークと異なり、人間が視認可能な状態を保つ必要は無い為、地紋を小さく分割することで、描画ブロックを比較的小さく設定することが可能になる。
【００６５】
図１０は、実施例２の画像処理装置の構成のブロック図である。
図に示すように実施例２の画像処理装置２００は、アプリケーション１０と、グラフィックデバイスインタフェース２１と、プリントスプーラ２２と、プリンタドライバ１３０と、特定情報作成モジュール１４０と、特定情報設定ユーティリティ５０と、特定情報設定記憶部６０とを備える。以下に、実施例１との相違部分のみについて説明する。実施例１と、同様の部分については実施例１と同一の符号を付して説明を省略する。
【００６６】
特定情報作成モジュール１４０は、特定情報取得部４１と特定情報生成部４２とを有し、プリンタドライバ１３０の指示に基づいて、印刷文書に印刷者を特定するために付加する情報を作成する部分である。ここで、特定情報取得部４１は、プリンタドライバ３０が現在処理している印刷ジョブのＩＤを元に、プリントスプーラ２２から印刷ジョブの情報を取得する部分である。又、特定情報生成部４２は、特定情報取得部４１で取得した特定情報やその他の固定データを特定情報設定記憶部６０に格納される形式で特定情報データとして生成する部分である。特定情報は、印刷者を特定する情報で、例えば、ドキュメント名、印刷者のユーザ名（ログインＩＤ）、印刷文書作成日時、出力先プリンタ名等が含まれる。又、固定の文字列などを含むことも可能である。この特定情報は、本実施例では電子透かし地紋に埋め込み、印刷文書に重ね合わされる（合成される）。
【００６７】
再度プリンタドライバ１３０へ戻って、内容を詳細に説明する。図に示すように、プリンタドライバ１３０は、印刷データ受付部３１と、印刷設定情報表示・変更部３２と、印刷情報設定記憶部３３と、画像印刷領域抽出部３４と、画像印刷領域記憶部３５と、画像データ生成部１３６と、合成処理部１３７と、印刷データ変換部３８と、送信部３９とを有し、上記のように、印刷データ描画を印刷データに変換し、印刷装置７０に送信する部分である。以下に各部分の詳細について説明する。
【００６８】
画像データ生成部１３６は、特定情報作成モジュール１４０が作成した特定情報が埋め込まれた電子透かし地紋を生成する部分である。合成処理部１３７は、画像データ生成部１３６が作成した特定情報が埋め込まれた電子透かし地紋と、印刷文書の画像印刷領域記憶部３５に記憶されている画像印刷領域とを合成する部分である。特に本実施例では、印刷文書の１ページを複数個のタイルに分割し、更に、そのタイルを描画ブロックに分割し、その描画ブロックに基づいて、電子透かし地紋を、印刷文書の画像印刷領域記憶部３５に記憶されている画像印刷領域に重ね合わせる部分である。
【００６９】
次に、図１０を用いて、実施例２の動作について説明する。
最初に準備段階として、上記実施例１と同様に、印刷文書を印刷する前に、画像処理装置２００上で動作する特定情報設定ユーティリティ５０が、特定情報の書式、ユーザ情報などを特定情報設定部５１を介して、特定情報設定記憶部６０に保存する。又、特定情報設定記憶部６０には、特定情報識別文字列、特定情報書式（地紋濃度、地紋サイズ、配置方法、色など）、管理者ユーザＩＤ、及び、管理者グループＩＤが保存される。データ構造は特に規定しないがバイナリ形式で保存される。管理者ユーザＩＤ、管理者グループ名は、機密情報なので、例えば、１バイトごとに一律にキーの値をＸＯＲするなどの暗号化が実行された上で保存される。
【００７０】
ここで、特定情報識別文字列とは、印刷文書に合成される情報を指示するための文字列で、例えば制御文字をカンマで区切った書式文字列であらわす。この書式文字列は図２を用いて説明した実施例１同様なので説明を省略する。
【００７１】
また、印刷文書を印刷する前に、印刷文書が印刷される形態、特定情報の印刷ＯＮ／ＯＦＦなどを設定する場合、アプリケーション１０が、グラフィックデバイスインタフェース２１を介して印刷設定情報表示・変更部３２が呼び出されディスプレイなどの表示装置上に現在の設定を表示させる。更に、この表示に基づいて、ユーザの設定変更をマウスやキーボードなどの入力装置から受け付ける。受付けられた、変更内容は、印刷情報設定記憶部３３に記憶される。以上で準備段階を終了し、印刷動作を開始する。
【００７２】
ユーザがアプリケーション１０を用いて印刷文書の生成を開始する。アプリケーション１０は、グラフィックデバイスインタフェース２１を呼び出して印刷ジョブの開始を宣言し、印刷データ描画を開始する。グラフィックデバイスインタフェース２１は、プリントスプーラ２２に対し印刷ジョブの開始を通知し、プリンタドライバ１３０を呼び出して印刷ジョブの開始を指示し、印刷文書を各ページに分けて印刷データ描画を行う。プリントスプーラ２２は、印刷ジョブの開始が通知されると、印刷ジョブを生成し、そのジョブに関連するドキュメント名、印刷者のユーザ名（ログインＩＤ）、印刷文書作成日時、出力先プリンタなどの情報を印刷ジョブの情報として保持する。
【００７３】
プリンタドライバ１３０の内部では、印刷データ受付部３１が、印刷ジョブの開始や終了および印刷データ描画を受け付ける。印刷ジョブの開始が指示されたら、印刷データ受付部３１は、印刷ジョブに関連する印刷ジョブＩＤと印刷情報設定記憶部３３に記憶されている特定情報のＯＮ／ＯＦＦの情報（ｂＴｒａｃｋｉｎｇＩｎｆｏＰｒｉｎｔ  ＴｒｕｅがＯＮでＦａｌｓｅがＯＦＦとする）とをパラメータとして特定情報作成モジュール１４０を呼び出す。特定情報作成モジュール４０は、特定情報設定記憶部６０から特定情報識別文字列と特定情報書式を取得する。続いて、特定情報識別文字列に定義される制御文字を解析し、制御文字で定義されるユーザ名などの特定情報の部分をパラメータで指定された印刷ジョブＩＤが示す印刷ジョブの情報などに置き換え、特定情報データを作成する。特定情報書式と作成した特定情報データは印刷情報設定記憶部３３に保存する。特定情報作成モジュール４０は、特定情報の印刷がＯＦＦに指定されると、特定情報データをＮＵＬＬにする。
【００７４】
画像印刷領域抽出部３４は、印刷データ描画に基づいて、各描画オブジェクトが画像としてページに描画される際の画像印刷領域を抽出する。抽出された画像印刷領域は画像印刷領域記憶部３５に格納される。この画像印刷領域は、後に詳細に説明する描画オブジェクトに分解され、描画オブジェクトに基づく矩形情報として記憶される。
【００７５】
ページ終了（改ページ）の印刷データ描画が行われたとき、印刷ジョブ開始時に印刷情報設定記憶部３３に保存された特定情報データが参照される。特定情報データがＮＵＬＬでない場合には、画像データ生成部１３６により生成された電子透かし地紋を生成し、合成処理部１３７へ送られる。合成処理部１３７は、この電子透かし地紋と、印刷データ描画とを、印刷ジョブ開始時に画像印刷領域記憶部３５に記憶されている画像印刷領域内で合成する。この合成された画像情報は、印刷データ変換部３８で印刷データに変換され送信部３９を介して印刷装置７０へ送信される。
【００７６】
特定情報データがＮＵＬＬの場合は、管理者ユーザが特定情報の印刷をＯＦＦにして印刷しているため、特定情報の地紋は印刷されない。ここで説明した合成処理部１３７の動作については、後にフローチャートを用いて再度詳細に説明する。
【００７７】
図１１は、実施例２の印刷結果の説明図（その１）である。
この図は、合成処理部１３７（図１０）が、特定情報書式を元に特定情報の地紋をページ全面に合成した画像情報をそのまま印刷した例（従来技術）である。画像データ生成部１３６（図１０）で生成される電子透かし地紋は、特定情報データのコードがドットパターン化されたものであり、埋め込む特定情報データの量に比例してパターンのサイズが大きくなる。本実施例では、地紋ドットパターンを幅ＪＤｘドット×高さＪＤｙドットで生成する。その地紋ドットパターンを文書のページ全面に繰り返し、タイリング状に配置するものとし、画像印刷領域記憶部３５（図１０）に記憶されている画像印刷領域と、印刷ジョブ開始時に保存した特定情報書式で指示された配置情報から算出された領域に描画される。
【００７８】
図１２は、実施例２の印刷結果の説明図（その２）である。
この図は、画像印刷領域を単純な矩形の集合とし、その矩形に重なる部分の地紋を描画した場合の印刷例を示す。矩形と重なる部分のみ地紋を描画し、それ以外の地紋を描画しない場合、地紋パターンを全面に繰り返し、タイリング状に配置しても、地紋ドットパターンのうち一部分が欠落する可能性がある。
【００７９】
そこで、本実施例では、その欠落を回避するために地紋ドットパターンを更に横Ｂｘ×縦Ｂｙの地紋描画分割ブロックに分割し、印刷全面に含まれる、画像印刷領域に一度も重ならない地紋ドットパターンの地紋描画分割ブロックを検出し、検出された重ならない地紋描画分割ブロックを、重なる地紋描画分割ブロックが多いタイルすなわち密度の濃いタイル内のブロックに現れるようにする。
【００８０】
図１３は、実施例２の印刷結果の説明図（その３）である。
この図は、画像印刷領域矩形と地紋描画分割ブロックとの関係を示している。
印刷物に付加された地紋を読み取り、地紋に含まれる情報を欠落することなく復元するには、少なくとも１タイル分の地紋ドットパターンすべてが印刷物に付加されている必要がある。ただし、１タイル分の地紋ドットパターンが連続して存在している必要は無く、ページ全面に繰り返し、タイリング状に配置された中のいずれかのタイルにその一部分が存在すれば情報を保管できるものとする。以上説明した合成処理部１３７の動作（機能）については、次に、フローチャートを用いて再度詳細に説明する。
【００８１】
図１４は、実施例２の合成処理部の動作のフローチャートである。
上記合成処理部１３７（図１０）の動作については、フローチャートを用いてステップＳ３０１〜ステップＳ３１４まで、再度詳細に説明する。
【００８２】
ステップＳ３０１
合成処理部１３７（図１０）は、地紋描画分割ブロックの情報と配置閾値を取得する。
【００８３】
ステップＳ３０２
合成処理部１３７（図１０）は、印刷領域に含まれる地紋タイル数を算出し、横ｃＪＭｘ、縦ｃＪＭｙ、全体タイル数をｃＪＭに格納する。
次の算出式で算出する。
横ｃＪＭｘ＝（印刷領域の幅＋（地紋ドットパターンの幅ＪＤｘ−１））÷地紋ドットパターンの幅ＪＤｘ
縦ｃＪＭｙ＝（印刷領域の高さ＋（地紋ドットパターンの幅ＪＤｙ−１））÷地紋ドットパターンの幅ＪＤｙ
全体タイル数ｃＪＭ＝ｃＪＭｘ×ｃＪＭｙ
【００８４】
ステップＳ３０３
合成処理部１３７（図１０）は、地紋タイル情報用記憶領域を確保し初期化する。
【００８５】
ステップＳ３０４
合成処理部１３７（図１０）は、地紋描画分割ブロック配置カウンターテーブルの情報サイズを算出し、記憶領域を確保し、初期化する。
【００８６】
ステップＳ３０５
合成処理部１３７（図１０）は、地紋描画分割ブロック配置数順番テーブルの情報サイズを算出し、記憶領域を確保し、初期化する。
【００８７】
ステップＳ３０６
合成処理部１３７（図１０）は、地紋描画領域情報を初期化する。
【００８８】
ステップＳ３０７
合成処理部１３７（図１０）は、ループカウントｃｕｒＪＭを０で初期化する。
【００８９】
ステップＳ３０８
合成処理部１３７（図１０）は、ページ内全ての地紋タイルの重なりをチェックしたか判定する。
ループカウントｃｕｒＪＭ≧ｃＪＭの場合にはステップＳ３１２へ進み、そうでない場合にはステップＳ３０９へ進む。
【００９０】
ステップＳ３０９
合成処理部１３７（図１０）は、現在処理中の地紋タイルすなわち、ｃｕｒＪＭ番目の地紋タイル（先頭は０番目）で地紋分割ブロックと画像印刷領域矩形の重なりをチェックする。
【００９１】
ステップＳ３１０
合成処理部１３７（図１０）は、現在チェック中の地紋タイルすなわち、ｃｕｒＪＭ番目の地紋タイル情報の地紋描画分割ブロック配置数を元に配置数順番号テーブルを更新する。地紋描画分割ブロック配置数順番号テーブルから示される地紋タイル情報の地紋描画分割ブロック配置数とｃｕｒＪＭ番目の地紋タイル情報の地紋描画分割ブロック配置数を比較して、地紋描画分割ブロック配置数順番号テーブルの多い順番の位置に、ｃｕｒＪＭをセットする。
【００９２】
ステップＳ３１１
合成処理部１３７（図１０）は、ループカウントｃｕｒＪＭに１を加算する。
【００９３】
ステップＳ３１２
合成処理部１３７（図１０）は、地紋描画分割ブロック補間処理により、地紋描画分割ブロックの配置数が少ないブロックを判定し当該ブロックを地紋描画領域情報に追加する。
【００９４】
ステップＳ３１３
合成処理部１３７（図１０）は、地紋描画領域情報に登録された領域に地紋を描画する。
【００９５】
ステップＳ３１４
合成処理部１３７（図１０）は、確保した記憶領域を解放してフローを終了する。
【００９６】
図１５は、地紋描画分割ブロック情報と配置閾値の取得処理のフローチャートである。
この図は上記ステップＳ３０１の処理について詳細に説明するフローチャートである。以下にステップＳ４０１〜ステップＳ４０８までステップ順に説明する。
【００９７】
ステップＳ４０１
合成処理部１３７（図１０）は、印刷情報設定記憶部３３（図１０）から特定情報データと、特定情報書式を取得する。
【００９８】
ステップＳ４０２
合成処理部１３７（図１０）は、画像データ生成部１３６（図１０）で生成した地紋ドットパターンの幅ＪＤｘ、高さＪＤｙを取得する。
【００９９】
ステップＳ４０３
合成処理部１３７（図１０）は、１タイルあたりの地紋描画分割ブロック数を算出し、分割数横ｃＪＭＢｘ、縦ｃＪＭＢｙ、全ｃＪＭＢを取得する。地紋描画分割ブロック数は、縦横の分割数を予め特定情報書式などで指定できるようにしておく。
例えば、より細かい領域を指定したい場合は、縦横の分割数を多くする。
【０１００】
ステップＳ４０４
合成処理部１３７（図１０）は、下端・右端の地紋タイルの幅と高さを算出し、ＪＤＬａｓｔｘ、ＪＤＬａｓｔｙに取得する。
次の算出式で算出する。
右端  ＪＤＬａｓｔｘ＝（印刷領域  幅÷地紋ドットパターンの幅ＪＤｘ）の余り
下端  ＪＤＬａｓｔｙ＝（印刷領域  高さ÷地紋ドットパターンの幅ＪＤｙ）の余り
【０１０１】
ステップＳ４０５
Ｓ４０５：地紋描画分割ブロック縦サイズを算出し矩形の高さをＪＭＢＣｙに格納
次の算出式で算出する。
合成処理部１３７（図１０）は、地紋描画分割ブロック縦サイズＪＭＢＣｙ＝地紋ドットパターンの高さＪＤｙ÷分割数縦ｃＪＭＢｙ
【０１０２】
ステップＳ４０６
合成処理部１３７（図１０）は、地紋描画分割ブロック数横サイズを算出し矩形の幅をＪＭＢＣｘに格納
次の算出式で算出する。
地紋描画分割ブロック横サイズＪＭＢＣｘ＝地紋ドットパターンの幅ＪＤｘ÷分割数縦ｃＪＭＢｘ
【０１０３】
ステップＳ４０７
合成処理部１３７（図１０）は、下端・右端の地紋タイルに含まれる地紋描画分割ブロック分割数を算出しｃＪＭＢＬａｓｔｘ、ｃＪＭＢＬａｓｔｙに取得する。
次の算出式で算出する。
右端  ｃＪＭＢＬａｓｔｘ＝ＪＤＬａｓｔｘ÷地紋描画分割ブロック横サイズＪＭＢＣｘ
下端  ｃＪＭＢＬａｓｔｙ＝ＪＤＬａｓｔｙ÷地紋描画分割ブロック縦サイズＪＭＢＣｙ
【０１０４】
ステップＳ４０８
合成処理部１３７（図１０）は、特定情報書式から、配置閾値を算出する。
【０１０５】
図１６は、地紋タイル情報用記憶領域確保、初期化処理のフローチャートである。
この図は上記ステップＳ３０３の処理について詳細に説明するフローチャートである。以下にステップＳ５０１〜ステップＳ５１９までステップ順に説明する。
【０１０６】
ステップＳ５０１
合成処理部１３７（図１０）は、印刷領域に含まれる地紋タイル数分の地紋タイル情報の情報サイズを算出する。
【０１０７】
ステップＳ５０２
合成処理部１３７（図１０）は、地紋タイル情報用の記憶領域を確保する。
【０１０８】
ステップＳ５０３
合成処理部１３７（図１０）は、ループカウントｃｕｒＪＭＩｎｆを０で初期化する。
【０１０９】
ステップＳ５０４
合成処理部１３７（図１０）は、カウントｃｕｒＪＭｙを０で初期化する。
【０１１０】
ステップＳ５０５
合成処理部１３７（図１０）は、地紋タイル矩形ｗＲｅｃｔ．ｔｏｐとｗＲｅｃｔ．ｂｏｔｔｏｍに０をセットし初期化する。
【０１１１】
ステップＳ５０６
合成処理部１３７（図１０）は、現在処理中の地紋タイルが下端か判定する。ｃｕｒＪＭｙ−１≧ｃＪＭｙの場合下端と判断しステップＳ５０９に進む。そうで無い場合にはステップＳ５０７へ進む。
【０１１２】
ステップＳ５０７
合成処理部１３７（図１０）は、地紋タイル矩形下端ｗＲｅｃｔ．ｂｏｔｔｏｍにＪＤｙを加算し、ｗＲｅｃｔの縦情報を更新する。
【０１１３】
ステップＳ５０８
合成処理部１３７（図１０）は、ワーク用地紋描画分割ブロック縦数に地紋描画分割ブロック縦数ｃＪＭＢｙを格納する。
【０１１４】
ステップＳ５０９
合成処理部１３７（図１０）は、地紋タイル矩形下端ｗＲｅｃｔ．ｂｏｔｔｏｍに印刷領域下端ｂｏｔｔｏｍをセットする。
【０１１５】
ステップＳ５１０
合成処理部１３７（図１０）は、ワーク用地紋描画分割ブロック縦数に下端地紋描画分割ブロック縦数ｃＪＭＢＬａｓｔｙを格納する。
【０１１６】
ステップＳ５１１
合成処理部１３７（図１０）は、カウントｃｕｒＪＭｘを０で初期化する。
【０１１７】
ステップＳ５１２
合成処理部１３７（図１０）は、地紋タイル矩形ｗＲｅｃｔ．ｌｅｆｔとｗＲｅｃｔ．ｒｉｇｈｔに０をセットし初期化する。
ステップＳ５１３
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報を設定する。
【０１１８】
ステップＳ５１４
合成処理部１３７（図１０）は、ループカウントｃｕｒＪＭに１を加算する。
【０１１９】
ステップＳ５１５
合成処理部１３７（図１０）は、全ての地紋タイルを処理したか判定する。ｃｕｒＪＭ≧ｃＪＭｘの場合終了したので、処理を終了する。そうで無い場合にはステップＳ５１６へ進む。
【０１２０】
ステップＳ５１６
合成処理部１３７（図１０）は、カウントｃｕｒＪＭｘに１を加算してステップＳ５１１へ戻る。
【０１２１】
ステップＳ５１７
合成処理部１３７（図１０）は、現在処理中の地紋タイルが右端か判定する。ｃｕｒＪＭ≧ｃＪＭｘの場合右端なのでステップＳ５１８に進む。それ以外の場合はＳ５１３に戻る。
【０１２２】
ステップＳ５１８
合成処理部１３７（図１０）は、地紋タイル矩形上端ｗＲｅｃｔ．ｔｏｐに下端ｗＲｅｃｔ．ｂｏｔｔｏｍをｓセットする。
【０１２３】
ステップＳ５１９
合成処理部１３７（図１０）は、カウントｃｕｒＪＭｙに１を加算する。
【０１２４】
図１７は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の設定処理のフローチャートである。
この図は上記ステップＳ５１３の処理について詳細に説明するフローチャートである。以下にステップＳ６０１〜ステップＳ６１０までステップ順に説明する。
【０１２５】
ステップＳ６０１
合成処理部１３７（図１０）は、現在処理中の地紋タイルが右端か判定する。ｃｕｒＪＭｘ−１≧ｃＪＭｘの場合右端なので、ステップＳ６０４に進む。そうで無い場合にはステップＳ６０２へ進む。
【０１２６】
ステップＳ６０２
合成処理部１３７（図１０）は、地紋タイル矩形右端ｗＲｅｃｔ．ｒｉｇｈｔにＪＤｘを加算し、ｗＲｅｃｔの横情報を更新する。
【０１２７】
ステップＳ６０３
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック横数に地紋描画分割ブロック縦数ｃＪＭＢｘを格納する。
【０１２８】
ステップＳ６０４
合成処理部１３７（図１０）は、地紋タイル矩形右端ｗＲｅｃｔ．ｒｉｇｈｔに印刷領域右端ｒｉｇｈｔをセットする。
【０１２９】
ステップＳ６０５
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック横数に右端地紋描画分割ブロック横数ｃＪＭＢＬａｓｔｙを格納する。
【０１３０】
ステップＳ６０６
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報地紋描画分割ブロック縦数を格納する。
【０１３１】
ステップＳ６０７
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報地紋描画分割ブロック配置数を０に設定する。
【０１３２】
ステップＳ６０８
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報矩形状法ＪＭＲｅｃｔにｗＲｅｃｔを格納する。
【０１３３】
ステップＳ６０９
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報地紋描画分割ブロック配置テーブルを−１で初期化
する。
【０１３４】
ステップＳ６１０
合成処理部１３７（図１０）は、地紋タイル矩形左端ｗＲｅｃｔ．ｔｏｐに右端ｗＲｅｃｔ．ｂｏｔｔｏｍをセットする。
【０１３５】
図１８は、実施例２の地紋分割ブロックと、画像印刷領域矩形の重なりチェック処理フローチャートである。
この図は上記ステップＳ３０９の処理について詳細に説明するフローチャートである。以下にステップＳ７０１〜ステップＳ７２２までステップ順に説明する。
【０１３６】
ステップＳ７０１
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック縦数を取得する。
【０１３７】
ステップＳ７０２
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック横数を取得する。
【０１３８】
ステップＳ７０３
合成処理部１３７（図１０）は、ｗｋＪＭＢｘにｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック横数を取得する。
【０１３９】
ステップＳ７０４
合成処理部１３７（図１０）は、重ねあわせ検出用矩形の縦情報を初期化する。
ｗＲｅｃｔ．ｔｏｐ＝０
ｗＲｅｃｔ．ｂｏｔｔｏｍ＝ＪＭＢＣｙ
【０１４０】
ステップＳ７０５
合成処理部１３７（図１０）は、縦のループカウントＣｙを０で初期化する。
【０１４１】
ステップＳ７０６
合成処理部１３７（図１０）は、横のループカウントＣｘを０で初期化する。
【０１４２】
ステップＳ７０７
合成処理部１３７（図１０）は、重ねあわせ検出用矩形ｗＲｅｃｔの横情報を初期化する。
ｗＲｅｃｔ．ｌｅｆｔ＝０
ｗＲｅｃｔ．ｒｉｇｈｔ＝ＪＭＢＣｘ
【０１４３】
ステップＳ７０８
合成処理部１３７（図１０）は、地紋描画分割ブロック配置テーブルの配列要素番号のワーク変数ｗｋＩｎｄｅｘを算出する。
ｗｋＩｎｄｅｘ＝（ｃＹ＊地紋描画分割ブロック縦数ｃＪＭＢｙ）
【０１４４】
ステップＳ７０９
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置テーブルのｗｋＩｎｄｅｘ番目のフラグに０をセットする。
【０１４５】
ステップＳ７１０
合成処理部１３７（図１０）は、重なりあわせ検出用矩形と画像印刷領域矩形の重なりを検出する。重なりの検出処理は。実施例１と同様に図９の重ねあわせ検出用矩形と画像印刷領域矩形の重なりを検出処理のフローチャートのステップＳ２０１〜ステップＳ２０８の処理で行う。
【０１４６】
ステップＳ７１１
重なりなしの場合にはステップＳ７１６に進む。そうで無い場合にはステップＳ７１２へ進む。
【０１４７】
ステップＳ７１２
合成処理部１３７（図１０）は、地紋描画領域情報に現在の重ねあわせ検出用矩形を追加する。
【０１４８】
ステップＳ７１３
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置数を＋１する。
【０１４９】
ステップＳ７１４
合成処理部１３７（図１０）は、地紋タイル１つ分の地紋描画分割ブロック配置カウンターテーブルのｗｋＩｎｄｅｘの値を＋１する。
【０１５０】
ステップＳ７１５
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置テーブルのｗｋＩｎｄｅｘ番目の値をフラグに１セットし配置済みとする。
【０１５１】
ステップＳ７１６
合成処理部１３７（図１０）は、重ねあわせ検出用矩形を更新する。
ｗＲｅｃｔ．ｌｅｆｔ＋＝ＪＭＢＣｘ
ｗＲｅｃｔ．ｒｉｇｈｔ＋＝ＪＭＢＣｘ
【０１５２】
ステップＳ７１７
合成処理部１３７（図１０）は、ｗｋＩｎｄｅｘに１を加算する。
【０１５３】
ステップＳ７１８
合成処理部１３７（図１０）は、横のループカウントＣｘに１を加算する。
【０１５４】
ステップＳ７１９
合成処理部１３７（図１０）は、現地紋タイルの地紋描画分割ブロック横が終了したか判定する。横のループカウントＣｘ＜ｗｋＪＭＢｘの場合魅了のためＳ７０９に進む。そうで無い場合には、ステップＳ７２０へ進む。
【０１５５】
ステップＳ７２０
合成処理部１３７（図１０）は、縦のループカウントＣｙに１を加算する。
【０１５６】
ステップＳ７２１
合成処理部１３７（図１０）は、重ねあわせ検出用矩形の縦情報を更新する。
ｗＲｅｃｔ．ｔｏｐ＋＝ＪＭＢＣｘ
ｗＲｅｃｔ．ｂｏｔｔｏｍ＋＝ＪＭＢＣｘ
【０１５７】
ステップＳ７２２
合成処理部１３７（図１０）は、現地紋タイルの地紋描画分割ブロック縦が終了したか判定する。縦のループカウントＣｙ＜ｗｋＪＭＢｙの場合魅了のためＳ７０６に進む。そうで無い場合にはフローを終了する。
【０１５８】
図１９は、地紋描画分割ブロック補間処理のフローチャートである。
この図は上記ステップＳ３１２の処理について詳細に説明するフローチャートである。以下にステップＳ８０１〜ステップＳ８１８までステップ順に説明する。
【０１５９】
ステップＳ８０１
合成処理部１３７（図１０）は、ループカウント１  ｃＩｎｄｅｘを０で初期化する。
【０１６０】
ステップＳ８０２
合成処理部１３７（図１０）は、地紋描画分割ブロック配置カウンターテーブルｃＩｎｄｅｘ番目の数値と配置閾値を比較する。
【０１６１】
ステップＳ８０３
合成処理部１３７（図１０）は、地紋描画分割ブロック配置カウンターテーブルｃＩｎｄｅｘ番目の数値が配置閾値より大きいか等しい場合、当該地紋描画分割ブロックの配置補間は不要のためステップＳ８１７に進む。
そうで無い場合にはステップＳ８０４へ進む。
【０１６２】
ステップＳ８０４
合成処理部１３７（図１０）は、追加配置数算出する。
追加配置数＝配置閾値−地紋描画分割ブロック配置カウンターテーブルｃＩｎｄｅｘ番目の数値
【０１６３】
ステップＳ８０５
合成処理部１３７（図１０）は、ループカウント２  ｃＩｎｄｅｘ２を０で初期化する。
【０１６４】
ステップＳ８０６
合成処理部１３７（図１０）は、配置数順番号テーブルのｃＩｎｄｅｘ２番目数値をｃｕｒＪＭＩｎｆに取得する。
【０１６５】
ステップＳ８０７
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置テーブルのｃＩｎｄｅｘ番目のフラグをチェックする。
【０１６６】
ステップＳ８０８
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置テーブルｃＩｎｄｅｘ番目のフラグが１の場合地紋描画分割ブロック有効で未配置のためステップＳ８１１に進む。そうで無い場合にはステップＳ８０９へ進む。
【０１６７】
ステップＳ８０９
合成処理部１３７（図１０）は、ｃＩｎｄｅｘ２に１を加算する。
【０１６８】
ステップＳ８１０
合成処理部１３７（図１０）は、全地紋タイルのチェックが終了か判定する。ｃＩｎｄｅｘ２＜ｃＪＭの場合、全地紋タイルのチェックが終了なので、ステップＳ８１７へ進む。そうで無い場合にはステップＳ８０６へ進む。
【０１６９】
ステップＳ８１１
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報のｃＩｎｄｅｘ番目の地紋描画分割ブロックの矩形を算出した地紋描画領域情報に矩形を追加する。
【０１７０】
ステップＳ８１２
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置テーブルのｃＩｎｄｅｘ番目のフラグに１をセットし配置済みとする。
【０１７１】
ステップＳ８１３
合成処理部１３７（図１０）は、ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の地紋描画分割ブロック配置数を＋１する。
【０１７２】
ステップＳ８１４
合成処理部１３７（図１０）は、地紋タイル１つ分の地紋描画分割ブロック配置カウンターテーブルのｃＩｎｄｅｘ番目の値を＋１する。
【０１７３】
ステップＳ８１５
合成処理部１３７（図１０）は、追加配置数から１を減算する。
【０１７４】
ステップＳ８１６
合成処理部１３７（図１０）は、追加配置数が終了したか判定する。追加配置数が０の場合終了なのでステップＳ８１７に進む。
そうで無い場合にはステップＳ８０９へ進む。
【０１７５】
ステップＳ８１７
合成処理部１３７（図１０）は、ループカウント１ｃＩｎｄｅｘに１を加算する。
【０１７６】
ステップＳ８１８
合成処理部１３７（図１０）は、地紋描画分割ブロック配置カウンターテーブル処理全て終了か判定する。ループカウント１ｃＩｎｄｅｘがｃＪＭＢと等しいか大きい場合処理終了し、それ意外の場合は未了のため、ステップＳ８０２に戻る。
【０１７７】
上記実施例１では、１個のウォーターマークが占める面積が比較的大きいため、描画ブロックを比較的大きく設定する必要があった。一方、本実施例では、電子透かし地紋を用いるので、電子透かし地紋は、ウォーターマークと異なり、人間が視認可能な状態を保つ必要は無い為、地紋を小さく分割することで、１個の電子透かし地紋が占める面積が比較的小さくなる。そこで、上記のように、印刷文書の１ページを複数個のタイルに分割し、更に、そのタイルを描画ブロックに分割することによって、描画ブロックを小さく設定することが可能になるという効果を得る。又、その描画ブロックに基づいて、電子透かし地紋を、印刷文書の画像印刷領域記憶部３５に記憶されている画像印刷領域に重ね合わせることによって、コードに含まれる情報を印刷ページ全体では欠落することなく、特定する情報を印刷することで、増加したトナーやインクなどの消耗品の消費量を低減することが可能になるという効果を得る。
【実施例３】
【０１７８】
本実施例では、バーコードなどの読み取りを目的とした印刷データが含まれる文書において、１頁の印刷可能領域全面に、その文書の印刷者などが特定できる情報を視認可能なウォーターマーク文字列などを配置すると、バーコードなどの読み取り用データの部分にも印刷されることになり、読み取り率の低下を招くことになる。そこで、本実施例では印刷文書を解析し、バーコードなどの読み取り用データ印刷部分を抽出し、その領域周辺には視認可能なウォーターマーク文字列などの画像を合成しないことを特徴とする。
【０１７９】
図２０は、実施例３の画像処理装置の構成のブロック図である。
図に示すように実施例３の画像処理装置３００は、アプリケーション１０と、グラフィックデバイスインタフェース２１と、プリントスプーラ２２と、プリンタドライバ２３０と、特定情報作成モジュール４０と、特定情報設定ユーティリティ５０と、特定情報設定記憶部６０とを備える。以下に、実施例１との相違部分のみについて説明する。実施例１と、同様の部分については実施例１と同一の符号を付して説明を省略する。
【０１８０】
プリンタドライバ２３０は、印刷データ受付部３１と、印刷設定情報表示・変更部３２と、印刷情報設定記憶部３３と、画像データ生成部３６と、合成処理部３７と、印刷データ変換部３８と、送信部３９と、画像印刷領域・下地禁止領域抽出部２３４と、画像印刷領域・下地禁止領域記憶部２３５とを有し、上記のように、印刷データ描画を印刷データに変換し、印刷装置７０に送信する部分である。
【０１８１】
画像印刷領域・下地禁止領域抽出部２３４は、印刷データ描画の各描画オブジェクトを解析し、そのオブジェクトが画像としてページ上に描画される際の画像印刷領域を抽出する部分であると共に、バーコードなどの読み取り用データの印刷領域を抽出する部分である。
【０１８２】
画像印刷領域・下地禁止領域記憶部２３５は、画像印刷領域・下地禁止領域抽出部２３４によって抽出された画像印刷領域を記憶するメモリである。本実施例と実施例１との違いは、画像印刷領域抽出部３４が、画像印刷領域・下地禁止領域抽出部２３４で、画像印刷領域記憶部３５が画像印刷領域・下地禁止領域記憶部２３５で置き換えられている点のみであり、他の部分は、実施例１と同様である。
【０１８３】
次に、図２０を用いて、実施例３の動作について説明する。本実施例の動作は、実施例１の動作に対して、画像印刷領域・下地禁止領域抽出部２３４での画像印刷領域を抽出する動作と、下地禁止領域を抽出する動作が追加され、更に、実施例１のステップＳ８で行なわれる、重ねあわせ検出用矩形と画像印刷領域矩形との重なりを検出する処理が異なる。その他の処理は実施例１の処理と同様である。
【０１８４】
本実施例においては、画像印刷領域・下地禁止領域抽出部２３４は、各描画オブジェクトがページに描画される際の画像印刷領域を抽出する。又、各描画オブジェクトの種類を分類し、印刷後に機械などで画像を読み取ることを目的とするバーコードやＯＣＲ文字などの画像を生成するコードを検出する。更に、その画像印刷領域を下地負荷領域として抽出し、抽出した画像描画領域と、下地禁止領域とを、画像印刷領域・下地禁止領域記憶部２３５に描画オブジェクトの数と共に、領域の矩形情報として記憶する。
【０１８５】
アプリケーション１０がバーコードやＯＣＲ文字を描画する場合を例にして説明する。アプリケーション１０はバーコードやＯＣＲ文字の示す書体と描画座標を指定し、描画するコードを文字コードで指定する。画像印刷領域・下地禁止領域抽出部２３４では、描画オブジェクトを分類し、バーコードやＯＣＲ文字用の文字描画を判定し、バーコードやＯＣＲ文字の描画の場合は、その書体のサイズの属性や、印刷するコードの量から、バーコードやＯＣＲ文字が実際に画像化される矩形のサイズを算出し、描画座標を用いて、下地禁止領域の矩形に追加する。
【０１８６】
図２１は、実施例３の印刷結果の説明図（その１）である。
この図は、画像印刷領域矩形とウォーターマーク描画ブロックと、下地禁止領域の関係を表わしている。
図２２は、実施例３の印刷結果の説明図（その２）である。
この図は、バーコードやＯＣＲ文字の画像印刷領域を除くウォーターマーク描画ブロックのみにウォーターマークを描画した場合の印字例を示す。
【０１８７】
以下に、本実施例における、重ねあわせ検出用矩形と画像印刷領域矩形の重なりを検出する処理についてフローチャートを用いて説明する。
図２３は、実施例３の重ねあわせ検出用矩形と画像印刷領域矩形の重なり検出処理のフローチャートである。
この図は上記図７のステップＳ８の処理について詳細に説明するフローチャートである。以下にステップＳ９０１〜ステップＳ９１０までステップ順に説明する。
【０１８８】
ステップＳ９０１
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５に記憶された画像オブジェクトの数をｃＴｏｔａｌＯｂｊに取得する。
【０１８９】
ステップＳ９０２
合成処理部３７（図２０）は、ループカウントｌｏｏｐを０で初期化する。
【０１９０】
ステップＳ９０３
合成処理部３７（図２０）は、ループカウントｌｏｏｐがｃＴｏｔａｌＯｂｊより大きいか等しい場合、重なりなしと判断し、ステップＳ９１０へ進む。そうで無い場合にはステップＳ９０４へ進む。
【０１９１】
ステップＳ９０４
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５に記憶されたｌｏｏｐ番目の画像印刷領域矩形を取得する。
【０１９２】
ステップＳ９０５
合成処理部３７（図２０）は、重ねあわせ検出用矩形と画像印刷領域矩形に重なりがあるか判定する。
重なりがあると判断された場合にはステップＳ９０７へ進み、そうで無い場合にはステップＳ９０６へ進む。
【０１９３】
ステップＳ９０６
合成処理部３７（図２０）は、ループカウントｌｏｏｐに１加算し更新する。
【０１９４】
ステップＳ９０７
重ねあわせ検出用矩形と下地禁止領域との重なりを判定する。
【０１９５】
ステップＳ９０８
重ねあわせ検出用矩形と下地禁止領域との重なりがある場合は、ステップＳ９１０へ進む。
そうで無い場合にはステップＳ９０９へ進む。
【０１９６】
ステップＳ９０９
合成処理部３７（図２０）は、重なり有りを呼び出し元に応答してフローを終了する。
【０１９７】
ステップＳ９１０
合成処理部３７（図２０）は、重なり無しを呼び出し元に応答してフローを終了する。
【０１９８】
図２４は、重ね合わせ検出用矩形と下地禁止領域矩形の重なり検出処理フローチャートである。
この図は上記ステップＳ８に類似する処理であって重ね合わせ検出用矩形と下地禁止領域矩形の重なり検出処理について詳細に説明するフローチャートである。以下にステップＳ１００１〜ステップＳ１００８までステップ順に説明する。
【０１９９】
ステップＳ１００１
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５に記憶された下地禁止領域数をｃＩｎｖａｌｉｄＡｒｅａに取得する。
【０２００】
ステップＳ１００２
合成処理部３７（図２０）は、ループカウント２  ｌｏｏｐ２を０で初期化する。
【０２０１】
ステップＳ１００３
合成処理部３７（図２０）は、ループカウント２  ｌｏｏｐ２がｃＩｎｖａｌｉｄＡｒｅａより大きいか等しい場合、重なりなしと判断しステップＳ１００８へ進む。
そうで無い場合にはステップＳ１００４へ進む。
【０２０２】
ステップＳ１００４
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５に記憶されたｌｏｏｐ２番目の下地禁止領域矩形を取得する。（０番目を先頭とする。）
【０２０３】
ステップＳ１００５
合成処理部３７（図２０）は、重ねあわせ検出用矩形と下地禁止領域に重なりがあるか判定する。重なりがあると判断した場合には、ステップＳ１００７に進む。そうで無い場合にはステップＳ１００６へ進む。
【０２０４】
ステップＳ１００６
合成処理部３７（図２０）は、ループカウントｌｏｏｐに１を加算し更新する。
【０２０５】
ステップＳ１００７
合成処理部３７（図２０）は、重なり有りを呼び出し元に応答してフローを終了する。
【０２０６】
ステップＳ１００８
合成処理部３７（図２０）は、重なり無しを呼び出し元に応答してフローを終了する。
【０２０７】
以上説明したように、本実施例によれば、印刷文書にバーコードなどの読み取りを目的とした印刷データが含まれる場合であっても、その文書の印刷者が特定できるような情報をバーコードなどが含まれる領域以外で、印刷データが存在する領域にのみ合成して描画するため、ウォーターマークなどの視認可能なデータを視認可能な状態を保ったまま、かつバーコードなどの読み取り耐性を保ったまま、特定する情報を印刷することで増加したトナーやインクなどの消耗品の消費量を低減することができるという効果を得る。
【実施例４】
【０２０８】
バーコードなどの読み取りを目的とした印刷データが含まれる文書において、１ページの印刷可能領域全面に印刷文書にその文書の印刷者などが特定できる情報を上記実施例３では、１個のウォーターマークとして含めた。かかる場合には、１個のウォーターマークが占める面積が比較的大きいため、描画ブロックを比較的大きく設定する必要があった。本実施例では、文書の印刷者などが特定できる情報として、電子透かし地紋を用いることとする。電子透かし地紋は、ウォーターマークと異なり、人間が視認可能な状態を保つ必要は無い為、地紋を小さく分割することで、１個の電子透かし地紋が占める面積が比較的小さくなるので、バーコードなどの読み取りを目的とした印刷データが含まれる文書において、印刷文書を解析し、電子透かし地紋などの埋め込み情報をできるだけ残しつつ、バーコードなどの読み取り用データ印刷部分を抽出し、その領域周辺には電子透かし地紋などの埋め込み情報を合成しないことを特徴とする。
【０２０９】
本実施例の構成は図２０に示す実施例３と同様なので説明を省略し、以下に動作について説明する。全体の動作については、実施例２とほぼ同じであるが、画像印刷領域・下地禁止領域抽出部２３４での画像印刷領域を抽出する動作に下地禁止領域を抽出する処理が追加され、更に、実施例２における地紋分割ブロックと画像印刷領域矩形の重なりチェック処理に於けるステップＳ７１０〜ステップＳ７１２で行なわれる重ねあわせ検出用矩形と画像印刷領域矩形の重なり検出と、検出後の処理が異なる。
【０２１０】
本例においては、画像印刷領域・下地禁止領域抽出部２３４で各描画オブジェクトがページに描画される際の画像印刷領域を抽出すると共に、各描画オブジェクトの種類を分類し、印刷後に機械などで画像を読み取ることを目的とするバーコードやＯＣＲ文字などの画像を生成するコードを検出し、その画像印刷領域を下地禁止領域として抽出し、抽出した画像描画領域と、下地禁止領域とを画像印刷領域・下地禁止領域記憶部２３５に描画オブジェクトの数とともに、領域の矩形情報として記憶する。
【０２１１】
アプリケーション１０がバーコードやＯＣＲ文字を描画する例について説明する。
アプリケーション１０はバーコードやＯＣＲ文字の示す書体と描画座標を指定し、描画するコードを文字コードで指定する。画像印刷領域・下地禁止領域抽出部２３４では、描画オブジェクトを分類し、バーコードやＯＣＲ文字用の文字描画を判定し、バーコードやＯＣＲ文字用の文字描画の場合には、その書体のサイズの属性や、印刷するコードの量から、バーコードやＯＣＲ文字が実際に画像化される矩形のサイズを算出し、描画座標から、下地禁止領域の矩形に追加する。
【０２１２】
図２５は、実施例４の地紋分割ブロックと画像印刷領域矩形の重なりチェック処理フローチャートである。
このフローチャートに於いて、ステップＳ７０１〜ステップＳ７０９と、ステップＳ７１２〜ステップＳ７２２の処理は実施例２の図１８と同じなので説明を省略し、それ以外のステップのみについて以下に説明する。
【０２１３】
ステップＳ７１０
合成処理部１３７（図２０）は、重ねあわせ検出用矩形と画像印刷領域矩形の重なりを検出する処理で、画像印刷領域矩形との重なりと共に、下地禁止領域についても検出を行う。
【０２１４】
ステップＳ７１１
重ねあわせ検出用矩形と画像印刷領域矩形の重なりがない場合、ステップＳ７１６に進む。そうで無い場合にはステップＳ７１１−２へ進む。
【０２１５】
ステップＳ７１１−２
重ねあわせ検出用矩形と下地禁止領域が重なる場合には、ステップＳ７１５に進み、地紋描画分割ブロック配置状態テーブルでは、重なり済みにするが、実際の配置数にはカウントせず、また、矩形を地紋描画領域情報にも追加しない。
【０２１６】
図２６は、実施例４の重ね合わせ検出用矩形と画像印刷領域矩形の重なり検出処理フローチャートである。
この図は、上記ステップＳ７１０の処理について詳細に説明するフローチャートである。以下にステップＳ１１０１〜ステップＳ１１１１までステップ順に説明する。
【０２１７】
ステップＳ１１０１
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５（図２０）に記憶された画像オブジェクトの数をｃＴｏｔａｌＯｂｊに取得する。
【０２１８】
ステップＳ１１０２
合成処理部３７（図２０）は、ループカウントｌｏｏｐを０で初期化する。
【０２１９】
ステップＳ１１０３
合成処理部３７（図２０）は、ループカウントｌｏｏｐがｃＴｏｔａｌＯｂｊより大きいか等しい場合、重なり無しと判断してステップＳ１１１１へ進む。そうで無い場合にはステップＳ１１０４へ進む。
【０２２０】
ステップＳ１１０４
合成処理部３７（図２０）は、画像印刷領域・下地禁止領域記憶部２３５（図２０）に記憶されたｌｏｏｐ番目の画像印刷領域矩形を取得する。（０番目を先頭とする。）
【０２２１】
ステップＳ１１０５
合成処理部３７（図２０）は、重ねあわせ検出用矩形と画像印刷領域矩形重なりがあるか判定する。重なりがある場合はステップＳ１１０７に進む。重なりが無い場合にはステップＳ１１０６へ進む。
【０２２２】
ステップＳ１１０６
合成処理部３７（図２０）は、ループカウントｌｏｏｐに１を加算し更新する。
【０２２３】
ステップＳ１１０７
合成処理部３７（図２０）は、重ねあわせ検出用矩形と下地禁止領域との重なりを判定する。
【０２２４】
ステップＳ１１０８
重ねあわせ検出用矩形と下地禁止領域との重なりがある場合には、ステップＳ１１１０に進む。重なりがない場合、ステップＳ１１０９に進む。
【０２２５】
ステップＳ１１０９
合成処理部３７（図２０）は、重なり有りで下地禁止を呼び出し元に応答してフローを終了する。
【０２２６】
ステップＳ１１１０
合成処理部３７（図２０）は、重なり有りで下地可能を呼び出し元に応答してフローを終了する。
【０２２７】
ステップＳＳ１１１１
合成処理部３７（図２０）は、重なりなしを呼び出し元に応答してフローを終了する。
【０２２８】
上記実施例１では、１個のウォーターマークが占める面積が比較的大きいため、描画ブロックを比較的大きく設定する必要があった。一方、本実施例では、電子透かし地紋を用いるので、電子透かし地紋は、ウォーターマークと異なり、人間が視認可能な状態を保つ必要は無い為、地紋を小さく分割することで、１個の電子透かし地紋が占める面積が比較的小さくなる。従って、本実施例によれば、印刷文書にその文書の印刷者が特定できるような情報をバーコードなどの読み取りを目的とした印刷データが含まれる領域以外の領域のみで合成して描画する。そのため、コードに含まれる情報を印刷ページ全体では欠落することなく、かつバーコードなどの読み取り耐性を保ったまま、特定する情報を印刷することで増加したトナーやインクなどの消耗品の消費量を低減することが出来るという効果を得る。
【実施例５】
【０２２９】
上記第４の実施例では、視認可能なウォーターマーク文字列や複写牽制地紋などの画像を合成しない領域を、印刷描画データに含まれるバーコードのなどの読み取り用データ印刷部分を抽出することで実現しているが、本実施例では、アプリケーションが指定した印刷描画オブジェクトの印刷領域を視認可能なウォーターマーク文字列や複写牽制地紋などの画像を合成しない領域とすることを特徴とする。
【０２３０】
本実施例の構成は図２０に示す実施例３及び実施例４と同様なので説明を省略し、以下に動作について説明する。全体の動作については、実施例４とほぼ同じであるが、アプリケーション１０とプリンタドライバ３０の間に下地禁止領域にする描画オブジェクトの開始と終了を指示する下地禁止領域開始指示・下地禁止領域終了指示が追加される。この下地禁止領域開始指示・下地禁止領域終了指示は、アプリケーション１０の指示がプリンタドライバ３０に直接通じるような例えば、専用のＥｓｃａｐｅインタフェースで提供するものとする。
【０２３１】
アプリケーション１０は一連のページデータの描画の中で、視認可能なウォーターマーク文字列や複写牽制地紋などを重ね合わせないバーコードなどの読み取り用のデータの描画オブジェクトの前にプリンタドライバ３０に対して地禁止領域開始指示を行い、バーコードのなどの読み取り用のデータの描画オブジェクト描画後に、プリンタドライバ３０に対して下地禁止領域終了指示を行う。プリンタドライバ３０では、画像印刷領域、下地禁止領域抽出部２３４での画像印刷領域および下地禁止領域を抽出する動作で、アプリケーション１０から下地禁止領域開始指示が行われている間の、描画オブジェクトの画像印刷領域を下地禁止領域として抽出し画像印刷領域・下地禁止領域記憶部２３５に、領域の矩形情報として記憶する処理を追加する。
【０２３２】
アプリケーション１０がバーコードをビットマップとして描画する場合を例として説明する。アプリケーション１０はバーコードのビットマップの前にプリンタドライバ３０に下地禁止領域開始指示を行う。次にバーコードのビットマップを形成しそのビットマップを通常のビットマップオブジェクトとして描画する。画像印刷領域・下地禁止領域抽出部２３４では、各描画オブジェクト終了指示の間に描画されたオブジェクト領域は、画像印刷領域・下地禁止領域記憶部２３５の下地禁止領域の矩形に追加する。下地禁止領域開始指示から下地禁止領域終了指示の間以外の描画オブジェクトの画像印刷領域は画像印刷領域・下地禁止領域記憶部２３５の画像印刷領域の矩形に追加する。以降の処理は、実施例４と同様なので説明を省略する。
【０２３３】
以上説明したように、本実施例によれば、印刷文書にその文書の印刷者が特定できるような情報をアプリケーションが任意に指定したバーコードなどの読み取りを目的とした印刷データが含まれる領域以外の印刷データが存在する領域にのみ合成して描画するため、印刷文書の流出を抑止する目的で印刷者を特定する情報を強制的に電子透かし地紋などのコードで印刷する場合に、コードに含まれる情報を印刷ページ全体では欠落することなく、かつバーコードなどの読み取り耐性を保ったまま、特定する情報を印刷することで増加したトナーやインクなどの消耗品の消費量を低減することが出来るという効果を得る。
【産業上の利用可能性】
【０２３４】
ここでは本発明をプリンタドライバに適用した例について説明したが、本発明はこの例に限定されるものでは無い。例えばプリンタ、ファクシミリ、ＭＦＰ、複写装置にも適用できる。
【図面の簡単な説明】
【０２３５】
【図１】実施例１の画像処理装置の構成のブロック図である。
【図２】特定情報識別文字列で使用する制御文字の１例説明図である。
【図３】実施例１の印刷結果の説明図（その１）である。
【図４】実施例１の印刷結果の説明図（その２）である。
【図５】実施例１の印刷結果の説明図（その３）である。
【図６】実施例１の印刷結果の説明図（その４）である。
【図７】実施例１の合成処理部の動作のフローチャートである。
【図８】ウォーターマーク描画ブロック矩形サイズ算出処理のフローチャートである。
【図９】実施例１の重ねあわせ検出用矩形と画像印刷領域矩形の重なり検出処理のフローチャートである。
【図１０】実施例２の画像処理装置の構成のブロック図である。
【図１１】実施例２の印刷結果の説明図（その１）である。
【図１２】実施例２の印刷結果の説明図（その２）である。
【図１３】実施例２の印刷結果の説明図（その３）である。
【図１４】実施例２の合成処理部の動作のフローチャートである。
【図１５】地紋描画分割ブロック情報と配置閾値の取得処理のフローチャートである。
【図１６】地紋タイル情報用記憶領域確保、初期化処理のフローチャートである。
【図１７】ｃｕｒＪＭＩｎｆ番目の地紋タイル情報の設定処理のフローチャートである。
【図１８】実施例２の地紋分割ブロックと、画像印刷領域矩形の重なりチェック処理フローチャートである。
【図１９】地紋描画分割ブロック補間処理のフローチャートである。
【図２０】実施例３の画像処理装置の構成のブロック図である。
【図２１】実施例３の印刷結果の説明図（その１）である。
【図２２】実施例３の印刷結果の説明図（その２）である。
【図２３】実施例３の重ねあわせ検出用矩形と画像印刷領域矩形の重なり検出処理のフローチャートである。
【図２４】重ね合わせ検出用矩形と下地禁止領域矩形の重なり検出処理フローチャートである。
【図２５】実施例４の地紋分割ブロックと画像印刷領域矩形の重なりチェック処理フローチャートである。
【図２６】実施例４の重ね合わせ検出用矩形と画像印刷領域矩形の重なり検出処理フローチャートである。
【符号の説明】
【０２３６】
１０    アプリケーション
２１    グラフィックデバイスインタフェース
２２    プリントスプーラ
３０    プリンタドライバ
３１    印刷データ受付部
３２    印刷設定情報表示・変更部
３３    印刷情報設定記憶部
３４    画像印刷領域抽出部
３５    画像印刷領域記憶部
３６    画像データ生成部
３７    合成処理部
３８    印刷データ変換部
３９    送信部
４０    特定情報作成モジュール
４１    特定情報取得部
４２    特定情報生成部
５０    特定情報設定ユーティリティ
５１    特定情報設定部
６０    特定情報設定記憶部
７０    印刷装置
１００    画像処理装置
【図１】
2008022237.tif 000003
【図２】
2008022237.tif 000004
【図３】
2008022237.tif 000005
【図４】
2008022237.tif 000006
【図５】
2008022237.tif 000007
【図６】
2008022237.tif 000008
【図７】
2008022237.tif 000009
【図８】
2008022237.tif 000010
【図９】
2008022237.tif 000011
【図１０】
2008022237.tif 000012
【図１１】
2008022237.tif 000013
【図１２】
2008022237.tif 000014
【図１３】
2008022237.tif 000015
【図１４】
2008022237.tif 000016
【図１５】
2008022237.tif 000017
【図１６】
2008022237.tif 000018
【図１７】
2008022237.tif 000019
【図１８】
2008022237.tif 000020
【図１９】
2008022237.tif 000021
【図２０】
2008022237.tif 000022
【図２１】
2008022237.tif 000023
【図２２】
2008022237.tif 000024
【図２３】
2008022237.tif 000025
【図２４】
2008022237.tif 000026
【図２５】
2008022237.tif 000027
【図２６】
2008022237.tif 000028