(57)【要約】【課題】  例えば表の電子ドキュメントをＰＤＦに変換した場合、見た目は元の表を保っているが、表としての構造を失っているため、表が崩れてしまうことなく、表の列幅・行高の変更やセルの配置等のレイアウト調整を実施することが困難であった。【解決手段】  表を構成する罫線に対して、動的レイアウトにおける外部制約を追加する。【選択図】  図４
2011002979.tif 000002
【特許請求の範囲】
【請求項１】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別部と、
前記オブジェクト識別部によって識別された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理部と、
前記オブジェクト識別部によって識別された非罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理部と、
前記ジョイント付加処理部によって付加されたジョイント、及び、前記ストラット付加処理部によって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行部と、を有し、
前記ジョイント付加処理部は、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウト装置。
【請求項２】
前記非罫線オブジェクトは、表のセル内に収められたデータを表すデータオブジェクトであることを特徴とする請求項１記載の表レイアウト装置。
【請求項３】
前記データオブジェクトはテキストオブジェクトまたはグラフィックオブジェクトまたはイメージオブジェクトのいずれか、もしくは、その複数の組み合わせであることを特徴とする請求項２記載の表レイアウト装置。
【請求項４】
前記ジョイント付加処理部において各罫線オブジェクトの相互間に付加されるジョイントは、両罫線オブジェクトの相対位置を固定する制約を付加するロックジョイントを含むことを特徴とする請求項１記載の表レイアウト装置。
【請求項５】
前記ロックジョイントは、双方の罫線オブジェクトがどちらもその端点において交わっている場合に付加することを特徴とする請求項４記載の表レイアウト装置。
【請求項６】
前請求項５における互いに端点で交わる２つの罫線オブジェクトの関係は、水平または垂直のいずれかであることを特徴とする請求項５記載の表レイアウト装置。
【請求項７】
前記ジョイント付加処理部において各罫線オブジェクトの相互間に付加されるジョイントは、一方の罫線オブジェクトが、もう一方の罫線方向にしか移動できない制約を付加するスライドジョイントを含むことを特徴とする請求項１記載の表レイアウト装置。
【請求項８】
前記スライドジョイントは、一方の罫線オブジェクトの端点が、もう一方の罫線オブジェクトの端点以外において交わっている場合に付加することを特徴とする請求項７記載の表レイアウト装置。
【請求項９】
前記ジョイント付加処理部において各罫線オブジェクトの相互間に付加されるジョイントは、双方の罫線オブジェクトが互い交わった状態を維持したまま、自由な相対位置を維持する制約を付加するフリージョイントを含むことを特徴とする請求項１記載の表レイアウト装置。
【請求項１０】
前記フリージョイントは、双方の罫線オブジェクトがどちらもその端点以外において交わっている場合に付加することを特徴とする請求項９記載の表レイアウト装置。
【請求項１１】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別部と、
前記オブジェクト識別部によって識別された罫線オブジェクトを分割処理する罫線オブジェクト分割処理部と、
前記罫線オブジェクト分割処理部によって分割された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理部と、
前記罫線オブジェクト分割処理部によって分割された罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理部と、
前記ジョイント付加処理部によって付加されたジョイント、及び、前記ストラット付加処理部によって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行部と、を有し、
前記罫線オブジェクト分割処理部は、罫線オブジェクトの相互間の位置関係に基づいて罫線オブジェクト分割処理を実行し、
前記ジョイント付加処理部は、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウト装置。
【請求項１２】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別ステップと、
前記オブジェクト識別ステップによって識別された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理ステップと、
前記オブジェクト識別ステップによって識別された非罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理ステップと、
前記ジョイント付加処理ステップによって付加されたジョイント、及び、前記ストラット付加処理ステップによって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行ステップと、を有し、
前記ジョイント付加処理ステップは、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウト方法。
【請求項１３】
前記非罫線オブジェクトは、表のセル内に収められたデータを表すデータオブジェクトであることを特徴とする請求項１２記載の表レイアウト方法。
【請求項１４】
前記データオブジェクトはテキストオブジェクトまたはグラフィックオブジェクトまたはイメージオブジェクトのいずれか、もしくは、その複数の組み合わせであることを特徴とする請求項１３記載の表レイアウト方法。
【請求項１５】
前記ジョイント付加処理ステップにおいて各罫線オブジェクトの相互間に付加されるジョイントは、両罫線オブジェクトの相対位置を固定する制約を付加するロックジョイントを含むことを特徴とする請求項１２記載の表レイアウト方法。
【請求項１６】
前記ロックジョイントは、双方の罫線オブジェクトがどちらもその端点において交わっている場合に付加することを特徴とする請求項１５記載の表レイアウト方法。
【請求項１７】
前請求項１６における互いに端点で交わる２つの罫線オブジェクトの関係は、水平または垂直のいずれかであることを特徴とする請求項１６記載の表レイアウト方法。
【請求項１８】
前記ジョイント付加処理ステップにおいて各罫線オブジェクトの相互間に付加されるジョイントは、一方の罫線オブジェクトが、もう一方の罫線方向にしか移動できない制約を付加するスライドジョイントを含むことを特徴とする請求項１２記載の表レイアウト方法。
【請求項１９】
前記スライドジョイントは、一方の罫線オブジェクトの端点が、もう一方の罫線オブジェクトの端点以外において交わっている場合に付加することを特徴とする請求項１８記載の表レイアウト方法。
【請求項２０】
前記ジョイント付加処理ステップにおいて各罫線オブジェクトの相互間に付加されるジョイントは、双方の罫線オブジェクトが互い交わった状態を維持したまま、自由な相対位置を維持する制約を付加するフリージョイントを含むことを特徴とする請求項１２記載の表レイアウト方法。
【請求項２１】
前記フリージョイントは、双方の罫線オブジェクトがどちらもその端点以外において交わっている場合に付加することを特徴とする請求項２０記載の表レイアウト方法。
【請求項２２】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別ステップと、
前記オブジェクト識別ステップによって識別された罫線オブジェクトを分割処理する罫線オブジェクト分割処理ステップと、
前記罫線オブジェクト分割処理ステップによって分割された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理ステップと、
前記罫線オブジェクト分割処理ステップによって分割された罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理ステップと、
前記ジョイント付加処理ステップによって付加されたジョイント、及び、前記ストラット付加処理ステップによって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行ステップと、を有し、
前記罫線オブジェクト分割処理ステップは、罫線オブジェクトの相互間の位置関係に基づいて罫線オブジェクト分割処理を実行し、
前記ジョイント付加処理ステップは、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウト方法。
【請求項２３】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別ステップと、
前記オブジェクト識別ステップによって識別された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理ステップと、
前記オブジェクト識別ステップによって識別された非罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理ステップと、
前記ジョイント付加処理ステップによって付加されたジョイント、及び、前記ストラット付加処理ステップによって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行ステップと、を有し、
前記ジョイント付加処理ステップは、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウトをコンピュータに実行させる、コンピュータに読み取り可能な記憶媒体。
【請求項２４】
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別ステップと、
前記オブジェクト識別ステップによって識別された罫線オブジェクトを分割処理する罫線オブジェクト分割処理ステップと、
前記罫線オブジェクト分割処理ステップによって分割された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理ステップと、
前記罫線オブジェクト分割処理ステップによって分割された罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理ステップと、
前記ジョイント付加処理ステップによって付加されたジョイント、及び、前記ストラット付加処理ステップによって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行ステップと、を有し、
前記罫線オブジェクト分割処理ステップは、罫線オブジェクトの相互間の位置関係に基づいて罫線オブジェクト分割処理を実行し、
前記ジョイント付加処理ステップは、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする表レイアウトをコンピュータに実行させる、コンピュータに読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表が、表構造を失い、オブジェクトの組み合わせとして表現されているような電子ドキュメントにおいて、その表の行高・列幅の変更やセルの配置等のレイアウト調整を簡便に行うための技術に関するものである。
【背景技術】
【０００２】
従来の表のレイアウト調整を実施するための技術には、例えば、特許文献１、特許文献２のようなものがある。
【０００３】
特許文献１で開示された技術では、予め指定された最大列幅、最小列幅、及び、予め入力された各列の最大データ長を参照して、表の各列幅を決定する。
【０００４】
また、特許文献２で開示された技術では、列幅設定を実行すると、指定された列のセルの文字桁数のうち最大であるものに応じて列幅を設定する。
【０００５】
また、特許文献３で開示された技術では、表を作成・出力する際に、各列毎に指定された桁数を累積して、累積桁数を算出し、これを元に各列の桁数に修正を行う。これにより、各列に設定された桁数から得られる総桁数と、これを元に修正された総桁数とをあらかじめ知ることが可能となる。
【０００６】
しかし、これらの表へのレイアウト処理技術は、表が、表構造を保持している場合にのみ有効となるものである。表構造とは、すなわち、入力された数値や計算データ、数式、テキスト等を表内の各セルに格納し、各セルをマトリクス表形式で表示するとともに、各セルがマトリクス表の行の位置と列の位置からなるセルアドレスを保持している状態を意味する。表が表構造を持たない場合、セル同士や表枠を構成する罫線との位置関係が不明であるため、上記のような処理を実施することは不可能であり、表のレイアウト変更を実施すると、表の見た目が崩れてしまう恐れがあった。
【０００７】
一方、表に限らず、電子ドキュメント内のオブジェクトをレイアウトするための技術には、例えば、特許文献４のようなものがある。
【０００８】
特許文献４で開示された技術では、テキストやイメージデータを保有するコンテナ同士に対して既定の制約を加え、その制約に従った状態でドキュメント全体のレイアウトを行う。
【０００９】
制約は、コンテナ自体に規定された制約（以下内部制約）、コンテナ同士の相互位置関係に規定された制約（以下外部制約）、また、書類の用紙に対する絶対的な位置関係を規定した制約の場合もある。
【００１０】
例えば、図２に、２つの矩形コンテナ２０１、２０２が存在し、その間にその距離を規定する制約２１０を設けた状態を示す。２つのコンテナの間にあるのは模式的にその制約を表したストラットというオブジェクトで、このストラットが有する前述の制約をストラット制約と称する。
【００１１】
２つのコンテナはこのストラット制約によって、レイアウト時の動作を制約され、例えば自動または手動の操作によって、ストラットの長さ、すなわち、矩形オブジェクト間の距離を可変にしたり、固定にしたりすることができる。また、ストラットの張力を設定することによって、他の張力とのバランスのとれたレイアウトを行うことができる。
【００１２】
また、特許文献４によれば、表のレイアウト方法についても開示されている。これによれば、複数のコンテナからなる配列において、各コンテナ同士や、コンテナとコンテナ間に設置されたガイドとの位置関係から制約を設けることによって、表の見た目を維持しつつレイアウトを行う。
【００１３】
動的レイアウトの計算方法については、特許文献４、及び、特許文献５で開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平４−１６５５７０号公報
【特許文献２】特開平７−１２９５５２号公報
【特許文献３】特開平６−２１０９２５号公報
【特許文献４】特開２００５−１２２７２８号公報
【特許文献５】特開２００５−１３５３９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献４で開示された技術においても、各コンテナの行位置、及び、列位置を予め規定しておく必要がある。このため、特許文献１、特許文献２、及び、特許文献３の場合と同じく、各セルが表構造を持たない場合、セル同士や表枠を構成する罫線との位置関係が不明であるため、上記のような処理を実施することは不可能であった。つまり、表のレイアウト変更を実施すると、表の見た目が崩れてしまう恐れがあった。
【００１６】
さらに、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）やＭｉｃｒｏｓｏｆｔ  ＰｏｗｅｒＰｏｉｎｔ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）等によって作成された、表を含む、電子ドキュメントを、Ａｄｏｂｅ  Ａｃｒｏｂａｔ（登録商標）を用いてＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイルに変換した場合や、紙の書類をスキャンした上でＰＤＦ変換することを考える。このケースにおいて、表枠を構成する罫線が、元ファイルでは一本の線分からなるオブジェクトであるのに、ＰＤＦ変換後は、複数の線分に分割される場合がある。
【００１７】
図３に示すのが、複数のオブジェクトで構成された表の例である。図３（ａ）にある見た目を持つ表をＰＤＦ変換するケースを考える。この際、その表がＷｏｒｄ（登録商標）ファイル内に含まれる表である場合の変換後の各オブジェクトの様子を図示したのが図３（ｂ）であり、その表がＥｘｃｅｌ表である場合の変換後の各オブジェクトの様子を図示したのが図３（ｃ）である。点線で囲まれたオブジェクト３０１は表の各セルに収まっていたデータであり、線分のオブジェクト３０２は表枠を構成する罫線が分離されたものである。なお、これらの配列には意味はなく、見た目上は元の表のレイアウトを保っているが、オブジェクトの分離度合をわかりやすく説明するために便宜上、わけて配列してある。
【００１８】
どちらの変換の場合も、ＰＤＦ変換後も見た目には元ファイルと同じ状態が維持される。しかし、セル内容や表枠を構成する罫線が、ばらばらのオブジェクトに分割されて、表構造を失い、しかも、アプリの種類によってその分割の具合が異なる。例えば、図３（ｃ）において、３つのオブジェクト３０３は、もともと表枠を構成する同一直線上の罫線であるが、ＰＤＦファイルでは３本の異なるオブジェクトに分解されている。
【００１９】
この結果、ＰＤＦ変換後に、表の行高・列幅の変更やセルの配置等のレイアウト調整を行うことがさらに難しいという問題があった。
【００２０】
本発明は、斯様な課題を解決するためのものである。すなわち、表が、表構造を持たず、グラフィックオブジェクトとその他のオブジェクトの組み合わせとして表現されている電子ドキュメントにおいて、その表の行高・列幅の変更やセルの配置等のレイアウト調整を簡便に実施する手段を提供する。
【課題を解決するための手段】
【００２１】
本発明の一態様によれば、表構造を持たない表に対して、その表の行高・列幅の変更やセルの配置等のレイアウト調整を簡便に実施する方法が開示され、前記方法は、
表を構成する複数のオブジェクトを、表枠を形成する罫線オブジェクトとそれ以外のオブジェクトである非罫線オブジェクトとに識別するオブジェクト識別ステップと、
前記オブジェクト識別ステップによって識別された罫線オブジェクトの相互間にジョイント付加処理を実行するジョイント付加処理ステップと、
前記オブジェクト識別ステップによって識別された非罫線オブジェクトの相互間、もしくは、罫線オブジェクトと非罫線オブジェクトとの間にストラット付加処理を実行するストラット付加処理ステップと、
前記ジョイント付加処理ステップによって付加されたジョイント、及び、前記ストラット付加処理ステップによって付加されたストラットに定義づけられた制約に従い、罫線オブジェクト及び非罫線オブジェクトに対して動的レイアウトを実行するレイアウト実行ステップと、を有し、
前記ジョイント付加処理ステップは、罫線オブジェクトの相互間の位置関係に基づいてジョイント付加処理を実行することを特徴とする。
【００２２】
また、上記方法を実行するための装置、及び、コンピュータに実行させるコンピュータに読み取り可能な記憶装置を含む、本発明の他の態様も開示される。
【発明の効果】
【００２３】
本発明によれば、表が、表構造を持たず、オブジェクトの組み合わせとして表現されている電子ドキュメントにおいて、その表の行高・列幅の変更やセルの配置等のレイアウト調整を簡便に実施することができる画像処理装置を提供することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】電子ドキュメントのレイアウトを実行するシステム
【図２】コンテナとストラットとの関係
【図３】複数のオブジェクトで構成された表
【図４】実施例１の表のレイアウト変更のフローチャート
【図５】表構造を持たない表
【図６】ロックジョイントの制約の様子
【図７】水平スライドジョイントの制約の様子
【図８】垂直スライドジョイントの制約の様子
【図９】フリージョイントの制約の様子
【図１０】ジョイント付加処理のフローチャート
【図１１】データオブジェクトと他オブジェクト間のストラットが付加された例
【図１２】実施例２の表のレイアウト変更のフローチャート
【図１３】３本ないし４本の罫線オブジェクトによる交点部分のジョイント制約の様子
【図１４】実施例１〜２が有効である表と無効である表の例
【図１５】同一直線上にある罫線オブジェクトに付加されるブリッジ制約の様子
【図１６】実施例４を適用した表へのジョイント付加の様子
【図１７】実施例３の表のレイアウト変更のフローチャート
【図１８】実施例３におけるブリッジ付加処理のフローチャート
【図１９】実施例４の表のレイアウト変更のフローチャート
【図２０】実施例４における罫線オブジェクト分割処理のフローチャート
【図２１】実施例４におけるジョイント付加処理のフローチャート
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００２６】
図１は電子ドキュメントのレイアウトを実行するシステムを図示している。
【００２７】
コンピュータモジュール１０１はキーボード１３２やマウス１３３のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置１４４や状況に応じてはローカルプリンタ１４５を含む出力装置を連結する。入力／出力インタフェイス１３８はコンピュータモジュール１０１をネットワーク接続１０７から接続してシステムの他のコンピュータ装置につなげることができる。そのネットワーク接続１０７の典型はローカルエリアネットワーク（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）である。
【００２８】
コンピュータモジュール１０１は典型的に少なくとも１つのプロセッサーユニット（ＣＰＵ）１３５を含んでいる。また、例えば半導体のランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリユニット１３６を含んでいる。更に、ビデオインタフェース１３７を含むＩＮＰＵＴ／ＯＵＴＰＵＴ（Ｉ／Ｏ）インタフェイスを含み、キーボード１３２やマウス１３３のためのＩ／Ｏインタフェイス１４３を含んでいる。記憶装置１３９は典型的にハードディスクドライブ１４０やフロッピー（登録商標）ディスクドライブ１４１を含んでいる。図には示されていないが磁気テープドライブなどもまた使用される可能性がある。ＣＤ−ＲＯＭドライブ１４２は不揮発性のデータソースとして提供される。コンピュータモジュール１０１はＬＩＮＵＸやマイクロソフトＷｉｎｄｏｗｓ（登録商標）のようなオペレーションシステムや相互接続バス１３４を介して通信を行うコンピュータモジュール１０１のコンポーネント１３５から１４３を利用する。
【００２９】
本発明のフローチャートで示された手順を実現するソフトウェアは例えば上記に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ１０１のＣＰＵ１３５によって実行される。そのコンピュータでコンピュータプログラム製品を使用することにより文書のレイアウトに有利な装置として作動することができる。
【実施例１】
【００３０】
図４は、本発明の実施例１の表のレイアウト変更のフローチャートである。以下、この図に沿って、本実施例の全体概要を説明する。
【００３１】
表のレイアウト変更のフローにおいて、操作者からの命令が必要である場合は、キーボード１３２及びマウス１３３を介して操作者から命令がインプットされ、ＣＰＵ１３５によって適宜処理される。また、表のレイアウト変更の模様は、ビデオインタフェース１３７を介して、ビデオディスプレイ１４４において、操作者が確認することができる。
【００３２】
図５に示すのは、本実施例における、表のへのジョイント付加処理と動的レイアウトを実施した様子を模式的に表した図である。図５（ａ）は、表のレイアウト対象となる、表構造を持たない表を表した図である。
【００３３】
Ｓ４０１において、表を構成するオブジェクトの識別を実施する。表枠を構成するオブジェクト（以下罫線オブジェクト）５０１と、セル内のデータを表すオブジェクト（以下データオブジェクト）５０２とに識別する。
【００３４】
Ｓ４０２において、ジョイント付加処理を実行する。ジョイントは罫線オブジェクトの相互間に、相対的な位置関係の制約を設定するものとして定義づける。詳細については後述する。
【００３５】
Ｓ４０３において、ストラット付加処理を実施する。ストラットは罫線オブジェクトとデータオブジェクト間に、また、データオブジェクトの相互間に、相対的な位置関係の制約を設定するものである。
【００３６】
データオブジェクトと、周囲の他のデータオブジェクトや罫線オブジェクトとの間にストラットが付加された一例を図１１に示す。
【００３７】
データオブジェクト１１０１と罫線オブジェクト１１０４の間にストラット１１１０が、また、データオブジェクト１１０２とデータオブジェクト１１０３との間にストラット１１１１が付加されている。これらのストラットは、距離を可変にしたり、固定にしたりすることができ、また、ストラットの張力を設定することによって、他の張力とのバランスのとれたレイアウトを行うことができる。
【００３８】
Ｓ４０４において表のレイアウトを行うかどうかの判断が実施され、レイアウトを実行すると、設定されたレイアウトの制約が、Ｓ４０５において、動的レイアウト実行する際に、参照される。なお、動的レイアウトの計算方法については、前記特許文献４、及び、特許文献５で開示されている。
【００３９】
なお、罫線オブジェクトはグラフィックオブジェクトやラインオブジェクトと一般に称される属性を持つ場合が多い。また、データオブジェクトはセルの内部に納まっているオブジェクトであれば何でもよく、テキストオブジェクト、グラフィックオブジェクト、イメージオブジェクトなどの可能性がある。
【００４０】
以下では、全ての罫線オブジェクトに対して、罫線と平行な方向に対しては自由に幅を変更することができるが、罫線の法線方向には自由に幅を変更することができないという内部制約を設ける。すなわち、罫線オブジェクトは、長さは可変であり、周囲のオブジェクトとの間に設けられた外部制約に影響されるが、特に指示のない限り、太さは固定である。
【００４１】
次に本発明のもっとも特徴的な部分であるジョイント付加処理を実行するステップＳ４０２に関してさらに詳細な説明を行う。
【００４２】
図６〜図９は、本発明において機能するオブジェクト間の外部制約を例示的に説明するものである。オブジェクトのレイアウト時の動作に制約を加えるという意味で従来のストラットに包含されるものであるが、本発明によって定義される新たな制約であるので、従来のストラットと区別して、以下ではジョイントと称する。
【００４３】
図６に示すのは、ロックジョイントの制約の様子である。この外部制約が設定された場合、２つのオブジェクトの相対的な位置関係が固定される。
【００４４】
図７（ａ）に示すのは、水平スライドジョイントの制約の様子である。この外部制約が設定された場合、２つのオブジェクトの相対的な位置関係は図にある水平矢印方向に限定される。すなわち、図７（ｂ）や図７（ｃ）のような位置になることは可能であるが、図７（ｄ）や図７（ｅ）のような相対位置になることはできない。また、２つのオブジェクトは互いに交わった状態を保つので、図７（ｆ）のような互いに交わらない相対位置になることもできない。
【００４５】
図８（ａ）に示すのは、垂直スライドジョイントの制約の様子である。この外部制約が設定された場合、２つのオブジェクトの相対的な位置関係は図にある垂直矢印方向に限定される。すなわち、図８（ｂ）や図８（ｃ）のような位置になることは可能であるが、図８（ｄ）や図８（ｅ）のような相対位置になることはできない。また、２つのオブジェクトは互いに交わった状態を保つので、図８（ｆ）のような互いに交わらない相対位置になることもできない。
【００４６】
なお、水平スライドジョイントと垂直スライドジョイントとを合わせてスライドジョイントと称する。
【００４７】
図９（ａ）に示すのは、フリージョイントの制約の様子である。この外部制約が設定された場合、２つのオブジェクトの相対的な位置関係が限定されることはなく、自由な位置関係になることができる。すなわち、図９（ｂ）や図９  （ｃ）のような位置になることは可能である。ただし、２つのオブジェクトは互いに交わった状態を保つので、図９（ｄ）のように互いに交わらない相対位置になることはできない。
【００４８】
図１０に示すのは、Ｓ４０２においてジョイント付加処理を実行する際の、動作フローについて、より詳細に表したものである。
【００４９】
まず、Ｓ１００１において、表領域内の罫線オブジェクトが探索され、Ｓ１００３において順次選択される。次に、Ｓ１００４において、選択された罫線オブジェクトにおける、他の表領域内の他の罫線オブジェクトとの交点が探索され、Ｓ１００６において、順次選択される。
【００５０】
次に、Ｓ１００８〜Ｓ１０１１の４つの判断によって、交点部分に付加されるジョイントが決定される。ただし、すでに対象となる交点にジョイントが付加されている場合には、Ｓ１００７によってループバックを行い、新たなジョイントの付加は行わない。Ｓ１０２０〜Ｓ１０２３において、それぞれロックジョイント・水平スライドジョイント・垂直スライドジョイント・フリージョイントを付加する。
【００５１】
ジョイントが付加された後には、Ｓ１０２４において、表領域内のオブジェクトの動的レイアウトのルールに制約を加える。Ｓ１０２０〜Ｓ１０２３において、付加されたジョイントに定義付けられた制約が、Ｓ１０２４動的レイアウトのルールに追加される。
【００５２】
この後、選択された罫線オブジェクトの他の交点の探索、選択とジョイント付加処理が続けられる。一つの罫線に対する交点の探索が全て終了すると、他の罫線に関しても同様にジョイント付加処理が実行される。
【００５３】
例として、図５（ａ）の表に対して、ジョイントを付加した様子を図５（ｂ）に示す。なお、ここではジョイントのみならず、通常のストラットについても図示している。
【００５４】
このように、本実施例による動作ルールの特徴は、表の外側の角部分にはロックジョイント、それ以外の外枠の罫線の交点部分にスライドジョイント、内側の罫線同士の交点部分にはフリージョイントを付加することを意図している。
【００５５】
図５（ｃ）、及び、図５（ｄ）に示すのは、さらに、本実施例において適用された動作ルールに従って、表の列幅・行高の調整を行ったものである。図５（ｃ）は、操作者によって入力されたレイアウト変更命令によって列幅が変更された様子、図５（ｄ）は、表の各々の列幅・行高が最小になるような命令に従って自動または半自動的に列幅・行高が変更された様子である。
【００５６】
どちらの場合でも、オブジェクトの互いの位置関係を保った制約が動的レイアウトの動作ルールに追加されているため、表としての体裁を整えたままのレイアウト変更を実現している。
【００５７】
本実施例では、図３（ｂ）に示すような、罫線オブジェクトが分割された表に対して、表の行高・列幅の再レイアウトを実施することを可能とするものであった。
【００５８】
しかし、図３（ｃ）や図３（ｄ）に示すような、もともと同一直線であった罫線オブジェクトが分割された表が与えられた場合、一つの交点において３本ないし４本の罫線オブジェクトが交わることがある。このため、その中の全ての組み合わせに対して互いに独立したジョイントを付加する必要がある。
【００５９】
図１３（ａ）〜図１３（ｃ）に示すのは、３本ないし４本の罫線オブジェクトが一点で交わっている場合のジョイント付加の様子である。
【００６０】
それぞれの場合で、罫線オブジェクトが端点で交わる場合にはロックジョイントが、端点と端点以外とで交わる場合にはスライドジョイントが付加される。
【００６１】
これらのような場合においても、本実施例で対応可能である。
【実施例２】
【００６２】
実施例１では、本発明を適用した場合の、基本的な実施形について説明した。しかし、実施例１のＳ４０２において、実施されたジョイント付加の処理では、一つの罫線同士の交点に対して、交点の探索が２度行われるなど、重複する処理が存在した。以下では、より効率的な処理を行う実施形の説明を行う。
【００６３】
図１２に示すのは、ステップＳ４０２においてジョイント付加処理を実行する際の、本実施例における動作フローについて表したものである。実施例１と異なるのは、垂直な罫線オブジェクトに限定して、罫線の探索を行う点である。
【００６４】
すなわち、まず、Ｓ１２０１において、表領域内の垂直罫線オブジェクトが探索され、Ｓ１２０３において順次選択される。次に、Ｓ１２０４において、選択された垂直罫線オブジェクトにおける、他の表領域内の他の水平罫線オブジェクトとの交点が探索され、Ｓ１２０５において、順次選択される。
【００６５】
次に、Ｓ１２０６〜Ｓ１２０８の３つの判断によって、交点部分に付加されるジョイントが決定される。Ｓ１２１０〜Ｓ１２１３において、それぞれロックジョイント・水平スライドジョイント・垂直スライドジョイント・フリージョイントを付加する。ジョイントが付加された後には、ジョイントに定義付けられた制約が、Ｓ１２１４において動的レイアウトのルールに追加される。
【００６６】
次に、選択されている垂直罫線オブジェクトにロックジョイントと水平スライドジョイントが２つ付加されたかどうかの判断をＳ１２１５において行う。１つ以下しか付加されていない場合には、引き続き選択された垂直罫線オブジェクトでの交点の探索を行い、２つ付加されている場合には、一つの罫線に対する交点の探索が全て終了したと判断して、次の垂直罫線オブジェクトの探索を行う。他の罫線に関しても同様にジョイント付加処理が実行される。
【００６７】
実施例１と比較して、判断や処理の回数が削減されるため、より高速で低負荷なジョイント付加処理を実行することが可能となる。
【実施例３】
【００６８】
実施例１及び実施例２では、図１４（ａ）及び図１４（ｂ）に示すような表には有効であるが、図１４（ｃ）及び図１４（ｄ）に示すような表には、所望のレイアウトを実施することができない。
【００６９】
例えば、図１４（ｃ）に示す表に対して、再レイアウトを実施する場合、動的レイアウトの制約に従った上で、図１４（ｅ）に示す表のようなレイアウトを持つ表に変形することも可能である。これは、表作成時には罫線オブジェクト１４０１と１４０２とが同一直線であるものと意図して作成されているのに対して、表構造を失った状態では、両オブジェクト間に動的レイアウトへの制約が付加されていないためである。
【００７０】
また、同じことが図１４（ｄ）に示すセルが結合されたような表に対しても言え、この表に対して再レイアウトを実施する場合、動的レイアウトの制約に従った上で、図１４（ｆ）に示す表のようなレイアウトを持つ表に変形することも可能である。これは、表作成時には罫線オブジェクト１４０３と１４０４とが同一直線であるものと意図して作成されているのに対して、表構造を失った状態では、両オブジェクト間に動的レイアウトへの制約が付加されていないためである。
【００７１】
本実施例では斯様な問題点を解決する。
【００７２】
図１７に示すのは、本実施例を適用した場合の表のレイアウト変更のフローチャートである。実施例１、及び、実施例２と異なるのは、ジョイント付加処理実行のステップの前に、後述するブリッジ付加処理を実行するステップＳ１７０２を備えることである。
【００７３】
同一直線上にある複数の罫線オブジェクトに対して、互いに同一直線上にあるよう付加される外部制約を例示的に説明するものである。以下ではブリッジと称する。
【００７４】
図１５にブリッジによる制約の様子を示す。
【００７５】
罫線オブジェクト１５０１と１５０２とは同一直線上にあるのでブリッジ１５２１を設ける。また、罫線オブジェクト１５０３と１５０４とも同一直線上にあるのでブリッジ１５２２を設ける。これらのブリッジを設けることによって、動的レイアウト時のルールに両罫線オブジェクトが同一直線上に維持される外部制約が作用する
図１８は本実施例におけるブリッジ付加処理をより詳細に示したフローチャートである。
【００７６】
表領域内にある罫線オブジェクトをＳ１８０３及びＳ１８１３において順次選択する。選択されたオブジェクトに対して、Ｓ１８０６及びＳ１８０７において、同一直線上に他の罫線オブジェクトがあると判断されると、Ｓ１８０７及びＳ１８１７において、選択オブジェクトとの間にブリッジを付加する。Ｓ１８０８及びＳ１８１８において、付加されたブリッジに応じて動的レイアウトに制約を追加する。
【００７７】
これにより、レイアウト実行時にも表が作成者の意図しない形状に変形してしまうことを防ぐことが可能となる。
【実施例４】
【００７８】
また、ロックジョイントだけを用いて同様の操作を実施することも可能であるため、本実施例においてこれを説明する。
【００７９】
図１６に示すのは、本実施例における、表のへのジョイント処理を模式的に表した図である。
【００８０】
図１９に示すのは、本実施例を適用した場合の表のレイアウト変更のフローチャートである。実施例１、及び、実施例２と異なるのは、ジョイント付加処理実行のステップの前に、罫線オブジェクト分割処理を実行するステップＳ１９０２を備えることである。
【００８１】
図２０は本実施例における罫線オブジェクト分割処理をより詳細に示したフローチャートである。
【００８２】
すなわち、Ｓ２００３において表領域内の罫線オブジェクトを選択し、選択された罫線オブジェクトの端点以外に交点がある場合、Ｓ２００８において選択された罫線オブジェクトを分割する。この結果、図１６（ａ）にあるような表に対して、罫線オブジェクト分割処理後は図１６（ｂ）のような状態になる。
【００８３】
図２１は本実施例におけるジョイント付加処理をより詳細に示したフローチャートである。
【００８４】
実施例１及び実施例２と異なるのは、あらゆる交点にロックジョイントを付加する点である。この結果、図１６（ｂ）にあるような状態の表に対して、罫線オブジェクト分割処理後は図１６（ｃ）のような状態になる。
【００８５】
この状態の表に対して動的レイアウトを実施すると、表のレイアウト変更を実施することが可能となる。
【００８６】
以上のように本発明では、表が、表構造を失っている場合でも、レイアウトの崩れを防ぎ、表の行高・列幅の変更やセルの配置等のレイアウト調整を簡便に実施することができる画像処理装置を提供することが可能となる。
【符号の説明】
【００８７】
１３５  ＣＰＵ
１３３  マウス
１３７  ビデオインタフェース
１４４  ビデオディスプレイ
【図１】
2011002979.tif 000003
【図２】
2011002979.tif 000004
【図３】
2011002979.tif 000005
【図４】
2011002979.tif 000006
【図５】
2011002979.tif 000007
【図６】
2011002979.tif 000008
【図７】
2011002979.tif 000009
【図８】
2011002979.tif 000010
【図９】
2011002979.tif 000011
【図１０】
2011002979.tif 000012
【図１１】
2011002979.tif 000013
【図１２】
2011002979.tif 000014
【図１３】
2011002979.tif 000015
【図１４】
2011002979.tif 000016
【図１５】
2011002979.tif 000017
【図１６】
2011002979.tif 000018
【図１７】
2011002979.tif 000019
【図１８】
2011002979.tif 000020
【図１９】
2011002979.tif 000021
【図２０】
2011002979.tif 000022
【図２１】
2011002979.tif 000023