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