(57)【要約】【課題】文書の動的な変化に応じて好適に図や表等のオブジェクトのレイアウトを行うことを目的とする。【解決手段】文書の文字の流れる方向を設定する設定手段と、文書のオブジェクトの並びを検知する検知手段と、設定手段により設定された文書の文字の流れと検知手段により検知された文書のオブジェクトの並びとが一致しない場合、文字の流れとオブジェクトの並びとが一致するようにオブジェクトの並びを変更する変更手段と、を有することによって課題を解決する。【選択図】図３
2015090674.tif 000002
【特許請求の範囲】
【請求項１】
文書の文字の流れる方向を設定する設定手段と、
前記文書のオブジェクトの並びを検知する検知手段と、
前記設定手段により設定された前記文書の文字の流れと前記検知手段により検知された前記文書のオブジェクトの並びとが一致しない場合、前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する変更手段と、
を有する情報処理装置。
【請求項２】
前記変更手段は、文書のページ内でのオブジェクトの配置を入れ替えることによって前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する請求項１記載の情報処理装置。
【請求項３】
前記変更手段は、文書のページ内でのオブジェクトの配置を入れ替えた際に、オブジェクトの反転を行う請求項２記載の情報処理装置。
【請求項４】
前記変更手段は、文書のページ内でのオブジェクトの配置を入れ替えた際に、文字の流れる方向が切り替わっているか否かに応じて、オブジェクトの反転を行うか否かを判定し、オブジェクトの反転を行うと判定した場合は、オブジェクトの反転を行う請求項３記載の情報処理装置。
【請求項５】
前記変更手段は、文書のページ内でのオブジェクトの配置を入れ替えた際に、オブジェクトに文字が配置されている場合は、オブジェクトの文字領域を反転させる請求項２記載の情報処理装置。
【請求項６】
前記オブジェクトは、図又は表である請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
情報処理装置が実行する情報処理方法であって、
文書の文字の流れる方向を設定する設定ステップと、
前記文書のオブジェクトの並びを検知する検知ステップと、
前記設定ステップにより設定された前記文書の文字の流れと前記検知ステップにより検知された前記文書のオブジェクトの並びとが一致しない場合、前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する変更ステップと、
を含む情報処理方法。
【請求項８】
コンピュータに、
文書の文字の流れる方向を設定する設定ステップと、
前記文書のオブジェクトの並びを検知する検知ステップと、
前記設定ステップにより設定された前記文書の文字の流れと前記検知ステップにより検知された前記文書のオブジェクトの並びとが一致しない場合、前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する変更ステップと、
を実行させるためのプログラム。
【請求項９】
前記変更ステップでは、文書のページ内でのオブジェクトの配置を入れ替えることによって前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する請求項８記載のプログラム。
【請求項１０】
前記変更ステップでは、文書のページ内でのオブジェクトの配置を入れ替えた際に、オブジェクトの反転を行う請求項９記載のプログラム。
【請求項１１】
前記変更ステップでは、文書のページ内でのオブジェクトの配置を入れ替えた際に、文字の流れる方向が切り替わっているか否かに応じて、オブジェクトの反転を行うか否かを判定し、オブジェクトの反転を行うと判定した場合は、オブジェクトの反転を行う請求項１０記載のプログラム。
【請求項１２】
前記変更ステップでは、文書のページ内でのオブジェクトの配置を入れ替えた際に、オブジェクトに文字が配置されている場合は、オブジェクトの文字領域を反転させる請求項９記載のプログラム。
【請求項１３】
前記オブジェクトは、図又は表である請求項８乃至１２何れか１項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ドキュメントの構成が変化する場合、その変化に従ってコンテンツの配置を変える技術、例えば印刷時に綴じ位置の変化に伴って、相対的にページ番号の配置を変える技術があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１７２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、作成文書の範囲を指定し、指定箇所の縦書き、横書きの変換を行っている。
しかしながら、先行技術は作成文書のテキスト部分の縦書き、横書き情報の変換は行うが、テキストに合わせた図や表等の配置の変更は行えなかった。
【課題を解決するための手段】
【０００５】
そこで、本発明の情報処理装置は、文書の文字の流れる方向を設定する設定手段と、前記文書のオブジェクトの並びを検知する検知手段と、前記設定手段により設定された前記文書の文字の流れと前記検知手段により検知された前記文書のオブジェクトの並びとが一致しない場合、前記文字の流れと前記オブジェクトの並びとが一致するように前記オブジェクトの並びを変更する変更手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、文書の動的な変化に応じて好適に図や表等のオブジェクトのレイアウトを行うことができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置のハードウェア構成の一例を示す図である。
【図２】処理の概要を説明するための図である。
【図３】データ変換に係る情報処理の一例を示すフローチャートである。
【図４】文字の流れる方向を設定するための情報処理の一例を示すフローチャートである。
【図５】図の反転処理の概要を示す図である。
【図６】図の上に文字を重ねて表示している一例を示す図である。
【図７】図の反転と、図の上に文字領域が設定されていた場合、その領域の反転とを行う情報処理の一例を示すフローチャートである。
【図８】ＨＴＭＬとＣＳＳとの表記の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
図１は、情報処理装置のハードウェア構成の一例を示す図である。
情報処理装置１０１は、キーボード１２２やマウス１２３を始めとするポインティングデバイスからＩ／Ｏインタフェイス１１５を介してデータの入力、編集操作をすることで処理を行う。
情報処理装置１０１は、典型的に少なくとも一つのプロセッサーユニット（ＣＰＵ）１１１と半導体のランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリユニット１１６とを含んでいる。
ディスプレイ装置１２１は、ビデオインタフェイス１１４と接続され画面への出力を行う。
ネットワークインタフェイス１１２は、情報処理装置１０１をネットワークに接続してシステムの他のコンピュータ装置につなげることができる。そのネットワーク接続の典型はローカルエリアネットワーク（ＬＡＮ）、又はワイドエリアネットワーク（ＷＡＮ）である。
また、情報処理装置１０１は、ハードディスクやＳＳＤを始めとする記憶装置１１３も含んでおり、ここにオペレーションシステムのプログラムが格納される。
ＣＰＵ１１１が、記憶装置１１３等に記憶されているプログラムに基づいて処理を実行することによって、情報処理装置の機能及び後述するフローチャートの処理が実現される。なお、入力手段は、キーボード１２２やマウス１２３に限らず、表示手段と一体をなすタッチパネル等であってもよい。
【００１０】
なお、特に断らない限り以下に示す実施形態の機能が実行されるのであれば、単体の機器であっても複数の機器から成るシステムであってもよい。又は、実行されるソフトウェアがコンピュータのシステムに組み込まれたプリンタドライバであっても、又はプリンタ等の印刷装置上で動作するオペレーティングシステムに組み込まれるものであってもよい。
本明細書では電子書籍の一例としてＩＤＰＦ（国際電子出版フォーラム）が普及促進している電子書籍用のファイルフォーマットであるｅＰｕｂを挙げて説明を行う。この際、Ｏｐｅｎ  Ｃｏｎｔａｉｎｅｒ  Ｆｏｒｍａｔ  （ＯＣＦ）に準拠、又は同等の構造を持つファイルフォーマットであるなら特にその種類は問わないものとする。
また、スタイルシートの値を取得、設定する場合は、特に断らない限り、原則指定したコンテンツのタグに対応したスタイルシートのクラス又はＩＤに対する操作を指すものとする。
以下に示す実施形態の説明を行う前に、文字の流れる方向に関する説明を行う。文字の流れる方向とは、文字がページの左から右へ進むか、右から左へ進むかを示しており、右から左の場合は左方向、左から右の場合は右方向に流れる、のように表記する。より具体的な定義は空白のページに文字を流し込む場合、文字の開始位置と終了位置とが左右どこにあるかで判定が行われる。例えば、横書きの日本語の場合、開始地点は左上、終了地点は右下になるため右に流れる文書として分類される。
【００１１】
＜実施形態１＞
ここでは、本実施形態のデータ変換処理に関して説明を行う上での、処理の概要を、図２を用いて説明する。図２は、処理の概要を説明するための図である。
まず、ページ３０１は横書きであり、右に流れる文書である。このページ３０１のテキスト部３０４が縦書きに変換されるとページ３０２になり、左に流れる文書となる。本実施形態では、まず、このように文字の流れる方向の切り替えが行われる。
加えて本実施形態では、図の並び方向の切り替えが行われる。先ほどの例ではページ３０１は左から右に文字が流れており、図も３０６、３０７の並び順でよかった。しかし、ページ３０２では文字の流れが右から左になったため、２番目に該当する３０８の方が先に出てくることになってしまう。このため、本実施形態では図の並びも文字の流れる方向に合わせ、ページ３０３のように図も３１０、３０９と逆に並ぶよう変換が行われる。
図や表は、ページ内のオブジェクトの一例である。
【００１２】
図３は、データ変換に係る情報処理の一例を示すフローチャートである。
説明を行う上で、まず図２に表示されているページ３０１とＨＴＭＬ３１６との対応関係に関して説明する。ページ３０１のコンテンツ部分に該当する部分がＨＴＭＬ３１６であり、テキストのコンテンツはｄｉｖタグ３１２、イメージのコンテンツはｄｉｖタグ３１３から成る。ここでｄｉｖタグ３１２はページ３０１のテキスト部３０４と対応している。また、ｄｉｖタグ３１３はイメージ部３０５と対応している。なお、ｄｉｖタグ３１３における「ｄｉｓｐｌａｙ：  ｏｅｂ−ｐａｇｅ−ｆｏｏｔ」の定義により、イメージ部３０５はページ下方に配置されている。ここでの定義は、一例として挙げているだけで「ｐｏｓｉｔｉｏｎ：  ａｂｓｏｌｕｔｅ，  ｂｏｔｔｏｍ：０ｐｘ」等の絶対位置指定を始めとする、何れの位置指定方法を用いてページ下部に配置されていても同様の意味を持つ。
【００１３】
ステップＳ２０１では、ＣＰＵ１１１は、例えば、ユーザ操作等に基づいて、設定情報（設定の値）の取得を行う。ここでの設定情報とは、ｅＰｕｂのデータ変換に必要なデータを指し、文字の流れる方向を変える設定情報もここに含まれる。より具体的には先ほどの縦書きと横書きの切り替えや、表示言語の切り替え等が文字の流れる方向を変える設定情報に該当する。
ステップＳ２０２では、ＣＰＵ１１１は、変換対象となるｅＰｕｂのドキュメントを開く処理を行う。この処理はｅＰｕｂのドキュメントをメモリユニット１１６にロードし、本文であるＸＭＬファイルやＨＴＭＬファイルと設定であるＣＳＳファイルとの両方を参照、編集を可能とすることを指す。必要であれば、ＣＰＵ１１１は、テンポラリファイルとして記憶装置１１３へのコピーや、Ｚｉｐ解凍する等の処理を行ってもよい。
ステップＳ２０３では、ＣＰＵ１１１は、文字の流れる方向を設定する。この処理においてＣＰＵ１１１は、ページ３０１からページ３０２までの結果を得る。この処理の詳細は後述する図４等を用いて説明する。
【００１４】
ステップＳ２０４では、ＣＰＵ１１１は、本文であるＨＴＭＬファイルから、図、表の情報の読み出しを行う。ここでの読み出し単位は、連続して並んでいるものや図２のｄｉｖタグ３１３のようにひとくくりのグループとして定義されているものを差し、一つとは限らない。
ステップＳ２０５では、ＣＰＵ１１１は、図の並びの検知を行う。ＣＰＵ１１１は、文字の流れる方向と同様に図がページに対してどちらの方向に並んでいるかを検知する。図２のページ３０１の例ではイメージ部３０５に対応するｄｉｖタグ３１３内のイメージはＣＳＳ３１７の定義３１８を指定している。定義３１８では「ｆｌｏａｔ：ｌｅｆｔ」が指定されており、左詰めにコンテンツが配置されていくため、ＣＰＵ１１１は、イメージ部３０５は左から右へ図が並んでいると検知する。
ステップＳ２０６では、ＣＰＵ１１１は、ステップＳ２０３で設定した文字の流れる方向とステップＳ２０５で検知した図の並びとが一致するかどうかを判定する。一致している場合は、ＣＰＵ１１１は、そのまま次の処理であるステップＳ２０８に移行する。一致していない場合は、ＣＰＵ１１１は、図の並びを変更するためステップＳ２０７に移行する。
【００１５】
ステップＳ２０７では、ＣＰＵ１１１は、図の並び順を変更する。図２のイメージ部３０５を変更する場合、ＣＰＵ１１１は、対応するｄｉｖタグ３１３内のクラスに対応するＣＳＳの定義３１８を検出し、内部の定義の書き換えを行う。図２の例では、ＣＰＵ１１１は、「ｆｌｏａｔ：  ｌｅｆｔ」から「ｆｌｏａｔ：  ｒｉｇｈｔ」に書き変える。
また、図２の「ｆｌｏａｔ：  ｌｅｆｔ」等の詰める方向の指定は使用せず、ｔａｂｌｅタグを利用して、例えば透明な１行２列の表の中に２つの図をそれぞれ割り当て、左右に並べられている場合がある。このようなＣＳＳの定義が使用できない場合、ＣＰＵ１１１は、ＨＴＭＬ３１６を書きかえることで図の並びを入れ替える。ＣＰＵ１１１は、ＨＴＭＬ３１６ではイメージタグ３１５、３１４の順になるようにＨＴＭＬファイルを書き変える。なお、この変換処理例では左右の置き換えのみであるが、横書きと縦書きとが入れ替わる際、ＣＰＵ１１１は、図の並びを９０度置き換える処理としてもよい。例えば、横書きでは図の並びは左、右の順に並ぶが、ＣＰＵ１１１は、縦書きに変更された際は右に９０度変換し、上、下の順に並べる。なお、この変換に合わせて、ＣＰＵ１１１は、上下左右のマージンも「上、右、下、左」に指定されていたものを、「右、下、左、上」と変更してもよい。
ステップＳ２０８では、ＣＰＵ１１１は、本文中に図や表が残っているか否かを判定し、残っている場合は、再度、図の取得処理（ステップＳ２０４）に移行し、図や表が残っていない場合は、図３に示す処理を終了する。
以上の処理を行うことでＣＰＵ１１１は、ｅＰｕｂ文書の変換を行う。
【００１６】
図４は、文字の流れる方向を設定するための情報処理の一例を示すフローチャートである。
ステップＳ４０１では、ＣＰＵ１１１は、言語の切り替えが設定されているかどうかを判定し、切り替える必要がある場合は、ステップＳ４０２に移行し、切り替える必要の無い場合はステップＳ４０３に移行する。なお、この際の判断は図３のフローチャートのステップＳ２０１で設定された値に基づき行われるものとする。
ステップＳ４０２では、ＣＰＵ１１１は、文書内のテキストの置き換えを行う。置き換えを行う場合、ＣＰＵ１１１は、予め用意しておいた、別言語の本文ＨＴＭＬとの置き換えを行う。それとは別に、一つのＨＴＭＬファイル内に複数の言語が組み込まれている場合、ＣＰＵ１１１は、言語の切り替え部の定義の変更を行う。他にも翻訳エンジンを用いて直接ＨＴＭＬファイルを書き変える場合、ＣＰＵ１１１は、本文の抽出を行い、翻訳エンジンにかけた上で、結果を本文と置き換える。
【００１７】
ステップＳ４０３では、ＣＰＵ１１１は、縦書きと横書きとの切り替えを行うかどうかを判定する。これもステップＳ４０１と同様、ＣＰＵ１１１は、図３のフローチャートのステップＳ２０１で設定された値に基づいて行う。ＣＰＵ１１１は、縦書きと横書きとの切り替えを行うと判定すると、ステップＳ４０４に進み、切り替えを行わないと判定すると、図４に示す処理を終了する。
ステップＳ４０４では、ＣＰＵ１１１は、本文の解析を行う。ＨＴＭＬ３１６の例では、ＣＰＵ１１１は、本文を読み出し、コンテンツとそれに紐付いたＣＳＳ３１７の定義との対応関係の解析を行う。ＣＰＵ１１１は、次のステップで置き換えるＣＳＳ定義部分を明らかにすると共に、置き換え対象とならない本文部分があるかどうかも解析する。ここでの置き換え対象とならない本文部分とは、そもそも元の本文とは違う部分であり、横書き本文内の縦書き部分や元々一部だけ言語が異なっている部分のことを指す。
【００１８】
ステップＳ４０５では、ＣＰＵ１１１は、ステップＳ４０４の解析結果を基に、ＣＳＳ定義の書き換えを行う。図２の例では、単純に文書全体を書き変える場合、ＣＰＵ１１１は、ｂｏｄｙタグ３１１にＣＳＳ定義３１９を適用すればよい。より具体的には、ＣＰＵ１１１は、ｂｏｄｙタグ３１１の「＜ｂｏｄｙ＞」の表記を「＜ｂｏｄｙ  ｃｌａｓｓ＝""ｔｅｘｔＡｒｅａ"＞」とする。この際、ＣＰＵ１１１は、直接スタイル指定を行う「＜ｂｏｄｙ  ｓｔｙｌｅ＝""  ｗｒｉｔｉｎｇ−ｍｏｄｅ：  ｖｅｒｔｉｃａｌ−ｒｌ"＞」の記載を用いてもよい。また、ＣＰＵ１１１は、適用範囲も本文全体であるｂｏｄｙタグ３１１を指定せず、本文のテキスト部を示すｄｉｖタグ３１２を始めとする本文部分全てのテキスト部を示すタグを書き変えてもよい。
以上の処理を行うことで、文字の流れる方向の設定が行われる。
【００１９】
＜実施形態２＞
実施形態１では、文字の流れる方向に合わせて図の並びを入れ替えたが、場合によっては配置を入れ替えるだけでは、読みにくくなってしまう場合等がある。それらに関して、図５、図６を使って説明する。
図５において、イメージ６０１、６０２を単に入れ替えた場合、結果６０３のような結果となる。このように並んだ図が図形のように組み合わさっている場合や、例えば右の図に左の図を指す矢印が入っている等、左右で対応関係ができている場合は、位置を並べ替えただけでは不都合を生じることがある。
また、図６は、図の上に文字を重ねて表示している一例を示す図である。特にイメージ７０１は図の上に領域７０２のような多角形の文字領域が設定されているため、文字も領域７０２の内部に収まるようにレイアウトされる。この際、文字を縦書きに変更するとイメージ７０３に見られるように文の始まり部分が改行ばかりになり、読みにくくなってしまう。
【００２０】
図７は、上記の問題に対応するために、図の反転と、図の上に文字領域が設定されていた場合、その領域の反転とを行う情報処理の一例を示すフローチャートである。このフローチャートの処理は例えば図３のステップＳ２０８の手前で行われる。
ステップＳ５０１では、ＣＰＵ１１１は、図の反転が必要かどうかの判定を行う。ＣＰＵ１１１は、ドキュメントの文字の流れる方向が切り替わっているかどうかで判定を行うが、部分的に別の設定がされていることもある為、図が配置されている章やページ、領域に限定して判定を行ってもよい。ＣＰＵ１１１は、図の反転が必要であると判定すると、ステップＳ５０２に移行し、図の反転が必要でないと判定すると、ステップＳ５０３に移行する。
ステップＳ５０２では、ＣＰＵ１１１は、図の反転を行う。ＣＰＵ１１１は、イメージに対して「ｔｒａｎｓｆｏｒｍ：  ｓｃａｌｅＸ（−１）」を定義することで左右（Ｘ軸に対して）反転を行う。また、図５のように左右が重なっている場合、ＣＰＵ１１１は、重なり指定部分も反転させる。例えば、イメージ６０２は左側の一部分をイメージ６０１と重ねるように指定されており、この際、左側のイメージと４０ｐｉｘｅｌ分重ねる場合は「ｍａｒｇｉｎ−ｌｅｆｔ：−４０ｐｘ」のように左側に４０ｐｉｘｅｌのネガティブマージンが設定される。これを反転し、イメージ６０４とする場合、ＣＰＵ１１１は、左側のマージンと右側のマージンが入れ替わるよう設定を行う。より具体的には、ＣＰＵ１１１は、「ｍａｒｇｉｎ−ｌｅｆｔ：−４０ｐｘ」を「ｍａｒｇｉｎ−ｒｉｇｈｔ：−４０ｐｘ」に書き換える。
【００２１】
ステップＳ５０３では、ＣＰＵ１１１は、画像上に文字が配置されているかの判定を行う。ＣＰＵ１１１は、画像上に文字が配置されている場合は、ステップＳ５０４に移行し、配置されていない場合は、図７に示す処理を終了する。
ステップＳ５０４では、ＣＰＵ１１１は、画像上の文字領域の反転を行う。領域７０２を例とすると、ここでは、イメージ７０５のように領域が指定されている。この際のＨＴＭＬとＣＳＳとの表記は図８で、ＨＴＭＬ部分は画像の定義８０１と画像上に配置する文字の定義８０２となる。また、ＣＳＳ上では文字の定義８０２の形状を指定する定義８０３がされており、これはイメージ７０５の中の領域７０６の頂点座標と対応している。本ステップでは、ＣＰＵ１１１は、画像の反転に伴い領域の定義を領域７０８となるよう定義８０３の書き換えを行う。ここで、「ｓｈａｐｅ−ｉｎｓｉｄｅ：  ｐｏｌｙｇｏｎ（１０ｐｘ  １０ｐｘ，  １５０ｐｘ  １０ｐｘ，  １００ｐｘ  ５０ｐｘ，  １０ｐｘ  ６０ｐｘ）」となっている定義を例として挙げる。これをＣＰＵ１１１は、「ｓｈａｐｅ−ｉｎｓｉｄｅ：  ｐｏｌｙｇｏｎ（５０ｐｘ  １０ｐｘ，  １９０ｐｘ  １０ｐｘ，  １００ｐｘ  ５０ｐｘ，  １９０ｐｘ  ６０ｐｘ）；」と書き換えることで、本ステップの処理を実現する。
以上の処理を行うことで、画像と文字領域との反転が行われる。
【００２２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２３】
以上、上述した各実施形態によれば、文書の動的な変化に応じて好適に図や表等のオブジェクトのレイアウトを行うことができる。
【００２４】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2015090674.tif 000003
【図２】
2015090674.tif 000004
【図３】
2015090674.tif 000005
【図４】
2015090674.tif 000006
【図５】
2015090674.tif 000007
【図６】
2015090674.tif 000008
【図７】
2015090674.tif 000009
【図８】
2015090674.tif 000010