文書編集装置およびプログラム
【課題】入力されるオブジェクトの量が変わっても、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成すること。
【解決手段】本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、テキストを配置する仮レイアウト手段と、第1の黄金矩形の領域内に配置されたテキストの量に基づいて、配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、配置方向と垂直な方向において、テキストが第2の黄金矩形内に収まるようにテキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。
【解決手段】本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、テキストを配置する仮レイアウト手段と、第1の黄金矩形の領域内に配置されたテキストの量に基づいて、配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、配置方向と垂直な方向において、テキストが第2の黄金矩形内に収まるようにテキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書を編集する際にレイアウトを自動的に行う技術に関する。
【背景技術】
【0002】
データ化されたテキスト(文字列)または画像などのオブジェクト(デジタルコンテンツ)を含む文書を編集する技術が知られている。例えば特許文献1には、規定のテキスト領域にテキストを配置する技術が開示されている。また、特許文献2〜5には、人間に美しいと感じられる、審美性に優れた、またはバランスの取れた配置で文書を作成あるいはその支援をする技術が開示されている。
【0003】
【特許文献1】特開2002−297571号公報
【特許文献2】特開平8−180037号公報
【特許文献3】特開平10−289262号公報
【特許文献4】特開平10−301980号公報
【特許文献5】特開2000−200354号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ここで、規定の領域にオブジェクトを配置するだけでは、生成される文書の審美性あるいは配置のバランスは配置されるオブジェクトの量によって変わってしまうという問題があった。
本発明は、入力されるオブジェクトの量が変わっても、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成する技術を提供する。
【課題を解決するための手段】
【0005】
上述の課題を解決するため、本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。この文書編集装置によれば、入力されるオブジェクトの量に応じて、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成することができる。
【0006】
好ましい態様において、この文書編集装置は、前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0007】
別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0008】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストの各行の文字数に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0009】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定してもよい。
【0010】
さらに別の好ましい態様において、この文書編集装置は、少なくとも1つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定してもよい。
【0011】
さらに別の好ましい態様において、この文書編集装置は、前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第1の黄金矩形の1辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第1の黄金矩形と同一の矩形を前記第2の黄金矩形として生成してもよい。
【0012】
さらに別の好ましい態様において、この文書編集装置は、前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第2の黄金矩形に基づいて前記オブジェクトを配置する配置手段とをさらに有してもよい。
【0013】
また、本発明は、コンピュータ装置を、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段として機能させるプログラムを提供する。
【発明を実施するための最良の形態】
【0014】
1.第1実施形態
図1は、本発明の第1実施形態に係る文書編集装置100の機能構成を示すブロック図である。オブジェクト取得部101は、処理対象となるオブジェクトを取得する。「オブジェクト」とは、少なくともテキスト(文字列)を示すデータを含むデータをいう。「文書」とは、少なくとも1のオブジェクトと、オブジェクトが配置される領域を示す情報とを含むデータまたはそのデータに基づいて生成された結果物をいう。オブジェクトは、文書編集装置100内の記憶部(後述)から取得されてもよいし、文書編集装置100以外の他の装置から取得されてもよい。配置方向取得部102は、配置方向を示す情報を取得する。「配置方向」とは、テキストが配置される方向である。例えば、日本語であれば、配置方向は左から右または上から下である。英語であれば、配置方向は左から右である。配置方向は、文書編集装置100内の記憶部(後述)から取得されてもよいし、文書編集装置100以外の他の装置から取得されてもよい。仮レイアウト部103は、取得されたオブジェクトに含まれるテキストを、黄金矩形内に仮レイアウトする。仮レイアウト部103により生成される黄金矩形を、必要に応じて「第1の黄金矩形」という。なお、「黄金矩形」とは、隣り合う2辺の長さの比が次式(1)で示される比(いわゆる黄金比)である四角形をいう。なお、式(1)の右項と左項とは入れ替えられてもよい。
【数1】
【0015】
黄金矩形生成部104は、テキストの量および第1の黄金矩形に基づいて、新たな黄金矩形を生成する。黄金矩形生成部104により生成される黄金矩形を、必要に応じて「第2の黄金矩形」という。レイアウト部105は、第2の黄金矩形内に処理対象のテキストを配置する。
【0016】
図2は、文書編集装置100のハードウェア構成を示すブロック図である。CPU(Central Processing Unit)110は、文書編集装置100の各構成要素を制御する制御装置である。ROM(Read Only Memory)120は、文書編集装置100の起動に必要なデータおよびプログラムを記憶する記憶装置である。RAM(Random Access Memory)130は、CPU110がプログラムを実行する際の作業領域として機能する記憶装置である。I/F(Interface)140は、種々の入出力装置や記憶装置との間でデータおよび制御信号の入出力をするインターフェースである。HDD(Hard Disk Drive)150は、各種プログラムおよびデータを記憶する記憶装置である。本実施形態に関して、HDD150は、文書の編集を行う文書編集プログラムを記憶している。キーボード・マウス160は、ユーザが文書編集装置100に対して指示入力を行うための入力装置である。ディスプレイ170は、データの内容あるいは処理の状況などを表示する出力装置である。ネットワークIF180は、ネットワーク(図示略)を介して接続された他の装置との間でデータの送受信を行うためのインターフェースである。文書編集装置100は、例えば、ネットワークおよびネットワークIF180を介して文書(正確には、文書を示す電子データ)を受信することができる。CPU110、ROM120、RAM130、およびI/F140は、バス190を介して接続されている。CPU110が文書編集プログラムを実行することにより、文書編集装置100は、図1に示される機能構成を備える。
【0017】
図3は、文書編集装置100の動作を示すフローチャートである。ステップS100において、CPU110は、処理対象となるオブジェクトを取得する。オブジェクトは、HDD150から取得されてもよいし、ネットワークおよびネットワークIF180を介して文書編集装置100以外の他の装置から取得されてもよい。あるいは、オブジェクトは、ユーザがキーボード・マウス160を操作することにより文書編集装置100に入力されてもよい。本実施形態において、処理対象のオブジェクトは、以下のテキストを含む。「5月30日正午に発売する次世代プリンタXXXXX。このYYプリンタは、高速印刷性能ZZZZZppmを可能とし、2way給紙や両面印刷機能にも標準対応しながら、省スペース設計(SSSSSS)省エネルギーを実現しました。AAAAAAAAAAAAAAAAAAAAAA」。CPU110は、取得されたオブジェクトをHDD150に記憶する。
【0018】
ステップS110において、CPU110は、テキストの配置方向を取得する。配置方向は、例えば、あらかじめ決められている。あるいは、配置方向は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、配置方向を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語(例えば、日本語)を示す情報を含んでいる。HDD150は、言語の識別子と、その言語に対応する配置方向を示す情報を記憶している。CPU110は、HDD150に記憶された情報に基づいて、配置方向を決定する。さらにあるいは、配置方向は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、配置方向を示す情報を含んでいる。以下において、配置方向が「左から右」である例について説明する。
【0019】
ステップS120において、CPU110は、処理対象のオブジェクトに含まれるテキストを仮レイアウトする。ここでは、テキストを配置したときに、その外接図形が黄金矩形となるように、オブジェクトの配置情報が生成される。すなわち、オブジェクトは編集される。
【0020】
図4は、仮レイアウト処理の詳細を示すフローチャートである。ステップS121において、CPU110は、処理対象のオブジェクトを一時レイアウトする。処理対象のオブジェクトが配置される領域、すなわちレイアウト領域は、あらかじめ決められている。あるいは、レイアウト領域は、ユーザの指示入力に応じて決定されてもよい。あるいは、レイアウト領域は、あらかじめ決められたアルゴリズムに従ってCPU110により決定されてもよい。
【0021】
図5は、一時レイアウトされたオブジェクトを例示する図である。レイアウト領域Dは、例えば、A4サイズの大きさを有する。オブジェクト領域Lは、レイアウト領域Dのうち、処理対象のオブジェクトが配置される領域を示す。すなわち、オブジェクト領域は、文書編集装置100により編集される文書の出力単位(例えばページ)に相当する領域であるレイアウト領域のうち、オブジェクトが配置される領域を限定するものである。オブジェクト領域Lは、処理対象のオブジェクトの量(例えば、テキストの文字数)およびオブジェクト属性情報に基づいて決定される。例えば、オブジェクト領域Lは、レイアウト領域Dのうちある点(例えば、中心点)を基準として、テキストをオブジェクト属性情報に従って配置することにより決定される。すなわち、オブジェクトの文字列は、オブジェクト属性情報で指定される行間、フォントサイズ、フォント種別およびスタイルで配置される。このとき、一時レイアウトに行間の影響を反映させるため、レイアウト領域Dは、文字列が複数行(配置方向は上下方向の場合は複数列)に表示されるように決定される。例えば、一時レイアウトにおいて文字列は4行に配置されるというルールがあらかじめ決められている。CPU110は、このルールに従って文字列を配置し、レイアウト領域Dを決定する。一時レイアウトは、RAM130上で仮想的に行われてもよい。あるいは、一時レイアウトの結果は、ディスプレイ170に表示されてもよい。
【0022】
オブジェクト属性情報とは、個々のオブジェクトの属性を示す情報である。オブジェクト属性情報は、例えば、属性の種類を示す属性識別子と、その属性の値を含むデータセットを含んでいる。オブジェクト属性情報は、例えば、属性識別子として、「行間」、「フォントサイズ」、「フォント種別」および「スタイル」を、これらの属性の値として、「1.5行」、「24ポイント」、「ゴシック」および「Bold」という情報を含んでいる。属性「行間」は、テキストの行間を示す。属性「フォントサイズ」はフォントの大きさを示す。属性「フォント種別」はフォントの種類を示す。属性「スタイル」は表示される際のスタイル、すなわち、標準、斜体、太字のいずれかを示す。オブジェクト属性情報の取得方法は任意である。
【0023】
再び図4を参照して説明する。ステップS122において、CPU110は、オブジェクト領域Lの2辺の長さ、すなわち幅wおよび高さhを測定する。例えば、CPU110は、オブジェクト(テキスト)の外接矩形を求める。CPU110は、得られた外接矩形の幅および高さを測定する。このとき、CPU110は、オブジェクトの周囲にあらかじめ決められた余白を設けてもよい。CPU110は、余白も含めて外接矩形を求めてもよい。あるいは、CPU110は、仮レイアウトされたテキストが収まるようなテキストボックスを設定し、その幅および高さを求めてもよい。
【0024】
ステップS123において、CPU110は、次式(2)に従って黄金矩形の一辺の長さAを算出する。
【数2】
【0025】
なお、式(2)は、次式(3)に基づいて得られたものである。式(3)は、黄金矩形とオブジェクト領域Lの面積が等しいという条件から導かれる。
【数3】
【0026】
ステップS124において、CPU110は、黄金矩形の他辺の長さA’を次式(4)に従って算出する。このようにして、第1の黄金矩形の辺の長さが決定される。
【数4】
【0027】
ステップS125において、CPU110は、黄金矩形に配置されるようにオブジェクトを編集する。すなわち、CPU110は、テキストの仮レイアウトを決定する。これは例えば以下のように行われる。CPU110は、処理対象のオブジェクトに含まれる文字を先頭から順番に配置する。配置された文字の幅がA’に達すると、CPU110は、改行を挿入する。同様に文字列を2行目にも配置し、2行目に配置された文字の幅がA’に達すると、CPU110は、再び改行を挿入する。このようにして、黄金矩形に配置されたオブジェクトが得られる。
【0028】
あるいは、CPU110は、高さA、幅A’の大きさを有する領域をテキスト領域として決定してもよい。CPU110は、テキスト領域に、オブジェクトに含まれる文字列を流し込む、すなわち、テキスト領域内に収まるように文字を配置することにより黄金矩形に配置されたオブジェクトを得てもよい。
【0029】
図6は、形成された黄金矩形(第1の黄金矩形)を例示する図である。このように、オブジェクトは黄金矩形に収まるように配置される。
【0030】
再び図3を参照して説明する。ステップS130において、CPU110は、第2の黄金矩形を生成する。
【0031】
図7は、第1実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップS131において、CPU110は、テキスト配置情報を取得する。テキスト配置情報は、黄金矩形内におけるテキストの配置を指定する情報である。テキスト配置情報として、例えば、「右揃え」、「左揃え」、「上揃え」および「下揃え」などが用いられる。テキスト配置情報の取得方法は任意である。例えば、テキスト配置情報はあらかじめ決められていてもよい。あるいは、テキスト配置情報は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、テキスト配置情報を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語(例えば、日本語)を示す情報を含んでいる。HDD150は、言語の識別子と、その言語に対応するテキスト配置情報を示す情報を記憶している。CPU110は、HDD150に記憶された情報に基づいて、テキスト配置情報を決定する。さらにあるいは、テキスト配置情報は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、テキスト配置情報を示す情報を含んでいる。以下において、テキスト配置情報が「左揃え」である例について説明する。
【0032】
ステップS132において、CPU110は、第1の黄金矩形を構成する4つの辺のうち、処理対象となる辺である対象辺を決定する。対象辺の候補となるのは、テキストの配置方向と垂直な辺である。いま配置方向は「左から右」なので、対象辺の候補となるのは第1の黄金矩形の左辺および右辺である。CPU110は、さらに、対象辺の候補から、テキスト配置情報に基づいて対象辺を決定する。ここでは、テキスト配置情報で指定される基準位置と逆の位置に対応する辺が、対象辺として決定される。基準位置とは、例えば、テキスト配置情報が「左揃え」の場合は左、「右揃え」の場合は右、「上揃え」の場合は上、「下揃え」の場合は下である。基準位置と逆の位置とは、例えば、テキスト配置情報が「左揃え」の場合は右、「右揃え」の場合は左、「上揃え」の場合は下、「下揃え」の場合は上である。いまテキスト配置情報は「左揃え」なので、基準位置と逆の位置に対応する辺は、右辺である。このように、CPU110は、右辺を対象辺として決定する。
【0033】
ステップS133において、CPU110は、複数行に一時レイアウトされたテキストの各行について、行末の座標を取得する。図6の例では、テキストは6行に分けてレイアウトされる。例えば、1〜6行目の行末座標は、それぞれ、15、15、17、15、15、12であると算出される。本実施形態では、行末座標の単位はcm(センチメートル)である。また、座標は0.5を最小単位として計測され、0.5に満たない値は切り上げられる。なお、座標の単位および計測の最小単位はこれらに限定されるものではない。また、ここで行末座標が用いられるのは、テキストが横書きの言語で記述されており、かつ、対象辺が右辺だからである。どの辺が対象辺であるかに応じて、先頭または末尾のいずれが用いられるかが決定される。テキストが横書きの場合には行頭または行末の少なくとも一方の文字が、テキストが縦書きの場合には列頭または列末の文字が用いられる。一般的には、すべての行または列についての先頭または末尾の少なくとも一方の文字が用いられる。
【0034】
ステップS134において、CPU110は、代表座標を決定する。代表座標は、第2の黄金矩形の辺の長さを決めるのに用いられる。CPU110は、行末座標に基づいて、あらかじめ決められたアルゴリズムに従って代表座標を決定する。本実施形態において、代表座標は、複数の行末座標のうち最も頻度が高い値として算出される。すなわち、本実施形態において、代表座標は15である。あるいは、代表座標は、複数の行末座標の平均値として算出されてもよい。平均値を算出する際には、最終行などその値が特異であると考えられる行は除外されてもよい。
【0035】
ステップS135において、CPU110は、第2の黄金矩形を決定する。まず、CPU110は、第2の黄金矩形の対象辺(ここでは右辺)の位置を、代表座標に基づいて決定する。すなわち、CPU110は、第2の黄金矩形の右辺の位置を、左辺の位置から15cmの位置に決定する。なお、第1の黄金矩形と第2の黄金矩形において、対象辺と向かい合う辺(ここでは左辺)の位置は同一である。このようにして、CPU110は、第2の黄金矩形において、テキストの配置方向と垂直な辺(ここでは右辺および左辺)の位置を決定する。すなわち、CPU110は、第2の黄金矩形において、テキストの配置方向と平行な辺(ここでは上辺および下辺)の長さを決定する。
【0036】
CPU110は、さらに、第2の黄金矩形において、テキストの配置方向と垂直な辺(ここでは右辺および左辺)の長さを決定する。右辺および左辺の長さは、上辺および下辺の長さとの比が黄金比になるように決定される。また、右辺および左辺の位置は、例えば、ある基準点(例えば、左辺の上端、中点または下端など)が第1の黄金矩形と第2の黄金矩形とで同一となるように決定される。以上のようにして、第2の黄金矩形の位置および大きさが決定される。
【0037】
第2の黄金矩形は、第1の黄金矩形よりも面積が小さくなる場合がある。そこでCPU110は、第2の黄金矩形の、テキストの配置方向と垂直な辺の長さに基づいて、テキストの配置を更新する。ここでは、CPU110は、右辺(または左辺)の長さに応じて、行の間隔を更新する。すなわち、上下方向においてテキストが第2の黄金矩形からはみ出ないように、行間が縮められる。
【0038】
ステップS136において、CPU110は、テキストのレイアウトを決定する。すなわち、CPU110は、テキストのレイアウトを示す情報および第2の黄金矩形を特定する情報を、RAM130に記憶する。第2の黄金矩形を特定する情報は、例えば、4つの頂点の座標である。以下、第2の黄金矩形を特定する情報およびテキストのレイアウトを示す情報を含む情報を、「属性情報」という。オブジェクトと、そのオブジェクトに対応する属性情報とは、一方から他方を特定できるようにRAM130またはHDD150に記憶される。
【0039】
図8は、第2の黄金矩形を例示する図である。対象辺であった右辺において、一部の文字が黄金矩形からはみ出しているが、それ以外の辺において、文字が黄金矩形からはみ出しているところはない。
【0040】
再び図3を参照して説明する。ステップS140において、CPU110は、黄金矩形に配置されたオブジェクトを、レイアウト領域Dに配置する。オブジェクトを配置する位置は、あらかじめ決められていてもよい。あるいは、オブジェクトを配置する位置は、ユーザの指示入力に応じて決定されてもよい。処理対象のオブジェクトが配置されることにより、文書が生成される。ユーザは、以上のように生成された文書に対して、公知の文書編集技術によるソフトウェアを用いて、文書を編集することができる。その際、第2の黄金矩形は、いわゆるグリッド矩形として機能することができる。グリッド矩形として機能させる場合、CPU110は、第2の黄金矩形をディスプレイ170に表示する。
【0041】
以上で説明したように本実施形態によれば、グリッド矩形は対応するオブジェクトに応じてダイナミックに形成される。図8に示される例では、右辺においてはみ出しいている文字が存在する。しかし、このような文字も、行末座標の分布という観点からは特異と考えることができるものである。したがって、むしろこのような特異点を無視するようにグリッド矩形(黄金矩形)を形成した方が、レイアウトの審美性という観点において優れた文書を作成することができる。
【0042】
2.第2実施形態
続いて、本発明の第2実施形態について説明する。以下において、第1実施形態と共通する事項についてはその説明を省略する。また、第1実施形態と共通する要素については共通の参照符号が用いられる。本実施形態においては、図3のステップS130の黄金矩形を生成する処理が、第1実施形態で説明したものと異なる。
【0043】
図9は、第2実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップS131〜S134の処理は第1実施形態において説明したものと同様であるので説明を省略する。ステップS201において、CPU110は、その行末座標が代表座標よりも大きい、すなわち行末座標が代表座標を超えた行の数を取得する。いま1〜6行目の行末座標は、それぞれ、15、15、17、15、15、12であり、代表座標は15である。従って、代表座標を超えた行の数は1である。
【0044】
ステップS202において、CPU110は、行末座標が代表座標を超えた行の割合rを算出する。いまテキストは6行に配置され、行末座標が代表座標を超えたのは1行である。したがって、割合r=1/6=17%であると算出される。
【0045】
ステップS203において、CPU110は、割合rがしきい値rth(例えば、rth=25%)を超えているか判断する。割合rが、r<rthを満たす場合(S203:YES)、CPU110は、処理をステップS135に移行する。すなわち、CPU110は、第1実施形態と同様に、第2の黄金矩形を生成する。割合rが、r<rthを満たさない場合(S203:NO)、CPU110は、処理をステップS204に移行する。
【0046】
ステップS204において、CPU110は、第1の黄金矩形をそのまま、第2の黄金矩形として用いることを決定する。以後の処理は第1実施形態と同様である。
【0047】
以上で説明したように、本実施形態によれば、行末座標が代表座標を超えている行の割合に応じて、第2の黄金矩形を新たに生成するか、第1の黄金矩形をそのまま用いるかが決定される。行末座標が代表座標を超えている行の割合があるしきい値を超えた場合には、これらの行を無視してしまうとレイアウトの審美性がかえって悪化してしまう場合もある。しかし、本実施形態によれば、この問題も解決される。
【0048】
3.他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態において、テキスト配置情報が「左揃え」である場合について説明した。例えば、テキスト配置情報が「中央揃え」である場合、CPU110は、左辺および右辺の2つの辺を対象辺として決定してもよい。この場合、対象辺の位置は、例えば第1の黄金矩形において、上辺と下辺の中点を結ぶ線を基準として定められてもよい。
【0049】
上述の実施形態において、行末座標を取得する際に、テキストの内容については考慮されなかった。しかし、行末座標を取得する際に、テキストの内容が考慮されてもよい。例えば、行末座標を取得する際に、特定の文字(例えば、「、」や「。」など)が除外されてもよい。すなわち、HDD150は、除外対象となる文字の識別子を記憶している。CPU110は、HDD150に除外対象の文字として記憶されている文字については、行末の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「、」、「。」などの句読点、「い」、「て」など線の密度が低い平仮名などが指定されてもよい。
【0050】
図10は、他の実施形態に係るテキストを例示する図である。第1行目の行末に「。」があるが、行末座標を取得する際には、この文字は無視される。このように、行末座標の取得に際して特定の文字を除外することによって、より審美性に優れた黄金矩形を生成することができる。
【0051】
また、第2の黄金矩形の生成に際し、行頭について、特定の文字が除外されてもよい。
図11および図12は、他の実施形態に係るテキストを例示する図である。各行の行頭に、箇条書きを示す記号「・」が存在する。CPU110は、第2の黄金矩形の生成に際し、これらの文字(記号)を対象から除外してもよい(図12)。この処理は、例えば以下のように行われる。対象辺の位置が決定された後、CPU110は、行頭についても、行末の場合と同様に、行頭座標を算出する。さらに、CPU110は、行頭座標について、その代表座標を算出する。CPU110は、代表座標に基づいて、対象辺と対向する辺(左辺)の位置を決定する。CPU110は、対象辺(右辺)および対象辺と対向する辺(左辺)の位置に基づいて、対象辺(右辺)および対象辺と対向する辺(左辺)の長さを決定する。
【0052】
行末の場合と同様に、HDD150は、除外対象となる文字の識別子を記憶している。CPU110は、HDD150に除外対象の文字として記憶されている文字については、行頭の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「・」、「●」、「■」などの記号、「(1)」、「(2)」、「(a)」、「(b)」などの番号が指定されてもよい。すなわち、いずれかの行において、行頭あるいは行末のように所定の位置にこれらの除外対象文字が存在した場合、その行のその文字については行末座標あるいは行頭座標の算出対象から除外される。
【0053】
また、上述の実施形態においては、第1の黄金矩形内に配置されたテキストの各行の行末の座標に基づいて第2の黄金矩形の一辺の長さが決められた。しかし、第2の黄金矩形の一辺の長さを決めるのに用いられるパラメータは、これに限定されない。例えば、CPU110は、各行に含まれる文字の数に基づいて、第2の黄金矩形の一辺の長さを決めてもよい。要は、各行の文字の量を示すパラメータであれば、どのようなものが用いられてもよい。
【0054】
また、上述の実施形態においては、第1の黄金矩形内に配置されたテキストの行末座標の最頻値に基づいて、第2の黄金矩形の一辺の位置が決められた。しかし、第2の黄金矩形の一辺の位置を決める方法は、これに限定されるものではない。複数の行末座標と、第2の黄金矩形の一辺の位置との一致度が最大となるものであれば、どのような方法が用いられてもよい。
【0055】
上述の実施形態において、第2の黄金矩形は第1の黄金矩形と区別して説明された。しかし、第2の黄金矩形を生成する処理は、第1の黄金矩形の辺の位置や長さを変更して、第1の黄金矩形の大きさや形状を更新する処理ととらえることもできる。
【0056】
上述の実施形態において、図1に示される機能構成要素は、CPU110がプログラムを実行することによりソフトウェアとして実現された。しかし、文書編集装置100は、図1に示される各機能構成要素に相当する電子回路を有してもよい。すなわち、図1に示される機能構成要素(の一部)は、ハードウェアとして実現されてもよい。
【0057】
上述の各実施形態においては、文書編集プログラムはHDD150に記憶されていた。しかし、文書編集プログラムは、CD−ROM(Compact Disk Read Only Memory)などの記憶媒体により提供されてもよい。
【図面の簡単な説明】
【0058】
【図1】第1実施形態に係る文書編集装置100の機能構成を示すブロック図である。
【図2】文書編集装置100のハードウェア構成を示すブロック図である。
【図3】文書編集装置100の動作を示すフローチャートである。
【図4】仮レイアウト処理の詳細を示すフローチャートである。
【図5】一時レイアウトされたオブジェクトを例示する図である。
【図6】形成された黄金矩形を例示する図である。
【図7】第1実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図8】第2の黄金矩形を例示する図である。
【図9】第2実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図10】他の実施形態に係るテキストを例示する図である。
【図11】他の実施形態に係るテキストを例示する図である。
【図12】他の実施形態に係るテキストを例示する図である。
【符号の説明】
【0059】
100…文書編集装置、101…オブジェクト取得部、102…配置方向取得部、103…仮レイアウト部、104…黄金矩形生成部、105…レイアウト部、110…CPU、120…ROM、130…RAM、140…I/F、150…HDD、160…キーボード・マウス、170…ディスプレイ、180…ネットワークIF、190…バス
【技術分野】
【0001】
本発明は、文書を編集する際にレイアウトを自動的に行う技術に関する。
【背景技術】
【0002】
データ化されたテキスト(文字列)または画像などのオブジェクト(デジタルコンテンツ)を含む文書を編集する技術が知られている。例えば特許文献1には、規定のテキスト領域にテキストを配置する技術が開示されている。また、特許文献2〜5には、人間に美しいと感じられる、審美性に優れた、またはバランスの取れた配置で文書を作成あるいはその支援をする技術が開示されている。
【0003】
【特許文献1】特開2002−297571号公報
【特許文献2】特開平8−180037号公報
【特許文献3】特開平10−289262号公報
【特許文献4】特開平10−301980号公報
【特許文献5】特開2000−200354号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ここで、規定の領域にオブジェクトを配置するだけでは、生成される文書の審美性あるいは配置のバランスは配置されるオブジェクトの量によって変わってしまうという問題があった。
本発明は、入力されるオブジェクトの量が変わっても、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成する技術を提供する。
【課題を解決するための手段】
【0005】
上述の課題を解決するため、本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。この文書編集装置によれば、入力されるオブジェクトの量に応じて、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成することができる。
【0006】
好ましい態様において、この文書編集装置は、前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0007】
別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0008】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストの各行の文字数に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【0009】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定してもよい。
【0010】
さらに別の好ましい態様において、この文書編集装置は、少なくとも1つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定してもよい。
【0011】
さらに別の好ましい態様において、この文書編集装置は、前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第1の黄金矩形の1辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第1の黄金矩形と同一の矩形を前記第2の黄金矩形として生成してもよい。
【0012】
さらに別の好ましい態様において、この文書編集装置は、前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第2の黄金矩形に基づいて前記オブジェクトを配置する配置手段とをさらに有してもよい。
【0013】
また、本発明は、コンピュータ装置を、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段として機能させるプログラムを提供する。
【発明を実施するための最良の形態】
【0014】
1.第1実施形態
図1は、本発明の第1実施形態に係る文書編集装置100の機能構成を示すブロック図である。オブジェクト取得部101は、処理対象となるオブジェクトを取得する。「オブジェクト」とは、少なくともテキスト(文字列)を示すデータを含むデータをいう。「文書」とは、少なくとも1のオブジェクトと、オブジェクトが配置される領域を示す情報とを含むデータまたはそのデータに基づいて生成された結果物をいう。オブジェクトは、文書編集装置100内の記憶部(後述)から取得されてもよいし、文書編集装置100以外の他の装置から取得されてもよい。配置方向取得部102は、配置方向を示す情報を取得する。「配置方向」とは、テキストが配置される方向である。例えば、日本語であれば、配置方向は左から右または上から下である。英語であれば、配置方向は左から右である。配置方向は、文書編集装置100内の記憶部(後述)から取得されてもよいし、文書編集装置100以外の他の装置から取得されてもよい。仮レイアウト部103は、取得されたオブジェクトに含まれるテキストを、黄金矩形内に仮レイアウトする。仮レイアウト部103により生成される黄金矩形を、必要に応じて「第1の黄金矩形」という。なお、「黄金矩形」とは、隣り合う2辺の長さの比が次式(1)で示される比(いわゆる黄金比)である四角形をいう。なお、式(1)の右項と左項とは入れ替えられてもよい。
【数1】
【0015】
黄金矩形生成部104は、テキストの量および第1の黄金矩形に基づいて、新たな黄金矩形を生成する。黄金矩形生成部104により生成される黄金矩形を、必要に応じて「第2の黄金矩形」という。レイアウト部105は、第2の黄金矩形内に処理対象のテキストを配置する。
【0016】
図2は、文書編集装置100のハードウェア構成を示すブロック図である。CPU(Central Processing Unit)110は、文書編集装置100の各構成要素を制御する制御装置である。ROM(Read Only Memory)120は、文書編集装置100の起動に必要なデータおよびプログラムを記憶する記憶装置である。RAM(Random Access Memory)130は、CPU110がプログラムを実行する際の作業領域として機能する記憶装置である。I/F(Interface)140は、種々の入出力装置や記憶装置との間でデータおよび制御信号の入出力をするインターフェースである。HDD(Hard Disk Drive)150は、各種プログラムおよびデータを記憶する記憶装置である。本実施形態に関して、HDD150は、文書の編集を行う文書編集プログラムを記憶している。キーボード・マウス160は、ユーザが文書編集装置100に対して指示入力を行うための入力装置である。ディスプレイ170は、データの内容あるいは処理の状況などを表示する出力装置である。ネットワークIF180は、ネットワーク(図示略)を介して接続された他の装置との間でデータの送受信を行うためのインターフェースである。文書編集装置100は、例えば、ネットワークおよびネットワークIF180を介して文書(正確には、文書を示す電子データ)を受信することができる。CPU110、ROM120、RAM130、およびI/F140は、バス190を介して接続されている。CPU110が文書編集プログラムを実行することにより、文書編集装置100は、図1に示される機能構成を備える。
【0017】
図3は、文書編集装置100の動作を示すフローチャートである。ステップS100において、CPU110は、処理対象となるオブジェクトを取得する。オブジェクトは、HDD150から取得されてもよいし、ネットワークおよびネットワークIF180を介して文書編集装置100以外の他の装置から取得されてもよい。あるいは、オブジェクトは、ユーザがキーボード・マウス160を操作することにより文書編集装置100に入力されてもよい。本実施形態において、処理対象のオブジェクトは、以下のテキストを含む。「5月30日正午に発売する次世代プリンタXXXXX。このYYプリンタは、高速印刷性能ZZZZZppmを可能とし、2way給紙や両面印刷機能にも標準対応しながら、省スペース設計(SSSSSS)省エネルギーを実現しました。AAAAAAAAAAAAAAAAAAAAAA」。CPU110は、取得されたオブジェクトをHDD150に記憶する。
【0018】
ステップS110において、CPU110は、テキストの配置方向を取得する。配置方向は、例えば、あらかじめ決められている。あるいは、配置方向は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、配置方向を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語(例えば、日本語)を示す情報を含んでいる。HDD150は、言語の識別子と、その言語に対応する配置方向を示す情報を記憶している。CPU110は、HDD150に記憶された情報に基づいて、配置方向を決定する。さらにあるいは、配置方向は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、配置方向を示す情報を含んでいる。以下において、配置方向が「左から右」である例について説明する。
【0019】
ステップS120において、CPU110は、処理対象のオブジェクトに含まれるテキストを仮レイアウトする。ここでは、テキストを配置したときに、その外接図形が黄金矩形となるように、オブジェクトの配置情報が生成される。すなわち、オブジェクトは編集される。
【0020】
図4は、仮レイアウト処理の詳細を示すフローチャートである。ステップS121において、CPU110は、処理対象のオブジェクトを一時レイアウトする。処理対象のオブジェクトが配置される領域、すなわちレイアウト領域は、あらかじめ決められている。あるいは、レイアウト領域は、ユーザの指示入力に応じて決定されてもよい。あるいは、レイアウト領域は、あらかじめ決められたアルゴリズムに従ってCPU110により決定されてもよい。
【0021】
図5は、一時レイアウトされたオブジェクトを例示する図である。レイアウト領域Dは、例えば、A4サイズの大きさを有する。オブジェクト領域Lは、レイアウト領域Dのうち、処理対象のオブジェクトが配置される領域を示す。すなわち、オブジェクト領域は、文書編集装置100により編集される文書の出力単位(例えばページ)に相当する領域であるレイアウト領域のうち、オブジェクトが配置される領域を限定するものである。オブジェクト領域Lは、処理対象のオブジェクトの量(例えば、テキストの文字数)およびオブジェクト属性情報に基づいて決定される。例えば、オブジェクト領域Lは、レイアウト領域Dのうちある点(例えば、中心点)を基準として、テキストをオブジェクト属性情報に従って配置することにより決定される。すなわち、オブジェクトの文字列は、オブジェクト属性情報で指定される行間、フォントサイズ、フォント種別およびスタイルで配置される。このとき、一時レイアウトに行間の影響を反映させるため、レイアウト領域Dは、文字列が複数行(配置方向は上下方向の場合は複数列)に表示されるように決定される。例えば、一時レイアウトにおいて文字列は4行に配置されるというルールがあらかじめ決められている。CPU110は、このルールに従って文字列を配置し、レイアウト領域Dを決定する。一時レイアウトは、RAM130上で仮想的に行われてもよい。あるいは、一時レイアウトの結果は、ディスプレイ170に表示されてもよい。
【0022】
オブジェクト属性情報とは、個々のオブジェクトの属性を示す情報である。オブジェクト属性情報は、例えば、属性の種類を示す属性識別子と、その属性の値を含むデータセットを含んでいる。オブジェクト属性情報は、例えば、属性識別子として、「行間」、「フォントサイズ」、「フォント種別」および「スタイル」を、これらの属性の値として、「1.5行」、「24ポイント」、「ゴシック」および「Bold」という情報を含んでいる。属性「行間」は、テキストの行間を示す。属性「フォントサイズ」はフォントの大きさを示す。属性「フォント種別」はフォントの種類を示す。属性「スタイル」は表示される際のスタイル、すなわち、標準、斜体、太字のいずれかを示す。オブジェクト属性情報の取得方法は任意である。
【0023】
再び図4を参照して説明する。ステップS122において、CPU110は、オブジェクト領域Lの2辺の長さ、すなわち幅wおよび高さhを測定する。例えば、CPU110は、オブジェクト(テキスト)の外接矩形を求める。CPU110は、得られた外接矩形の幅および高さを測定する。このとき、CPU110は、オブジェクトの周囲にあらかじめ決められた余白を設けてもよい。CPU110は、余白も含めて外接矩形を求めてもよい。あるいは、CPU110は、仮レイアウトされたテキストが収まるようなテキストボックスを設定し、その幅および高さを求めてもよい。
【0024】
ステップS123において、CPU110は、次式(2)に従って黄金矩形の一辺の長さAを算出する。
【数2】
【0025】
なお、式(2)は、次式(3)に基づいて得られたものである。式(3)は、黄金矩形とオブジェクト領域Lの面積が等しいという条件から導かれる。
【数3】
【0026】
ステップS124において、CPU110は、黄金矩形の他辺の長さA’を次式(4)に従って算出する。このようにして、第1の黄金矩形の辺の長さが決定される。
【数4】
【0027】
ステップS125において、CPU110は、黄金矩形に配置されるようにオブジェクトを編集する。すなわち、CPU110は、テキストの仮レイアウトを決定する。これは例えば以下のように行われる。CPU110は、処理対象のオブジェクトに含まれる文字を先頭から順番に配置する。配置された文字の幅がA’に達すると、CPU110は、改行を挿入する。同様に文字列を2行目にも配置し、2行目に配置された文字の幅がA’に達すると、CPU110は、再び改行を挿入する。このようにして、黄金矩形に配置されたオブジェクトが得られる。
【0028】
あるいは、CPU110は、高さA、幅A’の大きさを有する領域をテキスト領域として決定してもよい。CPU110は、テキスト領域に、オブジェクトに含まれる文字列を流し込む、すなわち、テキスト領域内に収まるように文字を配置することにより黄金矩形に配置されたオブジェクトを得てもよい。
【0029】
図6は、形成された黄金矩形(第1の黄金矩形)を例示する図である。このように、オブジェクトは黄金矩形に収まるように配置される。
【0030】
再び図3を参照して説明する。ステップS130において、CPU110は、第2の黄金矩形を生成する。
【0031】
図7は、第1実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップS131において、CPU110は、テキスト配置情報を取得する。テキスト配置情報は、黄金矩形内におけるテキストの配置を指定する情報である。テキスト配置情報として、例えば、「右揃え」、「左揃え」、「上揃え」および「下揃え」などが用いられる。テキスト配置情報の取得方法は任意である。例えば、テキスト配置情報はあらかじめ決められていてもよい。あるいは、テキスト配置情報は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、テキスト配置情報を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語(例えば、日本語)を示す情報を含んでいる。HDD150は、言語の識別子と、その言語に対応するテキスト配置情報を示す情報を記憶している。CPU110は、HDD150に記憶された情報に基づいて、テキスト配置情報を決定する。さらにあるいは、テキスト配置情報は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、テキスト配置情報を示す情報を含んでいる。以下において、テキスト配置情報が「左揃え」である例について説明する。
【0032】
ステップS132において、CPU110は、第1の黄金矩形を構成する4つの辺のうち、処理対象となる辺である対象辺を決定する。対象辺の候補となるのは、テキストの配置方向と垂直な辺である。いま配置方向は「左から右」なので、対象辺の候補となるのは第1の黄金矩形の左辺および右辺である。CPU110は、さらに、対象辺の候補から、テキスト配置情報に基づいて対象辺を決定する。ここでは、テキスト配置情報で指定される基準位置と逆の位置に対応する辺が、対象辺として決定される。基準位置とは、例えば、テキスト配置情報が「左揃え」の場合は左、「右揃え」の場合は右、「上揃え」の場合は上、「下揃え」の場合は下である。基準位置と逆の位置とは、例えば、テキスト配置情報が「左揃え」の場合は右、「右揃え」の場合は左、「上揃え」の場合は下、「下揃え」の場合は上である。いまテキスト配置情報は「左揃え」なので、基準位置と逆の位置に対応する辺は、右辺である。このように、CPU110は、右辺を対象辺として決定する。
【0033】
ステップS133において、CPU110は、複数行に一時レイアウトされたテキストの各行について、行末の座標を取得する。図6の例では、テキストは6行に分けてレイアウトされる。例えば、1〜6行目の行末座標は、それぞれ、15、15、17、15、15、12であると算出される。本実施形態では、行末座標の単位はcm(センチメートル)である。また、座標は0.5を最小単位として計測され、0.5に満たない値は切り上げられる。なお、座標の単位および計測の最小単位はこれらに限定されるものではない。また、ここで行末座標が用いられるのは、テキストが横書きの言語で記述されており、かつ、対象辺が右辺だからである。どの辺が対象辺であるかに応じて、先頭または末尾のいずれが用いられるかが決定される。テキストが横書きの場合には行頭または行末の少なくとも一方の文字が、テキストが縦書きの場合には列頭または列末の文字が用いられる。一般的には、すべての行または列についての先頭または末尾の少なくとも一方の文字が用いられる。
【0034】
ステップS134において、CPU110は、代表座標を決定する。代表座標は、第2の黄金矩形の辺の長さを決めるのに用いられる。CPU110は、行末座標に基づいて、あらかじめ決められたアルゴリズムに従って代表座標を決定する。本実施形態において、代表座標は、複数の行末座標のうち最も頻度が高い値として算出される。すなわち、本実施形態において、代表座標は15である。あるいは、代表座標は、複数の行末座標の平均値として算出されてもよい。平均値を算出する際には、最終行などその値が特異であると考えられる行は除外されてもよい。
【0035】
ステップS135において、CPU110は、第2の黄金矩形を決定する。まず、CPU110は、第2の黄金矩形の対象辺(ここでは右辺)の位置を、代表座標に基づいて決定する。すなわち、CPU110は、第2の黄金矩形の右辺の位置を、左辺の位置から15cmの位置に決定する。なお、第1の黄金矩形と第2の黄金矩形において、対象辺と向かい合う辺(ここでは左辺)の位置は同一である。このようにして、CPU110は、第2の黄金矩形において、テキストの配置方向と垂直な辺(ここでは右辺および左辺)の位置を決定する。すなわち、CPU110は、第2の黄金矩形において、テキストの配置方向と平行な辺(ここでは上辺および下辺)の長さを決定する。
【0036】
CPU110は、さらに、第2の黄金矩形において、テキストの配置方向と垂直な辺(ここでは右辺および左辺)の長さを決定する。右辺および左辺の長さは、上辺および下辺の長さとの比が黄金比になるように決定される。また、右辺および左辺の位置は、例えば、ある基準点(例えば、左辺の上端、中点または下端など)が第1の黄金矩形と第2の黄金矩形とで同一となるように決定される。以上のようにして、第2の黄金矩形の位置および大きさが決定される。
【0037】
第2の黄金矩形は、第1の黄金矩形よりも面積が小さくなる場合がある。そこでCPU110は、第2の黄金矩形の、テキストの配置方向と垂直な辺の長さに基づいて、テキストの配置を更新する。ここでは、CPU110は、右辺(または左辺)の長さに応じて、行の間隔を更新する。すなわち、上下方向においてテキストが第2の黄金矩形からはみ出ないように、行間が縮められる。
【0038】
ステップS136において、CPU110は、テキストのレイアウトを決定する。すなわち、CPU110は、テキストのレイアウトを示す情報および第2の黄金矩形を特定する情報を、RAM130に記憶する。第2の黄金矩形を特定する情報は、例えば、4つの頂点の座標である。以下、第2の黄金矩形を特定する情報およびテキストのレイアウトを示す情報を含む情報を、「属性情報」という。オブジェクトと、そのオブジェクトに対応する属性情報とは、一方から他方を特定できるようにRAM130またはHDD150に記憶される。
【0039】
図8は、第2の黄金矩形を例示する図である。対象辺であった右辺において、一部の文字が黄金矩形からはみ出しているが、それ以外の辺において、文字が黄金矩形からはみ出しているところはない。
【0040】
再び図3を参照して説明する。ステップS140において、CPU110は、黄金矩形に配置されたオブジェクトを、レイアウト領域Dに配置する。オブジェクトを配置する位置は、あらかじめ決められていてもよい。あるいは、オブジェクトを配置する位置は、ユーザの指示入力に応じて決定されてもよい。処理対象のオブジェクトが配置されることにより、文書が生成される。ユーザは、以上のように生成された文書に対して、公知の文書編集技術によるソフトウェアを用いて、文書を編集することができる。その際、第2の黄金矩形は、いわゆるグリッド矩形として機能することができる。グリッド矩形として機能させる場合、CPU110は、第2の黄金矩形をディスプレイ170に表示する。
【0041】
以上で説明したように本実施形態によれば、グリッド矩形は対応するオブジェクトに応じてダイナミックに形成される。図8に示される例では、右辺においてはみ出しいている文字が存在する。しかし、このような文字も、行末座標の分布という観点からは特異と考えることができるものである。したがって、むしろこのような特異点を無視するようにグリッド矩形(黄金矩形)を形成した方が、レイアウトの審美性という観点において優れた文書を作成することができる。
【0042】
2.第2実施形態
続いて、本発明の第2実施形態について説明する。以下において、第1実施形態と共通する事項についてはその説明を省略する。また、第1実施形態と共通する要素については共通の参照符号が用いられる。本実施形態においては、図3のステップS130の黄金矩形を生成する処理が、第1実施形態で説明したものと異なる。
【0043】
図9は、第2実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップS131〜S134の処理は第1実施形態において説明したものと同様であるので説明を省略する。ステップS201において、CPU110は、その行末座標が代表座標よりも大きい、すなわち行末座標が代表座標を超えた行の数を取得する。いま1〜6行目の行末座標は、それぞれ、15、15、17、15、15、12であり、代表座標は15である。従って、代表座標を超えた行の数は1である。
【0044】
ステップS202において、CPU110は、行末座標が代表座標を超えた行の割合rを算出する。いまテキストは6行に配置され、行末座標が代表座標を超えたのは1行である。したがって、割合r=1/6=17%であると算出される。
【0045】
ステップS203において、CPU110は、割合rがしきい値rth(例えば、rth=25%)を超えているか判断する。割合rが、r<rthを満たす場合(S203:YES)、CPU110は、処理をステップS135に移行する。すなわち、CPU110は、第1実施形態と同様に、第2の黄金矩形を生成する。割合rが、r<rthを満たさない場合(S203:NO)、CPU110は、処理をステップS204に移行する。
【0046】
ステップS204において、CPU110は、第1の黄金矩形をそのまま、第2の黄金矩形として用いることを決定する。以後の処理は第1実施形態と同様である。
【0047】
以上で説明したように、本実施形態によれば、行末座標が代表座標を超えている行の割合に応じて、第2の黄金矩形を新たに生成するか、第1の黄金矩形をそのまま用いるかが決定される。行末座標が代表座標を超えている行の割合があるしきい値を超えた場合には、これらの行を無視してしまうとレイアウトの審美性がかえって悪化してしまう場合もある。しかし、本実施形態によれば、この問題も解決される。
【0048】
3.他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態において、テキスト配置情報が「左揃え」である場合について説明した。例えば、テキスト配置情報が「中央揃え」である場合、CPU110は、左辺および右辺の2つの辺を対象辺として決定してもよい。この場合、対象辺の位置は、例えば第1の黄金矩形において、上辺と下辺の中点を結ぶ線を基準として定められてもよい。
【0049】
上述の実施形態において、行末座標を取得する際に、テキストの内容については考慮されなかった。しかし、行末座標を取得する際に、テキストの内容が考慮されてもよい。例えば、行末座標を取得する際に、特定の文字(例えば、「、」や「。」など)が除外されてもよい。すなわち、HDD150は、除外対象となる文字の識別子を記憶している。CPU110は、HDD150に除外対象の文字として記憶されている文字については、行末の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「、」、「。」などの句読点、「い」、「て」など線の密度が低い平仮名などが指定されてもよい。
【0050】
図10は、他の実施形態に係るテキストを例示する図である。第1行目の行末に「。」があるが、行末座標を取得する際には、この文字は無視される。このように、行末座標の取得に際して特定の文字を除外することによって、より審美性に優れた黄金矩形を生成することができる。
【0051】
また、第2の黄金矩形の生成に際し、行頭について、特定の文字が除外されてもよい。
図11および図12は、他の実施形態に係るテキストを例示する図である。各行の行頭に、箇条書きを示す記号「・」が存在する。CPU110は、第2の黄金矩形の生成に際し、これらの文字(記号)を対象から除外してもよい(図12)。この処理は、例えば以下のように行われる。対象辺の位置が決定された後、CPU110は、行頭についても、行末の場合と同様に、行頭座標を算出する。さらに、CPU110は、行頭座標について、その代表座標を算出する。CPU110は、代表座標に基づいて、対象辺と対向する辺(左辺)の位置を決定する。CPU110は、対象辺(右辺)および対象辺と対向する辺(左辺)の位置に基づいて、対象辺(右辺)および対象辺と対向する辺(左辺)の長さを決定する。
【0052】
行末の場合と同様に、HDD150は、除外対象となる文字の識別子を記憶している。CPU110は、HDD150に除外対象の文字として記憶されている文字については、行頭の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「・」、「●」、「■」などの記号、「(1)」、「(2)」、「(a)」、「(b)」などの番号が指定されてもよい。すなわち、いずれかの行において、行頭あるいは行末のように所定の位置にこれらの除外対象文字が存在した場合、その行のその文字については行末座標あるいは行頭座標の算出対象から除外される。
【0053】
また、上述の実施形態においては、第1の黄金矩形内に配置されたテキストの各行の行末の座標に基づいて第2の黄金矩形の一辺の長さが決められた。しかし、第2の黄金矩形の一辺の長さを決めるのに用いられるパラメータは、これに限定されない。例えば、CPU110は、各行に含まれる文字の数に基づいて、第2の黄金矩形の一辺の長さを決めてもよい。要は、各行の文字の量を示すパラメータであれば、どのようなものが用いられてもよい。
【0054】
また、上述の実施形態においては、第1の黄金矩形内に配置されたテキストの行末座標の最頻値に基づいて、第2の黄金矩形の一辺の位置が決められた。しかし、第2の黄金矩形の一辺の位置を決める方法は、これに限定されるものではない。複数の行末座標と、第2の黄金矩形の一辺の位置との一致度が最大となるものであれば、どのような方法が用いられてもよい。
【0055】
上述の実施形態において、第2の黄金矩形は第1の黄金矩形と区別して説明された。しかし、第2の黄金矩形を生成する処理は、第1の黄金矩形の辺の位置や長さを変更して、第1の黄金矩形の大きさや形状を更新する処理ととらえることもできる。
【0056】
上述の実施形態において、図1に示される機能構成要素は、CPU110がプログラムを実行することによりソフトウェアとして実現された。しかし、文書編集装置100は、図1に示される各機能構成要素に相当する電子回路を有してもよい。すなわち、図1に示される機能構成要素(の一部)は、ハードウェアとして実現されてもよい。
【0057】
上述の各実施形態においては、文書編集プログラムはHDD150に記憶されていた。しかし、文書編集プログラムは、CD−ROM(Compact Disk Read Only Memory)などの記憶媒体により提供されてもよい。
【図面の簡単な説明】
【0058】
【図1】第1実施形態に係る文書編集装置100の機能構成を示すブロック図である。
【図2】文書編集装置100のハードウェア構成を示すブロック図である。
【図3】文書編集装置100の動作を示すフローチャートである。
【図4】仮レイアウト処理の詳細を示すフローチャートである。
【図5】一時レイアウトされたオブジェクトを例示する図である。
【図6】形成された黄金矩形を例示する図である。
【図7】第1実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図8】第2の黄金矩形を例示する図である。
【図9】第2実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図10】他の実施形態に係るテキストを例示する図である。
【図11】他の実施形態に係るテキストを例示する図である。
【図12】他の実施形態に係るテキストを例示する図である。
【符号の説明】
【0059】
100…文書編集装置、101…オブジェクト取得部、102…配置方向取得部、103…仮レイアウト部、104…黄金矩形生成部、105…レイアウト部、110…CPU、120…ROM、130…RAM、140…I/F、150…HDD、160…キーボード・マウス、170…ディスプレイ、180…ネットワークIF、190…バス
【特許請求の範囲】
【請求項1】
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
一辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
を有する文書編集装置。
【請求項2】
前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項1に記載の文書編集装置。
【請求項3】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項4】
前記位置決定手段が、前記テキストのすべての行または列の文字数に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項5】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項6】
少なくとも1つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、
前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項7】
前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、
前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、
前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第1の黄金矩形の1辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第1の黄金矩形と同一の矩形を前記第2の黄金矩形として生成する
ことを特徴とする請求項1に記載の文書編集装置。
【請求項8】
前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、
前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第2の黄金矩形に基づいて前記オブジェクトを配置する配置手段と
をさらに有する請求項1〜7のいずれかの項に記載の文書編集装置。
【請求項9】
コンピュータ装置を、
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
して機能させるプログラム。
【請求項1】
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
一辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
を有する文書編集装置。
【請求項2】
前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項1に記載の文書編集装置。
【請求項3】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項4】
前記位置決定手段が、前記テキストのすべての行または列の文字数に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項5】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項6】
少なくとも1つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、
前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項2に記載の文書編集装置。
【請求項7】
前記テキストが、前記第1の領域内において複数行または複数列にわたって配置され、
前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、
前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第1の黄金矩形の1辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第1の黄金矩形と同一の矩形を前記第2の黄金矩形として生成する
ことを特徴とする請求項1に記載の文書編集装置。
【請求項8】
前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、
前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第2の黄金矩形に基づいて前記オブジェクトを配置する配置手段と
をさらに有する請求項1〜7のいずれかの項に記載の文書編集装置。
【請求項9】
コンピュータ装置を、
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う2辺の長さの比が黄金比である第1の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第1の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
1辺が前記位置決定手段により決定された位置にある第2の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第2の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
して機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−65587(P2008−65587A)
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2006−242603(P2006−242603)
【出願日】平成18年9月7日(2006.9.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願日】平成18年9月7日(2006.9.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]