JP2007004232A - レイアウト方法 - Google Patents
レイアウト方法 Download PDFInfo
- Publication number
- JP2007004232A JP2007004232A JP2005180343A JP2005180343A JP2007004232A JP 2007004232 A JP2007004232 A JP 2007004232A JP 2005180343 A JP2005180343 A JP 2005180343A JP 2005180343 A JP2005180343 A JP 2005180343A JP 2007004232 A JP2007004232 A JP 2007004232A
- Authority
- JP
- Japan
- Prior art keywords
- tree
- dom tree
- partial
- document
- basic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】 複数の要素がツリー構造化されている文書を限られた資源を用いて効率よくレイアウトできるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供する。
【解決手段】 マークアップによって複数の要素がツリー構造化されている文書を入力する段階と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する段階と、前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す段階と、を含むレイアウト方法。
【選択図】 図1
【解決手段】 マークアップによって複数の要素がツリー構造化されている文書を入力する段階と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する段階と、前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す段階と、を含むレイアウト方法。
【選択図】 図1
Description
本発明はレイアウト方法に関し、特にマークアップによって複数の要素がツリー構造化されている文書のレイアウト方法に関する。
従来、マークアップによって複数の要素がツリー構造化されているxhtml文書、XML文書等の文書(以下、誤解のない文脈では単に文書という)を表示するとき、コンピュータシステムはXMLパーサのAPIであるDOM(Document Object Model)を用いて文書要素のレイアウトに必要な情報を取得している。XMLパーサは、文書内のさまざまなノード間の参照をDOMオブジェクトによって階層的に蓄えることによって文書へのランダムアクセスを可能にしているため、XMLパーサによって文書全体のデータ量を超えるデータが一度にメモリに格納されることになる。
しかし、従来のXMLパーサでは、十分なメモリの容量を確保できない制約がある場合、例えばスタンドアロン型のプリンタ(特許文献1参照)では長い文書に対応できなかったり、オーバヘッドが大きくなったりする問題がある。
しかし、従来のXMLパーサでは、十分なメモリの容量を確保できない制約がある場合、例えばスタンドアロン型のプリンタ(特許文献1参照)では長い文書に対応できなかったり、オーバヘッドが大きくなったりする問題がある。
本発明は、上述の問題に鑑みて創作されたものであって、複数の要素がツリー構造化されている文書を限られた資源を用いて効率よくレイアウトできるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供することを目的とする。
(1)上記目的を達成するためのレイアウト方法は、マークアップによって複数の要素がツリー構造化されている文書を入力する段階と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する段階と、前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す段階と、を含む。
プログラムが文書内のある表示対象をレイアウトするときには、その表示対象に対応するDOMインスタンスと、そのDOMインスタンスに直列的にリンクされているDOMインスタンスとで構成されるDOMツリーに少なくともアクセスする必要はあるが、その表示対象に対応するDOMツリーと兄弟関係にあるDOMツリーにアクセスする必要はない。したがって、文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
プログラムが文書内のある表示対象をレイアウトするときには、その表示対象に対応するDOMインスタンスと、そのDOMインスタンスに直列的にリンクされているDOMインスタンスとで構成されるDOMツリーに少なくともアクセスする必要はあるが、その表示対象に対応するDOMツリーと兄弟関係にあるDOMツリーにアクセスする必要はない。したがって、文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
(2)前記部分DOMツリーの表示対象をレイアウトするとき、前記部分DOMツリーのレイアウト情報を前記基本DOMツリーに追加してもよい。
特定の部分DOMツリーが持つレイアウト情報が他の部分DOMツリーの表示対象のレイアウトに影響を与える場合がある。例えば、特定の表示対象に周囲余白が設定されている場合である。そのようなレイアウト情報は、そのレイアウト情報を持つDOMツリーが消去され、他のDOMツリーの表示対象をレイアウトするときに必要となる。そこで、部分DOMツリーの表示対象をレイアウトするとき、その部分DOMツリーのレイアウト情報を基本DOMツリーに追加することにより、その部分DOMツリーを消去した後に生成される部分DOMツリーの表示対象をレイアウトするときには基本DOMツリーにアクセスすれば必要なレイアウト情報を取得できる。
特定の部分DOMツリーが持つレイアウト情報が他の部分DOMツリーの表示対象のレイアウトに影響を与える場合がある。例えば、特定の表示対象に周囲余白が設定されている場合である。そのようなレイアウト情報は、そのレイアウト情報を持つDOMツリーが消去され、他のDOMツリーの表示対象をレイアウトするときに必要となる。そこで、部分DOMツリーの表示対象をレイアウトするとき、その部分DOMツリーのレイアウト情報を基本DOMツリーに追加することにより、その部分DOMツリーを消去した後に生成される部分DOMツリーの表示対象をレイアウトするときには基本DOMツリーにアクセスすれば必要なレイアウト情報を取得できる。
(3)前記レイアウト方法は、前記文書のhead要素を解析してheadDOMツリーを生成する段階と、前記headDOMツリーに基づいて複数の前記部分DOMツリーに共通するレイアウト情報を取得する段階と、前記headDOMツリーを削除する段階と、をさらに含んでもよい。前記部分DOMツリーの表示対象をレイアウトするとき、前記基本DOMツリーと前記部分DOMツリーと複数の前記DOMツリーに共通するレイアウト情報とに基づいて前記部分DOMツリーの表示対象をレイアウトしてもよい。
head要素には文書全体のレイアウトに影響を与える情報、例えばページサイズや特定の名前が付された要素のレイアウト枠などが直接記述されたり、これらの情報にアクセスするための参照が記述されることがある。そこで、部分DOMツリーの表示対象をレイアウトする前に、文書のhead要素を解析してheadDOMツリーを生成し、headDOMツリーに基づいて複数の部分DOMツリーに共通するレイアウト情報を取得しておくことにより、文書作成者がhead要素に記述したレイアウト情報を、関連する表示対象のレイアウトに反映させることができる。さらに、headDOMツリーからレイアウト情報を取得した後にheadDOMツリーを消去することにより、メモリを節約することができる。
head要素には文書全体のレイアウトに影響を与える情報、例えばページサイズや特定の名前が付された要素のレイアウト枠などが直接記述されたり、これらの情報にアクセスするための参照が記述されることがある。そこで、部分DOMツリーの表示対象をレイアウトする前に、文書のhead要素を解析してheadDOMツリーを生成し、headDOMツリーに基づいて複数の部分DOMツリーに共通するレイアウト情報を取得しておくことにより、文書作成者がhead要素に記述したレイアウト情報を、関連する表示対象のレイアウトに反映させることができる。さらに、headDOMツリーからレイアウト情報を取得した後にheadDOMツリーを消去することにより、メモリを節約することができる。
(4)前記部分ツリーのルートはbody要素の子であってもよい。
xhtml文書の内容はbody要素より下の階層の要素に記述されるため、部分DOMツリーのルートをbody要素の子要素に決めておくことにより、文書を解析して基本ツリーと部分ツリーの境界を設定する処理を簡略化することができる。
xhtml文書の内容はbody要素より下の階層の要素に記述されるため、部分DOMツリーのルートをbody要素の子要素に決めておくことにより、文書を解析して基本ツリーと部分ツリーの境界を設定する処理を簡略化することができる。
(5)上記目的を達成するためのレイアウト装置は、マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する手段と、前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、を備える。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて効率よく文書をレイアウトすることができる。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて効率よく文書をレイアウトすることができる。
(6)上記目的を達成するためのレイアウトプログラムは、マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する手段と、
前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、してコンピュータを機能させる。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、してコンピュータを機能させる。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
(7)上記目的を達成するためのプリンタは、マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する手段と、前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、前記レイアウトされた表示対象を印刷する手段と、を備える。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
文書のルートを含む基本ツリーを解析して基本DOMツリーを生成した後、兄弟関係にある部分DOMツリーを択一的に生成して消去しながら、各部分DOMツリーの表示対象をレイアウトすることにより、メモリ空間に同居するDOMインスタンスの数が減る。その結果、限られた資源を用いて文書を効率よくレイアウトすることができる。
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
以下、実施例に基づいて本発明の実施の形態を説明する。
(レイアウト装置のハードウェア構成)
図2は本発明のレイアウト装置の一実施例としてのプリンタ1の構成を示すブロック図である。プリンタ1は、カード型フラッシュメモリ、ディジタルカメラ、CD、ハードディスク等に格納されている画像データ及びxhtml文書から印刷データを生成し、これらの印刷対象データを単独で印刷できる所謂スタンドアロン型のプリンタである。
(レイアウト装置のハードウェア構成)
図2は本発明のレイアウト装置の一実施例としてのプリンタ1の構成を示すブロック図である。プリンタ1は、カード型フラッシュメモリ、ディジタルカメラ、CD、ハードディスク等に格納されている画像データ及びxhtml文書から印刷データを生成し、これらの印刷対象データを単独で印刷できる所謂スタンドアロン型のプリンタである。
入力部10は、カード型フラッシュメモリに格納されているデータを入力するためのメモリコントローラや、ディジタルカメラ、CDドライブ、ハードディスクドライブ等の外部機器と通信するための各種の通信規格に適合したインタフェースを備えている。ワークメモリ12は、揮発性のRAMで構成されている。ワークメモリ12には、入力部10によって入力されたデータが格納される。印刷エンジン14は、インクジェット方式、サーマル方式、レーザ方式等のいずれかの印刷方式に適合するように構成されている。フラッシュメモリ22は、プリンタ1の制御プログラムが格納されている不揮発性のRAMである。CPU16は、制御プログラムを実行することによりプリンタ1の各部を制御する。表示部20はプリンタ1を操作するためのメニューを表示するためのFPD(Flat Panel Display)、ディスプレイコントローラ等を備える。操作部18はメニューを操作するための押しボタンなどを備える。
尚、本発明はプリンタだけでなく、マークアップによって構造化された文書からビットマップデータを生成するためにDOMを用いる様々なデバイスに適用することができる。例えば本発明は、PC(Personal Computer)、スタンドアロン型プロジェクタ、デジタルテレビジョンモニタ、携帯電話機等のxhtml文書を表示しうるデバイスに適用することができる。
尚、本発明はプリンタだけでなく、マークアップによって構造化された文書からビットマップデータを生成するためにDOMを用いる様々なデバイスに適用することができる。例えば本発明は、PC(Personal Computer)、スタンドアロン型プロジェクタ、デジタルテレビジョンモニタ、携帯電話機等のxhtml文書を表示しうるデバイスに適用することができる。
(レイアウト装置のソフトウェア構成)
図3は、プリンタ1のソフトウェア構成を示すブロック図である。
ユーザインタフェースモジュール26、XMLパーサ32、レイアウトモジュール30及び印刷制御モジュール28は、フラッシュメモリ22に格納されている制御プログラム24を構成しているモジュールである。
ユーザインタフェースモジュール26は、メニューを表示部20に表示し、操作部18を介して行われるメニュー操作に応じて所定の処理を呼び出す。
図3は、プリンタ1のソフトウェア構成を示すブロック図である。
ユーザインタフェースモジュール26、XMLパーサ32、レイアウトモジュール30及び印刷制御モジュール28は、フラッシュメモリ22に格納されている制御プログラム24を構成しているモジュールである。
ユーザインタフェースモジュール26は、メニューを表示部20に表示し、操作部18を介して行われるメニュー操作に応じて所定の処理を呼び出す。
レイアウトプログラムとしてのXMLパーサ32は、入力部10によって入力される文書36を解析してDOMツリーを生成し、レイアウトモジュール30にAPIとしてDOMを提供する。XMLパーサ32は、DOMのインタフェースとして、「Node」、「Document」、「Element」、「Attr」、「Character Data」、「Text」、「Named Nodemap」及び「Dom Exception」を有する。
レイアウトプログラムとしてのレイアウトモジュール30は、XMLパーサ32によって生成されるDOMツリーを解析し、DOMツリーの表示対象をレイアウトしてビットマップデータを生成する。具体的には例えばレイアウトモジュール30は、DOMツリーを解析して画像データを取得し、画像データの復号・拡大縮小・回転・クリッピング、文字データのレンダリング等を実行することによりRGBの3チャネルのビットマップデータをページ毎に生成する。
印刷制御モジュール28は、レイアウトモジュール30によって生成されたビットマップデータに対し、解像度変換、分版(RGBからYMCKへの色空間変換)、ハーフトーニング、インタレース処理等を実行することにより印刷データを生成する。印刷制御モジュール28は、印刷データに基づいて印刷エンジン14を制御する。
(印刷対象文書の構成)
図4は、プリンタ1に入力され、XMLパーサ32によって解析される文書36の一例を示している。文書36はxhtmlに準拠しているものでなくとも、マークアップによって複数の要素がツリー構造化されている文書(例えばXML文書)であればよい。
図4は、プリンタ1に入力され、XMLパーサ32によって解析される文書36の一例を示している。文書36はxhtmlに準拠しているものでなくとも、マークアップによって複数の要素がツリー構造化されている文書(例えばXML文書)であればよい。
マークアップであるタグによって明示されている文書36の構造は図5に示すとおりである。すなわち、文書36は、プロローグ50と、複数の要素とから構成され、html、head、body、link、div等の各種の要素はツリー構造化されている。図5では、要素を枠で表し、要素の包含関係を枠の包含関係によって表している。
head要素54は、文書36の複数の表示対象に共通するレイアウト情報として、例えばスタイルシート情報38、ページサイズ情報40、レイアウト枠情報42等を有する。これらのレイアウト情報は、head要素54に包含されている要素の属性又はhead要素54に包含されている文字要素として記述されている。
body要素64は、文書36の表示対象としての画像データへのリンク44と、表示対象のレイアウト情報としての画像データの配置(ポートレート、ランドスケープ)の指定46、拡大縮小の指定48等を有する。これらはbody要素64に包含されている要素の属性として記述されている。尚、表示対象として画像データを例示しているが、表示対象が文書内に要素として記述される文字データであってもよいのは勿論である。
(DOMツリー)
図6は、XMLパーサ32によって生成されるDOMツリーと文書36の構造の関係を示している。文書36の全要素に対応するDOMツリーは、基本DOMツリー78、headDOMツリー80、部分DOMツリー82及び部分DOMツリー84で構成される。基本DOMツリー78は、基本ツリーを構成するhtml要素52及びbody要素64の解析によって生成される。headDOMツリー80はhead要素54とhead要素54に包含されている要素との解析によって生成される。部分DOMツリー82及び部分DOMツリー84は、それぞれbody要素64のいずれかの子要素と、その子要素に包含されている各要素とで構成される部分ツリーの解析によって生成される。ただし、これらのDOMツリーは一度に生成されるものではない。言い換えれば、図6に示す全要素に対応するDOMツリーの全情報の実体であるインスタンス群が同時にワークメモリ12に存在することはない。XMLパーサ32は、従来のように文書全体を解析して文書全体に対応するDOMツリー全体をワークメモリ12に記憶するかわりに、基本的にはレイアウトに必要なDOMインスタンスを表示対象毎に生成してワークメモリ12に記憶し、表示対象毎にDOMインスタンスを消去することによりワークメモリ12に要求される記憶容量を低減する。ただし、DOMツリーを分割すると文書36の要素間の完全なトラバースが不可能になる。そこで、文書36の作成者が意図しているレイアウトを完全に再現するためには、DOMツリーの分割単位の設定やレイアウト情報の待避が必要になる。以下、これらの詳細をフローチャートに基づいて説明する。
図6は、XMLパーサ32によって生成されるDOMツリーと文書36の構造の関係を示している。文書36の全要素に対応するDOMツリーは、基本DOMツリー78、headDOMツリー80、部分DOMツリー82及び部分DOMツリー84で構成される。基本DOMツリー78は、基本ツリーを構成するhtml要素52及びbody要素64の解析によって生成される。headDOMツリー80はhead要素54とhead要素54に包含されている要素との解析によって生成される。部分DOMツリー82及び部分DOMツリー84は、それぞれbody要素64のいずれかの子要素と、その子要素に包含されている各要素とで構成される部分ツリーの解析によって生成される。ただし、これらのDOMツリーは一度に生成されるものではない。言い換えれば、図6に示す全要素に対応するDOMツリーの全情報の実体であるインスタンス群が同時にワークメモリ12に存在することはない。XMLパーサ32は、従来のように文書全体を解析して文書全体に対応するDOMツリー全体をワークメモリ12に記憶するかわりに、基本的にはレイアウトに必要なDOMインスタンスを表示対象毎に生成してワークメモリ12に記憶し、表示対象毎にDOMインスタンスを消去することによりワークメモリ12に要求される記憶容量を低減する。ただし、DOMツリーを分割すると文書36の要素間の完全なトラバースが不可能になる。そこで、文書36の作成者が意図しているレイアウトを完全に再現するためには、DOMツリーの分割単位の設定やレイアウト情報の待避が必要になる。以下、これらの詳細をフローチャートに基づいて説明する。
(レイアウト方法)
図1は、本発明の一実施例によるレイアウト方法の処理の流れを示すフローチャートである。図1に示す処理は、ユーザインタフェースモジュール26がxhtml文書の印刷要求を受け付けると開始され、XMLパーサ32及びレイアウトモジュール30を実行するCPU16によって実行される。
図1は、本発明の一実施例によるレイアウト方法の処理の流れを示すフローチャートである。図1に示す処理は、ユーザインタフェースモジュール26がxhtml文書の印刷要求を受け付けると開始され、XMLパーサ32及びレイアウトモジュール30を実行するCPU16によって実行される。
ステップS100では、XMLパーサ32が印刷対象のxhtml文書のhtml要素及びbody要素を解析して基本DOMツリーを生成する。具体的には例えば、XMLパーサ32は、文書36、html要素52及びbody要素64に対応するインスタンスで構成される基本DOMツリー78をワークメモリ12のアドレス空間に生成する。図7は、基本DOMツリー78を構成しているインスタンスを表している。XMLパーサ32は、文書36、html要素52及びbody要素64にそれぞれ対応するDocumentノード86、Elementノード88、Elementノード90を生成する。html要素52及びbody要素64の属性は、それぞれElementノード88のサブツリー92、Elementノード90のサブツリー98として記憶される。具体的には、サブツリー92、98を構成している属性ノード94、96、100がhtml要素52及びbody要素64の属性を保持している。
ステップS102では、XMLパーサ32が印刷対象のxhtml文書のhead要素及びhead要素に内包される要素を解析してHeadDOMツリーを生成し、基本DOMツリーの子としてHeadDOMツリーを基本DOMツリーに連結する。具体的には例えば、XMLパーサ32は、head要素54及びそれに内包される要素56、58、60、62に対応するインスタンスで構成されるHeadDOMツリー80をワークメモリ12のアドレス空間に生成する。このとき上述したようにXMLパーサ32は、文書36の各要素に対応したノードや属性のサブツリーを生成する。図8は、HeadDOMツリー80を構成しているインスタンスを表している。そしてXMLパーサ32は、headDOMツリー80のルートノードであるHeadノード102を基本DOMツリー78のhtmlノード88の子として連結する。この結果、レイアウトモジュール30が基本DOMツリー78及びHeadDOMツリー80を完全にトラバースできるようになる。
ステップS104では、レイアウトモジュール30が基本DOMツリー及びHeadDOMツリーを解析し、基本DOMツリー及びHeadDOMツリーが保持するレイアウト情報を取得する。具体的には例えば、レイアウトモジュール30は、HeadDOMツリー80のElementノード106のサブツリー116が保持するスタイルシート情報38(図4参照)やHeadDOMツリー80のTextノード112が保持するページサイズ情報40(図4参照)やレイアウト枠情報42(図4参照)を、基本DOMツリー78及びHeadDOMツリー80をトラバースしながら取得する。
ステップS106では、レイアウトモジュール30はHeadDOMツリーを基本DOMツリーから切り離し、HeadDOMツリーを消去する。具体的には例えば、レイアウトモジュール30はhtmlノード88とheadノード102とのリンクを切り離し、HeadDOMツリー80を消去する。すなわち、レイアウトモジュール30はHeadDOMツリー80を構成しているインスタンスをワークメモリ12のアドレス空間から消去する。この結果、ワークメモリ12の空き容量が増大する。
ステップS108、S110では、XMLパーサ32が印刷対象のxhtml文書のbodyの子要素を1つずつ順に選択する。
ステップS112では、XMLパーサ32は、選択したbodyの子要素とそれに包含される要素を解析して部分DOMツリーを生成し、基本DOMツリーに連結する。具体的には例えば、文書36のbody要素64の子要素の1つであるdiv要素66とdiv要素66に包含される要素68、70、72、74に対応するインスタンスで構成される部分DOMツリー82をワークメモリ12のアドレス空間に生成する。このとき上述したようにXMLパーサ32は、文書36の各要素に対応したノードや属性のサブツリーを生成する。図9は部分DOMツリー82を構成しているインスタンスを表している。そしてXMLパーサ32は、部分DOMツリー82のルートノードであるdivノード128を基本DOMツリー78のbodyノード90の子として連結する。この結果、レイアウトモジュール30が基本DOMツリー78及び部分DOMツリー82を完全にトラバースできるようになる。すなわち、印刷対象の文書36のdiv要素66の表示対象である画像データ(部分DOMツリー82の属性ノード138によって保持されている「eeeeee.JPG」。(図4及び図9参照))をレイアウトするために必要な情報をレイアウトモジュール30がXMLパーサ32から取得できるようになる。尚、Head要素及びそれに内包されている要素が保持していたレイアウト情報は、上述したステップS104でレイアウトモジュール30によって取得されているため、ステップS112の処理が終了した時点で、印刷対象文書のbody要素及びそれに内包されている要素が保持する表示対象のレイアウト情報が一応は揃った状態になる。
ステップS114では、レイアウトモジュール30は、基本DOMツリー及び部分DOMツリーを解析し、部分DOMツリーの表示対象をレイアウトする。具体的には例えば、レイアウトモジュール30は、部分DOMツリー82の表示対象としての画像データへのリンク44(図4参照)と、画像データの配置の指定46(図4参照)、拡大縮小の指定48(図4参照)等を基本DOMツリー78及び部分DOMツリー82をトラバースしながら取得する。さらにレイアウトモジュール30は、画像データへのリンク44を参照して表示対象の画像データを取得し、ページサイズ情報40、レイアウト枠情報42、画像データの配置の指定46、拡大縮小の指定48等を用いて画像データをページの所定領域にレイアウトする。
ステップS116では、レイアウトモジュール30はステップS114で部分DOMツリーから取得したレイアウト情報を基本DOMツリーに追加する。具体的には例えばレイアウトモジュール30は基本DOMツリー78の特定のノードのサブツリーとして、すなわち基本DOMツリー78の属性ノードとしてレイアウト情報を基本DOMツリー78に追加する。尚、レイアウト情報を基本DOMツリーにどのように保持させるかは任意であり、例えばTextノードとしてレイアウト情報を基本DOMツリーに追加してもよい。
前述したステップS114の処理が実行されているとき、既に消去された部分DOMツリーからレイアウトモジュール30が取得したレイアウト情報を基本DOMツリーが保持している場合、レイアウトモジュール30はこのレイアウト情報も用いながら表示対象をレイアウトする。具体的には例えば、図10に示すように、先にレイアウトされる表示対象186にマージン174、176、180、182が設定され、後にレイアウトされる表示対象196にマージン188、190、192、194が設定されている場合、先に実行されるステップS116では、表示対象186がレイアウトされた領域を特定する情報(例えば領域左上座標184及び領域右下座標178)とマージン174、176、180、182とが基本DOMツリーに追加される。後に実行されるステップS114で表示対象196をレイアウトするときには、基本DOMツリーがこれらのレイアウト情報を保持しており、部分DOMツリーが表示対象196のマージン188、190、192、194を保持している。この場合、レイアウトモジュール30は、2つの表示対象に個別に設定されているマージンを単純加算することなく、2つの表示対象に個別に設定されているマージンのうちより広いマージンが2つの表示対象間のマージンになるように後の表示対象196のレイアウト位置を設定する。このような処理の結果、文書の構造を完全に保持するDOMツリーのインスタンスがワークメモリ12のアドレス空間に存在しなくとも、レイアウトモジュール30は文書作成者が意図したレイアウトを反映できることとなる。
ステップS118では、レイアウトモジュール30は部分DOMツリーを基本DOMツリーから切り離し、部分DOMツリーを消去する。具体的には例えば、レイアウトモジュール30はbodyノード90とdivノード128とのリンクを切り離し、部分DOMツリー82を消去する。すなわち、レイアウトモジュール30は部分DOMツリー82を構成しているインスタンスをワークメモリ12のアドレス空間から消去する。この結果、ワークメモリ12の空き容量が増大する。
XMLパーサ32は、印刷対象のxhtml文書の全要素について上述の処理によってDOMツリーを生成すると、残っている基本DOMツリーを消去する(ステップS120)。具体的には例えば、XMLパーサ32は基本DOMツリー78を構成しているインスタンスをワークメモリ12のアドレス空間から消去する。
以上説明した図1に示す一連の処理が終了すると、印刷対象のxhtml文書の全表示対象がレイアウトされる。その結果、ワークメモリ12に生成されるビットマップデータは、印刷制御モジュール28によって印刷データに変換される。印刷制御モジュール28が印刷データに基づいて印刷エンジン14を制御すると、印刷対象のxhtml文書が印刷される。
尚、上述した実施例では基本DOMツリーの葉ノードと印刷対象文書のbody要素とを対応付けたが、各部分DOMツリーのルートノードが印刷対象文書の兄弟関係にある要素に対応していれば基本DOMツリーと部分DOMツリーとの境界はどのように設定することもできる。
尚、上述した実施例では基本DOMツリーの葉ノードと印刷対象文書のbody要素とを対応付けたが、各部分DOMツリーのルートノードが印刷対象文書の兄弟関係にある要素に対応していれば基本DOMツリーと部分DOMツリーとの境界はどのように設定することもできる。
1:プリンタ(レイアウト装置)、10:入力部、12:ワークメモリ、14:印刷エンジン、18:操作部、20:表示部、22:フラッシュメモリ、24:制御プログラム、26:ユーザインタフェースモジュール、28:印刷制御モジュール、30:レイアウトモジュール、32:XMLパーサ、36:文書、38:スタイルシート情報(レイアウト情報)、40:ページサイズ情報(レイアウト情報)、42:レイアウト枠情報(レイアウト情報)、46:画像データの配置の指定(レイアウト情報)、48:拡大縮小の指定(レイアウト情報)、52:要素、54:要素、56:要素、64:要素、66:要素、68:要素、78:基本DOMツリー、80:HeadDOMツリー、82:部分DOMツリー、84:部分DOMツリー
Claims (6)
- マークアップによって複数の要素がツリー構造化されている文書を入力する段階と、
前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する段階と、
前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す段階と、
を含むレイアウト方法。 - 前記部分DOMツリーの表示対象をレイアウトするとき、前記部分DOMツリーのレイアウト情報を前記基本DOMツリーに追加する請求項1に記載のレイアウト方法。
- 前記文書のhead要素を解析してheadDOMツリーを生成する段階と、
前記headDOMツリーに基づいて複数の前記DOMツリーに共通するレイアウト情報を取得する段階と、
前記headDOMツリーを削除する段階と、をさらに含み、
前記部分DOMツリーの表示対象をレイアウトするとき、前記基本DOMツリーと前記部分DOMツリーと複数の前記DOMツリーに共通するレイアウト情報とに基づいて前記部分DOMツリーの表示対象をレイアウトする請求項1又は2に記載のレイアウト方法。 - 前記部分ツリーのルートはbody要素の子である請求項1〜3のいずれか一項に記載のレイアウト方法。
- マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、
前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する手段と、
前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、
を備えるレイアウト装置。 - マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、
前記文書のルートを含む一部の前記要素のツリーである基本ツリーを解析して基本DOMツリーを生成する手段と、
前記基本ツリーの葉である前記要素の子である前記要素を択一的に選択し、選択された前記要素をルートとし前記文書の葉を含む前記要素のツリーである部分ツリーを解析して部分DOMツリーを生成し、前記基本DOMツリー及び前記部分DOMツリーに基づいて前記部分DOMツリーの表示対象をレイアウトし、前記部分DOMツリーを消去する一連の処理を繰り返す手段と、
してコンピュータを機能させるレイアウトプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180343A JP2007004232A (ja) | 2005-06-21 | 2005-06-21 | レイアウト方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180343A JP2007004232A (ja) | 2005-06-21 | 2005-06-21 | レイアウト方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007004232A true JP2007004232A (ja) | 2007-01-11 |
Family
ID=37689830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005180343A Withdrawn JP2007004232A (ja) | 2005-06-21 | 2005-06-21 | レイアウト方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007004232A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014532253A (ja) * | 2012-10-10 | 2014-12-04 | エスケー プラネット カンパニー、リミテッド | ウェブ文書の高速ウェブスクロールを支援するユーザ端末装置及びスクロール方法 |
CN105736961A (zh) * | 2012-07-27 | 2016-07-06 | Lg伊诺特有限公司 | 照明装置 |
-
2005
- 2005-06-21 JP JP2005180343A patent/JP2007004232A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105736961A (zh) * | 2012-07-27 | 2016-07-06 | Lg伊诺特有限公司 | 照明装置 |
JP2014532253A (ja) * | 2012-10-10 | 2014-12-04 | エスケー プラネット カンパニー、リミテッド | ウェブ文書の高速ウェブスクロールを支援するユーザ端末装置及びスクロール方法 |
US9465780B2 (en) | 2012-10-10 | 2016-10-11 | Sk Planet Co., Ltd. | User terminal device and scroll method supporting high-speed web scroll of web document |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007200097A (ja) | レイアウト方法 | |
JP2010118054A (ja) | サムネイル生成方法及び画像形成装置 | |
JP2007004232A (ja) | レイアウト方法 | |
JP2008234339A (ja) | 情報処理装置、情報処理システム、及びプリンタドライバ | |
JP2005063243A (ja) | 情報処理装置、プログラム及びコンピュータ読み取り可能な記録媒体 | |
RU2573271C2 (ru) | Устройство обработки информации, способ управления web-браузером и носитель хранения, сохраняющий программу для него | |
JP5353771B2 (ja) | 画像形成装置、画像処理装置、画像処理システム、画像処理方法、プログラム、及び記録媒体 | |
JP2007018172A (ja) | 情報処理装置、情報処理方法 | |
JP2007156898A (ja) | 情報処理装置及びその制御方法、プログラム、記憶媒体 | |
JP2006015734A (ja) | 画像形成装置、画像形成装置の処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP2006255916A (ja) | プリンタ | |
JP5228543B2 (ja) | 印刷ジョブ処理システムおよび印刷ジョブ処理方法 | |
JP2007011450A (ja) | レイアウト方法、レイアウト装置及びレイアウトプログラム | |
JP4613659B2 (ja) | 画像処理システム | |
JP2008176451A (ja) | 電子文書提供装置、端末装置、電子文書提供方法、電子文書表示制御方法、電子文書提供プログラム、および電子文書表示制御プログラム | |
JP2010214746A (ja) | 印刷処理システム、印刷処理方法およびプログラム | |
JPH11249835A (ja) | 印刷システム及び印刷方法並びに印刷処理プログラムが記録された記録媒体 | |
JP2007173890A (ja) | 画像処理装置および画像保存方法 | |
JP2008181484A (ja) | ドキュメント・オブジェクト・モデル記述のコンテキストに基づいたトラバースのためのシステムおよび方法 | |
US10713413B2 (en) | Image processing apparatus and recording medium | |
JP2006238248A (ja) | 複数のデータを含んだデータ群の処理装置及び方法 | |
JP2008112319A (ja) | 文書処理装置および文書処理プログラム | |
JP4735425B2 (ja) | 画像処理装置、画像処理方法 | |
JP2003346167A (ja) | 画像処理装置および画像処理プログラム | |
JP2005070827A (ja) | 構造化文書データおよびコンテンツ処理方法およびその処理を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20061222 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061226 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |