(57)【特許請求の範囲】
【請求項１】
表を管理する方法であって、
最下行と、第１の積重ね行と、を有する表を備える文書を取得する工程と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定する工程と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出する工程と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定する工程と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定する工程と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させる工程と、
前記最下行を下へ移動させる工程の後に、前記表を備える前記文書のページをレンダリングする工程と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定する工程と、
前記全体垂直寸法を算出する工程の前に、前記開始セルの高さ属性を前記セルブロックの高さに設定する工程と、
前記最下行を下へ移動させる工程の後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃える工程と、
を更に備える方法。
【請求項２】
第２の積重ね行において、複数の第２の中間セルのそれぞれの垂直位置を特定する工程と、
前記最下行を下へ移動させる工程の前に、前記垂直位置を前記第１の差分だけ修正する工程と、
を更に備え、
前記第２の積重ね行は、前記表内で、前記第１の積重ね行と前記最下行の間に位置することを特徴とする請求項１に記載の方法。
【請求項３】
前記最下行を下へ移動させる工程は、
前記最下行において、複数の第２の中間セルのそれぞれの垂直位置を特定する工程と、
前記垂直位置を前記第１の差分だけ修正する工程と、
を備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記レイアウトエンジンを用いて、前記開始セル内のデータアイテムに基づいて、前記開始セルの全体垂直寸法を算出する工程と、
前記開始セルの前記全体垂直寸法が前記セルブロックの前記高さを超える場合、前記開始セルの前記高さ属性を前記開始セルの前記全体垂直寸法に設定する工程と、
を更に備える請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記開始セルの下端を揃える工程は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出する工程と、
前記開始セルの前記高さ属性を前記第２の差分だけ増加させる工程と、
を備える請求項１〜３のいずれか一項に記載の方法。
【請求項６】
前記開始セルの下端を揃える工程は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出する工程と、
前記終了セルの高さ属性を前記第２の差分だけ増加させる工程と、
を備える請求項１〜３のいずれか一項に記載の方法。
【請求項７】
前記終了セルは前記最下行に位置することを特徴とする請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記終了セルは第２の積重ね行に位置し、
前記第２の積重ね行は、前記表内で、前記第１の積重ね行と前記最下行の間に位置することを特徴とする請求項１〜６のいずれか一項に記載の方法。
【請求項９】
表を管理するための指示を記憶する非一時的コンピューター読取可能記憶媒体であって、該指示は、
最下行と、第１の積重ね行と、を有する表を備える文書を取得するための指示と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定するための指示と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出するための指示と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定するための指示と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定するための指示と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させるための指示と、
前記最下行を下へ移動させた後に、前記表を備える前記文書のページをレンダリングするための指示と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定するための指示と、
前記全体垂直寸法を算出する前に、前記開始セルの高さ属性を前記セルブロックの高さに設定するための指示と、
前記最下行を下へ移動させた後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃えるための指示と、
を更に備える非一時的コンピューター読取可能記憶媒体。
【請求項１０】
第２の積重ね行において、複数の第２の中間セルのそれぞれの垂直位置を特定するための指示と、
前記最下行を下へ移動させる前に、前記垂直位置を前記第１の差分だけ修正するための指示と、
を更に備え、
前記第２の積重ね行は、前記表内で、前記第１の積重ね行と前記最下行の間に位置することを特徴とする請求項９に記載の非一時的コンピューター読取可能記憶媒体。
【請求項１１】
前記レイアウトエンジンを用いて、前記開始セル内のデータアイテムに基づいて、前記開始セルの全体垂直寸法を算出するための指示と、
前記開始セルの前記全体垂直寸法が前記セルブロックの前記高さを超える場合、前記開始セルの前記高さ属性を前記開始セルの前記全体垂直寸法に設定するための指示と、
を更に備える請求項９又は１０に記載の非一時的コンピューター読取可能記憶媒体。
【請求項１２】
前記開始セルの下端を揃えるための指示は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出するための指示と、
前記開始セルの前記高さ属性を前記第２の差分だけ増加させるための指示と、
を備える請求項９又は１０に記載の非一時的コンピューター読取可能記憶媒体。
【請求項１３】
前記開始セルの下端を揃えるための指示は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出するための指示と、
前記終了セルの高さ属性を前記第２の差分だけ増加させるための指示と、
を備える請求項９又は１０に記載の非一時的コンピューター読取可能記憶媒体。
【請求項１４】
表を管理するシステムであって、
ハードウェアプロセッサーと、
前記ハードウェアプロセッサーに動作可能に接続されるメモリーと、
前記ハードウェアプロセッサーに記憶される複数の指示と、
を備え、
前記指示は、
最下行と、第１の積重ね行と、を有する表を備える文書を取得するための指示と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定するための指示と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出するための指示と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定するための指示と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定するための指示と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させるための指示と、
前記最下行を下へ移動させた後に、前記表を備える前記文書のページをレンダリングするための指示と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定するための指示と、
前記全体垂直寸法を算出する前に、前記開始セルの高さ属性を前記セルブロックの高さに設定するための指示と、
前記最下行を下へ移動させた後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃えるための指示と、
を更に備えるシステム。
【請求項１５】
第２の積重ね行において、複数の第２の中間セルのそれぞれの垂直位置を特定するための指示と、
前記最下行を下へ移動させる前に、前記垂直位置を前記第１の差分だけ修正するための指示と、
を更に備え、
前記第２の積重ね行は、前記表内で、前記第１の積重ね行と前記最下行の間に位置することを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記レイアウトエンジンを用いて、前記開始セル内のデータアイテムに基づいて、前記開始セルの全体垂直寸法を算出するための指示と、
前記開始セルの前記全体垂直寸法が前記セルブロックの前記高さを超える場合、前記開始セルの前記高さ属性を前記開始セルの前記全体垂直寸法に設定するための指示と、
を更に備える請求項１４又は１５に記載のシステム。
【請求項１７】
前記開始セルの下端を揃えるための指示は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出するための指示と、
前記開始セルの前記高さ属性を前記第２の差分だけ増加させるための指示と、
を備える請求項１４又は１５に記載のシステム。
【請求項１８】
前記開始セルの下端を揃えるための指示は、
前記開始セルの前記下端と前記終了セルの前記下端の第２の差分を算出するための指示と、
前記終了セルの高さ属性を前記第２の差分だけ増加させるための指示と、
を備える請求項１４又は１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表のセルの高さを決定する方法、コンピューター読取可能媒体及びシステムに関する。
【背景技術】
【０００２】
電子文書（ＥＤ）は、あらゆる数のページ数を有し、一以上の表を含んでいる場合がある。このような電子文書は、表内の行数、列数、各セル（又は行）の初期高さ又はデフォルト高さ、各セル（又は列）の初期幅又はデフォルト幅及び各セルの結合属性（すなわち、行スパン、列スパン）を指定する。また電子文書は、表のセルに含まれるデータアイテム（すなわち、テキスト、画像、形状など）を特定する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
表内のセルの最終的な高さ（すなわち、表示時の高さ又は印刷時の高さ）は、（１）電子文書によって指定されていれば、電子文書によって指定される初期高さ又はデフォルト高さ、（２）電子文書によって指定されるセルの結合属性、（３）同じ行のその他のセルの高さ、（４）セルに含まれるデータアイテム（すなわち、テキスト、画像、形状など）の寸法及び位置、に基づく。通常、形状、グラフィックス、画像の寸法は、電子文書によって指定される。しかし、形状、グラフィックス及び画像がこれらを含むセルの全体的なサイズに与える具体的な影響は、当該形状、グラフィックス及び画像のそれぞれのセル内での配置（すなわち、レイアウト）によって異なる。また、レイアウトされるテキストの寸法は、フォントタイプ、フォントサイズ、フォントスタイル、レイアウトエンジンによって用いられるアルゴリズムなどに依存するため、電子文書はレイアウトされるテキストの寸法を完全には指定しない。
【０００４】
電子文書によって指定されるように表をレイアウトするのは、ページレンダリングデバイス（ＰＲＤ）の担当である。したがってページレンダリングデバイスは、セルの最終的な高さを算出する際に、上記（１）から（４）を考慮する必要がある。しかし、上記（４）は（前述したように）電子文書において完全に指定されるものではない。そこで、セルと表が全体として適切にレンダリングされるように、上記（４）を他の手段を用いて決定し、上記（１）から（３）と共に用いる必要がある。
【課題を解決するための手段】
【０００５】
主として、一側面において、本発明は表を管理する方法に関する。
該方法は、
最下行と、第１の積重ね行と、を有する表を備える文書を取得する工程と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定する工程と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出する工程と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定する工程と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定する工程と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させる工程と、
前記最下行を下へ移動させる工程の後に、前記表を備える前記文書のページをレンダリングする工程と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定する工程と、
前記全体垂直寸法を算出する工程の前に、前記開始セルの高さ属性を前記セルブロックの高さに設定する工程と、
前記最下行を下へ移動させる工程の後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃える工程と、
を更に備える。
【０００６】
主として、一側面において、本発明は表を管理するための指示を記憶する非一時的コンピューター読取可能記憶媒体に関する。
該指示は、
最下行と、第１の積重ね行と、を有する表を備える文書を取得するための指示と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定するための指示と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出するための指示と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定するための指示と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定するための指示と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させるための指示と、
前記最下行を下へ移動させた後に、前記表を備える前記文書のページをレンダリングするための指示と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定するための指示と、
前記全体垂直寸法を算出する前に、前記開始セルの高さ属性を前記セルブロックの高さに設定するための指示と、
前記最下行を下へ移動させた後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃えるための指示と、
を更に備える。
【０００７】
主として、一側面において、本発明は表を管理する指示を記憶するシステムに関する。
該システムは、
ハードウェアプロセッサーと、
前記ハードウェアプロセッサーに動作可能に接続されるメモリーと、
前記ハードウェアプロセッサーに記憶される複数の指示と、
を備え、
前記指示は、
最下行と、第１の積重ね行と、を有する表を備える文書を取得するための指示と、
前記第１の積重ね行において、高さの初期値を有する複数の第１の中間セルを特定するための指示と、
レイアウトエンジンを用いて、前記複数の第１の中間セル内のそれぞれのデータアイテムに基づいて、前記複数の第１の中間セルのそれぞれの全体垂直寸法を算出するための指示と、
前記複数の全体垂直寸法から最大全体垂直寸法を特定するための指示と、
前記最大全体垂直寸法が前記高さの初期値を超える場合、前記複数の第１の中間セルのそれぞれの高さ属性を前記最大全体垂直寸法に設定するための指示と、
前記最大全体垂直寸法と前記高さの初期値の第１の差分だけ、前記最下行を下へ移動させるための指示と、
前記最下行を下へ移動させた後に、前記表を備える前記文書のページをレンダリングするための指示と、
を備え、
前記第１の積重ね行において、セルブロックの開始セルを特定するための指示と、
前記全体垂直寸法を算出する前に、前記開始セルの高さ属性を前記セルブロックの高さに設定するための指示と、
前記最下行を下へ移動させた後に、前記開始セルの下端と前記セルブロックの終了セルの下端を揃えるための指示と、
を更に備える。
【０００８】
本発明のその他の側面は、以下の説明及び添付の特許請求の範囲から明らかである。
【図面の簡単な説明】
【０００９】
【図１】本発明の一以上の実施形態に係るセルの高さを決定するシステムのブロック図を示す。
【図２Ａ】本発明の一以上の実施形態に係る表及びセルの例を示す。
【図２Ｂ】本発明の一以上の実施形態に係る表及びセルの例を示す。
【図３】本発明の一以上の実施形態に係るセルの高さを決定する方法のフローチャートを示す。
【図４】本発明の一以上の実施形態に係るセルの高さを決定する方法のフローチャートを示す。
【図５】本発明の一以上の実施形態に係るコンピューターシステムの図を示す。
【発明を実施するための形態】
【００１０】
本発明の具体的な実施形態を、添付の図面を参照して詳細に説明する。複数の図に示される同様の構成要素は、一貫性を保つために同様の参照符号で示す。
【００１１】
以下の本発明に係る実施形態の詳細な説明には、本発明についてより完全な理解を提供するため、数多くの詳細を示す。しかし、当業者にとっては、これらの詳細を用いずとも、本発明の実施が可能であることは明らかであろう。他の例においては、不要に複雑な説明となるのを避けるため、周知の特徴に関しては詳細な説明は省略する。
【００１２】
主として、本発明の実施形態は、表内のセルの高さを決定するシステム及び方法に関する。セルの高さは、電子文書（ＥＤ）によって指定されるセルの初期高さ又はデフォルト高さ、行スパンなどセルの結合属性、同じ行のその他のセルの高さ、セル内に含まれるデータアイテムの寸法、に基づく。データアイテムの寸法はレイアウトエンジンを用いて算出され、その他の要素と共に使用されてセルの高さを決定する。
【００１３】
図１は、本発明の一以上の実施形態に係るシステム１００を示す。図１に示されるように、システム１００は、ページレンダリングデバイス（ＰＲＤ）１０４と、コンピューターデバイス１０３とを含む、複数の構成要素を備える。ページレンダリングデバイス１０４は、例えば、プリンター、電子読取装置などである。コンピューターデバイス１０３は、パーソナルコンピューター（ＰＣ）、デスクトップコンピューター、汎用コンピューター、サーバー、電話、公共電話ボックス、ケーブルボックス、携帯情報端末（ＰＤＡ）、携帯電話、スマートフォンなどである。コンピューターデバイス１０３とページレンダリングデバイス１０４は、直接的に接続されてもよい（例えば、ユニバーサルシリアルバス（ＵＳＢ）接続など）。あるいは、コンピューターデバイス１０３とページレンダリングデバイス１０４は、有線部分及び／又は無線部分を有するネットワーク１１０を用いて接続されてもよい。
【００１４】
本発明の一以上の実施形態において、ページレンダリングデバイス１０４はコンピューターデバイス１０３上に位置する。このような実施形態では、ページレンダリングデバイス１０４は、コンピューターデバイス１０３上の、電子文書のページをレンダリングするためのハードウェアとソフトウェアの組み合わせに対応する。
【００１５】
本発明の一以上の実施形態において、コンピューターデバイス１０３はユーザーアプリケーション１０１を実行する。ユーザーアプリケーション１０１はユーザーによって操作されるソフトウェアアプリケーションであり、電子文書１０２を取得、入力、生成、表示及び／又は印刷するように構成されている。したがって、ユーザーアプリケーション１０１は、ワードプロセッシングアプリケーション、表計算アプリケーション、デスクトップパブリッシングアプリケーション、グラフィックアプリケーション、写真印刷アプリケーション、インターネットブラウザーなどである。ユーザーアプリケーション１０１は、新たな電子文書を生成及び／又は事前に保存した電子文書を取得する。本発明の一以上の実施形態において、電子文書１０２は一以上の表を含む（後述）。
【００１６】
図２Ａは、本発明の一以上の実施形態に係る表２００を示す。表２００は、電子文書（例えば、図１を参照して説明した電子文書１０２）によって指定される表である。図２Ａに示すように、表２００は、最下行Ｄ（２１４）と、最下行Ｄ（２１４）の上に配置される複数の行（すなわち、積重ね行Ａ（２１１）、積重ね行Ｂ（２１２）、積重ね行Ｃ（２１３））を含む。表２００は、一以上の列（すなわち、列１（２１５）、列２（２１６）、列３（２１７）、列４（２１８））も含む。行（２１１、２１２、２１３、２１４）と列（２１５、２１６、２１７、２１８）の交点はセルと呼ばれる。また各セルは、行を示す文字と列を示す数字によって一義的に特定される。例えば、セルＡ１は表２００における左上のセルである。同様に、セルＤ４は表２００における右下のセルである。
【００１７】
図２Ａに示されるように、表２００は１６個のセルを含む。本発明の一以上の実施形態において、各セル、行、列及び／又は表の属性は電子文書において指定される。セル属性には、セルの初期高さ又はデフォルト高さ、初期幅又はデフォルト幅、位置（すなわち、座標）、行スパン（後述）、列スパン（後述）、データアイテムなどが含まれる。同様に、行属性には行の高さ及び位置が含まれ、列属性には列の幅及び位置が含まれる。本詳細な説明の恩恵に浴する当業者であれば、行又は列のいくつかの属性を指定することにより、当該行又は列のセルの属性が余剰となることを理解するであろう。例えば、セルの初期高さ又はデフォルト高さは当該セルを有する行の高さに対応する。したがって、行の高さが指定されればセルの初期高さ又はデフォルト高さは知られるところとなり、別途指定される必要はない。
【００１８】
本発明の一以上の実施形態において、一のセルは、実質的に複数の行及び／又は列に存在する既存セルを覆いながら、当該複数の行及び／又は列に及ぶことが可能である。このような実施形態においては、実質的に一のセルが既存セルと結合し、当該一のセルが及ぶ行数／列数は、その一のセルの結合属性（すなわち、行スパン、列スパン）によって指定される。本発明の一以上の実施形態において、一のセルと、当該一のセルに覆われた既存セルは、「セルブロック」と呼ばれる。前記一のセルは、セルブロックの「開始セル」と呼ばれる。また、セルブロックの最下行にあり、かつ、開始セルと垂直方向に整列している既存セルは、「終了セル」と呼ばれる。本発明の一以上の実施形態において、セルブロック内の既存セルの属性を、開始セルから独立して設定することが可能である。しかし、既存セルのコンテンツは、開始セルのコンテンツによって覆われる場合がある。
【００１９】
図２Ａに示されるように、セルＢ２とセルＣ２はセルブロック１（２０５）を形成する。Ｂ２（２０１）はセルブロック１（２０５）の開始セルである。したがって、セルＢ２の結合属性は、セルＢ２の行スパン（すなわち、「２」）と列スパン（すなわち、「１」）を指定する。また、Ｃ２（２０２）はセルブロック１（２０５）の最下行にあり、かつ、開始セルＢ２（２０１）と垂直方向に整列しているので、セルＣ２（２０２）はセルブロック１（２０５）の終了セルである。
【００２０】
他の例としては、図２Ａに示されるように、セルＣ３（２０３）、セルＣ４（２０８）、セルＤ３（２０４）、セルＤ４（２０９）は、セルブロック２（２０６）を形成する。セルＣ３（２０３）はセルブロック２（２０６）の開始セルである。したがって、セルＣ３（２０３）の結合属性は、セルＣ３（２０３）の行スパン（すなわち、「２」）と列スパン（すなわち、「２」）を指定する。また、Ｄ３（２０４）はセルブロック２（２０６）の最下行にあり、かつ、開始セルＣ３（２０３）と垂直方向に整列しているので、セルＤ３（２０４）はセルブロック２（２０６）の終了セルである。開始セルＢ２（２０１）と開始セルＣ３（２０３）は、それぞれのセルブロック（２０５、２０６）の一番上左端のセルに対応する。
【００２１】
本発明の一以上の実施形態において、表２００内の開始セル（２０１、２０３）を除く全てのセルは中間セルと呼ばれる（例えば、中間セルＤ２（２１０）、中間セルＣ４（２０８）、中間セルＤ４（２０９）など）。このような実施形態において、終了セル（２０２、２０４）は特殊なタイプの中間セルである。
【００２２】
図２Ｂは、本発明の一以上の実施形態に係る表２００を示す。図２Ｂに示されるように、表２００の一以上のセルはデータアイテム（例えば、テキスト、画像など）を含む。例えば、セルＡ１はデータアイテム２９８を、セルＤ１はデータアイテム２９９を、開始セルＢ２はデータアイテム２１１を、開始セルＣ３はデータアイテム２０７を有する。また、図２Ａに示されるように、開始セルＢ２のデータアイテム２１１と、開始セルＣ３のデータアイテム２０７は、それぞれのセルブロック（２０５、２０６）のその他のセルのコンテンツを覆っている。
【００２３】
通常、形状、グラフィックス、画像の寸法は、電子文書によって指定される。しかし、形状、グラフィックス及び画像がこれらを含むセルの全体的なサイズに与える具体的な影響は、当該形状、グラフィックス及び画像のそれぞれのセル内での配置（すなわち、レイアウト）によって異なる。また、レイアウトされるテキストの寸法は、フォントタイプ、フォントサイズ、フォントスタイル、レイアウトエンジンによって用いられるアルゴリズムなどに依存するため、電子文書はレイアウトされるテキストの寸法を完全には指定しない。よって、データアイテム（２０７、２１１、２９８、２９９）の高さ、幅及び／又は配置は、当該データアイテムを含むセルの高さ及び／又は幅に影響する。したがって、場合によっては、配置（すなわち、レイアウト）されたデータアイテムがセル内に収容されるように、また、データアイテムが正確に表示／印刷されるように、セルの高さ及び／又は幅を増加させる（すなわち、高い値を設定する）必要がある。
【００２４】
本発明の一以上の実施形態において、電子文書１０２は、文書マークアップ言語（例えば、ＯＤＦ、ＯＯＸＭＬなど）を用いて表される／定義される。したがって、電子文書１０２の表、行、列及び／又はセルの属性（すなわち、行数、列数、高さ、幅、行スパン、列スパン、データアイテムなど）は、文書マークアップ言語のタグを用いて指定される。これらの特性／属性は、表示又は印刷するために電子文書１０２を正しくレンダリングをするのに必要である。
【００２５】
本発明の一以上の実施形態において、ページレンダリングデバイス１０４はレイアウトエンジン１０６を含む。レイアウトエンジン１０６は、概念的ページ（例えば、用紙、トランスペアレンシー、マイクロフィルム、ページ画像を表示するコンピューターモニター上の領域、電子ブックリーダーなど）上での、表、列、行、セル及びデータアイテムの位置及びサイズを算出するように構成されている。本発明の一以上の実施形態において、レイアウトエンジン１０６は、表のセル内に含まれるデータアイテムの垂直寸法（すなわち、高さ）、水平寸法（すなわち、幅）及び位置（すなわち、座標）を算出するように構成されている。したがってレイアウトエンジン１０６は、セル内のデータアイテムを適切にレンダリングするためにセルの正確なサイズを決定するのに必要である。
【００２６】
本発明の一以上の実施形態において、ページレンダリングデバイス１０４は表モジュール１０５を含む。表モジュール１０５は、電子文書１０２から、電子文書１０２によって指定される表、行、列、セル及び／又はデータアイテムの属性を特定し、（例えば、データ構成に）記録するように構成されている。本発明の一以上の実施形態において、表モジュール１０５は、一以上の属性の新たな値を算出及び／又は（例えば、レイアウトエンジン１０６によって算出された）更新された値を記録する。
【００２７】
図３は、本発明の一以上の実施形態に係る方法のフローチャートを示す。図３に示される処理は、表を有する電子文書のページをレンダリングするために用いられる。また図３に示される処理は、図１を参照して説明したシステム１００を用いて実行される。図３に示される一以上のステップは、本発明の異なる複数の実施形態において、省略、繰り返し及び／又は異なる順番で実行されてもよい。よって、本発明の実施形態は、図３に示されるステップの数や順番に制限されると見なされるべきではない。
【００２８】
まず、表を有する電子文書を取得する（ステップ３０２）。電子文書は、文書マークアップ言語（例えば、ＯＤＦ、ＯＯＸＭＬなど）を用いて表される／定義される。したがって、電子文書の表、行、列及び／又はセルの属性（すなわち、行数、列数、高さ、幅、行スパン、列スパン、データアイテムなど）は、文書マークアップ言語のタグを用いて指定される。
【００２９】
ステップ３０４において、セルの高さの初期値又はデフォルト値を判定する。セルの高さの初期値は、セルの属性として電子文書に記録されている。本発明の一以上の実施形態において、行の各セルの高さの初期値は、その行の高さに対応する。
【００３０】
ステップ３０６において、各セルの行スパンと列スパンを判定する。前述したように、表内の中間セルは、一行一列を占有する。一方、表内の開始セルは、実質的に近傍の行及び／又は列のセルと結合する（すなわち、近傍の行及び／又は列のセルに及ぶ）。本発明の一以上の実施形態において、セルの行スパンと列スパンは、セルの結合属性から特定される。よって、表内の開始セルと中間セルは、これらセルの結合特性を調べることで特定される。また、開始セルが、対応する終了セルの下端まで拡大するように、各開始セルの高さを増加させる必要がある。
【００３１】
ステップ３０８において、セル内のデータアイテムに基づいて、セルの全体垂直寸法と全体水平寸法を算出する。前述したように、データアイテムは、テキスト、画像、グラフィックス又はこれらいずれかの組み合わせに対応する。同じく前述したように、通常、形状、グラフィックス、画像の寸法は、電子文書によって指定される。しかし、形状、グラフィックス及び画像がこれらを含むセルの全体的なサイズに与える具体的な影響は、当該形状、グラフィックス及び画像のそれぞれのセル内での配置（すなわち、レイアウト）によって異なる。また、レイアウトされるテキストの寸法は、フォントタイプ、フォントサイズ、フォントスタイル、レイアウトエンジンによって用いられるアルゴリズムなどに依存するため、電子文書はレイアウトされるテキストの寸法を完全には指定しない。そこで、レイアウトエンジン（例えば、図１を参照して説明したレイアウトエンジン１０６）を用いて、データアイテムを配置（すなわち、レイアウト）し、各セルの全体垂直寸法と全体水平寸法を算出する。
【００３２】
ステップ３１０において、変数Ｋを「表の行数」に設定する。ステップ３１２において、行Ｋを処理する。すなわち、表内の各セルの寸法と位置を算出する。行の処理については、図４を用いて説明する。ステップ３１４において、「Ｋ＝１」であるか否か判定する。「Ｋ＝１」と判定された場合、処理はステップ３１８へ進む。一方、「Ｋ＜＞１」（すなわち、「Ｋ≠１」）と判定された場合、処理はステップ３１６へ進み、Ｋはデクリメントされ、ステップ３１２へ戻る。本詳細な説明の恩恵に浴する当業者であれば、ステップ３１０、３１２、３１４、３１６により、表の最下行が最初に処理され、その後、下から二行目、下から三行目などと、一行目まで処理されることを理解するであろう。
【００３３】
ステップ３１８において、算出されたセルの位置及びサイズに基づいて、表を有するページをレンダリングする。その結果、当該ページは（電子リーダー又はモニター上に）表示又は（用紙、マイクロフィッシュなどに）印刷される。
【００３４】
図４は、本発明の一以上の実施形態に係る方法のフローチャートを示す。図４に示される処理は、表の行を処理するため（すなわち、図３のステップ３１２）に用いられる。よって、図４に示される処理は、一の表に対して複数回実行される。また図４に示される処理は、図１を参照して説明したシステム１００を用いて実行される。図４に示される一以上のステップは、本発明の異なる複数の実施形態において、省略、繰り返し及び／又は異なる順番で実行されてもよい。よって、本発明の実施形態は、図４に示されるステップの数や順番に制限されると見なされるべきではない。
【００３５】
まず、現在行で最も大きい（すなわち、最大の）全体垂直寸法（最大全体垂直寸法）を有する中間セルを特定する（ステップ４０１）。前述したように、中間セルは、セルの結合属性（例えば、行スパン、列スパン）に基づいて、表内の開始セルと区別される。同じく前述したように、セルの全体垂直寸法と全体水平寸法は、レイアウトエンジンを用いてデータアイテム（すなわち、テキスト、グラフィックスなど）をセル内に配置（すなわち、レイアウト）することによって算出される。したがって、最大全体垂直寸法は、現在行の全ての中間セルについて算出された全体垂直寸法を比較し、最大全体垂直寸法を有する中間セルを選択することによって特定される。
【００３６】
前述したように、通常、電子文書において指定される一行の全てのセルの高さの初期値は同じであり、その行の初期高さとして指定される。ステップ４０２において、最大全体垂直寸法が現在行の初期高さを超えるか否か判定する。最大全体垂直寸法が現在行の初期高さを超えると判定された場合、処理はステップ４０３へ進む。一方、最大全体垂直寸法が現在行の初期高さを超えないと判定された場合、処理はステップ４０５へ進む。
【００３７】
ステップ４０３において、現在行の全ての中間セルの高さを、最大全体垂直寸法に設定する。すなわち、現在行の全ての中間セルの高さ属性を、最大全体垂直寸法に設定（すなわち、更新）する。
【００３８】
ステップ４０４において、現在行の初期高さと最大全体垂直寸法の差分を算出する。そして、現在行よりも下の全ての行を、算出された差分だけ下へ移動させる。本発明の一以上の実施形態において、現在行よりも下の全ての行の全てのセルの位置属性を、算出された差分だけ増加させる。本詳細な説明の恩恵に浴する当業者であれば、現在行が表の最下行である場合、ステップ４０４は省略可能であることを理解するであろう。
【００３９】
本発明の一以上の実施形態において、現在行よりも下の行の中間セルがセルブロックの終了セルである場合、対応する開始セルの高さを増加させ、開始セルの下端と終了セルの下端を揃える。
【００４０】
ステップ４０５において、現在行が少なくとも一の開始セルを含むか否か判定する。現在行が少なくとも一の開始セルを含むと判定された場合、処理はステップ４０６へ進む。一方、現在行が開始セルを含まないと判定された場合、処理は終了する。前述したように、セルブロックの開始セルは、当該開始セルの結合属性に基づいて特定される。
【００４１】
ステップ４０６において、現在行の各開始セルについて、開始セルの全体垂直寸法が当該開始セルの現在の高さを超える場合、開始セルの高さをその開始セルの全体垂直寸法に設定する。前述したように、開始セルの全体垂直寸法は、レイアウトエンジンを用いて算出され、開始セル内のデータアイテムに基づく。
【００４２】
ステップ４０７において、現在行の各開始セルについて、開始セルの下端と、セルブロック内の対応する終了セルの下端を揃える。本発明の一以上の実施形態において、この揃えには、終了セルの下端から現在行にある開始セルの下端までの差分の算出が含まれる。算出された差分が０の場合、揃えは不要である。算出された差分が０を超える場合、開始セルの高さを増加させて、開始セルの下端と終了セルの下端を揃える。
【００４３】
算出された差分が０未満の場合、終了セルと同じ行にある全てのセルの高さを、算出された差分の絶対値（すなわち、|算出された差分|）分、増加させる。また、（１）終了セルと同じ行にあり、（２）他のセルブロック（セルブロックＸ）の終了セルである各セルについて、セルブロックＸの開始セルの高さを増加させ、セルブロックＸの開始セルの下端と終了セルの下端を揃える。その後、終了セルを有する行よりも下の全ての行を、算出された差分だけ下に移動させる（すなわち、ステップ４０４と同様）。
【００４４】
本発明の実施形態によると、本発明は、様々な寸法のデータアイテムを含むセルを有する表をレンダリングする能力、セルを有する表をレンダリングする際に、セルの初期高さ又はデフォルト高さ、セルの結合特性、同じ行のその他のセルの高さ、セル内のデータアイテムの垂直寸法、を考慮する能力、などのうち、少なくとも一以上の利点を有する。
【００４５】
本発明の複数の実施形態は、用いられているプラットフォームに係らず、実質的に、あらゆるタイプのコンピューターに実装可能である。例えば、図５に示されるように、コンピューターシステム５００は、一以上のハードウェアプロセッサー５０２（中央処理装置（ＣＰＵ）、集積回路など）と、関連するメモリー５０４（例えば、ランダムアクセスメモリー（ＲＡＭ）、キャッシュメモリー、フラッシュメモリーなど）と、記憶デバイス５０６（例えば、ハードディスク、コンパクトディスクドライブやデジタルビデオディスク（ＤＶＤ）ドライブなどの光学ドライブ、フラッシュメモリースティックなど）と、その他多くの構成要素を含み、今日のコンピューター（図示なし）の有する一般的な機能を備える。コンピューターシステム５００は、キーボード５０８、マウス５１０、マイクロフォン（図示なし）などの入力手段も含んでもよい。また、コンピューターシステム５００は、モニター５１２（例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、ブラウン管（ＣＲＴ）モニターなど）や音声スピーカー（図示なし）などの出力手段も含んでもよい。コンピューターシステム５００は、ネットワークインターフェース接続（図示なし）を介して、ネットワーク５１４（例えば、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、その他のタイプのネットワーク）に接続してもよい。当業者であれば、多くの異なるタイプのコンピューターシステムが存在し、前記の入力手段及び出力手段は他の形態を取ってもよいことを理解するであろう。概括して言えば、コンピューターシステム５００は、少なくとも、本発明の実施形態を実施するために必要な、必要最低限の処理と、入力手段及び／又は出力手段を備える。
【００４６】
また、本発明の一以上の実施形態において、前述したコンピューターシステム５００の一以上の構成要素は遠隔に位置し、ネットワークを介して、その他の構成要素と接続してもよい。また、本発明の複数の実施形態は、複数のノードを有する分散システムに実装されてもよく、本発明の各部（例えば、コンピューターデバイス１０３、レイアウトエンジン１０４など）は、分散システム内の異なるノードに位置してもよい。本発明の一実施形態において、ノードはコンピューターシステムに対応する。あるいは、ノードは関連する物理メモリーを有するプロセッサーに対応する。または、ノードは共有メモリー及び／又は共有資源を有するプロセッサー又はプロセッサーのマイクロコアに対応する。また、本発明の実施形態を実行するための、コンピューター読取可能プログラムコード形式のソフトウェア指示を、非一時的コンピューター読取可能記憶媒体に一時的又は恒久的に記憶させてもよい。非一時的コンピューター読取可能記憶媒体としては、コンパクトディスク（ＣＤ）、ディスケット、テープ、メモリー、その他のコンピューター読取可能記憶デバイスがある。
【００４７】
限られた数の実施形態を用いて本発明を説明したが、本開示の恩恵に浴する当業者であれば、ここに開示された本発明の範囲から逸脱することなく、他の実施形態を考案できることを理解するであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ制限されるべきである。
【図１】
0005612557.tif 000002
【図２Ａ】
0005612557.tif 000003
【図２Ｂ】
0005612557.tif 000004
【図３】
0005612557.tif 000005
【図４】
0005612557.tif 000006
【図５】
0005612557.tif 000007