(57)【要約】【課題】テンプレートなしでフォントサイズや文字数を固定したテキストや複数のコンテンツを隙間なくレイアウトするためのコンテンツのサイズを自動で決定する。【解決手段】文書生成装置は、テキストのフォント情報に基づいて、レイアウト領域におけるテキスト領域の面積を算出する（ステップＳ２０２）。そして、文書生成装置は、テキスト領域の面積、レイアウト領域の辺の長さ、及び、複数のコンテンツのアスペクト比を定数とし、複数のコンテンツの一辺の長さを変数として含む方程式を用いて、複数のコンテンツのサイズを算出する（ステップＳ２０３）。【選択図】図２
2012203444.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト領域に対して矩形の複数のコンテンツとテキストとを配置して文書を生成する文書生成装置であって、
前記テキストのフォント情報に基づいて、前記レイアウト領域に対して前記テキストが配置される領域であるテキスト領域の面積を算出する第１の算出手段と、
前記テキスト領域の面積、前記レイアウト領域の辺の長さ、及び、前記複数のコンテンツのアスペクト比を定数とし、前記複数のコンテンツの一辺の長さを変数として含む方程式を用いて、前記複数のコンテンツのサイズを算出する第２の算出手段とを有することを特徴とする文書生成装置。
【請求項２】
前記方程式は楕円方程式であり、前記第２の算出手段は、前記楕円方程式により表される楕円と所定の直線との交点を求めることにより、前記複数のコンテンツのサイズを算出することを特徴とする請求項１に記載の文書生成装置。
【請求項３】
前記レイアウト領域に対して配置される前記コンテンツが３つ以上存在する場合、前記テキストを複数の分割テキストに分割する第１の分割手段と、
前記各分割テキストに対して１つ又は２つの前記コンテンツを振り分けてグルーピングするグルーピング手段と、
前記レイアウト領域を分割することにより、前記グルーピング手段により生成された各グループが配置される分割レイアウト領域を生成する第２の分割手段とを更に有し、
前記第１の算出手段は、前記第２の分割手段により生成された前記各分割レイアウト領域に対してテキスト領域の面積を算出し、前記第２の算出手段は、前記各分割レイアウト領域の前記テキスト領域の面積に基づいて、前記各分割レイアウト領域における前記コンテンツのサイズを算出することを特徴とする請求項１又は２に記載の文書生成装置。
【請求項４】
前記第２の分割手段は、前記各分割テキストの文字数に基づいて、前記レイアウト領域を分割することを特徴とする請求項３に記載の文書生成装置。
【請求項５】
前記グルーピング手段は、前記各分割テキストと前記コンテンツとの関連性に基づいてグルーピングすることを特徴とする請求項３又は４に記載の文書生成装置。
【請求項６】
レイアウト領域に対して矩形の複数のコンテンツとテキストとを配置して文書を生成する文書生成装置によって実行される文書生成方法であって、
前記テキストのフォント情報に基づいて、前記レイアウト領域に対して前記テキストが配置される領域であるテキスト領域の面積を算出する第１の算出ステップと、
前記テキスト領域の面積、前記レイアウト領域の辺の長さ、及び、前記複数のコンテンツのアスペクト比を定数とし、前記複数のコンテンツの一辺の長さを変数として含む方程式を用いて、前記複数のコンテンツのサイズを算出する第２の算出ステップとを有することを特徴とする文書生成方法。
【請求項７】
レイアウト領域に対して矩形の複数のコンテンツとテキストとを配置して文書を生成する文書生成装置によって実行される文書生成方法をコンピュータに実行させるためのプログラムであって、
前記テキストのフォント情報に基づいて、前記レイアウト領域に対して前記テキストが配置される領域であるテキスト領域の面積を算出する第１の算出ステップと、
前記テキスト領域の面積、前記レイアウト領域の辺の長さ、及び、前記複数のコンテンツのアスペクト比を定数とし、前記複数のコンテンツの一辺の長さを変数として含む方程式を用いて、前記複数のコンテンツのサイズを算出する第２の算出ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト領域に対して矩形の複数のコンテンツとテキストとを配置して文書を生成する技術に関するものである。
【背景技術】
【０００２】
従来、テンプレートを利用して複数のテキストや画像をレイアウトして１つの文書が作成する技術が知られている（特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１１２４８号公報
【特許文献２】特開２００４−２４０９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、テンプレートなしでフォントサイズや文字数を固定したテキストや、写真等の複数のコンテンツを隙間なくレイアウトするためには、人手で調整する必要があった。
【０００５】
そこで、本発明の目的は、テンプレートなしでフォントサイズや文字数を固定したテキストや複数のコンテンツを隙間なくレイアウトするためのコンテンツのサイズを自動で決定することにある。
【課題を解決するための手段】
【０００６】
本発明の文書生成装置は、レイアウト領域に対して矩形の複数のコンテンツとテキストとを配置して文書を生成する文書生成装置であって、前記テキストのフォント情報に基づいて、前記レイアウト領域に対して前記テキストが配置される領域であるテキスト領域の面積を算出する第１の算出手段と、前記テキスト領域の面積、前記レイアウト領域の辺の長さ、及び、前記複数のコンテンツのアスペクト比を定数とし、前記複数のコンテンツの一辺の長さを変数として含む方程式を用いて、前記複数のコンテンツのサイズを算出する第２の算出手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、テンプレートなしでフォントサイズや文字数を固定したテキストや複数のコンテンツを隙間なくレイアウトするためのコンテンツのサイズを自動で決定することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る文書生成装置の構成を示す図である。
【図２】本発明の第１の実施形態に係る文書生成装置の処理の概要を示すフローチャートである。
【図３】レイアウト領域に対して２つのコンテンツ及びテキストをレイアウトした状態を示す図である。
【図４】テキスト領域の面積を確保しながら、第１のコンテンツ、第２のコンテンツの面積を最大化するｘ、ｙの範囲である、楕円の部分円弧を示す図である。
【図５】図２のステップＳ２０３の詳細を示すフローチャートである。
【図６】複数の文書生成装置をネットワークで接続した構成を示す図である。
【図７】本発明の第２の実施形態に係る文書生成装置の処理を示すフローチャートである。
【図８】レイアウト領域に対して５つのコンテンツ及びテキストをレイアウトした状態を示す図である。
【図９】本発明の第３の実施形態に係る文書生成装置の処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１０】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る文書生成装置の構成を示す図である。図１に示すように、本実施形態に係る文書生成装置は、記憶部１１１、入力部１１３、ＣＰＵであるデータ処理部１１５、表示部１１６及びネットワークＩ／Ｆ部１１７によって構成される。
【００１１】
次に、図２及び図３を参照しながら、第１の実施形態に係る文書生成装置の処理の概要について説明する。図２は、第１の実施形態に係る文書生成装置の処理の概要を示すフローチャートである。図３は、レイアウト領域に対して２つのコンテンツ及びテキストをレイアウトした状態を示す図である。
【００１２】
ステップＳ２０１において、データ処理部１１５は、レイアウト領域と、レイアウト領域に対してレイアウトするコンテンツ及びテキスト等のオブジェクトと、フォントサイズ及びフォント種別等のフォント情報とを取得する。ステップＳ２０２において、データ処理部１１５は、テキストの文字数及びフォント情報に基づいてテキスト領域の面積を計算する。具体的には、データ処理部１１５は、フォント情報のフォントサイズ及びフォント種別から仮想ボディ(標準的な文字矩形：文字幅、文字高さ)を取得する。次にデータ処理部１１５は、仮想ボディの面積にテキストの文字数を乗算してテキスト領域の面積を算出する。ステップＳ２０３において、データ処理部１１５は、コンテンツのサイズ（縦、横の長さ）を算出する。ここで、ステップＳ２０２で算出されたテキスト領域の面積は一定とし、図３に示すように、レイアウト領域は面積がａ×ｒａ（ａ＞０，ｒ＞０）の矩形とし、コンテンツはアスペクト比が一定の矩形とする。第１のコンテンツの面積はｘ×ｐｘ（縦×横）（ｐ＞０）と表し、第２のコンテンツの面積はｙ×ｑｙ（縦×横）（ｑ＞０）と表す。なお、ｐ、ｑ、ｒは夫々、第１のコンテンツのアスペクト比、第２のコンテンツのアスペクト比、レイアウト領域のアスペクト比である。なお、ステップＳ２０２は、第１の算出手段の処理例であり、ステップＳ２０３は、第２の算出手段の処理例である。
【００１３】
第１のコンテンツ、第２のコンテンツは、拡大及び縮小させることが可能であるが、その際には、アスペクト比ｐ、ｑは一定のまま保持される。また、第１のコンテンツの面積、第２のコンテンツの面積は、所定の範囲内に収まることを要する。即ち、第１のコンテンツの辺の長さの範囲は、０＜ｘ＜ａ、０＜ｘ＜ｒａ／ｐである。また、第２のコンテンツの辺の長さの範囲は、０＜ｙ＜ａ、０＜ｙ＜ｒａ／ｑである。第１のコンテンツと第２のコンテンツとの間では、０＜ｘ＋ｙ＜ａ、又は、０＜ｐｘ＋ｑｙ＜ｒａの制約がある。
【００１４】
テキスト領域の面積Ｔ＝（仮想ボディの面積×テキストの文字数)とすると、Ｔ＝ｒａ2−ｐｘ2−ｑｙ2となり、次の式に変形することができる。なお、ａ、ｒは定数である。
ｘ2／（ｑ（ｒａ2−Ｔ））＋ｙ2／（ｐ（ｒａ2−Ｔ））＝１（楕円方程式）
上記第１のコンテンツ、第２のコンテンツの辺の長さの範囲条件により、（０＜ｘ≦ｍｉｎ（ａ，ｒａ／ｐ），０＜ｙ≦ｍｉｎ（ａ，ｒａ／ｑ））となる。従って、グラフ化すると、テキスト領域の面積Ｔを確保しながら、第１のコンテンツ、第２のコンテンツの面積を最大化する変数ｘ、ｙの範囲は、図４の楕円の部分円弧４０１となる。
【００１５】
次に、図２のステップＳ２０３について詳細に説明する。データ処理部１１５は、図４に示す楕円の部分円弧４０１と直線ｘ＋ｙ＝ａとの交点が存在する場合、その交点の座標（ｘ、ｙ）を第１の交点の座標として決定する。このようにして決定された第１の交点の座標のｘの値とｙの値とによって第１のコンテンツのサイズと第２のコンテンツのサイズとを定めることにより、第１のコンテンツ、第２のコンテンツを縦に隙間なく配置することが可能となる。また、データ処理部１１５は、楕円の部分円弧４０１と直線ｐｘ＋ｑｙ＝ｒａとの交点が存在する場合、その交点の座標（ｘ，ｙ）を第２の交点の座標として決定する。このようにして決定された第２の交点の座標のｘの値とｙの値とによって第１のコンテンツのサイズと第２のコンテンツのサイズとを定めることにより、第１のコンテンツ、第２のコンテンツを横に隙間なく配置することが可能となる。また、データ処理部１１５は、楕円の部分円弧４０１と直線ｙ＝ｘとの交点が存在する場合、その交点の座標（ｘ，ｙ）を第３の交点の座標として決定する。このようにして決定された第３の交点の座標のｘの値とｙの値とによって第１のコンテンツのサイズと第２のコンテンツのサイズとを定めることにより、第１のコンテンツの高さと第２のコンテンツの高さとを等しくすることができる。なお、上記交点が存在しない場合、データ処理部１１５は、部分円弧４０１の中点の座標のｘの値とｙの値とによって第１のコンテンツのサイズと第２のコンテンツのサイズとを定める。なお、交点の存在の有無に関する判断は、上述した順序（第１の交点、第２の交点、第３の交点）で行う必要はなく、任意の順序で行ってよい。
【００１６】
次に、図５を参照しながら、図２のステップＳ２０３について詳細に説明する。図５は、図２のステップＳ２０３の詳細を示すフローチャートである。
【００１７】
ステップＳ５０１において、データ処理部１１５は、楕円の部分円弧４０１とｘ＋ｙ＝ａとの交点（第１の交点）が存在するか否かを判定する。第１の交点が存在する場合、処理はステップＳ５０４に移行する。一方、第１の交点が存在しない場合、処理はステップＳ５０２に移行する。
【００１８】
ステップＳ５０２において、データ処理部１１５は、楕円の部分円弧４０１とｐｘ＋ｑｙ＝ｒａとの交点（第２の交点）が存在するか否かを判定する。第２の交点が存在する場合、処理はステップＳ５０５に移行する。一方、第２の交点が存在しない場合、処理はステップＳ５０３に移行する。
【００１９】
ステップＳ５０３において、データ処理部１１５は、楕円の部分円弧４０１とｙ＝ｘとの交点（第３の交点）が存在するか否かを判定する。第３の交点が存在する場合、処理はステップＳ５０６に移行する。一方、第３の交点が存在しない場合、処理はステップＳ５０７に移行する。
【００２０】
ステップＳ５０４において、データ処理部１１５は、第１の交点の座標のｘの値及びｙの値に基づいて、第１のコンテンツのサイズ、第２のコンテンツのサイズを算出する。ステップＳ５０５において、データ処理部１１５は、第２の交点の座標のｘの値及びｙの値に基づいて、第１のコンテンツのサイズ、第２のコンテンツのサイズを算出する。ステップＳ５０６において、データ処理部１１５は、第３の交点の座標のｘの値及びｙの値に基づいて、第１のコンテンツのサイズ、第２のコンテンツのサイズを算出する。ステップＳ５０７において、データ処理部１１５は、部分円弧４０１の中点の座標のｘの値及びｙの値に基づいて、第１のコンテンツのサイズ、第２のコンテンツのサイズを算出する。
【００２１】
以上のように、第１の実施形態においては、１台の文書生成装置がステップＳ２０１、Ｓ２０２、Ｓ２０３の処理を全て実行している。その変形例として、図６に示すように、複数の文書生成装置Ａ６０１、Ｂ６０２、Ｃ６０３をネットワークで接続し、各文書生成装置Ａ６０１、Ｂ６０２、Ｃ６０３が、図２のステップＳ２０１、Ｓ２０２、Ｓ２０３の各処理を分担するようにしてもよい。
【００２２】
本実施形態によれば、テンプレートなしでフォントサイズや文字数を固定したテキストや、写真等の複数のコンテンツを隙間なくレイアウトするためのコンテンツのサイズを自動で決定することができる。そのため、ユーザはコンテンツの配置を決定するだけで最適レイアウトのドキュメントを容易に作成することができる。
【００２３】
次に、本発明の第２の実施形態について説明する。第１の実施形態においては、レイアウト領域に対して２つのコンテンツを配置する場合について説明したが、第２の実施形態では、レイアウト領域に対して３つ以上のコンテンツを配置する。なお、第２の実施形態に係る文書生成装置の構成は図１に示した構成と同様であるため、第２の実施形態についても図１の符号を用いて説明を行うものとする。
【００２４】
以下、図７及び図８を参照しながら、第２の実施形態に係る文書生成装置の処理について説明する。図７は、第２の実施形態に係る文書生成装置の処理を示すフローチャートである。図８は、レイアウト領域に対して５つのコンテンツ及びテキストをレイアウトした状態を示す図である。
【００２５】
ステップＳ７０１において、データ処理部１１５は、１つのテキストを複数のテキストに分割し（以下、分割されたテキストを分割テキストと称す）、内容等の関連性に応じて各分割テキストに対して１つ又は２つのコンテンツを振り分けてグルーピングする。図８の例では、第１の分割テキストに対しては第１、第２のコンテンツ、第２の分割テキストに対しては第３、第４のコンテンツ、第３の分割テキストに対しては第５のコンテンツが振り分けられた状態を示している。ここで、テキストの分割数は、コンテンツ数／２(小数点以下切り上げ)によって求めるものとする。図８の例の場合、コンテンツ数は５つであるため、分割数は３となる。また、テキストの分割の際には、各文の文字数を加算していき、平均文字数(総文字数／テキストの分割数)を超えた文までを１つの分割テキストとする。ここでは、テキストＴを、第１〜第３の分割テキストＴ１〜Ｔ３に分割したものとする。なお、構造化文書等のように段落を取得することができる場合には、テキストを段落単位で分割してもよい。なお、ステップＳ７０１は、第１の分割手段の処理例である。
【００２６】
分割テキストとコンテンツとの関連付けは、例えばテキスト中の図番号や画像のアノテイションとテキスト中の各文との類似度等から、コンテンツの関連部分がテキストのどの文にあるかを利用して行う。
【００２７】
上記のグルーピングの結果、１つの分割テキストに対して３つ以上のコンテンツが振り分けられた場合、当該グループをさらに分割する。一方、１つの分割テキストに対してコンテンツが１つも振り分けられなかった場合、当該グループに隣接するグループのうち、振り分けられているコンテンツの数の多い方にグループをマージする。なお、テキストの分割、及び、分割テキストに対するコンテンツの振り分けは、以上のような手法ではなく、ユーザの指示に従って実行してもよい。
【００２８】
ステップＳ７０２において、データ処理部１１５は、各分割テキストの文字数に基づいて、レイアウト領域の分割比率を決定する。以下では、レイアウト領域を分割した領域を分割レイアウト領域と称す。図８（ａ）において、ａはレイアウト領域の縦の長さである。第１の分割レイアウト領域における縦の長さをａ１で表し、第２の分割レイアウト領域における縦の長さをａ２で表し、第３の分割レイアウト領域における縦の長さをａ３で表す。ａ１、ａ２、ａ３、ａの関係は、ａ１＋ａ２＋ａ３＝ａである。第１の分割テキスト領域Ｔ１の文字数：第２の分割レイアウト領域Ｔ２の文字数：第３の分割レイアウト領域Ｔ３の文字数＝ａ１：ａ２：ａ３であるとする。すると、図８（ａ）に示すように、レイアウト領域の縦の辺の長さａのうち、ａ１の長さ分が第１の分割レイアウト領域、ａ２の長さ分が第２の分割レイアウト領域、ａ３の長さ分が第３の分割レイアウト領域、というように分割される。なお、ステップＳ７０２は、第２の分割手段の処理例である。
【００２９】
ステップＳ７０３において、データ処理部１１５は、第１の実施形態におけるステップＳ３０２と同様の処理により、分割テキスト領域の面積を算出する。ステップＳ７０４において、データ処理部１１５は、コンテンツのサイズを算出する。即ち、分割レイアウト領域にコンテンツが２つ存在する場合、データ処理部１１５は、第１の実施形態のステップＳ３０３と同様の処理により各コンテンツのサイズを算出する。一方、分割レイアウト領域にコンテンツが１つ存在する場合、データ処理部１１５は、ステップＳ７０４において分割レイアウト領域の面積から分割テキスト領域の面積を減算してコンテンツの面積を算出し、サイズも算出する。ステップＳ７０５において、データ処理部１１５は、全ての分割レイアウト領域について処理を実行したか否か、即ち、全てのコンテンツのサイズを算出したか否かを判定する。全ての分割レイアウト領域について処理を実行した場合、処理は終了する。一方、全ての分割レイアウト領域について処理を実行していない場合、処理はステップＳ７０３に移行する。
【００３０】
以上では、１つのテキストを横割りで複数のテキストに分割した例について説明したが、１つのテキストを縦割りで複数のテキストに分割する場合も同様の処理により可能である。即ち、図８（ｂ）に示すように、１つのテキストを第１〜第３の分割テキストＴ１〜Ｔ３に分割し、第１〜第３の分割テキストＴ１〜Ｔ３の文字数に応じて、レイアウト領域の分割比率（ａ１：ａ２：ａ３）を決定する。なお、分割テキスト領域の面積の計算、コンテンツのサイズの計算は、ステップＳ７０３、Ｓ７０４と同様である。
【００３１】
次に、本発明の第３の実施形態について説明する。第１の実施形態では、仮想ボディの面積にテキストの文字数を乗算してテキスト領域の面積を算出したが、厳密には、文字ピッチ、行間ピッチ、禁則処理等によって、テキスト領域の面積は文字列の配置に依存し、実際に文字列を配置しなければ求めることはできない。従って、第３の実施形態では、仮想ボディによってテキスト領域の面積を仮計算し、コンテンツのサイズを概算し、実際にコンテンツを配置してテキスト領域の面積を実フォントによって算出する処理を複数回実施する。これにより、テキスト領域の面積の計算に正確さが増し、最適なレイアウトを生成することができる。
【００３２】
以下、図９を参照しながら、第３の実施形態に係る文書生成装置の処理について説明する。図９は、第３の実施形態に係る文書生成装置の処理を示すフローチャートである。なお、第３の実施形態に係る文書生成装置の構成は図１に示した構成と同様であるため、第３の実施形態についても図１の符号を用いて説明を行うものとする。
【００３３】
ステップＳ９０１において、データ処理部１１５は、ステップＳ２０２と同様の手法により、テキストの文字数及びフォント情報に基づいて、テキスト領域の面積を仮計算する。即ち、データ処理部１１５は、フォント情報のフォントサイズ及びフォント種別から仮想ボディを取得し、仮想ボディの面積にテキストの文字数を乗算してテキスト領域の面積を仮計算する。ステップＳ９０２において、データ処理部１１５は、仮計算したテキスト領域の面積に基づいて、ステップＳ２０３と同様の手法によりコンテンツのサイズを仮計算する。
【００３４】
ステップＳ９０３において、データ処理部１１５は、ユーザによって指示されたコンテンツの配置位置を取得し、当該配置位置に従ってレイアウト領域に対してコンテンツを配置する。ステップＳ９０４において、データ処理部１１５は、コンテンツが配置されたレイアウト領域に対して文字列を配置し、実フォントによるテキスト領域の面積を算出する。ステップＳ９０５において、データ処理部１１５は、ステップＳ９０４で算出したテキスト領域の面積に基づいて、第２の実施形態と同様の手法（ステップＳ７０４）により、コンテンツのサイズを算出する。ステップＳ９０６において、データ処理部１１５は、今回のステップＳ９０５の算出結果が前回のステップＳ９０５の算出結果と同様であるか否か、及び、ステップＳ９０５を規定回数実行したか否かを判定する。今回のステップＳ９０５の算出結果が前回のステップＳ９０５の算出結果と異なり、且つ、ステップＳ９０５の実行回数が規定回数未満である場合、処理はステップＳ９０４に戻る。一方、今回のステップＳ９０５の算出結果が前回のステップＳ９０５の算出結果と同じである場合、又は、ステップＳ９０５の実行回数が規定回数以上である場合、処理は終了する。
【００３５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３６】
１１１：記憶部、１１３：入力部、１１５：データ処理部、１１６：表示部、１１７：ネットワークＩ／Ｆ部
【図１】
2012203444.tif 000003
【図２】
2012203444.tif 000004
【図３】
2012203444.tif 000005
【図４】
2012203444.tif 000006
【図５】
2012203444.tif 000007
【図６】
2012203444.tif 000008
【図７】
2012203444.tif 000009
【図８】
2012203444.tif 000010
【図９】
2012203444.tif 000011