(57)【要約】【課題】  簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成することである。【解決手段】  プリンタドライバは、アプリケーションより印刷データを受け取ったら、レイアウタとして機能するＬＦが面付け処理を行った後、自動オーバレイ印刷に設定されているとＯＦが判断した場合は、ＯＦが印刷データの文書構造を後述のように再構成する（S６０１〜S６１６）。そして、再構成された印刷データを対象にＲＦが印刷処理を行うことを特徴とする。【選択図】  図６
2010033360.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、
前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、
前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記再構成手段は、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記再構成手段は、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記再構成手段は、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項１記載の情報処理装置。
【請求項６】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置におけるジョブ処理方法であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示ステップと、
前記指示ステップでオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成ステップと、
前記再構成ステップにより再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成ステップにより再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成ステップと、
を備えることを特徴とするジョブ処理方法。
【請求項７】
前記再構成ステップは、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項６記載のジョブ処理方法。
【請求項８】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項６記載のジョブ処理方法。
【請求項９】
前記再構成ステップは、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項６記載のジョブ処理方法。
【請求項１０】
前記再構成ステップは、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項６記載のジョブ処理方法。
【請求項１１】
請求項６〜１０のいずれか１項に記載のジョブ処理方法をコンピュータに実行させるプログラムを記憶媒体に記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１２】
請求項６〜１０のいずれか１項に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォーム登録およびオーバレイ印刷機能を搭載している印刷制御装置にジョブを出力する情報処理装置に関するものである。
【背景技術】
【０００２】
近年、印刷速度向上、ホストからプリンタへの転送トラフィックの低減を目的として、フォーム登録およびオーバレイ印刷機能を搭載したプリンタ及びこの種の機能を制御するプリンタドライバが開発されている。
【０００３】
しかし、ワードプロセッサや表計算ソフトウエアなど汎用アプリケーションからはフォーム登録およびオーバレイ印刷機能に対する使い勝手が良くないため、あまり活用されていない。
【０００４】
例えば、汎用アプリケーションでオーバレイ印刷を行う場合、テンプレート文書を作成して、フォーム登録印刷を行い、別途テンプレートを除いた文書を作って、登録したフォームを指定してオーバレイ印刷という手順が必要である。
【０００５】
ところが、テンプレートを除いた文書の場合、アプリケーションの表示で内容が分かりにくいことと、テンプレートと対で保管する必要があり管理が面倒である。
【０００６】
そのため、テンプレートに必要事項を追加して一体化した文書を作って通常の印刷をすることが多い。また、テンプレートが特に作成されておらず、既存の文書を複製、変更して文書を作る場合も多い。その結果、フォーム登録およびオーバレイ印刷があまり使われていない。
【０００７】
下記特許文献1には、描画命令と共にフォーム作成指令が出力されると、フォームを構成するものとしてあらかじめ指定された属性の命令を描画命令から抽出してフォーム登録データとして印刷装置へ転送することが記載されている。
【０００８】
また、下記特許文献１には、描画命令と共にオーバレイ印刷指令が出力されると、本文としてあらかじめ指定された属性の命令を描画命令から抽出して印刷データとして印刷装置へ転送することが記載されている。
【０００９】
このように特許文献１には、ユーザが容易にフォーム登録もしくはオーバレイ印刷を実行する技術が公開されている。
【特許文献１】特開平１０−２４４７２７公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、この特許文献１に開示される技術では、フォームと本文とで属性を違えて文書を作成する必要がある。そのため、文書の表現力が制限されてしまう。また、文書作成時に、フォームと本文との属性を常に留意しなければならないという課題があった。
【００１１】
更に、ユーザはフォーム登録かオーバレイ印刷かどちらか一方を指定して印刷を行う必要があり、ユーザの行う操作が面倒になるという課題もあった。
【００１２】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる仕組みを提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００１４】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる。
【発明を実施するための最良の形態】
【００１６】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１７】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。本実施形態は、オペレーティングシステムとして、マイクロソフト社のWindows（登録商標） Vistaに新規に搭載されたＸＰＳプリンティングシステムを例とする。以下、上記ＸＰＳプリンティングシステムを用いて、汎用のアプリケーションが出力した文書情報からプリンタドライバがフォーム登録ジョブと、オーバレイジョブとを自動的に生成してプリンタに出力するジョブ処理例を詳述する。本実施形態では、文書情報がXPSデータである場合を示す。
【００１８】
なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【００１９】
図１において、ホストコンピュータ３００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備える。
【００２０】
更に、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）等を記憶する。本実施形態では、上述の通り、マイクロソフト社のWindows（登録商標） Vistaを例とする。
【００２１】
ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶する。ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。
【００２２】
２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードＩ／Ｆで、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。
【００２３】
６はディスプレイＩ／Ｆで、ディスプレイ１０の表示を制御する。７は外部メモリＩ／Ｆで、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。外部メモリ１１にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述する図２に示すモジュールを備えるプリンタドライバ等が記憶される。
【００２４】
８はプリンタＩ／Ｆで、所定の双方向性のインタフェース２２を介してプリンタ１５０に接続されて、プリンタ１５０との通信制御処理を実行する。
【００２５】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧを可能としている。
【００２６】
また、ＣＰＵ１は、ディスプレイ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはアプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ１０上で開き、プリンタ１５０の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。なお、プリンタドライバが提供するユーザインタフェースには、図５に示すオーバレイ設定画面が含まれる。
【００２７】
プリンタ１５０において、１２はプリンタＣＰＵ（ＣＰＵ）である。ＣＰＵ１２は、ＲＯＭ１４のプログラム用ＲＯＭあるいは外部メモリ２１に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部Ｉ／Ｆ１７を介して印刷部（プリンタエンジン）１９に出力情報としての画像信号を出力する。
【００２８】
また、このＲＯＭ１４のプログラムＲＯＭにはＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１４のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶する。
【００２９】
さらに、ＲＯＭ１４のデータ用ＲＯＭには、ハードディスク等の外部メモリ２１を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶する。
【００３０】
ＣＰＵ１２は、入力部１６を介してホストコンピュータ３００との通信処理が双方向に可能となっており、プリンタ１５０内の情報等をホストコンピュータ３００に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。
【００３１】
ＲＡＭ１３は、ＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３２】
なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、外部メモリＩ／Ｆ１８によりアクセスが制御される。
【００３３】
外部メモリ２１は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【００３４】
なお、外部メモリ２１は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【００３５】
さらに、図示しないＮＶＲＡＭを有し、操作部２０からのプリンタモード設定情報を記憶するようにしてもよい。ＲＡＭ１３もしくは外部メモリ２１には、ホストコンピュータ３００から送信されたフォームデータを格納することが可能であり、オーバレイ印刷の場合には印刷設定で指定されたフォームデータを取り出して、重ねて印刷する。操作部２０は、操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００３６】
＜ホストコンピュータ３００における印刷処理の詳細説明＞
図２は、図１に示したホストコンピュータ３００における印刷処理のための構成の一例を示す図である。本実施形態では、後述するモジュールをＣＰＵ１が実行することで各種の印刷処理を行う例である。なお、図１と同一のものには同一の符号を付している。
【００３７】
図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。
【００３８】
これらは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされて、ＣＰＵ１により実行されるプログラムモジュールとして構成されている。
【００３９】
また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや、不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して、外部メモリ１１として機能するハードディスク（ＨＤ）に保存することが可能となっている。そして、外部メモリ１１に保存されているアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１で実行される。なお、アプリケーション２０１およびプリンタドライバ２０３は、ネットワークを介してサーバ装置からホストコンピュータ３００にダウンロードした後、外部メモリ１１にインストールされる場合もある。
【００４０】
このアプリケーション２０１からプリンタ１５０に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００４１】
グラフィックエンジン２０２は、プリンタ１５０に対して用意されたプリンタドライバ２０３を外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。
【００４２】
また、グラフィックエンジン２０２は、アプリケーション２０１から印刷設定もしくは印刷用データを受け取り、プリンタドライバ２０３へ印刷データとして出力する。
【００４３】
プリンタドライバ２０３のグラフィックコンポーネント２０５はグラフィックエンジン２０２から印刷データを受取り、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）データに変換する。
【００４４】
このようにして、グラフィックコンポーネント２０５により変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、図１に示したインタフェース２２を介してプリンタ１５０へ印刷データとして出力される仕組みとなっている。
【００４５】
プリンタドライバ２０３のＵＩコンポーネント２０６は、グラフィックエンジン２０２から印刷設定を受取り、印刷設定を表示、変更などを行いグラフィックエンジン２０２を通してアプリケーション２０１に通知する。
【００４６】
＜ＸＰＳデータ＞
ＯＳ、例えばマイクロソフト社製Windows（登録商標） Vistaに新規に搭載されたＸＰＳプリンティングシステムでは、プリンタドライバ２０３がＸＰＳデータを印刷データとして受け取る。ＸＰＳデータは、文書情報としての利用も可能なＸＭＬベースのデータフォーマットである。
【００４７】
ＸＭＬベースのデータフォーマットの文書構造は、各々ジョブ／ドキュメント／ページを表す”Fixed Document Sequence（以下、ＦＤＳ）”、”Fixed Document（以下、ＦＤ）”、"Fixed Page（以下、ＦＰ）"の３階層のツリー構造をとる。
【００４８】
ここで、ＦＰは更に、複数の描画オブジェクトから構成される。ＸＰＳデータでは、Path（図形）、Glyphs（文字）、Canvas（グループ）の３種類の描画オブジェクトがある。
【００４９】
ここで、Canvasは、複数の描画オブジェクトを論理的にまとめるため、或いは、後述のResourceを参照するための親オブジェクトとして用いられる。
【００５０】
上記各描画オブジェクトは、それぞれの描画種類に応じた複数の属性を持っており、描画に影響する属性も、描画に影響しない属性も含まれている。また、必須ではない属性もある。後述するResourceの参照も属性で実現している。
【００５１】
また、ＸＰＳデータはPrint Ticket（以下、ＰＴ）という印刷設定を内部に持つことができる。
【００５２】
ここで、ＧＤＩプリンティングシステムの印刷設定であるＤＥＶＭＯＤＥは、全ての属性を一度に設定し、必要に応じてジョブの途中でＤＥＶＭＯＤＥ全体を切り替えることを特徴とする。これに対し、ＰＴは、ジョブ／ドキュメント／ページの単位で一部の印刷設定のみの指定が可能となることを特徴とする。
【００５３】
更に、複数の描画オブジェクトをまとめて１つのResourceとして定義し、Fixed PageもしくはCanvasから参照することにより描画を共通化することが可能である。Resourceは、Resource Dictionaryに複数定義することが可能で、描画オブジェクト以外にも描画ブラシなども定義可能である。
【００５４】
＜自動オーバレイ印刷の概要説明＞
図３は、本実施形態を示す印刷システムにおける印刷処理の概要を説明する図である。なお、図２と同一のものには同じ符号を付している。
【００５５】
図３において、アプリケーション２０１が同じテンプレートから作成された複数ページの文書を印刷すると、プリンタドライバ２０３がＸＰＳデータ形式の印刷データを受け取り、プリンタ１５０へ出力する。プリンタドライバ２０３にはLayout Filter（ＬＦ）３０１とOverlay Filter（ＯＦ）３０２とRender Filter（ＲＦ）３０３が備わっている。ＬＦ３０１はレイアウタとして機能し、ページの面付けやスタンプ画像の付加など印刷データの加工を行う。
【００５６】
ＯＦ３０２は、文書構造変換部として機能し、印刷データを共通描画ＦＤと差分描画ＦＤから構成されるＸＰＳデータに再構成し、フォーム登録ＰＴもしくはオーバレイ印刷ＰＴを付加する。ＯＦ３０２は、共通描画部分と差分描画部分とで再構成する文書構造変更処理を以下のように行う。ここで、共通描画部分は、元の印刷データから共通するオブジェクトを抽出するため、ページ１とページ２の最下層のオブジェクトから順に比較し、異なるオブジェクトを探し、ページ１で異なるオブジェクトを削除する。そして、以降のページ３〜Ｎについて、同様の処理を行い、図９に示すフォームに対応する共通描画部分ＦＰのみを抽出することができる。なお、ページ２〜Ｎは、フォームＦｏｒｍ１を生成したら削除される。その後、フォーム名がＰＴに設定される。
【００５７】
一方、差分描画部分については、元の印刷データから共通描画部分ＦＰを削除して、図１０に示すように差分描画部分ＦＤを生成する。
【００５８】
ＲＦ３０３は印刷部として機能し、ＰＴが付加されているＸＰＳデータから、プリンタ１５０が受け取ることができるフォーム登録ジョブ、オーバレイ印刷ジョブおよび通常の印刷ジョブを生成して出力する。３０４はフォームデータベースで、ホストコンピュータ３００から受信するフォームデータを記憶する。ここで、フォームデータベース３０４は、プリンタ１５０のＲＡＭ１３の領域、或いは外部メモリ２１の領域に確保される。
【００５９】
＜自動オーバレイ印刷処理の詳細説明＞
次に、プリンタドライバ２０３が印刷データを受け取ったときの処理について図４から図９に示すフローチャートを用いて説明する。
【００６０】
図４は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図１に示したホストコンピュータ３００による印刷データ処理例である。なお、Ｓ４０１〜Ｓ４０３は各ステップを示す。また、各ステップは、図１に示しＣＰＵ１が上述したプリンタドライバ２０３をＲＡＭ２にロードして実行することで実現される。
【００６１】
プリンタドライバ２０３は、アプリケーション２０１より印刷データを受け取ったら、Ｓ４０１で、レイアウタとして機能するＬＦ３０１が面付け処理を行った後、自動オーバレイ印刷に設定されているかをＯＦ３０２が判断する。
【００６２】
ここで、自動オーバレイ印刷に設定されているとＯＦ３０２が判断した場合は、Ｓ４０２で、ＯＦ３０２が印刷データの文書構造を後述のように共通描画部分と差分描画部分とに再構成する。そして、Ｓ４０３で、再構成された印刷データを対象にＲＦ３０３が印刷処理を行い、本処理を終了する。なお、Ｓ４０１で、自動オーバレイ印刷でないとＣＰＵ１が判断した場合は、Ｓ４０３へ進む。
【００６３】
図５は、図３に示したプリンタドライバ２０３によるオーバレイ設定画面の一例を示す図である。なお、本画面は、自動オーバレイ印刷を設定するプリンタドライバの設定画面であり、アプリケーション２０１から印刷要求がなされた場合に、図１に示すディスプレイ１０に表示される。
【００６４】
図５において、１００１は処理方法ラジオボタン部で、４つの異なるオーバレイ印刷処理を選択するためのラジオボタンＲＢ１〜ＲＢ４を備える。ＲＢ１はラジオボタンで、オーバレイ印刷を行わない場合に選択される。
【００６５】
ＲＢ２はラジオボタンで、オーバレイ印刷を行う場合に選択される。ＲＢ３はラジオボタンで、フォームファイルを作成する場合に選択される。ＲＢ４はラジオボタンで、自動でオーバレイ印刷を行う場合に選択される。
【００６６】
１００２はボタン部で、処理の実行を制御するボタンＢＴ１〜ＢＴ４を備えている。ここで、ＢＴ１はＯＫボタンとして機能し、ＢＴ２はキャンセルボタンとして機能し、ＢＴ３は標準に戻すボタンとして機能し、ＢＴ４はヘルプを呼び出すボタンとして機能する。
【００６７】
ここで、ユーザがラジオボタンＲＢ４で「自動でオーバレイ印字を行う」を選択し、ＯＫボタンであるボタンＢＴ１を押すと、図４に示したＳ４０１で、図３に示したプリンタドライバ２０３内のＯＦ３０２が自動オーバレイ印刷の要求がなされていると判断する。
【００６８】
図６は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図３に示したプリンタドライバ２０３内のＯＦ３０２による図４に示しＳ４０２に対応する文書構造変更処理の詳細処理例である。
【００６９】
なお、Ｓ５０１〜Ｓ５０３は各ステップを示す。また、各ステップは、図１に示すＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。
【００７０】
文書構造変換部として機能するＯＦ３０２は、まず、Ｓ５０１で、アプリケーション２０１から受け取るＸＰＳデータ形式の印刷データから共通描画部分を抽出して共通描画部分ＦＰをＲＡＭ２上で生成する。次に、Ｓ５０２で、ＯＦ３０２は、処理の結果、共通描画部分ＦＰがＲＡＭ２上に生成されているかどうかを判断する。ここで、共通描画部分ＦＰが生成されているとＯＦ３０２が判断した場合は、Ｓ５０３で、ＯＦ３０２は、元のＦＤから共通描画部分ＦＰを除いて差分描画部分ＦＤをＲＡＭ２上に生成して、本処理を終了する。なお、Ｓ５０２で、共通描画部分ＦＰが生成されていないとＯＦ３０２が判断した場合は、本処理を終了する。
【００７１】
図７〜図１０は、本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。以下、図４に示したＳ４０２の文書構造変更処理例を説明する。
【００７２】
図７は元の印刷データのＸＰＳデータ構造に対応し、ＦＤ７０１が３つのＦＰ１〜３から構成されている。図８は、ＦＤＳが共通描画Documentと、ＦＤから構成される例である。ここで、ＯＦ３０２は、元のＦＤ７０１を共通描画ＦＤ８０１用にコピーし、３つのＦＰ１〜３を順番に比較し、複数のページから構成される文書情報に対してテンプレート（図９に示すＦｏｒｍ１）とすべき共通描画部分ＦＰを抽出する。なお、ＯＦ３０２が元のＦＤ７０１を共通描画ＦＤ８０１用にコピーする場合には、ＰＴも含めてコピーする。
【００７３】
図９では、ＯＦ３０２が図８に示すようにして抽出された共通描画部分ＦＰ９０２以外のＦＰ（図８に示す例では、ＦＰ２、ＦＰ３）を削除する。そして、ＯＦ３０２は、登録フォーム名称（Ｆｏｒｍ１）を指定するフォーム登録ＰＴを共通描画部分ＦＰ９０２に付加し、共通描画ＦＤ９０１を生成する。
【００７４】
図１０では、ＯＦ３０２が図９に示す元のＦＤ９０３の各ＦＰ１〜３から共通描画部分ＦＰの描画を削除して差分描画部分ＦＰ１１〜１３を生成し、使用した共通描画ページのフォーム名称を、使用するフォーム名称として指定するオーバレイ印刷ＰＴを各差分描画ＦＰ１１〜１３に付加し、差分描画ＦＤ１００２を生成している。
【００７５】
図１１は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図３に示したＯＦ３０２による図６に示すＳ５０１における共通描画ＦＰ生成処理の詳細例である。なお、Ｓ６０１〜Ｓ６１７は各ステップを示す。また、各ステップは、図１に示すＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。
【００７６】
まず、Ｓ６０１で、文書構造変換部として機能するＯＦ３０２は、元のＦＤ７０１を、図８に示すようにＲＡＭ２上でコピーし、共通描画ＦＤ８０１の雛形を生成する。
【００７７】
通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ、フォームに印刷データを正しく重ねて印刷できない。
【００７８】
このため、図４に示したＳ４０３に対応する印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画ＦＤ８０１が差分描画ＦＤより前に読み出されるように配置する。
【００７９】
次に、Ｓ６０２で、ＯＦ３０２は、共通描画ＦＤ８０１の中から、比較するＦＰとして最初のＦＰ１を取得し、Ｓ６０３で、ＯＦ３０２は、次のＦＰを取得する。そして、Ｓ６０４で、最初のＦＰ１と次のＦＰを取得できているかどうかをＯF３０２が判断する。ここで、最初のＦＰ１と次のＦＰを取得できているとＯＦ３０２が判断した場合は、Ｓ６０５、Ｓ６０６で、ＯＦ３０２は、２つのＦＰの次の未処理の描画オブジェクトを取得する。そして、Ｓ６０７で、ＯＦ３０２は、詳細は後述する描画オブジェクトの比較処理を行う。
【００８０】
図１２は、本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。以下、描画オブジェクト比較処理の概要を説明する。
【００８１】
図１２に示す例では、Page1とPageNの２つのＦＰを比較対象としており、最下層から順に描画オブジェクトをＯＦ３０２が比較していく。ここで、描画オブジェクトがResourceを参照している場合は、参照先の比較も再帰的に行う。
【００８２】
そして、Ｓ６０８で、比較対象の描画オブジェクトが一致するかどうかをＯＦ３０２が判断する。ここで、比較対象の描画オブジェクトが一致するとＯＦ３０２が判断した場合は、Ｓ６０９で、２つのＦＰに比較すべき次の描画オブジェクトがあるかどうか、すなわち描画オブジェクトが終了かどうかをＯＦ３０２が判断する。なお、Ｓ６０８で、ＯＦ３０２が一致しないと判断した場合は、Ｓ６１０へ進む。
【００８３】
Ｓ６０９で、描画オブジェクトが終了でないとＯＦ３０２が判断した場合は、どちらかのＦＰの描画オブジェクトがなくなるまでＳ６０５〜Ｓ６０９を繰り返す。
【００８４】
一方、Ｓ６０８で、比較対象の描画オブジェクトが同じでないとＯＦ３０２が判断したか、Ｓ６０９でどちらかのＦＰの描画オブジェクトがなくなったとＯＦ３０２が判断した場合は、Ｓ６１０へ進む。そして、Ｓ６１０で、ＯＦ３０２は、ＦＰ１のそれ以降の描画オブジェクトを削除する（図１２参照）。
【００８５】
そして、Ｓ６１１で、比較すべき次のＦＰがまだあるかどうかをＯＦ３０２が判断する。ここで、比較すべき次のＦＰがまだあるとＯＦ３０２が判断した場合は、Ｓ６０３に戻り、ＦＰ１と他の全てのＦＰを比較するまでＳ６０３〜Ｓ６１１を繰り返す。
【００８６】
一方、Ｓ６１１で、比較すべき次のＦＰがないとＯＦ３０２が判断した場合は、Ｓ６１２へ進む。そして、Ｓ６１２で、２ページ以上のＦＰを処理したかどうかについてＯＦ３０２が判断する。そして、２ページ以上のＦＰを処理したとＯＦ３０２が判断した場合は、Ｓ６１３で、ＦＰ１の描画オブジェクトが空であるかどうかをＯＦ３０２が判断する。
【００８７】
ここで、ＦＰ１の描画オブジェクトが空でないとＯＤ３０２が判断した場合は、ＦＰ１は複数ページの共通描画が抽出されているので、Ｓ６１４へ進む。そして、Ｓ６１４で、ＯＦ３０２は、ＦＰ１以外のＦＰ、ＦＰ２以降のページを削除する。この状態の例を、図９に示す共通描画Document９０１の破線で示す。
【００８８】
次に、Ｓ６１５で、ＯＦ３０２は、プリンタにフォーム登録する際のフォーム名称（Ｆｏｒｍ１）を生成し、Ｓ６１６で、ＯＦ３０２は、その名称（Ｆｏｒｍ１）を登録フォーム名称として指定したフォーム登録ＰＴをＦＰ１に付加して、処理を終了する。
【００８９】
ここで、生成する登録フォーム名称は、出力先のプリンタにおいて一意となる名称であれば、後述の印刷処理において正しくフォームを指定することができる。
【００９０】
ここで、フォーム名称には、例えばＵＵＩＤ（Universal Unique Identifier）と言われる汎用一識別子や、印刷を行うＰＣのＩＰアドレスと時刻を組み合わせた「xxx.xxx.xxx.xxx_hhmmss」のような文字列を用いる。
【００９１】
一方、Ｓ６１２で、１ページしか処理していない、もしくはＳ６１３でＦＰ１の描画オブジェクトが空であるとＯＦ３０２が判断した場合は、共通描画が抽出されなかったことになる。その場合は、Ｓ６１７において、Ｓ６０１でコピーした共通描画ＦＤ全体をＯＦ３０２が削除して、処理を終了する。
【００９２】
図１３は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、ＯＦ３０２による図１１に示すＳ６０７における描画オブジェクト比較処理例である。なお、Ｓ７０１〜Ｓ７１４は各ステップを示す。また、各ステップは、図１に示したＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。ここではＦＰ１の描画オブジェクト１とＦＰＮの描画オブジェクト２を比較する。描画オブジェクト１と描画オブジェクト２は逆であっても構わない。
【００９３】
まず、Ｓ７０１で、比較対象の描画オブジェクトの種類が同じかどうかをＯＦ３０２が判断する。ここで、比較対象の描画オブジェクトの種類が同じであるとＯＦ３０２が判断した場合は、Ｓ７０２で、描画オブジェクト１の次の未処理の属性をＯＦ３０２が取得する。
【００９４】
そして、Ｓ７０３で、Ｓ７０２において取得した属性が、描画に影響する属性であるかどうかをＯＦ３０２が判断する。ここで、描画に影響しない属性であるとＯＦ３０２が判断した場合は、Ｓ７１２へスキップし、描画に影響する属性であるとＯＦ３０２が判断した場合は、Ｓ７０４で、描画オブジェクト２から同じ属性をＯＦ３０２が検索する。
【００９５】
そして、Ｓ７０５で、同じ属性が見つかったかどうかをＯＦ３０２が判断する。ここで、同じ属性がみつかったとＯＦ３０２が判断した場合は、さらに、Ｓ７０６で、その属性がリソースを参照しているかどうかをＯＦ３０２が判断する。ここで、属性がリソースを参照していないとＯＦ３０２が判断した場合は、Ｓ７０７へ進み、ＯＦ３０２が属性値自体を比較して、Ｓ７１１へ進む。
【００９６】
一方、Ｓ７０６で、属性がリソースを参照しているとＯＦ３０２が判断した場合は、Ｓ７０８で、描画オブジェクト１および描画オブジェクト２の参照先リソースをＯＦ３０２が取得する。そして、Ｓ７０９で、描画オブジェクト１および描画オブジェクト２の参照先リソースを取得できたかどうかをＯＦ３０２が判断する。ここで、描画オブジェクト１および描画オブジェクト２の参照先リソースを取得できたとＯＦ３０２が判断した場合は、Ｓ７１０で、参照先の描画オブジェクトを再帰的に比較する。
【００９７】
そして、Ｓ７１１で、Ｓ７０７の比較結果またはＳ７１０の比較結果が一致しているかどうかをＯＦ３０２が判断する。ここで、両比較結果が一致していると判断した場合は、Ｓ７１２へ進み、描画オブジェクト１の属性を全て比較し終わったかをＯＦ３０２が判断する。
【００９８】
ここで、まだ比較していない属性があるとＯＦ３０２が判断した場合は、Ｓ７０２へ戻り、描画オブジェクト１の全ての属性を比較するまでＳ７０２〜７１２を繰り返す。
【００９９】
一方、Ｓ７０１で比較対象の描画オブジェクトの種類が異なる種類とＯＦ３０２が判断した場合には、Ｓ７１４で、戻り値を”非一致”として、処理を終了する。
【０１００】
また、Ｓ７０５で同じ属性が見つからなかった、またはＳ７０９で描画オブジェクト１もしくは描画オブジェクト２のリソースが取得できなかった、又はＳ７１１で一致していないとＯＦ３０２が判断した場合、Ｓ７１４へ進み、処理を終了する。
【０１０１】
一方、Ｓ７１２で、全ての属性を比較しても非一致の属性がないとＯＦ３０２が判断した場合（属性が一致したと判断した場合）は、Ｓ７１３で、ＯＦ３０２が戻り値を”一致”として、処理を終了する。
【０１０２】
図１４は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、ＯＦ３０２による図６に示すＳ５０３における差分描画ＦＰ生成処理例である。なお、Ｓ８０１〜Ｓ８１２は各ステップを示す。また、各ステップは、図１に示したＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。なお、差分描画ＦＰ生成処理は、図１０に示すように、元のＦＤの各ＦＰから共通描画ＦＰの描画を削除して差分描画ＦＰを生成し、使用するフォーム名称を指定するオーバレイ印刷ＰＴを各差分描画ＦＰに付加し、差分描画ＦＤ１００２を生成する処理である。
【０１０３】
まず、Ｓ８０１で、ＯＦ３０２がＳ５０１において生成された共通描画ＦＰを一方の比較対象として取得する。そして、Ｓ８０２、Ｓ８０３で、元のＦＤと次の未処理のＦＰをもう一方の比較対象として取得する。
【０１０４】
次に、Ｓ８０４で、ＯＦ３０２が元のＦＤと次の未処理のＦＰの双方を取得できたかどうかを判断する。
【０１０５】
ここで、元のＦＤと次の未処理のＦＰの双方の取得ができないとＯＦ３０２が判断した場合は、処理を終了する。
【０１０６】
一方、Ｓ８０４で、元のＦＤと次の未処理のＦＰの双方を取得できたとＯＦ３０２が判断した場合は、Ｓ８０５、Ｓ８０６で、比較対象の共通描画ＦＰと元のＦＤのＦＰの次の未処理の描画オブジェクトを取得する。そして、Ｓ８０７で、Ｓ６０７と同様に、ＯＦ３０２が描画オブジェクトを比較する。
【０１０７】
そして、Ｓ８０８で、比較対象の描画オブジェクトが同じであるかどうかをＯＦ３０２が判断する。ここで、較対象の描画オブジェクトが同じであるとＯＦ３０２が判断した場合は、Ｓ８０９で、２つのＦＰに比較すべき次の描画オブジェクトがあるかどうかをＯＦ３０２が判断する。ここで、２つのＦＰに比較すべき次の描画オブジェクトがあるとＯＦ３０２が判断した場合は、共通描画ＦＰの描画オブジェクトがなくなるまでＳ８０５〜Ｓ８０９を繰り返す。
【０１０８】
一方、Ｓ８０９で、共通描画ＦＰの全ての描画オブジェクトが一致しているとＯＦ３０２が判断した場合は、Ｓ８１０で、比較対象のＦＰの共通描画ＦＰと一致しなくなる手前までの描画オブジェクトをＯＦ３０２が削除し、差分描画ＦＰが完成する。
【０１０９】
更に、Ｓ８１１で、ＯＦ３０２は、Ｓ６１６において共通描画ＦＰに付加されたフォーム登録ＰＴに指定されている登録フォーム名称を、使用フォーム名称として設定したオーバレイ印刷ＰＴを差分描画ＦＰに付加する。
【０１１０】
次に、Ｓ８１２で、元のＦＤに比較すべき次のＦＰがまだあるかどうかをＯＦ３０２が判断する。ここで、元のＦＤに比較すべき次のＦＰがまだあるとＯＦ３０２が判断した場合は、Ｓ８０３に戻り、全てのＦＰを比較するまでＳ８０３〜Ｓ８１２を繰り返す。
【０１１１】
一方、Ｓ８１２で、元のＦＤに比較すべき次のＦＰがないとＯＦ３０２が判断した場合は、処理を終了する。
【０１１２】
一方、Ｓ８０８で、共通描画ＦＰの全ての描画オブジェクトが一致しないとＯＦ３０２が判断した場合は、共通描画ＦＰを使用しない通常のＦＰとして、Ｓ８１２に進む。
【０１１３】
図１５は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図４に示したＳ４０３における印刷処理例である。なお、Ｓ９０１〜Ｓ９１１は各ステップを示す。また、各ステップは、図１に示しＣＰＵ１がＲＦ３０３をＲＡＭ２にロードして実行することで実現される。以下、フォーム登録ジョブおよびオーバレイ印刷ジョブを生成するジョブ生成処理を説明する。
【０１１４】
なお、印刷部として機能するＲＦ３０３は、ＯＦ３０２によるＳ４０２の結果、再構成された印刷データを受け取り、印刷ジョブを出力する。
【０１１５】
ここで、再構築された印刷データには、通常のＦＰ、共通描画ＦＰ，差分描画ＦＰの３種類のＦＰが含まれる可能性があり、付加されているＰＴによって判別される。フォーム登録ＰＴが付加されていれば共通描画ＦＰ、オーバレイ印刷ＰＴが付加されていれば差分描画ＦＰ、いずれも付加されていなければ通常のＦＰである。
【０１１６】
また、フォーム登録ＰＴとオーバレイ印刷ＰＴは排他で、両方付加されることはない。
【０１１７】
まず、Ｓ９０１で、ＲＦ３０３は、次の未処理のＦＤを取得し、Ｓ９０２で、次の未処理のＦＰを取得する。そして、Ｓ９０３で、ＦＰが取得できたかどうかをＲＦ３０３が判断する。ここで、ＦＰを取得できたとＲＦ３０３が判断した場合は、Ｓ９０４で、フォーム登録ＰＴが付加されているかをＲＦ３０３が判断する。ここで、フォーム登録ＰＴが付加されていないとＲＦ３０３が判断した場合は、Ｓ９０５で、オーバレイ印刷ＰＴが付加されているかをＲＦ３０３が判断する。
【０１１８】
ここで、オーバレイ印刷ＰＴが付加されているとＲＦ３０３が判断した場合は、Ｓ９０７で、ＲＦ３０３がオーバレイ印刷ジョブを出力して、Ｓ９０９へ進む。
【０１１９】
一方、Ｓ９０５で、オーバレイ印刷ＰＴが付加されていないとＲＦ３０３が判断した場合は、Ｓ９０８へ進み、ＲＦ３０３が通常印刷ジョブを出力して、Ｓ９０９へ進む。
【０１２０】
そして、Ｓ９０９で、いずれかのジョブを出力後、次のＦＰがまだあるかどうかをＲＦ３０３が判断する。ここで、次のＦＰがまだあるとＲＦ３０３が判断した場合は、Ｓ９０２へ戻り、Ｓ９０２〜Ｓ９０９を繰り返す。
【０１２１】
一方、Ｓ９０４で、フォーム登録ＰＴが付加されているとＲＦ３０３が判断した場合は、Ｓ９０６へ進み、ＲＦ３０３は各々フォームを登録する処理を行うことでフォーム登録ジョブを生成し、Ｓ９０９へ進む。
【０１２２】
一方、Ｓ９０９で、次のＦＰがないとＲＦ３０３が判断した場合は、Ｓ９１０で、次のＦＤがまだあるかどうかをＲＦ３０３が判断する。ここで、次のＦＤがあるとＲＦ３０３が判断した場合は、Ｓ９０１へ戻ってＳ９０１〜Ｓ９１０を繰り返す。
【０１２３】
一方、全てのＦＤを処理しているとＲＦ３０３が判断した場合は、Ｓ９１１で、ＲＦ３０３がジョブ出力終了処理を行い、本処理を終了する。
【０１２４】
なお、図４に示したＳ４０２における文書構造変更処理において、共通描画ＦＤを差分描画ＦＤより前に配置しているので、フォーム登録ジョブがオーバレイ印刷ジョブよりも前に出力される。この結果、プリンタ１５０では先に登録されたフォームと後から受信する印刷データとを正しく重ねて印刷することができる。
【０１２５】
本実施形態では、文書構造変更部として機能するＯＦ３０２で文書構造変更した印刷データを印刷に用いているが、印刷以外の用途にも用いることができる。例えば、差分描画ＦＰの各描画オブジェクトはバリアブルデータのデータベースへの入力ソースとして利用可能である。
【０１２６】
本実施形態によれば、ユーザが図５に示すオーバレイを自動と選択する簡単な操作を行うだけで済む。そして、その選択指示に従って、汎用アプリケーションから、テンプレートと一体化した文書をそのままで容易にフォーム登録よびオーバレイ印刷が可能となる。
【０１２７】
その結果、共通フォーマットの大量ページの文書に対して印刷処理時間が短縮され、かつ、ホストからプリンタへの転送トラフィックも軽減される。
【０１２８】
本実施形態によれば、フォーム登録とオーバレイ印刷の指示をそれぞれ分ける必要がなくなり、処理方法を１回選択するだけで、フォーム登録よびオーバレイ印刷を指示でき、ユーザの操作負担を軽減できる。
【０１２９】
〔第２実施形態〕
上記第１実施形態では、同じテンプレートから作成された複数ページの文書の印刷において自動オーバレイ印刷を行う場合について説明した。本実施形態では、１つの印刷ジョブ中に複数の文書が含まれており、それぞれが別のテンプレートから作成された複数ページの文書である場合について説明する。
【０１３０】
図１６〜図１８は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【０１３１】
本実施形態における元の印刷データは、ＸＰＳデータ構造で定義され、図１６に示すように、２つのＦＤ１６０１、１６０２を含んで構成されている例である。図１７は、元のＦＤ１６０１から共通描画ＦＤ１７０１と差分描画ＦＤ１７０２を生成した後に、元のＦＤ１６０２から共通描画ＦＤ１７０３と差分描画ＦＤ１７０４を生成した状態を示している。図１８は、図１７に示した共通描画ＦＤ１７０３のＦＰ１７０５を共通描画ＦＤ１７０１のＦＰ１７０６にコピーし、共通描画ＦＤ１７０３を削除した状態を示している。
【０１３２】
図１９は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図１６〜図１８に示す文書構造変更処理例である。なお、Ｓ１６０１〜Ｓ１６０４は各ステップを示し、図６と同様のステップには、同じステップ番号を付している。また、各ステップは、図１に示たＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。以下、処理の手順について詳細に説明する。
【０１３３】
まず、Ｓ１６０１で、文書構造変換部として機能するＯＦ３０２は、処理する最初のＦＤを印刷データから取得する。そして、Ｓ１６０２で、最初のＦＤを印刷データから取得できたかどうかをＯＦ３０２が判断する。ここで、処理する最初のＦＤを印刷データから取得できたとＯＦ３０２が判断した場合は、Ｓ１６０３で、ＯＦ３０２は、共通描画を抽出して共通描画ＦＰを生成する。
【０１３４】
なお、Ｓ１６０３は、共通描画ＦＰ生成処理は、図６に示したＳ５０１に示す共通描画ＦＰ生成処理とほぼ同じ処理であるが、複数のＦＤに対応するために一部処理を追加・変更している。その詳細の処理については後述する。
【０１３５】
次に、Ｓ５０２で、Ｓ１６０３における共通描画ＦＰ生成処理の結果、共通描画ＦＰが生成されたかをＯＦ３０２が判断する。ここで、共通描画ＦＰが生成されているとＯＦ３０２が判断した場合は、Ｓ５０３で、元のＦＤから共通描画を除いて差分描画ＦＤを生成する。
【０１３６】
そして、Ｓ５０３の生成処理が完了するか、Ｓ１６０２で取得できないとＯＦ３０２が判断した場合、Ｓ５０２で共通描画ＦＰが生成されていないとＯＦ３０２が判断した場合は、Ｓ１６０４へ進む。
【０１３７】
そして、Ｓ１６０４で、次のＦＤがまだあるかどうかをＯＦ３０２が判断する。ここで、次のＦＤがまだあるとＯＦ３０２が判断した場合は、Ｓ１６０１へ戻って、全てのＦＤが処理されるまでＳ１６０１〜Ｓ１６０４を繰り返し、処理を終了する。
【０１３８】
図２０は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図１９に示したＯＦ３０２によるＳ１６０３の共通描画ＦＰ生成処理の詳細例である。なお、Ｓ１７０１〜Ｓ１７０５は各ステップを示し、図１１と同様のステップには、同じステップ番号を付している。また、各ステップは、図１に示たＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。
【０１３９】
第１実施形態で説明したように、図１１に示したＳ６０１におけるＦＤのコピー処理において、通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ正しく重ねて印刷されない。そのため、図４に示したＳ４０３の印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画ＦＤが差分描画ＦＤより前に読み出されるように配置する。
【０１４０】
本実施形態では、Ｓ６０１に示す２つ目以降のＦＤに対するコピー処理では、１つの共通描画ＦＤおよび１つ以上の差分描画ＦＤが、Ｓ６０１の時点で既に存在する可能性があるので、全ての差分描画ＦＤおよび元のＦＤの前、かつ共通描画ＦＤの後にコピーをする。
【０１４１】
図２０に示すＳ６１６の処理を終了後（図１７に示す状態）、Ｓ１７０１で、現在のところ共通描画ＦＤが２つ存在するかどうかをＯＦ３０２が判断する。ここで、共通描画ＦＤが１つであるとＯＦ３０２が判断した場合は、本処理を終了する。
【０１４２】
一方、Ｓ１７０１で、共通描画ＦＤが２つ存在するとＯＦ３０２が判断した場合は、Ｓ１７０２へ進む。そして、Ｓ１７０２で、現在処理しているＦＤに対して生成した共通描画ＦＰと同一の描画のＦＰが存在しないか検索する。
【０１４３】
そして、Ｓ１７０３で、元々存在した共通描画ＦＤの中で同一の描画のＦＰを見つけることができたかどうかをＯＦ３０２が判断する。ここで、元々存在した共通描画ＦＤの中で見つけることができなかったとＯＦ３０２が判断した場合は、Ｓ１７０４へ進む。
【０１４４】
そして、Ｓ１７０４で、ＯＦ３０２は、現在処理しているＦＤに対して生成した共通描画ＦＰを元々存在した共通描画ＦＤに追加し、Ｓ６１７で、現在処理しているＦＤに対して生成した共通描画ＦＤを削除して、本処理を終了する。
【０１４５】
一方、Ｓ１７０３で、同じ描画の共通描画ＦＰが見つけることができたとＯＦ３０２が判断した場合は、Ｓ１７０５へ進む。そして、Ｓ１７０５で、その共通描画ＦＰに付加されたフォーム登録ＰＴに指定されている登録フォーム名称を取得し、Ｓ６１７へ進む。
【０１４６】
なお、Ｓ６１５およびＳ１７０５で生成もしくは取得した登録フォーム名称は、図１４に示すＳ８１１で差分描画ＦＤに付加するオーバレイ印刷ＰＴの使用フォーム名称として用いる。
【０１４７】
この結果、異なるテンプレート文書から作成された文書毎に共通描画ＦＰと差分描画ＦＰが生成され、それに対応したフォーム登録およびオーバレイ印刷が可能となる。
【０１４８】
本実施形態では、元の印刷データにＦＤが１つしかない場合にも対応しており、上記第１実施形態の処理を包含した構成となっている。
【０１４９】
〔第３実施形態〕
ＯＦ３０２による図４に示したＳ４０２における文書構造変更処理の後、の印刷データをファイルに保存するとＸＰＳデータとして再利用が可能である。しかしながら、標準のビューアでＸＰＳデータを表示すると、図１０に示したような共通描画ＦＤと差分描画ＦＤは別のページとして表示されてしまう。
【０１５０】
そこで、標準のビューアしかない情報処理装置を含む印刷システム環境では、このようなＸＰＳデータを利用する場合、ＸＰＳデータの構造を以下のように変更すればよい。以下、その実施形態について説明する。
【０１５１】
図２１は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【０１５２】
図２１に示すように、本実施形態では、ＯＦ３０２が共通描画部をResource Dictionary２１０１にコピーすることで、共通描画ＦＰの描画部分２１０３をResource Dictionary２１０１に置く。そして、ＯＦ３０２が差分描画ＦＰの最下層に参照元のオブジェクト（Canvas）を追加し、リソースを参照するように文書構造を変更する。
【０１５３】
図２２は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、参照化構造を変更する処理の詳細例である。なお、Ｓ２１０１〜Ｓ２１１２は各ステップを示す。また、各ステップは、図１に示たＣＰＵ１がＯＦ３０２をＲＡＭ２にロードして実行することで実現される。
【０１５４】
まず、Ｓ２１０１で、ＯＦ３０２が最初の差分描画ＦＰを取得する。そして、最初の差分描画ＦＰを取得できたかどうかをＯＦ３０２が判断して、取得できたとＯＦ３０２が判断した場合は、Ｓ２１０３で、ＯＦ３０２は、そのＦＰのオーバレイ印刷ＰＴの使用フォーム名称を取得する。なお、差分描画ＦＤの中にオーバレイ印刷しないＦＰが入っている場合には、取得ができない。
【０１５５】
次に、Ｓ２１０４で、ＦＰのオーバレイ印刷ＰＴの使用フォーム名称を取得できたかどうかをＯF３０２が判断する。ここで、使用フォーム名称を取得できたとＯＦ３０２が判断した場合は、Ｓ２１０５で、その名称とフォーム登録ＰＴの登録フォーム名称が一致するＦＰを共通描画ＦＤから検索する。
【０１５６】
そして、Ｓ２１０６で、その名称とフォーム登録ＰＴの登録フォーム名称が一致するＦＰ（図２１に示す例では、ＦＰ２１０３）を見つけられたかどうかをＯＦ３０２が判断する。ここで、その名称とフォーム登録ＰＴの登録フォーム名称が一致するＦＰを見つけられたとＯＦ３０２が判断した場合は、Ｓ２１０７へ進む。
【０１５７】
そして、Ｓ２１０７で、そのＦＰの描画部分と同じ描画のResourceがResource Dictionary２１０１の下に既に存在するか検索してＯＦ３０２が判断する。
【０１５８】
ここで、そのＦＰの描画部分と同じ描画のResourceがResource Dictionaryの下に既に存在していないとＯＦ３０２が判断した場合は、Ｓ２１０８へ進む。
【０１５９】
そして、Ｓ２１０８で、ＯＦ３０２は、共通描画部をResourceとしてResource Dictionary２１０１にコピーする。更に、Ｓ２１０９で、ＯＦ３０２は、現在処理している差分描画ＦＰの最下層に参照元となるCanvusオブジェクトを追加する。
【０１６０】
そして、Ｓ２１１０で、ＯＦ３０２は、追加したもしくは見つかったResourceを参照先とするように差分描画ＦＰの属性を設定する。その後、Ｓ２１１１で、次の差分描画ＦＰが存在するかどうかをＯＦ３０２が判断する。ここで、ＯＦ３０２が次の差分描画ＦＰが存在すると判断した場合は、Ｓ２１０１に戻る。
【０１６１】
一方、Ｓ２１１１で、全ての差分描画ＦＰに対してＳ２１０１〜２１１１を行っていると判断した場合、次の差分描画ＦＰが存在しないとＯＦ３０２が判断した場合は、Ｓ２１１２へ進む。
【０１６２】
そして、Ｓ２１１２で、ＯＦ３０２は、ＦＤＳのRelationshipから共通描画ＦＤを削除して、本処理を終了する。
【０１６３】
なお、本実施形態では、再度戻すことも考慮して共通描画ＦＤ２１０２を図２１に示すように残しているが、共通描画ＦＤ自体を削除しても良い。
【０１６４】
以下、図２３に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１６５】
図２３は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１６６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６８】
本実施形態における図７、図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６９】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７０】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードをコンピュータ読み取り可能に記憶した記憶媒体は本発明を構成することになる。
【０１７１】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１７２】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１７３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１７５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７８】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１７９】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１８０】
【図１】本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。
【図２】図１に示したホストコンピュータ３００における印刷処理のための構成の一例を示す図である。
【図３】本実施形態を示す印刷システムにおける印刷処理の概要を説明図である。
【図４】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図５】図３に示したプリンタドライバ２０３によるオーバレイ設画面の一例を示す図である。
【図６】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図７】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図８】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図９】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図１０】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図１１】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図１２】本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。
【図１３】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図１４】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図１５】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図１６】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図１７】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図１８】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図１９】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図２０】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図２１】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図２２】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図２３】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１８１】
１５０  プリンタ
２０１  アプリケーション
２０３  プリンタドライバ
３０１  ＬＦ
３０２  ＯＦ
３０３  ＲＦ
【図１】
2010033360.tif 000003
【図２】
2010033360.tif 000004
【図３】
2010033360.tif 000005
【図４】
2010033360.tif 000006
【図５】
2010033360.tif 000007
【図６】
2010033360.tif 000008
【図７】
2010033360.tif 000009
【図８】
2010033360.tif 000010
【図９】
2010033360.tif 000011
【図１０】
2010033360.tif 000012
【図１１】
2010033360.tif 000013
【図１２】
2010033360.tif 000014
【図１３】
2010033360.tif 000015
【図１４】
2010033360.tif 000016
【図１５】
2010033360.tif 000017
【図１６】
2010033360.tif 000018
【図１７】
2010033360.tif 000019
【図１８】
2010033360.tif 000020
【図１９】
2010033360.tif 000021
【図２０】
2010033360.tif 000022
【図２１】
2010033360.tif 000023
【図２２】
2010033360.tif 000024
【図２３】
2010033360.tif 000025