文書処理装置、文書処理プログラム、記憶媒体
【課題】 フローレイアウト上に複数のサブテンプレートにデータを流し込む動的レイアウトを行うバリアブル印刷処理装置において、
各サブテンプレート内のコンテナの大きさがレイアウト処理の結果まちまちになってしまい、表体裁の出力ができない課題を解決し、最適な表体裁の出力を可能とさせること。
【解決手段】 実コンテンツを流し込み、サブテンプレート間でのコンテナサイズの調整を行い、結果を仮想コンテナとして保存する。
上記仮想コンテナ同士をフローレイアウト内で再度レイアウト調整を行い、テンプレートを確定させ、データを流し込み、最適な表体裁の出力を行う。
各サブテンプレート内のコンテナの大きさがレイアウト処理の結果まちまちになってしまい、表体裁の出力ができない課題を解決し、最適な表体裁の出力を可能とさせること。
【解決手段】 実コンテンツを流し込み、サブテンプレート間でのコンテナサイズの調整を行い、結果を仮想コンテナとして保存する。
上記仮想コンテナ同士をフローレイアウト内で再度レイアウト調整を行い、テンプレートを確定させ、データを流し込み、最適な表体裁の出力を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書処理装置、文書処理プログラム、記憶媒体に係り、詳しくは、文書処理の方法に関するものである。
【背景技術】
【0002】
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM(Customer Relationship Management)、One−to−Oneマーケティングの必要性が注目されている。これらの手法により顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
【0003】
One−to−Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものである。その代表的な手法としてバリアブルプリントが挙げられる。ここ最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトすることが求められるようになった。
【0004】
従来、バリアブルプリントシステムは、ドキュメント上にコンテナ等によりレイアウトを作成し、データベースとレイアウトを関連付けることにより達成していた。しかし、テキストおよびイメージのコンテナのサイズが固定であったため、データベース内のデータがコンテナに挿入されたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいと隙間が空いてしまった。その問題を解決するために、自動レイアウトシステムが発明されている。自動レイアウトシステムはテキストおよびイメージのコンテナサイズを可変に設定することが可能である。この自動レイアウトシステムを実現しているソフトウェアとしてはPageflex社のPageflex(登録商標)等があり、コンテナのサイズを可変とし、差し込まれるデータ量に応じてコンテナのサイズを変更する。またテキストの場合において固定のコンテナサイズ内に入りきらないデータが挿入された場合、テキストのフォントサイズを縮小し、コンテナ内に全てのテキストを表示する技術なども存在する。しかしコンテナのサイズが大きくなった場合、同ドキュメント上の他のコンテナに重なってしまう問題が発生する。またフォントサイズを調節する場合はテキストの量が大きい場合、フォントサイズが小さくなりすぎる問題が発生する。
【0005】
それを解決するための更なる自動レイアウトの技術としては、あるコンテナのサイズが大きくなった場合、隣接したコンテナのサイズを小さくする技術が特許文献1の「レイアウトデザイン装置」に開示されている。
【0006】
また、従来のバリアブルプリントシステムにおいて、1レコードを1ドキュメントにレイアウトする技術だけでなく、多レコードを1ドキュメントにレイアウトするマルチレコードの技術も知られている。この技術により、一人の顧客に対して、レイアウトするデータの数が異なることが可能になり、さらに一人一人に対してよりカスタマイズされたドキュメントを作成することができる。
【0007】
そして、上述のような「レイアウトデザイン装置」に対して、さらにレイアウトエリアと称される機構を導入し、基本となる形状を定められたサブテンプレートを該レイアウトエリア内部にフローさせることにより、複数の類似した項目をいくつもページ中の一定の領域内にフローさせる、という技術が特許文献2の「レイアウトエリア設定手段を含んだ、自動レイアウトシステム」によって開示されている。
【0008】
さらに、サブテンプレート内におけるコンテンツサイズによって、サブテンプレートそのものの大きさを可変とする技術が特許文献3の「レイアウト調整方法及び装置並びにプログラム」によって開示されている。
【特許文献1】特開平7−129658号公報 (0049、図8)
【特許文献2】特開2005-216182号公報
【特許文献3】特開2006−74226号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来の技術において、表体裁の項目数が動的に変化することを考慮したバリアブルプリントシステムを実現する場合、自動レイアウト技術を用いるのは困難であり、ユーザは不便を強いられていた。それはサブテンプレート同士が互いに独立しているため、他サブテンプレートのコンテナによって自サブテンプレートのコンテナが影響を受けて変化することがないからである。また、固定のテンプレートを用いた場合では、当然のことながら、表体裁のレイアウトは設計できるが、可塑性、流動性といった自動レイアウトならではのメリットをユーザは享受できない。
【課題を解決するための手段】
【0010】
上述した課題を解決するために、本発明は以下の構成を備える。
【0011】
パーソナルコンピュータ等の情報処理装置からなり、コンテナ領域の中にデータベース等のデータから、テキストおよびイメージデータ等を挿入してドキュメントを作成する際に、プレビュー時にテキストおよびイメージのサイズにあわせて、コンテナのサイズを変更することが可能であり、さらにコンテナ間の関連を設定することにより、その間隔を保って変更することが可能である自動レイアウトシステムを備え、ページ上にテンプレートのフローを行う領域を設定する手段と、その領域にレイアウトされるサブテンプレートを複数設定する手段と、第1のサブテンプレート内のコンテナと、第2のサブテンプレート内のコンテナとを、自動で関連付け、テキストおよびイメージのサイズにあわせて、コンテナのサイズを変更し、一時サブテンプレート内に仮想コンテナとして保存する手段と、前記一時サブテンプレート内の仮想コンテナのサイズにあわせて、一時サブテンプレート内の仮想コンテナを変更し、保存する手段と、前記ページ上にテンプレートのフローを行う領域に対し、前記一時サブテンプレートを適用し、各サブテンプレート内のコンテナサイズが行または列方向の辺で揃うことを特徴とした文書処理装置。
【発明の効果】
【0012】
本発明の文書処理の方法は、他サブテンプレートのコンテナによって自サブテンプレートのコンテナが影響を受け、変化する。よって、表体裁の項目数が動的に変化することを考慮したバリアブルプリントシステムを提供することが可能となり、ユーザの利便性が高まるといった効果がある。また、可塑性、流動性のある表体裁のレイアウトを設計できることにより、自動レイアウトならではのメリットをユーザが享受することができる効果がある。
【発明を実施するための最良の形態】
【0013】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例1】
【0014】
本発明の実施例を適用するのに好適である実施例について説明を行う。
【0015】
本発明の実施例を説明する前に、本発明を適用可能なシステム構成、およびアプリケーション構成について説明する。
【0016】
<システム構成図>
図1Aはバリアブルデータドキュメントを印刷するシステム100を図示している。この中で示された方法は図1Bで詳しく説明される汎用コンピュータモジュール101で実践される。図1Bで記述されるプロセスは、コンピュータモジュール101内で実行され、システム100上で実施可能となるレイアウト編集アプリケーションプログラム121のようにソフトウェアの全体、あるいは一部分で実行される。特にレイアウト編集や必然的に起こる印刷のステップはコンピュータ101によって実行されるソフトウェアの指示によって実施される。ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ101によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。そのコンピュータでのコンピュータプログラム製品の使用は望ましくもドキュメントのレイアウト編集やバリアブルデータ印刷に有利な装置をもたらす。
【0017】
コンピュータモジュール101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置を連結する。入力/出力インターフェース138はコンピュータモジュール101をネットワーク接続107から接続してシステム100の他のコンピュータ装置につなげることができる。そのネットワーク接続107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
【0018】
コンピュータモジュール101は典型的に少なくとも1つのプロセッサーユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェース、キーボード132やマウス133のためのI/Oインターフェース143を含んでいる。記憶装置139は典型的にハードディスクドライブ140やフレキシブルディスクドライブ141を含んでいる。図には示されていないが磁気テープドライブもまた使用される可能性がある。CD−ROMドライブ142は不揮発性のデータソースとして提供される。コンピュータモジュール101はオペレーションシステムや、典型的にはオペレーションシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。
【0019】
図に記述した配置コンピュータの例ではIBM互換PCやSUN社のSparc Station、あるいはそれらを含んだコンピュータシステムが考えられる。
【0020】
レイアウトアプリケーションプログラム121は典型的にハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。プログラム121の媒介記憶装置とネットワーク1020からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。いくつかのインスタンスではアプリケーションプログラム121がCD−ROMやフレキシブルディスク上でエンコードされ、対応するドライブ142や141を通じて読み込まれユーザに提供される。あるいはもう一つの方法としてアプリケーションプログラム121はネットワーク接続107からユーザによって読み込まれるかもしれない。さらにソフトウェアは磁気テープまたはROMまたは集積回路、光磁気ディスクまたは無線またはコンピュータモジュール101とその他のデバイス間の赤外線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からコンピュータモジュール101内にロードされる可能性もある。前述は単に関連するコンピュータ可読メディアの模範である。他のコンピュータ可読媒体も使用される可能性はある。
【0021】
またレイアウト編集と名づけられたアプリケーション121はバリアブルデータ印刷(VDP)を行うよう指示し、3つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのコンポーネントはレイアウトエンジン105であり、これは長方形の範囲内で与えられた制限やサイズによって矩形と線の位置を計算するためのソフトウェアコンポーネントである。2つめのコンポーネントであるユーザインターフェース103はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースと関連付けるメカニズムを提供する。3つめのコンポーネントであるUIモデルアナライザ104は、ユーザインターフェース103が提供するコンテナや、アンカー、スライダー、リンクなどのユーザインターフェース要素をレイアウトエンジン105が認識できる内部形式に変換する。すなわち、UIモデルアナライザ104により、レイアウトエンジン105に変更を加えることなく、ユーザインターフェース103を他の表示/入力形式のユーザインターフェースに容易に取替え可能になる。
【0022】
ユーザインターフェース103、UIモデルアナライザ104、レイアウトエンジン105はコミュニケーションチャネル123、124を介して通信する。ドキュメント生成のためのデータソースは一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバー117上にある典型的なデータベース119である。ホストコンピュータ101はネットワーク接続107の手段によってデータベースサーバー117と通信する。バリアブルデータ印刷アプリケーション121はホストコンピュータ101か一般的に他のコンピュータで構成されるファイルサーバー115に保存されるドキュメントテンプレートを生成する。またバリアブルデータ印刷アプリケーション121はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバー115に保存されるか、あるいはプリンタ113に直接印刷される。プリントサーバー109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバー109とプリンタ113は典型的な通信チャネル111を介して接続される。
【0023】
図2はエンジンサーバー227の追加を除き、レイアウトエンジン105の分離バージョン225を含む図1A・図1Bの類似の図である。エンジンサーバー227は典型的なコンピュータである。ファイルサーバー115に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
【0024】
[アプリケーション構成図]
[メインウインドウ]
図3で参照されるように、ユーザインターフェース103は、操作時にビデオディスプレイ144に表示されるアプリケーションウインドウ301によって形成されたユーザインターフェースを含んでいる。ウインドウ301は、非表示にすることや、スクリーン上の色々な場所に移動することが可能なメニューバー302とツールバー303、そしてマウス133の位置・動作によって場所を移動可能なワークエリア306とオプションのパレット311とカーソル/ポインタデバイス313から特徴付けされる。
【0025】
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
【0026】
ツールバー303は、アプリケーションの特別なモードによって非表示にする、または表示することが可能な多くのツールボタンとウィジット305を持つ。
【0027】
オプションのルーラー308はワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。
【0028】
パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはオブジェクトの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されることを制限される、あるいはアプリケーションウインドウ301の外側に部分的・全体を表示することを許される。
【0029】
図4を参照。ツールバーエリア303は少なくとも、次のユーザ選択可能な『ボタン』を持つ。
【0030】
選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック・ロック解除するために使われる。コンテナは、(複数)コンテナの周りに選択ボックスをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数選択を可能にする。
【0031】
イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
【0032】
テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
【0033】
リンクツールボタン406:コンテナ間の距離をコントロールするリンクを作成するために使われる。
【0034】
これらのボタンは、周知の技術であるように操作状況に合わせて変化するアイコンのツールチップとして実装される。
【0035】
[ドキュメントテンプレート]
ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを理解することを可能にする。
【0036】
もし外部データソースがテンプレートにリンクされていたら、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージがそれらのコンテナに表示される。
【0037】
ドキュメントの構造とバリアブルデータコンテナの描写をする視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示される。
【0038】
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309に特徴付けられる。ドキュメントテンプレート309はページが複数あることを示すことができる。
【0039】
与えられたドキュメントテンプレートのページサイズは、周知の技術としてユーザによって指定される。それぞれのドキュメントでの実際のページ数は、バリアブルデータによって変化するかもしれない。もし1ページ内にフィットできなかった時、追加のページは自動的に作成される。
【0040】
それぞれのページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージン310である。
【0041】
また、図4は1ページのドキュメントテンプレート309上に表示することが可能なオブジェクトの例である。それらは、複数のコンテナ407、408と、任意に適用するアンカーアイコン409と固定されていない辺410、リンク412そしてスライダー413を持つ。
【0042】
[コンテナ]
コンテナは、ドキュメントテンプレート内の固定あるいは可変テキスト・イメージを持つスペースであり、他のコンテナやオブジェクトとレイアウトされる。コンテナはマウス133動作でポインタ313を使い、ユーザインターフェースで示されるように移動、サイズ調整そして再作成される。
【0043】
より正確にはコンテナは、設定の集まり、視覚的表現そしてインタラクションと編集動作をもっている。下記はコンテナの定義の全部分である。
【0044】
コンテナは固定あるいは可変のコンテンツを持つ。可変コンテンツは、データソースからとってきて、異なるドキュメントでは異なるかもしれない、という意味でダイナミックである。可変コンテンツは印刷されないような時間によって変更されたり、アニメーションするコンテンツを含むことは意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。けれども、可変コンテナの動作によって、固定コンテンツはそれぞれのドキュメントで位置が異なるかもしれない。
【0045】
コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定のような装飾機能を持っている。
【0046】
コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、典型的に印刷された出力物で可視である。可変コンテンツはデータソースから特定のデータの表示をもたらす。コンテナのこの表現は例えば印刷されるか、スクリーン144上で表示されるか、その両方が可能である。
【0047】
コンテナはユーザインターフェースを持つ、例えばコンテナの編集そして表示設定のためのインタラクティブなGUIを持つ。インターフェースの要素は典型的にスクリーン144上に表示される、しかしドキュメントには印刷されない。ユーザインターフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示する、そしてコンテナの設定の編集や表示を許すための機能を追加する。ユーザインターフェース機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコン、あるいはコンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。現在の公表の一つの概観は、新しい直接編集技術とコンテナのGUIコンポーネントに伴う表示方法の集まりである。
【0048】
[コンテナ制約]
公知の技術によると、コンテナはそれぞれのドキュメントで表示されるコンテンツを、どのように結びつけるか制御する制約がある。これらの制約(固定・可変コンテンツをコンテナと結びつけると共に)は、ユーザが一つのドキュメントテンプレートから、多数のドキュメントの生成を制御する主要な方法である。制約の例は『このコンテナのコンテンツの高さは、最大値4インチです。』である。もうひとつの制約は『コンテナのコンテンツの左端は、それぞれのドキュメントで同じ水平位置で表示しなければならない。』である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
【0049】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。下記の検討で、コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示されると想定されるかもしれない。その代わりに、現在の検討はバリアブルデータ印刷に特化した方法での表示・編集に焦点を合わせる。
【0050】
コンテナは、ユーザにドキュメントのコンテンツのサイズ・位置を指定することを可能にする。いくつかのドキュメントは一つのドキュメントテンプレートから生成されるので、コンテナは多数の可能性と制約を指定・表示するためにユーザインターフェースを使わなければならない。
【0051】
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。このように、この特許でコンテナの左辺を論じることは、関連付けられたコンテンツがどんなドキュメント内でも表示可能である最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。この特許明細書では、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
【0052】
下記検討では、コンテンツの表示を制限するために使われるいくつかの値を定義している用語『固定』は、全てのドキュメントで同じである。
【0053】
・もしコンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになるだろう。
【0054】
・もしコンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになるだろう。
【0055】
・もし距離の制約が固定なら、指定された距離は全てのドキュメントのための制約である。
【0056】
・もしコンテナの左右辺が固定なら、辺の水平位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの高さあるいは垂直方向の位置は、変わるかもしれない。例えば、もしコンテナの左辺が固定なら、関連付けられたコンテンツは、一つのドキュメントでページの上に近く表示され、他のドキュメントでページの下に近く表示される、しかし左辺は全てのケースで同じ水平位置である。
【0057】
・もしコンテナの上下辺が固定なら、辺の垂直位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの幅あるいは水平位置は変わるかもしれない。
【0058】
・コンテナの垂直軸はコンテナの右と左辺の平行で、そして中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、すべてのドキュメントで同じである。この制約で、コンテナの幅は変化するかもしれない、左右辺両方が異なったドキュメントで、垂直軸にもっとも遠いかもっとも近いかもしれない、しかし軸は全てのドキュメントで同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
【0059】
・同様に、もし水平軸が固定なら、コンテナの上そして下辺が垂直に位置されることを制約する、けれども高さは、この制約によって影響されない。
【0060】
・もし水平、垂直軸両方が固定なら、コンテナの中心位置が固定されていることを意味する、しかし、幅・高さはこの制約によって影響されない。
【0061】
・もしコンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、すべてのドキュメントで同じ場所で、そしてコンテナに関連付けられた同じ場所で表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【0062】
・垂直辺あるいは軸はページの左辺、あるいは右辺、あるいは左ページマージン、あるいは右ページマージン、あるいは他の水平位置に関連付けされて固定になる。同様に、水平辺あるいは軸はページの上あるいは下辺あるいはマージン、あるいは他の垂直位置に関連付けされて固定になる。用語『固定』の改良は、もしページサイズが全てのドキュメントで同じならこれらの可能性はドキュメント生成で相違はないため、ドキュメント間でページサイズが変わるときにのみ重要となる。
【0063】
『固定』の反対は、辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間で変化するかもしれないことを意味している『可変』である、しかしドキュメントの特定な設定でそうする必要が無いかもしれない。例えば、変更による辺の実際の好ましい位置のような他の外部制約がある、しかし、もし外部制約が適用されないなら、辺は固定されてないものとしてラベル付けされているので辺の位置は変更できる。
【0064】
[コンテナ表示・編集]
[新規コンテナの作成方法]
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナはテキスト、そして埋め込みのイメージを持つ。イメージコンテナは、イメージだけを持つ。
【0065】
図4で参照されるように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール404、あるいはイメージコンテナツール405をマウス133でクリックし、テンプレート309に四角形をドラッグすることによって、ドキュメントテンプレート309上に作成される。
【0066】
代わりにコンテナは、適切なツール404、405をアクティブにした後に、ドキュメントテンプレート309上でクリックすることによって単純に作成される。デフォルトサイズのコンテナが挿入されるか、新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが提供される。いくつかのコンテナは自動的に前もって定義されたか、計算されたスキーマによって、作成・配置される。また他の案が考えられるかも知れない。
【0067】
[コンテナの表示方法]
以前記述した36の辺の状態それぞれが、グラフィカルな表現で描画されるのが好ましい。いくつかの辺の状態は、いくつかの状況で表現を分け合うため、36のグラフィック表示より少なくなるかもしれない。
【0068】
図5A−図5Dはコンテナの模範的な辺ルールを例示している。
【0069】
アプリケーション121は、辺の状態を表現するために、塗りつぶし線(アイテム503)あるいは点線(504)で辺を描き、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために辺、形の近くに描画されたコントロール点、502)、スライダー(辺の両サイドに描画された短い並行線、図4の413)、拡縮アイコン(505)、そして色を特徴として持っている。
【0070】
図5A−図5Dのコンテナ表示方法のルールは、つぎの通りである。
【0071】
1.それぞれの辺を固定するために、塗りつぶし線で描画する。
【0072】
2.もし幅が固定なら、左と右の辺を塗りつぶし線で描画する。
【0073】
3.もし高さが固定なら、上と下の辺を塗りつぶし線で描画する。
【0074】
4.軸は描画しない。
【0075】
5.まだ描画されていない全ての辺は、それぞれの辺の近くに拡縮アイコンが描画され、点線になる。
【0076】
6.垂直辺あるいは軸のそれぞれのペアで、もし両者が固定なら、交差点にアンカーが描画される。
【0077】
7.それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
【0078】
8.垂直辺あるいは軸のそれぞれのペアで、もしアンカーやスライダーが描画されていなければ、交差点にハンドルが描画される。
【0079】
ルール1、ルール2、ルール3で保証した線は、もしそれらが固定あるいは制限されているなら、点線で描画される。ルール5で保証した可変の辺は、点線で描画される。ルール6、ルール7、ルール8で保証した固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【0080】
上記で、辺はただ一度描画されることが必要である、それでもし、ルールが描画されるべき辺に影響すれば、そのとき後のルールはふたたび描画されるべき辺に影響しないだろう。もしそうすることで都合が良いなら、例えばもしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画されるかもしれない。
【0081】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後で記述されるように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行手段としては、すべてのドキュメントで平均化されるコンテナのコンテンツエリア、あるいは可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【0082】
これらのコンテンツ表現は、コンテナの辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
【0083】
・図4の410の辺のように、点線はコンテナのコンテンツに依存して、ドキュメント内の辺の位置を意味する。
【0084】
・塗りつぶし線は制限された辺を意味する、なぜなら、辺は固定されている(辺414)、あるいはコンテナの幅・高さが固定されている(コンテナ408では両方が固定されている)ため。
【0085】
・アンカーは辺そして軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れるだろう。当然アンカーは固定される。図4のアイコン409は、交差する辺414が固定されていることを意図している、アンカーアイコンの例である。
【0086】
・スライダーは関係付けられた辺が固定されていることを意味する、しかしコンテナは辺に沿って多くの位置『スライドの長さ』で位置を定められる。例えば、図4でスライダー413はコンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。
【0087】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【0088】
幅・高さの最小値・最大値の設定は、副次的なダイアログウインドウに表示される。
【0089】
図5Aで、コンテナ501は幅・高さ両方が固定されていない。固定された辺503は塗りつぶし線で表現される。可変の辺504は点線で表現される。拡縮アイコン505は、隣接する辺504が可変であることを示す、追加あるいは代わりのインジケーターである。
【0090】
図5Bで、コンテナ501は幅・高さ両方が可変である。アンカーアイコン506は、交差している両方の辺503が固定されていることを、追加であるいは代わりに示している。
【0091】
図5Cで、コンテナ501は、コンテナの拡大あるいは縮小が任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態で、幅・高さ両方が可変である。
【0092】
図5Dで、コンテナ501は、上辺508が固定されていることを除けば、幅・高さ両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている、そしてまたコンテナの左・右辺が、アイコンを通り垂直に描画される中心軸(垂直軸)の周りを、拡大・縮小することを示す。
【0093】
[リンク]
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図4の412で示されているものがリンクであり、この図ではコンテナ407と408とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
【0094】
[リンクの設定方法]
図6はリンクの設定方法を示したフロー図である。また図7A−図7CはUI例を示している。それらを用いてコンテナにリンクを設定する方法について説明をする。
【0095】
まず、リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)を作成する(0601)。図7は、2つのコンテナを作成してリンクを設定する場合の例を示している。次に、前述したリンクツール406を選択した状態にする(0602)。図7A−図7Cは、コンテナを作成し、リンクツールが選択されていた状態から、リンクを設定する動作を示している。図7A−図7Cを順に説明していく。
【0096】
図7−Aの0701と0702は、前述した図4の407と408と同じであり、固定されている辺を意味する。また、0703と0704は、409と同じであり、アンカーを意味する。0705はマウスポインタを意味している。まず、リンクを設定する片方のコンテナをクリックして選択する(0603)。次に図7−Bで示されるように、もう片方のコンテナまでマウスポインタを移動して、クリックする(0604)。図7−Bの0706は図7−Aでクリックをした位置と移動したマウスポインタを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すUIである。処理0604が終わった後、設定した場所に0707で示されるリンクUIが表示される(0605)。コンテナは図7−Cの状態になる。また、リンクが設定されたことにより、コンテナのUIも自動的に変更される(0606)。0708は、点線で示されている辺であり、前述した通り可変の辺を示している。図7−Cのようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、0709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したしるしである。図7−Cの例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例であり、右コンテナが、図4の413で示したスライダーを持つ設定に変化してもかまわない。
【0097】
[レイアウト計算方法(全体フロー)]
図8はレイアウト計算のフローを示している。
【0098】
まず、プレビューモードを選択する(0801)。前述した自動レイアウトシステムでは、コンテナを作成して、そのコンテナ間に関連付けを行い、レイアウトを作成するレイアウトモードを持つ。さらに、作成したレイアウトにレコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードを持つ。このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。その際の計算方法も同じである。プレビューモードになったら、プレビューするレコードを選択して挿入する(0802)。レコードの挿入を行うと、そのレコードをレイアウトするために計算を行う。(0803)。処理0803で計算されたレイアウトを表示する(0804)。他のレコードについてもプレビューを行うかどうかを判断する(0805)。処理0805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(0807)。他のレコードについてプレビューを行うのであれば、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(0806)。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、処理0805、0807は存在しない。全てのレコードについて印刷が終了した時点で終了する。
【0099】
[レイアウト計算方法(詳細フロー)]
図9はレイアウト計算の詳細を示したフロー図である。また、図10はそのときのUI表示例を示した図である。
【0100】
まず、レイアウトを計算するコンテナの集合を求める(0901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナA・Bが集合1、コンテナC・Dが集合2となる。前述した通りであるが、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
【0101】
次に、0901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(0902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。ここでは、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(0903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(0904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、リンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、0902〜0904のステップをページ上のすべての集合について施し、ページ全体のレイアウトを計算する(0905)。
【0102】
図10−A〜図10−Cはレイアウト計算時のUI例である。
【0103】
図10−Aは、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。図10−Bは図10−Aの状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図10−Cはレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図10−Cで示されるように、図10−Bで示した挿入されるコンテンツサイズ(1009)と計算後のコンテンツサイズ(1010)は、双方において同等な差異がある。
【0104】
[可変リンクの設定]
図12では一般的な可変リンクの状態を表している。図4と同様にアプリケーションウィンドウ301とツールバー303があり、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナは典型的にアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206から成り立つ。各エッジコンテナ1203と1204の間には可変サイズのリンク1209があり、それぞれのコンテナを結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケーター1210、インジケーター1211が表示され、これは辺1207と辺1208が可変であることを示している。
【0105】
また図14はリンク1209の情報がセットされているダイアログウィンドウ1401の例である。このダイアログは典型的にタイトルバー1402、ツールボタン1403、ダイアログウィンドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウィンドウではリンクタイプが可変(1407)あるいは固定(1406)の選択や、可変の場合、リンクの長さの最大値(1410)そして最小値(1412)、また現在の値(1411)が設定できる。
【0106】
図13は前述のリンク設定方法を踏まえ、例えば図15のコンテナAとコンテナB間に張られている固定サイズのリンク1503の状態から可変サイズのリンク1209を示している図12の状態までの操作遷移を表している。マウスによりリンク1503をクリックし、選択する(1302)。マウスの右クリックあるいはキーボードの特定のキーにより選択したリンク1503のプロパティダイアログウィンドウ1401を表示する(1303)。この状態ではリンクサイズは可変ではなく固定であるため、Fixed Length1406がLink Type1405において選択されている。リンクを固定サイズから可変サイズに変更するために、Link Type1405においてリンクサイズを可変に設定するFlexible Length1407を選択する(1304)。これによりLink Distance1408内に配置されているMax. Distance1412、Min. Distance1410、Distance1411が有効化され、数値の設定が可能となる。そこでリンクの可変サイズを設定するために、そのリンクの長さの最大値をMax. Distance1412、最小値をMin. Distance1410、現在の値をDistance1411において設定する(1305)。一般的なダイアログウィンドウ開閉ボタン1404によって設定を適用すると図12のリンク1209のような状態にリンクのUI表示が変化する。(1306)このダイアログウィンドウ1401の設定情報はメモリに格納される。
【0107】
図15は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述したとおりに従って行われる。例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのデータが挿入された時、それぞれのコンテナはデータの大きさを最適と考え、コンテナ1203は挿入されたイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ大きく、同様にコンテナ1204も挿入されたイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へやや大きくサイズを変更しようとする。しかしコンテナ1203とコンテナ1204の間には固定サイズのリンクが設定されているとすると、コンテナ1203とコンテナ1204はそれぞれアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213は移動出来ないため、変更しようとするサイズがリンクサイズを上回ってしまう。そしてこのリンクサイズは固定されているためレイアウト計算時に優先的に計算されるためコンテナ1203とコンテナ1204のサイズが変更されることになる。その結果、コンテナ1203とコンテナ1204はデータに合わせた最適なサイズを確保することが出来ず、最終的に図15のコンテナ1501とコンテナ1502のように最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。リンク1503のサイズは固定であるためコンテナ1501とコンテナ1502は最適サイズを達成していない。
【0108】
図16はリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図の通り可変サイズのリンクが設定されているとすると、コンテナ1203とコンテナ1204のサイズが変更される際に、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズが上記の例より大きくなることができる。さらに、挿入されるデータサイズに合わせた最適なサイズを達成、あるいはより挿入データサイズ(最適サイズ)に近づけてコンテナの枠を計算することが出来る。その結果が、図16のコンテナ1601とコンテナ1602である。可変リンク1209はレイアウト計算の結果、可変リンク1603のサイズ状態となり、この場合コンテナ1601とコンテナ1602はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。
【0109】
[マルチレコード]
マルチレコードについて、概要を説明する。
【0110】
図17は、マルチレコードとそのレイアウト方法の概要を示した図である。
【0111】
1701はドキュメント、1702はページ、1703はサブテンプレート、1704はデータベースを示している。1704で示すデータベースを見てみると、No1〜7のデータが表示されている。1レコード1ドキュメントのバリアブルプリントでは、7つレコードがあるので、この場合7ドキュメントが作成される。しかし、多レコード1ドキュメントのマルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。まずマルチレコードを指定するカラムをユーザが任意に指定する、この例ではフィールド名:Nameが指定されたものとする。すると、そのフィールド名が同じレコードは、1ドキュメントにレイアウトされるレコードであると認識する。この例では、No1〜4のレコードはNameがTomであるため、同じドキュメントにレイアウトされ、No5〜7のレコードは、NameがNancyであるためTom用とは異なる、同じドキュメントにレイアウトされる。これが通常のマルチレコードである。
【0112】
[全体フロー]
図18、図19は本発明のサブテンプレートの全体フローとその説明UIを示している。
【0113】
図18のフローの各ステップを図19のUI図と合わせながら説明していく。まず、図19の1903で示すアイコンが押下されることによって、エリア作成モードへと遷移する(1801)。そして、1902で示されるページマージンのエリア内において、マウスのドラッグにより矩形が描画される(1802)。描画された矩形はフローエリアとして認識される(1803)。1906はフローエリアを示している。1904や1905は、フローエリア外に存在するテキストコンテナやイメージコンテナである。これらのコンテナは、フローエリア内のフローとは関係がない。フローエリアは、それらのコンテナとは色や線種などの矩形UIを異ならせることにより、ユーザに視覚的に認識しやすいようにする。次に、作成されたフローエリアに各種設定を施すかどうかを判断する(1804)。プロパティを設定するのであれば、フローエリアでマウスポインタをクリックすることなどにより、プロパティダイアログが表示される(1805)。そして、表示されたプロパティダイアログを用いて、設定を施す(1806)。プロパティダイアログおよび設定方法については、後で詳細に記述する。フローエリアの作成および設定が終了したら、レイアウトをプレビューするかどうかを確認する(1808)。プレビューするのであれば、プレビューモードへ遷移する。そして、レイアウト計算を行う(1809)。このレイアウト計算は図17で示したフローと同じ処理を行う。次に、設定されているフローエリアのレイアウト計算を行う(1810)。この処理については後で詳細に記述する。最後にレイアウト結果を表示する(1811)。
【0114】
[プロパティ設定フロー]
図20はフローエリアの各種設定(プロパティ設定)を行う設定ダイアログの例を示している。これが、前述の図18のフローチャート中のステップ1806で表示され、その内容を1807にて反映させるダイアログのUI例となる。
【0115】
なお、文中のサブテンプレートおよびについては後述する。
【0116】
指定方法は、ユーザがラジオボタン2002によってまずフローエリアに関連付けるものがサブテンプレートであるか、それとも条件式であるかを選択する。その後2003で示しているリストボックスからフローエリアで使用するサブテンプレートを、あるいは2004で示しているリストボックスからフローエリアで使用する条件式を、ユーザが指定されることにより表示される。サブテンプレートおよび条件式は、編集中のドキュメントテンプレート内に、それぞれの特有なUI手段によって設定できるものとする。他の手法としては別のファイルに保存され、この設定ダイアログからはファイルを指定することによって選択指定できるものとしてもかまわない。本実施例では、サブテンプレートおよび条件式は、ドキュメントテンプレート内にそれぞれ複数を作成できるが、リストボックスから選択するという特性上からも、すべてが一意な名前を持ち識別できるように設計されるべきである。
【0117】
その他に、本設定ダイアログからは、サブテンプレートをフローする際のフローの方向を2005から選択し、フローする際の間隔を縦は2006、横は2007で設定することが可能である。
【0118】
以上の設定を確定するには、2008で示すOKボタンを押下する。また、2009のキャンセルボタンを押下すると指定された各種設定はすべてキャンセルされる。
【0119】
[サブテンプレート]
前述したサブテンプレートについて、概要とレイアウトフローを説明する。図21、図22はそれぞれサブテンプレートのレイアウト例とレイアウトフローを示している。
【0120】
サブテンプレートは、イメージコンテナ、テキストコンテナを任意数配置して、そのコンテナにレコードのどのデータ(フィールド)を割り当てるかを設定した状態で、テンプレートとして保存してあるものを指す。同じレイアウトを一つのドキュメントで数多く使う場合に便利である。サブテンプレート内に配置されるコンテナは、前記イメージコンテナ、テキストコンテナと同様であり、各コンテナ間にはリンクを設定することも可能である。したがって、レイアウトするデータによって、レイアウトサイズを最適に変化させることが可能である。図21はサブテンプレートのレイアウト例を示している。2102と2105はイメージコンテナ、2103と2106はテキストコンテナ、2107はリンクを示している。イメージ、テキストのコンテンツサイズが異なるため、異なるレコードに対してそれぞれ最適なレイアウトを計算してレイアウトを変更している様子を示している。
【0121】
このレイアウトの計算フローは図22に示す通りである。まず、レイアウトするデータを取得する(2201)。次に、各コンテナにレイアウトするデータのサイズを渡す(2202)。そして、渡されたデータサイズに基づいて、各コンテナにおいてレイアウト計算する(2203)。そしてレイアウトを最適化する(2204)。最適化の方法は前述した通りである。最適化されたレイアウトを決定し(2205)、レイアウトするデータを流し込み(2206)、表示する(2207)。
【0122】
[複数ページにわたるフローエリア]
フローエリア内にサブテンプレートをレイアウトして、領域外にオーバーフローした際、同じフローエリアを有する新しいページを自動的に生成して、そこへあふれたサブテンプレートを連続してレイアウトする方法を含んだ自動レイアウトシステムについて解説する。
【0123】
特許文献2の方法によれば、フローエリアは1ページの範囲内に限られ、1ページの範囲内にサブテンプレートを収める処理を行うことによって、はがきなど紙面の限られたドキュメントに対応したレイアウト結果を実現することを目的としていた。そのため、多数のページにわたってサブテンプレートをレイアウトすることは考慮されていない。しかし、顧客ごとにカスタマイズされたドキュメントを作るというニーズの中からは、ページ数を限定せず、顧客の興味の範囲に応じて、自由なページ数の加減のあるドキュメントを作成するという場面が存在する。
【0124】
[複数ページの中の繰り返しページ]
図23は、複数のページを持つドキュメントに対して、フローエリアを挿入する際に呼び出す設定ダイアログのUI例である。ラジオボタン2302からフローエリアのON/OFFを選択し、ONの場合に、テキストボックス2303において、フローエリアを配置するページ番号を設定する。ここで、開始ページは1以上であり、終了ページはそのドキュメントの最大ページ以下になるように、UIによって入力を制限されるべきである。さらにテキストボックス2304において配置されたフローエリアの中から、繰り返しインスタンスを生成してサブテンプレートをフローしていく繰り返しページ範囲を設定する。繰り返しページについては後述する。ここで繰り返しページの開始ページは前述フローエリアの開始ページ以上であり、終了ページはフローエリアの終了ページ以下であるように、UIによって入力を制限されるべきである。また少なくとも1つのページは必ず繰り返しページとなるように制限されるべきである。
【0125】
設定ダイアログでOKを押下した場合、設定したページ範囲にしたがってフローエリアが各ページに挿入される。フローエリアの挿入される初期位置とサイズは、システムが固定で保持しており、挿入後後述の位置制御によってユーザの望む位置とサイズに変更可能である。
【0126】
[フローエリアの位置制御]
複数のページにわたって配置されたフローエリアは、それぞれのページでそれぞれの位置と大きさを占めることができる。
【0127】
図24は、各ページにおいてフローエリアの位置と大きさを調整するためのUI例を示している。2401はマージンエリア、2404のフローエリア自体は前述のように、線種や色によって通常のコンテナとは異なる表現でわかりやすく表示される。図24のように、フローエリアはレイアウト編集領域内において、図形描画ソフトウェアで公知かつ一般的な、サイズ変更ハンドル2403によってサイズを変更することが可能である。フローエリアにおいては、その存在可能領域をマージンエリア内に限定することが適当である。
【0128】
[繰り返しページ]
図25は、1ドキュメント中の複数のページにわたってフローエリアを配置されている様子と、そのフローエリアに実際のデータを挿入したときにレイアウト済みページの生成される様子の概念図である。
【0129】
図25−Aの2502は、繰り返しページである。2501と2503は繰り返しページではないが、フローエリアの存在するページである。2504はフローエリアをあらわしている。また2505と2506は通常のコンテナをあらわしている。これらの通常コンテナはフローエリアとは関係を持たない。フローエリアは、複数ページにまたがってはいるが、連続したひとつのエリアとしてアプリケーションに扱われる。そのため、実際のデータを挿入したときには、この図ではフローエリア3ページ全体を使ってデータベースのレコードをすべて配置していくことになる。
【0130】
図25−Bに、図25−Aのように設定されたフローエリアに対して実際のデータを挿入し、レイアウト済みドキュメントが得られた状態を示す。2507は1個のサブテンプレートをあらわしている。ただし、簡単のため実際にフローされるサブテンプレートやコンテナの細部はごく省略して表記している。図25−Bでは、図25−Aでの2つ目のページが、レコードの数に応じて自動的に生成され繰り返されていることが示されている。
【0131】
このように複数のページにまたがってフローエリアが存在する場合、ページの性格によって、どのページを繰り返しページにするかを設定できるとドキュメントの表現力向上に効果がある。図25の例でいえば、1ページ目のフローエリアは例えば顧客名を通常コンテナ部に記載して、顧客へのあいさつ文を載せることが考えられる。そのあとからマルチレコードによるレコードデータをフローエリアに表示し、繰り返しページで多数のレコードデータを処理した後、3ページ目のフローエリアで、販売担当者名をいれ、結びのあいさつ文を載せることが考えられる。このように、複数のページにおいて、同じようなレコードデータを多数配置するドキュメントの形態をとりつつも、ページによってその内容に多様性を持たせることが可能になるのである。
【0132】
[複数ページにわたるフローエリア全体のフロー]
図26は、複数ページにわたるフローエリアのフローチャートである。このフローチャートでは、サブテンプレートを複数のページからなるフローエリアに配置する方法を記述している。
【0133】
まず、フローエリア内に配置するサブテンプレート数を取得し、nに代入する(2601)。もしnが0だった場合には(2602)、フローエリアにレイアウトする必要はないので、処理を行わず終了する(2603)。変数kを1に初期化する(2604)。
【0134】
ドキュメントの先頭に、繰り返しページではないフローエリアの存在するページがあるかどうかを取得し、その繰り返しページでない開始ページをs、終了ページすなわち繰り返しページの直前のページをeに代入する(2605)。次に、s〜eのページに、先頭から順に収まるだけのサブテンプレートを順にフローしていく(2606)。そのフローが終わった時点で、s〜eに収まったサブテンプレートの数を求めてtとする(2607)。この時点でkにtを代入し(2608)、kとnを比較する(2609)。もしkがn未満であるなら、ステップ2610に進む。もしkがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0135】
ステップ2610では、まず現在のレイアウト済みページ数pを記憶する。次に、ドキュメントの後尾から繰り返しページでないフローエリアの存在するページ番号を取得し、開始ページをs終了ページをeに代入する(2611)。s〜eのページに、先頭から順に収まるだけのサブテンプレートを順にフローしていく(2612)。そのフロー処理が終了したら、s〜eに収まったサブテンプレートの数を取得しtとする(2613)。その次に、k+tとnを比較する(2614)。k+tがn未満であったらステップ2615に進む。k+tがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0136】
ステップ2615では、後尾の繰り返しページでないページには残っているサブテンプレートがすべて収まらない、ということであるので、まず先にフローしたpより後ろのレイアウト済みページのインスタンスを破棄する(2615)。そこから、繰り返しページに対してフローを実施していく。まずドキュメント内の繰り返しフローエリアのページ番号を取得し、開始ページをs終了ページをeとする(2616)。s〜eに収まるだけのサブテンプレートをフローエリアにフローする(2617)。s〜eに収まったサブテンプレートの数を取得してtに代入する(2618)。さらに、kにtを加えて再度kに代入する(2619)。ここで、kとnを比較する(2620)。kがn未満だった場合、再度ステップ2610に戻り、残りのサブテンプレートをドキュメントにフローする処理を続行する。もしkがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0137】
[フローエリアにおける複数のサブテンプレート]
図27は、本発明が適用されるサブテンプレートの前提となる例を示している。この例では、図27全体をフローエリアとすると、サブテンプレート2701、2702、2703が並べられることを示している。サブテンプレートはそれぞれコンテナ2704〜2706、2707〜2709、2710〜2712を保持している。また、各コンテナは可変リンク2713によって結ばれている。また、この例では、サブテンプレート2701〜2703は互いに独立しているため、コンテナ2704、2707、2710が揃うという動作はせず、表形式での出力を行うことは考慮されていなかった。つまり、他のサブテンプレートの内容によって、自サブテンプレートのコンテナが影響を受けるといった動作はいままでしてこなかった。以降このフローエリアおよびサブテンプレートに設定を追加することによって、表体裁の出力を可能とさせる方法を説明する。
【0138】
[複数サブテンプレートによる表体裁の設定]
図28は、本発明が適用できるフローエリアに対する設定UI例を示している。設定画面2801は、ページ内繰り返し可能数2802、コンテナ揃え設定2803によって構成される。OKボタン2804を押すと設定が反映され、キャンセルボタン2805を押すと2801上の設定が破棄される。2803では、フローエリアのサブテンプレート内のコンテナを揃えるか否か(表体裁にするか否か)を設定する。また2803で表体裁にする場合は、行で揃えるのか、列で揃えるのかを選択することが可能である。テンプレートエディタ上では、フローエリア2806に対し、サブテンプレートの構成要素であるコンテナ2808、リンク2809が表示される。さらに、コンテナを揃える方向が分かるよう2807のようなマークをユーザに通知することも可能である。
【0139】
[表体裁のレイアウトを行う全体フロー]
図29,図30は、本発明が適用できる、表体裁のレイアウトを行う全体フローと部分のフローである。ステップ2901では、フローエリアに流し込むサブテンプレートの数を取得する。ステップ2902では、フローエリアにおける1ページあたりのサブテンプレート数を取得する。ステップ2903では、ステップ2901で取得したサブテンプレート数とステップ2902で取得したサブテンプレート数を比較する。ステップ2901で取得したサブテンプレート数のほうが大きい場合は、ステップ2904で図28における2802で設定された値で、各サブテンプレートの幅が算出される。ステップ2902で取得したサブテンプレート数のほうが大きい場合は、ステップ2905でフローエリアの幅と、ステップ2902で取得したサブテンプレート数によって、各サブテンプレートの幅が算出される。ステップ2906は、フローエリア内に存在するコンテナの数だけ繰り返すことを示している。ステップ2907は、ページ内のサブテンプレート数だけ繰り返すことを示している。ステップ2908では、流し込むコンテンツを取得し、ステップ2909において、仮想コンテナ生成用領域に保存する。ステップ2910において、仮想コンテナ生成用領域内のコンテンツでレイアウト調整を行い、ステップ2910のレイアウト調整結果のコンテナを、ステップ2911において、仮想コンテナとして保存する。ステップ2912は、フローエリアにある仮想コンテナの数だけ繰り返すことを示している。ステップ2913では、最終調整領域に各仮想コンテナを配置していく処理を示している。ステップ2914は、ステップ2913で配置した仮想コンテナ同士でレイアウト調整を行う処理を示している。ステップ2915は、ステップ2914でレイアウト調整された結果を確定テンプレートとして一時保存する処理を示している。ステップ2916は、フローエリアに流し込むサブテンプレートの数だけ繰り返す処理を示している。ステップ2917では、サブテンプレートに流し込むレコードを取得する処理を示している。ステップ2918は、サブテンプレート内のコンテナの数だけ繰り返す処理を示している。ステップ2919は、コンテナに流し込むコンテンツの取得処理を示している。ステップ2920は、ステップ2915で保存した確定テンプレートを用いて、ステップ2919で取得したコンテンツを配置する処理を示している。なお、図30は、図29の抜粋であり、ステップ3001〜3006は、図29の2906〜2911に対応しており、仮想コンテナの保存のフローを示している。また、ステップ3007〜3010は、同じく図29における2912〜2915に対応しており、仮想コンテナを元に調整したテンプレートを保存するフローを示している。
【0140】
[仮想コンテナの生成]
図31は、本発明が適用できる、仮想コンテナの生成フローである。図32は、本発明が適用できる、仮想コンテナの生成を視覚的に表現した概念図である。この2つの図を使用して、仮想コンテナの作成方法について説明を行う。図31のステップ3101は、仮想コンテナを生成する対象となるコンテンツの数だけ繰り返す処理を示している。図32を例にすると、サブテンプレートの数が3つあり、揃えるべきコンテンツが3データあるため、3201、3202、3203と3回繰り返すことになる。ステップ3102では、各コンテンツのサイズに合わせたコンテナを新規に作成するステップを示している。ステップ3103では、コンテナを作成したコンテンツが最初のものであるか否かを判定する処理を示している。3103がYesのばあいは処理を続行し、Noの場合は、直前のコンテナと辺同士でリンクを新規作成するステップを示している。図32を例にすると、コンテナ3202からコンテナ3201に対して、3204のような底辺同士のリンクを新規に作成している。同じように、コンテナ3203から3202に対して、3204のような底辺同士のリンクを新規に作成している。この設定により、コンテナ同士のレイアウト調整の結果、対象のコンテナのサイズは同一となる。ステップ3105は、コンテナ同士でレイアウト調整を行う処理を示している。これは、図32における3201〜3203をレイアウト調整(ネゴシエーション)した結果のコンテナを、仮想コンテナとして一時領域3205に、3206として保存するステップを示している。具体的な計算例としては、コンテナ3201、コンテナ3202、コンテナ3203に設定された高さを100とした場合で説明を行う。コンテナ3201、3202、3203に対応したコンテンツContent A1の高さが170、コンテンツContent A2の高さが85、コンテンツContent A3の高さが105であった場合、各コンテナにストレスが生じる。コンテナ3201、コンテナ3202、コンテナ3203にかかるストレスはそれぞれ70、−15、5となり、本発明の文書処理装置におけるレイアウト手段の特徴により、ストレスは平準化され、26.6と計算される。よって、ネゴシエーションした結果の仮想コンテナの高さは126.6となり、一時領域3205に、3206として保存される。
【0141】
[テンプレートの確定]
図33は、本発明が適用できる、仮想コンテナ同士をレイアウトさせて確定テンプレートを作成する概念図を示している。一時領域3301上に配置された仮想コンテナ3302は、リンク3303にしたがって、レイアウト調整を行う。そのレイアウト調整の結果を、確定テンプレート3304として一時保存する。この例においては、確定テンプレートはレイアウト調整を行った結果の高さを持つ3つのコンテナ3305によって成り立っている。
【0142】
[レイアウト結果の例]
図34は、本発明が適用できる、仮想コンテナ同士をレイアウトさせた結果の確定テンプレートを使用し、再度フローエリア内にコンテンツをレイアウトした結果の例を示している。フローレイアウト3401に対し、サブテンプレートのコンテンツ3402、3403、3404を流し込んだ結果であり、ContentA同士、ContentB同士、ContentC同士がそれぞれ揃った表体裁となる。この結果、図27のように互いに関連を持たないサブテンプレートをフローレイアウトに対して複数流し込む場合においても、サブテンプレート内のコンテナ同士が影響しあい、表としての体裁を整えることが可能となる。
【0143】
[見開きページにおける表体裁の例]
図35は、本発明が適用できる、見開きページにおける表体裁のレイアウトのフローを示している。図36は、図35のフローを実行した際のレイアウト結果例である。ステップ3501は、フローエリアに配置されるサブテンプレートの数だけ繰り返す処理を示している。ステップ3502において、サブテンプレート内の各コンテナのデータを取得する。ステップ3503は、ステップ3502で取得したデータが同一の見開きページに属するか否かを判定する。ステップ3503がYesの場合は、前述したとおりの方法でステップ3504にて仮想コンテナを生成する。ステップ3503がNoの場合は、ステップ3504で保存されている仮想コンテナを用いて、ステップ3505にて前述したとおりの方法で確定テンプレートを生成する。ステップ3506においては、見開きページに対して、確定テンプレートを用いてレイアウト処理を行う。次の見開きページのために、ステップ3507において、ステップ3505で生成した確定テンプレートを破棄する。この処理により、図36のようなレイアウト結果を得ることが可能となる。この例においては、フローエリア3601と3602が見開きページを構成し、その見開きページ内での表体裁を整えたサブテンプレートを流し込んだ結果が3605である。また、次の見開きページを構成するフローレイアウト3603と3604においては、同じくその見開きページ内で表体裁を整えたサブテンプレートを流し込んだ結果3606を得ることができる。
【0144】
なお、本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
【0145】
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
【0146】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【0147】
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
【図面の簡単な説明】
【0148】
【図1】(A)は本発明のコンピュータシステム構成図を示している。(B)は本発明の図1Aにおけるコンピュータモジュールの概略図を示している。
【図2】本発明の、図1Aのコンピュータシステムにエンジンサーバーを追加した構成図を示している。
【図3】本発明のメニューバー、ツールバー、ワークエリア、フローティングパレットを含む典型的なアプリケーションのメインウインドウを示している。
【図4】本発明のコンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナの一面をスクリーン、ツール、アイコンで示している。
【図5】本発明の典型的なコンテナルールを示している。
【図6】本発明のリンクを作成するフローを示している。
【図7】リンク作成時のUI図例を示している。
【図8】本発明におけるレイアウト計算の全体フローを示している。
【図9】本発明におけるレイアウト計算の詳細フローを示している。
【図10】本発明における図9のフローに対応するUI例である。
【図11】本発明のレイアウト計算時におけるコンテナの集合について説明した図を示している。
【図12】本発明の典型的な可変リンクによるコンテナ配置を示している。
【図13】本発明の図12の状態までの操作遷移を表している。
【図14】本発明の典型的なリンクの設定ダイアログウィンドウを示している。
【図15】本発明の固定リンクによるレイアウト結果を示している。
【図16】本発明の可変リンクによるレイアウト結果を示している。
【図17】本発明のマルチレコードとそのレイアウト方法の概要を示した図を示している。
【図18】本発明におけるサブテンプレートを適用した全体フローを示している。
【図19】本発明における図18の説明UIを示している。
【図20】本発明におけるフローエリアの設定ダイアログのUI例を示している。
【図21】本発明におけるサブテンプレートのレイアウト例を示している。
【図22】本発明におけるサブテンプレートのレイアウトフローを示している。
【図23】本発明における複数ページにわたるフローエリアを設定するUI例を示している。
【図24】本発明におけるフローエリアの位置とサイズを変更するUI例を示している。
【図25】本発明における繰り返しのあるフローエリアとそれにデータを挿入したときの概念図を示している。
【図26】本発明における複数ページにわたるフローエリアにサブテンプレートをレイアウトするフローを示している。
【図27】本発明が適用されるサブテンプレートの前提となる例を示している。
【図28】本発明におけるフローエリアに対する設定UI例を示している。
【図29】本発明における表体裁のレイアウトを行う全体フローを示している。
【図30】本発明における表体裁のレイアウトを行う部分フローを示している。
【図31】本発明における仮想コンテナの生成フローを示している。
【図32】本発明における仮想コンテナの生成を視覚的に表現した概念図を示している。
【図33】本発明における仮想コンテナ同士をレイアウトさせて確定テンプレートを作成する概念図を示している。
【図34】本発明を適用したレイアウト結果例を示している。
【図35】本発明における見開きページにおける表体裁のレイアウトのフローを示している。
【図36】本発明における図35のフローを実行した際のレイアウト結果例を示している。
【符号の説明】
【0149】
101 汎用コンピュータモジュール
103 ユーザインターフェース
104 UIモデルアナライザ
105 レイアウトエンジン
119 データベース
121 レイアウトアプリケーションプログラム
124 コミュニケーションチャネル
132 キーボード
133 マウス
143 I/Oインタフェース
144 ビデオディスプレイ
301 アプリケーションウインドウ
303 ツールバー
313 カーソル/ポインタ
406 リンクツールボタン
407、408 コンテナ
409 アンカーアイコン
410 固定されていない辺
412 リンク
1703 サブテンプレート
1906 フローエリア
3301 確定テンプレート
3303 仮想コンテナ
【技術分野】
【0001】
本発明は、文書処理装置、文書処理プログラム、記憶媒体に係り、詳しくは、文書処理の方法に関するものである。
【背景技術】
【0002】
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM(Customer Relationship Management)、One−to−Oneマーケティングの必要性が注目されている。これらの手法により顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
【0003】
One−to−Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものである。その代表的な手法としてバリアブルプリントが挙げられる。ここ最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトすることが求められるようになった。
【0004】
従来、バリアブルプリントシステムは、ドキュメント上にコンテナ等によりレイアウトを作成し、データベースとレイアウトを関連付けることにより達成していた。しかし、テキストおよびイメージのコンテナのサイズが固定であったため、データベース内のデータがコンテナに挿入されたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいと隙間が空いてしまった。その問題を解決するために、自動レイアウトシステムが発明されている。自動レイアウトシステムはテキストおよびイメージのコンテナサイズを可変に設定することが可能である。この自動レイアウトシステムを実現しているソフトウェアとしてはPageflex社のPageflex(登録商標)等があり、コンテナのサイズを可変とし、差し込まれるデータ量に応じてコンテナのサイズを変更する。またテキストの場合において固定のコンテナサイズ内に入りきらないデータが挿入された場合、テキストのフォントサイズを縮小し、コンテナ内に全てのテキストを表示する技術なども存在する。しかしコンテナのサイズが大きくなった場合、同ドキュメント上の他のコンテナに重なってしまう問題が発生する。またフォントサイズを調節する場合はテキストの量が大きい場合、フォントサイズが小さくなりすぎる問題が発生する。
【0005】
それを解決するための更なる自動レイアウトの技術としては、あるコンテナのサイズが大きくなった場合、隣接したコンテナのサイズを小さくする技術が特許文献1の「レイアウトデザイン装置」に開示されている。
【0006】
また、従来のバリアブルプリントシステムにおいて、1レコードを1ドキュメントにレイアウトする技術だけでなく、多レコードを1ドキュメントにレイアウトするマルチレコードの技術も知られている。この技術により、一人の顧客に対して、レイアウトするデータの数が異なることが可能になり、さらに一人一人に対してよりカスタマイズされたドキュメントを作成することができる。
【0007】
そして、上述のような「レイアウトデザイン装置」に対して、さらにレイアウトエリアと称される機構を導入し、基本となる形状を定められたサブテンプレートを該レイアウトエリア内部にフローさせることにより、複数の類似した項目をいくつもページ中の一定の領域内にフローさせる、という技術が特許文献2の「レイアウトエリア設定手段を含んだ、自動レイアウトシステム」によって開示されている。
【0008】
さらに、サブテンプレート内におけるコンテンツサイズによって、サブテンプレートそのものの大きさを可変とする技術が特許文献3の「レイアウト調整方法及び装置並びにプログラム」によって開示されている。
【特許文献1】特開平7−129658号公報 (0049、図8)
【特許文献2】特開2005-216182号公報
【特許文献3】特開2006−74226号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来の技術において、表体裁の項目数が動的に変化することを考慮したバリアブルプリントシステムを実現する場合、自動レイアウト技術を用いるのは困難であり、ユーザは不便を強いられていた。それはサブテンプレート同士が互いに独立しているため、他サブテンプレートのコンテナによって自サブテンプレートのコンテナが影響を受けて変化することがないからである。また、固定のテンプレートを用いた場合では、当然のことながら、表体裁のレイアウトは設計できるが、可塑性、流動性といった自動レイアウトならではのメリットをユーザは享受できない。
【課題を解決するための手段】
【0010】
上述した課題を解決するために、本発明は以下の構成を備える。
【0011】
パーソナルコンピュータ等の情報処理装置からなり、コンテナ領域の中にデータベース等のデータから、テキストおよびイメージデータ等を挿入してドキュメントを作成する際に、プレビュー時にテキストおよびイメージのサイズにあわせて、コンテナのサイズを変更することが可能であり、さらにコンテナ間の関連を設定することにより、その間隔を保って変更することが可能である自動レイアウトシステムを備え、ページ上にテンプレートのフローを行う領域を設定する手段と、その領域にレイアウトされるサブテンプレートを複数設定する手段と、第1のサブテンプレート内のコンテナと、第2のサブテンプレート内のコンテナとを、自動で関連付け、テキストおよびイメージのサイズにあわせて、コンテナのサイズを変更し、一時サブテンプレート内に仮想コンテナとして保存する手段と、前記一時サブテンプレート内の仮想コンテナのサイズにあわせて、一時サブテンプレート内の仮想コンテナを変更し、保存する手段と、前記ページ上にテンプレートのフローを行う領域に対し、前記一時サブテンプレートを適用し、各サブテンプレート内のコンテナサイズが行または列方向の辺で揃うことを特徴とした文書処理装置。
【発明の効果】
【0012】
本発明の文書処理の方法は、他サブテンプレートのコンテナによって自サブテンプレートのコンテナが影響を受け、変化する。よって、表体裁の項目数が動的に変化することを考慮したバリアブルプリントシステムを提供することが可能となり、ユーザの利便性が高まるといった効果がある。また、可塑性、流動性のある表体裁のレイアウトを設計できることにより、自動レイアウトならではのメリットをユーザが享受することができる効果がある。
【発明を実施するための最良の形態】
【0013】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例1】
【0014】
本発明の実施例を適用するのに好適である実施例について説明を行う。
【0015】
本発明の実施例を説明する前に、本発明を適用可能なシステム構成、およびアプリケーション構成について説明する。
【0016】
<システム構成図>
図1Aはバリアブルデータドキュメントを印刷するシステム100を図示している。この中で示された方法は図1Bで詳しく説明される汎用コンピュータモジュール101で実践される。図1Bで記述されるプロセスは、コンピュータモジュール101内で実行され、システム100上で実施可能となるレイアウト編集アプリケーションプログラム121のようにソフトウェアの全体、あるいは一部分で実行される。特にレイアウト編集や必然的に起こる印刷のステップはコンピュータ101によって実行されるソフトウェアの指示によって実施される。ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ101によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。そのコンピュータでのコンピュータプログラム製品の使用は望ましくもドキュメントのレイアウト編集やバリアブルデータ印刷に有利な装置をもたらす。
【0017】
コンピュータモジュール101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置を連結する。入力/出力インターフェース138はコンピュータモジュール101をネットワーク接続107から接続してシステム100の他のコンピュータ装置につなげることができる。そのネットワーク接続107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
【0018】
コンピュータモジュール101は典型的に少なくとも1つのプロセッサーユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェース、キーボード132やマウス133のためのI/Oインターフェース143を含んでいる。記憶装置139は典型的にハードディスクドライブ140やフレキシブルディスクドライブ141を含んでいる。図には示されていないが磁気テープドライブもまた使用される可能性がある。CD−ROMドライブ142は不揮発性のデータソースとして提供される。コンピュータモジュール101はオペレーションシステムや、典型的にはオペレーションシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。
【0019】
図に記述した配置コンピュータの例ではIBM互換PCやSUN社のSparc Station、あるいはそれらを含んだコンピュータシステムが考えられる。
【0020】
レイアウトアプリケーションプログラム121は典型的にハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。プログラム121の媒介記憶装置とネットワーク1020からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。いくつかのインスタンスではアプリケーションプログラム121がCD−ROMやフレキシブルディスク上でエンコードされ、対応するドライブ142や141を通じて読み込まれユーザに提供される。あるいはもう一つの方法としてアプリケーションプログラム121はネットワーク接続107からユーザによって読み込まれるかもしれない。さらにソフトウェアは磁気テープまたはROMまたは集積回路、光磁気ディスクまたは無線またはコンピュータモジュール101とその他のデバイス間の赤外線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からコンピュータモジュール101内にロードされる可能性もある。前述は単に関連するコンピュータ可読メディアの模範である。他のコンピュータ可読媒体も使用される可能性はある。
【0021】
またレイアウト編集と名づけられたアプリケーション121はバリアブルデータ印刷(VDP)を行うよう指示し、3つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのコンポーネントはレイアウトエンジン105であり、これは長方形の範囲内で与えられた制限やサイズによって矩形と線の位置を計算するためのソフトウェアコンポーネントである。2つめのコンポーネントであるユーザインターフェース103はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースと関連付けるメカニズムを提供する。3つめのコンポーネントであるUIモデルアナライザ104は、ユーザインターフェース103が提供するコンテナや、アンカー、スライダー、リンクなどのユーザインターフェース要素をレイアウトエンジン105が認識できる内部形式に変換する。すなわち、UIモデルアナライザ104により、レイアウトエンジン105に変更を加えることなく、ユーザインターフェース103を他の表示/入力形式のユーザインターフェースに容易に取替え可能になる。
【0022】
ユーザインターフェース103、UIモデルアナライザ104、レイアウトエンジン105はコミュニケーションチャネル123、124を介して通信する。ドキュメント生成のためのデータソースは一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバー117上にある典型的なデータベース119である。ホストコンピュータ101はネットワーク接続107の手段によってデータベースサーバー117と通信する。バリアブルデータ印刷アプリケーション121はホストコンピュータ101か一般的に他のコンピュータで構成されるファイルサーバー115に保存されるドキュメントテンプレートを生成する。またバリアブルデータ印刷アプリケーション121はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバー115に保存されるか、あるいはプリンタ113に直接印刷される。プリントサーバー109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバー109とプリンタ113は典型的な通信チャネル111を介して接続される。
【0023】
図2はエンジンサーバー227の追加を除き、レイアウトエンジン105の分離バージョン225を含む図1A・図1Bの類似の図である。エンジンサーバー227は典型的なコンピュータである。ファイルサーバー115に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
【0024】
[アプリケーション構成図]
[メインウインドウ]
図3で参照されるように、ユーザインターフェース103は、操作時にビデオディスプレイ144に表示されるアプリケーションウインドウ301によって形成されたユーザインターフェースを含んでいる。ウインドウ301は、非表示にすることや、スクリーン上の色々な場所に移動することが可能なメニューバー302とツールバー303、そしてマウス133の位置・動作によって場所を移動可能なワークエリア306とオプションのパレット311とカーソル/ポインタデバイス313から特徴付けされる。
【0025】
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
【0026】
ツールバー303は、アプリケーションの特別なモードによって非表示にする、または表示することが可能な多くのツールボタンとウィジット305を持つ。
【0027】
オプションのルーラー308はワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。
【0028】
パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはオブジェクトの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されることを制限される、あるいはアプリケーションウインドウ301の外側に部分的・全体を表示することを許される。
【0029】
図4を参照。ツールバーエリア303は少なくとも、次のユーザ選択可能な『ボタン』を持つ。
【0030】
選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック・ロック解除するために使われる。コンテナは、(複数)コンテナの周りに選択ボックスをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数選択を可能にする。
【0031】
イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
【0032】
テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
【0033】
リンクツールボタン406:コンテナ間の距離をコントロールするリンクを作成するために使われる。
【0034】
これらのボタンは、周知の技術であるように操作状況に合わせて変化するアイコンのツールチップとして実装される。
【0035】
[ドキュメントテンプレート]
ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを理解することを可能にする。
【0036】
もし外部データソースがテンプレートにリンクされていたら、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージがそれらのコンテナに表示される。
【0037】
ドキュメントの構造とバリアブルデータコンテナの描写をする視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示される。
【0038】
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309に特徴付けられる。ドキュメントテンプレート309はページが複数あることを示すことができる。
【0039】
与えられたドキュメントテンプレートのページサイズは、周知の技術としてユーザによって指定される。それぞれのドキュメントでの実際のページ数は、バリアブルデータによって変化するかもしれない。もし1ページ内にフィットできなかった時、追加のページは自動的に作成される。
【0040】
それぞれのページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージン310である。
【0041】
また、図4は1ページのドキュメントテンプレート309上に表示することが可能なオブジェクトの例である。それらは、複数のコンテナ407、408と、任意に適用するアンカーアイコン409と固定されていない辺410、リンク412そしてスライダー413を持つ。
【0042】
[コンテナ]
コンテナは、ドキュメントテンプレート内の固定あるいは可変テキスト・イメージを持つスペースであり、他のコンテナやオブジェクトとレイアウトされる。コンテナはマウス133動作でポインタ313を使い、ユーザインターフェースで示されるように移動、サイズ調整そして再作成される。
【0043】
より正確にはコンテナは、設定の集まり、視覚的表現そしてインタラクションと編集動作をもっている。下記はコンテナの定義の全部分である。
【0044】
コンテナは固定あるいは可変のコンテンツを持つ。可変コンテンツは、データソースからとってきて、異なるドキュメントでは異なるかもしれない、という意味でダイナミックである。可変コンテンツは印刷されないような時間によって変更されたり、アニメーションするコンテンツを含むことは意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。けれども、可変コンテナの動作によって、固定コンテンツはそれぞれのドキュメントで位置が異なるかもしれない。
【0045】
コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定のような装飾機能を持っている。
【0046】
コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、典型的に印刷された出力物で可視である。可変コンテンツはデータソースから特定のデータの表示をもたらす。コンテナのこの表現は例えば印刷されるか、スクリーン144上で表示されるか、その両方が可能である。
【0047】
コンテナはユーザインターフェースを持つ、例えばコンテナの編集そして表示設定のためのインタラクティブなGUIを持つ。インターフェースの要素は典型的にスクリーン144上に表示される、しかしドキュメントには印刷されない。ユーザインターフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示する、そしてコンテナの設定の編集や表示を許すための機能を追加する。ユーザインターフェース機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコン、あるいはコンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。現在の公表の一つの概観は、新しい直接編集技術とコンテナのGUIコンポーネントに伴う表示方法の集まりである。
【0048】
[コンテナ制約]
公知の技術によると、コンテナはそれぞれのドキュメントで表示されるコンテンツを、どのように結びつけるか制御する制約がある。これらの制約(固定・可変コンテンツをコンテナと結びつけると共に)は、ユーザが一つのドキュメントテンプレートから、多数のドキュメントの生成を制御する主要な方法である。制約の例は『このコンテナのコンテンツの高さは、最大値4インチです。』である。もうひとつの制約は『コンテナのコンテンツの左端は、それぞれのドキュメントで同じ水平位置で表示しなければならない。』である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
【0049】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。下記の検討で、コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示されると想定されるかもしれない。その代わりに、現在の検討はバリアブルデータ印刷に特化した方法での表示・編集に焦点を合わせる。
【0050】
コンテナは、ユーザにドキュメントのコンテンツのサイズ・位置を指定することを可能にする。いくつかのドキュメントは一つのドキュメントテンプレートから生成されるので、コンテナは多数の可能性と制約を指定・表示するためにユーザインターフェースを使わなければならない。
【0051】
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。このように、この特許でコンテナの左辺を論じることは、関連付けられたコンテンツがどんなドキュメント内でも表示可能である最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。この特許明細書では、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
【0052】
下記検討では、コンテンツの表示を制限するために使われるいくつかの値を定義している用語『固定』は、全てのドキュメントで同じである。
【0053】
・もしコンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになるだろう。
【0054】
・もしコンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになるだろう。
【0055】
・もし距離の制約が固定なら、指定された距離は全てのドキュメントのための制約である。
【0056】
・もしコンテナの左右辺が固定なら、辺の水平位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの高さあるいは垂直方向の位置は、変わるかもしれない。例えば、もしコンテナの左辺が固定なら、関連付けられたコンテンツは、一つのドキュメントでページの上に近く表示され、他のドキュメントでページの下に近く表示される、しかし左辺は全てのケースで同じ水平位置である。
【0057】
・もしコンテナの上下辺が固定なら、辺の垂直位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの幅あるいは水平位置は変わるかもしれない。
【0058】
・コンテナの垂直軸はコンテナの右と左辺の平行で、そして中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、すべてのドキュメントで同じである。この制約で、コンテナの幅は変化するかもしれない、左右辺両方が異なったドキュメントで、垂直軸にもっとも遠いかもっとも近いかもしれない、しかし軸は全てのドキュメントで同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
【0059】
・同様に、もし水平軸が固定なら、コンテナの上そして下辺が垂直に位置されることを制約する、けれども高さは、この制約によって影響されない。
【0060】
・もし水平、垂直軸両方が固定なら、コンテナの中心位置が固定されていることを意味する、しかし、幅・高さはこの制約によって影響されない。
【0061】
・もしコンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、すべてのドキュメントで同じ場所で、そしてコンテナに関連付けられた同じ場所で表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【0062】
・垂直辺あるいは軸はページの左辺、あるいは右辺、あるいは左ページマージン、あるいは右ページマージン、あるいは他の水平位置に関連付けされて固定になる。同様に、水平辺あるいは軸はページの上あるいは下辺あるいはマージン、あるいは他の垂直位置に関連付けされて固定になる。用語『固定』の改良は、もしページサイズが全てのドキュメントで同じならこれらの可能性はドキュメント生成で相違はないため、ドキュメント間でページサイズが変わるときにのみ重要となる。
【0063】
『固定』の反対は、辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間で変化するかもしれないことを意味している『可変』である、しかしドキュメントの特定な設定でそうする必要が無いかもしれない。例えば、変更による辺の実際の好ましい位置のような他の外部制約がある、しかし、もし外部制約が適用されないなら、辺は固定されてないものとしてラベル付けされているので辺の位置は変更できる。
【0064】
[コンテナ表示・編集]
[新規コンテナの作成方法]
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナはテキスト、そして埋め込みのイメージを持つ。イメージコンテナは、イメージだけを持つ。
【0065】
図4で参照されるように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール404、あるいはイメージコンテナツール405をマウス133でクリックし、テンプレート309に四角形をドラッグすることによって、ドキュメントテンプレート309上に作成される。
【0066】
代わりにコンテナは、適切なツール404、405をアクティブにした後に、ドキュメントテンプレート309上でクリックすることによって単純に作成される。デフォルトサイズのコンテナが挿入されるか、新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが提供される。いくつかのコンテナは自動的に前もって定義されたか、計算されたスキーマによって、作成・配置される。また他の案が考えられるかも知れない。
【0067】
[コンテナの表示方法]
以前記述した36の辺の状態それぞれが、グラフィカルな表現で描画されるのが好ましい。いくつかの辺の状態は、いくつかの状況で表現を分け合うため、36のグラフィック表示より少なくなるかもしれない。
【0068】
図5A−図5Dはコンテナの模範的な辺ルールを例示している。
【0069】
アプリケーション121は、辺の状態を表現するために、塗りつぶし線(アイテム503)あるいは点線(504)で辺を描き、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために辺、形の近くに描画されたコントロール点、502)、スライダー(辺の両サイドに描画された短い並行線、図4の413)、拡縮アイコン(505)、そして色を特徴として持っている。
【0070】
図5A−図5Dのコンテナ表示方法のルールは、つぎの通りである。
【0071】
1.それぞれの辺を固定するために、塗りつぶし線で描画する。
【0072】
2.もし幅が固定なら、左と右の辺を塗りつぶし線で描画する。
【0073】
3.もし高さが固定なら、上と下の辺を塗りつぶし線で描画する。
【0074】
4.軸は描画しない。
【0075】
5.まだ描画されていない全ての辺は、それぞれの辺の近くに拡縮アイコンが描画され、点線になる。
【0076】
6.垂直辺あるいは軸のそれぞれのペアで、もし両者が固定なら、交差点にアンカーが描画される。
【0077】
7.それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
【0078】
8.垂直辺あるいは軸のそれぞれのペアで、もしアンカーやスライダーが描画されていなければ、交差点にハンドルが描画される。
【0079】
ルール1、ルール2、ルール3で保証した線は、もしそれらが固定あるいは制限されているなら、点線で描画される。ルール5で保証した可変の辺は、点線で描画される。ルール6、ルール7、ルール8で保証した固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【0080】
上記で、辺はただ一度描画されることが必要である、それでもし、ルールが描画されるべき辺に影響すれば、そのとき後のルールはふたたび描画されるべき辺に影響しないだろう。もしそうすることで都合が良いなら、例えばもしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画されるかもしれない。
【0081】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後で記述されるように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行手段としては、すべてのドキュメントで平均化されるコンテナのコンテンツエリア、あるいは可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【0082】
これらのコンテンツ表現は、コンテナの辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
【0083】
・図4の410の辺のように、点線はコンテナのコンテンツに依存して、ドキュメント内の辺の位置を意味する。
【0084】
・塗りつぶし線は制限された辺を意味する、なぜなら、辺は固定されている(辺414)、あるいはコンテナの幅・高さが固定されている(コンテナ408では両方が固定されている)ため。
【0085】
・アンカーは辺そして軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れるだろう。当然アンカーは固定される。図4のアイコン409は、交差する辺414が固定されていることを意図している、アンカーアイコンの例である。
【0086】
・スライダーは関係付けられた辺が固定されていることを意味する、しかしコンテナは辺に沿って多くの位置『スライドの長さ』で位置を定められる。例えば、図4でスライダー413はコンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。
【0087】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【0088】
幅・高さの最小値・最大値の設定は、副次的なダイアログウインドウに表示される。
【0089】
図5Aで、コンテナ501は幅・高さ両方が固定されていない。固定された辺503は塗りつぶし線で表現される。可変の辺504は点線で表現される。拡縮アイコン505は、隣接する辺504が可変であることを示す、追加あるいは代わりのインジケーターである。
【0090】
図5Bで、コンテナ501は幅・高さ両方が可変である。アンカーアイコン506は、交差している両方の辺503が固定されていることを、追加であるいは代わりに示している。
【0091】
図5Cで、コンテナ501は、コンテナの拡大あるいは縮小が任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態で、幅・高さ両方が可変である。
【0092】
図5Dで、コンテナ501は、上辺508が固定されていることを除けば、幅・高さ両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている、そしてまたコンテナの左・右辺が、アイコンを通り垂直に描画される中心軸(垂直軸)の周りを、拡大・縮小することを示す。
【0093】
[リンク]
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図4の412で示されているものがリンクであり、この図ではコンテナ407と408とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
【0094】
[リンクの設定方法]
図6はリンクの設定方法を示したフロー図である。また図7A−図7CはUI例を示している。それらを用いてコンテナにリンクを設定する方法について説明をする。
【0095】
まず、リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)を作成する(0601)。図7は、2つのコンテナを作成してリンクを設定する場合の例を示している。次に、前述したリンクツール406を選択した状態にする(0602)。図7A−図7Cは、コンテナを作成し、リンクツールが選択されていた状態から、リンクを設定する動作を示している。図7A−図7Cを順に説明していく。
【0096】
図7−Aの0701と0702は、前述した図4の407と408と同じであり、固定されている辺を意味する。また、0703と0704は、409と同じであり、アンカーを意味する。0705はマウスポインタを意味している。まず、リンクを設定する片方のコンテナをクリックして選択する(0603)。次に図7−Bで示されるように、もう片方のコンテナまでマウスポインタを移動して、クリックする(0604)。図7−Bの0706は図7−Aでクリックをした位置と移動したマウスポインタを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すUIである。処理0604が終わった後、設定した場所に0707で示されるリンクUIが表示される(0605)。コンテナは図7−Cの状態になる。また、リンクが設定されたことにより、コンテナのUIも自動的に変更される(0606)。0708は、点線で示されている辺であり、前述した通り可変の辺を示している。図7−Cのようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、0709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したしるしである。図7−Cの例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例であり、右コンテナが、図4の413で示したスライダーを持つ設定に変化してもかまわない。
【0097】
[レイアウト計算方法(全体フロー)]
図8はレイアウト計算のフローを示している。
【0098】
まず、プレビューモードを選択する(0801)。前述した自動レイアウトシステムでは、コンテナを作成して、そのコンテナ間に関連付けを行い、レイアウトを作成するレイアウトモードを持つ。さらに、作成したレイアウトにレコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードを持つ。このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。その際の計算方法も同じである。プレビューモードになったら、プレビューするレコードを選択して挿入する(0802)。レコードの挿入を行うと、そのレコードをレイアウトするために計算を行う。(0803)。処理0803で計算されたレイアウトを表示する(0804)。他のレコードについてもプレビューを行うかどうかを判断する(0805)。処理0805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(0807)。他のレコードについてプレビューを行うのであれば、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(0806)。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、処理0805、0807は存在しない。全てのレコードについて印刷が終了した時点で終了する。
【0099】
[レイアウト計算方法(詳細フロー)]
図9はレイアウト計算の詳細を示したフロー図である。また、図10はそのときのUI表示例を示した図である。
【0100】
まず、レイアウトを計算するコンテナの集合を求める(0901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナA・Bが集合1、コンテナC・Dが集合2となる。前述した通りであるが、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
【0101】
次に、0901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(0902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。ここでは、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(0903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(0904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、リンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、0902〜0904のステップをページ上のすべての集合について施し、ページ全体のレイアウトを計算する(0905)。
【0102】
図10−A〜図10−Cはレイアウト計算時のUI例である。
【0103】
図10−Aは、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。図10−Bは図10−Aの状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図10−Cはレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図10−Cで示されるように、図10−Bで示した挿入されるコンテンツサイズ(1009)と計算後のコンテンツサイズ(1010)は、双方において同等な差異がある。
【0104】
[可変リンクの設定]
図12では一般的な可変リンクの状態を表している。図4と同様にアプリケーションウィンドウ301とツールバー303があり、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナは典型的にアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206から成り立つ。各エッジコンテナ1203と1204の間には可変サイズのリンク1209があり、それぞれのコンテナを結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケーター1210、インジケーター1211が表示され、これは辺1207と辺1208が可変であることを示している。
【0105】
また図14はリンク1209の情報がセットされているダイアログウィンドウ1401の例である。このダイアログは典型的にタイトルバー1402、ツールボタン1403、ダイアログウィンドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウィンドウではリンクタイプが可変(1407)あるいは固定(1406)の選択や、可変の場合、リンクの長さの最大値(1410)そして最小値(1412)、また現在の値(1411)が設定できる。
【0106】
図13は前述のリンク設定方法を踏まえ、例えば図15のコンテナAとコンテナB間に張られている固定サイズのリンク1503の状態から可変サイズのリンク1209を示している図12の状態までの操作遷移を表している。マウスによりリンク1503をクリックし、選択する(1302)。マウスの右クリックあるいはキーボードの特定のキーにより選択したリンク1503のプロパティダイアログウィンドウ1401を表示する(1303)。この状態ではリンクサイズは可変ではなく固定であるため、Fixed Length1406がLink Type1405において選択されている。リンクを固定サイズから可変サイズに変更するために、Link Type1405においてリンクサイズを可変に設定するFlexible Length1407を選択する(1304)。これによりLink Distance1408内に配置されているMax. Distance1412、Min. Distance1410、Distance1411が有効化され、数値の設定が可能となる。そこでリンクの可変サイズを設定するために、そのリンクの長さの最大値をMax. Distance1412、最小値をMin. Distance1410、現在の値をDistance1411において設定する(1305)。一般的なダイアログウィンドウ開閉ボタン1404によって設定を適用すると図12のリンク1209のような状態にリンクのUI表示が変化する。(1306)このダイアログウィンドウ1401の設定情報はメモリに格納される。
【0107】
図15は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述したとおりに従って行われる。例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのデータが挿入された時、それぞれのコンテナはデータの大きさを最適と考え、コンテナ1203は挿入されたイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ大きく、同様にコンテナ1204も挿入されたイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へやや大きくサイズを変更しようとする。しかしコンテナ1203とコンテナ1204の間には固定サイズのリンクが設定されているとすると、コンテナ1203とコンテナ1204はそれぞれアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213は移動出来ないため、変更しようとするサイズがリンクサイズを上回ってしまう。そしてこのリンクサイズは固定されているためレイアウト計算時に優先的に計算されるためコンテナ1203とコンテナ1204のサイズが変更されることになる。その結果、コンテナ1203とコンテナ1204はデータに合わせた最適なサイズを確保することが出来ず、最終的に図15のコンテナ1501とコンテナ1502のように最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。リンク1503のサイズは固定であるためコンテナ1501とコンテナ1502は最適サイズを達成していない。
【0108】
図16はリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図の通り可変サイズのリンクが設定されているとすると、コンテナ1203とコンテナ1204のサイズが変更される際に、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズが上記の例より大きくなることができる。さらに、挿入されるデータサイズに合わせた最適なサイズを達成、あるいはより挿入データサイズ(最適サイズ)に近づけてコンテナの枠を計算することが出来る。その結果が、図16のコンテナ1601とコンテナ1602である。可変リンク1209はレイアウト計算の結果、可変リンク1603のサイズ状態となり、この場合コンテナ1601とコンテナ1602はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。
【0109】
[マルチレコード]
マルチレコードについて、概要を説明する。
【0110】
図17は、マルチレコードとそのレイアウト方法の概要を示した図である。
【0111】
1701はドキュメント、1702はページ、1703はサブテンプレート、1704はデータベースを示している。1704で示すデータベースを見てみると、No1〜7のデータが表示されている。1レコード1ドキュメントのバリアブルプリントでは、7つレコードがあるので、この場合7ドキュメントが作成される。しかし、多レコード1ドキュメントのマルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。まずマルチレコードを指定するカラムをユーザが任意に指定する、この例ではフィールド名:Nameが指定されたものとする。すると、そのフィールド名が同じレコードは、1ドキュメントにレイアウトされるレコードであると認識する。この例では、No1〜4のレコードはNameがTomであるため、同じドキュメントにレイアウトされ、No5〜7のレコードは、NameがNancyであるためTom用とは異なる、同じドキュメントにレイアウトされる。これが通常のマルチレコードである。
【0112】
[全体フロー]
図18、図19は本発明のサブテンプレートの全体フローとその説明UIを示している。
【0113】
図18のフローの各ステップを図19のUI図と合わせながら説明していく。まず、図19の1903で示すアイコンが押下されることによって、エリア作成モードへと遷移する(1801)。そして、1902で示されるページマージンのエリア内において、マウスのドラッグにより矩形が描画される(1802)。描画された矩形はフローエリアとして認識される(1803)。1906はフローエリアを示している。1904や1905は、フローエリア外に存在するテキストコンテナやイメージコンテナである。これらのコンテナは、フローエリア内のフローとは関係がない。フローエリアは、それらのコンテナとは色や線種などの矩形UIを異ならせることにより、ユーザに視覚的に認識しやすいようにする。次に、作成されたフローエリアに各種設定を施すかどうかを判断する(1804)。プロパティを設定するのであれば、フローエリアでマウスポインタをクリックすることなどにより、プロパティダイアログが表示される(1805)。そして、表示されたプロパティダイアログを用いて、設定を施す(1806)。プロパティダイアログおよび設定方法については、後で詳細に記述する。フローエリアの作成および設定が終了したら、レイアウトをプレビューするかどうかを確認する(1808)。プレビューするのであれば、プレビューモードへ遷移する。そして、レイアウト計算を行う(1809)。このレイアウト計算は図17で示したフローと同じ処理を行う。次に、設定されているフローエリアのレイアウト計算を行う(1810)。この処理については後で詳細に記述する。最後にレイアウト結果を表示する(1811)。
【0114】
[プロパティ設定フロー]
図20はフローエリアの各種設定(プロパティ設定)を行う設定ダイアログの例を示している。これが、前述の図18のフローチャート中のステップ1806で表示され、その内容を1807にて反映させるダイアログのUI例となる。
【0115】
なお、文中のサブテンプレートおよびについては後述する。
【0116】
指定方法は、ユーザがラジオボタン2002によってまずフローエリアに関連付けるものがサブテンプレートであるか、それとも条件式であるかを選択する。その後2003で示しているリストボックスからフローエリアで使用するサブテンプレートを、あるいは2004で示しているリストボックスからフローエリアで使用する条件式を、ユーザが指定されることにより表示される。サブテンプレートおよび条件式は、編集中のドキュメントテンプレート内に、それぞれの特有なUI手段によって設定できるものとする。他の手法としては別のファイルに保存され、この設定ダイアログからはファイルを指定することによって選択指定できるものとしてもかまわない。本実施例では、サブテンプレートおよび条件式は、ドキュメントテンプレート内にそれぞれ複数を作成できるが、リストボックスから選択するという特性上からも、すべてが一意な名前を持ち識別できるように設計されるべきである。
【0117】
その他に、本設定ダイアログからは、サブテンプレートをフローする際のフローの方向を2005から選択し、フローする際の間隔を縦は2006、横は2007で設定することが可能である。
【0118】
以上の設定を確定するには、2008で示すOKボタンを押下する。また、2009のキャンセルボタンを押下すると指定された各種設定はすべてキャンセルされる。
【0119】
[サブテンプレート]
前述したサブテンプレートについて、概要とレイアウトフローを説明する。図21、図22はそれぞれサブテンプレートのレイアウト例とレイアウトフローを示している。
【0120】
サブテンプレートは、イメージコンテナ、テキストコンテナを任意数配置して、そのコンテナにレコードのどのデータ(フィールド)を割り当てるかを設定した状態で、テンプレートとして保存してあるものを指す。同じレイアウトを一つのドキュメントで数多く使う場合に便利である。サブテンプレート内に配置されるコンテナは、前記イメージコンテナ、テキストコンテナと同様であり、各コンテナ間にはリンクを設定することも可能である。したがって、レイアウトするデータによって、レイアウトサイズを最適に変化させることが可能である。図21はサブテンプレートのレイアウト例を示している。2102と2105はイメージコンテナ、2103と2106はテキストコンテナ、2107はリンクを示している。イメージ、テキストのコンテンツサイズが異なるため、異なるレコードに対してそれぞれ最適なレイアウトを計算してレイアウトを変更している様子を示している。
【0121】
このレイアウトの計算フローは図22に示す通りである。まず、レイアウトするデータを取得する(2201)。次に、各コンテナにレイアウトするデータのサイズを渡す(2202)。そして、渡されたデータサイズに基づいて、各コンテナにおいてレイアウト計算する(2203)。そしてレイアウトを最適化する(2204)。最適化の方法は前述した通りである。最適化されたレイアウトを決定し(2205)、レイアウトするデータを流し込み(2206)、表示する(2207)。
【0122】
[複数ページにわたるフローエリア]
フローエリア内にサブテンプレートをレイアウトして、領域外にオーバーフローした際、同じフローエリアを有する新しいページを自動的に生成して、そこへあふれたサブテンプレートを連続してレイアウトする方法を含んだ自動レイアウトシステムについて解説する。
【0123】
特許文献2の方法によれば、フローエリアは1ページの範囲内に限られ、1ページの範囲内にサブテンプレートを収める処理を行うことによって、はがきなど紙面の限られたドキュメントに対応したレイアウト結果を実現することを目的としていた。そのため、多数のページにわたってサブテンプレートをレイアウトすることは考慮されていない。しかし、顧客ごとにカスタマイズされたドキュメントを作るというニーズの中からは、ページ数を限定せず、顧客の興味の範囲に応じて、自由なページ数の加減のあるドキュメントを作成するという場面が存在する。
【0124】
[複数ページの中の繰り返しページ]
図23は、複数のページを持つドキュメントに対して、フローエリアを挿入する際に呼び出す設定ダイアログのUI例である。ラジオボタン2302からフローエリアのON/OFFを選択し、ONの場合に、テキストボックス2303において、フローエリアを配置するページ番号を設定する。ここで、開始ページは1以上であり、終了ページはそのドキュメントの最大ページ以下になるように、UIによって入力を制限されるべきである。さらにテキストボックス2304において配置されたフローエリアの中から、繰り返しインスタンスを生成してサブテンプレートをフローしていく繰り返しページ範囲を設定する。繰り返しページについては後述する。ここで繰り返しページの開始ページは前述フローエリアの開始ページ以上であり、終了ページはフローエリアの終了ページ以下であるように、UIによって入力を制限されるべきである。また少なくとも1つのページは必ず繰り返しページとなるように制限されるべきである。
【0125】
設定ダイアログでOKを押下した場合、設定したページ範囲にしたがってフローエリアが各ページに挿入される。フローエリアの挿入される初期位置とサイズは、システムが固定で保持しており、挿入後後述の位置制御によってユーザの望む位置とサイズに変更可能である。
【0126】
[フローエリアの位置制御]
複数のページにわたって配置されたフローエリアは、それぞれのページでそれぞれの位置と大きさを占めることができる。
【0127】
図24は、各ページにおいてフローエリアの位置と大きさを調整するためのUI例を示している。2401はマージンエリア、2404のフローエリア自体は前述のように、線種や色によって通常のコンテナとは異なる表現でわかりやすく表示される。図24のように、フローエリアはレイアウト編集領域内において、図形描画ソフトウェアで公知かつ一般的な、サイズ変更ハンドル2403によってサイズを変更することが可能である。フローエリアにおいては、その存在可能領域をマージンエリア内に限定することが適当である。
【0128】
[繰り返しページ]
図25は、1ドキュメント中の複数のページにわたってフローエリアを配置されている様子と、そのフローエリアに実際のデータを挿入したときにレイアウト済みページの生成される様子の概念図である。
【0129】
図25−Aの2502は、繰り返しページである。2501と2503は繰り返しページではないが、フローエリアの存在するページである。2504はフローエリアをあらわしている。また2505と2506は通常のコンテナをあらわしている。これらの通常コンテナはフローエリアとは関係を持たない。フローエリアは、複数ページにまたがってはいるが、連続したひとつのエリアとしてアプリケーションに扱われる。そのため、実際のデータを挿入したときには、この図ではフローエリア3ページ全体を使ってデータベースのレコードをすべて配置していくことになる。
【0130】
図25−Bに、図25−Aのように設定されたフローエリアに対して実際のデータを挿入し、レイアウト済みドキュメントが得られた状態を示す。2507は1個のサブテンプレートをあらわしている。ただし、簡単のため実際にフローされるサブテンプレートやコンテナの細部はごく省略して表記している。図25−Bでは、図25−Aでの2つ目のページが、レコードの数に応じて自動的に生成され繰り返されていることが示されている。
【0131】
このように複数のページにまたがってフローエリアが存在する場合、ページの性格によって、どのページを繰り返しページにするかを設定できるとドキュメントの表現力向上に効果がある。図25の例でいえば、1ページ目のフローエリアは例えば顧客名を通常コンテナ部に記載して、顧客へのあいさつ文を載せることが考えられる。そのあとからマルチレコードによるレコードデータをフローエリアに表示し、繰り返しページで多数のレコードデータを処理した後、3ページ目のフローエリアで、販売担当者名をいれ、結びのあいさつ文を載せることが考えられる。このように、複数のページにおいて、同じようなレコードデータを多数配置するドキュメントの形態をとりつつも、ページによってその内容に多様性を持たせることが可能になるのである。
【0132】
[複数ページにわたるフローエリア全体のフロー]
図26は、複数ページにわたるフローエリアのフローチャートである。このフローチャートでは、サブテンプレートを複数のページからなるフローエリアに配置する方法を記述している。
【0133】
まず、フローエリア内に配置するサブテンプレート数を取得し、nに代入する(2601)。もしnが0だった場合には(2602)、フローエリアにレイアウトする必要はないので、処理を行わず終了する(2603)。変数kを1に初期化する(2604)。
【0134】
ドキュメントの先頭に、繰り返しページではないフローエリアの存在するページがあるかどうかを取得し、その繰り返しページでない開始ページをs、終了ページすなわち繰り返しページの直前のページをeに代入する(2605)。次に、s〜eのページに、先頭から順に収まるだけのサブテンプレートを順にフローしていく(2606)。そのフローが終わった時点で、s〜eに収まったサブテンプレートの数を求めてtとする(2607)。この時点でkにtを代入し(2608)、kとnを比較する(2609)。もしkがn未満であるなら、ステップ2610に進む。もしkがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0135】
ステップ2610では、まず現在のレイアウト済みページ数pを記憶する。次に、ドキュメントの後尾から繰り返しページでないフローエリアの存在するページ番号を取得し、開始ページをs終了ページをeに代入する(2611)。s〜eのページに、先頭から順に収まるだけのサブテンプレートを順にフローしていく(2612)。そのフロー処理が終了したら、s〜eに収まったサブテンプレートの数を取得しtとする(2613)。その次に、k+tとnを比較する(2614)。k+tがn未満であったらステップ2615に進む。k+tがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0136】
ステップ2615では、後尾の繰り返しページでないページには残っているサブテンプレートがすべて収まらない、ということであるので、まず先にフローしたpより後ろのレイアウト済みページのインスタンスを破棄する(2615)。そこから、繰り返しページに対してフローを実施していく。まずドキュメント内の繰り返しフローエリアのページ番号を取得し、開始ページをs終了ページをeとする(2616)。s〜eに収まるだけのサブテンプレートをフローエリアにフローする(2617)。s〜eに収まったサブテンプレートの数を取得してtに代入する(2618)。さらに、kにtを加えて再度kに代入する(2619)。ここで、kとnを比較する(2620)。kがn未満だった場合、再度ステップ2610に戻り、残りのサブテンプレートをドキュメントにフローする処理を続行する。もしkがnに達していたら、すべてのサブテンプレートをフローし終えたことになるので処理を終了する。
【0137】
[フローエリアにおける複数のサブテンプレート]
図27は、本発明が適用されるサブテンプレートの前提となる例を示している。この例では、図27全体をフローエリアとすると、サブテンプレート2701、2702、2703が並べられることを示している。サブテンプレートはそれぞれコンテナ2704〜2706、2707〜2709、2710〜2712を保持している。また、各コンテナは可変リンク2713によって結ばれている。また、この例では、サブテンプレート2701〜2703は互いに独立しているため、コンテナ2704、2707、2710が揃うという動作はせず、表形式での出力を行うことは考慮されていなかった。つまり、他のサブテンプレートの内容によって、自サブテンプレートのコンテナが影響を受けるといった動作はいままでしてこなかった。以降このフローエリアおよびサブテンプレートに設定を追加することによって、表体裁の出力を可能とさせる方法を説明する。
【0138】
[複数サブテンプレートによる表体裁の設定]
図28は、本発明が適用できるフローエリアに対する設定UI例を示している。設定画面2801は、ページ内繰り返し可能数2802、コンテナ揃え設定2803によって構成される。OKボタン2804を押すと設定が反映され、キャンセルボタン2805を押すと2801上の設定が破棄される。2803では、フローエリアのサブテンプレート内のコンテナを揃えるか否か(表体裁にするか否か)を設定する。また2803で表体裁にする場合は、行で揃えるのか、列で揃えるのかを選択することが可能である。テンプレートエディタ上では、フローエリア2806に対し、サブテンプレートの構成要素であるコンテナ2808、リンク2809が表示される。さらに、コンテナを揃える方向が分かるよう2807のようなマークをユーザに通知することも可能である。
【0139】
[表体裁のレイアウトを行う全体フロー]
図29,図30は、本発明が適用できる、表体裁のレイアウトを行う全体フローと部分のフローである。ステップ2901では、フローエリアに流し込むサブテンプレートの数を取得する。ステップ2902では、フローエリアにおける1ページあたりのサブテンプレート数を取得する。ステップ2903では、ステップ2901で取得したサブテンプレート数とステップ2902で取得したサブテンプレート数を比較する。ステップ2901で取得したサブテンプレート数のほうが大きい場合は、ステップ2904で図28における2802で設定された値で、各サブテンプレートの幅が算出される。ステップ2902で取得したサブテンプレート数のほうが大きい場合は、ステップ2905でフローエリアの幅と、ステップ2902で取得したサブテンプレート数によって、各サブテンプレートの幅が算出される。ステップ2906は、フローエリア内に存在するコンテナの数だけ繰り返すことを示している。ステップ2907は、ページ内のサブテンプレート数だけ繰り返すことを示している。ステップ2908では、流し込むコンテンツを取得し、ステップ2909において、仮想コンテナ生成用領域に保存する。ステップ2910において、仮想コンテナ生成用領域内のコンテンツでレイアウト調整を行い、ステップ2910のレイアウト調整結果のコンテナを、ステップ2911において、仮想コンテナとして保存する。ステップ2912は、フローエリアにある仮想コンテナの数だけ繰り返すことを示している。ステップ2913では、最終調整領域に各仮想コンテナを配置していく処理を示している。ステップ2914は、ステップ2913で配置した仮想コンテナ同士でレイアウト調整を行う処理を示している。ステップ2915は、ステップ2914でレイアウト調整された結果を確定テンプレートとして一時保存する処理を示している。ステップ2916は、フローエリアに流し込むサブテンプレートの数だけ繰り返す処理を示している。ステップ2917では、サブテンプレートに流し込むレコードを取得する処理を示している。ステップ2918は、サブテンプレート内のコンテナの数だけ繰り返す処理を示している。ステップ2919は、コンテナに流し込むコンテンツの取得処理を示している。ステップ2920は、ステップ2915で保存した確定テンプレートを用いて、ステップ2919で取得したコンテンツを配置する処理を示している。なお、図30は、図29の抜粋であり、ステップ3001〜3006は、図29の2906〜2911に対応しており、仮想コンテナの保存のフローを示している。また、ステップ3007〜3010は、同じく図29における2912〜2915に対応しており、仮想コンテナを元に調整したテンプレートを保存するフローを示している。
【0140】
[仮想コンテナの生成]
図31は、本発明が適用できる、仮想コンテナの生成フローである。図32は、本発明が適用できる、仮想コンテナの生成を視覚的に表現した概念図である。この2つの図を使用して、仮想コンテナの作成方法について説明を行う。図31のステップ3101は、仮想コンテナを生成する対象となるコンテンツの数だけ繰り返す処理を示している。図32を例にすると、サブテンプレートの数が3つあり、揃えるべきコンテンツが3データあるため、3201、3202、3203と3回繰り返すことになる。ステップ3102では、各コンテンツのサイズに合わせたコンテナを新規に作成するステップを示している。ステップ3103では、コンテナを作成したコンテンツが最初のものであるか否かを判定する処理を示している。3103がYesのばあいは処理を続行し、Noの場合は、直前のコンテナと辺同士でリンクを新規作成するステップを示している。図32を例にすると、コンテナ3202からコンテナ3201に対して、3204のような底辺同士のリンクを新規に作成している。同じように、コンテナ3203から3202に対して、3204のような底辺同士のリンクを新規に作成している。この設定により、コンテナ同士のレイアウト調整の結果、対象のコンテナのサイズは同一となる。ステップ3105は、コンテナ同士でレイアウト調整を行う処理を示している。これは、図32における3201〜3203をレイアウト調整(ネゴシエーション)した結果のコンテナを、仮想コンテナとして一時領域3205に、3206として保存するステップを示している。具体的な計算例としては、コンテナ3201、コンテナ3202、コンテナ3203に設定された高さを100とした場合で説明を行う。コンテナ3201、3202、3203に対応したコンテンツContent A1の高さが170、コンテンツContent A2の高さが85、コンテンツContent A3の高さが105であった場合、各コンテナにストレスが生じる。コンテナ3201、コンテナ3202、コンテナ3203にかかるストレスはそれぞれ70、−15、5となり、本発明の文書処理装置におけるレイアウト手段の特徴により、ストレスは平準化され、26.6と計算される。よって、ネゴシエーションした結果の仮想コンテナの高さは126.6となり、一時領域3205に、3206として保存される。
【0141】
[テンプレートの確定]
図33は、本発明が適用できる、仮想コンテナ同士をレイアウトさせて確定テンプレートを作成する概念図を示している。一時領域3301上に配置された仮想コンテナ3302は、リンク3303にしたがって、レイアウト調整を行う。そのレイアウト調整の結果を、確定テンプレート3304として一時保存する。この例においては、確定テンプレートはレイアウト調整を行った結果の高さを持つ3つのコンテナ3305によって成り立っている。
【0142】
[レイアウト結果の例]
図34は、本発明が適用できる、仮想コンテナ同士をレイアウトさせた結果の確定テンプレートを使用し、再度フローエリア内にコンテンツをレイアウトした結果の例を示している。フローレイアウト3401に対し、サブテンプレートのコンテンツ3402、3403、3404を流し込んだ結果であり、ContentA同士、ContentB同士、ContentC同士がそれぞれ揃った表体裁となる。この結果、図27のように互いに関連を持たないサブテンプレートをフローレイアウトに対して複数流し込む場合においても、サブテンプレート内のコンテナ同士が影響しあい、表としての体裁を整えることが可能となる。
【0143】
[見開きページにおける表体裁の例]
図35は、本発明が適用できる、見開きページにおける表体裁のレイアウトのフローを示している。図36は、図35のフローを実行した際のレイアウト結果例である。ステップ3501は、フローエリアに配置されるサブテンプレートの数だけ繰り返す処理を示している。ステップ3502において、サブテンプレート内の各コンテナのデータを取得する。ステップ3503は、ステップ3502で取得したデータが同一の見開きページに属するか否かを判定する。ステップ3503がYesの場合は、前述したとおりの方法でステップ3504にて仮想コンテナを生成する。ステップ3503がNoの場合は、ステップ3504で保存されている仮想コンテナを用いて、ステップ3505にて前述したとおりの方法で確定テンプレートを生成する。ステップ3506においては、見開きページに対して、確定テンプレートを用いてレイアウト処理を行う。次の見開きページのために、ステップ3507において、ステップ3505で生成した確定テンプレートを破棄する。この処理により、図36のようなレイアウト結果を得ることが可能となる。この例においては、フローエリア3601と3602が見開きページを構成し、その見開きページ内での表体裁を整えたサブテンプレートを流し込んだ結果が3605である。また、次の見開きページを構成するフローレイアウト3603と3604においては、同じくその見開きページ内で表体裁を整えたサブテンプレートを流し込んだ結果3606を得ることができる。
【0144】
なお、本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
【0145】
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
【0146】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【0147】
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
【図面の簡単な説明】
【0148】
【図1】(A)は本発明のコンピュータシステム構成図を示している。(B)は本発明の図1Aにおけるコンピュータモジュールの概略図を示している。
【図2】本発明の、図1Aのコンピュータシステムにエンジンサーバーを追加した構成図を示している。
【図3】本発明のメニューバー、ツールバー、ワークエリア、フローティングパレットを含む典型的なアプリケーションのメインウインドウを示している。
【図4】本発明のコンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナの一面をスクリーン、ツール、アイコンで示している。
【図5】本発明の典型的なコンテナルールを示している。
【図6】本発明のリンクを作成するフローを示している。
【図7】リンク作成時のUI図例を示している。
【図8】本発明におけるレイアウト計算の全体フローを示している。
【図9】本発明におけるレイアウト計算の詳細フローを示している。
【図10】本発明における図9のフローに対応するUI例である。
【図11】本発明のレイアウト計算時におけるコンテナの集合について説明した図を示している。
【図12】本発明の典型的な可変リンクによるコンテナ配置を示している。
【図13】本発明の図12の状態までの操作遷移を表している。
【図14】本発明の典型的なリンクの設定ダイアログウィンドウを示している。
【図15】本発明の固定リンクによるレイアウト結果を示している。
【図16】本発明の可変リンクによるレイアウト結果を示している。
【図17】本発明のマルチレコードとそのレイアウト方法の概要を示した図を示している。
【図18】本発明におけるサブテンプレートを適用した全体フローを示している。
【図19】本発明における図18の説明UIを示している。
【図20】本発明におけるフローエリアの設定ダイアログのUI例を示している。
【図21】本発明におけるサブテンプレートのレイアウト例を示している。
【図22】本発明におけるサブテンプレートのレイアウトフローを示している。
【図23】本発明における複数ページにわたるフローエリアを設定するUI例を示している。
【図24】本発明におけるフローエリアの位置とサイズを変更するUI例を示している。
【図25】本発明における繰り返しのあるフローエリアとそれにデータを挿入したときの概念図を示している。
【図26】本発明における複数ページにわたるフローエリアにサブテンプレートをレイアウトするフローを示している。
【図27】本発明が適用されるサブテンプレートの前提となる例を示している。
【図28】本発明におけるフローエリアに対する設定UI例を示している。
【図29】本発明における表体裁のレイアウトを行う全体フローを示している。
【図30】本発明における表体裁のレイアウトを行う部分フローを示している。
【図31】本発明における仮想コンテナの生成フローを示している。
【図32】本発明における仮想コンテナの生成を視覚的に表現した概念図を示している。
【図33】本発明における仮想コンテナ同士をレイアウトさせて確定テンプレートを作成する概念図を示している。
【図34】本発明を適用したレイアウト結果例を示している。
【図35】本発明における見開きページにおける表体裁のレイアウトのフローを示している。
【図36】本発明における図35のフローを実行した際のレイアウト結果例を示している。
【符号の説明】
【0149】
101 汎用コンピュータモジュール
103 ユーザインターフェース
104 UIモデルアナライザ
105 レイアウトエンジン
119 データベース
121 レイアウトアプリケーションプログラム
124 コミュニケーションチャネル
132 キーボード
133 マウス
143 I/Oインタフェース
144 ビデオディスプレイ
301 アプリケーションウインドウ
303 ツールバー
313 カーソル/ポインタ
406 リンクツールボタン
407、408 コンテナ
409 アンカーアイコン
410 固定されていない辺
412 リンク
1703 サブテンプレート
1906 フローエリア
3301 確定テンプレート
3303 仮想コンテナ
【特許請求の範囲】
【請求項1】
パーソナルコンピュータの情報処理装置からなり、コンテナ領域の中にデータベースのデータから、テキストおよびイメージデータを挿入してドキュメントを作成する際に、プレビュー時にテキストおよびイメージのサイズにあわせて、コンテナのサイズを変更することが可能であり、さらにコンテナ間の関連を設定することにより、その間隔を保って変更することが可能である自動レイアウトシステムを備え、ページ上にテンプレートのフローを行う領域を設定する手段と、その領域にレイアウトされるサブテンプレートを複数設定する手段と、第1のサブテンプレート内のコンテナと、第2のサブテンプレート内のコンテナとを、自動で関連付け、テキストおよびイメージのサイズにあわせて、コンテナのサイズを変更し、一時サブテンプレート内に仮想コンテナとして保存する手段と、前記一時サブテンプレート内の仮想コンテナのサイズにあわせて、一時サブテンプレート内の仮想コンテナを変更し、保存する手段と、前記ページ上にテンプレートのフローを行う領域に対し、前記一時サブテンプレートを適用し、各サブテンプレート内のコンテナサイズが行または列方向の辺で揃うことを特徴とした文書処理装置。
【請求項2】
請求項1に記載の文書処理装置において、同一の見開きページごとに、一時サブテンプレートを作成することを特徴とした文書処理装置。
【請求項3】
請求項1又は請求項2に記載の文書処理装置を制御するための文書処理プログラムであって、コンピュータによりその制御が可能なもので、文書処理ステップの文書処理モジュールが前記コンピュータにより読み出し可能なもの。
【請求項4】
請求項3に記載の文書処理プログラムにおいて、同一の見開きページごとに、一時サブテンプレートを作成することを特徴とした文書処理プログラム。
【請求項5】
請求項3又は請求項4に記載の文書処理プログラムを、コンピュータにより読み出し可能な形で記憶した記憶媒体。
【請求項1】
パーソナルコンピュータの情報処理装置からなり、コンテナ領域の中にデータベースのデータから、テキストおよびイメージデータを挿入してドキュメントを作成する際に、プレビュー時にテキストおよびイメージのサイズにあわせて、コンテナのサイズを変更することが可能であり、さらにコンテナ間の関連を設定することにより、その間隔を保って変更することが可能である自動レイアウトシステムを備え、ページ上にテンプレートのフローを行う領域を設定する手段と、その領域にレイアウトされるサブテンプレートを複数設定する手段と、第1のサブテンプレート内のコンテナと、第2のサブテンプレート内のコンテナとを、自動で関連付け、テキストおよびイメージのサイズにあわせて、コンテナのサイズを変更し、一時サブテンプレート内に仮想コンテナとして保存する手段と、前記一時サブテンプレート内の仮想コンテナのサイズにあわせて、一時サブテンプレート内の仮想コンテナを変更し、保存する手段と、前記ページ上にテンプレートのフローを行う領域に対し、前記一時サブテンプレートを適用し、各サブテンプレート内のコンテナサイズが行または列方向の辺で揃うことを特徴とした文書処理装置。
【請求項2】
請求項1に記載の文書処理装置において、同一の見開きページごとに、一時サブテンプレートを作成することを特徴とした文書処理装置。
【請求項3】
請求項1又は請求項2に記載の文書処理装置を制御するための文書処理プログラムであって、コンピュータによりその制御が可能なもので、文書処理ステップの文書処理モジュールが前記コンピュータにより読み出し可能なもの。
【請求項4】
請求項3に記載の文書処理プログラムにおいて、同一の見開きページごとに、一時サブテンプレートを作成することを特徴とした文書処理プログラム。
【請求項5】
請求項3又は請求項4に記載の文書処理プログラムを、コンピュータにより読み出し可能な形で記憶した記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【公開番号】特開2009−134578(P2009−134578A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2007−310952(P2007−310952)
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]