(57)【要約】【課題】位置指定された要素が文書内のどこに記述されていても、ユーザの期待する印刷結果を得る画像処理システムを提供すること。【解決手段】構造化言語で記述された文書に対する処理を行う画像処理システムにおいて、前記文書の構造を示す木構造に基づいて、Ｎ（Ｎは２以上の整数）頁目にレイアウトすべき前記文書内の要素以降に、（Ｎ−１）頁目にレイアウトしなければならない前記文書内の要素が存在すれば、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトするレイアウト手段を備えることを特徴としている。【選択図】  図９
2006277112.tif 000002
【特許請求の範囲】
【請求項１】
構造化言語で記述された文書に対する処理を行う画像処理システムにおいて、
前記文書の構造を示す木構造に基づいて、Ｎ（Ｎは２以上の整数）頁目にレイアウトすべき前記文書内の要素以降に、（Ｎ−１）頁目にレイアウトしなければならない前記文書内の要素が存在すれば、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトするレイアウト手段、
を備えることを特徴とする画像処理システム。
【請求項２】
請求項１記載の画像処理システムにおいて、
前記レイアウト手段は、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素が出現するまで前記木構造内の各要素を読み捨てることで、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトする、ことを特徴とする画像処理システム。
【請求項３】
請求項２記載の画像処理システムにおいて、
更に、前記文書の木構造を生成する木構造生成手段を備え、
前記木構造生成手段は、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を優先要素として他の要素と区別するための識別子を、当該優先要素に付与し、
前記レイアウト手段は、前記識別子が付与されていない前記要素を読み捨てる、ことを特徴とする画像処理システム。
【請求項４】
請求項２記載の画像処理システムにおいて、
更に、前記文書の木構造を生成する木構造生成手段を備え、
前記木構造生成手段は、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目のレイアウトの際に前記レイアウト手段でレイアウトされるように、前記木構造を繋ぎ換える、ことを特徴とする画像処理システム。
【請求項５】
請求項２記載の画像処理システムにおいて、
更に、前記文書の木構造を生成する木構造生成手段を備え、
前記木構造生成手段は、生成した木構造で複数のネストが存在すれば前記複数のネストの前後にある要素を繋ぐことで前記木構造を繋ぎ換える、ことを特徴とする画像処理システム。
【請求項６】
請求項１乃至５記載の画像処理システムにおいて、
前記（Ｎ−１）頁目にレイアウトしなければならない前記要素は、位置指定を示すスタイル情報によって指定された要素である、ことを特徴とする画像処理システム。
【請求項７】
請求項６記載の画像処理システムにおいて、
前記位置指定を示すスタイル情報は、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」又は「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」である、ことを特徴とする画像処理システム。
【請求項８】
構造化言語で記述された文書内の要素をレイアウトするレイアウト手段を有する画像処理システムにおける画像処理方法であって、
前記レイアウト手段によって、前記文書の構造を示す木構造に基づいて、Ｎ（Ｎは２以上の整数）頁目にレイアウトすべき前記文書内の要素以降に、（Ｎ−１）頁目にレイアウトしなければならない前記文書内の要素が存在すれば、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトする工程、
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化言語で記述された文書を処理する画像処理システムに関する。詳しくは、指定された位置に文書内の所定の要素をレイアウトする画像処理システムに関する。
【背景技術】
【０００２】
従来から、ＸＭＬ（eXtensible Markup Language）やＸＨＴＭＬ（eXtensible Hyper Text Markup Language）など、特定のアプリケーションに依存しない構造化言語により記述された文書に基づいて、モニタ画面に画像を表示させたり、プリンタで印刷する等の処理が行われている。
【０００３】
通常、このような文書に基づいて画像を生成する（表示や印刷など）には、かかる言語で記述された文書に対し、解析処理を行うことで、ＤＯＭ（Document Object Model）ツリーと呼ばれる木構造を生成する。そして、レイアウト処理により各要素の１頁内での位置が決定され、その後、表示や印刷のための種々の処理を行う。
【０００４】
このような、ＸＨＴＭＬ文書を処理できるプリンタとして、ＪＰＥＧなどの単なる画像が入力されても内部でＨＴＭＬ文書の形式に変換させ、ＨＴＭＬ文書に対する解析及びレイアウト処理を行うブロックに入力させることで、多くのハードウェア資源を設けることなく処理を行うことのできる技術が提案されている（例えば、以下の特許文献１）。
【特許文献１】特開２００４−１１４３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ある要素内の内容部分（コンテンツ：テキストやイメージなど）を絶対配置させて印刷を行う場合に、必ずしもユーザの期待する印刷が行われないことがあった。
【０００６】
例えば、指定された要素を絶対的な位置に固定配置させる「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」が文書内に記述された場合、全ページに亘って指定要素の内容部分が印刷されることを期待して文書を作成したにも拘わらず、ある特定頁のみその内容部分が印刷されることがあった。また、指定された要素を絶対的な位置に配置させる「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」が文書内に記述された場合、１頁目にその指定要素の内容部分を印刷されることを期待して文書を作成したにも拘わらず、１頁目に印刷されない場合があった。
【０００７】
これは、解析処理の際に文書内の構造をそのままＤＯＭツリーに保存しているため、文書内の要素の出現順（記述された順）にＤＯＭツリーが生成され、更にその順でレイアウトが行われているからである。従って、例えば、位置指定された要素が文書内の最後に記述されている場合にその途中で改ページが発生すると、その要素は改ページの前の頁にレイアウトすることができずに、前述した事態が発生する。
【０００８】
そこで、本発明は上記問題点に鑑みてなされたものでその目的は、位置指定された要素が文書内のどこに記述されていても、ユーザの期待する印刷結果を得る画像処理システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、構造化言語で記述された文書に対する処理を行う画像処理システムにおいて、前記文書の構造を示す木構造に基づいて、Ｎ（Ｎは２以上の整数）頁目にレイアウトすべき前記文書内の要素以降に、（Ｎ−１）頁目にレイアウトしなければならない前記文書内の要素が存在すれば、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトするレイアウト手段を備えることを特徴としている。これにより、例えば、（Ｎ−１）頁目のレイアウトが終了する前に（Ｎ−１）頁目にレイアウトしなければならない要素がレイアウトされるため、Ｎ頁目のみにレイアウトされることがなく、ユーザの期待する印刷結果を得る。
【００１０】
また、本発明は、前記画像処理システムにおいて、前記レイアウト手段は前記（Ｎ−１）頁目にレイアウトしなければならない前記要素が出現するまで前記木構造内の各要素を読み捨てることで、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトすることを特徴としている。これにより、例えば、文書内の要素のうち（Ｎ−１）頁目にレイアウトしなければならない要素が出現するまでそれ以外の要素が読み飛ばされてレイアウトが行われるため、（Ｎ−１）頁目のレイアウトの際にその要素のレイアウトを行うことができる。
【００１１】
更に、本発明は、前記画像処理システムにおいて、前記文書の木構造を生成する木構造生成手段を更に備え、前記木構造生成手段は、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を優先要素として他の要素と区別するための識別子を、当該優先要素に付与し、前記レイアウト手段は、前記識別子が付与されていない前記要素を読み捨てることを特徴としている。これにより、例えば、優先要素が他の要素と区別され、レイアウトの際に優先要素が他の要素よりも先にレイアウトすることができ、ユーザの期待する印刷結果を得ることができる。
【００１２】
更に、本発明は、前記画像処理システムにおいて、前記文書の木構造を生成する木構造生成手段を更に備え、前記木構造生成手段は、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目のレイアウトの際に前記レイアウト手段でレイアウトされるように、前記木構造を繋ぎ換えることを特徴としている。これにより、例えば、ＤＯＭツリーが繋ぎ換えられることで、（Ｎ−１）頁目にレイアウトしなければならない要素を優先してレイアウトすることができる。
【００１３】
更に、本発明は、前記画像処理システムにおいて、前記文書の構造を示す木構造を生成する木構造生成手段を更に備え、前記木構造生成手段は、生成した木構造で複数のネストが存在すれば前記複数のネストの前後にある要素を繋ぐことで前記木構造を繋ぎ換えることを特徴としている。これにより、例えば、複数のネストを構成する要素が読み飛ばされて、（Ｎ−１）頁目にレイアウトしなければならない要素が優先してレイアウトされるため、ユーザの期待する文書を印刷することができる。また、木構造の繋ぎ換えにより複数のネストからなる要素をメモリに記憶する必要がなく、メモリ容量の削減を図ることができる。
【００１４】
更に、本発明は、前記画像処理システムにおいて、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素は、位置指定を示すスタイル情報によって指定された要素であることを特徴としている。これにより、例えば、位置指定された要素が文書内のどの位置に記述されても、ユーザの期待する印刷結果を得ることができる。
【００１５】
更に、本発明は、前記画像処理システムにおいて、前記位置指定を示すスタイル情報は、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」又は「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」であることを特徴としている。これにより、例えば、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」又は「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」によって位置指定された要素が文書内のどの位置に記述されても、ユーザの期待する印刷結果を得ることができる。
【００１６】
また、上記目的を達成するために本発明は、構造化言語で記述された文書内の要素をレイアウトするレイアウト手段を有する画像処理システムにおける画像処理方法において、前記レイアウト手段によって、前記文書の構造を示す木構造に基づいて、Ｎ（Ｎは２以上の整数）頁目にレイアウトすべき前記文書内の要素以降に、（Ｎ−１）頁目にレイアウトしなければならない前記文書内の要素が存在すれば、前記（Ｎ−１）頁目にレイアウトしなければならない前記要素を前記（Ｎ−１）頁目にレイアウトする工程を備えることを特徴としている。これにより、例えば、（Ｎ−１）頁目のレイアウトが終了する前に（Ｎ−１）頁目にレイアウトしなければならない要素がレイアウトされるため、Ｎ頁目のみにレイアウトされることがなく、ユーザの期待する印刷結果を得る。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明を実施するための最良の形態を説明する。
【００１８】
<全体構成とその動作>
図１は、本発明が適用される画像処理システムの一例であるプリンタ１の全体の構成を示す図である。プリンタ１は、Ｘｈｔｍｌ解析手段１０と、ＤＯＭ−スタイル管理手段２０と、ＣＳＳ解析手段（ＣＳＳパーサ）３０と、レイアウト手段４０と、レンダリング部５０、及び印刷処理部６０から構成される。
【００１９】
Ｘｈｔｍｌ解析手段１０は、ＤＯＭ−スタイル管理手段２０等を含む全体の管理を行う。Ｘｈｔｍｌ解析手段１０には、タグ解析手段（ＸＭＬパーサ）１００を備え、入力されたＸＨＴＭＬ文書５に対してどのようなタグから文書５が構成されるかの解析を行う。ここで、本プリンタ１ではＸＨＴＭＬ文書５がＸＭＬ文書とＣＳＳ文書とから構成されるものとして処理を行う。従って、タグ解析手段１００では、ＸＨＴＭＬ文書５内のＣＳＳ文書（ＣＳＳはＸＨＴＭＬ文書５内に記述されても良いし、別文書として記述されていても良い。以下同様）以外の部分（本実施例ではこれをＸＭＬ文書と称する）に対する処理を行う。なお、ＸＨＴＭＬ文書５は、例えば移動可能なメモリや、無線通信（ブルートゥースなど）により、本プリンタ１に入力されるものとする。
【００２０】
ＤＯＭ−スタイル管理手段２０は、ＤＯＭツリーとスタイルデータとを記憶し管理する。ＤＯＭ−スタイル管理手段２０には、ＤＯＭツリー生成手段２１０と、スタイルデータ記憶手段２２０とを備える。
【００２１】
ＤＯＭツリー生成手段２１０は、タグ解析手段１００からの解析後の各タグに関する情報が入力され、ＤＯＭツリーを生成して記憶する。生成されたＤＯＭツリーにより、ＸＨＴＭＬ文書５内の各タグ間等の関連付けが把握できる。
【００２２】
また、スタイルデータ記憶手段２２０は、ＣＳＳ解析手段３０で解析されたスタイルデータをテーブル形式で記憶する。スタイルデータ記憶手段２２０は、ＣＳＳでデフォルトとして定義されたスタイルデータを記憶する領域と、文書作成者が定義したスタイルデータを記憶する領域とに分かれている。スタイルデータを読み出してレイアウトする際には、文書作成者が定義したスタイルデータから読み出される。つまり、この記憶手段２２０の領域には優先順位があり、文書作成者のスタイルデータの方が優先され、文書作成者によって定義されていないと、デフォルトとして定義されたスタイルデータが使用される。
【００２３】
ＣＳＳ解析手段３０は、Ｘｈｔｍｌ解析手段１０からの指示に基づき、ＸＨＴＭＬ文書５内のＣＳＳ文書に対する解析を行う。具体的には、ＣＳＳ解析手段３０は、前述したテーブルを作成することで解析を行う。これにより、文書５内にどのようなＣＳＳが記述されたかプリンタ１は把握することができる。なお、Ｘｈｔｍｌ解析手段１０は、スタイルデータ記憶手段２２０に記憶されたスタイルデータと、ＤＯＭツリー生成手段２１０に記憶されたＤＯＭツリーの各ノードとの関連付けを行う。
【００２４】
レイアウト手段４０は、Ｘｈｔｍｌ解析手段１０からのレイアウト指示に基づき、ＤＯＭ−スタイル管理手段２０に記憶されたＤＯＭツリーとスタイルデータとを参照して、各要素に対するレイアウトを行う。レイアウト手段４０の詳細は後述する。
【００２５】
レンダリング部５０は、レイアウト後の各要素に対して色付け等することでレンダリングを行う。印刷処理部６０は、レンダリング後のデータが入力され、色変換、ハーフトーン処理などの画像処理を行い、その後、実際に印刷用紙に印字を行う。
【００２６】
このように構成されたプリンタ１での動作を簡単に説明する。例えば、図２に示すＸＨＴＭＬ文書５の例で説明する。プリンタ１に入力されたＸＨＴＭＬ文書５はＸｈｔｍｌ解析手段１０で解析される。図２の例では、<body>タグ、<div>タグ、<p>タグの存在を確認する。そして、タグ解析手段１００は、解析後のこれらのタグとタグ内の内容部分（文字列１、文字列２など）をＤＯＭツリー生成手段２１０に出力する。
【００２７】
ＤＯＭツリー生成手段２１０では、ＤＯＭツリーを生成するが、図２（Ａ）の例では、図２（Ｂ）のようにツリーを生成する。ＤＯＭツリーの各ノードは、タグ及びその内容部分から構成される。そして、一旦生成されたＤＯＭツリーは生成手段２１０で記憶される。また、文書５内にＣＳＳ文書が含まれていると、ＤＯＭツリー生成手段２１０からの解析指示でＣＳＳ解析手段３０がＣＳＳ文書を解析し、生成されたテーブルがスタイルデータ記憶手段２２０に記憶される。そして、レイアウト手段４０でＤＯＭツリーとスタイルデータとが参照されレイアウト処理、その後、レンダリング、印刷処理が行われる。
【００２８】
次に、レイアウト手段４０の詳細について説明する。図３は、レイアウト手段４０の内部構成を示す図である。レイアウト手段４０は、レイアウトマネージャ４１０と、レイアウト情報作成手段４２０と、フォントデータ提供手段４３０、及びレイアウト情報記憶手段４４０とを有する。
【００２９】
レイアウトマネージャ４１０は、Ｘｈｔｍｌ解析手段１０からのレイアウト指示に基づいてレイアウト情報作成手段４２０へレイアウト指示を行う。
【００３０】
レイアウト情報作成手段４２０は、レイアウトマネージャ４１０からの指示に基づき、ＤＯＭ−スタイル管理手段２０を参照して、ＤＯＭツリーとスタイルデータとからレイアウト情報を作成する。作成されたレイアウト情報は、レイアウト情報記憶手段４４０に出力される。ここで、レイアウト情報とは、座標位置や色などに関する情報である。
【００３１】
また、レイアウト情報作成手段４２０には、レイアウト処理を実行するために、ＤＯＭツリー対応処理手段４２１と、終了判定手段４２２、及び領域マネージャ４２３を有する。
【００３２】
ＤＯＭツリー対応処理手段４２１は、ＤＯＭツリーの階層ごとにレイアウト処理を実行する部分である。また、終了判定手段４２２は、ＤＯＭツリーの各ノードに対して更に子ノードが存在するか否かを確認することで、各タグとその内容部分のレイアウトが終了したか否かを判定する。更に、領域マネージャ４２３は、レイアウト後の１頁内の残りレイアウト領域を管理する。即ち、ＤＯＭツリー対応処理手段４２１でＤＯＭツリーの各ノードに対してレイアウトを行い、終了判定手段４２２で各タグ等のレイアウトが終了したか否かを判定し、領域マネージャ４２３で１頁内の残り領域を管理する。
【００３３】
フォントデータ提供手段４３０は、レイアウト情報作成手段４２０において文字列に対するレイアウトを行う際にメモリに記憶されたフォントデータを読み出して出力する。更に、フォントデータ提供手段４３０は、レイアウト情報作成手段４２０からレイアウトされた各ボックスの幅とその幅内に入れるべき文字列とに関する情報が入力され、そのボックスの１行分の幅に入った文字列の文字数と、実際に入った文字列の幅の情報を出力する。
【００３４】
レイアウト情報記憶手段４４０は、レイアウト情報作成手段４２０で作成されたレイアウト情報を記憶する。そして、記憶したレイアウト情報をレンダリング部５０に出力する。
【００３５】
このように構成されたレイアウト手段４０の動作を説明する。まず、Ｘｈｔｍｌ解析手段１０からのレイアウト指示を受けると、レイアウトマネージャ４１０を経由して、その指示がレイアウト情報作成手段４２０に入力される。レイアウト情報作成手段４２０は、必要なＤＯＭツリーやスタイルデータを参照してそのデータを取得する。その後、ＤＯＭツリー対応処理手段４２１は、実際のレイアウト処理を行う。
【００３６】
図２に示すＸＨＴＭＬ文書５に対するレイアウトの例を図４に示す。この図４を用いてレイアウト処理の動作を説明する。まず、ＤＯＭツリー対応処理手段４２１は、<body>タグに対する処理を行う（文書５内の前段部分にある要素に対するレイアウト処理は終了したものと仮定）。即ち、ＤＯＭツリー対応処理手段４２１は、この<body>タグに対し、設定された「margin」、「border」、「padding」の分だけ座標位置を移動させる。この「margin」、「border」、「padding」は、スタイルデータであり、その設定は文書内（ＸＨＴＭＬ文書５内でも、文書５とは別の文書でもよい）に記述され、スタイルデータ記憶手段２２０に記憶される。もし、スタイルデータが文書内に記述されないときは、スタイルデータ記憶手段２２０のデフォルトとして記憶された領域から読み出したデフォルトの値で処理を行う。また、領域マネージャ４２３は座標移動により、どれだけ残り領域があるかの演算を行い、残り領域を把握する。
【００３７】
そして、終了判定手段４２２は、ＤＯＭツリーから、この<body>タグのすぐ下にノードがあるか否かを確認する。この場合、図２（Ｂ）に示すよう、<div>タグのノードが存在するので、終了判定手段４２２は、<body>タグに対する処理は終了しないと判定する。
【００３８】
次いで、ＤＯＭツリー対応処理手段４２１は、この<div>タグに対する処理を行う。同様に、この<div>タグに対して設定された「margin」、「border」、「padding」の分だけ座標位置を移動させる。
【００３９】
以下、同様に順次レイアウトが実行されるが、要素の内容部分である文字列１の場合は以下のようにレイアウトを行う。即ち、ＤＯＭツリー対応処理手段４２１は、「margin」等による座標移動後、<div>タグに対するボックスの幅（図４参照）のデータと、文字列１のデータとをフォントデータ提供手段４３０に出力し、実際にその幅に入った文字列の文字数と、文字列の幅とに関する情報を得る。そして、ＤＯＭツリー対応処理手段４２１は、文字列１のすべてが１行分の幅に入ることができないと、次の行に対するレイアウトを行うべく座標位置を移動させる。ＤＯＭツリー対応処理手段４２１は、１行分の幅に入ることができなかった文字列１の残りの文字列に対して、再び前述の処理を繰り返す。これにより、図４に示すよう<div>タグのボックス内に含まれる文字列１のレイアウトが終了する（この例では３行分の枠にレイアウトされる）。
【００４０】
そして、終了判定手段４２２により、すべてのノードに対する処理が終了したと判定されると、一連のレイアウト処理が終了する。レイアウト終了後は、前述したように、レンダリング、印刷処理が行われる。尚、本プリンタ１では、原則として１頁分のレイアウトが終了するとレイアウト後のデータ（各ボックス内の座標やスタイルデータなどのレイアウト情報）がレンダリング部５０に出力される。
【００４１】
[絶対位置への配置に関する処理]
次に、本発明に係る絶対位置への配置に関して説明する。図５は、プリンタ１に入力される文書５の例である。この例では、文書５内に「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」が記述される。ユーザは、全頁に亘り指定された絶対位置に、ｉｍｇ要素のコンテンツである“１．ｊｐｇ”がレイアウトされ印刷されることを期待している。その例を図６に示す。
【００４２】
ところが、この文書５に沿って２頁分の印刷を行う際に、２頁とも同じ位置に画像を印刷させるように文書を記述したにも拘わらず、２頁目のみに画像が印刷されてしまう場合がある（図８参照）。その理由について、以下説明する。
【００４３】
まず、ＤＯＭツリー生成手段２１０によって生成されるＤＯＭツリーについて説明する。図７（Ａ）は、図５の文書５に対して生成されたＤＯＭツリーの例である。ここで、ツリーの各ノードは、実際には図７（Ｂ）に示すように、「要素名」と、「後続要素」と、「先頭子要素」とから構成される。「後続要素」は、当該要素と同じ階層レベルにある要素を示す。「先頭子要素」は、当該要素の子要素の中で最初に出現する要素を示す。図５の文書５では、＜body＞要素内に３つの子要素＜div＞ 、＜p＞、及び＜img＞が順に出現する。従って、図７（Ａ）に示すＤＯＭツリーの構造となる。
【００４４】
そして、レイアウト手段４０は、生成されたＤＯＭツリーを元にレイアウトを行う。図７（Ｃ）は各要素のレイアウト順を示す図である。レイアウト手段４０は、ＤＯＭツリーの先頭の要素から順にレイアウトを行う。この例では、最初に＜body＞要素、最後に＜img＞要素となる。ここで、図５の文書５の例のように＜div＞要素の後で改ページが指定されていたり、＜div＞要素の内容部分（コンテンツ。ここでは、“ｔｅｘｔ”）に１頁分の内容が含まれていると、改ページ後に＜img＞要素に対するレイアウトを行うことになる。
【００４５】
従って、本来１頁目にレイアウトすべき＜img＞要素は、１頁目で考慮されずに、２頁目のみ考慮される。よって、＜img＞要素のコンテンツは、２頁目のみに印刷されることになる。
【００４６】
また、文書５内に「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」が記述された場合も、改ページ後に位置を指定した＜img＞要素が出現すると、既に１頁目に対するレイアウトが終了しているため、１頁目にレイアウトされ印刷されることを望んでいても、例えば、２頁目に印刷されてしまう。
【００４７】
このように、絶対配置を示すプロパティである、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」 や「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」が記述された文書５により、２頁以降に１頁目に印刷すべきデータ（前述の例では、＜img＞要素のコンテンツである“１．ｊｐｇ”）が存在するＸＨＴＭＬ文書５では、ユーザが期待した印刷結果を得られない場合がある。
【００４８】
そこで、本発明は、ＤＯＭツリーにおいて優先的にレイアウトすべき要素を指定してその順番を組み換え、その組み換えた順でレイアウトを行う。つまり、要素を読み捨ててそのレイアウト順を変更することで、指定された要素が文書５内のどの位置に記述されても、ユーザの期待する印刷結果を得るようにする。
【００４９】
図９（Ａ）は、かかる組み換え操作を行った場合のＤＯＭツリーの例を示す。ツリーを構成するノードには、「優先レイアウト要素」の項目が付加される。レイアウトの際にはこの要素から先にレイアウトされる（図９（Ｂ）参照）。
【００５０】
図９（Ａ）の例では、＜body＞要素のノードに「優先レイアウト要素」として、＜img＞要素を指定している。そして、レイアウト順は、＜body＞要素の次に「優先レイアウト要素」である＜img＞要素をレイアウトする。その後、＜div＞要素、最後に＜p＞要素をレイアウトする。＜div＞要素によって改ページが行われる前に＜img＞要素に対するレイアウトが行われるため、１頁目に対するレイアウトを行い得る。そして、頁単位で優先要素のレイアウトを行うようにすれば、各頁すべてに＜img＞要素のコンテンツをレイアウトし、印刷することができる。
【００５１】
図１０は、レイアウト手段４０（具体的には、レイアウト情報作成手段４２０）で実行される、かかる処理の動作を示すフローチャートである。まず、処理が開始される（Ｓ１０）と、レイアウト手段４０は優先要素に「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」が指定されているか否か判断する（Ｓ１１）。指定されていれば（ＹＥＳ）、優先要素をレイアウトする（Ｓ１２）。前述の例では、優先要素である＜img＞要素に対して、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」が指定されているため、この要素に対してレイアウトを行う。
【００５２】
優先要素に「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」が指定されていないとき（Ｓ１１でＮＯ）や、優先要素に対するレイアウトを終了したとき（Ｓ１２）は、残りの要素に対して１頁分のレイアウトを行う（Ｓ１２）。前述の例では、＜div＞要素に対して１頁分のレイアウトを行う。
【００５３】
次に、レイアウト手段４０は、優先要素に「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」が指定されているか否か判断する（Ｓ１３）。指定されていれば（ＹＥＳ）、全ページの高さと「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さとを比較する（Ｓ１４）。「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された優先要素をどの頁にレイアウトすべきか決定するためである。ここで、全ページの高さとは、レイアウト済みの頁の高さ（紙送り方向の高さ）と現在の頁の高さとの和である。１頁目のレイアウトが終了し（高さが「１００ｍｍ」）、２頁目のレイアウトの最中でその高さが「１００ｍｍ」のとき、全ページの高さは「２００ｍｍ」となる。また、「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さとは、文書内５で「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」内のｔｏｐプロパティとして指定された値である。
【００５４】
従って、ｔｏｐプロパティが「１５０ｍｍ」と指定されたとき、全ページの高さの方が全ページの高さが「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さより高いので（ＹＥＳ）、現在レイアウトを行っている頁（２頁目）に当該優先要素をレイアウトする（Ｓ１５）。「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さの基準位置は、前述の例では最初の頁である１頁目となる。つまり、１頁目の左上を原点にして「１５０ｍｍ」の位置（２頁目）に優先要素をレイアウトすることになる。
【００５５】
一方で、全ページの高さが「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さより高くないと（Ｓ１４でＮＯ）、当該優先要素をレイアウトすることなく次の処理に移行する。優先要素は、現在の頁以前にレイアウトさせる必要があるが、以前の頁は既にレイアウト済みで当該優先要素をレイアウトできないからである。或いは、前述の例で、現在の頁が１頁目のときは全ページの高さが「１００ｍｍ」となり、本処理でＮＯとなるため、１頁目にレイアウトされないことになる。
【００５６】
優先要素が「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」として指定されていないとき（Ｓ１３でＮＯ）、全ページの高さが「ｐｏｓｉｔｉｏｎ：ａｂｓｏｌｕｔｅ」で指定された高さより高くないとき（Ｓ１４でＮＯ）、及び優先レイアウトを実行後（Ｓ１５）は、処理はＳ１６に移行して、全ての要素に対するレイアウトが終了したか否か判断する（Ｓ１６）。全レイアウトが終了すると（ＹＥＳ）、一連の処理が終了する（Ｓ１７）。全要素に対するレイアウトが終了しないと（Ｓ１６でＮＯ）、再び、Ｓ１１に移行して前述の処理を繰り返す。
【００５７】
前述の図５に示す例の場合、ＤＯＭツリーを組み換えて、優先要素である＜img＞要素以外の要素（＜div＞要素や＜p＞要素）は読み捨てるようレイアウトしているため、図１１に示すようにレイアウトされる。従って、ユーザの期待する印刷結果を得る。
【００５８】
また、位置指定された優先要素が文書５内のどの位置に記述されても、「優先レイアウト要素」としてＤＯＭの組み換え操作が行われるため、ユーザの希望する印刷結果を得る。なお、本実施例では、位置指定された要素を優先要素として指定して処理を行っているが、優先要素とそれ以外の要素とを区別する意味では、優先要素に識別子を付加することと同義である。
【００５９】
図５に示す例では、全体として２頁分の例で説明した。例えば、１頁目からＮ頁目に亘り、ある要素内のコンテンツを同じ位置に印刷する場合でも同様である。優先要素を識別して、ＤＯＭツリーの組み換えを行う。そして、優先要素から先にレイアウトを行い、頁ごとに処理（図１０）を行えば、前述の例とまったく同様の作用効果を得る。
【００６０】
言い換えると、（Ｎ−１）頁目のレイアウトに影響を与えるデータ（前述の例では、「ｐｏｓｉｔｉｏｎ：ｆｉｘｅｄ」プロパティが指定された＜img＞要素のコンテンツ（“１．ｊｐｇ”））があるか否かを確認して、レイアウトの際には、影響を与えるデータが出現するまで、ＤＯＭツリーの各ノードを読み捨てる。レイアウトに影響を与えるデータと、それ以外のデータとはＤＯＭツリー内で識別子が付加されるため、レイアウトに影響を与えるデータから先にレイアウトを開始することができる。
【００６１】
[変形例１]
図１２は、ＤＯＭツリーの例を示す図である。この例では、＜div＞要素にはＮ個の子要素を有し、最下層にはある要素のコンテンツである“ｔｅｘｔ”（テキストデータ）を有する。
【００６２】
このようなＮ個の子要素を有する場合に、すべての子要素を有するＤＯＭツリーをメモリに記憶するには、それだけメモリの容量が必要になる。
【００６３】
そこで、Ｎ個以上の入れ子（ネスト）が存在する場合に、 “ｔｅｘｔ”又は＜img＞要素のノードが出現するまで、Ｎ個の要素を読み捨て、ノードの繋ぎ換えをしてＤＯＭツリーを生成する。このようなＤＯＭツリーの生成は、前述のＤＯＭツリー生成手段２１０により行われる。
【００６４】
図１２の例では、＜div＞要素の下に直接“ｔｅｘｔ”を繋ぐようにする。繋ぎ換えは、例えば前述の「優先レイアウト要素」により行う。つまり、＜div＞要素の優先レイアウト要素が“ｔｅｘｔ”であるとしてＤＯＭツリーを生成する。そして、レイアウトの際にレイアウト手段４０は、Ｎ個の要素を読み捨て、繋ぎ換えられた“ｔｅｘｔ”を優先してレイアウトを行う。
【００６５】
従って、前述の例と同様に、“ｔｅｘｔ”や＜img＞要素に絶対配置に関するプロパティが指定されていれば、ＤＯＭツリーの繋ぎ換えにより、優先してレイアウトが行われる。また、ＤＯＭツリーを記憶する際にＮ個の要素が読み捨てられてメモリに記憶されるため、その分メモリ容量を削減することができる。なお、この「Ｎ」の数字自体は、予めプリンタ１内に設定しておけばよい。
【００６６】
[変形例２]
前述の例では、改ページが発生する原因として、要素内のコンテンツが１頁分の内容を含む場合や、ある要素の後ろで強制的に改ページを行う場合として説明した。それ以外にも、印刷用紙の紙送り方向の長さが短い場合でも同様に改ページが発生する。かかる場合でも前述の例と同様の処理により、同様の作用効果を得る。
【００６７】
また、前述の例は、構造化言語の例としてＸＨＴＭＬ言語を使用して説明した。それ以外にも、例えば、ＨＴＭＬ（Hyper Text Markup Language）やＳＧＭＬ（Standard Generalized Markup Language）などの言語により記述された文書５であってもよい。
【００６８】
更に、画像処理システムの例としてプリンタ１を用いて説明した。勿論、プリンタ以外にも、ファクシミリ装置や複写機、これらの機能を有する複合機、など種々の装置に適用可能で全く同様の作用効果を奏する。
【図面の簡単な説明】
【００６９】
【図１】画像処理システムの一例であるプリンタの全体構成を示す図である。
【図２】ＸＨＴＭＬ文書の例と、ＤＯＭツリーの例とを示す図である。
【図３】レイアウト手段の内部構成を示す図である。
【図４】レイアウトの一例を示す図である。
【図５】ＸＨＴＭＬ文書の例を示す図である。
【図６】期待されるレイアウト結果の例を示す図である。
【図７】ＤＯＭツリーの例と、各ノードの構成例、及びレイアウト順を示す図である。
【図８】レイアウト結果の例を示す図である。
【図９】優先レイアウト要素を含むＤＯＭツリーの例等を示す図である。
【図１０】レイアウト処理の動作を示すフローチャートである。
【図１１】組み換え操作を行ったＤＯＭツリーによるレイアウト結果を示す図である。
【図１２】ＤＯＭツリーの例を示す図である。
【符号の説明】
【００７０】
１  プリンタ（画像処理システム）、５  ＸＨＴＭＬ文書、２０  ＤＯＭ−スタイル管理手段、４０  レイアウト手段、２１０  ＤＯＭツリー生成手段、４４０  レイアウト情報作成手段
【図１】
2006277112.tif 000003
【図２】
2006277112.tif 000004
【図３】
2006277112.tif 000005
【図４】
2006277112.tif 000006
【図５】
2006277112.tif 000007
【図６】
2006277112.tif 000008
【図７】
2006277112.tif 000009
【図８】
2006277112.tif 000010
【図９】
2006277112.tif 000011
【図１０】
2006277112.tif 000012
【図１１】
2006277112.tif 000013
【図１２】
2006277112.tif 000014