本発明の実施例を適用するのに好適である実施例について説明を行う。
(システム構成図)
図1Aはバリアブルデータドキュメントを印刷するシステム100を図示している。この中で示された方法は図1Bで詳しく説明される汎用ホストコンピュータ101で実践される。図1Bで記述されるプロセスは、ホストコンピュータ101内で実行され、システム100上で実施可能となるレイアウト編集アプリケーションプログラム121のようにソフトウェアの全体、あるいは一部分で実行される。特にレイアウト編集や必然的に起こる印刷のステップはホストコンピュータ101によって実行されるソフトウェアの指示によって実施される。
ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、ホストコンピュータ101によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。そのコンピュータでのコンピュータプログラム製品の使用は望ましくもドキュメントのレイアウト編集やバリアブルデータ印刷に有利な装置をもたらす。
ホストコンピュータ101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置を連結する。入力/出力インターフェース138はホストコンピュータ101をネットワーク接続107から接続してシステム100の他のコンピュータ装置につなげることができる。そのネットワーク接続107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
ホストコンピュータ101は典型的に少なくとも1つのプロセッサーユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェース、キーボード132やマウス133のためのI/Oインターフェース143を含んでいる。記憶装置139は典型的にハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含んでいる。図には示されていないが磁気テープドライブもまた使用される可能性がある。CD−ROMドライブ142は不揮発性のデータソースとして提供される。ホストコンピュータ101はGNU/LINUXやマイクロソフトウィンドウズ(登録商標)のようなオペレーションシステムや、典型的にはオペレーションシステムに従う形である。または関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うホストコンピュータ101のコンポーネント135から143を利用する。
なお、図1Bに記述したホストコンピュータ101の例ではIBM互換PCやSUN社のSparc Station、あるいはそれらを含んだコンピュータシステムが考えられる。
レイアウト編集アプリケーションプログラム121は典型的にハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。レイアウト編集アプリケーションプログラム121の媒介記憶装置とネットワーク1020からフェッチされるデータはハードディスクドライブ140に呼応してメモリユニット136を使用する。また他の方法としては、アプリケーションプログラム121がCD−ROMやフロッピー(登録商標)ディスク上でエンコードされ、対応するドライブ142や141を通じて読み込まれユーザに提供される。あるいはもう一つの方法としてアプリケーションプログラム121はネットワーク接続107からユーザによって読み込まれるかもしれない。さらにソフトウェアは磁気テープまたはROMまたは集積回路、光磁気ディスクまたは無線またはホストコンピュータ101とその他のデバイス間の赤外線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からホストコンピュータ101内にロードされる可能性もある。前述は単に関連するコンピュータ可読メディアの模範である。他のコンピュータ可読媒体も使用される可能性はある。
またレイアウト編集アプリケーション121はバリアブルデータ印刷(VDP)を行うよう指示し、3つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのコンポーネントはレイアウトエンジン105であり、これは長方形の範囲内で与えられた制限やサイズによって矩形と線の位置を計算するためのソフトウェアコンポーネントである。
2つめのコンポーネントであるユーザインターフェース103はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースと関連付けるメカニズムを提供する。
3つめのコンポーネントであるUIモデルアナライザ104は、ユーザインターフェース103が提供するコンテナや、アンカー、スライダー、リンクなどのユーザインターフェース要素をレイアウトエンジン105が認識できる内部形式に変換する。すなわち、UIモデルアナライザ104により、レイアウトエンジン105に変更を加えることなく、ユーザインターフェース103を他の表示/入力形式のユーザインターフェースに容易に取替え可能になる。
ユーザインターフェース103、UIモデルアナライザ104、レイアウトエンジン105はコミュニケーションチャネル123、124を介して通信する。ドキュメント生成のためのデータソースは一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ117上にある典型的なデータベース119である。
ホストコンピュータ101はネットワーク接続107の手段によってデータベースサーバ117と通信する。レイアウト編集アプリケーション121はホストコンピュータ101か一般的に他のコンピュータで構成されるファイルサーバ115に保存されるドキュメントテンプレートを生成する。またレイアウト編集アプリケーション121はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。
これらのドキュメントはホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバ115に保存されるか、あるいはプリンタ113に直接印刷される。プリントサーバ109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバ109とプリンタ113は典型的な通信チャネル111を介して接続される。
図2はエンジンサーバー227の追加を除き、レイアウトエンジン105の分離バージョン225を含む図1A・図1Bの類似の図である。エンジンサーバー227は典型的なコンピュータである。ファイルサーバ115に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
図40は本実施形態によるバリアブルデータプリントの概略を説明する図である。レイアウト編集アプリケーション121のユーザインターフェースモジュール103(以下、ユーザインタフェース103と記載する)により、ユーザからの操作指示に従いページ上に複数のコンテナ405〜407を配置し、各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート404が生成される。
また、ユーザインターフェース103はドキュメントテンプレート404とデータソース400(図1ではデータベース119)との関連付け、更に各コンテナとデータソース400内の各データフィールドとの関連付けを行う。各コンテナとデータソース400内の各データフィールドとの関連付けた情報は、ドキュメントテンプレート内に記述され、該ドキュメントテンプレートは、HDD140またはメモリユニット136に格納される。
また、データソース400は、レコード単位で項目データ(バリアブルデータ)が記載されているファイルであり、HDD140に格納されている。レイアウトエンジン105は、ユーザからの印刷指示もしくはプレビュー指示に応じて、ドキュメントテンプレートの各コンテナ405〜407に、関連付けられたバリアブルデータをデータソース400から読み込み、レコード単位で流し込み(例えば、データレコード1のデータフィールドA〜Cをコンテナ405〜407へ流し込む)、流し込まれるべきデータのサイズに応じて各コンテナのサイズ等を調整(レイアウト調整)する。なお、レイアウト調整の方法については後述する。
プレビュー指示の場合は、レイアウト調整されたドキュメントイメージを生成し、ビデオディスプレイ144の画面上にプレビューとして表示するべく出力される。また印刷指示の場合は、レイアウトエンジン105もしくはプリンタドライバを用いて生成したドキュメントイメージを印刷データとしてプリントサーバ109へ出力する。データレコード1,2,3…を順次処理することにより、バリアブルデータプリントが実現されることになる。
ドキュメント生成のためのデータソース(400)は、例えば、データベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ117上の一般的なデータベース119であってもよい。この場合、ホストコンピュータ101はネットワーク107を介してデータベースサーバ117と通信し、データソースを取得できる。また、レイアウト編集アプリケーション121によって生成された、バリアブルデータプリントのためのドキュメントテンプレート(404)は、ホストコンピュータ101或いは他のコンピュータで構成されるファイルサーバ115に保存される。図1Cで上述したように、レイアウト編集アプリケーション121のレイアウトエンジン105は、データとマージされたドキュメントテンプレートによって構成されたバリアブルデータドキュメントを生成する。これらのドキュメントは、ホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバ115に保存されるか、あるいはプリンタ113に送信されて印刷される。プリントサーバ109はネットワークと直接にはつながっていないプリンタにネットワーク機能を提供するためのコンピュータである。プリントサーバ109とプリンタ113は一般的な通信チャネル111を介して接続される。
(アプリケーション構成図)
(メインウインドウ)
ユーザインターフェース103は、操作時に図3に示されるようなアプリケーションウインドウ301によって形成されたユーザインターフェース画面をビデオディスプレイ144に表示させる。このウインドウ301は、メニューバー302、ツールバー303、ワークエリア306とオプションのパレット311を有する。
メニューバー302とツールバー303は非表示にすることや、スクリーン上の色々な場所に移動することが可能である。また、ワークエリア306はマウス133の操作によってその場所を移動させることが可能である。また、パレット311はオプションであり、カーソル/ポインタデバイス313はマウス133が指し示す位置を表す。
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
ツールバー303は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能な多くのツールボタンとウィジット305を持つ。
ルーラー308はオプションであり、ワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。
パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはオブジェクトの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されることを制限される、あるいはアプリケーションウインドウ301の外側にその一部或いは全体を表示することを許される。
ツールバー303には図4に示されるような、ユーザ選択可能な『ボタン』が配置されている。
(1)選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック/ロック解除のために使われる。コンテナの選択は、コンテナの周りに選択ボックスをドラッグすることによりなされる。また、CTRLキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
(2)テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
(3)イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。
レイアウト編集アプリケーション121の図3に示したアプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。
また、基本レイアウト内の少なくとも1つのコンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
(ドキュメントテンプレート)
図3において、ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。また、ドキュメントテンプレートを単にテンプレートということもある。これはユーザがドキュメントテンプレートをデザインする過程において、印刷されるドキュメントの概観をユーザに提示することを可能とする。これにより、ユーザは、データベース119とマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを容易に理解できる。
また、データベースがドキュメントテンプレートに関連付けられていた場合は、現在のドキュメントのプレビューができるように、対応するバリアブルテキストやイメージがレイアウトされた各コンテナに表示される。
ドキュメントテンプレートにおけるドキュメント構造とバリアブルデータコンテナの描写をする視覚的な手がかり(コンテナの枠線、アンカー、スライダー、リンク等)は、ドキュメントテンプレート作成時には常に表示され、バリアブルデータを流し込むプレビュー時には、視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときに表示される。
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309を含む。ドキュメントテンプレート309はページが複数あることを示すことができる。
与えられたドキュメントテンプレートのページサイズは、周知の技術を用いて、ユーザによって指定される。例えばメニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。それぞれのドキュメントでの実際のページ数は、関連付けられたデータソース内のバリアブルデータによって変化する可能性が有る。これは、ドキュメントテンプレート内に可変表のようにバリアブルデータの量により大きさが変更されるフィールドが設定されている場合、1ページ内にバリアブルデータをフィットできないバリアブルデータが読み込まれると、追加のページが自動的に作成されることも考えられるからである。
それぞれのページ内に示される境界線310は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージンである。
図4は1ページのドキュメントテンプレート309上に表示され得るオブジェクトの例を示す図である。このようなオブジェクトとしては、コンテナ407、408と、任意に適用するアンカーアイコン409、固定されている辺411、414、固定されていない辺410、リンク412そしてスライダー413を持つ。
アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。なお、本願で記述するオブジェクトとはドキュメントテンプレート上に表示され得るもの全てを指し、各オブジェクトを明確に区別する場合は、それぞれの名称で記述することにより明確にする。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4の例では、アンカーアイコン409は、コンテナ407の左上の角に設定されているため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合に、右方向及び下方向に拡大可能であることを示している。
例えば、アンカーアイコン409がいずれか1つの辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。リンク412についての詳細は後述するが、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンクに設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している(なお後述する可変サイズリンクの場合は、流し込まれるデータサイズによりリンクの長さが設定された範囲内で可変となる)。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
ここで、コンテナについて説明する。コンテナは、ドキュメントテンプレート内にデータベースから固定あるいは可変のテキスト/イメージが流し込まれ、描画されるスペース(これを部分領域またはデータ領域と呼ぶ)であり、図4に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナは移動、サイズ調整、再作成される。また、コンテナに流し込まれるデータをコンテンツまたはコンテンツデータ(バリアブルデータまたはフィールドデータ)と呼ぶ。
より正確にはコンテナは、設定の集まり、視覚的表現、そしてインタラクションと編集動作をもっている。下記は本実施形態によるコンテナの定義である。
(1)コンテナは固定あるいは可変のコンテンツを持つ。可変コンテンツは、データベースから取得したデータがドキュメント毎、つまりレコード毎に異なる可能性があるという意味でダイナミック(動的)である。ただし、本実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは印刷には適していないため、ここでは意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。しかしながら、固定コンテンツが可変コンテンツとリンクにより関連付けられている場合、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメントで位置が異なる可能性がある。
(2)コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
(3)コンテナはドキュメントを生成する際にデータベースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツはデータソースからの特定のデータの表示を提供する。コンテナのこの表現は例えば印刷されるか、ビデオディスプレイ144のスクリーン上に表示されるか、その両方が可能である。
(4)コンテナは、図4に示されるように視覚的な手がかりとしてのユーザインターフェースを有している。例えばコンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース(GUI)を持つ。GUIの各要素はビデオディスプレイ144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインターフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、さらにコンテナの設定の編集や表示を可能にするための機能を有している。
(リンク)
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図4の412で示されているものがリンクであり、図4ではコンテナ407と408とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
(リンクの設定方法)
次に、コンテナ同士を関連付けるためのリンクの設定について説明する。図5はリンクの設定方法を示したフローチャートである。また図6の(A)〜(C)はリンク設定時のユーザインターフェース(UI)の遷移例を示している。図5、6を用いてコンテナにリンクを設定する方法について説明する。なお、本願に記載されているフローチャートの各ステップの処理は、情報処理装置(ホストコンピュータ)が有するプロセッサ135によって実行されることとなる。
まず、ステップS601において、レイアウト編集アプリケーション121は、ユーザインターフェース画面のワークエリア306上に編集すべく選択されたドキュメントテンプレートを表示する。リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)がドキュメントテンプレート上に作成されている必要がある。図6の(A)〜(C)では、ステップS601で2つのコンテナを作成してリンクを設定する場合のユーザインターフェースの遷移例を示している。
次に、ステップS602において、レイアウト編集アプリケーション121は、前述したリンクツールが選択状態(図4のボタン406をクリックすることにより選択状態となる)になったかを判断する。リンクツールが選択状態でなければ、必要に応じて他の各種処理を実行し(ステップS609)、ステップS602に戻る。
図6の(A)において、コンテナ701と702はすべて固定されている辺で構成されているものとする。また、703と704は、図4の409と同じであり、アンカーを意味する。705はマウスポインタを意味している。
さて、リンクツールが選択状態となっている間に、ユーザはリンクを設定する2つのコンテナのうちの一方(コンテナ701とする)をクリックして選択する。
この操作に応じて、レイアウト編集アプリケーション121のユーザインターフェース103は第1のコンテナが指定されたことを認識し(ステップS603)、選択されたコンテナを特定する情報をメモリ136に保持する。また、以降のマウスカーソルの移動に応じた軌跡を画面に表示するようにする。
例えば、図6の(B)における線分706は、(A)の状態におけるクリック位置と現在のマウスカーソルの位置とを結んだ線を示しており、このUIによりどの位置にリンクが設定されるのかをユーザに明示することができる。
次にユーザは、図6の(B)で示されるように、もう一方のコンテナ(コンテナ702)までマウスポインタを移動してクリックする。この操作に応じて、ユーザインターフェース103は第2のコンテナが指定されたことを認識し(ステップS604、レイアウト編集アプリケーション121は、ステップS603で保持した第1のコンテナと、ステップS604で指定が認識された第2のコンテナとの間にリンクを設定する。
こうして、ユーザにより選択された2つのコンテナ701,702の間にリンクが設定されると、リンクUI707が表示される(ステップS605)。更に、このリンク設定を受けて、コンテナの表示状態は図6の(C)の状態になる(ステップS606)。
すなわち、リンクが設定されたことにより、コンテナのUIが自動的に変更される。ここでは、リンクによって関連付けられた辺が可変となり、点線で示される。図6の(C)において、708は点線で示されている辺であり、前述した通り可変の辺を示すものである。
なお、図6の(C)のようなコンテナの辺の状態の変化は、リンクを設定したことによりコンテナの辺を可変にする必要が生じたことにより自動的に実行されたものであり、リンクを設定して、レイアウトの調整を行おうとしているにもかかわらず、全ての辺が固定のためレイアウト調整が行えないという矛盾の発生を防ぐことを目的としている。インジケーター709は、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したマークである。
また、図6の(C)の例では、左のコンテナの右辺と右のコンテナの左辺が可変な状態へ変化したが、これは一例であり、たとえば、右コンテナが図4の413で示したスライダーを持つ設定に変化してもかまわない。
(レイアウトエンジンによるレイアウト計算処理)
(レイアウト計算方法(全体フロー))
本実施形態のレイアウト編集アプリケーションは、ユーザインターフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行ってレイアウトを作成するレイアウトモードと、レイアウトエンジン105により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが有するコンテンツデータが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン105が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。なお、コンテンツデータを流し込むべきコンテナに優先順位が設定されている場合は、該優先順位に従ってレイアウト計算を行うこととなる。優先順位に従うレイアウト計算の一例として、優先順位の高いコンテナに流し込まれるコンテンツデータは、できる限りオリジナルサイズ(元のデータサイズ)で表示するように制御される。
図7はレイアウト計算のフローを示している。まず、プレビューモードが選択される(ステップS801)。プレビューモードになったら、レイアウト編集アプリケーション121は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各フィールドデータを各コンテナに挿入するよう決定する(ステップS802)。
各コンテナへのフィールドデータの挿入が決定されると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするための計算を行い、必要に応じてレイアウト調整を行う(ステップS803)。ステップS803におけるレイアウト計算の詳細については後述する。そして、レイアウト編集アプリケーション121は、ステップS803で計算されたレイアウトを表示する(ステップS804)。
レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判断する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(ステップS807)。他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
なお、プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。ステップS803でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷すべく指定された全レコード)について印刷データの出力が終了した時点で本処理を終了することになる。
(レイアウト計算方法(詳細))
次に、上記ステップS803によるレイアウト計算の詳細について説明する。なお、本フローチャートによる処理を用いることによりコンテンツデータのサイズに基づいて、コンテンツデータが流し込まれた領域(コンテナまたは後述するサブテンプレート)の配置位置や領域サイズを決定することが可能となる。
図8は本実施形態によるレイアウトの優先順位を設定しない場合のレイアウト計算の方法を示したフローチャートである。また、図9はそのときのUI表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの1レコードの印刷/プレビュー時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を求める(ステップS901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば図10を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナA、Bが集合1、コンテナC、Dが集合2となる。すなわち、リンクによって接続されたコンテナ群を一つの集合として特定する。
前述したように、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
次に、レイアウト編集アプリケーション121は、ステップS901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(ステップS902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナ(A,B)について、流し込まれるデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。具体的には、レイアウト編集アプリケーション121は、コンテナAが画像データ用コンテナであるか、テキスト用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。
次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込み、コンテナAが画像データ用コンテナである場合は、その画像データのサイズ(幅、高さのピクセル数、および解像度)がコンテナAの制約を受けない場合の大きさになる。また、コンテナAがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナAに流し込まれるべきデータ量が計算できる。ここで、テキスト用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。
図10の例では、コンテナAは、左上および左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判断する。すべて流し込めると判断された場合は、コンテナAは、基本パターンで設定されているサイズ(幅、高さ)に変更はない。
また、すべて流し込めないと判断された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップS903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。
レイアウト編集アプリケーション121は、ステップS902で算出したコンテナの集合のサイズ、つまりコンテナAとコンテナBとリンク1106(ここでは固定リンク)の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図10の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を求める。コンテナAやコンテナBの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。以上の処理により、流し込むべきコンテンツデータのコンテンツサイズとコンテンツデータが流し込まれるべきコンテナ(データ領域)とのサイズの差異が小さくなるようにコンテナの配置位置およびサイズを決定することが可能となる。
レイアウト編集アプリケーション121は、レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(ステップS904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。
ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、ステップS902〜S904の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション121は、ページ全体のレイアウトを計算する(ステップS905)。
図9の(A)〜(C)は優先順位の設定なしでのレイアウト時のUI例である。
図9の(A)は、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。
図9の(B)は(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツサイズを表している。
図9の(C)はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図9の(C)で示されるように、(B)で示した挿入されるコンテンツサイズ(1009)と計算後のコンテンツサイズ(1010)は、双方において同等な差異がある。
しかし、単純に同等の差異をもってコンテナサイズを変更するだけでは、図10のような横方向のみのレイアウト計算の場合は問題ないが、図11のように縦方向および横方向を考慮したレイアウト計算を行わなければならない場合、対応できなくなる可能性がある。
横方向と縦方向の2次元的なレイアウトを扱う図11の場合、図8のレイアウト計算方法を用いて、まず横方向に調整を行い、後に縦方向に調整を行う。すなわち、コンテナ321と322の間で、上述した手順で設定値Dに収まるようレイアウト調整を行い、その後、コンテナ322と323の間で設定Gに収まるようレイアウト調整を行えばよい。
しかし、横方向に調整を行い、後に縦方向に調整を行うという調整方法では、ユーザが所望とする基本レイアウトからずれたレイアウト結果になることが想定される。
そのため、各コンテナについて、基本パターン(縦横比)からなるべくずれないように、例えば、基本パターンの幅とレイアウト調整後の幅の差の2乗と、基本パターンの高さとレイアウト調整後の高さの差の2乗との和を求め、これをすべてのコンテナについて算出する方法が考えられる。
そして、レイアウト編集アプリケーション121は、各コンテナの2乗の和の合計値が最小となるように、それぞれのコンテナの幅と高さを算出してレイアウト調整を行っても良い。この最小2乗法を用いてレイアウト調整を行うことにより、レイアウト編集アプリケーション121は、コンテンツデータのコンテンツサイズとコンテンツデータが流し込まれるデータ領域のサイズとの差異が小さくなるようにレイアウト調整を行い、全体としてバランスのとれた最終レイアウトを決定することができる。
なお、コンテナ間には後述する可変リンクが設定されているため、流し込まれるコンテンツデータのサイズに応じて後述するようにリンクサイズは変更する。本願記載のレイアウト編集アプリケーションはこのようなレイアウト調整ユニットを備えることにより、割り当てられたデータサイズに応じて複数の部分表示領域(コンテナ)の配置位置を調整することが可能となる。このようなレイアウト調整方法を用いることにより、タが入れのレイアウトサイズを調整することが可能となる。
(長さが可変のリンクの設定)
図12では可変リンクの設定のためのユーザインターフェースを表している。図4と同様にアプリケーションウインドウ301とツールバー303がある。
図12の状態では、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナはアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206を含んで構成されている。
コンテナ1203と1204の間には可変サイズのリンク1209があり、コンテナ1203とコンテナ1204を結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケーター1210、インジケーター1211が表示され、それぞれ辺1207と辺1208が可変であることを示している。
また、図14は、リンク設定手段におけるユーザインタフェース画面であり、リンク1209の情報をセットするためのダイアログウインドウ1401の例である。このダイアログは、タイトルバー1402、ツールボタン1403、ダイアログウインドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウインドウではリンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行える。リンクタイプが可変の場合にはリンクの長さの最小値(Min.Distance1410)、最大値(Max.Distance1412)、ならびに基準値(Distance1411)が設定できる。図14のダイアログ1401は、たとえば、図6、図7で説明したリンクの設定操作によって2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで各コンテナ間の距離の基準値1411は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
図13は、本実施形態のユーザインターフェース103による可変リンクの設定手順を説明するフローチャートである。例えば図11のコンテナAとコンテナBの間に図6、図7で説明した手順でリンクを張ると、まず固定サイズのリンクが張られる。そして、このリンクを選択して図13に示す処理を実行することにより、当該リンクを固定サイズのリンク1106(図11)の状態から可変サイズのリンク1209(図12)へと遷移させることができる。
まず、マウスにより所望のリンク(たとえばリンク1106)を選択状態とし、リンクプロパティを表示させるための所定の操作が行われると、レイアウト編集アプリケーション121のユーザインターフェース103は、リンクプロパティの表示指示の入力として認識する。リンクプロパティの表示指示を認識すると、選択状態のリンク(以下、対象リンクという)に対応したプロパティダイアログウインドウ1401(図14)が表示される。次に、ユーザインタフェース103は、リンクプロパティを表示する(ステップS1303)。なお、リンクの選択操作としては、コンテナの基本パターンの設定時と同様に、マウスの右クリックあるいはキーボードの特定のキーの操作等、いかなるものであってもよい。
ステップS1303で表示されるダイアログウインドウ1401には選択されたリンクの現在の状態が示される。本例では、リンク1106が選択されたので、この段階ではリンクサイズは固定であり、Link Type1405においては、固定長を示すFixed Length1406が選択されている。
このダイアログウインドウ1401においてリンクを固定サイズから可変サイズに変更するために、Link Type1405においてリンクサイズを可変に設定するためのFlexible Length1407を選択する。これによりLink Distance1408内に配置されているMax.Distance1412、Min.Distance1410、Distance1411が有効になり、数値の設定が可能となる。ユーザは、リンクの可変サイズを設定するために、そのリンクの長さの最大値をMax.Distance1412に、最小値をMin.Distance1410に、現在の値をDistance1411に設定することになる。
設定を終えると、ユーザは一般的なダイアログウインドウ開閉ボタン1404によって当該設定の適用を指示する。ユーザインターフェース103はこの指示を検出すると、ステップS1303からステップS1304以降へ処理を進め、当該対象リンクに上記設定状態を反映させる。
すなわち、まず、ステップS1304において、レイアウト編集アプリケーション121は、リンクのタイプとして可変リンクが選択されたことを認識する(S1304)。
ステップS1304において、可変サイズが指定されていれば、ステップS1305にて、上記ダイアログウインドウ1401によって設定された対象リンクの現在値(基準値)、最大値、最小値を登録する。その後、ステップS1306で対象リンクの表示状態を「可変リンク」を表す「点線」とする。この結果、図12のリンク1209に示すような状態にリンクのUI表示が変化する。以上のダイアログウインドウ701の設定情報はメモリに格納される。
なお、Distance1411に設定される現在の値には、現在のレイアウトとして配置されているコンテナの間の距離がデフォルト値として自動的に入力されるようにしてもよい。
図15は固定サイズのリンクを使用した場合であり、図12に記載されている基本レイアウトにコンテンツを流し込んだレイアウト結果を示している。なお、図12のリンク1209は可変リンクとなっているが、固定リンクが設定されているものと想定する。レイアウト計算方法は前述したとおりに従って行われる。
例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのイメージデータ(1504および1505)が挿入された場合を考える。
この場合、それぞれのコンテナはデータの大きさを最適とみなし、コンテナ1203は挿入されたイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ、同様にコンテナ1204は挿入されたイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へサイズを変更しようとする。
しかしコンテナ1203とコンテナ1204はアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213の移動ができず、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ間には固定サイズのリンク1503が設定されており、レイアウト計算時にその長さ維持されるため、コンテナ1203とコンテナ1204のサイズが変更されることになる。
その結果、コンテナ1203とコンテナ1204はデータサイズ(1504および1505)に合わせた最適なサイズを確保することが出来ず、最終的に図15に示すように、最適なサイズ(枠1504、枠1505)よりも小さくなってしまう(コンテナ1501および1502)。
すなわちリンク1503のサイズが固定であるためコンテナ1501とコンテナ1502は最適サイズを達成できない(図15において、各コンテナ内の一点差線で示した範囲がデータの持つサイズである)。
一方、図16は図15と同様の状態でリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図示の通り可変サイズ1209のリンクが設定されている。
したがって、コンテナ1203とコンテナ1204のサイズが変更される際には、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズを図15の例より大きくすることができる。
この結果、挿入されるデータサイズに合わせた最適なサイズを達成できる、あるいはより挿入データサイズ(最適サイズ)に近いコンテナの枠を設定することが出来る。
図16はこの結果を示しており、可変リンク1209はレイアウト計算の結果、可変リンク1603に示されるようなサイズ状態となる。なお、この場合コンテナ1203とコンテナ1204は、データサイズに合った大きさである最適なサイズ(コンテナ1601および1602)になっている。
(マルチレコード(マルチデータ)機能)
マルチレコードについて概要を説明する。なお、本願では後述するサブテンプレートに従って1レコードの情報を配置し、複数のサブテンプレートをフローエリアに順次配置する機能をマルチレコード機能と呼ぶ。また、その動作は、「サブテンプレートをフローエリアに流しこむ」として表現する。
通常のドキュメントテンプレートでは、1レコードが1ドキュメントに対応しているが、サブテンプレートに対応するマルチレコードは、基準となる項目が変化するブレイク(区切り)が発生するまでのレコードが流し込まれるため、1ドキュメント内に複数のレコードが入る。よって、通常のドキュメントテンプレートに対応するバリアブルデータのデータベースと、サブテンプレートに対応するバリアブルデータのマルチレコードのデータベースとは異なるデータベースとすることが望ましい。なお、サブテンプレートの説明については後述する。
図17は、マルチレコードとそのレイアウト方法の概要の一例を示した図である。1701はドキュメント、1702および1705はページ、1703はサブテンプレート、1704はデータベースを示している。
1704で示すデータベースを見てみると、No1〜7のレコードが表示されている。1レコード1ドキュメントのバリアブルプリントでは、7つレコードがあるので、この場合7ドキュメントが作成される。しかし、多レコード1ドキュメントのマルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。
まずマルチレコードを指定するカラムをユーザが任意に指定する。指定はたとえばテンプレート作成時になされる。この指定されたフィールドを特定するための情報は、マルチレコード情報としてメモリ136に保持されている。
図17の例ではフィールド名:Nameが指定されたものとする。すると、その指定されたフィールドの値が同じレコードは、1ドキュメントにレイアウトされるレコードであると判定されて、指定されたサブテンプレートを用いてレイアウトされ、1つのフローエリアに流しこまれる。
図17の例では、No1〜4のレコードはフィールドNameの値が「Tom」であるため、ひとつのフローエリアに流しこまれ、ひとつのドキュメント1702上にレイアウトされる。No5〜7のレコードは、フィールドNameの値が「Nancy」であるため、「Tom」と同じテンプレートを用いて、しかし異なるドキュメント上にレイアウトされる。すなわち、いったん「Tom」のドキュメントを完結させ、「Nancy」のドキュメント1705を作成する。
具体的には、たとえばテンプレートデータにおける設定に従って「Tom」のドキュメントにフッタ等を付加(不図示)してから改ページする。これにより「Tom」のドキュメントは完結する。
次にそれまでと同じテンプレートデータを用いて、「Nancy」のドキュメントのヘッダ等を新たなページに付加する(不図示)。そしてテンプレートに定義されたフローエリアに、これもサブテンプレート情報として設定されたサブテンプレートを用いて、NAMEフィールドの値が「Tom」のレコードについてレイアウトしてフローエリアに流しこむ。これが通常のマルチレコードである。
ただし本実施形態では、NancyとTomとでは、同じテンプレートデータを用いるが、個々のレコードについて同じサブテンプレートを用いるとは限らない。別途指定した条件に応じたサブテンプレートを用いることができるためである。
図18は本発明に係るレイアウト編集システムによるテンプレート作成モードの説明UIを示している。
レイアウト編集アプリケーション121が実行され、新たなテンプレートの作成の指示をユーザが入力することで、図18の画面(ただし矩形1804、1805、1806は除く。)が表示される。
図18のアイコン1803が押下されたことを認識することにより、フローエリア作成モードへと遷移し、ページマージンのエリア1802において、ユーザのマウスのドラッグによりフローエリアが描画される。なお描画されたフローエリアの位置およびサイズは、フローエリア情報としてメモリユニット136に保存される。
なお、矩形の1804や1805は、フローエリア1806外に定義されるテキストコンテナやイメージコンテナである。これらのコンテナは、フローエリア内にコンテンツを流しこむ処理とは関係がないが、たとえばヘッダ、フッタとして設けておくことができる。これらコンテナもまた、入力されたその位置及びサイズがメモリユニット136に保存される。
フローエリア1806は、それらのコンテナとは色や線種などの矩形UIを異ならせることにより、ユーザに視覚的に認識しやすいようにする。
また、作成されたフローエリアはデータベースとの関連付けが行われる。これは、たとえばフローエリアに関連づけられるデータベース名および各レコードにおけるフィールド名等の識別子を入力する処理である。操作上は、たとえばフローエリアをクリックするなどして対象のフローエリアを特定し、そこで一定の操作の流れに従ってこれら必要な情報を入力させる。その情報についてもメモリユニット136に保存される。
(フローエリアのプロパティ設定)
図19はフローエリアの各種設定(プロパティ設定)を行う設定ダイアログの例を示している。なお、文中のサブテンプレートおよび条件式については後で説明する。
まず、ユーザがラジオボタン1902によってまずフローエリアに関連付けるものがサブテンプレートであるか、それとも条件式であるかを選択する。その後、サブテンプレートの関連づけが選択されている場合には、リストボックス1903からフローエリアで使用するサブテンプレートをユーザが指定する。あるいは条件式の関連づけが選択されている場合には、リストボックス1904からフローエリアで使用する条件式をユーザが指定する。
サブテンプレートおよび条件式は、編集中のドキュメントテンプレート内に、あるいはテンプレート外であっても所定の場所に、それぞれの特有なUI手段によって別途作成できる。また、条件式は後述する図21のUIにより作成することができる。しかし他の手法としては別のファイルに保存され、この設定ダイアログからはファイルを指定することによって選択指定できるものとしてもかまわない。
本実施形態では、ドキュメントテンプレート内にそれぞれ複数のサブテンプレートおよび条件式を作成できるが、リストボックスから選択するという特性上からも、それぞれが固有の名前を持ち識別できるように設計されるべきである。その他に、本設定ダイアログからは、サブテンプレートをフローエリアに流しこむ際のフローの方向(すなわちコンテンツを並べる方向)を選択欄1905から選択する。コンテンツの間隔は、縦は設定欄1906、横は設定欄1907で設定することが可能である。
以上の設定を確定するには、OKボタン1908を押下する。OKボタンが押されると、そのときの設定がフローエリア情報としてメモリユニット136に保存される。
例えば、対象としているフローエリアがサブテンプレートと関連づけられたのかそれとも条件式と関連づけられたかを示すフラグ情報、そのフラグ情報に応じてサブテンプレート名あるいは条件式名(条件式ファイルの名称)、フロー方向、間隔という情報が保存される。また、キャンセルボタン1909を押下すると指定された各種設定はすべてキャンセルされ、保存されない。
(サブテンプレートのレイアウト例)
前述したサブテンプレートについて、概要を説明する。図20はサブテンプレートのレイアウト例(つまりサブテンプレートを用いてデータをレイアウトした例という意味。以下同じ。)を示している。
サブテンプレートは、任意数のイメージコンテナ、任意数のテキストコンテナが配置されている領域である。そして、サブテンプレート内に配置されているコンテナは、レコードのどのデータ(フィールド)を割り当てるかが設定された状態で、テンプレートとして保存してあるデータを指す。同じレイアウトを一つのドキュメントで数多く使う場合に便利である。
サブテンプレート内に配置されるコンテナは、前記イメージコンテナ、テキストコンテナと同様であり、各コンテナ間にはリンクを設定することも可能である。したがって、サブテンプレート内に配置されたコンテナにレイアウトするためのデータを流し込み、図8に記載のレイアウト計算方法により、レイアウトサイズを最適に変化させることが可能である。
図20はサブテンプレートのレイアウト例を示している。2002と2005はイメージコンテナ、2003と2006はテキストコンテナ、2007はリンクを示している。
図20では、サブテンプレート2001と2002に配置された各コンテナに流し込まれるイメージ、テキストのコンテンツサイズが異なるため、レコードごとにそれぞれ最適なレイアウトを計算してレイアウトを変更している。そのため、同じサブテンプレートを用いているにもかかわらず、サブテンプレート2001と2002では異なるレイアウトとなる。なお、サブテンプレート内に配置されているコンテナのサイズ変更やレイアウト決定に応じて、サブテンプレートのサイズが変更するようにしても構わない。
(サブテンプレート条件式)
サブテンプレート条件式は、ひとつのフローエリアに対して複数のサブテンプレートを選択的に割り当てるために用いられる条件を示す。フローエリアには、サブテンプレートあるいは条件式のいずれかひとつを関連付けることができる。
もし、フローエリアに対してサブテンプレートを関連付けた場合、取得されたレコードは関連付けられたサブテンプレート内に流し込まれることとなる。なお、サブテンプレートを関連付ける際に条件式を設定し、該条件式に適合するレコードのみをフローエリアに関連付けられたサブテンプレートに流し込むようにしても構わない。
また、条件式には条件適合時に適用されるサブテンプレートの識別情報を含む。図21は条件式を設定するUI例であり、フローエリアに設定された条件式に適合するレコードのコンテンツデータが、サブテンプレートのコンテナに流し込まれることとなる。そして、レコードのコンテンツデータが流し込まれたサブテンプレートがフローエリアに配置される。
この入力領域は、条件式に名前を付けるテキストボックス2102と、もっとも基本的な条件判定を構成する要素であるIF文2103とELSE文2104のペアを最低限有している。IF文の入力領域においては、条件の判定対象となるフィールドの選択を行うリストボックス2105と、判定の論理式を設定するリストボックス2106、判定に用いられる値を入力するテキストボックス2107、条件判定が正だったときに動作を決定する、該レコードを挿入するためのサブテンプレートを決定するTHEN_USE処理文2108、また、同じく条件判定結果が不正だったときに該レコードを挿入するためのサブテンプレートを決定するELSE_USE処理文2104からなっている。判定の論理式2106には、EQUAL(等しい)、NOT_EQUAL(等しくない)、LESS_THAN(小さい)、LARGER_THAN(大きい)、START_WITH(で始まる)、END_WITH(で終わる)などさまざまな条件が用意される。
さらに、複雑な条件式を設定するためには、IF文中に複合条件を設定するためにAND/OR接続文コンボボックス2109を有する。このコンボボックスでANDまたはORの複合条件を選択すると、IF文中に条件行が1行追加される。ANDの場合、複数の条件がすべて正であるときのみ、ORの場合いずれかの条件が正であるときにIF文判定が真であると判定される。
また、さらに複雑な条件分岐を設定するためには、ELSE_IF文追加ボタン2110を有する。ボタン2110を押下すると、前述IF文とELSE文の間に、あらたにELSE_IF文が追加挿入される。ELSE_IF文の内容と動作は、IF文における内容と同じである。
IF文が不正のときにひとつ下のELSE_IF文を判定し、さらに不正のときにもうひとつ下のELSE_IF文を判定し、これを続けて最後にELSE文を判定する、という順に処理を行う。2111は選択されているELSE_IF文を削除する削除ボタンである。ELSE_IF文が多くなった場合、スクロールバー2112を使って条件のリストを表示することが可能である。いずれかのIF文あるいはELSE_IF文で真と判定された場合、そのUSE処理文が実行される。USE処理文にはサブテンプレート名が入力(選択)される。
このように、条件式を通して、さまざまな値を取るレコードのそれぞれに、条件に合ったサブテンプレートを自動的に選択することができ、ひとつの条件式においてさまざまなレイアウトを実現することが可能になる。この条件式をフローエリアに関連付けることによって、ひとつのフローエリアにおいて、さまざまなレイアウトを持った複数のサブテンプレートをフローエリア内に配置することが可能になる。
ユーザは条件を入力すると、最後にOKボタン2114を押す。OKボタン2114の押下により、UIで設定されたサブテンプレート条件を示す情報がメモリユニット136に保存される。メモリユニット136に保持されている条件式からコンテンツデータを流し込むべきサブテンプレートを決定することができる。なお、サブテンプレート内部のコンテナサイズの変更に応じて、サブテンプレートの外枠サイズが変更されても、常にサブテンプレートの外枠サイズは固定であっても構わない。
図22は本実施例で使用される図の概要を示している。
2201はドキュメント、2202はページ、2203はマルチレコードのフローエリア、2204はコンテナ、2205はサブテンプレート示している。
本発明では、2205の各サブテンプレート間のギャップ(距離)を所定のページに配置されたサブテンプレートの配置位置や所定のページを占めるサブテンプレートの割合が、所定のページに設定されている条件を満たすか否かの判断結果に基づいて変更する。また、本願では、通常の印刷設定の場合と製本印刷設定の場合での再レイアウト方法を定義している。さらに、本願では、サブテンプレート間に生じる距離をギャップとして表現している。
図23は本発明における通常印刷設定時の処理の流れをフローチャートで示している。
まず、レイアウト編集アプリケーション121は、所定の操作により再レイアウト処理の実行内容を設定するため、図24に記載のダイアログ2401を表示する。
ここで図24のギャップ設定ダイアログ2401について説明する。ギャップ設定ダイアログ2401には、印刷時にサブテンプレート間にどの程度のギャップ(距離)を保持して印刷を実行するかを設定するための領域2402がある。図24では「10mm」と設定されており、サブテンプレートは10mmのギャップ(距離)を保持してフローエリアに配置される。つまり、レイアウト編集アプリケーション121は、図24の例では各サブテンプレート間の距離を10mmとして各サブテンプレートの配置位置を決定する。
また、本願ではサブテンプレート間のギャップ(距離)を変更することによる再レイアウト処理を行っているため、ユーザは、ダイアログ2401を用いて再レイアウト処理を実行するか否かを選択する。具体的には、「固定2403」が選択された場合は、ギャップを変更することによる再レイアウトは行わず、「微調整可2404」が選択された場合、サブテンプレート間のギャップ(距離)を変更することによる再レイアウト処理を実行する。なお、再レイアウト時にサブテンプレート間の距離を変更するが、段階的に変更処理を行うため調整幅2405を設定する。
また、各サブテンプレート間が最低限の間隔を保てるように最小値(Gmin)を設定する。その最小値の設定領域が「最小値2406」である。
ここで具体例を挙げて説明をすると、図24においては「調整幅=1mm」「最小値=5mm」と設定されているため、サブテンプレート間の距離は最小値5mmまで1mm単位で変更する再レイアウト処理が実行される。そして、レイアウト編集アプリケーション121は、ダイアログ2401に設定された内容を認識して、メモリユニット136に保持する(S2301)。
続いて、レイアウト編集アプリケーション121は、S2301により再レイアウトの指示が設定されているか否かを判定する(S2302)。詳細には、図24を用いて設定された内容はメモリユニット136に保持されているため、レイアウト編集アプリケーション121が、メモリユニット136を参照することにより「微調整可2404」が選択されているか否かを判定する。
S2302により、再レイアウト指示が設定されていると判定した場合、レイアウト編集アプリケーション121は再レイアウトを実行する条件である閾値を設定させるため、図25(A)に示すダイアログ2501を表示して、閾値を設定する(S2303)。つまり、後述するS2305の再レイアウトステップにより領域間の距離の変更処理を実行するための条件となる閾値を設定する。
図25(A)の設定ダイアログ2501では、まず対象ページを指定するために2502および2503がある。ユーザにより2502が選択された場合、レイアウト編集アプリケーション121が、最終ページを占めるサブテンプレートの割合が設定された閾値以下であると判定することによりサブテンプレート間の距離を変更する再レイアウト処理を実行する。
また、2503が選択された場合、ページ設定領域2504が有効となる。レイアウト編集アプリケーション121は、ページ設定領域2504に入力されたページを占めるサブテンプレートの割合が設定された閾値以下であると判断することによってサブテンプレート間の距離を変更する再レイアウト処理を実行する。なお、図25では最終ページが選択されているため、ページ設定領域2504はページ指定ができないように表示される。また、図25Aでは、サブテンプレートが占める割合で判定するとの記述をしたが、これに限ることは無く、例えばサブテンプレートの配置位置で判定しても良い。この場合、例えば、閾値として50%と指定された場合、サブテンプレートの配置位置が指定されたページの50%の位置(つまりページを垂直方向に2等分した位置)よりも上にあるか下にあるかで判定する。サブテンプレートが上にある場合は、閾値まで至っていないため、レイアウト編集アプリケーション121は、サブテンプレート間の距離を変更する再レイアウト処理を実行すべきと判断する。なお、このようなサブテンプレートが配置された各ページにおいてサブテンプレート領域が占める割合情報やサブテンプレート領域の配置位置情報を配置情報とする。なお、本願では割合情報を用いて再レイアウト処理の実行を判定するものとする。
ダイアログ2501を用いてページを指定した後、閾値設定領域2505に対して閾値を設定する。例えば、ダイアログ2501では「最終ページ」および「10%」が設定されている。そのため、レイアウト編集アプリケーション121は、図8によるレイアウト処理を実行した結果、最終ページに占めるサブテンプレートの割合が最終ページの10%以下であれば、サブテンプレート間の距離を変更する再レイアウト処理を実行する。
また、図25(B)のようにユーザインタフェース(UI)2511を用いて閾値を設定することもできる。UI2511を用いて閾値を設定するためには矢印2514をマウス等により操作して、領域2512を拡大または縮小することにより閾値を設定するようにしても構わない。なお、図25(B)に示したUI2511では、矢印2514を操作することによる領域2512のサイズで閾値を設定しており、該矢印の操作に応じて、その時の閾値が領域2513に表示される。図25を用いて設定された内容は、メモリユニット136に保持される。
S2303までの処理により閾値及び再レイアウト方法の設定が終了する。続いてレイアウト編集アプリケーション121は、コンテンツデータをサブテンプレート内のコンテナに流し込み、図8の調整方法を用いてコンテンツデータのサイズおよび指定された領域間の距離に基づいて、コンテンツデータを流し込むべき領域(例えばサブテンプレート領域)の配置位置を決定する。図8の調整方法によりレイアウトが決定されたサブテンプレートをドキュメントテンプレート内のフローエリアに配置することに応じて、図25で指定されたページを占めるサブテンプレートの割合を算出し、S2303で設定した閾値と比較する(S2304)。つまり、レイアウト編集アプリケーション121は、図8の調整方法により決定されたサブテンプレートの配置位置に基づいて各サブテンプレートが配置されたページ位置を認識する。そして、レイアウト編集アプリケーション121が認識したサブテンプレートから図25で指定したページに配置されたサブテンプレートを特定し、指定ページに配置されたサブテンプレートの配置情報が図25で設定した条件である閾値を満たすか否かを判定する。詳細には、レイアウト編集アプリケーション121は、図25にて指定したページに配置された領域の配置位置または図25にて指定したページに配置された領域(サブテンプレート)が占める指定ページに対するサブテンプレートの割合が、図25を用いて設定した閾値情報を越えているか否かを判定する。各サブテンプレートの配置情報はレイアウト編集アプリケーション121を構成するモジュールの1つであるレイアウトエンジンを用いて計算することができる。例えばレイアウトエンジンが、各サブテンプレートの配置位置を座標値等を用いて認識することにより、S2303にて指定されたページを占めるサブテンプレート領域の割合を算出することが可能である。算出された指定ページを占めるサブテンプレートの割合とS2303で設定した閾値とを比較することによりS2304が実行される。すなわち、レイアウト編集アプリケーション121は、図8のレイアウト処理により決定された各サブテンプレートの配置位置を認識し、図25Aにて指定されたページに配置されたサブテンプレートの配置情報を解釈する。その結果、図25Aにて指定されたページに配置されたサブテンプレートの配置情報が、図24を用いて設定された条件を満たすか否かを判定することが可能となる。
S2304の比較処理により、レイアウト編集アプリケーション121が、図25の設定ダイアログを用いて指定された所定のページを占めるサブテンプレートの割合が図25で指定した条件を満たさない(閾値以下である)と判定した場合、S2301で設定された値を用いてサブテンプレート間の距離を変更し、再レイアウト処理を行う(S2305)。再レイアウト処理は、図24のダイアログ2401にて設定された値を用いて実行される。例えば、最終ページに占めるサブテンプレートの割合が閾値以下である場合、最終ページには、多くの余白が存在すると考えられる。その際、最終ページの前にあるページ(例えば最終ページの1つ前のページ)のサブテンプレート間の距離を図24にて設定された調整幅を用いて変更(縮小)する。この際、再レイアウト処理の対象となるページを指定しなければならない。そこで、S2305による再レイアウト処理が始まる前に、レイアウト編集アプリケーション121は、図26に記載のギャップ調整範囲指定ダイアログ2601を表示する。ダイアログ2601では、再レイアウト処理を実行すべき対象ページを選択するための選択ボタン2602〜2604が表示されている。なお、図26を用いて実行する設定処理は、S2305による再レイアウト調整を実行する前に行えば良く、例えばS2301の段階で設定するようにしても構わない。
本願では再レイアウト方法の一例として以下の3つの方法を定義している。1つ目の再レイアウト方法は全ページに存在するサブテンプレート間のギャップを変更する「全ページ」(2602)。2つ目の再レイアウト方法は、ユーザの指定したページ内に存在するサブテンプレート間のギャップを変更する「指定範囲ページ」(2603)。3つ目の再レイアウト方法は、最終ページの1つ前ページ内に存在するサブテンプレート間のギャップを変更する「該当ページ」(2604)である。なお、いずれの方法を用いても、図25Aにて指定したページとは異なるページに属する領域間の距離が変更対象となる。そして、レイアウト編集アプリケーション121は、変更された領域間(サブテンプレート間)の距離を用いてコンテンツデータが流し込まれた領域の配置位置を再決定する。
例えば、図26に示す通り「該当ページ」2604が選択された場合、S2305に記載の再レイアウト処理は、最終ページの1つ前のページ内に配置されたサブテンプレート間の距離を図24にて設定された調整幅を用いて変更する。つまり、レイアウト編集アプリケーションは、S2304の判定ステップにより図25にて指定したページに配置された領域の配置情報が図25にて指定した条件である閾値を満たさないと判定された場合(閾値以下であると判定された場合)、図25で指定したページとは異なるページ(図26にて指定したページ)に配置された領域間の距離を変更する。なお、レイアウト編集アプリケーション121は、図24にて設定した調整幅2405の値を用いて領域間の距離を変更し、変更された領域間の距離を用いて再レイアウト処理を行い、サブテンプレートの配置位置を再決定する。
S2305の再レイアウト処理の結果、レイアウト編集アプリケーション121は、図26により再レイアウト処理の対象として指定されたページのサブテンプレート間の距離が最小ギャップサイズGmin以上か否かを判定する(S2306)。詳細には、図24を用いて設定された最小ギャップサイズはメモリユニット136に保持されている。そのため、レイアウト編集アプリケーション121が、メモリユニット136を参照することにより最小ギャップサイズを認識することは可能である。また、サブテンプレート間の距離は、レイアウト編集アプリケーション121を構成するレイアウトエンジンが各サブテンプレートの配置位置を認識することにより把握可能である。そして、両者を比較することによりS2306の処理が可能となる。
S2306の判定処理によりレイアウト編集アプリケーション121が、図26にて設定された対象ページのサブテンプレート間の距離が最小ギャップサイズ以下であると判定されなかった場合(S2306−No)、S2304に戻る。レイアウト編集アプリケーション121は、S2304にて指定ページ内においてサブテンプレートが占める割合が図25のダイアログにて設定した閾値以上か否かを再度判定する。つまり、レイアウト編集アプリケーション121は、S2305により実行した再レイアウト処理(サブテンプレートの配置位置の最決定処理)に基づいて、各サブテンプレートが配置されたページ位置を認識する。そして、図25にて指定したページに配置されたサブテンプレートの配置情報が図25にて指定した条件を満たしているか(閾値以上であるか)を再判定する。ここで、指定ページ内を占めるサブテンプレートの割合が閾値以上であると判定された場合(S2304−No)、図23の処理は正常に終了する。
しかし、S2304により再度、閾値以下であると判定された場合(S2304−Yes)、S2305へと進み、レイアウト編集アプリケーション121は、図24にて設定された調整幅を用いて図26のダイアログにて設定された対象ページのサブテンプレート間の距離を変更(縮小)する。よって、本フローチャートは、再判定によって図25にて指定した条件を満たすと判定されるか、または図25で指定したページとは異なるページに配置される領域間のサイズが図24にて指定した最小値となるまで該異なるページに配置される領域間のサイズを変更する。つまり、S2305による再レイアウト処理を実行した後に、S2304による再判定において指定されたページに配置されるサブテンプレートが閾値以上となるか、再レイアウト処理の対象ページのサブテンプレート間の距離が図24にて設定した最小値未満となるまで実行される。
以上の処理により、コンテンツデータが流し込まれた領域間の距離を変更することにより、印刷結果の見栄えを改善すると共に、印刷時に無駄なコストが発生することを防止することが可能となる。なお、変更対象となる領域間における領域とは、上述したコンテナ(データ領域)であっても、サブテンプレート領域であっても良い。
図27は本発明における製本印刷設定時の処理の流れをフローチャートで示している。まず、図27のフローチャートを説明する前に、製本印刷設定時に発生する再レイアウト処理が必要となる場合の例について図41および42を用いて説明する。まず、図41ではドキュメント内に上述したフローエリアが設定されている場合を想定している。図41の4109から4114のようにフローエリアを有することにより、フローエリアに設定される条件によっては、図41に示すように見開きページにおいて一方のページにサブテンプレートが偏る場合が考えられる。例えば、ページ4104および4105は見開きページとなるが、各ページに設定されているフローエリア4111および4112に設定されている条件が異なることにより、配置されるサブテンプレート数に差異が生じる。図27および図29のフローチャートは、この見開きページにおいて生じるサブテンプレート数の差異を調整するために実行される。
また、製本印刷では1枚の記録媒体に対して4ページ分のページ領域が存在する。その結果、製本印刷を指定した場合、必ず4の倍数分のページ領域が存在する。例えば6ページ分の印刷データを製本印刷する場合、2枚の記録媒体上に8ページ分のページ領域が存在するため、ページ4206から4208は図42に示すとおり空白部分が多くなる。
図42に示すようにページ4201〜4205については1ページ分を埋めるだけのコンテンツが存在し、ページ4206はページの一部分にしかコンテンツが存在せず、ページ4207およびページ42088は配置すべきコンテンツがないため空白となっている。この場合、図45のフローチャートによる再レイアウト処理を実行することで、ページ4201〜4206の6ページに配置されるべきコンテンツをページ4201〜4208において指定された範囲内のページに対して均等に配置することが可能となる。その結果、コンテンツの平準化を図ることが可能となり、図42のように余白ページが大部分を占めるページ4206や空白ページ4207およびページ4208を有効的に活用することが可能となる。
図27のフローチャートについて説明する。まず、レイアウト編集アプリケーション121は、現在処理対象としているドキュメントの印刷設定(またはプレビュー設定)に対して製本印刷が設定されているか否かを判定する(S2701)。詳細には、ドキュメント毎に設定されている印刷設定は、メモリユニット136に保持されている。そのため、レイアウト編集アプリケーション121が、メモリユニット136を参照することによりS2701の処理が可能となる。
S2701の判定の結果、製本印刷が設定されていると判定された場合(S2701−Yes)、レイアウト編集アプリケーション121は、対象としているドキュメントにフローエリアが指定されているか否かを判定する(S2702)。なお、レイアウト編集アプリケーション121は、ユーザにより指定されたフローエリアを認識して、メモリユニット136に保持する。そのため、レイアウト編集アプリケーション121が、メモリユニット136を参照することによりS2702の判定処理が可能となる。
S2702の判定処理により、フローエリアが設定されている判定された場合(S2702−Yes)、S2703へと進み、フローエリアが設定されていないと判定された場合(S2702−No)、図45に記載のフローチャートへと処理を進める。なお、図45のフローチャートについては後述する。
S2702の判定処理により、フローエリアが設定されていると判定された場合(S2702−Yes)、レイアウト編集アプリケーション121は、所定の操作を認識して図24のダイアログ2401を表示する(S2703)。なお図24については上述したものと同じであるため詳細な説明については省略する。レイアウト編集アプリケーション121は、ダイアログウィンドウ2401に設定された内容を認識して、メモリユニット136に保持する。
続いて、レイアウト編集アプリケーション121は、S2703により表示した図24のダイアログ2401により再レイアウトの指示がなされたか否かを判定する(S2704)。詳細については、図23のS2702と同等であるため省略する。
S2704により再レイアウトが指定されたと判定した場合は、S2705に進み、再レイアウトが指定されていない場合は本フローチャートの処理を終了する。
S2704により、レイアウト編集アプリケーション121が、再レイアウトが設定されていると判定した場合、再レイアウトを実行する条件である閾値を設定させるため、閾値設定ダイアログを表示して、閾値を設定する(S2705)。なお、S2705により表示される閾値設定ダイアログは、基本的には図25に記載のダイアログと同様であるが、本フローでは製本印刷すべきページ群が判定対象となるため、図25に入力された閾値情報はページ群に対して設定される。
続いて、レイアウト編集アプリケーション121は、コンテンツデータをサブテンプレート内のコンテナに流し込み、図8の調整方法を用いてサブテンプレートの配置位置を決定する。配置位置決定処理が終了したサブテンプレートをドキュメントテンプレート上のフローエリアに配置することに応じて、各ページ内にレイアウトされたサブテンプレートの占める割合を算出し、S2705で設定した閾値と比較する(つまり、見開きページを構成する2つのページの少なくともいずれか一方のページにおいて、製本印刷すべきページ群に設定されている条件を満たさないページがあるか否かを判定する)。製本印刷の場合、1ページ目が見開きページとなることはないので、本フローチャートにおける各処理の対象となるのは2ページ目以降となる。
見開きページの各ページにおいてサブテンプレートが占める割合を算出し、S2705により設定された閾値と各ページに占めるサブテンプレートの割合を比較する。比較処理の結果、ページ内を占めるサブテンプレートの割合が閾値以下であると判定されるページがある場合(つまり、製本印刷すべきページ群に設定された条件(閾値)を満たさないページがあると判定された場合)、図28に示すギャップ調整確認ダイアログが表示される。
ダイアログ2801には再レイアウト処理を実行するか否かを選択するための選択ボタン2802および2803がある。ここで、選択ボタン2802が選択され、OKボタン2804が押された場合、レイアウト編集アプリケーション121は、見開きページに配置されるべきサブテンプレートの情報量を均等にすべく、見開きページに配置されるサブテンプレート間の距離を変更する再レイアウト処理を実行する(S2706)。なお、S2706の詳細については、図29に記載する。
レイアウト編集アプリケーション121は、S2706により計算されたサブテンプレート間の距離を用いて、再レイアウト処理を実行する(S2707)。
図29は本発明における製本印刷設定時に見開きページのサブテンプレート量(情報量)を均等に配置するために変更すべきサブテンプレート間の距離を算出する処理の流れをフローチャートで示している。
レイアウト編集アプリケーション121は、フローエリアを有する全てのページz(1<z≦n)の処理が終了するまで以下の処理を繰り返す(S2901)。なお、zは任意のページ数を指し、nはフローエリアを有するページの最終ページを指す。
まず、レイアウト編集アプリケーション121は、任意のページzが奇数ページであるか否かを判断する(S2902)。詳細には、各ページのページ属性情報をメモリユニット136に保持しているため、レイアウト編集アプリケーション121がページ属性情報を参照することにより、現在対象としているzページ目がどのページであるかを認識可能であるため、S2902の判断処理が可能となる。
S2902の判断処理により、zページ目が奇数ページであると判断された場合、レイアウト編集アプリケーション121は、z−1またはzページ目に占めるサブテンプレートの割合が、上述した閾値以下であるか否かを判定する(S2903)。詳細には、図23のS2304に記載の処理と同等であるため、詳細な説明については省略する。
S2903により、z−1またはzページ目に占めるサブテンプレートの割合が、設定された閾値以下であると判定された場合、レイアウト編集アプリケーション121は、zページ目およびz−1ページ内のサブテンプレートの個数Cntを取得する(S2904)。詳細には、レイアウト後のレイアウト結果はメモリユニット136に保持されており、レイアウト編集アプリケーション121は各サブテンプレートの位置情報を把握することで、S2904の処理が可能となる。
続いてレイアウト編集アプリケーション121は、ページzおよびz−1に配置されている各サブテンプレートのサイズSj(1≦j≦Cnt)を取得する(S2905)。各サブテンプレートのサイズについては上述した図8のレイアウト調整により算出したレイアウト結果をメモリユニット136に保持している。そのため、レイアウト編集アプリケーション121は各サブテンプレートサイズを取得することが可能となる。
レイアウト編集アプリケーション121は、S2905により取得したページzおよびz−1のページ内における各サブテンプレートサイズの合計値Sum_allを算出する(S2906)。なお、S2906により算出した各サブテンプレートサイズの合計値はページごとにメモリユニット136に保存される。
処理S2907からS2914は、見開きページであるzページとz−1ページ内のサブテンプレート量(情報量)をほぼ等しくするために、基準となる中間サブテンプレートを決定する処理である。つまり、z−1ページに配置すべきサブテンプレートとzページに配置すべきサブテンプレートの境目となるサブテンプレートを決定する。
レイアウト編集アプリケーション121は、サブテンプレートの合計を格納するための変数Sumを0で初期化する(S2907)。
レイアウト編集アプリケーション121は、zページおよびz−1ページに配置されたサブテンプレートにおいて中間サブテンプレートとなるSplitが決定するまでS2908〜S2913の処理を繰り返す(S2908)。
レイアウト編集アプリケーション121は、現在注目しているサブテンプレートjの1つ前までのサブテンプレートサイズの合計を格納しておくための変数Tmpを定義し、現在注目しているサブテンプレートjの1つ前のサブテンプレートj−1までのサブテンプレートサイズの合計を格納する。次にレイアウト編集アプリケーション121は、Sumにサブテンプレートjのサイズをプラスする(S2909)。なお、S2909で計算された値はメモリユニット136に保持される。
続いて、レイアウト編集アプリケーション121は、サブテンプレートjのサイズをSumにプラスした後(S2909の処理後)、S2906で算出したzページ及びz−1ページに配置される全てのサブテンプレートのサイズの合計値Sum_allを2で割った値とS2909により算出したSumの値が等しいか否かを判定する(S2910)。詳細には、S2906により算出したzページおよびz−1ページ内のサブテンプレートの合計サイズ(Sum_all)はメモリユニット136に保持されている。そのため、レイアウト編集アプリケーションは、Sum_allを2で割った値とS2909により算出したSumの値を比較することは可能となる。
S2910による処理の結果、S2909により算出したSumとS2906の算出結果であるSum_allを2で割った値が等しいと判定された場合、レイアウト編集アプリケーション121は、サブテンプレートjを中間サブテンプレートSplitとしてメモリユニット136に格納する(S2911)。つまり、現在着目しているサブテンプレートjがzページ及びz−1ページにおける全てのサブテンプレートの中間に該当するサブテンプレートとなる。なお、S2911の処理の結果、中間サブテンプレートSplitが決定された場合、その旨をしめすフラグ等を立てておく。これにより、レイアウト編集アプリケーションは、S2912およびS2913の処理を省略して、S2915の処理へと進むこととなる。
また、S2910の判定の結果、SumとSum_all/2の値が等しくないと判定された場合、レイアウト編集アプリケーション121はS2909で算出したSumがSum_all/2よりも大きいかどうか判断する(S2912)。S2912により、SumがSum_all/2よりも小さい場合、現在注目しているサブテンプレートjは、中間となるサブテンプレートの手前のサブテンプレートに該当すると判断される。そこで、次のサブテンプレートj+1において同様の処理を繰り返すため、S2908へ戻る。また、S2912において、SumがSum_all/2よりも大きい場合、レイアウト編集アプリケーション121は、サブテンプレートj−1までのサイズの合計とサブテンプレートjまでのサイズの合計を比較する。この比較処理により、Sum_all/2に値が近くなるような中間サブテンプレートSplitを決定する(S2913)。つまり、S2912により条件を満たすと判定された場合、現在注目しているサブテンプレートjは中間となるサブテンプレートを越えていると判断され、S2913の処理が実行される。詳細には、Sum_all/2とサブテンプレートjまでのサイズの合計Sumとの差の絶対値とSum_all/2とサブテンプレートj−1までのサイズの合計Tmpとの差の絶対値の小さい方を判定し、中間サブテンプレートSplitとして、メモリユニット136に格納する。
この処理により、S2912の判断条件を満たす場合、現在着目しているサブテンプレートを中間サブテンプレートとするのか、それとも現在着目しているサブテンプレートの1つ前にあるサブテンプレートを中間サブテンプレートとするのかを決定する。よって、S2911またはS2913により中間サブテンプレート(Split)が決定された場合、レイアウト編集アプリケーション121は、S2908〜S2914の処理を終了して、S2915へと進む。
レイアウト編集アプリケーション121は、S2908〜S2914の処理により中間サブテンプレートSplitを決定した場合、zページ及びz−1ページにおけるサブテンプレート間の距離を決定する。詳細には、レイアウト編集アプリケーション121は、現在対象としているフローエリアのサイズFsizeを取得する。フローエリアのサイズ(Fsize)は、フローエリア設定時にメモリユニット136に保存されるため、メモリユニット136を参照することにより取得可能である。続いて、レイアウト編集アプリケーション121は、z−1ページ内のサブテンプレートの合計値Sum1(中間サブテンプレートまでのサブテンプレートサイズの合計値)及びzページ内のサブテンプレートサイズの合計値Sum2(中間サブテンプレートの次のサブテンプレートからzページの最も下の位置に配置されるサブテンプレートまでのサイズ合計値)を算出する(S2915)。S2915の処理は、S2905の処理を実行するために用いた方法を適用することに実現可能である。
次に、レイアウト編集アプリケーション121は、各ページにおけるサブテンプレート間の距離を設定するべく、算出処理を実行する(S2916)。本発明では変更すべきサブテンプレート間の距離を算出する一例として{Fsize―(z−1またはzページ内のサブテンプレートの合計サイズSum1、Sum2)/ギャップ個数}という算出式を用いている。つまり、「Fsize―(z−1またはzページ内のサブテンプレートの合計サイズSum1、Sum2)」により、フローエリアにおいてサブテンプレート間の距離の合計値を算出する。そして、該算出された合計値を各ページが有するサブテンプレート間の個数で均等に割り振ることにより、サブテンプレート間の距離を算出することが可能となる。なお、サブテンプレート間の個数は各ページに配置されるサブテンプレートの個数+1の値であるため算出可能である。
レイアウト編集アプリケーション121は、マルチレコードのフローエリア内における全てのページに対し上記処理が終了したと判定した場合(S2917)、図29におけるフローチャートの処理を終了する。
上記図29のフローチャートを用いることにより、S2903により見開きページのいずれか一方でも、製本印刷を実行すべきページ群に設定された条件を満たさないページがあると判定された場合、製本印刷における見開きページ単位に情報量が均等になるようにコンテンツデータが流し込まれる領域(サブテンプレート)間の距離を変更することが可能となる。よって、見開きページ間で見栄えの良い製本印刷物を得ることが可能となる。
続いて図27のS2702にてフローエリアなしと判定された場合(S2702−No)に実行すべき図45のフローチャートについて説明する。レイアウト編集アプリケーション121は、再レイアウト処理の対象となるページ群を指定する(S4501)。なお、S4501により指定された指定範囲内のページがメモリユニット136に保持される。レイアウト編集アプリケーション121は、再レイアウト処理を実行する条件である閾値を設定させるためのダイアログを表示して、指定範囲内のページ群に対して閾値を設定する(S4502)。なお、S4502により設定される閾値は、S4501にて指定された指定範囲内のページ群に対して設定される。閾値設定ダイアログは、基本的には図25に記載のダイアログと同様である。なお、S4502にて設定された閾値はメモリユニット136に保持される。
続いてレイアウト編集アプリケーション121は、S4502において設定された条件である閾値を満たさないページが指定範囲内にあるか否かを判定する(S4503)。詳細には、レイアウト編集アプリケーション121は、コンテナに対してコンテンツデータを流し込み、図8の調整方法を用いてレイアウトを決定する。該レイアウト調整が終了したコンテナをドキュメントテンプレート上に配置することに応じて、指定された範囲内において、条件を満たさないページがあるか否かを判定する。つまり、レイアウト編集アプリケーション121は、S4502にて設定した閾値以下のサブテンプレートしかレイアウトされていないページがあるか否かを判定する。S4503の処理により、製本印刷が設定されていると判定された場合、製本印刷すべきページであり、指定範囲内のページ群に配置されたサブテンプレート領域の配置情報が指定範囲内のページ群に設定されている条件を満たすか否かをページ毎に判定することが可能となる。
S4503により条件を満たさないページがないと判定された場合(S4503−No)、レイアウト編集アプリケーション121は再レイアウト処理を実行する必要がないと判定して図45のフローチャートによる処理を終了する。
また、S4503により条件を満たさないページがあると判定された場合(S4503−Yes)、レイアウト編集アプリケーション121は、S4501にて指定されたページ内のサブテンプレート数を計算する(S4504)。詳細には、レイアウト編集アプリケーション121は図8の調整方法によってレイアウトされたレイアウト結果を保存しており、各コンテンツが配置されたページ領域を有するサブテンプレート情報を把握することが可能である。よって、レイアウト編集アプリケーション121は、S4502にて指定されたページおよび該指定されたページ内に配置されるサブテンプレート数をメモリユニット136を参照することにより認識する。
レイアウト編集アプリケーション121は、S4504により計算した指定されたページ内にレイアウトされたサブテンプレート数をS4501にて指定されたページ数を用いて割り算処理を実行する(S4505)。例えば、図42にてページ4202〜4207が指定された場合、該指定ページ内にレイアウトされているサブテンプレート数は13個である。よって、13(コンテナ数)÷6(指定されたページ数)の計算処理を実行する。
レイアウト編集アプリケーション121が、S4505による計算の結果、割り切れたと判定した場合(S4506−Yes)、レイアウト編集アプリケーション121は、S4506による計算結果により導かれた数のコンテナを指定されたページ内の各ページに配置する(S4508)。
また、S4506による計算の結果、割り切れないと判定した場合(S4506−No)、レイアウト編集アプリケーション121は、どのページに対して優先的に余りのコンテナをレイアウトすべきかを選択するためのUIを表示する。レイアウト編集アプリケーション121は、該UIにより選択されたページから優先的に余りのサブテンプレートを配置する(S4507)。例えば、前から優先的にレイアウトすべき指定がされた場合、指定ページの前半ページから優先的に余ったサブテンプレートを配置する。図42では、13(サブテンプレート数)÷6(指定されたページ数)の計算により、各ページには2つのサブテンプレートが均等にレイアウトされると共に、余った1つのコンテナは選択された前半ページからレイアウトされる。その結果が、図44に示す図である。なお、S4508およびS4507の処理により決定された各ページ領域に配置すべきサブテンプレート数は、当初各ページに配置されていたサブテンプレート数とは変更されている。例えば、当初は図42のような形式でページ4202から4205に3つのサブテンプレートが配置されており、ページ4206には1つのサブテンプレートが配置されていた。これに対し、図45のフローチャートによる処理を実行することで、図44のように指定範囲内の各ページに配置されるサブテンプレート数が変更されている。この変更に応じて、指定範囲内のページ群に配置されている複数のサブテンプレートを指定範囲内のページ群における各ページに対して均等に割り付けるべく、サブテンプレート間の距離を変更して、配置位置を決定する。
製本印刷を実行する場合、上述したように、1枚の記録媒体に対して4ページ分のページ領域が存在するため、必ず4の倍数分のページ領域が存在する。これに対して製本印刷時に生成される印刷データを各ページに配置した結果、必ずしも4の倍数分のページ領域に配置されず空白ページ領域が生じることにより、見栄えが悪くなる可能性がある。このような課題に対して図45の処理を用いることで、製本印刷時の所定の範囲のページに対して均等にコンテンツデータを流し込むべき領域(例えばサブテンプレート領域)を配置することができ、所定の範囲のページを通して見栄えの良い製本印刷物を得ることが可能となる。
図30は本発明におけるサブテンプレート間に優先順位が設定されている場合の処理の流れをフローチャートで示している。ユーザによっては、サブテンプレート間の距離を変更しても問題ないと考えているサブテンプレート間と、可能であれば変更して欲しくないと考えるサブテンプレート間がある。よって、図30では、サブテンプレート間に優先順位を設定し、該優先順位が高く設定されたサブテンプレート間はできる限りサイズ変更しないように処理を進める。
まず、レイアウト編集アプリケーション121は、所定の操作により図24のダイアログ2401を表示する。なお図24については上述したものと同等であるため詳細な説明については省略する。レイアウト編集アプリケーションは、ダイアログウィンドウ2401に設定された内容を認識して、メモリユニット136に保持する(S3001)。
続いて、レイアウト編集アプリケーション121は、S3001により再レイアウトの指示がなされたか否かを判定する(S3002)。なお、S3002の処理はS2302と同等であるため、詳細な説明については省略する。
S3002により、再レイアウト指示がなされたと判定した場合、ダイアログを用いてサブテンプレート間に優先度を設定させるため、レイアウト編集アプリケーション121は、図31Aに示すダイアログ3101を表示して、優先度を設定する(S3003)。図30では優先度をPi(1≦i≦n)で示しており、iの値が大きいほど優先度が高いことを示している。なお、各サブテンプレート間と対応付けて設定された優先度はメモリユニット136に保存される。つまり、レイアウト編集アプリケーション121は、優先的に領域間の距離を変更すべき領域間に対して低優先度を設定する。
続いて、ユーザインターフェースを用いて再レイアウトを実行する条件である閾値を設定させるため、レイアウト編集アプリケーション121は図25に示すダイアログ2501を表示して、閾値を設定する(S3004)。なお、図25については上述したものと同等であるため詳細な説明については省略する。
続いてレイアウト編集アプリケーション121は、各サブテンプレート間を優先度の低い順に調整するために、変数iの値を0で初期化する(S3005)。
S3005までの処理により閾値及び再レイアウト方法の設定が終了する。レイアウト編集アプリケーション121は、コンテンツデータをサブテンプレート内のコンテナに流し込み、図8の調整方法を用いてサブテンプレート内においてレイアウト調整を行う。レイアウト編集アプリケーション121は、該レイアウト調整が終了したサブテンプレートをドキュメントテンプレート上に配置することに応じて、図25で指定されたページ内にレイアウトされたサブテンプレートの占める割合を算出し、S3004で設定した閾値と比較する(S3006)。S3006の処理は、図23のS2304と同等であるため詳細な説明は省略する。
S3006において比較した結果、特定ページ内におけるサブテンプレートの占める割合が閾値以下の場合、レイアウト編集アプリケーション121は、各サブテンプレート間の距離を優先度順に変更するために、変数iの値に対してインクリメント処理を施す(S3007)。レイアウト編集アプリケーション121は、優先度の低い順に各ギャップサイズを再レイアウト対象に設定する(S3008)。具体的には、初めてS3008の処理を実行する場合には、「i=1」の場合であるため、優先度Pi=1と設定されたサブテンプレート間が再レイアウト処理の調整対象として認識される。各サブテンプレート間に設定されている優先度はメモリユニット136に保持されているため、レイアウト編集アプリケーション121が参照することにより、各サブテンプレート間の優先度を認識することは可能である。なお、S3008により認識されたサブテンプレート間は、一時的にメモリユニット136に保持される。
再レイアウト対象のサブテンプレート間を決定後、レイアウト編集アプリケーション121は、該サブテンプレート間の距離を図24で指定した調整幅を用いて再レイアウト処理する(S3009)。詳細には、再レイアウトの対象となるサブテンプレート間および、図24を用いて設定された再レイアウト処理の処理内容はメモリユニット136に保持されている。そのため、レイアウト編集アプリケーション121がメモリユニット136を参照することによりS3009は実行可能となる。
レイアウト編集アプリケーションは、S3009による再レイアウト結果を認識して、図24を用いて設定した最小値(Gmin)以下であるか否かを判断する(S3010)。サブテンプレート間の距離が最小ギャップサイズGmin以上の場合は、処理S3006に戻り、特定ページ内におけるサブテンプレートの占める割合が閾値以上であるか否かを再度判定する。ここで、特定ページ内におけるサブテンプレートの占める割合が閾値以上であると判定された場合、処理は正常に終了する。しかし、S3006により再度閾値以下であると判定された場合、S3007へと進み、次に優先度の高いサブテンプレート間対象として、再レイアウト処理が実行される。以上の処理を、図25で指定したページを占めるサブテンプレートの割合が閾値以上になるか、またはS3001で設定した最小値未満になるまで繰り返す。
図30に記載の処理を用いることにより、優先度の低いサブテンプレート間から再レイアウト処理の編集対象となるため、ユーザの意図を反映したレイアウトを実現することが可能となる。また、図30の処理では優先度の低いサブテンプレートから再レイアウト処理の対象となるとしたが、それに限ることは無く、サブテンプレート間の優先度を比較して、優先度が低いと判定されたサブテンプレート間の距離を変更するようにしても構わない。
図31A〜Bはサブテンプレート間の優先度設定ダイアログを示している。
図31Aにおける3104は優先度ON設定の場合の優先度レベルを設定するためのドロップダウンメニューを示している。3104を指示することにより3105に優先度を示す値が表示される。なお、優先度の設定のON/OFFはフローエリア内に適用されるものであり、優先度設定をONにした場合はすべてのサブテンプレートで優先度設定がONとなり、優先度P1で初期化される。各サブテンプレート間の優先度を変更する場合は、優先度設定ウィンドウ3101で優先度を変更する必要がある。
図31Aを用いて優先度を設定する例を図31Bに示す。
サブテンプレートが配置されたドキュメントテンプレートが図31Bのように表示されているため、ユーザは優先度を設定したい所望のサブテンプレート間をマウス等を用いて指定する。例えば図31Bの例でいえば、ページ3111〜ページ3113で1つのドキュメントが構成されているとする。ユーザはページ3112のサブテンプレート3114および3115の間を指定した状態で所定の操作をすることにより優先度設定ダイアログ3101が表示される。
図31Aにおける優先度を設定することを示すボックス3102をチェックし、3104を用いて優先度を設定することにより、サブテンプレート3114および3115の間に対して優先度が設定される。なお、優先度は重複しないようにすることも可能であるし、同じ優先度を設定できるようにしても構わない。なお、同じ優先度が設定されたサブテンプレート間は、同時に再レイアウト処理の対象となる。また、ここで設定された優先度はメモリユニット136に保持される。
図32は、図26の2604「全ページ」が選択された場合の再レイアウトの処理の流れをフローチャートで示している。
レイアウト編集アプリケーション121は、図24により設定された調整幅を用いて再レイアウト処理を実行する。すなわち、マルチレコードのフローエリア内における全てのサブテンプレート間の処理が終了するまで(S3201)、サブテンプレート間の距離を図24で指定された調整幅ずつ変更して(S3202)。詳細には、レイアウト編集アプリケーション121を構成するレイアウトエンジンが再レイアウト処理の対象となっているサブテンプレート間を生成している2つのサブテンプレートのいずれか一方を調整幅分だけ移動することにより実現される。なお、サブテンプレート間を生成する両方のサブテンプレートを調整幅の半分ずつ移動することにより、S3203の処理を実現しても構わない。
図33は、図26の2605「指定範囲ページ」が選択された場合の再レイアウトの処理の流れをフローチャートで示している。
レイアウト編集アプリケーション121は、ドキュメントテンプレート上のフローエリア内における全てのサブテンプレート間への処理が終了するまで、以下の処理を続ける(S3301)。
レイアウト編集アプリケーション121は、現在対象としているサブテンプレート間が図26のダイアログを用いて指定したページ内に存在するサブテンプレート間か否かを判断する(S3302)。詳細には、サブテンプレート間を生成しているサブテンプレートの位置を把握することにより、現在対象としているサブテンプレート間がどのサブテンプレートにより生成されているギャップかを判定する。その際に、メモリユニット136に保持されているサブテンプレートの位置情報を用いてサブテンプレート間の位置を特定することができる。この特定処理によりS3302を実現することが可能となる。
S3302の判定の結果、指定されたページ内のサブテンプレート間であると判定された場合、レイアウト編集アプリケーション121は、図24において指定された調整幅を用いてサブテンプレート間の距離を変更する(S3303)。詳細についてはS3302と同様であるため省略する。サブテンプレートが指定ページ内に存在するサブテンプレートでない場合は、そのまま次のサブテンプレート間の処理へ進む。全てのサブテンプレート間について処理終了後、図33におけるフローチャートの処理を終了する。図33の処理により、指定されたページに配置されている領域が生成する領域間の距離を変更することにより、ユーザの意図した再レイアウト処理を実行することが可能となる。
図34は、図26の2606「該当ページ(最終ページの1つ前のページ)」が選択された場合の再レイアウトの処理の流れをフローチャートで示している。
レイアウト編集アプリケーション121は、各コンテンツデータが流し込まれレイアウト済みのサブテンプレートをフローエリアに配置することにより得られるレイアウト後のページ数nを取得する(S3401)。レイアウト後のレイアウト情報はメモリユニット136に保持されているため、レイアウト編集アプリケーション121がメモリユニット136を参照することにレイアウト後のページ数を取得することが可能となる。
続いてレイアウト編集アプリケーション121は、S3401によりページ数取得後、最終ページの1つ前のページn−1内における全てのサブテンプレート間に対する処理が終了するまで(S3402)、n−1ページ内のサブテンプレート間の距離を図24で設定された調整幅を用いてサブテンプレート間の距離を変更する(S3403)。なおS3403の処理は、図32のS3202と同様であるため詳細な説明は省略する。
レイアウト編集アプリケーション121は、最終ページの1つ前のページ(n−1ページ)内における全てのサブテンプレート間についてS3403の処理を実行することにより図34のフローチャートの処理を終了する。
図35は本発明の通常印刷設定時における図8のフローチャートを用いて説明した最初のレイアウト調整後のイメージを示している。
3701は、ドキュメントテンプレート上に定義されたコンテナに対してコンテンツデータを挿入し、レイアウトした結果のイメージを示している。太枠3703は、サブテンプレートが配置されるフローエリアである。3704はコンテンツデータを実際に流し込むためのコンテナ、3705〜3709はサブテンプレート示している。なお、図35では省略しているが3705〜3709のサブテンプレート内にもコンテンツデータを挿入するためのコンテナが配置されている。3710はコンテンツデータの挿入によりレイアウトした結果、点線の分だけサブテンプレート3708が拡大したことを示している。その結果、拡大したサブテンプレート3708の次のサブテンプレート3709がページ3713にレイアウトされていることを示している。また、図37Aでは3つのページに渡ってサブテンプレートが配置されているため、1ページ目を3711、2ページ目を3712、3ページ目を3713とする。なお、図37Aでは図25の閾値設定ダイアログ2501を用いて、最終ページに配置されるサブテンプレートが最終ページの50%以下であれば再レイアウト処理を実行すると設定されているとする。また、最終ページである3713に配置されたサブテンプレート3709は閾値以下であるとする。
図36〜38は、図35に対して本発明における通常印刷設定時のサブテンプレート間の距離を変更(縮小)することによる再レイアウト処理を適用した後のイメージを示している。
なお、図36〜38において、図35と同等の番号を示すものは同じオブジェクトであるため、説明は省略する。
図36は本発明における「全ページ」のサブテンプレート間の距離を縮小した結果のイメージを示している。3705から3708の全てのサブテンプレート間の距離を図24で指定した縮小幅を用いて均等に縮小した再レイアウト処理により、ページ3713にレイアウトされたサブテンプレート3709が2ページ目にあたるページ3712にレイアウトされていることを示している。
この処理を用いることにより、全ページにおける全サブテンプレート間の距離を均等に変更して、レイアウト当初のバランスを保持したまま再レイアウト処理を実行することが可能となる。
図37は本発明における「指定範囲ページ」のサブテンプレート間の距離を縮小した結果のイメージを示している。図37の場合、2ページ目にあたるページ3712がユーザ指定のページを示している。再レイアウト前にページ3712内に存在していたサブテンプレート3707、3708間の距離が縮小され、サブテンプレート3709がページ3712内にレイアウトされていることを示している。
この処理を用いることにより、ユーザが指定したページにおけるサブテンプレート間の距離のみを再レイアウト対象とするため、ユーザの意図を反映した再レイアウト処理を実行することが可能となる。
図38は本発明における「該当ページ」のサブテンプレート間の距離を縮小した結果のイメージを示している。再レイアウト前に最終ページである3ページ目に該当するページ3713の1つ前のページであるページ3712内に存在していたサブテンプレート3707、3708間の距離が縮小され、サブテンプレート3709がページ3712にレイアウトされていることを示している。
最終ページに閾値以下のサブテンプレートしかレイアウトされなかった場合に、最終ページの1つ前のページのサブテンプレート間の距離を変更することにより、最終ページのサブテンプレートを1つ前のページにレイアウトすることが可能となるため、ある一部分のサブテンプレートのために生じるページを削減することが可能となる。
(実施例2)
本発明の実施例2について説明する。本発明の実施例2は、実施例1のように自動で再レイアウトを行うのではなく、ユーザがマウス等のユーザインターフェースを利用して手動でギャップ調整を行う箇所を指定し、再レイアウトを行う自動レイアウトシステムについてである。
本発明における手動でのギャップ調整は印刷設定によらず有効であるが、本実施例では通常印刷設定を例に説明する。
図39A〜Cは本実施例で使用される図の概要を示している。
図39Aは、ドキュメントテンプレートに定義されたコンテナに対してコンテンツを挿入し、図8で説明したレイアウト処理を実行した結果のイメージを示している。図39Aにおける3901はドキュメント、3912〜3914はページ、3903はマルチレコードのフローエリア、3904はコンテナ、3905〜3909はサブテンプレートを示している。なお、図39A〜Cにおいて同じ数値を示すものは同様のオブジェクトである。
図39Bでは、本発明における手動でのサブテンプレート間の距離を変更する場合のマウス操作の様子を示している。マウスポインタ3911は、サブテンプレート3908を上方向に移動するように操作している様子を表し、その結果マウス操作に合わせてサブテンプレート3908が上方向に移動される様子を示している。
図39Cでは本発明における手動でのサブテンプレート間の距離を変更した結果を示しており、図39Bでサブテンプレート3908を上方向に操作した結果、サブテンプレート3907および3908の距離が縮小されることにより、3ページ目に該当するページ3914にレイアウトされていたサブテンプレート3909が2ページ目に該当するページ3913にレイアウトされる。
実施例2によれば、ユーザが所望とするサブテンプレートを視覚的に確認しながら再レイアウト処理を実行することができるため、ユーザが意図した再レイアウト処理を実行することが可能となる。
なお、本実施例では説明のためにサブテンプレート間の距離を変更することにより再レイアウト処理を実行すると記載したがこれに限られることはなく、サブテンプレートをコンテンツデータが流し込まれるコンテナ(データ領域)としても本発明は実現可能であり課題を解決することができる。つまり、本発明の情報処理装置(レイアウト決定方法)では、コンテナ間の距離を同様に変更しても良い。よって、本願発明では、コンテンツデータを流し込む領域とは、コンテンツデータを流し込むデータ領域またはデータ領域が配置されているサブテンプレート領域であり、領域間の距離を変更して、再レイアウト処理を実行するものである。また、本願発明の再レイアウト処理を実行する場合、図25にて指定したページとは異なるページのフローエリア内に配置されたサブテンプレート領域間の距離を変更し、フローエリア外の領域間の距離を変更しないように制御しても良い。
なお、本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。