(57)【要約】【課題】  表，行，セルの背景処理をより適切に且つ迅速に行なう。【解決手段】  ＸＨＴＭＬ文書において、セル間にスペースを設ける指定がなされると共に、上層からセル，行，表の順に層をなすように配置されるセル，行，表の背景としてセルの背景が透明に指定されると共にそのセルが属する行の背景が透明以外に指定されたときには、セルの背景をそのセルが属する行の背景に設定し、その行の背景を描画の対象外（透明）に設定して表，行，セルをレイアウトすると共に描画して印刷する。これにより、簡易な処理によりセル間のスペースを常に最下層の表の背景で埋めることができると共に透明なセルの枠内を一つ下層の行の背景で埋めることができる。【選択図】        図８
2005208809.tif 000002
【特許請求の範囲】
【請求項１】
所定の書式で記述された構造化文書を解析して出力する文書解析装置であって、
前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析する解析手段と、
該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定する背景設定手段と、
該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力する出力手段と
を備える文書解析装置。
【請求項２】
前記背景設定手段は、セル間にスペースを設ける指定がなされると共に前記セル包含要素に指定された背景が透明以外であるときには、該背景の指定に拘わらず該セル包含要素の背景を描画の対象外に設定する手段である請求項１記載の文書解析装置。
【請求項３】
前記背景設定手段は、セル間にスペースを設ける指定がなされ前記セル要素に指定された背景が透明であると共に該セル要素に属するセル包含要素に指定された背景が透明以外であるときには、該背景の指定に拘わらず該セル要素の背景に該セル要素が属するセル包含要素に指定された背景を設定すると共に該セル包含要素の背景を描画の対象外に設定する手段である請求項１または２記載の文書解析装置。
【請求項４】
前記セル包含要素は、表の行を構成する行要素および／または表の列を構成する列要素である請求項１ないし３いずれか記載の文書解析装置。
【請求項５】
前記背景は、色または画像である請求項１ないし４いずれか記載の文書解析装置。
【請求項６】
前記所定の書式は、マークアップ言語で記述されてなる請求項１ないし５いずれか記載の文書解析装置。
【請求項７】
前記マークアップ言語は、ＸＨＴＭＬである請求項６記載の文書解析装置。
【請求項８】
請求項１ないし７いずれか記載の文書解析装置を備える印刷装置。
【請求項９】
所定の書式で記述された構造化文書を解析して出力する文書解析方法であって、
（ａ）前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析し、
（ｂ）該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定し、
（ｃ）該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力する
文書解析方法。
【請求項１０】
所定の書式で記述された構造化文書を解析して出力する文書解析装置に用いられるプログラムであって、
前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析するモジュールと、
該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定するモジュールと、
該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力するモジュールと
を備えるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書解析装置およびその方法並びに文書解析装置用のプログラム、印刷装置に関し、詳しくは、所定の書式で記述された構造化文書を解析して出力する文書解析装置およびその方法並びに文書解析装置用のプログラム、印刷装置に関する。
【背景技術】
【０００２】
従来、この種の文書解析装置としては、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などのマークアップ言語により記述された構造化文書で指定された表を解析しレイアウトして出力するものが種々提案されている（例えば、特許文献１参照）。
【０００３】
ＨＴＭＬ文書などの構造化文書では、表の構成要素としての表要素や行要素（行グループも含む），列要素（列グループも含む），セル要素それぞれに背景特性を指定することができ、指定された背景は上層からセル要素，行要素，列要素，表要素の順に層をなすように配置される。例えば、セル要素と行要素と表要素とに背景特性が指定された場合では、最上層に位置するセルは、その背景が透明のときに一つ下層の行の背景が透けて見え、行の背景も透明であるときには最下層の表の背景が透けて見えるようになる。
【特許文献１】特開２０００−２４２６４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
こうした上述の文書解析装置では、表の背景の出力（表示や印刷）に不都合が生じる場合がある。例えば、セル間にスペースを設けた表組みが指定され、行要素の背景として透明以外の背景（背景色や背景画像）が指定されると共にその行要素に属するセル要素の背景として透明の背景が指定されたとき、セルの領域には行の背景が透けて見えることになるが、隣接するセル間のスペースの領域にも表の背景よりも層が上の行の背景が見える。これは、セル間のスペースは表要素の背景で埋めることとするＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）によるＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）の規定に反する。
【０００５】
また、こうした文書解析装置をプリンタに搭載して印刷を行なうとき、上述した問題を解決するための背景の処理を簡易化して印刷処理を迅速に行なうことのできるアルゴリズムの構築が望まれている。
【０００６】
本発明の文書解析装置およびその方法は、こうした問題を解決し、表を構成する各要素に指定された背景をより適切に処理して出力することを目的の一つとする。また、本発明の文書解析装置用のプログラムは、表を構成する各要素に指定された背景をより適切に処理することを目的の一つとする。さらに、本発明の印刷装置は、表を構成する各要素に指定された背景をより適切に処理して印刷することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の文書解析装置およびその方法並びに文書解析装置用のプログラム、印刷装置は、上述の目的の少なくとも一部を達成するために以下の手段を採った。
【０００８】
本発明の文書解析装置は、
所定の書式で記述された構造化文書を解析して出力する文書解析装置であって、
前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析する解析手段と、
該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定する背景設定手段と、
該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力する出力手段と
を備えることを要旨とする。
【０００９】
この本発明の文書解析装置では、構造化文書が指定されたときに指定された構造化文書を受け付けて解析し、解析した構造化文書に表組みの指定がなされた要素が含まれこの要素に上層からセル要素，セル要素を包含するセル包含要素，セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、セル間のスペースに表要素に指定された背景が出力されるようセル要素，セル包含要素，表要素の背景を設定し、解析した構造化文書に含まれる要素を順次レイアウトすると共にレイアウトした要素を設定された背景をもって描画して出力する。したがって、セル要素，セル包含要素，表要素の背景を設定することによりセル間のスペースに表要素の背景を出力することができる。ここで、「セル包含要素」としては、表の行を構成する行要素や表の列を構成する列要素が含まれる。また、「背景」としては、色や画像が含まれる。
【００１０】
こうした本発明の文書解析装置において、前記背景設定手段は、セル間にスペースを設ける指定がなされると共に前記セル包含要素に指定された背景が透明以外であるときには、該背景の指定に拘わらず該セル包含要素の背景を描画の対象外に設定する手段であるものとすることもできる。こうすれば、セル包含要素の背景を描画の対象外に設定するだけでセル間のスペースにセル包含要素よりも下層の表要素の背景を出力させることができる。
【００１１】
また、本発明の文書解析装置において、前記背景設定手段は、セル間にスペースを設ける指定がなされ前記セル要素に指定された背景が透明であると共に該セル要素に属するセル包含要素に指定された背景が透明以外であるときには、該背景の指定に拘わらず該セル要素の背景に該セル要素が属するセル包含要素に指定された背景を設定すると共に該セル包含要素の背景を描画の対象外に設定する手段であるものとすることもできる。こうすれば、透明が指定されたセル要素にこれよりも下層のセル包含要素に指定された背景を出力させると共にセル間のスペースにセル包含要素よりも下層の表要素の背景を出力させることができる。また、こうした背景の出力を背景の設定だけで行なうから、処理をより迅速化することができる。
【００１２】
さらに、本発明の文書解析装置において、前記所定の書式は、マークアップ言語で記述されてなるものとすることもできる。この態様の本発明の文書解析装置において、前記マークアップ言語は、ＸＨＴＭＬであるものとすることもできる。
【００１３】
本発明の印刷装置は、
上述の各態様のいずれかの本発明の文書解析装置を備える
ことを要旨とする。
【００１４】
この本発明の印刷装置では、上述の各態様のいずれかの本発明の文書解析装置、即ち、基本的には、所定の書式で記述された構造化文書を解析して出力する文書解析装置であって、前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析する解析手段と、該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定する背景設定手段と、該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力する出力手段とを備える文書解析装置を備えるから、本発明の文書解析装置と同様の効果、例えば、セル要素，セル包含要素，表要素の背景を設定することによりセル間のスペースに表要素の背景を出力することができるなどの効果を奏することができる。
【００１５】
本発明の文書解析方法は、
所定の書式で記述された構造化文書を解析して出力する文書解析方法であって、
（ａ）前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析し、
（ｂ）該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定し、
（ｃ）該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力する
ことを要旨とする。
【００１６】
この本発明の文書解析方法によれば、構造化文書が指定されたときに指定された構造化文書を受け付けて解析し、解析した構造化文書に表組みの指定がなされた要素が含まれこの要素に上層からセル要素，セル要素を包含するセル包含要素，セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、セル間のスペースに表要素に指定された背景が出力されるようセル要素，セル包含要素，表要素の背景を設定し、解析した構造化文書に含まれる要素を順次レイアウトすると共にレイアウトした要素を設定された背景をもって描画して出力するから、セル要素，セル包含要素，表要素の背景を設定することによりセル間のスペースに表要素の背景を出力することができる。ここで、「セル包含要素」としては、表の行を構成する行要素や表の列を構成する列要素が含まれる。また、「背景」としては、色や画像が含まれる。
【００１７】
本発明のプログラムは、
所定の書式で記述された構造化文書を解析して出力する文書解析装置に用いられるプログラムであって、
前記構造化文書が指定されたとき、該指定された構造化文書を受け付けて解析するモジュールと、
該解析された構造化文書に表組みの指定がなされた要素が含まれ、該要素に上層からセル要素，該セル要素を包含するセル包含要素，該セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、該セル間のスペースに前記表要素に指定された背景が出力されるよう前記セル要素，前記セル包含要素，前記表要素の背景を設定するモジュールと、
該解析された構造化文書に含まれる要素を順次レイアウトすると共に該レイアウトした要素を前記設定された背景をもって描画して出力するモジュールと
を備えることを要旨とする。
【００１８】
この本発明のプログラムでは、文書解析装置にインストールすることにより、構造化文書が指定されたときに指定された構造化文書を受け付けて解析し、解析した構造化文書に表組みの指定がなされた要素が含まれこの要素に上層からセル要素，セル要素を包含するセル包含要素，セル包含要素を包含する表要素の順に層をなす背景が指定されると共にセル間にスペースを設ける指定がなされたときには、セル間のスペースに表要素に指定された背景が出力されるようセル要素，セル包含要素，表要素の背景を設定し、解析した構造化文書に含まれる要素を順次レイアウトすると共にレイアウトした要素を設定された背景をもって描画して出力する。したがって、セル要素，セル包含要素，表要素の背景を設定することによりセル間のスペースに表要素の背景を出力することができる。ここで、「セル包含要素」としては、表の行を構成する行要素や表の列を構成する列要素が含まれる。また、「背景」としては、色や画像が含まれる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明を実施するための最良の形態を実施例を用いて説明する。
【実施例】
【００２０】
図１は、本発明の一実施例としてのカラーインクジェットプリンタ２０の構成の概略を示す構成図である。実施例のカラーインクジェットプリンタ２０は、図示するように、コンピュータ１０やデジタルテレビ１２，デジタルカメラ１４などと接続してデジタル画像（以下、画像という）の入力を司る入力インターフェース２２と、入力インタフェース２２に入力される画像の形式に基づいてデータの出力先を割り振る信号処理部２４と、マークアップ言語としてのＸＨＴＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）により記述されたＸＨＴＭＬ文書を解析して要素の木構造としてのＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）ツリーを作成すると共にＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）により記述されたＣＳＳ文書を読み込んでスタイルオブジェクトを作成してメモリ５０に書き込む解析部３０と、解析部３０により作成されたＤＯＭツリーとスタイルオブジェクトとを用いてＸＨＴＭＬ文書に記述された要素（オブジェクト）としての表や画像やテキストを印刷用のページ毎にレイアウトしてページボックスとしてメモリ５０に書き込むレイアウタ３８と、レイアウタ３８によりレイアウトして得られるページボックスを用いてＲＢＧデータとしての印刷用画像を描画するレンダリングプラグイン（以下、ＲＰＩという）４０と、描画されたＲＧＢ（Ｒｅｄ  Ｇｒｅｅｎ  Ｂｌｕｅ）データの印刷用画面をＣＭＹＫ（Ｃｙａｎ  Ｍａｇｅｎｔａ  Ｙｅｌｌｏｗ  Ｂｌａｃｋ）データに変換する色変換部４２と、変換されたＣＭＹＫデータを誤差拡散処理などの画像処理を行なって２値化する２値化部４４と、２値化されたＣＭＹＫの各データを図示しない印刷ヘッドを備える印刷実行部４８にバンド単位で出力するために一時的にデータを蓄えるイメージバッファ４６とを備える。
【００２１】
信号処理部２４は、入力された信号が直ちに印刷可能な印刷用データの場合には印刷実行部４８のイメージバッファ４６にデータを出力し、ＲＧＢデータの場合にはメモリ５０の印刷用画面格納領域に出力し、ＸＨＴＭＬ文書で記述されたファイルの場合には解析部３０に出力する。
【００２２】
解析部３０は、ＸＨＴＭＬ文書の解析を指示することによりＤＯＭツリーを作成するコア３２と、コア３２からの指示に基づいてＸＨＴＭＬ文書を解析するＸＭＬパーサー３４と、作成されたＤＯＭツリーの各要素の初期化処理により依頼されたＣＳＳ文書を解析するＣＳＳプラグイン（以下、ＣＳＳＰＩという）３６とから構成されている。
【００２３】
次に、こうして構成された実施例のカラーインクジェットプリンタ２０の動作、特にＸＨＴＭＬ文書を印刷する際の動作について説明する。図２は、解析部３０により実行される解析レイアウト指示処理の一例を示すフローチャートである。この処理は所定時間毎（例えば、８ｍｓｅｃ毎）に繰り返し実行される。解析レイアウト指示処理が実行されると、まず、ＸＨＴＭＬ文書を特定するためのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｃｅ  Ｌｏｃａｔｏｒ）の指定があるか否かを判定し（ステップＳ１００）、ＵＲＬの指定があるときにはそのＵＲＬをメモリ５０に領域設定されたＵＲＬ格納用バッファ領域に格納し（ステップＳ１１０）、ＵＲＬの指定がないときには次の処理に進む。ＵＲＬ指定は、例えば、操作者がデジタルテレビ１２で表示された印刷可能な項目のうちカラーインクジェットプリンタ２０で印刷しようとする項目を選択したときデジタルテレビ１２からのカラーインクジェットプリンタ２０に出力されることにより行なうものとすることができるし、コンピュータ１０から単にＵＲＬを選択してカラーインクジェットプリンタ２０に印刷要求することによっても行なうことができる。なお、コンピュータ１０からのＵＲＬ指定では、コンピュータ１０によってもＸＨＴＭＬ文書の解析やレイアウト，色変換や２値化などを行なうことができるが、コンピュータ１０によってはこうした処理を一切行なわず、ＵＲＬだけをカラーインクジェットプリンタ２０に送信する場合となる。
【００２４】
続いて、メモリ５０のＵＲＬ格納用バッファ領域にＵＲＬが格納されているか否かを判定すると共に（ステップＳ１２０）、ＸＨＴＭＬ文書を現在解析中であるか否かを判定する（ステップＳ１３０）。ＸＨＴＭＬ文書を現在解析中であるか否かの判定は、この解析レイアウト指示処理と同時に並列に解析部３０自身によって行なっているか否かを判定することにより、例えば解析開始時と解析終了時にフラグ操作するものとすればフラグを調べることにより行なうことができる。ＵＲＬが格納されており、現在ＸＨＴＭＬ文書の解析中ではないときには、後述する解析処理により作成されるＤＯＭツリーを格納するためのメモリ５０のＤＯＭツリー格納用領域やスタイルオブジェクトを格納するためのメモリ５０のスタイルオブジェクト格納用領域に空きがあるか否かを判定し（ステップＳ１４０）、空きがあると判定されると、メモリ５０のＵＲＬ格納用バッファ領域に格納されている最初のＵＲＬを読み出してそのＵＲＬにより特定されるＸＨＴＭＬ文書の解析を開始し（ステップＳ１５０）、ＵＲＬが格納されていないときやＵＲＬが格納されていても現在ＸＨＴＭＬ文書を解析している最中のときや現在ＸＨＴＭＬ文書を解析している最中になくてもＤＯＭツリー格納用領域やスタイルオブジェクト格納用領域に空きがないときには次の処理に進む。ＸＨＴＭＬ文書の解析は、図３に例示する解析処理に基づいて行なわれる。この解析処理ではＵＲＬにより特定されるＸＨＴＭＬ文書が解析されてＤＯＭツリーが作成され、ＸＨＴＭＬ文書に記述されたＣＳＳ文書を解析してスタイルオブジェクトが作成され、関連付けられてメモリ５０のＤＯＭツリー格納用領域とスタイルオブジェクト格納用領域とに記憶される。このとき、ＤＯＭツリーには識別情報としてＤＯＭツリーＩＤが付与され、スタイルオブジェクトには識別情報としてスタイルオブジェクトＩＤが付与される。解析処理の詳細については後述する。
【００２５】
次に、レイアウタ３８によってレイアウトが行なわれている最中であるか否かを判定し（ステップＳ１６０）、レイアウタ３８によるレイアウトが行なわれてる最中にないときには、後述するレイアウト処理によりレイアウトされたページボックスを格納するためのメモリ５０のボックス格納用領域に空きがあるか否かを判定し（ステップＳ１７０）、空きがあると判定されると、メモリ５０のＤＯＭツリー格納用領域に格納されたＤＯＭツリーのうち最初のＤＯＭツリーをＤＯＭツリーＩＤを用いて指定してレイアウタ３８にレイアウト開始指示を出力して（ステップＳ１８０）、この解析レイアウト指示処理を終了し、レイアウタ３８によってレイアウトが行なわれている最中にあるときやレイアウトが行なわれている最中になくてもボックス格納用領域に空きがないときにはレイアウト開始指示を出力せずに解析レイアウト指示処理を終了する。ここで、レイアウタ３８によってレイアウトが行なわれている最中にあるか否かの判定は、レイアウタ３８からレイアウト終了の信号を入力したか否かにより行なうことができる。レイアウト終了の信号の受信についてはレイアウタ３８の処理を説明する際に詳述する。
【００２６】
次に、解析部３０により実行される解析処理について説明する。解析処理は、前述したように図３に例示するフローチャートに基づいて行なわれる。説明の容易のために、図４に例示するＸＨＴＭＬ文書を用いて説明する。解析レイアウト指示処理によりＵＲＬを指定して解析開始の指示がなされると、ＵＲＬにより特定されるＸＨＴＭＬ文書を読み出し（ステップＳ２００）、読み出したＸＨＴＭＬ文書を解析してＤＯＭツリーを作成する（ステップＳ２１０）。このとき、作成するＤＯＭツリーには識別情報としてＤＯＭツリーＩＤ（例えば、ＵＲＬにＤＯＭを付して作成したＩＤなど）を付与する。ＸＨＴＭＬ文書の読み出しは、具体的には、コア３２がＵＲＬを指定してＸＭＬパーサー３４に解析依頼することによりＸＭＬパーサー３４が行なう。ＸＨＴＭＬ文書の解析およびＤＯＭツリーの作成は、具体的には、ＸＭＬパーサー３４がＸＨＴＭＬ文書を最初から順に解析して各要素を作成すると共にＤＯＭツリーに登録することにより行なう。なお、要素の作成はコア３２に対して行ない、要素の登録はメモリ５０のＤＯＭツリー格納用領域に関連付けて格納することにより行なう。図４に例示したＸＨＴＭＬ文書を解析して作成されたＤＯＭツリーを図５に示す。
【００２７】
こうしてＤＯＭツリーを作成すると、ＸＨＴＭＬ文書に指定されたＣＳＳ文書を読み出し（ステップＳ２２０）、読み出したＣＳＳ文書を解析してスタイルオブジェクトを作成する（ステップＳ２３０）。ここで、ＣＳＳ文書は、その内容がＸＨＴＭＬ文書に直接記述されたりＸＨＴＭＬ文書の外部にリンクされたりして存在しており、図４の例では、ＸＨＴＭＬ文書にＣＳＳ文書の内容が直接記述されている場合を示した。ＣＳＳ文書の読み出しは、具体的には、ＤＯＭツリーの各要素の初期化処理における依頼により依頼されたＣＳＳＰＩ３６が行なう。ＣＳＳ文書の内容がＸＨＴＭＬ文書に直接記述されている場合には、ＸＨＴＭＬ文書中のＣＳＳ文書に該当する部分を渡してＣＳＳＰＩ３６に依頼することにより行なわれ、ＣＳＳ文書が外部にリンクされている場合には、ｌｉｎｋタグ内のリンク先を指定してＣＳＳＰＩ３６に依頼することにより行なわれる。ＣＳＳ文書の解析およびスタイルオブジェクトの作成は、具体的には、ＣＳＳＰＩ３６がＣＳＳ文書を最初から順に解析して各ルールをメモリ５０のスタイルオブジェクト格納用領域に格納することにより行なう。
【００２８】
こうしてＤＯＭツリーとスタイルオブジェクトが作成されると、作成したＤＯＭツリーとスタイルオブジェクトの関連付け処理を実行し（ステップＳ２４０）、ＵＲＬ格納用バッファ領域から解析の対象のＵＲＬを削除して（ステップＳ２５０）、解析処理を終了する。
【００２９】
次に、レイアウタ３８の処理について説明する。図６は、解析部３０によりＤＯＭツリーを指定してレイアウト開始指示がなされたときにレイアウタ３８により実行されるレイアウト描画指示処理の一例を示すフローチャートである。レイアウト描画指示処理が実行されると、レイアウタ３８は、まず、指定されたＤＯＭツリーに基づいてレイアウトを開始する（ステップＳ３００）。レイアウトは、図７に例示するレイアウト処理により実行される。説明の都合上、ここで、レイアウト処理について説明する。
【００３０】
レイアウト処理では、レイアウタ３８は、まず、ＤＯＭツリーの各要素を順にサーチして要素毎にスタイル情報（要素に指定された特性や対応するスタイルオブジェクトのルール）が関連付けられた論理的なボックスとしての要素ボックスを作成する（ステップＳ４００）。続いて、ページ毎に対応するページボックスを作成し（ステップＳ４０２）、そのページボックスの下にレイアウトすべき対象の要素ボックスが表要素であるか否かを判定する（ステップＳ４０４）、要素ボックスが表要素以外の要素であると判定されたときにはスタイル情報に基づいてレイアウトボックスを作成してページボックスの下にレイアウトできなくなるまで要素の内容（子要素）をレイアウトする（ステップＳ４２２）。例えば、要素の内容がイメージの場合には、画像サイズを取得してイメージボックスを作成すると共にレイアウトボックスとしての行を作成してイメージボックスを行に登録することにより行なわれ、要素の内容がテキストの場合には、行を作成し、行に入るだけのテキストボックスを作成して行に登録することを繰り返すことにより行なわれる。取得した画像サイズによりイメージボックスをレイアウトできなかったり、テキストのすべてを登録することができないときには、改ページの判定がなされ（ステップＳ４２４）、次ページに対応するページボックスが作成され、レイアウトできなかったイメージボックスや残りのテキストを行に登録する。
【００３１】
ステップＳ４０４で対象となる要素ボックスが表要素であると判定されたときには、表の構成を解析する処理を行なう（ステップＳ４０６）。表の構成の解析では、関連付けられたスタイル情報に従って行にレイアウトするセルの列幅を設定する処理などレイアウトに必要な処理が行なわれる。セルの列幅の設定は、実施例では、セルの内容（テキストや画像のサイズなど）に依存しないでセルの列幅の設定を行なう固定表組み（ｔａｂｌｅ−ｌａｙｏｕｔ特性が「ｆｉｘｅｄ」）と、セルの内容に依存してセルの列幅の設定を行なう自動表組み（ｔａｂｌｅ−ｌａｙｏｕｔ特性が「ａｕｔｏ」）との二通りの設定がある。 固定表組みが指定された場合のセルの列幅の設定は、最初の行に属するセルの幅に関する特性（ｗｉｄｔｈ特性）を調べてｗｉｄｔｈ特性が「ａｕｔｏ」以外、即ち、何らかの値（絶対的な長さや表のレイアウト可能領域（表の幅）に対する割合）が指定されているセルについては、その指定された値を該当するセルの列幅として設定し、ｗｉｄｔｈ特性が「ａｕｔｏ」に指定されているセルについては、ｗｉｄｔｈ特性が「ａｕｔｏ」以外に指定された前述のセルについて設定した列幅の合計（境界やセルに境界を設定するための特性としてセル間にスペースを設けるいわゆる分離境界モデルが指定されたときにはそこで指定された幅も加える）とレイアウト可能領域の幅との偏差の幅をｗｉｄｔｈ特性に「ａｕｔｏ」が指定された残りのセルに配分（例えば、均等配分）することにより行なわれる。自動表組みが指定された場合のセルの列幅の設定は、基本的には、レイアウト可能領域の幅の範囲でセルの内容をできる限り一行でレイアウトするよう各セルの列幅を設定することにより行なわれる。なお、自動表組みが指定された場合でも列幅が指定されたセルについては、その指定された列幅を設定する。表のレイアウトは、こうして設定した列幅に従って行なわれる。
【００３２】
次に、表，行，セルの各々に指定された背景としての背景スタイル（スタイル情報）を取得する（ステップＳ４０８）。ここで、背景スタイルは、実施例では、表（ｔａｂｅｌ），行（ｔｒ），セル（ｔｄ，ｔｈ）のそれぞれに指定できるようになっており、指定された背景は上層からセル，行，表の順に配置される。図８に、表，行，セルの背景の層構造の一例を示す。例えば、セルの背景が透明であるときにはセルの枠内には一つ下層の行の背景が透けて見え、行の背景も透明であればセルの枠内には最下層の表の背景が透けて見えることになる。続いて、セルに境界を設定するための特性（セルの境界特性）としてセル間にスペースを設けるいわゆる分離境界モデルが指定されているかセル間にスペースを設けないいわゆる境界つぶしモデルが指定されているかを判定する（ステップＳ４１０）。この処理は、具体的には、セルの境界特性であるｂｏｒｄｅｒ−ｃｏｌｌａｐｓｅ特性に分離境界モデルに対応する「ｓｅｐａｒａｔｅ」と境界つぶしモデルに対応する「ｃｏｌｌａｐｓｅ」とのうちいずれが指定されているのかを判定することにより行なう。なお、分離境界モデルでは、隣接するセルの境界間の距離（ｂｏｒｄｅｒ−ｓｐａｃｉｎｇ特性）を数値で指定できるようになっている。セル間の境界特性が分離境界モデルと判定されたときには、表に含まれる行のうち背景スタイルが透明でない行、即ち透明でない背景（透明以外の背景色や背景画像）が指定された行があるか否かを判定し（ステップＳ４１２）、透明でない背景が指定された行があると判定されたときにはその背景の指定に拘わらず該当する行の背景を描画の対象外（透明）に設定する（ステップＳ４１４）。そして、該当する行に属するセル（図５のＤＯＭツリーにおける該当する行（ｔｒ）の子要素として階層付けられたセル（ｔｈ））のうち背景スタイルが透明のセル、即ち透明の背景が指定されたセルがあるか否かを判定し（ステップＳ４１６）、透明の背景が指定されたセルがあると判定されると、透明の背景の指定に拘わらず該当するセルの背景をそのセルが属する行の背景スタイルに設定する（ステップＳ４１８）。背景スタイルが透明であるか否かの判定は、具体的には、行（ｔｒ）やセル（ｔｈ，ｔｄ）のｂａｃｋｇｒｏｕｎｄ−ｃｏｌｏｒ特性に「ｔｒａｎｓｐａｒｅｎｔ」が指定（背景画像のときには、ｂａｃｋｇｒｏｕｎｄ−ｉｍａｇｅ特性に「ｎｏｎｅ」が指定）されているか否かを判定することにより行なわれる。なお、デフォルト値が透明であるときには、背景スタイル自体に指定がないか否かによって行やセルの背景が透明に指定されているか否かを判定することができる。図４に例示するＸＨＴＭＬ文書では、第２行から第４行までの行に透明以外の背景色が指定されると共にこれらの行に属するセル（ｔｄ）の一部に透明の背景色が指定されているのが解る。また、行の背景を描画の対象外に設定するステップＳ４１４の処理は、セル間のスペースを常に行よりも下層の表の背景として印刷するための処理であり、セルの背景を行の背景スタイルに設定するステップＳ４１８の処理は、セルの背景が透明な場合にそのセルの枠内に行の背景が透けて見えるように印刷するための処理である。このように、セルや行の背景の設定を変更することにより、セル間のスペースを常に表の背景として印刷でき、透明以外の背景が指定された行に属するセルのうち透明の背景が指定されたセルに対して行の背景が透けて見えるように印刷することができるのである。なお、ステップＳ４１０で分離境界モデルでないと判定、即ち境界つぶしモデルと判定されたり、ステップＳ４１２で背景スタイルが透明でない行がない、即ち全ての行の背景スタイルが透明であると判定されたり、ステップＳ４１６で該当する行に属するセルのうち背景スタイルが透明のセルがないと判定されたときには、ステップＳ４０８で取得した背景スタイルに応じた背景の設定を行なう（ステップＳ４２０）。
【００３３】
表，行，セルの背景を設定すると、ステップＳ４０６における解析結果に応じて表のセルを行毎にレイアウトし（ステップＳ４２２）、このレイアウトの際にレイアウトボックスがページボックスのページ境界をオーバーしてこれ以上登録できないときには、改ページの判定がなされ（ステップＳ４２４）、次ページのページボックスが作成されて残余の行に対してセルのレイアウト処理が再開される。
【００３４】
こうしてすべての要素ボックスに対してレイアウトが完了すると（ステップＳ４２６）、指定されたＤＯＭツリーをメモリ５０のＤＯＭツリー格納用領域から削除すると共に（ステップＳ４２８）、レイアウト終了を解析部３０に出力して（ステップＳ４３０）、レイアウト処理を終了する。これにより、解析部３０により作成される新たなＤＯＭツリーの格納領域が確保される。
【００３５】
レイアウト描画指示処理（図６）の説明に戻る。レイアウトを開始すると、最初のページ分のレイアウトが完了するのを待って（ステップＳ３１０）、レイアウトが完了したページを指定してＲＰＩ４０に描画開始指示を出力する（ステップＳ３２０）。ページ分のレイアウトが完了したか否かの判定は、次ページに対応するページボックスが作成されたか否かにより、１ページだけしかないときにはレイアウト処理が終了したか否かにより行なうことができる。描画開始指示されたＲＰＩ４０は、図９に例示する描画処理を実行し、ページボックスに従ってテキストや画像をメモリ５０の印刷用画像格納領域を用いてＲＧＢデータとして描画し（ステップＳ５００）、描画が終了したときに色変換部４２に色変換指示を出力すると共に（ステップＳ５１０）、描画終了をレイアウタ３８に出力する（ステップＳ５２０）。なお、画像の描画については、画像ファイルを読み出し、ファイル形式によっては展開等を行なって描画する。図４のＸＨＴＭＬ文書を解析して印刷した結果の一例を図１０および図１１に示す。図１０は、図７のレイアウト処理のステップＳ４１０〜Ｓ４１６を実行することなくステップＳ４２０とステップＳ４１８とを順に実行したときの印刷結果を示し、図１１は、図７のレイアウト処理の各ステップをすべて実行したときの印刷結果を示す。図１０では、透明の背景が指定されたセルは一つ下層の行の背景で埋められるがセル間のスペースも層が表よりも上の行の背景（図中斜線部分）で埋められるのに対して、図１１では、透明の背景が指定されたセルは一つ下層の行の背景で埋められセル間のスペースはすべて表の背景で埋められているのが解る。
【００３６】
描画開始指示を出力した後はそのページの描画が終了するのを待って（ステップＳ３３０）、そのページに対応するページボックスを削除する（ステップＳ３４０）。このように、ページの描画が終了する毎にそのページに対応するページボックスを削除することにより、ボックス格納用領域に不要なページボックスが格納された状態が継続されるのを回避することができる。こうしてページボックスを削除すると、次ページがあるか否かを判定し（ステップＳ３５０）、次ページがあるときにはステップＳ３１０の処理に戻る。即ち、次ページに対するページ分のレイアウトが完了しているか否かを判定し、レイアウトが完了していないときには完了するまで待ってレイアウトが完了したページを指定してＲＰＩ４０に描画開始指示を出力するのである。こうしてすべてのページを描画し、次ページがなくなると、レイアウト描画指示処理を終了する。
【００３７】
以上説明した実施例のカラーインクジェットプリンタ２０によれば、セル間にスペースを設ける指定（分離境界モデルの指定）がなされると共に表に含まれる行のうち背景が透明以外に指定された行が存在するとき、該当する行の背景を描画の対象外（透明）に設定するから、セル間のスペースを常に表に指定された背景で埋めることができる。しかも、背景が透明以外に指定された行に属するセルのうち背景が透明に指定されたセルが存在するときには、そのセルの背景を該当する行に指定された背景に設定するから、そのセルの枠内を一つ下層の行の背景で埋めることができる。また、こうした処理をセルや行の背景を設定することにより行なうから、背景の処理を迅速化でき、印刷処理を迅速化することができる。
【００３８】
ここで、実施例のカラーインクジェットプリンタ２０のコア３２とＸＭＬパーサー３４とＣＳＳＰＩ３６とからなる解析部３０が解析手段に相当し、レイアウタ３８が背景設定手段に相当し、レイアウタ３８とＲＰＩ４０と色変換部４２と２値化部４４とイメージバッファ４６と印刷実行部４８とが出力手段に相当する。
【００３９】
実施例のカラーインクジェットプリンタ２０では、セル，セルを包含する行，表の順に層をなして配置される背景の処理として説明したが、セル，セルを包含する列，表の順に層をなして配置される背景の処理とするものとしてもよい。
【００４０】
実施例のカラーインクジェットプリンタ２０では、構造化文書としてＸＨＴＭＬで記述された文書を解析して印刷するものとしたが、他のマークアップ言語により記述された文書を解析して印刷するものとしてもよい。また、マークアップ言語以外の言語により記述された文書を解析して印刷するものとしても差し支えない。
【００４１】
実施例のカラーインクジェットプリンタ２０では、入力インタフェース２２に接続される機器としてコンピュータ１０やデジタルテレビ１２やデジタルカメラ１４などを挙げたが、如何なる機器を接続するものとしても差し支えない。
【００４２】
実施例では、ＸＨＴＭＬ文書を解析して印刷するカラーインクジェットプリンタを用いて説明したが、カラーレーザプリンタやモノクロのインクジェットプリンタやレーザープリンタなどの種々のプリンタを用いるものとしてもよい。また、こうしたプリンタ以外に、ＸＨＴＭＬ文書を解析して出力（例えば、表示出力）する通常のコンピュータに用いるものとしても差し支えない。
【００４３】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００４４】
本発明は、印刷機器産業やコンピュータ産業などの産業に利用可能である。
【図面の簡単な説明】
【００４５】
【図１】実施例のカラーインクジェットプリンタ２０の構成の概略を示す構成図。
【図２】解析レイアウト指示処理の一例を示すフローチャート。
【図３】解析処理の一例を示すフローチャート。
【図４】具体例のＸＨＴＭＬ文書の一例を示す説明図。
【図５】具体例のＤＯＭツリーの一例を示す説明図。
【図６】レイアウト描画指示処理の一例を示す説明図。
【図７】レイアウト処理の一例を示す説明図。
【図８】表，行，セルの各背景の層構造の一例を示す説明図。
【図９】描画処理の一例を示す説明図。
【図１０】具体例の印刷結果の一例を示す説明図。
【図１１】具体例の印刷結果の一例を示す説明図。
【符号の説明】
【００４６】
１０  コンピュータ、１２  デジタルテレビ、１４  デジタルカメラ、２０  カラーインクジェットプリンタ、２２  入力インターフェース、２４  信号処理部、３０  解析部、３２  コア、３４  ＸＭＬパーサー、３６  ＣＳＳＰＩ、３８  レイアウタ、４０  ＲＰＩ、４２  色変換部、４４  ２値化部、４６  イメージバッファ、４８  印刷実行部、５０  メモリ。
【図１】
2005208809.tif 000003
【図２】
2005208809.tif 000004
【図３】
2005208809.tif 000005
【図４】
2005208809.tif 000006
【図５】
2005208809.tif 000007
【図６】
2005208809.tif 000008
【図７】
2005208809.tif 000009
【図８】
2005208809.tif 000010
【図９】
2005208809.tif 000011
【図１０】
2005208809.tif 000012
【図１１】
2005208809.tif 000013