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