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