(57)【要約】【課題】  関連のある情報同士を好適にかつ適切にページ内にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供する。【解決手段】  記憶媒体に記憶されている、第１情報に属する第１レコードと、第２情報に属する第２レコードにおいて、第１情報と第２情報との関連付けを示す関連付け情報を設定する。テンプレートに基づいて、指定された第１レコードのデータを差し込んだフィールド領域と、関連付け情報に従って第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトする。【選択図】  図２１Ａ
2007048003.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置であって、
第１情報に属する第１レコードと、第２情報に属する第２レコードを記憶する第１記憶手段と、
前記第１情報と前記第２情報との関連付けを示す関連付け情報を記憶する第２記憶手段と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記レイアウト手段は、前記テンプレートに基づいて、指定された第１レコードのデータを差し込んだ第１レコード用フィールド領域をページ内にレイアウトした後、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだ第２レコード用フィールド領域に同一ページ内にレイアウトする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レイアウト手段によるレイアウト結果を出力する出力手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定手段を更に備え、
前記設定手段は、更に、前記第２レコードのデータを前記フィールド領域に差し込む優先順位を設定する優先順位設定手段を備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定手段を更に備え、
前記設定手段は、更に、前記第２レコードのデータを前記フィールド領域に差し込む頻度を設定する頻度設定手段を備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
当該情報処理装置は、ネットワークに接続されたサーバ装置である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記ネットワークに接続されたクライアント装置へ、前記レイアウト手段によるレイアウト結果をプレビューするためのプレビュー画面を送信する送信手段を更に備える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ネットワークに接続された画像形成装置へ、前記レイアウト手段によるレイアウト結果を送信する送信手段を更に備える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項９】
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御方法であって、
記憶媒体に記憶される、第１情報に属する第１レコードと、第２情報に属する第２レコードにおいて、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定工程と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御をコンピュータに実行させるためのプログラムであって、
記憶媒体に記憶される、第１情報に属する第１レコードと、第２情報に属する第２レコードにおいて、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定工程と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト工程と
をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
第１情報を選択する選択手段と、
前記選択手段により選択された第１情報に基づき第２情報を取得する取得手段と、
前記選択手段により選択された第１情報に関する情報と前記取得手段により取得された第２情報に関する情報の流し込まれる各領域の位置とサイズをテンプレートを用いて決定する決定手段と、
前記決定手段により決定された位置とサイズの各領域に前記第１情報に関する情報と前記第２情報に関する情報を流し込む流し込み手段と
を備えることを特徴とする情報処理装置。
【請求項１２】
前記テンプレートは、前記選択手段により選択された第１情報と前記取得手段により取得された第２情報とに基づき決定される
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記テンプレートは、前記取得手段により取得された第２情報の数に基づき決定される
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
第１情報を選択する選択工程と、
前記選択工程により選択された第１情報に基づき第２情報を取得する取得工程と、
前記選択工程により選択された第１情報に関する情報と前記取得工程により取得された第２情報に関する情報の流し込まれる各領域の位置とサイズをテンプレートを用いて決定する決定工程と、
前記決定工程により決定された位置とサイズの各領域に前記第１情報に関する情報と前記第２情報に関する情報を流し込む流し込み工程と
を備えることを特徴とするレイアウト方法。
【請求項１５】
前記テンプレートは、前記選択工程により選択された第１情報と前記取得工程により取得された第２情報とに基づき決定される
ことを特徴とする請求項１４に記載のレイアウト方法。
【請求項１６】
前記テンプレートは、前記取得工程により取得された第２情報の数に基づき決定されることを特徴とする請求項１４記載のレイアウト方法。
【請求項１７】
第１情報を選択する選択工程と、
前記選択工程により選択された第１情報に基づき第２情報を取得する取得工程と、
前記選択工程により選択された第１情報に関する情報と前記取得工程により取得された第２情報に関する情報の流し込まれる各領域の位置とサイズをテンプレートを用いて決定する決定工程と、
前記決定工程により決定された位置とサイズの各領域に前記第１情報に関する情報と前記第２情報に関する情報を流し込む流し込み工程と
をコンピュータに実行させることを特徴とするプログラム。
【請求項１８】
前記テンプレートは、前記選択工程により選択された第１情報と前記取得工程により取得された第２情報とに基づき決定される
ことを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記テンプレートは、前記取得工程により取得された第２情報の数に基づき決定される
ことを特徴とする請求項１７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
近年、商品の多品種化で商品ライフが短くなっていることが注目されている。また、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からＣＲＭ（Customer Relationship Management）、Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングの必要性が注目されている。これらの手法により、顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
【０００３】
Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングは、データベース・マーケティングの一種である。これは、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。ここ最近では、ＤＴＰ（デスクトップパブリッシング）技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発されている。このようなバリアブルプリントシステムでは、顧客毎に異なる量のコンテンツが最適にレイアウトされたカスタマイズ文書を作成することが求められる。
【０００４】
一般にバリアブルプリントシステムにおいて、そのようなカスタマイズ文書を作成する際には、文書上にコンテナをレイアウトする。ここで、コンテナとは、コンテンツ（描画内容（例えば、イメージ、テキスト等））を描画するための描画領域であり、フィールド領域と呼ばれることもある。
【０００５】
そして、文書上にこのようなコンテナをレイアウトし、データベースとレイアウトを関連付ける（データベース内の各種コンテンツとコンテナとを関連付ける）作業を行う。これにより、所望のカスタマイズ文書（ドキュメントテンプレートと呼ばれる）を作成することができる。そして、このカスタマイズ文書上のコンテナ内のコンテンツを適宜切り換える（関連付けを変更する）ことで、その内容を可変（バリアブル）にすることができる。そのため、このような文書を、バリアブルデータ文書（ドキュメント）と呼んでおり、このバリアブルデータドキュメントを用いるプリントシステムが、バリアルプリントシステムである。
【０００６】
ここで、従来のバリアブルプリントシステムでは、コンテンツであるテキストやイメージに関連付けられるコンテナのサイズが固定である。そのため、データベース内のコンテンツがコンテナに挿入された（流し込まれた）ときに、そのデータ量がコンテナサイズより多いと、次のようなことが発生する。つまり、そのデータがテキストであれば、テキストのオーバーラップが発生し、また、そのデータイメージであればイメージのクリッピングが発生する。また、データ量がコンテナサイズより小さいと、コンテナとその内部のコンテンツとの間に隙間が空いてしまう等の適切な表示がなされない可能性がある。
【０００７】
これらの問題を解決するために、さらなるレイアウトを変更する技術として、あるコンテナのサイズが大きくなった場合、このコンテナに隣接する他のコンテナのサイズを小さくする技術が特許文献１の「レイアウトデザイン装置」に開示されている。
【０００８】
また、顧客の要求の優先順位によって、価格・ランニングコスト・処理速度といった商品仕様の項目を並べ替える。その後、フィールド領域にデータを入力させ、カスタマイズされたカタログを保存・出力することを特徴としている技術が、特許文献２に開示されている。
【特許文献１】特開平７−１２９６５８号公報（段落００４９、図８）
【特許文献２】特開２００４−１７１３９５号公報（段落００５１、図８）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、商品カタログに動的に広告を差し込んで出力する場合、その広告用のフィールド領域は固定である。そのため、画像の大きさやテキストの長さが変化すると、レイアウトが崩れてしまい、カタログとしての見栄えが悪くなるという問題があった。また、この問題に対処するためには、あらかじめカタログを手作業で編集しておかなければならず、効率が悪かった。
【００１０】
本発明は上記の課題を解決するためになされたものである。本発明の目的は、関連のある情報同士を好適にかつ適切にページ内にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供することである。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置であって、
第１情報に属する第１レコードと、第２情報に属する第２レコードを記憶する第１記憶手段と、
前記第１情報と前記第２情報との関連付けを示す関連付け情報を記憶する第２記憶手段と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト手段と
を備える。
【００１２】
また、好ましくは、前記レイアウト手段は、前記テンプレートに基づいて、指定された第１レコードのデータを差し込んだ第１レコード用フィールド領域をページ内にレイアウトする。その後、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだ第２レコード用フィールド領域に同一ページ内にレイアウトする。
【００１３】
また、好ましくは、前記レイアウト手段によるレイアウト結果を出力する出力手段を更に備える。
【００１４】
また、好ましくは、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定手段を更に備え、
前記設定手段は、更に、前記第２レコードのデータを前記フィールド領域に差し込む優先順位を設定する優先順位設定手段を備える。
【００１５】
また、好ましくは、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定手段を更に備え、
前記設定手段は、更に、前記第２レコードのデータを前記フィールド領域に差し込む頻度を設定する頻度設定手段を備える。
【００１６】
また、好ましくは、当該情報処理装置は、ネットワークに接続されたサーバ装置である。
【００１７】
また、好ましくは、前記ネットワークに接続されたクライアント装置へ、前記レイアウト手段によるレイアウト結果をプレビューするためのプレビュー画面を送信する送信手段を更に備える。
【００１８】
また、好ましくは、前記ネットワークに接続された画像形成装置へ、前記レイアウト手段によるレイアウト結果を送信する送信手段を更に備える。
【００１９】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御方法であって、
記憶媒体に記憶される、第１情報に属する第１レコードと、第２情報に属する第２レコードにおいて、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定工程と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト工程と
を備える。
【００２０】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御をコンピュータに実行させるためのプログラムであって、
記憶媒体に記憶される、第１情報に属する第１レコードと、第２情報に属する第２レコードにおいて、前記第１情報と前記第２情報との関連付けを示す関連付け情報を設定する設定工程と、
前記テンプレートに基づいて、指定された前記第１レコードのデータを差し込んだフィールド領域と、前記関連付け情報に従って前記第１レコードに関連付けられている第２レコードのデータを差し込んだフィールド領域をページ内にレイアウトするレイアウト工程と
をコンピュータに実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、関連のある情報同士を好適にかつ適切にページ内にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２３】
＜システム構成＞
まず、本実施形態の情報処理システム及び、その構成要素であるホストコンピュータのハードウェア構成について、図１Ａ及び図１Ｂを用いて説明する。
【００２４】
図１Ａは本発明の実施形態の情報処理システムの構成例を示す図である。また、図１Ｂは本発明の実施形態の情報処理システムの一構成要素であるホストコンピュータ（本発明の情報処理装置に相当する）のハードウェア構成を示す図である。
【００２５】
尚、図１Ａ中のホストコンピュータ以外の各種コンピュータ（例えば、データベースサーバ１１７及びファイルサーバ１１５）も、例えば、図１Ｂのハードウェア構成と同等のハードウェア構成を有している。
【００２６】
図１Ａにおいて、情報処理システム１００は、ネットワーク１０７を介して、ホストコンピュータ１０１、データベースサーバ１１７及びファイルサーバ１１５及び画像形成装置１０９（例えば、プリンタ）が相互に接続されている。
【００２７】
データベースサーバ１１７は、データベース１１９を備えている。また、画像形成装置１０９は、ネットワーク１０７を介して受信する印刷データを適宜印刷することが可能である。
【００２８】
図１Ａの情報処理システム１００は、特に、バリアブルデータドキュメントを印刷するバリアブルプリントシステムの構成例を示している。実施形態で説明されるバリアブルプリント処理は、レイアウト編集装置として機能するホストコンピュータ１０１（汎用コンピュータモジュールによって構成される）で実現される。
【００２９】
バリアブルプリントシステム１００上で実施可能となるレイアウト編集アプリケーション１２１は、ホストコンピュータ１０１において、その全体あるいは一部分が実行される。特に、レイアウト編集に関する処理や、バリアブルデータドキュメントの印刷に関する処理は、ホストコンピュータ１０１によって実行されるソフトウェアにより実現される。
【００３０】
レイアウト編集アプリケーション１２１等のソフトウェアやコンピュータプログラムはコンピュータ可読媒体に格納され、そのコンピュータ可読媒体からホストコンピュータ１０１のメモリ１３６にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータ可読媒体は、コンピュータプログラム製品である。そして、例えば、ホストコンピュータ１０１において、そのコンピュータプログラム製品を使用することにより、バリアブルデータドキュメントのレイアウト編集やバリアブルプリントに好適な装置が提供されることになる。
【００３１】
図１Ｂに示されるように、ホストコンピュータ１０１には、Ｉ／Ｏ（入出力）インタフェース１４３を介してキーボード１３２や、ポインティングデバイスであるマウス１３３が入力装置として接続される。また、出力装置としてのディスプレイ装置１４４がビデオインタフェース１３７を介して接続される。更に、画像形成装置１０９をＩ／Ｏインタフェース１３８を介して接続することも可能である。
【００３２】
また、Ｉ／Ｏインタフェース１３８は、ホストコンピュータ１０１を、ネットワーク１０７へ接続する機能も有する。これにより、ネットワーク１０７を介して、バリアブルプリントシステム１００内の他のコンピュータ装置（外部機器）にホストコンピュータ１０１を接続することができる。ネットワーク１０７の典型的な例としては、ローカルエリアネットワーク（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）が挙げられる。
【００３３】
また、図１Ｂに示すように、ホストコンピュータ１０１は、少なくとも１つのプロセッサ１３５、例えば、半導体メモリである、ランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリ１３６を含んでいる。記憶装置１３９は、プログラム等の各種データを格納するコンピュータ可読媒体との間でデータのやり取りが可能なハードディスクドライブ（ＨＤＤ）１４０やフロッピー（登録商標）ディスクドライブ（ＦＤＤ）１４１を含む。
【００３４】
尚、図１Ｂには示されていないが、磁気テープドライブやメモリカード等の各種記憶装置も記憶装置１３９として使用することが可能である。ＣＤ−ＲＯＭドライブ１４２は、不揮発性のデータソースとして提供される（もちろん、ＣＤ−ＲＯＭによってコンピュータプログラムを提供してもよい）。
【００３５】
ホストコンピュータ１０１は、相互接続バス１３４を介して、ホストコンピュータ１０１の各種構成要素１３５〜１３４と通信する。この通信は、例えば、ＧＮＵ／ＬＩＮＵＸやマイクロソフトウインドウズ（登録商標）のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で実現される。あるいは、この通信は、関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、実現される。即ち、上述の各種構成要素１３５〜１４３は、相互接続バス１３４を介して通信可能に接続されており、ホストコンピュータ１０１にインストールされたオペレーティングシステムにより利用される。
【００３６】
尚、図１Ｂに示すホストコンピュータ１０１の例としては、ＩＢＭ互換ＰＣ（パーソナルコンピュータ）やＳＵＮのＳｐａｒｃｓｔａｔｉｏｎ、あるいはそれらを含んだコンピュータシステムが考えられる。
【００３７】
本実施形態では、レイアウト編集アプリーション１２１は、ハードディスクドライブ１４０に常駐し、プロセッサ１３５による実行や読込が制御される。レイアウト編集アプリケーション１２１の媒介記憶装置とネットワーク１０７からフェッチされるデータは、ハードディスクドライブ１４０に呼応してメモリ１３６を使用する。
【００３８】
一つの例では、レイアウト編集アプリケーション１２１のエンコードされたプログラムが、ＣＤ−ＲＯＭやフロッピー（登録商標）ディスク上に格納される。そして、対応するＣＤ−ＲＯＭドライブ１４２やフロッピー（登録商標）ディスクドライブ１４１を通じて読み込まれ、ハードディスクドライブ１４０にインストールされる。
【００３９】
あるいは、別の例として、レイアウト編集アプリケーション１２１は、ネットワーク１０７からホストコンピュータ１０１内に読み込まれて、ハードディスクドライブ１４０にインストールされてもよい。
【００４０】
更に、レイアウト編集アプリケーション１２１を含む各種ソフトウェアは、磁気テープまたはＲＯＭまたは集積回路、光磁気ディスクからホストコンピュータ１０１内にロードされてもよい。または、ホストコンピュータ１０１とその他のデバイス間における赤外線等の無線通信からホストコンピュータ１０１内にロードされてもよい。または、ＰＣＭＣＩＡカードのようなコンピュータ可読カード、そしてＥメール通信やＷＥＢサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ１０１内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
【００４１】
図１Ａにおいて、レイアウト編集アプリケーション１２１は、ホストコンピュータ１０１にバリアブルプリント（バリアブルデータプリント（ＶＤＰ）ともいう）を実現させるものである。このレイアウト編集アプリケーション１２１は、２つのソフトウェアコンポーネント、即ち、レイアウトエンジン１０５とユーザインタフェース１０３を含んでいる。
【００４２】
レイアウトエンジン１０５は、フィールド領域（部分領域）であるコンテナ（矩形の範囲）に与えられたサイズや位置の制限に従って、データベース１１９にレコード単位で格納されているバリアブルデータから１レコードずつ読み込む。そして、読み込んだバリアブルデータとコンテナの制限とから、読み込んだバリアブルデータが流し込まれるコンテナのサイズや位置等のレイアウトを計算するソフトウェアコンポーネントである。
【００４３】
また、本実施形態では、レイアウトエンジン１０５は、更に、コンテナに割り当てられたバリアブルデータを描画し、バリアブルデータドキュメントのイメージを生成する処理も行う。但し、本発明は、これに限るものではなく、レイアウトエンジン１０５は、各部分領域（コンテナ）のサイズと位置を決定するアプリケーションとして動作し、プリンタドライバ（不図示）に描画情報を出力する。これにより、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成してもよい。
【００４４】
ユーザインタフェース１０３は、ユーザによるコンテナのレイアウトや属性設定を可能とし、ユーザにドキュメントテンプレート（テンプレート情報とも呼ぶ）を作成させる。また、ユーザインタフェース１０３は、ドキュメントテンプレート内の各コンテナとデータソース（データベース１１９上のバリアブルデータ（コンテンツ））とを関連付けるメカニズムを提供する。ユーザインタフェース１０３とレイアウトエンジン１０５は、通信チャネル１２３を介して通信する。
【００４５】
バリアブルデータドキュメント生成のためのデータソースは、一般的には、データベースアプリケーションを実行している、他のコンピュータで構成されるデータベースサーバ１１７上にある典型的なデータベース１１９が挙げられる。
【００４６】
ホストコンピュータ１０１は、ネットワーク１０７を介して、データベースサーバ１１７と通信する。レイアウト編集アプリケーション１２１は、ホストコンピュータ１０１、あるいは、一般的には、他のコンピュータで構成されるファイルサーバ１１５に保存されるドキュメントテンプレートを生成する。
【００４７】
また、レイアウト編集アプリケーション１２１は、バリアブルデータとマージされたドキュメントテンプレートによって構成されたバリアブルデータドキュメントを生成する。これらのバリアブルデータドキュメントは、ホストコンピュータ１０１のローカルファイルシステムやファイルサーバ１１５に保存されるか、あるいは画像形成装置１０９に直接印刷される。
【００４８】
次に、バリアブルプリントシステム１００の別構成例について、図１Ｃを用いて説明する。
【００４９】
図１Ｃは本発明の実施形態の情報処理システムの別構成を示す図である。
【００５０】
図１Ｃは、ネットワーク１０７上にエンジンサーバ２２７を追加して、このエンジンサーバ２２７にレイアウトエンジン２２５を構成した例を示している。つまり、ホストコンピュータ１０１内のレイアウトエンジン１０５を、エンジンサーバ２２７内で実現した構成である。この構成の場合、ホストコンピュータ１０１の処理負荷を軽減することができる。
【００５１】
尚、このエンジンサーバ２２７は、他のサーバと同様、典型的なコンピュータである。また、ファイルサーバ１１５に保存されたドキュメントテンプレートは、印刷や他の目的がある際、レイアウトエンジン２２５によってドキュメントを生成するためにデータベース１１９に保存されたデータと結合することができる。そのようなオペレーションは、ユーザインタフェース１０３を介して要求されるか、特定のレコードのみ印刷するように要求される。
【００５２】
図１Ａや図１Ｃでは、レイアウト編集アプリケーション１２１は、サーバクライアントシステムにおけるクライアント上で実現する構成としているが、これに限定されない。例えば、このレイアウト編集アプリケーション１２１を搭載するアプリケーションサーバを構成して、このアプリケーションサーバに対してクライアントがアクセスする構成としても良い。
【００５３】
具体的には、例えば、Ｗｅｂサーバクライアントシステムを構築し、Ｗｅｂサーバがレイアウト編集アプリケーション１２１を搭載して、このＷｅｂサーバとＷｅｂクライアント間で図１Ａや図１Ｃの構成を実現する構成について説明する。
【００５４】
まず、Ｗｅｂサーバクライアントシステムの構成の概要について、図１Ｄを用いて説明する。
【００５５】
図１Ｄは本発明の実施形態のＷｅｂサーバクライアントシステムの構成を示す図である。
【００５６】
図１Ｄは、レイアウト編集アプリケーション１２１が搭載されたＷｅｂサーバ１６１に対して、Ｗｅｂブラウザを有するＷｅｂクライアント１５２〜１５４からの指示／操作を実現した構成である。
【００５７】
図１Ｄにおいて、ネットワーク１０７には、クライアント用パーソナルコンピュータ（以下「クライアントＰＣ」）１５２〜１５４と、サーバ用パーソナルコンピュータ（以下「サーバＰＣ」）１６１、画像形成装置１０９が接続されている。また、これらのコンピュータは、図１Ｂと同様のハードウェア構成を有している。
【００５８】
サーバＰＣ１６１はＷｅｂサーバ機能を有し、クライアントＰＣ１５２〜１５４のＷｅｂブラウザ経由から指示を受けて、その指示を発行したクライアントＰＣのＷｅｂブラウザに対して、処理結果を返す。但し、本発明においては、サーバＰＣ１６１及びクライアントＰＣ１５２〜１５４間の通信手法については、特に限定するものではない。また、サーバＰＣ１６１単体で、図１Ａや図１Ｃの構成を実現する形態でも構わない。
【００５９】
次に、Ｗｅｂサーバクライアントシステムの機能構成について、図１Ｅを用いて説明する。
【００６０】
図１Ｅは本発明の実施形態のＷｅｂサーバクライアントシステムの機能構成を示す図である。
【００６１】
クライアントＰＣ１５２では、Ｗｅｂブラウザ機能を有している。これに加えて、カタログ情報や画像データ等のコンテンツをサーバＰＣ１６１に登録するための情報登録モジュール１７２を有している。また、商品情報（コンテンツデータ）を出力するフォーム（ドキュメントテンプレート）を登録する出力フォーム登録モジュール１７３を有している。更に、商品情報の出力結果をプレビューする出力結果プレビューモジュール１７４を有している。
【００６２】
但し、これらのモジュールは、サーバＰＣ１６１から必要に応じて、Ｗｅｂブラウザのプラグイン形式で自動的に配信されるので、クライアントＰＣ１５２上で、インストール処理を行う必要はない。
【００６３】
サーバＰＣ１６１は、ＨＴＴＰＷｅｂアプリケーションサーバ機能を有しており、クライアントＰＣ１５２からのリクエストを処理するための各種モジュール群からなるモジュールセット１７７を有している。
【００６４】
このモジュールセット１７７には、次のようなモジュールがある。例えば、ユーザ認証モジュール、検索処理モジュール、商品情報登録モジュール、広告情報登録モジュール、カタログ情報登録モジュール、関連付け情報登録モジュールがある。これに加えて、各種データ（カタログ情報、関連付け情報）の一括登録モジュール、各種メンテナンスモジュール、商品情報のカタログ出力モジュール等がある。
【００６５】
これらのモジュールは、クライアントＰＣ１６１からのリクエストに応じて、サーバＰＣ１６１内のメモリ上にロードされ、処理を実行する。
【００６６】
また、これらのモジュールとは別に、レイアウトエンジンを用いてＰＤＦファイル等の画像編集を行う画像編集モジュール、データファイルに対して、結合・分割等の編集を行うファイル編集モジュールからなる編集モジュール１７８を有している。この編集モジュール１７８は、例えば、レイアウト編集アプリケーション１２１によって実現される。
【００６７】
更に、サーバＰＣ１６１内のデータベース１７９（図１のデータベース１１９に対応）とのデータのやり取りを行うためのデータベース共通ライブラリ１８０や、各種機能を実現するユーティリティライブラリ１８１を有している。
【００６８】
次に、画像形成装置１０９の構成例について、図２Ａを用いて説明する。
【００６９】
図２Ａは本発明の実施形態の画像形成装置の詳細構成を示す図である。
【００７０】
画像形成装置１０９は、スキャナ部２０１、プリントエンジン２０２、タッチパネルで制御する制御部２０３、定着部２０４、給紙部２０５、排紙部２０６、フィニッシング装置２０７、排紙された用紙を保存するビン２０８から構成される。そして、この画像形成装置１０９は、これらの構成要素によって、複写機能、印刷機能、ファクス機能、データ転送機能等の複数種類の機能を実現するＭＦＰ（Multi Function Peripheral）として機能する。
【００７１】
画像形成装置２００は、スキャナ部２０１、プリントエンジン２０２、タッチパネルで制御する制御部２０３、定着部２０４、給紙部２０５、排紙部２０６、フィニッシング装置２０７、排紙された用紙を保存する排紙ビン２０８から構成される。尚、スキャナ部２０１は、自動給紙装置（ＡＤＦ）を有している。
【００７２】
画像形成装置２００は、例えば、制御部２０３からの操作に基づいて、スキャナ部２０１から原稿を読み取り、指定された印刷モードで、プリントエンジン２０２によって印刷処理が実行される。印刷処理によって印刷用紙に印刷された印刷物は、排紙部２０６から排紙され、必要に応じて、フィニッシング装置２０７でフィニッシング処理（ステイプル処理、パンチ処理等）がなされ、排紙ビン２０８に出力される。
【００７３】
次に、制御部２０３によって実現される機能構成について、図２Ｂを用いて説明する。
【００７４】
図２Ｂは本発明の実施形態の制御部の機能構成を示す図である。
【００７５】
尚、制御部２０３には、画像形成装置１０９を制御するためのＣＰＵ、各種データを記憶したり、データ作業領域として機能するＲＡＭ、本実施形態の処理を実現するための制御プログラムを含む各種プログラムを記憶するＲＯＭ等を有している。
【００７６】
２３１は画像形成装置１０９全体を制御する本発明の実行環境であり、例えば、画像形成装置１０９の各種機能をリアルタイムに制御可能なリアルタイムＯＳの各モジュールで実現される。また、この実行環境２３１は、ＣＰＵに、命令してクリティカルに画像形成装置１０９のオプション装置、拡張カードを含む各機能を制御することが可能なライブラリ群で実現されても良い。更に、この実行環境２３１は、その上位で動作するアプリケーションに対して、インタフェース・コマンドを提供するモジュール群により実現されるものである。
【００７７】
２３２は実行環境２３１上で動作するコントローラ制御部である。２３３はアプリケーション・プログラミング・インタフェース（以下、ＡＰＩ）である。このＡＰＩ２３３は、アプリケーション２３６〜２３８等からの命令の入力の命令列に応答して、コントローラ制御部２３２にアクセスするための処理を、画像形成装置１０９に対する制御コマンドを実行環境２３１に送信する機能を有する。
【００７８】
２３４は、本実施形態で説明する処理を実現する特定のアプリケーションを実行するために最適な実行環境であり、例えば、Ｊａｖａ（登録商標）の仮想マシンにより実現される。２３６、２３７、２３８は仮想マシン２３４上で動作するアプリケーションであり、ＡＰＩ２３３を使用してコントローラ制御部２３２に各種処理を依頼する。また、ネットワークを介してネットワーク１０７上の各種情報処理装置１６１、１５２〜１５４と通信することも可能である。
【００７９】
２３５は仮想マシン２３４が使用する資源を管理するリソース管理部であり、実行環境２３１上で動作する。リソース管理部２３５は、仮想マシン２３４自身、ＡＰＩ２３３、あるいは仮想マシン２３４上の全アプリケーション２３６〜２３８がメモリ等のリソース資源を使用する際、予め決められた以上の資源が使用できないように制限する。
【００８０】
＜レイアウト編集アプリケーションの概要＞
まず、バリアブルデータプリントの概略について、図３Ａを用いて説明する。
【００８１】
図３Ａは本発明の実施形態のバリアブルデータプリントの概略を説明するための図である。
【００８２】
レイアウト編集アプリケーション１２１のユーザインタフェース１０３により、ユーザからの操作指示に従いページ上に複数のコンテナ１８１〜１８３を配置する。そして、ユーザインタフェース１０３により、その各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート１８０が生成される。
【００８３】
また、ユーザインタフェース１０３は、ドキュメントテンプレート１８０とデータソース１９０（例えば、データベース１１９）との関連付け、更に各コンテナとデータソース１９０内の各データフィールドとの関連付けを行う。各コンテナとデータソース１９０内の各データフィールドとの関連付けを示す関連付け情報は、ドキュメントテンプレート１８０内に記述され、該ドキュメントテンプレート１８０は、ＨＤＤ１４０に格納される。また、データソース１９０は、レコード単位で項目データが記載されているファイルであり、ＨＤＤ１４０に格納されている。
【００８４】
レイアウトエンジン１０５は、ユーザからの印刷指示もしくはプレビュー指示に応じて、ドキュメントテンプレート１８０の各コンテナ１８１〜１８２に、関連付け情報で関連付けられたデータをデータソース１９０から読み込む。そして、そのデータをレコード単位でコンテナに流し込み（例えば、データレコード１のデータフィールドＡ〜Ｃをコンテナ１８１〜１８３へ流し込む）、流し込まれたデータに応じて各コンテナのサイズ等を調整（レイアウト調整）する。
【００８５】
プレビュー指示の場合は、レイアウト調整されたドキュメントイメージを生成し、ディスプレイ装置１４４の画面上にプレビューとして表示するべく出力される。また、印刷指示の場合は、レイアウトエンジン１０５もしくはプリンタドライバを用いて生成したドキュメントイメージを印刷データとして画像形成装置１０９へ出力する。データレコード１，２，３…を順次処理することにより、バリアブルデータプリントが実現されることになる。
【００８６】
＜レイアウト編集アプリケーションの説明＞
以下、レイアウト編集アプリケーション１２１について説明する。
【００８７】
まず、ユーザインタフェース１０３によって実現されるユーザインタフェースの一例について、図３Ｂを用いて説明する。
【００８８】
［メインウインドウ］
図３Ｂは本発明の実施形態のユーザインタフェースの一例を示す図である。
【００８９】
図３Ｂに示すように、ユーザインタフェース１０３は、操作時にアプリケーションウインドウ３０１によって形成されたユーザインタフェースをディスプレイ装置１４４に表示させる。このアプリケーションウインドウ３０１は、メニューバー３０２、ツールバー３０３、ワークエリア３０６とオプションのパレット３１１を有する。
【００９０】
メニューバー３０２とツールバー３０３は非表示にしたり、画面上の色々な場所に移動することが可能である。また、ワークエリア３０６は、マウス１３３の操作によってその場所を移動させることが可能である。また、パレット３１１はオプションであり、目的に応じて表示／非表示を制御することができる。更に、カーソル／ポインタ３１３は、マウス１３３の指示位置を表示する。
【００９１】
メニューバー３０２は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム３０４を有する。
【００９２】
ツールバー３０３は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能な多くのツールボタンとウィジット（部品）３０５を有する。
【００９３】
ルーラー３０８はオプションであり、ワークエリア３０６内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使用される。
【００９４】
パレット３１１は、バリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット３１１は、移動、リサイズ、クローズをするためのウインドウコントロール３１２を有する。また、パレット３１１は、ワークエリア３０６の前面に表示したり、あるいはオブジェクトの背面に隠すことができる。更に、パレット３１１は、アプリケーションウインドウ３０１の範囲内のみにその表示を制限したり、アプリケーションウインドウ３０１の外側にその一部或いは全体を表示することが可能である。
【００９５】
ツールバー３０３には、図４に示されるような、ユーザが選択可能な複数種類の『ボタン』４０３〜４０６が配置されている。
【００９６】
（１）選択ツールボタン４０３：コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック／ロック解除のために使われる。コンテナの選択は、コンテナの周囲に選択ボックスをドラッグすることによりなされる。また、キーボード１３２上のＣＴＲＬキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
【００９７】
（２）テキストコンテナツールボタン４０４：スタティックあるいはバリアブルテキストを有するコンテナを作成するために使用される。
【００９８】
（３）イメージコンテナツールボタン４０５：スタティックあるいはバリアブルイメージを有するコンテナを作成するために使用される。
【００９９】
（４）リンクツールボタン４０６：コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使用される。
【０１００】
尚、これらのボタンは、周知の技術で知られているように、操作状況に合わせて変化するアイコンのツールチップとして実装される。
【０１０１】
また、アプリケーションウインドウ３０１は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。
【０１０２】
また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。
【０１０３】
よって、レイアウト編集アプリケーション１２１で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものである。そのため、動的コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
【０１０４】
一方、この動的コンテナに対して、コンテナのサイズや位置が固定であるものを、静的コンテナと呼ぶ。
【０１０５】
［ドキュメントテンプレート］
図３Ｂにおいて、ワークエリア３０６は、ドキュメントテンプレート（１８０：基本レイアウト）のデザインを表示・編集するために使われる。これは、ユーザがドキュメントテンプレートをデザインする過程において、印刷されるドキュメントの概観をユーザに提示することを可能とする。これにより、ユーザは、データソース（１９０）とマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを容易に理解することができる。
【０１０６】
また、データソースがドキュメントテンプレートに関連付けられていた場合は、現在のドキュメントのプレビューができるように、対応するバリアブルテキストやイメージがレイアウトされた各コンテナに表示される。
【０１０７】
ドキュメントテンプレートにおけるドキュメント構造とコンテナを描写する視覚的な手がかり（コンテナの枠線、アンカー、スライダー、リンク等）は、ドキュメントテンプレート作成時には常に表示される。また、バリアブルデータを流し込むプレビュー時には、視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときに表示される。
【０１０８】
ワークエリア３０６は、スクロールバー３０７と、オプションのルーラー３０８と、ドキュメントテンプレート３０９を含む。ドキュメントテンプレート３０９は、ページが複数あることを示すことができる。また、ドキュメントテンプレート３０９は、図３Ａのドキュメントテンプレート１８０に相当するものである。
【０１０９】
与えられたドキュメントテンプレートのページサイズは、周知の技術を用いて、ユーザによって指定される。例えば、メニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。
【０１１０】
それぞれのドキュメントでの実際のページ数は、関連付けられたデータソース内のバリアブルデータによって変化する可能性がある。これは、ドキュメントテンプレート内に動的表のように、バリアブルデータの量により大きさが変更されるフィールドが設定されている場合である。つまり、この場合には、１ページ内にバリアブルデータをフィットできないバリアブルデータが読み込まれると、追加のページが自動的に作成されるからである。
【０１１１】
それぞれのページ内に示される境界線３１０は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージンである。
【０１１２】
また、図４では、１ページのドキュメントテンプレート３０９上に表示され得るオブジェクトの例を示している。
【０１１３】
このようなオブジェクトとしては、コンテナ４０７、４０８と、任意に適用するアンカーアイコン４０９、固定されている辺４１１、４１４、固定されていない辺４１０、リンク４１２、そしてスライダー４１３がある。
【０１１４】
アンカーアイコン４０９は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン４０９が設定されると、設定された個所の位置が固定となる。つまり、図４の例では、アンカーアイコン４０９は、コンテナ４０７の左上の角に設定されている。そのため、コンテナ４０７はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合には、右方向及び下方向に拡大可能であることを示している。
【０１１５】
一方、アンカーアイコン４０９が辺に設定されている場合は、その辺が固定となり、その他の３辺の各方向に拡大可能である。また、アンカーアイコン４０９がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、４方向に拡大可能である。リンク４１２についての詳細は後述するが、これは、コンテナ４０７とコンテナ４０８が関連付けられていることを示しており、このリンク４１２に設定されている長さ（範囲指定可能）を保ちつつ、コンテナ４０８が右方向に移動可能であることを示している。スライダー４１３は、設定されている辺と水平方向に移動可能であることを示している。
【０１１６】
［コンテナ］
次に、データベース中の各レコードに含まれる複数種類のデータフィールドのデータを差し込むためのフィールド領域であるコンテナについて説明する。コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変のテキスト／イメージ（複数種類のデータフィールドのデータ）が流し込まれ、描画されるフィールド領域（これを部分領域と呼ぶ）である。そして、このコンテナは、図４に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインタフェースを介して、ユーザからの操作指示により、コンテナは、マウス１３３の操作により移動、サイズ調整、再作成される。
【０１１７】
より正確には、コンテナは、設定の集まり、視覚的表現、そしてインタラクションと編集動作をもっている。以下、実施形態におけるコンテナの定義を示す。
【０１１８】
（１）コンテナは、固定あるいは可変のコンテンツを持つ。可変コンテンツ（バリアブルデータ）は、データソースから取得したデータがドキュメント毎、つまり、レコード毎に異なる可能性があるという意味でダイナミック（動的）であるということができる。但し、実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは印刷には適していないため、ここでは、意図していない。
【０１１９】
同様に、固定コンテンツは、コンテナを使って生成される全てのドキュメントで、同じように表示される。しかしながら、可変コンテンツとリンクが設定されている場合、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメントで位置が異なる可能性がある。
【０１２０】
（２）コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定を、コンテナ属性と呼ぶ。コンテナ属性は、各コンテナ毎に設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
【０１２１】
（３）コンテナは、ドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツは、データソースからの特定のデータの表示を提供する。コンテナのこの表現は、例えば、印刷されるか、ディスプレイ装置１４４のスクリーン上に表示されるか、その両方が可能である。
【０１２２】
（４）コンテナは、図４に示されるように視覚的な手がかりとしてのユーザインタフェースを有している。例えば、コンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインタフェース（ＧＵＩ）を有する。ＧＵＩコンポーネントは、ディスプレイ装置１４４のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション１２１のユーザインタフェース１０３は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、さらにコンテナの設定の編集や表示を可能にするための機能を有している。
【０１２３】
ユーザインタフェースの機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコンがある。あるいは、コンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。
【０１２４】
［コンテナの制約］
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御に関する制約がある。これらの制約（固定／可変コンテンツをコンテナと結びつけることを含む）は、ユーザが一つのドキュメントテンプレートから多数のドキュメントの生成をコントロールする主要な方法である。
【０１２５】
制約の一つの例には、『このコンテナのコンテンツの高さは最大４インチです』がある。また、別の制約の例には、『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』がある。ここに記述される内容は、ＧＵＩを使ってこのような制約を表示、編集するためのいろいろな方法である。
【０１２６】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。コンテナは、位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータプリントに特化した方法における表示・編集に焦点を合わせる。
【０１２７】
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ（描画サイズ）や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定（指定）や表示のために所定のユーザインタフェースが利用される。
【０１２８】
１つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。従って、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインタフェース１０３を参照して、コンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
【０１２９】
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
【０１３０】
（１）コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
【０１３１】
（２）コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
【０１３２】
（３）距離（リンクの長さ）が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
【０１３３】
（４）コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。但し、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となる。しかしながら、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
【０１３４】
（５）コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。但し、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
【０１３５】
（６）コンテナの垂直軸は、コンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均（即ち、左右の中央位置）は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっともものまで、垂直軸は全てのドキュメントで同じ水平位置となる。尚、コンテナの高さと垂直位置はこの制約によって影響されない。
【０１３６】
（７）同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。但し、コンテナの幅と水平位置はこの制約によって影響されることはない。
【０１３７】
（８）水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。但し、コンテナの幅・高さは、この制約によって影響されない。
【０１３８】
（９）コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【０１３９】
（１０）垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
【０１４０】
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間（レコード間）で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。
【０１４１】
そのため、レイアウト編集アプリケーション１２１では、各コンテナ（部分領域）について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにしている。これにより、ユーザはドキュメントテンプレート１８０の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
【０１４２】
［コンテナ表示・編集］
−−新規コンテナの作成方法−−
コンテナは、テキストコンテナとイメージコンテナの２種類で記述される。テキストコンテナはテキスト及び埋め込みのイメージを有する。イメージコンテナは、イメージだけを有する。
【０１４３】
図４で示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツール４０４あるいはイメージコンテナツール４０５をマウス１３３でクリックし、ドキュメントテンプレート３０９上に四角形をドラッグする。これによって、当該ドキュメントテンプレート３０９上に作成される。
【０１４４】
あるいは、コンテナは、所望のテキストコンテナツール４０４あるいはイメージコンテナツール４０５をアクティブにした後に、ドキュメントテンプレート３０９上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス１３３のクリック操作に応じてデフォルトサイズのコンテナがテンプレート上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。
【０１４５】
尚、コンテナサイズは、自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置される等、種々の方法が考えられる。ここで、生成されたコンテナをマウス等の入力装置により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。
【０１４６】
［コンテナの表示方法］
図５（Ａ）から（Ｄ）は、コンテナの辺に関する表示ルールを例示している。
【０１４７】
レイアウト編集アプリケーション１２１は、コンテナの辺の状態を表現するために、実線５０３（アイテム）あるいは点線５０４を用いて辺を表す。これに加えて、アンカー５０６、５０７、５０９（コンテナの辺の近くに描画される線、形状、アイコン）を用いる。更に、ハンドル５０２（移動、修正するために領域の辺上あるいは近傍に描画されるコントロール点）、スライダー４１３（辺の両側に描画される短い並行線、図４参照）、拡縮アイコン５０５、色を用いる。
【０１４８】
図５（Ａ）〜（Ｄ）に示されるコンテナ表示方法のルールは、以下の通りである。
【０１４９】
（１）それぞれの辺を固定するために、実線で描画する。
【０１５０】
（２）幅が固定の場合は、左と右の辺を実線で描画する。
【０１５１】
（３）高さが固定の場合は、上と下の辺を実線で描画する。
【０１５２】
（４）軸は描画しない。
【０１５３】
（５）（１）〜（３）によって描画されていないそれぞれの辺の近くには、拡縮アイコンが描画され、それらの辺を点線で描画する。
【０１５４】
（６）垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
【０１５５】
（７）それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
【０１５６】
（８）垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
【０１５７】
ルール（１）、（２）、（３）で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール（５）のように、可変の辺は、点線で描画される。ルール（６）、（７）、（８）で定義された固定された点は、アンカーを表示し、いくつかの固定された辺は、スライダーを表示し、他はハンドルを表示する。
【０１５８】
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。例えば、もしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画される可能性がある。
【０１５９】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインタフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインタフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【０１６０】
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィック機能を提供する。その表現の解釈は、下記の通りである。
【０１６１】
（１）図４の辺４１０のように、点線は、コンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
【０１６２】
（２）実線の辺４１４は固定されている、あるいはコンテナの幅・高さが固定されている（コンテナ４０８では、４辺が実線であり、両方が固定されている）ために制限された辺であることを意味する。
【０１６３】
（３）アンカーは、辺及び軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図４のアイコン４０９は、辺４１４の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
【０１６４】
（４）スライダーは、関係付けられた辺の長さが固定されているが、並行移動する可能性があることを意味する。例えば、図４で、スライダー４１３は、コンテナ４０８のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。
【０１６５】
例えば、コンテナ４０８と関連付けられている（リンク設定されている）コンテナ４０７に流し込まれるデータの画像サイズもしくはテキスト量が少ない場合は、コンテナ４０７のサイズが小さくなる。そのため、コンテナ４０８は、左方向にスライド（並行移動）してレイアウトされて表示されることになる。また、コンテナ４０７のサイズが大きくなる場合は、逆にコンテナ４０８は右方向にスライドしてレイアウトされることになる。
【０１６６】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを、選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【０１６７】
尚、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
【０１６８】
図５（Ａ）で、コンテナ５０１は、幅・高さの両方が固定されていない（可変である）。固定された辺５０３は実線で表現され、可変の辺５０４は点線で表現されている。拡縮アイコン５０５は、隣接する辺５０４が可変であることを示す。他の形態のインジケータを代わりにあるいは追加的に用いてもよい。
【０１６９】
図５（Ｂ）において、コンテナ５０１は、幅・高さ両方が可変である。アンカーアイコン５０６が、交差している両方の辺５０３の角の位置が固定されていることを明示的に表すべく追加されている。
【０１７０】
図５（Ｃ）において、コンテナ５０１は、コンテナの幅及び高さの両方が可変であり、任意のアンカーアイコン５０７で示されるような中心点の周りを平等に広がるという状態を示している。即ち、コンテナ５０１は、アンカーアイコン５０７を中心に拡大あるいは縮小が可能である。ここでの拡大／縮小は、アンカーアイコン５０７の位置が常にコンテナ５０１の中心点となるようにレイアウト調整される。
【０１７１】
図５（Ｄ）において、コンテナ５０１は、上辺５０８が固定されているが、幅・高さの両方が可変である。上辺５０８の中心に位置付けられて示されるアンカーアイコン５０９は、固定されている。そしてコンテナ５０１の左辺・右辺（５０２）は、アンカーアイコン５０９を通って垂直な中心軸（垂直軸）の周りを、拡大・縮小する。
【０１７２】
［リンク］
リンクは、コンテナとコンテナの関連を示している。関連とは、コンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウト計算を実行する。例えば、上述のように、図４のリンク４１２は、コンテナ４０７とコンテナ４０８とを関連づけている。リンクの設定方法及び、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
【０１７３】
［リンクの設定方法］
次に、コンテナ同士を関連付けるためのリンクの設定について説明する。
【０１７４】
図６は本発明の実施形態のリンクの設定処理を示すフローチャートである。また、図７は本発明の実施形態のリンク設定時のユーザインタフェースの遷移例を示す図である。以下、図６及び図７を用いてコンテナにリンクを設定する方法について説明する。
まず、ステップＳ６０１において、レイアウト編集アプリケーション１２１は、ユーザインタフェースのワークエリア３０６上に編集対象の選択されたドキュメントテンプレートを表示する。リンクを設定するためには、リンクを設定するためのコンテナ（最低２つ）がドキュメントテンプレート上に作成されている必要がある。図７（Ａ）〜（Ｃ）では、ステップＳ６０１で、２つのコンテナを作成してリンクを設定する場合のユーザインタフェースの遷移例を示している。
【０１７５】
次に、ステップＳ６０２において、レイアウト編集アプリケーション１２１は、リンクツールを選択状態にする（図４のボタン４０６をクリックすることにより選択状態となる）。
【０１７６】
図７（Ａ）において、コンテナ７０１と７０２はすべて固定されている辺で構成されているものとする。また、７０３と７０４は、図４の４０９と同じであり、アンカーを意味する。７０５は、マウスポインタを意味している。
【０１７７】
さて、リンクツールが選択状態となっている間に、ユーザはリンクを設定する２つのコンテナの内の一方（コンテナ７０１とする）をクリックして選択する。この操作に応じて、レイアウト編集アプリケーション１２１のユーザインタフェース１０３は、第１のコンテナが選択されたことを認識し（ステップＳ６０３）、選択されたコンテナを特定する情報を保持する。
【０１７８】
また、以降のマウスカーソルの移動に応じた軌跡を画面に表示するようにする。例えば、図７（Ｂ）における線分７０６は、（Ａ）の状態におけるクリック位置と現在のマウスポインタ７０５の位置とを結んだ線を示しており、このＵＩによりどの位置にリンクが設定されるのかをユーザに明示することができる。
【０１７９】
次に、ユーザは、図７（Ｂ）で示されるように、もう一方のコンテナ（コンテナ７０２）までマウスポインタ７０５を移動してクリックする。この操作に応じて、ユーザインタフェース１０３は第２のコンテナが選択されたことを認識し（ステップＳ６０４）、選択されたコンテナを特定する情報を保持する。
【０１８０】
レイアウト編集アプリケーション１２１は、ステップＳ６０３で選択された第１のコンテナと、ステップＳ６０４で選択された第２のコンテナとの間にリンクを設定する。
【０１８１】
こうして、ユーザにより選択された２つのコンテナ７０１、７０２の間にリンクが設定されると、リンク７０７を表示する（ステップＳ６０５）。更に、このリンク設定を受けて、コンテナの表示状態は、図７（Ｃ）の状態になる（ステップＳ６０６）。
【０１８２】
即ち、リンクが設定されたことにより、コンテナのＵＩが自動的に変更される。ここでは、リンクによって関連付けられた辺が可変となり、点線で示されている状態を示している。つまり、図７（Ｃ）において、７０８は点線で示されている辺であり、前述した通り可変の辺を示すものである。
【０１８３】
尚、図７（Ｃ）のようなコンテナの辺の状態の変化は、リンクを設定したことによりコンテナの辺を可変にする必要が生じたことにより自動的に実行されたものである。これは、リンクを設定したにもかかわらず全ての辺が固定であるという矛盾の発生を防ぐことを目的としている。また、７０９は図５の５０５と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したマークである。また、図７（Ｃ）の例では、左のコンテナの右辺と右のコンテナの左辺が可変な状態へ変化したが、これは一例であり、例えば、右コンテナが図４のスライダー４１３を持つ設定に変化してもかまわない。
【０１８４】
＜レイアウトエンジンによるレイアウト計算処理＞
［レイアウト計算方法（全体フロー）］
本実施形態のレイアウト編集アプリケーション１２１は、少なくとも２種類の操作モードを有している。１つは、ユーザインタフェース１０３を用いてコンテナを作成し、そのコンテナ間に関連付け（リンク設定）を行ってレイアウトを作成するレイアウトモードである。もう１つは、レイアウトエンジン１０５により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードである。
【０１８５】
このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。但し、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン１０５が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。
【０１８６】
図８は本発明の実施形態のレイアウト計算処理を示すフローチャートである。
【０１８７】
まず、プレビューモードが選択される（ステップＳ８０１）。プレビューモードになったら、レイアウト編集アプリケーション１２１は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各フィールドデータを各コンテナに挿入する（ステップＳ８０２）。
【０１８８】
各コンテナへフィールドデータを挿入すると、レイアウト編集アプリケーション１２１は、そのレコードをレイアウトするためのレイアウト計算を行い、必要に応じてレイアウト調整を行う（ステップＳ８０３）。尚、ステップＳ８０３におけるレイアウト計算の詳細については後述する。
【０１８９】
そして、レイアウト編集アプリケーション１２１は、ステップＳ８０３で計算されたレイアウトを表示（プレビュー）する（ステップＳ８０４）。レイアウト編集アプリケーション１２１は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判定する（ステップＳ８０５）。ステップＳ８０５で、他のレコードについてプレビューを行う必要がない場合（ステップＳ８０５でＮＯ）、プレビューモードを終了する（ステップＳ８０７）。
【０１９０】
一方、他のレコードについてプレビューを行う場合（ステップＳ８０５でＹＥＳ）、レイアウト編集アプリケーション１２１は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う（ステップＳ８０６）。
【０１９１】
尚、プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。従って、ステップＳ８０４は存在せず、ステップＳ８０５は印刷するレコードを全て処理したかの判断を行う。ステップＳ８０３で、レイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード（印刷対象の指定された全レコード）について印刷データの出力が終了した時点で、本処理を終了することになる。
【０１９２】
［レイアウト計算方法（詳細）］
次に、ステップＳ８０３のレイアウト計算の詳細について、図９を用いて説明する。
【０１９３】
図９は本発明の実施形態のレイアウト計算処理の詳細を示すフローチャートである。
【０１９４】
尚、図９は、レイアウト計算処理についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの１レコードの印刷／プレビュー時のレイアウト計算処理に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
【０１９５】
まず、レイアウト編集アプリケーション１２１は、レイアウトを計算するコンテナの集合を設定する（ステップＳ９０１）。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。
【０１９６】
例えば、図１０を参照すると、ページ上に４つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナＡとコンテナＢ、そしてコンテナＣとコンテナＤがリンクによって関連付けされている。
【０１９７】
従って、コンテナＡ、Ｂが集合１、コンテナＣ、Ｄが集合２となる。即ち、リンクによって接続されたコンテナ群を一つの集合として特定する。前述したように、１１０１はアンカー、１１０２は固定された辺、１１０３はコントローラ、１１０４は可変の辺の変化方向を示している矢印、１１０５は可変の辺、１１０６はリンク、そして、１１０７はスライダーを示している。
【０１９８】
次に、レイアウト編集アプリケーション１２１は、ステップＳ９０１で設定したコンテナの集合から、レイアウトを計算するために一つを選択する（ステップＳ９０２）。そして、選択したコンテナの集合について、レイアウトの計算を行う。
【０１９９】
まず、選択したコンテナの集合に含まれる可変要素である２つのコンテナＡ、Ｂについて、流し込まれるデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。
【０２００】
具体的には、レイアウト編集アプリケーション１２１は、コンテナＡが画像データ用コンテナであるか、テキスト用コンテナであるかを判定する。この判定は、前述したように、コンテナに対して設定されている属性により判定できる。
【０２０１】
次に、レイアウト編集アプリケーション１２１は、コンテナＡに流し込まれるデータを読み込む。そして、コンテナＡが画像データ用コンテナである場合は、その画像データのサイズ（幅、高さのピクセル数、及び解像度）がコンテナＡの制約を受けない場合の大きさになる。
【０２０２】
また、コンテナＡがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナＡのコンテナ属性で指定されている文字属性に基づいて、コンテナＡに流し込まれるべきデータ量を計算できる。この文字属性には、例えば、フォントタイプ、フォントサイズ、文字ピッチ、行ピッチ等がある。
【０２０３】
ここで、テキスト用コンテナの場合は、コンテナＡの縦横比が制約を考えないと決定できないため、制約を当てはめる。図１０の例では、コンテナＡは、左上及び左下の角にアンカーが設定されているため、高さ（縦方向）が固定となる。よって、レイアウト編集アプリケーション１２１は、コンテナＡの基本パターンとして設定されている幅（横方向）のコンテナＡに、計算したデータ量（テキスト量）の文字を流し込めるか否かを判定する。
【０２０４】
すべての文字を流し込めると判定された場合は、コンテナＡは、基本パターンで設定されているサイズ（幅、高さ）に変更はない。また、すべての文字を流し込めないと判定された場合は、コンテナＡは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション１２１は、コンテナＡの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナＡのサイズを算出する。
【０２０５】
次に、レイアウト編集アプリケーション１２１は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う（ステップＳ９０３）。
【０２０６】
レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。
【０２０７】
レイアウト編集アプリケーション１２１は、ステップＳ９０２で算出したコンテナの集合のサイズを計算する。つまり、コンテナＡとコンテナＢとリンク１１０６（ここでは固定リンク）の合計サイズを計算する。そして、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ（図１０の例ではコンテナＡとコンテナＢのそれぞれのアンカーアイコンの距離に相当する）との差を計算する。コンテナＡやコンテナＢの幅が大きくなると、前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション１２１は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
【０２０８】
次に、レイアウト編集アプリケーション１２１は、レイアウトの最適化を行い、そのレイアウトがルールに違反しているか否かを判定する（ステップＳ９０４）。ルールに違反していない場合（ステップＳ９０４でＹＥＳ）、ステップＳ９０５に進む。一方、ルールに違反している場合（ステップＳ９０４でＮＯ）、ステップＳ９０３に戻り、再度ルールを違反しないように計算をする。
【０２０９】
ここでルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。
【０２１０】
そして、ステップＳ９０２〜ステップＳ９０４の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション１２１は、ページ全体のレイアウトの計算が終了したか否かを判定する（ステップＳ９０５）。計算が終了していない場合（ステップＳ９０５でＮＯ）、ステップＳ９０２に戻る。一方、計算が終了している場合（ステップＳ９０５でＹＥＳ）、処理を終了する。
【０２１１】
次に、上述のレイアウト計算時のＵＩ例について、図１１を用いて説明する。
【０２１２】
図１１は本発明の実施形態のレイアウト計算処理におけるユーザインタフェースの一例を示す図である。
【０２１３】
図１１（Ａ）は、あるレコードが挿入されレイアウトが決定されている状態を表している。１００１と１００２はアンカー、１００３と１００４は固定された辺、１００５は可変の辺、１００６は可変の辺の変化方向を示している矢印、１００８はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。
【０２１４】
図１１（Ｂ）は、図１１（Ａ）の状態に新しいコンテンツのサイズを重ねて示している。１００９はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。
【０２１５】
図１１（Ｃ）は、レイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際に挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図１１（Ｃ）で示されるように、図１１（Ｂ）で示した挿入されるコンテンツサイズ１００９と計算後のコンテンツサイズ（０１０は、双方において同等な差異がある。
【０２１６】
［可変リンクの設定］
図１２は本発明の実施形態の可変リンクの設定のためのユーザインタフェースの一例を示す図である。
【０２１７】
図１２では、図４と同様に、アプリケーションウインドウ３０１とツールバー３０３が構成されている。図１２の状態では、ドキュメントテンプレート３０９上にコンテナ１２０３とコンテナ１２０４が存在する。それぞれのコンテナはアンカーアイコン１２０１、アンカーアイコン１２０２と固定された辺１２０５、辺１２０６を含んで構成されている。
【０２１８】
コンテナ１２０３と１２０４の間には、可変サイズのリンク１２０９があり、コンテナ１２０３とコンテナ１２０４を結んでいる。コンテナ１２０３とコンテナ１２０４の間には、リンク１２０９が設定されているのでそれぞれの右辺１２０７と左辺１２０８は点線で表現されている。このため、各コンテナにインジケータ１２１０、インジケータ１２１１が表示され、それぞれ辺１２０７と辺１２０８が可変であることを示している。
【０２１９】
図１３は本発明の実施形態のリンク設定機能を実現するユーザインタフェースの一例を示す図である。
【０２２０】
ここでは、リンク１２０９の情報をセットするためのダイアログウインドウ１４０１の例を示している。このダイアログウインドウ１４０１は、タイトルバー１４０２、ツールボタン１４０３、ダイアログウインドウ１４０１の開閉を行うボタン１４０４、各種の情報をセットするエリア１４０９で構成されている。
【０２２１】
このダイアログウインドウ１４０１では、リンクタイプが可変長（１４０７）のリンクであるか、あるいは固定長（１４０６）のリンクであるかの択一的な選択を行えるラジオボタンからなるリンクタイプフィールド１４０５が構成されている。
【０２２２】
リンクタイプが可変の場合には、リンクの長さの最小値フィールド１４１０（最小距離）、最大値フィールド１４１２（最大距離）、ならびに基準値フィールド１４１１（距離）からなるリンク距離フィールド１４０８が構成されている。
【０２２３】
図１３のダイアログウインドウ１４０１は、例えば、図６及び図７で説明したリンクの設定操作によって２つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ１４０１が自動的に表示されるようにしてもよい。ここで、各コンテナ間の距離の基準値フィールド１４１１の基準値は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
【０２２４】
次に、可変リンクの設定方法について、図１４を用いて説明する。
【０２２５】
図１４は本発明の実施形態の可変リンクの設定処理を示すフローチャートである。
【０２２６】
例えば、図１０のコンテナＡとコンテナＢの間に、図６及び図７で説明したリンクの設定操作によって、２つのコンテナ間にリンクを設定すると、まず、固定サイズのリンクが設定される。そして、このリンクを選択して、図１４に示す処理を実行することにより、当該リンクを固定サイズのリンク１１０６（図１０）の状態から可変サイズのリンク１２０９（図１２）へと変更することができる。
【０２２７】
まず、マウス１３３により所望のリンク（例えば、図１０のリンク１１０６）を選択状態とする（ステップＳ１３０２）。次に、リンクプロパティを表示させるための所定の操作が行われる。これにより、レイアウト編集アプリケーション１２１のユーザインタフェース１０３は、選択状態のリンク（以下、対象リンクという）に対応したダイアログウインドウ１４０１（図１３）を表示する（ステップＳ１３０３）。
【０２２８】
尚、リンクの選択操作としては、コンテナの基本パターンの設定時と同様に、マウス１３３の右クリックあるいはキーボード１３２の特定キーの操作等、いかなるものであってもよい。
【０２２９】
表示されるダイアログウインドウ１４０１には、選択されたリンクの現在の状態が示される。本例では、リンク１１０６が選択されたので、この段階ではリンクサイズは固定であり、リンクタイプフィールド１４０５においては、固定長を示す距離１４０６が選択されている。
【０２３０】
このダイアログウインドウ１４０１において、リンクを固定サイズから可変サイズに変更するために、リンクタイプフィールド１４０５において、リンクサイズを可変に設定するために、可変長ボタン１４０７を選択する（ステップＳ１３０４）。
【０２３１】
これにより、リンク距離フィールド１４０８内に配置されている最大距離フィールド１４１２、最小距離フィールド１４１０、基準値フィールド１４１１が有効になり、数値の設定が可能となる。ユーザは、リンクの可変サイズを設定するために、そのリンクの長さの最大値を最大距離フィールド１４１２に、最小値を最小距離フィールド１４１０に、現在の値を基準値フィールド１４１１に設定する（ステップＳ１３０５）。
【０２３２】
設定を終えると、ユーザは一般的なダイアログウインドウ開閉ボタン１４０４によって当該設定の適用を指示する。ユーザインタフェース１０３は、この指示を検出すると、当該対象リンクに上記設定状態を反映させる。この結果、図１２のリンク１２０９に示すような状態にリンクのＵＩ表示を変更する（ステップＳ１３０６）。
【０２３３】
以上のダイアログウインドウ１４０１の設定情報は、例えば、メモリ１３６に格納される。
【０２３４】
次に、レイアウト結果の一例について、図１５及び図１６を用いて説明する。
【０２３５】
図１５は本発明の実施形態の固定サイズのリンクを使用した場合のレイアウト結果を示す図である。
【０２３６】
レイアウト計算方法は、前述したとおりに従って行われる。例えば、図１５において、コンテナ１２０３とコンテナ１２０４にそれぞれ違ったサイズのイメージデータが挿入された場合を考える。この場合、それぞれのコンテナはデータの大きさを最適とみなし、コンテナ１２０３は挿入されたイメージサイズになる枠１５０４（最適コンテナサイズ）に近づこうと右方向へサイズを変更しようとする。同様に、コンテナ１２０４は挿入されたイメージサイズになる枠１５０５（最適コンテナサイズ）に近づこうと左方向へサイズを変更しようとする。
【０２３７】
しかし、コンテナ１２０３とコンテナ１２０４はアンカー１２０１とアンカー１２０２によってそれぞれ左辺１２１２と右辺１２１３の移動ができないため、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ１２０３と１２０４間には固定サイズのリンク１５０３が設定されており、レイアウト計算時にその長さが維持されるため、コンテナ１２０３とコンテナ１２０４のサイズが変更されることになる。
【０２３８】
その結果、コンテナ１２０３とコンテナ１２０４は、データの縦横比に合わせた最適なサイズを確保することができず、最終的に、図１５に示すように、最適なサイズ（枠１５０４、枠１５０５）よりも小さくなってしまう。即ち、リンク１５０３のサイズが固定であるため、コンテナ１２０３とコンテナ１２０４は最適サイズを達成できない（図１５において、各コンテナ内の一点差線で示した範囲がデータの持つ縦横比である）。
【０２３９】
一方、図１６は図１５と同様の状態でリンクを可変サイズにした場合を示している。
【０２４０】
この場合、上記の例で、コンテナ１２０３とコンテナ１２０４の間には図示の通り可変サイズのリンク１６０３が設定されている。従って、コンテナ１２０３とコンテナ１２０４のサイズが変更される際には、リンクサイズが縮まることでコンテナ１２０３とコンテナ１２０４のサイズを、図１５の例より大きくすることができる。
【０２４１】
この結果、挿入されるデータサイズに合わせた最適なサイズを達成できる、あるいはより挿入データサイズ（最適サイズ）に近いコンテナの枠を設定することができる。図１６はこの結果を示しており、図１２の可変リンク１２０９はレイアウト計算の結果、可変リンク１６０３に示されるようなサイズ状態となる。尚、この場合、コンテナ１２０３とコンテナ１２０４はそれぞれ最適なサイズ（データサイズに合った大きさ）になっている。  以上が、本発明の前提となる基本構成である。
【０２４２】
以下、広告情報用フィールド領域領域を有するカタログデータの、クライアントであるブラウザによるプレビュー時または出力時の処理について説明する。
【０２４３】
［フィールド領域を有する文書とデータベース］
図１７は本発明の実施形態の情報処理処理システムにおけるデータベースの構造の一例を示す図である。
【０２４４】
データベース１１９は、コンテンツデータ（商品情報、広告情報等の各種コンテンツからなるマスタデータ）へアクセスするためのアクセス情報を管理するコンテンツ管理テーブル１７１１を備えている。また、データベース１１９は、商品情報、広告情報等の各種コンテンツからなるマスタデータを管理するマスタデータ管理テーブル１７１３を備えている。
【０２４５】
また、データベース１１９は、コンテンツ管理テーブル１７１１とマスタデータ管理テーブル１７１３との関連付けの情報を管理する関連付け管理テーブル１７１２を備えている。更に、データベース１１９は、マスタデータ管理テーブル１７１３で管理される商品情報と広告情報との関連付けを管理するマスタデータ間関連付け管理テーブル１７１４を備えている。
【０２４６】
次に、本実施形態のデータベースと、フィールド領域を有する文書（ドキュメントテンプレート）との関係について、図１８を用いて説明する。
【０２４７】
図１８は本発明の実施形態のデータベースとフィールド領域を有する文書との関係を示す図である。
【０２４８】
１８０１は、フィールド領域として、少なくとも商品情報用フィールド領域及び広告情報用フィールド領域を有する文書（ドキュメントテンプレート）の例を示している。この例においては、商品情報用フィールド領域として、３つのフィールド領域が構成されている。具体的には、商品情報として、「商品名」データを差し込むためのフィールド領域１８０２、「商品コード」データを差し込むためのフィールド領域１８０３、「商品画像」データを差し込むためのフィールド領域１８０４が存在する。また、広告情報用フィールド領域として、広告情報を差し込むためのフィールド領域１８０５（広告エリア）が存在する。
【０２４９】
図１８に示すデータベース１１９は、各フィールド領域１８０２〜１８０５用のデータを格納するデータベースである。このデータベース１１９には、少なくとも商品情報管理テーブル１８０７と、広告情報管理テーブル１８０９と、広告情報−商品情報関連付け管理テーブル１８０８が存在する。
【０２５０】
ここで、商品情報管理テーブル１８０７及び広告情報管理テーブル１８０９は、図１７のマスタデータ管理テーブルに含まれる。また、広告情報−商品情報関連付け管理テーブル１８０９は、マスタデータ間関連付け管理テーブル１７１４に含まれる。
【０２５１】
商品情報管理テーブル１８０７は、商品情報用フィールド領域１８０２〜１８０４にそれぞれ差し込まれるデータを管理するテーブルである。商品情報用フィールド領域１８０２には、キー１８１１（ＤＡＴＡ＿Ａ）、商品情報用フィールド領域１８０３にはキー１８１２（ＤＡＴＡ＿Ｂ）、そして、商品情報用フィールド領域１８０４にはキー１８１３（ＤＡＴＡ＿Ｃ）がそれぞれ関連付けられる。
【０２５２】
広告情報管理テーブル１８０９は、広告情報用フィールド領域１８０５に差し込まれるデータを管理し、１８１８〜１８２１等のキーで構成される。
【０２５３】
広告情報−商品情報関連付け管理テーブル１８０８では、広告情報管理テーブル１８０９のキー１８２１と、商品情報管理テーブル１８０７のキー１８１２またはキー１８１４とを関連付けている。つまり、図１８では、広告情報−商品情報関連付け管理テーブル１８０８において、広告カテゴリを示す広告カテゴリキー１８１５と、商品カテゴリを示す商品カテゴリキー１８１６または商品コードを示す商品カテゴリキー１８１７とが関連付けてられている。
【０２５４】
［商品情報と広告情報の関連付け］
本実施形態では、後述する操作画面を介して、マスタデータである、商品情報と広告情報間の関連付けを行うことができる。そこで、この関連付けの状態の例について、いくつか説明する。
【０２５５】
尚、以下の説明での商品情報及び広告情報には、単体の商品についての情報を示す商品マスタデータ、単体の広告についての情報を示す広告マスタデータを含むものとする。更には、商品情報及び広告情報には、同一のカテゴリからなる複数の商品マスタデータを示す商品カテゴリ、同一のカテゴリからなる複数の広告マスタデータを示す広告カテゴリを含むものとする。
【０２５６】
図１９Ａは本発明の実施形態の商品マスタデータと広告マスタデータとの関連付けの状態を示す図である。
【０２５７】
図１９Ａでは、商品マスタデータ１９０１、１９０２は、広告マスタデータ１９０３〜１９０６と関連付けが可能であることを示している。また、この関連付けは双方向から可能である。そのため、例えば、商品マスタデータ１９０１から広告マスタデータ１９０３へと関連付けを行うことも可能であるし、広告マスタデータ１９０３から商品マスタデータ１９０１へと関連付けを行うことも可能である。
【０２５８】
図１９Ｂは本発明の実施形態の商品カテゴリと広告カテゴリとの関連付けの状態を示す図である。
【０２５９】
図１９Ｂでは、商品カテゴリ１９１１は広告カテゴリ１９１２と関連付けが可能であることを示している。この関連付けも、図１９Ａと同様に、双方向からの関連付けが可能である。
【０２６０】
図１９Ｃは本発明の実施形態の商品マスタデータと広告カテゴリとの関連付けの状態を示す図である。
【０２６１】
図１９Ｃでは、商品マスタデータ１９２１〜１９２２は、広告カテゴリ１９２４、１９２５と関連付けが可能であることを示している。この関連付けも図１９Ａと同様に、双方向からの関連付けが可能である。
【０２６２】
図１９Ｄは本発明の実施形態の商品カテゴリと広告マスタデータとの関連付けの状態を示す図である。
【０２６３】
図１９Ｄでは、商品カテゴリ１９３１、１９３２は、広告マスタデータ１９３３〜１９３４と関連付けが可能であることを示している。この関連付けも図１９Ａ同様に、双方向からの関連付けが可能である。
【０２６４】
次に、商品情報と広告情報の関連付けを行う関連付け処理について、図２０を用いて説明する。
【０２６５】
図２０は本発明の実施形態の商品情報と広告情報の関連付けを行う関連付け処理を示すフローチャートである。
【０２６６】
尚、この処理は、例えば、ネットワーク１０７上のクライアントＰＣ１５２やサーバＰＣ１６１で実現される。
【０２６７】
ステップＳ２００１において、関連付けが商品情報から広告情報への方向で行われるか否かを判定する。関連付けが商品情報から広告情報への方向である場合（ステップＳ２００１でＹＥＳ）、ステップＳ２００２に進み、関連付けがカテゴリ間で行われるか否かを判定する。関連付けがカテゴリ間で行われる場合（ステップＳ２００２でＹＥＳ）、ステップＳ２００３において、商品カテゴリを検索する。ステップＳ２００４において、その検索結果から商品カテゴリを選択する。ステップＳ２００５において、関連付けを行う広告カテゴリを選択する。
【０２６８】
一方、ステップＳ２００２において、関連付けがカテゴリ間で行われない場合（ステップＳ２００２でＮＯ）、ステップＳ２００６に進み、商品マスタデータの検索を行う。ステップＳ２００７において、その検索結果から商品マスタデータを選択する。ステップＳ２００８において、関連付けを行う広告マスタデータを選択する。
【０２６９】
一方、ステップＳ２００１において、関連付けが広告情報から商品情報への方向である場合（ステップＳ２００１でＮＯ）、ステップＳ２００９に進み、関連付けがカテゴリ間で行われるか否かを判定する。関連付けがカテゴリ間で行われる場合（ステップＳ２００９でＹＥＳ）、ステップＳ２０１０に進み、広告カテゴリを検索する。ステップＳ２０１１において、その検索結果から広告カテゴリを選択する。ステップＳ２０１２において、関連付けを行う商品カテゴリを選択する。
【０２７０】
一方、ステップＳ２００９において、関連付けがカテゴリ間で行われない場合（ステップＳ２００９でＮＯ）、ステップＳ２０１３に進み、広告マスタデータの検索を行う。ステップＳ２０１４において、その検索結果から広告マスタデータを選択する。ステップＳ２００８において、関連付けを行う商品マスタデータを選択する。
【０２７１】
以上の処理によって、商品情報と広告情報間の関連付けが決定したら、ステップＳ２０１６において、広告情報の優先順位の設定を行う。ここで、優先順位とは、広告情報を出力する順番や、広告が出力される比率等のことである。
【０２７２】
ステップＳ２０１７において、選択された商品情報と広告情報との関連付けを実行する。そして、その関連付け情報及び優先順位の設定情報をデータベース１１９に保存する。ステップＳ２０１８において、関連付け情報をネットワーク上の画像形成装置１０９へと送信する。
【０２７３】
尚、この関連付け情報及び優先順位の設定情報は、後述する関連付け画面（図２２）の操作に基づいて設定されるものである。
【０２７４】
［広告情報用フィールド領域を有するドキュメントテンプレート（カタログデータ）のプレビュー・出力］
図２１Ａは本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートのプレビュー処理を示すフローチャートである。
【０２７５】
尚、この処理は、例えば、サーバＰＣ１６１上で実行され、その処理結果は、クライアントＰＣ１５２へ出力されることになる。
【０２７６】
ステップＳ２１０１において、関連付け情報に基づいて、商品情報及び広告情報を取得する。
【０２７７】
ステップＳ２１０２において、ステップＳ２１０１で取得した商品情報と広告情報の数からドキュメントテンプレートを選択する。これは、例えば、商品情報である、ある商品マスタデータに対して広告マスタデータが２つ関連付いている場合、広告情報用フィールド領域を２つ有するドキュメントテンプレートを選択する。この処理は、サーバＰＣ１６１で行ってもよいし、ユーザに利用可能なドキュメントテンプレートをクライアントＰＣ１５２上で表示して、選択させてもよい。
【０２７８】
ステップＳ２１０３において、選択したドキュメントテンプレートを開く。ステップＳ２１０４ａ〜ステップＳ２１０４ｂにおいて、ドキュメントテンプレート内に定義されている広告情報用フィールド領域の数だけ、ステップＳ２１０５の処理を繰り返すループ処理を実行する。詳細は、図２６を用いて説明する。
【０２７９】
ステップＳ２１０５では、サーバＰＣ１６１によって、商品情報及び広告情報をドキュメントテンプレートに挿入し、上述のレイアウト計算方法（図８）によって、動的レイアウトを実行する。
【０２８０】
尚、ここでは、商品情報及び広告情報に対して同時に動的レイアウトを実行している構成としているが、これに限定されない。例えば、商品情報に対する動的レイアウトを実行した後、関連付け情報に従ってその商品情報に関連付けられている広告情報に対する動的レイアウトを実行する構成としても良い。この際、広告情報に優先順位が設定されている場合には、その優先順位に従って、広告情報に対する動的レイアウトを実行する。
【０２８１】
ステップＳ２１０６において、レイアウト計算済の広告情報用フィールド領域を有するドキュメントテンプレート（カタログデータ）をプレビュー可能にするために、プレビュー画面としてクライアントＰＣ１５２に送信する。
【０２８２】
以上の処理により、例えば、クライアントＰＣ１５２で選択された商品情報に基づいて、広告情報フィールド領域に広告情報が挿入された文書が、サーバＰＣ１６１内で作成され、クライアントＰＣ１５２においてプレビューが行われる。
【０２８３】
図２１Ｂは本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートの出力処理を示すフローチャートである。
【０２８４】
ステップＳ２１１１において、画像形成装置１０９によって、商品情報を選択する。ステップＳ２１１２において、画像形成装置１０９によって、ステップＳ２１１１で選択された商品情報とその関連付け情報を取得し、サーバＰＣ１６１に送信する。ステップＳ２１１３において、サーバＰＣ１６１によって、画像形成装置１０９から送信された商品情報と関連付け情報を取得して、それに関連付けられている広告情報をデータベース１１９から取得する。
【０２８５】
ステップＳ２１１４において、取得した商品情報と広告情報の数からドキュメントテンプレートを選択する。これは、例えば、商品情報である、ある商品マスタデータに対して広告マスタデータが２つ関連付いている場合、広告情報用フィールド領域を２つ有するドキュメントテンプレートを選択する。この処理は、サーバＰＣ１６１で行ってもよいし、ユーザに利用可能なドキュメントテンプレートをクライアントＰＣ１５２上で表示して、選択させてもよい。
【０２８６】
ステップＳ２１１５において、サーバＰＣ１６１によって、ドキュメントテンプレートを開く。ステップＳ２１１６ａ〜ステップＳ２１１６ｂにおいて、サーバＰＣ１６１によって、ドキュメントテンプレート内に定義されている広告情報用フィールド領域の数だけ、ステップＳ２１１７を繰り返すループ処理を実行する。詳細は、図２６を用いて説明する。
【０２８７】
ステップＳ２１１７では、サーバＰＣ１６１によって、商品情報及び広告情報をドキュメントテンプレートに挿入し、上述のレイアウト計算方法（図８）によって、動的レイアウトを実行する。
【０２８８】
尚、ここでは、商品情報及び広告情報に対して同時に動的レイアウトを実行している構成としているが、これに限定されない。例えば、商品情報に対する動的レイアウトを実行した後、関連付け情報に従ってその商品情報に関連付けられている広告情報に対する動的レイアウトを実行する構成としても良い。この際、広告情報に優先順位が設定されている場合には、その優先順位に従って、広告情報に対する動的レイアウトを実行する。
【０２８９】
ステップＳ２１１８において、サーバＰＣ１６１によって、レイアウト計算済の広告情報用フィールド領域を有するドキュメントテンプレート（カタログデータ）を、画像形成装置１０６に対して送信する。
【０２９０】
以上の処理により、画像形成装置１０９で選択された商品情報に基づいて、広告領域を有するドキュメントテンプレート（カタログデータ）が、サーバＰＣ１６１内で作成され、画像形成装置１０９において出力が行われる。
【０２９１】
［関連付け画面］
図２２は本発明の実施形態の広告マスタデータと商品カテゴリの関連付けを行うための関連付け画面の一例を示す図である。
【０２９２】
ユーザインタフェース１０３によって実現される関連付け画面２２００は、メニュータイトル２２０１を表示し、ガイダンス２２０２を表示する。２２０３は、関連付けを行う広告マスタデータの画像である。２２０４は、関連付けを行う広告マスタデータの内容を示す情報（広告番号、広告タイトル、種別、発行元）である。これらの情報を示す項目の定義は、データベースの設定を行うことにより、項目の名称や数は自由に定義することが可能である。
【０２９３】
２２０５は、商品カテゴリ（パフォーマンス、ミッドレンジＰＣ、エントリレベルＰＣ、モニタ等）のリスト表示を行う領域であり、複数の商品カテゴリの選択が可能である。選択された商品カテゴリの項目は、２２０６のように反転表示される。２２０７は、選択状態の商品カテゴリに対して、広告情報（広告マスタデータ）を挿入する優先順位を設定するためのドロップダウンリストである。
【０２９４】
この優先順位には、広告情報を挿入する順番や、広告情報を挿入する頻度等の設定を行うことが可能である。また、「強調表示」、「吹き出し」等の表示効果について、ここで設定してもよい。ボタン２２０８は、広告マスタデータと商品カテゴリの関連付け及び優先順位をデータベース１１９に保存する機能を提供する。ボタン２２０９は、以前の画面に戻る機能を提供する。ボタン２２１０は、メニュー画面に戻る機能を提供する。
【０２９５】
尚、この関連付け画面２２００は、例えば、クライアントＰＣ１５２や、サーバＰＣ１６１上で実現される。また、図２２に示す関連付け画面は、特に、広告マスタデータと商品カテゴリの関連付けを行うための画面を示している。同様に、広告カテゴリと商品マスタデータの関連付け、広告マスタデータと商品マスタデータの関連付け等の他の種類の商品情報及び広告情報の関連付けを行うための関連付け画面が構成されることは言うまでもない。
【０２９６】
［画像形成装置における操作画面］
図２３Ａは本発明の実施形態の画像形成装置における商品カテゴリ選択画面の一例を示す図である。
【０２９７】
商品カテゴリ選択画面２３００は、ロゴ２３０１を表示し、ガイダンス２３０２を表示する。ボタン群２３０３は、それぞれ商品カテゴリ（ハイエンドＰＣ、ミッドレンジＰＣ、ローエンドＰＣ、モニタ等）を選択するためのボタンである。これらのボタン群２３０３の内、任意のボタンを押すと、対応する商品カテゴリ内にある商品マスタデータの一覧を示す商品マスタデータ一覧選択画面（図２３Ｂで詳述）に遷移する。ボタン２３０４は、メニュー画面に遷移する機能を提供するボタンである。
【０２９８】
尚、商品カテゴリ選択画面２３００と同様の広告カテゴリ選択画面が構成されることは言うまでもない。
【０２９９】
図２３Ｂは本発明の実施形態の画像形成装置における商品マスタデータ選択画面の一例を示す図である。
【０３００】
商品マスタデータ一覧選択画面２３１０は、ロゴ２３０１を表示し、ガイダンス２３０２を表示する。リスト２３１１は、図２３Ａで選択した商品カテゴリに属する商品マスタデータの一覧を表示し、複数選択を可能とさせる機能を提供している。ボタン２３１２は、リスト２３１１で選択された商品マスタデータに関連する、広告情報フィールド領域を有するカタログデータを出力する機能を提供する。ボタン２３１３は、商品カテゴリ選択画面に戻る機能を提供する。
【０３０１】
尚、商品マスタデータ選択画面２３１０と同様の広告マスタデータ選択画面が構成されることは言うまでもない。
【０３０２】
［プレビュー実行時における操作画面］
図２４は本発明の実施形態の商品情報を確認するためのプレビュー実行画面の一例を示す図である。
【０３０３】
プレビュー実行画面２４００は、メニュータイトル２４０１を表示し、商品情報（商品マスタデータ）の選択確認であることをユーザに通知する。２４０２は、選択されている商品マスタデータの画像である。２４０３は、選択されている商品マスタデータの項目と内容を示す領域である。この領域２４０３は、図１７及び図１８の構成によって、その項目の名称や数の変更が可能である。
【０３０４】
ボタン２４０４は、選択された商品マスタデータの広告情報用フィールド領域を有するカタログデータをプレビュー出力する機能を提供する。ボタン２２０５は、以前の画面に戻る機能を提供する。ボタン２４０６は、メニュー画面に戻る機能を提供する。
【０３０５】
尚、図２４に示すプレビュー実行画面は、特に、商品情報用の画面であるが、これと同様に、広告情報の画面が構成されることは言うまでもない。
【０３０６】
［出力時におけるレイアウト変更の例］
図２５Ａは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【０３０７】
ここでは、商品情報用フィールド領域、及び広告情報用フィールド領域を有する文書（ドキュメントテンプレート）に対して、実際のデータベース１１９中の各種テーブルで管理されるデータ及び画像（コンテンツ）を差し込む際の動作について説明する。
【０３０８】
出力結果２５００は、商品マスタデータの項目である２５０１、２５０２、２５０３、２５０５と、コンテンツデータ２５０４が動的にレイアウトされる。つまり、２５０１、２５０２、２５０３、２５０５、コンテンツデータ２５０４はそれぞれ、ドキュメントテンプレート内でコンテナ（フィールド領域）として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３０９】
また、広告情報用フィールド領域２５０６に対して、広告情報２５０７、２５１１が差し込まれる。ここでも、２５０８、２５０９、２５１０、２５１２、２５１３、２５１４は、ドキュメントテンプレート内ではコンテナ（フィールド領域）として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３１０】
図２５Ｂは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【０３１１】
尚、図２５Ｂにおいて、図２５Ａと同一のものに関しては、同一の参照番号を付加している。
【０３１２】
出力結果２５２０は、商品マスタデータの項目である２５２１、２５２２、２５２３、２５２５と、コンテンツデータ２５２４が動的にレイアウトされる。つまり、２５２１、２５２２、２５２３、２５２５、コンテンツデータ２５２４はそれぞれ、ドキュメントテンプレート内でコンテナ（フィールド領域）として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３１３】
ここで、図２５Ａと図２５Ｂとの差異は、コンテナ２５２３、２５２４の大きさである。この場合では、図２５Ｂのコンテナ２５２３、２５２４の方が、図２５Ａにおけるコンテナ２５０３、２５０４よりも大きい場合の例を挙げている。これは、データベース内の文字データ数及びコンテンツの大きさによって、それぞれが最適に動的レイアウトされた結果によるものである。
【０３１４】
更に、広告情報用フィールド領域２５０６に対して、広告情報２５０７、２５１１が差し込まれる。ここでも、２５０８、２５０９、２５１０、２５１２、２５１３、２５１４は、ドキュメントテンプレート内ではコンテナ（フィールド領域）として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３１５】
図２５Ｃは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【０３１６】
出力結果２５３０は、商品マスタデータの項目である２５３１、２５３２、２５３３、２５３５と、コンテンツデータ２５３４が動的にレイアウトされる。つまり、２５３１、２５３２、２５３３、２５３５、コンテンツデータ２５３４はそれぞれ、ドキュメントテンプレート内でコンテナ（フィールド領域）として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３１７】
更に、広告情報用フィールド領域２５３６に対して、広告情報２５３７が１つ定義されている。また、２５３８、２５３９、２５４０がコンテナ（フィールド領域）として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
【０３１８】
ここで、図２５Ｂと図２５Ｃとの差異は、広告領域２５３６内における広告情報の数である。つまり、図２５Ｂでは、２つの広告情報２５０７及び２５１１を挿入するために最適なレイアウト処理が行われる。一方、図２５Ｃでは、１つの広告情報２５３７を挿入するために、最適なレイアウト処理が行われる。この場合における広告情報の数は、商品マスタデータまたは商品カテゴリと関連付いている広告マスタデータまたは広告カテゴリの数によって決めてもよい。
【０３１９】
次に、図２６を用いて、ステップＳ２１０２及びステップＳ２１１４の処理の詳細を説明する。
【０３２０】
図２６は本発明の実施形態のステップＳ２１０２及びステップＳ２１１４の処理の詳細を示すフローチャートである。
【０３２１】
まず、ステップＳ２６０１において、ステップＳ２１０１あるいはステップＳ２１１３で取得した広告情報の数を認識する。次に、ステップＳ２６０２において、広告情報が１つであるか否か判定する。広告情報が１つである場合（ステップＳ２６０２でＹＥＳ）、ステップＳ２６０３に進み、広告情報用フィールド領域が１つのドキュメントテンプレートを選択する。
【０３２２】
一方、広告情報が１つでない場合（ステップＳ２６０２でＮＯ）、ステップＳ２６０４に進み、広告情報が２つであるか否かを判定する。広告情報が２つである場合（ステップＳ２６０４でＹＥＳ）、ステップＳ２６０５に進み、広告情報用フィールド領域が２つのドキュメントテンプレートを選択する。
【０３２３】
一方、広告情報が２つでない場合（ステップＳ２６０４でＮＯ）、即ち、広告情報が３つ以上である場合、ステップＳ２６０６に進み、その広告情報から、所定の条件を満足する広告情報を２つ選択する。その後、ステップＳ２６０５に進む。
【０３２４】
図２６の処理により、ある１つの商品マスタデータに対して広告マスタデータが１つ関連付いている場合、商品情報用フィールド領域を１つ有し、広告情報用フィールド領域を１つ有するドキュメントテンプレートを選択することになる。
【０３２５】
更に、広告マスタデータの数（例えば、３）より少ない数（例えば、１と２）の広告情報用フィールド領域のドキュメントテンプレートしか存在しない場合にも対応できる。
【０３２６】
具体的には、ステップＳ２６０６の処理で、ドキュメントテンプレートが有する広告情報用フィールド領域の最大数（例えば、２）の広告情報を、所定条件を満足する３以上の広告情報から選択する。そして、その選択した広告情報に対して、ステップＳ２６０５で最大数（例えば、２）の広告情報用フィールド領域のドキュメントテンプレートを選択することによって対応できる。尚、ドキュメントテンプレート選択後に、そのドキュメントテンプレートが有する広告情報用フィールド領域の最大数の広告情報を選択しても良い。
【０３２７】
また、図２６の処理では、商品情報が１つの場合を説明している。よって、ある１つの商品マスタデータに対して広告マスタデータが１つ関連付いている場合、商品情報用フィールド領域を１つ有し、広告情報用フィールド領域を１つ有するドキュメントテンプレートを選択している。
【０３２８】
しかしながら、本発明はこれに限定されない。例えば、商品情報が複数の場合にも適用できる。この場合、ステップＳ２６０１で、取得した商品情報の数と広告情報の数とを認識する。例えば、商品情報の数が２で広告情報の数が２であると認識する。そのような場合は、商品情報用フィールド領域を２つ有し、広告情報用フィールド領域を２つ有するドキュメントテンプレートを選択する。
【０３２９】
また、ステップＳ２６０６で広告情報を選択するための所定条件には、様々なものが考えられる。例えば、広告情報の使用履歴情報を別途管理しておき、この使用履歴情報に基づいて、各広告情報が均等に使用されるように、各広告情報を適応的に選択しても良い。あるいは、例えば、各広告情報に優先順位を設定しておき、その優先順位に従って、広告情報を選択しても良い。
【０３３０】
以上説明したように、本実施形態によれば、商品情報（商品マスタデータ及び商品カテゴリの少なくとも一方）と、広告情報（広告マスタデータ及び広告カテゴリの少なくとも一方）とを関連付ける。そして、例えば、サーバＰＣにて、その商品情報及び関連する広告情報に対する動的レイアウト処理を実行する。
【０３３１】
これによって、クライアントＰＣにて、広告情報用フィールド領域を有するカタログデータをプレビューすることが可能となる。また、画像形成装置において、商品情報を選択することによって、サーバＰＣにて、その商品情報及び関連する広告情報に対する動的レイアウト処理を実行させ、その結果を出力することが可能となる。
【０３３２】
尚、上記実施形態では、商品情報と、それに関連付けられている広告情報をページ内に動的レイアウトする例を挙げて説明しているが、情報の種類はこれに限定されるものではない。つまり、本発明の趣旨は、異なる種類の情報を関連付けて、それを同一ページ内で動的レイアウトする点にある。そのため、ユーザが明示的に、様々な情報を異なる種類に分類し、その分類間で関連付けを行った情報であれば、本発明を適用することが可能である。
【０３３３】
本発明をより一般的に表現すれば、第１情報に属する第１レコードと、第２情報に属する第２レコードを関連付け、ドキュメントテンプレートに基づいて、指定された第１レコードとそれに関連する第２レコードを同一ページ内に動的レイアウトすると言える。
【０３３４】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０３３５】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０３３６】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０３３７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０３３８】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０３３９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０３４０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０３４１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０３４２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０３４３】
【図１Ａ】本発明の実施形態の情報処理システムの構成例を示す図である。
【図１Ｂ】本発明の実施形態の情報処理システムの一構成要素であるホストコンピュータのハードウェア構成を示す図である。
【図１Ｃ】本発明の実施形態の情報処理システムの別構成例を示す図である。
【図１Ｄ】本発明の実施形態のＷｅｂサーバクライアントシステムの構成を示す図である。
【図１Ｅ】本発明の実施形態のＷｅｂサーバクライアントシステムの機能構成を示す図である。
【図２Ａ】本発明の実施形態の画像形成装置の詳細構成を示す図である。
【図２Ｂ】本発明の実施形態の制御部の機能構成を示す図である。
【図３Ａ】本発明の実施形態のバリアブルデータプリントの概略を説明するための図である。
【図３Ｂ】本発明の実施形態のユーザインタフェースの一例を示す図である。
【図４】本発明の実施形態のユーザインタフェースにおけるコンテナの表示例を示す図である。
【図５】本発明の実施形態のコンテナの表示ルールを説明するための図である。
【図６】本発明の実施形態のリンクの設定処理を示すフローチャートである。
【図７】本発明の実施形態のリンク設定時のユーザインタフェースの遷移例を示す図である。
【図８】本発明の実施形態のレイアウト計算処理を示すフローチャートである。
【図９】本発明の実施形態のレイアウト計算処理の詳細を示すフローチャートである。
【図１０】本発明の実施形態のレイアウト計算処理時におけるコンテナの集合を説明するための図である。
【図１１】本発明の実施形態のレイアウト計算処理におけるユーザインタフェースの一例を示す図である。
【図１２】本発明の実施形態の可変リンクの設定のためのユーザインタフェースの一例を示す図である。
【図１３】本発明の実施形態のリンク設定機能を実現するユーザインタフェースの一例を示す図である。
【図１４】本発明の実施形態の可変リンクの設定処理を示すフローチャートである。
【図１５】本発明の実施形態の固定サイズのリンクを使用した場合のレイアウト結果を示す図である。
【図１６】本発明の実施形態の可変サイズのリンクを使用した場合のレイアウト結果を示す図である。
【図１７】本発明の実施形態の情報処理処理システムにおけるデータベースの構造の一例を示す図である。
【図１８】本発明の実施形態のデータベースとフィールド領域を有する文書との関係を示す図である。
【図１９Ａ】本発明の実施形態の商品マスタデータと広告マスタデータとの関連付けの状態を示す図である。
【図１９Ｂ】本発明の実施形態の商品カテゴリと広告カテゴリとの関連付けの状態を示す図である。
【図１９Ｃ】本発明の実施形態の商品マスタデータと広告カテゴリとの関連付けの状態を示す図である。
【図１９Ｄ】本発明の実施形態の商品カテゴリと広告マスタデータとの関連付けの状態を示す図である。
【図２０】本発明の実施形態の商品情報と広告情報の関連付けを行う関連付け処理を示すフローチャートである。
【図２１Ａ】本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートのプレビュー処理を示すフローチャートである。
【図２１Ｂ】本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートの出力処理を示すフローチャートである。
【図２２】本発明の実施形態の広告マスタデータと商品カテゴリの関連付けを行うための関連付け画面の一例を示す図である。
【図２３Ａ】本発明の実施形態の画像形成装置における商品カテゴリ選択画面の一例を示す図である。
【図２３Ｂ】本発明の実施形態の画像形成装置における商品マスタデータ選択画面の一例を示す図である。
【図２４】本発明の実施形態の商品情報を確認するためのプレビュー実行画面の一例を示す図である。
【図２５Ａ】本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【図２５Ｂ】本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【図２５Ｃ】本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
【図２６】本発明の実施形態のステップＳ２１０２及びステップＳ２１１４の処理の詳細を示すフローチャートである。
【符号の説明】
【０３４４】
１０１  ホストコンピュータ
１０３  ユーザインタフェース
１０５  レイアウトエンジン
１０７  ネットワーク
１０９  画像形成装置
１１５  ファイルサーバ
１１７  データベースサーバ
１１９  データベース
１２１  レイアウト編集アプリケーション
１２３  通信チャネル
２２７  レイアウトプレビューアプリケーション
２２９  ユーザインタフェース
２３１  レイアウトエンジン
【図１Ａ】
2007048003.tif 000003
【図１Ｂ】
2007048003.tif 000004
【図１Ｃ】
2007048003.tif 000005
【図１Ｄ】
2007048003.tif 000006
【図１Ｅ】
2007048003.tif 000007
【図２Ａ】
2007048003.tif 000008
【図２Ｂ】
2007048003.tif 000009
【図３Ａ】
2007048003.tif 000010
【図３Ｂ】
2007048003.tif 000011
【図４】
2007048003.tif 000012
【図５】
2007048003.tif 000013
【図６】
2007048003.tif 000014
【図７】
2007048003.tif 000015
【図８】
2007048003.tif 000016
【図９】
2007048003.tif 000017
【図１０】
2007048003.tif 000018
【図１１】
2007048003.tif 000019
【図１２】
2007048003.tif 000020
【図１３】
2007048003.tif 000021
【図１４】
2007048003.tif 000022
【図１５】
2007048003.tif 000023
【図１６】
2007048003.tif 000024
【図１７】
2007048003.tif 000025
【図１８】
2007048003.tif 000026
【図１９Ａ】
2007048003.tif 000027
【図１９Ｂ】
2007048003.tif 000028
【図１９Ｃ】
2007048003.tif 000029
【図１９Ｄ】
2007048003.tif 000030
【図２０】
2007048003.tif 000031
【図２１Ａ】
2007048003.tif 000032
【図２１Ｂ】
2007048003.tif 000033
【図２２】
2007048003.tif 000034
【図２３Ａ】
2007048003.tif 000035
【図２３Ｂ】
2007048003.tif 000036
【図２４】
2007048003.tif 000037
【図２５Ａ】
2007048003.tif 000038
【図２５Ｂ】
2007048003.tif 000039
【図２５Ｃ】
2007048003.tif 000040
【図２６】
2007048003.tif 000041