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