(57)【特許請求の範囲】
【請求項１】
複数の要素を含む構造化文書を処理する印刷装置であって、
前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置手段と、
前記クリア指定がある要素が出現した場合に、前記第１の配置手段により配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置手段により配置されているフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置手段と、
前記第１の配置手段で配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置手段で配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成手段と、
を有することを特徴とする印刷装置。
【請求項２】
前記画像生成手段は、印刷手段であることを特徴とする請求項１に記載の印刷装置。
【請求項３】
複数の要素を含む構造化文書を処理する印刷方法であって、
前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置ステップと、
前記クリア指定がある要素が出現した場合に、前記第１の配置ステップにより配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置ステップにより配置されたフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置ステップと、
前記第１の配置ステップで配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置ステップで配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成ステップと、
を有することを特徴とする印刷方法。
【請求項４】
複数の要素を含む構造化文書の処理をコンピュータに実行させるプログラムであって、
前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置ステップと、
前記クリア指定がある要素が出現した場合に、前記第１の配置ステップにより配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置ステップにより配置されたフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置ステップと、
前記第１の配置ステップで配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置ステップで配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷装置、印刷方法、及びプログラムに関し、特に、デジタルデータ放送や、インターネットを始めとするデータ通信において配信されたコンテンツを処理するために用いて好適な技術に関するものである。
【背景技術】
【０００２】
従来、XHTMLなどのマークアップ言語で記述されたコンテンツの解釈実行、及び印刷処理は大規模な資源を駆使できるコンピュータ等を用いて行っていた。また、前記ケースでは表示系を想定しているため、限られた注目領域についてのみ処理すればよいため、仮描画を繰り返す方式で行われていた。
【０００３】
また、特許文献１においては、フォーマッタがスタイルデータに従って構造化文書をフォーマットするときに、その位置情報を付加情報作成部に伝え、付加情報作成部は、その位置情報と文書構造とを対応付け、その情報及び文書型を付加情報として付加情報重畳部で文書イメージに重畳して印刷部で印刷するようにした技術が提案されている。
【０００４】
【特許文献１】特開２００２−１０８８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記のコンテンツを表示する系のケースとは違い、印刷する系においては、一旦、コンテンツ全体を解釈実行して、それらを各ページに配分していくバッチ型処理を適用した方が全体の処理効率が高くなる。
【０００６】
一方、デジタルテレビ、携帯電話やデジタルカメラ等も、マークアップ言語で記述したコンテンツを取り扱うことが多くなってきている。ところが、このような機器では資源が限られているため、コンテンツを印刷データに変換する過程で生じるレイアウトのやり直しを回避することが求められていた。
【０００７】
本発明は前述の問題点に鑑み、複数の要素ブロックからなる構造化文書を処理する際に、レイアウト処理自体を大幅に簡略化して、データ処理効率を向上できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の印刷装置は、複数の要素を含む構造化文書を処理する印刷装置であって、前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置手段と、前記クリア指定がある要素が出現した場合に、前記第１の配置手段により配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置手段により配置されているフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置手段と、前記第１の配置手段で配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置手段で配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成手段と、を有することを特徴とする。
【０００９】
本発明の印刷方法は、複数の要素を含む構造化文書を処理する印刷方法であって、前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置ステップと、前記クリア指定がある要素が出現した場合に、前記第１の配置ステップにより配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置ステップにより配置されたフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置ステップと、前記第１の配置ステップで配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置ステップで配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成ステップと、を有することを特徴とする。
【００１０】
本発明のプログラムは、複数の要素を含む構造化文書の処理をコンピュータに実行させるプログラムであって、前記構造化文書中の複数の要素を出現順に解析することにより、フロート指定のある要素に対応する要素ブロックを出現順に配置し、フロート指定のある要素以外の要素に対応する要素ブロックの配置をクリア指定がある要素が出現するまで保留する第１の配置ステップと、前記クリア指定がある要素が出現した場合に、前記第１の配置ステップにより配置が保留されているフロート指定のある要素以外の要素に対応する要素ブロックを、前記第１の配置ステップにより配置されたフロート指定のある要素に対応する要素ブロックが配置されていない領域に配置する第２の配置ステップと、前記第１の配置ステップで配置されたフロート指定のある要素に対応する要素ブロックと、前記第２の配置ステップで配置されたフロート指定のある要素以外の要素に対応する要素ブロックとに基づいて画像を生成する画像生成ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数の要素ブロックからなる構造化文書を処理する際に、レイアウト処理自体を大幅に簡略化することができ、データ処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の印刷装置、印刷方法、及びプログラムの実施の形態を説明する。なお、本実施の形態は、W3C(World Wide Web Consortium)が定めているXHTML1.1TM(eXtensible Hyper Text Markup Language)及びCSS2.0TM(Cascading Style Sheet 2.0)で定める仕様書に基づいて記載されている。そして、「ノード・リンク構造」とは、ノードとリンクに区別できる項目を含み、各リンクが２つ以上のノードに関係している構造を言う。さらに、ノード・リンク関係とは、ノードのパス及び要素間のリンクに基づく要素間の関係である。
【００１５】
先ず、始めに、一般的に行われている要素ブロック配置例を、図５を参照しながら説明する。
図５に示したように、要素ブロックの出現順により配置する通常のレイアウト処理では、フロート指定が設定されたタグが出現すると、レイアウトのやり直しを行う必要がある。すなわち、重なりを解決するための再配置するので効率が悪い問題があった。
【００１６】
以下に、ステップ毎の処理を説明する。
（１）「ノード１」を指定に従い配置する処理を行う。
（２）「ノード２」を左隅に配置するためにノード１を右にずらしてブロックの形を変更する処理を行う。
（３）「ノード２」を配置する処理を行う。
（４）「ノード３」を右隅に配置するためにノード１のブロックの形を変更する処理を行う。
（５）「ノード３」を配置する処理を行う。
以下の配置については、図示及び説明を省略するが、通常の配置処理を行った場合には、「フロート指定」の要素ブロックが出現する毎に再配置処理を行わなければならなかったので、従来は、レイアウト処理を効率的に行うことができなかった。
【００１７】
図１は、本実施の形態の印刷システム全体の概要構成を示す図である。
本実施の形態の印刷装置３０は、ＰＣ（パーソナルコンピュータ）１１や、ＰＤＡ（personal digital assistant：個人向け携帯情報機器の総称）１２や、デジタル放送機器１３等を総称したホスト（コンピュータ）１０より、有線または無線の接続形態で入力するコンテンツ（構造化文書）２０を解析し、要素をノードとした木構造に変換した後、レイアウトを決定し、印刷データ３３に変換するコントローラ３１、前記印刷データ３３に基づきメディア４０上に印刷３４を行って画像を形成するプリントエンジン３２を有している。なお、ここで言うコントローラの３１の実態は、ＣＰＵ、記憶装置及びインターフェースを含む、シングルボードコンピュータで構成している。
【００１８】
図２は、本実施の形態における要素の出現順とレイアウト処理の関係を示す図である。
ここでは、要素の配置を出現順に拠らないで、float:スタイルのタグ（tag）を優先して先に配置を決定し、通常のタグをその余白に配置することにより、レイアウト処理が簡単になることを説明している。
【００１９】
なお、前記「タグ」とは、テキストファイルの中で、文字の表示方法などを指定するための特別な文字列のこと。表示すべき文字そのものと区別するために、特定の文字や記号などで前後を囲んで表現する。Webページを記述するのに利用されるHTMLでは、タグを使って文書の構造やレイアウト、リンクを表現するためのものである。
【００２０】
先ず、図２は構造化文書を字句解析及び構文解析した結果から得たノードとリンクで表した図であり、特に、あるルート下のレイヤーにおけるノード（要素）の配置を決める様子を表している。この例では、「ノード１」から「ノード７」は、構造化文書の入力記述順に対応している。「ノード２」、「ノード３」、「ノード７」は浮動体指定（float）があり、「ノード５」には浮動体解除指定（clear）がある。ここで、実施の形態の配置手順としては、以下のようになる。ただし、ここでは仮に「ノード２」、「ノード３」、「ノード７」の実体は画像からなる要素ブロックでその他のノードはテキストからなる要素ブロックであるとする。
【００２１】
（１）「ノード２」を指定に従い左隅に配置する（float:left）。
（２）「ノード３」を指定に従い右隅に配置する（float:right）。
（３）「ノード１」を先に配置したブロックの間に流す形で配置する。
（４）「ノード４」を同様にノード１の下に配置する。
（５）「ノード５」をノード２と干渉しない新たなブロックとして配置する(clear:both)。
（６）「ノード７」を指定に従い左隅に配置する（float:left）。
（７）「ノード６」を先に配置したブロックの間に流す形で配置する。
【００２２】
図３は、本実施の形態の処理手順を説明するフローチャートである。
最初のステップＳ１では、注目要素がフロート指定であるかを判定する。この判定の結果、フロート指定ではない場合にはステップＳ２に進み、クリア指定であるか否かを判定する。また、ステップＳ１の判定の結果、フロート指定ではなかった場合にはステップＳ３に進んで、フロート指定がある要素を通常どおり配置して、図示しない配置済みマーカーを付す。
【００２３】
ステップＳ２の判定の結果、クリア指定であった場合にはステップＳ４に進み、クリア指定が出現した場合の処理を行う。この場合、前記配置済みマーカーの無いもの、すなわち、配置保留となっていた要素を出現順に配置する。
【００２４】
次に、ステップＳ５においては、注目階層の要素の全てが配置済みであるか否かを判定する。この判定の結果、全ての要素が済んでいない場合にはステップＳ６に進み、要素のスキャンをするために、次の注目要素を決定し、その後ステップ１に遷移する。また、ステップＳ５の判定の結果、全要素が済んでいる場合には処理を終了する。以上のプロセスにより、注目階層の要素ブロックの配置を決定している。
【００２５】
次に、図４のフローチャートを参照しながら他の実施の形態を説明する。
処理が開始されると、最初のステップＳ１１において、注目要素がフロート指定であるか否かを判定する。この判定の結果、フロート指定ではない場合にはステップＳ１２に進み、フロート指定である場合にはステップＳ１３に進む。
【００２６】
ステップＳ１２においては、クリア指定があるか否かを判定する。この判定の結果、クリア指定である場合にはステップＳ１４に進み、クリア指定が出現した場合の処理を行う。この場合には、前記配置待ち行列の要素をリンク順に配置する処理を行う。
【００２７】
また、ステップＳ１１の判定の結果、フロート指定であることによりステップＳ１３に進んだ場合には、フロート指定がある要素を、図示しない配置待ち行列の最後尾にリンクして、図示しない処理済みマーカーを付す処理を行う。
【００２８】
次に、ステップＳ５において、注目階層の要素全てが配置済みであるか否かを判定する。この判定の結果、要素全てが配置済みではない場合にはステップＳ１６に進み、要素のスキャンをするために、次の注目要素を決定する処理を行い、その後、ステップ１に遷移する。また、ステップＳ１５の判定の結果、要素全てが配置済みであった場合には処理を終了する。以上のプロセスにより、注目階層の要素ブロックの配置を決定している。
【００２９】
（本発明の他の実施の形態）
前述した実施の形態の機能を実現するべく各種のデバイスを動作させるように、前記各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施の形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００３０】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記録する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００３１】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施の形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して前述の実施の形態の機能が実現される場合にもかかるプログラムコードは本発明の実施の形態に含まれる。
【００３２】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合にも本発明に含まれる。
【図面の簡単な説明】
【００３３】
【図１】実施の形態の印刷システム全体の概要構成を示す図である。
【図２】実施の形態における要素の出現順とレイアウト処理の関係を示す図である。
【図３】実施の形態の処理手順を説明するフローチャートである。
【図４】実施の形態の処理手順の他の例を説明するフローチャートである。
【図５】従来の要素ブロック配置例を説明する図である。
【符号の説明】
【００３４】
１０  ホスト
１１  パーソナルコンピュータ、
１２  ＰＤＡ
１３  デジタル放送機器
２０  コンテンツ
３０  印刷装置
３１  コントローラ
３２  プリントエンジン
３３  印刷データ
３４  印刷
４０  メディア
【図１】
0004532995.tif 000002
【図２】
0004532995.tif 000003
【図３】
0004532995.tif 000004
【図４】
0004532995.tif 000005
【図５】
0004532995.tif 000006