(57)【要約】【課題】  複数の要素がツリー構造化されている文書をメモリを効率よく用いて割り付けられるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供する。【解決手段】マークアップによって複数の要素がツリー構造化されている文書を入力し、前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶し、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶している前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算し、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置を計算する度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する、レイアウト方法。【選択図】    図１
2007200097.tif 000002
【特許請求の範囲】
【請求項１】
マークアップによって複数の要素がツリー構造化されている文書を入力し、
前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶し、
前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶している前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算し、
１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置を計算する度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する、
レイアウト方法。
【請求項２】
前記ＤＯＭノードが生成されるたびに、生成された前記ＤＯＭノードに基づいて前記割り付け位置の計算に必要な情報を有するレイアウトノードを生成して記憶し、
前記文書の葉である前記要素に対応する前記レイアウトノードが生成される度に、記憶している前記レイアウトノードのツリーに基づいて前記割り付け位置を計算し、
１ページ分の前記割り付け位置を計算する度に、後続ページについて前記割り付け位置を計算するためには不要な前記レイアウトノードの記憶を消去する、
請求項１に記載のレイアウト方法。
【請求項３】
前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、前記ＤＯＭノードの生成を中断し、
１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置を計算する度に、新たな前記ＤＯＭノードの生成を再開する、
請求項１又は２に記載のレイアウト方法。
【請求項４】
マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、
前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、
前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、
１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、
を備えるレイアウト装置。
【請求項５】
マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、
前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、
前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、
１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、
してコンピュータを機能させるレイアウトプログラム。
【請求項６】
マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、
前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、
前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、
１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、
前記要素を前記割り付け位置に描画することにより画像を形成する描画手段と、
前記画像を印刷する印刷手段と、
を備えるプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト方法に関し、特にマークアップによって複数の要素がツリー構造化されている文書のレイアウト方法に関する。
【背景技術】
【０００２】
従来、マークアップによって複数の要素がツリー構造化されているｘｈｔｍｌ文書、ＸＭＬ文書等の文書（以下、誤解のない文脈では単に文書という）を表示するとき、コンピュータシステムはＸＭＬパーサのＡＰＩ（Application Program Interface）であるＤＯＭ（Document Object Model）を用いて文書要素の描画に必要な情報を取得している。ＸＭＬパーサは、文書内のさまざまな要素間の参照をＤＯＭオブジェクトによって階層的に蓄えることによって文書へのランダムアクセスを可能にしているため、ＸＭＬパーサによって文書全体のデータ量を超えるデータが一度にメモリに格納されることになる。
しかし、従来のＸＭＬパーサでは、十分なメモリの容量を確保できない制約がある場合、例えばスタンドアロン型のプリンタ（特許文献１参照）に実装される場合には長い文書に対応できないという問題がある。
【０００３】
【特許文献１】特開２００４−１１４３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述の問題を解決するために創作されたものであって、複数の要素がツリー構造化されている文書をメモリを効率よく用いて割り付けられるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供することを目的とする。
【課題を解決するための手段】
【０００５】
（１）上記目的を達成するためのレイアウト方法は、マークアップによって複数の要素がツリー構造化されている文書を入力し、前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶し、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶している前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算し、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置を計算する度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する。
このレイアウト方法によると、文書の葉である要素に対応するＤＯＭノードが生成される度に部分ＤＯＭツリーから得られる情報に基づいて割り付け位置の計算が実行され、１つの部分ＤＯＭツリーに対応する要素の割り付け位置が計算される度に、対応するＤＯＭノードが生成されていない要素の親である要素に対応するＤＯＭノードのうち最下位層にあるＤＯＭノードより下の階層のＤＯＭノードの記憶が消去される。したがってこのレイアウト方法によると、文書の各要素を割り付けるために記憶が必要なＤＯＭノードのツリーである部分ＤＯＭツリーは、分岐のない１本のチェーンのような構造になるため、各要素を割り付けるために文書全体のＤＯＭツリーを記憶する場合に比べてメモリの使用容量を低減することができる。またこのレイアウト方法によると、文書の構造に関わらず、メモリの使用容量を低減することができる。
【０００６】
（２）上記目的を達成するためのレイアウト方法において、前記ＤＯＭノードが生成されるたびに、生成された前記ＤＯＭノードに基づいて前記割り付け位置の計算に必要な情報を有するレイアウトノードを生成して記憶し、前記文書の葉である前記要素に対応する前記レイアウトノードが生成される度に、記憶している前記レイアウトノードのツリーに基づいて前記割り付け位置を計算し、１ページ分の前記割り付け位置を計算する度に、後続ページについて前記割り付け位置を計算するためには不要な前記レイアウトノードの記憶を消去してもよい。
このレイアウト方法によると、割り付け位置の計算に必要でＤＯＭノードから得られる情報がＤＯＭノードとは別のレイアウトノードとして記憶されるため、あるタイミングにおいて、必要な情報が得られるＤＯＭノードが消去されてもレイアウトノードのツリーに基づいて割り付け位置を計算することができる。またこのレイアウト方法によると、描画のためにＤＯＭノードを編集する代わりにレイアウトノードを編集することができる。またこのレイアウト方法によると、１ページ分の割り付け位置を計算する度に後続ページについて割り付け位置を計算するためには不要なレイアウトノードの記憶が消去されるため、レイアウトノードを記憶するために必要なメモリの容量を低減できる。
【０００７】
（３）上記目的を達成するためのレイアウト方法において、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、前記ＤＯＭノードの生成を中断し、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置を計算する度に、新たな前記ＤＯＭノードの生成を再開してもよい。
このレイアウト方法によると、割り付け位置の計算とＤＯＭノードの生成が滞り無く連動する。
【０００８】
（４）上記目的を達成するためのレイアウト装置は、マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、を備える。
このレイアウト装置によると、文書の葉である要素に対応するＤＯＭノードが生成される度に部分ＤＯＭツリーから得られる情報に基づいて割り付け位置の計算が実行され、１つの部分ＤＯＭツリーに対応する要素の割り付け位置が計算される度に、対応するＤＯＭノードが生成されていない要素の親である要素に対応するＤＯＭノードのうち最下位層にあるＤＯＭノードより下の階層のＤＯＭノードの記憶が消去される。したがってこのレイアウト装置によると、文書の各要素を割り付けるために記憶が必要なＤＯＭノードのツリーである部分ＤＯＭツリーは、分岐のない１本のチェーンのような構造になるため、各要素を割り付けるために文書全体のＤＯＭツリーを記憶する場合に比べてメモリの使用容量を低減することができる。またこのレイアウト装置によると、文書の構造に関わらず、メモリの使用容量を低減することができる。
【０００９】
（５）上記目的を達成するためのレイアウトプログラムは、マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、してコンピュータを機能させる。
このレイアウトプログラムによると、文書の葉である要素に対応するＤＯＭノードが生成される度に部分ＤＯＭツリーから得られる情報に基づいて割り付け位置の計算が実行され、１つの部分ＤＯＭツリーに対応する要素の割り付け位置が計算される度に、対応するＤＯＭノードが生成されていない要素の親である要素に対応するＤＯＭノードのうち最下位層にあるＤＯＭノードより下の階層のＤＯＭノードの記憶が消去される。したがってこのレイアウトプログラムによると、文書の各要素を割り付けるために記憶が必要なＤＯＭノードのツリーである部分ＤＯＭツリーは、分岐のない１本のチェーンのような構造になるため、各要素を割り付けるために文書全体のＤＯＭツリーを記憶する場合に比べてメモリの使用容量を低減することができる。またこのレイアウトプログラムによると、文書の構造に関わらず、メモリの使用容量を低減することができる。
【００１０】
（６）上記目的を達成するためのプリンタは、マークアップによって複数の要素がツリー構造化されている文書を入力する入力手段と、前記文書の構造を先頭から解析しながら各前記要素に対応するＤＯＭノードを複数の前記要素の出現順に生成して記憶する解析手段と、前記文書の葉である前記要素に対応する前記ＤＯＭノードが生成される度に、記憶されている前記ＤＯＭノードのツリーである部分ＤＯＭツリーから得られる情報に基づいて前記要素の割り付け位置を計算する割り付け手段と、１つの前記部分ＤＯＭツリーに対応する前記要素の前記割り付け位置が計算される度に、対応する前記ＤＯＭノードが生成されていない前記要素の親である前記要素に対応する前記ＤＯＭノードのうち最下位層にある前記ＤＯＭノードより下の階層の前記ＤＯＭノードの記憶を消去する消去手段と、前記要素を前記割り付け位置に描画することにより画像を形成する描画手段と、前記画像を印刷する印刷手段と、を備える。
このプリンタによると、文書の葉である要素に対応するＤＯＭノードが生成される度に部分ＤＯＭツリーから得られる情報に基づいて割り付け位置の計算が実行され、１つの部分ＤＯＭツリーに対応する要素の割り付け位置が計算される度に、対応するＤＯＭノードが生成されていない要素の親である要素に対応するＤＯＭノードのうち最下位層にあるＤＯＭノードより下の階層のＤＯＭノードの記憶が消去される。したがってこのプリンタによると、文書の各要素を割り付けるために記憶が必要なＤＯＭノードのツリーである部分ＤＯＭツリーは、分岐のない１本のチェーンのような構造になるため、各要素を割り付けるために文書全体のＤＯＭツリーを記憶する場合に比べてメモリの使用容量を低減することができる。またこのプリンタによると、文書の構造に関わらず、メモリの使用容量を低減することができる。
【００１１】
尚、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。また、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【発明を実施するための最良の形態】
【００１２】
以下、実施例に基づいて本発明の実施の形態を説明する。
［レイアウト装置のハードウェア構成］
図２は本発明のレイアウト装置を適用したプリンタ１の構成を示すブロック図である。プリンタ１は、カード型フラッシュメモリ、ディジタルカメラ、携帯型電話端末、ＣＤ、ハードディスク等に格納されているｘｈｔｍｌ文書から画像を生成し、このように生成された画像を単独で印刷できる所謂スタンドアロン型のプリンタである。
【００１３】
入力手段としての入力部１０は、カード型フラッシュメモリに格納されているデータを入力するためのメモリコントローラや、ディジタルカメラ、携帯型電話端末、ＣＤドライブ、ハードディスクドライブ等の外部機器と通信するための各種の通信規格に適合したインタフェースを備えている。操作部１２は、メニューを操作するための押しボタンなどを備える。ワークメモリ２０は、揮発性のＲＡＭで構成されている記憶媒体である。印刷エンジン１４は、インクジェット方式、サーマル方式、レーザ方式等のいずれかの印刷方式に適合するように構成される。フラッシュメモリ１６は、プリンタ１の制御プログラムが格納されている不揮発性のＲＡＭで構成されている記憶媒体である。ＣＰＵ１８は、制御プログラムを実行することによりプリンタ１の各部を制御したり、ｘｈｔｍｌ文書から画像を生成し、画像を印刷データに変換する処理を実行する。ワークメモリ２０には、入力部１０によって入力されたデータやＣＰＵ１８から出力されるデータが格納される。
【００１４】
［レイアウト装置のソフトウェア構成］
図３は、プリンタ１のソフトウェア構成を示すブロック図である。コア２２、レイアウタ２４、レンダラー２６及び印刷コントローラ２８は、フラッシュメモリ１６に格納され、制御プログラムを構成している。
【００１５】
コア２２は、ＣＰＵ１８を解析手段及び消去手段として機能させるモジュールである。コア２２は、ｘｈｔｍｌ文書の構造の解析、スタイル情報の取得、ＤＯＭノードの生成、レイアウトノードの生成などの機能を実現する。レイアウトノードとは、ＤＯＭノードが保持する割り付け位置に関する情報に基づいて生成されるインスタンスであって、ＤＯＭノードと同様にツリー構造で割り付け位置の計算に必要な情報を保持する。ＤＯＭツリーに直接アクセスして割り付け位置を計算するように構成することもできるが、本実施形態ではＤＯＭツリーを編集することを避けるために、レイアウトノードで構成されるレイアウトツリーにアクセスして割り付け位置を計算する。コア２２はレイアウトノードを生成する時、親、１つ上の兄、１つ下の弟、子の長兄、親の子の長兄という５つのリンクのそれぞれに未確定を意味する値を保持するレイアウトノードを生成する。レイアウトノードの生成時に既にリンク先のレイアウトノードが生成されていたり、レイアウトノードの生成後にリンク先のレイアウトノードが生成された場合には、コア２２は対応するリンクの値を、確定しているレイアウトノードに変更する。また、あるリンク先について、そのリンク先にはレイアウトノードが生成されないことが判明した時点で、コア２２はそのリンクにリンク先無しの確定を意味する値を設定する。リンクに設定すべき値は、コア２２が処理対象文書を先頭から順に解析して判明する要素の種類の移り変わりに応じて一義的に決まる。
【００１６】
レイアウタ２４は、ＣＰＵ１８を割り付け手段として機能させるモジュールである。レイアウタ２４は、レイアウトノードにアクセスし、描画対象オブジェクト毎に割り付け位置を計算する。
レンダラー２６は、ＣＰＵ１８を描画手段として機能させるモジュールである。レンダラー２６は、レイアウタ２４から描画対象オブジェクト毎に割り付け位置を取得し、テキスト要素、リンク要素に記述されている画像ファイルなどの描画対象オブジェクトを割り付け位置に描画し、印刷対象ページの画像をビットマップ形式で形成する。
【００１７】
印刷コントローラ２８は、ＣＰＵ１８及び印刷エンジン１４を印刷手段として機能させるモジュールである。印刷コントローラ２８は、印刷対象ページの画像に対し、解像度変換、分版（ＲＧＢからＣＭＹＫなどへの色空間変換）、ハーフトーニング、インタレース処理などを施すことにより印刷データを生成して印刷エンジン１４に出力し、印刷エンジン１４に印刷を実行させる。
【００１８】
［レイアウト方法］
図１は、プリンタ１によるレイアウト方法を示すフローチャートである。図１に示す処理は、入力部１０によってワークメモリ２０にｘｈｔｍｌ文書が読み込まれた状態で起動され、コア２２及びレイアウタ２４を実行するＣＰＵ１８によって実行される。以下、ワークメモリ２０に読み込まれた処理対象のｘｈｔｍｌ文書を処理対象文書というものとする。
【００１９】
ステップＳ１００では、レイアウタ２４からの解析要求に応じて、処理対象文書の先頭から順に文書の構造がコア２２によって解析され、１つの要素について１つのＤＯＭノードが生成され、ＤＯＭノードからレイアウトノードが生成され、ＤＯＭノード及びレイアウトノードがワークメモリ２０に記憶される。
【００２０】
ステップＳ１０２では、ステップＳ１００で生成されるＤＯＭノードに対応する要素が処理対象文書の葉要素であるか否かがコア２２によって判定される。葉要素である場合、コア２２による処理対象文書の構造解析が中断し、解析応答がコア２２からレイアウタ２４に通知される。葉要素でない場合、ステップＳ１００の処理に戻ってコア２２による処理対象文書の構造解析が続行する。具体的には、ステップＳ１００でテキスト要素や、空のタグの終了タグが検出された場合に肯定判定され、コア２２による処理対象文書の構造解析が中断する。
【００２１】
ステップＳ１０２で肯定判定されるまで、ステップＳ１００ではＤＯＭノード及びレイアウトノードがコア２２によって自律的に繰り返し生成されるため、複数のＤＯＭノードからなるＤＯＭツリーと、複数のレイアウトノードからなるレイアウトツリーとがワークメモリ２０に保持される。
【００２２】
ステップＳ１０４では、不要なＤＯＭノードの記憶がコア２２によって消去される。不要なＤＯＭノードとは、処理対象文書に存在する未解析の要素にとって直系の関係にない要素に対応するＤＯＭノードである。すなわち、ＤＯＭノードが生成されていない要素の親である要素に対応するＤＯＭノードのうち、最下位層にあるＤＯＭノードより下の階層のＤＯＭノードの記憶が消去される。
【００２３】
ステップＳ１０６では、コア２２から通知された解析応答に応じて、描画対象オブジェクトの割り付け位置がレイアウタ２４によって計算される。このときワークメモリ２０に記憶されている全てのレイアウトノードとｈｅａｄ要素から取得してワークメモリ２０に記憶されているスタイル情報とがレイアウタ２４によって参照されうる。割り付け位置は計算が繰り返されるに従ってページの末端に向かって移動する。
【００２４】
ステップＳ１０８では、改ページが発生したか否かが判定される。すなわち、割り付け位置がページの末端まで到達したかが判定される。
改ページが発生した場合、ステップＳ１１０では描画対象オブジェクトがレンダラー２６によってそれぞれの割り付け位置に描画され、１ページ分の画像が形成される。
【００２５】
ステップＳ１１２では、不要なレイアウトノードの記憶がコア２２によって消去される。不要なレイアウトノードとは、後続ページの割り付け位置を計算するためには参照する必要のないレイアウトノードである。例えば、割り付け終了位置が次ページになった要素（説明の便宜上、この要素を改ページ要素というものとする。）に対応するレイアウトノードに対して直系で上位の関係にあるレイアウトノードや、既に割り付け位置が計算されたレイアウトノードであっても、改ページ要素と隣り合っている要素に対応するレイアウトノードは、描画がされていない要素の割り付け位置の計算に影響を与える可能性がある。具体的には例えば、ある要素に周囲余白が設定されており、また、その要素に隣り合う後続要素にも周囲余白が設定されているような場合に、２つの周囲余白のうち余白幅が広い方だけを有効なものとみなして後続要素の割り付け開始位置を計算するときには、前の要素に対応するレイアウトノードを参照して後続要素の割り付け開始位置を計算する必要がある。このようにしてレイアウトノードの記憶を消去することにより、レイアウトノードによるワークメモリ２０の使用容量を低減することができる。
【００２６】
ステップＳ１１４では、処理対象文書の終端要素まで構造解析が終了したかがレイアウタ２４によって判定される。処理対象文書の終端要素まで構造解析されていない場合、レイアウタ２４は解析要求をコア２２に通知する。解析要求がレイアウタ２４から通知されると、コア２２は処理対象文書の解析を再開し、上述の処理が繰り返される。レイアウタ２４は、処理対象文書を直接参照していないため、レイアウトノードのリンクの設定値を参照して処理対象文書の終端要素までの構造解析の終了を判定する。すなわち、未確定を意味する値が設定されているリンクを持つレイアウトノードが無くなった時点でレイアウタ２４は文書の終端要素までの構造解析の終了を判定する。
文書の終端要素まで描画されると、ステップＳ１１６では、その時点で残存しているＤＯＭノード及びレイアウトノードの記憶領域が開放される。尚、本明細書において記憶領域の開放は記憶の消去と同義である。
【００２７】
図４に示すｘｈｔｍｌ文書を処理対象文書６０としてコア２２とレイアウタ２４による処理内容をさらに具体的に説明する。
まずコア２２は処理対象文書６０、ｈｔｍｌ要素６１に対応するＤＯＭノード３０、３１を生成した後にｈｅａｄ要素６２を解析する（図５参照）。ｈｅａｄ要素６２の解析手法はｂｏｄｙ要素６５の解析手法と異なっている。ｈｅａｄ要素６２内を解析している間、コア２２はレイアウトノードを生成せず、スタイル情報を処理対象文書６０から取得してレイアウトノードとは別の形態でワークメモリ２０に記憶する。ｈｅａｄ要素６２が解析されるとき、図５に示すようにｈｅａｄ要素６２、ｓｔｙｌｅ要素６３、テキスト要素６４に対応するＤＯＭノード３３、３６、３８が生成される。尚、図５〜図１０においては未生成のＤＯＭノードを破線で示している。コア２２は、処理対象文書６０の葉要素であるテキスト要素６４を検出してテキスト要素６４に対応するＤＯＭノード３８を生成し、テキスト要素６４によって表現されているスタイルをワークメモリ２０に記憶すると（ステップＳ１０２で肯定判定される場合）、ＤＯＭノード３３、３６、３８からなる部分ＤＯＭツリーの記憶領域を開放し、レイアウタ２４に解析応答を通知する。尚、コア２２は、ｈｅａｄ要素６２にある空白文字だけのテキスト要素についてはＤＯＭノードを生成しない。
【００２８】
次にｂｏｄｙ要素６５の解析について説明する。レイアウタ２４からの解析要求に応じてｂｏｄｙ要素６５の解析を始めるとき、図６に示すように、コア２２は処理対象文書６０、ｈｔｍｌ要素６１にそれぞれ対応するレイアウトノード７１、７２を生成してワークメモリ２０に記憶する。その後コア２２は、ｂｏｄｙ要素６５に対応するＤＯＭノード３９と、ｂｏｄｙタグ直後のテキスト要素としての改行に対応するＤＯＭノード４０とを生成し、ＤＯＭノード３０、３１、３９、４０からなる部分ＤＯＭツリーに基づいてＤＯＭノード３９に対応するレイアウトノード７３とＤＯＭノード４０に対応するレイアウトノード７４とを生成する。この過程で葉要素としての改行が検出されるため、次にコア２２はＤＯＭノード４０の記憶領域を開放し、レイアウタ２４に解析応答を通知する。このときＤＯＭノード４０の記憶領域が開放されるのは、葉要素である改行要素の直系の上位要素であるｂｏｄｙ要素６５、ｈｔｍｌ要素６１、処理対象文書６０のうち、対応するＤＯＭノードが生成されていない子要素を持つ要素に対応し最下位層にあるＤＯＭノードがｂｏｄｙ要素６５に対応するＤＯＭノード３９であって、それより下の階層のＤＯＭノードがＤＯＭノード４０だからである。
【００２９】
次にコア２２から通知された解析応答に応じて、レイアウタ２４はＤＯＭノード３０、３１、３９、４０からなる部分ＤＯＭツリーから得た情報を保持するレイアウトノード７１、７２、７３、７４に基づいて割り付け位置を計算する。このとき、ｈｅａｄ要素６２から取得されたスタイル情報も参照され、改行後の割り付け位置が計算される。レイアウタ２４は割り付け位置の計算を終了すると解析要求をコア２２に通知する。
【００３０】
この解析要求に応じて、コア２２は図７に示すように要素６６に対応するＤＯＭノード４１と、〈ｄｉｖ１〉タグの直後にある葉要素としての改行に対応するＤＯＭノード４３とを生成し、ＤＯＭノード３０、３１、３９、４１、４３からなる部分ＤＯＭツリーに基づいて、ＤＯＭノード４１に対応するレイアウトノード７５と、ＤＯＭノード４３に対応するレイアウトノード７６とを生成してワークメモリ２０に記憶する。次にコア２２はＤＯＭノード４３の記憶領域を開放し、レイアウタ２４に解析応答を通知する。
【００３１】
この解析応答に応じて再び割り付け位置の計算がレイアウタ２４によって実行され、その後レイアウタ２４からコア２２に解析要求が通知される。このときレイアウタ２４はレイアウトノード７１、７２、７３、７４、７５、７６とｈｅａｄ要素６２から取得されたスタイル情報とに基づいて割り付け位置を計算する。
【００３２】
この解析要求に応じてコア２２は図８に示すＤＯＭノード４４、４８を生成し、ＤＯＭノード３０、３１、３９、４１、４４、４８からなる部分ＤＯＭツリーに基づいて、ＤＯＭノード４４に対応するレイアウトノード７７と、ＤＯＭノード４８に対応するレイアウトノード７８とを生成してワークメモリ２０に記憶する。この過程で葉要素としての改行が検出されるため、次にコア２２はＤＯＭノード４８の記憶領域を開放し、レイアウタ２４に解析応答を通知する。この解析応答に応じて再び割り付け位置の計算がレイアウタ２４によって実行され、その後レイアウタ２４からコア２２に解析要求が通知される。
【００３３】
この解析要求に応じて、コア２２は図９に示すＤＯＭノード４９、５３を生成し、ＤＯＭノード３０、３１、３９、４１、４４、４９、５３からなる部分ＤＯＭツリーに基づいて、ＤＯＭノード４９に対応するレイアウトノード７９と、ＤＯＭノード５３に対応するレイアウトノード８０を生成してワークメモリ２０に記憶する。この過程で葉要素として「あいうえお」が検出されるため、次にコア２２はＤＯＭノード４９、５３の記憶領域を開放し、レイアウタ２４に解析応答を通知する。この解析応答に応じて再び割り付け位置の計算がレイアウタ２４によって実行され、その後レイアウタ２４からコア２２に解析要求が通知される。この時点において、「あいうえお」というテキスト要素６８の終端の割り付け位置までが確定している。以後同様にして、部分ＤＯＭツリーから得られる情報を保持するレイアウトノードに基づいて割り付け位置の計算が実行される。
【００３４】
図１０に示す状態まで、すなわち画像のリンク要素７０が解析され、ＤＯＭノード３０、３１、３９、４１、４６からなる部分ＤＯＭツリーに基づいてレイアウトノード８２が生成された状態まで処理対象文書６０の構造解析が終了し、割り付け位置の計算において改ページが発生したとする。するとコア２２は、図１１に示すように、後続ページのレイアウト位置の計算に不要なレイアウトノード７６、７７、７８、７９、８０、８１、８３、８４、８６、８５の記憶領域を開放する。
処理対象文書６０の終端要素までの構造解析が終了すると、ワークメモリ２０に残存している図１２に示すＤＯＭノードとレイアウトノードの全ての記憶領域が開放される。
【００３５】
以上説明したように、本実施形態によると、ワークメモリ２０に記憶する必要のあるＤＯＭノードのツリーである部分ＤＯＭツリーは、処理対象文書の全体の構造を示す図１３に示すＤＯＭツリーの一部に相当するため、従来に比べてワークメモリ２０の使用容量が少なくなる。また、本実施形態によると、処理対象文書の構造に関わらず、部分ＤＯＭツリーは処理対象文書の全体の構造を示す図１３に示すＤＯＭツリーの一部に相当するため、処理対象文書の構造に関わらず、従来に比べてワークメモリ２０の使用容量が少なくなる。
【００３６】
［他の実施形態］
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の形態で実施可能である。例えば本発明は、プリンタだけでなく、マークアップによって構造化された文書から画像を生成するためにＤＯＭを用いる様々なデバイスに適用することができる。具体的には例えば本発明は、ＰＣ（Personal Computer）、スタンドアロン型プロジェクタ、デジタルテレビジョンモニタ、携帯電話機等のｘｈｔｍｌ文書を表示しうるデバイスに適用することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態に係るフローチャート。
【図２】本発明の実施形態に係るブロック図。
【図３】本発明の実施形態に係るブロック図。
【図４】本発明の実施形態に係る模式図。
【図５】本発明の実施形態に係る模式図。
【図６】本発明の実施形態に係る模式図。
【図７】本発明の実施形態に係る模式図。
【図８】本発明の実施形態に係る模式図。
【図９】本発明の実施形態に係る模式図。
【図１０】本発明の実施形態に係る模式図。
【図１１】本発明の実施形態に係る模式図。
【図１２】本発明の実施形態に係る模式図。
【図１３】本発明の実施形態に係る模式図。
【符号の説明】
【００３８】
１：プリンタ、１０：入力部（入力手段）、１４：印刷エンジン（印刷手段）、２２：コア（解析手段、消去手段）、２４：レイアウタ（割り付け手段）、２６：レンダラー（描画手段）、２８：印刷コントローラ（印刷手段）、３０−５４：ＤＯＭノード、７１−８７：レイアウトノード、６０：処理対象文書、６１−７０：要素、
【図１】
2007200097.tif 000003
【図２】
2007200097.tif 000004
【図３】
2007200097.tif 000005
【図４】
2007200097.tif 000006
【図５】
2007200097.tif 000007
【図６】
2007200097.tif 000008
【図７】
2007200097.tif 000009
【図８】
2007200097.tif 000010
【図９】
2007200097.tif 000011
【図１０】
2007200097.tif 000012
【図１１】
2007200097.tif 000013
【図１２】
2007200097.tif 000014
【図１３】
2007200097.tif 000015