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