(57)【要約】【課題】ユーザがコンテンツを追加／削除しようとする場合、それを追加／削除することによって影響を受ける他のコンテンツのレイアウトを自動修正することができる文書編集装置を提供する。【解決手段】文書編集部２０４は、入力部２０１より入力された指定に基づき、テンプレート管理部２０３が記憶部２０２より読み出したテンプレートを受け取り、これをレイアウト処理部２０５に通知する。また、レイアウト処理部２０５から受け取ったレイアウト計算結果に基づき、文書の再編集を行う。レイアウト計算部２０５は、文書編集部２０４から渡されたテンプレートおよびコンテンツデータを用いてレイアウトを計算する。出力部２０６は、文書編集を実行する際に使用するテンプレートを選択するためのテンプレート指定画面や。再編集された文書などを表示する。【選択図】図２
2010176520.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツのレイアウトを行う文書編集装置であって、
レイアウトの変更に関する指示及び新たにレイアウトするコンテンツの指定を行う入力手段と、
前記入力手段により指定されたコンテンツを前記入力手段により指定された位置にレイアウトするために必要な配置領域サイズを求め、当該配置領域サイズを確保するための既存のコンテンツを移動させる方向および移動量を求めるレイアウト計算手段と、
前記レイアウト計算手段により求められた方向および移動量に基づき既存のコンテンツを移動させ、前記入力手段により指定されたコンテンツを前記入力手段により指定された位置にレイアウトする文書編集手段と、
を備えていることを特徴とする文書編集装置。
【請求項２】
前記レイアウト計算手段は、既存の配置領域を移動する移動方向と移動方向ごとの移動量を求め、
前記文書編集手段は、
前記レイアウト計算手段により算出された前記移動方向に前記移動量だけ既存の配置領域を移動させ、移動の前と移動の後との配置領域間で領域サイズを調整するために配置領域間の間隔がなくなった配置領域を関連付け、
既存のコンテンツの配置領域の移動後の空き領域に追加コンテンツが配置できない場合は、前記レイアウト計算手段により算出された移動量と、当該文書編集手段が移動させた既存のコンテンツ配置領域への移動量との差を均等に配分して縮小することを特徴とする請求項１に記載の文書編集装置。
【請求項３】
前記入力手段は、削除するコンテンツの指定を行い、
前記レイアウト計算手段は、前記入力手段により削除が指定されたコンテンツを削除した後に空間が生じないようするための既存のコンテンツを移動させる方向および移動量を求め、
前記文書編集手段は、前記レイアウト計算手段により求められた既存のコンテンツを移動させる方向および移動量に基づき、前記既存のコンテンツを移動させてレイアウトを行うことを特徴とする請求項１に記載の文書編集装置。
【請求項４】
コンテンツのレイアウトを行う文書編集方法であって、
レイアウトの変更に関する指示及び新たにレイアウトするコンテンツの指定を行う入力工程と、
前記入力工程により指定されたコンテンツを前記入力工程により指定された位置にレイアウトするために必要な配置領域サイズを求め、当該配置領域サイズを確保するための既存のコンテンツを移動させる方向および移動量を求めるレイアウト計算工程と、
前記レイアウト計算工程により求められた方向および移動量に基づき既存のコンテンツを移動させ、前記入力工程により指定されたコンテンツを前記入力工程により指定された位置にレイアウトする文書編集工程と、
を備えていることを特徴とする文書編集方法。
【請求項５】
前記レイアウト計算工程は、既存の配置領域を移動する移動方向と移動方向ごとの移動量を求め、
前記文書編集工程は、
前記レイアウト計算工程により算出された前記移動方向に前記移動量だけ既存の配置領域を移動させ、移動の前と移動の後との配置領域間で領域サイズを調整するために配置領域間の間隔がなくなった配置領域を関連付け、
既存のコンテンツの配置領域の移動後の空き領域に追加コンテンツが配置できない場合は、前記レイアウト計算工程により算出された移動量と、当該文書編集工程が移動させた既存のコンテンツ配置領域への移動量との差を均等に配分して縮小することを特徴とする請求項１に記載の文書編集方法。
【請求項６】
前記入力工程は、削除するコンテンツの指定を行い、
前記レイアウト計算工程は、前記入力工程により削除が指定されたコンテンツを削除した後に空間が生じないようするための既存のコンテンツを移動させる方向および移動量を求め、
前記文書編集工程は、前記レイアウト計算工程により求められた既存のコンテンツを移動させる方向および移動量に基づき、前記既存のコンテンツを移動させてレイアウトを行うことを特徴とする請求項１に記載の文書編集方法。
【請求項７】
請求項４〜６のいずれかひとつに記載の文書編集方法をコンピュータに実行させることを特徴とする文書編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列や画像のコンテンツのレイアウトを行う文書編集装置、文書編集方法、および文書編集プログラムに関する。
【背景技術】
【０００２】
近年、顧客の開拓や囲い込みのために、顧客満足度を高めることを目標として、ＣＲＭ（Ｃｕｓｔｏｍｅｒ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｍａｎａｇｅｍｅｎｔ）やＯｎｅ−ｔｏ−Ｏｎｅマーケティングの必要性が注目されている。代表的な手法としてバリアブルプリントが挙げられる。
【０００３】
従来、バリアブルプリント等に代表される自動レイアウト機能を有する文書編集装置では、まず、コンテンツを配置するためのテンプレートを作成する。次に、このテンプレートを用いて、テンプレート中のレイアウト枠にコンテンツを挿入し、自動レイアウトを行い、文書を生成していた。そして、自動的に生成されたレイアウトをユーザの指示に基づき修正し、その画像状態を表示し、レイアウト情報またはレイアウトされた複数の画像データを出力するようになっている（たとえば、特許文献１を参照。）。
【特許文献１】特開平９−１９０５４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の自動レイアウト機能を有する文書編集装置では、自動レイアウト後、自動レイアウト実行時に使用していたテンプレートに関する情報は失われることになる。このため、ユーザがコンテンツを追加／削除しようとする場合、それを追加／削除することによって影響を受ける他のコンテンツのレイアウトは個別に手動で調整する必要があり、煩雑な操作が要求されるという問題がある。
【０００５】
また、特許文献１に開示された技術は、コンテンツの追加／削除時にはあらかじめ用意されているテンプレートを切り替える手法である。この場合、複数のテンプレートを用意しておく必要があり、テンプレートがない場合にはユーザが所望するレイアウトに変更できないという問題がある。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、ユーザがコンテンツを追加／削除しようとする場合、それを追加／削除することによって影響を受ける他のコンテンツのレイアウトを自動修正することができる文書編集装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明にかかる文書編集装置は、コンテンツのレイアウトを行う文書編集装置であって、レイアウト変更指示や、レイアウトする文書の指定、新たにレイアウトするコンテンツの指定を行う入力手段と、前記入力手段により指定されたコンテンツを前記入力手段により指定された位置にレイアウトするために必要な配置領域サイズを求め、当該配置領域サイズを確保するための既存のコンテンツを移動させる方向および移動量を求めるレイアウト計算手段と、前記レイアウト計算手段により求められた方向および移動量に基づき既存のコンテンツを移動させ、前記入力手段により指定されたコンテンツを前記入力手段により指定された位置にレイアウトする文書編集手段と、を備えていることを特徴とする。
【０００８】
また、本発明は、コンテンツのレイアウトを行う文書編集方法であって、レイアウトの変更に関する指示及び新たにレイアウトするコンテンツの指定を行う入力工程と、前記入力工程により指定されたコンテンツを前記入力工程により指定された位置にレイアウトするために必要な配置領域サイズを求め、当該配置領域サイズを確保するための既存のコンテンツを移動させる方向および移動量を求めるレイアウト計算工程と、前記レイアウト計算工程により求められた方向および移動量に基づき既存のコンテンツを移動させ、前記入力工程により指定されたコンテンツを前記入力工程により指定された位置にレイアウトする文書編集工程と、を備えていることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、レイアウト実行後にコンテンツを追加／削除した場合、初期のレイアウトで使用していたテンプレートをコンテンツの追加／削除処理に合わせて変更し、変更したテンプレートを使用して再度自動レイアウトすることができる。これにより、影響を受ける他のコンテンツのレイアウトは自動的に処理されることなり、利便性が向上する。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照して、本発明の好適な実施の形態を詳細に説明する。
図１は、本発明の実施形態にかかる文書編集装置のハードウェア構成を示す図である。この文書編集装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、を備えている。さらに、文書編集装置１００は、入力装置１０４と、表示装置１０５と、表示コントローラ１０６と、記憶装置１０７と、通信装置１０８と、を備えている。そして、これら各機能部は、バス１０９により接続されている。ＣＰＵ１０１は、情報処理のための演算、論理判断処理などを実行し、バス１０９を介して各機能部を制御する。
【００１１】
ＲＯＭ１０２は、読出し専用の固定メモリであり、本実施形態で実行される文書編集プログラムなどの制御プログラムコードを記憶する。ＣＰＵ１０１が、この制御プログラムコードを読み出し実行することによって、本実施形態の文書編集処理が行われる（詳細は後述）。ＲＡＭ１０３は、書込み可能なメモリであり、この文書編集装置１００を構成する各機能部から送られてくる各種データの一時記憶のために用いられる。
【００１２】
入力装置１０４は、文書編集装置１００への情報や命令などを入力するものである。この入力装置１０４は、アルファベットキー、ひらがなキー、カタカナキー、句点などの文字記号入力キーや、カーソル移動を指示するカーソル移動キーなどのような各種の機能キーを備えたキーボードを備えている。また、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上で画面の制御可能位置を指し示し、また各種機能の選択指示などを行うポインティング機器、たとえばマウスやスティックポインタなども接続されている。
【００１３】
表示装置１０５は、各種情報を表示するためのもので、陰極線管ＣＲＴ（Ｃａｔｈｏｄｅ−Ｒａｙ  Ｔｕｂｅ）や液晶パネルなどで構成されている。
【００１４】
表示コントローラ１０６は、表示装置１０５におけるドット構成の表示パターンやカーソル表示を制御する。記憶装置１０７は、各種データやプログラムなどを格納するためのものである。この記憶装置１０７としては、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード、光磁気ディスクなどを用いることができる。通信装置１０８は、Ｅｔｈｅｒｎｅｔ（登録商標）などのネットワークとの接続を制御し、当該ネットワークを介して複数の他の文書編集装置と接続する役割を担う。
【００１５】
この文書編集装置１００は、入力装置１０４からの各種の入力および通信装置１０８から供給されるネットワーク経由の各種入力に応じて作動する。入力装置１０４からの入力および通信装置１０８からの入力がなされると、まず、インタラプト信号がＣＰＵ１０１に送られる。そして、ＣＰＵ１０１が記憶装置１０７内に記憶してある各種の制御信号を読出し、それらの制御信号に従って、各種の制御が行われる。
【００１６】
図２は、本発明の実施形態にかかる文書編集装置の機能的構成を示すブロック図である。この文書編集装置１００は、入力部２０１と、記憶部２０２と、テンプレート管理部２０３と、文書編集部２０４と、レイアウト計算部２０５と、出力部２０６と、を備える。
【００１７】
入力部２０１は、文書編集装置１００に対して、ユーザによるレイアウト変更指示や、レイアウトする文書の指定、レイアウトするコンテンツの指定を行う。この入力部２０１は、図１に示したＣＰＵ１０１、入力装置１０４などでその機能を実現できる。記憶部２０２は、あらかじめ作成されているテンプレートをはじめとする各種データ、プログラムを記憶する。この記憶部２０２は、図１に示したＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶装置１０７などでその機能を実現できる。
【００１８】
テンプレート管理部２０３は、記憶部２０２に記憶されているテンプレートの読み出しや、文書編集部２０４から渡されたテンプレートを記憶部２０２に記憶する。このテンプレート管理部２０３は、図１に示したＣＰＵ１０１がＲＯＭ１０２に記憶された制御プログラムコードを読み出し実行することでその機能を実現できる。
【００１９】
文書編集部２０４は、入力部２０１より入力されたレイアウト変更指示や、レイアウトする文書の指定、レイアウトするコンテンツの指定に基づき、テンプレート管理部２０３がより読み出したテンプレートを受け取り、これをレイアウト計算部２０５に通知する。また、レイアウト計算部２０５から受け取ったレイアウト計算結果に基づき、文書の再編集を行う。より具体的には、レイアウト計算部２０５により求められた方向および移動量に基づき既存のコンテンツを移動させる。そして、入力部２０１により指定されたコンテンツを入力部２０１により指定された配置位置にレイアウトする。この文書編集部２０４は、図１に示したＣＰＵ１０１がＲＯＭ１０２に記憶された制御プログラムコードを読み出し実行することでその機能を実現できる。
【００２０】
レイアウト計算部２０５は、文書編集部２０４から渡されたテンプレートおよびコンテンツデータを用いてレイアウトを計算する。具体的には、入力部２０１により指定されたコンテンツを入力部２０１により指定された配置位置にレイアウトするために必要な配置領域サイズを求め、当該配置領域サイズを確保するために既存のコンテンツを移動させる方向および移動量を求める（詳細は後述）。このレイアウト計算部２０５は、図１に示したＣＰＵ１０１がＲＯＭ１０２に記憶された制御プログラムコードを読み出し実行することでその機能を実現できる。
【００２１】
ここで、レイアウト計算部２０５がレイアウト計算を行うときに用いるコンテンツ配置領域情報について説明する。コンテンツ配置領域情報は、コンテンツを配置する配置領域の位置およびサイズを規定する情報である。このコンテンツ配置領域情報に基づき、新しく配置するコンテンツのレイアウト位置を計算する。
【００２２】
図３は、コンテンツ配置領域情報の構成例を示す図である。コンテンツ配置領域情報７００は、領域ＩＤ７０１と、Ｘ座標７０２と、Ｙ座標７０３と、高さ７０４と、幅７０５と、関連領域ＩＤリスト７０６と、から構成される。領域ＩＤ７０１は、コンテンツの配置領域を特定するための一意な値を示す。Ｘ座標７０２は、レイアウト領域の左上を原点としたコンテンツ配置領域のＸ座標を示す。Ｙ座標７０３は、レイアウト領域の左上を原点としたコンテンツ配置領域のＹ座標を示す。高さ７０４は、コンテンツ配置領域の高さを示す。幅７０５は、コンテンツ配置領域の幅を示す。関連領域ＩＤリスト７０６は、再編集を行うときに当該コンテンツ配置領域と格納コンテンツのサイズに応じて領域のサイズ調整を行うための他のコンテンツ配置領域のＩＤを示す。コンテンツ配置領域情報７００は、記憶部２０２に格納される。
【００２３】
次に、レイアウト計算部２０５がレイアウト計算を行うときに用いる移動方向別移動量情報について説明する。移動方向別移動量情報とは、新たに配置するコンテンツとすでに配置されているコンテンツとが重なり合わないように、すでに配置されているコンテンツを移動させるための移動量を移動方向ごとに求めた情報である。この移動方向別移動量情報は、コンテンツ追加処理で使用する。
【００２４】
図４は、移動方向別移動量情報の構成例を説明図である。移動方向別移動量情報８００は、上方向移動量８０１と、下方向移動量８０２と、左方向移動量８０３と、右方向移動量８０４と、により構成される。上方向移動量８０１は、上方向の移動量を示す。下方向移動量８０２は、下方向の移動量を示す。左方向移動量８０３は、左方向の移動量を示す。右方向移動量８０４は、右方向の移動量を示す。この移動方向別移動量情報８００は、記憶部２０２に格納される。
【００２５】
図２に戻り、出力部２０６は、文書編集を実行する際に使用するテンプレートを選択するためのテンプレート指定画面や。再編集された文書などを表示する。この出力部２０６は、図１に示した表示装置１０５、表示コントローラ１０６などでその機能を実現できる。
【００２６】
ここで、出力部２０６に表示されるテンプレート指定画面について説明する。図５は、テンプレート指定画面の一例を示す図である。テンプレート指定画面１２００は、記憶部２０２に記憶されているテンプレートを一覧表示し、文書編集処理で使用するテンプレートを選択する画面である。まず、テンプレート管理部２０３が記憶部２０２に記憶されているテンプレートを取得する。そして、文書編集部２０４を介して、テンプレート中の配置領域を含めたテンプレートの外観を出力部２０６に表示する。このテンプレート指定画面１２００は、テンンプレート一覧表示部１２０１と、ＯＫボタン１２０２と、キャンセルボタン１２０３と、を備えている。テンプレート一覧表示部１２０１は、入力部２０１からのテンプレートの選択指示を表示する。ＯＫボタン１２０２は、これを押下することで、テンプレート一覧表示部１２０１に表示されたテンプレート選択操作を確定する。キャンセルボタン１２０３は、これを押下することで、文書編集処理を中止する。
【００２７】
次に、出力部２０６に表示されるコンテンツ指定画面についついて説明する。図６は、コンテンツ指定画面の一例を示す図である。このコンテンツ指定画面１１００は、図５に示したテンプレート指定画面１２００中のＯＫボタン１２０２が押下された後に表示される。すなわち、テンプレート指定画面１２００で選択されたテンプレートの外観をテンプレート中の配置領域を含めて表示し、配置領域ごとにコンテンツを指定するための画面である。コンテンツ指定画面１１００は、コンテンツ指定部１１０１と、ＯＫボタン１１０２と、キャンセルボタン１１０３と、を備えている。コンテンツ指定部１１０１は、テンプレートの外観を表示し、配置領域ごとのコンテンツの指定指示を受け付ける。ＯＫボタン１１０２は、これを押下することで、コンテンツ指定指示を確定する。キャンセルボタン１１０３は、これを押下することで、文書編集処理を中止する。
【００２８】
次に、出力部２０６に表示されるレイアウト結果画面について説明する。図７（ａ）、図７（ｂ）は、レイアウト結果画面の一例を示す図である。図７（ａ）は、１回目のレイアウト結果表示時の画面であり、図７（ｂ）は、レイアウト結果変更後のレイアウト結果表示時の画面である。このレイアウト結果画面１３００は、編集処理が終了した後にレイアウトの結果を表示する画面である。レイアウト結果画面１３００は、レイアウト結果表示部１３０１と、レイアウト変更ボタン１３０２と、ＯＫボタン１３０３と、を備えている。レイアウト結果表示部１３０１は、レイアウトの結果を表示する。レイアウト変更ボタン１３０２は、これを押下することで、レイアウト結果表示部１３０１に表示されたレイアウトの結果に対して再レイアウト（再編集）を開始する。ＯＫボタン１３０３は、これを押下することで、レイアウト結果表示部１３０１に表示されたレイアウト結果を確定する。なお、レイアウト変更ボタン１３０１は、再レイアウト後のレイアウト結果表示時には操作不可となり、図７（ｂ）に示すように表示される。
【００２９】
以下、本実施形態における文書編集装置の処理の内容について詳細に説明する。
まず、この文書編集装置１００の処理内容全体について説明する。図８は、本発明の実施形態にかかる文書編集装置の処理手順を示すフローチャートである。
【００３０】
図８に示すフローチャートにおいて、まず、テンプレート指定を受け付ける（ステップＳ３０１）。具体的には、出力部２０６に図５に示したテンプレート選択画面１２００を表示させ、テンプレートの一覧をユーザに提示する。そして、テンプレート一覧表示部１２０１に表示されたテンプレートのうちから所望のテンプレートをユーザに指定させる。この指定は入力部２０１の処理で行う。ここで指定されたテンプレート情報は、文書編集部２０４が受け付ける。なお、テンプレート選択画面１２００を表示させる処理については前述の通りである。
【００３１】
次に、コンテンツ指定を受け付ける（ステップＳ３０２）。具体的には、出力部２０６に図６に示したコンテンツ指定画面１１００を表示させ、Ｓ３０１の処理で選択したテンプレートの配置領域ごとにレイアウト対象とするコンテンツを指定する。この指定は入力部２０１の処理で行う。ここで指定されたコンテンツ情報は、文書編集部２０４が受け付ける。なお、コンテンツ指定画面１１００を表示させる処理については前述の通りである。
【００３２】
次に、レイアウト処理を実行する（ステップＳ３０３）。ここでは、文書編集部２０４がレイアウト計算部２０５の計算結果を基に、ステップＳ３０１およびステップＳ３０２において指定されたテンプレートとコンテンツを用いてレイアウト処理を実行する。
【００３３】
次に、レイアウト結果を表示する（ステップＳ３０４）。ここでは、出力部２０６が、ステップＳ３０３の処理によってレイアウトされた文書を表示する。具体的には、出力部２０６が、図７（ａ）に示したレイアウト結果画面１３００にステップＳ３０３の処理で得られたレイアウト結果を表示する。
【００３４】
次に、レイアウト変更をするか否かを判断する（ステップＳ３０５）。ここでは、図７（ａ）に示したレイアウト結果画面１３００に表示されているレイアウト結果について変更するか否かを判断する。この判断は、ユーザが行う。ここで、ユーザがレイアウト変更しないと判断した場合、すなわちレイアウト結果画面１３００のＯＫボタン１３０２を押下した場合（ステップＳ３０５：Ｎｏ）は、処理を終了する。
【００３５】
一方、ユーザがレイアウト変更すると判断した場合、すなわちレイアウト結果画面１３００のレイアウト変更ボタン１３０１を押下した場合（ステップＳ３０５：Ｙｅｓ）は、コンテンツを追加するか・削除するかの判断を行う（ステップＳ３０６）。この判断も、ユーザが行う。
【００３６】
ステップＳ３０６においてコンテンツを追加すると判断した場合は、文書編集部２０４がレイアウト計算部２０５の計算結果を基に、コンテンツ追加処理を行う（ステップＳ３０７）。この結果、文書中に新たなコンテンツが追加・配置される。この後、ステップＳ３０９へ移行する。一方、ステップＳ３０６においてコンテンツを削除すると判断した場合は、文書編集部２０４がレイアウト計算部２０５の計算結果を基に、コンテンツ削除処理を行う（ステップＳ３０８）。この結果、文書中に配置されていたコンテンツが削除される。この後、ステップＳ３０９へ移行する。
【００３７】
最後に、テンプレートの登録を行う（ステップＳ３０９）。ここでは、テンプレート管理部２０３が、ステップＳ３０７またはステップＳ３０８にて変更されたテンプレートを記憶部２０２に格納する。なお、ここで格納されたテンプレートは、後に実行されるステップＳ３０１の処理の際に、テンプレート選択画面１２００のテンプレート一覧表示部１２０１に表示される。
【００３８】
次に、図８に示したコンテンツ追加処理（ステップＳ３０７）について詳細に説明する。図９は、コンテンツ追加処理（ステップＳ３０７）の手順を示すフローチャートである。
図９に示すフローチャートにおいて、まず、コンテンツ指定を受け付ける（ステップＳ４０１）。具体的には、出力部２０６に図６に示したコンテンツ指定画面１１００を表示させ、追加するコンテンツを指定する。この指定は入力部２０１の処理で行う。ここで指定されたコンテンツ情報は、文書編集部２０４が受け付ける。なお、コンテンツ指定画面１１００を表示させる処理については前述の通りである。
【００３９】
次に、追加するコンテンツの位置を指定する（ステップＳ４０２）。ここでは、入力部２０１を構成するマウスなどでコンテンツ追加したい画面上の位置を指定する。次に、オーバーラップ配置領域情報を取得する（ステップＳ４０３）。ここでは、レイアウト計算部２０５が、ステップＳ４０１で受け付けたコンテンツおよびステップＳ４０２で指定したコンテンツ位置を基準にして、すでに配置されているコンテンツと重なる領域を求める。具体的には、ステップＳ４０２で指定されたコンテンツの位置をコンテンツの重心とし、当該コンテンツの各頂点の座標を算出する。そして、これらの座標と図３（ａ）に示したコンテンツ配置領域情報７００に含まれる各配置領域のＸ座標７０２、Ｙ座標７０３、高さ７０４、幅７０５と、を比較して重なっている配置領域の領域ＩＤ７０１を求める。求めた領域ＩＤは、図１０に示すようなオーバーラップ配置領域情報９００を生成して、これを記憶部２０２に格納する。
【００４０】
次に、オーバーラップ配置領域があるか否かを判定する（ステップＳ４０４）。ここでは、レイアウト計算部２０５が、ステップＳ４０３で求めたオーバーラップ配置領域情報９００に配置領域の領域ＩＤが格納されているか否か判定する。ここで、オーバーラップ配置領域がない場合（ステップＳ４０４：Ｎｏ）、すなわちオーバーラップ配置領域情報９００に配置領域の領域ＩＤが格納されていない場合は、追加コンテンツと重なる配置領域が存在しなと判断し、ステップＳ４１０へ移行する。
【００４１】
一方、オーバーラップ配置領域がある場合（ステップＳ４０４：Ｙｅｓ）、すなわちオーバーラップ配置領域情報９００に配置領域の領域ＩＤが格納されている場合は、追加コンテンツと重なる既存のコンテンツ配置領域が存在すると判断する。そして、配置領域移動方向を求める（ステップＳ４０５）。ここではレイアウト計算部２０５が、ステップＳ４０３で求めたオーバーラップ配置領域情報９００とステップＳ４０２で求めた追加コンテンツの座標から、オーバーラップ配置領域情報９００に格納されている各配置領域をどの方向に移動する必要があるかを求める。既存のコンテンツ配置領域の移動方向は、以下のような判定定基準により求める。
【００４２】
図１１は、既存のコンテンツ配置領域の移動方向を求める基準を説明するための図である。まず、配置領域に追加コンテンツの左上頂点と右上頂点が含まれている場合は、図１１（ａ）に示すように、コンテンツ配置領域は上方向に移動させる。配置領域に追加コンテンツの左上頂点のみが含まれている場合は、図１１（ｂ）に示すように、コンテンツ配置領域は上方向と左方向へ移動させる。配置領域に追加コンテンツの右上頂点のみが含まれている場合は、図１１（ｃ）に示すように、コンテンツ配置領域は上方向／左方向へ移動させる。配置領域に追加コンテンツの左下頂点と右下頂点が含まれている場合は、図１１（ｄ）に示すように、配置領域は下方向に移動させる。配置領域に追加コンテンツの左下頂点のみが含まれている場合は、図１１（ｅ）に示すように、コンテンツ配置領域は下方向と左方向に移動させる。配置領域に追加コンテンツの右下頂点のみが含まれている場合は、図１１（ｆ）に示すように、コンテンツ配置領域は下方向と右方向に移動させる。また、コンテンツ配置領域に追加コンテンツの全頂点が含まれている場合、または、コンテンツ配置領域が追加コンテンツに含まれる場合は、方向ごとに追加コンテンツとオーバーラップしないようにするための移動量を求めて、最も少ない方向を移動方向とする。
【００４３】
次に、移動方向別移動量を求める（ステップＳ４０６）。ここでは、レイアウト計算部２０５が、既存のコンテンツの移動方向別移動量を求める。具体的には、ステップＳ４０３で求めたオーバーラップ配置領域情報９００と追加コンテンツの重なりから、移動すべき移動量をステップＳ４０５で求めた移動方向ごとに算出する。ここで算出された値は、図４に示した移動方向別移動量情報８００に格納する。
【００４４】
次に、既存のコンテンツの配置領域を移動させる（ステップＳ４０７）。ここでは、文書編集部２０４が、ステップＳ４０３で求めたオーバーラップ配置領域情報９００とステップＳ４０６で求めた移動方向別移動量情報８００を参照して、依存のコンテンツの位置を移動方向別に移動させる。移動後の既存コンテンツの配置領域情報は、レイアウト計算部２０５が算出し、コンテンツ配置領域情報７００を生成する。
【００４５】
次に、コンテンツがオーバーラップするか否かを判定する（ステップＳ４０８）。ここでは、レイアウト計算部２０５が、ステップＳ４０７で移動した後のコンテンツ配置領域情報７００を参照して、追加コンテンツと既存コンテンツとの重なりがあるか否かを判定する。ここで、コンテンツがオーバーラップしない場合（ステップＳ４０８：Ｎｏ）は、ステップＳ４１０へ移行する。
【００４６】
一方、コンテンツがオーバーラップする場合（ステップＳ４０８：Ｙｅｓ）は、既存コンテンツの配置領域サイズを調整する（ステップＳ４０９）。ここでは、まず、レイアウト計算部２０５が、既存コンテンツの移動方向ごとに、方向別移動量情報８００を参照し、ステップＳ４０７で移動した移動量との差を求める。移動した配置領域のサイズから求めた値を均等に配分する。すべての移動方向においてこの処理を行い、追加コンテンツを配置する領域を確保する。このようにして既存コンテンツの配置領域のサイズの縮小を行う。
【００４７】
次に、コンテンツ配置領域情報を更新する（ステップＳ４１０）。ここでは、レイアウト計算部２０５が、ステップＳ４０２で指定された追加コンテンツ位置に配置領域を新設するためのコンテンツ配置領域情報７００を更新する。また、追加コンテンツの配置領域を近接する既存の配置領域と関連付けるためにコンテンツ配置領域情報７００の関連領域ＩＤリスト７０６を更新する。ここで更新された関連領域ＩＤリスト７０６は、新たに追加するコンテンツの配置領域を示すものである。図３（ｂ）は、更新後のコンテンツ配置領域情報の構成例を示す図である。
【００４８】
続いて、レイアウト処理を実行する（ステップＳ４１１）。ここでは、文書編集部２０４が、図３（ｂ）に示した更新後のコンテンツ配置領域情報７００の基づき、レイアウト処理を実行する。すなわち、コンテンツ配置領域情報７００の関連領域ＩＤリスト７０６にて関連付けられている配置領域同士はコンテンツのサイズに応じて配置領域のサイズを調整しながらレイアウト処理を実行する。
そして、レイアウト結果を表示する（ステップＳ４１２）。ここでは、出力部２０６が、ステップＳ４１１で実行されたレイアウト処理の結果を表示する（図７（ｂ）を参照）。
【００４９】
次に、図９に示した既存のコンテンツ配置領域の移動処理（ステップＳ４０７）について詳細に説明する。図１２は、既存のコンテンツの位置を移動させる処理（ステップＳ４０７）の手順を示すフローチャートである。この処理は、レイアウト計算部２０５の計算結果に基づき、文書編集部２０４が実行する。
【００５０】
図１２に示すフローチャートにおいて、まず、移動量を初期化（０に設定）する（ステップＳ５０１）。次に、全ての移動方向に対して配置領域の移動処理を行ったか否か判定する（ステップＳ５０２）。ここで、全ての移動方向に対してコンテンツ配置領域を移動させた場合（ステップＳ５０２：Ｙｅｓ）は、コンテンツ配置領域の移動処理を終了する。
【００５１】
一方、全ての移動方向に対するコンテンツ配置領域を移動させていない場合（ステップＳ５０２：Ｎｏ）は、移動対象配置領域リストを作成する（ステップＳ５０３）。図１３は、このとき作成される移動対象配置領域リストの一例を示す図である。移動処理対象の既存コンテンツの移動方向に応じて、追加コンテンツと重なる既存コンテントの配置領域の領域ＩＤを移動対象配置領域リスト１０００に格納する。
【００５２】
図１４は、移動対象配置領域リストに格納する配置領域の一例を説明するための図である。ここに示すように、移動方向が下方向の場合、移動対象コンテンツ配置領域リスト１０００には配置領域の「２」および「３」の領域ＩＤを格納する。また、追加コンテンツと重なる既存コンテンツの配置領域とこの配置領域が既存コンテンツの移動方向に近接する配置領域の間隔が０である場合は、移動方向に近接する領域を移動対象配置領域リスト１０００に格納する。
【００５３】
次に、移動可能量を取得する（ステップＳ５０４）。ここでは、移動対象配置領域リスト１０００に格納されている既存コンテンツの配置領域を移動させるのに可能な移動可能量を取得する。なお、移動可能量としては、移動対象コンテンツ配置領域リスト１０００で移動方向に隣接する既存コンテンツの配置領域との間隔で最も狭い間隔を想定している。
【００５４】
たとえば、図１４に示した例では、領域ＩＤが「２」および「３」である配置領域を下方向に移動する場合、当該領域ＩＤの配置領域の下方向に位置している配置領域をコンテンツ配置領域情報７００から求める。図１４では、領域ＩＤ「４」の配置領域が領域ＩＤ「２」，「３」の配置領域の下方向に位置する。領域ＩＤ「２」と領域ＩＤ「４」の配置領域の垂直方向の間隔と領域ＩＤ「３」と領域ＩＤ「４」の配置領域の垂直方向の間隔とをそれぞれ求めて比較する。この例では、領域ＩＤ「２」と領域ＩＤ「４」の配置領域の垂直方向の間隔が領域ＩＤ「３」と領域ＩＤ「４」の配置領域垂直方向の間隔より狭い。そこで、移動可能量は領域ＩＤ「２」と領域ＩＤ「４」の配置領域の垂直方向の間隔となる。
【００５５】
次に、配置領域の移動が可能か否かを判定する（ステップＳ５０５）。具体的には、ステップＳ５０４で求めた移動可能量が０であるか否か判定する。ここで、配置領域の移動が不可能な場合（ステップＳ５０５：Ｎｏ）は、他の移動方向に対する移動処理を行うためにステップＳ５０１へ戻る。
【００５６】
一方、配置領域の移動が可能な場合（ステップＳ５０５：Ｙｅｓ）は、移動量と移動可能量の合計値が方向別移動量より大きいか否か判定する（ステップＳ５０６）。なお、方向別移動量は、図４に示した方向別移動量情報８００を参照する。
【００５７】
ここで、移動量と移動可能量の合計値が方向別移動量より大きい場合（ステップＳ５０６：Ｙｅｓ）は、これ以上既存のコンテンツ配置領域の移動量を確保する必要がない。そこで、既存コンテンツの配置領域を方向別移動量にしたがった量だけ移動させる（ステップＳ５０７）。具体的には、ステップＳ５０４で求めた移動可能量分だけ当該移動方向に移動対象配置領域リスト１０００にある既存コンテンツの配置領域を移動する。そして、コンテンツ配置領域情報７００のＸ座標７０２およびＹ座標７０３を更新する。また、各配置領域間の間隔が０となった配置領域同士は、関連付けるためにコンテンツ配置領域情報７００の関連領域ＩＤリスト７０６を更新する。さらに、移動量に移動可能量を加算する。
【００５８】
一方、ステップＳ５０６において移動量と移動可能量の合計値が方向別移動量より小さい場合（ステップＳ５０６：Ｎｏ）は、さらに既存コンテンツの配置領域を確保する必要がある。そこで、移動に必要とされる残りの必要移動量を求める（ステップＳ５０８）。具体的には、方向別移動量情報８００の処理対象の移動量からステップＳ５０４で求めた移動可能量を減算し、残りの必要移動量を求める。そして、移動可能量分だけ移動方向に移動対象配置領域リスト１０００にある既存コンテンツの配置領域を移動させる。そして、配置領域情報７００のＸ座標７０２およびＹ座標７０３を更新する。また、各配置領域間の間隔が０となった配置領域同士は、関連付けるために配置領域情報７００の関連領域ＩＤリストを更新する。この後、次の移動方向に対する移動処理を行うためにステップＳ５０１へ戻る。
【００５９】
次に、さらに移動可能な配置領域が存在するか否かを判定する（ステップＳ５０９）。具体的には、コンテンツ配置領域情報７００から移動対象とする既存コンテンツの配置領域が存在するか否か判定する。ここで、さらに移動可能な配置領域が存在しない場合（ステップＳ５０９：Ｎｏ）は、ステップＳ５０１へ戻る。一方、さらに移動可能な配置領域が存在する場合（ステップＳ５０９：Ｙｅｓ）は、移動対象配置領域リストを更新する（ステップＳ５１０）。すなわち、更新済みの配置領域情報７００に基づき、移動対象配置領域リスト１０００を更新する。この後、ステップＳ５０４へ戻る。
【００６０】
以下に、具体例を示しながら、新たなコンテンツの追加を説明する。図１５は、編集前のレイアウト結果を示す図である。ここでは、図１５を参照しながら、編集前のレイアウト結果１６０１に対して追加コンテンツ１６０２を追加する例を説明する。図１５に示す編集前のレイアウト結果１６０１のコンテンツ配置領域情報７００は、図３（ａ）に示したものとする。また、追加コンテンツ１６０２のサイズは、高さ４０、幅１８０とする。
【００６１】
まず、図９のステップＳ４０１で追加コンテンツ１６０２が指定される。次に、ステップＳ４０２で追加コンテンツ１６０２の位置が、Ｘ座標１５０，Ｙ座標１３０と指定される。続いて、ステップＳ４０３において追加するコンテンツの各頂点を算出すると、左上頂点がＸ座標６０，Ｙ座標１１０、左下頂点がＸ座標６０，Ｙ座標１５０、右上頂点がＸ座標２４０，Ｙ座標１１０、右下頂点がＸ座標２４０，Ｙ座標１５０となる。追加コンテンツ１６０２の座標と図３（ａ）のコンテンツ配置領域情報７００にある既存コンテンツと重なっている領域は、領域ＩＤ「２」と領域ＩＤ「３」の部分である。なお、求めたＩＤは図１０のオーバーラップ配置領域情報９００に格納する。
【００６２】
続いて、ステップＳ４０４の判定を行うが、追加コンテンツと重なる領域がオーバーラップ配置領域９００にあるため、ステップＳ４０５に進む。ステップＳ４０５では、領域ＩＤ「２」は、図１１（ａ）に該当するので上方向に移動する。また、領域ＩＤ「３」は、図１１（ｄ）に該当するので下方向に移動する。
【００６３】
次に、ステップＳ４０６では、図４の移動方向別移動量情報８００を求める。ここでは、上方向移動量８０１は２０、下方向移動量８０２は２０、左方向移動量８０３、および右方向移動量８０４は０とする。
【００６４】
次に、図１２のステップＳ５０１で移動量を初期化（０）する。そして、ステップＳ５０２の判定に移る。ここでは、全ての移動方向に対して処理を行っていないために、次はステップＳ５０３に進む。ステップＳ５０３では、先ず上方向の移動を行う。追加コンテンツと重なる領域の領域ＩＤは「２」であるが、領域ＩＤ「２」の上方向に隣接する領域ＩＤ「１」との間隔が０であるために領域ＩＤ「１」を図１３の移動対象配置領域リスト１０００に格納する。次に、ステップＳ５０４で移動対象配置領域リスト１０００に格納されている領域ＩＤ「１」が上方向に隣接する配置領域との間隔を求める。ここでは、コンテンツ配置領域情報７００より、領域ＩＤ「１」の上側には、配置領域が存在せずにレイアウト領域上端との間隔は１０となっている。したがって、移動可能量は１０とする。
【００６５】
次に、ステップＳ５０５の判定に移る。ここでは、移動可能量が１０であるために次はステップＳ５０６の判定に移る。ここでは、まず、移動可能量と移動量の合計値は１０である。一方、方向別移動量情報８００の上方向移動量８０１は２０であるので、次はステップＳ５０８に進む。ステップＳ５０８では、コンテンツ配置領域情報７００の領域ＩＤ「２」のＹ座標７０３を６０、領域ＩＤ「１」のＹ座標７０３を０に更新する。そして、移動量に移動可能量１０を加算して、移動量を１０とする。
【００６６】
続いて、ステップＳ５０９では、コンテンツ配置領域情報７００より上方向に移動する配置領域がないため、次に下方向の移動を行うためにステップＳ５０１へ戻る。
ステップＳ５０１では移動量を０とする。次に、ステップＳ５０２の判定では全ての移動方向に対して処理を行っていないためにステップＳ５０３に進む。ステップＳ５０３では、下方向の移動を行う。ここでは、追加コンテンツと重なる領域の領域ＩＤ「３」であるが、領域ＩＤ「３」の下方向に隣接する領域ＩＤ「４」との間隔および領域ＩＤ「４」と領域ＩＤ「５」との間隔が０であるために領域ＩＤ「５」を図１３の移動対象配置領域リスト１０００に格納する。
【００６７】
次に、ステップＳ５０４において移動対象配置領域リスト１０００に格納されている領域ＩＤ「５」が下方向に隣接する配置領域との間隔を求める。ここでは、コンテンツ配置領域情報７００より、領域ＩＤ「５」の下側には、配置領域が存在せずにレイアウト領域下端との間隔は１０である。したがって、移動可能量は１０とする。
【００６８】
次に、ステップＳ５０５の判定では、移動可能量が１０であるためにステップＳ５０６の判定へ進む。まず、移動可能量と移動量の合計値は１０である。一方、方向別移動量情報８００の下方向移動量８０２は２０であるので、次はステップＳ５０８に進む。
【００６９】
ステップＳ５０８では、コンテンツ配置領域情報７００の領域ＩＤ「３」のＹ座標７０３を１４０、領域ＩＤ「４」のＹ座標７０３を２３０、領域ＩＤ「５」のＹ座標７０３を２７０に更新する。そして、移動量に移動可能量１０を加算して、移動量を１０とする。次に、ステップＳ５０９では、コンテンツ配置領域情報７００より上方向に移動する配置領域がない。そこで、下方向の移動を行うためにステップＳ５０１へ戻る。
【００７０】
ステップＳ５０１では移動量を０とする。ステップＳ５０２の判定では全ての移動方向に対して処理を行ったために、次はステップＳ４０８に進む。ステップＳ４０８の判定では、移動後の配置領域と重なるので追加コンテンツは配置できない。そこで、ステップＳ４０９に進む。
【００７１】
ステップＳ４０９では、上方向の移動量１０および下方向の移動量１０である。そこで、方向別移動量情報８００を参照すると、垂直方向に２０不足していることが分かる。そこで、移動した５つの配置領域の高さから４を減算し、コンテンツ配置領域情報７００を更新する。そして、ステップＳ４１１に進む。ステップＳ４１１では、追加コンテンツの配置領域を追加するために、図３（ｂ）に示すようにコンテンツ配置領域情報７００を更新すし、処理を終了する。
【００７２】
次に、図８のコンテンツ削除処理（ステップＳ３０８）の処理について説明する。図１６は、コンテンツ削除処理（ステップＳ３０８）の手順を示すフローチャートである。この処理は、すべて、レイアウト計算部２０５の計算結果に基づき、文書編集部２０４が実行する。
【００７３】
図１６に示すフローチャートにおいて、まず、削除する既存コンテンツの指定を受け付ける（ステップＳ６０１）。次に、配置領域情報を取得する（ステップＳ６０２）。ここでは、コンテンツ配置領域情報７００から指定されたコンテンツが含まれる配置領域情報を取得する。次に、配置領域にあるコンテンツを削除する（ステップＳ６０３）。ここでは、ステップＳ６０２で取得した配置領域情報を参照し、当該配置領域にあるコンテンツを削除する。次に、削除した配置領域に近接する配置領域同士を関連付ける（ステップＳ６０４）。具体的には、削除したコンテンツ付近に配置されている他のコンテンツ同士を近づけ不自然な空間がないようにする。続いて、レイアウト処理を実行する（ステップＳ６０５）。ここでは、修正された配置領域とレイアウト対象となるコンテンツを基にレイアウト処理を実行する。最後に、レイアウト結果を表示させ（ステップＳ６０６）、処理を終了する。
【００７４】
以上説明したように、本実施の形態は、レイアウト実行後にコンテンツを追加／削除した場合、初期のレイアウトで使用していたテンプレートをコンテンツの追加／削除処理に合わせて変更し、変更したテンプレートを使用して再度自動レイアウトする。これにより、影響を受ける他のコンテンツのレイアウトは自動的に処理されることなり、文書編集処理の効率が向上する。
【００７５】
なお、上記実施形態で説明した文書編集方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【００７６】
以上のように、本発明は、多くのコンテンツを含む文書編集に有用であり、特に、コンテンツの追加／削除を頻繁に行う文書編集に適している。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施形態にかかる文書編集装置のハードウェア構成を示す図である。
【図２】本発明の実施形態にかかる文書編集装置の機能的構成を示すブロック図である。
【図３】コンテンツ配置領域情報の構成例を示す図である。
【図４】移動方向別移動量情報の構成例を説明図である。
【図５】テンプレート指定画面の一例を示す図である。
【図６】コンテンツ指定画面の一例を示す図である。
【図７】レイアウト結果画面の一例を示す図である。
【図８】本発明の実施形態にかかる文書編集装置の処理手順を示すフローチャートである。
【図９】コンテンツ追加処理（ステップＳ３０７）の手順を示すフローチャートである。
【図１０】オーバーラップ配置領域情報の構成例を示す図である。
【図１１】既存のコンテンツ配置領域の移動方向を求める基準を説明するための図である。
【図１２】既存のコンテンツの位置を移動させる処理（ステップＳ４０７）の手順を示すフローチャートである。
【図１３】移動対象配置領域リストの一例を示す図である。
【図１４】移動対象配置領域リストに格納する配置領域の一例を説明するための図である。
【図１５】編集前のレイアウト結果を示す図である。
【図１６】コンテンツ削除処理（ステップＳ３０８）の手順を示すフローチャートである。
【符号の説明】
【００７８】
１００  文書編集装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
【図１】
2010176520.tif 000003
【図２】
2010176520.tif 000004
【図３】
2010176520.tif 000005
【図４】
2010176520.tif 000006
【図５】
2010176520.tif 000007
【図６】
2010176520.tif 000008
【図７】
2010176520.tif 000009
【図８】
2010176520.tif 000010
【図９】
2010176520.tif 000011
【図１０】
2010176520.tif 000012
【図１１】
2010176520.tif 000013
【図１２】
2010176520.tif 000014
【図１３】
2010176520.tif 000015
【図１４】
2010176520.tif 000016
【図１５】
2010176520.tif 000017
【図１６】
2010176520.tif 000018