(57)【要約】      （修正有）【課題】符号化画像データとスタンプ画像データの設定が行われて印刷される場合に、符号化画像データを破損させない情報処理装置、情報処理方法およびプログラム、並びにそのプログラムを格納した記憶媒体を提供する。【解決手段】スプールファイルマネージャは、スプールファイルからスタンプ画像データの設定を読み込み、ジョブの管理を開始する。符号化画像検知部は、原稿画像データに符号化画像データが含まれるか否かを検知し、含まれる場合にはスタンプ画像データと符号化画像データとが重複するか否かを判断する。その後、印刷処理自体を中止したり、スタンプ画像データを合成しなかったり、スタンプ画像データの位置を変更または縮小したりして、符号化画像データが破損されないようにする。【選択図】図１５
2008123345.tif 000002
【特許請求の範囲】
【請求項１】
原稿画像にスタンプ画像を合成する設定が存在するか否かを判定する第１の判定手段と、
前記原稿画像に符号化画像が合成されているか否かを判定する第２の判定手段と、
前記第１の判定手段により前記設定が存在すると判定され、前記第２の判定手段により前記符号化画像が合成されていると判定された場合、前記原稿画像において前記スタンプ画像と前記符号化画像とが重複するか否かを判定する第３の判定手段と、
前記第３の判定手段により前記スタンプ画像と前記符号化画像とが重複すると判定される場合、重複する旨をユーザに対して通知する通知手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記第３の判定手段により重複すると判定された場合、重複する旨をユーザに対して通知すると共に、スタンプ画像及び原稿画像のうち原稿画像のみを出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第３の判定手段により重複すると判定された場合、重複する旨をユーザに対して通知すると共に、スタンプ画像及び原稿画像の出力を中止することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第３の判定手段により重複すると判定された場合、前記原稿画像に対して合成されるスタンプ画像の設定を変更する変更手段をさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記変更手段は、前記スタンプ画像が前記原稿画像内の符号画像に重ならないように、前記スタンプ画像の位置設定を変更することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記変更手段は、前記スタンプ画像が前記原稿画像内の符号画像に重ならないように、前記スタンプ画像のサイズ設定を変更することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
原稿画像にスタンプ画像を合成する設定が存在するか否かを判定する第１の判定ステップと、
前記原稿画像に符号化画像が合成されているか否かを判定する第２の判定ステップと、
前記第１の判定ステップにより前記設定が存在すると判定され、前記第２の判定ステップにより前記符号化画像が合成されていると判定された場合、前記原稿画像において前記スタンプ画像と前記符号化画像とが重複するか否かを判定する第３の判定ステップと、
前記第３の判定ステップにより前記スタンプ画像と前記符号化画像とが重複すると判定される場合、重複する旨をユーザに対して通知する通知ステップと
を備えることを特徴とする情報処理方法。
【請求項８】
前記第３の判定ステップにより重複すると判定された場合、重複する旨をユーザに対して通知すると共に、スタンプ画像及び原稿画像のうち原稿画像のみを出力することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記第３の判定ステップにより重複すると判定された場合、重複する旨をユーザに対して通知すると共に、スタンプ画像及び原稿画像の出力を中止することを特徴とする請求項７に記載の情報処理方法。
【請求項１０】
前記第３の判定ステップにより重複すると判定された場合、前記原稿画像に対して合成されるスタンプ画像の設定を変更する変更ステップをさらに備えることを特徴とする請求項７に記載の情報処理方法。
【請求項１１】
前記変更ステップは、前記スタンプ画像が前記原稿画像内の符号画像に重ならないように、前記スタンプ画像の位置設定を変更することを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記変更ステップは、前記スタンプ画像が前記原稿画像内の符号画像に重ならないように、前記スタンプ画像のサイズ設定を変更することを特徴とする請求項１０に記載の情報処理方法。
【請求項１３】
情報処理装置に請求項７乃至請求項１２のいずれかに記載の情報処理方法を実行させるためのプログラム。
【請求項１４】
情報処理装置に請求項７乃至請求項１２のいずれかに記載の情報処理方法を実行させるためのプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化画像データを取り扱うことができる情報処理装置、情報処理方法およびプログラム、並びにそのプログラムを格納した記憶媒体に関する。より詳細には、パーソナルコンピュータ等の情報処理装置において、符号化画像データとスタンプ画像データとを印刷する際の処理に関する。
【背景技術】
【０００２】
従来、「機密」、「回覧」などの文字列が記されたマークを文書に付与する場合、スタンプ画像データが使用されていた。
【０００３】
パーソナルコンピュータなどのホストコンピュータ上で動作するアプリケーションによって作成された画像データをプリンタで印刷する際、このようなマークを付与するための技術が知られている。すなわち、プリンタドライバにスタンプマークやウォーターマーク（watermark：透かし）を付与する機能が取り入れられている（特許文献１参照）。
【０００４】
プリンタドライバとは、オペレーティングシステム（ＯＳ）のグラフィックスモジュールを介してアプリケーションから描画指示を受け、この描画指示に従って、出力先のプリンタに固有の画像記録データを生成するソフトウェアである。
【０００５】
このプリンタドライバは、個々のアプリケーションに依存しないＯＳ固有のものである。このため、従来、既存のアプリケーションに改変を加えることなく、任意のアプリケーションで作成された画像に対し、共通のマークを重ね合わせて出力する機能もプリンタドライバに取り入れられている（特許文献２参照）。
【０００６】
従来、バーコードやＱＲコード（二次元コード）に代表されるように、製品等の情報を符号化画像データに変換して出力用紙（この場合、ラベル等が多い）に埋め込む事が行われてきた。このような出力用紙をリーダ（読み取り機）で読み取ることにより、符号化される前の情報を取得し、商品の管理等に利用する形態が実用化されている。
【０００７】
最近では、単なるテキストデータ（文字情報）だけでなく画像やその他の様々な情報を符号化画像データに変換して紙に埋め込むべく、従来よりも大容量の情報が埋め込み可能なｎ次元の符号化方法が考えられている(特許文献３参照)。特許文献３では、サムネイル（多数の画像を一覧表示するために縮小された画像）と共にその元ファイルが符号化画像データに変換されて出力用紙に印刷され、その出力用紙を複写機に読み込ませることで、元ファイルを印刷可能となっている。
【０００８】
【特許文献１】特開２００１−１９７２９７号公報
【特許文献２】特開２００４−２６０８５２号公報
【特許文献３】特開２００１−３４４５８８号広報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
情報を符号化して符号化画像データを生成し、該符号化画像データを原稿画像データに合成した印刷データにスタンプ画像データを追加して印刷する場合、符号化画像データとスタンプ画像データとが重複して印字されることがある。このような場合には、符号化画像データが破損し、読み取りが正確にできなくなる。
【００１０】
本発明は、このような課題に鑑みてなされたものであり、その目的とするところは、符号化画像データとスタンプ画像データの設定が行われて印刷される場合に、符号化画像データを破損させない情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記の問題を解決するため、本発明の情報処理装置は、原稿画像にスタンプ画像を合成する設定が存在するか否かを判定する第１の判定手段と、原稿画像に符号化画像が合成されているか否かを判定する第２の判定手段と、第１の判定手段により設定が存在すると判定され、第２の判定手段により符号化画像が合成されていると判定された場合、原稿画像においてスタンプ画像と符号化画像とが重複するか否かを判定する第３の判定手段と、第３の判定手段によりスタンプ画像と符号化画像とが重複すると判定される場合、重複する旨をユーザに対して通知する通知手段とを備えたことを特徴とする。
【００１２】
また、本発明の情報処理方法は、原稿画像にスタンプ画像を合成する設定が存在するか否かを判定する第１の判定ステップと、原稿画像に符号化画像が合成されているか否かを判定する第２の判定ステップと、第１の判定ステップにより設定が存在すると判定され、第２の判定ステップにより符号化画像が合成されていると判定された場合、原稿画像においてスタンプ画像と符号化画像とが重複するか否かを判定する第３の判定ステップと、第３の判定ステップによりスタンプ画像と符号化画像とが重複すると判定される場合、重複する旨をユーザに対して通知する通知ステップとを備えることを特徴とする。
【００１３】
また、本発明は、情報処理装置に上記の情報処理方法を実行させるためのプログラム、さらに、そのプログラムを格納した記憶媒体に存する。
【発明の効果】
【００１４】
本発明によれば、符号化画像データとスタンプ画像データの設定が同時に行われた場合に、符号化画像データが破損することを検知すると印刷処理が中止される。または、ユーザインターフェースなどを利用してユーザに通知し、スタンプ画像データを合成せずに印刷処理が行われる。
【００１５】
さらに、符号化画像データが破損することを検知するとスタンプ画像データの印刷位置を自動的にずらしたり、スタンプ画像データのサイズを縮小したりすることにより符号化画像データが破損しないように印刷処理することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明を適用することができる実施形態について詳細に説明する。
【００１７】
図１乃至図１８は、本発明の一実施形態に係る情報処理装置（ホストコンピュータ３０００）と画像形成装置（プリンタ１５００）とを備える画像形成システムにについて説明する。また、図１乃至図１８は、画像形成システムにおける印刷処理、およびそれに伴う符号化画像データ、およびスタンプ画像データの生成／合成方法に関する構成を説明する。
【００１８】
（第１の実施形態）  
＜印刷システムの構成＞
図１は、本発明の第１の実施形態に係る画像形成システムの構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器からなるシステムであっても、複数の機器からなるシステムであっても、ＬＡＮ／ＷＡＮ等のネットワークを介して接続がなされて処理が行われるシステムであっても構わない。
【００１９】
図１は、ホストコンピュータ３０００、およびプリンタ１５００が、双方向性インターフェース２１により接続されている。
【００２０】
ホストコンピュータ３０００は、制御部２０００、キーボード（ＫＢ）９、ＣＲＴディスプレイ（ＣＲＴ）１０、および外部メモリ１１を備える。
【００２１】
さらに、制御部２０００は、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、システムバス４、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、およびプリンタコントローラ（ＰＲＴＣ）８を備える。
【００２２】
ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、およびプリンタコントローラ（ＰＲＴＣ）８は、システムバス４を介して接続されている。
【００２３】
ＲＯＭ３は、その内部にフォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭをさらに備える。
【００２４】
一方、プリンタ１５００は、制御部１０００、印刷部（プリンタエンジン）１７、操作部１５０１、および外部メモリ１４を備える。
【００２５】
さらに、制御部１０００は、ＣＰＵ１２、ＲＯＭ１３、システムバス１５、印刷部インターフェース（Ｉ／Ｆ）１６、入力部１８、ＲＡＭ１９、およびメモリコントローラ（ＭＣ）２０を備える。
【００２６】
ＣＰＵ１２、ＲＯＭ１３、印刷部インターフェース（Ｉ／Ｆ）１６、入力部１８、ＲＡＭ１９、およびメモリコントローラ（ＭＣ）２０は、システムバス１５を介して接続されている。
【００２７】
ＲＯＭ１３は、ＲＯＭ３と同様に、その内部にフォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭをさらに備える。
【００２８】
図１の各構成要素について詳細に説明する。
最初に、図１のホストコンピュータ３０００が備える各構成要素について説明する。
【００２９】
ＣＰＵ１は、ホストコンピュータ３０００全体を制御し、本発明の実施形態に係る処理を含む、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理、およびそれに基づく印刷処理の実行を制御する。該処理は、ＲＯＭ３のプログラムＲＯＭ、または外部メモリ１１に格納された文書処理プログラム等に基づいて行われる。なお、本発明の実施形態に係る処理は図２以降で詳述する。また、ＣＰＵ１は、システムバス４を介して接続されている各デバイスについても総括的に制御する。
【００３０】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。後述するように、本発明の実施形態に係る各種データがＲＡＭ２上に格納され、または各種プログラムなどがＲＡＭ２上にロードされて実行される。
【００３１】
ＲＯＭ３が有するフォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭについて説明する。
【００３２】
プログラムＲＯＭは、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）等を格納する。
【００３３】
フォントＲＯＭは、上記文書処理の際に使用するフォントデータ等を格納する。
【００３４】
データＲＯＭは、上記文書処理等を行う際に使用する各種データを格納する。
【００３５】
なお、上記フォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭはＲＯＭ３に存在してもよいが、外部メモリ１１に存在する実施形態であっても構わない。
【００３６】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９やポインティングデバイス（図示せず）からのキー入力を制御する。
【００３７】
ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０による表示を制御する。
【００３８】
ディスクコントローラ（ＤＫＣ）７は、ハードディスク（ＨＤ）、およびフロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。ＨＤ、およびＦＤ等の外部メモリ１１は、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、およびプリンタ制御コマンド生成プログラム（以下、プリンタドライバと称する）等を格納する。なお、ここでは、外部メモリ１１の例としてＨＤやＦＤを挙げたが、これらに限定されることはなく、ＣＤ−ＲＯＭなどデータを格納しておくための記録媒体であれば良い。
【００３９】
プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース２１を介してプリンタ１５００に接続されており、プリンタ１５００との通信制御処理を実行する。
【００４０】
なお、ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示情報についてＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（ウィジウィグ）を可能としている。
【００４１】
また、ＣＰＵ１は、ＣＲＴ１０上のマウスカーソル（図示せず）等で指示されたコマンドに基づいて、登録された種々のウィンドウを開き、および種々のデータ処理を実行する。このため、ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
【００４２】
次に、図１のプリンタ１５００が備える各構成要素について説明する。
【００４３】
ＣＰＵ１２は、プリンタ１５００全体を制御し、ＲＯＭ１３のプログラムＲＯＭに格納された制御プログラム等、または外部メモリ１４に格納された制御プログラム等に基づいて、システムバス１５に接続されている各デバイスを制御する。例えば、ＣＰＵ１２は、印刷部Ｉ／Ｆ１６を介して印刷部（プリンタエンジン）１７に印刷出力情報としての画像信号を出力する。
【００４４】
ＲＯＭ１３が有するフォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭについて説明する。
【００４５】
プログラムＲＯＭは、ＣＰＵ１２の制御プログラム等を格納する。
【００４６】
フォントＲＯＭは、上記印刷出力情報を生成する際に使用するフォントデータ等を格納する。
【００４７】
データＲＯＭは、プリンタ１５００上で利用される情報等を格納する。
【００４８】
なお、上記フォントＲＯＭ、プログラムＲＯＭ、およびデータＲＯＭはＲＯＭ１３に存在してもよいが、外部メモリ１４に存在する実施形態であっても構わない。
【００４９】
さらに、ＣＰＵ１２は、入力部１８、および双方向性インターフェース２１を介してホストコンピュータ３０００との通信処理についても制御し、プリンタ１５００内の情報をホストコンピュータ３０００に送信することもできる。
【００５０】
ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するメモリであり、増設ポート（図示せず）に接続されるオプションＲＡＭによりメモリ容量を拡張することもできるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ（Non Volatile RAM：不揮発性ＲＡＭ）等に用いられる。
【００５１】
外部メモリ１４は、メモリコントローラ（ＭＣ）２０を介してアクセスされ、その制御は、上記ＣＰＵ１２が行う。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を格納する。
【００５２】
また、外部メモリ１４は、１個に限定されることなく、複数個備えられている構成でも構わない。つまり、プリンタ１５００は、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリ１４を複数個接続できるように構成されていてもよい。さらに、プリンタ１５００は、ＮＶＲＡＭ（図示せず）を有し、操作部１５０１からのプリンタモード設定情報を格納するような構成であってもよい。
【００５３】
なお、外部メモリ１４は、図１では、ハードディスク（ＨＤ）、およびフロッピー（登録商標）ディスク（ＦＤ）等の記憶媒体を例にして図示しているが、これらに限定されることなく、ＣＤ−ＲＯＭなど他の記憶媒体であっても構わない。
【００５４】
印刷部１７は、本実施形態では電子写真方式のエンジンを備えている。従って、画像の印刷、およびそれに伴う地紋画像の印刷は、それらの印刷データに従って形成されるトナーのドットによって行われる。なお、本発明に適用可能な印刷方式は、このような電子写真方式に限られないことはもちろんであり、例えば、インクジェット方式など、インクによるドットを形成して印刷を行う他の印刷方式にも本発明を適用することができる。
【００５５】
入力部１８は、操作パネルであり、操作のためのスイッチ、およびＬＥＤ表示器等が配されている。
【００５６】
図２は、図１に示したホストコンピュータ３０００における印刷処理のための構成の一例を示す。
【００５７】
図２では、説明の便宜上、外部メモリ１１が省略されているが、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に格納されたファイルとして存在する。アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、プログラムモジュールであり、実行時にはＯＳやＯＳのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行される。
【００５８】
また、アプリケーション２０１、およびプリンタドライバ２０３は、外部メモリ１１のＦＤやＣＤ−ＲＯＭ（図示せず）、あるいはネットワーク（図示せず）を介して外部メモリ１１のＨＤに追加することもできる。
【００５９】
アプリケーション２０１は、ＲＡＭ２にロードされて実行される。アプリケーション２０１は、プリンタ１５００に対して印刷を行う場合、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２に対してＧＤＩ（Graphic Device Interface）関数を出力する。
【００６０】
グラフィックエンジン２０２は、プリンタ１５００などの画像形成装置毎に用意されたプリンタドライバ２０３を外部メモリ１１からＲＡＭ２にロードする。そして、グラフィックエンジン２０２は、アプリケーション２０１から受信したＧＤＩ関数をＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３に対してＤＤＩ関数を出力する。
【００６１】
プリンタドライバ２０３は、グラフィックエンジン２０２から受信したＤＤＩ関数を、プリンタ１５００が認識可能な制御コマンド、例えば、ＰＤＬ（Page Description Language：ページ記述言語）に変換する。変換された制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、双方向性インターフェース２１を介してプリンタ１５００へ印刷データとして送信される。
【００６２】
ここで、本実施形態で示すアプリケーション２０１は、符号化画像データを生成し、原稿画像データと合成するアプリケーションである。
【００６３】
＜印刷関連のソフトウエアモジュール＞
図３は、ホストコンピュータ３０００における印刷処理のための構成の他の例を示す図である。
【００６４】
図３は、図２に示した構成を拡張したものであり、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る間に、一旦中間コードからなるスプールファイル３０３を生成する構成を示している。
【００６５】
図２と同様に外部メモリ１１は、図３でも説明の便宜上省略するが、図３に示す各構成要素は外部メモリ１１に格納されている。
【００６６】
ホストコンピュータ３０００は、外部メモリ１１の中に、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、システムスプーラ２０４、ディスパッチャ３０１、スプーラ３０２、およびスプールファイル３０３を備える。また、ホストコンピュータ３０００は、外部メモリ１１の中に、スプールファイルマネージャ３０４、デスプーラ３０５、プレビューア３０６、設定変更エディタ３０７を備える。さらに、スプールファイルマネージャ３０４は、その内部に、符号化画像検知部３０８、およびスタンプ画像処理部３０９を備える。
【００６７】
図２、および図３で示す構成の差異について、まず説明する。
【００６８】
図２の構成では、アプリケーション２０１が印刷処理から開放されるのは、プリンタドライバ２０３がグラフィックエンジン２０２から受信した全ての印刷命令をプリンタ１５００が認識可能な制御コマンドへ変換し終わった時点である。
【００６９】
一方、図３の構成では、アプリケーション２０１が印刷処理から開放されるのは、スプーラ３０２が全ての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点であるという点で異なる。
【００７０】
通常、後者（図３で示す構成）の方がアプリケーション２０１による印刷処理が短時間で済む。
【００７１】
また、図３で示す構成においては、スプールファイル３０３の内容に対して加工することも可能である。これによりアプリケーション２０１から受け取った原稿画像データに対して、拡大縮小機能や複数ページを１ページに縮小して印刷する機能等、アプリケーション２０１自身が持たない機能を実現することができる。
【００７２】
これらのことを実現するために、図２の構成に対し、図３に示すように中間コードデータからなるファイルをスプールするよう、システムの拡張がなされている。
【００７３】
なお、原稿画像データの加工を行うためには、通常、プリンタドライバ２０３によってＣＲＴディスプレイ（ＣＲＴ）１０に表示されるウィンドウ（図示せず）から設定を行う。プリンタドライバ２０３は、該ウィンドウから設定された内容をＲＡＭ２、または外部メモリ１１に格納する。
【００７４】
以下、図３に示す構成を詳細に説明する。
【００７５】
図３に示す通り、ディスパッチャ３０１は、グラフィックエンジン２０２から印刷命令（ＤＤＩ関数）を受信する。該印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ出力された印刷命令（ＧＤＩ関数）に基づいて変換されたものである場合、図２で説明したルートとは異なるルートで該印刷命令（ＤＤＩ関数）は送信される。つまり、ディスパッチャ３０１は、スプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ該印刷命令（ＤＤＩ関数）を送信する。
【００７６】
スプーラ３０２は、受信した印刷命令（ＤＤＩ関数）を解析し、ページ単位に中間コードに変換したスプールファイルをスプールファイル３０３に出力する。なお、このページ単位に格納されている中間コードのスプールファイルを、本明細書では、「ページ描画ファイル（ＰＤＦ：Page Description File）」と呼ぶ。
【００７７】
また、スプーラ３０２は、「ジョブ設定ファイル（ＳＤＦ：Spool Description File）」をプリンタドライバ２０３から取得して、ジョブ設定ファイルをジョブ単位のファイルとしてスプールファイル３０３に格納する。
【００７８】
本明細書で、「ジョブ設定ファイル」とは、アプリケーション２０１からプリンタドライバ２０３に対して設定されたファイルを意味する。より詳細に言うと、原稿画像データの印刷に関する加工設定（Ｎｕｐ、両面、ステイプル、カラー／モノクロ、スタンプ画像データ指定など）をジョブ単位にまとめたファイルである。このジョブ設定ファイルについては後述する。
【００７９】
なお、スプールファイル３０３は、本実施形態では外部メモリ１１上にファイルとして生成されるが、ＲＡＭ２上に生成されても構わない。
【００８０】
さらに、スプーラ３０２は、スプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を送信する。
【００８１】
その後、スプールファイルマネージャ３０４は、スプールファイル３０３に格納された上記加工設定の内容に従って印刷を行えるか否かを判断する。その際、符号化画像検知部３０８は、原稿画像データの符号化画像データを復号（デコード）し、その結果、符号化画像データの存在を検知する。符号化画像データを検知した場合、符号化画像検知部３０８は、原稿画像データにおけるその符号化画像データの描画位置をＲＡＭ２に格納する。
【００８２】
一方、スタンプ画像処理部３０９は、符号化画像データの描画位置とスタンプ画像データを描画する位置とにより後述のスタンプ画像データの描画処理の可否、および描画位置を決定する。
【００８３】
スプールファイルマネージャ３０４は、上記決定の結果、グラフィックエンジン２０２を利用して印刷を行えると判断した場合、デスプーラ３０５をＲＡＭ２にロードする。そして、スプールファイルマネージャ３０４は、スプールファイル３０３に格納されているページ描画ファイル（ＰＤＦ）の印刷処理を行うよう、デスプーラ３０５に指示（通知）する。
【００８４】
デスプーラ３０５は、スプールファイル３０３に格納されているページ描画ファイルを、スプールファイル３０３に格納されている上記加工設定情報を含むジョブ設定ファイル（ＳＤＦ）に従って加工し、印刷命令（ＧＤＩ関数）を再生成する。そして、デスプーラ３０５は、グラフィックエンジン２０２へ該印刷命令（ＧＤＩ関数）を送信する。その際、スタンプ画像データの描画位置については、デスプーラ３０５は、スタンプ画像処理部３０９をロードして描画位置の情報を取得し、その情報に従って描画処理を行う。
【００８５】
デスプーラ３０５からグラフィックエンジン２０２へ送信された印刷命令（ＧＤＩ関数）は、グラフィックエンジン２０２にて印刷命令（ＤＤＩ関数）に変換され、ディスパッチャ３０１に送信される。
【００８６】
かかる場合、ディスパッチャ３０１は、スプーラ３０２ではなく、プリンタドライバ２０３に印刷命令（ＤＤＩ関数）を送信する。
【００８７】
すなわち、ディスパッチャ３０１は、グラフィックエンジン２０２から受信した印刷命令（ＤＤＩ関数）がデスプーラ３０５から受信された印刷命令（ＤＤＩ関数）である場合には、プリンタドライバ２０３に該印刷命令（ＤＤＩ関数）を送信する。一方、上述したように、ディスパッチャ３０１は、グラフィックエンジン２０２から受信した印刷命令（ＤＤＩ関数）がアプリケーション２０１から受信された印刷命令（ＧＤＩ関数）である場合には、スプーラ３０２に該印刷命令（ＤＤＩ関数）を送信する。
【００８８】
プリンタドライバ２０３は、ディスパッチャ３０１から受信した印刷命令（ＤＤＩ関数）に基づいてＰＤＬ（ページ記述言語）等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４を介してプリンタ１５００に送信する。
【００８９】
さらに、図３は、上述の構成に加えて、プレビューア３０６、および設定変更エディタ３０７をさらに配し、スタンプ画像データのプレビューを含む印刷プレビュー、印刷設定変更、および複数ジョブの結合を可能にした例を示している。
【００９０】
印刷プレビュー、印刷設定変更、および複数ジョブの結合を行うためには、まずユーザがプリンタドライバ２０３のプロパティシート（図示せず）において、「出力先の指定」を行うプルダウンメニュー（図示せず）において「ストア」を指定する必要がある。なお、印刷プレビューだけを見たい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【００９１】
このようにプリンタドライバ２０３のプロパティシートで設定される内容は設定ファイルとしてＯＳが提供する構造体（Windows（登録商標）ＯＳでは、DEVMODEと呼ばれる）に格納される。その構造体には、例えば、加工設定情報を含むジョブ設定ファイル中にスプールファイルマネージャ３０４が上記ストアを行うか否かの設定が含まれている。スプールファイルマネージャ３０４がプリンタドライバを介してその加工設定を読み込み、ストア指定がなされていた場合には、前述したようにスプールファイル３０３にページ描画ファイル（ＰＤＦ）とジョブ設定ファイル（ＳＤＦ）とが生成・格納される。そして、スプールファイルマネージャ３０４は、スプールファイルマネージャ３０４のウィンドウ画面（図示せず）をポップアップし、スプールファイル３０３にスプールされているジョブのリストを表示する。
【００９２】
スプールファイルマネージャ３０４のウィンドウ画面上で、ある単体ジョブ、または結合ジョブのプレビュー指定がされた場合、スプールファイルマネージャ３０４は、プレビューア３０６をＲＡＭ２にロードする。そして、スプールファイルマネージャ３０４は、プレビューア３０６に対してスプールファイル３０３に格納されたページ描画ファイル（ＰＤＦ）のプレビュー処理を行うように指示する。
【００９３】
（プレビューア）
ここで、プレビューア３０６について詳細に説明する。  
プレビューア３０６は、スプールファイル３０３に格納されているページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工する。そして、加工したプレビュー情報について、プレビューア３０６は、スプールファイルマネージャ３０４を介してグラフィックエンジン２０２に対して描画データ（実体的には、ＧＤＩ関数である）を送信する。グラフィックエンジン２０２が自身の確保するクライアント領域に受信した描画データを出力することによって、画面上にプレビューを出力することが可能となる。
【００９４】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５同様に、スプールファイル３０３に格納されているページ描画ファイル（ＰＤＦ）をスプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）の加工設定内容に従って加工することができる。そして、プレビューア３０６は、グラフィックエンジン２０２を利用して加工したプレビューを出力することでプレビューを実現することができる。このように、プレビューア３０６は、プリンタドライバ２０３で設定された加工設定をジョブ設定ファイル（ＳＤＦ）としてスプールファイル３０３に格納し、該ジョブ設定ファイル（ＳＤＦ）に基づいてページ描画ファイル（ＰＤＦ）をデータ加工して出力する。
【００９５】
一般的なアプリケーションソフトウェアが有するプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づき描画するため、プリンタドライバの印刷設定が反映されず、実際に出力されるプレビューをユーザに認識させることはできなかった。
【００９６】
一方、本発明は上述の処理により、実際の描画データがどのように印刷されるかをユーザに提供することができる。さらに、本発明は、Ｎｕｐ、両面印刷、製本印刷、およびスタンプ画像データが指定されている場合、各々に応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、Ｎｕｐとは、Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理を指す。
【００９７】
上記のようにプレビュー処理を行うことにより、スプールファイル３０３に含まれる印刷の加工設定に基づくプレビューがプレビューア３０６によって画面上に表示される。
【００９８】
ユーザの非表示指示によってプレビューア３０６がクローズされると、制御はスプールファイルマネージャ３０４のウィンドウ画面（図示せず）に移行する。そして、ユーザがプレビューア３０６によって表示された内容に従って印刷を行う場合、スプールファイルマネージャ３０４上で「印刷」または「セーブして印刷」を指示することにより、スプールファイルマネージャ３０４が印刷要求を発行する。この印刷要求により、前述したようにデスプーラ３０５は、ジョブ設定ファイル（ＳＤＦ）に基づいてページ描画ファイル（ＰＤＦ）を加工してＧＤＩ関数を生成し、グラフィックエンジン２０２に送信する。グラフィックエンジン２０２からディスパッチャ３０１経由でプリンタドライバ２０３に印刷命令（ＤＤＩ関数）が送信され、印刷が実行される。
【００９９】
（設定変更エディタ）
次に、設定変更エディタ３０７を用いた設定変更について説明する。設定変更エディタ３０７では、上述したプレビュー同様、「ストア」指定されたジョブに関して設定変更が可能である。
【０１００】
まず、スプールファイルマネージャ３０４は、プレビューと同様の手順によりスプールファイルマネージャ３０４のウィンドウ画面（図示せず）をポップアップし、スプールファイル３０３にスプールされているジョブのリストを表示する。スプールファイルマネージャ３０４のウィンドウ画面上で「ジョブ編集」が選択され、設定変更指示がされた場合、スプールファイルマネージャ３０４は、設定変更エディタ３０７をＲＡＭ２にロードする。そして、スプールファイルマネージャ３０４は、設定変更エディタ３０７に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして、設定変更エディタ３０７によってジョブ設定画面が表示される。
【０１０１】
設定変更エディタ３０７は、「ジョブ編集」が指定されたジョブのジョブ設定ファイル（ＳＤＦ）をスプールファイル３０３から取得し、そのジョブ設定ファイル（ＳＤＦ）に指定されている設定項目に基づいてジョブ設定画面のデフォルト値を変更する。この設定変更エディタ３０７でも画面上でのプレビュー出力が可能となる。すなわち、設定変更エディタ３０７は、スプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）をスプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定の内容に従って加工する。加工後、設定変更エディタ３０７は、グラフィックエンジン２０２を用いてメモリに出力することによって、画面上でのプレビュー出力が可能となる。
【０１０２】
また、設定変更エディタ３０７では、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定の内容を変更することが可能である。かかる場合、設定変更エディタ３０７のユーザインターフェースがプリンタドライバ２０３で設定可能な項目を持つ構成としてもよく、またはプリンタドライバ２０３自身のユーザインターフェースを呼び出す構成としても構わない。設定変更エディタ３０７では、部数、印刷方法（片面、両面、製本印刷）、ステイプル（サドルフィニッシャー等）、ページレイアウト、配置順等の指定ができる。また、設定変更エディタ３０７では、プリンタドライバ２０３で指定できる詳細設定の項目を設定し直すことも可能である。
【０１０３】
設定変更エディタ３０７で変更された変更項目は、設定変更エディタ３０７上の認証要求に従い、その変更が認証されると、制御がスプールファイルマネージャ３０４に移行する。スプールファイルマネージャ３０４は、変更が認証された項目を印刷設定の変更情報として格納するが、その際、オリジナルのジョブ設定ファイル（ＳＤＦ）には格納せず、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して格納する。ジョブ出力用設定ファイルについての詳細は、図１０以降を参照して後述する。
【０１０４】
そして、ユーザがプレビューア３０６での確認後、設定変更内容に従って印刷を行う場合は、スプールファイルマネージャ３０４は、上記ジョブ出力用設定ファイルを読み出して、印刷要求を発行する。該印刷要求は、デスプーラ３０５を介してグラフィックエンジン２０２に送信される。その後、該印刷要求は、グラフィックエンジン２０２からディスパッチャ３０１を経てプリンタドライバ２０３に送信され、設定変更内容に従った印刷が実行される。
【０１０５】
また、スプールファイルマネージャ３０４のウィンドウ画面（図示せず）では、複数の印刷ジョブを結合し、１つの印刷ジョブとして印刷するように指定することも可能である。上述したプレビュー、および設定変更同様、この結合処理は、プリンタドライバ２０３のプロパティシート（図示せず）において出力先を「ストア」指定されたジョブについて行うことができる。また、メールボックスやセキュアプリントなどの機能も「ストア」指定したメニュー（図示せず）中の「メールボックス」「セキュアプリント」をそれぞれ指定することにより選択することができる。
【０１０６】
ユーザが印刷ジョブの結合を行う場合、まず、アプリケーション２０１からプリンタドライバ２０３を呼び出し、ユーザインターフェース（図示せず）からストアを選択する。上記と同様、この選択により中間コードデータ（ページ描画ファイル）がスプールファイル３０３にストアされ、スプールファイルマネージャ３０４は、スプールファイルマネージャ３０４のウィンドウ画面をポップアップする。そして、スプールファイルマネージャ３０４は、スプールファイル３０３にスプールされたジョブをスプールファイルマネージャ３０４のウィンドウ画面上にリスト表示する。アプリケーション２０１から上記と同様の操作をすることにより、スプールファイルマネージャ３０４上に複数のジョブリストを表示することができる。
【０１０７】
ここで、複数ジョブを選択して「結合」が指定された場合、スプールファイルマネージャ３０４は、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし実行する。ユーザが、設定変更エディタ３０７を介してリスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示すると、結合設定画面(図示せず)が表示される。ここでは、設定変更エディタ３０７を結合設定画面として用いて説明したが、別モジュールの設定画面を用いても構わない。
【０１０８】
この設定変更エディタ３０７は、スプールファイル３０３に格納されているページ描画ファイル（ＰＤＦ）をスプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定の内容に従って加工する。その後、設定変更エディタ３０７は、結合ジョブとして指定された全てのジョブについて、グラフィックエンジン２０２を用いてメモリに出力することによって、画面出力を行う。その際、プレビュー領域に選択された全てのジョブのプレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイル（ＳＤＦ）を拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものであり、１つのジョブに対して１つ生成され、結合ジョブの場合もまた１つ生成される。
【０１０９】
ここでは、それぞれのジョブについて結合前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更して表示することも可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７のユーザインターフェースで設定可能としてもよく、またはプリンタドライバ２０３自身のユーザインターフェースを呼び出して設定しても構わない。
【０１１０】
結合されたジョブ、および変更された変更項目は、前述したように、設定変更エディタ３０７上の認証要求に従い、変更が認証されると、制御がスプールファイルマネージャ３０４に移行する。この操作により、先に選択された複数ジョブは、スプールファイルマネージャ３０４のウィンドウ上で１つの結合ジョブとして表示される。
【０１１１】
そして、ユーザがプレビューア３０６での確認同様、設定変更内容に従って印刷を行う場合、スプールファイルマネージャ３０４は、印刷要求を発行する。発行された印刷要求は、グラフィックエンジン２０２に送信される。グラフィックエンジン２０２は、該印刷要求をＤＤＩ関数に変換した上で、変換された印刷命令をディスパッチャ３０１経由でプリンタドライバ２０３に送信し、その印刷命令に従って印刷が実行される。
【０１１２】
図４は、本発明におけるアプリケーション２０１に関する構成を示す図である。アプリケーション２０１は、符号化画像データを生成し、生成した符号化画像データと原稿画像データとを合成する。
【０１１３】
アプリケーション２０１は、アプリケーション制御部４０１、ドライバ呼び出し部４０２、符号画像生成部４０３、符号画像合成部４０４、印刷ファイル読み込み部４０５、符号化データファイル読み込み部４０６、およびファイルＩ／Ｏ部４０７を備える。
【０１１４】
アプリケーション制御部４０１は、アプリケーション２０１内の各部を統括して制御する。後述するアプリケーション２０１のユーザインターフェース５００の各部から実行命令があると、アプリケーション制御部４０１は、その命令を受信し、図４の各部に指示を出す。すなわち、図４に示すように、アプリケーション制御部４０１は、ドライバ呼び出し部４０２、符号画像生成部４０３、印刷ファイル読み込み部４０５、および符号化データファイル読み込み部４０６に対して指示を出す。
【０１１５】
＜符号化処理＞
ＣＰＵ１は、所定の情報（この所定の情報には、例えば、機器番号や印刷時間情報やユーザＩＤ情報などが含まれる）の符号化処理を行って符号化画像データを生成するように制御することが可能である。
【０１１６】
なお、本明細書では、「符号化画像データ」とは、二次元コード画像やバーコード画像といった画像や電子透かし技術により生成された電子透かし画像のことを指す。
【０１１７】
また、上記制御（符号画像の生成制御、送信制御）は、ＣＰＵ１がＲＡＭ２内に格納されたプログラムを実行することによって行われる。
【０１１８】
ドライバ呼び出し部４０２は、スタンプ画像データの指定等の印刷設定を行うためにプリンタドライバ２０３を呼び出す。
【０１１９】
符号画像生成部４０３は、符号化画像データを生成し、符号画像合成部４０４に送信する。符号画像合成部４０４は、原稿画像データに該符号化画像データを合成する。
【０１２０】
印刷ファイル読み込み部４０５は、印刷を行うファイルを読み込みＲＡＭ２に展開する。
【０１２１】
符号化データファイル読み込み部４０６は、符号化されて原稿画像データに合成されるデータをファイルとして読み込み、ＲＡＭ２に展開する。
【０１２２】
ファイルＩ／Ｏ部４０７は、印刷ファイル読み込み部４０５、および符号化データファイル読み込み部４０６で読み込まれたファイルを開き、データをＲＡＭ２に展開する。
【０１２３】
図５は、アプリケーション２０１のユーザインターフェース５００の操作画面の一例である。上述したように、アプリケーション２０１は、アプリケーション制御部４０１によって制御されるため、ユーザインターフェース５００についてもアプリケーション制御部４０１が制御する。
【０１２４】
ユーザインターフェース５００は、印刷イメージ表示領域５０１、合成イメージ表示領域５０２、印刷ファイル読み込みボタン５０３、符号化データ読み込みボタン５０４、印刷設定ボタン５０５、印刷開始ボタン５０６、および閉じるボタン５０７を備える。
【０１２５】
以後、ユーザインターフェース５００の各構成要素について説明する。
【０１２６】
アプリケーション制御部４０１は、印刷ファイル読み込みボタン５０３が押下されたことを検知すると原稿画像データを読み込み、読み込んだ原稿画像データを印刷イメージ表示領域５０１に表示する。
【０１２７】
また、アプリケーション制御部４０１は、符号化データ読み込みボタン５０４が押下されたことを検知すると符号化を行うデータファイルを読み込み、符号化画像データを原稿画像データに合成したイメージを合成イメージ表示領域５０２に表示する。
【０１２８】
印刷設定ボタン５０５が押下されると、ドライバ呼び出し部４０２がプリンタドライバ２０３を呼び出し、後述のプリンタドライバ２０３の印刷設定ユーザインターフェースを表示する（図６参照）。
【０１２９】
印刷開始ボタン５０６を押下して印刷を開始すると、グラフィックエンジン２０２は、プリンタ１５００などの画像形成装置毎に用意されたプリンタドライバ２０３を外部メモリ１１からＲＡＭ２にロードする。そして、グラフィックエンジン２０２は、アプリケーション２０１からの出力をプリンタドライバ２０３に設定する。
【０１３０】
閉じるボタン５０７を押下すると、ユーザインターフェース５００は閉じられる。
【０１３１】
図６は、プリンタドライバ２０３の印刷設定ユーザインターフェースの一例であり、このユーザインターフェースでスタンプ画像データを指定する。スタンプ画像データとしては、「マル秘」「コピー禁止」などスタンプ画像データとして設定したい項目をプルダウンメニューから選択することが可能である。
【０１３２】
＜印刷用中間データの保存処理＞
図７は、スプーラ３０２により実行される、スプールファイル３０３の生成におけるページ単位格納ステップの処理を示すフローチャートである。以下、各ステップにおける処理を説明する。
【０１３３】
ステップＳ７０１では、スプーラ３０２は、アプリケーション２０１からグラフィックエンジン２０２、およびディスパッチャ３０１を介して印刷要求を受信する。
【０１３４】
アプリケーション２０１においては、図６に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定もプリンタドライバ２０３よりスプーラ３０２に渡される。この印刷設定は、上述したジョブ設定ファイル（ＳＤＦ）のことである。例えば、図６に示す設定入力ダイアログは、「スタンプ」のチェックボックスのようにスタンプ画像データを印刷するか否かを決定するような設定項目等を含んでいる。このような印刷設定がプリンタドライバ２０３よりスプーラ３０２に渡される。
【０１３５】
ステップＳ７０２では、スプーラ３０２は、上記受信した印刷要求がジョブ開始要求か否かを判定し、ジョブ開始要求であると判定された場合はステップＳ７０３に進み、一方、ジョブ開始要求でないと判定された場合はステップＳ７０６に進む。
【０１３６】
まず、ステップＳ７０３に進む処理フローから説明する。
【０１３７】
ステップＳ７０３では、スプーラ３０２は、中間データを一時的に格納するためのスプールファイル３０３を作成する。
【０１３８】
続いて、ステップＳ７０４では、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。
【０１３９】
ステップＳ７０５では、スプーラ３０２は、自身のページ数カウンタを１に初期化する。
【０１４０】
なお、スプールファイルマネージャ３０４は、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、スプールファイルマネージャ３０４内に記憶する。
【０１４１】
次に、ステップＳ７０６に進む処理フローを説明する。
【０１４２】
ステップＳ７０６では、受信した要求がジョブ終了要求か否かの判定を行う。ここで、ジョブ終了要求であると判定された場合には、ステップＳ７１２の処理に進み、一方、ジョブ終了要求でないと判定された場合には、ステップＳ７０７の処理に進む。
【０１４３】
まず、ステップＳ７０７に進む処理フローから説明する。
【０１４４】
ステップＳ７０７では、スプーラ３０２は、受信した要求が改ページか否かの判定を行う。ステップＳ７０７で、受信した要求が改ページであると判定された場合には、ステップＳ７０８に進み、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗、すなわち、改ページの印刷要求を受信したことを通知する。また、スプーラ３０２は、ページ数カウンタを１増加（インクリメント）して、中間コードを格納しているページ描画ファイル（ＰＤＦ）を閉じ、次のページ描画ファイル（ＰＤＦ）を生成する。
【０１４５】
一方、ステップＳ７０７において、受信した印刷要求が改ページではないと判定された場合には、ステップＳ７０９に進み、ページ描画ファイル（ＰＤＦ）への中間コードの書き出しの準備を行う。
【０１４６】
次に、ステップＳ７１０では、スプーラ３０２は、印刷要求をスプールファイル３０３へ格納するため、印刷要求を中間コードへ変換する処理を行う。
【０１４７】
ステップＳ７１１では、スプーラ３０２は、ステップＳ７１０において格納可能な形に変換された印刷要求、すなわち、中間コードをスプールファイル３０３のページ描画ファイル（ＰＤＦ）へ書き込む。
【０１４８】
その後、ステップＳ７０１に戻り、スプーラ３０２は、再びアプリケーション２０１からの印刷要求を受信する。
【０１４９】
スプーラ３０２は、ステップＳ７０１からステップＳ７１１までの一連の処理を、アプリケーション２０１よりジョブ終了要求（EndDoc）を受信するまで続ける。
【０１５０】
また、スプーラ３０２は、上記一連の処理中にプリンタドライバ２０３からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイル（ＳＤＦ）としてスプールファイル３０３に格納する。
【０１５１】
次に、ステップＳ７０６にて、アプリケーションからの印刷要求がジョブ終了であると判定され、ステップＳ７１２に進む処理フローを説明する。
【０１５２】
この場合、アプリケーション２０１からの印刷要求は全て終了であるので、ステップＳ７１２に進み、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、処理を終える。
【０１５３】
＜スプールファイルの生成＞
図８は、スプールファイルマネージャ３０４により実行される、スプールファイル３０３生成プロセスと、以降説明する印刷データ生成プロセスとの間での制御の詳細を示すフローチャートである。
【０１５４】
ステップＳ８０１では、スプールファイルマネージャ３０４は、スプーラ３０２、またはデスプーラ３０５からの印刷処理の進捗通知を受信する。
【０１５５】
ステップＳ８０２では、スプールファイルマネージャ３０４は、上記進捗通知が前述のステップＳ７０４において通知されるスプーラ３０２からの印刷開始通知であるか否かを判定する。上記進捗通知がスプーラ３０２からの印刷開始通知である場合、ステップＳ８０３へ進み、印刷の加工設定（スタンプ画像データの設定等）をスプールファイル３０３から読み込み、ジョブの管理を開始する。その後、ステップＳ８１６で、スプールファイルマネージャ３０４は、後述のスタンプ画像データの設定を行う。
【０１５６】
一方、スプールファイルマネージャ３０４は、ステップＳ８０２において、上記進捗通知がスプーラ３０２からの印刷開始通知でないと判定した場合ステップＳ８０４へ進む。スプールファイルマネージャ３０４は、ステップＳ８０４において、進捗通知が前述のステップＳ７０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知、すなわち改ページの通知であるか否かを判定する。ここで１論理ページの印刷終了通知であれば、スプールファイルマネージャ３０４は、Ｓ８１７で後述のスタンプ画像データの設定を行い、ステップＳ８０５にて、この論理ページに関する論理ページ情報をＲＡＭ２に格納する。
【０１５７】
そして、続くステップＳ８０６では、スプールファイルマネージャ３０４は、この時点でスプールが終了したｎ論理ページに対して、１物理ページの印刷が開始できるか否かを判定する。ここで、印刷可能であると判定された場合はステップＳ８０７へ進み、スプールファイルマネージャ３０４は、印刷する１物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
【０１５８】
物理ページの計算は、以下のように行われる。
【０１５９】
例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは、第１論理ページ乃至第４論理ページがスプールされた時点で印刷可能となる。続いて、第２物理ページは、第５論理ページ乃至第８論理ページがスプールされた時点で印刷可能となる。
【０１６０】
また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、ステップＳ７１２におけるスプール終了通知によって１物理ページに配置する論理ページを決定することができる。
【０１６１】
そして、ステップＳ８０８では、スプールファイルマネージャ３０４は、物理ページ情報をジョブ出力用設定ファイル（物理ページ情報を含むファイル）に格納する。すなわち、図１０に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号、およびその物理ページ番号などの情報がジョブ出力用設定ファイルに格納される。その後、スプールファイルマネージャ３０４は、物理ページ情報が１物理ページ分追加されたことをデスプーラ３０５に通知する。
【０１６２】
その後、ステップＳ８０１に処理が戻り、スプールファイルマネージャ３０４は、次の通知を待つ。本実施形態においては、印刷ジョブのスプールが全て終了していなくても、印刷データ１ページ、即ち１物理ページを構成する論理ページがスプールされた時点で印刷処理が可能である。
【０１６３】
一方、ステップＳ８０４において、進捗通知がスプーラ３０２からの１論理ページの印刷終了通知でなかった場合、ステップＳ８０９へ処理が進む。ステップＳ８０９で、スプールファイルマネージャ３０４は、その進捗通知がステップＳ７１２において通知されるスプーラ３０２からのジョブ終了通知であるか否かを判定する。
【０１６４】
スプーラ３０２からのジョブ終了通知であると判定された場合、前述のステップＳ８０６へ処理が進む。以降の処理内容については、上記説明と重複するので省略する。
【０１６５】
一方、スプーラ３０２からのジョブ終了通知ではないと判定された場合、ステップＳ８１０へ処理が進み、スプールファイルマネージャ３０４は、上記進捗通知がデスプーラ３０５からの１物理ページの印刷終了通知であるか否かを判定する。
【０１６６】
ステップＳ８１０で、１物理ページの印刷終了通知であると判定された場合、ステップＳ８１１に処理が進む。そして、ステップＳ８１１で、スプールファイルマネージャ３０４は、ステップＳ８０３でスプールファイル３０３から読み込んだ加工設定に対する印刷が全て終了したか否かを判定する。上記加工設定に対する印刷が全て終了した場合、スプールファイルマネージャ３０４は、ステップＳ８１２へ処理を進め、デスプーラ３０５に印刷終了の通知を行う。
【０１６７】
一方、ステップＳ８１１にて、上記加工設定に対する印刷がまだ終了していないと判断された場合、前述のステップＳ８０６へ進む。
【０１６８】
本実施形態におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数ごとを想定している。また、ステップＳ８０８では、１物理ページの印刷処理を行うのに必要な情報をジョブ出力用設定ファイルに逐次格納し、再利用可能な形式にしている。しかし、再利用不要な場合には、共有メモリ等の高速な媒体を使用し、１物理ページ単位で該媒体に次々と上書きし、速度とリソースを節約するような実施形態であってもよい。また、デスプーラ３０５の進捗よりもスプーラ３０２の進捗の方が早い場合や、スプーラ３０２による処理終了後からデスプーラ３０５による処理が開始されるような場合、上述した処理とは異なる処理を行ってもよい。すなわち、スプールファイルマネージャ３０４は、ステップＳ８０８で１物理ページ毎にページ印刷可能を通知せずに、デスプーラ３０５側の進捗に応じた通知を行ってもよい。例えば、スプールファイルマネージャ３０４は、複数物理ページまたは全物理ページが印刷可能になったことを通知すれば、通知回数を節約することが可能である。
【０１６９】
ここで、ステップＳ８１０に戻って説明する。
【０１７０】
上記進捗通知がデスプーラ３０５からの１物理ページの印刷終了通知ではないと判定された場合、ステップＳ８１３へ処理が進む。ステップＳ８１３では、スプールファイルマネージャ３０４は、デスプーラ３０５からの印刷終了通知か否かを判定する。
【０１７１】
一方、上記進捗通知がデスプーラ３０５からの印刷終了通知であると判定された場合、ステップＳ８１４へ処理が進む。その後、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイル（ＰＤＦ）の削除を行い、処理を終える。
【０１７２】
一方、デスプーラ３０５からの印刷終了通知でなかった場合はステップＳ８１５へ進み、スプールファイルマネージャ３０４は、エラー処理を実行する。その後、その他の処理（図示せず）を実行し、次の通知を待つ。
【０１７３】
＜スプールファイルの出力＞
図９は、デスプーラ３０５により実行される、印刷命令の生成プロセスの詳細を示すフローチャートである。
【０１７４】
デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報（ページ描画ファイル（ＰＤＦ）、およびジョブ設定ファイル（ＳＤＦ））を読み出して印刷命令を生成する。生成された印刷命令をプリンタ１５００まで送信する方法については図３を用いて前述した通りである。
【０１７５】
印刷命令の生成では、まず、ステップＳ９０１において、前述のスプールファイルマネージャ３０４からの通知がデスプーラ３０５に入力される。
【０１７６】
続くステップＳ９０２では、デスプーラ３０５は、該入力された通知がジョブの終了通知か否かを判定し、ジョブ終了通知であると判定された場合は、ステップＳ９０３へ処理が進む。ステップＳ９０３では、デスプーラ３０５は、ＲＡＭ２（または、外部メモリ１１）上に終了フラグを立てる。その後、ステップＳ９０５へ処理が進む。
【０１７７】
一方、ステップＳ９０２において上記入力された通知がジョブ終了通知でないと判定された場合は、ステップＳ９０４に処理が進む。ステップＳ９０４では、デスプーラ３０５は、上記入力された通知が前述のステップＳ８０８においてスプールファイルマネージャ３０４から通知された１物理ページの印刷開始要求であるか否かを判定する。
【０１７８】
ステップＳ９０４において印刷開始要求でないと判定された場合は、ステップＳ９１０へ処理が進み、デスプーラ３０５は、その他エラー処理を行い、ステップＳ９０１へ戻って次の通知を待つ。
【０１７９】
一方、ステップＳ９０４において１物理ページの印刷開始要求であると判定された場合はステップＳ９０５へ処理が進み、デスプーラ３０５はステップＳ９０４で通知を受けた印刷処理可能な物理ページのＩＤを図１０に示すジョブ出力用設定ファイルに格納する。ジョブ出力用設定ファイルについては、図１０の説明において詳述する。
【０１８０】
続くステップＳ９０６では、デスプーラ３０５は、ステップＳ９０５で格納した物理ページＩＤの全てのページに関して印刷処理が済んでいるのか否かを判定する。全物理ページの処理が済んでいると判定された場合は、ステップＳ９０７へ処理が進み、デスプーラ３０５は、上記終了フラグが立てられているのか否かを判定する。
【０１８１】
ステップＳ９０７で、上記終了フラグが立っていると判定された場合は、ジョブの印刷が終了したとみなし、デスプーラ３０５は、処理終了の通知をスプールファイルマネージャ３０４に通知し、処理を終える。
【０１８２】
一方、ステップＳ９０７で、終了フラグが立っていないと判定された場合は、ステップＳ９０１へ戻り次の通知を待つ。
【０１８３】
また、ステップＳ９０６で、印刷可能な物理ページが残っていると判定された場合には、ステップＳ９０８へ処理が進む。
【０１８４】
ステップＳ９０８では、デスプーラ３０５は、上記格納された物理ページＩＤから未処理の物理ページＩＤを順に読み出す。そして、デスプーラ３０５は、読み出した物理ページＩＤに対応する物理ページの印刷命令の生成に必要な情報を読み込み、印刷処理を行う。該印刷処理では、デスプーラ３０５は、スプールファイル３０３に格納された印刷要求命令をグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、送信する。
【０１８５】
本実施形態のような、複数論理ページを１物理ページにレイアウトするような加工設定（以下、Ｎページ印刷）については、ステップＳ９０８で縮小配置を考慮にいれながら変換する。
【０１８６】
必要な印刷処理を終えた場合、デスプーラ３０５は、続くステップＳ９０９において１物理ページの印刷命令生成終了の通知をスプールファイルマネージャ３０４に対して行う。その後、再びステップＳ９０６へ戻り、ステップＳ９０５で格納した印刷可能な物理ページＩＤ全てについて印刷処理を行うまで上記処理を繰り返す。
【０１８７】
以上が、ディスパッチャ３０１、スプーラ３０２、スプールファイルマネージャ３０４、およびデスプーラ３０５を用いた印刷処理の流れである。
【０１８８】
上記処理をすることにより、スプーラ３０２がページ描画ファイル（ＰＤＦ）を生成してスプールファイル３０３に格納するタイミングでアプリケーション２０１が印刷処理から開放されるので、プリンタドライバ２０３に直接出力するよりも短時間で済む。
【０１８９】
また、スプールファイル３０３に、プリンタドライバ２０３の印刷設定を踏まえた中間ファイル（ページ描画ファイル（ＰＤＦ）、ジョブ設定ファイル（ＳＤＦ））として一時的に格納される。そのため、実際の印刷イメージをプレビューでユーザに認識させることや、複数のアプリケーションで生成した印刷ジョブの結合や並べ替えが可能となる。また、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることが可能となる。
【０１９０】
ここで、ジョブ出力用設定ファイルについて説明する。
【０１９１】
ジョブ出力用設定ファイルは、スプーラ３０２を用いた印刷処理において、デスプーラ３０５からグラフィックエンジン２０２への印刷要求時に生成されるが、プレビューやジョブ結合等を行う場合にも生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイル（ＳＤＦ）と同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成される。
【０１９２】
＜ジョブ出力用設定ファイルの構成＞
図１０は、ステップＳ８０８において、スプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を格納するジョブ出力用設定ファイルの例を示す。
【０１９３】
フィールド１００１は、ジョブを識別するためのＩＤが格納される。なお、本情報を格納するファイル名や共有メモリの名称という形で格納することも可能である。
【０１９４】
フィールド１００２は、ジョブ設定情報が格納される。ジョブ設定情報には、１つのジョブに対して１つしか設定できない情報が含まれる。例えば、グラフィックエンジン２０２に対してジョブの印刷を開始するために必要な構造体、カラーモードの指定、Ｎページ印刷の指定、ページ枠などの追加描画の指定、部数、ステイプルなどのフィニッシング指定等である。フィールド１００２のジョブ設定情報には、ジョブに対する機能に応じて必要なだけ情報が格納される。
【０１９５】
フィールド１００３は、ジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が格納されていることを示す。これ以降、フィールド１００４から最後までフィールド１００３の数だけ物理ページ情報が格納される。すなわち、フィールド１００３に格納される物理ページ情報の数に従ってフィールド１００４以降の数は決定される。例えば、フィールド１００３に、ジョブの物理ページ数が「４」という情報が格納されている場合、フィールドは４つ必要であるので、最後の物理ページである四つ目の物理ページ情報は、フィールド１００７に格納される。
【０１９６】
なお、本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールドはなくても動作可能である。
【０１９７】
物理ページ情報については図１２を参照して後述する。
【０１９８】
＜ジョブ設定情報の構成＞
図１１は、図１０のフィールド１００２に示されたジョブ設定情報の一例を示す。
【０１９９】
フィールド１１０１は、全物理ページ数である。一方、フィールド１１０２は、全論理ページ数である。フィールド１１０１、およびフィールド１１０２は、印刷命令にページ数などを付加情報として追加して印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値を有するか、または、印刷が終了するまでスプールファイルマネージャ３０４は印刷可能な物理ページの情報の作成を延期する。
【０２００】
フィールド１１０３は、本印刷ジョブを何部印刷するかを指定する部数情報が格納されるフィールドである。
【０２０１】
フィールド１１０４は、フィールド１１０３で複数部印刷する設定がされている場合、部単位で印刷するか否かを指定するフィールドである。
【０２０２】
フィールド１１０５は、ステイプル、パンチ、Ｚ折などのフィニッシング情報が格納されるフィールドであり、プリンタ本体、または外部にフィニッシャーがある場合に指定される。
【０２０３】
フィールド１１０６は、付加印刷情報、すなわち、本発明のスタンプ画像データの印刷を始めとして、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数等、ジョブに対して付加する情報等が格納されるフィールドである。機能が増えるに従って、本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を格納するフィールドが追加される。
【０２０４】
＜物理ページ情報＞
図１２は、図１０のフィールド１００４に示された物理ページ情報の一例を示す。
【０２０５】
フィールド１２０１は、物理ページ番号が格納されるフィールドであり、該物理ページ番号は、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。
【０２０６】
フィールド１２０２は、物理ページ設定情報が格納されるフィールドであり、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合には、レイアウトやカラー・モノクロの設定情報が格納される。
【０２０７】
フィールド１２０３は、本物理ページに割り付けられる論理ページ数が格納されるフィールドであり、１物理ページに４ページを割り付ける場合には４、または４ページ印刷を示すＩＤが格納される。
【０２０８】
フィールド１２０４以降は、フィールド１２０３で指定された数だけ論理ページの情報が格納されるフィールドである。アプリケーション２０１から印刷されたページ数によっては、フィールド１２０３で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータ（例えば、ＮＵＬＬ値）を格納して対応する。
【０２０９】
図１３は、フィールド１２０２の物理ページ設定情報の一例を示す図である。
【０２１０】
フィールド１３０１は、物理ページ上への論理ページの配置順が格納されるフィールドであり、例えば、Ｎページ印刷で、物理ページ上に論理ページを配置する順番（左上から横へ、左上から下へ等）の指定が格納されている。なお、システムによっては、配置順ではなく、フィールド１２０４以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することでフィールド１３０１の設定を代用することも可能である。
【０２１１】
フィールド１３０２は、両面印刷の表・裏の情報が格納されるフィールドであり、例えば、綴じ代を表裏でそろえる際に使用される。
【０２１２】
フィールド１３０３は、カラーページかモノクロページかの指定を示すフィールドであり、フィールド１３０３を使用して物理ページ単位にカラー／モノクロのモード指定をすることができる。
【０２１３】
フィールド１３０４は、付加印刷情報が格納されるフィールドであり、物理ページに対してページ数や日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
【０２１４】
図１４は、フィールド１２０４で示された論理ページ情報の一例を示す図である。
【０２１５】
フィールド１４０１は、論理ページ識別ＩＤが格納されるフィールドであり、論理ページ識別ＩＤを利用して、スプールファイル３０３から論理ページに対応するページ描画ファイル（ＰＤＦ）の中間コードを参照することができる。なお、論理ページ識別ＩＤを利用して論理ページに対応するページ描画ファイル（ＰＤＦ）の中間コードへアクセス可能であれば良い。このため、フィールド１４０１には、ファイルやメモリのポインタが入っていてもよく、または論理ページを構成する中間コード自身が入っていてもよい。
【０２１６】
フィールド１４０２は、論理ページ番号が格納されるフィールドであり、論理ページ番号を付加情報として印刷する場合や、論理ページＩＤの補助情報に使用される。
【０２１７】
フィールド１４０３は、フォーマット情報が格納されるフィールドであり、論理ページ単位で指定可能である各種設定項目が格納される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が格納される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を格納することもできる。なお、論理ページ単位で設定を切りかえるシステム、または論理ページ単位での属性情報が不要なシステムでは、フィールド１４０３は不要である。
【０２１８】
図１０乃至図１４を参照して説明したように、ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイル（ＳＤＦ）もほぼ同様の構成であり、印刷体裁（片面、両面、製本印刷）、印刷レイアウト（Ｎｕｐ、ポスター印刷）、付加情報（地紋プリント情報、スタンプ、日付、ユーザ名など）、部数、用紙サイズ情報を有する。また、ジョブ設定ファイル（ＳＤＦ）は、物理ページ毎に論理ページの配置順、両面印刷の表面／裏面、カラーモード等を有して構成されている。
【０２１９】
図３に戻って説明すると、図３は、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ３０７を配した例を示している。本実施形態ではジョブの設定内容は、単体ジョブの場合は、ジョブ設定ファイル（ＳＤＦ）に含まれており、一方、結合ジョブの場合は、図１０に示すジョブ出力用設定ファイル中に含まれている。つまり、ジョブの設定内容は、中間コードであるページ描画ファイルを格納するスプールファイル３０３とは独立している。
【０２２０】
このため、ジョブ出力用設定ファイルを作り変えることでジョブの設定変更が可能である。設定変更エディタ３０７は、単独で、またはスプールファイルマネージャ３０４と連携してジョブ出力用設定ファイルを作り変え、若しくは、一部を書き換えることでジョブの設定変更機能を実現している。
【０２２１】
＜スタンプ画像データ設定＞
図１５は、スプールファイルマネージャ３０４が、スタンプ画像データを原稿画像データに合成するフローチャートを示す。スプールファイルマネージャ３０４は、ＲＡＭ２に展開され、ＣＰＵ１によって実行される。
【０２２２】
ステップＳ１５０１で、スプールファイルマネージャ３０４は、ステップＳ８０３で読み込んだ加工設定にスタンプ印刷の指定があるか否かを判定する。指定があると判定された場合は、ステップＳ１５０２へ処理が進み、逆に、指定がないと判定された場合は、ステップＳ１５０５へ処理が進む。
【０２２３】
ステップＳ１５０２で、スプールファイルマネージャ３０４内の符号化画像検知部３０８は、原稿画像データの符号化画像データを復号（デコード）し、原稿画像データに符号化画像データが含まれるか否かを検知する。そして、このステップＳ１５０２で符号化画像データが含まれていないと判定された場合には、ステップＳ１５０４に移行して、上記符号化画像データを含まない原稿画像データとスタンプとを合成する。一方、ステップＳ１５０２で符号化画像データが含まれていると判定された場合には、ステップＳ１５０３に移行する。
【０２２４】
ステップＳ１５０３では、符号化画像検知部３０８は、検知された符号化画像データの描画位置を取得し、該取得された描画位置をＲＡＭ２に格納する。これと共に、スプールファイルマネージャ３０４は、上記加工設定に含まれるスタンプ画像データの描画位置を取得し、該取得された描画位置をＲＡＭ２に格納する。スプールファイルマネージャ３０４は、ＲＡＭ２に格納された符号化画像データの描画位置とスタンプ画像データの描画位置とに重複領域があるか、即ち、符号化画像データとスタンプ画像データとが重複するか否かを判定する。このステップＳ１５０３で、符号化画像検知部３０８が符号化画像データとスタンプ画像データとが重複しないと判定する場合、ステップＳ１５０４に処理が移行し、スタンプ画像データと符号化画像データを含む原稿画像データとを併せて印刷データとしてプリンタに送信する。即ち、スタンプ画像データと原稿画像データとがプリンタで合成されるように、これらのスタンプ画像データと原稿画像データとを印刷データとしてプリンタに送信する。その後、プリンタは、印刷データとして受け取った原稿画像データとスタンプ画像データとを合成してシート上に形成する。一方、ステップＳ１５０３で、符号化画像検知部３０８が符号化画像データとスタンプ画像データとが重複していると判定する場合は、ステップＳ１５０６に処理が進み、印刷を中断する処理（ユーザに対して印刷を中断する旨の通知）を行い、プリンタに対しては印刷データを送らない。
【０２２５】
（第２の実施形態）
第１の実施形態と第２の実施形態とでは、上記図１５のフローチャートにおけるステップＳ１５０６での処理が異なっている。そのため、このステップＳ１５０６について説明する。
【０２２６】
ステップＳ１５０３において、符号化画像検知部３０８が、符号化画像データが重複していると判定した場合、ステップＳ１５０６に移行する。このステップＳ１５０６では、符号化画像データが存在する旨をアプリケーション２０１のユーザインターフェースなどを使用してユーザに対して通知し、さらに、原稿画像データのみを印刷データとしてプリンタに送信する。この際、原稿画像データのみを印刷データとして送信し、符号化画像データは送信しないため、プリンタは原稿画像データのみをシート上に形成することになる。
【０２２７】
このため、スタンプ画像データが符号化画像データ上に合成されることがなく、従って、符号化画像データを破損させずに印刷データとしてプリンタに送信することが可能となり、さらに、ユーザもスタンプ画像データを合成しないことを該通知によって知ることができる。
【０２２８】
なお、本実施形態では、通知をし、スタンプ画像データを合成せずに印刷処理を行う実施形態について説明したが、通知をして印刷処理を中止する実施形態であっても構わない。
【０２２９】
（第３の実施形態）
図１７は、スタンプ画像データ設定における実施形態を説明する。図１７は、符号化画像データとスタンプ画像データとを合成した場合の処理のイメージを視覚的に示した図であり、スタンプ画像データをずらした場合にスタンプ画像データが原稿画像データからサイズ的にはみ出る場合の処理を示した図である。
【０２３０】
符号１７０１は、符号化画像データが存在する原稿画像データであり、符号１７０２は、スタンプ画像データである。符号１７０１の原稿画像データに符号１７０２のスタンプ画像データをそのまま合成すると符号１７０３の描画データのようにスタンプ画像データと符号化画像データとが重複してしまう。
【０２３１】
その場合、符号１７０４のようにスタンプ画像データを原稿画像データ上で符号化画像データが描画されている領域から符号化画像データ以外の領域が最も広い方向に、重複しない距離にずらした場所にスタンプ画像データを描画する。しかし、符号１７０４に示すようにスタンプ画像データを描画可能な領域がない（スタンプ画像データが原稿画像データからはみ出してしまう）場合も発生する。このような場合は、加工設定で初めに指定された描画位置でスタンプ画像データのサイズをＮ％縮小し、符号１７０５に示すように、それぞれの画像データが重複しないサイズまでスタンプ画像データを縮小する。
【０２３２】
なお、本実施形態の目的とするのは、スタンプ画像データを合成する際に、符号化画像データを破損しないことにある。そのため、符号１７０３のようにスタンプ画像データと符号化画像データが重複する場合に、ユーザインターフェースを利用してユーザに警告表示を通知し、スタンプ画像の設定を再度行わせるようにしても構わない。また、符号１７０３のようにスタンプ画像データと符号化画像データが重複する場合に、ユーザインターフェースを利用してユーザに警告表示を通知し、印刷処理を中止させるようにしても構わない。
【０２３３】
図１８は、図１７で図示したスタンプ画像データ設定の実施形態を説明するフローチャートであり、スプールファイルマネージャ３０４がスタンプ画像データを原稿画像データに合成するフローチャートである。なお、スプールファイルマネージャ３０４は、ＲＡＭ２に展開され、ＣＰＵ１によって実行される。
【０２３４】
ステップＳ１８０１で、スプールファイルマネージャ３０４は、ステップＳ８０３で読み込んだ加工設定にスタンプ画像データの印刷指定があるか否かを判定する。スタンプ画像データの印刷指定があると判定された場合は、ステップＳ１８０２へ処理が進み、一方、指定がないと判定された場合は、処理を終了する。
【０２３５】
ステップＳ１８０２で、スプールファイルマネージャ３０４内の符号化画像検知部３０８は、原稿画像データに符号化画像データが含まれるか否かを検知する。
【０２３６】
ステップＳ１８０３で、符号化画像データありと判定された場合は、ステップＳ１８０４へ処理が進み、一方、符号化画像データなしと判定された場合は、処理が終了する。
【０２３７】
ステップＳ１８０４で、符号化画像検知部３０８が原稿画像データの符号化画像データを復号（デコード）し、符号化画像データの描画位置を検知する。
【０２３８】
ステップＳ１８０５で、スプールファイルマネージャ３０４は、上記加工設定からスタンプ画像データの描画位置を取得する。
【０２３９】
ステップＳ１８０６で、スプールファイルマネージャ３０４内のスタンプ画像処理部３０９が符号化画像データの描画位置とスタンプ画像データの描画位置とが重複するか否かを判定する。
【０２４０】
ステップＳ１８０６で、描画位置が重複すると判断した場合は、ステップＳ１８０７に処理が進み、一方、描画位置が重複しないと判断した場合は、処理が終了する。
【０２４１】
ステップＳ１８０７で、スタンプ画像処理部３０９は、スタンプ画像データを原稿画像データ上で符号化画像データが描画されている領域から符号化画像データ以外の領域が最も広い方向に、重複しない距離にずらす処理を行う。
【０２４２】
ステップＳ１８０８で、スタンプ画像データをずらした描画位置が原稿画像データの示す領域内に収まるか否か（すなわち、原稿画像データからはみ出るか否か）を判定する。この判定の結果、図１６の符号１６０４に示すように収まる場合には印刷を実行して処理を終了し、一方、収まらない場合は、ステップＳ１８０９に処理が進む。
【０２４３】
ステップＳ１８０９で、上記加工設定から初めに取得した描画位置をベースとして、スタンプ画像データの大きさをＮ％縮小し、符号化画像データの描画位置とスタンプ画像データの描画位置とが重複しない大きさになるまでスタンプ画像データを縮小する。なお、このＮ％という数値は予め所定の数値を決めておき、上記縮小処理を行った後、再びステップＳ１８０８に戻り、上記判定をした上で、再びステップＳ１８０９での処理を行うこととしてもよい。
【０２４４】
以上の処理が終了すると、縮小された（又は、図１６に示すように縮小されなかった）スタンプと、符号化画像データを含む原稿画像データとを併せて印刷データとしてプリンタに送信する。即ち、スタンプと原稿画像データとがプリンタで合成されるように、スタンプと原稿画像データとを印刷データとしてプリンタに送信する。プリンタは、このスタンプと原稿画像データとを合成してシート上に形成する。
【０２４５】
（その他の実施形態）
さらに、本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）を含むシステムに適用することも、１つの機器からなる装置（画像形成装置、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０２４６】
また、本発明の目的は、上述の実施形態で示したフローチャートの手順を実現するプログラムを格納した記憶媒体から、システムまたは装置のコンピュータ（または、ＣＰＵやＭＰＵ）が、そのプログラムを読み出し、実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになる。そのため、このプログラム、およびプログラムを格納した記憶媒体も本発明の一つを構成することになる。
【０２４７】
プログラムを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２４８】
コンピュータが読み出したプログラムを実行することにより、上述した実施形態の機能が実現される。加えて、そのプログラムの指示に基づきコンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【０２４９】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる場合も可能である。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【０２５０】
【図１】本発明の一実施形態にかかるプリンタ制御システムの構成を示すブロック図である。
【図２】本発明の一実施形態にかかるホストコンピュータにおける印刷処理のための構成の一例を示すブロック図である。
【図３】図２に示した構成を拡張した一例を示すブロック図である。
【図４】本発明の一実施形態にかかる符号化画像データを作成するアプリケーションの構成を示すブロック図である。
【図５】本発明の一実施形態にかかる符号化画像データを作成するアプリケーションのユーザインターフェースの一例を示す図である。
【図６】本発明の一実施形態にかかるスタンプ画像データを指定することができるプリンタドライバのユーザインターフェースの一例を示す図である。
【図７】本発明の一実施形態にかかるスプールファイルの生成方法を示すフローチャートである。
【図８】本発明の一実施形態にかかるスプールファイルマネージャによる印刷制御、および物理ページ番号の決定処理の一例を示すフローチャートである。
【図９】本発明の一実施形態にかかるデスプーラにおける処理の一例を示すフローチャートである。
【図１０】本発明の一実施形態にかかるジョブ出力用設定ファイルの一例を示す図である。
【図１１】図１０で示されたジョブ設定情報の一例を示す図である。
【図１２】図１０で示された物理ページ情報の一例を示す図である。
【図１３】図１２で示された物理ページ設定情報の一例を示す図である。
【図１４】図１２で示された論理ページ情報の一例を示す図である。
【図１５】本発明の一実施形態にかかるスプールファイルマネージャによる、スタンプ画像データを原稿画像データに合成するフローチャートである。
【図１６】本発明の一実施形態にかかるスタンプ画像データを原稿画像データに合成する例を示す図である。
【図１７】本発明の一実施形態にかかるスタンプ画像データを縮小して原稿画像データに合成する処理を示す図である。
【図１８】図１７で図示したスタンプ画像データを縮小して原稿画像データに合成する処理のフローチャートである。
【符号の説明】
【０２５１】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  キーボードコントローラ（ＫＢＣ）
６  ＣＲＴコントローラ（ＣＲＴＣ）
７  ディスクコントローラ（ＤＫＣ）
８  プリンタコントローラ（ＰＲＴＣ）
９  キーボード（ＫＢ）
１０  ＣＲＴディスプレイ（ＣＲＴ）
１１  外部メモリ
１２  ＣＰＵ
１３  ＲＯＭ
１４  外部メモリ
１５  システムバス
１６  印刷部インターフェース（Ｉ／Ｆ）
１７  印刷部（プリンタエンジン）
１８  入力部
１９  ＲＡＭ
２０  メモリコントローラ（ＭＣ）
２１  双方向性インターフェース
１０００、２０００  制御部
１５００  プリンタ
１５０１  操作部
３０００  ホストコンピュータ
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
３０１  ディスパッチャ
３０２  スプーラ
３０３  スプールファイル
３０４  スプールファイルマネージャ
３０５  デスプーラ
３０６  プレビューア
３０７  設定変更エディタ
３０８  符号化画像検知部
３０９  スタンプ画像処理部
４０１  アプリケーション制御部
４０２  ドライバ呼び出し部
４０３  符号画像生成部
４０４  符号画像合成部
４０５  印刷ファイル読み込み部
４０６  符号化データファイル読み込み部
４０７  ファイルＩ／Ｏ部
【図１】
2008123345.tif 000003
【図２】
2008123345.tif 000004
【図３】
2008123345.tif 000005
【図４】
2008123345.tif 000006
【図５】
2008123345.tif 000007
【図６】
2008123345.tif 000008
【図７】
2008123345.tif 000009
【図８】
2008123345.tif 000010
【図９】
2008123345.tif 000011
【図１０】
2008123345.tif 000012
【図１１】
2008123345.tif 000013
【図１２】
2008123345.tif 000014
【図１３】
2008123345.tif 000015
【図１４】
2008123345.tif 000016
【図１５】
2008123345.tif 000017
【図１６】
2008123345.tif 000018
【図１７】
2008123345.tif 000019
【図１８】
2008123345.tif 000020