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