以下、図面を参照して本発明の実施形態を詳細に説明する。
図4〜図24は、本発明の一実施形態に係わる情報処理装置であるホストコンピュータと印刷装置であるプリンタを含んで構成されるシステムにおける、印刷処理およびそれに伴う地紋画像の基本的な描画データの生成に関する構成を説明する図である。
なお、本実施形態においては、複写時に、複写物において顕在化する部分を潜像部または前景部と称する。また、複写時に、複写物において消失または潜像部に比較して薄くなる部分を背景部と称している。そして、潜像部には「COPY」や「VOID」などのテキスト情報を入力している。しかしながら本発明における地紋画像はこれに限られるものではなく、複写物において、テキスト情報は周囲の画像に対して白抜き文字のように表現される(顕在化する)形態であってもよい。この場合、潜像部と背景部の上述したドットの集中と分散の関係は白抜きでないものと逆の関係となることはもちろんである。本発明は、地紋画像の種類や生成処理、色、形状、サイズなどによって規定されるものではない。
印刷システムの構成
図4は、本発明の実施形態に係る印刷システムの構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
同図において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、後述される本発明の実施形態に係わる処理を含む、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理およびそれに基づく印刷処理の実行を制御する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による表示を制御する。ディスクコントローラ(DKC)7は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インタフェイス(インタフェイス)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行する。そして、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
プリンタ1500は、プリンタ1500に設けられたCPU12によって制御される。 プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいて、印刷部I/F16を介してシステムバス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は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル1501には操作のためのスイッチおよびLED表示器等が配されている。
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
印刷部17は本実施形態では電子写真方式のエンジンを備えている。従って、画像の印刷およびそれに伴う地紋画像はそれらの印刷データに従って形成されるトナーのドットによって印刷が行われる。なお、本発明の適用上、印刷の方式はこのような電子写真方式に限られないことはもちろんであり、例えば、インクジェット方式など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
図5は、図4に示したホストコンピュータ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へ印刷データとして出力される仕組みとなっている。
本実施形態の印刷システムは地紋処理部205を有する。地紋処理部205は地紋画像の印刷に関し、後述の地紋画像のコマンド生成などの処理を行う。
印刷関連のソフトウエアモジュール
図6は、ホストコンピュータ3000における印刷処理のための構成の他の例に係わり、図5に示した構成を拡張した構成を示すブロック図である。この構成は、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成となっている。図5の構成では、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図6の構成では、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図6で示す構成においては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
これらの目的のために、図5の構成に対し、図6に示す様に中間コードデータでスプールするよう、システムの拡張がなされている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウィンドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
以下、図6に示す構成の詳細を説明する。同図に示す通り、この拡張された処理方式では、グラフィックエンジン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をロードし、処理を行う。
本実施形態の印刷システムにおいても図6と同様の地紋処理部205を有する。地紋処理部205はデスプーラ305やスプールファイルマネージャ304等とともに地紋画像の印刷に関し、後述の地紋画像のコマンド生成などの処理を行う。
なお、地紋処理部205は、プリンタドライバ203のビルドインモジュールであってもよいし、個別のインストレーションによって追加されるライブラリモジュールの形式であっても構わない。
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)がデスプーラ305からグラフィックエンジン202へ発行された印刷命令(GDI関数)に基づいたものである場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。プリンタドライバ203はグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
さらに、図6には、上述した拡張システムに加えて、プレビューア306、設定変更エディタ307を配し、地紋画像のプレビューを含むプレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体(Windows(登録商標)OSでは、DEVMODEと呼ばれる)に格納される。その構造体には、例えばスプールファイル303に含まれる加工設定中にスプールファイルマネージャ304にストアを行うかどうかの設定が含まれている。スプールファイルマネージャ304がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル303にページ描画ファイルとジョブ設定ファイルとが生成・格納される。また、スプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル303にスプールされたジョブがリスト表示される。
スプールファイルマネージャのウィンドウ画面上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ11に格納されているプレビューア306をRAM2にロードし、プレビューア306に対して、スプールファイル303に記述された中間コードのジョブのプレビュー処理を行うように指示する。
印刷用中間データの保存処理
図7は、スプーラ302における、スプールファイル303の生成におけるページ単位保存ステップの処理を示すフローチャートである。
同図において、まずステップS501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求を受け付ける。アプリケーションにおいては、図8に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ303に渡される。図8に示す設定入力ダイアログにおいては、リストボックス801のように1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
ステップS502では、スプーラ302は、受け付けた印刷要求がジョブ開始要求か判定する。ここで、ステップS502でジョブ開始要求であると判断した場合には、ステップS503に進み、スプーラ302は、中間データを一時的に保存するためのスプールファイル303を作成する。
続いて、ステップS504では、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知する。続くステップS505でスプーラ302のページ数カウンタを1に初期化する。ここで、スプールファイルマネージャ304においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル303より読み込み、記憶する。
一方、ステップS502において、ジョブ開始要求ではなかったと判断した場合には、ステップS506に進む。このステップS506では、スプーラ302は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップS507に進み、改ページか否かの判別を行う。ステップS507で改ページであると判断した場合には、ステップS508に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルをクローズし、次のページ描画ファイルを生成する。ステップS507において、受け付けた印刷要求が改ページではないと判断した場合には、ステップS509に進み、スプーラ302は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
次に、ステップS510では、印字要求をスプールファイル303へ格納するため、スプーラ302は、印字要求のDDI関数の中間コードへの変換処理を行う。ステップS511では、スプーラ302は、ステップS510において格納可能な形に変換された印刷要求(中間コード)をスプールファイル303のページ描画ファイルへ書き込む。その後、ステップS501に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップS501からステップS511までの処理を、アプリケーションよりジョブ終了要求を受け取るまで続ける。また、スプーラ302は、同時にプリンタドライバ203からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル303に格納する。
一方、ステップS506にて、スプーラ302がアプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップS512に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知し、処理を終える。
スプールファイルの生成
図9は、スプールファイルマネージャ304における、スプールファイル303生成プロセスと、印刷データ生成プロセスの間での制御の詳細を示すフローチャートである。
ステップS601では、スプールファイルマネージャ304は、スプーラ302あるいはデスプーラ305からの印刷処理の進捗通知を受け付ける。そして、ステップS602では、スプールファイルマネージャ304は、進捗通知が前述のステップS504において通知されるスプーラ302からの印刷開始通知であるか否か判定する。印刷開始通知であればステップS603へ進み、印刷の加工設定をスプールファイル303から読み込み、ジョブの管理を開始する。
一方、ステップS602において、スプーラ302からの印刷開始通知でなければステップS604へ進む。ステップS604において、スプールファイルマネージャ304は、進捗通知が前述のステップS508において通知されるスプーラ302からの1論理ページの印刷終了通知であるか否かを判定する。ここで1論理ページの印刷終了通知であればステップS605へ進み、この論理ページに対する論理ページ情報を格納する。そして、続くステップS606では、この時点でスプールが終了したn論理ページに対して、スプールファイルマネージャ304は1物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップS607へ進み、印刷する1物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
物理ページの計算については、例えば、加工設定が1物理ページに4論理ページを配置するような設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。続いて、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップS512におけるスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
そして、ステップS608では、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル(物理ページ情報を含むファイル)に保存される。保存形式は図11に示す。物理ページ情報が1物理ページ分追加されたことがデスプーラ305に通知される。その後ステップS601に戻り、次の通知を待つ。本実施形態においては、印刷データ1ページ、即ち1物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
一方、ステップS604において、進捗通知がスプーラ302からの1論理ページの印刷終了通知でなかった場合ステップS609へ進み、スプールファイルマネージャ304は、前述のステップS512において通知されるスプーラ302からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップS606へ進む。一方、ジョブ終了通知でない場合、ステップS610へ進み、スプールファイルマネージャ304は、受け付けた通知がデスプーラ305からの1物理ページの印刷終了通知であるかどうか判定する。ここで、1物理ページの印刷終了通知である場合はステップS612へ進み、加工設定の処理が全て終了したかを判定する。処理が終了した場合、ステップS612へ進み、デスプーラ305に処理終了の通知を行う。一方、加工設定に対する処理がまだ終了していないと判断した場合、前述の606へ進む。本実施形態におけるデスプーラ305は印刷処理を行う単位として1物理ページ数を想定している。また、ステップS608では、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、1物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップS608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
ステップS610において、通知がデスプーラ305からの1物理ページの印刷終了通知でないと判断された場合、ステップS613へ進み、スプールファイルマネージャ304は、デスプーラ305からの印刷終了通知かどうかを判定する。通知がデスプーラ305からの印刷終了通知と判定された場合、ステップS614へ進み、スプールファイルマネージャ304は、スプールファイル303の該当するページ描画ファイルの削除を行い処理を終える。ただし、一方、デスプーラ305からの印刷終了通知でなかった場合はステップS615へ進み、その他通常処理を行い、次の通知を待つ。
スプールファイルの出力
図10は、デスプーラ305における、印刷データの生成プロセスの詳細を示すフローチャートである。
デスプーラ305は、スプールファイルマネージャ304からの印刷要求に応じて、スプールファイル303から必要な情報(ページ描画ファイルおよびジョブ設定ファイル)を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図6にて前述した通りである。また、印刷データはPDLであることも前述した通りである。
印刷データの生成では、まず、ステップS701において、前述のスプールファイルマネージャ304からの通知を入力する。続くステップS702では、デスプーラ305は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップS703へ進み、終了フラグを立て、ステップS705へ進む。一方、ステップS702においてジョブ終了通知でない場合は、ステップS704に進み、前述のステップS608における1物理ページの印刷開始要求が通知されたかどうか判定する。ステップS704において開始要求と判定されなかった場合は、ステップS710へ進み、その他エラー処理を行い、ステップS701へ戻り次の通知を待つ。
一方、ステップS704において1物理ページの印刷開始要求と判定された場合は、ステップS705へ進み、デスプーラ305は、ステップS704で通知を受けた印刷処理可能な物理ページのIDを保存する。続くステップS706では、デスプーラ305は、ステップS705で保存した物理ページIDのすべてのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップS707へ進み、前述のステップS703で終了フラグが立てられているのか判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ305の処理終了の通知をスプールファイルマネージャ304に通知し、処理を終える。ステップS707で、終了フラグが立っていないと判定された場合は、ステップS701へ戻り次の通知を待つ。
一方、ステップS706で、印刷可能な物理ページが残っていると判定された場合には、ステップS708へ進み、デスプーラ305は、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル303に格納された印刷要求命令をデスプーラ305においてグラフィックエンジン202が認識可能な形式(GDI関数)に変換し、転送する。本実施形態のような、複数論理ページを1物理ページにレイアウトするような加工設定(以下Nページ印刷)については、このステップで縮小配置を考慮にいれながら変換する。
必要な印刷処理が終えたならば、デスプーラ305は続くステップS709において1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ304に対して行う。そして再びステップS706へ戻り、ステップS705で保存しておいた印刷可能な物理ページIDすべてについて印刷処理を行うまで繰り返す。
以上が、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305を用いた印刷処理の流れである。上記のように処理することにより、スプーラ302が中間コードを生成してスプールファイル303に格納するタイミングでアプリケーション201が印刷処理から開放されるので、プリンタドライバ203に印刷データを直接出力するよりも短時間で処理を終えることができる。また、スプールファイル303にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)を一時的に保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることができる。また、中間ファイルを保持していることにより、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなく実行可能である。
ここで、スプーラ302を用いた印刷処理において、グラフィックエンジン202への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
ジョブ出力用設定ファイルの構成
図11は、ステップS608において、スプールファイルマネージャ304が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド1001は、ジョブを識別するためのIDで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド1002はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン202に対してジョブの印刷を開始するために必要な構造体、Nページ印刷の指定、ページ枠などの追加描画の指定、部数、ステープルなどのフィニッシング指定など、1つのジョブに対して1つしか設定できない情報が含まれている。ジョブ設定情報1002には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド1003はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド1004から最後までフィールド1003の数だけ物理ページ情報が格納される。物理ページ情報については図14を参照して説明する。
図12は、図11のフィールド1002に図示されたジョブ設定情報の一例を示す図である。フィールド1101は全物理ページ数である。フィールド1102は、全論理ページ数である。フィールド1101および1102は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ304は印刷可能な物理ページの情報の作成を延期する。フィールド1103は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド1104は、フィールド1103で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド1105はステープル、パンチ、Z折りなどのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャを有する場合に指定される。フィールド1106は付加印刷情報で、本発明の地紋プリントを始め、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
図13は、図11のフィールド1004に図示された物理ページ情報の一例を示す図である。最初のフィールド1201は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド1202は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド1203は本物理ページに割り付けられる論理ページ数で、1物理ページに4ページを割り付ける場合には4もしくは4ページ印刷を示すIDが保存される。フィールド1204以降はフィールド1203で指定された数だけ論理ページの情報が保存される。アプリケーション201から印刷されたページ数によっては、1203で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
図14は、フィールド1202の物理ページ設定情報の例である。フィールド1301は物理ページ上への論理ページの配置順で、Nページ印刷で、物理ページ上に論理ページを配置する順番(左上から横へ、左上から下へ等)の指定が保存されている。システムによっては、配置順ではなく、フィールド1204以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することでフィールド1301の設定を代用する場合もある。フィールド1302は両面印刷の表・裏の情報で、例えば綴じ代を表裏でそろえる際に使用される。フィールド1303はカラーページかモノクロページかの指定を示し、このフィールドを使用して物理ページ単位にカラー/モノクロのモード指定が可能である。フィールド1304は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
本実施形態の場合、図16以降を参照して説明される地紋画像印刷は物理ページに対して付加される情報なので、図12に示すフィールド1106に保持された地紋印刷に関する情報に基づき、各物理ページに対する設定情報として、フィールド1304内にも格納される。ジョブに対する付加印刷情報1106および付加印刷情報1304内における、地紋プリントに関する設定情報を格納するデータ形式の一例については、図18を参照して後述する。
図15は、フィールド1204で示された論理ページ情報の一例を示す図である。フィールド1401は論理ページのIDであり、このIDを利用して、スプールファイル303から論理ページに対応するページ描画ファイルの中間コードを参照する。このIDを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド1402は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページIDの補助情報に使用される。フィールド1403のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存する事も可能である。逆に、論理ページ単位で設定を切りかえる事や論理ページ単位での属性情報が不要であるようなシステムでは、フィールド1403は不要である。
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁(片面、両面、製本印刷)、印刷レイアウト(Nup、ポスター印刷)、付加情報(地紋プリント情報、ウォーターマーク、日付、ユーザ名など)、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
更に、図6は、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ307を配した例を示している。設定変更エディタ307は上述したジョブ設定ファイルもしくはジョブ出力用設定ファイルの内容を対話的に変更可能とするエディタである。設定変更エディタ307は本発明に直接関係しないので、説明を省略する。
地紋画像印刷データ生成処理の説明
本発明の一実施形態は、地紋画像の透かし印刷または重ね印刷を、ユーザが任意に選択する構成に関するものである。具体的には、図17に示す透かし印刷または重ね印刷を選択するためのラジオボタン2210を有したユーザインターフェイスを介してユーザが透かし印刷または重ね印刷のいずれかを選択することにより、地紋画像データと印刷出力画像のデータ(原稿データ)との最終的な重なり順序が定められる。そして、それに従い、図22を参照して説明する地紋画像の透かし印刷または図23を参照して説明する地紋画像の重ね印刷が行われる。なお、透かし印刷及び重ね印刷の具体的な内容については後述する。
図16から図17は、地紋画像印刷に関する設定をおこなうユーザインターフェイスの一例を示す図である。
図16はプリンタドライバ203内に配された、地紋プリントに関するユーザインターフェイスの初期画面の一例である。この例では、ダイアログ内のプロパティシート2101において地紋プリントに関する設定が行えるようになっている。
チェックボックス2102は、印刷ジョブに対して地紋プリント(地紋画像を含む印刷、以下、同じ)を行うかどうかを指定する際に用いられる。この指定は図12における付加印刷情報1106内に地紋プリントを行うかどうかの設定として格納される。リストボックス2103は、地紋プリントの複数の設定情報を1つの識別子(スタイル)で指定可能にするためのスタイル情報を示す。プリンタドライバ203は複数のスタイルを選択可能となっており、各スタイルと図18に示す地紋プリント情報との関係がレジストリに登録される。また、ユーザがボタン2104を押下することにより、図17に示すスタイル編集用ダイアログ2201が表示される。チェックボックス2105は、地紋プリントにおける前景、背景のコントラストを調整する際に用いられる。ユーザがボタン2106を押下することにより、コントラスト調整用の画面(不図示)が表示される。
図17は、地紋プリントの個々の詳細設定を編集するためのダイアログの一例を示す図である。
同図において、地紋画像情報編集用ダイアログ2201には、同領域に後述する個々の地紋画像情報によって生成される地紋画像の結果がプレビューのため表示される。リストボックス2202は図16の2103で選択可能なスタイルの一覧を表示する領域である。ユーザはボタン2203および2204を用いてスタイルの新規追加、削除が可能となる。領域2205には、現在指定されているスタイル名称が表示される。
ラジオボタン2206は、地紋プリントに用いる描画オブジェクトの種類を選択するためのものである。ユーザがこのラジオボタン2206を操作して「文字列」を選択するとテキストオブジェクトが使用され、「イメージ」を選択するとBMPなどに代表されるイメージデータが使用される。図17では、「文字列」が選択されているので、ダイアログ2201にはリストボックス2207から2209などで示されるテキストオブジェクトに関する設定情報が表示され、編集可能となる。一方、ラジオボタン2206において「イメージ」が選択されている場合、情報2207から2209は表示されず、その代わりに不図示のファイル選択ダイアログが表示される。
リストボックス2207は地紋画像として使用する文字列を表示、編集するための領域を示す。リストボックス2208は文字列のフォント情報を表示、編集するための領域を示す。本実施形態では、フォント名称のみの選択画面としているが、書体のファミリー情報(ボールド、イタリックなど)や、飾り文字情報などが選択可能に拡張してもよい。リストボックス2209は地紋パターンとして使用する文字列のフォントサイズを表示、設定する領域である。本実施形態では「大」「中」「小」の3段階で指定可能な形式を想定しているが、ポイント数の直接入力など、一般的に用いられるフォントサイズ指定方法を採用してもよい。2210は地紋パターンと原稿データの印刷順序を設定するためのラジオボタンである。「透かし印刷」が指定された場合は、プリンタのビットマップメモリ上に最初に地紋画像を描画した後、その地紋画像に対してオーバーライトするように原稿データを描画する。一方、「重ね印刷」が指定された場合は、最初に原稿データを描画した後、その原稿データに対してオーバーライトするように地紋画像を描画する。描画の詳細な処理は後述する。
ラジオボタン2211は、地紋パターンの配置角度を指定するためのものである。本実施形態では、「右上がり」「右下がり」「横」の3通りの選択を可能としているが、角度を任意に指定可能な数値入力領域や、直感的に指定可能なスライダーバーなどを配し、角度指定方法を拡張してもよい。リストボックス2212は、地紋パターン(前景パターン、背景パターン)に用いる色を表示、指定するための領域を示す。選択肢としては、図中に例示してある黒のほか、マゼンタ、シアンといったフルインテントカラーが選択可能である。チェックボックス2213は、前景パターン、背景パターンの入れ替えを行うためのものである。チェックボックスがチェックされていない場合は、複写時に複写物において前景パターンが浮かび上がり、一方、チェックされていない場合は複写時に背景パターンが浮かび上がって、前景パターンが白抜きで表現されるよう印刷が行われる。
リストボックス2214は、原稿に埋め込んだ地紋パターンを認識させづらくさせるためのカモフラージュ画像を指定するための領域を示し、複数のパターンから選択可能である。また、カモフラージュ画像を使用しないという選択肢も提供されている。
地紋プリント設定情報のデータ形式
次に、図17を参照して説明した地紋プリント設定情報に関する付加情報1106および1304に格納されるデータ形式について図18を用いて説明する。
同図において、フィールド2001は、図17の領域2206で指定される、地紋プリントで生成する描画オブジェクト種(テキスト形式あるいはイメージ)を示す値を格納する。フィールド2002は、図17の領域2207〜2209で指定される、フィールド2001の情報で指定された描画オブジェクトに対する設定情報を格納する。テキスト選択時は文字列、フォント名、サイズ情報が、イメージ選択時は入力するイメージファイルのロケーションが格納される。フィールド2003は、図17の領域2210で指定される、原稿データに対して地紋パターンを先に描画するか、後から描画するか(描画順序)を指定する情報を格納する。フィールド2004は、図17の領域2211で指定される、描画オブジェクトを配置する角度情報を格納する。フィールド2005は、図17の領域2212で指定される、地紋パターン(前景パターン、背景パターン)に使用される色情報を格納する。フィールド2006は、図17のチェックボックス2213で指定される、前景パターン、背景パターンの入れ替えを行うかどうかの情報を格納する。フィールド2007は、図17の領域2214で指定される、カモフラージュ画像のパターン付加情報を格納する。フィールド2008は、前景パターンの濃度情報を格納する。フィールド2009は、背景パターンの濃度情報を格納する。
地紋パターンの描画処理
続いて、図19、図20、図21を用いて、印刷を行う原稿データに対するカラー・モノクロ判定を行う色処理モード判定手段が選択された場合の地紋パターン色の扱いについて説明を行う。これらの処理は、図10のステップS706の後、ステップS708の前段処理として行われることになる。
図19は、図3における色の印刷モード5101にて「フルカラー/モノクロ自動切り替え」を選択した場合の処理である。この場合、各物理ページに含まれる論理ページの色情報により、その物理ページを印刷するカラーモードが決定される。原稿の色の判定結果と地紋色の設定のいずれかがカラーであれば基本的にカラーモードが選択されることになる。
ステップS5201において、これから印刷処理を行う物理ページに対する色処理モード1303を読み込む。ステップS5202において、これから描画しようとする物理ページの色処理モードがモノクロページであればステップS5203へ進み、カラーページであれば、ステップS5210へ進む。ステップS5203において、指定された地紋設定がカラー用であればステップS5210へ進み、モノクロの地紋設定であればステップS5211へ進む。ステップS5210において、指定された地紋設定を用いてカラーモードにて印刷処理を行い、ステップS708に進む。ステップS5211において、指定された地紋設定を用いてモノクロモードにて印刷処理を行い、ステップS708に進む。
図20は図3のメニュー5101にて「モノクロ」を選択した場合の処理である。この場合、原稿の色はモノクロ変換され、最終的な印刷物はモノクロで印刷される。地紋はユーザの地紋の設定がカラーであっても、色をモノクロ(黒)に変更し出力する。この地紋部の制御が図19のフローと異なるポイントである。
ステップS5303において、指定された地紋設定がカラー用であればステップS5305へ進み、モノクロの地紋設定であればステップS5311へ進む。ステップS5305において、指定された地紋設定を描画処理を実行する前にモノクロの地紋設定に変更し(モノクロの地紋色に指定し直し)、ステップS5311へ進む。ステップS5311において、指定された地紋設定を用いてモノクロモードにて印刷処理を行い、ステップS708に進む。
ここで、ステップS5305において、カラーで指定された地紋設定を描画処理を実行する前にモノクロの地紋設定に変更する理由について説明する。ここでは実施形態にあわせて、CMYKの4色でカラー画像を表現する場合を前提として説明する。もちろん、カラー表現の色はCMYKの組み合わせに限定されるものではない。
カラー画像をモノクロ画像に変換する場合において、マゼンタ、シアンなどの純色が黒(濃度100%の純色)に変換されず、グレー(黒濃度が0%より大きく100%未満)に変換される。
また、地紋画像には多くの孤立ドットが含まれているため、マゼンタ、シアンなどで表現された孤立ドット画像に対してモノクロ変換を施すと、グレーの孤立ドットになる。このグレーの孤立ドットに対して2値化処理を行うと、ドットの位置やグレー濃度に依存して、本来形成されるべきドットが消失してしまう場合がある。
地紋画像において、孤立ドットが消失してしまうと、孤立ドット(小ドット)領域の濃度が均一にならないという問題が生じてしまう。これは小ドットに限らず、大ドットについても同様の問題が発生する。
つまり、カラー指定された地紋画像を描画処理後にモノクロ画像に変換する処理を実施すると、小ドット及び大ドット領域の濃度を均一に保てず、地紋画像の大ドット領域と小ドット領域の濃度が変化してしまい、地紋画像としての意味をなさなくなる。
更に、CMYKの各色それぞれ固有の特性(色味、トナーの濃度、プリンタエンジンの出力特性)を有しているため、単にマゼンタやシアンのドットを黒ドットに置き換えただけでは、上記固有の特性に応じて各色ごとに最適化された地紋画像の設定が考慮されないため、最適なモノクロの地紋画像を出力することができない。
以下、その理由について、従来から既知の技術であるウォーターマーク印刷機能との対比を行うことで説明を行う。
ウォーターマーク印刷機能とは、地紋印刷機能と同じくオリジナルの出力画像に対して「Confidential」などのウォーターマーク描画オブジェクトを付加したページを印刷する機能である。ウォーターマーク印刷においてもカラーのウォーターマークを指定することができる。さらに、ウォーターマークがカラー指定され、かつプリンタドライバがモノクロモードで印刷を行う場合が考えられる。
ウォーターマーク印刷の場合、指定された色でウォーターマークオブジェクトを再現することが重要である。つまり、ウォーターマークオブジェクトが所定の色で指定され、かつモノクロモードで印刷を行う場合、最終的にオリジナルの出力画像に付加されるウォーターマークオブジェクトは、プリンタドライバによって所定のカラー画像からモノクロ画像に置き換えられるように制御される。
カラーウォーターマークオブジェクトの指定がある場合にモノクロ印刷を実行する際のウォーターマークオブジェクトのカラー・モノクロ変換処理の一例について、図7を参照しながら、簡単に述べる。
カラーウォーターマークオブジェクトは不図示のウォーターマーク印刷指定画面で指定されたカラー情報をRGBのコマンドとして、デスプーラ305がグラフィックエンジン202、ディスパッチャ301、プリンタドライバ203へ渡す。プリンタドライバ203では受け取ったカラー情報をターゲットプリンタでモノクロ印刷を行うのに最適なグレースケール値(黒濃度が0%より大きく100%未満)に変換する。例えば、ウォーターマークの色がレッド(R=255、G=0、B=0)として指定されていた場合、プリンタドライバは所定の演算に基づいて、濃度50%のグレーに変換する。そして、ウォーターマークオブジェクトは50%のグレー値を有することになる。
最終的に、このウォーターマークオブジェクトはプリンタドライバ203によりPDLコマンドに変換され、プリンタ制御コマンドとしてシステムスプーラ204経由でプリンタ1500へ出力される。プリンタ1500は上記コマンドを受け、別途指定される2値化処理を施し、印刷媒体上に画像を形成する。
尚、上記は一例であり、プリンタドライバ203内で2値化処理まで施し、プリンタ1500へプリンタ制御コマンドを送出する場合や、プリンタドライバ203はカラー情報を保持したままプリンタ制御コマンドを生成し、これを受けたプリンタ1500内でカラー・モノクロ変換、2値化処理を行う場合などが考えられる。以上のようにして、カラーウォーターマークオブジェクトはモノクロウォーターマークオブジェクトとして印刷される。
一方、地紋印刷の場合、先に述べたように、指定された色に加えて、大小ドットの再現性、及び小ドット領域と大ドット領域の濃度の均一性が重要となる。そのため、地紋画像を単にカラー・モノクロ変換したり、他の色に置き換えたりするだけでは、予めグレーの地紋画像として適切に設定された濃度やドットの再現性と一致せず、最適なモノクロ地紋画像を得ることが出来ない。
プリンタドライバ203においてモノクロ印刷が指示されていてかつYMC等のカラー地紋が設定されている場合、印刷実行時に地紋処理部205にはプリンタドライバ203からモノクロ印刷指定がされている旨の情報が入力される。この情報を受けて地紋処理部205はカラー地紋設定をモノクロ地紋設定で置き換える。具体的には、地紋画像の色指定をモノクロ指定とし、更にモノクロ地紋に応じて予め保持された潜像部と背景部の濃度パラメータ値などの関係する各種の設定をモノクロ地紋用に置き換える。
その後、地紋処理部205が置き換えられた情報に基づいて、モノクロ地紋画像の生成を行う。このモノクロ地紋画像はデスプーラ305、グラフィックエンジン202、ディスパッチャ301、プリンタドライバ203、システムスプーラ204、プリンタ1500の順に渡され、モノクロ地紋画像として印刷されるよう制御される。プリンタ1500、又はプリンタドライバ203内で2値化処理が実行されるが、地紋画像は白(黒濃度が0%)と黒(黒濃度が100%)の2値で表現されるビットマップであるため2値化処理(疑似中間調処理)の影響は受けず、2値化後も白ピクセルと黒ピクセルで表現されるため、ドットの再現性、及び小ドット領域と大ドット領域の濃度の均一性は保持される。
以上のように、マゼンタ、シアンなどの色で指定された地紋画像をモノクロに変換して印刷する場合には、必ず各々のドットが純色の黒トナー(黒インク)で表現できる様にする必要があるため、描画処理を行う前にカラー指定された地紋画像の設定を、モノクロでの地紋画像を出力するための設定に変更する処理を行っている。これにより、カラー指定の地紋画像をモノクロの地紋画像に自動で変換する場合にも、無駄な出力を行うことなく、適切な地紋画像が印刷されたドキュメントを得ることができる。
なお、この処理において、地紋の設定項目内に色モードに関連する付帯属性があれば、あわせて設定が変更されることはいうまでもない。
また、モノクロモードでの印刷が設定されている場合にユーザがカラーの地紋画像出力を選択しているときには、ユーザに対して「地紋画像がモノクロ(グレー)で印刷される」ことを通知するステップを設けてもよい。このステップにおいて、ユーザに色処理モードを変更するか否かを問い合わせる構成を設けることも可能である。
また、地紋画像印刷とウォーターマーク印刷とを選択的に実行する場合、ウォーターマーク印刷の場合は、プリンタドライバ203にて色変換処理を行い、地紋画像印刷の場合は、プリンタドライバ203での色変換処理を実行しないよう、地紋処理部205でカラー地紋設定をモノクロ地紋設定に変更した上で生成された地紋画像がプリンタドライバ203に送信されるよう、制御を切り換えることができる。
図21は図3における色のメニュー5101にて「フルカラー」を選択した場合の処理である。原稿および地紋の色の設定にかかわらずカラーモードとなり、無条件にカラーモードの地紋設定が使用されることになるので、ステップS5410において、指定された地紋設定を用いてカラーモードにて印刷処理を行い、ステップS708に進む。
地紋画像の印刷データ生成処理
図22および図23は、地紋プリントにおける地紋画像の印刷データ生成処理の流れを示すフローチャートである。これらの図はそれぞれ図17を参照して説明した「透かし印刷」と「重ね印刷」に対応している。また、これらの処理は、図10のステップS708における印刷処理、即ち印刷データの生成処理の過程において行われるものである。
まず、「透かし印刷」、すなわち、先に地紋画像の印刷データを生成するケースについて、図22のフローチャートを用いて説明する。上述したように、「透かし印刷」はプリンタのビットマップメモリにおいて、地紋画像データの上に原稿データをラスタライズする処理である。そのため、印刷データの生成順序としては、原稿データに対応する印刷データ生成より先に地紋画像の印刷データを生成することになる。
ステップS1901において、図18で示した地紋に関する情報に従い、地紋処理部205が地紋画像の生成を行う。その詳細な処理については図24を参照して後述する。その後、原稿データの印刷データ生成処理を行う。ステップS1902において、カウンタを初期化する。ステップS1903において、カウンタが、予め設定されている1物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったら本処理を終了し、等しくなければステップS1904へすすむ。ステップS1904において、カウンタを1増加させる。ステップS1905において、1ページあたりの論理ページ数およびカウンタをもとに、これから印刷データ生成処理をする論理ページに対する有効印字領域を計算する。ステップS1906において、図13のような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小する。ただし、Nページ印刷が指定されていない場合にはもちろん縮小の必要はない。
次に、「重ね印刷」、すなわち、先に原稿データの印刷データを生成するケースについて、図23のフローチャートを用いて説明する。上述したように、「重ね印刷」はプリンタのビットマップメモリにおいて、原稿データの上に地紋画像をラスタライズする処理である。そのため、印刷データの生成順序としては、地紋画像に対応する印刷データ生成より先に原稿データに対応する印刷データを生成することになる。
ステップS1902において、カウンタを初期化する。次に、ステップS1903において、カウンタが、予め設定されている1物理ページあたりの論理ページ数になったかどうかを判定し、論理ページ数と等しくなったらステップS1908へ進み、等しくなければステップS1904へすすむ。ステップS1904において、カウンタを1増加させる。ステップS1905において、1ページあたりの論理ページ数およびカウンタをもとに、これから生成する論理ページに対する有効印字領域を計算する。ステップS1906において、図13のような形態で通知された物理ページに関する情報から、カウンタをインデックスとして現在の論理ページ番号を読み取り、該当論理ページを有効印字領域内に収まるように縮小する。ただし、Nページ印刷が指定されていない場合にはもちろん縮小の必要はない。1物理ページとして所定数の論理ページに対応する印刷データの生成をし終えたなら、ステップS1908に進む。ステップS1908では、アプリケーションから取得している物理ページの有効印字領域に基づいて、図18で示した地紋に関する情報に従い、地紋処理部205が地紋画像の生成を行う。その詳細処理については図24を参照して後述する。
図24は本発明の一実施形態に係る、図22に示したステップS1901の地紋画像生成処理及び図23に示したステップS1908の地紋画像生成処理の詳細を示すフローチャートである。以下、図24を参照して、地紋画像生成処理を説明する。
初めに、ステップS2701で地紋画像生成処理が開始される。具体的には、地紋処理部205に地紋画像生成指示と上述した地紋プリント設定情報が入力される。次に、ステップS2702で、地紋処理部205は背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像、を読み込む。なお、基礎画像とは、地紋画像を生成するための基礎となるイメージデータである。これは図18に示した各種の設定情報に基づいてデスプーラ305によって生成される画像である。
さらに、ステップS2703で、地紋処理部205は地紋画像を生成する際の初期画素を決定する。例えば、A4用紙の印字可能領域全体に対して左上から右下までラスター走査順に画像処理を行い地紋画像を生成する場合、印字可能領域の左上を初期位置とする。この場合、印字可能領域と地紋画像領域とが等しくなる。
次にS2704では、地紋処理部205は背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像を地紋画像領域の左上からタイル上に配置する処理を以下の式(1)に基づく計算によって実行する。この計算によって、当該画素位置に印刷時のドットに対応する画素値を書き込むか否かを判定する。このとき画素値は入力された色情報に対応する。なお、ここで、背景閾値パターンおよび前景閾値パターンは、ドットの書き込み/非書き込みに対応する「1」と「0」からなる画像データであり、これらの画像は前景(潜像)画像及び背景画像を作成するのに適したそれぞれのディザマトリクスによって2値化されたデータである。
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)の計算を省略できる。
また、生成される地紋画像では、背景閾値パターン、前景閾値パターン、基礎画像、カモフラージュ画像の縦横の長さの最小公倍数の大きさの画像が繰り返しの最小単位となる為、地紋処理部205では繰り返しの最小単位である地紋画像の一部分のみを生成し、その地紋画像の一部分を地紋画像領域の大きさにタイル状に繰り返し並べると地紋画像生成にかかる処理時間を短縮できる。
次に、ステップS2705では、ステップS2704の計算結果(nWriteDotOnの値)をCPU1が判定する。即ち、nWriteDotOn=1ならばステップS2706に進み、nWriteDotOn=0ならばステップS2707に進む。
ステップS2706では、印刷時のドットに対応する画素値を書き込む処理を行う。ここで、画素値は、地紋画像の色によって変える事ができる。その他、プリンタのトナーあるいはインクの色に合わせて設定することにより、カラーの地紋画像を作成することもできる。また、トナーやインクを複数色組み合わせた二次色を利用することもできる。
ステップS2707では、処理対象領域の全画素が処理されたか否かを判定する。処理対象領域の全画素が処理されていない場合はステップS2708に進み、未処理の画素を選択し、再びステップS2704〜S2706の処理を実行する。
この実施形態によれば、ユーザが、原稿データの空白領域や白画像で塗りつぶされる領域の有無、原稿データを生成したアプリケーションなどに応じて、透かし印刷か重ね印刷かを決めることができる。この結果、地紋印刷に関してユーザにとってより使いやすい情報処理装置とすることが可能となる。
なお、地紋画像データと原稿画像データをビットマップイメージとして合成する処理は、プリンタ1500において行われることになる。プリンタにおける合成処理において、重ね印刷設定がされている場合は、まず、原稿画像データをビットマップメモリ上にラスタライズし、続いて地紋画像データを原稿画像データに対して上書きするようにラスタライズすることになる。このとき、単純に地紋画像データを上書きしてしまうと、原稿画像が見えなくなってしまう。そこで、重ね印刷設定がされている場合は、AND/ORといった論理描画を利用することで、地紋画像で原稿画像を完全に上書きしてしまうことを避ける。例えば、原稿画像データを展開して得られたビットマップイメージのピクセルが白に相当する値である場合、そのピクセルに対応する地紋画像データは当該ピクセル位置に相当するビットマップメモリ上に上書きし、白以外の値を有するピクセルについては、地紋画像データを上書きしない、といった処理を行う。
(他の実施形態)
本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現する、各図に示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。