(57)【要約】【課題】  複数の要素がツリー構造化されている文書を限られた資源を用いて効率よくレイアウトできるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供する。【解決手段】  マークアップによって複数の要素がツリー構造化されている文書を入力し、前記文書に対応する不要要素情報を利用可能か判定し、前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報で特定される前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成し、前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトするレイアウト方法。【選択図】    図１
2007011450.tif 000002
【特許請求の範囲】
【請求項１】
マークアップによって複数の要素がツリー構造化されている文書を入力し、
前記文書に対応する不要要素情報を利用可能か判定し、
前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報で特定される前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成し、
前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする、
レイアウト方法。
【請求項２】
前記ＤＯＭツリーを生成するとき、前記不要要素情報で特定される前記要素のＤＯＭノードを全く生成しない請求項１に記載のレイアウト方法。
【請求項３】
前記ＤＯＭツリーを生成するとき、前記不要要素情報で特定される前記要素の親要素及び子要素のＤＯＭノードを接続するリンクを有する前記ＤＯＭツリーを生成する請求項２に記載のレイアウト方法。
【請求項４】
マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、
前記文書に対応する不要要素情報を利用可能か判定する手段と、
前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報に対応する前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成する手段と、
前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする手段と、
を備えるレイアウト装置。
【請求項５】
マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、
前記文書に対応する不要要素情報を利用可能か判定する手段と、
前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報で特定される前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成する手段と、
前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする手段と、
してコンピュータを機能させるレイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレイアウト方法に関し、特にマークアップによって複数の要素がツリー構造化されている文書のレイアウト方法に関する。
【背景技術】
【０００２】
従来、マークアップによって複数の要素がツリー構造化されているｘｈｔｍｌ文書、ＸＭＬ文書等の文書（以下、誤解のない文脈では単に文書という）が知られている。これらの文書は汎用性が高いため、様々な情報の記述に用いられている。例えば、特定のベンダが写真画像の印刷テンプレート仕様を策定する場合、別のベンダによるアプリケーション開発を容易にするため、印刷テンプレート仕様をｘｈｔｍｌ規格に即して策定することができる。
【０００３】
ところで、ｘｈｔｍｌ文書にアクセスするコンピュータシステムはＸＭＬパーサのＡＰＩであるＤＯＭ（Document Object Model）を用いて文書要素のレイアウトに必要な情報を取得している。
しかし、特定の仕様が策定される場合、その仕様を厳密なｘｈｔｍｌ規格に即して策定されると、その仕様に即した文書にＤＯＭを介してアクセスすることが非効率になる場合がある。例えば、ｘｈｔｍｌの特定タグについては１つの属性又は１つの文字データしか持ち得ない仕様であれば、文書にアクセスするアプリケーションが文書毎にＤＯＭを介してそのタグにアクセスすることは、メモリ資源の浪費や処理時間の浪費を招く。
【０００４】
【特許文献１】特開２００５−１１１７９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上述の問題を解決するために創作されたものであって、複数の要素がツリー構造化されている文書を限られた資源を用いて効率よくレイアウトできるレイアウト方法、レイアウト装置、レイアウトプログラム及びプリンタを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）上記目的を達成するためのレイアウト方法は、マークアップによって複数の要素がツリー構造化されている文書を入力し、前記文書に対応する不要要素情報を利用可能か判定し、前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報で特定される前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成し、前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする。
文書に対応する不要要素情報を利用可能である場合、その不要要素情報で特定される要素の属性又は文字データのＤＯＭノードを持たないＤＯＭツリーを生成し、そのＤＯＭツリーに基づいて文書の表示対象をレイアウトすることにより、メモリ資源の浪費や処理時間の浪費を抑制することができる。
【０００７】
（２）前記ＤＯＭツリーを生成するとき、前記不要要素情報で特定される前記要素のＤＯＭノードを全く生成しなくてもよい。
要素は開始タグと終了タグによって定められる範囲内に属性及び文字データを持つ。開始タグと終了タグは要素間のリンクを定めるマークアップであるが、これらのタグに対応するＤＯＭノードさえも生成しなければ、メモリ資源の浪費や処理時間の浪費をさらに抑制することができる。
【０００８】
（３）前記ＤＯＭツリーを生成するとき、前記不要要素情報で特定される前記要素の親要素及び子要素のＤＯＭノードを接続するリンクを有する前記ＤＯＭツリーを生成してもよい。
葉要素でない要素のタグに対応するＤＯＭノードを生成しない場合、文書内の必要な要素をもＤＯＭを用いてトラバースできなくなるが、ＤＯＭノードを生成しない要素の親要素及び子要素のＤＯＭノードを接続するリンクを生成することにより、ＤＯＭノードが生成されない要素以外の要素についてはＤＯＭを用いたトラバースが可能になる。
【０００９】
（４）上記目的を達成するためのレイアウト装置は、マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、前記文書に対応する不要要素情報を利用可能か判定する手段と、前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報に対応する前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成する手段と、前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする手段と、を備える。
文書に対応する不要要素情報を利用可能である場合、その不要要素情報で特定される要素の属性又は文字データのＤＯＭノードを持たないＤＯＭツリーを生成し、そのＤＯＭツリーに基づいて文書の表示対象をレイアウトすることにより、メモリ資源の浪費や処理時間の浪費を抑制することができる。
【００１０】
（５）上記目的を達成するためのレイアウトプログラムは、マークアップによって複数の要素がツリー構造化されている文書を入力する手段と、前記文書に対応する不要要素情報を利用可能か判定する手段と、前記不要要素情報を利用可能である場合、前記不要要素情報を利用しながら、前記不要要素情報で特定される前記要素の属性又は文字データのＤＯＭノードを生成せずに、前記文書を解析してＤＯＭツリーを生成する手段と、前記ＤＯＭツリーに基づいて前記文書の表示対象をレイアウトする手段と、してコンピュータを機能させる。
文書に対応する不要要素情報を利用可能である場合、その不要要素情報で特定される要素の属性又は文字データのＤＯＭノードを持たないＤＯＭツリーを生成し、そのＤＯＭツリーに基づいて文書の表示対象をレイアウトすることにより、メモリ資源の浪費や処理時間の浪費を抑制することができる。
【００１１】
尚、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。また、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【発明を実施するための最良の形態】
【００１２】
以下、実施例に基づいて本発明の実施の形態を説明する。
（レイアウト装置のハードウェア構成）
図２は本発明のレイアウト装置の一実施例としてのプリンタ１の構成を示すブロック図である。プリンタ１は、カード型フラッシュメモリ、ディジタルカメラ、ＣＤ、ハードディスク等に格納されている画像データ及びｘｈｔｍｌ文書から印刷データを生成し、これらの印刷対象データを単独で印刷できる所謂スタンドアロン型のプリンタである。
【００１３】
入力部１０は、カード型フラッシュメモリに格納されているデータを入力するためのメモリコントローラや、ディジタルカメラ、ＣＤドライブ、ハードディスクドライブ等の外部機器と通信するための各種の通信規格に適合したインタフェースを備えている。ワークメモリ１２は、揮発性のＲＡＭで構成されている。ワークメモリ１２には、入力部１０によって入力されたデータが格納される。印刷エンジン１４は、インクジェット方式、サーマル方式、レーザ方式等のいずれかの印刷方式に適合するように構成されている。フラッシュメモリ２２は、プリンタ１の制御プログラムが格納されている不揮発性のＲＡＭである。ＣＰＵ１６は、制御プログラムを実行することによりプリンタ１の各部を制御する。表示部２０はプリンタ１を操作するためのメニューを表示するためのＦＰＤ（Flat Panel Display）、ディスプレイコントローラ等を備える。操作部１８はメニューを操作するための押しボタンなどを供える。
【００１４】
尚、本発明はプリンタだけでなく、マークアップによって構造化された文書からビットマップデータを生成するためにＤＯＭを用いる様々なデバイスに適用することができる。例えば本発明は、ＰＣ（Personal Computer）、スタンドアロン型プロジェクタ、デジタルテレビジョンモニタ、携帯電話機等のｘｈｔｍｌ文書を表示しうるデバイスに適用することができる。
【００１５】
（レイアウト装置のソフトウェア構成）
図３は、プリンタ１のソフトウェア構成を示すブロック図である。
ユーザインタフェースモジュール２６、ＸＭＬパーサ３２、レイアウトモジュール３０及び印刷制御モジュール２８は、フラッシュメモリ２２に格納されている制御プログラム２４を構成しているモジュールである。
【００１６】
ユーザインタフェースモジュール２６は、メニューを表示部２０に表示し、操作部１８を介して行われるメニュー操作に応じて所定の処理を呼び出す。
レイアウトプログラムとしてのＸＭＬパーサ３２は、入力部１０によって入力される文書３６を解析してＤＯＭツリーを生成し、レイアウトモジュール３０にＡＰＩとしてＤＯＭを提供する。ＸＭＬパーサ３２は、ＤＯＭのインタフェースとして、「Ｎｏｄｅ」、「Ｄｏｃｕｍｅｎｔ」、「Ｅｌｅｍｅｎｔ」、「Ａｔｔｒ」、「Ｃｈａｒａｃｔｅｒ  Ｄａｔａ」、「Ｔｅｘｔ」、「Ｎａｍｅｄ  Ｎｏｄｅｍａｐ」及び「Ｄｏｍ  Ｅｘｃｅｐｔｉｏｎ」を有する。
【００１７】
レイアウトプログラムとしてのレイアウトモジュール３０は、ＸＭＬパーサ３２によって生成されるＤＯＭツリーを解析し、ＤＯＭツリーの表示対象をレイアウトしてビットマップデータを生成する。具体的には例えばレイアウトモジュール３０は、ＤＯＭツリーを解析して画像データを取得し、画像データの複合・拡大縮小・回転・クリッピング、文字データのレンダリング等を実行することによりＲＧＢの３チャネルのビットマップデータをページ毎又はバンド毎に生成する。
【００１８】
印刷制御モジュール２８は、レイアウトモジュール３０によって生成されたビットマップデータに対し、解像度変換、分版（ＲＧＢからＹＭＣＫへの色空間変換）、ハーフトーニング、インタレース処理等を実行することにより印刷データを生成する。印刷制御モジュール２８は、印刷データに基づいて印刷エンジン１４を制御する。
【００１９】
（印刷対象文書の構成）
本発明のレイアウト装置が処理対象とする文書は、特定のベンダによる仕様で規定されている各種の変数の値を、汎用的な規格に準拠したマークアップによってツリー構造化して記述したものである。本発明のレイアウト装置が処理対象とする文書はｘｈｔｍｌに準拠しているものでなくとも、マークアップによって複数の要素がツリー構造化されている文書（例えばＸＭＬ文書）であればよい。
【００２０】
図４は、プリンタ１に入力され、ＸＭＬパーサ３２によって解析される文書３６の一例を示している。図４に示す文書は、ｘｈｔｍｌに準拠して記述された印刷テンプレートに対してユーザが画像を指定することによって生成されたｘｈｔｍｌ文書である。文書３６の文法は、ｘｈｔｍｌに準拠した文法で予め規定されている。すなわち、例えば画像が差し込まれる領域、ユーザによって指定された画像等の表示に必要な変数を、ｘｈｔｍｌの文法に則って解釈すればどのようなシステムでも正しく解釈できるように文書３６の文法が規定されている。また、ｘｈｔｍｌに則れば、極めて柔軟なレイアウト指定が可能であるが、文書３６で記述可能なレイアウト態様は、それを処理するシステムに現実的でない処理能力を要求することがないように制限されている。したがって、ｘｈｔｍｌ文書として表示するためには必要な要素や属性であっても、規格に則って生成された文書３６では、特定の要素の属性や文字データについては１つの値のみが記述されたり、１つの組み合わせでしか値が記述されないことになる。
【００２１】
マークアップであるタグによって明示されている文書３６の構造は図５に示すとおりである。すなわち、文書３６は、プロローグ５１と、複数の要素とから構成され、ｈｔｍｌ、ｈｅａｄ、ｂｏｄｙ、ｌｉｎｋ、ｄｉｖ等の各種の要素はツリー構造化されている。図５では、要素を枠で表し、要素の包含関係を枠の包含関係によって表している。
ｈｔｍｌ要素５２は、名前空間宣言を有する。名前空間宣言３８によって文書３６が特定の規格に準拠した印刷テンプレートであるか否かを判定することが可能になる。文書３６の種類が特定の規格に準拠したものであるか否かをそれを処理するシステムに特定させる方法としては、名前空間宣言の他、例えばその種類に独特のタグを文書内に記述するなどの方法がある。
【００２２】
ｈｅａｄ要素５４及びｂｏｄｙ要素５６には要素毎に各種の変数が記述されている。具体的には例えば、文書３６の表示対象としての画像データへのリンク４６と、画像データの配置（ポートレート、ランドスケープ）の指定４８、拡大縮小の指定５０等を有する。
以下、名前空間宣言として「xmlns:eppif="http://aaaaaa"」が記述されている文書では、常に、ｂｏｄｙ要素５６の子要素は属性に「class="container container1"」を持つ「div」であり、さらにその子要素は属性に「class="clip"」を持つ「div」であり、さらにその子要素が属性に「class="f_dummy_f_dummy_1"」を持つ「div」であり、属性に「class="clip"」を持つ要素「div」の「style」属性の値は「position:absolute; overflow:hidden」であるものとして説明する。すなわち、このような構造と属性の値は、文書３６がｘｈｔｍｌに準拠している特定の規格に準拠していることさえ特定できれば、個々の内容を解析しなくても特定できるものとする。
【００２３】
（レイアウト方法）
図１は、本発明によるレイアウト方法の処理の流れを示すフローチャートである。図１に示す処理は、ユーザインタフェースモジュール２６がｘｈｔｍｌ文書の印刷要求を受け付けると開始され、ＸＭＬパーサ３２及びレイアウトモジュール３０を実行するＣＰＵ１６によって実行される。
【００２４】
ステップＳ１００では、ＸＭＬパーサ３２が印刷対象のｘｈｔｍｌ文書が解析不要な要素がある文書であるかを判定する。具体的には例えば特定の名前空間が宣言されている文書については解析不要な要素がある文書であると判定する。前述したように、ＸＭＬパーサ３２は解析不要な要素があるかを特定のタグの有無に応じて判定してもよい。解析不要な要素があるｘｈｔｌ文書である場合に実行されるＸＭＬパーサ３２のモジュールと、解析不要な要素がないｘｈｔｍｌ文書である場合に実行されるＸＭＬパーサ３２のモジュールとは異なる。すなわち、ステップＳ１００では、次に呼び出すモジュールを特定し、特定したモジュールを呼び出していることになる。
【００２５】
解析不要な要素があるｘｈｔｌ文書である場合、ＸＭＬパーサ３２はその文書を部分的に解析し、解析不要な要素の属性及び文字データのＤＯＭノードを生成せずにＤＯＭツリーを生成する（ステップＳ１０２）。属性及び文字データが解析不要であるか否か判定する方法には、ＸＭＬパーサ３２が属性及び文字データの解析が不要な要素が登録されているテーブルを参照したり、ＸＭＬパーサ３２の条件文に属性及び文字データを解析不要な要素を羅列したり、ＸＭＬパーサ３２の条件文で属性及び文字データの解析が必要な要素を羅列する方法がある。これらのテーブルや条件文が不要要素情報に相当する。
【００２６】
図６は、図４に示す文書３６を解析したＸＭＬパーサ３２によって生成されるＤＯＭツリーの全体の概要を示している。図７は図６の一部を詳細に示している。文書３６の要素４１には属性として「class="clip" style="position:absolute;overflow:hidden」が記述されているため、従来のＸＭＬパーサ３２であれば、「class="clip"」を保持する属性ノードと「style="position:absolute;overflow:hidden」を保持する属性ノードとを生成する。しかし、図４に示す文書３６では、前述したとおり属性に「class="clip"」を持つ要素「div」の「style」属性の値は「position:absolute; overflow:hidden」以外にありえないので、ＸＭＬパーサ３２は「style」属性のＤＯＭノードを生成しない。したがって、要素ノード６０にリンクされている属性ノードは「class」ノード６４のみであり、「style」ノードは存在しない。一方、属性として「class="f_dummy_f_dummy_1"」を保持する「div」要素４４の属性は印刷テンプレート毎に異なる値を取り得るため、要素ノード６２については「div」要素４４が持つ全ての属性を持つ属性ノード６６及び属性ノード６８が生成され、属性ノード６６及び属性ノード６８が要素ノード６２にリンクされている。
このようにＸＭＬパーサ３２が一部のＤＯＭノードを生成しないことにより、ワークメモリ１２に生成されるインスタンスが減る。その結果、処理速度が向上する。
【００２７】
ステップＳ１０４では、レイアウトモジュール３０がテンプレート印刷のレイアウトに必要な情報のみをＤＯＭから取得しながらＤＯＭツリーの表示対象をレイアウトする。具体的には例えば、レイアウトモジュール３０は、ＤＯＭツリーの表示対象としての画像データへのリンク４６（図４参照）と、画像データの配置の指定４８（図４参照）、拡大縮小の指定５０（図４参照）等をＤＯＭツリーをトラバースしながら取得する。さらにレイアウトモジュール３０は、画像データへのリンク４６を参照して表示対象の画像データを取得し、ページサイズ情報３９、レイアウト枠情報４０、画像データの配置の指定４８、拡大縮小の指定５０等を用いて画像データをページの所定領域にレイアウトする。このとき、文書３６には記述されているがＤＯＭツリーが保持していない情報（例えば前述した「style="position:absolute;overflow:hidden」）は、レイアウトモジュール３０がその情報に対応する決まった処理を実行することによってレイアウトに反映される。すなわち、レイアウトモジュール３０のコードにはその情報に対応した処理が記述されている。
【００２８】
解析不要な要素がないｘｈｔｍｌ文書である場合、ＸＭＬパーサ３２はその文書を完全に解析し、その文書の全ての要素、属性及び文字データのＤＯＭノードがリンクされているＤＯＭツリーを生成する（ステップＳ１０６）。
ステップＳ１０８では、レイアウトモジュール３０はレイアウトに必要な全ての情報をＤＯＭから取得しながらＤＯＭツリーの表示対象をレイアウトする。
【００２９】
以上のレイアウト処理が終了すると、ワークメモリ１２にはｘｈｔｍｌ文書に応じたビットマップデータが生成される。ワークメモリ１２に生成されたビットマップデータは印刷制御モジュール２８によって印刷データに変換される。印刷制御モジュール２８が印刷データに基づいて印刷エンジン１４を制御すると印刷対象のｘｈｔｍｌ文書が印刷される。
【００３０】
尚、特定の要素が持つ属性及び文字データが仕様上全て一通りしかあり得ない場合、ＸＭＬパーサ３２は属性及び文字データのＤＯＭノードのみならず、要素のＤＯＭノードさえも生成せずにＤＯＭツリーを生成してもよい。図８は図４に示す文書に対してＸＭＬパーサ３２がこのような処理をした場合に生成されるＤＯＭツリーの全体概要を示している。図８に示す例では、ｂｏｄｙ要素５６の子要素である要素５７に対応するＤＯＭノード７０と要素５５に対応するＤＯＭノード７２が直接リンクされ、要素５７の子要素である要素５８と要素５８の子要素である要素５９とに対応するＤＯＭノードは生成されていない。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施例に係るフローチャート。
【図２】本発明の一実施例に係るブロック図。
【図３】本発明の一実施例に係るブロック図。
【図４】本発明の一実施例に係るｘｈｔｍｌ文書例を示す図。
【図５】本発明の一実施例に係る模式図。
【図６】本発明の一実施例に係る模式図。
【図７】本発明の一実施例に係る模式図。
【図８】本発明の一実施例に係る模式図。
【符号の説明】
【００３２】
１：プリンタ（レイアウト装置）、１０：入力部、１２：ワークメモリ、１４：印刷エンジン、１８：操作部、２０：表示部、２２：フラッシュメモリ、２４：制御プログラム、２６：ユーザインタフェースモジュール、２８：印刷制御モジュール、３０：レイアウトモジュール、３２：ＸＭＬパーサ、３６：文書、４４：要素、４６：リンク
【図１】
2007011450.tif 000003
【図２】
2007011450.tif 000004
【図３】
2007011450.tif 000005
【図４】
2007011450.tif 000006
【図５】
2007011450.tif 000007
【図６】
2007011450.tif 000008
【図７】
2007011450.tif 000009
【図８】
2007011450.tif 000010