JP4125249B2 - 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム - Google Patents

情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム Download PDF

Info

Publication number
JP4125249B2
JP4125249B2 JP2004024590A JP2004024590A JP4125249B2 JP 4125249 B2 JP4125249 B2 JP 4125249B2 JP 2004024590 A JP2004024590 A JP 2004024590A JP 2004024590 A JP2004024590 A JP 2004024590A JP 4125249 B2 JP4125249 B2 JP 4125249B2
Authority
JP
Japan
Prior art keywords
layout
data
container
partial display
display area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004024590A
Other languages
English (en)
Other versions
JP2005216183A5 (ja
JP2005216183A (ja
Inventor
健太 原
和文 小橋
順 牧野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004024590A priority Critical patent/JP4125249B2/ja
Priority to US11/030,666 priority patent/US7596746B2/en
Publication of JP2005216183A publication Critical patent/JP2005216183A/ja
Publication of JP2005216183A5 publication Critical patent/JP2005216183A5/ja
Application granted granted Critical
Publication of JP4125249B2 publication Critical patent/JP4125249B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、テキストやイメージで構成されたドキュメントの生成、編集、そして印刷のための情報処理技術に関するものであり、更に詳しくは、バリアブルデータドキュメントの生成、編集、そして印刷に好適なものである。
近年、商品の多品種化で商品ライフサイクルが短くなっていること、インターネットの普及により、これを利用した消費者のカスタマイズサービス指向が強くなっていることなどの要因からCRM(Customer Relationship Management)、One-to-Oneマーケティングの必要性が注目されている。これらの手法は顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
One-to-Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。ここ最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる情報量のコンテンツを最適にレイアウトして表示することが求められるようになった。
従来、このシステムにおいてカスタマイズ文書を作成するには、ドキュメント上にコンテナ(帳票フォームではフィールド領域とも呼ばれる)等によりレイアウトを作成し、データベースとレイアウトを関連付けることにより達成していた。この場合、レイアウトされたコンテナのサイズは固定であるため、顧客によって違った大きなサイズのデータが差し込まれた時にはテキストの場合は全てのテキストをそのコンテナ内に表示出来ない、またイメージの場合は本来の画像の大きさよりも縮小されて表示される、あるいは元サイズのまま表示する場合はコンテナ内に全て表示出来ないなどの問題があった。
この問題を解決するための、更なる自動レイアウトの技術としては、あるコンテナのサイズが大きくなった場合、隣接したコンテナのサイズを小さくする技術が特許文献1の「レイアウトデザイン装置」に開示されている。また、特許文献2の「帳票認識方法および装置」のように、帳票認識の技術としてイメージを入力としてイメージと帳票の一致を調べるものがある。
特開平7−129658号公報(段落[0049]、図8) 特開2000−155795号公報
しかしながら、上述の特許文献1及び2においては、自動レイアウトシステムにおけるレイアウトチェックに関しては記載されていない。また、上述した従来の技術では、全てのレコードに最適なテンプレートのデザインをするために、フィールド中のコンテナのレイアウトを動的に制御するバリアブル印刷において、あるレコードを選択してテンプレートのレイアウトを行うが、そのレイアウトが他のレコードにおいて適切かどうかは、実際のレコードの切り替えを行い、テンプレートをデザインするオペレータが目視でチェックするしか方法がない。そしてその場合、全てのレコードでレイアウトの結果が適切であることを確認するためには、全てのレコードで目視により確認作業をしなければならず、レコード数が例えば1万レコードなど大きな数の場合、その作業に膨大な時間がかかってしまうという問題がある。
本発明は、上記の課題を鑑みてなされたものであり、全データに関するレコードに関して、作成した基本レイアウトとレイアウトバランスが相対的に大きく異なるレイアウト結果を効率的に確認する情報処理技術を提供することを目的とする。
上記の課題を解決するための本発明にかかる情報処理方法は、抽出手段と、決定手段と、表示制御手段とを備え、割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理装置における情報処理方法であって、
前記抽出手段は、前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出工程と、
前記決定手段は、前記抽出工程により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定工程と
前記表示制御手段が、前記決定工程において表示すると決定された第1レイアウトを表示する表示制御工程とを備えることを特徴とする。
あるいは、上記の課題を解決するための本発明にかかる情報処理装置は、割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理装置であって、
前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出手段と、
前記抽出手段により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定手段と
前記決定手段により表示すると決定された第1レイアウトを表示する表示制御手段とを備えることを特徴とする。
あるいは、上記の課題を解決するための本発明にかかるプログラムは、割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理をコンピュータに実行させるコンピュータ読み取り可能なプログラムであって、当該プログラムが、コンピュータを、
前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出手段と、
前記抽出手段により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定手段と
前記決定手段により表示すると決定された第1レイアウトを表示する表示制御手段として機能させることを特徴とする。
本発明によれば、全データに関するレコードに関してレイアウト結果を効率的に確認することが可能になる。
本発明の好適な実施形態を図面を参照しつつ説明する。
<実施形態1>
<システム構成図>
図1Aはコンテナサイズを可変に設定してドキュメントを印刷するシステム100を図示している。このシステムにおいて実行するコンテナサイズの制御、コンテナ間のリンク設定は図1Bで詳しく説明されるホストコンピュータ101の制御の下に実行される。図16で記述されるプロセスは、レイアウト制御装置であるホストコンピュータ101内で実行され、システム100上で実行可能となるレイアウト編集アプリケーションプログラム121(本発明のプログラム)のようにソフトウェアの全体、あるいはその一部分で実行される。特にレイアウト編集や印刷のステップはホストコンピュータ101によるソフトウェアによって実行される。
ソフトウェアは、例えば、以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からホストコンピュータにロードされ、実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラム、あるいはそのプログラムを格納するコンピュータの可読媒体は、コンピュータと協働したドキュメントのレイアウト編集やバリアブルデータ印刷に必要な演算処理や表示制御、コンテンツに関する情報処理を実行する手段としてコンピュータの機能を特定する。
ホストコンピュータ101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置と接続する。入力/出力(I/O)インターフェース138はホストコンピュータ101をネットワーク107に接続してシステム100を他のコンピュータ装置(例えば、データベースサーバ117)に接続することができる。そのネットワーク107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
ホストコンピュータ101は典型的に少なくとも1つのプロセッサーユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェース、キーボード132やマウス133のためのI/Oインターフェース143を含んでいる。記憶装置139はハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含んでいる。ここでは図示されていないが磁気テープドライブもまた記憶装置として使用することができる。
CD−ROMドライブ142は不揮発性のデータソースとして提供される。ホストコンピュータ101はGNU/LINUXやマイクロソフトウィンドウズ(登録商標)のようなオペレーションシステムや、典型的にはオペレーションシステムに従い形成されたコンピュータシステムのオペレーションによって、相互接続バス134を介して通信を行うホストコンピュータ101のプロセッサユニット135からI/Oインターフェース143を利用することができる。図1Aに示したホストコンピュータ101を含んだシステムの例としては、IBM互換PCやSUN のSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
レイアウトアプリケーションプログラム121は典型的にはハードディスクドライブ140に常駐し、プロセッサユニット135により読み出され、実行される。プログラム121を記憶する記憶装置139とネットワーク107からフェッチされるデータはハードディスクドライブ140、またはこれに呼応してメモリユニット136が使用され、アプリケーションプログラム121がCD−ROMやフロッピー(登録商標)ディスク上でエンコードされ、対応するCD−ROMドライブ142やFDD141を通じて読み込まれユーザに提供される。
あるいはもう一つの方法としてアプリケーションプログラム121はネットワーク107からユーザによってインストールするようにしてもよい。さらにソフトウェアは磁気テープまたはROMまたは集積回路、光磁気ディスクまたは無線またはホストコンピュータ101とその他のデバイス間の赤外線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からホストコンピュータ101内にロードすることもできる。但し、これらのコンピュータ可読媒体は、単に関連するコンピュータ可読媒体の規範であり、媒体の種類がこれらに限定される趣旨ではなく、他のコンピュータ可読媒体も使用することも可能である。
また、レイアウト編集と名づけられたアプリケーション121はバリアブルデータ印刷(VDP)を行うためのプログラムモジュールであり、2つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのモジュールは、レイアウトエンジンモジュール105であり、これはデータが流し込まれる部分表示領域であるコンテナ(矩形の範囲)のサイズや位置の制限に従ってデータベース119に格納されているバリアブルデータから1レコードずつ読み込み、読み込んだデータとコンテナの制限とから、読み込んだデータが流し込まれるコンテナの大きさや位置等を計算するためのソフトウェアモジュールである。レイアウトエンジン105は各部分表示領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成する。
2つめのモジュールであるユーザインターフェースモジュール103はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースとコンテナとを関連付けるメカニズムを提供するモジュールである。ユーザインターフェースモジュール103とレイアウトエンジンモジュール105はコミュニケーションチャネル123を介して通信することが可能である。ドキュメント作成のためのデータソースはデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ117上にあるデータベース119に格納されている。ホストコンピュータ101はネットワーク107との接続を介してデータベースサーバ117と通信することができる。バリアブルデータ印刷を実行する場合、レイアウト編集アプリケーション121はホストコンピュータ101か、若しくは他のコンピュータで構成されるファイルサーバ115に保存されるドキュメントテンプレートを生成する。またレイアウト編集アプリケーション121はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはホストコンピュータ101の記憶装置139に保存されるか、ファイルサーバ115に保存されるか、あるいはプリンタ113に直接印刷される。
プリントサーバ109は直接ネットワークに接続していないプリンタ113にネットワーク機能を提供するコンピュータである。プリントサーバ109とプリンタ113は典型的な通信チャネル111を介して接続する。
図2はレイアウトエンジンモジュール105をホストコンピュータ101の他にエンジンサーバ227にもレイアウトエンジン225を設けた構成を示す図である。エンジンサーバ227は典型的なコンピュータにより構成され、ファイルサーバ115に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェースモジュール103の制御の下、ユーザーインターフェース(UI)画面を介して入力され、特定のレコードのみ印刷するように設定することができる。
<アプリケーションの構成図>
<メインウインドウ>
図3で示されるアプリケーションウインドウ301は、ユーザインターフェースモジュール103(図1)によって、操作時にディスプレイ装置144に表示される。アプリケーションウインドウ301は、非表示にすることや、スクリーン上の色々な場所に移動することが可能なメニューバー302とツールバー303、そしてマウス133の位置・動作によって場所を移動可能なワークエリア306とオプションのパレット311とカーソル/ポインタデバイス313を有しており、これらにより特徴付けされる。
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を有し、ツールバー303は、アプリケーションの特別なモードによって非表示にしたり、または表示することが可能な多くのツールボタン305を有する。オプションのルーラー308はワークエリア内のポインター、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール機能を提供するボタン312を有する。パレット311の表示はオプションで、ワークエリアの前面に表示することもでき、あるいは背面に隠すこともできる。また、このパレット311に対する表示制御は、アプリケーションウインドウ301の範囲内のみに制限したり、あるいはアプリケーションウインドウ301の外側に部分的、あるいはその全体を表示するようにすることもできる。
ツールバーエリア303には少なくとも、ユーザによる選択が可能な「ボタン」(403〜406)を備える(例えば、図4を参照)。以下、ボタン403〜406を説明する。
選択ツールボタン403は、コンテナの辺を選択、移動、サイズ変更、そしてコンテナのロック(固定)、あるいはロック解除をするために使われる。コンテナは、複数のコンテナの周りをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数のコンテナの選択を可能にする。
イメージコンテナツールボタン404は、スタティック或いはバリアブルイメージを持つコンテナを作成するために使われる。
テキストコンテナツールボタン405は、スタティック或いはバリアブルテキストを持つコンテナを作成するために使われる。
リンクツールボタン406は、コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。これらのボタンは、周知の技術であるように操作状況に合わせて変化するアイコンとして実装される。レイアウト編集アプリケーション121の図3に示したアプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
<ドキュメントテンプレート>
図3に示したワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使用される。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量やサイズに基づいてどのように変化するかを理解することを可能にするものである。外部のデータベースがテンプレートにリンクされている場合には、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージをそれらのコンテナに表示することができる。ドキュメントの構造とバリアブルデータコンテナの表示は、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示するようにすることができる。
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309に特徴付けられる。ドキュメントテンプレート309はページが複数あることを示すことができる。与えられたドキュメントテンプレートのページサイズは、周知の技術としてユーザによって指定される。例えばメニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。それぞれのドキュメントにおける実際のページ数は、バリアブルデータによって変化する可能性があり、もし1ページ内にバリアブルデータを収めることができず、所定の用紙サイズのページに各コンテナを収めるような制約が基本レイアウトになかった場合には、追加のページは自動的に作成される。所定の用紙サイズのページに各コンテナを収めるように制約(後述するアンカーアイコン等により設定可能である)が基本レイアウトに設定されている場合は、ページ内で各コンテナがお互いに押したり押されたりしながら、各コンテナサイズと位置が決定され、必要に応じて流し込まれるバリアブルデータが縮小され、レコード毎に動的にレイアウトが決定される。
図3において破線で示されるページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示すものであり、任意に設定することが可能なページマージン310である。また、図4は1ページのドキュメントテンプレート309上に表示することが可能なオブジェクトの例を示す図であり、図4では複数のコンテナ407及び408が示されており、コンテナの辺414の位置を固定するアンカーアイコン409と固定されていない辺410、リンク412そしてスライダー413によりコンテナ間の相互の関係が規定されている。アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4の例では、アンカーアイコン409は、コンテナ407の左上の角に設定されているため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合に、右方向及び下方向に拡大可能であることを示している。アンカーアイコン409が辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。リンク412は詳細は後述するが、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンクに設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
<コンテナ>
ここで、コンテナについて説明する。コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変のテキスト/イメージがレコード単位に流し込まれ、描画されるスペース(これを部分表示領域と呼ぶ)であり、図4に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナはマウス133の操作により移動、サイズ調整、再作成される。
コンテナは、アンカーアイコン409、リンク412、スライダー413によりコンテナの変形に関する拘束条件が規定されている。テキストやイメージデータの情報量に応じてその変形が許容されている方向にコンテナスペースの変形が制御されて、テキストデータやイメージデータがそのコンテナ内にレイアウトされる。2つのコンテナに関して相互に変形が必要となる場合、各コンテナに収納するべきテキストデータやイメージデータの量に応じて、相互のコンテナの変形がバランスするように(各コンテナにストレスの無い状態)に各コンテナの形状が制御される。
コンテナはポインティングデバイスとしてのマウス133の動作によりワークエリア306内の位置が特定され(図3の313)、ユーザインターフェースとしての画面内(図3)で移動、サイズ調整が施され、新たなコンテナを追加することも可能である。コンテナは、アンカーアイコンや、リンクそしてスライダーによりコンテナ間の相互の関係等の変形に関する種々の条件が設定され、コンテンツを表示する視覚的表現、そしてコンテナ間のインタラクションとコンテナ内の情報の編集機能を有している。ここで、コンテナを定義すると以下のようになる。
(1)コンテナは固定あるいは可変のコンテンツが入力され、可変コンテンツは、データソースからデータをとってきて、異なるドキュメントでは異なるデータに応じてコンテナサイズを可変するという意味でダイナミック(動的)である。可変コンテンツはアニメーション化されたもの、あるいは他の方法で時間を変更するコンテンツを含むことは印刷に適合していないため意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。けれども、可変コンテンツとリンクが設定されている場合、可変コンテナの動作によって、固定コンテンツはそれぞれのドキュメントで表示位置が異なるように表示制御される。
(2)コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定のような装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
(3)コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、典型的に印刷された出力物に対して反映され、装飾が反映された結果は可視化される。可変コンテンツはデータソースから特定のデータの表示をもたらす。すなわち、その特定のデータに対して、コンテナに設定されている条件に従い、コンテナのサイズが可変に設定される。可変に設定されたコンテナのレイアウト、およびコンテナ内の特定のデータ表現は、例えば、プリンタ113を介して印刷されるか、ディスプレイ装置144上で表示されるか、その両方により処理することが可能である。
(4)コンテナの設定に関し、システムはユーザインターフェースモジュール103を備え、例えば、コンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース(GUI)を有する。そして、ユーザインターフェースの要素はディスプレイ装置144上に表示される。しかしドキュメントは印刷されない。ユーザインターフェースモジュール103は、背景色やフォントのようなコンテナに関する装飾機能のいくつかをインタフェース画面上に表示させ、これらの装飾機能をコンテナの設定、編集、コンテナ表示に追加することができる。
(5)更に、ユーザインターフェースモジュール103による設定の例としては、コンテナ間のボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するためにコンテナに設定さするコーナー部のアイコンや、あるいはデータソースからデータをマージしたとき、コンテナの動作(例えば、上塗りした数、線、アイコンの設定、テキストの編集)を設定する。
<コンテナに対する制約>
コンテナはそれぞれのドキュメントにおけるコンテンツの内容を表示するために、コンテナをコンテンツと結びつけて表示制御するための制約がある。これらの制約(固定・可変コンテンツをコンテナと結びつけること)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントをコントロールする主要な方法である。制約の例は、たとえば、コンテナのコンテンツの高さは、最大値4インチとするような制約が挙げられる。もうひとつの制約としては、コンテナのコンテンツの左エッジは、それぞれのドキュメントで同じ水平位置で表示しなければならないとするような制約である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集のために設定することが可能である。
イメージがページ上に定義された位置を持っているように、コンテンツの配置もその位置が特定される。コンテナは位置とサイズを持ち、それらはバリアブルデータ印刷において、コンテナ内に挿入されるコンテンツの内容に応じてコンテナのレイアウトを設定された条件の下、コンテンツの内容を表示・編集することを可能にする。コンテナは、ユーザにドキュメントのコンテンツのサイズ・位置を指定することを可能にする。いくつかのドキュメントは一つのドキュメントテンプレートから生成されるので、コンテナはユーザインターフェースモジュール103により与えられるコンテナに対する制約を指定することができる。
1つのコンテナを構成する辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。たとえば、矩形のコンテナの左辺は、関連付けられたコンテンツが配置される左側の位置を与え、同様に、コンテナの高さは生成されたドキュメントに関連付けられたコンテンツの高さの制約を与える。
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
(1)コンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
(2)コンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
(3)距離の制約が固定なら、指定された距離は全てのドキュメントの制約となる。
(4)コンテナの左右辺が固定の場合、コンテナの高さあるいは垂直方向の位置は、コンテンツを完全にコンテナ内に収容するために、コンテナサイズは変形が許容されている高さ方向あるいは垂直方向に変えることが可能である。
(5)コンテナの上下辺が固定の場合、コンテナの幅あるいは水平位置は、コンテンツを完全にコンテナ内に収容するために、コンテナサイズは変形が許容されている幅方向あるいは水平方向に変えることが可能である。
(6)コンテナの垂直軸はコンテナの右と左辺の平行で、そして中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、すべてのドキュメントで同じである。この制約で、コンテナの幅は変化するかもしれない、左右辺両方が異なったドキュメントで、垂直軸にもっとも遠いかもっとも近いかもしれない、しかし軸は全てのドキュメントで同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
(7)同様に、もし水平軸が固定なら、コンテナの上そして下辺が垂直に位置されることを制約する、けれども高さは、この制約によって影響されない。
(8)水平、垂直軸両方が固定なら、コンテナの中心位置が固定されていることを意味する、しかし、幅・高さはこの制約によって影響されない。
(9)コンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、すべてのドキュメントで同じ場所で、そしてコンテナに関連付けられた同じ場所で表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
「固定」の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する「可変」である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション121では、各コンテナ(部分表示領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレート180の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
<コンテナ表示・編集>
<新規コンテナの作成方法>
コンテナは、テキストコンテナとイメージコンテナの2種類ある。テキストコンテナはテキスト、そして埋め込みのイメージを持つ。イメージコンテナは、イメージだけを持つ。図4で参照されるように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール404、あるいはイメージコンテナツール405をマウス133でクリックし、テンプレート309に四角形をドラッグすることによって、ドキュメントテンプレート309上に作成される。コンテナは、適切なツール404、405をアクティブにした後に、ドキュメントテンプレート309上でマウス133をクリックすることによって作成される。デフォルトサイズのコンテナが挿入されるか、新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが提供される。コンテナは自動的に前もって定義され、計算されたスキーマによって作成され、ドキュメントテンプレート309上に配置される。ここで生成されたコンテナをマウス等の入力手段により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログUI(部分表示領域設定手段に相当する)では、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ(幅、高さ)や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン(基本サイズと基準位置)を設定し、更に、最大コンテナサイズ(幅、高さ)と最小コンテナサイズ(幅、高さ)を設定することが可能となっている。
<コンテナの表示方法>
図5A〜5Dはコンテナを構成する辺に対するルールを例示的に説明する図である。レイアウト編集アプリケーション121は、辺の状態を表現するために、塗りつぶし線(503)あるいは点線(504)で辺を描き、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために辺、形の近くに描画されたコントロール点、502)、スライダー(辺の両サイドに描画された短い並行線、図4の413)、拡縮アイコン(505)、そして色を特徴として持っている。
図5A〜5Dに示すコンテナの表示方法のルールは、つぎの通りである。
1. それぞれの辺を固定するために、塗りつぶし線で描画する。
2. もし幅が固定なら、左と右の辺を塗りつぶし線で描画する。
3. もし高さが固定なら、上と下の辺を塗りつぶし線で描画する。
4. 軸は描画しない。
5. まだ描画されていない全ての辺は、それぞれの辺の近くに拡縮アイコンが描画され、点線になる。
6. 垂直辺あるいは軸のそれぞれのペアで、もし両者が固定なら、交差点にアンカーが描画される。
7. それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
8. 垂直辺あるいは軸のそれぞれのペアで、もしアンカーやスライダーが描画されていなければ、交差点にハンドルが描画される。
上述のルール1、2、3で定義された線は、前述したように固定あるいは制限されているため、実線で描画される。ルール5のように可変の辺は、点線で描画される。ルール6、7、8で定義された固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後で記述されるように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行手段としては、すべてのドキュメントで平均化されるコンテナのコンテンツエリア、あるいは可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。レイアウト編集アプリケーション121は以上のルールに従って、コンテナの表示制御を実行することができる。
コンテンツの表現は、コンテナの辺に設定されたアンカーアイコン、スライダーアイコン等の設定に従い、サイズを可変にすることが可能なコンテナに挿入されることにより可視化される。コンテナに設定される具体的なアイコン及びコンテナを構成する辺は、以下に説明するように機能する。
図4の辺410のように、点線はコンテナに挿入されるコンテンツに依存して、ドキュメント内の辺の位置が移動可能であることを意味する。そして、実線414は位置が制限された辺を意味する。
アンカーは辺または軸が交差した場所が固定されていることを意味する。図4のアイコン409は、交差する辺414が固定されていることを示すアンカーアイコンの例である。
スライダーは関係付けられた辺が、その辺の垂直方向に固定されているが、並行移動する可能性があることを意味する。幅・高さのサイズは、レイアウト編集アプリケーション121の制御の下、副次的なダイアログウインドウに表示され、コンテナサイズとして許容される基本値・最小値・最大値の基本パターンを設定することが可能である。
図5Aにおいて、コンテナ501を構成する実線で示される辺503は固定であり、点線で示される辺504は幅・高さ両方が可変である。拡縮アイコン505は、隣接する辺504が可変であることを示す。また、図5Bにおいて、コンテナ501を構成する実線で示される辺503は固定であり、同図において、アンカーアイコン506は、辺503が交差する高さ方向および幅方向に変位が拘束されることを示す。
図5Cでは、コンテナ501は、コンテナの拡大あるいは縮小が任意のアンカーアイコン507で示されるような中心点の周りに幅方向及び高さ方向に均等に広がるという状態に設定されており、幅・高さ両方が各辺において可変である。また、図5Dにおいて、コンテナ501は、上辺508に対してスライダ−アイコン509が設定されており、固定されているが、点線で示される辺502は幅及び高さの両方が可変である。この場合、アンカーアイコン509を通る中心軸(垂直軸)を基準として、辺502の左右方向、及び上下方向に変位をすることが可能であり、これによりコンテナのサイズを変えることが可能である。ここでの拡大/縮小は、アンカーアイコン507の位置が常にコンテナ501の中心点となるようにレイアウト調整される。
<リンクの設定方法>
図16はレイアウト編集アプリケーション121によるリンクの設定方法を示するフローチャートであり、図6の(A)〜(C)はユーザーインターフェースの画面表示例を示す図である。以下、図16、図6を用いてコンテナにリンクを設定する操作方法について説明をする。まず、リンクをコンテナに設定するためには、リンク設定の対象となるコンテナ(最低2つ)を作成する(S1601)。図6の(A)は、2つのコンテナ601、602が作成された状態を示している。
次に、前述したリンクツールボタン(図4を参照)を選択した状態にする(S1602)。ここで、図6の(A)のコンテナ601と602は、前述した図4のコンテナ407と408と同じ内容のものを示しており、固定されている辺(実線で示される)によりコンテナが構成されることを示している。また、アイコン603と604は、図4におけるアイコン409と同じアンカーアイコンであることを示し、605はマウスポインタを意味している。
ステップS1602において、リンクツールボタン406の選択が完了すると、次に、コンテナを選択する(S1603)。この選択は、リンクを設定する対象となるコンテナの片方(たとえば、601)をマウス133によりクリックすることでコンテナは選択される。次に、リンクを設定する他方のコンテナ(たとえば、602)をマウス133によりクリックすることで、リンクを設定する他方のコンテナの選択が完了する(S1604)。
図6の(B)の606はステップS1603でマウス133をクリックした位置(P1)とステップS1604でマウスをクリックした位置(P2)とを結ぶ、マウスポインタ133の概略的な軌跡を示す線分であり(図16のS1605)、この線分が交わるコンテナの辺611及び辺612の間にリンク607が設定され、最終的にリンク607がコンテナ間に設定された状態のインターフェース画面が更新される(S1606)。リンク707が設定されたことにより、コンテナを表示するための画面表示も自動的に切り替えられる。切り替えられた画面(図6の(C))において、辺608は点線で示されている辺であり、前述したとおり可変の辺を示している。固定の辺(リンク設定前の611、612が対応)から可変の辺に608が切り替えられたのは、リンク607を設定したことにより、コンテナ601、602の辺を可変にする必要があるためであり、リンク607を設定したにもかかわらず、全ての辺が固定とすると、コンテナ間の相対的な関係をリンクにより特定するという矛盾を防ぐためであり、レイアウト編集アプリケーション121の制御の下、自動的に行われる処理である。
また、609は図5の505と同様に機能し、リンク607を設定したことにより、コンテナ601、602が変位できる方向をユーザに視覚的に示す識別用の表示である。図6の(C)の例では、左のコンテナ601の右辺と右のコンテナ602の左辺が可変に変化したが、これは一例であり、右コンテナ601が、図4の413で示したスライダーを持つ設定により辺608が可変であることを表示するようにすることもできる。以上の処理はレイアウト編集アプリケーションの制御のもとに実行することができる。
<レイアウト計算方法(全体フロー)>
本実施形態のレイアウト編集アプリケーションは、ユーザインターフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行ってレイアウトを作成するレイアウトモードと、レイアウトエンジン105により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが挿入され、前述した優先順位に従ってレイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン105が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。図10はレイアウト計算の流れを説明するフローチャートである。まず、プレビューモードを選択する(S1001)。自動レイアウトシステムでは、コンテナを作成して、そのコンテナ間に関連付けを行い、レイアウトを作成するレイアウトモードと、作成したレイアウトに表示するデータレコード(以下、「レコード」)を挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。
このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。その際の計算方法も同じである。プレビューモードになったら、プレビューするレコードを選択して挿入する(S1002)。レコードの挿入を行うと、そのレコードをレイアウトするためにレイアウト計算を行う(S1003)。そして、処理ステップS1003で計算されたレイアウトを表示し(S1004)、他のレコードについてもプレビューを行うかどうかを判断する(S1005)。処理ステップS1005で、他のレコードについてプレビューを行う必要がないと判断した場合は(S1005-No)、処理をステップS1007に進め、プレビューモードを終了する。一方、ステップS1005の判断で、他のレコードについてプレビューを行うのであれば、他のレコードを選択(S1006)して再度レイアウト計算を行い(S1003)、プレビューを行う(S1004)。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、処理S1004は印刷時の処理においては必要がないステップである。ステップS1005は印刷するレコードを全て処理したかの判断を行う。ステップS1003でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷すべく指定された全レコード)について印刷データの出力が終了した時点で本処理を終了することになる。以上の処理は、プロセッサユニット135の制御のもとに実行することができる。
<レイアウト計算方法>
図11はレイアウト計算の詳細な処理の流れを説明するフローチャートであり、図17はそのときのユーザーインターフェース画面の表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの1レコードの印刷/プレビュー時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を求める(S1101)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば、図15を参照すると、ページ上に4つのコンテナA,B、C、Dがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナA・Bが集合1、コンテナC・Dが集合2となる。そして、1501はアンカー、1502は固定された辺、1503はコントロール点、1504は可変の辺の変化方向を示している矢印、1505は可変の辺、1506はリンク、そして1507はスライダーを示している。
次に、レイアウト編集アプリケーション121は、ステップS1101で求めたコンテナの集合から、レイアウトを計算するために一つの集合を選択する(S1102)。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナ(A,B)について、流し込まれるデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。具体的には、レイアウト編集アプリケーション121は、コンテナAが画像データ用コンテナであるか、テキスト用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込み、コンテナAが画像データ用コンテナである場合は、その画像データのサイズ(幅、高さのピクセル数、および解像度)がコンテナAの制約を受けない場合の大きさになる。また、コンテナAがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナAに流し込まれるべきデータ量が計算できる。ここで、テキスト用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。図15の例では、コンテナAは、左上および左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判断する。すべて流し込めると判断された場合は、コンテナAは、基本パターンで設定されているサイズ(幅、高さ)に変更はない。
また、すべて流し込めないと判断された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(S1103)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウト編集アプリケーション121は、ステップS1102で算出したコンテナの集合のサイズ、つまりコンテナAとコンテナBとリンク1506(ここでは固定リンク)の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図15の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を求める。コンテナAやコンテナBの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
レイアウト編集アプリケーション121は、レイアウトの最適化を行い、最適化の計算のおいて、ルール(コンテナに課せられる制限)に違反する場合は、再度ルールを違反しないようにコンテナサイズの計算をする(S1104)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、可変リンクの場合はリンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、ステップS1102で選択した集合のレイアウトは完成する。そして、ステップS1102〜S1104のステップをページ上のすべてのコンテナの集合について施し、ページ全体のレイアウトを計算し(S1105)、レイアウト計算の処理を終了する。
図17の(A)〜(C)はレイアウト計算時に示されるユーザーインタフェース画面を例示する図である。図17の(A)は、あるレコードが挿入されレイアウトが決定されている状態を表している。1701と1702はアンカー、1703と1704は固定された辺、1705は可変の辺、1706は可変の辺の変化方向を示している矢印、1708はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入すると、図17の(B)の状態になる。図17の(A)の状態から可変の辺がどのように変位したかを2点鎖線で示している。そして、ルールを加味したレイアウト計算が行われる。図17の(C)はレイアウト計算された結果を示している。計算後の各コンテナ1712、1713のサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ、前述したルールに違反しないように計算される。図17の(C)で示されるように、図17の(B)で示した挿入するコンテンツサイズ(a1b1c1d1,e1f1g1h1)と計算後のコンテンツサイズ(a2b2c2d2,e2f2g2h2)は、左右双方のコンテナにおいて同等な差異をもってコンテナサイズが計算される。以上の処理は、プロセッサユニット135の制御のもとに実行することができる。
<データチェック処理>
図7はコンテナを使用して作成された一般的なレイアウトの状態を示す図である。まずアプリケーションウインドウ301とツールバー303があり、ドキュメントテンプレート309上にコンテナA(711)、コンテナB(712)、コンテナC(713)、コンテナD(714)、コンテナE(715)が存在する。各コンテナにおいて、固定された辺は実線、可変長に動く辺は点線で示している。それぞれのコンテナは典型的なアンカーアイコン730、アンカーアイコン731、アンカーアイコン734と、固定された辺720、辺722、辺725、辺727、辺728、また可変長に動く辺721、辺723、辺724、辺726、辺729から成り立つ。
アンカーはコンテナのコーナー部に配置され、そのコーナーはドキュメントの固定位置を指定し、その位置からは移動することがないことを示す機能がある。そして各コンテナには可変長に動く辺があることから、その可変に動く方向を示すインジケーター735、インジケーター736、インジケーター737、インジケーター738、インジケーター739がそれぞれのコンテナ内に表示されている。インジケーターは、それが示す方向(及び逆方方向)に各コンテナの辺が可変に動くことが可能であることを示す機能を有する。
またコンテナのサイズが上下に可変に拡大縮小をすることを示すスライダー732、スライダー733が表示されている。このスライダーは典型的に固定の辺に付帯して表示され、この場合、例えば固定の辺727にスライダー733が付帯している。これは、辺727は左右に位置を変えることはないが、可変長に動く辺726が上下に存在するため、このコンテナDは上下に可変長に伸び縮みをすることことができることを示している。コンテナA内には<商品名コンセプト>(701)、コンテナB内には<特徴1>(702)、コンテナC内には<商品イメージ>(703)、コンテナD内には<特徴2>(704)、コンテナE内には<説明>(705)の表示があるが、これはデータベースのDBフィールド名(列名)との関連性を示している一例であり、例えばコンテナAには「商品名とコンセプト」のテキスト、コンテナBとコンテナDにはコンテナAに入る」商品の特徴」のテキスト、コンテナCにはコンテナAに入る「商品のイメージ画像」、コンテナEにはコンテナAに入る「商品の説明文」のテキストがデータとして挿入されることを意味している。
また、ツールバー303には前述の<アプリケーションの構成図>で説明したように、典型的に選択ツールボタン403、イメージコンテナツールボタン404、テキストコンテナツールボタン405、リンクツールボタン406を備えている。ここでは、更に、レイアウトチェックボタン700が置かれており、このボタンの押下によりレイアウトチェックを行う作業を始めることができる。レイアウトチェックとは、レイアウト編集アプリケーション121で作成した基本レイアウトのテンプレートドキュメントに対して、関連付けられているバリアブルデータを読み込み、各コンテナに入れることで、実際に印刷される場合のプレビューをレイアウト編集アプリケーション121のユーザインタフェース画面上に表示するための機能である。
図14はキーボード132やマウス133により上記のレイアウトチェックボタン700を押下、あるいは一般的なメニューコマンドを選択して表示されるプロパティダイアログウィンドウを示している。本実施形態ではレイアウトチェック時の様々な条件等を設定する項目をこのプロパティダイアログウィンドウ内に表示している。このプロパティダイアログウィンドウ1401はタイトルバー1402、ツールボタン1403、プロパティダイアログウィンドウのオープン、クローズを行うボタン1404、各種の情報をセットするエリア1405で構成されている。この各種の情報をセットするエリア1405には、レイアウトチェック時の条件の設定方法を選択するブロック1411と、次に説明する本検索の前段階として、まずデータベースのレコード数を絞り込む簡易検索(1次検索とも呼ぶ)をする際に、その条件等を設定するブロック1412と、実際のレイアウト計算をした結果により、差異の大きいレコードを抽出する本検索(2次検索とも呼ぶ)をする際に、その条件等を設定するブロック1413が存在する。
ブロック1411内にはレイアウトチェックをする条件として、現在の設定を使用するボタン1421か、それとも以前設定した条件を読み込むボタン1422かを選択できるようになっている。デフォルトでは現在の設定を使用するボタン1421がチェックされており、レジストリあるいはメモリ136に格納されている設定条件によりそれぞれのブロックにデータを表示する。ここで、保存した設定を使用する1422が選択された場合、その右側に配置されている参照ボタン1441を使用することが可能な状態にする。この参照ボタン1441が押下された時にはHDD140などに保存した以前の検索条件設定をメモリ136に読み込み、それぞれのブロックに対応した値を表示する。この例では現在の設定を使用する1421がチェックされている。
ブロック1412では簡易検索の条件を設定し、まず簡易検索をする際、どのデータベースを使用するのかを選択する。簡易検索はデータベースの中にデータを比較することによって差異の大きいレコードを抽出する検索であるため、本来は全てレイアウト結果の差異からレコードを抽出する本検索の方がはるかに正確となる。しかし非常に大きいデータベース(レコード数の多いデータベース)に接続している場合、レイアウト計算の結果によりレコードを抽出する算出方法を使用すると非常に時間がかかってしまうケースが考えられるため、本検索の前にデータベースのデータ量によって、ほぼ同じようなデータのレコードはフィルタリングを行い、ある程度レコード数を減らして本検索を行ったほうがはるかに効率的である。そのためまず簡易検索をしてある程度データベースのレコード数をフィルタリングした後、本検索を行うフローが有効であると考えられる。
まず、レイアウト編集アプリケーション121が現在接続しているデータベース(DB)を使用して簡易検索する場合は、現在接続しているDBを使用する1423を選択する。すでに検索した結果があり、それを再び新しい条件で検索すると仮定し、保存した検索結果を使用する場合は1424を選択する。この場合は、検索結果のデータベースを選択する必要があるため、参照ボタン1442を押下し、HDD140などに保存されている検索結果リストから選択する。
図18は検索結果ファイルをリスト表示しているダイアログウィンドウの例を示す図である。このダイアログウィンドウ1801は典型的にタイトル1802とスクロールバー1804を持ち、リスト1803に検索結果のファイル情報を表示している。ここではファイル名、検索データベース名、抽出レコード数が表示される。また、ここで選択したファイルを図14のデータベースの検索結果ボタン1425が押下された場合に新しいウィンドウで表示する。
簡易条件の設定は条件を設定するチェックボックス1426の設定により行うことができる。ここでは、文字の差による比較を行う「文字の差1427」と画像サイズの差による比較を行う「画像サイズ1428」とその単位を指定する一般的なリストボックス1429が設けられている。文字数の差1427と画像サイズ1428による抽出の計算フローとアルゴリズムは図20A〜Dで詳細に説明する。簡易検索を開始するには簡易検索ボタン1443を押下する。そして、この検索結果は図18の検索結果ファイル一覧に追加され、そのリストが表示される。保存したい場合には保存ボタン1805(図18)を押下することで可能になる。また検索した結果の詳細情報を知りたい場合には、リストからファイルを選択し、マウスの右クリックなどの方法で図19のような検索結果に関するレコード一覧のダイアログウィンドウを表示することで確認することができる。
このダイアログウィンドウ1901はタイトル1902、スクロールバー1903を持ち、検索結果ファイル名を表示しているファイル名ボックス1904、そして検索されたレコードのリスト1905が表示される。ここでレコードが選択されると、そのレコードに移動し、レイアウト計算を行いユーザインターフェース(UI)画面に結果をプレビューする。その結果は、例えば、図8の右ウィンドウ(853)のようにプレビューされる。この説明は後ほど詳細に行う。
説明を図14に戻し、2次検索である本検索の設定について説明をする。本検索の設定は図14のブロック1413で行うことができる。まず、本検索において抽出するレコード数を指定する。ユーザが指定したレコードと最も差異のあるレコード、つまり、抽出数が1つだけのものを検索する場合は、最も差のあるレコードを探す1430を選択する。ただし最も差のあるレコードが本当にユーザの意図した差により抽出されるかどうかは正確には難しい場合がある。もし、抽出されたレコードが意図していない差のレイアウト結果であった場合、ユーザはもう一度検索をかける必要性が出てくる。
しかし、これは本検索の場合、レイアウト計算を行うため思った以上に時間がかかってしまう可能性がある。その状況を回避するための1つの手段として、本検索において最も差のあるレイアウトと思われるレコードを複数抽出しておくことが考えられる。そのようにすることでもし、1つのレイアウト結果がユーザの意図するほどレイアウトの差がなかった場合でも、他のレコードでレイアウト差がある可能性を直ちに確認することが可能となり、レイアウトのチェック時間を大幅に短縮できる。よって指定レコードから最も差のあるレコードを複数抽出したい場合には、差のあるレコード数を複数抽出する1431を選択する。
ここでは選択されていないためグレーアウトされているが、抽出レコードを計算の結果、最も差のあるレイアウトの上位5つを抽出するように、1432で抽出レコード数(上位)ボックスに設定をすることができる典型的な例を示している。そして本検索1413では簡易検索1412と同様に、検索するデータベースを指定することができる。現在接続しているDBを使用する1433は、現在アプリケーションが接続しているデータベース全てのレコードをレイアウト計算し、最も差のあるレコードを抽出する選択ボタンである。ただし前述した通り、データベースのレコード数が非常に多い場合、全レコードのレイアウト計算を行い、条件に従って各レコードの差を計算し、最も差のあるレイアウトになるレコードを検索するためには、時間がかかってしまうケースがあるため、簡易検索である程度レコードをフィルタリングしている場合が発生する。簡易検索で抽出されたレコードのみを本検索で計算することで、時間を短縮できるため、簡易検索で保存した検索結果をここで利用することも可能である。その場合は保存した検索結果を使用する1434を選択し、参照ボタン1445を押下して表示される図18のような検索結果ファイルリストから、これから検索するファイルを指定する。そして選択したデータベースのファイル名を1435に表示する。
チェックボックス1436は本検索でコンテナのレイアウト計算時、そのコンテナに挿入されるデータが空であった場合にもレイアウト計算を行い、その結果をレコードの差として加えるかどうかを決定する項目である。このチェックボックス1436がチェックされている場合は、コンテナに挿入されるデータが空の時、レイアウト計算を行わない。つまり、このコンテナに関しては値0がレコードの差に加わることと同じとなる。逆にチェックされている場合は、データが空であってもレイアウト計算の対象となる。具体的なレイアウト計算フローとアルゴリズムは図22A〜Eのフローチャートに従う(この処理は後に詳細に説明する。)。
本検索を開始するには本検索ボタン1444を押下する。検索結果は簡易検索と同様に図18のような検索結果ファイル一覧に追加され、それを選択すると図19のようなレコードのリストが表示され、レコードを選択することでUIにプレビュー表示することができる(図8)。保存ボタン1446はレイアウトチェックのプロパティ1405で設定された条件等をHDD140などに保存するためのボタンである。ここで保存した設定ファイルは参照ボタン1441から参照され、1422において選択し再び読み込むことが可能となる。
図9はユーザが図14のプロパティダイアログにおいて設定する際の処理の流れを説明するフローチャートである。まず、ステップS901において、レイアウト編集アプリケーション121は、ユーザからの操作指示の入力に基づき、検索条件の設定方法を選択する。この選択では、現在、新たに設定を行うのか、あるいは保存してある設定を使用するのかを選択する。既存の検索ファイルの使用が選択されていると判断した場合、ステップS902に進み、レイアウト編集アプリケーション121は、保存されている検索ファイルを読み込む。そしてステップS903において、レイアウト編集アプリケーション121は、読み込んだファイルの条件の設定を修正するかどうかを判断する。条件を修正せず検索を開始する場合は、簡易検索をするのか、本検索をするのかを判断し(S904)、その判断に従い、それぞれの検索を開始する(S915、S927)。
ステップS901で、現在の設定により検索を行う場合も、同様にステップS903に進み、レイアウト編集アプリケーション121は、条件の修正を行わないで検索を開始するか、それとも条件を修正するかを判断する。ステップS903において条件を修正する場合(S903−YES)、レイアウト編集アプリケーション121は、次にデータベースのフィルタリングをする簡易検索をするのか、あるいはレイアウト計算による本検索をするかを判断し(S905)、簡易検索する場合、処理をステップS911に進め、現在のアプリケーションに接続しているデータベースで検索するのか、それとも以前の検索結果のデータベースで検索するのかを選択する。保存されている以前の検索結果を使用する場合、レイアウト編集アプリケーション121保存されている検索結果のファイルを読み込む(S912)。次にデータを抽出するための条件を修正するか否か判断し(S913)、条件を修正する場合は修正を行う(S914)。そして簡易検索を開始する(S915)。
一方、ステップS905において本検索する場合はまず、レイアウト編集アプリケーション121は、抽出するレコードはいくつにするのかを判断する(S921)。最もレイアウトに差のあるレコードを1つ抽出する場合には、ステップS923へ進む。複数のレコードを抽出する場合には、抽出数を設定し(S922)、ステップS923へ進む。
ステップS923においては、レイアウト編集アプリケーション121は、ユーザからの操作指示の入力に応じて、現在アプリケーションに接続しているデータベースで検索するのか、それとも以前の検索結果のデータベースで検索するのかを判断する。保存されている以前の検索結果が使用されると判断された場合、ステップS924に進み、レイアウト編集アプリケーション121保存されている検索結果ファイルを読み込む。次にステップS925でレイアウト編集アプリケーション121は、データを抽出するための条件を修正するか否かを判断し、条件を修正する場合は、ステップS926に進み、条件を修正する。そして本検索を開始する(S927)。
図12はユーザがレイアウトチェックをする際の、作業フローを示す図である。まず、ステップS1201において、アプリケーションのメニューやツールバーなどからレイアウトチェックの項目が選択されたかを判断し、ステップS1202において、表示されたレイアウトのチェックプロパティダイアログで簡易検索の条件を設定する。ここで、前述の通り、データベースが非常に大きいケースが考えられるので、レイアウト編集アプリケーション121は、まずは簡易検索を行い、指定レコードと似通ったレコードはフィルタリングする(S1203)。
そしてレイアウト編集アプリケーション121は、検索結果をチェックし(S1204)、検索結果がユーザの意図するものであるか否かを判断し(S1205)、意図するものであった場合は、HDD140などに保存する(S1206)。そしてステップ1205の判断結果のどちらにおいても、もう一度簡易検索を行うか判断する(S1207)。再度簡易検索を行う場合(S1207−YES)、処理をステップS1202に戻し、同様の処理を順次繰返す。ここでは、ユーザが期待する結果になるまで、データベースのフィルタリングを繰り返し行うことができる。その際、保存した検索結果を使用し、さらにフィルタリングを行い、その検索結果をまた次の簡易検索でフィルタリングするということも考えられる(S1203〜S1207)。
簡易検索が終わったら(S1207−NO)、処理をステップS1208に進め、レイアウト編集アプリケーション121は、次に本検索の条件設定を行う。そしてレイアウト編集アプリケーション121は、簡易検索である程度フィルタリングされたデータベースを使用し(S1206)、本検索を開始し(S1209)、抽出したレコードのレイアウトをUI画面のプレビュー表示でチェックする(S1210)。チェックした結果、レイアウト編集アプリケーション121は、ユーザからの操作指示に応じて、レイアウトを修正するかどうか判断し(S1210)、修正する場合にはUI画面のプレビュー表示上でレイアウトを修正する(S1212)。レイアウトを修正した場合、指定したレコードのレイアウト(比較元のレコードのレイアウト)も変化することになるため、その変化が分かるように、レイアウト編集アプリケーション121は、UI画面のプレビュー表示では指定レコード(比較元のレコード)と抽出レコードの両方のレイアウトを表示し、抽出レコードのレイアウトや指定レコードのレイアウトを変化させた場合に、それぞれ再びレイアウト計算を行い、その修正がどのくらい影響を与えるかを瞬時に分かるようにする。これを示しているのが図8である。これについては後ほど説明する。レイアウトを修正した場合、最も差異のあるレコードは他のレコードに変わる可能性がある。これを検索するため、レイアウト編集アプリケーション121は、もう一度本検索を行うか判断し(S1213)、再度本検索を行う場合(S1213−YES)、処理をステップS1208に進めて、本検索を再び行う。これを繰り返すことによって最適なレイアウトを決定することが可能になる。
図13は検索の条件設定から、検索の実行、検索結果の保存と検索結果によるプレビューの表示までのフローを概略的に示すフローチャートである。まず、ステップS1321において、レイアウト編集アプリケーション121は、メニューからレイアウトチェックの項目が選択されたかを判断し、ステップS1322において、レイアウトチェックのプロパティダイアログを表示する。そして、ステップS1323において、レイアウト編集アプリケーション121は、プロパティの設定に従って検索を行い、検索結果を表示する(S1324)。ステップS1325において、レイアウト編集アプリケーション121は、検索結果を保存するか否かを判断し、保存する場合はHDD140などに保存処理を行う(S1326)。そしてレイアウト編集アプリケーション121は、抽出レコードのデータをデータベースからフェッチし、指定レコードのレイアウトにデータを挿入し(S1327)、レイアウト計算を行い(S1328)、その結果をプレビュー表示する(S1329)。
<レイアウト表示の例>
図8は図7のレイアウトに指定レコードと抽出レコードのデータが挿入されたときの例を示す図である。アプリケーションウィンドウ309にレイアウトビューウィンドウ801とレイアウトビューウィンドウ851が表示されている。それぞれのレイアウトビューウィンドウはタイトルバー802とタイトルバー852、ウィンドウの最大化、最小化、クローズを行うツールボタン群803とツールボタン群853、そしてウィンドウのスクロールバー804とスクロールバー854を持っている。レイアウトビューウィンドウ801は指定レコードのデータ、つまり最も差異のあるレコードを求める際に、比較元となるレコードのデータを、図7のレイアウトに挿入してレイアウトされたものを示している。そしてレイアウトビューウィンドウ851がレイアウトのチェックにおいて抽出されたレコードのデータを、図7のレイアウトに挿入してレイアウトされたものを示している例である。
指定レコードはレイアウト作成時に使用していたレコードであったり、ユーザが好むレイアウト状態(このレイアウト状態にあるコンテナを「規範位置」にある状態とする。)になるレコードである。コンテナA、コンテナB、コンテナD、コンテナEにはそれぞれテキストが挿入され、コンテナCにはイメージが挿入されている。レイアウトビューウィンドウ801のレイアウト結果においては、図7のレイアウトと同様にバランスが取れ、ユーザに意図しているものになっていると仮定する。このレコードでレイアウト結果をプレビューしている状態で、典型的なツールボタンである、レイアウトチェックのボタンあるいはメニューコマンド等により、レイアウトチェックを開始する。そこで抽出されたレコードのレイアウト結果を、もう1つのレイアウトビューウィンドウ851に表示している。レイアウトビューウィンドウ851ではコンテナCの画像サイズが大きくなり、コンテナAの文字サイズがやや小さくなってしまっているのが分かる。またコンテナEの高さがやや小さくなりすぎているなど、全体的なバランスが悪いのが確認できる。このようにレイアウトチェック機能を使用し、UI画面におけるプレビュー表示において比較でき、さらにレイアウトビューウィンドウ上でレイアウト修正すると、他のウィンドウのレイアウトが変化することで、その影響を瞬時に理解することができる。この処理は、プロセッサユニット135、レイアウト編集アプリケーション121の制御の下に実行することができる。
<簡易検索処理>
次に、簡易検索処理の流れを具体的に説明する。図20A〜図20Dは簡易検索時の典型的な処理の流れを説明するフローチャートである。まず図20Aは簡易検索の全体の処理の流れを示すフローチャートである。まず、ステップS2001において、簡易検索を開始が指示されると、ステップS2002において、レイアウト編集アプリケーション121は、指定レコードとの差異が大きいレコードをデータベースより抽出する。検索結果リスト(S2051)から抽出レコード数を計算し(S2003)、データベースのレコード数を検索結果リストに表示する(S2004)。そして、ステップS2005において、レイアウト編集アプリケーション121は、検索結果リストの保存が選択されると、検索結果リストをHDD140などに保存する(S2006、S2052)。
図20Bはステップ2002の「指定レコードとの差異が大きいレコードをデータベースより抽出する」処理の具体的な流れを説明するフローチャートである。まず、ステップS2011において、ドキュメントに関連付けられたレコード数mをユーザによって指定されたデータベース(2053)から取得する。ステップS2012において、レイアウト編集アプリケーション121は、カウンタiを設定し、ステップS2014〜ステップS2018のステップをレコード数(m)分繰り返す。
ステップS2014−S2019のループ内では、まず、ステップS2014で、カウンタの示すi番目のレコードへ移動する。そして、ステップS2015において、レイアウト編集アプリケーション121は、レコード毎にレイアウトの差を計算し、その結果(2054)からカウンタが示すi番目のレコードにおいて差があるとされる条件(y=1)に合致したかどうかをチェックし(S2016)、合致した場合(S2016−YES)は検索結果リスト(2051)にレコード番号を追加格納する(S2017)。そして次のレコードに移動するためにカウンタ(i)を1つ増やす(S2018)。レイアウト編集アプリケーション121は、これらのステップS2014〜S2018を繰り返し行い、検索レコードがなくなった時点(S2019−NO)でループから抜け出し、検索結果リスト(2051)から格納されているレコードを抽出する(S2020)。
図20Cは図20BのステップS2015における「レコード毎の差の計算」処理の具体的な内容を説明するフローチャートである。ここでは現在のカウンタ(i)が示している検索レコードが検索条件に合致したか否かをチェックしている。まず、ステップS2021において、レイアウト編集アプリケーション121は、ドキュメントのコンテナ数nをファイルあるいはレジストリ等に保存されているコンテナリスト(2055)から取得する。カウンタjとチェック変数xを設定し(S2022)、ステップS2024〜S2028の処理をコンテナ数(n)分繰り返す。
ただし、ステップ2025でチェック変数xに値が入ってくる場合は、繰り返すコンテナが残っていたとしてもループから抜け出す(S2029)。これはステップS2025で差の計算をして比較したコンテナが1つでも検索の条件に合致する場合は、そのレコードをフィルタリングしないようにするためである。そうすることで次の本検索のステップ時に、レイアウトがおかしくなりそうなレコードを、簡易検索でフィルタリングしてしまうことを防ぎ、より精度の高いレイアウトチェックをすることを可能にする。従って、比較する全てのコンテナにおいて、検索条件に引っかからない場合のみにおいて、そのレコードをフィルタリングすることができる。
ステップS2024〜S2029のループ内では、まず、ステップS2024において、カウンタの示すj番目のコンテナへ移動する。そしてレイアウト編集アプリケーション121は、現在のレコード番号iに関して、コンテナ毎にレイアウトの差を計算し(S2025)、その結果から、どれかのコンテナにおいて条件(x=1)に合致したか否かをチェックし(S2026)、合致した場合は処理をステップS2027に進め、i番目のレコードにおける検索結果yを格納し(2054)、ループから抜け出す(S2029)。
ステップS2026の判断で、条件に合致しない場合は、処理をステップS2028に進め、次のコンテナに移動するためカウンタ(i)を1つ増やす(S2028)。レイアウト編集アプリケーション121は、これらのステップS2024〜S2028を繰り返し行い、検索するコンテナがなくなった時点で、あるいは条件(x=1)に合致した時点でループ(S2023〜S2029)から抜け出す。
図20Dは図20Cのステップ2025における「コンテナ毎の差の計算」処理の流れを説明するフローチャートである。ここでは指定レコード、j番目のコンテナと検索レコードのj番目のコンテナに挿入されるデータを元に差を計算し、現在カウンタj番目のコンテナが条件(x=1)に合致したかどうかをチェックする処理を実行する。
まず、ステップS2031において、レイアウト編集アプリケーション121は、現在の検索対象となっているコンテナに挿入されるデータが空かどうかをデータベース(2053)より判断する。データが空の場合は、条件に引っかかると判断し(S2031−YES)、x=1として(S2036)処理を終了する。データが空でない場合は(S2031−NO)、次にそのデータがテキストか画像データかを判断し(S2032)、テキストの場合はi番目のレコードの、j番目のコンテナに入る文字数と、指定レコードのj番目のコンテナに入る文字数の差の絶対値を計算する(S2033)。
ここで、図26はデータベース2053の構成例を示す図である。データベーステーブル2601はデータベース名2602とデータベースフィールド名の定義2603、そしてレコード番号2604を持つ。ここではデータベースフィールドとして商品コンセプト2611、商品イメージ2612、特徴2613、特徴2614、説明2615が定義されている。そして、図27はコンテナリスト2055の例を示す図である。コンテナリスト2701はリストタイトル2702、コンテナ番号2703を持ち、コンテナ番号に対応したコンテナ名2704を定義している。例えばステップS2033(図20D)の計算においてi=3、j=4の場合、図26においてレコード番号3のレコードの、コンテナ番号4(コンテナE)に入る文字数を計算し「77」となる。
また指定レコードは、ここではレコード番号0であるため、このレコードのコンテナ(コンテナE)に入る文字数を計算し「156」である。よって「156」から「77」を減算し、「79」となる。ここでレイアウト編集アプリケーション121は、この値がレイアウトチェックのプロパティ1401で設定された条件(2056)に引っかかるかを判断する(S2035)。ここでは設定された条件により判断するが、アプリケーションにこれらの判断結果を蓄積していき、後々にはそれを経験値(2057)としてユーザが指定をしなくてもアプリケーションが自動で判断するような仕組みも考えられる。レイアウトチェックのプロパティ1401では簡易検索の文字数の差(1427:図14を参照)が「10」以上であれば条件に合致するため、この場合は条件に引っかかり(S2035−YES)、チェック変数xに1を設定する(S2036)。チェック変数に1が設定されることでステップS2026(図20C)においてステップS2027に処理が進められ、i番目のレコードにおける検索結果y(2054)が検索結果リスト2051に格納されることとなる。画像の場合も同様にレイアウト編集アプリケーション121は、i番目のレコードの、j番目のコンテナに入るイメージサイズと、指定レコードのj番目のコンテナに入るイメージの、サイズの差の絶対値を計算し(S2034)、条件に合致するか否かを判断し(S2035)、同様の処理を順次を進める。以上の処理は、プロセッサユニット135の制御の下に実行することができる。
<本検索の処理>
次に本検索の処理の具体的な処理の流れを説明する。図22A〜図22Eは本検索時の典型的なアルゴリズムを説明するフローチャートである。ここで、図22Aは本検索の全体の概略的な処理の流れを説明するフローチャートである。まず、本検索の開始が指定されると(S2201)、ステップS2202において、レイアウト編集アプリケーション121は、指定レコードとの差異が大きいレコードをレイアウト計算結果より抽出する。検索結果リスト(2257)から抽出されたレコードに移動し(2203)、レイアウト編集アプリケーション121は、データベース2251から抽出したレコードのデータをコンテナに挿入する(S2204)。そしてレイアウト編集アプリケーション121は、抽出されたレコードにおいてレイアウト計算を行い(S2205)、抽出されたレコードのレイアウト計算結果をレイアウトビューウィンドウにプレビュー表示する(S2206)。
ここでは指定レコードのレイアウトも別のレイアウトビューウィンドウにプレビュー表示し、レイアウト結果の比較が出来るようにする(S2206、図8)。レイアウトビューウィンドウにおいてレイアウトの修正が行われた場合(S220YES)、レイアウト編集アプリケーション121は、レイアウトの修正指示に従って修正されたレイアウトビューウィンドウにプレビュー表示しているレコードのデータでレイアウト計算を行い(S2208)、再びレイアウト計算結果をプレビュー表示する(S2206)。更に、先ほどの修正指示に従って別のレイアウトビューウィンドウのプレビューも変更する必要があるため、別ウィンドウにプレビュー表示しているレコードに関しても再度修正に従ってレイアウト計算を行い(S2208)、レイアウト計算結果をプレビュー表示する(S2206)。
一方、ステップS2207においてレイアウト修正がなければ終了となる(S2207−NO)。
図22Bは図22Aのステップ2202における「指定レコードとの差異が大きいレコードをレイアウト結果より抽出する」処理の具体的な内容を説明するフローチャートである。まず、ステップS2211において、レイアウト編集アプリケーション121は、ドキュメントに関連付けられたレコード数mをユーザーによって指定されたデータベース(2251)から取得する。ステップS221において、カウンタiを設定し、ステップS2214〜S2217をレコード数(m)分繰り返す。ここで、ステップS2213〜S2018のループ内では、まず、レイアウト編集アプリケーション121は、カウンタの示すi番目のレコードへ移動し(S2214)、そのレコード(i)毎にレイアウトされるコンテナサイズとの差を計算し(S2215)、i番目のレコードにおける差の計算結果(2252)をリスト2253に順次追加し、ステップS2216において、レコード毎の差の和算結果をリスト(2253)化し、順次格納していく。
そして、処理をステップS2217に進め、次のレコードに移動するためカウンタを1つ増やす。これらのステップS2214〜S2017を繰り返し行い、検索レコードがなくなった時点でループから抜け出し(S2218−NO)、レコード毎の差の和算結果リスト(2253)から最も差の大きいレコードを抽出し(S2219)、抽出レコード番号を検索結果リスト2257に格納する(2257)。
図22Cは図22BのステップS2215における「レコード毎の差の計算」処理の全体フローを説明する図である。まずステップS2221において、レイアウト編集アプリケーション121は、現在のカウンタが示すi番目のレコードのデータをデータベース2251から取得し、レイアウトされているコンテナに挿入する。そして、レイアウト計算を行い(S2222)、そのレイアウト結果2254をメモリ136等に格納する(S2223)。カウンタi番目が示すレコード番号のデータに関するレイアウト計算結果と、指定レコードのレイアウト計算結果とから差を計算し、レイアウトされている全てのコンテナにおいて、その差の合計(和算)2252を計算する(S2224)。
図22Dは図22CのステップS2224における「レコードごとに全てのコンテナの差に関する計算処理」の内容を説明するフローチャートである。まず、ステップS2231において、レイアウト編集アプリケーション121は、ドキュメントのコンテナ数nをファイルあるいはレジストリ等に保存されているコンテナリスト(2255)から取得する。そして、ステップS2232において、カウンタjを設定し、ステップS2234〜S2236をコンテナ数(n)分繰り返す。本検索では各レコードのレイアウトの差を検索レコード分全て計算する必要がある。ステップS2234〜S2237のループ内では、まず、レイアウト編集アプリケーション121は、カウンタの示すj番目のコンテナへ移動する(S2234)。そして現在のレコード番号iに関して、コンテナ毎にデータをレイアウトした場合、レイアウト編集アプリケーション121は、指定レコードと検索レコードの差を計算し、その計算結果(2252)をメモリ136などに格納する(S2235)。
そして次のコンテナに移動するためカウンタ(j)を1つ増やし(S2236)、これらのステップS2234〜S2236を繰り返し行い、検索するコンテナがなくなった時点(S2237-NO)でループから抜け出す。
図22Eは図22DのステップS2235における「コンテナ毎の差の計算」処理の具体的な内容を説明するフローチャートである。ここでの処理は指定レコードに関するj番目のコンテナと、i番目の検索レコードに関するj番目コンテナに挿入されるデータとを元にレイアウト計算を行った結果の差を計算し、i番目のレコードに関する差として、その結果を全てのレコードに関して和算していく処理を行う。
まず、ステップS2241において、レイアウト編集アプリケーション121は、現在の検索対象コンテナ(j番目のコンテナ)に挿入されるデータが空かどうかをデータベース2251より読み出しを行い判断する。データが空の場合は、処理をステップS2242に進め、コンテナに入るデータが空の場合もコンテナサイズの差をi番目のレコードとしての差の総和に加えるかどうかを、レイアウトプロパティ1401のチェックボックス1436(図14)より判断する。総和に加えない場合はこのフローを終了する。この判断の効果については前述の図14の説明において既に説明しているので、ここでは省略する。
空の場合でも、総和に加える場合は(S2242-YES)、レイアウト編集アプリケーション121は、図22CのステップS2222で計算したi番目のレコードのレイアウト計算結果(コンテナサイズ)2254と、指定レコードのレイアウト計算結果2256より、i番目のレコードに関する、j番目のコンテナサイズと、指定レコードのj番目のコンテナサイズの幅方向の差の絶対値を計算する(S2243)。
次に、処理をステップS2244に進め、レイアウト編集アプリケーション121は、i番目のレコードの、j番目のコンテナサイズと、指定レコードのj番目のコンテナサイズの高さ方向の差の絶対値を計算する(2244)。ここで、ステップS2243とステップS2244の計算結果はステップ2243とステップ2244において、それぞれメモリ136等に格納され、それらの合計を計算する。その結果をi番目のレコードにおける和算結果2252に加算する(S2245)。
例えばループS2234〜S2237内における、ステップS2235の計算においてi=3、j=0の場合、レイアウト編集アプリケーション121は、レコード番号3のレコードのデータが、コンテナ番号0(コンテナA)に挿入したときのレイアウトを計算すると、図8のレイアウトビューウィンドウ851の、コンテナAのコンテナサイズのように、例えばコンテナの高さが20、幅が50となる。また指定レコードはここではレコード番号0であるため、このレコードのコンテナ(コンテナA)に入るデータによりレイアウトを計算すると、図8のレイアウトビューウィンドウ801の、コンテナAのコンテナサイズのように、例えばコンテナの高さが「35」、幅が「50」となる。
よってコンテナAにおける高さの差の絶対値は「15」(=35-20)、幅の差の絶対値は「0」(=50−50)となる。従って、指定レコードと0番目のレコードの、差の絶対値は「15」と「0」を和算して「15」となる。そしてこの値15を3番目のレコードにおける差の和算結果に加える。この時点で、まだ0番目のコンテナの、差の計算しか行っていないため、和算の総計結果は15である。
次にステップ2236でコンテナ番号(i)を1つインクリメントし、1番目のコンテナについて同様に計算を行う。レイアウト編集アプリケーション121は、レコード番号3のレコードのデータが、コンテナ番号1(コンテナB)に挿入されたときのレイアウトを計算すると、上述と同様に、図8のレイアウトビューウィンドウ851の、コンテナBのコンテナサイズのように、例えば、コンテナの高さが50、幅が50となる。また、指定レコードでのコンテナのサイズは、図8のレイアウトビューウィンドウ801の、コンテナBのコンテナサイズのように、例えばコンテナの高さが35、幅が50となる。よってコンテナBにおける高さの差の絶対値は15、幅の差の絶対値は0となり、指定レコードと0番目のレコードの、差の絶対値は15と0を和算して15となる。そしてこの値15を3番目のレコードにおける差の和算結果に加え、コンテナ番号0に関する総計15に、今回のコンテナ番号1に関する結果15加え、和算の総計結果は30となる。
同様にコンテナ番号2の(コンテナC)のサイズの差を、例えば、高さが30、幅が0とすると、コンテナ番号2に関する高さと幅の合計は30となり、これを和算の総計結果加えると60となる。同様にコンテナ番号3の(コンテナD)のサイズの差を、例えば、高さが0、幅が0とすると合計は0となり、和算の総計結果は変わらず60となる。同様にコンテナ番号4の(コンテナE)のサイズの差を、例えば、高さが15、幅が0とすると、コンテナ番号4に関する高さと幅の合計は15となり、和算の総計結果は60に15を加え75となる。このようにレコード毎に全コンテナの差の合計を求め、それがリスト(2253)化された中から最も大きい数(和算の総計結果)のレコードを抽出する(2219)。以上の処理は、プロセッサユニット135、レイアウト編集アプリケーション121の制御の下に実行することができる。
以上説明した本発明の実施形態によれば、全データに関するレコードに関してレイアウト結果を効率的に確認することが可能になる。
<第2実施形態>
次に、本発明の第2実施形態の内容を図21A,Bを参照しつつ説明する。図21Aは、簡易検索において、図20CのステップS2025の処理の内容と異なるアルゴリズムにより実行する内容を示すフローチャートである。ここでは指定レコードに関するj番目のコンテナと、検索レコードのj番目のコンテナに挿入されるデータを元に差を計算し、現在のカウンタであるj番目のコンテナが条件に合致するか否かをチェックする。この内容は第1実施形態と同様であるが、差を求めるための計算方法が第1実施形態の場合と相違する。
図21Aにおいては、まず、ステップS2101において、レイアウト編集アプリケーション121は、現在の検索対象コンテナに挿入されるデータが空かどうかをデータベース(2053)より読み出し、判断する。
データが空の場合は(S2101−YES)、レイアウト編集アプリケーション121は、条件に合致すると判断し、チェック変数xを1として(S2107)処理を終了する。データが空でない場合は(S2101−NO)、ステップS2102に処理を進め、レイアウト編集アプリケーション121は、そのデータがテキストか画像データかを判断し、テキストの場合は、i番目のレコードの、j番目のコンテナに入る文字列長と指定レコードのj番目のコンテナに入る文字列長とを、j番目のコンテナに設定されたフォント情報から、横1列に並べたときの文字列長を計算する(S2103)。
ここで、図21Bは、図21AのステップS2103における「文字列長の計算」処理の具体的な内容を説明するフローチャートである。ステップS2111において、レイアウト編集アプリケーション121は、i番目のレコードの、j番目のコンテナに入る文字列と、指定レコードのj番目のコンテナに入る文字列と、それぞれのフォントの属性をデータベース2053及びコンテナリスト2055から取得し、取得したフォントの属性に従って文字列を横一直線に並べた時の長さをそれぞれ計算する(S2112)。
例えば、図20DのステップS2033の計算においてi=3、j=4の場合を想定すると、レコード番号3のレコードに関し、コンテナ番号4(コンテナE)に入る文字列を、コンテナ番号4に設定されたフォントサイズ10ポイントで1列に並べたときの長さを計算すると、例えば、250mmになるとする。一方、レコード番号0のレコードの、コンテナ番号4(コンテナE)に入る文字列を、コンテナ番号4に設定されたフォントサイズ10ポイントで1列に並べたときの長さを計算すると、例えば650mmになるとする。よってレコード番号3のコンテナEとレコード番号0のコンテナEの、差の絶対値は400(=650−250)となり、この値がレイアウトプロパティで設定された条件の値に合致するとすれば、そのレコードは検索結果リストに載ることとなる。以上の処理は、プロセッサユニット135の制御の下に実行することができる。この方法は英文フォントにおいて特に有効である。英文フォントは文字によって文字の横幅が違ってくるため、単純な文字数の比較では実際のサイズとかなり違ってくる可能性があり、これを緩和するために実際に設定されているフォントを使用してサイズを計算することで、より正確な検索を行うことが可能となる。
<第3実施形態>
次に、本発明の第3実施形態の内容を図23を参照しつつ説明する。図23は、本検索において、図22DのステップS2235の処理と異なるアルゴリズムにより実行する内容を示すフローチャートである。ここでは指定レコードのj番目のコンテナと、検索レコードのj番目のコンテナに挿入されるデータとを元にレイアウト結果の差を計算し、現在のカウンタで示されるj番目のコンテナに関するレイアウト結果の差をi番目のレコードに関する差として求め、これを順次、各コンテナについての差を和算する内容は第1実施形態と同様であるが、レイアウトの差を求めるための計算方法が相違する。
まず、ステップS2301において、レイアウト編集アプリケーション121は、現在、検索の対象となっているコンテナ(j番目のコンテナ)に挿入されるデータが空かどうかをデータベース2251よりデータを読み出し、判断する。データが空の場合は(S2301−YES)、レイアウト編集アプリケーション121は、コンテナに挿入されるデータが空の場合もコンテナサイズの比率の差を計算し、i番目のレコードとして差の総和計算に加えるかどうかを、レイアウトプロパティ1401(図14)のチェックボックス1436より判断する(S2302)。
総和に加えない場合はこのフローを終了する。尚、空のデータを総和計算に加えるか否かの効果については前述した第1実施形態の図14において、既に説明しているのでここでは説明を省略する。一方、空のデータを総和に加える場合は(S2302-YES)、レイアウト編集アプリケーション121は、図22Cのステップ2222で計算したi番目のレコードのレイアウト結果のコンテナサイズ2254と指定レコードのレイアウト計算結果2256より、i番目のレコードに関するj番目のコンテナサイズと、指定レコードのj番目のコンテナサイズの幅の比率の絶対値を計算する(S2303)。
また、ステップS2304において、レイアウト編集アプリケーション121は、i番目のレコードに関するj番目のコンテナサイズと、指定レコードのj番目のコンテナサイズの高さの比率の絶対値を計算する。そして、ステップS2303とステップS2304の計算結果はそれぞれメモリに格納され、ステップS2305において、幅の比率及び高さの比率の合計が計算され、レイアウト編集アプリケーション121は、その結果をi番目のレコードにおけるレイアウトの差として加算し、格納する(S2305)。以上の処理は、プロセッサユニット135の制御の下に実行することができる。幅及び高さに関する情報を比率(無次元化量)により評価することで、計算の精度をより高めることが可能になる。
<第4実施形態>
次に、本発明の第4実施形態の内容を図24A,Bを参照しつつ説明する。図24Aは、本検索において、図22CのステップS2242の処理と異なるアルゴリズムにより実行する内容を説明するフローチャートである。ここでは指定レコードに関するj番目のコンテナと、検索レコードのj番目のコンテナに挿入されるデータを元に差を計算し、現在のカウンタであるj番目のコンテナのレイアウトの差をi番目のレコードにおける差の和算結果2252に加算する内容は第1実施形態と同様であるが、差を求めるための計算方法が第1実施形態の場合と相違する。
まず、ステップS2401において、レイアウト編集アプリケーション121は、ドキュメントのコンテナ数nをファイルあるいはレジストリ等に保存されているコンテナリスト(2255)から取得する。
ステップS2402において、レイアウト編集アプリケーション121は、カウンタjを設定し、ステップS2404〜S2409をコンテナ数(n)分繰り返す。
ステップS2403〜S2410のループ内では、まず、ステップS2404で、レイアウト編集アプリケーション121は、カウンタの示すj番目のコンテナへ移動し、現在の検索対象となっているコンテナ(j番目のコンテナ)に挿入されるデータが空かどうかをデータベース2251よりデータを読み出し判断する(S2405)。
データが空の場合は(S2405−YES)、処理をステップS2406に進め、レイアウト編集アプリケーション121は、コンテナに入るデータが空の場合でも中心点を計算するかどうかを、レイアウトプロパティ1401(図14)のチェックボックス1436より判断する。空のデータは計算しない場合(S2406−NO)、処理をステップS2409に移し、検索の対象となるコンテナを変えるためにカウンタ(j)を1つ増やす。この判断の効果については前述した第1実施形態の図14において既に説明をしているので、ここでは説明を省略する。
一方、ステップS2406の判断で、空のデータの場合も、計算の対象として考慮する場合は(S2406−YES)、処理をステップS2407に進め、レイアウト編集アプリケーション121は、指定レコードにおけるレイアウト結果のコンテナサイズ2256から、指定レコードに関するj番目のコンテナの中心点の位置情報を計算し、その位置情報をメモリ136等の指定レコードに関するコンテナ中心点の位置情報リスト(2451)に格納する(2407)。
さらに、処理をステップS2408に進め、レイアウト編集アプリケーション121は、i番目のレコードのレイアウト結果のコンテナサイズ2254からi番目のレコードに関するj番目のコンテナの中心点の位置情報を計算し、その位置情報をメモリ136等のi番目のレコードに関するコンテナ中心点の位置情報リスト(2452)に格納する。
そして、処理をステップS2409に進め、レイアウト編集アプリケーション121は、検索の対象を次のコンテナ変えるためカウンタ(j)を1つ増やす。これらのステップS2404〜S2409を繰り返し行い、検索するコンテナがなくなった時点(S2410−NO)でループから抜け出す。そして、ループを抜けた後、ステップS2411において、i番目のレコードと指定レコードの、コンテナの中心点の距離の差を求め、その結果をi番目のレコードにおける差の結果(2453)としてメモリ136等に格納する(S2411)。
図24Bは図24Aのステップ2411における「差の計算」処理の具体的な内容を説明するフローチャートである。まず、ステップS2421において、レイアウト編集アプリケーション121は、指定レコードのコンテナ中心点の位置情報リスト(2451)から全てのコンテナの中心点の位置情報を距離として和算し、その和算結果(2454)をメモリ136等に格納する。図28は、位置情報リストの例を示す図であり、i番目のレコードに対するX座標と、Y座標、及び各座標値の和として求められる距離(X+Y)のデータがリスト化され、各データの総和が計算され、格納されている状態を示す。
次に処理をステップS2422に進め、レイアウト編集アプリケーション121は、i番目のレコードのコンテナ中心点の位置情報リスト(2452)からi番目のレコードについて、全てのコンテナに関する中心点の位置情報を距離として和算し、その和算結果(2455)をメモリ136などに格納する。そして、ステップS2434において、レイアウト編集アプリケーション121は、指定レコードの和算結果2454とi番目のレコードの和算結果2455とから、両者の差を計算し、この計算結果をi番目のレコードにおけるレイアウトの差の結果(2453)として、メモリ136等に格納する(2423)。以上の処理は、プロセッサユニット135の制御の下に実行することができる。
本実施形態によれば、例えば、コンテナに挿入されるデータのレイアウトに対称性が要求されるような場合であっても、効率よくレイアウトされるコンテナと、割り当てられるデータとの適合性を効率よく評価することが可能になる。
<第5実施形態>
次に、本発明の第5実施形態の内容を図25を参照しつつ説明する。図25は、本検索において、図22DのステップS2235における「コンテナ毎の差の計算」処理と異なるアルゴリズムにより実行する内容を説明するフローチャートである。ここでは指定レコードに関するj番目のコンテナと、i番目の検索レコードに関するj番目のコンテナとに挿入されるデータを元にレイアウトの差を計算し、現在、検索の対象となっているカウンタj番目のコンテナのレイアウトの差に関する計算結果をi番目のレコードにおける差の和算結果2252に加算する内容は第1実施形態と同様であるが、レイアウトの差の計算方法が相違する。
まず、ステップS2501において、レイアウト編集アプリケーション121は、現在の検索対象であるコンテナ(j番目のコンテナ)に挿入されるデータが空かどうかをデータベース2251よりデータを読み出し、判断する。データが空の場合は(S2501-YES)、コンテナに挿入されるデータが空の場合も、コンテナ面積の比率の差を求める計算において、i番目のレコードとしての差の総和に加えるか否か、レイアウト編集アプリケーション121は、レイアウトプロパティ1401のチェックボックス1436(図14)より判断する(S2502)。
空のデータを総和に加えない場合は(S2502-NO)、このフローを終了する。尚、空のデータを総和計算に加えることに関しては、前述した第1実施形態の図14において、既に説明しているので、ここでは説明を省略する。ステップS2502の判断において、空のデータを総和計算に加える場合は(S2502-YES)、処理をステップS2503に進め、レイアウト編集アプリケーション121は、図22Cのステップ2222で計算したi番目のレコードのレイアウト結果によるコンテナサイズ2254と、指定レコードのレイアウト計算結果2256より、i番目のレコードにおけるj番目のコンテナの面積と、指定レコードにおけるj番目のコンテナの面積の比率の絶対値を計算し(S2503)、その結果はメモリ136等に格納される(2251)。そして、ステップS2504において、ステップ2503における計算結果をi番目のレコードにおける差の和算結果(2252)としてメモリ136等に格納する。以上の処理は、プロセッサユニット135の制御の下に実行することができる。
本実施形態によれば、例えば、コンテナに挿入されるデータが、画像データであるような場合、コンテナ内に挿入された状態でデータがコンテナ内に占める占有の割合によりレイアウト結果を定量的に評価することができ、効率よくレイアウトされるコンテナと、割り当てられるデータとの適合性を効率よく評価することが可能になる。
<他の実施形態>
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の実施形態にかかるコンピュータシステムの構成を示す図である。 ホストコンピュータの具体的な構成を説明する図である。 レイアウトエンジンモジュールをホストコンピュータ101の他にエンジンサーバ227にもレイアウトエンジン225を設けた構成を示す図である。 メニューバー、ツールバー、ワークエリア、フローティングパレットを含むユーザインターフェース画面を示す図である。 コンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナを示す図である。 コンテナを構成する辺に対するルールを例示的に説明する図である。 コンテナを構成する辺に対するルールを例示的に説明する図である。 コンテナを構成する辺に対するルールを例示的に説明する図である。 コンテナを構成する辺に対するルールを例示的に説明する図である。 リンク作成時のユーザーインターフェースの画面表示例を示す図である。 コンテナを使用して作成された一般的なレイアウトの状態を示す図である。 図7のレイアウトに指定レコードと抽出レコードのデータが挿入されたときの例を示す図である。 ユーザが図14のプロパティダイアログにおいて設定する際の処理の流れを説明するフローチャートである。 レイアウト計算の流れを説明するフローチャートである。 レイアウト計算の詳細な処理の流れを説明するフローチャートである。 ユーザがレイアウトチェックをする際の、典型的な作業フローを説明するフローチャートである。 検索の条件設定から、検索の実行、検索結果の保存と検索結果によるプレビューの表示までのフローを概略的に示すフローチャートである。 プロパティダイアログウィンドウを示す図である。 レイアウト計算時におけるコンテナの集合について説明した図である。 リンクの設定方法の具体的な内容を説明するフローチャートである。 図11のフローに対応するユーザーインターフェース画面の表示例を示した図である。 検索結果ファイルをリスト表示しているダイアログウィンドウの例を示す図である。 検索結果に関するダイアログウィンドウを示す図である。 簡易検索の全体の処理の流れを示すフローチャートである。 図20Aのステップ2002の処理の具体的な内容を説明するフローチャートである。 図20BのステップS2015における処理の具体的な内容を説明するフローチャートである。 図20Cのステップ2025における処理の流れを説明するフローチャートである。 簡易検索において、図2CのステップS2025の処理の内容を説明するフローチャートである。 図21AのステップS2103における「文字列長の計算」処理の内容を説明するフローチャートである。 本検索の全体の概略的な処理の流れを説明するフローチャートである。 図22Aのステップ2202における処理の内容を説明するフローチャートである。 図22Bのステップ2215における処理の全体フローを示す図である。 図22CのステップS2224における処理の内容を説明するフローチャートである。 図22DのステップS2235における「コンテナ毎の差の計算」処理の内容を説明するフローチャートである。 本検索において、図22DのステップS2235の処理の内容を説明するフローチャートである。 図22CのステップS2242の処理と異なるアルゴリズムにより実行する内容を説明するフローチャートである。 図24Aのステップ2411における「差の計算」処理の内容を説明するフローチャートである。 図22DのステップS2235における「コンテナ毎の差の計算」処理の内容を説明するフローチャートである。 データベース2053(図20D)の構成例を示す図である。 コンテナリスト2055(図20C)の例を示す図である。 位置情報リストの例を示す図である。

Claims (21)

  1. 抽出手段と、決定手段と、表示制御手段とを備え、割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理装置における情報処理方法であって、
    前記抽出手段は、前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出工程と、
    前記決定手段は、前記抽出工程により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定工程と
    前記表示制御手段が、前記決定工程において表示すると決定された第1レイアウトを表示する表示制御工程とを備えることを特徴とする情報処理方法。
  2. 前記情報処理装置はレイアウト制御手段を更に備え、
    前記テンプレートは、関連付けられた第1部分表示領域と第2部分表示領域とを含み、
    前記レイアウト制御手段が、前記第1部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量と前記第2部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量とが同等になるようにレイアウトを決定するレイアウト制御工程を更に有することを特徴とする請求項1に記載の情報処理方法。
  3. 前記決定工程は、前記第1レイアウトにおいて空となる部分表示領域と前記第2レイアウトの部分表示領域との差異をゼロとして当該第1レイアウトを表示するか否かを決定することを特徴とする請求項1または2に記載の情報処理方法。
  4. 前記情報処理装置は修正手段を更に備え、
    前記修正手段が、前記第1レイアウトの部分表示領域のサイズと位置とを修正する修正工程を更に有し、
    前記表示制御工程は、前記第1レイアウトと前記第2レイアウトとを表示し、
    前記修正工程は、前記第1レイアウトの部分表示領域のサイズと位置との修正に従って前記第2レイアウトの部分表示領域のサイズと位置とを修正することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理方法。
  5. 前記抽出工程は、比較対象となる保存データと比較データとがテキストデータである場合、前記部分表示領域に設定されたフォントサイズにて前記保存データのテキストデータを1列に並べた時の長さと、前記部分表示領域に設定されたフォントサイズにて前記比較データのテキストデータを1列に並べた時の長さとを比較することを特徴とする請求項1乃至のいずれか1項に記載の情報処理方法。
  6. 前記抽出工程は、前記保存データが割り当てられることで決定された第1テンプレートの部分表示領域の中心点の位置と、前記比較データが割り当てられることで決定された第2テンプレートの部分表示領域の中心点の位置とを比較することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理方法。
  7. 前記保存データと比較データのそれぞれは、複数のコンテンツにより構成されるレコードであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理方法。
  8. 割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理装置であって、
    前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出手段と、
    前記抽出手段により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定手段と
    前記決定手段により表示すると決定された第1レイアウトを表示する表示制御手段とを備えることを特徴とする情報処理装置。
  9. 前記テンプレートは、関連付けられた第1部分表示領域と第2部分表示領域とを含み、
    前記第1部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量と前記第2部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量とが同等になるようにレイアウトを決定するレイアウト制御手段を更に有することを特徴とする請求項8に記載の情報処理装置。
  10. 前記決定手段は、前記第1レイアウトにおいて空となる部分表示領域と前記第2レイアウトの部分表示領域との差異をゼロとして当該第1レイアウトを表示するか否かを決定することを特徴とする請求項8または9に記載の情報処理装置。
  11. 前記第1レイアウトの部分表示領域のサイズと位置とを修正する修正手段を更に有し、
    前記表示制御手段は、前記第1レイアウトと前記第2レイアウトとを表示し、
    前記修正手段は、前記第1レイアウトの部分表示領域のサイズと位置との修正に従って前記第2レイアウトの部分表示領域のサイズと位置とを修正することを特徴とする請求項8乃至10のいずれか1項に記載の情報処理装置。
  12. 前記抽出手段は、比較対象となる保存データと比較データとがテキストデータである場合、前記部分表示領域に設定されたフォントサイズにて前記保存データのテキストデータを1列に並べた時の長さと、前記部分表示領域に設定されたフォントサイズにて前記比較データのテキストデータを1列に並べた時の長さとを比較することを特徴とする請求項8乃至11のいずれか1項に記載の情報処理装置。
  13. 前記抽出手段は、前記保存データが割り当てられることで決定された第1テンプレートの部分表示領域の中心点の位置と、前記比較データが割り当てられることで決定された第2テンプレートの部分表示領域の中心点の位置とを比較することを特徴とする請求項8乃至12のいずれか1項に記載の情報処理装置。
  14. 前記保存データと比較データのそれぞれは、複数のコンテンツにより構成されるレコードであることを特徴とする請求項8乃至13のいずれか1項に記載の情報処理装置。
  15. 割り当てられたデータを収めるための部分表示領域を備えるテンプレートを用いてレイアウト処理を実行する情報処理をコンピュータに実行させるコンピュータ読み取り可能なプログラムであって、当該プログラムが、コンピュータを、
    前記部分表示領域をページ内の規範位置に割り当てられる比較データと、当該部分表示領域に割り当てられる複数の保存データとを比較して、指定された抽出条件に一致する保存データを抽出する抽出手段と、
    前記抽出手段により抽出された保存データを前記テンプレートの部分表示領域に割り当て、当該保存データのサイズを用いて決定された第1レイアウト、前記比較データを前記テンプレートの部分表示領域に割り当て、当該比較データのサイズを用いて決定された第2レイアウトとを比較して、当該第1レイアウトを表示するか否かを決定する決定手段と
    前記決定手段により表示すると決定された第1レイアウトを表示する表示制御手段として機能させることを特徴とするプログラム。
  16. 前記テンプレートは、関連付けられた第1部分表示領域と第2部分表示領域とを含み、
    前記第1部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量と前記第2部分表示領域に割り当てられる前記保存データのコンテンツのサイズの変化量とが同等になるようにレイアウトを決定するレイアウト制御手段として前記コンピュータを更に機能させることを特徴とする請求項15に記載のプログラム。
  17. 前記決定手段は、前記第1レイアウトにおいて空となる部分表示領域と前記第2レイアウトの部分表示領域との差異をゼロとして当該第1レイアウトを表示するか否かを決定する処理を前記コンピュータに実行させることを特徴とする請求項15または16に記載のプログラム。
  18. 前記第1レイアウトの部分表示領域のサイズと位置とを修正する修正手段として前記コンピュータを更に機能させ、
    前記表示制御手段は、前記第1レイアウトと前記第2レイアウトとを表示する処理を前記コンピュータに実行させ、
    前記修正手段は、前記第1レイアウトの部分表示領域のサイズと位置との修正に従って前記第2レイアウトの部分表示領域のサイズと位置とを修正する処理を前記コンピュータに実行させることを特徴とする請求項15乃至17のいずれか1項に記載のプログラム。
  19. 前記抽出手段は、比較対象となる保存データと比較データとがテキストデータである場合、前記部分表示領域に設定されたフォントサイズにて前記保存データのテキストデータを1列に並べた時の長さと、前記部分表示領域に設定されたフォントサイズにて前記比較データのテキストデータを1列に並べた時の長さと、を比較する処理を前記コンピュータに実行させることを特徴とする請求項15乃至18のいずれか1項に記載のプログラム。
  20. 前記抽出手段は、前記保存データが割り当てられることで決定された第1テンプレートの部分表示領域の中心点の位置と、前記比較データが割り当てられることで決定された第2テンプレートの部分表示領域の中心点の位置とを比較する処理を前記コンピュータに実行させることを特徴とする請求項15乃至19のいずれか1項に記載のプログラム。
  21. 前記保存データと比較データのそれぞれは、複数のコンテンツにより構成されるレコードであることを特徴とする請求項15乃至20のいずれか1項に記載のプログラム。
JP2004024590A 2004-01-30 2004-01-30 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム Expired - Fee Related JP4125249B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004024590A JP4125249B2 (ja) 2004-01-30 2004-01-30 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム
US11/030,666 US7596746B2 (en) 2004-01-30 2005-01-06 Information processing method and apparatus, and computer-readable program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004024590A JP4125249B2 (ja) 2004-01-30 2004-01-30 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム

Publications (3)

Publication Number Publication Date
JP2005216183A JP2005216183A (ja) 2005-08-11
JP2005216183A5 JP2005216183A5 (ja) 2006-08-03
JP4125249B2 true JP4125249B2 (ja) 2008-07-30

Family

ID=34805766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004024590A Expired - Fee Related JP4125249B2 (ja) 2004-01-30 2004-01-30 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム

Country Status (2)

Country Link
US (1) US7596746B2 (ja)
JP (1) JP4125249B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004354767A (ja) * 2003-05-29 2004-12-16 Sharp Corp 文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体
JP4047308B2 (ja) * 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
US20090025030A1 (en) * 2005-05-18 2009-01-22 Nec Corporation Contents display system and contents display method
US20070028169A1 (en) * 2005-07-28 2007-02-01 Microsoft Corporation Getting started assistance
WO2008022377A1 (en) * 2006-08-21 2008-02-28 Romeena Pty Limited As Trustee For Kemp Family Trust Print data transformation
JP4869093B2 (ja) * 2007-02-02 2012-02-01 キヤノン株式会社 情報処理装置及びその制御方法
AR067297A1 (es) * 2007-03-28 2009-10-07 Avery Dennison Corp Interfaz de usuario de tipo cinta para un programa de aplicacion
US20090013245A1 (en) 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor xml editor framework
JP5245363B2 (ja) * 2007-11-09 2013-07-24 富士ゼロックス株式会社 可変データ処理プログラム、可変データ処理装置及び可変データ処理システム
US20090182615A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Self-serve direct-to-consumer mail marketing service
JP5414453B2 (ja) 2009-10-22 2014-02-12 キヤノン株式会社 文書処理装置、および、プレビュー表示方法
KR20130003275A (ko) * 2011-06-30 2013-01-09 한국전자통신연구원 멀티미디어 정보를 편집하기 위한 장치 및 그 방법
US9639614B2 (en) * 2011-10-04 2017-05-02 Microsoft Technology Licensing, Llc Maximizing content item information on a search engine results page
US9245209B2 (en) 2012-11-21 2016-01-26 Xerox Corporation Dynamic bleed area definition for printing of multi-dimensional substrates
US9460056B2 (en) * 2013-01-22 2016-10-04 Xerox Corporation Dynamic image layout for personalized packages
US10007933B2 (en) * 2013-02-22 2018-06-26 Swoop Inc. Systems and methods for integrating dynamic content into electronic media
US9830304B1 (en) * 2013-02-22 2017-11-28 Swoop Inc. Systems and methods for integrating dynamic content into electronic media
CN104346107B (zh) * 2013-07-31 2017-04-26 北大方正集团有限公司 可变数据印刷的页面处理方法和装置
US10409895B2 (en) * 2017-10-17 2019-09-10 Qualtrics, Llc Optimizing a document based on dynamically updating content
DK201870353A1 (en) * 2018-05-07 2019-12-04 Apple Inc. USER INTERFACES FOR RECOMMENDING AND CONSUMING CONTENT ON AN ELECTRONIC DEVICE
US11023653B2 (en) * 2018-10-17 2021-06-01 Kyocera Document Solutions Inc. Simplified formatting for variable data production with vertical resolution of dependencies
CN114730580A (zh) 2019-11-11 2022-07-08 苹果公司 基于时间段的精选播放列表的用户界面

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0407935B1 (en) 1989-07-10 1999-10-06 Hitachi, Ltd. Document data processing apparatus using image data
US5544352A (en) * 1993-06-14 1996-08-06 Libertech, Inc. Method and apparatus for indexing, searching and displaying data
JPH07129658A (ja) 1993-11-02 1995-05-19 Toppan Printing Co Ltd レイアウトデザイン装置
US7124359B2 (en) * 1996-01-11 2006-10-17 Canon Kabushiki Kaisha Image edit device adapted to rapidly lay-out photographs into templates with means for preview and correction by user
US6173286B1 (en) * 1996-02-29 2001-01-09 Nth Degree Software, Inc. Computer-implemented optimization of publication layouts
US5956737A (en) * 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US6088710A (en) * 1997-10-29 2000-07-11 R.R. Donnelley & Sons Company Apparatus and method for producing fulfillment pieces on demand in a variable imaging system
US6613099B2 (en) * 1999-08-20 2003-09-02 Apple Computer, Inc. Process and system for providing a table view of a form layout for a database
US6697825B1 (en) * 1999-11-05 2004-02-24 Decentrix Inc. Method and apparatus for generating and modifying multiple instances of element of a web site
JP2001223875A (ja) * 2000-02-04 2001-08-17 Fuji Photo Film Co Ltd 印刷用データの作成方法、及び印刷用データ作成システム
US7340676B2 (en) * 2000-12-29 2008-03-04 Eastman Kodak Company System and method for automatic layout of images in digital albums
US7120868B2 (en) * 2002-05-30 2006-10-10 Microsoft Corp. System and method for adaptive document layout via manifold content
US20020152245A1 (en) * 2001-04-05 2002-10-17 Mccaskey Jeffrey Web publication of newspaper content
US20040088649A1 (en) * 2002-10-31 2004-05-06 International Business Machines Corporation System and method for finding the recency of an information aggregate

Also Published As

Publication number Publication date
US7596746B2 (en) 2009-09-29
JP2005216183A (ja) 2005-08-11
US20050168780A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
JP4125249B2 (ja) 情報処理方法及び情報処理装置及びコンピュータ読み取り可能なプログラム
JP4165888B2 (ja) レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム
JP4241410B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4047308B2 (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4298642B2 (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
JP4332477B2 (ja) レイアウト調整方法及び装置並びにプログラム
JP4250540B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4095558B2 (ja) 文書処理装置及び文書処理方法及びコンピュータプログラム
JP4560416B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4332480B2 (ja) レイアウト調整方法及び装置並びにプログラム
JP4110105B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
JP4208858B2 (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
JP4059504B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
JP4510653B2 (ja) レイアウト決定方法及び装置並びにプログラム
JP4262164B2 (ja) 情報処理装置及びその制御方法、プログラム
JP2006277727A (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4095592B2 (ja) 情報処理装置、情報処理方法ならびにプログラム
US20130290837A1 (en) Method and Apparatus for Correcting Document Formatting Based on Source Document
JP2009110391A (ja) 情報処理装置および制御方法および制御プログラム
JP4111519B2 (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4194501B2 (ja) 文書処理方法、文書処理装置及び文書処理プログラム
JP4549379B2 (ja) 文書処理装置及び文書処理方法及びプログラム
JP2006072518A (ja) 情報処理装置、情報処理方法、ならびにプログラム
JP4795398B2 (ja) レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム
JP4241551B2 (ja) 情報処理装置、情報処理方法、ならびにプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080414

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080507

R150 Certificate of patent or registration of utility model

Ref document number: 4125249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees