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