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