以下、図面を参照して本発明の実施形態を詳細に説明する。
図1〜図19は、本発明の一実施形態に係わる情報処理装置であるホストコンピュータと印刷装置であるプリンタを含んで構成されるシステムにおける、印刷処理およびそれに伴う地紋画像の基本的な描画データの生成に関する構成を説明する図である。
なお、本実施形態においては、複写時に、複写物において顕在化する部分を潜像部または前景部と称する。また、複写時に、複写物において消失または潜像部に比較して薄くなる部分を背景部と称している。そして、潜像部には「COPY」や「VOID」などのテキスト情報を入力している。しかしながら本発明における地紋画像はこれに限られるものではなく、複写物において、テキスト情報は周囲の画像に対して白抜き文字のように表現される(顕在化する)形態であってもよい。この場合、潜像部と背景部の上述したドットの集中と分散の関係は白抜きでないものと逆の関係となることはもちろんである。本発明は、地紋画像の種類や生成処理、色、形状、サイズなどによって規定されるものではない。
印刷システムの構成
図1は、本発明の実施形態に係る印刷システムの構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
同図において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、図21以降で後述される本発明の各実施形態に係わる処理を含む、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理およびそれに基づく印刷処理の実行を制御する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)を示し、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(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は本実施形態では電子写真方式のエンジンを備えている。従って、画像の印刷およびそれに伴う地紋画像はそれらの印刷データに従って形成されるトナーのドットによって印刷が行われる。なお、本発明の適用上、印刷の方式はこのような電子写真方式に限られないことはもちろんであり、例えば、インクジェット方式など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
図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を実行することにより、後述の地紋画像のコマンド生成などの処理を行う。
また、地紋レイヤー決定部308(図3参照)は、地紋処理部205に設けられたモジュールであり、第2の実施形態における地紋画像の印刷順序の自動決定処理を実行する。
印刷関連のソフトウエアモジュール
図3は、ホストコンピュータ3000における印刷処理のための構成の他の例に係わり、図2に示した構成を拡張した構成を示すブロック図である。この構成は、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成となっている。図2の構成では、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3の構成では、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示す構成においては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
これらの目的のために、図2の構成に対し、図3に示す様に中間コードデータでスプールするよう、システムの拡張がなされている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウィンドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
以下、図3に示す構成の詳細を説明する。同図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令(GDI関数)に基づくものである場合には、ディスパッチャ301は外部メモリ11に格納されているスプーラ302をRAM2にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令(DDI関数)を送付する。
スプーラ302は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル(PDF:Page Description File)と呼ぶ。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定(Nup、両面、ステープル、カラー/モノクロ指定等)をプリンタドライバ203から取得してジョブ単位のファイルとしてスプールファイル303に保存する。このジョブ単位に格納されている設定ファイルをジョブ設定ファイル(簡略してSDF:Spool Description Fileと呼ぶこともある)と呼ぶ。このジョブ設定ファイルについては後述する。なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ11に格納されているデスプーラ305をRAM2にロードする。そして、スプールファイルマネージャ304はデスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルに基づく制御コマンド生成処理を行うように指示する。
デスプーラ305はスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、GDI関数を再生成し、もう一度グラフィックエンジン202経由でGDI関数を出力する。その際、地紋画像の印刷に関するコマンド生成については、地紋処理部205をロードし、処理を行う。
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)がデスプーラ305からグラフィックエンジン202へ発行された印刷命令(GDI関数)に基づいたものである場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。プリンタドライバ203はグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
さらに、図3に示すように、上述した拡張システムに加えて、プレビューア306、設定変更エディタ307を配し、地紋画像のプレビューを含むプレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、まずユーザが図8に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニュー901において「ストア」を指定する必要がある。なお、プレビューだけを見たい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体(Windows(登録商標)OSでは、DEVMODEと呼ばれる)に格納される。その構造体には、例えばスプールファイル303に含まれる加工設定中にスプールファイルマネージャ304にストアを行うかどうかの設定が含まれている。スプールファイルマネージャ304がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル303にページ描画ファイルとジョブ設定ファイルとが生成・格納される。また、スプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル303にスプールされたジョブがリスト表示される。
スプールファイルマネージャのウィンドウ画面上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ11に格納されているプレビューア306をRAM2にロードし、プレビューア306に対して、スプールファイル303に記述された中間コードのジョブのプレビュー処理を行うように指示する。
印刷用中間データの保存処理
図4は、スプーラ302における、スプールファイル303の生成におけるページ単位保存ステップの処理を示すフローチャートである。
同図において、まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求を受け付ける。アプリケーションにおいては、図7に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ303に渡される。図7に示す設定入力ダイアログにおいては、符号801で示される、1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
ステップ502では、スプーラ302は、受け付けた印刷要求がジョブ開始要求か判定する。ここで、ステップ502でジョブ開始要求であると判断した場合には、ステップ503に進み、スプーラ302は、中間データを一時的に保存するためのスプールファイル303を作成する。
続いて、ステップ504では、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知する。続くステップ505でスプーラ302のページ数カウンタを1に初期化する。ここで、スプールファイルマネージャ304においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル303より読み込み、記憶する。
一方、ステップ502において、ジョブ開始要求ではなかったと判断した場合には、ステップ506に進む。このステップ506では、スプーラ302は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップ507に進み、改ページか否かの判別を行う。ステップ507で改ページであると判断した場合には、ステップ508に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルをクローズし、次のページ描画ファイルを生成する。ステップ507において、受け付けた印刷要求が改ページではないと判断した場合には、ステップ509に進み、スプーラ302は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
次に、ステップ510では、印字要求をスプールファイル303へ格納するため、スプーラ302は、印字要求のDDI関数の中間コードへの変換処理を行う。ステップ511では、スプーラ302は、ステップ510において格納可能な形に変換された印刷要求(中間コード)をスプールファイル303のページ描画ファイルへ書き込む。その後、ステップ501に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップ501からステップ511までの処理を、アプリケーションよりジョブ終了要求を受け取るまで続ける。また、スプーラ302は、同時にプリンタドライバ203からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル303に格納する。
一方、ステップ506にて、スプーラ302がアプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップ512に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知し、処理を終える。
スプールファイルの生成
図5は、スプールファイルマネージャ304における、スプールファイル303生成プロセスと、印刷データ生成プロセスの間での制御の詳細を示すフローチャートである。
ステップ601では、スプールファイルマネージャ304は、スプーラ302あるいはデスプーラ305からの印刷処理の進捗通知を受け付ける。そして、ステップ602では、スプールファイルマネージャ304は、進捗通知が前述のステップ504において通知されるスプーラ302からの印刷開始通知であるか否か判定する。印刷開始通知であればステップ603へ進み、印刷の加工設定をスプールファイル303から読み込み、ジョブの管理を開始する。
一方、ステップ602において、スプーラ302からの印刷開始通知でなければステップ604へ進む。ステップ604において、スプールファイルマネージャ304は、進捗通知が前述のステップ508において通知されるスプーラ302からの1論理ページの印刷終了通知であるか否かを判定する。ここで1論理ページの印刷終了通知であればステップ605へ進み、この論理ページに対する論理ページ情報を格納する。そして、続くステップ606では、この時点でスプールが終了したn論理ページに対して、スプールファイルマネージャ304は1物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップ607へ進み、印刷する1物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
物理ページの計算については、例えば、加工設定が1物理ページに4論理ページを配置するような設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。続いて、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップ512におけるスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
そして、ステップ608では、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル(物理ページ情報を含むファイル)に保存される。保存形式は図9に示す。物理ページ情報が1物理ページ分追加されたことがデスプーラ305に通知される。その後ステップ601に戻り、次の通知を待つ。本実施形態においては、印刷データ1ページ、即ち1物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
一方、ステップ604において、進捗通知がスプーラ302からの1論理ページの印刷終了通知でなかった場合ステップ609へ進み、スプールファイルマネージャ304は、前述のステップ512において通知されるスプーラ302からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップ606へ進む。一方、ジョブ終了通知でない場合、ステップ610へ進み、スプールファイルマネージャ304は、受け付けた通知がデスプーラ305からの1物理ページの印刷終了通知であるかどうか判定する。ここで、1物理ページの印刷終了通知である場合はステップ612へ進み、加工設定の処理が全て終了したかを判定する。処理が終了した場合、ステップ612へ進み、デスプーラ305に処理終了の通知を行う。一方、加工設定に対する処理がまだ終了していないと判断した場合、前述の606へ進む。本実施形態におけるデスプーラ305は印刷処理を行う単位として1物理ページ数を想定している。また、ステップ608では、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、1物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップ608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
ステップ610において、通知がデスプーラ305からの1物理ページの印刷終了通知でないと判断された場合、ステップ613へ進み、スプールファイルマネージャ304は、デスプーラ305からの印刷終了通知かどうかを判定する。通知がデスプーラ305からの印刷終了通知と判定された場合、ステップ614へ進み、スプールファイルマネージャ304は、スプールファイル303の該当するページ描画ファイルの削除を行い処理を終える。ただし、一方、デスプーラ305からの印刷終了通知でなかった場合はステップ615へ進み、その他通常処理を行い、次の通知を待つ。
スプールファイルの出力
図6は、デスプーラ305における、印刷データの生成プロセスの詳細を示すフローチャートである。
デスプーラ305は、スプールファイルマネージャ304からの印刷要求に応じて、スプールファイル303から必要な情報(ページ描画ファイルおよびジョブ設定ファイル)を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図3にて前述した通りである。また、印刷データはPDLであることも前述した通りである。
印刷データの生成では、まず、ステップ701において、前述のスプールファイルマネージャ304からの通知を入力する。続くステップ702では、デスプーラ305は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップ703へ進み、終了フラグを立て、ステップ705へ進む。一方、ステップ702においてジョブ終了通知でない場合は、ステップ704に進み、前述のステップ608における1物理ページの印刷開始要求が通知されたかどうか判定する。ステップ704において開始要求と判定されなかった場合は、ステップ710へ進み、その他エラー処理を行い、ステップ701へ戻り次の通知を待つ。
一方、ステップ704において1物理ページの印刷開始要求と判定された場合は、ステップ705へ進み、デスプーラ305は、ステップ704で通知を受けた印刷処理可能な物理ページのIDを保存する。続くステップ706では、デスプーラ305は、ステップ705で保存した物理ページIDのすべてのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップ707へ進み、前述のステップ703で終了フラグが立てられているのか判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ305の処理終了の通知をスプールファイルマネージャ304に通知し、処理を終える。ステップ707で、終了フラグが立っていないと判定された場合は、ステップ701へ戻り次の通知を待つ。
一方、ステップ706で、印刷可能な物理ページが残っていると判定された場合には、ステップ708へ進み、デスプーラ305は、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル303に格納された印刷要求命令をデスプーラ305においてグラフィックエンジン202が認識可能な形式(GDI関数)に変換し、転送する。本実施形態のような、複数論理ページを1物理ページにレイアウトするような加工設定(以下Nページ印刷)については、このステップで縮小配置を考慮にいれながら変換する。
必要な印刷処理が終えたならば、デスプーラ305は続くステップ709において1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ304に対して行う。そして再びステップ706へ戻り、ステップ705で保存しておいた印刷可能な物理ページIDすべてについて印刷処理を行うまで繰り返す。
以上が、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305を用いた印刷処理の流れである。上記のように処理することにより、スプーラ302が中間コードを生成してスプールファイル303に格納するタイミングでアプリケーション201が印刷処理から開放されるので、プリンタドライバ203に印刷データを直接出力するよりも短時間で処理を終えることができる。また、スプールファイル303にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)を一時的に保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることができる。また、中間ファイルを保持していることにより、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなく実行可能である。
ここで、スプーラ302を用いた印刷処理において、グラフィックエンジン202への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
ジョブ出力用設定ファイルの構成
図9は、ステップ608において、スプールファイルマネージャ304が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド1001は、ジョブを識別するためのIDで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド1002はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン202に対してジョブの印刷を開始するために必要な構造体、Nページ印刷の指定、ページ枠などの追加描画の指定、部数、ステープルなどのフィニッシング指定など、1つのジョブに対して1つしか設定できない情報が含まれている。ジョブ設定情報1002には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド1003はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド1004から最後までフィールド1003の数だけ物理ページ情報が格納される。物理ページ情報については図12で説明する。
図10は、図9のフィールド1002に図示されたジョブ設定情報の一例を示す図である。フィールド1101は全物理ページ数である。フィールド1102は、全論理ページ数である。フィールド1101および1102は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ304は印刷可能な物理ページの情報の作成を延期する。フィールド1103は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド1104は、フィールド1103で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド1104はステープル、パンチ、Z折りなどのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャを有する場合に指定される。フィールド1106は付加印刷情報で、本発明の地紋プリントを始め、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
図11は、図9のフィールド1004に図示された物理ページ情報の一例を示す図である。最初のフィールド1201は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド1202は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド1203は本物理ページに割り付けられる論理ページ数で、1物理ページに4ページを割り付ける場合には4もしくは4ページ印刷を示すIDが保存される。フィールド1204以降はフィールド1203で指定された数だけ論理ページの情報が保存される。アプリケーション201から印刷されたページ数によっては、1203で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
図12は、物理ページ設定情報1202の例を示す図である。フィールド1301は物理ページ上への論理ページの配置順で、Nページ印刷で、物理ページ上に論理ページを配置する順番(左上から横へ、左上から下へ等)の指定が保存されている。システムによっては、配置順ではなく、フィールド1204以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することで1301の設定を代用する場合もある。フィールド1302は両面印刷の表・裏の情報で、例えば綴じ代を表裏でそろえる際に使用される。フィールド1303はカラーページかモノクロページかの指定で、プリンタがモノクロモードとカラーモードを持つ場合、カラーページとモノクロページが混在する文書で、カラーページをカラーモードで、モノクロページをモノクロモードで印刷したい場合などに使用される値である。フィールド1304は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
本実施形態の場合、図15以降で説明される地紋画像印刷は物理ページに対して付加される情報なので、図10に示すフィールド1106に保持された地紋印刷に関する情報に基づき、各物理ページに対する設定情報として、フィールド1304内にも格納される。ジョブに対する付加印刷情報1106および付加印刷情報1304内における、地紋プリントに関する設定情報を格納するデータ形式の一例については、図14において後述する。
図13は、フィールド1204で示された論理ページ情報の一例を示す図である。フィールド1401は論理ページのIDであり、このIDを利用して、スプールファイル303から論理ページに対応するページ描画ファイルの中間コードを参照する。このIDを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド1402は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページIDの補助情報に使用される。フィールド1403のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存する事も可能である。逆に、論理ページ単位で設定を切りかえる事や論理ページ単位での属性情報が不要であるようなシステムでは、フィールド1403は不要である。
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁(片面、両面、製本印刷)、印刷レイアウト(Nup、ポスター印刷)、付加情報(地紋プリント情報、ウォーターマーク、日付、ユーザ名など)、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
更に、図3は、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ307を配した例を示している。設定変更エディタ307は上述したジョブ設定ファイルもしくはジョブ出力用設定ファイルの内容を対話的に変更可能とするエディタである。設定変更エディタ307は本発明に直接関係しないので、説明を省略する。
(第1実施形態)
地紋画像印刷データ生成処理の説明
本発明の第1の実施形態は、地紋画像の透かし印刷または重ね印刷を、ユーザが任意に選択するための構成に関するものである。具体的には、図16(a)に示す透かし印刷または重ね印刷を選択するためのラジオボタン2210を有したユーザインターフェイスを介してユーザが透かし印刷または重ね印刷のいずれかを選択することにより、地紋画像データと印刷出力画像のデータ(原稿データ)との最終的な重なり順序が定められる。そして、それに従い、図17にて説明する地紋画像の透かし印刷または図18にて説明する地紋画像の重ね印刷が行われる。なお、透かし印刷及び重ね印刷の具体的な内容については後述する。
図15から図16は、地紋画像印刷に関する設定をおこなうユーザインターフェイスの一例を示す図である。
図15はプリンタドライバ203内に配された、地紋プリントに関するユーザインターフェイスの初期画面の一例である。この例では、ダイアログ内のプロパティシート2101において地紋プリントに関する設定が行えるようになっている。
2102は、印刷ジョブに対して地紋プリント(地紋画像を含む印刷、以下、同じ)を行うかどうかを指定するチェックボックスである。この指定は図10における付加印刷情報1106内に地紋プリントを行うかどうかの設定として格納される。2103は、地紋プリントの複数の設定情報を1つの識別子(スタイル)で指定可能にするためのスタイル情報を示す。プリンタドライバ203は複数のスタイルを選択可能となっており、各スタイルと図14に示す地紋プリント情報との関係がレジストリに登録される。また、ユーザがボタン2104を押下することにより、図16(a)に示すスタイル編集用ダイアログ2201が表示される。2105は、地紋プリントにおける前景、背景のコントラストを調整する際に用いるチェックボックスである。ユーザがボタン2106を押下することにより、コントラスト調整用の画面(不図示)が表示される。
図16(a)は、地紋プリントの個々の詳細設定を編集するためのダイアログの一例を示す図である。
同図において、2201は地紋画像情報編集用ダイアログ全体を示し、同領域に後述する個々の地紋画像情報によって生成される地紋画像の結果がプレビューのため表示される。2202は図15の2103で選択可能なスタイルの一覧を表示する領域である。ユーザはボタン2203および2204を用いてスタイルの新規追加、削除が可能となる。2205は、現在指定されているスタイル名称が表示される領域を示す。
2206は、地紋プリントに用いる描画オブジェクトの種類を選択するラジオボタンである。ユーザがこのラジオボタン2206を操作して「文字列」を選択するとテキストオブジェクトが使用され、「イメージ」を選択するとBMPなどに代表されるイメージデータが使用される。図16では、「文字列」が選択されているので、ダイアログ2201には符号2207から2209などで示されるテキストオブジェクトに関する設定情報が表示され、編集可能となる。一方、領域2206において「イメージ」が選択されている場合、情報2207から2209は表示されず、その代わりに図16(b)に示すイメージファイル名称表示2215および図不示のファイル選択ダイアログを表示するためのボタン2216が表示される。
2207は地紋画像として使用する文字列を表示、編集するための領域を示す。2208は文字列のフォント情報を表示、編集するための領域を示す。本実施形態では、フォント名称のみの選択画面としているが、書体のファミリー情報(ボールド、イタリックなど)や、飾り文字情報などが選択可能に拡張してもよい。2209は地紋パターンとして使用する文字列のフォントサイズを表示、設定する領域である。本実施形態では「大」「中」「小」の3段階で指定可能な形式を想定しているが、ポイント数の直接入力など、一般的に用いられるフォントサイズ指定方法を採用してもよい。2210は地紋パターンと原稿データの印刷順序を設定するためのラジオボタンである。「透かし印刷」が指定された場合は、プリンタのビットマップメモリ上に最初に地紋画像を描画した後、その地紋画像に対してオーバーライトするように原稿データを描画する。一方、「重ね印刷」が指定された場合は、最初に原稿データを描画した後、その原稿データに対してオーバーライトするように地紋画像を描画する。描画の詳細な処理は後述する。
2211は、地紋パターンの配置角度を指定するラジオボタンを示す。本実施形態では、「右上がり」「右下がり」「横」の3通りの選択を可能としているが、角度を任意に指定可能な数値入力領域や、直感的に指定可能なスライダーバーなどを配し、角度指定方法を拡張してもよい。2212は、地紋パターン(前景パターン、背景パターン)に用いる色を表示、指定するための領域を示す。2213は、前景パターン、背景パターンの入れ替えを行うためのチェックボックスを示す。チェックボックスがチェックされていない場合は、複写時に複写物において前景パターンが浮かび上がり、一方、チェックされていない場合は複写時に背景パターンが浮かび上がって、前景パターンが白抜きで表現されるよう印刷が行われる。
2214は、原稿に埋め込んだ地紋パターンを認識させづらくさせるためのカモフラージュ画像を指定するための領域を示し、複数のパターンから選択可能である。また、カモフラージュ画像を使用しないという選択肢も提供されている。
地紋プリント設定情報のデータ形式
次に、図16において説明した地紋プリント設定情報に関する付加情報1106および1304に格納されるデータ形式について図14を用いて説明する。
同図において、フィールド2001は、図16(a)の領域2206で指定される、地紋プリントで生成する描画オブジェクト種(テキスト形式あるいはイメージ)を示す値を格納する。フィールド2002は、図16(a)の領域2207〜2209、あるいは図16(b)で指定される、フィールド2001の情報で指定された描画オブジェクトに対する設定情報を格納する。テキスト選択時は文字列、フォント名、サイズ情報が、イメージ選択時は入力するイメージファイルのロケーションが格納される。フィールド2003は、図16(a)の領域2210で指定される、原稿データに対して地紋パターンを先に描画するか、後から描画するか(描画順序)を指定する情報を格納する。フィールド2004は、図16(a)の領域2211で指定される、描画オブジェクトを配置する角度情報を格納する。フィールド2005は、図16(a)の領域2212で指定される、地紋パターン(前景パターン、背景パターン)に使用される色情報を格納する。フィールド2006は、図16(a)のチェックボックス2213で指定される、前景パターン、背景パターンの入れ替えを行うかどうかの情報を格納する。フィールド2007は、図16(a)の領域2214で指定される、カモフラージュ画像のパターン付加情報を格納する。フィールド2008は、前景パターンの濃度情報を格納する。フィールド2009は、背景パターンの濃度情報を格納する。
地紋画像の印刷データ生成処理
図17および図18は、地紋プリントにおける地紋画像の印刷データ生成処理の流れを示すフローチャートである。これらの図はそれぞれ図16(a)にて説明したそれぞれ「透かし印刷」と「重ね印刷」に対応している。また、これらの処理は、図6のステップ708における印刷処理、即ち印刷データの生成処理の過程において行われるものである。
まず、「透かし印刷」、すなわち、先に地紋画像の印刷データを生成するケースについて、図17のフローチャートを用いて説明する。上述したように、「透かし印刷」はプリンタのビットマップメモリにおいて、地紋画像データの上に原稿データをラスタライズする処理である。そのため、印刷データの生成順序としては、原稿データに対応する印刷データ生成より先に地紋画像の印刷データを生成することになる。
ステップ1901において、図14で示した地紋に関する情報に従い、地紋処理部205が地紋画像の生成を行う。その詳細な処理については図19にて後述する。その後、原稿データの印刷データ生成処理を行う。ステップ1902において、カウンタを初期化する。ステップ1903において、カウンタが、予め設定されている1物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったら本処理を終了し、等しくなければステップ1904へすすむ。ステップ1904において、カウンタを1増加させる。ステップ1905において、1ページあたりの論理ページ数およびカウンタをもとに、これから印刷データ生成処理をする論理ページに対する有効印字領域を計算する。ステップ1906において、図11のような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小する。ただし、Nページ印刷が指定されていない場合にはもちろん縮小の必要はない。
次に、「重ね印刷」、すなわち、先に原稿データの印刷データを生成するケースについて、図18のフローチャートを用いて説明する。上述したように、「重ね印刷」はプリンタのビットマップメモリにおいて、原稿データの上に地紋画像をラスタライズする処理である。そのため、印刷データの生成順序としては、地紋画像に対応する印刷データ生成より先に原稿データに対応する印刷データを生成することになる。
ステップ1902において、カウンタを初期化する。次に、ステップ1903において、カウンタが、予め設定されている1物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったらステップ1908へ進み、等しくなければステップ1904へすすむ。ステップ1904において、カウンタを1増加させる。ステップ1905において、1ページあたりの論理ページ数およびカウンタをもとに、これから生成する論理ページに対する有効印字領域を計算する。ステップ1906において、図11のような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小する。ただし、Nページ印刷が指定されていない場合にはもちろん縮小の必要はない。1物理ページとして所定数の論理ページに対応する印刷データの生成をし終えたなら、ステップ1908に進む。ステップ1908では、アプリケーションから取得している物理ページの有効印字領域に基づいて、図14で示した地紋に関する情報に従い、地紋処理部205が地紋画像の生成を行う。その詳細処理については図19にて後述する。
図19は本発明の一実施形態に係る、図17に示したステップ1901の地紋画像生成処理及び図18に示したステップ1908の地紋画像生成処理の詳細を示すフローチャートである。以下、図19を参照して、地紋画像生成処理を説明する。
初めに、ステップS2701で地紋画像生成処理が開始される。具体的には、地紋処理部205に地紋画像生成指示と上述した地紋プリント設定情報が入力される。次に、ステップS2702で、地紋処理部205は背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像、を読み込む。なお、基礎画像とは、地紋画像を生成するための基礎となるイメージデータである。これは図14に示した各種の設定情報に基づいてデスプーラ305によって生成される画像である。
さらに、ステップS2703で、地紋処理部205は地紋画像を生成する際の初期画素を決定する。例えば、A4用紙の印字可能領域全体に対して左上から右下までラスター走査順に画像処理を行い地紋画像を生成する場合、印字可能領域の左上を初期位置とする。この場合、印字可能領域と地紋画像領域とが等しくなる。
次にS2704では、地紋処理部205は背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像を地紋画像領域の左上からタイル上に配置する処理を以下の式(1)に基づく計算によって実行する。この計算によって、当該画素位置に印刷時のドットに対応する画素値を書き込むか否かを判定する。このとき画素値は入力された色情報に対応する。なお、ここで、背景閾値パターンおよび前景閾値パターンは、ドットの書き込み/非書き込みに対応する「1」と「0」からなる画像データであり、これらの画像は前景(潜像)画像及び背景画像を作成するのに適したそれぞれのディザマトリクスによって2値化されたデータである。
nWriteDotOn=nCamouflage×(nSmallDotOn׬nHiddenMark+nLargeDotOn×nHiddenMark) 式(1)
式の構成要素を以下に示す。
nComouflage:カモフラージュ画像において、対象画素がカモフラージュ模様を構成する画素であれば0、そうでなければ1。
nSmallDotOn:背景閾値パターンの画素値が黒であれば1、白であれば0(色はこれに限定されない)
nLargeDotOn:前景閾値パターンの画素値が黒であれば1、白であれば0(色はこれに限定されない)
¬nHiddenMark:基礎画像において、対象画素が潜像画像を構成する画素であれば1、背景画像を構成する画素であれば0。
nHiddenMark:nHiddenMarkの否定。前景部で0、背景部で1となる。
なお、各処理対象画素で式(1)の全ての要素を用いて計算する必要は無い。不必要な計算を省くことで処理の高速化を図ることができる。
例えば、nHiddenMark=1ならば¬nHiddenMark=0、nHiddenMark=0ならば¬nHiddenmark=1となる。従って、nHiddenMark=1ならば以下の式(2)の値をnLargeDotOnの値とし、nHiddenMark=0ならば、式(2)の値をnSmallDotOnの値とするとよい。
また、nCamouflageの値は式(1)に示したように、全体にかかる積算であるので、nCamouflage=0であれば、nWriteDotOn=0となる。従って、nCamouflage=0の場合は以下の式(2)の計算を省略できる。
(nSmallDotOn׬nHiddenMark+nLargeDotOn×nHiddenMark) 式(2)
また、生成される地紋画像では、背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像の縦横の長さの最小公倍数の大きさの画像が繰り返しの最小単位となる為、地紋処理部205では繰り返しの最小単位である地紋画像の一部分のみを生成し、その地紋画像の一部分を地紋画像領域の大きさにタイル状に繰り返し並べると地紋画像生成にかかる処理時間を短縮できる。つまり、図24における地紋画像の一部分である3501として示した画像のみを生成し、それをタイル状に並べることで、3502として示した地紋画像を生成できる。
次に、ステップS2705では、ステップS2704の計算結果(nWriteDotOnの値)をCPU1が判定する。即ち、nWriteDotOn=1ならばステップS2706に進み、nWriteDotOn=0ならばステップS2707に進む。
ステップS2706では、印刷時のドットに対応する画素値を書き込む処理を行う。ここで、画素値は、地紋画像の色によって変える事ができる。その他、プリンタのトナーあるいはインクの色に合わせて設定することにより、カラーの地紋画像を作成することもできる。また、トナーやインクを複数色組み合わせた二次色を利用することもできる。
ステップS2707では、処理対象領域の全画素が処理されたか否かを判定する。処理対象領域の全画素が処理されていない場合はステップS2708に進み、未処理の画素を選択し、再びステップS2704〜S2706の処理を実行する。
この実施形態によれば、ユーザが、原稿データの空白領域や白画像で塗りつぶされる領域の有無、原稿データを生成したアプリケーションなどに応じて、透かし印刷か重ね印刷かを決めることができる。この結果、地紋印刷に関してユーザにとってより使いやすい情報処理装置とすることが可能となる。
なお、地紋画像データと原稿画像データをビットマップイメージとして合成する処理は、プリンタ1500において行われることになる。プリンタにおける合成処理において、重ね印刷設定がされている場合は、まず、原稿画像データをビットマップメモリ上にラスタライズし、続いて地紋画像データを原稿画像データに対して上書きするようにラスタライズすることになる。このとき、単純に地紋画像データを上書きしてしまうと、原稿画像が見えなくなってしまう。そこで、重ね印刷設定がされている場合は、AND/ORといった論理描画を利用することで、地紋画像で原稿画像を完全に上書きしてしまうことを避ける。例えば、原稿画像データを展開して得られたビットマップイメージのピクセルが白に相当する値である場合、そのピクセルに対応する地紋画像データは当該ピクセル位置に相当するビットマップメモリ上に上書きし、白以外の値を有するピクセルについては、地紋画像データを上書きしない、といった処理を行う。
(第2実施形態)
本発明の第2の実施形態は、地紋画像の透かし印刷と重ね印刷を自動的に選択する構成に関するものである。
これは、先ず、ユーザが図20に示すユーザインターフェイスにおける”透かし/重ね自動選択”ラジオボタン3101を押すことによって可能となる。すなわち、本実施形態では、図16にて説明した透かし印刷または重ね印刷を選択するラジオボタン2210に加え、上記のラジオボタン3101を有し、3種類の態様の地紋印刷設定が可能になる。
ユーザにより、”透かし/重ね自動選択”ラジオボタン3101が押されると、図14に示した地紋パターンの印刷順番2003に自動判断の指定がなされる。地紋処理部205(図3)は、図17や図18で説明した透かし印刷、重ね印刷の処理の代わりに、地紋レイヤー決定部308を用いて、地紋パターンの印刷順番2003を判定して透かし印刷または重ね印刷に決定し、その決定に従い自動的に地紋パターンの印刷順番を変更して地紋印刷を実行する。なお、地紋レイヤー決定部308は地紋処理部205内に設けられたモジュールとして説明するが、本発明はこれに限らない。
図21は、この自動決定に基づく処理を示すフローチャートである。
先ず、ステップS3301において、地紋処理部205は地紋レイヤー決定部308の地紋画像適用レイヤー決定処理をコールする。図22にてその詳細が後述される処理によって、地紋パターンの印刷順序2003を透かし印刷または重ね印刷に決定する。
次に、ステップS3302で、S3301で決定された地紋画像の印刷順序2003が透かし地紋印刷に指定されているか否かを判断する。ここで、透かし印刷が指定されている場合はステップS3303へ、指定されていない場合S3304へ移行する。ステップS3303では、図17のステップS1901で説明した透かし地紋印刷処理を行う。
次に、ステップS3304では、地紋以外の各種印刷設定に基づいて、中間データの論理ページの生成を行う。そして、ステップS3305において、地紋画像の印刷順序2003が重ね地紋印刷を指定しているか否かを判断する。ここで、重ね印刷を指定している場合、ステップS3306へ、指定されていない場合終端へ移行する。
ステップS3306では、図18のステップS1908で説明した重ね地紋印刷処理を行う。
なお、透かし印刷が設定され、かつ同時に重ね印刷が設定されることは本発明においては起こり得ないため、ステップS3302の判定で透かし印刷が設定されていると判定された場合は、ステップS3304から直接終端へ移行してもよい。
上記ステップS3301でコールされた地紋レイヤー決定部308内の地紋画像適用レイヤー決定処理は、中間データに格納されている物理ページに提供される論理ページ内の描画、ブラシ塗りを伴わない線描画や背景塗りを伴わない文字描画等以外の面積的な要素が強い描画が、図24に示すようなタイル状に配置された各地紋画像に重なるかどうかを判断する処理である。
図23、図24および図25を参照してこの処理の概念を説明する。
図25に示す原稿データが空白部の多い原稿データである場合、すなわち、グラフィックス3601、肖像のビットマップ画像3602、ロゴのビットマップ画像3603、サインのビットマップ画像3604のみが面積的な塗りつぶしの要素をもつ場合、図24に示す各地紋画像で重なりを生じるものは、図23のグレーで示された領域の地紋画像である。この場合、図23の白で示された地紋画像は面積的要素の大きな中間データ中の描画と重なることは無いので、図26に示すように透かし地紋印刷でも、複写後の潜像部の認識が可能である。
一方、図25に示すデータが空白部分の少ない原稿データである場合、すなわち、グラフィックス3601、肖像のビットマップ画像3602、ロゴのビットマップ画像3603、文字列データ3607及び3608、サインのビットマップ画像3604のほか、枠線3606内が白ブラシの塗り要素を持つ場合、図24の地紋画像の全てと重なりを持ってしまい、複写後の潜像部を認識することは不可能である。この場合は、重ね地紋印刷を適用する必要がある。
以上の例で分かるように、複写後の潜像部の認識には、ブラシ塗りを伴わない線描画や背景塗りを伴わない文字描画等以外の、面積的な要素が強い描画がどの程度地紋画像と重なっているかが重要である。
図22は、この重なり方の判断を行う処理を示すフローチャートである。このフローは、図21のステップS3301でコールした地紋レイヤー決定部308内の地紋パターン適用レイヤー決定処理が実行するものである。
先ず、ステップS3401において、現在の物理ページに関係する論理ページの中間コードと、ユーザの設定によって付加される機能によって描画に含まれる、各描画エレメントを一回の繰り返しごとに現在の描画エレメントとして取り出す。この繰り返しの終端はステップS3408であり、現在の物理ページに関係する全描画エレメントに対する取り出しが完了した場合に終了する。
次に、ステップS3402において、取り出された現在の描画エレメントが、ビットマップやブラシに関係する面積的な塗りつぶしの要素を持つか否かを判断する。現在の描画エレメントが面積的な塗りつぶしの要素をもつ場合はステップS3403へ、もたない場合はS3408へ移行する。
ステップS3403では、現在の描画エレメントの外接矩形を計算する。そして、ステップS3404では、タイル状に並べた各地紋画像領域を現在の地紋画像領域として列挙していく。この繰り返しの終端はステップS3407であり、タイル状に並べた全ての地紋画像領域を列挙し終えたときに終了する。
さらに、ステップS3405で、現在の描画エレメントの外接矩形が、現在の地紋画像領域の矩形と重なりを持つか否か判断する。重なりを持つ場合はステップS3406へ、持たない場合はS3407へ移行する。ステップS3406では、現在の地紋画像領域において、面積的な塗りつぶしの要素がある描画エレメントと関係する領域であることを示す不完全地紋画像である旨の所定の印(フラグデータ)をつける。
そして、ステップS3409で、タイル状に並べた全地紋画像領域中の、上述した所定の印が付いた不完全地紋画像の数の全地紋画像の数に対する割合を求め、この割合が所定の閾値を超えたか否かを判断する。ここで、割合が閾値を超えた場合はステップS3410へ、閾値を超えない場合はステップS3411へ移行する。
ステップS3410では、重ね地紋印刷と判断したことを、地紋画像の印刷順序2003に登録する。また、ステップS3411では、透かし地紋印刷と判断したことを、地紋画像の印刷順序2003に登録する。
以上のように、印刷すべき原稿と地紋画像とが重なる部分の面積に応じて、原稿画像に対して地紋画像を透かし印刷するか、または重ね印刷をするかが定められるので、ユーザによる選択を介さずに自動的に最適な地紋印刷を適用することができる。
(他の実施形態)
上記の第2実施形態では、ユーザが、図20に示すユーザインターフェイスのラジオボタン2210で”透かし印刷”または”重ね印刷”を選択した場合には、第1実施形態で説明したそれぞれの印刷が行われるが、この場合にも、図22にて上述した処理を起動するようにしてもよい。そして、その処理による判断とユーザによる選択が一致するか否かを判断し、一致しない場合には、ユーザインターフェイスを介してその旨をユーザに報知し、ユーザに再選択を促すようにしてもよいし、強制的に適切な順番に変更してもよい。
また、上記実施例では、タイリングした地紋画像についての説明を行ったが、タイリングしない一つの地紋画像をページ全体にかけた場合でも、ブラシ塗りを伴わない線描画や背景塗りを伴わない文字描画等以外の面積的な要素が強い描画が地紋パターン上に無いことを判断することにより、透かし/重ね地紋印刷の自動判定の基準とすることも可能である。この場合、図22のステップS3404の繰り返しが一回となるだけで、上記実施例と処理の方法は変わらない。
また、タイリングした各地紋画像をさらに分割して、その分割領域に対してブラシ塗りを伴わない線描画や背景塗りを伴わない文字描画等以外の面積的な要素が強い描画が無いこと判断することも可能である。この場合、図22のステップS3404の繰り返しが、分割数倍されるだけで、上記実施例と処理の方法は変わらない。
さらに、印刷装置の中には、透し地紋印刷のときに用いるOR/AND等の論理演算での地紋画像のラスタライズが、重ね印刷の上書き描画より印刷速度面やイメージ再現において不得意なものが存在する。そのような印刷装置のために、透かし地紋画像印刷を行う際に、不完全地紋画像領域のみ透かし地紋画像印刷を適用し、その他の領域を重ね地紋画像印刷で印刷することも可能である。
さらに、一部のアプリケーションにおいては、初回描画としてページの白塗りを行うものがある。この初回のページの白塗りは意味をなさない。よってアプリケーション名の判断や、初回白塗りがないか描画エレメントの解析を行うことにより、この無意味な描画を中間データより削除し、さらに自動判定の精度を向上させることも可能である。
以上説明した各実施形態によれば、印刷媒体の印刷可能領域における地紋画像と印刷出力画像との重なり方に基づいて、地紋画像を描画した後印刷出力画像を描画するよう印刷データを作成するか、または印刷出力画像を描画した後地紋画像を描画するよう印刷データを作成するかを決定する判断処理を実行し、この判断処理に応じて印刷データを生成するので、ユーザの手を介さずに自動的に地紋画像の識別に関してその重なり方が適切な印刷を行うことができる。
この結果、地紋画像の識別に関してその適切な適用が可能となるとともに、地紋印刷に関してユーザにとってより使いやすい情報処理装置とすることができる。
なお、上述した各実施形態の処理は、ホストコンピュータ3000において実行するとして説明したが、本発明はこれに限らず、プリンタなどの印刷装置側で実行してもよい。この場合、地紋処理部205に相当するモジュールをプリンタに組み込むことで実行可能である。
また、上述した各実施の形態においては、原稿データ及び地紋画像データをPDLなどのページ記述言語としてプリンタに送り、プリンタ側でこれらのデータをビットマップイメージになるようにラスタライズする構成を採用したが、本発明はこれに限らず、ホストコンピュータ側で原稿データと地紋画像データを合成したビットマップイメージを生成し、生成したビットマップデータをプリンタに送信することも可能である。
(さらに他の実施例実施形態)
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現する、各図に示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。