(57)【特許請求の範囲】
【請求項１】
電子文書を管理する方法であって、
縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得するステップと、
前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成するステップと、
前記拡大したテキストボックスを含む中間ページを生成することによって、前記拡大したテキストボックス内の前記複数の文字の複数の位置を、前記レイアウトエンジンを用い、前記中間文書に基づいて計算するステップと、
前記中間ページの前記拡大したテキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を、前記オーバーフローテキストボックスの縦方向の行揃え設定に基づいて計算するステップと、
前記変換を、前記複数の文字の前記複数の位置に施すことによって前記電子文書のレンダリング済みページを生成するステップと、を含む方法。
【請求項２】
前記電子文書および前記オーバーフローテキストボックスが、拡張可能マークアップ言語を用いて定義されている請求項１の方法。
【請求項３】
前記中間文書を生成するステップが、
前記段落に関連付けられるとともに前記段落の前記横方向の行揃え設定に基づいたスペースコマンドを前記中間文書に挿入するステップを含み、
前記レイアウトエンジンが前記複数の位置を計算するために前記スペースコマンドを用いる請求項１の方法。
【請求項４】
前記拡大したテキストボックスの幅と前記オーバーフローテキストボックスの幅との差を計算するステップと、
前記差の半分を計算するステップと、をさらに含み、
前記スペースコマンドがパラメーターとして前記差の半分を含む請求項３の方法。
【請求項５】
前記変換を計算するステップが、
前記拡大したテキストボックスに関連付けられた前記重要点から前記中間ページの原点への第一の中間変換を計算するステップと、
前記電子文書の原点から前記基準点への第二の中間変換を計算するステップと、
前記第一の中間変換と前記第二の中間変換とを合計するステップと、を含む請求項１の方法。
【請求項６】
前記電子文書が回転係数を含み、前記オーバーフローテキストボックスおよび前記拡大したテキストボックスが前記回転係数によって回転される請求項５の方法。
【請求項７】
前記第一の中間変換を計算するステップが、
前記拡大したテキストボックスの高さを求めるステップと、
前記拡大したテキストボックスの前記高さの半分を計算するステップと、
前記拡大したテキストボックスの前記高さの半分だけ負の方向に移動させるステップと、を含み、
前記行揃え設定が中央揃え設定である請求項５の方法。
【請求項８】
前記第二の中間変換を計算するステップが、
前記オーバーフローテキストボックスの高さを求めるステップと、
前記オーバーフローテキストボックスの縦方向の位置と前記オーバーフローテキストボックスの前記高さとを合計するステップと、を含み、
前記行揃え設定が下揃え設定である請求項５の方法。
【請求項９】
前記第一の中間変換を計算するステップが、
前記拡大したテキストボックスの幅を求めるステップと、
前記拡大したテキストボックスの前記幅の半分を計算するステップと、
前記拡大したテキストボックスの前記幅の半分だけ負の方向に移動させるステップと、を含む請求項５の方法。
【請求項１０】
前記第二の中間変換を計算するステップが、
前記オーバーフローテキストボックスの幅を求めるステップと、
前記オーバーフローテキストボックスの前記幅の半分を計算するステップ、
前記テキストボックスの横方向の位置と前記オーバーフローテキストボックスの前記幅の半分とを合計するステップと、を含む請求項９の方法。
【請求項１１】
電子文書の管理をするための命令を格納する非一時的なコンピューター可読記憶媒体であって、前記命令が、
縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得する機能と、
前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成する機能と、
前記拡大したテキストボックスを含む中間ページを生成することによって、前記拡大したテキストボックス内の前記複数の文字の複数の位置を、前記レイアウトエンジンを用い、前記中間文書に基づいて計算する機能と、
前記中間ページの前記拡大したテキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を、前記オーバーフローテキストボックスの縦方向の行揃え設定に基づいて計算する機能と、
前記変換を、前記複数の文字の前記複数の位置に施すことによって前記電子文書のレンダリング済みページを生成する機能と、を有する記憶媒体。
【請求項１２】
前記中間文書を生成する命令が、
前記段落に関連付けられるとともに前記段落の前記横方向の行揃え設定に基づいたスペースコマンドを前記中間文書に挿入する機能を含み、
前記レイアウトエンジンが前記複数の位置を計算するために前記スペースコマンドを用いる請求項１１の非一時的なコンピューター可読記憶媒体。
【請求項１３】
前記命令が、
前記拡大したテキストボックスの幅と前記オーバーフローテキストボックスの幅との差を計算する機能と、
前記差の半分を計算する機能と、をさらに含み、
前記スペースコマンドがパラメーターとして前記差の半分を含む請求項１２の非一時的なコンピューター可読記憶媒体。
【請求項１４】
前記変換を計算する命令が、
前記拡大したテキストボックスに関連付けられた前記重要点から前記中間ページの原点への第一の中間変換を計算する機能と、
前記電子文書の原点から前記基準点への第二の中間変換を計算する機能と、
前記第一の中間変換と前記第二の中間変換とを合計する機能と、を含む請求項１１の非一時的なコンピューター可読記憶媒体。
【請求項１５】
前記電子文書が回転係数を含み、前記オーバーフローテキストボックスおよび前記拡大したテキストボックスが前記回転係数によって回転される請求項１４の非一時的なコンピューター可読記憶媒体。
【請求項１６】
ハードウェアープロセッサーと、
前記ハードウェアープロセッサーで実行されるとともに、縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得し、前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成するように構成されている変換器モジュールと、
前記ハードウェアープロセッサーで実行されるとともに、前記拡大したテキストボックスを含む中間ページを生成することによって拡大したテキストボックス内の前記複数の文字の複数の位置を計算するように構成されているレイアウトエンジンと、
前記ハードウェアープロセッサーで実行されるとともに、前記オーバーフローした縦方向の行揃え設定に基づいて、前記中間ページの前記拡大した前記テキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を計算するように構成されているマッピングエンジンと、を含む電子文書を管理するシステムであって、
前記レイアウトエンジンが、さらに、前記複数の文字の前記複数の位置に前記変換を施すことによって前記電子文書のレンダリング済みページを生成するように構成されている、電子文書を管理するためのシステム。
【請求項１７】
前記変換器モジュールと、前記レイアウトエンジンと、前記マッピングエンジンとはプリンターに設けられている請求項１６のシステム。
【請求項１８】
前記中間文書を生成するステップが、
前記段落に関連付けられるとともに前記段落の前記横方向の行揃え設定に基づいたスペースコマンドを前記中間文書に挿入するステップを含み、
前記レイアウトエンジンが前記複数の位置を計算するために前記スペースコマンドを用いる請求項１６のシステム。
【請求項１９】
前記中間文書を生成するステップが、
前記拡大したテキストボックスの幅と前記オーバーフローテキストボックスの幅との差を計算するステップと、
前記差の半分を計算するステップと、をさらに含み、
前記スペースコマンドがパラメーターとして前記差の半分を含む請求項１６のシステム。
【請求項２０】
前記変換を計算するステップが、
前記拡大したテキストボックスに関連付けられた前記重要点から前記中間ページの原点への第一の中間変換を計算するステップと、
前記電子文書の原点から前記基準点への第二の中間変換を計算するステップと、
前記第一の中間変換と前記第二の中間変換とを合計するステップと、を含む請求項１６のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の管理に関する。
【背景技術】
【０００２】
電子文書を印刷するという要望はコンピューターディスプレイの近年の進歩により減少しているが、電子文書を読む目的で電子文書のハードコピーを作成する人は依然としている。例えば、コンピューターの画面を凝視するよりもハードコピーを読む方を好む人もいる。また、非公式のプレゼンテーションにおいて、あるいは、プロジェクターのスクリーンやコンピューターのディスプレイで読むのでは都合が悪い他の状況において、電子文書のハードコピーが人々に配布されることがある。
【０００３】
電子文書は、枠内に収まったテキストボックス（すなわち、関連付けられている段落のすべての文字がテキストボックスの枠内に存在するテキストボックス）とオーバーフローテキストボックス（すなわち、関連付けられている段落の少なくとも1文字がテキストボックスの枠外に位置するテキストボックス）の両方を有するページを任意のページ数指定できる。したがって、電子文書は、それぞれのテキストボックスについて位置、寸法、テキスト（すなわち、文字列、段落）、各段落の横方向の行揃え設定、および各テキストボックスの縦方向の行揃え設定を含む。電子文書による指定の通りにテキストボックスおよび段落を配置することが、ページレンダリング装置（Page Rendering Device）の役割である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、ページレンダリング装置内の標準レイアウトエンジンは、枠内に収まったテキストボックスを処理するようにうまく構成されている。しかしながら、オーバーフローテキストボックスは、これらのレイアウトエンジンに重大な問題を起こす。レイアウトエンジンが潜在的な問題を抱えているにも関わらず、ユーザーは、オーバーフローテキストボックスで電子文書を作成し、既存のレイアウトエンジンを用いて当該電子文書を処理したいと望んでいるのである。
【課題を解決するための手段】
【０００５】
概括すると、本発明は、一側面において、電子文書を管理する方法であって、縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得するステップと、前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成するステップと、前記拡大したテキストボックスを含む中間ページを生成することによって、前記拡大したテキストボックス内の前記複数の文字の複数の位置を、前記レイアウトエンジンを用い、前記中間文書に基づいて計算するステップと、前記中間ページの前記拡大したテキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を、前記オーバーフローテキストボックスの縦方向の行揃え設定に基づいて計算するステップと、前記変換を、前記複数の文字の前記複数の位置に施すことによって前記電子文書のレンダリング済みページを生成するステップと、を含む方法に関する。
【０００６】
概括すると、本発明は、一側面において、電子文書の管理をするための命令を格納する非一時的なコンピューター可読記憶媒体であって、前記命令が、縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得する機能と、前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成する機能と、前記拡大したテキストボックスを含む中間ページを生成することによって、前記拡大したテキストボックス内の前記複数の文字の複数の位置を、前記レイアウトエンジンを用い、前記中間文書に基づいて計算する機能と、前記中間ページの前記拡大したテキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を、前記オーバーフローテキストボックスの縦方向の行揃え設定に基づいて計算する機能と、前記変換を、前記複数の文字の前記複数の位置に施すことによって前記電子文書のレンダリング済みページを生成する機能と、を有する記録媒体に関する。
【０００７】
概括すると、本発明は、一側面において、ハードウェアープロセッサーと、
前記ハードウェアープロセッサーで実行されるとともに、縦方向の行揃え設定を有するオーバーフローテキストボックスと、前記オーバーフローテキストボックスにおける、複数の文字を含む段落と、前記段落の横方向の行揃え設定と、を定義する電子文書を取得し、前記横方向の行揃え設定を有する前記段落を包含する拡大したテキストボックスを定義する中間文書を、レイアウトエンジンに入力するために前記電子文書に基づいて生成するように構成されている変換器モジュールと、前記ハードウェアープロセッサーで実行されるとともに、前記拡大したテキストボックスを含む中間ページを生成することによって拡大したテキストボックス内の前記複数の文字の複数の位置を計算するように構成されているレイアウトエンジンと、前記ハードウェアープロセッサーで実行されるとともに、前記オーバーフローした縦方向の行揃え設定に基づいて、前記中間ページの前記拡大した前記テキストボックスに関連付けられた重要点と、前記オーバーフローテキストボックスに関連付けられた基準点と、の間の変換を計算するように構成されているマッピングエンジンと、を含む電子文書を管理するシステムであって、前記レイアウトエンジンが、さらに、前記複数の文字の前記複数の位置に前記変換を施すことによって前記電子文書のレンダリング済みページを生成するように構成されている、電子文書を管理するためのシステムに関する。
【０００８】
本発明の他の側面は、以下の記述および添付の特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るシステムを示す。
【図２】本発明の実施形態に係る複数のテキストボックスを示す。
【図３】本発明の実施形態に係るフローチャートを示す。
【図４】本発明の実施形態に係る複数のテキストボックスを示す。
【図５Ａ】本発明の実施形態に係る例を示す。
【図５Ｂ】本発明の実施形態に係る例を示す。
【図６】本発明の実施形態に係るコンピューターシステムを示す。
【発明を実施するための形態】
【００１０】
本発明の具体的な実施形態を、添付図面を参照して詳細に説明する。種々の図における類似の要素は一貫性を保つために類似の参照数字で表す。
【００１１】
本発明の実施形態の以下の詳細な説明では、本発明がより完全に理解されるように多数の具体的な詳細を記載している。しかしながら、本発明は、これらの具体的な詳細がなくても実施可能であることは当業者にとっては明らかである。また、説明を不必要に複雑にするのを避けるために周知の特徴は詳細には記述していない。
【００１２】
概括すると、本発明の実施形態は、電子文書を管理するシステムおよび方法を提供する。具体的には、電子文書内の１つ以上のオーバーフローテキストボックスが、拡大したテキストボックスに置き換えられる。レイアウトエンジンが拡大したテキストボックスを処理し、拡大したテキストボックス内の各文字の位置(すなわち座標)を計算する。拡大したテキストボックスとオーバーフローテキストボックスとを関連付ける変換に従って文字を再配置することによってレンダリング済みページが生成される。
【００１３】
図１に、本発明の実施形態に係るシステム（１００）を示す。図１に示すように、システム（１００）は、ページレンダリング装置（１２５）および計算装置（１０５）を含む複数の構成要素を有する。ページレンダリング装置（１２５）としては、例えばプリンター、電子書籍リーダー等が挙げられる。計算装置（１０５）としては、パーソナルコンピューター（ＰＣ）、デスクトップコンピューター、メインフレーム、サーバー、電話、キオスク、ケーブルボックス、携帯情報端末（ＰＤＡ）、携帯電話、スマートフォン等が挙げられる。計算装置（１０５）とページレンダリング装置（１２５）との間を直接接続（例えば、ユニバーサルシリアルバス（ＵＳＢ）接続）してもよい。あるいは、計算装置（１０５）とページレンダリング装置（１２５）とを、有線部分および／または無線部分を有するネットワーク（１２０）を使用して接続してもよい。
【００１４】
本発明の実施形態において、ページレンダリング装置（１２５）は計算装置（１０５）に設けられる。このような実施形態では、ページレンダリング装置（１２５）は、電子文書のレンダリング済みページ（１４５）を生成するための計算装置（１０５）のハードウェアーとソフトウェアーの任意の組み合わせに対応することができる。
【００１５】
本発明の実施形態において、計算装置（１０５）はユーザーアプリケーション（１１０）を実行する。ユーザーアプリケーション（１１０）は、ユーザーによって操作されるソフトウェアーアプリケーションであり、任意のページ数の電子文書（例えば、電子文書（１１５））を取得、入力、生成、表示、および／または印刷を行うように構成されている。したがって、ユーザーアプリケーション（１１０）としては、文書処理アプリケーション、スプレッドシートアプリケーション、デスクトップパブリッシングアプリケーション、グラフィックアプリケーション、写真印刷アプリケーション、インターネットブラウザーなどがあり得る。ユーザーアプリケーション（１１０）は新しい電子文書を生成すること、および/または以前に保存した電子文書を取得することができる。本発明の実施形態では、電子文書（１１５）は、1つ以上のオーバーフローテキストボックスを含んでいる（後述）。
【００１６】
図２に、本発明の実施形態に係る複数のテキストボックス（２０５〜２１１）を示す。1ページ以上のページの電子文書（例えば、図１を参照して上述した電子文書（１１５））に、図２に示したテキストボックス（２０５〜２１１）のうち何れが存在してもよい。
【００１７】
本発明の実施形態において、各テキストボックス（２０５〜２１１）は、ただ1つの縦方向の行揃え設定を有し、１つ以上の段落または文字列を含み、各段落または文字列は横方向の行揃え設定を有する。縦方向については、テキストボックスの全てのテキストをテキストボックスに対して上揃え、中央揃えまたは下揃えの設定にできる。横方向については、段落毎に、テキストボックスに対して左揃え、中央揃え、および右揃えの設定にできる。例えば、1つのテキストボックスが、縦方向については上揃えの設定を有し、横方向については、左揃えに設定された第一の段落と右揃えに設定された第二の段落とを有していてもよい。
【００１８】
本発明の実施形態において、枠内に収まったテキストボックス（２０５）の段落はテキストボックスの境界内に収まっている。言い換えると、段落の全ての文字が、枠内に収まったテキストボックス（２０５）の境界内に配置される。各段落については、枠内に収まったテキストボックス（２０５）の完全に内側に存在する限りにおいて任意の行揃え設定ができる。
【００１９】
本発明の実施形態において、オーバーフローテキストボックス（２０６〜２１１）は、テキストボックスの枠外にはみ出したテキストを含む。言い換えると、オーバーフローテキストボックスは、テキストに対して小さすぎるため、段落の1つ以上の文字がオーバーフローテキストボックス（２０６〜２１１）の枠外に位置する。
【００２０】
オーバーフローテキストボックスＡ（２０６）は縦方向について上揃え設定を有する。したがって、段落の最初の行はオーバーフローテキストボックスＡ（２０６）の内側にあり、オーバーフローテキストボックスＡ（２０６）の最上部に揃っている。しかしながら、オーバーフローテキストボックスＡ（２０６）がテキストに対して小さすぎるため、テキストの最後の行の少なくとも一部はテキストボックスＡ（２０６）の外側かつ下側にある。
【００２１】
オーバーフローテキストボックスＢ（２０７）は縦方向について中央揃え設定を有する。したがって、テキストはオーバーフローテキストボックスＢ（２０７）において縦方向の中央揃えにされている。しかしながら、オーバーフローテキストボックスＢ（２０７）がテキストに対して小さすぎるため、テキストの最初の行の少なくとも一部はテキストボックスＢ（２０７）の外側かつ上側にあり、テキストの最後の行の少なくとも一部はテキストボックスＢ（２０７）の外側かつ下側にある。
【００２２】
オーバーフローテキストボックスＣ（２０８）は縦方向について下揃え設定を有する。したがって、テキストの最後の行はオーバーフローテキストボックスＣ（２０８）の内側にあり、オーバーフローテキストボックスＣ（２０８）の最下部に揃っている。しかしながら、オーバーフローテキストボックスＣ（２０８）がテキストに対して小さすぎるため、テキストの最初の行の少なくとも一部はテキストボックスＣ（２０８）の外側かつ上側にある。
【００２３】
オーバーフローテキストボックスＤ（２０９）は左揃え設定の段落を有する。したがって、段落はオーバーフローテキストボックスＤ（２０９）の左側に揃っている。しかしながら、オーバーフローテキストボックスＤ（２０９）が段落に対して小さすぎるため、段落の少なくとも一部はオーバーフローテキストボックスＤ（２０９）の外側かつ右側にある。
【００２４】
オーバーフローテキストボックスＥ（２１０）は中央（横方向について）揃え設定の段落を有する。したがって、段落はオーバーフローテキストボックスＥ（２１０）において横方向の中央揃えにされている。しかしながら、オーバーフローテキストボックスＥ（２１０）が段落に対して小さすぎるため、段落の少なくとも一部はオーバーフローテキストボックスＥ（２１０）の外側かつ左側にあり、段落の少なくとも一部はオーバーフローテキストボックスＥ（２１０）の外側かつ右側にある。
【００２５】
オーバーフローテキストボックスＦ（２１１）は右揃え設定の段落を有する。したがって、段落はオーバーフローテキストボックスＦ（２１１）の右側に揃っている。しかしながら、オーバーフローテキストボックスＦ（２１１）が段落に対して小さすぎるため、段落の少なくとも一部はオーバーフローテキストボックスＦ（２１１）の外側かつ左側にある。
【００２６】
図１に戻って、本発明の実施形態において、電子文書（１１５）は、文書マークアップ言語（例えば、ＯＤＦ、ＯＯＸＭＬなど）を使用して表される（定義される）。したがって、オーバーフローテキストボックスの位置（すなわち座標）および／または寸法（すなわち高さ、幅）、オーバーフローテキストボックスに関連付けられている段落、ならびに段落の行揃え設定を文書マークアップ言語のタグ内に属性として記録してもよい。
【００２７】
図１に示すように、ページレンダリング装置（１２５）はレイアウトエンジン（１４０）を含む。本発明の実施形態において、レイアウトエンジン（１４０）は、読み取り可能な媒体（例えば、紙、透明フイルム、マイクロフイルム、コンピューターモニター、電子書籍リーダーなど）における、電子文書（１１５）の段、テキストボックス、段落、文、単語、文字、小見出し、字幕、画像などの位置/配置を算出するように構成されている。本発明の実施形態において、レイアウトエンジン（１４０）は電子文書（１１５）に記載されたテキストボックスにおける段落の文字の位置（すなわち座標）を計算するように構成されている。そのような実施形態において、レイアウトエンジン（１４０）の出力は中間ページと当該中間ページ内の各文字の位置（すなわち座標）である。中間ページの枠（すなわち境界）はテキストボックスの枠（すなわち境界）に対応する。テキストがテキストボックスからオーバーフローするような場合には、中間ページがテキストボックスの枠よりも大きくなることがある。
【００２８】
本発明の実施形態において、変換器モジュール（１３５）は電子文書（１１５）を、レイアウトエンジン（１４０）による使用に適した中間形態（すなわち、中間文書）に変換するように構成されている。本発明の実施形態において、電子文書（１１５）の変換は、電子文書（１１５）中で定義された任意のオーバーフローテキストボックスに対して拡大したテキストボックスを作成し、中間文書内のオーバーフローテキストボックスをこの拡大したテキストボックスに置き換えることを含む。拡大したテキストボックスは、オーバーフローテキストボックスの全テキストを包含できるだけの大きさを有する。したがって、拡大したテキストボックスは、オーバーフローテキストボックスを高さおよび／または幅の点で上回ってもよい。段落の行揃え設定は、オーバーフローテキストボックスと拡大したテキストボックスとで同じである。
【００２９】
本発明の実施形態において、横方向に拡大した中間文書内のテキストボックスは、変換器モジュール（１３５）によって付加されたスペースコマンドを含む。スペースコマンドは、レイアウトエンジン（１４０）に、段落の行揃え設定に応じて、拡大したテキストボックス内の各段落の前もしくは後に所定量の横方向のスペースを強制的に挿入させる。本発明の実施形態において、レイアウトエンジン（１４０）はＴｅＸエンジンである。そのような実施形態においては、段落の前に横方向のスペースを挿入するスペースコマンドは、「＼ｈｓｋｉｐ」であり、一方、段落の後ろに横方向のスペースを挿入するスペースコマンドは、「＼ｐａｒｆｉｌｌｓｋｉｐ」である。
【００３０】
本発明の実施形態において、マッピングエンジン（１３０）は、レイアウトエンジン（１４０）（上述）により出力される中間ページ（すなわち、拡大したテキストボックス）内の文字の位置と、オーバーフローテキストボックスの文字の対応する位置との間の変換を計算するように構成されている。具体的には、拡大したテキストボックスに関連付けられた重要点と、電子文書でオーバーフローテキストボックスに関連付けられた対応する基準点との関係に基づいて、変換が計算される（後述）。重要点と対応する基準点とは共に、テキストボックスの縦方向の行揃え設定（すなわち、上部、中央部、又は下部）に基づいて選択される。
【００３１】
図３に、本発明の実施形態に係るフローチャートを示す。図３に示したプロセスは、例えば、図１を参照して上述したシステム（１００）（例えば、ページレンダリング装置（１２５））で、電子文書を管理するために使用することができる。図３に示したステップの順序は、本発明の実施形態によって異なってもよく、1つ以上のステップが並行して実行される場合および／または必須ではない場合もある。
【００３２】
ステップ３０５において、電子文書を取得する。具体的には、電子文書は、オーバーフローテキストボックスと、オーバーフローテキストボックスの１つ以上の段落と、オーバーフローテキストボックスにおける各段落の行揃え設定とを定義する。図２に詳述しているように、テキストボックスにおいては、上揃え、（縦軸方向の）中央揃えおよび下揃えを含む様々な設定に従って行揃えができる。また、各段落について、左揃え、（横軸方向の）中央揃えおよび右揃えを含む様々な設定に従って行揃えができる。さらに、オーバーフローテキストボックスの位置（すなわち、座標）と寸法（すなわち、幅、高さ）の両方を電子文書中で定義できる。
【００３３】
ステップ３１０においては、中間文書が生成される。具体的には、オーバーフローテキストボックスを、全テキストを包含する拡大したテキストボックスに置き換えることによって、中間文書が生成される。テキストがオーバーフローテキストボックスを縦方向にオーバーフローする場合は、拡大したテキストボックスが縦方向に拡張される。言い換えれば、テキストがオーバーフローテキストボックスを縦方向のみにオーバーフローする場合、拡大したテキストボックスとオーバーフローテキストボックスとは、幅は同じであるが高さは異なることになる。テキストが横方向にオーバーフローテキストボックスをオーバーフローする（すなわち、ワードラップされていない）場合、拡大したテキストボックスは横方向に拡張されることになる。言い換えれば、テキストがオーバーフローテキストボックスを横方向のみにオーバーフローする場合、拡大したテキストボックスとオーバーフローテキストボックスとは、高さは同じであるが幅が異なることになる。テキストがオーバーフローテキストボックスを横と縦の両方向にオーバーフローする場合、拡大したテキストボックスは縦と横の両方向に拡張されることになる。言い換えると、テキストが横および縦の両方向にオーバーフローテキストボックスをオーバーフローする場合、拡大したテキストボックスとオーバーフローテキストボックスとは、異なる幅と異なる高さを有することとなる。各段落の行揃え設定は、オーバーフローテキストボックスと拡大したテキストボックスとで同じである。
【００３４】
ステップ３１５において、拡大したテキストボックス内の段落の各文字の位置（すなわち座標）はレイアウトエンジン（例えば、レイアウトエンジン（１４０））によって計算される。具体的には、レイアウトエンジンは、拡大したテキストボックスに対応する中間ページを生成し、当該中間ページ（すなわち、拡大したテキストボックス）内の各文字の位置を計算する。テキストボックスが横方向にオーバーフローする場合は、段落の行揃え設定に対応するスペースコマンドを付加する必要がある。
【００３５】
本発明の実施形態において、テキストがオーバーフローテキストボックスを横方向にオーバーフローする場合、中間文書は、拡大したテキストボックス内の各段落の前もしくは後にスペースを挿入する1つ以上のスペースコマンドを含む。挿入されたスペースは、オーバーフローテキストボックス中の段落と拡大したテキストボックス中の対応する段落とがそれぞれのテキストボックスの中心と同じ関係にあることを保つ。これは変換を良好に実施するために必要な場合がある（後述）。
【００３６】
例えば、図４に、本発明の実施形態に係るオーバーフローテキストボックス（４０５）を示す。図４に示すように、オーバーフローテキストボックス（４０５）は、幅ＷＴ、高さＨＴであり、異なる横の行揃え設定（すなわち、左揃え、中央（横方向）揃え、右揃え）を有する三つの段落を有する。図４は、また、オーバーフローテキストボックス（４０５）に対応し、幅ＷＫおよび高さＨＴである拡大したテキストボックスＸ（４１０）を含む。拡大したテキストボックスＸ（４１０）は、オーバーフローテキストボックス（４０５）と同じ段落を有し、拡大したテキストボックスＸ（４１０）内の段落は、オーバーフローテキストボックス（４０５）と同じ行揃え設定を有する。
【００３７】
オーバーフローテキストボックス（４０５）における左揃え設定の段落と、拡大したテキストボックスＸ（４１０）内の左揃え設定の段落とを考えてみる。これらの段落は共に左揃えにされているが、これら２つの段落はそれぞれのテキストボックスの中心と同じ関係ではない。同様に、オーバーフローテキストボックス（４０５）における右揃え設定の段落と、拡大したテキストボックスＸ（４１０）内の右揃え設定の段落とを考えてみる。これらの段落は共に右揃えにされているが、これら２つの段落はそれぞれのテキストボックスの中心と同じ関係ではない。
【００３８】
図４は、また、オーバーフローテキストボックス（４０５）に対応し、幅ＷＫおよび高さＨＴである拡大したテキストボックスＹ（４１５）を含む。拡大したテキストボックスＹ（４１５）は、オーバーフローテキストボックス（４０５）と同じ段落を有する。拡大したテキストボックスＹ（４１５）は、基本的には拡大したテキストボックスＸ（４１０）と同じであるが、左揃え設定の段落の前にスペースが（スペースコマンドを用いて）挿入されおり（すなわち、挿入されたスペースＡ（４２０））、右揃え設定の段落の後にスペースが（スペースコマンドを用いて）挿入されている（すなわち、挿入されたスペースＢ（４２５））。挿入されたスペース（４２０、４２５）は、（ＷＫ−ＷＴ）／２の距離に相当する。
【００３９】
オーバーフローテキストボックス（４０５）における左揃え設定の段落および拡大したテキストボックスＹ（４１５）内の左揃え設定の段落を考えてみる。スペースＡ（４２０）が挿入された結果として、両方の段落はそれぞれのテキストボックスの中心と同じ関係にある。同様に、オーバーフローテキストボックス（４０５）における右揃え設定の段落および拡大したテキストボックスＹ（４１５）内の右揃え設定の段落を考えてみる。スペースＢ（４２５）が挿入された結果として、両方の段落はそれぞれのテキストボックスの中心と同じ関係にある。
【００４０】
横方向の中央揃えにされた段落の前または後にスペースの挿入が全く必要ではないことを、この詳細な記述の利益を享受する当業者は理解するだろう。言い換えると、オーバーフローテキストボックス（４０５）において横方向の中央揃えにされた段落と、拡大したテキストボックス（４１０、４１５）において横方向の中央揃えにされた対応する段落とは、それぞれのテキストボックスの中心と同じ関係にある。拡大したテキストボックス（４１０、４１５）内でテキストが中央揃えのまま維持されるように、拡大したテキストボックス（４１０、４１５）は、中央揃えにされたテキストの位置をオーバーフローテキストボックス（４０５）から変更する。
【００４１】
図３に戻って、ステップ３２０、３２５、および３３０では、中間ページ（すなわち、拡大したテキストボックス）における重要点とオーバーフローテキストボックスにおける対応する基準点との間の変換が計算される。重要点と対応する基準点は、テキストボックスの縦方向の行揃え設定に応じて選択される。具体的には、テキストボックスが上揃え設定を有する場合、重要点は拡大したテキストボックス（すなわち、中間ページ）の上部中央であり、対応する基準点はオーバーフローテキストボックスの上部中央である。テキストボックスが下揃え設定を有する場合、重要点は拡大したテキストボックスの下部中央であり、対応する基準点はオーバーフローテキストボックスの下部中央である。テキストボックスが縦方向の中央揃え設定を有する場合、重要点は拡大したテキストボックスの中央であり、対応する基準点はオーバーフローテキストボックスの中央である。
【００４２】
本発明の実施形態において、拡大したテキストボックスに関連付けられた重要点とオーバーフローテキストボックスに関連付けられた対応する基準点との間の変換は、２つの変換として計算される。ステップ３２０において、第一の変換が計算される。具体的には、第一の変換は、重要点から中間ページの原点までである。例えば、テキストボックスが上揃え設定で、中間ページの原点が左上隅である場合、第一の変換は、ｘ軸上が−０．５＊ＷＫ（ここでＷＫは拡大したテキストボックスの幅である）で、ｙ軸上が０である数式を有する。これは、（−０．５＊ＷＫ，０）のデカルト座標の移動に相当する。
【００４３】
ステップ３２５において、第二の変換が計算される。具体的には、第二の変換は、電子文書の原点からオーバーフローテキストボックスに関連付けられた基準点までである。例えば、テキストボックスが上揃え設定を有する場合、第二の変換は、ｘ軸上が、Ｘ＋０．５＊Ｗｔ（ここで、Ｘは電子文書の中で指定されている、オーバーフローテキストボックスの左上隅のｘデカルト座標であり、Ｗｔは電子文書の中で指定されている、オーバーフローテキストボックスの幅である）、およびｙ軸上がＹ（ここで、Ｙは電子文書の中で指定されている、オーバーフローテキストボックスの左上隅のｙデカルト座標である）である数式を有する。
【００４４】
ステップ３３０において、変換は第一の変換と第二の変換とを合計するベクトルによって計算される。例えば、テキストボックスが上揃え設定を有する場合、変換は、ｘ軸上が−０．５＊Ｗｋ＋Ｘ＋０．５＊Ｗｔ、およびｙ軸上がＹである数式を有する。これは、（−０．５＊Ｗｋ＋Ｘ＋０．５＊Ｗｔ，Ｙ）のデカルト座標の移動に相当する。上述のように、テキストがオーバーフローテキストボックスを縦方向のみにオーバーフローする場合、Ｗｋ＝Ｗｔであり、変換は単純になる。上揃え設定のテキストの例を続けると、デカルト座標の移動は（Ｘ，Ｙ）に帰着する。
【００４５】
ステップ３３５において、電子文書のレンダリング済みページが生成される。レンダリング済みページの生成は、拡大したテキストボックス内の文字の位置に変換を施すことを含む。言い換えれば、レンダリング済みページは、変換の結果である位置の文字を含む。レンダリング済みページは、電子文書中に記載されているオーバーフローテキストボックスを含む。
【００４６】
図５Ａに、本発明の実施形態に係る例を示す。図５Ａに示すように、電子文書（５０２）は、高さＨＴ、幅ＷＴで（Ｘ，Ｙ）に位置するとともに縦方向にオーバーフローしたオーバーフローテキストボックス（５０５）を有する。オーバーフローテキストボックス（５０５）は上揃い設定であり、オーバーフローテキストボックス（５０５）の段落は左揃い設定である。
【００４７】
電子文書（５０２）に対応する中間文書（５１０）において、オーバーフローテキストボックス（５０５）は、高さＨＫ、幅ＷＴを有する拡大したテキストボックス（５１２）に置き換えられる。オーバーフローテキストボックス（５０５）では縦方向のみにテキストがオーバーフローしているので、拡大したテキストボックス（５１２）とオーバーフローテキストボックス（５０５）とは同じ幅ＷＴを有する。拡大したテキストボックス（５１２）はオーバーフローテキストボックス（５０５）よりも丈が高く（すなわち、ＨＫ＞ＨＴ）、全段落を包含する。テキストボックスおよび段落の縦方向の行揃え設定は、拡大したテキストボックス（５１２）とオーバーフローテキストボックス（５０５）とで同じである（すなわち、それぞれ上揃え設定かつ左揃え設定を有する）。
【００４８】
中間ページ（５１８）は、中間文書（５１０）に応じてレイアウトエンジンによって生成される。中間ページ（５１８）は、拡大したテキストボックス（５１２）に対応し、段落の全ての文字に対して計算された位置を含む。オーバーフローテキストボックス（５０５）は上揃え設定なので、拡大したテキストボックス（５１２）に関連付けられた重要点（５１１）は、中間ページ（５１８）の上部中央である。
【００４９】
中間ページ（５１８）の原点は、デカルト座標（０，０）にある。マッピングエンジンは、重要点（５１１）から原点への第一の変換（すなわち、変換Ａ）を計算する。この場合、第一の変換は、−０．５＊ＷＴ、すなわち、負方向（つまり、原点に向かう左方向）への、中間ページ（５１８）の幅の半分の移動である。
【００５０】
また、マッピングエンジンは、原点から、オーバーフローテキストボックス（５０５）に関連付けられた対応する基準点（５９９）までの第二の変換（つまり、変換Ｂ）を計算する。上述のように、テキストボックスが上揃え設定になっているので、対応する基準点（５９９）はオーバーフローテキストボックス（５０５）の上部中央である。この場合、第二の変換はｘ軸上でＸ＋０．５＊ＷＴ、すなわち、オーバーフローテキストボックス（５０５）のＸ座標に、オーバーフローテキストボックス（５０５）の幅の半分を正方向（つまり、原点から離れる右方向）に加えた座標への移動である。また、第二の変換はＹ軸上でＹ、すなわち、オーバーフローテキストボックス（５０５）のＹ座標への移動である。
【００５１】
変換Ａと変換Ｂとのベクトルを合計し、その結果としての変換を中間ページ（５１８）内の各文字の位置（つまり、座標）に施すことによって、レンダリング済みページ（５２５）は、部分的に生成される。言い換えれば、変換により中間ページ（５１８）内の文字を電子文書（５０５）と一致する位置に再配置する。
【００５２】
図５Ｂに、本発明の実施形態に係る例を示す。図５Ｂに示すように、電子文書（５３２）は、高さＨＴ、幅ＷＴで（Ｘ，Ｙ）に位置するとともに横方向にオーバーフローしたオーバーフローテキストボックス（５３４）を有する。オーバーフローテキストボックス（５３４）は、縦方向の中央揃え設定であり、オーバーフローテキストボックス（５３４）における第一の段落である「Where is the fox?」は、右揃えにされている。オーバーフローテキストボックス（５３４）における第二の段落である「Where is the hen?」は、左揃えにされている。
【００５３】
電子文書（５３２）に対応する中間文書（５４０）において、オーバーフローテキストボックス（５３４）は、高さＨＴおよび幅ＷＫを有する拡大したテキストボックス（５４２）に置き換えられる。オーバーフローテキストボックス（５３４）ではテキストが横方向のみにオーバーフローしているので、拡大したテキストボックス（５４２）とオーバーフローテキストボックス（５３４）は共に同じ高さＨＴを有する。拡大したテキストボックス（５４２）の幅はオーバーフローテキストボックス（５３４）よりも広く（すなわち、ＷＫ＞ＷＴ）、第一と第二の段落の両方を包含する。テキストボックスとパラグラフの行揃え設定は、拡大したテキストボックス（５４２）とオーバーフローテキストボックス（５３４）とで同じである（すなわち、テキストボックスは縦方向の中央揃え設定であり、第一段落は横方向の右揃えにされ、第二段落は横方向の左揃えにされている）。また、中間文書（５４０）は、第一パラグラフの後および第二パラグラフの前にそれぞれスペースを挿入するスペースコマンド（５９５）および（５９６）を含む。第一段落の後と第二段落の前に挿入されたスペースの量は、拡大したテキストボックス（５４２）とオーバーフローテキストボックス（５３４）との幅の差の半分と等しい。
【００５４】
中間ページ（５４８）は、スペースコマンド（５９５）および（５９６）を含む中間文書（５４０）に基づいてレイアウトエンジンによって生成される。中間ページ（５４８）は拡大したテキストボックス（５４２）に対応し、第一と第二の段落の全ての文字に対して計算した位置を含む。また、中間ページ（５４８）は、スペースコマンド（５９５）および（５９６）に対応する挿入されたスペース（５９７）を含む。オーバーフローテキストボックス（５３４）は、縦方向の中央揃え設定なので、拡大したテキストボックス（５４２）に関連付けられた重要点（５４１）は、中間ページ（５４８）の中央である。
【００５５】
中間ページ（５４８）の原点はデカルト座標（０，０）である。マッピングエンジンは、重要点（５４１）から原点への第一の変換（すなわち、変換Ａ）を計算する。この場合、第一の変換は、（−０．５＊ＷＫ，−０．５＊ＨＴ）、すなわち、負方向（つまり、原点に向かう左方向）への中間ページ（５４８）の幅の半分の移動、および負方向（つまり、原点に向かう上方向）への中間ページ（５４８）の高さの半分の移動である。
【００５６】
また、マッピングエンジンは、原点から、オーバーフローテキストボックス（５３４）に関連付けられた対応する基準点（５９８）への第二の変換（すなわち、変換Ｂ）を計算する。上述のように、テキストボックスが縦方向の中央揃え設定になっているので、対応する基準点（５９８）は、オーバーフローテキストボックス（５３４）の中央である。この場合、第二の変換はｘ軸上では、Ｘ＋０．５＊ＷＴ、すなわち、オーバーフローテキストボックス（５０５）のＸ座標に、オーバーフローテキストボックス（５３４）の幅の半分を正方向（つまり、原点から離れる右方向）に加えた座標への移動である。Ｙ軸上では、第二の変換はＹ＋０．５＊ＨＴ、すなわち、オーバーフローテキストボックス（５３４）のＹ座標に、オーバーフローしたテキスト（５３４）の高さの半分を正方向に加えた座標への移動である。
【００５７】
変換Ａと変換Ｂとのベクトルを合計し、その結果としての変換を中間ページ（５４８）内の文字の位置（つまり、座標）に施すことによって、レンダリング済みページ（５５５）は、部分的に生成される。言い換えれば、変換により、電子文書（５３２）と一致する位置に中間ページ（５４８）内の文字を再配置する。
【００５８】
スペースコマンド（５９５）および（５９６）は同一テキストボックス中の異なる段落（すなわち、第一および第二段落）に適用されるもので、１つのテキストボックスは、縦方向の行揃え設定を１つしか有していないが異なる横方向の行揃え設定を有する複数の段落を含有することができるということを、当業者は理解するだろう。また、変換は、テキストボックスなどの境界要素に関連付けられた文字、段落およびテキストの任意の位置、行揃え、形状および配置に適用できるということを、当業者は理解するだろう。例えば、テキストが縦軸に対して４５度の角度（回転係数）で回転されたために、当該テキストが、縦軸に対して４５度の角度で回転されたオーバーフローテキストボックスの内部に存在するとともにオーバーフローしている場合に、当該テキストは、同じ手順に従って変換できる。このようなテキストはいかなる回転状態あるいはその他の設定状態からも変換を開始でき、この変換によって、開始電子文書と全く同一の設定のレンダリング済みページが得られるということを、当業者は理解するだろう。その他の多くのこのような方法が、文字、段落および／またはテキストの位置合わせのために用いられる。
【００５９】
本発明の実施形態は、以下の利点を有する。すなわち、枠内に収まったテキストボックスを処理するように設計されたレイアウトエンジンを用いて、オーバーフローテキストボックスを有するページをレンダリングすることができる。例えば、1つのテキストボックスにおける複数の横方向の行揃え設定を、レイアウトエンジンの横方向のスペースコマンドを用いて処理することができる。また、例えば、テキストの縦方向の行揃え設定に基づいて重要点および対応する基準点を選択することができる。
【００６０】
本発明の実施形態は使用されるプラットフォームに拘わらず、実質的にいかなるタイプのコンピューターでも実行することができる。例えば、図６に示したように、コンピューターシステム（６００）は、1つ以上のプロセッサー（６０２）、関連付けられたメモリー（６０４）（例えば、ランダムアクセスメモリー（ＲＡＭ）、キャッシュメモリー、フラッシュメモリーなど）、記憶装置（６０６）（例えば、ハードディスク、コンパクトディスクドライブやデジタルビデオディスク（ＤＶＤ）ドライブなどの光学ドライブ、フラッシュメモリースティックなど）、および近年のコンピューターに典型的な多数のその他の要素および機能（不図示）を含んでいる。本発明の実施形態では、プロセッサー（６０２）はハードウェアーである。例えば、プロセッサーは、集積回路、中央処理装置（ＣＰＵ）あるいはその他のハードウェアープロセッサーでもよい。また、コンピューターシステム（６００）は、キーボード（６０８）などの入力手段、マウス（６１０）、またはマイク（不図示）を含んでもよい。さらに、コンピューターシステム（６００）は、モニター（６１２）（例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイあるいは陰極線管（ＣＲＴ）モニター)などの出力手段を含んでもよい。コンピューターシステム（６００）はネットワークインターフェイス接続（不図示）を介してネットワーク（６１４）(例えばローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）あるいは他の任意のタイプのネットワーク)に接続してもよい(不図示)。本発明の実施形態では、様々なタイプのコンピューターシステムが存在し、前述の入力および出力の手段は他の形態をとってもよい。一般的に言えば、コンピューターシステム（６００）は、少なくとも本発明の実施形態を実行するために必要な最小限の処理、入力および／または出力の手段を含む。
【００６１】
さらに、本発明の実施形態において、前述のコンピューターシステム（６００）の１つ以上の要素が遠隔地に位置して、ネットワークを介してその他の要素と接続されてもよい。さらに、本発明の実施形態は、複数のノードを有する分散システムで実行され、本発明の各部分（例えば、マッピングエンジン（１３０）、変換器モジュール（１３５）、レイアウトエンジン（１４０））が、分散システム内の異なるノードに位置してもよい。本発明の一実施形態において、ノードはコンピューターシステムに相当する。あるいは、ノードは、関連付けられた物理メモリーを搭載したプロセッサーに相当してもよい。あるいは、ノードは、共有メモリーおよび／またはリソースを備えたプロセッサーまたはプロセッサーのマイクロコアに相当してもよい。本発明の実施形態を実行するための、コンピューター読み取り可能なプログラムコードの形態のソフトウェアー命令は、コンパクトディスク（ＣＤ）、ディスケット、テープ、メモリー、あるいはその他のコンピューター読み取り可能な記憶装置などの非一時的なコンピューター読取り可能な記憶媒体に、一時的にあるいは永久に格納することができる。
【００６２】
本発明は限られた数の実施形態に関して記述されているが、ここに開示されている本発明の範囲から逸脱しない他の実施形態も考えられることは、この開示の利益を享受する当業者なら理解するだろう。したがって、本発明の範囲は添付の特許請求の範囲によってのみ制限されるべきである。
【図１】
0005524932.tif 000002
【図２】
0005524932.tif 000003
【図３】
0005524932.tif 000004
【図４】
0005524932.tif 000005
【図５Ａ】
0005524932.tif 000006
【図５Ｂ】
0005524932.tif 000007
【図６】
0005524932.tif 000008