JP2008129702A - 情報処理装置および制御方法および制御プログラム - Google Patents
情報処理装置および制御方法および制御プログラム Download PDFInfo
- Publication number
- JP2008129702A JP2008129702A JP2006311618A JP2006311618A JP2008129702A JP 2008129702 A JP2008129702 A JP 2008129702A JP 2006311618 A JP2006311618 A JP 2006311618A JP 2006311618 A JP2006311618 A JP 2006311618A JP 2008129702 A JP2008129702 A JP 2008129702A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- size
- template
- layout
- content data
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/114—Pagination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Document Processing Apparatus (AREA)
- Editing Of Facsimile Originals (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】 自動レイアウト処理を実行する際、表形式に水平方向または垂直方向のサイズのバランスを考慮し、かつ、可能な限りコンテンツデータが要求するサイズにてレイアウトすることができなかった。
【解決手段】 行方向に配置されるサブテンプレートの垂直方向サイズと列方向に配置されるサブテンプレートの水平方向サイズとに基づいて領域サイズを決定し、その領域内に収まるようにレイアウト処理を実行する。
【選択図】 図17
【解決手段】 行方向に配置されるサブテンプレートの垂直方向サイズと列方向に配置されるサブテンプレートの水平方向サイズとに基づいて領域サイズを決定し、その領域内に収まるようにレイアウト処理を実行する。
【選択図】 図17
Description
本発明は、自動レイアウトシステムにおける情報処理装置、制御方法、制御プログラムに関するものである。
近年、商品の多品種化で商品ライフサイクルが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM、One−to−Oneマーケティングの必要性が注目されている。これらの手法は、顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。なお、CRMとは、Customer Relationship Managementの略称である。
One−to−Oneマーケティングとは、データベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析することで顧客のニーズに合った提案を行う商業形態である。その代表的な手法としてバリアブルプリントが挙げられる。
最近ではDTP技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発されており、顧客毎に異なるコンテンツを最適にレイアウトすることが求められるようになった。なお、DTPとは、デスクトップパブリッシングの略称である。
従来、バリアブルプリントは、ドキュメント上にコンテナ等を含むテンプレートを作成し、データベースと当該テンプレートを関連付けて、データベースのコンテンツデータをテンプレート内のコンテナに流し込むことで文書を生成していた。なお、コンテナとは、コンテンツデータを流し込むための領域である。
しかし、テキストデータおよびイメージデータが配置されるコンテナサイズが固定であったため、コンテナサイズより大きいコンテンツデータがコンテナに挿入されるとコンテンツデータが欠けてしまうという問題が発生する。また、コンテナサイズより小さいコンテンツデータがコンテナに挿入されると、隙間が空いてしまうという問題が発生する。
これらの問題を解決するために、自動レイアウトシステムが発明されている。自動レイアウトシステムはテキストデータおよびイメージデータのコンテナのサイズを可変に設定することが可能である。その結果、各コンテナに流し込まれるコンテンツデータのサイズに応じてコンテナサイズを変更することが可能となり、上述した問題点を解決することができる。
一方、コンテンツデータのサイズに従ってコンテナサイズを変更すると、例えばテンプレートに設定された全てのコンテナに大きいサイズのコンテンツデータが挿入された場合、各コンテナサイズが拡大され他のコンテナと重なってしまうという新たな問題が発生する。
この問題点を解決するために、複数のコンテナを関連付けることで、各コンテナが重ならないようにレイアウトを調整しながら、可能な限りコンテンツデータが要求するサイズとなるようにコンテナサイズを決定する技術が特許文献1に開示されている。
また、従来のバリアブルプリントシステムにおいて、多レコードを1ドキュメントにレイアウトするマルチレコード技術も知られている。この技術により、顧客情報を分析して、顧客毎に必要とされるコンテンツデータを含む複数のレコードを配置したドキュメントを作成することが可能となる。
このマルチレコード技術を実現するための技術が特許文献2に開示されている。特許文献2には、フローエリアという領域を生成し、当該フローエリアに設定された条件と合致するコンテンツデータを含むレコードを抽出する。そして、抽出されたレコードは、サブテンプレートというテンプレート領域に流し込まれ、サブテンプレート内でレイアウト調整が行われ、その調整結果が、フローエリア内に配置されるという技術が開示されている。
しかしながら、上記特許文献2に記載のサブテンプレートサイズは、いかなるコンテンツデータが流し込まれても、サブテンプレートサイズは一定であった。よって、初期設定されたサブテンプレートのサイズよりも、大きいサイズのコンテンツデータがレイアウト対象となった場合、当該コンテンツデータは極端に縮小されてしまうため、コンテンツデータの作成者の意図するサイズで出力することが困難となる。
一方、コンテンツデータのサイズに合せてサブテンプレートのサイズを可変とすることで上記問題点を解決することは可能である。しかし、同じサブテンプレートを使用したとしてもサブテンプレートに流し込まれるコンテンツデータのサイズによって各サブテンプレートのサイズが決まる。そのため、大きなサイズのコンテンツデータが挿入されたサブテンプレートのサイズは大きく、小さいサイズのコンテンツデータが挿入されたサブテンプレートのサイズは小さくなる。その結果、例えばレイアウト済みのサブテンプレートを横一列に並べた場合、高さが不揃いになる。
そのため、例えば商品を宣伝するために各商品を整然と格子状に配置することで見栄えの良いカタログを生成したいという要望があっても、上記従来技術では、各商品のサイズのバランスを考慮して整然と格子状に配置することができないおそれがあった。
本願は上記課題に鑑みてなされたものであり、可能な限りコンテンツデータが要求するサイズにてレイアウトすると共に、縦方向および横方向にバランスよくコンテンツデータが配置されたレイアウト結果を生成することを目的とする。
本願発明は、データベースからレイアウトすべきコンテンツデータを抽出するための抽出条件が設定されたフローエリアを有し、抽出されたコンテンツデータが配置されたサブテンプレートを前記フローエリアに配置してレイアウトを決定する情報処理装置であって、前記抽出条件を満たすコンテンツデータを前記データベースから取得する取得手段と、前記取得手段によって取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、水平方向である行方向に配置されるべきサブテンプレートから選択された各行のサブテンプレートの垂直方向サイズと、垂直方向である列方向に配置されるべきサブテンプレートから選択された各列のサブテンプレートの水平方向サイズとに基づいて、前記フローエリアを分割するセル領域の領域サイズを決定する第1決定手段と、前記第1決定手段によって領域サイズが決定されたセル領域に収まるように前記サブテンプレートのサイズを決定し、当該サブテンプレートに対してコンテンツデータを配置する配置手段を有することを特徴とする。
本願発明を用いることによって、可能な限りコンテンツデータが要求するサイズにてレイアウトすると共に、縦方向および横方向にバランスよくコンテンツデータが配置されたレイアウト結果を生成することが可能となる。
本発明の実施例を適用するのに好適な実施例について説明を行う。本発明の実施例を説明する前に、本発明を適用可能なシステム構成、およびアプリケーション構成について説明する。
図1はバリアブルデータドキュメントを印刷するシステム100を図示している。本願のホストコンピュータ101は、ユーザインタフェース103およびレイアウトエンジン105を含むレイアウト編集アプリケーション121を備える。そして、ホストコンピュータ101は、ネットワーク107を介してコンテンツデータを記憶するデータベース119を備えるデータベースサーバ117と接続されている。
システム100における、ホストコンピュータ101の詳細なブロック図は、図2において説明する。レイアウト編集処理、および、印刷処理はホストコンピュータ101におけるソフトウェアの指示によって実行される。
ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータ可読媒体からホストコンピュータ101にロードされ、実行される。ホストコンピュータ101は、コンピュータプログラム製品を使用することによりドキュメントのレイアウト編集、および、バリアブルデータ印刷を実現可能な装置として作動する。
ホストコンピュータ101はキーボード132やマウス133のようなポインティングデバイスなどの入力装置と接続され、表示部144、プリンタ145を含む出力装置と通信可能である。
入力/出力インタフェース138は、ホストコンピュータ101をネットワーク接続107から他のコンピュータ装置に接続する。なお、ネットワーク接続107の一例はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
ホストコンピュータ101は、少なくとも1つのプロセッサーユニット135、例えばランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136を含んでいる。さらにホストコンピュータ101は、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インタフェース、キーボード132やマウス133のためのI/Oインターフェイス143を含んでいる。
記憶装置139は典型的にハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含んでいる。CD−ROMドライブ142は不揮発性のデータソースとして提供される。ホストコンピュータ101はLINUXやマイクロソフトウィンドウズ(登録商標)のようなオペレーションシステムや相互接続バス134を介して通信を行うホストコンピュータ101のコンポーネント135からI/Oインタフェース143を利用する。
レイアウト編集アプリケーションプログラム121はハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。レイアウト編集アプリケーションプログラム121の媒介記憶装置とネットワーク107からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136に保持される。
その他の例では、レイアウト編集アプリケーション121が、CD−ROMやフロッピー(登録商標)ディスク上でエンコードされ、対応するドライブ142および141を通じて読み込まれユーザに提供される。
または、レイアウト編集アプリケーションプログラム121は、ネットワーク接続107からユーザによって読み込まれてもよい。さらにソフトウェアは磁気テープ、ROM、集積回路、光磁気ディスク、無線、赤外線通信、コンピュータ可読カード、Eメール通信、インターネット、イントラネットを含む他の可読媒体からホストコンピュータ101内にロードされる可能性もある。
またレイアウト編集アプリケーション121は、2つのソフトウェアコンポーネントを含んでいる。これらのうち1つめのコンポーネントはレイアウトエンジン105であり、これは長方形の範囲内で与えられた制限、または、設定されたサイズによって矩形と線の位置を計算するソフトウェアコンポーネントである。
2つめのコンポーネントであるユーザインタフェース103は、ユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレートとデータソースとを関連付ける。
ユーザインタフェース103とレイアウトエンジン105は、コミュニケーションチャネル123を介して通信する。ドキュメント生成のためのデータソースは、他のコンピュータによって構成されたデータベースサーバ117上のデータベース119である。
ホストコンピュータ101はネットワーク接続107によってデータベースサーバ117と通信する。レイアウト編集アプリケーション121は、ホストコンピュータ101あるいはファイルサーバ115に保存されるドキュメントテンプレートを生成する。
また、レイアウト編集アプリケーション121は、データとドキュメントテンプレートとをマージしてドキュメントを生成する。これらのドキュメントはホストコンピュータ101のメモリ136に保存されるか、ファイルサーバ115に保存される。
また、これらのドキュメントは、プリンタ113に送信され、印刷される。プリントサーバ109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバ109とプリンタ113は典型的な通信チャネル111を介して接続される。
図32は、本実施形態によるバリアブルデータプリントの概略を説明する図である。
ユーザインタフェースモジュール103(以下、ユーザインタフェース103と記載する)は、ユーザからの操作指示に従いページ上に複数のコンテナ181〜183を配置する。そして、各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート180が生成される。
また、ユーザインタフェース103はドキュメントテンプレート180とデータソース190との関連付け、更に各コンテナとデータソース190内の各データフィールドとの関連付けを行う。
各コンテナとデータソース190内の各データフィールドとの関連付けを示す関連付け情報は、ドキュメントテンプレート内に記述され、該ドキュメントテンプレートは、HDD140に格納される。また、データソース190は、レコード単位で項目データが記載されているファイルであり、HDD140に格納されている。レイアウトエンジン105は、ユーザからの印刷指示もしくはプレビュー指示に応じて、ドキュメントテンプレートの各コンテナ181〜183に、関連付け情報で関連付けられたコンテンツデータをデータソース190から読み込み、レコード単位で流し込む。例えば、レコード1のデータフィールドA〜Cは、コンテナ181〜183へ流し込まれ、流し込まれたデータに応じて各コンテナのサイズ等が調整(レイアウト調整)される。
プレビュー指示の場合、レイアウト調整されたドキュメントイメージが、表示部144にプレビューとして表示される。また印刷指示の場合、レイアウトエンジン105によって生成されたドキュメントイメージが、プリンタドライバによってページ記述言語に変換され、印刷データとして出力される。
レコードを順次処理することにより、バリアブルデータプリントが実現される。
ドキュメント生成のためのデータソース(190)は、データベースサーバ117上の一般的なデータベース119でもよい。この場合、ホストコンピュータ101はネットワーク107を介してデータベースサーバ117と通信し、データソースを取得する。
また、レイアウト編集アプリケーション121によって生成されたドキュメントテンプレート(180)は、ホストコンピュータ101或いは他のコンピュータで構成されるファイルサーバ115に保存される。
(メインウィンドウ)
ユーザインタフェース部103は、ユーザの指示に従って図3のウィンドウ301を表示部144に表示する。
ユーザインタフェース部103は、ユーザの指示に従って図3のウィンドウ301を表示部144に表示する。
ウィンドウ301は、メニューバー302とツールバー303、そしてマウス133の位置・動作によって場所を移動可能なワークエリア306とオプションのパレット311とカーソル/ポインタデバイス313を含む。メニューバー302は周知の技術であり、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
ツールバー303は、アプリケーションの特別なモードによって非表示または表示することが可能な多くのツールボタン等のウィジット305を持つ。オプションのルーラー308はワークエリア内のポインター、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。パレット311はバリアブルデータを読み込んで表示するライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウィンドウコントロール312を持つ。
ツールバーエリア303は少なくとも、次のユーザ選択可能な「ボタン」を持つ。
選択ツールボタンは、コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック・ロック解除するために使われる。コンテナは、(複数)コンテナの周りに選択ボックスをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数選択を可能にする。
イメージコンテナツールボタンは、スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。テキストコンテナツールボタンは、スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。リンクツールボタンは、コンテナ間の距離をコントロールするために使われる。
(ドキュメントテンプレート)
ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。ユーザは、ワークエリア306を用いてドキュメントテンプレートの概観をデザインする。そしてコンテンツデータが流し込まれたドキュメントが、バリアブルデータの量およびサイズに基づいてどのように変化するかを確認できる。
ワークエリア306はドキュメントテンプレートのデザインを表示・編集するために使われる。ユーザは、ワークエリア306を用いてドキュメントテンプレートの概観をデザインする。そしてコンテンツデータが流し込まれたドキュメントが、バリアブルデータの量およびサイズに基づいてどのように変化するかを確認できる。
外部データソースがテンプレートにリンクされた場合、ドキュメントのプレビューを実現すべく、コンテンツデータ(テキストとイメージ)がテンプレート上のコンテナに表示される。
ドキュメントの構造とコンテナの描写を視覚的に表示することも可能である。
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309を備える。ドキュメントテンプレート309は、テンプレート中に複数のページが複数あることを示すこともできる。
与えられたドキュメントテンプレートのページサイズは、ユーザによって指定される。それぞれのドキュメントでの実際のページ数は、バリアブルデータによって変化することもある。バリアブルデータを1ページ内に配置できない時、追加のページは自動的に作成されても良い。
それぞれのページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示すページマージン310である。
また、図3には1ページのドキュメントテンプレート309上に表示することが可能なオブジェクトの例を含んでいる。それらは、コンテナ407、408と、固定されていない辺410、そして複数のコンテナを関連付けるリンク412を持つ。
(コンテナ)
コンテナは、ドキュメントテンプレート内に配置され、テキストデータまたはイメージデータであるコンテンツデータが入力される領域であり、他のコンテナやオブジェクトと相互に作用しながらレイアウトされる。コンテナは、ユーザインタフェースによって表示され、移動やサイズ調整そして再作成される。
コンテナは、ドキュメントテンプレート内に配置され、テキストデータまたはイメージデータであるコンテンツデータが入力される領域であり、他のコンテナやオブジェクトと相互に作用しながらレイアウトされる。コンテナは、ユーザインタフェースによって表示され、移動やサイズ調整そして再作成される。
より正確には、コンテナは、設定の集まり、視覚的表現、インタラクションと編集動作をもっている。
コンテナには、固定あるいは可変のコンテンツデータが流し込まれる。可変コンテンツは、データソースから取得される。本願における可変コンテンツは、アニメーションのように時間的に変化するコンテンツを含むことは印刷に適合していないため意図していない。
また、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じ出力結果となる。しかし、可変コンテナのレイアウト動作の影響を受け、固定コンテンツが配置されたコンテナの位置が変更されることもある。
コンテナはドキュメントを生成すべく、データソースからのコンテンツデータが流し込まれる(マージされる)。コンテナは、データソースから取得したコンテンツデータが流し込まれた状態で表示される。コンテンツデータが流し込まれたコンテナは、例えば印刷されるか、表示部144に表示される。
コンテナはユーザインタフェースを持ち、例えばコンテナの編集そして表示設定のためのインタラクティブなGUIを持つ。インターフェイスの要素は表示部144上に表示されるが、印刷されない。ユーザインタフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、またコンテナの設定の編集や表示を許すためのインターフェース要素も表示する。
(コンテナ制約)
コンテナには、流し込まれるコンテンツデータの出力を制御するための制約が設定される。これらの制約は、1つのドキュメントテンプレートから多種多様なドキュメントの出力を実現する。制約の例は「このコンテナのコンテンツの高さは、最大値4インチ」など、コンテナの最大サイズの設定である。また別の制約の例は「コンテナのコンテンツの左辺は、どのドキュメントでも同じ水平位置で表示する」など、コンテナの位置の設定である。以下に記述される内容は、GUIを使ってこのような制約を設定する方法である。
コンテナには、流し込まれるコンテンツデータの出力を制御するための制約が設定される。これらの制約は、1つのドキュメントテンプレートから多種多様なドキュメントの出力を実現する。制約の例は「このコンテナのコンテンツの高さは、最大値4インチ」など、コンテナの最大サイズの設定である。また別の制約の例は「コンテナのコンテンツの左辺は、どのドキュメントでも同じ水平位置で表示する」など、コンテナの位置の設定である。以下に記述される内容は、GUIを使ってこのような制約を設定する方法である。
イメージがページ上に定義された位置情報を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。
コンテナには、位置とサイズが設定されている。また、コンテナは、編集および表示される。なお、本願では、コンテナについてバリアブルデータ印刷に特化した方法での表示・編集に焦点を置いて説明する。
コンテナは、コンテンツデータのサイズおよび位置を決定するために必要となる。複数のドキュメントのレイアウトを1つのドキュメントテンプレートから生成するため、コンテナは多数のレイアウトの可能性と制約を指定・表示するためのユーザインタフェースとして利用される。
(コンテナ表示・編集)
(新規コンテナの作成方法)
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナには、コンテンツデータとしてテキストデータが流し込まれる。一方、イメージコンテナは、コンテンツデータとしてイメージデータが流し込まれる。なお、これらのコンテンツデータは、固定であっても可変であっても構わない。
(新規コンテナの作成方法)
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナには、コンテンツデータとしてテキストデータが流し込まれる。一方、イメージコンテナは、コンテンツデータとしてイメージデータが流し込まれる。なお、これらのコンテンツデータは、固定であっても可変であっても構わない。
新規テキストコンテナとイメージコンテナは、テキストコンテナツール、または、イメージコンテナツールを選択した状態で、四角形の領域をドラッグすることによって、ドキュメントテンプレート309上に作成される。
また、コンテナは、同様に適切なツールをアクティブにした後に、ドキュメントテンプレート309上でクリックすることによって作成されてもかまわない。この場合、デフォルトサイズのコンテナが作成されるか、新規コンテナの寸法を入れるために、ダイアログボックスが提供される。あるいは他の案が考えられるかも知れない。
(コンテナの表示方法)
コンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される際の仮想の境界線を定義する。コンテナをユーザインタフェースとして利用するに際し、例えばコンテナの左辺は、当該コンテナに関連付けられたコンテンツが、どんなドキュメントにおいても表示可能である最も左の辺として扱われる。同様に、コンテナの高さは、当該コンテナに関連付けられたコンテンツデータが、どのようなドキュメントにおいても表示可能な高さの制限として扱われる。
コンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される際の仮想の境界線を定義する。コンテナをユーザインタフェースとして利用するに際し、例えばコンテナの左辺は、当該コンテナに関連付けられたコンテンツが、どんなドキュメントにおいても表示可能である最も左の辺として扱われる。同様に、コンテナの高さは、当該コンテナに関連付けられたコンテンツデータが、どのようなドキュメントにおいても表示可能な高さの制限として扱われる。
本願において、レイアウト編集アプリケーション121は、ユーザの指示に従って、ユーザインタフェース103を通してコンテナの辺あるいは大きさを変えることができる。
続いて、コンテンツのレイアウトを制限するために使われるコンテナ制限情報ユーザインタフェースとレイアウトの関係のルールを説明する。
コンテナの幅が固定として設定された場合、コンテナの左右の辺は実線として表示される。
コンテナの幅が固定として設定された場合、当該コンテナに関連付けられたコンテンツの幅は、全てのドキュメントにおいて同じとなる。しかしコンテナの高さは、関連付けられるコンテンツデータによって変わる可能性がある。
コンテナの高さが固定として設定されている場合、コンテナの上下の辺は、実線として表示される。コンテナの高さに対して固定が設定された場合、当該コンテナに関連付けられたコンテンツの高さは、全てのドキュメントにおいて同じとなる。しかし、コンテナの幅は関連付けられるコンテンツデータによって変わる可能性がある。
固定として設定されたコンテナの辺に対して当該コンテナとは異なるコンテナが関連づけられた場合、そのコンテナは他のコンテナによって押され、位置を変える場合がある。上下辺に対して他のコンテナが関連付けられた場合、コンテナは他のコンテナによって押され縦方向の位置を変更する。一方、左右辺に対して他のコンテナが関連付けられた場合、コンテナは他のコンテナによって押され、横方向の位置を変更する。なお、複数のコンテナの関連付けについては図6を用いて説明する。
続いて、コンテナに対して「可変」が設定された場合について説明する。
コンテナの幅が可変として設定されている場合、コンテナの左右の辺は、点線として表示される。コンテナの幅に対して可変が設定された場合、当該コンテナに関連付けられたコンテンツの幅はドキュメントごとに変化する。
コンテナの高さが可変として設定されている場合、コンテナの上下の辺が点線として表示される。コンテナの高さに対して可変が設定されていた場合、当該コンテナに関連付けられたコンテンツの高さは、ドキュメントごとに変化する。
また、コンテナの辺の長さが可変として設定されている場合、コンテナの辺の長さは当該コンテナに関連付けられるコンテンツデータによって変化する可能性がある。レイアウト編集アプリケーション121は、コンテナの辺の長さに対する設定により、最大長・最小長の制限の枠内でコンテナの辺の長さを調整する。
可変として設定されたコンテナの辺に他のコンテナが関連付けられた場合、そのコンテナは他のコンテナによって押され、位置を変える場合がある。
図4は、上述したルールに基づくコンテナの辺の状態を示している。一般的に、コンテナの辺の状態はドキュメントテンプレートのデザインの手助けとして表示される要素であるため、印刷物には描画されない。
コンテナ401は、4つの辺が可変として設定された状態を示す。コンテナ402、403は、上下いずれか1辺が固定として設定された状態を示す。コンテナ404は上下の辺が固定として設定された状態を示す。コンテナ405は、左辺が固定として設定された状態を示す。コンテナ406は、左および上の辺が固定として設定された状態を示す。このように、レイアウト編集アプリケーション121は、コンテナ401から416のように、固定として設定された辺を実線にて表示し、可変として設定された辺を点線にて表示する。
図5(A)において、コンテナ501は幅が可変である。この場合、辺503は実線で表現され、可変の辺504は点線で表現される。拡縮アイコン505は、隣接する辺504が可変であることを示す、オプションのインジケーターである。
一方、図5(B)において、コンテナ501は幅および高さが可変であり、図5(C)のコンテナ501も、幅および高さ両方が可変である。
(リンクの設定方法)
図6はリンクの設定方法のUI例を示している。
図6はリンクの設定方法のUI例を示している。
図6の(a)において、リンクの設定指示をした状態で、ユーザはリンクを設定する片方のコンテナ0601をクリックして選択する。次に図6(b)において、選択したコンテナ0601と関連付けたいコンテナ0602までマウスポインタを移動して、クリックする。図6(b)の0604は図6(a)でクリックをした位置と移動したマウスポインタを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すUIである。図6(b)で2度目のクリックが終わった後、レイアウト編集アプリケーション121は、関連付けられた複数のコンテナ間にリンク0605を設定する(図6(c))。当該リンクによって、複数のコンテナが関連付けられる。
コンテナ0601とコンテナ0602の左辺および右辺(0606)は、点線で示されており、前述した通り可変の辺であることが示されている。図6(c)の状態において、レイアウト編集アプリケーション121は、コンテナ0601に流し込まれるコンテンツデータに従って当該コンテナ0601の右辺を右方向へ移動することが可能である。またコンテナ0602の左辺は、左方向へ移動することが可能である。そして、コンテナ0601とコンテナ0602の間をリンクで接続したことにより、左右のコンテナは、当該リンクサイズを保ったまま相互にサイズ調整される。
(レイアウト計算方法(全体フロー))
図7Aはレイアウト計算のフローを示している。なお、本願のフローチャートにおける各ステップは、ホストコンピュータ101のプロセッサ135によって実行される。
図7Aはレイアウト計算のフローを示している。なお、本願のフローチャートにおける各ステップは、ホストコンピュータ101のプロセッサ135によって実行される。
レイアウト編集アプリケーション121は、ユーザの指示に従ってプレビューモードを選択する(S701)。レイアウト編集アプリケーション121は、コンテナを作成して、そのコンテナ間に関連付けを行い、テンプレートのレイアウトを作成するレイアウトモードを備える。
また、レイアウト編集アプリケーション121は、作成したテンプレートのレイアウトにデータベースのコンテンツデータを例えばレコード単位に挿入して、各コンテナにコンテンツデータが挿入された後のレイアウト結果をプレビューするプレビューモードを備える。
レイアウト編集アプリケーション121は、このプレビューモードにおいて、レコードを構成する複数のコンテンツデータがコンテナに挿入されることでレイアウト計算を実行する。プレビューモードは、表示上でのレイアウト計算であるが、印刷する場合も同じ処理を実行する。
レイアウト編集アプリケーション121は、プレビューモードを選択した場合、プレビュー対象のレコードを取得して、当該レコードを構成するコンテンツデータを各コンテナに流し込む(S702)。
レイアウト編集アプリケーション121は、レコードの挿入によってコンテンツデータを各コンテナに流し込んだ場合、各コンテナのサイズを決定すべくレイアウト計算を実行する(S703)。
そして、レイアウト編集アプリケーション121は、S703で計算されたレイアウト結果を表示する(S704)。
さらに、レイアウト編集アプリケーション121は、ユーザの指示によって他のレコードにプレビューを切り替えるかどうかを判断する(S705)。S705で、他のレコードについてプレビューを行う必要がないと判断した場合、レイアウト編集アプリケーション121は、プレビューモードを終了する(S707)。一方、他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(S706)。プレビューモードでなく印刷処理を実行する場合、レイアウト編集アプリケーション121は、印刷する全てのレコードについて順にレイアウト計算を行う。したがって、印刷処理を実行する場合、S705、0707は存在しない。全てのレコードについて印刷が終了した時点で終了する。
(レイアウト計算方法)
図7Bは図7AのS703のレイアウト計算の詳細を示したフロー図である。また、図8はそのときの表示例を示した図である。
図7Bは図7AのS703のレイアウト計算の詳細を示したフロー図である。また、図8はそのときの表示例を示した図である。
レイアウト編集アプリケーション121は、レイアウトを計算するために前述したリンクによって関連付けらコンテナの集合を求める(S710)。レイアウト計算は、リンクによって関連付けられたコンテナを一つの集合として実行される。レイアウト編集アプリケーション121は、S710で求めたコンテナの集合から、レイアウトを計算するためにコンテナの集合の1つを選択する(S711)。
そして、レイアウト編集アプリケーション121は、選択したコンテナの集合についてレイアウト計算を行う。S711において選択されたコンテナの集合について、レイアウト編集アプリケーション121は、レイアウトの最適化を行う(S712)。S712の詳細な一例として、レイアウト編集アプリケーション121は、コンテナに配置されるコンテンツデータが要求するサイズと、レイアウト計算後のコンテナサイズとの差異ができる限り少なくなるようにコンテナサイズを決定する。
レイアウト編集アプリケーション121は、S712のレイアウトの最適化によって、最適化されたレイアウトが、レイアウトルールを違反していないかを判定し(S713)、ルールに違反していた場合は、再度ルールを違反しないように計算をする(S712)。なお、S713において記述したルールとは、ドキュメントテンプレート作成時にユーザによって設定される制約条件のことであり、例えば、コンテナのサイズ、コンテナの位置、コンテナの辺の状態、リンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、レイアウト編集アプリケーション121は、S711〜S713の処理をS710において求められたすべての集合について実行し、ページ全体のレイアウトを決定する(S714)。
図8はレイアウト計算時のUI例である。
図8(A)は、あるレコードのコンテンツデータがコンテナに挿入されレイアウトが決定された状態を表している。0801と0802は固定された辺、0803は可変の辺、0804と0805は可変の辺の変化方向を示している矢印、0806はリンクをそれぞれ示している。
この状態において、レコードを変更し、異なったサイズのコンテンツデータを各コンテナに流し込む。図8(B)は、図8(A)の状態に新しいコンテンツのサイズを重ねて示している。点線0807はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。
そして、レイアウト計算の結果を図8(C)に示す。計算後の各コンテナのサイズは、各コンテナに挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図8(C)で示されるように、図8(B)で示した挿入されるコンテンツサイズ(0807)と計算後のコンテンツサイズ(0808)は、双方において同等な差異がある。
しかし、同等の差異をもってレイアウト計算を行う処理だけでは、図8のような横方向のみのレイアウト計算の場合は問題ないが、図33のように縦方向および横方向を考慮したレイアウト計算を行わなければならない場合、対応できなくなる可能性がある。
横方向と縦方向の2次元的なレイアウトを扱う図33の場合、図7Bのレイアウト計算方法を用いて、まず横方向に調整を行い、後に縦方向に調整を行う。すなわち、レイアウト編集アプリケーション121は、コンテナ3301と3302の間で、上述した手順で設定値Dに収まるようレイアウト調整を行い、その後、コンテナ3302と3303の間で設定Gに収まるようレイアウト調整を行う。
しかし、横方向に調整を行い、後に縦方向に調整を行うという調整方法では、ユーザが所望とする基本レイアウトとは異なるレイアウト結果になるおそれがある。
そのため、各コンテナについて基本パターンと類似するように、例えば、基本パターンの幅とレイアウト調整後の幅の差の2乗と、基本パターンの高さとレイアウト調整後の高さの差の2乗との和を求め、これをすべてのコンテナについて算出する方法が考えられる。なお、基本パターンとは、レイアウト設計時のコンテナサイズやコンテナの縦横比などである。
そして、レイアウト編集アプリケーション121は、各コンテナの2乗の和(横方向+縦方向)の合計値が最小となるように、それぞれのコンテナの幅と高さを算出してレイアウト調整を行っても良い。この最小2乗法を用いてレイアウト調整を行うことにより、ユーザが当初設定した基本レイアウトから大きく外れることがなく、全体としてバランスのとれたレイアウト結果を決定できる。
なお、コンテナ間には後述する可変リンク3304が設定されているため、流し込まれるコンテンツデータのサイズに応じて後述するようにリンクサイズは変更する。本願記載のレイアウト編集アプリケーション121はこのようなレイアウト調整ユニットを備えることにより、割り当てられたデータサイズに応じて複数の部分表示領域(コンテナ)の配置位置を調整することが可能となる。
また、上記記載ではレイアウト調整アルゴリズムの一例として最小2乗法を用いることを挙げたが、3乗や4乗など所定の操作によりレイアウト調整アルゴリズムを切り替えることを可能にしても構わない。
なお上述した可変リンク3304とは、各コンテナに割り当てられるコンテンツデータに基づいて実行されるレイアウト計算の過程においてリンクの長さが変化するリンクである。例えば、コンテナ3301およびコンテナ3302に、現状の各コンテナサイズよりも大きいサイズのコンテンツデータが配置される場合、従来の固定リンクでは、リンクの長さを保とうとするため、コンテンツサイズが縮小されてしまう。しかし、可変リンク3304は、設定されている範囲内において拡大および縮小が可能なため、上述したように大きいサイズのコンテンツデータが挿入された場合、リンクの長さが縮小することで最大限コンテンツデータのサイズにてレイアウトすることが可能となる。
(マルチレコード)
マルチレコードについて概要を説明する。マルチレコードとは、図9に示すとおり1つのドキュメントに複数レコードが挿入される状態を指す。通常のドキュメントテンプレートでは、1レコードが1ドキュメントに対応している。
マルチレコードについて概要を説明する。マルチレコードとは、図9に示すとおり1つのドキュメントに複数レコードが挿入される状態を指す。通常のドキュメントテンプレートでは、1レコードが1ドキュメントに対応している。
しかし、図13において後述するサブテンプレートに対応するマルチレコードは、基準となる項目が変化するブレイク(区切り)が発生するまでレコードが同一ドキュメント内のコンテナに流し込まれる。そのため、1ドキュメント内に複数のレコードが挿入される。よって、通常のドキュメントテンプレートに対応するバリアブルデータのデータベースと、サブテンプレートに対応するバリアブルデータのマルチレコードのデータベースとは異なるデータベースとすることが望ましい。
図9は、マルチレコードとそのレイアウト方法の概要の一例を示した図である。0901はドキュメントテンプレート、0902はページ、0903はサブテンプレート、0904はデータベースを示している。データベース0904には、No1〜7のレコードが保持されている。1レコード1ドキュメントのバリアブルプリントを実行する場合、7つレコードがあるので7ドキュメントが作成される。
しかし、マルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。
まず、ユーザは、ブレイクが発生したか否かを判定するための特定の項目を選択する。図9の例ではフィールド名:Nameが指定されたものとする。
指定された項目の値が同じレコードは、1ドキュメントにレイアウトされるレコードであると判定される。図9の例では、No1〜4のレコードはフィールドNameの値が「Tom」であるため、No.1〜4のレコードに含まれるコンテンツデータは、1つ目のドキュメントテンプレートに配置され、レイアウト計算が実行される。
一方、No5〜7のレコードのコンテンツデータは、フィールドNameの値が「Nancy」であるため、「Tom」と同じドキュメントテンプレートを用いるが、異なるドキュメント上に配置される。すなわち、レイアウト編集アプリケーション121は、いったん「Tom」のドキュメントを完結させ、「Nancy」のドキュメントを作成する。このようにマルチレコードのレイアウト方式を用いる場合、レイアウト編集アプリケーション121は、特定の項目のデータが変更することに応じて、新しいドキュメントを作成する。
(フローエリアの設定フロー)
図10、11はレイアウト編集アプリケーション121によるテンプレート作成モードの処理フローとその説明UIを示している。図10のフローの各ステップを図11のUI図と共に説明する。レイアウト編集アプリケーション121が実行され、新たなテンプレートの作成指示をユーザが入力することで、図11の画面(ただし矩形1104,1106,1105は除く。)が表示される。図10の手順は、その状態からユーザの指示に応じて遂行されるレイアウト編集アプリケーションの手順である。
図10、11はレイアウト編集アプリケーション121によるテンプレート作成モードの処理フローとその説明UIを示している。図10のフローの各ステップを図11のUI図と共に説明する。レイアウト編集アプリケーション121が実行され、新たなテンプレートの作成指示をユーザが入力することで、図11の画面(ただし矩形1104,1106,1105は除く。)が表示される。図10の手順は、その状態からユーザの指示に応じて遂行されるレイアウト編集アプリケーションの手順である。
まず、レイアウト編集アプリケーション121は、ユーザによって図11のアイコン1103が押下されたことを認識することにより、フローエリア作成モードへと遷移(S1001)する。
続いてレイアウト編集アプリケーション121は、ページマージンのエリア1102において、ユーザのマウスのドラッグによって指示された矩形をフローエリアとして表示する(S1002)。なお、図11では、領域1106がフローエリアに相当する。
レイアウト編集アプリケーション121は、描画された矩形の位置およびサイズを、フローエリア1106の位置及びサイズとしてテンプレートデータの一部としてメモリユニット136に保存する(S1003)。なお、図11に表示されている領域1104および1105はコンテナである。これらコンテナもまた、入力された位置及びサイズがテンプレートデータの一部としてメモリユニット136に保存される。フローエリア1106は、コンテナとは異なる領域であるため色や線種などの矩形UIをコンテナとは異なる色で表現してもよい。
レイアウト編集アプリケーション121は、作成されたフローエリアにマルチレコードフィールドを関連づける(S1004)。これは、たとえばフローエリアへの挿入対象となるコンテンツデータを保持するデータベース名を関連付ける処理に該当する。操作上は、対象フローエリアを特定し、そこで一定の操作の流れに従って必要な情報を入力する。その情報がテンプレートデータのマルチレコード情報としてメモリユニット136に保存される。
レイアウト編集アプリケーション121は、作成されたフローエリアに各種設定を施すかどうかを判断する(S1005)。各種設定情報を設定するのであれば、レイアウト編集アプリケーション121が、フローエリア上でマウスポインタがクリックされたことを認識することなどにより、プロパティダイアログ(例えば図12)を表示する(S1006)。そして、レイアウト編集アプリケーションは、表示されたプロパティダイアログを用いて設定された内容を認識して、設定情報を設定する(S1007)。プロパティダイアログおよび設定方法については、図12を用いて後述する。なお、設定された各種情報はメモリユニット136に保持される。
フローエリアの作成および設定が終了したら、レイアウト編集アプリケーション121は、レイアウトをプレビューするかどうかを確認し(S1008)、プレビューするのであれば、プレビューモードへ遷移して、レイアウト計算を行う(S1009)。このレイアウト計算は図7Bで示したフローと同じ処理を行う。
レイアウト編集アプリケーション121は、設定されているフローエリアのレイアウト計算を行う(S1010)。この処理については図34にて後述する。レイアウト編集アプリケーション121は、レイアウト結果を表示する(S1011)。
つまり、ホストコンピュータは、データベースからレイアウトすべきコンテンツデータを抽出するための抽出条件が設定されたフローエリアを有し、抽出されたコンテンツデータが配置されたサブテンプレートをフローエリアに配置してレイアウトを決定する。
(フローエリアのプロパティ設定)
図12はフローエリアの各種設定(プロパティ設定)を行う設定ダイアログの例を示している。図12の設定画面が、図10のフローチャート中のS1006で表示される。なお、文中のサブテンプレートおよび条件式については図13および図15を用いて後述する。
図12はフローエリアの各種設定(プロパティ設定)を行う設定ダイアログの例を示している。図12の設定画面が、図10のフローチャート中のS1006で表示される。なお、文中のサブテンプレートおよび条件式については図13および図15を用いて後述する。
まず、ユーザがラジオボタン1202によってフローエリアに関連付けるものがサブテンプレートであるか、それとも条件式であるかを選択する。その後、サブテンプレートの関連づけが選択されている場合、ユーザは、リストボックス1203からフローエリアで使用するサブテンプレートを指定する。
一方、条件式の関連づけが選択されている場合、ユーザは、リストボックス1204からフローエリアで使用する条件式を指定する。サブテンプレートおよび条件式は、編集中のドキュメントテンプレート内に、あるいはテンプレート外であっても所定の場所にそれぞれの特有なUI手段によって別途作成できる。また、条件式は後述する図15のUIにより設定される。しかし他の手法としては別のファイルに保存され、この設定ダイアログからはファイルを指定することによって選択指定できるものとしてもかまわない。
本実施形態では、ドキュメントテンプレート内のフローエリアに対してそれぞれ複数のサブテンプレートおよび条件式を作成できるが、リストボックスから選択するという特性上からも、それぞれが固有の名前を持ち識別できるように設計されるべきである。
その他に、図12の設定ダイアログから、サブテンプレートをフローエリアに流しこむ際のフローの方向(すなわちコンテンツを並べる方向)を選択欄1205から選択する。コンテンツの間隔は、縦は設定欄1206、横は設定欄1207で設定することが可能である。
その他に、図12の設定ダイアログは、サブテンプレートを配置する際の間隔について縦1206、横1207を用いて設定できる。
さらに図12の設定ダイアログから、ユーザは、対象となるフローエリアについて表形式のレイアウトを行うか否かを選択できる。これはラジオボタン1208を用いて「表形式フローエリア」を選択することで表形式のレイアウトが実行される。
さらに、表形式のレイアウトを選択した場合、フローエリアにフローするレコードは、主データベースとは別のサブデータベースを参照するために、サブデータベースの情報を受け取るためのフィールド名を1209で設定する。ここで、サブテンプレートは、主データベース中のフィールドとしてそのデータベースファイル名が渡されるものと仮定している。サブデータベースの構成については後述する。ただし、サブデータベースはファイル名以外での指定方法であってもかまわないことは言うまでもない。
また、1210では、フローエリアの各セルにおける拡大・縮小方法を設定できる。また、1211では、セル内におけるサブテンプレートの配置位置を設定できる。これら配置方法については後述する。
以上の設定を確定するには、1212で示すOKボタンを押下する。また、1213のキャンセルボタンを押下すると指定された各種設定はすべてキャンセルされる。
(フローエリアの計算)
図34は、フローエリア内のレイアウト計算のフローを示しており、図10に記載したS1010の処理に該当する。図34は、フローエリアがドキュメントテンプレートに1つ設定されている場合の手順である。
図34は、フローエリア内のレイアウト計算のフローを示しており、図10に記載したS1010の処理に該当する。図34は、フローエリアがドキュメントテンプレートに1つ設定されている場合の手順である。
まず、レイアウト編集アプリケーション121は、フローエリアに関連づけられているデータベースを開き(S3401)、フローエリアにレイアウトを試みるレコードの数を、メモリに設けられた変数nに代入する(S3402)。レイアウト編集アプリケーション121は、nが0、すなわちレイアウトを試みるレコードの数が0であった場合、レイアウトの処理は行う必要がないので処理を行わず終了する(S3403)。
次に、レイアウト編集アプリケーション121は、レイアウトを試みた(試行中も含む。)レコード数を示すための変数kに1を代入し(S3404)、フローエリアにレイアウトされたサブテンプレートの数を数えるための変数Numに1を代入する(S3405)。
続いて、レイアウト編集アプリケーション121は、k番目のレコードのデータをデータベースから取得する(S3406)。このとき、データベースから該当するデータがない旨の応答を受けた場合、S3413に分岐する。
レイアウト編集アプリケーション121は、レイアウトするフローエリアに、図15の設定画面を用いて条件式が設定されているかを確認する(S3407)。マルチレコードについて既に説明したとおり、抽出条件を満たしているレコードがひとつのフローエリアに流し込まれる。この抽出条件(条件式)を満たすレコードが当該フローエリアに関連づけられているデータに相当する。つまり、レイアウト編集アプリケーション121は、抽出条件を満たすコンテンツデータをデータベースから取得する。
そこで、レイアウト編集アプリケーション121は、条件式が設定されている場合、S3406で取得したデータが設定されている条件式を満たしているか判定する(S3408)。レイアウト編集アプリケーション121は、S3407−No、または、S3408−Yesと判定された場合、取得したk番目のレコードに含まれるコンテンツデータを、サブテンプレートのコンテナに流し込んでレイアウト処理を実行する(S3409)。なお、フローエリアに関連づけられた条件式でデータベースを検索可能であれば、S3406においては、その条件式でレコードを抽出する。この場合、その条件式で抽出されるレコードは必ずフローエリアに関連づけられた条件を満たしている。また、その条件式に適合するレコードを絞り込むための条件が設定可能であれば、S3406ではその条件でレコードを抽出する。この場合、S3408の判定は不可欠である。データベースが条件検索できない構成の場合には、S3406では逐次的にレコードを取得する。
レイアウト編集アプリケーション121は、レコードをサブテンプレートのコンテナに流し込みレイアウト処理を実行した場合、変数Numを1増やし(S3410)、次のレコードに処理を進めるため変数kを1増やす(S3411)。また、S3408で条件式と合わないデータであると判断された場合、レイアウト編集アプリケーション121は、条件に合わないレコードのデータについてレイアウト処理を行わないのでS3411へ進み、次のレコードを取得する。
レイアウト編集アプリケーション121は、レコード数nと変数kとを比較する(S3412)。もし、変数kがレコード数n未満であるなら、S3406へ進み、k番目のデータについて処理を繰り返す。変数kがn以上であるなら、サブテンプレートを用いたレコードのレイアウトを終了する。そして、レイアウト編集アプリケーション121は、レイアウト処理が終了したサブテンプレートをフローエリアに配置する処理へと進む。
まず、レイアウト編集アプリケーション121は、フローエリアのサイズ、サブテンプレートのデフォルトサイズをメモリ136から取得する(S3413、S3414)。
そして、レイアウト編集アプリケーション121は、フローエリア内にレイアウトするレイアウト済みのサブテンプレートのサイズを計算する(S3415)。レイアウト済みのサブテンプレートサイズの決定方法について図35、36を用いて説明する。
図35は、コンテンツデータがサブテンプレート用の制限領域に収まる場合におけるサブテンプレートサイズ決定方法の具体例である。
サブテンプレート用の制限領域3501には、コンテナ3502およびコンテナ3503を含むサブテンプレート3507が配置されている。なお、制限領域3501は、サブテンプレートが拡大可能な最大サイズである。
フローエリアに設定された抽出条件に一致するレコードのコンテンツデータ3504が、コンテナ3507に流し込まれ、コンテンツデータ3505が、コンテナ3503に流し込まれる。なお、コンテナ3502と3503は、サイズ「1」のリンクによって関連付けられている。
この場合、制限領域のサイズが「10」であるのに対し、コンテンツサイズがいずれも「3」であり制限領域に収まるサイズであるため、コンテンツデータ3504および3505は、コンテンツデータが要求するサイズにてレイアウトできる。
よって、コンテンツデータ3504および3505が流し込まれた後のサブテンプレートのサイズ3506は、「7」となる。
一方、図36は、コンテンツデータが、サブテンプレート用の制限領域に収まらない場合におけるサブテンプレートサイズ決定方法の具体例である。
図36においても図35と同様の制限領域3501に、コンテナ3502およびコンテナ3503を含むサブテンプレート3507が配置されている。
フローエリアに設定された抽出条件に一致する図35とは異なるレコードのコンテンツデータ3604が、コンテナ3507に流し込まれ、コンテンツデータ3605が、コンテナ3503に流し込まれる。
この場合、制限領域のサイズが「10」であるのに対し、コンテンツデータ3604のサイズは「7」であり、コンテンツデータ3605のサイズは「6」である。よって、両者をコンテンツデータが要求するサイズで収めるためには、「13」のサイズが必要となるが、制限領域3501のサイズは「10」であるため、コンテンツデータが要求するサイズにてサブテンプレートにコンテンツデータを配置することができない。
よって、レイアウト編集アプリケーション121は、図7に記載した方法によって各コンテナサイズを決定する。
サブテンプレートには、長さ「1」のリンクによって2つのコンテナが関連付けられている。そして、サブテンプレートの拡大可能な最大サイズは「10」である。
一方、上述したように2つのコンテンツデータが要求するサイズの合計は「13」であるため、コンテンツデータを各コンテナに流し込むとストレス(レイアウトの負荷)が発生する。
つまり、各コンテンツは実サイズ(理想サイズ)を持っており、コンテンツデータ3604は、「7」、コンテンツデータ3605は、「6」である。
このコンテンツをコンテナに挿入した後にすべてを理想サイズでレイアウトするためには、7+6=13の垂直サイズが必要になる。しかしながら、前述したサブテンプレート3507の可変サイズは、10に制約されている。
次に、レイアウト編集アプリケーション121は、上記ストレスを各コンテナに分配する。本自動レイアウトシステムでは、このストレスのかかり具合が最小になるように計算するようになっており、そのときに用いる手法の1つとして最小二乗法が挙げられる。
コンテナ3502の計算後のサイズをa、コンテナ3503の計算後のサイズをbとすると、各コンテナにかかるストレスの二乗の合計であるコストkは、
k=(a−7)2+(b−6)2 …(1)
と表すことができる。
k=(a−7)2+(b−6)2 …(1)
と表すことができる。
このレイアウトでは、優先度はすべてのコンテナで同じであるため、コストkが最小になるのは、
a−7=b−6 …(2)
と表すことができる。
a−7=b−6 …(2)
と表すことができる。
さらに、計算後のレイアウトのサイズより、
a+b+1(リンクサイズ)=10 …(3)
と表すことができる。
a+b+1(リンクサイズ)=10 …(3)
と表すことができる。
(2)(3)の等式より、各コンテナの計算後のサイズが求められる。ここでは、各コンテナにかかるストレスは2であり、計算後のコンテナ3502のサイズは、「5」となり、コンテナ3503のサイズは、4となる。
そして、決定されたコンテナサイズの外接矩形がサブテンプレート3507のサイズとなり「10」となる。
つまり、レイアウト編集アプリケーション121は、サブテンプレート内に設定されたコンテンツデータを割り当てるためのコンテナ(部分領域)のサイズをコンテンツデータが要求するサイズに従って決定する。そして、レイアウト編集アプリケーション121は、決定されたコンテナのサイズに従ってサブテンプレートのサイズを決定する。
図35、36に具体例を用いて説明した通り、サブテンプレートサイズは、サブテンプレート内のコンテナに流し込まれるコンテンツサイズによって決定されるため、サブテンプレート毎に異なるサイズとなることがある。
このようにサイズの異なるサブテンプレートを単に並べてしまうとサイズが不揃いとなってしまい、表のように縦方向および横方向に統一感のあるレイアウト結果を出力できなくなる。
(サブテンプレート)
前述した図34のS3409のサブテンプレートのレイアウトについて説明する。図13、14はそれぞれサブテンプレートのレイアウト例とレイアウトフローを示している。
前述した図34のS3409のサブテンプレートのレイアウトについて説明する。図13、14はそれぞれサブテンプレートのレイアウト例とレイアウトフローを示している。
サブテンプレートは、任意数のイメージコンテナ、テキストコンテナを含み、そのコンテナにレコードのどのデータ(フィールド)を割り当てるかを設定した状態で、テンプレートとして保存してあるものを指す。同じレイアウトを1つのドキュメントで数多く使う場合に便利である。
サブテンプレート内に配置されるコンテナは、前記イメージコンテナ、テキストコンテナと同様であり、各コンテナ間には複数のコンテナを関連付けるリンクが設定される。
したがって、レイアウト対象のコンテンツデータによって、レイアウトサイズを最適に変化させることが可能である。図13はサブテンプレートのレイアウト例を示している。1302と1305はイメージコンテナ、1303と1306はテキストコンテナ、1307はリンクを示している。イメージデータ、テキストデータのサイズが異なるため、各レコードについてレイアウト計算を実行し、それぞれ最適なレイアウト結果を表示している。
このサブテンプレート内のレイアウト計算フローは図14に示す通りである。
レイアウト編集アプリケーションは、データベースからレイアウトするためのデータを取得し(S1401)、サブテンプレート内の各コンテナに割り当てるコンテンツデータのサイズを取得する(S1402)。詳細には、ユーザインタフェース103が、データベースとの関連付け処理を行うことにより、データベースのデータを参照することが可能となり、その際に該データを解釈することによりサイズ等を取得できる。なお、ステップS1401とS1402は同時でも良い。S1402の処理は、レイアウト編集アプリケーション121が、S1401により取得したデータの情報を解析することによりコンテンツデータのサイズを取得することが可能となる。なお、取得されたコンテンツデータのサイズはメモリユニット136に保持される。
レイアウト編集アプリケーションは、S1402により取得したデータサイズに基づいて、各コンテナについてレイアウト計算を行い(S1403)、レイアウトを最適化する(S1404)。最適化の方法は前述した通り図7A、7Bの処理を用いて実行され、具体例は図35および図36に示す。
レイアウト編集アプリケーション121は、S1404により最適化されたレイアウトを決定し(S1405)、レイアウトするデータを流し込み(S1406)、表示する(S1407)。なお、S1405により決定されたレイアウトは一時的にメモリユニットに保持される。
また、S1407の表示はドキュメントが完成したときにまとめて行うのであれば、ステップS1407は不要である。
続いて、図15を用いてサブテンプレートを使用するための条件式の設定方法について説明する。
図15の設定画面を用いることで、1つのフローエリアに対して複数のサブテンプレートを割り当てることが可能となる。フローエリアには、サブテンプレートあるいは条件式のいずれかひとつを関連付けることができる。なお、条件式はデータベースから条件に一致するコンテンツを抽出する式でもあるため、本願では抽出条件ともいい、該抽出条件が設定されたフローエリアを有するテンプレートが作成される。
また、フローエリアには、サブテンプレートあるいは条件式のいずれかひとつを関連付けることができる。もし、フローエリアに対してサブテンプレートを関連付けた場合、取得されたレコードは関連付けられたサブテンプレート内のコンテナに流し込まれる。なお、サブテンプレートを関連付ける際に条件式を設定し、該条件式に適合するレコードのみをフローエリアに関連付けられたサブテンプレートに流し込むようにしても構わない。
また、条件式には条件適合時に適用されるサブテンプレートの識別情報を含む。図15は条件式を設定するUI例である。そして、レコードが流し込まれたサブテンプレート内でレイアウト計算が行われ、レイアウト処理が完了したサブテンプレートがフローエリアに配置される。
この入力領域は、条件式に名前を付けるテキストボックス1502と、もっとも基本的な条件判定を構成する要素であるIF文1503とELSE文1504のペアを最低限有している。
IF文の入力領域は、条件の判定対象となるフィールドの選択を行うリストボックス1505と、判定の論理式を設定するリストボックス1506、判定に用いられる値を入力するテキストボックス1507から構成される。
さらに、IF文の入力領域は、条件判定によって正となったレコードを挿入するためのサブテンプレートを決定する処理文1508、判定結果が不正だったときに該レコードを挿入するためのサブテンプレートを決定する処理文1504から構成される。判定の論理式1506には、「EQUAL(等しい)」、「NOT_EQUAL(等しくない)」、「LESS_THAN(小さい)」など様々な条件が用意される。
さらに、複雑な条件式を設定するためには、IF文中に複合条件を設定するためにAND/OR接続文コンボボックス1509を有する。
また、複雑な条件分岐を設定するためには、ELSE_IF文追加ボタン1510を有する。
ボタン1510を押下すると、前述IF文とELSE文の間に、あらたにELSE_IF文が追加挿入される。ELSE_IF文の内容と動作は、IF文における内容と同じである。IF文が不正のときにひとつ下のELSE_IF文を判定し、さらに不正のときにもうひとつ下のELSE_IF文を判定し、これを続けて最後にELSE文を判定する、という順に処理を行う。1511は選択されているELSE_IF文を削除する削除ボタンである。いずれかのIF文あるいはELSE_IF文で真と判定された場合、そのUSE処理文が実行される。USE処理文にはサブテンプレート名が入力(選択)される。
このように、条件式を通して様々な値を含む各レコードの条件に合ったサブテンプレートを自動的に選択することができ、ひとつの条件式において様々なレイアウトを実現することが可能になる。この条件式をフローエリアに関連付けることによって、ひとつのフローエリアにおいて、様々なレイアウトを持った複数種類のサブテンプレートをフローエリア内に配置できる。
ユーザは条件を入力すると、最後にOKボタン1514を押す。OKボタン1514の押下により、UIで設定されたサブテンプレート条件を示す情報が、メモリユニット136に保存される。このサブテンプレート条件式は、たとえば、図15のUIに記述された(選択された)テキストをそのまま保存したテキストファイルなど、条件と条件が満たされた場合のサブテンプレートを特定できる情報であれば良い。
このように条件式にはデータベースからレイアウトするためのコンテンツデータを抽出するための条件と、該条件に該当した場合に使用するサブテンプレートを関連付けて保持している。よって、抽出されたコンテンツデータは、どのサブテンプレートに配置すべきかを示す情報がメモリユニット136に保持される。
図12の設定画面1201を介して表形式フローエリアが設定されたフローエリアは、テンプレートが受け取る主データベースとは異なるサブデータベースからレコードに含まれるコンテンツデータを受け取る。そのサブデータベースの例を、図16に示す。
図16に示すデータベースの書式は特定のデータ記述によって記述されたテキストファイルを想定している。ヘッダ部1601によって、フローエリアが2カラム3行に分割される(2×3個のセルに分割された表になる)ことを指定している。
続く実データ部1602は、フローエリアに流し込まれる実データである。
ここでは、実データ部1602は、CSV形式になっており、先頭行はフィールド名を表し、続く各行が実データを表す。なお、図16では説明のため「/* */」によってデータ内にコメントを記述しているが、実際の利用場面ではこのコメント行は不要である。もちろん、サブデータベースの形式はフローエリアの分割数と実データとの両者が記載可能なフォーマットであれば良い。例えば、CSV形式であれば、そのフィールドの一部が行およびカラム数を表すデータとなり、残りが実データとなる。また他にも、XML形式を使用しても容易に必要な情報を記載することが可能である。
なお、このように行およびカラム数を外部から指定できることは、ひとつのフローエリアに、テンプレートの再編集を行うことなく様々な表現形式にて表現できるという利点がある。
つまり、テンプレートを変更することなく、ある時は5行10カラムの表、ある時には10行5カラムの表など同一のフローエリアを自由に使いまわすことができる。これはサブデータベースを使用することの効果である。しかし、より限定的な実施例として、図12で示したフローエリアのプロパティ設定において、固定的な行カラム数を指定できる入力要素を新たに設けても良い。
図17は本発明の特徴部分における全体フローを示している。図17がメインフロー、図18〜図21がサブフローである。これらのフローは、例えば上述した図12の設定画面を介して各種の設定が施された表形式の属性を持つフローエリアにおける表形式のレイアウト処理について説明する。なお、レイアウト処理方法は、ここに記載した実施例に限らず様々な実現方法が考えられることはいうまでもない。
図17において、レイアウト編集アプリケーション121は、サブデータベースから、レイアウト対象の行数およびカラム数(セルの分割数)を取得する(S1701)。
次にレイアウト編集アプリケーション121は、フローエリア内に配置されるサブテンプレートの各コンテナにコンテンツデータを流し込んで、レイアウト処理を実行する(S1702)。ここで、図18を用いてS1702の詳細な説明をする。
レイアウト編集アプリケーション121は、データベースにアクセスし、サブテンプレートに配置すべきレコードの有無を判定する(S1711)。そして、レコードが有ると判定した場合、レイアウト編集アプリケーション121は、サブテンプレートに配置するデータを取得すべくサブデータベースからレコードを取り出す(S1712)。
レイアウト編集アプリケーション121は、取り出したレコードに含まれるコンテンツデータを、図7(具体例は、図35および図36)と同じレイアウト計算方法に基づいてサブテンプレートのコンテナに流し込み、レイアウト処理を実行する(S1713)。
ここで、レイアウト編集アプリケーション121は、S1713によって生成されたサブテンプレートのレイアウト結果について、何行目・何カラム目に配置するかを決定して、当該サブテンプレートのレイアウト結果と関連付けてメモリ上に保存する(S1714)。具体的には、配置方向とデータベースの指定内容に従って決定される。例えば、Z方向にサブテンプレートを配置し、かつ、3行・2カラムと指定された場合、取得された1つ目のレコードがレイアウトされたサブテンプレートは、1行目・1カラム目に配置すると決定される。続いて、2つ目のレコードがレイアウトされたサブテンプレートは、1行目・2カラム目、3つ目のレコードがレイアウトされたサブテンプレートは、2行目・1カラム目に配置すると決定される。つまり、S1714において、1レコード目のサブテンプレートは、1行目・1カラム目に配置するという情報と共にメモリ136に保存される。
その後、レイアウト編集アプリケーション121は、設定されている行・カラム数分のレコードが取り出されたかを判定し(S1711)、取り出していなければ次のレコードについてS1712以降の処理を実行する。具体的には、サブデータベースからS1701の処理によって3行・2カラムという情報を取得した場合、6個のサブテンプレートがフローエリアに配置されることになる。よって、レイアウト編集アプリケーション121は、6個分のレコードを取得したか否かをS1711にて判定する。
このように図18の処理を実行して、レイアウト編集アプリケーション121は、設定された行・カラム数分のサブテンプレートのレイアウト結果を生成し、メモリ上に行カラム番号と関連付けて保存する。
図22〜図24は、図17のフローの処理内容を具体例で例示するための図である。ここでは3行2カラムと設定された場合を例に挙げて説明する。図17のS1702(図18の処理)が終了した時点で、メモリ136には図22のような6個のサブテンプレートのレイアウト結果1801から1806が保持される。各サブテンプレートに付記してある値(例えば1行目、1カラム目)が、図18のS1714の処理によってサブテンプレートのレイアウト結果と関連付けられて保存される行・カラム番号である。
次に、図17のフローチャートのS1703により、行方向に配置されるサブテンプレートから、最大のレイアウト高さを求める。これを図23で例示すると、1行目にはサブテンプレート(a)1801およびサブテンプレート(b)1802が配置される。ここで両者を比較するとサブテンプレート(a)1801の方がサブテンプレート(b)1802よりも高い。よって、1行目における最大のレイアウト高さは、サブテンプレート(a)1802のサイズとなる。同様に、2行目ではサブテンプレート(d)1804、3行目ではサブテンプレート(e)1805となる。
つまり、各行の最大のレイアウト高さが、各行における高さ方向の「理想的なサイズ」となる。
通常、コンテンツデータをコンテナに流し込んで表現する場合、コンテンツデータを欠くことなく(または可能な限りサイズを変更することなく)表示することが求められる。そのため、各行に配置されるレイアウト結果の中で最大の高さとなるレイアウト結果に合せて行の高さを決定することが望ましい。
従って、本実施例では、各行に注目して、最も高さの高いサブテンプレートのレイアウト結果を、各行・各カラムのサイズを決定する要因としている。しかしながら、状況によってはこのルールが変更されてもよい。
こうして図23から「高さ」だけに注目して各セルの理想的なサイズが求められた。次にこの高さ方向の理想サイズを用いて、各セルの高さを調整する。
まず、レイアウト編集アプリケーション121は、仮想的なレイアウト計算用のコンテナ構造を求める。これを例示したのが、図25および図26である。
図25のフローエリア1903が、用紙端1902とリンク1904によって関連づけられている例を考える。なお、フローエリア1903には縦方向に3つ(つまり、3行分)のサブテンプレートが配置されると仮定する。
レイアウト編集アプリケーション121は、図26のように縦方向のみにサイズ変更可能な任意のサイズを有する3つのコンテナと、複数のコンテナを関連付けるリンクとの要素を用いて、フローエリアの縦方向を表現する。レイアウト編集アプリケーション121は、表現されたコンテナの構造表現(例えば図26)をメモリに生成する(図17のS1705)。
レイアウト編集アプリケーション121は、S1705において保存した構造に、S1703において算出した理想的な高さサイズ1905から1907(各行の最大のレイアウト高さ)をコンテンツとして挿入する。
そして、レイアウト編集アプリケーション121は、コンテンツ挿入に従い図7Aおよび図7Bの計算方法を用いてレイアウト計算を実行する。その結果、レイアウト編集アプリケーション121は、図26に示すリンクとコンテナの構造を用いて、コンテンツの高さに適合した最適な各コンテナの高さ1911から1913を算出する(図27)。
そして、レイアウト編集アプリケーション121は、当該計算によって求められた高さを、各セルの高さ方向の調整結果として保存する(S1706)。
上述した図17のS1706におけるレイアウト計算について、図28を参照して具体的に説明する。本実施例の場合、表の各項目は同等の強度すなわち優先度を持つと考えてよいため、優先度を同じとしてレイアウト計算をおこなう。
図28において、コンテナA2001からコンテナC2003は固定リンク2004にて関連付けられている。さらに可変リンク2005によって、用紙端とコンテナCが関連付けられている。
図28では、固定リンク2004について0より大きい長さが設定されているように表現されているが、実際には表形式における表現上の固定リンクの長さは0である。なお、同じレイアウト構造で0の長さとして固定リンクを考えても、このレイアウト計算の結果は変わらない。
リンク2004によって関連付けられたコンテナAからCは、垂直方向に合計60というサイズを持っている。この60という値は、表を形成するフローエリア全体の高さである。このレイアウトにおけるコンテナの垂直方向サイズは可変であるが、長さ10の可変リンクによって固定端に制約されている。なお、可変リンク2005は、サイズ0まで縮小可能とする。
図28の2001から2005において示すレイアウトのコンテナAからCに、コンテンツA’2006からコンテンツC’2008を挿入するとストレス(レイアウトの負荷)が発生する。
つまり、各コンテンツは実サイズ(理想サイズ)を持っている。各コンテンツの実サイズは、コンテンツA’は20、コンテンツB’は40、C’は30である。本実施例の場合、この実サイズは各セルに挿入されるサブテンプレートのレイアウトサイズのうち、図17のS1703で求められた「高さ」サイズであり、コンテンツA’からC’は、図26に上述した理想高さ1905から1907に相当する。
このコンテンツをコンテナに挿入して理想サイズでレイアウトするためには、20+40+30=90の垂直サイズが必要になる。しかしながら、前述した通りこのレイアウトは、60と可変サイズ10の幅に制約されている。
今、可変リンクが0サイズまでストレスなく縮小するので(60+10)がコンテナAからCの合計の最大サイズとなる。したがって、90−(60+10)=20が、2001から2005のコンテナにコンテンツデータ2006から2008を配置した時に発生するストレスとなる。
次に、レイアウト編集アプリケーション121は、上記ストレスを各コンテナに分配する。レイアウト編集アプリケーション121は、このストレスが最小になるように計算するようになっており、そのときに用いる手法の1つとして最小二乗法が挙げられる。
各コンテナの計算後のサイズをa、b、cとすると、各コンテナにかかるストレスの二乗の合計であるコストkは、
k=(a−20)2+(b−40)2+(c−30)2 …(1)
と表すことができる。
k=(a−20)2+(b−40)2+(c−30)2 …(1)
と表すことができる。
このレイアウトでは、優先度はすべてのコンテナで同じであるため、コストkが最小になるのは、
a−20=b−40=c−30 …(2)
と表すことができる。
a−20=b−40=c−30 …(2)
と表すことができる。
さらに、計算後のレイアウトのサイズより、
a+b+c=(60+10) …(3)
と表すことができる。
a+b+c=(60+10) …(3)
と表すことができる。
(2)(3)の等式より、各コンテナの計算後のサイズが求められる。ここでは、各コンテナにかかるストレスは6.666・・・であり、計算後の各コンテナA”からC”(2809〜2811)の各サイズは図28の2009から2011に示したとおりになる。
図26に示した各セルの理想高さサイズ1905から1907をそのままのサイズにて配置すると、サブテンプレートはフローエリアに収まらなくなる。しかし、図28に示した方法に従ってサイズを決定することで、可能な限り各セルの理想高さサイズを反映しながら、フローエリア内に収まるようにレイアウトを実行することが可能となる。
つまり、レイアウト編集アプリケーション121は、各行に配置された複数のサブテンプレートから最大の垂直方向サイズを有するサブテンプレートを抽出する。そして、レイアウト編集アプリケーション121は、抽出された各行のサブテンプレートの垂直方向サイズとフローエリアの垂直方向のサイズとに基づいて各行のセル領域の垂直方向サイズを決定する。なお、セル領域とは、フローエリアを分割することによって得られる領域である。
次に図17のフローチャートにおけるS1707からS1708により、カラム(横)方向での最大レイアウトサイズを、サブテンプレートのレイアウト結果から求める。これは、先に例示した高さ方向の計算を、横の行方向に適用したものであり、全く同様の考え方となるので、詳細な説明は省略する。同様の処理によって、各セルの幅調整結果を求めることができる。
つまり、レイアウト編集アプリケーション121は、各列に配置された複数のサブテンプレートから最大の水平方向サイズを有するサブテンプレートを抽出する。そして、レイアウト編集アプリケーション121は、抽出された各列のサブテンプレートの水平方向サイズとフローエリアの水平方向のサイズとに基づいて各列のセル領域の水平方向サイズを決定する。
図17のS1701からS1708の処理によって各行の高さと各列の幅との調整結果が算出されたので、レイアウト編集アプリケーション121は、これらの値をマージして各セルのサイズを決定する。
そして、レイアウト編集アプリケーション121は、決定された各セルのサイズとフローエリア内の位置を、各セルに対応するサブテンプレートのレイアウト結果に関連付けてメモリに保存する(S1709)。つまり、レイアウト編集アプリケーション121は、取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、行方向に配置されるべきサブテンプレートから選択された各行のサブテンプレートの垂直方向サイズを算出する(S1706)。さらに、レイアウト編集アプリケーション121は、取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、列方向に配置されるべきサブテンプレートから選択された各列のサブテンプレートの水平方向サイズを算出する(S1708)。そして、S1706とS1708とに基づいて、フローエリアを分割するセル領域の領域サイズを決定する。図17に記載の処理を実行することによって、レイアウト編集アプリケーション121は、垂直方向である列方向に配置される領域の水平方向サイズを同一にし、かつ、水平方向である行方向に配置される領域の垂直方向サイズを同一にすることが可能となる。また、レイアウト編集アプリケーション121は、決定された領域サイズを用いてフローエリアを複数の領域に分割する。
以上で、フローエリアのサイズ、指定行桁数に分割した各セルの幅と高さ、コンテンツデータが流し込まれたサブテンプレートがメモリ上に保存されたことになる。
続いて、レイアウト編集アプリケーション121は、S1709までの処理によって導出された情報から最終的なレイアウト結果を表示する(S1710)。なお、S1710の詳細な説明を図19を用いて説明する。
レイアウト編集アプリケーション121は、メモリ上からレイアウト済みのサブテンプレートを取り出し(S1742)、このサブテンプレートに関連付けられているセルの位置を図17のS1709で保存したメモリから取得する(S1743)。
レイアウト編集アプリケーション121は、図12の設定画面を介して設定した表示方法と配置方法を取得して(S1744)、1つ目のサブテンプレートを当該サブテンプレートに関連付けて保持されているセル位置に配置する(S1745)。
S1745においてセルに配置されたサブテンプレートのサイズと、当該セルのサイズは必ずしも合致しない。そのため、レイアウト編集アプリケーション121は、後述の拡縮処理、および寄せの処理を実行し(S1744)、すべてのセルの処理が終わったかを確認して(S1741)、処理が完了していなければS1742に戻り処理を続ける。
つまり、レイアウト編集アプリケーション121は、領域サイズが決定されたセル領域に収まるようにサブテンプレートのサイズを決定し、サブテンプレートに対してコンテンツデータを配置して出力結果を表示する。
(拡縮と配置方法)
図24に示すのは、S1710の結果の表示例である。図24では、サブテンプレートをセル内に「縦横の比率を崩してもセル全体にはめ込む」例を示している。
図24に示すのは、S1710の結果の表示例である。図24では、サブテンプレートをセル内に「縦横の比率を崩してもセル全体にはめ込む」例を示している。
レイアウト編集アプリケーション121は、サブテンプレート(a)、(e)などのようにサブテンプレートサイズがセル内に収まらない場合、当該サブテンプレートを縮小してセルにはめ込む。一方、レイアウト編集アプリケーション121は、サブテンプレート(c)(f)のようにサブテンプレートサイズが小さい場合、当該サブテンプレートを拡大してセルにはめ込んでいる。
このとき拡縮方法には、「オリジナルのサイズを保つ」、「縦横の比率を保って拡縮」、「縦横の比率を崩してもセル全体にはめこむ」、「縦横の比率を崩してもセル全体にはめこむ(イメージデータの縦横比は維持する)」などの方法が挙げられる。
「オリジナルのサイズを保つ」が選択された場合、セルからはみ出したサブテンプレートは、はみ出した部分がトリミングされるため、一部内容が欠けてしまうおそれがある。また、セル内に余白が生じることもある。また「比率を保って拡縮」した場合も、セル内に余白が生じることがある。
これら「オリジナルのサイズを保つ」「比率を保って拡縮」では、セル内に生じる余白のため、寄せを設定することでさらに好適な表示結果を得ることができる。
寄せ方法には、「左寄せ」「右寄せ」「上寄せ」「下寄せ」「上下中央寄せ」「左右中央寄せ」などの組み合わせによって設定する方法が考えられる。
実際の使用においては、作成するドキュメントの望ましい見栄えに応じて、これら拡縮と寄せの設定が行われることになる。
また、「縦横の比率を崩してもセル全体にはめこむ(画像データの縦横比は維持する)」が設定された場合について説明する。レイアウト編集アプリケーション121は、サブテンプレートのサイズをセルのサイズと一致するように縦横比を崩してサイズ変更しても、当該サブテンプレート内のイメージデータについては縦横比を維持してレイアウトする。
このように本実施例ではユーザにより表形式でのレイアウトが指示された場合、レイアウト編集アプリケーション121は、行単位に理想的なセルの高さサイズを決定し、かつ、カラム単位に理想的なセルの幅サイズを決定します。そして、レイアウト編集アプリケーション121は、理想的なセルのサイズがフローエリアに収まるように各セルサイズを調整して、可能な限り理想的なサイズに近いセルをフローエリアに設定します。そして、当該セルに収まるようにサブテンプレートが配置されるため、コンテンツサイズが要求するサイズを反映しながら、縦横方向にサイズが一致した表形式のレイアウトを実現することが可能となります。
(実施例2)
実施例1では、1つのセルに1つのサブテンプレートを配置する技術について説明した。しかし、コンテンツデータによっては複数のセルを使用することで、多種多様な表現が可能となる。よって、実施例2では、複数のセルを使って1つのサブテンプレートを配置する技術について説明する。
実施例1では、1つのセルに1つのサブテンプレートを配置する技術について説明した。しかし、コンテンツデータによっては複数のセルを使用することで、多種多様な表現が可能となる。よって、実施例2では、複数のセルを使って1つのサブテンプレートを配置する技術について説明する。
(サブデータベースの指定方法)
セルを結合して表示するために、1つのレコードが隣り合う複数のセルを使って表現することを指定する必要がある。図29はその指定方法を取り入れたデータベースの一例を抜粋したものである。これはXMLで記述されており、<record>タグで囲まれた1レコード中に<cell_usage>タグを区切り、その中の<horizontal>で横方向に使用するセル数、<vertical>で縦方向に使用するセル数が指定されている。つまり、図29では、参照番号2901によって横方向に2つのセルを使用すること、参照番号2902によって縦方向に2つのセルを使用することが指定されている。なお、<data>ブロックの<Data1>は、レコード中のフィールド名を表している。
セルを結合して表示するために、1つのレコードが隣り合う複数のセルを使って表現することを指定する必要がある。図29はその指定方法を取り入れたデータベースの一例を抜粋したものである。これはXMLで記述されており、<record>タグで囲まれた1レコード中に<cell_usage>タグを区切り、その中の<horizontal>で横方向に使用するセル数、<vertical>で縦方向に使用するセル数が指定されている。つまり、図29では、参照番号2901によって横方向に2つのセルを使用すること、参照番号2902によって縦方向に2つのセルを使用することが指定されている。なお、<data>ブロックの<Data1>は、レコード中のフィールド名を表している。
データベースに指定されたセル数でフローエリアを分割するための処理フローについて、図30のフローチャートを参照しながら説明する。
なおここでは、フローエリア内に左上から右下に向けてZ字の方向にサブテンプレートを配置する場合を記載する。フローエリアの配置方向の設定については、横方向や縦方向、左方向から右方向など様々な組み合わせが設定可能である。
まず、レイアウト編集アプリケーション121は、サブデータベースからフローエリアを分割する縦横の基本的な分割セル数を取得する(S2101)。具体的には、レイアウト編集アプリケーション121は、サブデータベースの内容を確認して<cell_usage>タグをもとに分割セル数を取得する。例えば、レイアウト編集アプリケーション121は、図29から縦方向および横方向の分割セル数が「2」であることを取得する。
次に、レイアウト編集アプリケーション121は、全セルの使用状況を示すフラグを持つ2次元の配列Dを生成して、内容をすべて「空」を示す「0」値に初期化する。そして、レイアウト編集アプリケーション121は、カレント処理位置を[1、1]に設定する(S2102)。図22の例では、縦方向に3つのセルが必要となり、横方向に2つのセル数が必要となる。よって、レイアウト編集アプリケーション121は、Dに対して2×3の配列を生成し、配列要素のフラグをすべて0に初期設定します。
続いて、レイアウト編集アプリケーション121は、処理していないレコードがデータベースに残っているか否かを判定し(S2103)、残っていると判定された場合、サブデータベースから対象となるレコードを1つ取り出す(S2104)。
レイアウト編集アプリケーション121は、カレント処理位置[1、1]を起点として、指定セル数分の配列Dのフラグは0かどうかを確認する(S2105)。例えば、レイアウト対象のレコードが使用するセル数が横2、縦2だった場合、カレント処理位置[1、1]を起点として、[1、1]、[2、1]、[1、2]、[2、2]が、S2105の確認対象となる。
これら全ての配列フラグが0であれば、レイアウト編集アプリケーション121は、各フラグを「使用」を意味する「1」に変更する(S2106)。使用したセルの番号は、レコード情報に関連付けて保存される(S2107)。
レイアウト編集アプリケーション121は、S2105において必要なセルがすべて空でないと判定した場合、カレント処理位置を次のセルに移動し(S2108)、移動したセルが空(=フラグが0)であるか否かを判定する(S2109)。S2109の処理によって空でないと判定された場合、レイアウト編集アプリケーション121は、S2108に戻る。
レイアウト編集アプリケーション121は、S2107で使用するセルを決定したら、次の起点となるセルに移動し(S2110)、当該セルが空(=フラグが0)であるか否かを確認し(S2111)、空でなければS2110に戻るという処理を繰り返す。空のセルが見つかったら、カレントセル位置を設定するS2102の処理に戻す。
図30の処理が終了したら、2107で保存されているセルの情報を元に、そのレコードをレイアウトしたサブテンプレートを、実施例1の処理方法を用いて表示する。
以上の図30の処理結果について図31の具体例を用いて説明する。
図31の3101は、フローエリアである。そして、当該フローエリアは、実施例1の処理に従って適切なセルサイズが算出され、複数のセル領域に分割された状態を示している。
そして、実施例2の処理を用いて各レコードは、各レコードが要求するセル数を使ってレイアウトされている。
例えば、レコード1、レコード5、レコード7のコンテンツデータが配置されたサブテンプレートは、横方向に2つのセルを用いて配置されている。これは、レコード1が縦方向に1つ、横方向に2つのセルを用いてレイアウトすることを要求しているためである。
また、レコード6のコンテンツデータが配置されたサブテンプレートは、縦方向に2つのセルを用いて配置されている。これは、レコード6が縦方向に2つ、横方向に1つのセルを用いてレイアウトすることを要求したためである。
本願の処理を用いずにサイズの異なるサブテンプレートを単に配置してしまうと、目玉商品のコンテンツデータのサイズを大きくすることでサブテンプレートのサイズも大きくなるため、強調することは可能である。しかしながら、他の商品とのサイズのバランスが悪くなるおそれがある。
これに対し、実施例2のようにレコード単位に要求される任意数のセルを用いてサブテンプレートを配置することで、表形式のバランスを保ちながら複雑なレイアウトを実現することが可能となる。例えば、広告を作成する場合、目玉商品については多くのセルを使うことを指定することで、他の商品よりも強調して宣伝することが可能となり、図31のような多種多様な処理が可能となる。
(実施例3)
実施例1および実施例2では、図16のHeader部分のように指定すること、各レコードが流し込まれるサブテンプレートの配置位置を決めることができた。例えば、図16では、2カラム・3行に分割することが指定されているので、レイアウト編集アプリケーション121は、3レコード目のデータが配置されたサブテンプレートを「1カラム・2行目」に配置すべきと判定できる。しかしながら、図16のHeader1601を指定させることでユーザの操作性を悪化させるおそれがある。
実施例1および実施例2では、図16のHeader部分のように指定すること、各レコードが流し込まれるサブテンプレートの配置位置を決めることができた。例えば、図16では、2カラム・3行に分割することが指定されているので、レイアウト編集アプリケーション121は、3レコード目のデータが配置されたサブテンプレートを「1カラム・2行目」に配置すべきと判定できる。しかしながら、図16のHeader1601を指定させることでユーザの操作性を悪化させるおそれがある。
そこで本実施例では、図16のHeader1601が指定されていない状態であっても、表形式のレイアウト結果を生成することを目的とする。
図37には実施例3において使用するデータベースを示す。図16との違いは、カラム数および行数の指定がない点である。
図38に実施例3においてフローエリアに設定する抽出条件の具体例を示す。図38では、項目「Data1」が「スキャナ」または「プリンタ」であれば、サブテンプレート1を使用することが設定されている。一方、項目「Data1」が「複合機」または「パソコン」であれば、サブテンプレート2を使用することが設定されている。
図39は、実施例3において使用するサブテンプレートの具体例である。サブテンプレート3901が、図38の操作画面にて指定したサブテンプレート1であり、サブテンプレート3902が、サブテンプレート2である。
図41に実施例3の処理について、フローチャートを用いて詳細に説明する。
レイアウト編集アプリケーション121は、レコードを取得する(S4101)。そして、レイアウト編集アプリケーション121は、取得されたレコードに含まれるコンテンツデータを解析して、レコードを配置するサブテンプレートを決定する(S4102)。
レイアウト編集アプリケーション121は、図38において設定した抽出条件に一致する他のレコードがあるか否かを判定する(S4103)。
S4103によってレイアウト対象のレコードがあると判定された場合、レイアウト編集アプリケーション121は、次のレコードを取得して、当該レコードを配置するサブテンプレートを決定する。そして、レイアウト編集アプリケーション121は、S4105において決定されたサブテンプレートと同一のサブテンプレートを使用したという情報が記憶されているか否かを判定する(S4105)。
レイアウト編集アプリケーション121は、同一サブテンプレートを使用していないと判定した場合(S4105−No)、改行または改列を行って、新たな行または列にサブテンプレートを配置することを決定する(S4107)。
一方、レイアウト編集アプリケーション121は、同一サブテンプレートを使用したと判定した場合(S4105−Yes)、新たに決定したサブテンプレートと同一のサブテンプレートが配置された行と同一行、または、同一列に配置する(S4106)。
なお、各サブテンプレートの配置位置が決まった後のサイズ決定処理は、実施例1および2と同等であるため詳細な説明は省略する。
また、同一サブテンプレートを同一行に配置するか、同一列に配置するかは、予めユーザが設定しておくものとする。
図41の処理を実行することによって、同一サブテンプレートは、同一行または同一列に配置されるため、データベースに対して行数およびカラム数が指定されていなくても、図40のような表形式のレイアウト結果を生成することが可能となる。
つまり、実施例1または2では、データベースにおいて指定された列数分の連続するレコードが同じ行に配置されていた(例えば、3列と指定された場合、連続する3つのレコードが同一行に配置される)。しかしながら、本願では、同じサブテンプレートを使用することが決まったレコードが同一行または同一列に配置されるため、実施例1および2のようなデータベースを生成しなくても表形式のレイアウト結果を生成することが可能となる。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
101 ホストコンピュータ
103 ユーザインタフェース
105 レイアウトエンジン
121 レイアウト編集アプリケーション
103 ユーザインタフェース
105 レイアウトエンジン
121 レイアウト編集アプリケーション
Claims (30)
- データベースからレイアウトすべきコンテンツデータを抽出するための抽出条件が設定されたフローエリアを有し、抽出されたコンテンツデータが配置されたサブテンプレートを前記フローエリアに配置してレイアウトを決定する情報処理装置であって、
前記抽出条件を満たすコンテンツデータを前記データベースから取得する取得手段と、
前記取得手段によって取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、水平方向である行方向に配置されるべきサブテンプレートから選択された各行のサブテンプレートの垂直方向サイズと、垂直方向である列方向に配置されるべきサブテンプレートから選択された各列のサブテンプレートの水平方向サイズとに基づいて、前記フローエリアを分割するセル領域の領域サイズを決定する第1決定手段と、
前記第1決定手段によって領域サイズが決定されたセル領域に収まるように前記サブテンプレートのサイズを決定し、当該サブテンプレートに対してコンテンツデータを配置する配置手段を有することを特徴とする情報処理装置。 - 前記第1決定手段は、垂直方向である列方向に配置されるセル領域の水平方向サイズを同一にし、かつ、水平方向である行方向に配置されるセル領域の垂直方向サイズを同一にすることを特徴とする請求項1に記載の情報処理装置。
- 前記第1決定手段は、それぞれの行に配置された複数のサブテンプレートから最大の垂直方向サイズを有するサブテンプレートを抽出し、当該抽出された各行のサブテンプレートの垂直方向サイズとフローエリアの垂直方向のサイズとに基づいて各行のセル領域の垂直方向サイズを決定し、かつ、それぞれの列に配置された複数のサブテンプレートから最大の水平方向サイズを有するサブテンプレートを抽出し、当該抽出された各列のサブテンプレートの水平方向サイズとフローエリアの水平方向のサイズとに基づいて各列のセル領域の水平方向サイズを決定することで、各セル領域の領域サイズを決定することを特徴とする請求項1または2に記載の情報処理装置。
- 前記配置手段は、前記第1決定手段によって領域サイズが決定された領域内に前記サブテンプレートが収まるように前記サブテンプレートのサイズを変更して前記領域内に配置することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記配置手段は、任意のサブテンプレートを任意の領域に配置する場合、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更して、前記任意の領域内に配置することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
- 前記配置手段は、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更する場合、前記サブテンプレートのサイズは縦横比を維持することなく変更し、かつ、前記サブテンプレートに含まれる画像データ用の部分領域に配置された画像データの縦横比を維持して変更することを特徴とする請求項5に記載の情報処理装置。
- 前記取得手段によって取得された複数のコンテンツデータを含むレコードに複数のセル領域を用いてレイアウトすることが指定されているか否かを判定する判定手段と、
前記判定手段によって複数のセル領域を用いてレイアウトすることが指定されている場合、前記配置手段は、指定された領域数分のセル領域を用いて前記サブテンプレートを配置することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 - 前記サブテンプレート内に設定されたコンテンツデータを割り当てるための部分領域のサイズを前記コンテンツデータが要求するサイズに従って決定する第2決定手段を備え、
前記第2決定手段は、決定された部分領域のサイズに従ってサブテンプレートのサイズを決定することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。 - 前記第1決定手段によって決定された領域サイズを用いて前記フローエリアを複数のセル領域に分割する分割手段を更に備えることを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
- 前記取得手段によって取得されたコンテンツデータを配置するサブテンプレートを決定する第3決定手段を更に有し、
前記配置手段は、前記第3決定手段において決定されたサブテンプレートにおいて、同一サブテンプレートを使用するサブテンプレートを同一行または同一列に配置することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。 - データベースからレイアウトすべきコンテンツデータを抽出するための抽出条件が設定されたフローエリアを有し、抽出されたコンテンツデータが配置されたサブテンプレートを前記フローエリアに配置してレイアウトを決定する情報処理装置における制御方法であって、
前記抽出条件を満たすコンテンツデータを前記データベースから取得する取得工程と、
前記取得工程によって取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、水平方向である行方向に配置されるべきサブテンプレートから選択された各行のサブテンプレートの垂直方向サイズと、垂直方向である列方向に配置されるべきサブテンプレートから選択された各列のサブテンプレートの水平方向サイズとに基づいて、前記フローエリアを分割するセル領域の領域サイズを決定する第1決定工程と、
前記第1決定工程によって領域サイズが決定されたセル領域に収まるように前記サブテンプレートのサイズを決定し、当該サブテンプレートに対してコンテンツデータを配置する配置工程を有することを特徴とする制御方法。 - 前記第1決定工程は、垂直方向である列方向に配置されるセル領域の水平方向サイズを同一にし、かつ、水平方向である行方向に配置されるセル領域の垂直方向サイズを同一にすることを特徴とする請求項11に記載の制御方法。
- 前記第1決定工程は、それぞれの行に配置された複数のサブテンプレートから最大の垂直方向サイズを有するサブテンプレートを抽出し、当該抽出された各行のサブテンプレートの垂直方向サイズとフローエリアの垂直方向のサイズとに基づいて各行のセル領域の垂直方向サイズを決定し、かつ、それぞれの列に配置された複数のサブテンプレートから最大の水平方向サイズを有するサブテンプレートを抽出し、当該抽出された各列のサブテンプレートの水平方向サイズとフローエリアの水平方向のサイズとに基づいて各列のセル領域の水平方向サイズを決定することで、各セル領域の領域サイズを決定することを特徴とする請求項11または12に記載の制御方法。
- 前記配置工程は、前記第1決定工程によって領域サイズが決定された領域内に前記サブテンプレートが収まるように前記サブテンプレートのサイズを変更して前記領域内に配置することを特徴とする請求項11乃至13のいずれか1項に記載の制御方法。
- 前記配置工程は、任意のサブテンプレートを任意の領域に配置する場合、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更して、前記任意の領域内に配置することを特徴とする請求項11乃至14のいずれか1項に記載の制御方法。
- 前記配置工程は、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更する場合、前記サブテンプレートのサイズは縦横比を維持することなく変更し、かつ、前記サブテンプレートに含まれる画像データ用の部分領域に配置された画像データの縦横比を維持して変更することを特徴とする請求項15に記載の制御方法。
- 前記取得工程によって取得された複数のコンテンツデータを含むレコードに複数の領域を用いてレイアウトすることが指定されているか否かを判定する判定工程と、
前記判定工程によって複数のセル領域を用いてレイアウトすることが指定されている場合、前記配置工程は、指定された領域数分のセル領域を用いて前記サブテンプレートを配置することを特徴とする請求項11乃至16のいずれか1項に記載の制御方法。 - 前記サブテンプレート内に設定されたコンテンツデータを割り当てるための部分領域のサイズを前記コンテンツデータが要求するサイズに従って決定する第2決定工程を備え、
前記第2決定工程は、決定された部分領域のサイズに従ってサブテンプレートのサイズを決定することを特徴とする請求項11乃至17のいずれか1項に記載の制御方法。 - 前記第1決定工程によって決定された領域サイズを用いて前記フローエリアを複数のセル領域に分割する分割工程を更に備えることを特徴とする請求項11乃至18のいずれか1項に記載の制御方法。
- 前記取得工程によって取得されたコンテンツデータを配置するサブテンプレートを決定する第3決定工程を更に有し、
前記配置工程は、前記第3決定工程において決定されたサブテンプレートにおいて、同一サブテンプレートを使用するサブテンプレートを同一行または同一列に配置することを特徴とする請求項11乃至19のいずれか1項に記載の制御方法。 - データベースからレイアウトすべきコンテンツデータを抽出するための抽出条件が設定されたフローエリアを有し、抽出されたコンテンツデータが配置されたサブテンプレートを前記フローエリアに配置してレイアウトを決定する情報処理装置において実行可能な制御プログラムであって、
前記抽出条件を満たすコンテンツデータを前記データベースから取得する取得工程と、
前記取得工程によって取得されたコンテンツデータが配置される複数のサブテンプレートにおいて、水平方向である行方向に配置されるべきサブテンプレートから選択された各行のサブテンプレートの垂直方向サイズと、垂直方向である列方向に配置されるべきサブテンプレートから選択された各列のサブテンプレートの水平方向サイズとに基づいて、前記フローエリアを分割するセル領域の領域サイズを決定する第1決定工程と、
前記第1決定工程によって領域サイズが決定されたセル領域に収まるように前記サブテンプレートのサイズを決定し、当該サブテンプレートに対してコンテンツデータを配置する配置工程を有することを特徴とするコンピュータで実行可能な制御プログラム。 - 前記第1決定工程は、垂直方向である列方向に配置されるセル領域の水平方向サイズを同一にし、かつ、水平方向である行方向に配置されるセル領域の垂直方向サイズを同一にすることを特徴とする請求項21に記載の制御プログラム。
- 前記第1決定工程は、それぞれの行に配置された複数のサブテンプレートから最大の垂直方向サイズを有するサブテンプレートを抽出し、当該抽出された各行のサブテンプレートの垂直方向サイズとフローエリアの垂直方向のサイズとに基づいて各行のセル領域の垂直方向サイズを決定し、かつ、それぞれの列に配置された複数のサブテンプレートから最大の水平方向サイズを有するサブテンプレートを抽出し、当該抽出された各列のサブテンプレートの水平方向サイズとフローエリアの水平方向のサイズとに基づいて各列のセル領域の水平方向サイズを決定することで、各セル領域の領域サイズを決定することを特徴とする請求項21または22に記載の制御プログラム。
- 前記配置工程は、前記第1決定工程によって領域サイズが決定された領域内に前記サブテンプレートが収まるように前記サブテンプレートのサイズを変更して前記領域内に配置することを特徴とする請求項21乃至23のいずれか1項に記載の制御プログラム。
- 前記配置工程は、任意のサブテンプレートを任意の領域に配置する場合、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更して、前記任意の領域内に配置することを特徴とする請求項21乃至24のいずれか1項に記載の制御プログラム。
- 前記配置工程は、前記任意のサブテンプレートのサイズが前記任意の領域のサイズと一致するように前記任意のサブテンプレートのサイズを変更する場合、前記サブテンプレートのサイズは縦横比を維持することなく変更し、かつ、前記サブテンプレートに含まれる画像データ用の部分領域に配置された画像データの縦横比を維持して変更することを特徴とする請求項25に記載の制御プログラム。
- 前記取得工程によって取得された複数のコンテンツデータを含むレコードに複数のセル領域を用いてレイアウトすることが指定されているか否かを判定する判定工程と、
前記判定工程によって複数のセル領域を用いてレイアウトすることが指定されている場合、前記配置工程は、指定された領域数分のセル領域を用いて前記サブテンプレートを配置することを特徴とする請求項21乃至26のいずれか1項に記載の制御プログラム。 - 前記サブテンプレート内に設定されたコンテンツデータを割り当てるための部分領域のサイズを前記コンテンツデータが要求するサイズに従って決定する第2決定工程を備え、
前記第2決定工程は、決定された部分領域のサイズに従ってサブテンプレートのサイズを決定することを特徴とする請求項21乃至27のいずれか1項に記載の制御プログラム。 - 前記第1決定工程によって決定された領域サイズを用いて前記フローエリアを複数のセル領域に分割する分割工程を更に備えることを特徴とする請求項21乃至28のいずれか1項に記載の制御プログラム。
- 前記取得工程によって取得されたコンテンツデータを配置するサブテンプレートを決定する第3決定工程を更に有し、
前記配置工程は、前記第3決定工程において決定されたサブテンプレートにおいて、同一サブテンプレートを使用するサブテンプレートを同一行または同一列に配置することを特徴とする請求項21乃至29のいずれか1項に記載の制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006311618A JP2008129702A (ja) | 2006-11-17 | 2006-11-17 | 情報処理装置および制御方法および制御プログラム |
US11/874,354 US8370738B2 (en) | 2006-11-17 | 2007-10-18 | Information processing apparatus, control method, and computer-readable medium |
CN2007101694753A CN101183353B (zh) | 2006-11-17 | 2007-11-16 | 信息处理装置和控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006311618A JP2008129702A (ja) | 2006-11-17 | 2006-11-17 | 情報処理装置および制御方法および制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008129702A true JP2008129702A (ja) | 2008-06-05 |
Family
ID=39418295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006311618A Withdrawn JP2008129702A (ja) | 2006-11-17 | 2006-11-17 | 情報処理装置および制御方法および制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8370738B2 (ja) |
JP (1) | JP2008129702A (ja) |
CN (1) | CN101183353B (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099098A (ja) * | 2010-10-25 | 2012-05-24 | Konica Minolta Laboratory Usa Inc | 表のセルの高さを決定する方法、コンピューター読取可能媒体及びシステム |
JP2015132913A (ja) * | 2014-01-10 | 2015-07-23 | 株式会社野村総合研究所 | 報告書作成システム |
US9275486B2 (en) | 2013-10-07 | 2016-03-01 | Seiko Epson Corporation | Collage image creating method and collage image creating device |
JP2023041106A (ja) * | 2021-09-13 | 2023-03-24 | カシオ計算機株式会社 | 印刷データ編集方法及び印刷データ編集プログラム |
JP7435059B2 (ja) | 2020-03-11 | 2024-02-21 | 富士フイルムビジネスイノベーション株式会社 | 文書処理装置及びプログラム |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218090A1 (en) * | 2009-02-26 | 2010-08-26 | Universal - Ad Ltd. | Sub-page-based page layout system and method thereof |
JP5335495B2 (ja) * | 2009-03-10 | 2013-11-06 | キヤノン株式会社 | 情報処理装置、画像データ生成方法、及びコンピュータプログラム |
US20100318916A1 (en) * | 2009-06-11 | 2010-12-16 | David Wilkins | System and method for generating multimedia presentations |
WO2011057428A1 (en) * | 2009-11-13 | 2011-05-19 | Google Inc. | Aligning user interface elements |
US8346723B2 (en) * | 2010-03-30 | 2013-01-01 | Oracle International Corporation | Consolidation of patch transformations for database replication |
CN102629262A (zh) * | 2012-03-02 | 2012-08-08 | 浪潮集团山东通用软件有限公司 | 一种自定义bi展现模型的方法 |
US9830304B1 (en) * | 2013-02-22 | 2017-11-28 | Swoop Inc. | Systems and methods for integrating dynamic content into electronic media |
US10007933B2 (en) * | 2013-02-22 | 2018-06-26 | Swoop Inc. | Systems and methods for integrating dynamic content into electronic media |
EP3103027B1 (en) | 2014-02-07 | 2019-06-05 | Google LLC | Arbitrary size content item generation |
CN107180019B (zh) * | 2016-03-11 | 2021-01-12 | 阿里巴巴集团控股有限公司 | 表格展示方法及装置 |
US11023653B2 (en) * | 2018-10-17 | 2021-06-01 | Kyocera Document Solutions Inc. | Simplified formatting for variable data production with vertical resolution of dependencies |
CN110032701B (zh) * | 2019-04-04 | 2021-07-09 | 网易(杭州)网络有限公司 | 图像展示控制方法、装置、存储介质及电子设备 |
CN110764721A (zh) * | 2019-09-19 | 2020-02-07 | 北京三快在线科技有限公司 | 模板生成方法、装置、电子设备和计算机可读介质 |
CN111596878B (zh) * | 2020-05-13 | 2023-06-20 | 阿波罗智联(北京)科技有限公司 | 投屏方法、装置、设备以及存储介质 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4539653A (en) * | 1983-04-11 | 1985-09-03 | International Business Machines Corporation | Formatting text/graphics using plural independent formatting mechanisms |
US5701500A (en) * | 1992-06-02 | 1997-12-23 | Fuji Xerox Co., Ltd. | Document processor |
US6055550A (en) * | 1996-03-21 | 2000-04-25 | Oracle Corporation | Auto sizing of fields for displaying computer forms |
JPH09330397A (ja) * | 1996-06-13 | 1997-12-22 | Canon Inc | 自動画像編集装置 |
US5943679A (en) * | 1996-10-30 | 1999-08-24 | Xerox Corporation | Multi-page document viewer having a focus image and recursively nested images of varying resolutions less than the resolution of the focus image |
US5893127A (en) * | 1996-11-18 | 1999-04-06 | Canon Information Systems, Inc. | Generator for document with HTML tagged table having data elements which preserve layout relationships of information in bitmap image of original document |
US6389437B2 (en) * | 1998-01-07 | 2002-05-14 | Ion Systems, Inc. | System for converting scrolling display to non-scrolling columnar display |
JPH11250272A (ja) * | 1998-01-08 | 1999-09-17 | Xerox Corp | 自動イメ―ジレイアウト方法及びシステム |
JP2000048216A (ja) * | 1998-07-24 | 2000-02-18 | Dainippon Screen Mfg Co Ltd | 画像部品ブロックのレイアウト処理方法及び装置、並びに、コンピュータ読み取り可能な記憶媒体 |
EP1108240B1 (en) * | 1999-06-07 | 2003-08-27 | Hewlett-Packard Company, A Delaware Corporation | An agent and method for dynamically scheduling publication in an automated document delivery system |
US6675351B1 (en) * | 1999-06-15 | 2004-01-06 | Sun Microsystems, Inc. | Table layout for a small footprint device |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
US6639611B1 (en) * | 1999-12-15 | 2003-10-28 | Sun Microsystems, Inc. | System and method for efficient layout of a display table |
GB2361330A (en) * | 2000-04-13 | 2001-10-17 | Int Computers Ltd | Template mechanism for document generation |
US20020040375A1 (en) * | 2000-04-27 | 2002-04-04 | Simon Richard A. | Method of organizing digital images on a page |
US7454695B1 (en) * | 2000-05-19 | 2008-11-18 | Renderx, Inc. | Methods for rendering tables |
US6738079B1 (en) * | 2000-06-02 | 2004-05-18 | Sun Microsystems, Inc. | Graphical user interface layout customizer |
US7028255B1 (en) * | 2000-08-14 | 2006-04-11 | Adobe Systems Incorporated | Self-sizing object placement |
US6981209B1 (en) * | 2000-09-26 | 2005-12-27 | Microsoft Corporation | Automatic layout of vertical flow oriented characters within a defined area |
US7051276B1 (en) * | 2000-09-27 | 2006-05-23 | Microsoft Corporation | View templates for HTML source documents |
US7313765B2 (en) * | 2001-04-30 | 2007-12-25 | Broadband Graphics Llc | Cell based EUI methods & apparatuses |
US8001465B2 (en) * | 2001-06-26 | 2011-08-16 | Kudrollis Software Inventions Pvt. Ltd. | Compacting an information array display to cope with two dimensional display space constraint |
CN100338573C (zh) * | 2001-10-04 | 2007-09-19 | 皇家飞利浦电子股份有限公司 | 设计用户界面样式的方法以及具有自适应用户界面的设备 |
US7028272B2 (en) * | 2002-01-03 | 2006-04-11 | Texas Instruments Incorporated | Reducing cell library development cycle time |
US7065704B1 (en) * | 2002-07-18 | 2006-06-20 | Embedded Internet Solutions, Inc. | Methods for fast HTML rendering |
US7107525B2 (en) * | 2002-07-23 | 2006-09-12 | Xerox Corporation | Method for constraint-based document generation |
US7512876B2 (en) * | 2003-02-14 | 2009-03-31 | Access Company, Ltd. | Browser program for performing table-layout |
JP4079087B2 (ja) * | 2003-03-12 | 2008-04-23 | セイコーエプソン株式会社 | レイアウトシステム |
US7421649B1 (en) * | 2003-04-28 | 2008-09-02 | Adobe Systems Incorporated | Enhanced visual table editing |
US7339598B2 (en) * | 2003-07-11 | 2008-03-04 | Vistaprint Technologies Limited | System and method for automated product design |
US7391885B2 (en) * | 2003-07-30 | 2008-06-24 | Xerox Corporation | Method for determining overall effectiveness of a document |
US7188310B2 (en) * | 2003-10-09 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | Automatic layout generation for photobooks |
JP4095558B2 (ja) * | 2004-01-30 | 2008-06-04 | キヤノン株式会社 | 文書処理装置及び文書処理方法及びコンピュータプログラム |
JP4250540B2 (ja) | 2004-01-30 | 2009-04-08 | キヤノン株式会社 | レイアウト調整方法および装置およびレイアウト調整プログラム |
US7500179B2 (en) * | 2004-08-04 | 2009-03-03 | Microsoft Corporation | Method for optimizing space allocation in table layout |
JP4332477B2 (ja) * | 2004-08-06 | 2009-09-16 | キヤノン株式会社 | レイアウト調整方法及び装置並びにプログラム |
GB2418280A (en) * | 2004-09-18 | 2006-03-22 | Hewlett Packard Development Co | Document creation system |
US7656543B2 (en) * | 2004-11-12 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Albuming images |
JP4095617B2 (ja) * | 2005-02-28 | 2008-06-04 | キヤノン株式会社 | 文書処理装置及び文書処理方法及びコンピュータプログラム |
US7412647B2 (en) * | 2005-03-04 | 2008-08-12 | Microsoft Corporation | Method and system for laying out paginated content for viewing |
US7657830B2 (en) * | 2005-05-04 | 2010-02-02 | Microsoft Corporation | Layout size sharing in a grid layout for a user interface |
US7627812B2 (en) * | 2005-10-27 | 2009-12-01 | Microsoft Corporation | Variable formatting of cells |
US20070162844A1 (en) * | 2006-01-12 | 2007-07-12 | Microsoft Corporation | Automatic layout of objects |
-
2006
- 2006-11-17 JP JP2006311618A patent/JP2008129702A/ja not_active Withdrawn
-
2007
- 2007-10-18 US US11/874,354 patent/US8370738B2/en not_active Expired - Fee Related
- 2007-11-16 CN CN2007101694753A patent/CN101183353B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099098A (ja) * | 2010-10-25 | 2012-05-24 | Konica Minolta Laboratory Usa Inc | 表のセルの高さを決定する方法、コンピューター読取可能媒体及びシステム |
US9275486B2 (en) | 2013-10-07 | 2016-03-01 | Seiko Epson Corporation | Collage image creating method and collage image creating device |
JP2015132913A (ja) * | 2014-01-10 | 2015-07-23 | 株式会社野村総合研究所 | 報告書作成システム |
JP7435059B2 (ja) | 2020-03-11 | 2024-02-21 | 富士フイルムビジネスイノベーション株式会社 | 文書処理装置及びプログラム |
JP2023041106A (ja) * | 2021-09-13 | 2023-03-24 | カシオ計算機株式会社 | 印刷データ編集方法及び印刷データ編集プログラム |
JP7310864B2 (ja) | 2021-09-13 | 2023-07-19 | カシオ計算機株式会社 | 印刷データ編集方法及び印刷データ編集プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN101183353B (zh) | 2010-09-22 |
CN101183353A (zh) | 2008-05-21 |
US8370738B2 (en) | 2013-02-05 |
US20080120536A1 (en) | 2008-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008129702A (ja) | 情報処理装置および制御方法および制御プログラム | |
JP4095617B2 (ja) | 文書処理装置及び文書処理方法及びコンピュータプログラム | |
JP4732029B2 (ja) | レイアウト決定方法および情報処理装置およびレイアウト決定プログラム | |
KR100716084B1 (ko) | 레이아웃 조정 방법 및 장치 | |
JP4095558B2 (ja) | 文書処理装置及び文書処理方法及びコンピュータプログラム | |
JP4208858B2 (ja) | レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム | |
US7707494B2 (en) | Information processing apparatus, control method therefor, and program | |
JP4700940B2 (ja) | 情報処理装置及びその制御方法、プログラム | |
JP2019531524A (ja) | ウェブサイト構築システムおよびウェブサイト構築システムのための方法 | |
JP4912139B2 (ja) | 情報処理装置 | |
JP4144806B2 (ja) | 情報編集装置、情報編集システム、情報編集方法、およびプログラム | |
JP2006277727A (ja) | レイアウト処理方法、情報処理装置及びコンピュータプログラム | |
US7853872B2 (en) | Laying out field regions in a page for insertion of data | |
JP2006048531A (ja) | 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体 | |
KR20170083718A (ko) | 반응형 웹사이트 빌더 시스템 및 그 방법 | |
JP2009110391A (ja) | 情報処理装置および制御方法および制御プログラム | |
JP4549379B2 (ja) | 文書処理装置及び文書処理方法及びプログラム | |
KR101307790B1 (ko) | 연결번역 기반의 디지털 만화콘텐츠 저작 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체 | |
JP7148804B2 (ja) | ソースファイル生成プログラム、ソースファイル生成方法、および情報処理装置 | |
JP2007108994A (ja) | レイアウト編集装置およびレイアウト編集プログラム | |
JP2011170865A (ja) | レイアウト決定方法および情報処理装置およびレイアウト決定プログラム | |
JP2007094756A (ja) | 情報処理装置、レイアウト処理方法、記憶媒体およびプログラム | |
Karlins | Adobe Creative Suite 5 Web Premium How-tos: 100 Essential Techniques | |
JP2010176366A (ja) | バリアブルプリントシステム | |
JP2008287504A (ja) | 文書処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100202 |