説明

リンクされたテキストボックスを有する電子文書のレンダリング

【課題】既存のレイアウトエンジンで、同一ページ、或いは異なるページ上のリンクされたテキストボックスのレイアウト処理を可能とする。
【解決手段】EDにおける複数のリンクされたテキストボックスに対応する複数のコンテナを備えるEDの中間形式を取得するステップと、複数のリンクされたテキストボックスにわたって分布するストリングに関連付けられたルートノード及び複数のコンテナを示す複数のポインターを備える複数のセグメントノードを備えるデータ構造を取得するステップと、複数のセグメントノードのトラバーサルを実行するステップと、トラバーサルの間に、複数のポインターによって指定される複数のコンテナにレイアウトエンジンを適用することにより、ストリングが分布された複数の中間ページを生成するステップと、コンテナを、対応する中間ページに置き換えることにより、EDのレンダリングされたページを生成するステップとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はリンクされたテキストボックスを有する電子文書のレンダリングに関する。
【背景技術】
【0002】
電子文書(ED)において、テキストボックスのセットにわたってストリングが分布されうる。つまり、ストリングは複数のセグメントに分割され、各セグメントはセットにおける異なるテキストボックスにおいて配置されうる。テキストボックスはストリングによって有効にリンクされるので、セットにおける各テキストボックスはリンクされたテキストボックスと称されうる。これに対して、ストリングのすべての内容を含むテキストボックスであり、よって他のどのテキストボックスにもリンクされていないテキストボックスは分離されたテキストボックスと称されうる。
【0003】
EDは複数のセットのリンクされたテキストボックスを有しうる。EDはセットにおける各リンクされたテキストボックスの寸法(例えば、高さ、幅)及びリンクされたテキストボックスにストリングが埋められる順序の両方が含まれる。レンダリング装置(RD)の機能としてEDのページ上にリンクされたテキストボックスのセットを配置し、リンクされたテキストボックスのセットにわたって文字ストリングを分布する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、RDにおけるレイアウトエンジンは分離されたテキストボックスの処理に適するように構成される。しかし、同一ページ上又は異なるページ上のリンクされたテキストボックスによってこれらのレイアウトエンジンには容易ではない問題が発生する。レイアウトエンジンに関する潜在的な問題に関わらず、ユーザーはリンクされたテキストボックスを含むEDを作成し、これらのEDの処理を既存のレイアウトエンジンで実行することを望む。
【課題を解決するための手段】
【0005】
一般に、ある側面によれば、本発明は電子文書(ED)をレンダリングする方法に関する。当該方法は、レイアウトエンジンへ入力する、前記EDにおける第一の複数のリンクされたテキストボックスに対応する第一の複数のコンテナを備える前記EDの中間形式を取得するステップと、前記第一の複数のリンクされたテキストボックスにわたって分布する第一ストリングに関連付けられた第一ルートノード及び前記第一の複数のコンテナを示す第一の複数のポインターを備える第一の複数のセグメントノードを備えるデータ構造を取得するステップと、前記データ構造を取得するステップの後に、前記中間形式における前記第一の複数のコンテナの第一コンテナを識別するステップと、前記第一コンテナを識別するステップに応じてかつ前記データ構造において、前記ストリングを有する前記第一ルートノードの位置を発見するステップと、前記第一ルートの位置を発見するステップに応じて、前記第一ルートノードにリンクされた前記第一の複数のセグメントノードのトラバーサルを実行するステップと、前記第一の複数のセグメントノードのトラバーサルの間に、前記第一の複数のポインターによって指定される前記第一の複数のコンテナにレイアウトエンジンを適用することによって前記第一ストリングが分布された第一の複数の中間ページを生成するステップと、前記第一の複数のコンテナの前記第一コンテナを、前記第一コンテナと対応する前記第一の複数の中間ページの中間ページに置き換えるステップを備える、前記第一の複数のセグメントノードのトラバーサルを実行するステップの後に、前記EDのレンダリングされたページを生成するステップと、を備える。
【0006】
一般に、ある側面によれば、本発明は電子文書(ED)をレンダリングする指示を含む非一時的でコンピューターに読取可能な記憶媒体に関する。当該指示は、レイアウトエンジンへ入力する、前記EDにおける第一の複数のリンクされたテキストボックスに対応する第一の複数のコンテナを備える前記EDの中間形式を取得する指示と、前記第一の複数のリンクされたテキストボックスにわたって分布する第一ストリングに関連付けられた第一ルートノード及び前記第一の複数のコンテナを示す第一の複数のポインターを備える第一の複数のセグメントノードを備えるデータ構造を取得する指示と、前記データ構造を取得する指示の後に、前記中間形式における前記第一の複数のコンテナの第一コンテナを識別する指示と、前記第一コンテナを識別する指示に応じてかつ前記データ構造において、前記ストリングを有する前記第一ルートノードの位置を発見する指示と、前記第一ルートの位置を発見する指示に応じて、前記第一ルートノードにリンクされた前記第一の複数のセグメントノードのトラバーサルを実行する指示と、前記第一の複数のセグメントノードのトラバーサルの間に、前記第一の複数のポインターによって指定される前記第一の複数のコンテナにレイアウトエンジンを適用することによって前記第一ストリングが分布された第一の複数の中間ページを生成する指示と、前記第一の複数のコンテナの前記第一コンテナを、前記第一コンテナと対応する前記第一の複数の中間ページの中間ページに置き換える指示を備える、前記第一の複数のセグメントノードのトラバーサルを実行する指示の後に、前記EDのレンダリングされたページを生成する指示と、を備える。
【0007】
一般に、ある側面によれば、本発明は電子文書をレンダリングするシステムに関する。当該システムは、ハードウェアプロセッサーと、前記ハードウェアプロセッサー上で実行され、前記EDにおける複数のリンクされたテキストボックスに対応する複数のコンテナを備える前記EDの中間形式を生成するように構成された、中間形式ジェネレーターと、前記複数のリンクされたテキストボックスにわたって分布するストリングに関連付けられたルートノード及び前記複数のコンテナを示す複数のポインターを備える複数のセグメントノードを生成するように構成された、データ構造ジェネレーターと、前記ハードウェアプロセッサー上で実行され、前記複数のセグメントノードのトラバーサルの間に、前記複数のポインターによって指定される前記複数のコンテナに基づいて、前記ストリングが分布された複数の中間ページを生成するように構成された、レイアウトエンジンと、を備え、前記レイアウトエンジンはさらに前記中間形式における前記複数のコンテナのコンテナを、前記コンテナと対応する前記複数の中間ページの中間ページに置き換えることによって、前記EDのレンダリングされたページを生成するように構成される。
【0008】
本発明のその他の特徴は以下の明細書の記載及び添付されるクレームにおいて明らかにされる。
【図面の簡単な説明】
【0009】
【図1】図1は本発明の一以上の実施形態におけるシステムを図示する。
【図2】図2は本発明の一以上の実施形態におけるEDを図示する。
【図3】図3は本発明の一以上の実施形態におけるEDの中間形式におけるコンテナを図示する。
【図4】図4は本発明の一以上の実施形態におけるデータ構造を図示する。
【図5】図5は本発明の一以上の実施形態におけるフローチャートを図示する。
【図6】図6は本発明の一以上の実施形態におけるコンピューターシステムを図示する。
【発明を実施するための形態】
【0010】
以下に、添付の図面を参照して、本発明の具体的な実施形態について、詳細に説明する。整合性を図るため、各図面における類似の要素には同様の参照符号が付加される。
【0011】
以下の本発明の実施形態の詳細な説明においては、本発明のより深い理解を提供するためにいくつかの具体的詳細について説明がされる。しかし、これらの具体的詳細によらなくても本発明を実施しうることは当業者にとっては明らかであろう。その他の場面においては、不必要に複雑な説明を回避するため、周知の要素については詳細な説明が省略されている。
【0012】
一般に、本発明の実施形態によれば、少なくとも一つのセットのリンクされたテキストボックスを含むEDをレンダリングするシステム及び方法が提供される。具体的にはEDの中間形式及びEDのデータ構造はEDを解析することによって生成される。中間形式はリンクされたテキストボックスに対応するコンテナを含む。データ構造はリンクされたテキストボックスのセットのルートノード及びセットにおいてそれぞれのリンクされたテキストボックスのセグメントノードを含む。セグメントノードは中間形式における対応するコンテナを示すポインターを含む。リンクされたテキストボックスに対応するコンテナに遭遇するとセットにおける全てのリンクされたテキストボックスの中間ページが生成される。中間ページはレンダリングされたページにおいてコンテナと置き換えられる。
【0013】
図1は本発明の一以上の実施形態におけるシステム(100)を図示する。図1に示すように、システム(100)はレンダリング装置(RD)(125)及びクライアントコンピューター(105)を含む複数の構成要素を有する。RD(125)として例えば、プリンター、電子リーダー等を用いうる。クラインアントコンピューター(105)として、パーソナルコンピューター(PC)、デスクトップコンピューター、メインフレーム、サーバー、電話、キオスク、ケーブルボックス、携帯情報端末(PDA)、携帯電話、スマートフォン等を用いうる。クライアントコンピューター(105)とRD(125)との間を直接接続しうる(例えば、ユニバーサルシリアルバス(USB)接続)。代わりに、クライアントコンピューター(105)とRD(125)とは有線及び/又は無線セグメントを含むネットワーク(120)を用いて接続しうる。
【0014】
本発明の一以上の実施形態において、RD(125)はクライアントコンピューター(105)に配置される。このような実施形態においては、RD(125)はEDを生成、表示及び/又は印刷するクライアントコンピューター(105)上のハードウェア及びソフトウェアのあらゆる組合せに対応する。
【0015】
本発明の一以上の実施形態において、クライアントコンピューター(105)はユーザーアプリケーション(110)を実行する。ユーザーアプリケーション(110)はユーザーによって操作されるソフトウェアアプリケーションであり、ED(115)の取得、入力、生成、表示及び/又は印刷を実行する構成を有する。よって、ユーザーアプリケーション(110)はワードプロセッサーアプリケーション、スプレッドシートアプリケーション、デスクトップパブリッシングアプリケーション、グラフィックスアプリケーション、写真印刷アプリケーション、インターネットブラウザ、等でありうる。ユーザーアプリケーション(110)によって新たなEDを生成し及び/又は予め保存されたEDを取得しうる。
【0016】
図2は本発明の一以上の実施形態におけるED(205)を図示する。ED(205)は図1を参照して上述したED(115)に対応しうる。図2に図示するように、ED(205)は二つのセットのリンクされたテキストボックスを有する。具体的には、テキストボックスA(211)、テキストボックスB(212)、テキストボックスC(213)は一つのセットのリンクされたテキストボックスを形成する。同様に、テキストボックスX(221)、テキストボックスY(222)、及びテキストボックスZ(223)は別のセットのリンクされたテキストボックスを形成する。テキストボックスA(211)及びテキストボックスX(221)はED(205)のページ1(206)上に位置する。テキストボックスY(222)及びテキストボックスB(212)はED(205)のページ2(207)上に位置する。さらにテキストボックスC(213)及びテキストボックスZ(223)はED(205)のページN(208)上に位置する。
【0017】
引き続き図2を参照して、「猫が帽子の中にいる」というストリングがテキストボックスA(211)、テキストボックスB(212)及びテキストボックスC(213)を含むリンクされたテキストボックスのセットにわたって分布される。言い換えると、「猫が帽子の中にいる」というストリングは三つの重ならないセグメントに分割され、各セグメントはテキストボックスA(211)、テキストボックスB(212)又はテキストボックスC(213)のいずれか一つに配置される。図2に示すように、テキストボックスA(211)にはストリングの最初のセグメント(つまり第1セグメント)が含まれ、テキストボックスB(212)にはストリングの中間のセグメント(つまり第2セグメント)が含まれ、テキストボックスC(213)にはストリングの最終のセグメント(つまり第3セグメント)が含まれる。セグメント番号はリンクされたテキストボックスのセットに有効に順序を割り当てる。
【0018】
同様に、「バラは赤く、スミレは青い」というストリングがテキストボックスX(221)、テキストボックスY(222)及びテキストボックスZ(223)を含むリンクされたテキストボックスのセットにわたって分布される。言い換えると、「バラは赤く、スミレは青い」というストリングが三つの重ならないセグメントに分割され、各セグメントはテキストボックスX(221)、テキストボックスY(222)又はテキストボックスZ(223)のいずれか一つに配置される。図2に示すように、テキストボックスY(222)にはストリングの最初のセグメント(つまり第1セグメント)が含まれ、テキストボックスX(221)にはストリングの中間のセグメント(つまり第2セグメント)が含まれ、テキストボックスZ(223)にはストリングの最終のセグメント(つまり第3セグメント)が含まれる。セグメント番号はリンクされたテキストボックスのセットに有効に順序を割り当てる。
【0019】
図2に示すように、「猫が帽子の中にいる」というストリングはテキストボックスA(211)から始まる。また図2に示すように、「バラは赤く、スミレは青い」というストリングはテキストボックスY(222)から始まる。よって、テキストボックスA(211)及びテキストボックスY(222)はリンクされたテキストボックスのそれぞれのセットにおける開始テキストボックスと称しうる。言い換えると、テキストボックスA(211)及びテキストボックスY(222)はそれぞれのストリングの第1セグメントを含む。
【0020】
テキストボックスA(211)、テキストボックスB(212)、及びテキストボックスC(213)がED(205)に登場する順序は「猫が帽子の中にいる」というストリングのテキストフローの順序と合致する。しかし、テキストボックスX(221)、テキストボックスY(222)、及びテキストボックスZ(223)がED(205)に登場する順序は「バラは赤く、スミレは青い」というストリングのテキストフローの順序と合致しない。言い換えると、テキストボックスY(222)、テキストボックスX(221)、及びテキストボックスZ(223)を含むリンクされたテキストボックスのセットの開始テキストボックスがテキストボックスY(222)であるにも関わらず、読み手はテキストボックスY(222)に遭遇する前にテキストボックスX(221)に遭遇する。
【0021】
図1に戻って、本発明の一以上の実施形態において、ED(115)は文書マークアップ言語(例えばODF、OOXML、等)を用いて表現/定義される。よって、リンクされたテキストボックスのセットにわたって分布されるストリング、セグメント番号(つまり、セットにおけるリンクされたテキストボックスに割り当てられた順序)、リンクされたテキストボックスの寸法(つまり、高さ、幅)等は文書マークアップ言語のタグにおける属性として記録されうる。
【0022】
本発明の一以上の実施形態において、RD(125)は中間形式ジェネレーター(135)を有する。中間形式ジェネレーター(135)はED(115)を解析し、ED(115)の中間形式を生成するように構成される。中間形式はED(115)のリンクされたテキストボックスを表すコンテナを有する。各コンテナは対応するテキストボックスの属性を含む(例えば、寸法、セグメント番号等)。本発明の一以上の実施形態においては、中間形式における各コンテナは属性としてセット識別子(ID)を有する。具体的には、同じセットのリンクされたテキストボックスに対応するすべてのコンテナには同じセットIDが割り当てられる。本発明の一以上の実施形態においては、開始テキストボックスに対応するコンテナにはリンクされたテキストボックスのセットのストリングが含まれる。
【0023】
図3は本発明の一以上の実施形態における中間形式(305)のコンテナ(311)を図示する。コンテナ(311)はEDにおけるリンクされたテキストボックスを表す。図3に示されるように、コンテナ(311)は複数の属性を有し、リンクされたテキストボックスの寸法を保持する寸法属性(312)、リンクされたテキストボックスが属するセットを識別するセットID属性(313)、リンクされたテキストボックスのセットにおけるリンクされたテキストボックスの位置を識別するセグメント番号属性(314)及び任意に、リンクされたテキストボックスのセットにわたって分布するストリングを保持するストリング属性(316)を含む。
【0024】
図1に戻って、本発明の一以上の実施形態において、RD(125)はデータ構造ジェネレーター(140)を有する。データ構造ジェネレーター(140)はED(115)におけるリンクされたテキストボックスのセット及び/又は(上述の)中間形式におけるコンテナを追跡してアクセスするためのデータ構造を生成して追加するように構成される。具体的には、データ構造はED(115)におけるリンクされたテキストボックスの各セットのルートノードを含む。各ルートノードはリンクされたテキストボックスのセットに対応するセットID及びリンクされたテキストボックスのセットにわたって分布されるストリングを保持する。または、本発明の一以上の実施形態において、一以上のルートノードはストリングの代わりにそれぞれのストリングを示すポインターを保持する。さらに、本発明の一以上の実施形態においては、ルートノードのみがストリング又はストリングを示すポインターを保持する(つまり、(上述の)コンテナはストリングを保持しない)。
【0025】
ルートノードからはセットにおけるリンクされたテキストボックスを示すセグメントノードのセットにアクセス可能である。各セグメントノードはコンテナによって示されるリンクされたテキストボックスのセグメント番号を含む中間形式におけるコンテナを指定するポインターを保持する。リンクされたテキストボックスのセットのセグメントノードはテキストフローの順序を含むあらゆる順序に並べ替えられうる。また、データ構造には一以上の配列、リンクされたリスト、ツリー等を用いて実施しうる。
【0026】
図4は本発明の一以上の実施形態における、データ構造(400)を示す。図4に示すように、データ構造(400)は複数のセグメントノード(つまり、セグメントノードA(404)、セグメントノードA(406)、セグメントノードB(454)、セグメントノードB(456))にリンクされた、複数のルートノード(つまり、ルートノードA(401)、ルートノードB(451))を含む。セグメントノードA(404)とセグメントノードA(406)との両方がルートノードA(401)からアクセス可能である(つまりトラバーサルしうる)。同様に、セグメントノードB(454)とセグメントノードB(456)との両方がルートノードB(451)からアクセス可能である(つまりトラバーサルしうる)。
【0027】
本発明の一以上の実施形態において、ルートノードA(401)およびルートノードB(451)は同じED内における、リンクされたテキストボックスの異なるセットに対応する。よって、ルートノードA(401)はリンクされたテキストボックスの二つのセットのうちの一方を識別するセットIDA(402)を保持し、対してルートノードB(451)はリンクされたテキストボックスの他方のセットを識別するIDB(452)を保持する。図4に示すように、ルートノードA(401)とルートノードB(451)との両方がそれぞれのリンクされたテキストボックスのセットにわたって分布されるストリング(またはストリングを示すポインター)(つまり、ストリングA(403)、ストリングB(453))を保持する。
【0028】
本発明の一以上の実施形態において、セグメントノード(404、406、454、456)は中間形式におけるそれぞれのコンテナを指定するポインターを含む。具体的には、セグメントノードA(404)はコンテナを示すポインターA(405)を有し、セグメントノードA(406)はコンテナを示すポインターA(407)を有し、セグメントノードB(454)はコンテナを示すポインターB(455)を有し、セグメントノードB(456)はコンテナを示すポインターB(457)を有する。
【0029】
本発明の一以上の実施形態において、各ルートノード(401、451)はステータスフィールドを有する(つまり、ステータスA(409)、ステータスB(459))。ステータスフィールド(409、459)は、ルートノードに付加されるすべてのセグメントノードについて中間ページが生成されると、「完了」または「完了済」と設定される(後述)。例えば、ステータスA(409)はセグメントノードA(404)及びセグメントノードA(406)の中間ページが生成されると、「完了」または「完了済」と設定される。同様に、ステータスB(459)はセグメントノードB(454)及びセグメントノードB(456)の中間ページが生成されると、「完了」または「完了済」と設定される。ステータスフィールド(409、459)が「完了」または「完了済」と設定されていない場合、ステータスフィールド(409、459)は空白、「ヌル」、「未完了」、等と設定される。
【0030】
図1に戻って、本発明の一以上の実施形態において、RD(125)はレイアウトエンジン(145)を有する。レイアウトエンジン(145)は中間形式を消費してED(115)の欄、テキストボックス、段落、ストリング、単語、文字、サブヘッド、サブタイトル、画像等の読取可能媒体(例えば、紙、透明フィルム、マイクロフィルム、コンピューターモニター、電子リーダー等)上の位置/配置を計算するように構成される。言い換えると、レイアウトエンジン(145)は、ED(115)のレンダリングされたページ(例えばレンダリングされたページ(155))を生成し、出力するように構成される。
【0031】
本発明の一以上の実施形態において、レイアウトエンジン(145)は、リンクされたテキストボックスのストリングセグメントの文字の位置(つまり、座標)を計算するように構成される。このような実施形態においては、レイアウトエンジン(145)への入力はリンクされたテキストボックスを示す(上述の)コンテナを含み、対してレイアウトエンジン(145)への出力は中間ページ及び中間ページにおけるストリングセグメントの文字の位置(座標)を含む。中間ページの寸法(つまり、境界)はリンクされたテキストボックスの寸法(つまり、境界)に対応する。本発明の一以上の実施形態において、レイアウトエンジン(145)は中間形式のコンテナをその対応する中間ページに置き換えることによってED(115)のページをレンダリングするように構成される。
【0032】
図5は本発明の一以上の実施形態におけるフローチャートを示す。図5に示す処理は、例えばシステム(100)(例えば、RD(125))の構成要素によって実行され、リンクされたテキストボックスを有するEDがレンダリングされる。図5に示すステップの順序は本発明の実施形態によっては異なることがあり、一以上のステップは並行して実行され及び/又は任意でありうる。
【0033】
ステップ505において、少なくとも一セットのリンクされたテキストボックスを有するEDを取得する。EDは文書マークアップ言語(例えば、ODF、OOXML、等)を用いて表現/定義されうる。よって、リンクされたテキストボックスのセットにわたって分布されるストリング、セグメント番号(つまり、セットのリンクされたテキストボックスに割り当てられた順序)、リンクされたテキストボックスの寸法(つまり、高さ、幅)等は文書マークアップ言語のタグにおいて属性として記録されうる。開始テキストボックス(つまり、ストリングの最初のセグメントを有するリンクされたテキストボックス)はEDの読み手によって遭遇される最初のリンクされたテキストボックスである場合があるし、そうではない場合もある。
【0034】
ステップ510において、EDの中間形式(IF)を生成する。具体的には、IFはリンクされたテキストボックスに対応するコンテナを含む。コンテナはその対応するリンクされたテキストボックスの属性を含む(例えば、寸法、セグメント番号、等)。また、開始テキストボックスに対応するコンテナはリンクされたテキストボックスのセットにわたって分布されるストリングを含みうる。さらに、リンクされたテキストボックスの同じセットにおけるリンクされたテキストボックスに対応するすべてのコンテナは同じセットIDを有しうる。本発明の一以上の実施形態においては、IFはレイアウトエンジンによる消費に適し(例えば、図1を参照して上述したレイアウトエンジン(145))、EDを解析することによって生成される。本発明の一以上の実施形態において、IFはRD(125)における中間形式ジェネレーター(135)によって生成される。
【0035】
ステップ515において、データ構造が生成される。データ構造はEDにおけるリンクされたテキストボックスのセット及び/又はIFにおけるコンテナを追跡及びアクセスするためのノードを含む。具体的には、データ構造はEDにおけるリンクされたテキストボックスの各セットについてルートノードを含む。各ルートノードはリンクされたテキストボックスの対応するセットのセットID及びリンクされたテキストボックスのセットにわたって分布されるストリング(又はストリングを示すポインター)を保持する。ルートノードからはセットにおけるリンクされたテキストボックスを示すセグメントノードのセットにアクセス可能である。各セグメントノードはコンテナによって示されるリンクされたテキストボックスのセグメント番号を含む中間形式におけるコンテナを指定するポインターを保持する。リンクされたテキストボックスのセットのセグメントノードはテキストフローの順序を含むあらゆる順序に並べ替えられうる。
【0036】
本発明の一以上の実施形態において、データ構造はEDの解析及び中間形式の形成の間に生成/追加される(ステップ510)。具体的には、いったんリンクされたテキストボックスのセットにおけるリンクされたテキストボックスを示すコンテナが識別されると、コンテナ/テキストボックスのセグメントノードが生成され、適切なルートノードにリンクされたセグメントノードのチェーンに追加される。新たに生成されたセグメントノードはコンテナを指定するポインターを保持する。
【0037】
ステップ520において、データ構造のセグメントノードはストリングのテキストフローに基づいて並べ替えられる。本発明の一以上の実施形態において、ステップ520はEDが完全に解析された後に実行される。上述のように、セグメントノードはその対応するリンクされたテキストボックスがEDに登場する順序でデータ構造に追加しうる(つまり、適切なルートノードにリンク/チェーンされる)。よって、データ構造におけるセグメントノードの当初の順序はストリングのテキストフローに対応する場合と対応しない場合がある。本発明の一以上の実施形態において、RD(125)におけるデータ構造ジェネレーター(140)によってデータ構造は生成され、セグメントノードは並べ替えられうる。
【0038】
ステップ525において、IFにおけるコンテナが識別される。レイアウトエンジン(例えば、RD(125)におけるレイアウトエンジン(145))によるIFの消費の間にコンテナを識別しうる。上述のように、コンテナはEDにおけるリンクされたテキストボックスを示し、リンクされたテキストボックスの属性を含む。また、上述のように、コンテナはリンクされたテキストボックスを有する、リンクされたテキストボックスの対応するセットを識別するセットIDを含む。
【0039】
ステップ530において、識別されたコンテナに対応するルートノード(つまり、ステップ525)がデータ構造において識別される。具体的には、ルートノードは検索基準としてコンテナのセットIDを用いてデータ構造に位置しうる。また、本発明の一以上の実施形態において、コンテナはルートノードへのポインターを保持するので、検索の必要性が省かれる。ステップ535において、ルートノードが「完了」又は「完了済」のステータスを有するかについて判断する。ルートノードのステータスへはルートノードのステータスフィールド(例えば、図4を参照し上述した、ステータスA(409)、ステータスB(459))を読み出すことによってアクセスしうる。ルートノードに「完了」又は「完了済」のステータスが割り当てられたと判断されると、処理はステップ545に移行する。ルートノードに「完了」又は「完了済」のステータスが割り当てられていないと判断されると、処理はステップ540に移行する。
【0040】
ステップ540において、ルートノードにリンクされる全てのセグメントノードのトラバーサルが実行され、遭遇するそれぞれのセグメントノードについて中間ページが生成される。上述のように、各セグメントノードはIFにおけるコンテナを示すポインターを含む。また、上述のように各コンテナはそのリンクされたテキストボックスに対応する属性(例えば、セグメント番号、寸法)を含む。さらに、セグメントノードはストリングのテキストフローに基づいて並べ替えられている(つまり、並べられた)ので(つまり、ステップ520)、セグメントノードがトラバーサルされる順序は基本的にセグメント番号によって決定する。言い換えると、トラバーサルの際に最初に遭遇するのは、セグメント番号1のコンテナに対応するセグメントノードである。トラバーサルの際に二番目に遭遇するのは、セグメント番号2のコンテナに対応するセグメントノードであり、以下同様である。
【0041】
トラバーサルの際に遭遇する各セグメントノードについて、レイアウトエンジンの機能を呼び出して、対応するリンクされたテキストボックスの中間ページを生成する。当該機能のパラメーターはコンテナ及び一以上のリンクされたテキストボックスにおいて配置する必要があるストリングの残りの部分を含む。よって、開始テキストボックスにおいては、ストリングの残りの部分はストリング全体をいう。当該機能の出力は中間ページ及び中間ページにおいて配置されたストリングのセグメントにおける全ての文字の位置(つまり、座標)をいう。中間ページはそのセグメント番号によって表示しうる。
【0042】
本発明の一以上の実施形態において、ルートノードにリンクされたすべてのセグメントノードについて中間ページが生成されると、ルートノードのステータスは「完了」又は「完了済」と設定される。
【0043】
ステップ545において、IFにまだコンテナが存在するか判断する。まだコンテナが存在すると判断されると、処理はステップ525へ戻る。IFに他にコンテナが存在しないと判断されると、処理はステップ550へ移行する。
【0044】
ステップ550において、EDの一以上のレンダリングされたページを生成する。レンダリングされたページはIFのコンテナを対応する中間ページに置き換えることによって生成しうる。具体的には、遭遇する各コンテナについて、少なくともセグメント番号及びコンテナのセットIDを検索基準として用いて対応する中間ページを検索する。レンダリングされたページはリンクされたテキストボックスのセットとリンクされたテキストボックスのセットにわたって分布されるストリングを含む。
【0045】
本発明の一以上の実施形態において、ステップ505、510、515及び520は文書解析段階または主要文書構築段階に対応する。本発明の一以上の実施形態において、ステップ525、530、535、540、545及び550は主要文書植字段階に対応する。
【0046】
本発明の実施形態によって一以上の以下の効果が得られる:既存のレンダリング装置を用いてリンクされたテキストボックスを有するページをレンダリングすることが可能、EDにおいてリンクされたテキストボックスの複数のセットを扱うことが可能、EDにストリングのテキストフローに従って配置されていないリンクされたテキストボックス(つまり、開始テキストボックスが、読み手が最初に遭遇するテキストボックスではない)をレンダリングすることが可能、等。当業者は開示されていない、本発明に関するその他の様々な効果があることを理解するであろう。
【0047】
本発明の実施形態は、用いられるプラットフォームを問わず、事実上あらゆる種類のコンピューターにおいて実現することができる。例えば、図6に示すように、コンピューターシステム(600)には、一以上のハードウェアプロセッサー(602)、関連するメモリー(604)(例えば、ランダムアクセスメモリー(RAM)、キャッシュメモリー、フラッシュメモリー等)、記憶装置(606)(例えば、ハードディスク、コンパクトディスクドライブやデジタルビデオディスク(DVD)ドライブ等の光学ドライブ、フラッシュメモリースティック等)及び現在のコンピューター(図示せず)において一般的ないくつかのその他の要素及び機能が含まれる。本発明の一以上の実施形態においては、ハードウェアプロセッサー(602)はハードウェアの要素である。例えば、プロセッサーは集積回路、中央演算処理装置(CPU)、又はその他のハードウェアプロセッサーでありうる。コンピューターシステム(600)はキーボード(608)、マウス(610)、又はマイクロフォン(図示せず)等の入力手段を有しうる。また、コンピューターシステム(600)はモニター(612)(例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、ブラウン管(CRT)モニター)等の出力手段を有しうる。コンピューターシステム(600)はネットワークインターフェース接続(図示せず)を介してネットワーク(614)(例えば、ローカルエリアネットワーク(LAN)、インターネット等のワイドエリアネットワーク(WAN)、又はその他の種類のネットワーク)に接続されうる。本発明の一以上の実施形態においては、様々な種類のコンピューターシステムが存在し、上述の入力及び出力手段はその他の形式を取りうる。一般に、コンピューターシステム(600)は少なくとも本発明の実施形態を実施するのに必要な最低限の処理、入力及び/又は出力手段を有する。
【0048】
さらに、本発明の一以上の実施形態においては、上述のコンピューターシステム(600)の一以上の要素は遠隔地に位置し、ネットワーク上で他の要素と接続しうる。また、本発明の実施形態は複数のノードを有する分散システムにおいて実現することができ、本発明の各部分(例えば、中間形式、ジェネレーター、データ構造ジェネレーター、レイアウトエンジン、等)は分散システムにおける異なるノードに配置されうる。本発明のある実施形態においては、ノードはコンピューターシステムに対応する。また、ノードは関連する物理メモリーを有するプロセッサーに対応しうる。また、ノードは共有メモリー及び/又は資源を有するプロセッサー又はプロセッサーのマイクロコアに対応しうる。さらに、本発明の実施形態を実行するためのコンピューターに読取可能なプログラムコードの形式であるソフトウェア命令を、コンパクトディスク(CD)、ディスケット、テープ、パンチカード、メモリー、又はその他のコンピューターに読取可能な記憶装置等の非一時的な、コンピューターに読取可能な記憶媒体に一時的に又は永久に保存することができる。
【0049】
本発明は限られた数の実施形態により説明されたが、当業者は本明細書を利用することによって、本明細書において開示される本発明の範囲を逸脱することなく、その他の実施形態を考案することが可能であることを理解するであろう。よって、本発明の範囲は添付されたクレームのみによって限定される。

【特許請求の範囲】
【請求項1】
電子文書(ED)をレンダリングする方法であって、
レイアウトエンジンへ入力する、前記EDにおける第一の複数のリンクされたテキストボックスに対応する第一の複数のコンテナを備える前記EDの中間形式を取得するステップと、
前記第一の複数のリンクされたテキストボックスにわたって分布する第一ストリングに関連付けられた第一ルートノード及び前記第一の複数のコンテナを示す第一の複数のポインターを備える第一の複数のセグメントノードを備えるデータ構造を取得するステップと、
前記データ構造を取得するステップの後に、前記中間形式における前記第一の複数のコンテナの第一コンテナを識別するステップと、
前記第一コンテナを識別するステップに応じてかつ前記データ構造において、前記ストリングを有する前記第一ルートノードの位置を発見するステップと、
前記第一ルートの位置を発見するステップに応じて、前記第一ルートノードにリンクされた前記第一の複数のセグメントノードのトラバーサルを実行するステップと、
前記第一の複数のセグメントノードのトラバーサルの間に、前記第一の複数のポインターによって指定される前記第一の複数のコンテナにレイアウトエンジンを適用することによって前記第一ストリングが分布された第一の複数の中間ページを生成するステップと、
前記第一の複数のコンテナの前記第一コンテナを、前記第一コンテナと対応する前記第一の複数の中間ページの中間ページに置き換えるステップを備える、前記第一の複数のセグメントノードのトラバーサルを実行するステップの後に、前記EDのレンダリングされたページを生成するステップと、
を備える。
【請求項2】
前記第一の複数のセグメントノードのトラバーサルを実行するステップの後に、前記第一ルートノードに完了ステータスを割り当てるステップと、
前記中間形式においてかつ前記レンダリングされたページを生成するステップの前に、前記第一の複数のコンテナの第二コンテナを識別するステップと、
前記データ構造において、前記第一の複数のコンテナの前記第二コンテナを識別するステップに応じて、前記第一ルートノードの位置を発見するステップと、
前記第一ルートノードに割り当てられた前記完了ステータスを識別するステップと、
前記第一ルートノードに割り当てられた前記完了ステータスの識別に応じて、前記中間形式に戻るステップと、
をさらに備える請求項1に記載の方法。
【請求項3】
前記第一の複数のセグメントノードのトラバーサルを実行するステップの後でかつ前記第一の複数のコンテナの前記第二コンテナを識別するステップの前に、前記中間形式において第二の複数のコンテナのコンテナを識別するステップと、
前記第二の複数のコンテナの前記コンテナを識別するステップに応じて、前記データ構造における第二ルートノードの位置を発見するステップと、
前記第二ルートノードの位置を発見するステップに応じて、前記第二ルートノードにリンクされて、前記第二の複数のコンテナを示す第二の複数のポインターを備える第二の複数のセグメントノードのトラバーサルを実行するステップと、
前記第二の複数のセグメントノードのトラバーサルの間に、前記第二の複数のポインターによって指定される前記第二の複数のコンテナを前記レイアウトエンジンに適用することによって第二の複数の中間ページを生成するステップと、をさらに備え
前記第二の複数のコンテナは前記EDにおける第二の複数のリンクされたテキストボックスに対応し、
前記第二のルートノードは前記第二の複数のテキストボックスにわたって分布する第二のストリングを備え、
前記レンダリングされたページを生成するステップは前記第二の複数のコンテナの前記コンテナを前記コンテナと対応する前記第二の複数の中間ページの中間ページに置き換えるステップをさらに備える、
請求項2に記載の方法。
【請求項4】
前記中間形式を取得するステップは前記EDの解析の間に中間形式を生成するステップを備え、前記データ構造を取得するステップは前記EDの解析の間に前記データ構造を生成するステップを備える、
請求項1に記載の方法。
【請求項5】
前記第一のストリングのテキストフローに基づいて前記第一の複数のセグメントノードを並べ替えるステップを備え、
前記第一の複数のリンクされたテキストボックスは前記第一ストリングの開始を表示する第一テキストボックス及び第二テキストボックスを備え、
前記第二テキストボックスは前記第一テキストボックスの前に前記EDにおいて登場する、
請求項4に記載の方法。
【請求項6】
前記第一の複数の中間ページを生成するステップは、
前記第一の複数のセグメントノードの前記トラバーサルの間、セグメントノードを訪問するステップと、
前記セグメントノードのポインターを用いて前記第一の複数のコンテナの前記第一コンテナのサイズ属性にアクセスするステップと、を備え、
前記第一の複数のコンテナの前記第一コンテナは前記第一の複数のリンクされたテキストボックスのテキストボックスに対応し、
前記サイズ属性は前記テキストボックスのサイズを備え、
前記レイアウトエンジンの適用は、前記テキストボックスの前記サイズ及び前記第一ストリングをパラメーターとして有する前記レイアウトエンジンの機能の読み出しを備え、
前記第一の複数の中間ページの前記中間ページは前記テキストボックスの前記サイズに等しいサイズを有する、
請求項1に記載の方法。
【請求項7】
前記中間形式は前記第一の複数のコンテナの識別(ID)値を備え、前記第一ルートノードは前記ID値を備え、前記第一ルートノードの位置を発見するステップは、前記ID値に基づいて前記データ構造を検索するステップを備える、
請求項1に記載の方法。
【請求項8】
前記第一コンテナを前記中間ページに置き換えるステップは、
前記第一の複数のコンテナは前記EDにおける前記第一の複数のテキストボックスの順序に基づいて複数のセグメント番号が割り当てられているところ、前記第一コンテナに関連付けられたセグメント番号にアクセスするステップと、
前記セグメント番号をパラメーターとして有する検索機能を呼び出すステップと、を備える、
請求項1に記載の方法。
【請求項9】
前記レイアウトエンジンはプリンターに配置される、請求項1に記載の方法。
【請求項10】
電子文書(ED)をレンダリングする指示を含む非一時的でコンピューターに読取可能な記憶媒体であって、前記指示は、
レイアウトエンジンへ入力する、前記EDにおける第一の複数のリンクされたテキストボックスに対応する第一の複数のコンテナを備える前記EDの中間形式を取得する指示と、
前記第一の複数のリンクされたテキストボックスにわたって分布する第一ストリングに関連付けられた第一ルートノード及び前記第一の複数のコンテナを示す第一の複数のポインターを備える第一の複数のセグメントノードを備えるデータ構造を取得する指示と、
前記データ構造を取得する指示の後に、前記中間形式における前記第一の複数のコンテナの第一コンテナを識別する指示と、
前記第一コンテナを識別する指示に応じてかつ前記データ構造において、前記ストリングを有する前記第一ルートノードの位置を発見する指示と、
前記第一ルートの位置を発見する指示に応じて、前記第一ルートノードにリンクされた前記第一の複数のセグメントノードのトラバーサルを実行する指示と、
前記第一の複数のセグメントノードのトラバーサルの間に、前記第一の複数のポインターによって指定される前記第一の複数のコンテナにレイアウトエンジンを適用することによって前記第一ストリングが分布された第一の複数の中間ページを生成する指示と、
前記第一の複数のコンテナの前記第一コンテナを、前記第一コンテナと対応する前記第一の複数の中間ページの中間ページに置き換える指示を備える、前記第一の複数のセグメントノードのトラバーサルを実行する指示の後に、前記EDのレンダリングされたページを生成する指示と、
を備える。
【請求項11】
前記第一の複数のセグメントノードのトラバーサルを実行する指示の後に、前記第一ルートノードに完了ステータスを割り当てる指示と、
前記中間形式においてかつ前記レンダリングされたページを生成する指示の前に、前記第一の複数のコンテナの第二コンテナを識別する指示と、
前記データ構造において、前記第一の複数のコンテナの前記第二コンテナを識別する指示に応じて、前記第一ルートノードの位置を発見する指示と、
前記第一ルートノードに割り当てられた前記完了ステータスを識別する指示と、
前記第一ルートノードに割り当てられた前記完了ステータスの識別に応じて、前記中間形式に戻る指示と、
をさらに備える請求項10に記載の非一時的でコンピューターに読取可能な記憶媒体。
【請求項12】
前記第一の複数のセグメントノードのトラバーサルを実行する指示の後でかつ前記第一の複数のコンテナの前記第二コンテナを識別する指示の前に、前記中間形式において第二の複数のコンテナのコンテナを識別する指示と、
前記第二の複数のコンテナの前記コンテナを識別する指示に応じて、前記データ構造における第二ルートノードの位置を発見する指示と、
前記第二ルートノードの位置を発見する指示に応じて、前記第二ルートノードにリンクされて、前記第二の複数のコンテナを示す第二の複数のポインターを備える第二の複数のセグメントノードのトラバーサルを実行する指示と、
前記第二の複数のセグメントノードのトラバーサルの間に、前記第二の複数のポインターによって指定される前記第二の複数のコンテナを前記レイアウトエンジンに適用することによって第二の複数の中間ページを生成する指示と、をさらに備え
前記第二の複数のコンテナは前記EDにおける第二の複数のリンクされたテキストボックスに対応し、
前記第二のルートノードは前記第二の複数のテキストボックスにわたって分布する第二のストリングを備え、
前記レンダリングされたページを生成する指示は前記第二の複数のコンテナの前記コンテナを前記コンテナと対応する前記第二の複数の中間ページの中間ページに置き換える指示をさらに備える、
請求項11に記載の非一時的でコンピューターに読取可能な記憶媒体。
【請求項13】
前記中間形式を取得する指示は前記EDの解析の間に中間形式を生成する指示を備え、前記データ構造を取得する指示は前記EDの解析の間に前記データ構造を生成する指示を備える、
請求項10に記載の非一時的でコンピューターに読取可能な記憶媒体。
【請求項14】
前記第一のストリングのテキストフローに基づいて前記第一の複数のセグメントノードを並べ替える指示を備え、
前記第一の複数のリンクされたテキストボックスは前記第一ストリングの開始を表示する第一テキストボックス及び第二テキストボックスを備え、
前記第二テキストボックスは前記第一テキストボックスの前に前記EDにおいて登場する、
請求項13に記載の非一時的でコンピューターに読取可能な記憶媒体。
【請求項15】
前記第一の複数の中間ページを生成する指示は、
前記第一の複数のセグメントノードの前記トラバーサルの間、セグメントノードを訪問する指示と、
前記セグメントノードのポインターを用いて前記第一の複数のコンテナの前記第一コンテナのサイズ属性にアクセスする指示と、を備え、
前記第一の複数のコンテナの前記第一コンテナは前記第一の複数のリンクされたテキストボックスのテキストボックスに対応し、
前記サイズ属性は前記テキストボックスのサイズを備え、
前記レイアウトエンジンの適用は、前記テキストボックスの前記サイズ及び前記第一ストリングをパラメーターとして有する前記レイアウトエンジンの機能の読み出しを備え、
前記第一の複数の中間ページの前記中間ページは前記テキストボックスの前記サイズに等しいサイズを有する、
請求項10に記載の非一時的でコンピューターに読取可能な記憶媒体。
【請求項16】
電子文書をレンダリングするシステムであって、
ハードウェアプロセッサーと、
前記ハードウェアプロセッサー上で実行され、前記EDにおける複数のリンクされたテキストボックスに対応する複数のコンテナを備える前記EDの中間形式を生成するように構成された、中間形式ジェネレーターと、
前記複数のリンクされたテキストボックスにわたって分布するストリングに関連付けられたルートノード及び前記複数のコンテナを示す複数のポインターを備える複数のセグメントノードを生成するように構成された、データ構造ジェネレーターと、
前記ハードウェアプロセッサー上で実行され、前記複数のセグメントノードのトラバーサルの間に、前記複数のポインターによって指定される前記複数のコンテナに基づいて、前記ストリングが分布された複数の中間ページを生成するように構成された、レイアウトエンジンと、を備え、
前記レイアウトエンジンはさらに前記中間形式における前記複数のコンテナのコンテナを、前記コンテナと対応する前記複数の中間ページの中間ページに置き換えることによって、前記EDのレンダリングされたページを生成するように構成される。
【請求項17】
前記中間形式ジェネレーター、前記データ構造ジェネレーター及び前記レイアウトエンジンはプリンター上に配置される、請求項16に記載のシステム。
【請求項18】
前記データ構造モジュールは、前記複数のセグメントノードのトラバーサルの後に、第一ルートノードに完了ステータスを割り当てるように構成される、請求項16に記載のシステム。
【請求項19】
前記中間形式は前記複数のコンテナの識別(ID)値を備え、前記複数のセグメントノードは前記EDにおける前記複数のテキストボックスの順序に対応する複数のセグメント数値を備える、
請求項16に記載のシステム。
【請求項20】
前記データ構造モジュールは前記ストリングのテキストフローに基づいて前記複数のセグメントノードを並べ替えるように構成され、前記複数のリンクされたテキストボックスは前記第一のストリングの開始を表示する第一テキストボックス及び第二テキストボックスを備え、前記第二テキストボックスは前記第一テキストボックスの前に前記EDにおいて登場する、
請求項16に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−141974(P2012−141974A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−279189(P2011−279189)
【出願日】平成23年12月21日(2011.12.21)
【出願人】(507031918)コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド (157)
【Fターム(参考)】