情報処理装置、情報処理方法、ならびにプログラム
【課題】 流し込まれるデータによってコンテナのレイアウトを動的に変更する装置において、レイアウトが変更される前後の変化を明示することにより、レイアウトがどのように変化したかを理解できるようにし、ユーザによるレイアウト修正の利便性を向上させる。
【解決手段】 流し込まれるコンテンツデータによってコンテナのレイアウトが変更された場合、レイアウトが変更される前の基準サイズのコンテナを明示することにより、レイアウトがどのように変化したかをユーザが理解できるようにし、レイアウト修正時のユーザの利便性を向上させることを可能とする。
【解決手段】 流し込まれるコンテンツデータによってコンテナのレイアウトが変更された場合、レイアウトが変更される前の基準サイズのコンテナを明示することにより、レイアウトがどのように変化したかをユーザが理解できるようにし、レイアウト修正時のユーザの利便性を向上させることを可能とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドキュメント上の複数のコンテナにコンテンツデータを流し込み、該コンテナのレイアウトを該コンテンツデータに応じて所定の制御条件のもとに制御することにより、ドキュメントの生成を行う情報処理装置における、該コンテナのレイアウト表示に関するものである。
【背景技術】
【0002】
近年、商品の多品種化で商品寿命が短くなっていること、あるいはインターネット利用の普及による消費者のカスタマイズサービス指向が高まってきていることなどに起因してCRM(Customer Relationship Management)、One−to−Oneマーケティングの必要性が注目されている。これらの手法は、顧客満足度を高め、顧客の開拓や囲い込みを目指すという目的に対して非常に効果的なものである。
【0003】
One−to−Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析したうえで、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。特に最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及とに伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトすることが求められるようになった。
【0004】
バリアブルプリントシステムではそのようなカスタマイズ文書を作成するにあたり、ドキュメント上にコンテナをレイアウトする。コンテナとはオブジェクトの1つでありデータベース化されたコンテンツ(描画内容)を描画するための矩形の部分領域をいう(フィールド領域と呼ばれることもある)。かかるバリアブルプリントシステムによれば、ドキュメント上にこのようなコンテナをレイアウトした後、データベースとコンテナとを関連付ける(データベースの各コンテンツと各コンテナとを関連付ける)ことにより、カスタマイズ文書(ドキュメント)を作成することが可能となる。
【0005】
しかし、バリアブルプリントシステムの場合、テキストおよびイメージのコンテナのサイズが固定であるため、データベース内の各コンテンツを構成するデータがコンテナに流し込まれたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいとコンテナに隙間が空いてしまうという問題があった。
【0006】
かかる問題を解決するために、コンテンツによってコンテナのレイアウトを動的に変更するシステムが考えられ、流し込まれるテキストおよびイメージのコンテンツデータ量に応じてコンテナサイズを決定することで上述したオーバーフローや隙間が生じるといった問題点を解決することができる。
【0007】
具体的には、コンテナのサイズを可変とし、流し込まれるコンテンツデータのデータ量に応じてコンテナのサイズを大きくしてレイアウトしたり、またテキストデータの場合にあっては、コンテナ内のフォントのサイズを可変とし、流し込まれるデータのデータ量に応じてフォントのサイズを縮小してレイアウトしたりすることにより、コンテナ内に入りきらないデータ量のテキストが流し込まれた場合であっても、コンテナ内に全てのテキストデータを表示させることを可能にしている。
【0008】
上述した技術の一部を実現しているレイアウトシステムとして下記特許文献1が挙げられる。下記特許文献1においては所定のコンテナ内に文字を入力していき、あらかじめ設定したサイズのコンテナ内に収まりきらない量の文字が入力された場合は、文字の入力に応じてコンテナサイズを拡大していき、その拡大に応じて隣接するコンテナのサイズが縮小されていくといった技術が開示されている。
【特許文献1】特開平7−129658号公報(0049、図8)
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上記レイアウトシステムの場合、コンテナ内に入力されるテキストデータのデータ量の増加に応じて該コンテナは拡大され、隣接するコンテナのサイズは拡大に応じて縮小されていくが、上記レイアウトシステムではテキストが入力されるコンテナは入力が続く限り拡大処理が続けられ、その拡大に応じて隣接するコンテナは縮小を続けるためバランスの取れたレイアウトを実現することはできない。さらに、上記レイアウトシステムではバリアブルプリントを想定しておらず、各コンテナにコンテンツを流し込んでいくということは考えられていない。
【0010】
また、バリアブルデータプリントを考慮したレイアウト方法として、固定のコンテナを作成し、そこにコンテンツデータを流し込んでいくものがある。しかし、固定サイズのコンテナを用いる場合、コンテナサイズより大きいサイズのコンテンツデータが流し込まれると、オーバーフローが生じてしまったり、フォントサイズを縮小して無理に流し込もうとするとフォントサイズが極端に小さくなってしまうといった問題が生じてしまう。
そこで、上記問題を解決するためのレイアウト方法として、関連付けられた複数の可変コンテナ間のサイズバランスを考慮したレイアウト方法が考えられる。これにより、各コンテナに流し込まれるコンテンツデータのサイズに応じて各コンテナのサイズが変更され、さらに関連付けられているコンテナ間で各コンテナサイズの変化量を調整したレイアウト処理をすることでコンテナのサイズバランスが考慮されたレイアウト結果を得ることができる。
【0011】
しかし、各コンテナサイズの変化量を調整する上記レイアウト方法では、各コンテナのレイアウトはコンテンツデータの流し込みに応じて自動的に決定されるため、レイアウト変更の結果は、レイアウト処理終了後でなければ確認することができない。
【0012】
そのためユーザは、レイアウト結果が表示された時点で初めて意図しないレイアウトが作成されていることを認識することになり、そこから修正を加える場合は、予め設定したコンテナ設定画面で各コンテナの関連性やサイズを確認しながら修正をしなければならず、さらに初期のコンテナ設定画面からどの程度の変更が生じたのかを確認するためには、レイアウト変更後のプレビュー画面と初期設定に用いたコンテナ設定画面とを交互に表示させて違いを見比べる必要があり、レイアウト修正に多大な手間がかかるという問題が生じてしまう。
【0013】
本発明は、上記課題に鑑みてなされたものであり、流し込まれるコンテンツデータによってコンテナのレイアウトを動的に変更する情報処理装置において、レイアウトが変更される前の基準サイズのコンテナを明示することにより、レイアウトがどのように変化したかをユーザが理解できるようにし、レイアウト修正時のユーザの利便性を向上させることを目的とする。
【0014】
また、レイアウト変更の前後を表示させることで意図しないレイアウトが得られた原因を把握させることを更なる目的とする。
【課題を解決するための手段】
【0015】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理装置であって、前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御手段と、前記制御手段により制御された前記データ領域のレイアウトを表示する表示手段と、を備え、前記表示手段は、更に、所定の指示に応じて前記制御手段により制御される前の前記基準サイズのデータ領域を表示することを特徴とする。
【発明の効果】
【0016】
本発明によれば、流し込まれるコンテンツデータによってコンテナのレイアウトを動的に変更する情報処理装置において、レイアウトが変更される前の基準サイズを表示することによりユーザはレイアウト前後の変化を認識できるようになり、レイアウトがどのように変化したかをユーザが理解できるようになり、レイアウト修正時のユーザの利便性が向上する。
【発明を実施するための最良の形態】
【0017】
はじめに本実施形態の概要について説明する。一般に自動レイアウトシステムにおけるドキュメントの作成は、レイアウト編集処理と自動レイアウト処理とに区分けできる。前者はコンテナをドキュメント上に配置するとともに、データを流し込んだ場合にどのようにコンテナのレイアウトを制御するか、その制御条件を設定するための処理であり、後者はコンテナにデータを流し込み、設定された制御条件に従って、当該流し込まれたデータに応じたレイアウトに制御し、ドキュメントを生成するための処理である。
【0018】
このうち、当該自動レイアウトシステムを構成する以下の各実施形態にかかるホストコンピュータ(情報処理装置)では、自動レイアウト処理が実行され、流し込まれたデータに応じてレイアウトが制御されたコンテナを表示するプレビュー表示画面において、データを流し込む前後のレイアウトの変化を明示するようにした。
【0019】
これにより、データの流し込みによってレイアウトがどのように変化したかをユーザが容易に理解できるようになり、ユーザが意図しないレイアウトになった場合であっても、ユーザはレイアウト編集処理においてコンテナの配置や制御条件の設定等の修正を簡単に行えるようになった。以下、必要に応じて添付図面を参照しながら本発明の各実施形態を詳細に説明する。
【0020】
[第1の実施形態]
1.自動レイアウトシステムの構成例
まず、図1Aおよび図1Bを参照して、本発明の一実施形態にかかるホストコンピュータ(情報処理装置)を備える自動レイアウトシステムの構成を説明する。図1Aは自動レイアウトシステム100の構成例を示すブロック図である。また、図1Bは図1Aに示されたホストコンピュータ(情報処理装置)101の構成を更に詳細に示すブロック図である。
【0021】
本実施形態で説明されるレイアウト編集処理ならびに自動レイアウト処理は、ホストコンピュータ101(汎用コンピュータモジュールで構成される)によって実行される。自動レイアウトシステム100上で実施可能となるレイアウト編集アプリケーションプログラム121はホストコンピュータ101において、そのソフトウェアの全体、あるいは一部分が実行され、これにより、上記レイアウト編集処理ならびに自動レイアウト処理が実現される。
【0022】
レイアウト編集アプリケーションプログラム121はコンピュータの可読媒体に格納され、そのコンピュータの可読媒体からホストコンピュータ101のメモリ136にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータの可読媒体はコンピュータプログラム製品である。コンピュータにおいてそのコンピュータプログラム製品を使用することにより、ドキュメントの作成や作成されたドキュメントの印刷に好適な装置が提供されることになる。
【0023】
図1Bに示されるように、ホストコンピュータ101には、入出力インターフェース143を介してキーボード132や、マウス133のようなポインティングデバイス等が入力装置として接続されている。また、出力装置としてのディスプレイ装置144がビデオインターフェース137を介して接続されている。更に、ローカルプリンタ145等を入出力インターフェース138を介して接続することも可能である。また、入出力インタフェース138はコンピュータモジュール101をネットワーク107へ接続する機能も有する。これにより、ネットワークを介して他のコンピュータ装置(データベースサーバ117、ファイルサーバ115、プリントサーバ119等)にホストコンピュータ101を接続することができる。ネットワーク107の典型的な例としては、ローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)が挙げられる。
【0024】
また、図1Bに示すように、ホストコンピュータ101は少なくとも1つのプロセッサユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136を含んでいる。格納デバイス139は、プログラム等を格納するコンピュータ可読媒体との間でデータのやり取りが可能なハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含む。なお、図1Bには示されていないが、磁気テープドライブ等も格納デバイス139として使用可能である。CD−ROMドライブ142は不揮発性のデータソースとして提供される(もちろん、CD−ROMによってコンピュータプログラムを提供してもよい)。
【0025】
ホストコンピュータ101は、GNU/LINUXやマイクロソフトウインドウズ(登録商標)のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。すなわち、上述した135〜143で示される各構成は、バス134を介して通信可能に接続されており、ホストコンピュータ101にインストールされたオペレーティングシステムにより利用される。
【0026】
なお、図1Bに示したホストコンピュータ101の例としては、IBM互換PCやSUNのSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
【0027】
本実施形態では、レイアウト編集アプリケーションプログラム121はハードディスクドライブ140に常駐し、プロセッサ135により実行や読み込みがコントロールされるものとする。なお、レイアウト編集アプリケーションプログラム121の媒介記憶装置とネットワーク107からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。
【0028】
一つの例では、レイアウト編集アプリケーション121のエンコードされたプログラムは、CD−ROMやフロッピー(登録商標)ディスク上に格納され、対応するドライブ142や141を通じて読み込まれ、ハードディスクドライブ140にインストールされる。あるいは、別の例として、レイアウト編集アプリケーションプログラム121はネットワーク107からホストコンピュータ101内に読み込まれて、ハードディスクドライB140にインストールされてもよい。
【0029】
さらにソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスク、または、ホストコンピュータ101とその他のデバイス間における赤外線等の無線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ101内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
【0030】
図1Aにおいて、レイアウト編集アプリケーション121はコンピュータに自動レイアウト処理ならびにレイアウト編集処理を行わせるものであり、2つのソフトウェアコンポーネント、すなわちレイアウトエンジン105とユーザインターフェース103とを含んでいる。
【0031】
レイアウトエンジン105は、矩形の部分領域であるコンテナに与えられたサイズや位置の設定にしたがって、データベース119に格納されているデータからドキュメント単位でデータを読み込み、読み込んだデータとコンテナの設定とから、読み込んだデータが流し込まれるコンテナの大きさや位置等を計算する、自動レイアウト処理を行うソフトウェアコンポーネントである。また、本実施形態におけるレイアウトエンジン105は、更に、コンテナに割り当てられたデータを描画し、ドキュメントのイメージを生成する処理も行う。ただし、本発明はこれに限るものではなく、レイアウトエンジン105は各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがドキュメントのイメージ描画処理を行い、印刷データを生成するようにしてもよい。
【0032】
一方、ユーザインタフェース103は、ユーザによるレイアウト編集処理を可能とするもので、具体的には、ユーザはユーザインタフェース103を介してコンテナの作成・移動を行い、ドキュメントテンプレートを作成する。また、ドキュメントテンプレート内の各コンテナとデータとを関連付けるメカニズムを提供する。さらに、ドキュメントテンプレート内の各コンテナに対する各種設定(リンク設定も含む)を可能にする。ユーザインタフェース103とレイアウトエンジン105はコミュニケーションチャネル123を介して通信する。
【0033】
2.他のシステム構成の例
図2は、図1Aと類似のブロック図であるが、エンジンサーバ227が追加されている点が異なる。エンジンサーバ227に格納されているレイアウトエンジン225は、レイアウトエンジン105の分離バージョンである。エンジンサーバ227には一般的なコンピュータが用いられる。レイアウトエンジン225は、印刷やその他の目的に応じてドキュメントを生成するために、ファイルサーバ115に保存されたドキュメントテンプレートとデータベース119に保存されたデータとを結合する。そのようなオペレーションはユーザインタフェース103を介して要求される。
【0034】
3.レイアウト編集アプリケーション(レイアウト編集処理)の説明
以下、上記レイアウト編集アプリケーション121のうち、ユーザインターフェース103を介して実現されるレイアウト編集処理の詳細について説明する。
【0035】
3−1 メインウインドウ
ユーザインターフェース103は、操作時に図3に示されるようなアプリケーションウインドウ301によって形成されたユーザインターフェース画面をビデオディスプレイ144に表示させる。このウインドウ301は、メニューバー302、ツールバー303、ワークエリア306とオプションのパレット311を有する。メニューバー302とツールバー303を非表示にさせたり、スクリーン上の色々な場所に移動させることが可能である。また、ワークエリア306はマウス133の操作によってその場所を移動させることが可能である。また、パレット311はオプションであり、カーソル/ポインタデバイス313はマウス133が指し示す位置を表す。
【0036】
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
【0037】
ツールバー303やツールボタン305は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能なウィジェットである。
【0038】
ルーラー308はオプションであり、ワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナの位置を示すために使われる。
【0039】
パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはコンテナの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されるようにすることも、あるいはアプリケーションウインドウ301の外側にその一部或いは全体が表示されるようにすることもできる。
【0040】
ツールバー303には図4に示されるような、ユーザ選択可能な『ツールボタン』が配置されている。
【0041】
(1)選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック/ロック解除のために使われる。コンテナの選択は、コンテナの周りに選択ボックスをドラッグすることによりなされる。また、CTRLキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
【0042】
(2)テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
【0043】
(3)イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
【0044】
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。
【0045】
3−2 ドキュメントテンプレート
図3において、ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。これにより、ユーザは下準備で印刷されるドキュメントの概観をデザインすることが可能となる。
【0046】
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309とを備える。ドキュメントテンプレート309はページが複数あることを示すことができる。
【0047】
与えられたドキュメントテンプレートのページサイズは、ユーザによって指定される。それぞれのドキュメントでの実際のページ数は、流し込まれるデータのデータ量によって変化し、1ページ内にフィットできなかった時、追加のページは自動的に作成される。
【0048】
それぞれのページ内の境界線310は、ページ上の印刷可能なコンテナの最大幅を示す、任意のページマージンである。
【0049】
また、図4は1ページのドキュメントテンプレート309上に表示することが可能なコンテナの例である、それらは、複数のコンテナ407、408と、任意に適用するアンカーアイコン409とリンク412、そしてスライダー413を持つ。
【0050】
3−3 コンテナ
ここで、コンテナについて説明する。コンテナとは、ドキュメントテンプレート内にデータファイルから固定あるいは可変のコンテンツデータ(テキストまたはイメージ)が流し込まれ、描画される矩形の部分領域(データ領域)であり、図4に示されるように他のコンテナと共にドキュメントテンプレート309内に配置される。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナはマウス133の操作により移動、サイズ調整、再作成される。下記は本実施形態におけるコンテナの定義である。
【0051】
(1)コンテナ(データ領域)は固定あるいは可変のコンテンツと関連づけられる。可変コンテンツは、データソースから取得したデータがドキュメント毎、つまりレコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。ただし、本実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは意図していない。同様に、固定コンテンツはコンテナ(データ領域)を使って生成される全てのドキュメントで、同じようにレイアウトされる。しかしながら、可変コンテンツとリンクが設定されている場合には、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメント毎に異なった位置にレイアウトされることとなる。
【0052】
(2)コンテナ(データ領域)は、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナ(データ領域)と同じコンテナ属性であるという設定を行うことも可能である。
【0053】
(3)コンテナ(データ領域)はドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どのような固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツはデータソースからの特定のデータの表示を提供する。コンテナ(データ領域)のこの表現は例えば印刷されるか、ビデオディスプレイ144のスクリーン上に表示されるか、あるいはその両方が可能である。
【0054】
(4)コンテナ(データ領域)は、図4に示されるように視覚的な手がかりとしてのユーザインターフェースを有している。例えばコンテナ(データ領域)の編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース(GUI)を持つ。GUIの各要素はビデオディスプレイ144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインターフェース103は、背景色やフォントのようなコンテナ(データ領域)の装飾機能のいくつかを表示し、さらにコンテナ(データ領域)の設定の編集や表示を可能にするための機能を有している。
【0055】
3−4 コンテナの制約
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御条件に関する制約がある。これらの制約(固定/可変コンテンツをコンテナと結びつけることを含む)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントをコントロールするための主要な方法である。制約の一つの例は『このコンテナのコンテンツの高さは最大4インチです』である。また、別の制約の例は『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
【0056】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術においてよく知られている。コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータ印刷に特化した方法における表示・編集に焦点を合わせる。
【0057】
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ(描画サイズ)や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定(指定)や表示のために所定のユーザインターフェースが利用される。
【0058】
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。したがって、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
【0059】
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
【0060】
(1)コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
【0061】
(2)コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
【0062】
(3)距離(リンクの長さ)が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
【0063】
(4)コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。ただし、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となるが、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
【0064】
(5)コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。ただし、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
【0065】
(6)コンテナの垂直軸はコンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均(すなわち左右の中央位置)は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっとも近いものまで、垂直軸は全てのドキュメントで同じ水平位置となる。なお、コンテナの高さと垂直位置はこの制約によって影響されない。
【0066】
(7)同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。ただし、コンテナの幅と水平位置はこの制約によって影響されることはない。
【0067】
(8)水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。ただし、コンテナの幅・高さはこの制約によって影響されない。
【0068】
(9)コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【0069】
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
【0070】
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータ(コンテンツデータ)のサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレート309の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
【0071】
3−5 新規コンテナの作成方法
図4で示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツールボタン404あるいはイメージコンテナツールボタン405をマウス133でクリックし、ドキュメントテンプレート309上に四角形をドラッグすることによって、当該ドキュメントテンプレート309上に作成される。なお、ドキュメント上に作成された新規コンテナのサイズをコンテナの基準サイズとする。
【0072】
あるいは、コンテナは、適切なツールボタン404、405をアクティブにした後に、ドキュメントテンプレート309上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス133のクリック操作に応じてデフォルトサイズのコンテナがドキュメントテンプレート309上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。なお、コンテナのサイズは自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置されるようにしてもよく、種々の方法が考えられる。ここで生成されたコンテナをマウス133等の入力装置により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログUIでは、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ(幅、高さ)や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン(基準サイズと基準位置)を設定し、更に、最大コンテナサイズ(幅、高さ)と最小コンテナサイズ(幅、高さ)を設定することが可能となっている。なお、コンテナに対して可変サイズを設定することにより各コンテナに流し込まれるコンテンツデータのサイズに応じて、コンテナサイズを予め設定された基準サイズから変更することが可能となる。この可変サイズのコンテナを用いることによってオーバーフローや隙間が生じるといった問題点を解消することができる。
【0073】
3−6 コンテナの表示方法
図5の(A)から(D)はコンテナの辺に関する表示ルールを例示している。
【0074】
レイアウト編集アプリケーションプログラム121は、コンテナの辺の状態を表現するために、実線(アイテム503)あるいは点線(504)を用いて辺を表すとともに、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために領域の辺上あるいは近傍に描画されたコントロール点、502)、スライダー(辺の両側に描画された短い平行線、図4の413)、拡縮アイコン(505)、ならびに色分けを用いる。
【0075】
図5(A)〜(D)に示されるコンテナ表示方法のルールは以下の通りである。
(1)それぞれの辺を固定するために、実線で描画する。
(2)幅が固定の場合は、左と右の辺を実線で描画する。
(3)高さが固定の場合は、上と下の辺を実線で描画する。
(4)軸は描画しない。
(5)(1)〜(3)によって描画されていないそれぞれの辺の近くには拡縮アイコンが描画され、それらの辺を点線で描画する。
(6)垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
(7)それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
(8)垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
【0076】
ルール(1)、(2)、(3)で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール(5)のように、可変の辺は、点線で描画される。ルール(6)、(7)、(8)で定義された固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【0077】
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
【0078】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【0079】
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
(1)図4の410の辺のように、点線はコンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
(2)実線は、固定されている(辺414)、あるいはコンテナの幅・高さが固定されている(コンテナ408では4辺が実線であり、両方が固定されている)ために制限された辺であることを意味する。
(3)アンカーは辺および軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図4のアイコン409は、辺414の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
(4)スライダーは関係付けられた辺の長さが固定されているが、平行移動する可能性があることを意味する。例えば、図4でスライダー413はコンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。例えば、コンテナ408と関連付けられている(リンク設定されている)コンテナ407に流し込まれるデータのイメージサイズもしくはテキスト量が少ない場合は、コンテナ407のサイズが小さくなるため、コンテナ408は、左方向にスライド(平行移動)してレイアウトされて表示されることになる。また、コンテナ407のサイズが大きくなる場合は、逆にコンテナ408は右方向にスライドしてレイアウトされることになる。
【0080】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【0081】
なお、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
【0082】
図5の(A)で、コンテナ501は、幅・高さの両方が固定されていない(可変である)。固定された辺503は実線で表現され、可変の辺504は点線で表現されている。拡縮アイコン505は、隣接する辺504が可変であることを示す。他の形態のインジケータを代わりにあるいは追加的に用いてもよい。
【0083】
図5の(B)において、コンテナ501は幅・高さ両方が可変である。アンカーアイコン506が、交差している両方の辺503の角の位置が固定されていることを明示的に表すべく追加されている。
【0084】
図5の(C)において、コンテナ501は、コンテナの幅及び高さの両方が可変であり、任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態を示している。すなわち、コンテナ501はアンカーアイコン507を中心に拡大あるいは縮小が可能である。ここでの拡大/縮小は、アンカーアイコン507の位置が常にコンテナ501の中心点となるようにレイアウト調整される。
【0085】
図5の(D)において、コンテナ501は、上辺508が固定されているが、幅・高さの両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている。そしてコンテナ501の左辺・右辺(502)は、アンカーアイコン509を通って垂直な中心軸(垂直軸)の周りを、拡大・縮小する。
【0086】
3−7 リンク
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図4の412で示されているものがリンクであり、この図ではコンテナ407と408とを関連づけている。
【0087】
3−8 リンクの設定方法
次に、コンテナ同士を関連付けるためのリンクの設定方法について説明する。図6はリンクの設定方法を示したフローチャートである。また図7(A)乃至(C)はリンク設定の際のUIの一例を示す図である。図6、7を用いてコンテナにリンクを設定する方法について説明する。
【0088】
まず、リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)を作成する(ステップS601)。図7(A)は、作成された2つのコンテナ(701、702)を示す。なお、703、704はアンカーを、705はマウスポインタをそれぞれ示している。
【0089】
ステップS602では、リンクツールボタン406を選択した状態にし、ステップS603では、リンクを設定する片方のコンテナ(ここでは、コンテナ701)をマウスポインタ705でクリックして選択する。
【0090】
ステップS604では、ステップS603にて選択されたコンテナ701との間でリンク設定しようとするコンテナ702を選択する。具体的にはマウスポインタ705を移動して、コンテナ702をクリックする。図7(B)は、コンテナ701をクリックした後、コンテナ702をクリックするまでの間の状態を示す図である。同図に示すように、ステップS603でクリックした位置と、現在のマウスポインタ705の位置との間を結んだ線706が表示される。
【0091】
ステップS604においてコンテナ702が選択されると、ステップS605ではコンテナ701との間にリンクが表示される。図7(C)は、コンテナ702がクリックされることにより、リンク707が表示された状態を示している。
【0092】
リンクが設定されたことにより、ステップS606ではコンテナのUIも自動的に変更される(708は、自動的に点線に変更された辺であり、前述した通り可変の辺を示している)。なお、図7(C)のようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したしるしである。図7(C)の例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例であり、右コンテナが、図4の413で示したスライダーを持つ設定に変化してもかまわない。
【0093】
3−9 長さが可変のリンクの設定
図12では可変リンクの設定のためのUIを表している。図12の状態では、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナはアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206を含んで構成されている。コンテナ1203と1204の間には可変サイズのリンク1209があり、コンテナ1203とコンテナ1204を結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケータ1210、インジケータ1211が表示され、それぞれ辺1207と辺1208が可変であることを示している。
【0094】
また、図14は、リンク設定手段におけるUI画面であり、リンク1409の情報をセットするためのダイアログウインドウ1401の例である。このダイアログは、タイトルバー1402、ツールボタン1403、ダイアログウインドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウインドウではリンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行える。リンクタイプが可変の場合にはリンクの長さの最小値(Min.Distance1410)、最大値(Max.Distance1412)、ならびに基準値(Distance1411)が設定できる。この設定は2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで各コンテナ間の距離の基準値1411は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
【0095】
図15は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述したとおりに従って行われる。例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのイメージデータが流し込まれた場合を考える。この場合、それぞれのコンテナは流し込まれるコンテンツデータの大きさを最適とみなし、コンテナ1203は流し込まれたイメージデータのイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ、同様にコンテナ1204は流し込まれたイメージデータのイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へサイズを変更しようとする。しかしコンテナ1203とコンテナ1204はアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213の移動ができず、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ間には固定サイズのリンク1503が設定されており、レイアウト計算時にその長さ維持されるため、コンテナ1203とコンテナ1204のサイズが変更されることになる。
【0096】
その結果、コンテナ1203とコンテナ1204はデータの縦横比に合わせた最適なサイズを確保することが出来ず、最終的に図15に示すように、最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。すなわちリンク1503のサイズが固定であるためコンテナ1203とコンテナ1204は最適サイズを達成できない(図15において、各コンテナ内の細点線で示した範囲がデータの持つ縦横比である)。
【0097】
一方、図16は図15と同様の状態でリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図示の通り可変サイズのリンクが設定されている。したがって、コンテナ1203とコンテナ1204のサイズが変更される際には、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズを図15の例より大きくすることができる。この結果、流し込まれるデータのデータサイズに合わせた最適なサイズを達成できる、あるいはより流し込まれるデータのデータサイズ(最適サイズ)に近いコンテナの枠を設定することが出来る。図16はこの結果を示しており、可変リンク1209はレイアウト計算の結果、可変リンク1603に示されるようなサイズ状態となる。なお、この場合コンテナ1203とコンテナ1204はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。
【0098】
4.レイアウト編集アプリケーション(自動レイアウト処理)の説明
以下、上記レイアウト編集アプリケーション121において実行される自動レイアウト処理の詳細について説明する。
【0099】
4−1 レイアウト計算方法(全体フロー)
上述のように本実施形態のレイアウト編集アプリケーション121は、ユーザインターフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行うレイアウト編集処理と、レイアウトエンジン105により、作成したレイアウトにデータソースの各データを流し込む自動レイアウト処理とに分けられる。また、自動レイアウト処理は、さらに、実際のデータが流し込まれ、前述した優先順位に従って表示上のレイアウト計算を行うプレビューモードと、レイアウト計算した結果を実際に印刷する印刷モードとを備える。なお、プレビューモードと印刷モードにおけるレイアウト計算は同じである。
【0100】
図8はレイアウトエンジン105におけるレイアウト計算のフローを示している。まず、プレビューモードが選択される(ステップS801)。プレビューモードになったら、レイアウト編集アプリケーション121は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各データを各コンテナに流し込むよう決定する(ステップS802)。各コンテナへのデータの流し込みが決定されると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするための計算を行い、必要に応じてレイアウト調整を行う(ステップS803)。ステップS803におけるレイアウト計算の詳細については後述する。そして、レイアウト編集アプリケーション121は、ステップS803で計算されたレイアウトを表示する(ステップS804)。レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判断する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(ステップS807)。他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
【0101】
なお、プレビューモードでなく印刷モードにおいては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。ステップS803でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷すべく指定された全レコード)について印刷データの出力が終了した時点で本処理を終了することになる。
【0102】
4−2 レイアウト計算方法(詳細)
次に、上記ステップS803によるレイアウト計算の詳細について説明する。図9は本実施形態によるレイアウトの優先順位を設定しない場合のレイアウト計算の方法を示したフローチャートである。また、図11はそのときのUI表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであり、1レコードの印刷/プレビューモード時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
【0103】
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を求める(ステップS901)。レイアウト計算は、リンクが設定されたコンテナを一つの集合として計算を行う。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナにリンクが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクが設定されている。したがって、コンテナA、Bが集合1、コンテナC、Dが集合2となる。すなわち、リンクによって接続されたコンテナ群を一つの集合として特定する。前述したように、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
【0104】
次に、レイアウト編集アプリケーション121は、ステップS901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(ステップS902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナ(A,B)について、流し込まれるデータのイメージサイズもしくはテキスト量から各コンテナが何も制約を受けない場合の大きさを計算する。具体的には、レイアウト編集アプリケーション121は、コンテナAがイメージデータ用コンテナであるか、テキストデータ用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。
【0105】
次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込み、コンテナAがイメージデータ用コンテナである場合は、そのイメージデータのサイズ(幅、高さのピクセル数、および解像度)がコンテナAの制約を受けない場合の大きさになる。また、コンテナAがテキストデータ用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナAに流し込まれるべきデータ量が計算できる。ここで、テキストデータ用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。図11の例では、コンテナAは、左上および左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判断する。
【0106】
すべて流し込めると判断された場合は、コンテナAは、基本パターンで設定されているサイズ(幅、高さ)に変更はない。また、すべて流し込めないと判断された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
【0107】
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップS903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに流し込まれるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウト編集アプリケーション121は、ステップS902で算出したコンテナの集合のサイズ、つまりコンテナAとコンテナBとリンク1106(ここでは固定リンク)の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図11の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を求める。コンテナAやコンテナBの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
【0108】
レイアウト編集アプリケーション121は、レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(ステップS904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、ステップS902〜S904の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション121は、ページ全体のレイアウトを計算する(ステップS905)。
【0109】
図10の(A)〜(C)は優先順位の設定なしでのレイアウト時のUI例である。
【0110】
図10の(A)は、あるレコードのデータが流し込まれレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを流し込む。図10の(B)は(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに流し込まれるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図10の(C)はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際流し込まれるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図10の(C)で示されるように、(B)で示した流し込まれるコンテンツのサイズ(1009)と自動レイアウト処理後のコンテンツのサイズ(1010)は、双方において同等な差異がある。
【0111】
5.プレビュー表示画面の説明
次に本実施形態にかかるホストコンピュータ101の備えるレイアウト編集アプリケーション121の特徴的な機能である、プレビュー表示画面について従来と比較しながら説明する。
【0112】
5−1 プレビュー表示画面
図17は従来のプレビュー表示画面の一例を示す図である。ドキュメントテンプレートの表示・編集画面において、プレビューを選択することで、各コンテナにコンテンツデータが流し込まれ、レイアウトが計算されてプレビュー表示される。図17の例ではコンテナ1701〜1704が設定されており、プレビュー時には、コンテナ1701とコンテナ1702にはイメージデータが、コンテナ1703とコンテナ1704にはテキストデータが流し込まれ、それぞれレイアウトが変化し、コンテナ1705〜1708が表示される。
【0113】
このとき、プレビュー画面で表示されたレイアウト結果が、ユーザの意図しないレイアウト結果になっていたとする。この場合、ユーザはプレビュー画面からドキュメントテンプレートの表示・編集に戻り、コンテナの配置や制御条件の設定等を修正する必要があるが、プレビュー表示画面を見ただけでは、設定したコンテナのレイアウトがどのように変化したのかが分からず、修正が困難である。そこで、本実施形態では、図18に示すような特徴的なプレビュー表示が行われる。
【0114】
図18は本実施形態にかかるホストコンピュータ101におけるプレビュー表示画面の一例を示す図である。同図のように、通常のプレビュー表示に加えて、以下の表示がされる。
【0115】
(1)コンテナ設定画面で設定したとき(プレビュー前)のレイアウトで描画されたコンテナ1801。なお、コンテナ1801のサイズはコンテナ設定時の基準サイズである。
【0116】
(2)元のコンテナのサイズとどれだけ変化したのかを示すもの(矢印1802等)
(3)フォントサイズが元のフォントサイズからどれだけ変化したのかを示すもの(1803)
(4)コンテナ間のリンクが設定されていることを示すもの(バー1804等)
これらはプレビュー表示の上に描画される。ただし、プレビュー画面と区別するため、特定の色や線で描画される。たとえばコンテナの基準サイズに該当する枠線は赤色の点線などで描画される。これにより、ユーザはプレビュー表示中でも元のレイアウトがどのように変化したのかが、直感的に理解することができるようになる。なお、上記のような通常のプレビュー表示に加えて、さらに1801〜1804が表示されたプレビューを、以下、「レイアウトチェック用プレビュー」と呼ぶ。
【0117】
5−2 レイアウトチェック用プレビュー表示処理の流れ
次に図19のフローチャートを用いてレイアウトチェック用プレビュー表示処理の流れを説明する。なお、これらの処理はホストコンピュータ内のプロセッサ135によって処理されることとなる。ステップ1901において、レイアウト編集アプリケーションプログラム121は、通常のプレビュー表示中に図18のようなレイアウトチェック用プレビューを表示するという指定が、ユーザインターフェース103を介して要求されたかどうかを判定する。ユーザが指定する際に用いるユーザインターフェースの一例を図26に示す。例えば通常プレビュー表示中にメニュー304から「レイアウト変化のチェック」等の項目を選択することで、図26のようなダイアログ2600が表示され、当該ダイアログ2600からユーザが指定をしてOKボタン2607を押すことで、レイアウトチェック用プレビューが表示される。図26でいえば「全体のレイアウト結果を表示する」(2601)を選択することとなる。
【0118】
また、別の指定方法の例としては、ユーザがプレビュー中に任意のキーボードボタンを押すことが考えられる。例えば、「F2」キーが押された場合、ユーザインターフェース103を介してレイアウト編集アプリケーションプログラム121がその情報を受け取り、レイアウトエンジン105により1801〜1804を描画する処理が行われ、レイアウトチェック用プレビューがされるように構成してもよい。このときに押すキーボードボタンは、レイアウト編集アプリケーション121側があらかじめ任意に決めていてもよいし、また設定画面を設けて、ユーザが任意にキーボードボタンを設定できるようにしてもよい。
【0119】
図19に戻る。ステップS1901でYESと判定された場合、ステップS1902では、レイアウトエンジン105が、処理を行うために必要な変数を初期化する。ここでは各コンテナに番号が1から順番に振られているとして、その番号をXとし、またXを1に初期化している。また全コンテナ数をNとしている。
【0120】
ステップS1903では、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトでコンテナを描画する。
【0121】
ステップS1904では、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトと自動レイアウト処理後のレイアウトで、コンテナの幅または高さに変更があったかどうかを判定する。
【0122】
ステップS1904でYESと判定された場合、ステップS1905で、レイアウトエンジン105が、コンテナのサイズ変化を示すものを描画する。例えば図18のように、幅または高さのそれぞれについて、変更分の長さで矢印を描画する。
【0123】
ステップS1906において、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトと自動レイアウト処理後のレイアウトとで、フォントサイズが変化したかを判定する。
【0124】
ステップS1906がYESと判定された場合、ステップS1907において、レイアウトエンジン105が、X番目のコンテナについてフォントサイズがどのように変わったのかを描画する。例えば、フォントサイズが12から10に変更した場合、「12→10」と描画する方法が考えられる。
【0125】
ステップS1908では、レイアウトエンジン105が、Xを1プラスする。これは次のコンテナの処理に進むための処理である。
【0126】
ステップS1909では、レイアウトエンジン105において、XがNよりも大きいかどうかを判定する。XがN以下の場合、まだ処理していないコンテナがあることになるため、ステップS1903に進む。
【0127】
なお、ステップS1903〜1909は、レイアウトエンジン105がX番目のコンテナに対するレイアウト変化の描画を行う処理であり、他の実施形態のフローチャートでも使用する。
【0128】
以上の説明から明らかなように、本実施形態によれば、レイアウトチェック用プレビューの表示画面において、レイアウトがどのように変化したのかが描画されるため、ユーザはレイアウト編集処理時のレイアウトと自動レイアウト処理時のレイアウトとの違いが一目でわかるようになり、コンテナの配置や制御条件の設定等の修正が容易に行えるようになる。
【0129】
[第2の実施形態]
上記第1の実施形態では、レイアウトチェック用プレビュー時に全コンテナについてレイアウト変化を描画(1801〜1804)したが本発明はこれに限られず、一部のコンテナについてのみ、レイアウト変化(1801〜1804)の描画をするようにしてもよい。
【0130】
上記第1の実施形態によれば、全体についてレイアウトがどのように変更したのかがわかるという利点がある一方、コンテナが複数ある場合、全コンテナについてレイアウト変化の描画(1801〜1804)がなされてしまい、結果としてレイアウトチェック用プレビュー画面全体が煩雑としてわかりにくくなる可能性がある。また、特定のコンテナについてのみの情報が知りたい場合にも、全コンテナのレイアウト変化の描画がされるのは好ましくない。
【0131】
本実施形態はかかる点を考慮したものであり、本実施形態におけるレイアウトチェック用プレビュー表示を図20に示す。図20では任意のコンテナ(2004)をクリックしている。この場合にクリックしたコンテナ(2004)と、そのコンテナ(2004)と直接リンクを用いて関連付けられているコンテナ(2003)について、レイアウト変化の描画がされている(コンテナ2001、2002についてはコンテナ2004と直接リンクが設定されていないのでレイアウト変化が描画されない)。このように、本実施形態によれば、情報を知りたいコンテナを選択することにより、指定したコンテナとその周辺のコンテナのみについてレイアウト変化を知ることができるようになる。
【0132】
次に図21のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はホストコンピュータ内のプロセッサ135がレイアウト編集アプリケーションプログラムに基づいて処理を進める。ステップS2101では、レイアウト編集アプリケーションプログラム121が、通常のプレビュー表示中に、図20のような指定したコンテナ(2004)とそのコンテナ(2004)と直接リンクが設定されているコンテナ(2003)とについて、レイアウト変化の描画をするという指定が、ユーザインターフェース103を介してなされたかどうかを判定する。この指定方法は、例えば、キーボードボタンである「Shift」キーを押しながら任意のコンテナ(2004)をクリックする等が考えられる。また他の指定方法としては、図26のように、ダイアログ上でコンテナを選んで、指定することが考えられる。図26でいえば、ユーザはまず「選択したコンテナについて結果を表示する」(2602)にチェックし、かつリストボックス2603からコンテナを選択して、さらに「直接リンクしているコンテナについて結果表示」(2604)を選択することで指定することができる。
【0133】
ステップS2101でYESと判定された場合、ステップS2102では、レイアウトエンジン105が、処理を行うために必要な変数の初期化を実行する。これはステップS1902と同等である。
【0134】
次にステップS2103では、レイアウトエンジン105が、X番目のコンテナがステップS2101で指定されたコンテナであるかどうかを判定する。ここで指定されたコンテナとは、ステップS2101でクリックされたコンテナ、またはリストボックス2603により選択されたコンテナである。図20の例でいえば、コンテナ2004がそれにあたる。
【0135】
一方、ステップS2103においてNOと判定された場合、レイアウトエンジン105が、X番目のコンテナがステップS2101で指定されたコンテナと直接リンクしているかどうかを判定する。図20の例でいえば、コンテナ2003がそれにあたる。
【0136】
ステップS2103またはステップS2104でYESと判定された場合、ステップS2107において、レイアウトエンジン105が、X番目のコンテナのレイアウトチェック用プレビュー表示のための描画処理を行う。これは図19のステップS1903〜1909と同等である。
【0137】
一方、ステップS2104においてNOと判定された場合、ステップS2105において、レイアウトエンジン105が、Xの値を1プラスする。
【0138】
次にステップS2106において、レイアウトエンジン105が、XがNより大きいかどうかを判定する。NOの場合はステップS2103に進む。YESの場合は処理を終了する。
【0139】
[第3の実施形態]
上記第2の実施形態では、指定したコンテナとそれに直接リンク設定されているコンテナについてレイアウト変化の描画をする方法を述べた。これに対して本実施形態では、指定したコンテナと、それに最も影響を与えたコンテナについてのレイアウト変化の描画をする場合について説明する。
【0140】
上記第2の実施形態では、指定したコンテナと、それに直接リンクしているコンテナについてのレイアウトの変化の具合がわかる。しかし、指定したコンテナの配置や制御条件の設定を修正したい場合に、最も知りたい情報は、そのコンテナに最も影響を与えたコンテナのレイアウト変化である。このとき、最も影響をあたえたコンテナは、指定したコンテナに直接リンクしておらず、間接的にリンクされている場合がある。この場合、上記第2の実施形態では、知りたい情報がわからないこととなる。ここでいう間接的にリンクしているコンテナとは、指定したコンテナとリンクが設定されているコンテナが、さらにリンクしているコンテナである。図17の例でいえば、コンテナ1704と間接的にリンクしているコンテナは、コンテナ1701とコンテナ1702となる。
【0141】
本実施形態はかかる点を考慮したものであり、本実施形態におけるレイアウトチェック用プレビュー表示を図22に示す。図22に示すように、レイアウトチェック用プレビュー表示時に、ユーザがクリックしたコンテナ(2204)に最も影響を与えたコンテナ(2201)について、レイアウト変化の描画がされている(その他のコンテナ2202、2203についてはレイアウト変化が描画されない)。これにより、ユーザが指定したコンテナのレイアウトを修正したい場合に、どのコンテナの配置や制御条件の設定を修正するべきかが一目でわかるようになる。
【0142】
次に図23のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はホストコンピュータ内のプロセッサ135がレイアウト編集アプリケーションプログラムに基づいて進めていく。ステップS2301では、レイアウト編集アプリケーションプログラム121が、通常のプレビュー表示中に、図22のように指定したコンテナ(2204)と、そのコンテナ(2204)に最も影響をあたえたコンテナ(2201)について、レイアウト変化の描画をするという指定が、ユーザインターフェース103を介してなされたかどうかを判定する。この指定方法は、例えば、キーボードボタンである「Ctrl」キーをユーザが押しながら任意のコンテナをクリックする等が考えられる。他の指定方法としては、図26のように、ユーザがダイアログ上でコンテナを選んで、指定することが考えられる。図26でいえば、ユーザはまず「選択したコンテナについて結果を表示する」(2602)にチェックし、リストボックス2603からコンテナを選択して、さらに「最も影響を与えたコンテナについて結果表示」(2605)を選択することで指定することができる。
【0143】
ステップS2301でYESと判定された場合、ステップS2302において、レイアウトエンジン105が、レイアウトプレビュー用表示処理を行うために必要な変数の初期化処理をする。コンテナ番号をXとして、Xを1に初期化する。また全コンテナ数をNとする。さらに、最もサイズ変動のあったコンテナの番号を保存しておくための変数をAとする。Aは−1に初期化する。またそのときのレイアウト変更値をSとし、Sは0に初期化する。ここでレイアウト変更値とは、コンテナのレイアウトがどれだけ変更したのかを示す値である。この値の求め方は複数の方法が考えられる。例えば、単純にコンテナの面積がどれだけ変化したか、というのが考えられる。この場合のSの値は、以下の式で求めることができる。
S=|プレビュー時のコンテナの面積−設計時のコンテナの面積|
また、別の方法としては、コンテナの高さ、幅についてそれぞれ差を計算し、それらを合計する、等が考えられる。その他にも多数の方法が考えられる。
【0144】
指定したコンテナに直接または間接的にリンクしているコンテナのうち、最もレイアウト変更の大きかったコンテナが、すなわち指定したコンテナに最も影響をあたえたコンテナとなる。
【0145】
ステップS2303において、レイアウトエンジン105が、X番目のコンテナがステップS2301で指定されたコンテナと直接または間接的にリンクしているかどうかを判定する。
【0146】
ステップS2303でYESと判定された場合は、ステップS2304において、レイアウトエンジン105が、X番目のコンテナのレイアウト変化値を求めて変数Wに保存しておく。なお、これらのデータはホストコンピュータ内の記憶部(メモリ136)に保存される。
【0147】
次にステップS2305において、レイアウトエンジン105が、W(レイアウト変化値)がS(レイアウト変更値)よりも大きいかどうかを判定する。
【0148】
ステップS2305でYESと判定された場合には、ステップS2306において、レイアウトエンジン105が、Xの値をAに保存しておく。また、Wの値をSに保存しておく。
【0149】
次にステップS2307において、レイアウトエンジン105が、Xの値に1をプラスする。
【0150】
ステップS2308では、レイアウトエンジン105が、XがNよりも大きいかどうかを判定する。判定がNOの場合、ステップS2303に進む。
【0151】
ステップS2303〜ステップS2308の処理によって、最もレイアウト変更のあったコンテナの番号が変数Aに保存されていることになる。一方、Aが初期値の−1のままである場合は、ステップ2301でユーザに指定されたコンテナに直接・間接的にリンクしているコンテナについて、レイアウトの変化があったものは無かったということになる。
【0152】
次にステップS2309において、レイアウトエンジン105が、Aの値が−1以外であるかどうかを判定する。詳細には記憶部に保存されているAの値から判定されることとなる。
【0153】
ステップS2309でYESと判定された場合は、レイアウトエンジン105が、ステップS2310においてA番目のコンテナのレイアウト変化の描画をする。これは図19のステップS1903〜1909で「X=A」とした場合と同等である。
【0154】
次にステップS2311において、レイアウトエンジン105が、ステップS2301で指定されたコンテナについてレイアウト変化の描画をする。これは図19のステップS1903〜1909で「X=指定したコンテナ番号」とした場合と同等である。
【0155】
[第4の実施形態]
上記第1乃至第3の実施形態では、プレビュー表示中の描画の上に、さらにレイアウト変化を示す描画を行う場合について説明した。これに対して、本実施形態ではレイアウトチェック用プレビューにおいて、コンテンツ内容を非表示にする方法を述べる。
【0156】
上記第1乃至第3の実施形態では、レイアウトチェック用プレビュー表示時に、コンテンツの内容も表示されていた。しかし、コンテナが複数ある場合、プレビュー表示画面が煩雑になり、結果として画面が見づらくなる場合がある。
【0157】
一方、レイアウトのチェックをする際にコンテナのレイアウトのみが表示されていればよく、コンテンツの内容までは必要ないというユーザもいる。
【0158】
そこで、図24に示すように、レイアウトチェック用プレビュー時に、コンテンツの内容を非表示にして、必要な情報のみを表示して、画面を見やすくする方法が考えられる。図24は第1の実施形態に対してコンテンツの内容を非表示にしたものである。コンテナ2401〜2404において、コンテンツの内容が非表示になっている。これにより、レイアウト変化の情報のみが表示されることとなり、画面が見やすくなる。この方法は第2の実施形態や第3の実施形態についても同様に適応できる。
【0159】
次に図25のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はレイアウト編集アプリケーションプログラムに基づいて、ホストコンピュータ内のプロセッサ135が処理を進める。ステップS2501では、レイアウト編集アプリケーションプログラム121が、レイアウトチェック用プレビュー時に、コンテンツの内容を非表示にする指示があったかどうかを判定する。指定方法は例えばレイアウトチェック用プレビュー表示中に、ユーザがキーボードボタンである「F3」キー等の決まったキーを押すことが考えられる。別の指定方法としては、図26のようにダイアログからユーザが指定することが考えられる。図26で言えば、ユーザが「コンテンツ内容を表示しない」(2606)にチェックをする。
【0160】
ステップS2501でYESと判定された場合、ステップS2502において、レイアウトエンジン105が、処理を行うために必要な変数の変数の初期化をする。この処理は図19のステップS1902と同等である。
【0161】
次にステップS2503において、X番目のコンテナについて、レイアウトエンジン105が、コンテンツ内容を消す処理を行う。なお、ここで行う処理は画面にコンテンツデータを表示させないだけであり、流し込まれたコンテンツデータはホストコンピュータ内の記憶部に保持されている。
【0162】
次にステップS2504において、レイアウトエンジン105が、Xの値に1をプラスする。
【0163】
次にステップS2505において、レイアウトエンジン105が、XがNより大きいかどうかを判定する。NOと判定された場合、ステップS2503に進む。ステップS2502〜ステップS2505によって、全コンテナのコンテンツ内容が非表示になる。
【0164】
[他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0165】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0166】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0167】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0168】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0169】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0170】
以上の処理により、流し込まれるコンテンツデータに応じて自動的にレイアウトを設定する自動レイアウトシステムにおいて、予め設定したレイアウトがコンテンツデータを流し込むことによってどのような変化が生じたのかを認識させるため基準サイズのコンテナを表示し、ユーザに対してレイアウトの変化を認識させることができ、さらに何が原因で上述したような変化が生じたのかを把握させることにより、ユーザの意図を反するレイアウトが作成された場合であっても、簡単に修正を行えるようになる。
【図面の簡単な説明】
【0171】
【図1A】本発明の一実施形態にかかるホストコンピュータを備える自動レイアウトシステムの構成を示す図である。
【図1B】本発明の一実施形態にかかるホストコンピュータの構成を更に詳細に示すブロック図である。
【図2】本発明の一実施形態にかかるホストコンピュータを備える自動レイアウトシステムの構成を示す図である。
【図3】レイアウト編集アプリケーションプログラムのメインウインドウを示す図である。
【図4】レイアウト編集アプリケーションプログラムのメインウインドウを示す図である。
【図5】コンテナの表示ルールを説明する図である。
【図6】リンク設定の処理の流れを示すフローチャートである。
【図7】リンク設定時のUIの一例を示す図である。
【図8】レイアウトエンジンによる自動レイアウト処理を示すフローチャートである。
【図9】レイアウトエンジンによる自動レイアウト処理を示すフローチャートである。
【図10】自動レイアウト処理を説明するための図である。
【図11】自動レイアウト処理時における、コンテナの集合について説明した図である。
【図12】可変リンクツールによるコンテナ配置を示す図である。
【図13】リンク設定の処理の流れを示すフローチャートである。
【図14】リンクの設定ダイアログウインドウを示す図である。
【図15】固定リンクによる自動レイアウト処理結果例を示す図である。
【図16】可変リンクによる自動レイアウト処理結果例を示す図である。
【図17】従来のプレビュー表示画面の一例を示したものである。
【図18】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図19】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図20】本発明の第2の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図21】本発明の第2の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図22】本発明の第3の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図23】本発明の第3の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図24】本発明の第4の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図25】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図26】第1乃至第4の実施形態においてレイアウトチェック用プレビューの表示をユーザが指示するためのダイアログの一例を示す図である。
【符号の説明】
【0172】
101 ホストコンピュータ
103 ユーザインターフェース
105 レイアウトエンジン
119 データベース
121 レイアウト編集アプリケーションプログラム
132 キーボード
133 マウス
143 I/Oインタフェース
144 ビデオディスプレイ
301 アプリケーションウインドウ
303 ツールバー
313 カーソル/ポインタ
406 リンクツールボタン
407、408 コンテナ
409 アンカーアイコン
410 固定されていない辺
412 リンク
【技術分野】
【0001】
本発明は、ドキュメント上の複数のコンテナにコンテンツデータを流し込み、該コンテナのレイアウトを該コンテンツデータに応じて所定の制御条件のもとに制御することにより、ドキュメントの生成を行う情報処理装置における、該コンテナのレイアウト表示に関するものである。
【背景技術】
【0002】
近年、商品の多品種化で商品寿命が短くなっていること、あるいはインターネット利用の普及による消費者のカスタマイズサービス指向が高まってきていることなどに起因してCRM(Customer Relationship Management)、One−to−Oneマーケティングの必要性が注目されている。これらの手法は、顧客満足度を高め、顧客の開拓や囲い込みを目指すという目的に対して非常に効果的なものである。
【0003】
One−to−Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析したうえで、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。特に最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及とに伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトすることが求められるようになった。
【0004】
バリアブルプリントシステムではそのようなカスタマイズ文書を作成するにあたり、ドキュメント上にコンテナをレイアウトする。コンテナとはオブジェクトの1つでありデータベース化されたコンテンツ(描画内容)を描画するための矩形の部分領域をいう(フィールド領域と呼ばれることもある)。かかるバリアブルプリントシステムによれば、ドキュメント上にこのようなコンテナをレイアウトした後、データベースとコンテナとを関連付ける(データベースの各コンテンツと各コンテナとを関連付ける)ことにより、カスタマイズ文書(ドキュメント)を作成することが可能となる。
【0005】
しかし、バリアブルプリントシステムの場合、テキストおよびイメージのコンテナのサイズが固定であるため、データベース内の各コンテンツを構成するデータがコンテナに流し込まれたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいとコンテナに隙間が空いてしまうという問題があった。
【0006】
かかる問題を解決するために、コンテンツによってコンテナのレイアウトを動的に変更するシステムが考えられ、流し込まれるテキストおよびイメージのコンテンツデータ量に応じてコンテナサイズを決定することで上述したオーバーフローや隙間が生じるといった問題点を解決することができる。
【0007】
具体的には、コンテナのサイズを可変とし、流し込まれるコンテンツデータのデータ量に応じてコンテナのサイズを大きくしてレイアウトしたり、またテキストデータの場合にあっては、コンテナ内のフォントのサイズを可変とし、流し込まれるデータのデータ量に応じてフォントのサイズを縮小してレイアウトしたりすることにより、コンテナ内に入りきらないデータ量のテキストが流し込まれた場合であっても、コンテナ内に全てのテキストデータを表示させることを可能にしている。
【0008】
上述した技術の一部を実現しているレイアウトシステムとして下記特許文献1が挙げられる。下記特許文献1においては所定のコンテナ内に文字を入力していき、あらかじめ設定したサイズのコンテナ内に収まりきらない量の文字が入力された場合は、文字の入力に応じてコンテナサイズを拡大していき、その拡大に応じて隣接するコンテナのサイズが縮小されていくといった技術が開示されている。
【特許文献1】特開平7−129658号公報(0049、図8)
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上記レイアウトシステムの場合、コンテナ内に入力されるテキストデータのデータ量の増加に応じて該コンテナは拡大され、隣接するコンテナのサイズは拡大に応じて縮小されていくが、上記レイアウトシステムではテキストが入力されるコンテナは入力が続く限り拡大処理が続けられ、その拡大に応じて隣接するコンテナは縮小を続けるためバランスの取れたレイアウトを実現することはできない。さらに、上記レイアウトシステムではバリアブルプリントを想定しておらず、各コンテナにコンテンツを流し込んでいくということは考えられていない。
【0010】
また、バリアブルデータプリントを考慮したレイアウト方法として、固定のコンテナを作成し、そこにコンテンツデータを流し込んでいくものがある。しかし、固定サイズのコンテナを用いる場合、コンテナサイズより大きいサイズのコンテンツデータが流し込まれると、オーバーフローが生じてしまったり、フォントサイズを縮小して無理に流し込もうとするとフォントサイズが極端に小さくなってしまうといった問題が生じてしまう。
そこで、上記問題を解決するためのレイアウト方法として、関連付けられた複数の可変コンテナ間のサイズバランスを考慮したレイアウト方法が考えられる。これにより、各コンテナに流し込まれるコンテンツデータのサイズに応じて各コンテナのサイズが変更され、さらに関連付けられているコンテナ間で各コンテナサイズの変化量を調整したレイアウト処理をすることでコンテナのサイズバランスが考慮されたレイアウト結果を得ることができる。
【0011】
しかし、各コンテナサイズの変化量を調整する上記レイアウト方法では、各コンテナのレイアウトはコンテンツデータの流し込みに応じて自動的に決定されるため、レイアウト変更の結果は、レイアウト処理終了後でなければ確認することができない。
【0012】
そのためユーザは、レイアウト結果が表示された時点で初めて意図しないレイアウトが作成されていることを認識することになり、そこから修正を加える場合は、予め設定したコンテナ設定画面で各コンテナの関連性やサイズを確認しながら修正をしなければならず、さらに初期のコンテナ設定画面からどの程度の変更が生じたのかを確認するためには、レイアウト変更後のプレビュー画面と初期設定に用いたコンテナ設定画面とを交互に表示させて違いを見比べる必要があり、レイアウト修正に多大な手間がかかるという問題が生じてしまう。
【0013】
本発明は、上記課題に鑑みてなされたものであり、流し込まれるコンテンツデータによってコンテナのレイアウトを動的に変更する情報処理装置において、レイアウトが変更される前の基準サイズのコンテナを明示することにより、レイアウトがどのように変化したかをユーザが理解できるようにし、レイアウト修正時のユーザの利便性を向上させることを目的とする。
【0014】
また、レイアウト変更の前後を表示させることで意図しないレイアウトが得られた原因を把握させることを更なる目的とする。
【課題を解決するための手段】
【0015】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理装置であって、前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御手段と、前記制御手段により制御された前記データ領域のレイアウトを表示する表示手段と、を備え、前記表示手段は、更に、所定の指示に応じて前記制御手段により制御される前の前記基準サイズのデータ領域を表示することを特徴とする。
【発明の効果】
【0016】
本発明によれば、流し込まれるコンテンツデータによってコンテナのレイアウトを動的に変更する情報処理装置において、レイアウトが変更される前の基準サイズを表示することによりユーザはレイアウト前後の変化を認識できるようになり、レイアウトがどのように変化したかをユーザが理解できるようになり、レイアウト修正時のユーザの利便性が向上する。
【発明を実施するための最良の形態】
【0017】
はじめに本実施形態の概要について説明する。一般に自動レイアウトシステムにおけるドキュメントの作成は、レイアウト編集処理と自動レイアウト処理とに区分けできる。前者はコンテナをドキュメント上に配置するとともに、データを流し込んだ場合にどのようにコンテナのレイアウトを制御するか、その制御条件を設定するための処理であり、後者はコンテナにデータを流し込み、設定された制御条件に従って、当該流し込まれたデータに応じたレイアウトに制御し、ドキュメントを生成するための処理である。
【0018】
このうち、当該自動レイアウトシステムを構成する以下の各実施形態にかかるホストコンピュータ(情報処理装置)では、自動レイアウト処理が実行され、流し込まれたデータに応じてレイアウトが制御されたコンテナを表示するプレビュー表示画面において、データを流し込む前後のレイアウトの変化を明示するようにした。
【0019】
これにより、データの流し込みによってレイアウトがどのように変化したかをユーザが容易に理解できるようになり、ユーザが意図しないレイアウトになった場合であっても、ユーザはレイアウト編集処理においてコンテナの配置や制御条件の設定等の修正を簡単に行えるようになった。以下、必要に応じて添付図面を参照しながら本発明の各実施形態を詳細に説明する。
【0020】
[第1の実施形態]
1.自動レイアウトシステムの構成例
まず、図1Aおよび図1Bを参照して、本発明の一実施形態にかかるホストコンピュータ(情報処理装置)を備える自動レイアウトシステムの構成を説明する。図1Aは自動レイアウトシステム100の構成例を示すブロック図である。また、図1Bは図1Aに示されたホストコンピュータ(情報処理装置)101の構成を更に詳細に示すブロック図である。
【0021】
本実施形態で説明されるレイアウト編集処理ならびに自動レイアウト処理は、ホストコンピュータ101(汎用コンピュータモジュールで構成される)によって実行される。自動レイアウトシステム100上で実施可能となるレイアウト編集アプリケーションプログラム121はホストコンピュータ101において、そのソフトウェアの全体、あるいは一部分が実行され、これにより、上記レイアウト編集処理ならびに自動レイアウト処理が実現される。
【0022】
レイアウト編集アプリケーションプログラム121はコンピュータの可読媒体に格納され、そのコンピュータの可読媒体からホストコンピュータ101のメモリ136にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータの可読媒体はコンピュータプログラム製品である。コンピュータにおいてそのコンピュータプログラム製品を使用することにより、ドキュメントの作成や作成されたドキュメントの印刷に好適な装置が提供されることになる。
【0023】
図1Bに示されるように、ホストコンピュータ101には、入出力インターフェース143を介してキーボード132や、マウス133のようなポインティングデバイス等が入力装置として接続されている。また、出力装置としてのディスプレイ装置144がビデオインターフェース137を介して接続されている。更に、ローカルプリンタ145等を入出力インターフェース138を介して接続することも可能である。また、入出力インタフェース138はコンピュータモジュール101をネットワーク107へ接続する機能も有する。これにより、ネットワークを介して他のコンピュータ装置(データベースサーバ117、ファイルサーバ115、プリントサーバ119等)にホストコンピュータ101を接続することができる。ネットワーク107の典型的な例としては、ローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)が挙げられる。
【0024】
また、図1Bに示すように、ホストコンピュータ101は少なくとも1つのプロセッサユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136を含んでいる。格納デバイス139は、プログラム等を格納するコンピュータ可読媒体との間でデータのやり取りが可能なハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含む。なお、図1Bには示されていないが、磁気テープドライブ等も格納デバイス139として使用可能である。CD−ROMドライブ142は不揮発性のデータソースとして提供される(もちろん、CD−ROMによってコンピュータプログラムを提供してもよい)。
【0025】
ホストコンピュータ101は、GNU/LINUXやマイクロソフトウインドウズ(登録商標)のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。すなわち、上述した135〜143で示される各構成は、バス134を介して通信可能に接続されており、ホストコンピュータ101にインストールされたオペレーティングシステムにより利用される。
【0026】
なお、図1Bに示したホストコンピュータ101の例としては、IBM互換PCやSUNのSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
【0027】
本実施形態では、レイアウト編集アプリケーションプログラム121はハードディスクドライブ140に常駐し、プロセッサ135により実行や読み込みがコントロールされるものとする。なお、レイアウト編集アプリケーションプログラム121の媒介記憶装置とネットワーク107からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。
【0028】
一つの例では、レイアウト編集アプリケーション121のエンコードされたプログラムは、CD−ROMやフロッピー(登録商標)ディスク上に格納され、対応するドライブ142や141を通じて読み込まれ、ハードディスクドライブ140にインストールされる。あるいは、別の例として、レイアウト編集アプリケーションプログラム121はネットワーク107からホストコンピュータ101内に読み込まれて、ハードディスクドライB140にインストールされてもよい。
【0029】
さらにソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスク、または、ホストコンピュータ101とその他のデバイス間における赤外線等の無線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ101内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
【0030】
図1Aにおいて、レイアウト編集アプリケーション121はコンピュータに自動レイアウト処理ならびにレイアウト編集処理を行わせるものであり、2つのソフトウェアコンポーネント、すなわちレイアウトエンジン105とユーザインターフェース103とを含んでいる。
【0031】
レイアウトエンジン105は、矩形の部分領域であるコンテナに与えられたサイズや位置の設定にしたがって、データベース119に格納されているデータからドキュメント単位でデータを読み込み、読み込んだデータとコンテナの設定とから、読み込んだデータが流し込まれるコンテナの大きさや位置等を計算する、自動レイアウト処理を行うソフトウェアコンポーネントである。また、本実施形態におけるレイアウトエンジン105は、更に、コンテナに割り当てられたデータを描画し、ドキュメントのイメージを生成する処理も行う。ただし、本発明はこれに限るものではなく、レイアウトエンジン105は各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがドキュメントのイメージ描画処理を行い、印刷データを生成するようにしてもよい。
【0032】
一方、ユーザインタフェース103は、ユーザによるレイアウト編集処理を可能とするもので、具体的には、ユーザはユーザインタフェース103を介してコンテナの作成・移動を行い、ドキュメントテンプレートを作成する。また、ドキュメントテンプレート内の各コンテナとデータとを関連付けるメカニズムを提供する。さらに、ドキュメントテンプレート内の各コンテナに対する各種設定(リンク設定も含む)を可能にする。ユーザインタフェース103とレイアウトエンジン105はコミュニケーションチャネル123を介して通信する。
【0033】
2.他のシステム構成の例
図2は、図1Aと類似のブロック図であるが、エンジンサーバ227が追加されている点が異なる。エンジンサーバ227に格納されているレイアウトエンジン225は、レイアウトエンジン105の分離バージョンである。エンジンサーバ227には一般的なコンピュータが用いられる。レイアウトエンジン225は、印刷やその他の目的に応じてドキュメントを生成するために、ファイルサーバ115に保存されたドキュメントテンプレートとデータベース119に保存されたデータとを結合する。そのようなオペレーションはユーザインタフェース103を介して要求される。
【0034】
3.レイアウト編集アプリケーション(レイアウト編集処理)の説明
以下、上記レイアウト編集アプリケーション121のうち、ユーザインターフェース103を介して実現されるレイアウト編集処理の詳細について説明する。
【0035】
3−1 メインウインドウ
ユーザインターフェース103は、操作時に図3に示されるようなアプリケーションウインドウ301によって形成されたユーザインターフェース画面をビデオディスプレイ144に表示させる。このウインドウ301は、メニューバー302、ツールバー303、ワークエリア306とオプションのパレット311を有する。メニューバー302とツールバー303を非表示にさせたり、スクリーン上の色々な場所に移動させることが可能である。また、ワークエリア306はマウス133の操作によってその場所を移動させることが可能である。また、パレット311はオプションであり、カーソル/ポインタデバイス313はマウス133が指し示す位置を表す。
【0036】
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
【0037】
ツールバー303やツールボタン305は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能なウィジェットである。
【0038】
ルーラー308はオプションであり、ワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナの位置を示すために使われる。
【0039】
パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはコンテナの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されるようにすることも、あるいはアプリケーションウインドウ301の外側にその一部或いは全体が表示されるようにすることもできる。
【0040】
ツールバー303には図4に示されるような、ユーザ選択可能な『ツールボタン』が配置されている。
【0041】
(1)選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック/ロック解除のために使われる。コンテナの選択は、コンテナの周りに選択ボックスをドラッグすることによりなされる。また、CTRLキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
【0042】
(2)テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
【0043】
(3)イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
【0044】
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。
【0045】
3−2 ドキュメントテンプレート
図3において、ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。これにより、ユーザは下準備で印刷されるドキュメントの概観をデザインすることが可能となる。
【0046】
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309とを備える。ドキュメントテンプレート309はページが複数あることを示すことができる。
【0047】
与えられたドキュメントテンプレートのページサイズは、ユーザによって指定される。それぞれのドキュメントでの実際のページ数は、流し込まれるデータのデータ量によって変化し、1ページ内にフィットできなかった時、追加のページは自動的に作成される。
【0048】
それぞれのページ内の境界線310は、ページ上の印刷可能なコンテナの最大幅を示す、任意のページマージンである。
【0049】
また、図4は1ページのドキュメントテンプレート309上に表示することが可能なコンテナの例である、それらは、複数のコンテナ407、408と、任意に適用するアンカーアイコン409とリンク412、そしてスライダー413を持つ。
【0050】
3−3 コンテナ
ここで、コンテナについて説明する。コンテナとは、ドキュメントテンプレート内にデータファイルから固定あるいは可変のコンテンツデータ(テキストまたはイメージ)が流し込まれ、描画される矩形の部分領域(データ領域)であり、図4に示されるように他のコンテナと共にドキュメントテンプレート309内に配置される。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナはマウス133の操作により移動、サイズ調整、再作成される。下記は本実施形態におけるコンテナの定義である。
【0051】
(1)コンテナ(データ領域)は固定あるいは可変のコンテンツと関連づけられる。可変コンテンツは、データソースから取得したデータがドキュメント毎、つまりレコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。ただし、本実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは意図していない。同様に、固定コンテンツはコンテナ(データ領域)を使って生成される全てのドキュメントで、同じようにレイアウトされる。しかしながら、可変コンテンツとリンクが設定されている場合には、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメント毎に異なった位置にレイアウトされることとなる。
【0052】
(2)コンテナ(データ領域)は、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナ(データ領域)と同じコンテナ属性であるという設定を行うことも可能である。
【0053】
(3)コンテナ(データ領域)はドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どのような固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツはデータソースからの特定のデータの表示を提供する。コンテナ(データ領域)のこの表現は例えば印刷されるか、ビデオディスプレイ144のスクリーン上に表示されるか、あるいはその両方が可能である。
【0054】
(4)コンテナ(データ領域)は、図4に示されるように視覚的な手がかりとしてのユーザインターフェースを有している。例えばコンテナ(データ領域)の編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース(GUI)を持つ。GUIの各要素はビデオディスプレイ144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインターフェース103は、背景色やフォントのようなコンテナ(データ領域)の装飾機能のいくつかを表示し、さらにコンテナ(データ領域)の設定の編集や表示を可能にするための機能を有している。
【0055】
3−4 コンテナの制約
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御条件に関する制約がある。これらの制約(固定/可変コンテンツをコンテナと結びつけることを含む)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントをコントロールするための主要な方法である。制約の一つの例は『このコンテナのコンテンツの高さは最大4インチです』である。また、別の制約の例は『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
【0056】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術においてよく知られている。コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータ印刷に特化した方法における表示・編集に焦点を合わせる。
【0057】
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ(描画サイズ)や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定(指定)や表示のために所定のユーザインターフェースが利用される。
【0058】
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。したがって、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
【0059】
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
【0060】
(1)コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
【0061】
(2)コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
【0062】
(3)距離(リンクの長さ)が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
【0063】
(4)コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。ただし、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となるが、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
【0064】
(5)コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。ただし、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
【0065】
(6)コンテナの垂直軸はコンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均(すなわち左右の中央位置)は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっとも近いものまで、垂直軸は全てのドキュメントで同じ水平位置となる。なお、コンテナの高さと垂直位置はこの制約によって影響されない。
【0066】
(7)同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。ただし、コンテナの幅と水平位置はこの制約によって影響されることはない。
【0067】
(8)水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。ただし、コンテナの幅・高さはこの制約によって影響されない。
【0068】
(9)コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【0069】
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
【0070】
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータ(コンテンツデータ)のサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレート309の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
【0071】
3−5 新規コンテナの作成方法
図4で示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツールボタン404あるいはイメージコンテナツールボタン405をマウス133でクリックし、ドキュメントテンプレート309上に四角形をドラッグすることによって、当該ドキュメントテンプレート309上に作成される。なお、ドキュメント上に作成された新規コンテナのサイズをコンテナの基準サイズとする。
【0072】
あるいは、コンテナは、適切なツールボタン404、405をアクティブにした後に、ドキュメントテンプレート309上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス133のクリック操作に応じてデフォルトサイズのコンテナがドキュメントテンプレート309上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。なお、コンテナのサイズは自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置されるようにしてもよく、種々の方法が考えられる。ここで生成されたコンテナをマウス133等の入力装置により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログUIでは、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ(幅、高さ)や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン(基準サイズと基準位置)を設定し、更に、最大コンテナサイズ(幅、高さ)と最小コンテナサイズ(幅、高さ)を設定することが可能となっている。なお、コンテナに対して可変サイズを設定することにより各コンテナに流し込まれるコンテンツデータのサイズに応じて、コンテナサイズを予め設定された基準サイズから変更することが可能となる。この可変サイズのコンテナを用いることによってオーバーフローや隙間が生じるといった問題点を解消することができる。
【0073】
3−6 コンテナの表示方法
図5の(A)から(D)はコンテナの辺に関する表示ルールを例示している。
【0074】
レイアウト編集アプリケーションプログラム121は、コンテナの辺の状態を表現するために、実線(アイテム503)あるいは点線(504)を用いて辺を表すとともに、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために領域の辺上あるいは近傍に描画されたコントロール点、502)、スライダー(辺の両側に描画された短い平行線、図4の413)、拡縮アイコン(505)、ならびに色分けを用いる。
【0075】
図5(A)〜(D)に示されるコンテナ表示方法のルールは以下の通りである。
(1)それぞれの辺を固定するために、実線で描画する。
(2)幅が固定の場合は、左と右の辺を実線で描画する。
(3)高さが固定の場合は、上と下の辺を実線で描画する。
(4)軸は描画しない。
(5)(1)〜(3)によって描画されていないそれぞれの辺の近くには拡縮アイコンが描画され、それらの辺を点線で描画する。
(6)垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
(7)それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
(8)垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
【0076】
ルール(1)、(2)、(3)で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール(5)のように、可変の辺は、点線で描画される。ルール(6)、(7)、(8)で定義された固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【0077】
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
【0078】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【0079】
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
(1)図4の410の辺のように、点線はコンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
(2)実線は、固定されている(辺414)、あるいはコンテナの幅・高さが固定されている(コンテナ408では4辺が実線であり、両方が固定されている)ために制限された辺であることを意味する。
(3)アンカーは辺および軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図4のアイコン409は、辺414の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
(4)スライダーは関係付けられた辺の長さが固定されているが、平行移動する可能性があることを意味する。例えば、図4でスライダー413はコンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。例えば、コンテナ408と関連付けられている(リンク設定されている)コンテナ407に流し込まれるデータのイメージサイズもしくはテキスト量が少ない場合は、コンテナ407のサイズが小さくなるため、コンテナ408は、左方向にスライド(平行移動)してレイアウトされて表示されることになる。また、コンテナ407のサイズが大きくなる場合は、逆にコンテナ408は右方向にスライドしてレイアウトされることになる。
【0080】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【0081】
なお、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
【0082】
図5の(A)で、コンテナ501は、幅・高さの両方が固定されていない(可変である)。固定された辺503は実線で表現され、可変の辺504は点線で表現されている。拡縮アイコン505は、隣接する辺504が可変であることを示す。他の形態のインジケータを代わりにあるいは追加的に用いてもよい。
【0083】
図5の(B)において、コンテナ501は幅・高さ両方が可変である。アンカーアイコン506が、交差している両方の辺503の角の位置が固定されていることを明示的に表すべく追加されている。
【0084】
図5の(C)において、コンテナ501は、コンテナの幅及び高さの両方が可変であり、任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態を示している。すなわち、コンテナ501はアンカーアイコン507を中心に拡大あるいは縮小が可能である。ここでの拡大/縮小は、アンカーアイコン507の位置が常にコンテナ501の中心点となるようにレイアウト調整される。
【0085】
図5の(D)において、コンテナ501は、上辺508が固定されているが、幅・高さの両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている。そしてコンテナ501の左辺・右辺(502)は、アンカーアイコン509を通って垂直な中心軸(垂直軸)の周りを、拡大・縮小する。
【0086】
3−7 リンク
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図4の412で示されているものがリンクであり、この図ではコンテナ407と408とを関連づけている。
【0087】
3−8 リンクの設定方法
次に、コンテナ同士を関連付けるためのリンクの設定方法について説明する。図6はリンクの設定方法を示したフローチャートである。また図7(A)乃至(C)はリンク設定の際のUIの一例を示す図である。図6、7を用いてコンテナにリンクを設定する方法について説明する。
【0088】
まず、リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)を作成する(ステップS601)。図7(A)は、作成された2つのコンテナ(701、702)を示す。なお、703、704はアンカーを、705はマウスポインタをそれぞれ示している。
【0089】
ステップS602では、リンクツールボタン406を選択した状態にし、ステップS603では、リンクを設定する片方のコンテナ(ここでは、コンテナ701)をマウスポインタ705でクリックして選択する。
【0090】
ステップS604では、ステップS603にて選択されたコンテナ701との間でリンク設定しようとするコンテナ702を選択する。具体的にはマウスポインタ705を移動して、コンテナ702をクリックする。図7(B)は、コンテナ701をクリックした後、コンテナ702をクリックするまでの間の状態を示す図である。同図に示すように、ステップS603でクリックした位置と、現在のマウスポインタ705の位置との間を結んだ線706が表示される。
【0091】
ステップS604においてコンテナ702が選択されると、ステップS605ではコンテナ701との間にリンクが表示される。図7(C)は、コンテナ702がクリックされることにより、リンク707が表示された状態を示している。
【0092】
リンクが設定されたことにより、ステップS606ではコンテナのUIも自動的に変更される(708は、自動的に点線に変更された辺であり、前述した通り可変の辺を示している)。なお、図7(C)のようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したしるしである。図7(C)の例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例であり、右コンテナが、図4の413で示したスライダーを持つ設定に変化してもかまわない。
【0093】
3−9 長さが可変のリンクの設定
図12では可変リンクの設定のためのUIを表している。図12の状態では、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナはアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206を含んで構成されている。コンテナ1203と1204の間には可変サイズのリンク1209があり、コンテナ1203とコンテナ1204を結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケータ1210、インジケータ1211が表示され、それぞれ辺1207と辺1208が可変であることを示している。
【0094】
また、図14は、リンク設定手段におけるUI画面であり、リンク1409の情報をセットするためのダイアログウインドウ1401の例である。このダイアログは、タイトルバー1402、ツールボタン1403、ダイアログウインドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウインドウではリンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行える。リンクタイプが可変の場合にはリンクの長さの最小値(Min.Distance1410)、最大値(Max.Distance1412)、ならびに基準値(Distance1411)が設定できる。この設定は2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで各コンテナ間の距離の基準値1411は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
【0095】
図15は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述したとおりに従って行われる。例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのイメージデータが流し込まれた場合を考える。この場合、それぞれのコンテナは流し込まれるコンテンツデータの大きさを最適とみなし、コンテナ1203は流し込まれたイメージデータのイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ、同様にコンテナ1204は流し込まれたイメージデータのイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へサイズを変更しようとする。しかしコンテナ1203とコンテナ1204はアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213の移動ができず、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ間には固定サイズのリンク1503が設定されており、レイアウト計算時にその長さ維持されるため、コンテナ1203とコンテナ1204のサイズが変更されることになる。
【0096】
その結果、コンテナ1203とコンテナ1204はデータの縦横比に合わせた最適なサイズを確保することが出来ず、最終的に図15に示すように、最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。すなわちリンク1503のサイズが固定であるためコンテナ1203とコンテナ1204は最適サイズを達成できない(図15において、各コンテナ内の細点線で示した範囲がデータの持つ縦横比である)。
【0097】
一方、図16は図15と同様の状態でリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図示の通り可変サイズのリンクが設定されている。したがって、コンテナ1203とコンテナ1204のサイズが変更される際には、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズを図15の例より大きくすることができる。この結果、流し込まれるデータのデータサイズに合わせた最適なサイズを達成できる、あるいはより流し込まれるデータのデータサイズ(最適サイズ)に近いコンテナの枠を設定することが出来る。図16はこの結果を示しており、可変リンク1209はレイアウト計算の結果、可変リンク1603に示されるようなサイズ状態となる。なお、この場合コンテナ1203とコンテナ1204はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。
【0098】
4.レイアウト編集アプリケーション(自動レイアウト処理)の説明
以下、上記レイアウト編集アプリケーション121において実行される自動レイアウト処理の詳細について説明する。
【0099】
4−1 レイアウト計算方法(全体フロー)
上述のように本実施形態のレイアウト編集アプリケーション121は、ユーザインターフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行うレイアウト編集処理と、レイアウトエンジン105により、作成したレイアウトにデータソースの各データを流し込む自動レイアウト処理とに分けられる。また、自動レイアウト処理は、さらに、実際のデータが流し込まれ、前述した優先順位に従って表示上のレイアウト計算を行うプレビューモードと、レイアウト計算した結果を実際に印刷する印刷モードとを備える。なお、プレビューモードと印刷モードにおけるレイアウト計算は同じである。
【0100】
図8はレイアウトエンジン105におけるレイアウト計算のフローを示している。まず、プレビューモードが選択される(ステップS801)。プレビューモードになったら、レイアウト編集アプリケーション121は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各データを各コンテナに流し込むよう決定する(ステップS802)。各コンテナへのデータの流し込みが決定されると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするための計算を行い、必要に応じてレイアウト調整を行う(ステップS803)。ステップS803におけるレイアウト計算の詳細については後述する。そして、レイアウト編集アプリケーション121は、ステップS803で計算されたレイアウトを表示する(ステップS804)。レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判断する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(ステップS807)。他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
【0101】
なお、プレビューモードでなく印刷モードにおいては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。ステップS803でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷すべく指定された全レコード)について印刷データの出力が終了した時点で本処理を終了することになる。
【0102】
4−2 レイアウト計算方法(詳細)
次に、上記ステップS803によるレイアウト計算の詳細について説明する。図9は本実施形態によるレイアウトの優先順位を設定しない場合のレイアウト計算の方法を示したフローチャートである。また、図11はそのときのUI表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであり、1レコードの印刷/プレビューモード時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
【0103】
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を求める(ステップS901)。レイアウト計算は、リンクが設定されたコンテナを一つの集合として計算を行う。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナにリンクが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクが設定されている。したがって、コンテナA、Bが集合1、コンテナC、Dが集合2となる。すなわち、リンクによって接続されたコンテナ群を一つの集合として特定する。前述したように、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
【0104】
次に、レイアウト編集アプリケーション121は、ステップS901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(ステップS902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナ(A,B)について、流し込まれるデータのイメージサイズもしくはテキスト量から各コンテナが何も制約を受けない場合の大きさを計算する。具体的には、レイアウト編集アプリケーション121は、コンテナAがイメージデータ用コンテナであるか、テキストデータ用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。
【0105】
次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込み、コンテナAがイメージデータ用コンテナである場合は、そのイメージデータのサイズ(幅、高さのピクセル数、および解像度)がコンテナAの制約を受けない場合の大きさになる。また、コンテナAがテキストデータ用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナAに流し込まれるべきデータ量が計算できる。ここで、テキストデータ用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。図11の例では、コンテナAは、左上および左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判断する。
【0106】
すべて流し込めると判断された場合は、コンテナAは、基本パターンで設定されているサイズ(幅、高さ)に変更はない。また、すべて流し込めないと判断された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
【0107】
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップS903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに流し込まれるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウト編集アプリケーション121は、ステップS902で算出したコンテナの集合のサイズ、つまりコンテナAとコンテナBとリンク1106(ここでは固定リンク)の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図11の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を求める。コンテナAやコンテナBの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
【0108】
レイアウト編集アプリケーション121は、レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(ステップS904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、ステップS902〜S904の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション121は、ページ全体のレイアウトを計算する(ステップS905)。
【0109】
図10の(A)〜(C)は優先順位の設定なしでのレイアウト時のUI例である。
【0110】
図10の(A)は、あるレコードのデータが流し込まれレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを流し込む。図10の(B)は(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに流し込まれるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図10の(C)はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際流し込まれるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図10の(C)で示されるように、(B)で示した流し込まれるコンテンツのサイズ(1009)と自動レイアウト処理後のコンテンツのサイズ(1010)は、双方において同等な差異がある。
【0111】
5.プレビュー表示画面の説明
次に本実施形態にかかるホストコンピュータ101の備えるレイアウト編集アプリケーション121の特徴的な機能である、プレビュー表示画面について従来と比較しながら説明する。
【0112】
5−1 プレビュー表示画面
図17は従来のプレビュー表示画面の一例を示す図である。ドキュメントテンプレートの表示・編集画面において、プレビューを選択することで、各コンテナにコンテンツデータが流し込まれ、レイアウトが計算されてプレビュー表示される。図17の例ではコンテナ1701〜1704が設定されており、プレビュー時には、コンテナ1701とコンテナ1702にはイメージデータが、コンテナ1703とコンテナ1704にはテキストデータが流し込まれ、それぞれレイアウトが変化し、コンテナ1705〜1708が表示される。
【0113】
このとき、プレビュー画面で表示されたレイアウト結果が、ユーザの意図しないレイアウト結果になっていたとする。この場合、ユーザはプレビュー画面からドキュメントテンプレートの表示・編集に戻り、コンテナの配置や制御条件の設定等を修正する必要があるが、プレビュー表示画面を見ただけでは、設定したコンテナのレイアウトがどのように変化したのかが分からず、修正が困難である。そこで、本実施形態では、図18に示すような特徴的なプレビュー表示が行われる。
【0114】
図18は本実施形態にかかるホストコンピュータ101におけるプレビュー表示画面の一例を示す図である。同図のように、通常のプレビュー表示に加えて、以下の表示がされる。
【0115】
(1)コンテナ設定画面で設定したとき(プレビュー前)のレイアウトで描画されたコンテナ1801。なお、コンテナ1801のサイズはコンテナ設定時の基準サイズである。
【0116】
(2)元のコンテナのサイズとどれだけ変化したのかを示すもの(矢印1802等)
(3)フォントサイズが元のフォントサイズからどれだけ変化したのかを示すもの(1803)
(4)コンテナ間のリンクが設定されていることを示すもの(バー1804等)
これらはプレビュー表示の上に描画される。ただし、プレビュー画面と区別するため、特定の色や線で描画される。たとえばコンテナの基準サイズに該当する枠線は赤色の点線などで描画される。これにより、ユーザはプレビュー表示中でも元のレイアウトがどのように変化したのかが、直感的に理解することができるようになる。なお、上記のような通常のプレビュー表示に加えて、さらに1801〜1804が表示されたプレビューを、以下、「レイアウトチェック用プレビュー」と呼ぶ。
【0117】
5−2 レイアウトチェック用プレビュー表示処理の流れ
次に図19のフローチャートを用いてレイアウトチェック用プレビュー表示処理の流れを説明する。なお、これらの処理はホストコンピュータ内のプロセッサ135によって処理されることとなる。ステップ1901において、レイアウト編集アプリケーションプログラム121は、通常のプレビュー表示中に図18のようなレイアウトチェック用プレビューを表示するという指定が、ユーザインターフェース103を介して要求されたかどうかを判定する。ユーザが指定する際に用いるユーザインターフェースの一例を図26に示す。例えば通常プレビュー表示中にメニュー304から「レイアウト変化のチェック」等の項目を選択することで、図26のようなダイアログ2600が表示され、当該ダイアログ2600からユーザが指定をしてOKボタン2607を押すことで、レイアウトチェック用プレビューが表示される。図26でいえば「全体のレイアウト結果を表示する」(2601)を選択することとなる。
【0118】
また、別の指定方法の例としては、ユーザがプレビュー中に任意のキーボードボタンを押すことが考えられる。例えば、「F2」キーが押された場合、ユーザインターフェース103を介してレイアウト編集アプリケーションプログラム121がその情報を受け取り、レイアウトエンジン105により1801〜1804を描画する処理が行われ、レイアウトチェック用プレビューがされるように構成してもよい。このときに押すキーボードボタンは、レイアウト編集アプリケーション121側があらかじめ任意に決めていてもよいし、また設定画面を設けて、ユーザが任意にキーボードボタンを設定できるようにしてもよい。
【0119】
図19に戻る。ステップS1901でYESと判定された場合、ステップS1902では、レイアウトエンジン105が、処理を行うために必要な変数を初期化する。ここでは各コンテナに番号が1から順番に振られているとして、その番号をXとし、またXを1に初期化している。また全コンテナ数をNとしている。
【0120】
ステップS1903では、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトでコンテナを描画する。
【0121】
ステップS1904では、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトと自動レイアウト処理後のレイアウトで、コンテナの幅または高さに変更があったかどうかを判定する。
【0122】
ステップS1904でYESと判定された場合、ステップS1905で、レイアウトエンジン105が、コンテナのサイズ変化を示すものを描画する。例えば図18のように、幅または高さのそれぞれについて、変更分の長さで矢印を描画する。
【0123】
ステップS1906において、レイアウトエンジン105が、X番目のコンテナについて、レイアウト編集処理時のレイアウトと自動レイアウト処理後のレイアウトとで、フォントサイズが変化したかを判定する。
【0124】
ステップS1906がYESと判定された場合、ステップS1907において、レイアウトエンジン105が、X番目のコンテナについてフォントサイズがどのように変わったのかを描画する。例えば、フォントサイズが12から10に変更した場合、「12→10」と描画する方法が考えられる。
【0125】
ステップS1908では、レイアウトエンジン105が、Xを1プラスする。これは次のコンテナの処理に進むための処理である。
【0126】
ステップS1909では、レイアウトエンジン105において、XがNよりも大きいかどうかを判定する。XがN以下の場合、まだ処理していないコンテナがあることになるため、ステップS1903に進む。
【0127】
なお、ステップS1903〜1909は、レイアウトエンジン105がX番目のコンテナに対するレイアウト変化の描画を行う処理であり、他の実施形態のフローチャートでも使用する。
【0128】
以上の説明から明らかなように、本実施形態によれば、レイアウトチェック用プレビューの表示画面において、レイアウトがどのように変化したのかが描画されるため、ユーザはレイアウト編集処理時のレイアウトと自動レイアウト処理時のレイアウトとの違いが一目でわかるようになり、コンテナの配置や制御条件の設定等の修正が容易に行えるようになる。
【0129】
[第2の実施形態]
上記第1の実施形態では、レイアウトチェック用プレビュー時に全コンテナについてレイアウト変化を描画(1801〜1804)したが本発明はこれに限られず、一部のコンテナについてのみ、レイアウト変化(1801〜1804)の描画をするようにしてもよい。
【0130】
上記第1の実施形態によれば、全体についてレイアウトがどのように変更したのかがわかるという利点がある一方、コンテナが複数ある場合、全コンテナについてレイアウト変化の描画(1801〜1804)がなされてしまい、結果としてレイアウトチェック用プレビュー画面全体が煩雑としてわかりにくくなる可能性がある。また、特定のコンテナについてのみの情報が知りたい場合にも、全コンテナのレイアウト変化の描画がされるのは好ましくない。
【0131】
本実施形態はかかる点を考慮したものであり、本実施形態におけるレイアウトチェック用プレビュー表示を図20に示す。図20では任意のコンテナ(2004)をクリックしている。この場合にクリックしたコンテナ(2004)と、そのコンテナ(2004)と直接リンクを用いて関連付けられているコンテナ(2003)について、レイアウト変化の描画がされている(コンテナ2001、2002についてはコンテナ2004と直接リンクが設定されていないのでレイアウト変化が描画されない)。このように、本実施形態によれば、情報を知りたいコンテナを選択することにより、指定したコンテナとその周辺のコンテナのみについてレイアウト変化を知ることができるようになる。
【0132】
次に図21のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はホストコンピュータ内のプロセッサ135がレイアウト編集アプリケーションプログラムに基づいて処理を進める。ステップS2101では、レイアウト編集アプリケーションプログラム121が、通常のプレビュー表示中に、図20のような指定したコンテナ(2004)とそのコンテナ(2004)と直接リンクが設定されているコンテナ(2003)とについて、レイアウト変化の描画をするという指定が、ユーザインターフェース103を介してなされたかどうかを判定する。この指定方法は、例えば、キーボードボタンである「Shift」キーを押しながら任意のコンテナ(2004)をクリックする等が考えられる。また他の指定方法としては、図26のように、ダイアログ上でコンテナを選んで、指定することが考えられる。図26でいえば、ユーザはまず「選択したコンテナについて結果を表示する」(2602)にチェックし、かつリストボックス2603からコンテナを選択して、さらに「直接リンクしているコンテナについて結果表示」(2604)を選択することで指定することができる。
【0133】
ステップS2101でYESと判定された場合、ステップS2102では、レイアウトエンジン105が、処理を行うために必要な変数の初期化を実行する。これはステップS1902と同等である。
【0134】
次にステップS2103では、レイアウトエンジン105が、X番目のコンテナがステップS2101で指定されたコンテナであるかどうかを判定する。ここで指定されたコンテナとは、ステップS2101でクリックされたコンテナ、またはリストボックス2603により選択されたコンテナである。図20の例でいえば、コンテナ2004がそれにあたる。
【0135】
一方、ステップS2103においてNOと判定された場合、レイアウトエンジン105が、X番目のコンテナがステップS2101で指定されたコンテナと直接リンクしているかどうかを判定する。図20の例でいえば、コンテナ2003がそれにあたる。
【0136】
ステップS2103またはステップS2104でYESと判定された場合、ステップS2107において、レイアウトエンジン105が、X番目のコンテナのレイアウトチェック用プレビュー表示のための描画処理を行う。これは図19のステップS1903〜1909と同等である。
【0137】
一方、ステップS2104においてNOと判定された場合、ステップS2105において、レイアウトエンジン105が、Xの値を1プラスする。
【0138】
次にステップS2106において、レイアウトエンジン105が、XがNより大きいかどうかを判定する。NOの場合はステップS2103に進む。YESの場合は処理を終了する。
【0139】
[第3の実施形態]
上記第2の実施形態では、指定したコンテナとそれに直接リンク設定されているコンテナについてレイアウト変化の描画をする方法を述べた。これに対して本実施形態では、指定したコンテナと、それに最も影響を与えたコンテナについてのレイアウト変化の描画をする場合について説明する。
【0140】
上記第2の実施形態では、指定したコンテナと、それに直接リンクしているコンテナについてのレイアウトの変化の具合がわかる。しかし、指定したコンテナの配置や制御条件の設定を修正したい場合に、最も知りたい情報は、そのコンテナに最も影響を与えたコンテナのレイアウト変化である。このとき、最も影響をあたえたコンテナは、指定したコンテナに直接リンクしておらず、間接的にリンクされている場合がある。この場合、上記第2の実施形態では、知りたい情報がわからないこととなる。ここでいう間接的にリンクしているコンテナとは、指定したコンテナとリンクが設定されているコンテナが、さらにリンクしているコンテナである。図17の例でいえば、コンテナ1704と間接的にリンクしているコンテナは、コンテナ1701とコンテナ1702となる。
【0141】
本実施形態はかかる点を考慮したものであり、本実施形態におけるレイアウトチェック用プレビュー表示を図22に示す。図22に示すように、レイアウトチェック用プレビュー表示時に、ユーザがクリックしたコンテナ(2204)に最も影響を与えたコンテナ(2201)について、レイアウト変化の描画がされている(その他のコンテナ2202、2203についてはレイアウト変化が描画されない)。これにより、ユーザが指定したコンテナのレイアウトを修正したい場合に、どのコンテナの配置や制御条件の設定を修正するべきかが一目でわかるようになる。
【0142】
次に図23のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はホストコンピュータ内のプロセッサ135がレイアウト編集アプリケーションプログラムに基づいて進めていく。ステップS2301では、レイアウト編集アプリケーションプログラム121が、通常のプレビュー表示中に、図22のように指定したコンテナ(2204)と、そのコンテナ(2204)に最も影響をあたえたコンテナ(2201)について、レイアウト変化の描画をするという指定が、ユーザインターフェース103を介してなされたかどうかを判定する。この指定方法は、例えば、キーボードボタンである「Ctrl」キーをユーザが押しながら任意のコンテナをクリックする等が考えられる。他の指定方法としては、図26のように、ユーザがダイアログ上でコンテナを選んで、指定することが考えられる。図26でいえば、ユーザはまず「選択したコンテナについて結果を表示する」(2602)にチェックし、リストボックス2603からコンテナを選択して、さらに「最も影響を与えたコンテナについて結果表示」(2605)を選択することで指定することができる。
【0143】
ステップS2301でYESと判定された場合、ステップS2302において、レイアウトエンジン105が、レイアウトプレビュー用表示処理を行うために必要な変数の初期化処理をする。コンテナ番号をXとして、Xを1に初期化する。また全コンテナ数をNとする。さらに、最もサイズ変動のあったコンテナの番号を保存しておくための変数をAとする。Aは−1に初期化する。またそのときのレイアウト変更値をSとし、Sは0に初期化する。ここでレイアウト変更値とは、コンテナのレイアウトがどれだけ変更したのかを示す値である。この値の求め方は複数の方法が考えられる。例えば、単純にコンテナの面積がどれだけ変化したか、というのが考えられる。この場合のSの値は、以下の式で求めることができる。
S=|プレビュー時のコンテナの面積−設計時のコンテナの面積|
また、別の方法としては、コンテナの高さ、幅についてそれぞれ差を計算し、それらを合計する、等が考えられる。その他にも多数の方法が考えられる。
【0144】
指定したコンテナに直接または間接的にリンクしているコンテナのうち、最もレイアウト変更の大きかったコンテナが、すなわち指定したコンテナに最も影響をあたえたコンテナとなる。
【0145】
ステップS2303において、レイアウトエンジン105が、X番目のコンテナがステップS2301で指定されたコンテナと直接または間接的にリンクしているかどうかを判定する。
【0146】
ステップS2303でYESと判定された場合は、ステップS2304において、レイアウトエンジン105が、X番目のコンテナのレイアウト変化値を求めて変数Wに保存しておく。なお、これらのデータはホストコンピュータ内の記憶部(メモリ136)に保存される。
【0147】
次にステップS2305において、レイアウトエンジン105が、W(レイアウト変化値)がS(レイアウト変更値)よりも大きいかどうかを判定する。
【0148】
ステップS2305でYESと判定された場合には、ステップS2306において、レイアウトエンジン105が、Xの値をAに保存しておく。また、Wの値をSに保存しておく。
【0149】
次にステップS2307において、レイアウトエンジン105が、Xの値に1をプラスする。
【0150】
ステップS2308では、レイアウトエンジン105が、XがNよりも大きいかどうかを判定する。判定がNOの場合、ステップS2303に進む。
【0151】
ステップS2303〜ステップS2308の処理によって、最もレイアウト変更のあったコンテナの番号が変数Aに保存されていることになる。一方、Aが初期値の−1のままである場合は、ステップ2301でユーザに指定されたコンテナに直接・間接的にリンクしているコンテナについて、レイアウトの変化があったものは無かったということになる。
【0152】
次にステップS2309において、レイアウトエンジン105が、Aの値が−1以外であるかどうかを判定する。詳細には記憶部に保存されているAの値から判定されることとなる。
【0153】
ステップS2309でYESと判定された場合は、レイアウトエンジン105が、ステップS2310においてA番目のコンテナのレイアウト変化の描画をする。これは図19のステップS1903〜1909で「X=A」とした場合と同等である。
【0154】
次にステップS2311において、レイアウトエンジン105が、ステップS2301で指定されたコンテナについてレイアウト変化の描画をする。これは図19のステップS1903〜1909で「X=指定したコンテナ番号」とした場合と同等である。
【0155】
[第4の実施形態]
上記第1乃至第3の実施形態では、プレビュー表示中の描画の上に、さらにレイアウト変化を示す描画を行う場合について説明した。これに対して、本実施形態ではレイアウトチェック用プレビューにおいて、コンテンツ内容を非表示にする方法を述べる。
【0156】
上記第1乃至第3の実施形態では、レイアウトチェック用プレビュー表示時に、コンテンツの内容も表示されていた。しかし、コンテナが複数ある場合、プレビュー表示画面が煩雑になり、結果として画面が見づらくなる場合がある。
【0157】
一方、レイアウトのチェックをする際にコンテナのレイアウトのみが表示されていればよく、コンテンツの内容までは必要ないというユーザもいる。
【0158】
そこで、図24に示すように、レイアウトチェック用プレビュー時に、コンテンツの内容を非表示にして、必要な情報のみを表示して、画面を見やすくする方法が考えられる。図24は第1の実施形態に対してコンテンツの内容を非表示にしたものである。コンテナ2401〜2404において、コンテンツの内容が非表示になっている。これにより、レイアウト変化の情報のみが表示されることとなり、画面が見やすくなる。この方法は第2の実施形態や第3の実施形態についても同様に適応できる。
【0159】
次に図25のフローチャートを用いて、本実施形態におけるレイアウトチェック用プレビュー表示処理の流れを説明する。なお、以下の処理はレイアウト編集アプリケーションプログラムに基づいて、ホストコンピュータ内のプロセッサ135が処理を進める。ステップS2501では、レイアウト編集アプリケーションプログラム121が、レイアウトチェック用プレビュー時に、コンテンツの内容を非表示にする指示があったかどうかを判定する。指定方法は例えばレイアウトチェック用プレビュー表示中に、ユーザがキーボードボタンである「F3」キー等の決まったキーを押すことが考えられる。別の指定方法としては、図26のようにダイアログからユーザが指定することが考えられる。図26で言えば、ユーザが「コンテンツ内容を表示しない」(2606)にチェックをする。
【0160】
ステップS2501でYESと判定された場合、ステップS2502において、レイアウトエンジン105が、処理を行うために必要な変数の変数の初期化をする。この処理は図19のステップS1902と同等である。
【0161】
次にステップS2503において、X番目のコンテナについて、レイアウトエンジン105が、コンテンツ内容を消す処理を行う。なお、ここで行う処理は画面にコンテンツデータを表示させないだけであり、流し込まれたコンテンツデータはホストコンピュータ内の記憶部に保持されている。
【0162】
次にステップS2504において、レイアウトエンジン105が、Xの値に1をプラスする。
【0163】
次にステップS2505において、レイアウトエンジン105が、XがNより大きいかどうかを判定する。NOと判定された場合、ステップS2503に進む。ステップS2502〜ステップS2505によって、全コンテナのコンテンツ内容が非表示になる。
【0164】
[他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0165】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0166】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0167】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0168】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0169】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0170】
以上の処理により、流し込まれるコンテンツデータに応じて自動的にレイアウトを設定する自動レイアウトシステムにおいて、予め設定したレイアウトがコンテンツデータを流し込むことによってどのような変化が生じたのかを認識させるため基準サイズのコンテナを表示し、ユーザに対してレイアウトの変化を認識させることができ、さらに何が原因で上述したような変化が生じたのかを把握させることにより、ユーザの意図を反するレイアウトが作成された場合であっても、簡単に修正を行えるようになる。
【図面の簡単な説明】
【0171】
【図1A】本発明の一実施形態にかかるホストコンピュータを備える自動レイアウトシステムの構成を示す図である。
【図1B】本発明の一実施形態にかかるホストコンピュータの構成を更に詳細に示すブロック図である。
【図2】本発明の一実施形態にかかるホストコンピュータを備える自動レイアウトシステムの構成を示す図である。
【図3】レイアウト編集アプリケーションプログラムのメインウインドウを示す図である。
【図4】レイアウト編集アプリケーションプログラムのメインウインドウを示す図である。
【図5】コンテナの表示ルールを説明する図である。
【図6】リンク設定の処理の流れを示すフローチャートである。
【図7】リンク設定時のUIの一例を示す図である。
【図8】レイアウトエンジンによる自動レイアウト処理を示すフローチャートである。
【図9】レイアウトエンジンによる自動レイアウト処理を示すフローチャートである。
【図10】自動レイアウト処理を説明するための図である。
【図11】自動レイアウト処理時における、コンテナの集合について説明した図である。
【図12】可変リンクツールによるコンテナ配置を示す図である。
【図13】リンク設定の処理の流れを示すフローチャートである。
【図14】リンクの設定ダイアログウインドウを示す図である。
【図15】固定リンクによる自動レイアウト処理結果例を示す図である。
【図16】可変リンクによる自動レイアウト処理結果例を示す図である。
【図17】従来のプレビュー表示画面の一例を示したものである。
【図18】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図19】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図20】本発明の第2の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図21】本発明の第2の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図22】本発明の第3の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図23】本発明の第3の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図24】本発明の第4の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示の一例を示す図である。
【図25】本発明の第1の実施形態にかかるホストコンピュータにおけるレイアウトチェック用プレビュー表示処理の流れを示すフローチャートである。
【図26】第1乃至第4の実施形態においてレイアウトチェック用プレビューの表示をユーザが指示するためのダイアログの一例を示す図である。
【符号の説明】
【0172】
101 ホストコンピュータ
103 ユーザインターフェース
105 レイアウトエンジン
119 データベース
121 レイアウト編集アプリケーションプログラム
132 キーボード
133 マウス
143 I/Oインタフェース
144 ビデオディスプレイ
301 アプリケーションウインドウ
303 ツールバー
313 カーソル/ポインタ
406 リンクツールボタン
407、408 コンテナ
409 アンカーアイコン
410 固定されていない辺
412 リンク
【特許請求の範囲】
【請求項1】
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理装置であって、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御手段と、
前記制御手段により制御された前記データ領域のレイアウトを表示する表示手段と、を備え、
前記表示手段は、更に、所定の指示に応じて前記制御手段により制御される前の前記基準サイズのデータ領域を表示することを特徴とする情報処理装置。
【請求項2】
前記表示手段は、前記制御手段により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示手段は、前記制御手段により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記制御手段は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示手段は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
【請求項5】
前記表示手段は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項1乃至4のいずれかに記載の情報処理装置。
【請求項6】
前記表示手段は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項1乃至5のいずれかに記載の情報処理装置。
【請求項7】
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理方法であって、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御工程と、
前記制御工程により制御された前記データ領域のレイアウトを表示する表示工程と、を備え、
前記表示工程は、更に、所定の指示に応じて前記制御工程により制御される前の前記基準サイズのデータ領域を表示することを特徴とする情報処理方法。
【請求項8】
前記表示工程は、前記制御工程により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項7に記載の情報処理方法。
【請求項9】
前記表示工程は、前記制御工程により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項7または8に記載の情報処理方法。
【請求項10】
前記制御工程は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示工程は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項7乃至9のいずれかに記載の情報処理方法。
【請求項11】
前記表示工程は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項7乃至10のいずれかに記載の情報処理方法。
【請求項12】
前記表示工程は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項7乃至11のいずれかに記載の情報処理方法。
【請求項13】
ドキュメント上の複数のオブジェクトにデータを流し込むことによりドキュメントを生成するための情報処理方法をコンピュータに実行させるプログラムであって、前記情報処理方法が、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御工程と、
前記制御工程により制御された前記データ領域のレイアウトを表示する表示工程と、を備え、
前記表示工程は、更に、所定の指示に応じて前記制御工程により制御される前の前記基準サイズのデータ領域を表示することを特徴とするプログラム。
【請求項14】
前記表示工程は、前記制御工程により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項13に記載のプログラム。
【請求項15】
前記表示工程は、前記制御工程により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項13または14に記載のプログラム。
【請求項16】
前記制御工程は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示工程は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項13乃至15のいずれかに記載のプログラム。
【請求項17】
前記表示工程は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項13乃至16のいずれかに記載のプログラム。
【請求項18】
前記表示工程は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項13乃至17のいずれかに記載のプログラム。
【請求項1】
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理装置であって、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御手段と、
前記制御手段により制御された前記データ領域のレイアウトを表示する表示手段と、を備え、
前記表示手段は、更に、所定の指示に応じて前記制御手段により制御される前の前記基準サイズのデータ領域を表示することを特徴とする情報処理装置。
【請求項2】
前記表示手段は、前記制御手段により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示手段は、前記制御手段により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記制御手段は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示手段は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
【請求項5】
前記表示手段は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項1乃至4のいずれかに記載の情報処理装置。
【請求項6】
前記表示手段は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項1乃至5のいずれかに記載の情報処理装置。
【請求項7】
ドキュメント上の複数のデータ領域に流し込まれるコンテンツデータに応じてドキュメントを生成する情報処理方法であって、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御工程と、
前記制御工程により制御された前記データ領域のレイアウトを表示する表示工程と、を備え、
前記表示工程は、更に、所定の指示に応じて前記制御工程により制御される前の前記基準サイズのデータ領域を表示することを特徴とする情報処理方法。
【請求項8】
前記表示工程は、前記制御工程により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項7に記載の情報処理方法。
【請求項9】
前記表示工程は、前記制御工程により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項7または8に記載の情報処理方法。
【請求項10】
前記制御工程は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示工程は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項7乃至9のいずれかに記載の情報処理方法。
【請求項11】
前記表示工程は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項7乃至10のいずれかに記載の情報処理方法。
【請求項12】
前記表示工程は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項7乃至11のいずれかに記載の情報処理方法。
【請求項13】
ドキュメント上の複数のオブジェクトにデータを流し込むことによりドキュメントを生成するための情報処理方法をコンピュータに実行させるプログラムであって、前記情報処理方法が、
前記ドキュメント上にある基準サイズのデータ領域に対して流し込まれる前記コンテンツデータに基づいて前記データ領域のレイアウトを制御する制御工程と、
前記制御工程により制御された前記データ領域のレイアウトを表示する表示工程と、を備え、
前記表示工程は、更に、所定の指示に応じて前記制御工程により制御される前の前記基準サイズのデータ領域を表示することを特徴とするプログラム。
【請求項14】
前記表示工程は、前記制御工程により制御される前後の前記データ領域のサイズの変化を表示することを特徴とする請求項13に記載のプログラム。
【請求項15】
前記表示工程は、前記制御工程により制御される前後の前記データ領域内のコンテンツデータのフォントサイズの変化を表示することを特徴とする請求項13または14に記載のプログラム。
【請求項16】
前記制御工程は、前記複数のデータ領域を関連付けるリンクを用いて該複数のデータ領域のレイアウトを制御し、前記表示工程は、該複数のデータ領域のうち、所定のデータ領域と前記リンクにより関連付けられたデータ領域について前記レイアウトの変化を表示することを特徴とする請求項13乃至15のいずれかに記載のプログラム。
【請求項17】
前記表示工程は、前記複数のデータ領域のうち、所定のデータ領域のレイアウトの変化に影響を与えたデータ領域のレイアウトの変化を表示することを特徴とする請求項13乃至16のいずれかに記載のプログラム。
【請求項18】
前記表示工程は、ユーザからの指示に基づいて、前記流し込まれるコンテンツデータを非表示とすることを特徴とする請求項13乃至17のいずれかに記載のプログラム。
【図1A】
【図1B】
【図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】
【図1B】
【図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】
【公開番号】特開2006−72518(P2006−72518A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−252896(P2004−252896)
【出願日】平成16年8月31日(2004.8.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願日】平成16年8月31日(2004.8.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]