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