JP4095558B2 - 文書処理装置及び文書処理方法及びコンピュータプログラム - Google Patents

文書処理装置及び文書処理方法及びコンピュータプログラム Download PDF

Info

Publication number
JP4095558B2
JP4095558B2 JP2004024587A JP2004024587A JP4095558B2 JP 4095558 B2 JP4095558 B2 JP 4095558B2 JP 2004024587 A JP2004024587 A JP 2004024587A JP 2004024587 A JP2004024587 A JP 2004024587A JP 4095558 B2 JP4095558 B2 JP 4095558B2
Authority
JP
Japan
Prior art keywords
layout
template
area
region
container
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
JP2004024587A
Other languages
English (en)
Other versions
JP2005216182A (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 JP2004024587A priority Critical patent/JP4095558B2/ja
Priority to US11/043,057 priority patent/US7934154B2/en
Priority to EP05250452.9A priority patent/EP1566742B1/en
Priority to CNB2005100050603A priority patent/CN100362464C/zh
Publication of JP2005216182A publication Critical patent/JP2005216182A/ja
Application granted granted Critical
Publication of JP4095558B2 publication Critical patent/JP4095558B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • 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/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • 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)
  • Processing Or Creating Images (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、たとえばデータベースに登録されたレコードの各フィールドを予め定めた位置に配置して文書を完成させる自動レイアウト機能を有する文書処理装置及び文書処理方法に関するものである。
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM(カスタマ・リレーションシップ・マネージメント)や、One−to−One(1対1)マーケティングの必要性が注目されている。これらの手法により顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
カスタマ・リレーションシップ・マネージメントとは、顧客のデータベースをもとに、個々のニーズに即した対応を実施して、顧客の満足度を高め、会社の収益性を向上させる仕組みである。また1対1マーケティングは、データベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析して、顧客のニーズに合った提案を行うマーケティング手法であり、その代表的な適用例としてバリアブルプリントが挙げられる。ここ最近、DTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトした文書の作成が求められるようになった。
従来、バリアブルプリントシステムでは、ドキュメント上にレイアウト枠(コンテナともいう。)でレイアウトの定義が作成され、各コンテナのコンテンツとしてデータベースの一定の条件を満たすレコードやフィールドが関連づけられる。こうしてデータベースとレイアウトとを関連付けることにより、バリアブルプリントは実現されていた。
しかし、テキストおよびイメージのコンテナのサイズが固定であったため、データベース内のデータがコンテナに挿入されたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生する。またデータ量がコンテナサイズより小さいと隙間が空いてしまう。
その問題を解決するために、自動レイアウトシステムが発明されている。自動レイアウトシステムは、テキストおよびイメージのコンテナサイズを可変に設定することが可能である。この自動レイアウトシステムでは、コンテナのサイズが可変であり、コンテナのサイズを、差し込まれるデータ量に応じて大きくするよう変更できる。またコンテナに挿入されるデータがテキストの場合において、固定サイズのコンテナ内に入りきらないデータが挿入された場合、テキストのフォントサイズを縮小し、コンテナ内に全てのテキストを表示する技術も存在する。しかしコンテナサイズを可変とすると、コンテナサイズが大きくなった場合、そのコンテナがドキュメント上の他のコンテナに重なってしまう問題が発生する。またフォントサイズを調節する場合は、テキストの量が大きい場合、フォントサイズが小さくなりすぎる問題が発生する。
それらの問題を解決するためのさらなる自動レイアウトの技術として、あるコンテナのサイズが大きくなった場合、隣接したコンテナのサイズを小さくする技術が特許文献1に記載された「レイアウトデザイン装置」に開示されている。
このように、従来のバリアブルプリントシステムには、サイズの異なるコンテンツを適切にレイアウトするために、レイアウト枠(コンテナ)をコンテンツのサイズに合わせて動的に変化させることが可能なものが存在する。
また、特許文献1には、複数の商品情報を1ページのドキュメントに配置する技術も記載されている。この方法では、顧客毎の商品カタログなどを作成するときに、ひとつの商品情報(たとえばひとつの商品の商品名、イメージ、スペックなど)のレイアウトをあらかじめマスタ部品ファイルとして定義しておき、ドキュメント上にマスタ部品ファイルを配置できる領域を定義しておく。そして、データベースから抽出された各商品情報の内容をマスタ部品ファイルに合わせてレイアウトし、そのレイアウト済みの部品ファイルをドキュメントの左上から右下へと流し込んでいく。
特開2000−48216(段落0025〜0055、図2、図11)
しかしながら、特許文献1に記載されたように、ただ単純にデータベースの内容をレイアウトしたマスタ部品ファイルをドキュメントに流し込む手法では、レコードやマルチレコードという概念がない。データベース内の各商品情報は、マスタ部品ファイルによりレイアウトされた後、順次ドキュメントに配置されてしまい、配置順や大きさをレコード毎に利用者の意志によって調整することができなかった。このため、たとえば顧客の嗜好に応じてダイレクトメールを作成する場合など、デザインが単調となってしまう。利用者が当該顧客がもっとも好みそうな商品を中心に配置するなど、より効果的なものを作成したいと望んでも、利用者の意図を反映して個々のレコードの配置や大きさ等を決定することはできなかった。
本発明は上記従来例に鑑みてなされたもので、レコードの属性に応じてそのレコードを配置する領域を指定し、各々の領域に振り分けてレコードをレイアウトすることができる文書処理装置及び文書処理方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために本発明は以下の構成を備える。
レイアウトすべき複数のコンテンツデータを含むレコードと、当該コンテンツデータが配置される第1領域を備えた第1テンプレートとを用いて、当該第1テンプレートのレイアウトを決定する文書処理装置であって、
前記第1テンプレートに対して複数のレコードに含まれるコンテンツデータを配置可能な第2領域と、当該第2領域の外に前記第1領域とを設定する第1設定手段と、
前記第1設定手段によって設定された前記第2領域に対してデータベースからレコードを抽出するための抽出条件と前記第2領域内に配置される第2テンプレートとを設定する第2設定手段と、
前記第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に対して、前記コンテンツデータを挿入し、当該コンテンツデータと当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に設定されたレイアウト制限情報とを用いて当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域のサイズを決定するためにレイアウト処理を実行するレイアウト手段と、
前記第1テンプレートのレイアウトを決定するために前記文書処理装置内で発行される当該レイアウトを出力することを示す指示に従って実行される一連の処理として、前記第2領域の外に設定された第1領域用に、前記第2領域の外に設定された第1領域と当該第1領域に割り当てられるコンテンツデータとを用いて1回のレイアウト処理を実行すべく前記レイアウト手段を制御し、一方、前記第2領域用に、前記抽出条件により抽出された複数のレコードと前記第2テンプレートとを用いて、当該複数のレコードについて複数回のレイアウト処理を実行すべく前記レイアウト手段を制御するレイアウト制御手段とを備える。
本発明によれば、テンプレートに設けた領域毎に、レコードなどのデータを配置する条件を指定可能にすることで、データを各々の領域に振り分けてレイアウトすることができる。これにより、単に流し込んだ順序でデータを配置せず、データの元の並び順などと無関係に、個々のデータを配置する位置を指定できる。
また、レコードを配置する方向やパターンを指定できることにより、さまざまなレイアウトパターンを実現できる。
また、レコードを配置可能な固定であるため、レコード数が多くても自動的に次のページを生成することはなく、単ページの文書を生成できる。
[第1実施形態]
本発明の実施例を適用するのに好適な実施形態について説明を行う。まず発明の概略について説明する。本実施形態は、ドキュメントテンプレート(単にテンプレートとも呼ぶ。)に定義されたコンテナ(データが流し込まれる部分領域:フィールド領域とも呼ばれる)に従って、データベースのレコード等を配置した文書を作成する、いわゆるバリアブルプリントと呼ばれる機能をコンピュータにより実現するためのコンピュータソフトウエアに関する。このソフトウエアが実行可能にロードされたコンピュータは、文書処理装置として機能する。本実施形態では特に、データをテンプレートに従って配置するのみならず、テンプレートに従って文書の一部を作成し、その文書の一部を、別途テンプレートに定義された領域(フローエリアと呼ぶ。)に挿入してドキュメントを完成させる機能(マルチレコード機能)を持つソフトウエアを開示している。挿入できる文書の一部の数はひとつのフローエリアについて一つとは限らない。さらに、テンプレートに複数のフローエリアが定義されている場合、一定の条件に従って、作成済みの文書の一部をフローエリア毎に振り分ける技術も開示される。
次に、本発明を適用可能な本実施形態におけるコンピュータシステムの構成、およびアプリケーション構成について説明する。
<システム構成図>
図1Aはバリアブルデータドキュメントを印刷するシステム100を図示している。本明細書で示された方法は図1Bで詳しく説明される汎用コンピュータモジュール101で所定のプログラムを実行することで実践される。図1Aに記述されるプロセスは、コンピュータモジュール101で実行され、システム100上で実施可能となるレイアウト編集アプリケーションプログラム121のように、ソフトウェアの全体あるいは一部分で実行される。特にレイアウト編集や印刷のステップは、本発明の文書処理装置であるコンピュータ101によって実行されるソフトウェアの指示によって実施される。ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ101によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。コンピュータでそのコンピュータプログラム製品を使用することで、ドキュメントのレイアウト編集やバリアブルデータ印刷を行える装置として、そのコンピュータは機能する。
コンピュータモジュール101にはキーボード132やマウス133のようなポインティングデバイスなどの入力装置がつながれ、ディスプレイ装置144や状況に応じてはローカルプリンタ145を含む出力装置が連結される。入力/出力インターフェース138はコンピュータモジュール101をネットワーク接続107から接続してシステム100の他のコンピュータ装置につなげることができる。そのネットワーク接続107の典型はローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)である。
コンピュータモジュール101は、一般的には少なくとも1つのプロセッサーユニット135、例えば半導体のランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインタフェース137を含むINPUT/OUTPUT(I/O)インターフェース、キーボード132やマウス133のためのI/Oインターフェース143を含んでいる。
記憶装置139は、一般的にはハードディスクドライブ140やフレキシブルディスクドライブ141を含んでいる。図1Bには示されていないが磁気テープドライブもまた使用される可能性がある。CD−ROMドライブ142は不揮発性のデータソースとして提供される。コンピュータモジュール101は、GNU/LINUXやマイクロソフト社のウィンドウズ(登録商標)のようなオペレーティングシステムに従って、あるいはコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して通信を行うコンピュータモジュール101に含まれる各構成要素(符号135〜符号143)を利用する。
図1Bに記述した配置のコンピュータの例としては、IBM互換PCやSUN社のSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
図1Aのレイアウトアプリケーションプログラム121は、通常は図1Bのハードディスクドライブ140に常駐し、プロセッサ135により実行、読み込み、コントロールされる。いくつかの事例では、アプリケーションプログラム121がCD−ROMやフレキシブルディスク上にエンコードされており、対応するフレキシブルディスクドライブ142やCD−ROMドライブ141を通じて読み込まれてユーザに提供される。あるいはもう一つの方法として、アプリケーションプログラム121はネットワーク接続107からユーザによって読み込まれてもよい。さらにソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスクまたは無線またはコンピュータモジュール101とその他のデバイス間の赤外線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からコンピュータモジュール101内にロードされる可能性もある。上記の例は単に関連するコンピュータ可読メディアの一例である。他のコンピュータ可読媒体も使用される可能性はある。
またレイアウト編集アプリケーション121は、バリアブルデータ印刷(VDP)を行うよう指示し、2つのソフトウェアコンポーネントを含んでいる。これらのうち第1のコンポーネントはレイアウトエンジン105であり、これは長方形のコンテナで与えられた制限やサイズによって、コンテナを構成する矩形および線の位置を計算するためのソフトウェアコンポーネントである。レイアウトエンジン105は各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成する。
第2のコンポーネントであるユーザインターフェース103は、ユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースと関連付けるメカニズムを提供する。ユーザインターフェース103とレイアウトエンジン105はコミュニケーションチャネル123を介して通信する。ドキュメント生成のためのデータソースは、一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ117上にある一般的なデータベース119である。ホストコンピュータ101はネットワーク接続107によってデータベースサーバ117と通信する。バリアブルデータ印刷アプリケーション121はホストコンピュータ101か一般的に他のコンピュータで構成されるファイルサーバ115に保存されるドキュメントテンプレートを生成する。またバリアブルデータ印刷アプリケーション121はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはホストコンピュータ101のローカルファイルシステムに保存されるか、ファイルサーバ115に保存されるか、あるいはプリンタ113に直接印刷される。プリントサーバ109は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバ109とプリンタ113は一般的な通信チャネル111を介して接続される。
図2は、図1Aの構成から、レイアウトエンジン225を独立させてエンジンサーバ227によりレイアウトエンジンを実行させるための構成を示す。エンジンサーバ227は一般的なコンピュータである。ファイルサーバ115に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
<アプリケーション構成>
(メインウインドウ)
図3で示されるように、ユーザインターフェース101は、操作時にビデオディスプレイ144に表示されるアプリケーションウインドウ301によって形成されたユーザインターフェースを含んでいる。ウインドウ301は、非表示にすることやスクリーン上の色々な場所に移動することが可能なメニューバー302とツールバー303、そしてマウス133の位置・動作によって場所を移動可能なワークエリア306とオプションのパレット311とカーソル/ポインタデバイス313から特徴付けされる。
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を持つ。
ツールバー303は、アプリケーションの特別なモードによって非表示にする又は表示することが可能な多くのツールボタンとウィジット305を持つ。
オプションのルーラ308はワークエリア内のポインタ、ページ、ライン、マージンガイド、レイアウト枠(コンテナ)またはオブジェクトの位置を示すために使われる。
パレット311はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は移動、リサイズ、クローズをするためのウインドウコントロール312を持つ。パレット311はオプションで、ワークエリアの前面に表示されたり、あるいはオブジェクトの背面に隠される。パレット311はアプリケーションウインドウ301の範囲内のみに表示されることを制限される場合もあるし、あるいはアプリケーションウインドウ301の外側に部分的・全体を表示することを許される場合もある。
ツールバーエリア303は図4に示すように、少なくとも以下のユーザ選択可能な「ボタン」を持つ。
* 選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック・ロック解除するために使われる。コンテナは、複数のコンテナの周りに選択ボックスをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数選択を可能にする。
* イメージコンテナツールボタン404:スタティック(固定)あるいはバリアブルイメージを持つコンテナを作成するために使われる。
* テキストコンテナツールボタン405:スタティック(固定)あるいはバリアブルテキストを持つコンテナを作成するために使われる。
* リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするために使われる。
これらのボタンは、周知の技術であるように操作状況に合わせて変化するアイコンのツールチップとして実装される。
レイアウト編集アプリケーション121の図3に示したアプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
(ドキュメントテンプレート)
ワークエリア306はドキュメントテンプレートのデザインを表示および編集するために使われる。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量またはサイズに基づいてどのように変化するかを理解することを可能にする。
もし外部データソース(例えばデータベースのレコード等)がテンプレートにリンクされていたら、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージがコンテナに表示される。
ドキュメントの構造とバリアブルデータのコンテナの描写をする視覚的な手がかりとなるオブジェクトは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示される。
ワークエリア306はスクロールバー307とオプションのルーラ308とドキュメントテンプレート309により特徴付けられる。ドキュメントテンプレート309はページが複数あることを示すことができる。
与えられたドキュメントテンプレートのページサイズは、周知の技術によりユーザによって指定される。例えばメニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。それぞれのドキュメントでの実際のページ数はバリアブルデータによって変化する可能性がある。もし1ページ内に収めることができず、所定の用紙サイズのページに各コンテナを収めるような制約が基本レイアウトになかった場合、追加のページは自動的に作成される。所定の用紙サイズのページに各コンテナを収めるように制約(後述するアンカーアイコン等により設定可能である)が基本レイアウトに設定されている場合は、ページ内で各コンテナがお互いに押したり押されたりしながら、各コンテナサイズと位置が決定され、必要に応じて流し込まれるバリアブルデータが縮小され、レコード毎に動的にレイアウトが決定される。

それぞれのページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示すページマージン310である。ページマージン310は利用者が定義できる。
また、図4は1ページのドキュメントテンプレート309上に表示することが可能なオブジェクトの例である。それらは、複数のコンテナ407、408と、任意に適用できるアンカーアイコン409と、固定されていない辺410、リンク412そしてスライダ413を持つ。アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4の例では、アンカーアイコン409は、コンテナ407の左上の角に設定されているため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合に、右方向及び下方向に拡大可能であることを示している。アンカーアイコン409が辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。リンク412は詳細は後述するが、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンクに設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
(コンテナ)
コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変テキストやイメージがレコード単位に流し込まれ、描画されるスペース(これを部分領域と呼ぶ)であり、他のコンテナやオブジェクトとともにレイアウトされる。コンテナはマウス133を操作してポインタ313を使い、図3、図4等のユーザインターフェース画面で示されるように移動、サイズ調整そして再作成される。
より正確には、コンテナは、設定の集まり、視覚的表現そしてインタラクションと編集動作をもっている。下記はコンテナの定義の全部分である。
* コンテナは固定あるいは可変のコンテンツを持つ。可変コンテンツは、データソース(たとえばデータベースのレコード)から取得され、異なるドキュメントでは異なっていてもよい、という意味でダイナミック(動的)である。可変コンテンツとしては、アニメーション化されたもの、あるいは他の方法で時間に応じて変化するものは印刷に適合していないため含まない。固定コンテンツはひとつのテンプレートを用いて生成される全てのドキュメントで同じに表示される。けれども、可変コンテンツとリンクが設定されている場合、可変コンテンツを含むコンテナの位置やサイズの変化によって、固定コンテンツを含むコンテナはそれぞれのドキュメントで位置が異なる可能性がある。
* コンテナは、コンテンツに適用される背景色、ボーダー、フォントスタイルといったテキスト設定のような装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
* コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、一般的に印刷された出力物であり可視である。可変コンテンツはデータソースからの特定のデータとして得られ、表示あるいは印刷される。コンテナに収められるコンテンツは、例えば印刷されるか、スクリーン144上で表示されるか、あるいはその両方で出力され得る。
* コンテナはユーザインターフェースを持つ。例えばコンテナの編集そして表示設定のためのインタラクティブなGUIを持つ。インターフェースの要素は普通はスクリーン144上に表示される。ユーザインターフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示する。そしてコンテナの設定の編集や表示を行わせるための機能も有する。ユーザインターフェース機能の目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコン、あるいはコンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。
(コンテナ制約)
コンテナはそれぞれのドキュメントで表示または印刷されるコンテンツをどのようにコンテナに収めるか制御するための制約を持つ。これらの制約は、ユーザが一つのドキュメントテンプレートによって多数のドキュメントをコントロールする主要な手段である。制約の一例としては「このコンテナのコンテンツの高さは、最大値4インチです。」というものがある。他の制約の例としては「コンテナのコンテンツの左エッジは、それぞれのドキュメントで同じ水平位置で表示しなければならない。」というものもある。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダは、デジタル印刷技術でよく知られている。以下の説明において、コンテナは位置とサイズとを持ち、それらは公知の技術で知られている手法で編集され、表示することができる。
ユーザは、コンテナの位置やサイズ、制約等を指定することで、ドキュメントのコンテンツのサイズおよび位置を指定することができる。複数のドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナの多数の可能な設定と制約を指定および表示させるためにユーザインターフェースを使わなければならない。
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。すなわち、コンテナの左辺は、同一のテンプレートが適用されるどのドキュメント内でも、当該コンテナに関連付けられたコンテンツが配置される左端に対応する。同様に、コンテナの高さは、同一のテンプレートを適用して生成されたドキュメント内で当該コンテナに関連づけられたコンテンツの高さの制約として理解される。本明細書においては、ユーザインターフェース103を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
下記の検討では、コンテンツの表示を制限するために使われるいくつかの値を定義している用語「固定」は、全てのドキュメントで同じである。
* もしコンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、そのコンテナを含むテンプレートを適用して生成される全てのドキュメントで、そのコンテナを含むページに関して同じ(固定値)になる。
* もしコンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、そのコンテナを含むテンプレートを適用して生成される全てのドキュメントで、そのコンテナを含むページに関して同じ(固定値)になる。
* もし距離の制約が固定なら、指定された距離(固定値)は、そのコンテナを含むテンプレートを適用して生成される全てのドキュメントのための制約である。
* もしコンテナの左右辺が固定なら、そのコンテナを含むテンプレートを適用して生成される全てのドキュメントで、コンテナの辺の水平方向についての位置が、そのコンテナを含むページに関して同じであることを意味している。しかしコンテナの高さあるいは垂直方向の位置は変わる可能性がある。例えば、もしコンテナの左辺が固定なら、コンテナに関連付けられたコンテンツは、ひとつのテンプレートを適用して生成されるひとつのドキュメントでページの上に近く表示され、他のドキュメントでページの下に近く表示されることもある。しかし左辺の水平位置は全てのケースで同じである。
* もしコンテナの上下辺が固定なら、辺の垂直方向の位置が、そのコンテナを含むテンプレートを適用して生成される全てのドキュメントで、そのコンテナを含むページに関して同じである。しかしコンテナの幅あるいは水平位置は変わる可能性がある。
* コンテナの垂直軸はコンテナの右辺および左辺と平行で、その中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、そのコンテナを含むテンプレートを適用して生成されるすべてのドキュメントで、そのコンテナを含むページに関して同じである。この制約で、コンテナの幅は変化する可能性がある。たとえば、相異なるドキュメントで、対応するコンテナの左右辺の水平方向の位置は、垂直軸に遠いか、あるいは近いかという点で相違する可能性がある。しかし、垂直軸は、そのコンテナを含むテンプレートを適用して生成されるすべてのドキュメントで、そのコンテナを含むページに関して同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
* コンテナの水平軸はコンテナの上辺および下辺と平行で、その中間に位置される想像上の水平線である。 垂直軸と同様に、もしコンテナの水平軸が固定なら、コンテナの上辺そして下辺の垂直方向の位置を制約する。けれども高さは、この制約によって影響されない。
* もし水平軸および垂直軸がともに固定なら、コンテナの中心位置(垂直軸と水平軸との交点)が固定されていることを意味する。しかし、コンテナの幅および高さはこの制約によって影響されない。
* もしコンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、そのコンテナに関連づけられるコンテンツは、そのコンテナを含むテンプレートを適用して生成されるすべてのドキュメントで、そのコンテナを含むページに関して同じ場所に表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が、そのコンテナを含むテンプレートを適用して生成されるすべてのドキュメントで、そのコンテナを含むページに関して同じになることを意味している。
* 垂直辺あるいは垂直軸は、ページの左辺あるいは右辺、あるいは左ページマージン、あるいは右ページマージン、あるいは他の水平位置に関連付けされて固定になる。同様に、水平辺あるいは水平軸は、ページの上辺あるいは下辺あるいはマージン、あるいは他の垂直位置に関連付けされて固定になる。
「固定」の反対は、辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化する可能性があることを意味する「可変」である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレートの基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
<レイアウトモード(コンテナ表示および編集)>
バリアブル印刷されるドキュメントの作成手順は、テンプレートを作成するテンプレート作成処理(レイアウトモード)と、作成されたテンプレートにコンテンツを挿入してドキュメントを作成するドキュメント作成処理(ドキュメントをプレビュー表示する場合を特にプレビューモードと呼ぶ。)という2つのフェーズに分けることができる。まず、レイアウトモードについて説明する。
(新規コンテナの作成方法)
コンテナには、テキストコンテナとイメージコンテナの2種類がある。テキストコンテナはテキストおよび埋め込みイメージを収める。イメージコンテナはイメージだけを収める。
図4に示すように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール404、あるいはイメージコンテナツール405をマウス133でクリックし、テンプレート309に四角形をドラッグすることによって、ドキュメントテンプレート309上に作成される。
あるいは、コンテナは、適切なツール404、405をアクティブにした後に、ドキュメントテンプレート309上でクリックすることによって簡単に作成できる。新たなコンテナが作成された場合、デフォルトサイズのコンテナが挿入されるか、または新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが表示される。また、コンテナを、前もって定義あるいは計算されたスキーマによって自動的に作成および配置することもできる。ここで生成されたコンテナをマウス等の入力手段により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログUI(部分領域設定手段に相当する)では、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ(幅、高さ)や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン(基本サイズと基準位置)を設定し、更に、最大コンテナサイズ(幅、高さ)と最小コンテナサイズ(幅、高さ)を設定することが可能となっている。
(コンテナの表示方法)
ドキュメントテンプレート内に作成されたコンテナの辺の状態は、図4に示すようにユーザインターフェース上にグラフィカルに表示されるのが好ましい。共通する表現で辺の状態を示すことで状態に対応する画像オブジェクトの種類をより少なくできる。
図5(A)−図5(D)はコンテナの表示例を示す図である。アプリケーション121は、辺の状態を表現するために、実線503あるいは点線504で辺を描写する。コンテナは、アンカー(辺の近くに描画されたオブジェクト506、507、509によって示されるような線、形状、アイコン)、ハンドル(移動、修正するために、辺や形の近くに描画されたコントロール点)502、スライダ(辺の両サイドに描画された短い並行線、図4の413)、拡縮アイコン505、そして色を特徴として持っている。
図5(A)−(D)のコンテナ表示方法のルールは、つぎの通りである。
1.それぞれの辺が固定されているならば、その辺を実線で描画する。
2.もし幅が固定なら、左と右の辺を実線503で描画する。
3.もし高さが固定なら、上と下の辺を実線503で描画する。
4.軸は描画しない。
5.まだ描画されていない辺は、その辺の近くに拡縮アイコン505が描画され、点線504で描画される。
6.垂直辺あるいは軸と水平辺あるいは軸との交点には、交差する辺または軸がともに固定なら、アンカーが描画される。
7.固定辺のどこにもアンカーが描画されていなければ、その辺の中央にスライダが描画される。
8.垂直辺あるいは軸と水平辺あるいは軸との交点には、アンカーもスライダも描画されていなければ、ハンドルが描画される。
可変の辺は、点線で描画される。ルール6、7、8に従って描画される固定点にはアンカーが表示され、固定された辺にはスライダが表示され、他の辺にはハンドルが表示される。
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
可変の辺が描画される場所はコンテナのコンテンツに依存する。後で説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェース上にドキュメントを表示する「動的な校正処理」が行われる。
これらのコンテンツ表現は、コンテナの辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
* 図4の辺410のように、点線は、コンテナのコンテンツに応じたドキュメント内の辺の位置を意味する。
* 実線は制限された辺を意味する。なぜなら、実線で表示された辺は固定されているか(辺414)、あるいはコンテナの幅または高さが固定されている(コンテナ408では両方が固定されている)ためである。
* アンカーは、辺または軸の交点が固定されていることを意味する。それゆえ、アンカー点は、そのアンカー点を含むドキュメントテンプレートを適用したすべてのドキュメントにおいて、同一の水平、垂直位置に現れる。当然アンカーは固定される。図4のアイコン409は、交差する辺414が固定されていることを意図しているアンカーアイコンの例である。
* スライダは、関連付けられた辺がその辺の垂直方向に固定されていることを意味する、しかしコンテナは、辺に沿って「スライドの長さ」だけスライドされた位置に移動できる。例えば、図4で、スライダ413の操作により、コンテナ408のコンテンツはドキュメント内で左あるいは右に移動されて表示されることもある。
これらのアイコンや辺のいくつかあるいは全ては、どのツール、どのコンテナを選択したりハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺およびアイコンはドキュメントテンプレートをデザインするために表示されるものであって、作成されたドキュメントテンプレートを適用した印刷物には描画されない。
コンテナの幅および高さの基準値、最小値および最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
図5(A)で、コンテナ501は幅および高さ両方が固定されていない。固定された辺503は実線で表現される。可変の辺504は点線で表現される。拡縮アイコン505は、隣接する辺504が可変であることを示すインジケータである。
図5(B)で、コンテナ501は幅および高さ両方が可変である。アンカーアイコン506は、交差している2つの辺503が固定されていることを示している。
図5(C)で、コンテナ501は、アンカーアイコン507で示される点を中心にして均等に拡大あるいは縮小できる状態で、幅および高さ両方が可変である。
図5(D)で、コンテナ501は、上辺508が固定されていることを除けば、幅および高さ両方が可変である。上辺508の中心に示されるアンカーアイコン509は、その辺508が固定されており、コンテナの左辺および右辺が、アイコン509を通り垂直に描画される中心軸(垂直軸)の周りで、移動し得ることを示す。
<ドキュメントテンプレートのデータの例>
図33は、ドキュメントテンプレートのデータ(テンプレートデータと呼ぶ。)の一例を示す。図33において、テンプレートデータ3301は、メモリ136あるいはハードディスク140に格納されている。テンプレートデータには、以下の要素が含まれる。
(1)全体サイズ3302:テンプレート全体のページのサイズを示す。サイズは、たとえば、縦および横の長さ、または定型用紙サイズなどで示される。
(2)コンテナ情報3303:テンプレートに配置されるコンテナ毎に、そのコンテナを特定するための識別情報やコンテナの基準の位置(位置情報)、辺の長さ(サイズ情報)、コンテナを構成する辺や点の属性(属性情報)、コンテナに関連づけられるコンテンツの情報等を示す。位置情報およびサイズ情報は、テンプレート作成時に定義されたものであり、位置情報は、コンテナの作成時にユーザにより設定されたコンテナの基準の位置になる。位置が可変のコンテナであれば、コンテナに流し込まれるコンテンツのサイズ(画像サイズ、テキスト量)に応じて大きさが変更され、各コンテナの大きさにより動的に位置が変更されることになる。アンカー等により位置が固定されているコンテナであれば、固定された位置を示す。このような位置情報は、少なくともコンテナの対角点の位置を特定できる情報を含む。もちろん、全点についてテンプレート上における位置を持ってもよいし、ひとつの点についてはテンプレート上における位置の情報を持ち、他の点については相対的な位置の情報を持つようにしてもよい。すなわち、コンテナの一つの点とコンテナのサイズによって定義することもできる。また、固定されている点についてはテンプレート上における位置で定義し、可変の点については相対的な位置で定義しても良い。
属性情報は、図4および図5を参照して説明した、コンテナの辺や辺、軸またはそれらの交点等の属性を示す。ひとつのコンテナは、たとえば位置とサイズとにより、上辺、下辺、左辺、右辺、水平軸、垂直軸、各角点、中心点、幅、高さが定まる。それら各要素について、可変であるか、固定されているかが属性情報により定義される。図4のユーザインターフェースによりドキュメントテンプレートを作成した場合、コンテナの辺や点や軸を選択した状態で、パレット311内に表示されるメニュー「固定する」「可変とする」などから、オペレータが所望の項目を選択することで、選択された点や辺に対応して、コンテナ情報3303に「固定」「可変」いずれかの属性が書き込まれる。コンテナ作成直後の既定値はたとえばすべて「可変」としておく。なおこの例では、ひとつの辺や軸について「固定」であるとは、辺や軸の長さや長手方向の位置ではなく、長手方向に直交する方向についての位置が固定されていることを意味している。また、点や辺の属性を設定することで、自動的にその他の点や辺の属性が定まる場合には、その属性も書き込む。たとえば角点を「固定」と指定した場合、それを挟む辺も「固定」とされる。これは逆も同様である。またたとえば、中心点の位置を「固定」と指定すると、中心点の属性に「固定」と書き込まれると共に、水平軸及び垂直軸の属性も「固定」と書き込まれる。この場合、幅や高さは可変のままであれば、幅および高さの属性は「可変」のまま維持される。
関連づけられるコンテンツに関する情報(コンテンツ関連情報)には、たとえば、それがテキストコンテナであるかイメージコンテナであるかの種別を示す情報や、そのコンテナに挿入されるデータソースの識別子、たとえばデータベース名、レコード名、フィールド名等の一部又は全部、コンテンツを抽出するための条件式などの関連付け情報が含まれる。また、テキストコンテナの場合には、フォントに関する情報、たとえばフォント種類やサイズ、色、斜体や太字、下線等の文字修飾情報等もコンテンツ関連情報に含まれる。
コンテナ情報3303は、ドキュメントテンプレートに設けられたコンテナの数だけ保持される。
(3)リンク情報3304:リンクとはコンテナ間の関連付けであり、特にリンクで結ばれた2つのコンテナ間の距離を一定(固定リンク)や可変範囲(可変リンク)とする旨の情報である。リンク情報としては、たとえば、水平方向及び垂直方向それぞれについて、2つのコンテナの識別子、およびそれらコンテナの対向する辺の間にリンクが設定されたことを示す情報や、リンクに沿った方向についてのコンテナ間の距離などを含む。リンク情報は定義されたリンク毎に保持される。リンク情報の形態としては、水平方向及び垂直方向それぞれについて、各コンテナの辺の位置を保持し、その辺の間にリンクが設定された旨を示す情報を保持してもよい。
(4)固定情報3305:可変部分以外の固定部分を定義するための情報が含まれる。たとえば、当該テンプレートが適用されて生成される全ドキュメント(全レコード)に共通の文や画像等が定義できる。文や画像については、そのデータそのものを含まずに、位置情報を定義するだけでも良い。もちろん、テンプレート上において配置される位置を定義するための情報も含む。
図34には、マルチレコード機能のために用いられるテンプレートデータの一例を示す。図34では、ドキュメントテンプレート中にフローエリアという、他のテンプレートをサブテンプレートして流し込める領域が定義される。このサブテンプレートを流し込む領域をフローエリアと呼び、1つのフローエリアには、マルチレコードに対応した数のサブテンプレートが流し込まれることになる。図34においては、テンプレートデータには、フローエリア情報3401が含まれる。フローエリア情報は、テンプレートに含まれるフローエリアの数だけテンプレートデータに含まれている。フローエリア情報3401には、以下の要素が含まれる。
(5)全体の位置やサイズ、フロータイプ等を示すフローエリアの属性情報3402:位置やサイズは図33で説明した通りである。フロータイプは、フローエリアにサブテンプレートを流し込むパターンを定義する符号である。詳細は後述するが、フローエリアに流し込むサブテンプレートの数はマルチレコードのキーカラム(後述する)により決定され、可変であるため、フローエリアに流し込むサブテンプレート数により、フローエリア内のサブテンプレートのレイアウトを定義する情報がフロータイプである。
(6)サブテンプレート情報3403:サブテンプレート情報3403には、サブテンプレートに配置されるコンテンツと、そのサブテンプレートにしたがってレイアウトされたコンテンツ(これを本明細書ではレイアウト済みコンテンツと呼ぶことにする。)が流し込まれるフローエリアとの対応付けを示す配置情報が含まれる。サブテンプレート情報3403は、たとえば、フローエリアに挿入されるテンプレートを識別するための情報であり、たとえばテンプレートデータのファイル(テンプレートファイル)の名称などを含む。また、レイアウト済みコンテンツを配置するための配置条件や、どのような順序でレイアウト済みコンテンツを挿入するかを指定するフロータイプも含まれていてもよい。配置条件としては、サブテンプレートによるレイアウト対象となるデータベースの検索条件(検索式)などが保持される。また、フロータイプとしては、Z型、N型、V型など、予め用意した選択肢の内から指定させ、指定されたフロータイプを示す識別子が保持される。あるいは、データベースのレコードに配置情報フィールドを設け、その値と一致する配置条件の値に対応するフローエリアに、そのレイアウト済みコンテンツを挿入するなどしても良い。
(7)マルチレコード情報3404:フローエリアに関連づけられるデータベース名および各レコードにおけるフィールド名等の識別子が含まれる。指定されたフィールド名について同一の値を有するレコードが指定されたデータベースからフェッチ(読み込まれ)されて、原則としてひとつのフローエリアにレイアウトされる。原則として、という制限があるのは、対象となるレコードがフローエリアのサイズに比して相当多い場合もあり得るため、そのような場合には別のドキュメントを生成するなど例外的な処理を施す必要があるためである。
<リンクの設定方法>
図6はリンクの設定方法を示したフロー図である。また図7(A)−(C)は、UIの例を示している。それらを用いてコンテナにリンクを設定する方法について説明をする。
まず、リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)を作成する(ステップ0601)。次に、図4に示すリンクツールボタン406を選択した状態にする(ステップ0602)。図7(A)−(C)は、2つのコンテナを作成し、リンクツールが選択されていた状態から、リンクを設定する動作を行った際のユーザインターフェースの例を示している。図7(A)−(C)を順に説明していく。
図7(A)の辺0701、0702は、前述した図4の辺407、408と同じであり、固定されている辺である。また、アンカー0703と0704は、アンカー409と同じものである。まず、リンクを設定する一方のコンテナをクリックして選択する(ステップ0603)。次に図7(B)で示されるように、他方のコンテナまでマウスポインタを移動してクリックする(ステップ0604)。図7(B)の線0706は、図7(A)で最初にクリックをした位置と移動後のマウスポインタの位置とを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すUIである。ステップ0604が終わった後、コンテナは図7(C)の状態になり、設定した場所にリンク0707が表示される(ステップ0605)。また、リンクが設定されたことにより、コンテナを示すオブジェクトも自動的に変更される(ステップ0606)。辺0708は、点線で示されている辺であり、可変の辺を示している。図7(C)のようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、拡縮アイコン0709は図5のアイコン505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したオブジェクトである。図7(C)の例では、左のコンテナの右辺0708と右のコンテナの左辺0710が可変に変化したが、これは一例であり、右コンテナが、図4に示すスライダ413を持つ設定に変化してもかまわない。
この処理を図33のデータ処理の観点から説明すると以下のようになる。たとえば、ステップ0601では、コンテナを作成することにより、コンテナ情報3303が定義される。そして、ステップ0606において、レイアウト編集アプリケーション121は、ステップ0603とステップ0604で選択された2つのコンテナ間にリンクが設定された旨を、リンク情報として記憶する。そしてステップ0606において、リンクが設定された2つのコンテナの対向する辺の属性を必要に応じて変更する。たとえば、対向する辺の少なくとも一方が可変であれば、辺の属性を変更する必要はない。しかし、双方が固定であれば、リンクを設定する意義が失われるために、少なくとも一方を可変とする。図7の例では、両方を可変に変更している。もちろん、辺の属性が変更された場合には、レイアウト編集アプリケーション121は、変更された属性についてコンテナ情報3303に含まれる属性が変更された辺についてその属性情報を書き換える。
なお、上記記載では「対向する」との表現を用いているが、線どうしが見かけ上対向する場合のほか、線自体は対向していなくとも(すなわち2つの線の長手方向の投影が重複しなくとも)、線の延長線が対向する関係にあれば、その延長線の間でリンクを設定することができる。本明細書ではこのように延長線が対向する場合も含めて、リンクで関連づけられたコンテナに関しては、辺が「対向する」と表現することにする。すなわち、たとえばテンプレートの対角に沿って配置された小コンテナ間にもリンクを設定できる。
以上のように、リンクで関連づけられたコンテナの対向する辺の一方が可変で他方が固定であれば、コンテンツサイズに応じて可変の辺は移動する可能性がある。そして、その可変の辺の移動量に応じて、固定辺の側のコンテナは、コンテナ自体が平行移動する(アンカーがない場合)。リンクで定義されたコンテナ間の距離(リンクに沿った方向についての距離)は維持される。双方の辺が可変であれば、コンテンツのサイズに応じて量コンテナのサイズが可変となるが、コンテナ間の距離はこの場合も維持される。
<プレビューモード(レイアウト計算)>
図8はレイアウト計算のフローを示している。レイアウト計算は、ドキュメントテンプレートのコンテナに実データが挿入された場合に、コンテンツのデータサイズ等に応じてコンテナサイズやコンテナ配置を再計算する処理である。図8では、プレビューモードが指定された場合を例としているために、テンプレートにコンテンツを挿入して生成されたドキュメントは、ディスプレイ144に表示される。しかし、印刷モードが指定された場合には、プレビュー表示に変えて、ドキュメントは印刷出力される。
図8において、まずプレビューモードを選択する(ステップ0801)。本実施形態の自動レイアウトシステムによる動作モードには、コンテナを作成してそのコンテナ間に関連付けを行い、レイアウトを定義したドキュメントテンプレートを作成するレイアウトモードと、作成したレイアウト(テンプレート)にレコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードとが含まれる。
このプレビューモードにおいて、実際のレコードが挿入されてレイアウトが計算される。プレビューモードは表示上でのレイアウト計算である。実際に印刷する場合においてもレコードを挿入してレイアウトを計算するが、その際の計算方法もプレビューモードと同じである。
プレビューモードになったら、プレビューするレコードを選択する(ステップ0802)。レコードの選択はオペレータに指定されたレコードを選択するものとしても良いし、指定されたデータベースから順次レコードを選択しても良い。レコードの選択が行われると、そのレコードをテンプレートに従ってレイアウトするために計算を行う(ステップ0803)。ステップ0803で計算結果に従ってレコードをレイアウトし、それを表示する(0804)。他のレコードについてもプレビューを行うかどうかを判断する(ステップ0805)。この判断はオペレータの指示に基づいても良いし、予め指定された範囲についてのプレビューが終了したか判断するものでもよい。ステップ0805で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する(ステップ0807)。
一方、他のレコードについてプレビューを行うのであれば、他のレコードを選択して再度レイアウト計算を行い、レコードをレイアウトしてそのプレビューを行う(ステップ0806)。プレビューモードでなく印刷時においては、印刷対象のレコード全てについて順にレイアウトの計算を行う。したがって、ステップ0801、0807は存在しない。またステップ0805では、印刷対象の全てのレコードについて印刷が終了したか否かが判断される。
(レイアウト計算手順)
図9は、図8のステップ0803におけるレイアウト計算の詳細を示したフロー図である。また、図10はそのときのUI表示例を示した図である。なお図9に限らず、本実施形態で説明するフローチャートは、図1A、図1Bあるいは図2のコンピュータにより実行される。
まず、レイアウトを計算するコンテナの集合を求める(ステップ0901)。レイアウト計算は、リンクにより関連付けられたコンテナを一つの集合として行われる。例えば図11を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。したがって、コンテナAおよびコンテナBが集合1、コンテナCおよびコンテナDが集合2となる。すなわち、図33に示すテンプレートデータのリンク情報3304を参照し、リンクにより関連づけられたコンテナ群を、ひとつのコンテナ集合と判定できる。図11では、前述した通り、アンカー1101、固定された辺1102、コントローラ1103、可変の辺の変化方向を示している矢印1104、可変の辺1105、リンク1106、そしてスライダ1107が示されている。
次に、ステップ0901で求めたコンテナの集合から、レイアウトを計算するために一つコンテナの集合を選択する(ステップ0902)。これは、たとえばテンプレートデータのリンク情報中における出現順などに従えばよい。そして、選択したコンテナの集合について、レイアウトの計算を行う。ここでは、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップ0903)。
レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとそのコンテンツが挿入されるコンテナサイズとができるだけ同じサイズとなるように行われる。コンテナサイズが固定されている場合には、コンテンツの方が変倍されてコンテナに収められるか、あるいはコンテンツの一部がコンテナに収められる。
着目コンテナ集合の一方のコンテナが固定サイズ、他方が可変サイズの場合には、固定サイズコンテナについては上記要領で行われる。可変サイズコンテナについては、固定サイズコンテナが移動可能な範囲で可変サイズコンテナのサイズを変えて、コンテンツを挿入する。もし最大までサイズを拡張してもコンテンツが納まらない場合には、コンテンツを変倍したり、あるいはその一部をコンテナに挿入する。
着目コンテナ集合の両方のコンテナが可変サイズの場合には、両方のコンテナにできるだけ均等にコンテンツが収められるようにレイアウトを決定する。たとえば、図7(C)のように、リンクにより関連づけられた2つのコンテナは、その外側の点が固定され、対向する辺のみが可変であるとする。この場合には、各コンテンツのサイズに応じてコンテナサイズを仮に決定する。そして、コンテナ間のリンクに沿った方向の距離の中間点から等距離となるよう、各コンテナの対向する辺の位置を決定する。もちろん、辺の間隔はリンク情報で定義された距離である。このようにして、各コンテナのサイズを決定する。もしもコンテンツがコンテナに収まらない場合には、コンテンツを変倍したり、コンテンツの一部をクリップしてコンテナに挿入することもできる。
コンテナ集合に3つ以上のコンテナが含まれる場合にも、各コンテンツのサイズに応じたコンテナサイズ(すなわち各可変の辺の長さ)を計算し、その中点からリンク情報で定義される距離の位置を、辺の位置として決定する。リンクされた辺が固定辺であるコンテナについては、その位置を、関連づけられたコンテナの辺の移動に応じて移動させる。
以上のようにして、リンクで関連づけられたコンテナを1組として、サイズが可変のコンテナについてはそのサイズを、位置が可変のコンテナについてはその位置を決定する。
上記要領でレイアウの最適化計算を行い、その計算結果がルールに違反していた場合は、再度ルールを違反しないように計算をする(ステップ0904)。ここでルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、リンクの長さなどである。制限は、テンプレートデータ内のコンテナ情報に含まれる辺や点等の属性情報とリンク情報とにより定義されている。特、属性情報において「固定」の値を有する項目とリンク情報がレイアウト上の制限となる。そこで、ステップ0903のレイアウト計算を終了した後、「固定」という属性を持つ計算後の各コンテナの辺や点の位置、サイズ等の項目について、テンプレートデータ中のコンテナ情報と比較し、値が相違している項目があれば制約違反と判定される。また、リンクについても、リンク情報に含まれるリンク長さ(コンテナ間の距離)と、ステップ0903のレイアウト計算終了後のリンクが設定されたコンテナ間の距離とが相違していれば、制約違反と判定される。
ルールに違反しないようにレイアウトが計算されたら、そのコンテナ集合のレイアウトは完成される。そして、ステップ0902〜ステップ0904のステップをページ上のすべてのコンテナの集合について施し、ページ全体のレイアウトを計算する(ステップ0905)。
(レイアウトの例)
図10(A)〜(C)はレイアウト計算時のUI表示例である。もちろん印刷例も同様である。図10(A)は、テンプレートデータにおいて初期的に定義されたコンテナ集合を示す。図10において、テンプレートにはアンカー1001と1002、固定された辺1003と1004、可変の辺1005、可変の辺の変化方向を示している矢印1006、リンク1008がそれぞれ含まれている。この状態において、レコードを選択し、そのレコードから異なるサイズのコンテンツを各コンテナに挿入する。図10(B)は図10(A)の状態に新しいコンテンツのサイズを重ねて示している。2点鎖線の矩形1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図10(C)はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、各コンテナに挿入されるコンテンツのサイズとの差が等しくなるように計算され、可変の辺の位置が決定される。すなわち、充填されるコンテンツが配置される枠が決定される。そしてこの配置は前述したルールを違反しないように計算される。図10(C)で示されるように、図10(B)で示した、各コンテナに関して、挿入されるコンテンツサイズ1009と計算後のコンテンツサイズ1010(すなわち計算後のコンテナサイズ)との差は等しい。
<マルチレコード(マルチデータ)機能>
マルチレコードについて概要を説明する。通常のドキュメントテンプレートでは、1レコードが1ドキュメントに対応しているが、サブテンプレートに対応するマルチレコードは、基準となる項目が変化するブレイクが発生するまでのレコードが流し込まれるものであるため、1ドキュメント内に複数のレコードが入ることになる。よって、通常のドキュメントテンプレートに対応するバリアブルデータのデータベースと、サブテンプレートに対応するバリアブルデータのマルチレコードのデータベースとは異なるデータベースとすることが望ましい。
図12は、マルチレコードとそのレイアウト方法の概要を示した図である。データベース1204は、ドキュメント1201、ページ1202、サブテンプレート1203、データベース1204を含む。図12では、データベース1204には、レコード1〜7が含まれている。1レコードを1ドキュメントにレイアウトする通常のバリアブルプリントでは、7つレコードがあるので、この場合7つのドキュメントが作成される。
しかし、多レコードを1ドキュメントにレイアウトするマルチレコード機能をサポートする本発明のバリアブルプリントでは、次のような処理を行う。まずマルチレコードを指定する基準の項目であるカラム(フィールド)をユーザが指定しておく。この指定されるカラムをキーカラムと呼ぶ。なおキーカラムをマルチデータ条件と呼ぶ場合もある。この例ではフィールド名:Nameがキーカラムとして指定されたものとする。すると、その指定されたフィールドの値が同じレコード群は、1ドキュメントにレイアウトされるレコード群となる。この例では、レコード1〜4はキーカラムであるNameフィールドの値が同一の「Tom」であるため、ひとつのドキュメントにレイアウトされる。レコード5〜7は、Nameフィールドの値が同一の「Nancy」であるため、ブレイクが発生し、もうひとつのドキュメントにレイアウトされる(図12参照)。もちろん、マルチレコードが指定されたフィールドの値が異なるレコードは、別々のドキュメントにレイアウトされる。図12のドキュメントのページ1202が、それぞれ異なるレイアウトとして作成されているのは、ドキュメント毎にマルチレコードの数が異なるためである。マルチレコードの数により、どのようにサブテンプレートがレイアウトされるかは、後述するように、フローエリアの属性情報3402のフロータイプのフラグにより、4つのサブテンプレートの場合は、図12の上図のようにレイアウトされ、3つのサブテンプレートの場合は、図12の下図のようにレイアウトされることになる。
<マルチレコードのレイアウト処理>
図13および図14は、本発明に係るマルチレコード処理におけるユーザインターフェースと処理手順を示している。
図14のフローの各ステップを図13のUI図と合わせて説明していく。まず、図13のアイコン1303が押下されることによってエリア作成モードへと遷移する(ステップ1401)。そして、ページマージンのエリア1302内において、マウスのドラッグにより矩形が描画される(ステップ1402)。描画された矩形は、エリア作成モードにおいてはフローエリアであり、そのサイズや位置情報は、図34に示すテンプレートデータのフローエリアの属性情報3402として記憶される(ステップ1403)。図13ではフローエリア1306が描画されている。このテンプレート上にはこのほかテキストコンテナ1304やイメージコンテナ1305も含まれる。ユーザインターフェース上は、フローエリア1306の表現とコンテナの表現とを異ならせることにより、ユーザに視覚的に認識しやすいようにする。テキストコンテナ1304及びイメージコンテナ1350は、データベースからバリアブルデータが読み込まれ、レコード毎に異なるドキュメントとして作成される。フローエリア13306は、後述するように、マルチレコードのデータベースから指定されたキーカラムに応じてブレイクが発生するまでデータが読み込まれ、フロータイプによりレイアウトが決定される。
次に、作成されたフローエリア1306について、バリアブルデータを格納したマルチレコードのデータベース名や、キーカラムとして指定されたフィールド名称等の識別子をオペレータに入力させる。入力された識別子をキーカラムとして当該フローエリアに関連づけて、たとえば図34のマルチレコード情報3404として格納する(ステップ1404)。
次に、レイアウト編集アプリケーション121は、フローエリア1306に各種設定を施すかどうかを、オペレータの操作に応じて判断する(ステップ1405)。各種設定操作はプロパティの設定により行われるために、その操作、たとえばフローエリア1306上でマウスポインタをクリックすることなどのプロパティ設定操作が行われたのであれば、ユーザインタフェースモジュール103は、プロパティダイアログを表示する(ステップ1406)。そして、表示されたプロパティダイアログを介して入力される設定を保存する(ステップ1407)。設定方法については、図15、図16を参照して後で詳細に記述する。
ひとつのフローエリアの作成が終了したなら、レイアウト編集アプリケーション121は、オペレータの入力に基づいてさらにフローエリアを作成する指示がされているか判定し(ステップ1408)、さらに作成する指示がされていればステップ1401へ進み新たなフローエリアを作成する。またプロパティも設定する。
またステップ1409において、レイアウトをプレビューする旨の指示が入力されていると判定されれば、プレビューモードへ遷移する。そして、レイアウト編集アプリケーション121は、レイアウト計算を行う(ステップ1410)。このレイアウト計算は図9で示したフローと同じ手順で実行される。すなわち、適当なレコードを選択して作成されたテンプレートに適用し、その結果を表示する。
次に、レイアウト編集アプリケーション121は、設定されているフローエリアが1つなのか、複数なのかを確認する(ステップ1411)。フローエリアが1つであれば、レイアウト編集アプリケーション121は、1つの場合のレイアウト計算を行う(ステップ1412)。この処理については、図19、図18を参照して後で詳細に記述する。複数なら複数の場合のレイアウト計算を行う(ステップ1413)。この処理については、図22A,22B、図23、図18を参照して後で詳細に記述する。最後にレイアウト結果を表示する(ステップ1414)。
<プロパティ設定処理>
図15は、図14のステップ1407におけるフローエリアの各種設定(プロパティ設定)を行う処理フローを、図16はその設定ダイアログの例を示している。
図15のプロパティ設定方法の各ステップを、図16を用いながら説明する。また、文中のサブテンプレートについては後述する。まず、図16のテキストボックス1602に、フローエリアで使用するサブテンプレートが、ユーザに指定されることにより表示される(ステップ1501)。この指定方法は、テキストボックス内に直接サブテンプレート名を指定するか、またはファイルオープンアイコン1603を使って、サブテンプレート名を指定しても良い。図16の1601はプロパティダイアログ、1616はマウスポインタを示している。
次に、レイアウト編集アプリケーション121は、条件式が設定されているかを判断して(ステップ1502)、ユーザによって入力された条件式によって、フローエリアにレイアウトされるデータを、接続しているデータベースから抽出する(ステップ1503)。領域1604は条件式1605が入力される領域を示している。リストボックス1606には接続しているデータファイルのフィールド名が入力される。リストボックス1607には条件判定を計算する演算子が入力される。リストボックス1608には条件が入力される。リストボックス1609は条件式間を結ぶ演算子が入力される。リストボックス1606〜1609には、直接入力だけではなく、リストから選択することも可能である。図16の例では、ProductInfo.stpというデータベースについて、ProductNameフィールドの値が「Camera」であり、かつCostフィールドの値が50000未満という条件が設定されている。条件が設定されるとデータがデータベースから抽出され、データが抽出されるとヒット数表示欄1610に抽出された数が表示される。この条件を抽出条件と呼ぶこともある。
次に、レイアウト編集アプリケーション121は、サブテンプレートをエリア内にフローさせるフロータイプの指定が入力されたが判断し(ステップ1504)、指定されていれば指定されたフロータイプを図34の属性情報3402の一部として記憶する。例示欄1611には、レイアウトのパターン(フロータイプ)が表示されており、ユーザはその中から所望のパターンを選択することでフロータイプを指定可能である。矩形1612は、現在指定されているレイアウトパターンを示す。図16ではZ型が指定されている。さらに、フロータイプは図16で示すZ型、N型、V型、W型のほかにも設定可能である。ボタン1613を押下することで、フロータイプ設定ダイアログ1617が表示される。そして、特殊なタイプである円形1619、斜型1618等のフロータイプが選択できる。このフロータイプは、ここで説明したものだけに限らず、他のタイプがあっても良い。また、フロータイプについては、デフォルトでどれか一つは選択された状態になっているので、設定する必要がなければ設定しなくても良い。また、フロータイプは、フローエリアにレイアウトされるサブテンプレートの数(レイアウト条件により該当するデータ数に相当する)により、異なるフロータイプが選択されることが望ましい。よって、図16のレイアウトフロータイプを選択する例示欄1611は、サブテンプレート数に応じて選択可能としてもよい。
次に、設定した内容に修正があるかないかを判断する(1506)。オペレータにより「OK」ボタン1615以外のボタンが押された場合に、修正があると判定される。修正がある場合は、ステップ1501〜1505のうちオペレータの操作に応じたステップを実行する。修正がない場合すなわち「OK」ボタン1615が押された場合は、レイアウト編集アプリケーション121は、指定された各種設定値を確定的に保存する(1507)。このためには、ステップ1501以前の操作により指定された値は仮の保存領域に保存し、ステップ1501においてそれらの値を、属性情報3402の対応する項目に複製する方法などをとればよい。なお、キャンセルボタン1614が押下されると、それまでに指定された各種設定はすべてキャンセルされ、属性情報3402は、図15の手順を開始する直前の状態のまま変化しない。ステップ1507が行われるとダイアログを閉じる(ステップ1508)。
(サブテンプレート)
前述したサブテンプレートについて、概要とレイアウトフローを説明する。図17、18はサブテンプレートに従ったレコードのレイアウト例とレイアウトフローを示している。
サブテンプレートは、その中にイメージコンテナやテキストコンテナ等を配置して、それらのコンテナにどのデータを割り当てるかを設定した状態で保存されたテンプレートである。データ自体は通常のテンプレートと特に相違する点はなく、図33に示したテンプレートデータで定義される。サブテンプレートは、同じレイアウトを一つのドキュメントで数多く使う場合や、他ドキュメントで流用する場合に便利である。サブテンプレート内に配置されるイメージコンテナ、テキストコンテナ間にはリンクを設定することが可能である。したがって、レイアウトするデータによって、レイアウトサイズ(位置も)を最適に変化させることが可能である。図17はサブテンプレートを用いたレコードのレイアウト例を示している。1701と1704はサブテンプレートの外枠、1702と1705はイメージコンテナ、1703と1706はテキストコンテナ、1707はリンクを示している。図17(A)(B)は、互いに同じサブテンプレートを用いたレイアウト例であるが、互いにイメージ、テキストのサイズが異なるため、レイアウト結果は異なる。サブテンプレートを用いたレコードのレイアウト処理のフローは図18に示す通りである。図18はプレビュー処理の例を示す。印刷時には、図18における「表示」が「印刷」に変わる。
まず、レイアウト編集アプリケーション121は、レイアウトするデータを取得する(ステップ1801)。プレビュー時にはオペレータが適当なレコードを指定すればよい。印刷時には対象のデータベースから条件に適合するレコードを抽出してレイアウト対象のデータとして取得する。次に、レイアウト編集アプリケーション121は、各コンテナにレイアウトするデータのサイズを得る(ステップ1802)。そして、レイアウト編集アプリケーション121は、得られたデータサイズに基づいて、各コンテナについてレイアウト計算する(ステップ1803)。ステップ1803は、図9で説明したとおりの処理であり最適化処理を含んでいる。最適化されたレイアウトが決定されると、レイアウト編集アプリケーション121は、レイアウトするデータをそのデータに最適化されたコンテナに流し込み、ドキュメントを完成させる(ステップ1804)。そして完成したドキュメントをプレビュー画像として表示する(ステップ1805)。
(フローエリアのレイアウト方法(ドキュメントに1フローエリアの場合))
図19は、フローエリア内のレイアウト計算のフローを示している。図19は、フローエリアが一つ設定されている場合の手順である。まず、レイアウト編集アプリケーション121は、フローエリアに関連づけられているデータベースを開く(ステップ1901)。そして、フローエリアにレイアウトを試みるレコードの数を、メモリに設けられた変数nに代入する(ステップ1902)。この変数nは、ユーザがフローエリアの貼り付けたい数を指定した値であり、図16のユーザインタフェース画面から入力できるようにしてもよい。nが0、すなわちレイアウトを試みるレコードの数が0であった場合は、レイアウトの処理は行う必要がないので処理を行わず終了する(ステップ1903)。
次に、レイアウトを試みた(試行中も含む。)レコード数を示すための変数kに1を代入する(ステップ1904)。また、フローエリアにレイアウトされたサブテンプレートの数を数えるための変数Numに0を代入する(1905)。
それらの後、k番目のレコードのデータをデータベースから取得する(ステップ1906)。このとき、データベースから該当するデータがない旨の応答を受けたなら、ステップ1913に分岐する。
次に、レイアウト編集アプリケーション121は、レイアウトするフローエリアに、前述したプロパティ設定にて、条件式が設定されているかを確認する(ステップ1907)。マルチレコードについて既に説明したとおり、所与の一定条件を満たしているレコードがひとつのフローエリアに流し込まれる。この一定条件(条件式)を満たすレコードが当該フローエリアに関連づけられているデータに相当する。そこで、条件式が設定されている場合は、ステップ1906で取得したデータが設定されている条件式を満たしているか判定する(ステップ1908)。そして、フローエリアに条件式が設定されていない場合や、ステップ1908で条件式に当てはまると判断された場合は、レイアウト編集アプリケーション121は、取得したk番目のレコードについて、フローエリアに関連づけられたサブテンプレートに従ってレイアウトを行う(ステップ1909)。なお、フローエリアに関連づけられた条件式でデータベースを検索可能であれば、ステップ1906においては、その条件式でレコードを抽出する。この場合には、その条件式で抽出されるレコードはかならずフローエリアに関連づけられた条件を満たしている。また、その条件式に適合するレコードを絞り込むための条件が設定可能であれば、ステップ1906ではその条件でレコードを抽出する。この場合には、ステップ1908の判定は不可欠である。データベースが条件検索できない構成の場合には、ステップ1906では逐次的にレコードを取得する。
サブテンプレートに従ったレイアウト手順については、図18で説明した通りである。レコードをサブテンプレートに従ってレイアウトしたら、変数Numを1増やす(ステップ1910)。そして、次のデータに処理を進めるため、変数kを1増やす(ステップ1911)。また、ステップ1908で条件式と合わないデータであると判断された場合は、そのデータについてはレイアウト処理を行わないのでステップ1911へ進み、次のレコードを取得する。
次に、レコード数nと変数kとを比較する(ステップ1912)。もし、変数kがレコード数n未満であるなら、ステップ1906へ進み、k番目のデータについて処理を繰り返す。変数kがn以上であるなら、サブテンプレートを用いたレコードのレイアウトを終了し、サブテンプレートに従ってレイアウトされたレコード(これは前述のレイアウト済みコンテンツに相当する。)をフローエリアにレイアウトする処理へと進む。
まず、レイアウト編集アプリケーション121は、フローエリアのサイズを図34の属性情報3402から取得する(ステップ1913)。そして、レイアウト編集アプリケーション121は、レイアウトするサブテンプレートのサイズを図33のサイズ情報3302から取得する(ステップ1914)。そして、フローエリア内にレイアウトするレイアウト済みコンテンツのサイズを計算する(ステップ1915)。本実施形態では、ステップ1909のレイアウト処理においては、サブテンプレートの外枠のサイズはサブテンプレート内のコンテナのサイズによって変更されない。したがってレイアウト済みコンテンツの外枠サイズはサブテンプレートの外枠サイズのままである。ステップ1915では、レイアウト済みコンテンツの外枠のサイズを、フローエリアにレイアウトするレイアウト済みコンテンツの数に応じて拡大縮小する。フローエリア内にレイアウトするレイアウト済みコンテンツの数は変数Numによって指定される。拡大縮小は、各コンテンツについて同じ割合で実行される。そして、ステップ1916では、ステップ1915で拡大縮小(変倍)されたコンテンツをフローエリアにレイアウトし、出力する画像を生成する。印刷の場合も同様である。
図20は、フローエリア内にサブテンプレートによりレイアウト済みのコンテンツがレイアウトされた例を示している。図にはページマージン2001、固定のコンテナ2002と2003、フローエリア2004、サブテンプレート2005と2006が示されている。図20(A)では、フローエリア2004に4つのレイアウト済みコンテンツがレイアウトされており、フローエリアに適切にレイアウトされるように、各レイアウト済みコンテンツのサイズが計算されている。レイアウト済みコンテンツ一つ一つのサイズは全て同じ大きさになるように計算される。図20(B)は、フローエリアに5つのレイアウト済みコンテンツがレイアウトされている例を示している。
最後に、レイアウト編集アプリケーション121は、レイアウト結果を表示して終了する(ステップ1916)。このように、フローエリアのサイズは、いくつのレイアウト済みコンテンツがレイアウトされても固定である。このようにコンテンツをフローエリアにレイアウトすることで、レイアウトするコンテンツの数によってドキュメントの数(ページ数)が変わってしまうという問題を回避することができる。これは、ドキュメントの数が固定である"はがき"や"ダイレクトメール"などで特に有効になる。
なお、本実施形態では、レイアウトを試みるレコード数(変数n)を定め、それをレイアウト処理の終了条件としているが、変数Numが一定数に達したことを以て終了条件とすることもできる。このようにすると、レイアウトしきれないレコードも生じてしまうが、フローエリアに挿入されるサブテンプレート数を制限することができる。
また、レイアウトを試みるレコード数をあらかじめ定めず、条件に該当するレコードをデータベースから取得し終えたことを以て終了とすることもできる。
(フローエリアのレイアウト方法(ドキュメントに複数のフローエリアの場合))
次に、複数のフローエリアがテンプレート内に設定されている場合のレイアウト処理のフローを説明する。図21はレイアウト時にデータベースからデータが抽出され、複数のエリアにレイアウトされる様子を示した例、図22A,22Bは複数のフローエリアに対するレイアウト処理のフローを、図23は各フローエリアにおけるコンテンツのサイズ調整処理のフローを示している。
図21においてデータリスト2101は、データベースのデータリストの一部を示している。図21の例では、キーカラムとしてNameフィールドを設定しているため、Nameフィールドの値が同じレコードは1ドキュメントにレイアウトされる。従って、No1〜6までのレコード2102は、Nameフィールド値がTomなので、1ドキュメントにレイアウトされる。さらに、データフィールドのProductNameフィールドとDescriptionフィールドとImage1フィールドとを挿入するためのコンテナを有するサブテンプレートが作成されており、そのサブテンプレートがフローエリア2106、2107について関連づけられている。
また、フローエリア2106については、Category=Cameraという条件が設定されており、フローエリア2107については、Category=Printerという条件が設定されている。このため、2108、2109で示すように、サブテンプレートによりレイアウトされたレイアウト済みコンテンツは、条件式に応じたフローエリアにレイアウトされる。CategoryフィールドがCameraのレコード(No1,2,5)は、フローエリア2106にレイアウトされ、CategoryがPrinterのレコード(No3,4,6)は、フローエリア2107にレイアウトされる。これが複数のフローエリアが設定されているテンプレートを用いた場合のレイアウト処理の概要である。処理のフローは図22,23で示している。
図22A,図22Bの各ステップについて説明する。まず、レイアウト編集アプリケーション121は、レイアウトを試みるデータ(レコード)の数を取得する(ステップ2201)。データベースがシーケンシャルファイルなど、条件検索できない物の場合には、データベースからそのレコード数を取得する。また、ダイレクトメールなどでは、一定の条件で絞られたレコード全部を対象として、その数をデータ数として取得しても良い。これは図19のステップ1902についても同様である。図21では、レコードがNo1〜7であったので7が取得される。取得した数は変数nに代入される(ステップ2202)。
つぎに、nの値をチェックし、0であったらレイアウトすべきデータは存在しないので、この処理は終了する(ステップ2203)。nの値が0でなかったら、変数kに1を代入する(ステップ2204)。変数kは、現在何番目のデータを処理しているかを示す変数である。そして、設定されているフローエリアの数を取得する(ステップ2205)。この数は、使用するテンプレートについての図34のテンプレートデータ中に含まれるフローエリア情報3401の数を数えて得られる。取得したフローエリアの数は、変数AreaNumに代入する(ステップ2206)。
次に変数aに1を代入する(ステップ2207)。この変数aは、現在何個目のフローエリアの処理をしているかを示す変数である。なお変数aで示されるフローエリアをフローエリアaと呼ぶ。次に、フローエリアのサイズおよび設定されている条件を取得し、それぞれ構造体(レコード型データ)の配列AreaInfo[1..AreaNum]に保存する。配列AreaInfo[1..N]の各配列成分である構造体は、SizeとConditionという2つのフィールドを持つ。これらのフィールドはそれぞれAreaInfo[].SizeとAreaInfo[].Conditionと表される。そして、フローエリアaのサイズ及び設定されている条件は、AreaInfo[a].SizeとAreaInfo[a].Conditionとにそれぞれ代入される(ステップ2208)。なお、配列AreaInfo[1..AreaNum]はAreaNumの数に応じて動的にメモリ上に確保されるのが望ましい。
さらに、Num[a]に0を代入する(ステップ2209)。このNum[a]にはフローエリアaにレイアウトされるコンテンツの数が代入される。次に、変数を1つ増やす(ステップ2210)。そして、変数AreaNumの値がaの値以下であるか否か、すなわち設定されているエリアすべてに対して処理を行ったかどうかを確認する(ステップ2211)。処理が終わっていないのであれば、ステップ2208〜2210を繰り返し行う。全てのエリアに対して処理が終了したなら、k番目のレコードをチェックする(ステップ2212)。
そして変数a'に1を代入する(ステップ2213)。このa'は複数のエリアに対して条件式の比較、レイアウトの処理を行うために使用される変数である。次に、k番目のレコードがAreaInfo[a'].Conditionに代入されている条件を満たしているか判定する(ステップ2214,2215)。そして、条件が満足されるのであれば、そのk番目のレコードについて、フローエリアa'に関連づけられたサブテンプレートに従ってレイアウトを行う(ステップ2216)。そしてそのフローエリアa'にレイアウトされるコンテンツの数Num[a']を1つ増やす(ステップ2217)。
一方ステップ2215で条件式を満足しないと判定された場合は、次の不オーエリアについて処理を行うためa'の値を1増やす(ステップ2218)。そして変数a'の値をフローエリア数AreaNumと比較して、a'の方が小さければ、そのフローエリアa'について処理を繰り返す(ステップ2219)。a'の方が大きければ、テンプレートに設定されている全てのフローエリアについて、条件が満足されなかったものとしてステップ2220へ分岐する。テンプレートに設けられているいずれかのフローエリアにk番目のレコードがレイアウトされるか、または、全てのエリアについて試みたもののいずれのフローエリアの条件にも適合しなかった場合には、変数kを1つ増やして(ステップ2220)、レイアウトを試みるレコードの数と比較する(2221)。対象となるレコード全てについて試行が終了していなければ、次のレコードについてステップ2212からの処理を繰り返す。全てのレコードについて終了していれば、各フローエリア内のコンテンツのサイズ調整(フローエリアの最適化)処理を行い(ステップ2222)、処理を終了する。ステップ2222の処理については図23で説明する。
(フローエリアの最適化)
図23は複数フローエリアのレイアウト処理についてのフローである。各ステップについて説明する。まず、エリアの数を変数AreaNumに代入する(ステップ2301)。そして変数aに1を代入する(2302)。この変数aは現在どのエリアに対して処理を行っているかを示している変数である。次に、AreaInfo[a].Size(フローエリアaのサイズ)とNum[a](フローエリアaにレイアウトされるコンテンツの数)を、メモリ上の構造体配列AreaInfo[1..AreaNum]から取得する(ステップ2303)。そして、フローエリアaに指定されている(レイアウトする)サブテンプレートのデフォルトサイズを取得する(ステップ2304)。そして、レイアウト編集アプリケーション121は、取得したフローエリアaのサイズAreaInfo[a].Sizeと、そこにレイアウトするコンテンツの数Num[a]と、フローエリアaに関連づけられたテンプレートのデフォルトサイズより、フローエリアa内にレイアウトされるコンテンツのサイズを計算する(ステップ2305)。この計算方法は、図20の説明した方法と同じである。計算が終了したら、変数aを1つ増やす(ステップ2306)。変数aと変数AreaNumとを比較して全てのエリアに対して計算が終わっているかを確認し(ステップ2307)、終わっていないなら、ステップ2303からの処理を繰り返し行う。全てのエリアについてサブテンプレートのレイアウトが終了したら、ステップ2305で拡大縮小(変倍)されたコンテンツを、対応するフローエリアにレイアウトして出力する画像を生成する。そしてそのレイアウト結果を表示して処理を終了する(2308)。
(レイアウト規則設定)
図24、25はフローエリアにおけるレイアウト規則の設定UIとフローを示している。フローの各ステップについて説明する。図24、図25の処理手順は、作成されたテンプレートの各フローエリアについて行うことで、既存のフローエリアの設定変更をすることが可能である。
まず、図24のテキストボックス2402でレイアウト済みコンテンツの表示方法が指定される(ステップ2501)。指定される表示方法は均等割り、右揃え、左揃えなどである。この例では均等割りが指定されている。また、オペレータがラジオボタン2403をONにすることでフローエリアにレイアウトするレイアウト済みコンテンツの数を指定したか判断する(ステップ2502)。指定された場合は、コンテンツの数(レイアウト数とも呼ぶ。)を設定できるように、テキストボックスやスピンボタンを含むようにUIが変更される。オペレータが、レイアウト数の最大値と最小値をテキストボックス2404で数を指定すると、その値をレイアウト数として保存する(ステップ2503)。また、テキストボックスへ直接入力ではなく、スピンボタン2405で設定しても良い。ラジオボタン2403がOFFのときは、テキストボックス2404およびスピンボタン2405はグレーアウトされている。
次に、レイアウトパターンが指定されたかどうかを判断する(ステップ2504)。ラジオボタン2406がONされることにより、レイアウトパターンの変更が指定されたと判断し、変更後の状態を指定できるようにユーザインターフェースを変更する。領域2407はレイアウトパターンを指定するための部分であり、ラジオボタン2406がOFFのときはグレーアウトされている。ラジオボタン2406がONされるとここが表示されてレイアウトパターンの指定が可能となる。そして、ここで指定されたレイアウトパターンを、変更されているフローエリアのレイアウトパターンとして図34の属性情報3402に保存する(ステップ2505)。
ここで、設定されるレイアウトパターンは、そのフローエリアにレイアウトされるコンテンツの数、レイアウトの段数、1段当たりの数等によってユーザが任意に指定できる。ボックス2408には、着目フローエリアにレイアウトされるコンテンツの数が入力される。そして、ボックス2409には、コンテンツを何段でレイアウトするのかが入力される。ボックス2410には段番号が入力され、ボックス2411には、ボックス2410で示される番号の段に何個コンテンツをレイアウトするのかが指定される。なおこの例では「段」について指定できるものとしているが「列」について同様に指定できるものとしても良い。また、段と列のいずれかを選択して指定できるようにしてもよい。両方について指定できるようにしてもよい。
ここで、まずレイアウトするコンテンツの数が指定された場合、ボックス2408で指定できる数は、その範囲内の個数に限られる。例えば、レイアウトするコンテンツの数を2〜4と設定されたとすると、指定できる個数は2,3,4である。それ以外の値が指定されるとエラーになる。そして、段数2410はオペレータが任意の数を指定することが可能である。指定された数によって、ボックス2411に表示する数を決定する。ボックス2411では、ボックス2408で指定したコンテンツの個数の内、何個その段にレイアウトするのかが指定されるため、レイアウトする数がボックス2408で指定した数より大きいとエラーになる。例えば、ボックス2408で6個が指定されており、段数として2段に指定された場合、1段目に2つレイアウトし、2段目に5つレイアウトするという指定はエラーになる。
レイアウトする数が6つの場合、5つの場合、4つの場合と、複数のレイアウトパターンを設定したい場合は、オペレータは追加ボタン2413を押下する。この操作がされると、新たなレイアウトパターンが追加される(ステップ2506)。スクロールバー2412は、指定するパターンが増えて、表示領域内に収まらなくなった場合に表示される。最後に、OKボタン2415が押下されることによって、それまでに指定された表示方法とレイアウトパターンとが確定されて、フローエリア情報3401の属性情報3402に保存される(ステップ2507)。また、キャンセルボタン2414が押下されると、レイアウト規則設定が開始されてから指定された表示方法とレイアウトパターンとはキャンセルされる。
図26は、レイアウト規則が設定された場合のレイアウト例を示している、図26(A)は、左揃え以外は、レイアウト規則が設定されていないフローエリア2601のレイアウト例を示しており、フローエリア2601に3つのコンテンツがレイアウトされるものとする。すると、図16で指定したレイアウトフロータイプ(ここではZ型とする)でレイアウト済みコンテンツがレイアウトされ、図26(A)のようなレイアウト結果になる。
図26(B)は、図26(A)とは異なるレイアウト規則が設定されているフローエリア2603のレイアウト例を示している。ここで設定されているレイアウト規則は、均等割り付けで、レイアウト個数が3つのときは、2段で1段目は1個、2段目は2個とコンテンツをレイアウトする。図26(A)と同じくエリアに3つのコンテンツがレイアウトされたとすると、図26(B)のように、1段目に1個、2段目に2個が均等割り付けでレイアウトされる。このようにレイアウト規則を設定することにより、ユーザは自動的な流し込みでは、実現できなかった自由度の高いレイアウトを作成することが可能である。
なお、上記説明において、印刷もプレビューと同様の手順で行うと記載しているが、印刷の場合には既に作成されているテンプレート及びサブテンプレートを使用してデータをレイアウトするため、テンプレートおよびサブテンプレートの作成処理は、印刷時には行う必要はない。印刷時には、テンプレート及びサブテンプレートの作成の代わりに、テンプレート及びサブテンプレートの指定が行われ、指定されたテンプレート及びサブテンプレートにしたがって文書が作成され印刷される。これは第2,第3実施形態についても同様である。
以上説明したように、本実施形態に係る文書処理装置によれば、ドキュメントテンプレートに複数のフローエリアを定義することができ、各フローエリアごとに挿入されるデータの条件を定義できるために、データの配置をその条件によって制御することができる。
また、各フローエリア内における部品データ(サブテンプレートでレイアウトされたデータベースのレコード等のバリアブルデータに相当する。)の配置をフローエリア毎に定義できるために、フローエリア毎に相異なるレイアウトで部品データを配置できる。
また、各フローアリア毎に挿入可能な部品データの数を制限できるために、挿入されたデータが判読が困難なほど小さく表示または印刷されることを防止できる。
また、フローエリア毎に挿入可能な部品データ数を制限でき、しかも各フローエリアに挿入される部品データのサイズは、フローエリアのサイズと部品データの数とで決まる。そのために、ひとつのテンプレートを用いて作成した部品データの表示(印刷)サイズを、あるフローエリアでは大きく、他のフローエリアでは小さくするというようにフローエリア毎に制御することができる。
このように、ひとつのサブテンプレートを用いてレイアウトしたそれぞれが互いに対等な部品データを、それが配置されるフローエリアを指定し、また、配置されるフローエリアにおける部品データの数や配置の仕方を制御することで、利用者が望むようにレイアウトし、文書を作成することができる。そしてそれらを表示および印刷させることができる。このため、ダイレクトメールなどにより、個人などの相手方に合わせた情報の提供を実現できるのみならず、相手に応じた情報の重要度を反映したレイアウト、たとえば重要な情報は大きく注目を引きやすい先頭部文に配したレイアウトなどで文書を作成できる。
[第2実施形態]
本発明の第2実施形態は、フローエリア内にレイアウト済みコンテンツをレイアウトして、フローエリア外にオーバーフローした際、別のフローエリアへレイアウト済みコンテンツをレイアウトする方法を含んだコンピュータプログラムや文書処理装置、自動レイアウトシステムについてである。本実施形態は、図34のテンプレートデータ3401にフローエリア間のリンク(エリアリンク)を定義するエリアリンク情報が新たに含まれることと、リンクされたフローエリアに関する処理手順が、複数のフローエリアを有するテンプレートへのデータのレイアウト処理に付加されることである。フローエリア間のエリアリンクはコンテナ間のリンクのように距離を一定に保つための情報ではなく、あふれるコンテンツを流し込む先を指定するための情報である。
<フローエリアのリンク>
図27、28はフローエリアのリンクについてのUI図と設定処理のフローを示している。フローエリアのリンクとは、前記フローエリアを複数作成された状態で、2つのエリア間に関連付けを設定することが可能であることを意味している。ここでの関連付けとは、関連付けられた1つめのエリアをオーバーフローしたサブテンプレートをもう1つのエリアへレイアウトすることを意味する。エリアのリンク設定フローの各ステップについて説明する。
まず、エリアリンクモードへ遷移する(ステップ2801)。これは図27のツールボタン2708をマウスポインタ2709でオペレータが押下することによって指示され、その指示に従って行われる。次に、着目しているテンプレートに含まれる第1のフローエリアがマウスポインタで選択されると、その第1のフローエリアが、エリアリンクを設定する親フローエリアとして設定され、その旨を示す情報が一時的に保存される(ステップ2802)。
次に、着目テンプレートに含まれる第2のフローエリアがマウスポインタで選択されると、その第2のフローエリアはリンクを設定する子フローエリアとして設定され一時的に保存される(ステップ2803)。ステップ2802とステップ2803で指定した第1と第2のフローエリアは同一フローエリアではいけない。そして、指定された2つのフローエリア間にフローリンクを設定するかどうかを判断する(ステップ2804)。この判断はオペレータによる入力に基づいて行われる。フローリンクを設定すると判断されれば、次に親フローエリアの設定を子フローエリアに継承させるかどうかを判断する(ステップ2805)。これもオペレータの入力に基づいて判断される。これは、リンクされた2つのフローエリアは、2つに分割された実質1つのフローエリアとして機能するため、各種設定(図15や図25の手順で設定される設定など)は共通にしなければならない。したがって、子フローエリアは親フローエリアの設定を受け継ぐ。設定を継承しないのであれば、ステップ2802へ戻り再設定をするか、リンク設定を終了する(ステップ2806)。
親フローエリアの設定を子フローエリアに承継することを確認する旨の入力がオペレータによりされたなら、親フローエリアと子フローエリアとの間にエリアリンクが設定される(ステップ2807)。データ上は、たとえば、テンプレートデータ3401に、第1のフローエリアが親であり、第2のフローエリアが子であることを示すエリアリンク情報を付加する。
同時に、フローエリアのリンク状態や親子関係をユーザに示すために、図27の矢印2707が表示される。ここでは、フローエリア2705が親フローエリアで、フローエリア2706が子フローエリアであることが示されている。
<リンクされたフローエリアのレイアウト>
図28の手順でリンクが設定されたフローエリアにおけるコンテンツのレイアウトフローを説明する。図29,30はレイアウト例とフローを示している。図30のフローの各ステップについて説明する。このフローは、第1実施形態で説明した図19のレイアウトフローのステップ1913以降に対応しており、フローエリアにエリアリンクが設定されているときは、図19のステップ1913以降の代わりに、図30の処理を行う。すなわち、本実施形態では、図19のステップ1912とステップ1913との間で、使用しているテンプレートに含まれるフローエリアにエリアリンクが設定されているか判定し、エリアリンクが設定されていれば図30のステップ3001に分岐する。また、図14のステップ1411における判定では、エリアリンクが設定されたフローエリアはひとつのフローエリアとみなす。さらに、図23ステップ2303の直前にフローエリアaにエリアリンクが設定されているか判定し、設定されていればステップ2303〜2305に変えて、図30のステップ3001〜ステップ3005を実行する。そして、それ以後、図23の処理の中では当該親フローエリアおよび子フローエリアはともに処理済みとして扱われる。
さて図30において、まず、親フローエリアのサイズを取得する(ステップ3001)。そして、レイアウトするコンテンツ(すなわちフローエリアに関連づけられているサブテンプレートのサイズ)を取得する(ステップ3002)。そして、そのサブテンプレートサイズのコンテンツを、変数Numの値(フローエリア内にレイアウトされるコンテンツの数)だけ、親エリア内にレイアウトしたときに、オーバーフローが発生しないか判断する(ステップ3003)。すなわち、フローエリアにコンテンツを隙間無く並べてNumのコンテンツが納まるか判定する。たとえば、サブテンプレートの縦横のサイズとフローエリアの縦横のサイズとから、テンプレートを配置できる最大数を縦横各方向について求めることができ、その数を乗じることで配置可能なサブテンプレートの最大数を求めることができる。この値と変数Numとの比較でステップ3003は判断できる。
もし、オーバーフローが発生するのであれば、子フローエリアのサイズを取得する(ステップ3004)。そして、親フローエリアと子フローエリアのサイズを含めて、サブテンプレートのレイアウトサイズを計算する(ステップ3005)。ただし、親子のフローエリアは別々のエリアであるから、単純に面積を足し合わせることはできない。まず、親フローエリアに納まらない数のコンテンツが縮小なしに子フローエリアに納まるか判定する。納まれば縮小率は1である。したがって、レイアウトされるコンテンツのサイズはサブテンプレートのサイズそのものである。
一方、納まらなければ、全コンテンツを同縮尺で縮小する。この場合の計算方法は図19でのフローで説明した方法と原則的に同じであるが、親子それぞれのフローエリアに納まるコンテンツの数が、Num以上の最低の数になるように縮小率は決定される。このために、たとえばフローエリアに納まるコンテンツの数が増加する最大の縮小率を求め、その縮小率でコンテンツを縮小してもまだNum個のコンテンツが収めきれない場合には、さらにフローエリアに納まるコンテンツの数が増加する次に大きな縮小率を求める、というように試行錯誤的に縮小率を決定する方法が考えられる。
計算後、決定された縮小率で各コンテンツは変倍され、まず親フローエリアにレイアウトされ、レイアウトしきれないコンテンツは、子フローエリアにこれも決定された縮小率で変倍されてレイアウトされる。最後にレイアウト結果を表示して終了する(ステップ3006)。
図29は、リンクされたフローエリア内にコンテンツがレイアウトされた例を示している。フローエリア2901,2902は、エリアリンク2903によりリンクされている。親フローエリア2901にはコンテンツ2904が、子フローエリアにはコンテンツ2905がレイアウトされている。図29で示すように、フローエリア2901には4つのコンテンツがレイアウトされるが、4つめのコンテンツでオーバーフローが発生した。エリアリンクの設定がない場合、4つのサブテンプレートをエリア内にレイアウトするために、1つ1つのコンテンツを縮小しなければならない。しかし、リンクの設定を行うことで、フローエリア2902にもサブテンプレートをレイアウトできるため、オーバーフローしたコンテンツをそこにレイアウトすることができる。
このように、コンテンツを、サブテンプレートで定義されたサイズ以下のサイズに縮小することなく、レイアウトすることが可能になる。また、縮小する場合でも、エリアリンクが内場合に比して縮小率を小さくすることができる。
また、矩形のフローエリアをエリアリンクで結合することで、フローエリアの形状の自由度が高まる。
なお本実施形態ではエリアリンクで関連づけられるのは2つのフローエリアとして説明したが、エリアリンクの連鎖を設けることで、3つ以上の複数のフローエリアについても、ひとつのフローエリアと同一視させることができる。
[第3実施形態]
本発明の第3実施形態は、第1実施形態ではフローエリアにレイアウトされるレコードはデータベースに格納されている順番にフェッチされてレイアウトされる例を説明した。本実施形態では、ユーザがデータベースのソートを行うことを可能にした自動レイアウトシステムについて説明する。
データのソートを行う処理以外は、第1実施形態と同じ処理を行うため、それについては説明は省略する。
図31,32はデータのソートにおけるフローと、ダイアログ例を示している。フローの各ステップについて説明する。まず、データソートダイアログを表示する(ステップ3101)。そして、図32で示されるダイアログでデータのソートを行う。
図32において、3201はダイアログ、3202は接続されているデータファイル名、3203はデータファイルのデータ数、3204はどの順番でソートするかを指定するラジオボタン、3205はデータをソートする条件を入力するリストボックス、3206はソートされた結果が表示される表示エリア、3207はスクロールバー、3208はキャンセルボタン、3209はOKボタンを示している。このダイアログで設定するのは、ソートされる並び順と、ソートする条件である。
次に入力されたソート条件を設定して(3102)、データベースをソートする(ステップ3103)。そしてソートされた結果が表示される(ステップ3104)。この図の例では、指定されたソートキー:Priceについて昇順に並べられて結果が表示されている。ユーザが結果を確認後、再検索の指示がされたならステップ3102に戻り処理を繰り返す。ユーザは検索終了ならばOKボタンを押下する。この場合、ソートされたデータベースを保存して終了する。ユーザがキャンセルボタンを押下したなら、結果を反映させないで終了する(ステップ3105)。データをソートすることによって、レイアウトする条件に当てはまっているデータの中で、さらにユーザがエリア内優先的にレイアウトしたい商品を選択することを可能にする。
なお、図31の処理は、ユーザインターフェースの表示と操作図1Aのコンピュータ101で行わせ、ソート処理自体はデータベースサーバ117により実行させるのが望ましい。
このようにすることで、指定したフィールドをキーにしてソートされた順序で、レコードをドキュメントにレイアウトすることが可能となる。
[その他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
実施形態のコンピュータシステム構成図を示している。 実施形態のコンピュータモジュールの概略図を示す図である。 実施形態の他のコンピュータシステム構成図を示す図である。 実施形態のメニューバー、ツールバー、ワークエリア、フローティングパレットを含む典型的なアプリケーションのメインウインドウを示す図である。 実施形態のコンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナの一面をスクリーン、ツール、アイコンで示す図である。 実施形態の典型的なコンテナルールを示す図である。 実施形態のリンクを作成するフローを示す図である。 リンク作成時のUI図例を示す図である。 実施形態におけるレイアウト計算の全体フローを示す図である。 実施形態におけるレイアウト計算の、詳細フローを示す図である。 実施形態における図9のフローに対応するUI例である。 実施形態のレイアウト計算時におけるコンテナの集合について説明した図を示す図である。 実施形態におけるマルチレコードの概要図を示す図である。 実施形態1におけるフローエリアのUI例を示す図である。 実施形態1における全体フローを示す図である。 実施形態1におけるフローエリアの各種設定のフローを示す図である。 実施形態1におけるフローエリアの各種設定を行うダイアログ例を示す図である。 実施形態1におけるサブテンプレートのレイアウト例を示す図である。 実施形態1におけるサブテンプレートのレイアウトフローを示す図である。 実施形態1におけるフローエリア内でのサブテンプレートのレイアウトフローを示す図である。 実施形態1におけるフローエリア内にサブテンプレートがレイアウトされたUI例を示す図である。 実施形態1における複数フローエリアにサブテンプレートがレイアウトされるUI例を示す図である。 実施形態1における複数フローエリアでのサブテンプレートの全体レイアウトフローを示す図である。 実施形態1における複数フローエリアでのサブテンプレートの全体レイアウトフローを示す図である。 実施形態1における複数フローエリアでのサブテンプレートのレイアウト計算フローを示す図である。 実施形態1におけるレイアウト規則設定ダイアログの例を示す図である。 実施形態1におけるレイアウト規則設定フローを示す図である。 実施形態1におけるレイアウト規則を設定した際のレイアウト例を示す図である。 実施形態2におけるフローエリアのリンクのUI例を示す図である。 実施形態2におけるフローエリアのリンクの設定フローについて示す図である。 実施形態2におけるフローエリアのリンクを設定した際のサブテンプレートのレイアウト例を示す図である。 実施形態2におけるフローエリアのリンクを設定時のレイアウト計算フローを示す図である。 実施形態3におけるデータのソートフローを示す図である。 実施形態3におけるデータのソートダイアログの例を示す図である。 テンプレートデータの一例を示す図である。 フローエリアの定義されたテンプレートデータの一例を示す図である。
符号の説明
101 汎用コンピュータモジュール
103 ユーザインターフェース
105 レイアウトエンジン
119 データベース
121 レイアウトアプリケーションプログラム
132 キーボード
133 マウス
143 I/Oインタフェース
144 ビデオディスプレイ
301 アプリケーションウインドウ
303 ツールバー
313 カーソル/ポインタデバイス
406 リンクツールボタン
407、408 コンテナ
409 アンカーアイコン
410 固定されていない辺
412 リンク
1303 フローエリア作成ツールボタン
2708 フローエリアリンクツールボタン

Claims (21)

  1. レイアウトすべき複数のコンテンツデータを含むレコードと、当該コンテンツデータが配置される第1領域を備えた第1テンプレートとを用いて、当該第1テンプレートのレイアウトを決定する文書処理装置であって、
    前記第1テンプレートに対して複数のレコードに含まれるコンテンツデータを配置可能な第2領域と、当該第2領域の外に前記第1領域とを設定する第1設定手段と、
    前記第1設定手段によって設定された前記第2領域に対してデータベースからレコードを抽出するための抽出条件と前記第2領域内に配置される第2テンプレートとを設定する第2設定手段と、
    前記第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に対して、前記コンテンツデータを挿入し、当該コンテンツデータと当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に設定されたレイアウト制限情報とを用いて当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域のサイズを決定するためにレイアウト処理を実行するレイアウト手段と、
    前記第1テンプレートのレイアウトを決定するために前記文書処理装置内で発行される当該レイアウトを出力することを示す指示に従って実行される一連の処理として、前記第2領域の外に設定された第1領域用に、前記第2領域の外に設定された第1領域と当該第1領域に割り当てられるコンテンツデータとを用いて1回のレイアウト処理を実行すべく前記レイアウト手段を制御し、一方、前記第2領域用に、前記抽出条件により抽出された複数のレコードと前記第2テンプレートとを用いて、当該複数のレコードについて複数回のレイアウト処理を実行すべく前記レイアウト手段を制御するレイアウト制御手段とを備えることを特徴とする文書処理装置。
  2. 前記第2設定手段は、前記第2テンプレートに対して複数の第1領域と、当該複数の第1領域間に当該複数の第1領域を結合するための第1リンクを設定することを特徴とする請求項1に記載の文書処理装置。
  3. 前記レイアウト手段は、前記第1リンクにより結合された複数の第1領域に割り当てられる各コンテンツデータについて、挿入されるコンテンツデータのサイズとレイアウト処理が実行された後のコンテンツデータのサイズとの差が等しくなるように、前記レイアウト処理を実行することを特徴とする請求項2に記載の文書処理装置。
  4. 第2領域に配置すべき複数の第2テンプレートが第2領域にまらない場合、当該複数の第2テンプレートが前記第2領域に収まるような縮尺率を算出し、当該算出された縮尺率で前記第2テンプレートを縮小して前記第2領域に配置する配置手段をさらに備えることを特徴とする請求項1乃至のいずれか1項に記載の文書処理装置。
  5. 前記第1設定手段は、複数の前記第2領域を前記第1テンプレートに対して設定し、
    前記第2設定手段は、複数の前記第2領域ごとに相異なる抽出条件を設定することを特徴とする請求項1乃至のいずれか1項に記載の文書処理装置。
  6. 前記第1設定手段は、複数の第2領域間を関連づける第2リンクを設定し、
    前記配置手段は、前記第2領域に配置されるべき第2テンプレートが前記複数のうちのひとつの第2領域にまらない場合には、前記第2リンクにより関連づけられたその他の領域に配置することを特徴とする請求項に記載の文書処理装置。
  7. 前記第1設定手段は、前記第2リンクを設定することで、当該第2リンクにより関連付けられた一方の第2領域の設定情報を他方の第2領域に対して設定することを特徴とする請求項6に記載の文書処理装置。
  8. 第1設定手段と第2設定手段とレイアウト手段とレイアウト制御手段とを備えた文書処理装置における、レイアウトすべき複数のコンテンツデータを含むレコードと、当該コンテンツデータが配置される第1領域を備えた第1テンプレートとを用いて、当該第1テンプレートのレイアウトを決定する文書のレイアウト方法であって、
    前記第1設定手段が、前記第1テンプレートに対して複数のレコードに含まれるコンテンツデータを配置可能な第2領域と、当該第2領域の外に前記第1領域とを設定する第1設定工程と、
    前記第2設定手段が、前記第1設定工程によって設定された前記第2領域に対してデータベースからレコードを抽出するための抽出条件と前記第2領域内に配置される第2テンプレートとを設定する第2設定工程と、
    前記レイアウト手段が、前記第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に対して、前記コンテンツデータを挿入し、当該コンテンツデータと当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に設定されたレイアウト制限情報とを用いて当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域のサイズを決定するためにレイアウト処理を実行するレイアウト工程と、
    前記レイアウト制御手段が、前記第1テンプレートのレイアウトを決定するために前記文書処理装置内で発行される当該レイアウトを出力することを示す指示に従って実行される一連の処理として、前記第2領域の外に設定された第1領域用に、前記第2領域の外に設定された第1領域と当該第1領域に割り当てられるコンテンツデータとを用いて1回のレイアウト処理を実行すべく前記レイアウト手段を制御し、一方、前記第2領域用に、前記抽出条件により抽出された複数のレコードと前記第2テンプレートとを用いて、当該複数のレコードについて複数回のレイアウト処理を実行すべく前記レイアウト手段を制御するレイアウト制御工程と
    を備えることを特徴とする文書のレイアウト方法。
  9. 前記第2設定工程では、前記第2テンプレートに対して複数の第1領域と、当該複数の第1領域間に当該複数の第1領域を結合するための第1リンクを設定することを特徴とする請求項8に記載の文書のレイアウト方法。
  10. 前記レイアウト工程では、前記第1リンクにより結合された複数の第1領域に割り当てられる各コンテンツデータについて、挿入されるコンテンツデータのサイズとレイアウト処理が実行された後のコンテンツデータのサイズとの差が等しくなるように、前記レイアウト処理を実行することを特徴とする請求項9に記載の文書のレイアウト方法。
  11. 前記第2領域に配置すべき複数の第2テンプレートが第2領域にまらない場合、当該複数の第2テンプレートが前記第2領域に収まるような縮尺率を算出し、当該算出された縮尺率で前記第2テンプレートを縮小して前記第2領域に配置する配置工程をさらに備えることを特徴とする請求項8乃至10のいずれか1項に記載の文書のレイアウト方法。
  12. 前記第1設定工程では、複数の前記第2領域を前記第1テンプレートに対して設定し、
    前記第2設定工程では、複数の前記第2領域ごとに相異なる抽出条件を設定することを特徴とする請求項8乃至11のいずれか1項に記載の文書のレイアウト方法。
  13. 前記第1設定工程では、複数の第2領域間を関連づける第2リンクを設定し、
    前記配置工程では、前記第2領域に配置されるべき第2テンプレートが前記複数のうちのひとつの第2領域にまらない場合には、前記第2リンクにより関連づけられたその他の領域に配置することを特徴とする請求項11に記載の文書のレイアウト方法。
  14. 前記第1設定工程では、前記第2リンクを設定することで、当該第2リンクにより関連付けられた一方の第2領域の設定情報を他方の第2領域に対して設定することを特徴とする請求項13に記載の文書のレイアウト方法。
  15. レイアウトすべき複数のコンテンツデータを含むレコードと、当該コンテンツデータが配置される第1領域を備えた第1テンプレートとを用いて、当該第1テンプレートのレイアウトを決定する文書処理をコンピュータにより実行させるためのプログラムであって、
    前記第1テンプレートに対して複数のレコードに含まれるコンテンツデータを配置可能な第2領域と、当該第2領域の外に前記第1領域とを設定する第1設定手段と、
    前記第1設定手段によって設定された前記第2領域に対してデータベースからレコードを抽出するための抽出条件と前記第2領域内に配置される第2テンプレートとを設定する第2設定手段と、
    前記第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に対して、前記コンテンツデータを挿入し、当該コンテンツデータと当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域に設定されたレイアウト制限情報とを用いて当該第2領域の外に設定された第1領域および前記第2テンプレートに含まれる第1領域のサイズを決定するためにレイアウト処理を実行するレイアウト手段と、
    前記第1テンプレートのレイアウトを決定するために前記文書処理装置内で発行される当該レイアウトを出力することを示す指示に従って実行される一連の処理として、前記第2領域の外に設定された第1領域用に、前記第2領域の外に設定された第1領域と当該第1領域に割り当てられるコンテンツデータとを用いて1回のレイアウト処理を実行すべく前記レイアウト手段を制御し、一方、前記第2領域用に、前記抽出条件により抽出された複数のレコードと前記第2テンプレートとを用いて、当該複数のレコードについて複数回のレイアウト処理を実行すべく前記レイアウト手段を制御するレイアウト制御手段と
    してコンピュータを機能させることを特徴とするプログラム。
  16. 前記第2設定手段は、前記第2テンプレートに対して複数の第1領域と、当該複数の第1領域間に当該複数の第1領域を結合するための第1リンクを設定することを特徴とする請求項15に記載のプログラム。
  17. 前記レイアウト手段は、前記第1リンクにより結合された複数の第1領域に割り当てられる各コンテンツデータについて、挿入されるコンテンツデータのサイズとレイアウト処理が実行された後のコンテンツデータのサイズとの差が等しくなるように、前記レイアウト処理を実行することを特徴とする請求項16に記載のプログラム。
  18. 第2領域に配置すべき複数の第2テンプレートが第2領域にまらない場合、当該複数の第2テンプレートが前記第2領域に収まるような縮尺率を算出し、当該算出された縮尺率で前記第2テンプレートを縮小して前記第2領域に配置する配置手段を更に備えることを特徴とする請求項15乃至17のいずれか1項に記載のプログラム。
  19. 前記第1設定手段は、複数の前記第2領域を前記第1テンプレートに対して設定し、
    前記第2設定手段は、複数の前記第2領域ごとに相異なる抽出条件を設定することを特徴とする請求項15乃至18のいずれか1項に記載のプログラム。
  20. 前記第1設定手段は、複数の第2領域間を関連づける第2リンクを設定し、
    前記レイアウト制御手段は、前記第2領域に配置されるべき第2テンプレートが前記複数のうちのひとつの第2領域にまらない場合には、前記第2リンクにより関連づけられたその他の領域に配置することを特徴とする請求項18に記載のプログラム。
  21. 前記第1設定手段は、前記第2リンクを設定することで、当該第2リンクにより関連付けられた一方の第2領域の設定情報を他方の第2領域に対して設定することを特徴とする請求項20に記載のプログラム。
JP2004024587A 2004-01-30 2004-01-30 文書処理装置及び文書処理方法及びコンピュータプログラム Expired - Fee Related JP4095558B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004024587A JP4095558B2 (ja) 2004-01-30 2004-01-30 文書処理装置及び文書処理方法及びコンピュータプログラム
US11/043,057 US7934154B2 (en) 2004-01-30 2005-01-27 Document processing apparatus, document processing method, and document processing program
EP05250452.9A EP1566742B1 (en) 2004-01-30 2005-01-28 Dynamic document layout
CNB2005100050603A CN100362464C (zh) 2004-01-30 2005-01-31 文件处理装置和文件处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004024587A JP4095558B2 (ja) 2004-01-30 2004-01-30 文書処理装置及び文書処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2005216182A JP2005216182A (ja) 2005-08-11
JP4095558B2 true JP4095558B2 (ja) 2008-06-04

Family

ID=34709070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004024587A Expired - Fee Related JP4095558B2 (ja) 2004-01-30 2004-01-30 文書処理装置及び文書処理方法及びコンピュータプログラム

Country Status (4)

Country Link
US (1) US7934154B2 (ja)
EP (1) EP1566742B1 (ja)
JP (1) JP4095558B2 (ja)
CN (1) CN100362464C (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051276B1 (en) * 2000-09-27 2006-05-23 Microsoft Corporation View templates for HTML source documents
JP4047308B2 (ja) * 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4250577B2 (ja) * 2004-08-31 2009-04-08 キヤノン株式会社 情報処理装置、情報処理方法、ならびにプログラム
GB2421106A (en) * 2004-12-07 2006-06-14 Hewlett Packard Development Co A method and apparatus for preparing variable-data documents for publishing
US20070234232A1 (en) * 2006-03-29 2007-10-04 Gheorghe Adrian Citu Dynamic image display
US20070028169A1 (en) * 2005-07-28 2007-02-01 Microsoft Corporation Getting started assistance
JP2007048003A (ja) 2005-08-09 2007-02-22 Canon Inc 情報処理装置及びその制御方法、プログラム
GB2430061A (en) * 2005-09-08 2007-03-14 Hewlett Packard Development Co Templates for variable data printing
GB2430060A (en) * 2005-09-08 2007-03-14 Hewlett Packard Development Co Flows for variable data printing
JP4686339B2 (ja) * 2005-11-14 2011-05-25 大日本印刷株式会社 汎用バリアブルプリント多面割付編集方法、装置
KR100750157B1 (ko) * 2006-01-18 2007-08-21 삼성전자주식회사 화상형성시스템 및 화상형성방법
WO2007094482A2 (en) * 2006-02-14 2007-08-23 Casio Computer Co., Ltd. Server apparatus, server control program and client apparatus
JP4848801B2 (ja) * 2006-03-09 2011-12-28 カシオ計算機株式会社 画面表示制御装置および画面表示制御処理プログラム
WO2007114456A1 (en) * 2006-03-29 2007-10-11 Casio Computer Co., Ltd. Server apparatus of computer system
JP2007334510A (ja) * 2006-06-13 2007-12-27 Canon Inc 自動レイアウトシステム及び方法
JP4819593B2 (ja) * 2006-06-23 2011-11-24 キヤノン株式会社 情報処理装置及び情報処理方法及び情報処理プログラム
JP4761553B2 (ja) * 2006-08-03 2011-08-31 キヤノン株式会社 プレゼンテーション装置及び制御方法
JP4957126B2 (ja) * 2006-08-31 2012-06-20 カシオ計算機株式会社 クライアント装置およびプログラム
US20080077555A1 (en) * 2006-09-22 2008-03-27 Miller Frank W Variable data workflow system and method
US8127227B1 (en) * 2006-10-23 2012-02-28 Sprint Spectrum L.P. Computerized method for dynamic content placement in a document
GB2443448B (en) * 2006-10-31 2011-06-08 Hewlett Packard Development Co Variable data printing
JP2008129702A (ja) 2006-11-17 2008-06-05 Canon Inc 情報処理装置および制御方法および制御プログラム
JP5126465B2 (ja) * 2006-12-14 2013-01-23 大日本印刷株式会社 バリアブル印刷用文書編集システム、および、バリアブル印刷用文書編集方法
JP4956202B2 (ja) * 2007-01-16 2012-06-20 キヤノン株式会社 情報処理装置及び情報処理方法及びプログラム
JP4869093B2 (ja) * 2007-02-02 2012-02-01 キヤノン株式会社 情報処理装置及びその制御方法
US8179539B2 (en) 2007-02-27 2012-05-15 Brother Kogyo Kabushiki Kaisha Printing apparatus and print pattern setting device
AU2007201627B2 (en) * 2007-04-13 2010-11-25 Canon Kabushiki Kaisha Gluing layout containers
US9098263B2 (en) * 2007-04-30 2015-08-04 Microsoft Technology Licensing, Llc Database application assembly and preparation
US7949948B2 (en) * 2007-05-09 2011-05-24 Microsoft Corporation Constraint and rule-based page layout
JP4946738B2 (ja) * 2007-09-03 2012-06-06 セイコーエプソン株式会社 画像処理装置、画像処理方法、および、画像処理プログラム
US9152656B2 (en) * 2007-11-20 2015-10-06 Microsoft Technology Licensing, Llc Database data type creation and reuse
US7870164B2 (en) * 2007-11-20 2011-01-11 Microsoft Corporation Database part creation, merge and reuse
US20090248740A1 (en) * 2007-11-20 2009-10-01 Microsoft Corporation Database form and report creation and reuse
US20090182615A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Self-serve direct-to-consumer mail marketing service
JP4725587B2 (ja) * 2008-03-18 2011-07-13 カシオ計算機株式会社 サーバ装置及びサーバ制御プログラム
JP2010113479A (ja) * 2008-11-05 2010-05-20 Canon Inc 情報処理装置及び情報処理方法
JP2010123002A (ja) * 2008-11-20 2010-06-03 Canon Inc 文書画像レイアウト装置
JP5219868B2 (ja) 2009-02-04 2013-06-26 キヤノン株式会社 レイアウト装置、レイアウト方法、およびレイアウトプログラム
JP5335495B2 (ja) * 2009-03-10 2013-11-06 キヤノン株式会社 情報処理装置、画像データ生成方法、及びコンピュータプログラム
JP4697321B2 (ja) * 2009-03-24 2011-06-08 カシオ計算機株式会社 コンピュータシステム、クライアント装置及びプログラム
JP2011008352A (ja) * 2009-06-23 2011-01-13 Canon Inc 文書処理装置、文書処理方法、及びプログラム
US8271520B1 (en) * 2011-03-31 2012-09-18 Accenture Global Services Limited Expression editor tool
US9229914B2 (en) 2011-06-30 2016-01-05 International Business Machines Corporation Optimizing the layout of electronic documents by reducing presentation size of content within document sections so that when combined a plurality of document sections fit within a page
US20150169144A1 (en) * 2011-11-14 2015-06-18 Google Inc. Presenting Response Options to Questions
CN103136186B (zh) * 2011-12-05 2016-06-22 北大方正集团有限公司 拼音排版方法和装置
CN103136185B (zh) * 2011-12-05 2016-03-16 北大方正集团有限公司 块式排版的方法和装置
JP2014127188A (ja) * 2012-12-27 2014-07-07 Toshiba Corp 整形装置及び方法
JP6146560B2 (ja) 2013-05-24 2017-06-14 ブラザー工業株式会社 印刷物作成プログラム及び印刷物作成方法
CN103440233A (zh) * 2013-09-10 2013-12-11 青岛大学 一种科技论文标准化自动检测编辑系统
US20160048605A1 (en) * 2014-08-14 2016-02-18 International Business Machines Corporation Integrating image renditions and page layout
JP6008149B2 (ja) * 2015-01-06 2016-10-19 株式会社ベビーユニバース 印刷用データ生成システム
CN105260351B (zh) * 2015-09-10 2018-05-01 武汉改图网技术有限公司 一种基于自适应模版的印刷品在线自助设计方法
CN106055323B (zh) * 2016-05-26 2019-04-16 浪潮软件集团有限公司 一种实现跑马灯无缝滚动效果的方法和装置
JP6819399B2 (ja) * 2017-03-24 2021-01-27 富士ゼロックス株式会社 操作画面生成装置及び操作画面生成プログラム
CN107609053A (zh) * 2017-08-23 2018-01-19 北京奇虎科技有限公司 一种网页展示方法和装置
CN107729485B (zh) * 2017-10-17 2022-01-14 Oppo广东移动通信有限公司 一种数据管理方法、装置、终端及计算机可读存储介质
JP7065444B2 (ja) * 2019-03-14 2022-05-12 パナソニックIpマネジメント株式会社 情報処理装置および情報処理システム
EP3956803A4 (en) * 2019-04-15 2022-12-28 Canva Pty Ltd. SYSTEMS AND METHODS FOR GENERATING A DESIGN BASED ON A DESIGN MODEL AND ANOTHER DESIGN
US11574429B1 (en) * 2019-04-30 2023-02-07 Splunk Inc. Automated generation of display layouts
CN110781644A (zh) * 2019-11-04 2020-02-11 北京联想协同科技有限公司 一种文件预览方法、设备及计算机存储介质
JP7397400B2 (ja) * 2019-11-19 2023-12-13 ブラザー工業株式会社 プログラム、および情報処理装置
CN114816191A (zh) * 2020-07-13 2022-07-29 森大(深圳)技术有限公司 基于选择界面的可定制化图像脚注打印方法、装置及设备
CN113934384B (zh) * 2021-09-26 2024-02-09 金蝶软件(中国)有限公司 数据渲染方法、装置、计算机设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPH09305598A (ja) * 1996-05-13 1997-11-28 Sanyo Electric Co Ltd 文書レイアウト編集装置、文書レイアウト編集方法、記憶媒体
JP2002501635A (ja) 1996-08-20 2002-01-15 ムーア ビジネス フォームス インコーポレイテッド テンプレート印刷用のインターフェイスに動的pdf技術を利用する校正システム
US6596032B2 (en) * 1996-10-15 2003-07-22 Fujitsu Limited Document processing apparatus storing and modifying data using effect data
JPH11110529A (ja) 1997-10-03 1999-04-23 Dainippon Printing Co Ltd 顔画像名簿作成システム
US6380954B1 (en) * 1998-02-09 2002-04-30 Reuters, Ltd. Method and system for layout of objects within a perimeter using constrained interactive search
JP2000048216A (ja) 1998-07-24 2000-02-18 Dainippon Screen Mfg Co Ltd 画像部品ブロックのレイアウト処理方法及び装置、並びに、コンピュータ読み取り可能な記憶媒体
US6931591B1 (en) 1999-10-15 2005-08-16 Saepio Technologies, Inc. Publishing layout wizard
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
BR0108067A (pt) 2000-02-09 2004-01-06 Moore North America Inc Formação de imagens de documentos possuindo conteúdo estático e dados variáveis
US7051276B1 (en) * 2000-09-27 2006-05-23 Microsoft Corporation View templates for HTML source documents
JP2002298058A (ja) * 2001-03-29 2002-10-11 Seiko Epson Corp デジタルコンテンツ提供システム,デジタルコンテンツ提供方法,サーバ装置及びデジタルコンテンツ提供プログラム
JP3835193B2 (ja) * 2001-03-30 2006-10-18 セイコーエプソン株式会社 ディジタルコンテンツ作成システム及びディジタルコンテンツ作成プログラム
US20030172355A1 (en) * 2002-03-08 2003-09-11 Ponce Rafael Antonio Martinez Customized document production system and method
US7107525B2 (en) * 2002-07-23 2006-09-12 Xerox Corporation Method for constraint-based document generation
JP4079087B2 (ja) * 2003-03-12 2008-04-23 セイコーエプソン株式会社 レイアウトシステム

Also Published As

Publication number Publication date
CN1648846A (zh) 2005-08-03
EP1566742A3 (en) 2006-08-09
EP1566742B1 (en) 2013-09-25
US7934154B2 (en) 2011-04-26
CN100362464C (zh) 2008-01-16
EP1566742A2 (en) 2005-08-24
US20050172221A1 (en) 2005-08-04
JP2005216182A (ja) 2005-08-11

Similar Documents

Publication Publication Date Title
JP4095558B2 (ja) 文書処理装置及び文書処理方法及びコンピュータプログラム
JP4110105B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
JP4059504B2 (ja) 文書処理装置及び文書処理方法及び文書処理プログラム
US7373593B2 (en) Apparatus and method for automatically setting constraints within a document layout
US7555710B2 (en) Method, apparatus and program for determining layout of a page using links between partial areas in the page
JP4250540B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
US8578269B2 (en) Information processing apparatus for performing a layout processing of sub-templates, information processing method and computer-readable medium
JP4241410B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4332477B2 (ja) レイアウト調整方法及び装置並びにプログラム
JP4144883B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4510653B2 (ja) レイアウト決定方法及び装置並びにプログラム
US7596746B2 (en) Information processing method and apparatus, and computer-readable program
JP4912139B2 (ja) 情報処理装置
US20060168514A1 (en) Information processing apparatus, control method therefor, and program
JP2006171979A (ja) レイアウト処理方法およびレイアウト処理装置およびレイアウト処理プログラム
JP4111519B2 (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP4194501B2 (ja) 文書処理方法、文書処理装置及び文書処理プログラム
JP2007122487A (ja) 自動レイアウトシステム
JP4743909B2 (ja) 情報処理方法および装置およびコンピュータプログラム
JP2007094756A (ja) 情報処理装置、レイアウト処理方法、記憶媒体およびプログラム
JP2007011574A (ja) テンプレート作成方法、テンプレート作成装置、及びプログラム
JP2008287504A (ja) 文書処理装置および方法
JP2009134578A (ja) 文書処理装置、文書処理プログラム、記憶媒体
JP2010176366A (ja) バリアブルプリントシステム
JP2007048198A (ja) 自動レイアウトシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080307

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4095558

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130314

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140314

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees