JP4111519B2 - レイアウト処理方法、情報処理装置及びコンピュータプログラム - Google Patents

レイアウト処理方法、情報処理装置及びコンピュータプログラム Download PDF

Info

Publication number
JP4111519B2
JP4111519B2 JP2004252897A JP2004252897A JP4111519B2 JP 4111519 B2 JP4111519 B2 JP 4111519B2 JP 2004252897 A JP2004252897 A JP 2004252897A JP 2004252897 A JP2004252897 A JP 2004252897A JP 4111519 B2 JP4111519 B2 JP 4111519B2
Authority
JP
Japan
Prior art keywords
size
container
data area
data
reference size
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
JP2004252897A
Other languages
English (en)
Other versions
JP2006074224A5 (ja
JP2006074224A (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 JP2004252897A priority Critical patent/JP4111519B2/ja
Priority to US11/211,469 priority patent/US7847971B2/en
Priority to CNB2005100934784A priority patent/CN100337188C/zh
Publication of JP2006074224A publication Critical patent/JP2006074224A/ja
Publication of JP2006074224A5 publication Critical patent/JP2006074224A5/ja
Application granted granted Critical
Publication of JP4111519B2 publication Critical patent/JP4111519B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3871Composing, repositioning or otherwise geometrically modifying originals the composed originals being of different kinds, e.g. low- and high-resolution originals
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • G06K15/1851Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives parted in a plurality of segments per page

Landscapes

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

Description

本発明は、テキストやイメージで構成されたドキュメントの生成、編集、そして印刷のための技術に関するものであり、更に詳しくは、バリアブルデータドキュメントの生成、編集、そして印刷に好適なものである。
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM(Customer Relationship Management)、One-to-Oneマーケティングの必要性が注目されている。これらの手法は、顧客満足度を高め、顧客の開拓や囲い込みを目指すという目的に対して非常に効果的なものである。
One-to-Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な具体的手法としてバリアブルプリントが挙げられる。特に、最近ではDTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発されている。このようなバリアブルプリントシステムでは、顧客毎に異なる量のコンテンツが最適にレイアウトされたカスタマイズ文書を作成することが求められる。
一般に、バリアブルプリントシステムにおいてそのようなカスタマイズ文書を作成する際には、ドキュメント上にコンテナをレイアウトする。コンテナとはコンテンツ(描画内容)を描画するための部分領域であり、フィールド領域と呼ばれることもある。すなわち、ドキュメント上にこのようなコンテナをレイアウトし、データベースとレイアウトを関連付ける(データベースの各コンテンツと各コンテナとを関連付ける)といった作業により、カスタマイズ文書(ドキュメント)を作成する。本明細書ではこのようなドキュメントをバリアブルデータドキュメントという。
このようなバリアブルプリントシステムにおいて、レイアウトされた各コンテナには顧客によって異なるコンテンツを流し込むことが可能である。従って、コンテンツに流し込まれるデータのサイズは可変であり、これに対してコンテナのサイズが固定であると次のような課題が生じる。例えば、コンテナのサイズよりも大きなサイズのテキストデータが流し込まれた場合には全てのテキストをそのコンテナ内に表示出来なくなってしまう。あるいは、コンテナのサイズよりも大きなサイズのイメージデータが流し込まれた場合には、そのイメージの一部が欠落してしまう。このような問題をオーバーフローと呼ぶ。
なお、コンテンツがイメージデータの場合には、当該イメージを縮小してコンテナ内に描画することも考えられるが、イメージが極端に小さくなってしまうといった弊害が生じる可能性がある。また、固定サイズのコンテナ内に入りきらないテキストデータが挿入された場合に、テキストのフォントサイズを縮小し、当該コンテナ内に全てのテキストを表示可能にする技術も提案されている。しかしながら、このようにフォントサイズを調節する場合、フォントサイズが小さくなりすぎて、ドキュメント全体のバランスが崩れたり、読みにくくなるという課題が生じる。
このような課題を解決するための自動レイアウトの技術として、あるコンテナのサイズが大きくなった場合に、隣接したコンテナとの間隔を保つべく当該隣接するコンテナのサイズを小さくする技術が特許文献1の「レイアウトデザイン装置」に開示されている。
特開平7−129658号公報 (0049、図8)
しかしながら、上述した特許文献1には、テキストの入力に応じてコンテナサイズが拡大されていくことが記載されているが、コンテナのサイズが大きくなった場合、隣接したコンテナは間隔を保つべく縮小されてしまうため、入力されるテキスト量が増加するに従い、隣接したコンテナは縮小され続けてしまうといった問題点があった。
更に特許文献1では、上述したようなデータベースと各コンテナを関連付けてコンテンツデータを流し込むことで、顧客毎にカスタマイズした文書を作成するバリアブルプリントシステムについては考慮されていなかった。
また、バリアブルデータプリントを考慮したレイアウト方法として、固定のコンテナを作成し、そこにコンテンツデータを流し込んでいくものがある。しかし、固定サイズのコンテナを用いる場合、コンテナサイズより大きいサイズのコンテンツデータが流し込まれると、オーバーフローが生じてしまったり、フォントサイズを縮小して無理に流し込もうとするとフォントサイズが極端に小さくなってしまうといった問題が生じてしまう。また、流し込まれるコンテンツデータのサイズに応じてコンテナのサイズを拡大または縮小させることが考えられるが、複数のコンテナが関連付けられた状態で、一方のコンテナサイズが拡大された場合、関連付けられているコンテナは一方のコンテナサイズの拡大に伴って縮小するしかなくコンテナ間のサイズバランスを考慮したレイアウト処理を行うことができない。
そこで、関連付けられた複数のコンテナ間のサイズバランスを考慮したレイアウト方法として、各コンテナに流し込まれるコンテンツデータのサイズに応じて各コンテナのサイズを変更する場合、各コンテナサイズの変化量を調整したレイアウト処理をすることで関連付けられたコンテナはサイズバランスを考慮したレイアウト処理が可能なる。
しかし、このレイアウト方法では流し込まれるコンテンツデータのサイズに応じてコンテナのサイズが常に変更されてしまうため、レイアウト上、予め設定したコンテナサイズを維持したい場合であっても、ユーザの意図に反してコンテナサイズは変更されてしまっていた。
例えば、コンテナサイズよりも大きいサイズのコンテンツデータが流し込まれる場合には、オーバーフローやフォントサイズについて考慮しなければならないため、コンテンツデータのサイズに応じてコンテナサイズの拡大が望まれるが、コンテナサイズよりも小さいサイズのコンテンツデータが流し込まれる場合、ユーザによっては必ずしもコンテンツデータに合わせてコンテナサイズを縮小することを望んでいるとは限らず、予め設定したコンテナのサイズを維持することが望まれる場合も考えられる。
以上のように、コンテナによっては予め設定した基準のサイズを用いてレイアウトをしたいと考える場合であっても、コンテナのサイズは流し込まれるコンテンツデータのサイズに応じて常に変更されてしまい、ユーザの意図したレイアウトが得られないという課題が生じていた。
本発明は上記の課題に鑑みてなされたものであり、レイアウト時に設定されたデータ領域(コンテナ)のサイズを適切に維持することができるようなレイアウト属性を各コンテナに対して設定できるようにすることで、ユーザの意図を反映したレイアウト処理を実現することを目的とする。
上記の目的を達成するための本発明によるレイアウト処理方法は、
複数のデータ領域を有するテンプレートと、該複数のデータ領域の各々に入力されるコンテンツデータとを用いてレイアウト処理を実行する情報処理装置におけるレイアウト処理方法であって、
前記データ領域に対して基準サイズを設定する設定工程と、
前記設定工程において設定された基準サイズのデータ領域を前記テンプレートに配置する配置工程と、
データ領域に対して入力されるコンテンツデータのサイズに適応するべく前記配置工程において配置された基準サイズのデータ領域のサイズを変更するか否かを判断する判断工程と、
前記判断工程によって前記基準サイズのデータ領域を変更すると判断された場合は、前記データ領域のサイズ各データ領域に入力されるコンテンツデータのサイズに応じて決定し、前記判断工程によって前記基準サイズから変更しないと判断された場合は、前記データ領域のサイズ前記基準サイズを用いて決定するレイアウト決定工程とを備え、
前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更しないと判断し、
前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更すると判断する。
また、本発明によれば、上記レイアウト処理方法を実行する情報処理装置が提供される。
本発明によれば、レイアウト時に設定されたデータ領域のサイズを適切に維持することが可能となり、レイアウト設計時のユーザの意図を反映したレイアウト処理を実現することができる。
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
<システム構成>
まず、図1Aおよび図1Bを参照して、本実施形態のバリアブルプリントシステムの構成を説明する。図1Aはバリアブルデータドキュメントを印刷するためのバリアブルプリントシステム100の構成例を示すブロック図である。また、図1Bは図1Aに示されたホストコンピュータ101の構成を更に詳細に示すブロック図である。本実施形態で説明されるバリアブルプリント処理は、レイアウト調整装置であるホストコンピュータ101(汎用コンピュータモジュールで構成される)によって実行される。システム100上で実施可能となるレイアウト編集アプリケーションプログラム121(本発明のレイアウト調整プログラム)はホストコンピュータ101において、そのソフトウェアの全体、あるいは一部分が実行される。特にレイアウト編集のための処理やバリアブルデータドキュメントの印刷のための処理はホストコンピュータ101で実行されるソフトウェアにより実現される。
レイアウト編集アプリケーションプログラム121はコンピュータの可読媒体に格納され、そのコンピュータの可読媒体からホストコンピュータ101のメモリ136にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータの可読媒体はコンピュータプログラム製品である。コンピュータにおいてそのコンピュータプログラム製品を使用することにより、ドキュメントのレイアウト編集やバリアブルプリントに好適な装置が提供されることになる。
図1Bに示されるように、ホストコンピュータ101には、入出力インターフェース143を介してキーボード132や、マウス133のようなポインティングデバイス等が入力装置として接続される。また、出力装置としてのディスプレイ装置144がビデオインターフェース137を介して接続される。更に、ローカルプリンタ145等を入出力インターフェース138を介して接続することも可能である。また、入出力インタフェース138はコンピュータモジュール101をネットワーク107へ接続する機能も有する。これにより、ネットワークを介してシステム100内の他のコンピュータ装置にホストコンピュータ101を接続することができる。ネットワーク107の典型的な例としては、ローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)が挙げられる。
また、図1Bに示すように、ホストコンピュータ101は少なくとも1つのプロセッサユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136を含んでいる。格納デバイス139は、プログラム等を格納するコンピュータ可読媒体との間でデータのやり取りが可能なハードディスクドライブ140やフロッピー(登録商標)ディスクドライブ141を含む。なお、図1Bには示されていないが、磁気テープドライブ等も格納デバイス139として使用可能である。CD−ROMドライブ142は不揮発性のデータソースとして提供される(もちろん、CD−ROMによってコンピュータプログラムを提供してもよい)。
ホストコンピュータ101は、GNU/LINUXやマイクロソフトウインドウズ(登録商標)のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101のコンポーネント135から143を利用する。すなわち、上述した135〜143で示される各構成は、バス134を介して通信可能に接続されており、ホストコンピュータ101にインストールされたオペレーティングシステムにより利用される。
なお、図1Bに示したホストコンピュータ101の例としては、IBM互換PCやSUN のSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
<レイアウト編集アプリケーションの概要>
本実施形態では、レイアウト編集アプリケーションプログラム121はハードディスクドライブ140に常駐し、プロセッサ135により実行や読み込みが制御されるものとする。レイアウト編集アプリケーション121のプログラムの媒介記憶装置とネットワーク107からフェッチされるデータはハードディスクドライブ140に呼応して半導体メモリ136を使用する。
一つの例では、レイアウト編集アプリケーション121のエンコードされたプログラムは、CD−ROMやフロッピー(登録商標)ディスク上に格納され、対応するドライブ142や141を通じて読み込まれ、ハードディスクドライブ140にインストールされる。あるいは、別の例として、レイアウト編集アプリケーションプログラム121はネットワーク107からホストコンピュータ101内に読み込まれて、ハードディスクドライブ(HDD)140にインストールされてもよい。さらにソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスク、または、ホストコンピュータ101とその他のデバイス間における赤外線等の無線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ101内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
図1Aにおいて、本発明のレイアウト編集アプリケーション121はコンピュータにバリアブルプリント(バリアブルデータプリント(VDP)ともいう)を行わせるものであり、2つのソフトウェアコンポーネント、すなわちレイアウトエンジン105とユーザインターフェース103、を含んでいる。レイアウトエンジン105は、部分領域であるコンテナ(矩形の範囲)に与えられたサイズや位置の制限にしたがって、データベース119に格納されているバリアブルデータから1レコードずつ読み込み、読み込んだデータとコンテナの制限とから、読み込んだデータが流し込まれるコンテナの大きさや位置等を計算するソフトウェアコンポーネントである。また、本実施形態では、レイアウトエンジン105は、更に、コンテナに割り当てられたデータを描画し、バリアブルデータドキュメントのイメージを生成する処理も行う。ただし、本発明はこれに限るものではなく、レイアウトエンジン105は各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成してもよい。ユーザインタフェース103は、ユーザによるコンテナのレイアウトや属性設定を可能とし、ユーザにドキュメントテンプレートを作成させる。また、ユーザインターフェース103はドキュメントテンプレート内の各コンテナとデータソースとを関連付けるメカニズムを提供する。ユーザインタフェース103とレイアウトエンジン105はコミュニケーションチャネル123を介して通信する。
図1Cは本実施形態によるバリアブルデータプリントの概略を説明する図である。レイアウト編集アプリケーション121のユーザインターフェースモジュール103(以下、ユーザインタフェース103と記載する)により、ユーザからの操作指示に従いページ上に複数のコンテナ181〜183を配置し、各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート180が生成される。また、ユーザインターフェース103はドキュメントテンプレート180とデータソース190との関連付け、更に各コンテナとデータソース190内の各データフィールドとの関連付けを行う。各コンテナとデータソース190内の各データフィールドとの関連付けを示す関連付け情報は、ドキュメントテンプレート内に記述され、該ドキュメントテンプレートは、HDD140に格納される。また、データソース190は、レコード単位で項目データが記載されているファイルであり、HDD140に格納されている。レイアウトエンジン105は、ユーザからの印刷指示もしくはプレビュー指示に応じて、ドキュメントテンプレートの各コンテナ181〜182に、関連付け情報で関連付けられたデータをデータソース190から読み込み、レコード単位で流し込み(例えば、データレコード1のデータフィールドA〜Cをコンテナ181〜183へ流し込む)、流し込まれたデータに応じて各コンテナのサイズ等を調整(レイアウト調整)する。プレビュー指示の場合は、レイアウト調整されたドキュメントイメージを生成し、ビデオディスプレイ144の画面上にプレビューとして表示するべく出力される。また印刷指示の場合は、レイアウトエンジン105もしくはプリンタドライバを用いて生成したドキュメントイメージを印刷データとしてプリントサーバ109へ出力する。データレコード1,2,3…を順次処理することにより、バリアブルデータプリントが実現されることになる。
ドキュメント生成のためのデータソース(190)は、例えば、データベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ117上の一般的なデータベース119であってもよい。この場合、ホストコンピュータ101はネットワーク107を介してデータベースサーバ117と通信し、データソースを取得できる。また、レイアウト編集アプリケーション121によって生成された、バリアブルデータプリントのためのドキュメントテンプレート(180)は、ホストコンピュータ101或いは他のコンピュータで構成されるファイルサーバ115に保存される。図1Cで上述したように、レイアウト編集アプリケーション121のレイアウトエンジン105は、データとマージされたドキュメントテンプレートによって構成されたバリアブルデータドキュメントを生成する。これらのドキュメントは、ホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバ115に保存されるか、あるいはプリンタ113に送信されて印刷される。プリントサーバ109はネットワークと直接にはつながっていないプリンタにネットワーク機能を提供するためのコンピュータである。プリントサーバ109とプリンタ113は一般的な通信チャネル111を介して接続される。
<他のシステム構成例>
図2は、図1Aと類似のブロック図であるが、エンジンサーバ227が追加されている。エンジンサーバ227に格納されているレイアウトエンジン225は、レイアウトエンジン105の分離バージョンである。エンジンサーバ227には一般的なコンピュータが用いられる。レイアウトエンジン225は、印刷やその他の目的に応じてバリアブルデータドキュメントを生成するために、ファイルサーバ115に保存されたドキュメントテンプレートとデータベース119に保存されたデータとを結合する。そのようなオペレーションはユーザインタフェース103を介して要求される。
<レイアウト編集アプリケーションの説明>
以下、レイアウト編集アプリケーション121について説明する。
[メインウインドウ]
ユーザインターフェース103は、操作時に図3に示されるようなアプリケーションウインドウ301によって形成されたユーザインターフェース画面をビデオディスプレイ144に表示させる。このウインドウ301は、メニューバー302、ツールバー303、ワークエリア306とオプションのパレット311を有する。メニューバー302とツールバー303は非表示にすることや、スクリーン上の色々な場所に移動することが可能である。また、ワークエリア306はマウス133の操作によってその場所を移動させることが可能である。また、パレット311はオプションであり、カーソル/ポインタデバイス313はマウス133が指し示す位置を表す。
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
ツールバー303は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能な多くのツールボタンとウィジット305を持つ。
ルーラー308はオプションであり、ワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。
パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示される、あるいはオブジェクトの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されることを制限される、あるいはアプリケーションウインドウ301の外側にその一部或いは全体を表示することを許される。
ツールバー303には図4に示されるような、ユーザ選択可能な『ボタン』が配置されている。
(1)選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック/ロック解除のために使われる。コンテナの選択は、コンテナの周りに選択ボックスをドラッグすることによりなされる。また、CTRLキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
(2)テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。
(3)イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。
レイアウト編集アプリケーション121の図3に示したアプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
[ドキュメントテンプレート]
図3において、ワークエリア306はドキュメントテンプレート(180:基本レイアウト)のデザインを表示・編集するために使われる。また、ドキュメントテンプレートを単にテンプレートということもある。これはユーザがドキュメントテンプレートをデザインする過程において、印刷されるドキュメントの概観をユーザに提示することを可能とする。これにより、ユーザは、データソース(190)とマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを容易に理解できる。
また、データソースがドキュメントテンプレートに関連付けられていた場合は、現在のドキュメントのプレビューができるように、対応するバリアブルテキストやイメージがレイアウトされた各コンテナに表示される。
ドキュメントテンプレートにおけるドキュメント構造とバリアブルデータコンテナの描写をする視覚的な手がかり(コンテナの枠線、アンカー、スライダー、リンク等)は、ドキュメントテンプレート作成時には常に表示され、バリアブルデータを流し込むプレビュー時には、視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときに表示される。
ワークエリア306はスクロールバー307とオプションのルーラー308とドキュメントテンプレート309を含む。ドキュメントテンプレート309はページが複数あることを示すことができる。また、ドキュメントテンプレート309は、図1Cのドキュメントテンプレート180を表示しているものである。
与えられたドキュメントテンプレートのページサイズは、周知の技術を用いて、ユーザによって指定される。例えばメニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。それぞれのドキュメントでの実際のページ数は、関連付けられたデータソース内のバリアブルデータによって変化する可能性が有る。これは、ドキュメントテンプレート内に可変表のようにバリアブルデータの量により大きさが変更されるフィールドが設定されている場合、1ページ内にバリアブルデータをフィットできないバリアブルデータが読み込まれると、追加のページが自動的に作成されるからである。
それぞれのページ内に示される境界線310は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージンである。
図4は1ページのドキュメントテンプレート309上に表示され得るオブジェクトの例を示す図である。このようなオブジェクトとしては、コンテナ407、408と、任意に適用するアンカーアイコン409、固定されている辺411、414、固定されていない辺410、リンク412そしてスライダー413を持つ。アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4の例では、アンカーアイコン409は、コンテナ407の左上の角に設定されているため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合に、右方向及び下方向に拡大可能であることを示している。アンカーアイコン409が辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。リンク412は詳細は後述するが、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンクに設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
[コンテナ]
ここで、コンテナについて説明する。コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変のテキスト/イメージが流し込まれ、描画されるスペース(これを部分領域またはデータ領域と呼ぶ)であり、図4に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナはマウス133の操作により移動、サイズ調整、再作成される。また、コンテナに流し込まれるデータをコンテンツまたはコンテンツデータとする。
より正確にはコンテナは、設定の集まり、視覚的表現、そしてインタラクションと編集動作をもっている。下記は本実施形態によるコンテナの定義である。
(1)コンテナは固定あるいは可変のコンテンツを持つ。可変コンテンツは、データソースから取得したデータがドキュメント毎、つまりレコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。ただし、本実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは印刷には適していないため、ここでは意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。しかしながら、可変コンテンツとリンクが設定されている場合、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメントで位置が異なる可能性がある。
(2)コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
(3)コンテナはドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツはデータソースからの特定のデータの表示を提供する。コンテナのこの表現は例えば印刷されるか、ビデオディスプレイ144のスクリーン上に表示されるか、その両方が可能である。
(4)コンテナは、図4に示されるように視覚的な手がかりとしてのユーザインターフェースを有している。例えばコンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース(GUI)を持つ。GUIの各要素はビデオディスプレイ144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインターフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、さらにコンテナの設定の編集や表示を可能にするための機能を有している。
[コンテナの制約]
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御に関する制約がある。これらの制約(固定/可変コンテンツをコンテナと結びつけることを含む)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントの世代をコントロールする主要な方法である。制約の一つの例は『このコンテナのコンテンツの高さは最大4インチです』である。また、別の制約の例は『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』である。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータ印刷に特化した方法における表示・編集に焦点を合わせる。
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ(描画サイズ)や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定(指定)や表示のために所定のユーザインターフェースが利用される。
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。したがって、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
(1)コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
(2)コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
(3)距離(リンクの長さ)が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
(4)コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。ただし、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となるが、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
(5)コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。ただし、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
(6)コンテナの垂直軸はコンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均(すなわち左右の中央位置)は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっともものまで、垂直軸は全てのドキュメントで同じ水平位置となる。なお、コンテナの高さと垂直位置はこの制約によって影響されない。
(7)同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。ただし、コンテナの幅と水平位置はこの制約によって影響されることはない。
(8)水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。ただし、コンテナの幅・高さはこの制約によって影響されない。
(9)コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレート180の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
[コンテナ表示・編集]
−−新規コンテナの作成方法−−
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナはテキストおよび埋め込みのイメージを持つ。イメージコンテナは、イメージだけを持つ。
図4で示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツール404あるいはイメージコンテナツール405をマウス133でクリックし、ドキュメントテンプレート309上に四角形をドラッグすることによって、当該ドキュメントテンプレート309上に作成される。
あるいは、コンテナは、適切なツール404、405をアクティブにした後に、ドキュメントテンプレート309上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス133のクリック操作に応じてデフォルトサイズのコンテナがテンプレート上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。また、コンテナのサイズは自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置される、等、種々の方法が考えられる。ここで生成されたコンテナをマウス等の入力手段により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログUI(部分領域設定手段に相当する)では、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ(幅、高さ)や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン(基準サイズと基準位置)を設定し、更に、最大コンテナサイズ(幅、高さ)と最小コンテナサイズ(幅、高さ)を設定することが可能となっている。なお、上述されているような手段を用いて設定されたコンテナのサイズがレイアウト設定時の基準サイズとなり、ここで設定されたコンテナに対してバリアブルデータ(コンテンツデータ)が流し込まれる。また、この基準サイズは流し込まれるコンテンツデータのサイズや関連するコンテナのサイズ変更に応じて基準サイズが変更されることもある。詳細は後述する。
[コンテナの表示方法]
図5の(A)から(D)はコンテナの辺に関する表示ルールを例示している。
アプリケーション121は、コンテナの辺の状態を表現するために、実線(アイテム503)あるいは点線(504)を用いて辺を表すとともに、アンカー(辺の近くに描画された506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために領域の辺上あるいは近傍に描画されたコントロール点、502)、スライダー(辺の両側に描画された短い並行線、図4の413)、拡縮アイコン(505)、色を用いる。
図5(A)〜(D)に示されるコンテナ表示方法のルールは以下の通りである。
(1)それぞれの辺を固定するために、実線で描画する。
(2)幅が固定の場合は、左と右の辺を実線で描画する。
(3)高さが固定の場合は、上と下の辺を実線で描画する。
(4)軸は描画しない。
(5)(1)〜(3)によって描画されていないそれぞれの辺の近くには拡縮アイコンが描画され、それらの辺を点線で描画する。
(6)垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
(7)それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
(8)垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
ルール(1)、(2)、(3)で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール(5)のように、可変の辺は、点線で描画される。ルール(6)、(7)、(8)で定義された固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
(1)図4の410の辺のように、点線はコンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
(2)実線は、固定されている(辺414)、あるいはコンテナの幅・高さが固定されている(コンテナ408では4辺が実線であり、両方が固定されている)ために制限された辺であることを意味する。
(3)アンカーは辺および軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図4のアイコン409は、辺414の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
(4)スライダーは関係付けられた辺の長さが固定されているが、並行移動する可能性があることを意味する。例えば、図4でスライダー413はコンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。例えば、コンテナ408と関連付けられている(リンク設定されている)コンテナ407に流し込まれるデータの画像サイズもしくはテキスト量が少ない場合は、コンテナ407のサイズが小さくなるため、コンテナ408は、左方向にスライド(平行移動)してレイアウトされて表示されることになる。また、コンテナ407のサイズが大きくなる場合は、逆にコンテナ408は右方向にスライドしてレイアウトされることになる。
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
なお、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
図5の(A)で、コンテナ501は、幅・高さの両方が固定されていない(可変である)。固定された辺503は実線で表現され、可変の辺504は点線で表現されている。拡縮アイコン505は、隣接する辺504が可変であることを示す。他の形態のインジケータを代わりにあるいは追加的に用いてもよい。
図5の(B)において、コンテナ501は幅・高さ両方が可変である。アンカーアイコン506が、交差している両方の辺503の角の位置が固定されていることを明示的に表すべく追加されている。
図5の(C)において、コンテナ501は、コンテナの幅及び高さの両方が可変であり、任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態を示している。すなわち、コンテナ501はアンカーアイコン507を中心に拡大あるいは縮小が可能である。ここでの拡大/縮小は、アンカーアイコン507の位置が常にコンテナ501の中心点となるようにレイアウト調整される。
図5の(D)において、コンテナ501は、上辺508が固定されているが、幅・高さの両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている。そしてコンテナ501の左辺・右辺(502)は、アンカーアイコン509を通って垂直な中心軸(垂直軸)の周りを、拡大・縮小する。
[リンク]
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。なお、ここでいう互いのレイアウト変更の影響とは流し込まれたコンテンツデータによって、コンテナの基準サイズが変更したことにより生じるコンテナ間の押し合い(後述する「押す力」または「引く力」)のことを指す。図4の412で示されているものがリンクであり、図4ではコンテナ407と408とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
[リンクの設定方法]
次に、コンテナ同士を関連付けるためのリンクの設定について説明する。図6はリンクの設定方法を示したフローチャートである。また図7の(A)〜(C)はリンク設定時のユーザインターフェース(UI)の遷移例を示している。図6,図7を用いてコンテナにリンクを設定する方法について説明する。
まず、ステップS601において、レイアウト編集アプリケーション121は、ユーザインターフェース画面のワークエリア306上に編集すべく選択されたドキュメントテンプレートを表示する。リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)がドキュメントテンプレート上に作成されている必要がある。図7の(A)〜(C)では、ステップS601で2つのコンテナを作成してリンクを設定する場合のユーザインターフェースの遷移例を示している。
次に、ステップS602において、レイアウト編集アプリケーション121は、前述したリンクツールが選択状態(図4のボタン406をクリックすることにより選択状態となる)になったかを判断する。リンクツールが選択上体でなければ、必要に応じて他の各種処理を実行し(ステップS609)、ステップS602に戻る。
図7の(A)において、コンテナ701と702はすべて固定されている辺で構成されているものとする。また、703と704は、図4の409と同じであり、アンカーを意味する。705はマウスポインタを意味している。さて、リンクツールが選択状態となっている間に、ユーザはリンクを設定する2つのコンテナのうちの一方(コンテナ701とする)をクリックして選択する。この操作に応じて、レイアウト編集アプリケーション121のユーザインターフェース103は第1のコンテナが指定されたことを認識し(ステップS603)、選択されたコンテナを特定する情報を保持する。また、以降のマウスカーソルの移動に応じた軌跡を画面に表示するようにする(ステップS604)。例えば、図7の(B)における線分706は、(A)の状態におけるクリック位置と現在のマウスカーソルの位置とを結んだ線を示しており、このUIによりどの位置にリンクが設定されるのかをユーザに明示することができる。
次に、ユーザは、図7の(B)で示されるように、もう一方のコンテナ(コンテナ702)までマウスポインタを移動してクリックする。この操作に応じて、ユーザインターフェース103は第2のコンテナが指定されたことを認識し(ステップS605)、レイアウト編集アプリケーション121は、ステップS604で保持した第1のコンテナと、ステップS605で指定が認識された第2のコンテナとの間にリンクを設定する(ステップS606)。
こうして、ユーザにより選択された2つのコンテナ701,702の間にリンクが設定されると、リンクUI707が表示される(ステップS607)。更に、このリンク設定を受けて、コンテナの表示状態は図7の(C)の状態になる(ステップS608)。すなわち、リンクが設定されたことにより、コンテナのUIが自動的に変更される。ここでは、リンクによって関連付けられた辺が可変となり、点線で示される。図7の(C)において、708は点線で示されている辺であり、前述した通り可変の辺を示すものである。
なお、図7の(C)のようなコンテナの辺の状態の変化は、リンクを設定したことによりコンテナの辺を可変にする必要が生じたことにより自動的に実行されたものであり、リンクを設定したにもかかわらず全ての辺が固定であるという矛盾の発生を防ぐことを目的としている。また、709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したマークである。また、図7の(C)の例では、左のコンテナの右辺と右のコンテナの左辺が可変な状態へ変化したが、これは一例であり、たとえば、右コンテナが図4の413で示したスライダーを持つ設定に変化してもかまわない。
<レイアウトエンジンによるレイアウト計算処理>
[レイアウト計算方法(全体フロー)]
本実施形態のレイアウト編集アプリケーションは、ユーザインターフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行ってレイアウトを作成するレイアウトモードと、レイアウトエンジン105により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが挿入され、前述した優先順位に従ってレイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン105が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。
図8はレイアウト計算のフローを示している。まず、プレビューモードが選択される(ステップS801)。プレビューモードになったら、レイアウト編集アプリケーション121は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各フィールドデータを各コンテナに挿入するよう決定する(ステップS802)。各コンテナへのフィールドデータの挿入が決定されると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするための計算を行い、必要に応じてレイアウト調整を行う(ステップS803)。ステップS803におけるレイアウト計算の詳細については後述する。そして、レイアウト編集アプリケーション121は、ステップS803で計算されたレイアウトを表示する(ステップS804)。レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判断する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(ステップS807)。他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
なお、プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。ステップS803でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷すべく指定された全レコード)について印刷データの出力が終了した時点で本処理を終了することになる。
[レイアウト計算方法(詳細)]
次に、上記ステップS803によるレイアウト計算の詳細について説明する。図9は本実施形態によるレイアウトの優先順位を設定しない場合のレイアウト計算の方法を示したフローチャートである。また、図10はそのときのUI表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの1レコードの印刷/プレビュー時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。なお、これらの処理はホストコンピュータ101内のプロセッサ135が制御することによって実現される。
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を求める(ステップS901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナA、Bが集合1、コンテナC、Dが集合2となる。すなわち、リンクによって接続されたコンテナ群を一つの集合として特定する。前述したように、1101はアンカー、1102は固定された辺、1103はコントローラー、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして1107はスライダーを示している。
次に、レイアウト編集アプリケーション121は、ステップS901で求めたコンテナの集合から、レイアウトを計算するために一つを選択する(ステップS902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナ(A,B)について、流し込まれるコンテンツデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。
具体的には、レイアウト編集アプリケーション121は、コンテナAが画像データ用コンテナであるか、テキスト用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込み、コンテナAが画像データ用コンテナである場合は、その画像データのサイズ(幅、高さのピクセル数、および解像度)がコンテナAの制約を受けない場合の大きさになる。また、コンテナAがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナAに流し込まれるべきデータ量が計算できる。レイアウト編集アプリケーション121はデータベースにあるコンテンツデータおよび関連付けられているコンテナの属性を認識することができる。さらに、上述した計算によってコンテンツデータのサイズを算出することで、コンテナの基準サイズと異なるか否かを判断することができる。また、コンテンツデータのサイズとコンテナの基準サイズが異なる場合は、その大小関係も判断することができる。
ここで、テキスト用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。図11の例では、コンテナAは、左上および左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判断する。すべて流し込めると判断された場合は、コンテナAは、基本パターンで設定されている基準サイズ(幅、高さ)に変更はない。また、すべて流し込めないと判断された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップS903)。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウト編集アプリケーション121は、ステップS902で算出したコンテナの集合のサイズ、つまりコンテナAとコンテナBとリンク1106(ここでは固定リンク)の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図11の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を求める。コンテナAやコンテナBの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
レイアウト編集アプリケーション121は、レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする(ステップS904)。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、ステップS902〜S904の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション121は、ページ全体のレイアウトを計算する(ステップS905)。
図10の(A)〜(C)は優先順位の設定なしでのレイアウト時のUI例である。
図10の(A)は、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。図10の(B)は(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツサイズを表している。そして、レイアウト計算が行われる。図10の(C)はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図10の(C)で示されるように、(B)で示した挿入されるコンテンツサイズ(1009)と計算後のコンテンツサイズ(1010)は、双方において同等な差異がある。
[長さが可変のリンクの設定]
図12では可変リンクの設定のためのユーザインターフェースを表している。図4と同様にアプリケーションウインドウ301とツールバー303がある。図12の状態では、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナはアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206を含んで構成されている。コンテナ1203と1204の間には可変サイズのリンク1209があり、コンテナ1203とコンテナ1204を結んでいる。コンテナ1203とコンテナ1204の間にはリンクが設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため各コンテナにインジケーター1210、インジケーター1211が表示され、それぞれ辺1207と辺1208が可変であることを示している。
また、図14は、リンク設定手段におけるユーザインタフェース画面であり、リンク1209の情報をセットするためのダイアログウインドウ1401の例である。このダイアログは、タイトルバー1402、ツールボタン1403、ダイアログウインドウの開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。このダイアログウインドウではリンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行える。リンクタイプが可変の場合にはリンクの長さの最小値(Min.Distance1410)、最大値(Max.Distance1412)、ならびに基準値(Distance1411)が設定できる。図14のダイアログ1401は、たとえば、図6,図7で説明したリンクの設定操作によって2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで各コンテナ間の距離の基準値1411は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
図13は、本実施形態のユーザインターフェース103による可変リンクの設定手順を説明するフローチャートである。例えば図11のコンテナAとコンテナBの間に図6、図7で説明した手順でリンクを張ると、まず固定サイズのリンクが張られる。そして、このリンクを選択して図13に示す処理を実行することにより、当該リンクを固定サイズのリンク1106(図11)の状態から可変サイズのリンク1209(図12)へと遷移させることができる。なお、これらの処理はホストコンピュータ101内のプロセッサ135が制御することによって実現される。
まず、マウスにより所望のリンク(たとえばリンク1106)を選択状態とし、リンクプロパティを表示させるための所定の操作が行われると、レイアウト編集アプリケーション121のユーザインターフェース103は、リンクプロパティの表示指示の入力として認識する(ステップS1301)。リンクプロパティの表示指示を認識すると、選択状態のリンク(以下、対象リンクという)に対応したプロパティダイアログウインドウ1401(図14)が表示される。次に、ユーザインタフェース103は、リンクプロパティを表示する(ステップS1302)。なお、リンクの選択操作としては、コンテナの基本パターンの設定時と同様に、マウスの右クリックあるいはキーボードの特定のキーの操作等、いかなるものであってもよい。
ステップS1302で表示されるダイアログウインドウ1401には選択されたリンクの現在の状態が示される。本例では、リンク1106が選択されたので、この段階ではリンクサイズは固定であり、Link Type1405においては、固定長を示すFixed Length1406が選択されている。
このダイアログウインドウ1401においてリンクを固定サイズから可変サイズに変更するために、Link Type1405においてリンクサイズを可変に設定するためのFlexible Length1407を選択する。これによりLink Distance1408内に配置されているMax. Distance1412、Min. Distance1410、Distance1411が有効になり、数値の設定が可能となる。ユーザは、リンクの可変サイズを設定するために、そのリンクの長さの最大値をMax. Distance1412に、最小値をMin. Distance1410に、現在の値をDistance1411に設定することになる。
設定を終えると、ユーザは一般的なダイアログウインドウ開閉ボタン1404によって当該設定の適用を指示する。ユーザインターフェース103はこの指示を検出すると、ステップS1303からステップS1304以降へ処理を進め、当該対象リンクに上記設定状態を反映させる。
すなわち、まず、ステップS1304において、レイアウト編集アプリケーション121は、対象リンクが固定サイズか可変サイズかを判定する。固定サイズが指定されていればステップS1308へ進み、対象リンクを「固定サイズ」に設定し、ステップS1307で対象リンクの表示状態を「固定リンク」を表す「実線」とする。
一方、ステップS1304において、可変サイズが指定されていれば、ステップS1305へ進み、レイアウト編集アプリケーション121は、対象リンクを「可変サイズ」に設定する。そして、ステップS1306にて、上記ダイアログウインドウ1401によって設定された対象リンクの現在値(基準値)、最大値、最小値を登録する。その後、ステップS1307で対象リンクの表示状態を「可変リンク」を表す「点線」とする。この結果、図12のリンク1209に示すような状態にリンクのUI表示が変化する(ステップS1306)。以上のダイアログウインドウ701の設定情報はメモリに格納される。
なお、Distance1411に設定される現在の値には、現在のレイアウトとして配置されているコンテナの間の距離がデフォルト値として自動的に入力されるようにしてもよい。
図15は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述したとおりに従って行われる。例えば図12においてコンテナ1203とコンテナ1204にそれぞれ違ったサイズのイメージデータが挿入された場合を考える。この場合、それぞれのコンテナはデータの大きさを最適とみなし、コンテナ1203は挿入されたイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へ、同様にコンテナ1204は挿入されたイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へサイズを変更しようとする。しかしコンテナ1203とコンテナ1204はアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213の移動ができず、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ間には固定サイズのリンク1503が設定されており、レイアウト計算時にその長さ維持されるため、コンテナ1203とコンテナ1204のサイズが変更されることになる。
その結果、コンテナ1203とコンテナ1204はデータの縦横比に合わせた最適なサイズを確保することが出来ず、最終的に図15に示すように、最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。すなわちリンク1503のサイズが固定であるためコンテナ1501とコンテナ1502は最適サイズを達成できない(図15において、各コンテナ内の一点差線で示した範囲がデータの持つ縦横比である)。
一方、図16は図15と同様の状態でリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ1203とコンテナ1204の間には図示の通り可変サイズのリンクが設定されている。したがって、コンテナ1203とコンテナ1204のサイズが変更される際には、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズを図15の例より大きくすることができる。この結果、挿入されるデータサイズに合わせた最適なサイズを達成できる、あるいはより挿入データサイズ(最適サイズ)に近いコンテナの枠を設定することが出来る。図16はこの結果を示しており、可変リンク1209はレイアウト計算の結果、可変リンク1603に示されるようなサイズ状態となる。なお、この場合コンテナ1203とコンテナ1204はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。
[ベーシックサイズ優先のレイアウト方法]
図17は本実施形態によるベーシックサイズ優先のレイアウト方法を説明する図である。なお、ベーシックサイズとは、コンテナの作成時(レイアウト設計時)において設定された基準サイズのことである。
図17(A)は、コンテナに何もコンテンツが挿入されていないときの状態を示している。このときのコンテナ1701のサイズはレイアウト設計時のものであり、ベーシックサイズを表している。矩形1701はコンテナを表しており、上辺・左辺・下辺が固定、そして右辺が可変に設定されている。表示上、辺の状態を区別するために上辺・左辺・下辺は実線、右辺は点線にして示している。
図17(B)はコンテナ1701にテキストのコンテンツが流し込まれ、コンテナ1702となった状態を示している。コンテナ1702によって示されるように、コンテンツであるテキストは、コンテナの左上から右下方向へフローしている。このケースではコンテナ1702に挿入されたコンテンツサイズはコンテナ1702のサイズよりも小さい。本実施形態によるベーシックサイズ優先のレイアウト方法では、このような場合には、ベーシックサイズを優先させるためにコンテナのサイズを変化させない。なお、(B)において、1703はコンテナ1702の右辺がコンテンツサイズの合わせて移動する動きがないことを示している。
図17(C)はコンテナ1701に図17(B)の場合とは異なるテキストのコンテンツが流し込まれたときの別の例を示している。流し込まれたテキストは、コンテナの左上から右下方向へフローしている。このケースではコンテナ1704に挿入されたコンテンツサイズはコンテナ1704のサイズよりも大きい。よって図17(C)では、テキストがコンテナ1704から溢れ出ている(オーバーフロー)ことを示している。この場合、コンテンツを全て表示させるためにコンテナ1704のサイズを変化させることが望まれる。
図17(D)は図17(C)からレイアウト処理が行われた状態を示している。コンテナ1705は、図17(C)のコンテナ1704のサイズが変化した後の状態を示している。コンテナ1705の右辺は可変に設定されているため、コンテナは右に大きくなることが出来、矢印1706はコンテナ1705が右方向に大きくなろうとしている状態を示している。コンテナに挿入されたコンテンツを全て表示しようとした結果、コンテナ1704は最終的にコンテナ1705の大きさとなり、結果的にコンテナ1705に挿入したコンテンツを全て表示することが出来る。なお、1707はコンテナ1705の右辺の元の位置(ベーシックサイズにおける位置)を示している。これは、図17(C)のコンテナ1704の右辺と同じ位置である。レイアウト計算後のコンテナ1705の右辺が1707の位置よりも右側にあるため、コンテナサイズが大きくなったことが分かる。
図17(E)はコンテナにテキストのコンテンツが入ってきたときの別の例を示している。この例ではコンテンツが挿入されるだけでなく、外部の要素から何らかの影響がある場合を示している。外部の要素の典型的な例はコンテナである。図17(E)では、コンテナ1708は外部要素の影響1709を受けている状態が示されている。また、コンテナ1708にはテキストのコンテンツが流し込まれており、そのテキストはコンテナの左上から右下方向へフローしている。このケースではコンテナ1708に挿入されたコンテンツサイズはコンテナ1708のサイズよりも小さい。従って、図17(B)で説明したように、コンテンツサイズによるコンテナ1708のサイズの変化は生じない。しかしながら、この場合は外部要素から何らかの影響1709をコンテナの右辺に受けているため、コンテナサイズを変化させ、レイアウトすることが望まれる。
図17(F)は図17(E)の状態からレイアウト処理が行われる直前の状態を示している。ここでは外部要素1711がコンテナ1710を押してきた場合の動作について述べる。レイアウト処理前であるのでコンテナ1710は図17(E)のコンテナ1708のサイズと同様である。外部要素1711がコンテナ1710を押してくると、コンテナ1710はサイズを保つことなく、外部要素1711との間でレイアウト計算を行う。矢印1713は外部要素1711がコンテナ1710を押す方向を示している。また矢印1712はコンテナ1710が外部要素1711によって押されることで、外部要素1711とレイアウト計算を行うことを示している。1714はコンテナ1710と外部要素1711のレイアウト上での衝突状態を示している。なお、図17(E)にある矢印1709のような外部要素からの押すための力を「押す力」として以降記述する。
以上のようにベーシックサイズ優先のレイアウト方法は、以下の3点の規則に則ってレイアウト処理が制御される。
1.コンテナサイズよりも小さいコンテンツが挿入された時、かつ外部要素からの影響がないときは、コンテナサイズを変化させない。
2.コンテナサイズよりも大きいコンテンツが挿入された時は、自らコンテナサイズを変化させようとする。
3.コンテンツサイズに関わらず、外部要素から影響を受ける場合は、外部要素とのレイアウト計算を行う。なお、ここでいう影響とは上述したように外部要素からの押す力または図19で後述する引く力を指す。
このベーシックサイズ優先のレイアウト属性をコンテナごとに設定できるようにすることで、ユーザが予め設定したコンテナの基準サイズを反映したレイアウト処理を行うことが可能となる。
[コンテンツサイズ優先のレイアウト方法]
図27はコンテンツサイズ優先のレイアウト方法を説明している図である。
図27(A)はコンテナ2701にテキストコンテンツが流し込まれた状態の一例を示している。コンテナの状態については図17(A)と同じく、コンテナの右辺のみが可変に設定されている。また、コンテナ2701においてテキストコンテンツはコンテナ2701の左上から右下方向へフローしている。このケースではコンテナ2701に挿入されたコンテンツサイズはコンテナ2701のサイズよりも小さい。しかしコンテンツサイズ優先のレイアウト方法では、コンテンツサイズを優先させるので、コンテンツの大きさに合わせてコンテナサイズを変化させる。
図27(B)は図27(A)の状態からコンテンツサイズ優先によるレイアウト処理が行われた状態を示している。コンテナ2702は図27(A)のコンテナ2701のサイズが変化した後の大きさを示している。コンテナ2702の右辺が可変に設定されているため、コンテナは右辺が移動することによってコンテナサイズを小さくなることが出来る。矢印2703はコンテナ2702が左方向に小さくなろうとしている状態を示している。コンテナ2702に挿入されたコンテンツに合わせ、コンテナのサイズを小さくしようとした結果、コンテナ2701は最終的にコンテナ2702の大きさとなり、結果的にコンテナ2702に挿入したコンテンツに合わせたコンテナサイズにすることが出来る。なお、2704はコンテナ2702の右辺の元(ベーシック)サイズ位置を示している。これは図27(A)のコンテナ2701の右辺と同じ位置である。レイアウト計算後のコンテナ2702の右辺が2704の位置よりも左側にあるため、コンテナサイズが小さくなったことが分かる。
図27(C)はコンテナ2705にテキストコンテンツが流し込まれた状態の別の例を示している。コンテナ2705にテキストコンテンツが流し込まれ、テキストはコンテナの左上から右下方向へフローしている。このケースではコンテナ2705に挿入されたコンテンツサイズはコンテナ2705のサイズよりも大きい。よって図27(C)ではテキストがコンテナ2705から溢れ出ている(オーバーフロー)ことを示している。この場合では、コンテンツを全て表示させたいため、コンテナ2705のサイズを変化させることが望まれる。
図27(D)は図27(C)からレイアウト処理が行われた状態を示している。コンテナ2706は図27(C)のコンテナ2705のサイズが変化した後の大きさを示している。コンテナ2706の右辺は可変に設定されているため、コンテナは右に大きくなることが出来る。矢印2707はコンテナ2706が右方向に大きくなろうとしている状態を示している。コンテナ2706に挿入されたコンテンツを全て表示しようとした結果、コンテナ2705は最終的にコンテナ2706の大きさとなり、結果的にコンテナ2706に流し込まれたコンテンツを全て表示することが出来る。なお、2708はコンテナ2706の右辺の元(ベーシック)サイズ位置を示している。これは図27(C)のコンテナ2705の右辺と同じ位置である。レイアウト計算後のコンテナ2706の右辺が2708の位置よりも右側にあるため、コンテナサイズが大きくなったことが分かる。以上、図27(C),(D)で説明したレイアウト処理は図17(C),(D)のレイアウト処理と結果が同じになる。
図27(E)はコンテナ2709にテキストコンテンツが流し込まれた状態の別の例を示している。この例ではコンテンツが流し込まれるだけでなく、外部の要素から何らかの影響がある場合が示されており、コンテナ2709は外部要素の影響である押す力2710を受けている。また、コンテナ2709にはテキストコンテンツが流し込まれ、そのテキストはコンテナの左上から右下方向へフローしている。このケースではコンテナ2709に挿入されたコンテンツサイズはコンテナ2709のサイズと全く等しい。従って、通常はコンテナ2709のサイズは既に理想のサイズとなっているために変化しない。しかしながら、図27(E)の場合では、外部要素から何らかの影響(押す力)2710をコンテナの右辺に受けているため、コンテナサイズを変化させ、レイアウトすることが望まれる。
図27(F)は図27(E)からレイアウト処理が行われる直前の状態を示している。ここでは外部要素2712がコンテナ2711を押してきた場合の動作について述べる。レイアウト処理前であるのでコンテナ2711は図27(E)のコンテナ2709のサイズと同様である。外部要素2712がコンテナ2711を押してくると、コンテナ2711はサイズを保つことなく、外部要素2712との間でレイアウト計算を行う。矢印2714は外部要素2712がコンテナ2711を押す方向を示している。また矢印2713はコンテナ2711が外部要素2712によって押されることで、外部要素2712とレイアウト計算を行うことを示している。2715はコンテナ2711と外部要素2712のレイアウト上での衝突状態を示している。
以上のようにコンテンツサイズ優先のレイアウト方法は、以下の2点の規則に則ってレイアウト処理が制御される。すなわち、
1.コンテナサイズの大きさ如何に関わらず、コンテナは常にコンテンツサイズの大きさになろうと、サイズを変化させようとする。
2.挿入されたコンテンツサイズがコンテナサイズと全く同じで、コンテナサイズを変化させる必要がないにも関わらず、外部要素からの影響がある場合は、外部要素とのレイアウト計算を行う。なお、ここでいう影響も前述した通り押す力または引く力を指す。
このようにコンテンツサイズ優先のレイアウト属性をコンテナごとに設定できるようにすることで、コンテナは流し込まれるコンテンツサイズに基づいてサイズ変更が行われるのでコンテンツの実サイズを反映したレイアウトを作成することが可能となる。
[ベーシックサイズ優先とコンテンツサイズ優先のコンテナへの設定]
上述したベーシックサイズ優先のレイアウト方法にするか、コンテンツサイズ優先のレイアウト方法にするか、はコンテナ毎に設定することが可能である。
図26はコンテナのプロパティを設定するユーザインターフェース(UI)ダイアログの一例を示す図である。プロパティダイアログウィンドウは、例えばキーボード132やマウス133によりコンテナを選択し、マウスの右クリックメニューの選択、あるいはキーボードからのAltキー等により表示させることができる。本実施形態ではコンテナのエッジを可変にするかどうか、そしてどのレイアウト方法を適用するか、またはそれに伴う設定に関してプロパティダイアログウィンドウ内に表示している。
このプロパティダイアログウィンドウ2601は、タイトルバー2602、ツールボタン2603、プロパティダイアログウィンドウのオープン、クローズを行うボタン2604、各種の情報をセットするエリア2651で構成されている。このプロパティダイアログウィンドウ2601には、コンテナサイズを可変にするかを設定するための選択オプション2612〜2615を含むEdge Status(2611)がある。この選択オプションをONにすると、Container Size(2621)内のBasic Sizeの指定ボックス(2625、2629)と、単位系の指定ボックス(2627、2631)以外がEnableされる。Basic Sizeの指定ボックス(2625、2629)と、単位系の指定ボックス(2627、2631)はコンテナの基準サイズを示しているため、常にEnableになっている。この例の場合、Edge Status2611においてRight(右辺)2614のみFlexible(可変)にチェックが入っているため、このコンテナは横方向(実際は右方向)にしかサイズを変化させることが出来ない。そのため、Container Size2621において、幅サイズの項目2624と2626がEnableとなり、高さサイズの項目2628と2630はDisableのままとなっている。
図形2622はコンテナの幅サイズの指定、図形2623はコンテナの高さサイズの指定を視覚的に補助するビットマップである。ボックス2624(Min. Size)にはコンテナの幅の最小値が設定される。現在ここには値80が設定されている。ボックス2625(Basic Size)にはコンテナの基本幅が表示されている。ボックス2626(Max. Size)にはコンテナの幅の最大値が設定される。現在ここには値120が設定されている。同様に2628はコンテナの高さの最小値、2629はコンテナの基本幅、2630はコンテナの高さの最大値が設定されることがある。リストボックス2627とリストボックス2631ではコンテナサイズの単位が設定される。ここでは単位の例としてmmが表示されているが、inchやpixel等も考えられる。このプロパティダイアログウィンドウ2601には上記の他に、ベーシックサイズとコンテンツサイズのどちらを優先してレイアウトの計算を進めるかの選択ボタン2642、2643を有する(Layout Method2642)。これらの2つの選択ボタンは、コンテナサイズが可変に設定されていない場合は、計算方法の優先を設定する必要がない。よって、Layout Method2642は、上述のEdge Status2611で選択オプション2612〜2615のいずれかがチェックされている場合にEnableとなる。ここでは選択ボタン2642(Prioritize Basic Size)が選択されているため、このコンテナに対してベーシックサイズを優先したレイアウト計算が行われることになる。
2641のようにベーシックサイズを優先したレイアウト計算を行うか、またはコンテンツサイズを優先したレイアウト計算を行うかの設定を各コンテナに対して行えるようにすることで、予めデザインしたドキュメントテンプレートを生かしたレイアウト処理をするのか、それとも流し込まれるコンテンツサイズを反映したレイアウト処理をするのかといったユーザの意図を考慮したレイアウト処理を実現することができる。
図24は図26で説明したUIプロパティダイアログによる設定処理を示すフローチャートである。なお、これらの処理はホストコンピュータ101内のプロセッサ135が制御することによって実現される。不図示のレイアウト編集画面上でコンテナが選択され、例えばマウスの右クリックによるメニュー選択によりUIプロパティダイアログの表示が指示されると、当該コンテナのUIプロパティダイアログ(図26)を表示する(ステップS2402、ステップS2403)。ステップS2404〜S2406は、UIプロパティダイアログにおける操作制限の制御である。まず、コンテナエッジを可変に設定されているかどうかをEdge Status2611内の各辺の項目に対して判断し(ステップS2404)、少なくとも一つのエッジが可変に設定されている場合には、可変に設定されたエッジに応じてコンテナサイズの最大値・最小値のボックス(2624,2626,2628,2630)をEnableにする(ステップS2405)。また同時にレイアウト方法の選択項目もEnableにする(ステップS2406)。
UIプロパティダイアログのOKボタンにより設定の実行が指示されると当該プロパティダイアログを閉じ、設定内容を対応するコンテナに適用する(ステップS2407、S2408)。一方、キャンセルボタンによりキャンセルが指示されると設定内容を破棄し、当該プロパティダイアログを閉じる(S2409、S2410)。
[コンテナに対する処理]
図23A,Bはある1つのコンテナに注目し、設定されたレイアウト方法によってそのコンテナがどう動作するのかを示すフローチャートである。なお、これらの処理はホストコンピュータ101内のプロセッサ135が制御することによって実現される。
図23Aにおいて、まずデータベースなどからデータをコンテナに流し込む(ステップS2302)。そしてそのコンテナに設定されているレイアウト方法がベーシックサイズ優先なのかコンテンツサイズ優先なのかを判断し(ステップS2303)、もしコンテンツサイズ優先であったならばネゴシエーション処理を行う(ステップS2304)。ここで言うネゴシエーション処理とは、前述の図8、または図9において説明をしたレイアウト計算のことである。そしてその後、レイアウト結果を表示して(ステップS2306)終了する。
一方、ステップS2303において、コンテナに設定されているレイアウト方法がベーシックサイズ優先であったならば、ベーシックサイズ処理を行い(ステップS2305)、レイアウト結果を表示する(ステップS2306)。ベーシックサイズ処理では、図23Bのフローチャートで示された処理に従ってレイアウト計算が行われる。
ベーシックサイズ処理ではまず、そのコンテナに流し込まれたデータ(コンテンツ)がコンテナサイズと等しい或いはそれよりも小さいかどうかを判断する(ステップS2312)。すなわち、流し込まれたデータに対応する表示が当該コンテナからあふれる(オーバーフロー)かどうかをチェックし、あふれない場合に「コンテンツサイズがコンテナサイズと等しい或いはそれよりも小さい」と判定する。「コンテンツサイズがコンテナサイズと等しい或いはそれよりも小さい」場合には、他の関連付けされているコンテナから押される(押す力)、あるいは引っ張られる(引く力)といった影響があるかどうかを判断する(ステップS2313)。もし影響がない場合はそのまま何もレイアウト処理を行わず、つまりコンテナサイズを変化させず、ステップS2306でそのままレイアウト結果として表示させるべく、図23Bの処理を終了する。
ステップS2312においてコンテンツサイズがコンテナサイズより大きい場合はネゴシエーション処理を行って(ステップS2314)本処理を終了することにより、そのネゴシエーション結果をレイアウト結果として表示させる(ステップS2306)。また、ステップS2313において他のコンテナからの影響(押す力または引く力)があると判定された場合は、そのコンテナと関連するコンテナとネゴシエーション処理を行って(ステップS2314)本処理を終了することにより、そのネゴシエーション結果をレイアウト結果として表示させる(ステップS2306)。なお、S2314で行うネゴシエーション処理は前述の図8、または図9において説明をしたレイアウト計算のことである。
[ベーシックサイズ優先とコンテンツサイズ優先のコンテナが関連づけられた場合のレイアウト処理の例]
図18〜図20はベーシックサイズ優先のレイアウト方法を適用したコンテナとコンテナサイズ優先のレイアウト方法を適用したコンテナが、関連付けられている場合において、それらがどのようにレイアウト処理されるのかを示した図である。
図18(A)ではコンテナ1801と1802が配置され、コンテンツが挿入された状態を示している。コンテナ1801とコンテナ1802はリンク1803で関連付けられている。そしてコンテナ1801にはベーシックサイズ優先のレイアウト方法、コンテナ1802にはコンテンツサイズ優先のレイアウト方法が設定されている。コンテナ1801は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ1802は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。コンテナ1801とコンテナ1802にテキストコンテンツが流し込まれ、そのテキストはコンテナの左上から右下方向へフローしている。
コンテナ1801ではコンテナ1801に挿入されたコンテンツサイズはコンテナ1801のサイズよりも小さい。よってベーシックサイズ優先のレイアウト方法では、まずベーシックサイズ(コンテナの基準サイズ:コンテナ作成時に決定されたサイズ)を優先させるため、コンテナ1801は自身のコンテンツサイズによる変化は生じない。一方、コンテナ1802では、挿入されたコンテンツサイズがコンテナ1802のサイズよりも大きい。図18(A)ではそのような状態をテキストがコンテナ1802から溢れ出ていることで示している。コンテンツサイズ優先のレイアウト方法では、まずコンテンツサイズ(データベース等から挿入されるデータサイズ)を優先させるため、コンテンツを全て表示させるためにコンテナ1802のサイズを変化させる。
図18(B)は図18(A)からレイアウト処理が行われた状態を示している。コンテナ1805はレイアウト処理によって図18(A)のコンテナ1801のサイズが変化したものである。またコンテナ1806はレイアウト処理によって図18(A)のコンテナ1802のサイズが変化したものである。コンテナ1801はベーシックサイズ優先のレイアウト方法が設定されているが、コンテナ1802がコンテンツサイズに合わせるためにコンテナ1801を押してくるため、コンテナ1801はコンテナ1802から影響(押す力)1804を受けることとなる。このため、コンテナ1801とコンテナ1802に間ではネゴシエーション処理が実行され、レイアウトが計算される。図18(B)ではコンテナ1801がコンテナ1805のサイズに変化し、コンテナ1802はコンテナ1806のサイズに拡大している。1809はコンテナ1806の左辺の元(ベーシック)サイズ位置を示している。これは図18(A)のコンテナ1802の左辺と同じ位置である。レイアウト計算後のコンテナ1806の左辺が1809の位置よりも左側にあるため、コンテナサイズが大きくなったことが分かる。またその分コンテナ1805の大きさは小さくなっている。
図19(A)では、コンテナ1901,1902が配置され、テキストコンテンツが挿入された状態が示されている。コンテナ1901とコンテナ1902はリンク1903で関連付けられている。また、コンテナ1901にはベーシックサイズ優先のレイアウト方法が、コンテナ1902にはコンテンツサイズ優先のレイアウト方法が設定されている。コンテナ1901は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ1902は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。
コンテナ1901とコンテナ1902にテキストコンテンツが流し込まれ、そのテキストはコンテナの左上から右下方向へフローしている。コンテナ1901に流し込まれたテキストコンテンツのコンテンツサイズはコンテナ1901のサイズよりも小さく、上述したようにベーシックサイズ優先が設定されているコンテナ1901ではコンテンツサイズに起因したコンテナサイズの変化は生じない。一方、コンテナ1902に流し込まれたテキストコンテンツのサイズもコンテナ1902のサイズより小さい。しかしながら、コンテンツサイズ優先のレイアウト方法では、コンテンツサイズに合わせるためにコンテナ1902のサイズを変化させる処理が実行されるため、1904に示した矢印のような引く力が発生する。
図19(B)は図19(A)からレイアウト処理が行われた後の状態を示している。コンテナ1905は図19(A)のコンテナ1901に対応している。またコンテナ1906は図19(A)のコンテナ1902に対応している。コンテナ1902がコンテンツサイズに合わせるためにコンテナ1901を引っ張ってくるため、コンテナ1901はコンテナ1902から引く力1904を受けることとなる。このため、コンテナ1901にはベーシックサイズ優先のレイアウト方法が設定されていることにより通常はコンテナサイズの変更は行われないが、この場合コンテナ1902のサイズをコンテンツサイズにあわせるためサイズの変更処理が行われコンテナ1906の状態となり、その際に生じる引く力1904によってコンテナ1901はコンテナ1905のサイズとなる。このように、上述の押す力のみだけでなく引く力によってもベーシックサイズは変更されることとなる。
図20(A)ではコンテナ2001とコンテナ2002があり、それらはリンク2003で関連付けられている。コンテナ2001にはベーシックサイズ優先のレイアウト方法、コンテナ2002にはコンテンツサイズ優先のレイアウト方法が設定されている。また、コンテナ2001は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ2002は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。また、コンテナ2001とコンテナ2002にはテキストコンテンツが流し込まれており、テキストはコンテナの左上から右下方向へフローしている。コンテナ2001ではコンテナ2001に挿入されたテキストコンテンツのサイズはコンテナ2001のサイズよりも大きい。よってテキストがコンテナ2001から溢れ出ている。ベーシックサイズ優先のレイアウト方法では、この場合はコンテンツを全て表示しようとするため、コンテナのサイズを変化させようとする。コンテナ2002においても流し込まれたテキストコンテンツのサイズはコンテナ2002のサイズよりも大きい。よってテキストがコンテナ2002から溢れ出ている。コンテンツサイズ優先のレイアウト方法では、まずコンテンツサイズを優先させるため、コンテンツのサイズに合わせるためにコンテナ2002のサイズを変化させようとする。
図20(B)は図20(A)からレイアウト処理が行われる直前までの状態を示している。コンテナ2004は図20(A)のコンテナ2001に、コンテナ2005はコンテナ2002に対応し、両コンテナ間に発生した影響が矢印2007、2008により示されている。なお、この影響は両コンテナとも互いに押し合っているので矢印2007、2008は押す力である。コンテナ2004はベーシックサイズ優先のレイアウト方法が設定されているが、コンテンツサイズが大きいためコンテナサイズを広げようとする。コンテナ2005はコンテンツサイズ優先のレイアウト属性が設定されているため、コンテナ2005はコンテンツサイズに合わせるように拡大しようとする。そのため、両コンテナ間で押し合いが発生することとなるため、コンテナ2004とコンテナ2005の間ではネゴシエーション処理が実行され、レイアウトが計算される。2009はコンテナ2004とコンテナ2005間にレイアウトの衝突が起きていることを示している。この場合、コンテナ2004は矢印2007の方向に、コンテナ2005は矢印2008の方向にそれぞれコンテナサイズを変化させようとしている。よってお互いが押し合うため衝突が起きている。
図20(C)は図20(B)からレイアウト処理が行われた後の状態を示している。コンテナ2010は図20(B)のコンテナ2004のサイズが変化した後の大きさを示している。またコンテナ2011は図20(B)のコンテナ2005のサイズが変化した後の大きさを示している。図20(B)より、コンテナサイズとコンテンツサイズの差(コンテンツのオーバーフローの量)がコンテナ2004の方が大きいため、ネゴシエーション処理の結果、コンテナ2004がコンテナ2010のサイズに(矢印2013の方向に)拡大している。2014はコンテナ2010の右辺の元(ベーシック)サイズ位置を示している。これは図20(B)のコンテナ2004の右辺と同じ位置である。レイアウト計算後のコンテナ2010の右辺が2014の位置よりも右側にあるため、コンテナサイズが大きくなったことが分かる。これによって、コンテナ2011はサイズが小さくなっている。また、コンテナ2010とコンテナ2011内のコンテンツのフォントは、コンテナ内に全て表示するために縮小されている。
[ベーシックサイズ優先のコンテナが関連づけられた場合のレイアウト処理の例]
図21はベーシックサイズ優先のコンテナが関連づけられた場合における、レイアウト処理の一例を示す図である。
図21(A)では、コンテナ2101とコンテナ2102があり、それらはリンク2103で関連付けられている。コンテナ2101、2102にはベーシックサイズ優先のレイアウト方法が設定されている。コンテナ2101は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ2102は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。コンテナ2101とコンテナ2102にテキストコンテンツが流し込まれ、そのテキストはコンテナの左上から右下方向へフローしている。コンテナ2101では、流し込まれたテキストコンテンツのサイズはコンテナ2101のサイズよりも大きい。よって図ではテキストがコンテナ2101から溢れ出ていることを示している。この場合、コンテンツを全て表示しようとするため、コンテナのサイズを変化させようとする。一方、コンテナ2102では、流し込まれたテキストコンテンツのサイズはコンテナ2102のサイズよりも小さい。コンテナ2102はベーシックサイズ優先であるので、流し込まれたコンテンツサイズに起因してコンテナサイズを変更することはない。
図21(B)は図21(A)からレイアウト処理が行われる直前までの状態を示している。コンテナ2104はコンテナ2101に、コンテナ2105はコンテナ2102に対応している。コンテナ2104はベーシックサイズ優先のレイアウト方法が設定されているが、コンテンツサイズが大きいためコンテナサイズを広げようとする。コンテナ2105はサイズを維持しようとするがコンテナ2104から押されるためコンテナ2104とコンテナ2105の間でネゴシエーション処理が実行される。2109はコンテナ2104とコンテナ2105間にレイアウトの衝突が起きていることを示している。この場合、コンテナ2104は矢印2107の方向に、コンテナ2105は(コンテンツサイズがコンテナサイズより小さいので)矢印2108の方向にそれぞれコンテナサイズを変化させようとすることになる。
図21(C)は、図21(B)からレイアウト処理が行われた後の状態を示している。コンテナ2110は、レイアウト計算後のコンテナ2104を示す。またコンテナ2111はレイアウト計算後のコンテナ2105を示している。図21(C)では、コンテナ2104がコンテナ2110のサイズに変化し、矢印2113の方向に拡大している。2114はコンテナ2110の右辺の元(ベーシック)サイズ位置を示している。これは図21(B)のコンテナ2104の右辺と同じ位置である。レイアウト計算後のコンテナ2110の右辺が2114の位置よりも右側にあるため、コンテナサイズが大きくなったことが分かる。一方、コンテナ2105はそのサイズが縮小され、コンテナ2111となっている。
[コンテナサイズが変化しない例]
図22(A)はベーシックサイズ優先のレイアウト方法を適用したコンテナとベーシックサイズ優先のレイアウト方法を適用したコンテナが関連付けられている状態においてそれぞれのコンテナサイズが全く変わらない場合を、図22(B)はベーシックサイズ優先のレイアウト方法を適用したコンテナとコンテンツサイズ優先のレイアウト方法を適用したコンテナが関連付けられている状態においてそれぞれのコンテナサイズが全く変わらない場合を示している。
図22(A)では、ベーシックサイズ優先のレイアウト方法が適用されたコンテナ2201とコンテナ2202が示されている。これらのコンテナはリンク2203で関連付けられている。コンテナ2201は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ2202は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。コンテナ2201とコンテナ2202にはテキストコンテンツが流し込まれており、そのテキストはコンテナの左上から右下方向へフローしている。コンテナ2201およびコンテナ2202に流し込まれたテキストコンテンツのサイズは夫々のコンテナサイズよりも小さい。よって、ベーシックサイズ優先が設定された両コンテナにおいてコンテナのサイズの変化は生じない。よって、矢印2204や矢印2205で示されるような影響は生じず、ネゴシエーション処理によるレイアウト計算は行われない。従ってこのようなケースではコンテナサイズが変化することはなく、レイアウトは全く変わらない結果となる。
図22(B)ではコンテナ2206とコンテナ2207がリンク2208で関連付けられている。そしてコンテナ2206にはベーシックサイズ優先のレイアウト方法、コンテナ2207にはコンテンツサイズ優先のレイアウト方法が設定されている。コンテナ2206は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。コンテナ2207は上辺・右辺・下辺が固定、そして左辺が可変に設定されている。コンテナ2206とコンテナ2207にはテキストコンテンツが流し込まれ、テキストはコンテナの左上から右下方向へフローしている。
コンテナ2206では流し込まれたコンテンツのサイズはコンテナサイズよりも小さく、コンテナサイズの変化は生じない。一方、コンテナ2207では流し込まれたコンテンツのサイズはコンテナ2207のサイズと同じである。よってコンテンツサイズ優先のレイアウト処理の結果、コンテンツサイズに変化は生じない。従って、コンテナ2206からもコンテナ2207からも影響は生じず、ネゴシエーション処理によるレイアウト計算は行われない。従ってこのようなケースではコンテナサイズが変化することはなく、レイアウトは全く変わらない結果となる。
[ベーシックサイズ優先のレイアウト例]
図25ではベーシックサイズ優先のレイアウト方法を適用したコンテナを利用した、典型的なレイアウトを紹介している。図中の(A)〜(D)は左右のコンテナがベーシックサイズ優先のレイアウト方法で動く時の例である。
(A)は左のコンテナ2501と右のコンテナ2503のそれぞれはベーシックサイズ優先が設定されている。また各コンテナにはDBフィールドが割り付けられており、リンク2502によって関連付けられている状態が示されている。なお、コンテナ2501は上辺・左辺・下辺が固定、そして右辺が可変に設定されている。また、コンテナ2503は上辺・下辺が固定、そして左辺が可変に設定されている。なお、コンテナ2501の左辺およびコンテナ2503の右辺は位置が固定されている。また、2541および2542は(A)〜(D)の位置が固定であることを示すためのものであるが、実際のレイアウト上には示されない。以下(B)〜(D)に、実際にコンテンツデータが流し込まれた際のレイアウト方法について記載する。
(B)は(A)の設定状態の各コンテナにデータベースからコンテンツを流し込んだ状態である。左のコンテナ2511には“Bixus ”の文字列(コンテンツデータ)が入り、右のコンテナ2513には“Photos!”の文字列(コンテンツデータ)が挿入されている。コンテナ2513に入ったコンテンツはコンテナサイズとコンテンツサイズが同じであるため、また、コンテナ2511に入ったコンテンツは左のコンテナ2511のサイズよりも小さいため、それぞれのコンテナサイズは変化しない。このように、ベーシックサイズ優先のレイアウト方法を採用することにより、最初に作成したレイアウト(配置や見た目)をなるべく維持したいというユーザの要望が達成されることになる。具体的には、例えば、ユーザはこのレイアウトでタイトル(2501)と爆弾(2503)を左右に配置し、それぞれ背景色を付けている。このように色を配色したようなレイアウトでは紙面上のバランスや見た目を考慮してコンテナを配置しているため、できればこのレイアウトで留めておきたいという希望がある。従って、コンテナのエッジが可変に設定されているのにも関わらず、なるべく大きさを変化させないようにすることにより、ユーザの要望に応えることができる。
(C)は、各コンテナに対してデータベースから”Image reader c3232”が左側のコンテナへ、”Photos!”が右側のコンテナへ流し込まれた状態を示したものである。この場合、左側のコンテナであるコンテナ2521に入ったコンテンツが大きいため、コンテナサイズを変化させ大きくすることが望まれる。コンテナサイズが大きくなったときは、リンクしているコンテナ2523を押す「押す力」2524が発生する。なお、フォントをシュリンクすることも考えられるが「タイトル」のような場合、できればあまりフォントサイズを小さくしないでレイアウトすることが望まれる。しかし、コンテナ2521の左辺とコンテナ2523の右辺は位置が固定であるため流し込まれた2つのコンテンツデータをそのままのサイズで表示しようとすると2541および2542を超えてレイアウトしなければならなくなってしまう。そこで、コンテナ2521およびコンテナ2523に流し込まれたコンテンツのサイズ(この場合はフォントサイズ)が縮小されるが、上述した通りタイトルなどのフォントサイズはできるだけ小さくしないことが望まれると考えられるので、その変化量(縮小率)は最小となるようにレイアウト計算が行われる。
(D)は各コンテナに対してデータベースから”XYZ”が左側のコンテナへ、”Handy & Super High Class!”が右側のコンテナへ流し込まれた状態を示したものであり、右側のコンテナであるコンテナ2533に入ったコンテンツが大きく、コンテナ2531を押してきた例である。この場合もコンテナ2533に挿入されたコンテンツのフォントをシュリンクすることが考えられるが、ユーザにとっては爆弾の内容もアピールしたい内容であるためなるべく大きく表示したい。そこでコンテナ2531を押し、コンテナ2531が押されたことによって生じた領域を使用することが望まれる。ベーシックサイズ優先のレイアウト方法は以上のようなケース全てをカバーできる有効なレイアウト方法である。
以上説明したように、本実施形態によれば、レイアウト編集アプリケーション121は、コンテンツデータのサイズとコンテナの基準サイズが異なるか否かを判断することができ、さらに各コンテナに設定されているレイアウト属性(ベーシックサイズ優先またはコンテンツサイズ優先)も認識することができる。コンテンツデータを流し込む場合、各コンテナに流し込まれるコンテンツデータおよびリンクによって関連付けられているコンテナからの影響(押す力または引く力)およびレイアウト属性に基づいて、各コンテナに設定されている基準サイズの変更が必要か否かが判断される。なお、変更が必要と判断された場合はデータ領域に流し込まれるコンテンツデータのサイズに合わせてコンテナのサイズを変更し、変更の必要がないと判断された場合は、基準サイズをコンテナのサイズとする。
また、ユーザがレイアウトを行う際において、コンテナ毎にベーシックサイズ優先かコンテナサイズ優先かを割り当てることができ、ユーザの意図をより反映させたレイアウトを作成することが出来る。すなわち、1つ1つのコンテナに対してベーシックサイズ優先のレイアウト方法、またはコンテンツサイズを優先したレイアウト方法を取るよう指定することが可能である。このため、レイアウト方法の選択肢が増え、ユーザの思惑を反映させることが出来、より思い通りのレイアウトを作成することができるのである。
また、ベーシックサイズ優先のレイアウト方法とは、言うなればレイアウトされたコンテナサイズを出来る限り守り、サイズをブレイクされた場合、あるいはコンテナが押された、または引っ張られた場合には、コンテンツサイズに合わせた計算をするレイアウト方法であり、従来の技術である固定サイズのコンテナと可変サイズのコンテナの、両方の機能を各コンテナに対して適宜ユーザが設定できるようにしたことで、データベースから挿入されるコンテンツサイズ、あるいはその他のコンテナからの影響を受け、自動的にサイズ変更の有無を判断する画期的なレイアウト方法である。
なお、本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
実施形態によるバリアブルプリントシステムの構成を示す図である。 図1におけるホストコンピュータの構成の概略を示す図である。 バリアブルデータプリントの概要を説明する図である。 実施形態によるバリアブルプリントシステムの他の構成を示す図である。 メニューバー、ツールバー、ワークエリア、フローティングパレットを含む、実施形態によるユーザインターフェースの例を示す図である。 ユーザインターフェースにおけるコンテナの表示例を示す図である。 実施形態によるコンテナルールを説明する図である。 実施形態によるリンクの作成処理を説明するフローチャートである。 リンク作成時のユーザインターフェースの遷移例を示す図である。 実施形態のレイアウトエンジンによるレイアウト計算処理を示すフローチャートである。 実施形態のレイアウトエンジンによるレイアウト計算処理を示すフローチャートである。 実施形態によるレイアウト計算処理を説明するための図である。 実施形態のレイアウト計算時における、コンテナの集合について説明した図である。 可変リンクによってコンテナを配置したときのユーザインターフェースにおける表示例を示す図である。 実施形態のユーザインターフェースにより可変リンクを設定するための処理を説明するフローチャートである。 実施形態によるリンクの設定ダイアログウインドウを示す図である。 固定リンクによるレイアウト結果例を示す図である。 可変リンクによるレイアウト結果例を示す図である。 本実施形態によるベーシックサイズ優先のレイアウト方法を説明する図である。 ベーシックサイズ優先のコンテナとコンテナサイズ優先のコンテナが関連付けられている場合のレイアウト処理を説明する図である。 ベーシックサイズ優先のコンテナとコンテナサイズ優先のコンテナが関連付けられている場合のレイアウト処理を説明する図である。 ベーシックサイズ優先のコンテナとコンテナサイズ優先のコンテナが関連付けられている場合のレイアウト処理を説明する図である。 ベーシックサイズ優先のコンテナどうしが関連づけられた場合のレイアウト処理の一例を示す図である。 本実施形態のレイアウト処理においてコンテナサイズが変化しない例を示した図である。 設定されたレイアウト方法によって1つのコンテナを処理する手順を説明したフローチャートである。 図23Aのベーシックサイズ処理を示すフローチャートである。 UIプロパティダイアログによる設定処理のための処理を示すフローチャートである。 ベーシックサイズ優先のレイアウト方法を適用したコンテナを利用した、典型的なレイアウト処理例を示す図である。 UIプロパティダイアログの表示例を示す図である。 コンテンツサイズ優先のレイアウト処理を説明する図である。

Claims (15)

  1. 複数のデータ領域を有するテンプレートと、該複数のデータ領域の各々に入力されるコンテンツデータとを用いてレイアウト処理を実行する情報処理装置におけるレイアウト処理方法であって、
    前記データ領域に対して基準サイズを設定する設定工程と、
    前記設定工程において設定された基準サイズのデータ領域を前記テンプレートに配置する配置工程と、
    データ領域に対して入力されるコンテンツデータのサイズに適応するべく前記配置工程において配置された基準サイズのデータ領域のサイズを変更するか否かを判断する判断工程と、
    前記判断工程によって前記基準サイズのデータ領域を変更すると判断された場合は、前記データ領域のサイズ各データ領域に入力されるコンテンツデータのサイズに応じて決定し、前記判断工程によって前記基準サイズから変更しないと判断された場合は、前記データ領域のサイズ前記基準サイズを用いて決定するレイアウト決定工程とを備え、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更すると判断することを特徴とするレイアウト処理方法。
  2. 前記設定工程は、前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定し、
    前記判断工程は、前記基準サイズを優先することを示す属性が設定されたデータ領域について、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記設定工程において基準サイズが設定されたデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記設定工程において基準サイズが設定されたデータ領域のサイズを変更すると判断し、
    一方、前記コンテンツデータを優先することを示す属性が設定されたデータ領域に対しては、
    設定された基準サイズと異なるサイズのコンテンツデータが入力された場合、または前記リンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合に前記基準サイズから変更を行うと判断し、
    設定された基準サイズと同じサイズのコンテンツデータが入力され、リンクにより関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記基準サイズから変更しないと判断することを特徴とする請求項1に記載のレイアウト処理方法。
  3. 前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を前記複数のデータ領域の各々に個別に設定する属性設定工程を更に備えることを特徴とする請求項2に記載のレイアウト処理方法。
  4. 複数のデータ領域の各々に対してサイズ可変にするか否かを設定し、
    サイズ可変にすることが設定されたデータ領域に対して、前記属性設定工程において当該データ領域に対して前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定可能とすることを特徴とする請求項3に記載のレイアウト処理方法。
  5. 前記判断工程により前記データ領域のサイズを入力されるコンテンツデータに応じて決定すると判断された場合、前記レイアウト決定工程は、前記リンクにより関連付けられた2つのデータ領域のそれぞれに入力されるコンテンツデータのサイズの変化量が同一となるように前記2つのデータ領域のサイズを決定することを特徴とする請求項1乃至4のいずれか1項に記載のレイアウト処理方法。
  6. 複数のデータ領域を有するテンプレートと、該複数のデータ領域の各々に入力されるコンテンツデータとを用いてレイアウト処理を実行する情報処理装置であって、
    前記データ領域に対して基準サイズを設定する設定手段と、
    前記設定手段において設定された基準サイズのデータ領域を前記テンプレートに配置する配置手段と、
    データ領域に対して入力されるコンテンツデータのサイズに適応するべく前記配置手段において配置された基準サイズのデータ領域のサイズを変更するか否かを判断する判断手段と、
    前記判断手段によって前記基準サイズのデータ領域を変更すると判断された場合は、前記データ領域のサイズ各データ領域に入力されるコンテンツデータのサイズに応じて決定し、前記判断手段によって前記基準サイズから変更しないと判断された場合は、前記データ領域のサイズ前記基準サイズを用いて決定するレイアウト決定手段とを備え、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記判断手段は前記配置手段において配置された基準サイズのデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記判断手段は前記配置手段において配置された基準サイズのデータ領域のサイズを変更すると判断することを特徴とする情報処理装置。
  7. 前記設定手段は、前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定し、
    前記判断手段は、前記基準サイズを優先することを示す属性が設定されたデータ領域について、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記設定手段において基準サイズが設定されたデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記設定手段において基準サイズが設定されたデータ領域のサイズを変更すると判断し、
    一方、前記コンテンツデータを優先することを示す属性が設定されたデータ領域に対しては、
    設定された基準サイズと異なるサイズのコンテンツデータが入力された場合、または前記リンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合に前記基準サイズから変更を行うと判断し、
    設定された基準サイズと同じサイズのコンテンツデータが入力され、リンクにより関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記基準サイズから変更しないと判断することを特徴とする請求項6に記載の情報処理装置。
  8. 前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を前記複数のデータ領域の各々に個別に設定する属性設定手段を更に備えることを特徴とする請求項7に記載の情報処理装置。
  9. 複数のデータ領域の各々に対してサイズ可変にするか否かを設定し、
    サイズ可変にすることが設定されたデータ領域に対して、前記属性設定手段において当該データ領域に対して前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定可能とすることを特徴とする請求項8に記載の情報処理装置。
  10. 前記判断手段により前記データ領域のサイズを入力されるコンテンツデータに応じて決定すると判断された場合、前記レイアウト決定手段は、前記リンクにより関連付けられた2つのデータ領域のそれぞれに入力されるコンテンツデータのサイズの変化量が同一となるように前記2つのデータ領域のサイズを決定することを特徴とする請求項6乃至9のいずれか1項に記載の情報処理装置。
  11. 複数のデータ領域を有するテンプレートと、該複数のデータ領域の各々に入力されるコンテンツデータとを用いてレイアウト処理を実行するレイアウト処理方法をコンピュータに実行させるためのプログラムであって、該レイアウト処理方法が、
    前記データ領域に対して基準サイズを設定する設定工程と、
    前記設定工程において設定された基準サイズのデータ領域を前記テンプレートに配置する配置工程と、
    データ領域に対して入力されるコンテンツデータのサイズに適応するべく前記配置工程において配置された基準サイズのデータ領域のサイズを変更するか否かを判断する判断工程と、
    前記判断工程によって前記基準サイズのデータ領域を変更すると判断された場合は、前記データ領域のサイズ各データ領域に入力されるコンテンツデータのサイズに応じて決定し、前記判断工程によって前記基準サイズから変更しないと判断された場合は、前記データ領域のサイズ前記基準サイズを用いて決定するレイアウト決定工程とを備え、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記判断工程は前記配置工程において配置された基準サイズのデータ領域のサイズを変更すると判断することを特徴とするコンピュータプログラム。
  12. 前記レイアウト処理方法において、
    前記設定工程は、前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定し、
    前記判断工程は、前記基準サイズを優先することを示す属性が設定されたデータ領域について、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該データ領域の基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記設定工程において基準サイズが設定されたデータ領域のサイズを変更しないと判断し、
    前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより小さいか等しいかであって、当該データ領域とリンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合、および、前記基準サイズのデータ領域に入力されるコンテンツデータのサイズが当該基準サイズより大きい場合、前記設定工程において基準サイズが設定されたデータ領域のサイズを変更すると判断し、
    一方、前記コンテンツデータを優先することを示す属性が設定されたデータ領域に対しては、
    設定された基準サイズと異なるサイズのコンテンツデータが入力された場合、または前記リンクによって関連付けられているデータ領域のサイズがコンテンツデータの入力により変更される場合に前記基準サイズから変更を行うと判断し、
    設定された基準サイズと同じサイズのコンテンツデータが入力され、リンクにより関連付けられているデータ領域のサイズがコンテンツデータの入力により変更されない場合、前記基準サイズから変更しないと判断することを特徴とする請求項11に記載のコンピュータプログラム。
  13. 前記レイアウト処理方法が、
    前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を前記複数のデータ領域の各々に個別に設定する属性設定工程を更に備えることを特徴とする請求項12に記載のコンピュータプログラム。
  14. 前記レイアウト処理方法において、
    複数のデータ領域の各々に対してサイズ可変にするか否かを設定し、
    サイズ可変にすることが設定されたデータ領域に対して、前記属性設定工程において当該データ領域に対して前記データ領域に対して基準サイズを優先することを示す属性、または、コンテンツデータを優先することを示す属性を設定可能とすることを特徴とする請求項13に記載のコンピュータプログラム。
  15. 前記レイアウト処理方法において、
    前記判断工程により前記データ領域のサイズを入力されるコンテンツデータに応じて決定すると判断された場合、前記レイアウト決定工程は、前記リンクにより関連付けられた2つのデータ領域のそれぞれに入力されるコンテンツデータのサイズの変化量が同一となるように前記2つのデータ領域のサイズを決定することを特徴とする請求項11乃至14のいずれか1項に記載のコンピュータプログラム。
JP2004252897A 2004-08-31 2004-08-31 レイアウト処理方法、情報処理装置及びコンピュータプログラム Expired - Fee Related JP4111519B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004252897A JP4111519B2 (ja) 2004-08-31 2004-08-31 レイアウト処理方法、情報処理装置及びコンピュータプログラム
US11/211,469 US7847971B2 (en) 2004-08-31 2005-08-26 Layout processing method, information processing apparatus, and computer program
CNB2005100934784A CN100337188C (zh) 2004-08-31 2005-08-30 布局处理方法和信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004252897A JP4111519B2 (ja) 2004-08-31 2004-08-31 レイアウト処理方法、情報処理装置及びコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2006074224A JP2006074224A (ja) 2006-03-16
JP2006074224A5 JP2006074224A5 (ja) 2006-08-10
JP4111519B2 true JP4111519B2 (ja) 2008-07-02

Family

ID=35995847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004252897A Expired - Fee Related JP4111519B2 (ja) 2004-08-31 2004-08-31 レイアウト処理方法、情報処理装置及びコンピュータプログラム

Country Status (3)

Country Link
US (1) US7847971B2 (ja)
JP (1) JP4111519B2 (ja)
CN (1) CN100337188C (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4047308B2 (ja) * 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4332477B2 (ja) * 2004-08-06 2009-09-16 キヤノン株式会社 レイアウト調整方法及び装置並びにプログラム
JP4332480B2 (ja) * 2004-08-31 2009-09-16 キヤノン株式会社 レイアウト調整方法及び装置並びにプログラム
JP2006277727A (ja) * 2005-03-04 2006-10-12 Canon Inc レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP2007334510A (ja) * 2006-06-13 2007-12-27 Canon Inc 自動レイアウトシステム及び方法
JP2010097564A (ja) * 2008-10-20 2010-04-30 Canon Inc 情報処理装置及びレイアウト処理方法
US10210260B2 (en) 2010-10-20 2019-02-19 Microsoft Technology Licensing, Llc Templates for displaying data
US9263002B2 (en) * 2011-11-30 2016-02-16 Microsoft Technology Licensing, Llc Application and user interface framework interaction
US10789412B2 (en) * 2012-02-20 2020-09-29 Wix.Com Ltd. System and method for extended dynamic layout
CN106649299B (zh) * 2015-07-28 2020-09-15 阿里巴巴集团控股有限公司 一种网页区块懒加载的方法和装置
US9959257B2 (en) * 2016-01-08 2018-05-01 Adobe Systems Incorporated Populating visual designs with web content
US10409895B2 (en) * 2017-10-17 2019-09-10 Qualtrics, Llc Optimizing a document based on dynamically updating content
JP7554087B2 (ja) * 2020-10-05 2024-09-19 シャープ株式会社 画像形成装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0574657B1 (en) * 1992-03-11 2000-11-15 Chinon Industries Inc. Label printing apparatus and wordprocessor
JPH07129658A (ja) 1993-11-02 1995-05-19 Toppan Printing Co Ltd レイアウトデザイン装置
US5845303A (en) * 1994-12-06 1998-12-01 Netpodium, Inc. Document processing using frame-based templates with hierarchical tagging
US6230173B1 (en) * 1995-07-17 2001-05-08 Microsoft Corporation Method for creating structured documents in a publishing system
US6584479B2 (en) * 1998-06-17 2003-06-24 Xerox Corporation Overlay presentation of textual and graphical annotations
US6470016B1 (en) * 1999-02-09 2002-10-22 Nortel Networks Limited Servicing output queues dynamically according to bandwidth allocation in a frame environment
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6760043B2 (en) * 2000-08-21 2004-07-06 Intellocity Usa, Inc. System and method for web based enhanced interactive television content page layout
CN1177287C (zh) * 2001-04-18 2004-11-24 无敌科技(西安)有限公司 应用于掌上型浏览装置的自动格式排版方法
JP2003081237A (ja) * 2001-09-12 2003-03-19 Ishida Co Ltd 商品情報印字装置、商品情報印字方法、およびプログラム
JP2004015215A (ja) * 2002-06-04 2004-01-15 Seiko Epson Corp レイアウト制御装置およびそのプログラム並びにレイアウト制御方法
JP4462819B2 (ja) * 2002-09-26 2010-05-12 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
CN1294511C (zh) * 2002-12-30 2007-01-10 北京北大方正电子有限公司 一种自动排版方法
JP4165888B2 (ja) * 2004-01-30 2008-10-15 キヤノン株式会社 レイアウト制御方法、レイアウト制御装置及びレイアウト制御プログラム
JP4332480B2 (ja) * 2004-08-31 2009-09-16 キヤノン株式会社 レイアウト調整方法及び装置並びにプログラム

Also Published As

Publication number Publication date
US20060050287A1 (en) 2006-03-09
CN1744027A (zh) 2006-03-08
US7847971B2 (en) 2010-12-07
JP2006074224A (ja) 2006-03-16
CN100337188C (zh) 2007-09-12

Similar Documents

Publication Publication Date Title
JP4250540B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4144883B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4241410B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4332480B2 (ja) レイアウト調整方法及び装置並びにプログラム
JP4110105B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
JP4332477B2 (ja) レイアウト調整方法及び装置並びにプログラム
US7707494B2 (en) Information processing apparatus, control method therefor, and program
JP4047308B2 (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4059504B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
US7831909B2 (en) Information processing apparatus, control method therefor, and program with display based on change amount of field areas
JP4298642B2 (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
US7847971B2 (en) Layout processing method, information processing apparatus, and computer program
JP4912139B2 (ja) 情報処理装置
JP2006277727A (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP2005216182A (ja) 文書処理装置及び文書処理方法及びコンピュータプログラム
US20060184876A1 (en) Information processing apparatus, control method therefor, and program
JP4194501B2 (ja) 文書処理方法、文書処理装置及び文書処理プログラム
JP2006072518A (ja) 情報処理装置、情報処理方法、ならびにプログラム
JP4743909B2 (ja) 情報処理方法および装置およびコンピュータプログラム
JP2007122486A (ja) Web文書処理方法、プログラム、記憶媒体
JP2007122487A (ja) 自動レイアウトシステム
JP2009134578A (ja) 文書処理装置、文書処理プログラム、記憶媒体
JP2007048198A (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: 20071130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

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: 20080404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080407

R150 Certificate of patent or registration of utility model

Ref document number: 4111519

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: 20110418

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140418

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees