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