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