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