(57)【要約】【課題】少量のメモリしかない情報処理装置においても、ページ記述データを正常に処理し、ページ記述データが表す画像を描画できるようにする。【解決手段】ページ記述データをストリーム受信する際に、内部データメモリがいっぱいになったら（ステップＳ６０５）、印字領域の下側に位置するオブジェクトの内部データを削除して（ステップＳ６０７）受信を継続する（ステップＳ６０２）。ストリーム受信終了後、印字可能領域を印字した後（ステップＳ６１１）で再度同じデータのストリーム受信を行い（ステップＳ６１４）、未印字の領域を印字する。以後、処理を繰り返しすべての領域の印字を行う。【選択図】  図６
2009137042.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから受信した構造化文書の図形要素を逐次処理する情報処理装置であって、
前記構造化文書の各図形要素を内部データに変換する変換手段と、
前記内部データを記憶領域に格納するための格納手段と、
受信した各図形要素の描画位置を計算するための計算手段と、
前記記憶領域に格納された各図形要素の内部データを削除するための削除手段と、
前記格納手段が前記記憶領域に図形要素の内部データを格納しようとした際に、前記記憶領域の残量が前記図形要素のデータ量よりも少ない場合には、前記削除手段が前記記憶領域に格納された各図形要素の内部データのうち前記描画位置が最も下側にある図形要素の内部データを削除するように制御する制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記削除手段が削除した図形要素の描画位置を格納する削除位置情報格納手段を有し、
前記格納手段は、受信した図形要素の描画位置が前記削除位置情報格納手段に格納された描画位置よりも下側にある場合には、前記図形要素の内部データを前記記憶領域に格納しないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記描画位置とは、図形要素の描画範囲の上端位置であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記下側とは、構造化文書をもとに生成した画像データを描画する際の主走査方向をＸ軸、副走査方向をＹ軸、描画の開始地点を原点としたとき、Ｙ座標の値が大きくなる側であることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記構造化文書はＸＭＬ形式で記述された文書であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
ホストシステムから受信した構造化文書の図形要素を逐次処理する情報処理方法であって、
前記構造化文書の各図形要素を内部データに変換する変換工程と、
前記内部データを記憶領域に格納するための格納工程と、
受信した各図形要素の描画位置を計算するための計算工程と、
前記記憶領域に格納された図形要素の内部データを削除するための削除工程と、
前記格納工程で前記記憶領域に図形要素の内部データを格納しようとした際に、前記記憶領域の残量が前記図形要素のデータ量よりも少ない場合には、前記削除工程で前記記憶領域に格納された各図形要素の内部データのうち前記描画位置が最も下側にある図形要素の内部データを削除するように制御する制御工程とを有することを特徴とする情報処理方法。
【請求項７】
請求項６に記載の方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書を処理して画像データを生成する情報処理装置等に関する。
【背景技術】
【０００２】
従来、ページ記述言語を用いて表示又は印刷を行う装置がある。ページ記述言語には様々な形式があるが、一般にページ記述言語は図形や文字の描画命令の連続で構成されている。
【０００３】
また構造化文書をページ記述言語として用いる場合もある。この種のページ記述言語としては、ＳＶＧ（Scalable Vector Graphics）やＨＴＭＬ（Hyper Text Markup Language）、ＸＭＬ（Extensible Markup Language）等がある。
【０００４】
例えば、ページ記述言語を用いた印刷システムの場合、ホスト側からページ記述言語で記述されたデータを印刷装置に送り、印刷装置でページ記述言語を解析して画像データに変換し、印刷を行っている。ページ記述言語の送受の際には、データを少量ずつ送受信するストリーミングという方法が用いられることもある。
【０００５】
ページ記述言語の解析には相応の計算量と相応のメモリ（記憶領域）を必要とする。計算量の低減やメモリ使用量の低減は製品コストの削減につながるため、従来、印刷装置でのページ記述言語の処理を軽減する方法が検討されてきた。例えば、印刷装置での処理時間を削減する方法として、あらかじめ図形の重なりを判定し、他の図形によって隠れる図形は削除する方法が知られている（例えば、特許文献１を参照のこと）。
また、ストリーミングを用いる場合には、ページ記述言語を少量ずつ処理することにより、印刷装置でのメモリ使用量を低減することが可能である。
【０００６】
【特許文献１】特開２００４−０５４７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ページ記述言語を用いる場合、すべてのデータを受信し終わるか、１ページ分のデータを受信し終わるまで、正確な描画ができないケースがある。そのようなページ記述言語を用いた場合には、１ページ分のページ記述データをメモリに保持できない印刷装置では、正常に印刷処理を行うことができなかった。印刷装置に限らず、表示装置等他の情報処理装置においても、十分なメモリがない場合には、正常な描画処理を行うことができない場合があった。
【０００８】
例えば、図３に示したＳＶＧデータはＡ４サイズ１ページ分のグラフィックスを表している。図３のＳＶＧには、円、楕円、矩形、直線、多角形（三角形）、文字列の各要素が含まれており、これを描画した場合には図４のようになる。図３のＳＶＧにおいて、円を表すcircle要素はＳＶＧデータの末尾近くに存在する。このcircle要素には、円を描画する座標位置が記述されており、図４に示したとおりＡ４サイズの領域の上端近くに円が描画される。
【０００９】
一般に印刷装置においては用紙の上端から印字を行うので、図３に示したＳＶＧの描画結果の印字を開始するためには、印刷装置がcircle要素を解釈している必要がある。図３のＳＶＧがストリーミングにより少量ずつホストコンピュータから送られて来る場合、もしこのcircle要素を受信するまでに印刷装置のメモリがいっぱいになってしまったら、circle要素を受信できない。この場合には、正常に描画が開始できないという問題が起こり得る。
【００１０】
図３に示したＳＶＧは説明のためにごく簡単な内容であるが、実際のグラフィックスの印刷においては、数メガバイトにおよぶ大きなＳＶＧデータが使用されることがあるため、十分なメモリがない印刷装置においては前述した問題があった。
【００１１】
そこで、本発明は、少量のメモリしかない情報処理装置においても、ページ記述データを正常に処理し、ページ記述データが表す画像を描画できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の情報処理装置は、ホストシステムから受信した構造化文書の図形要素を逐次処理する情報処理装置であって、前記構造化文書の各図形要素を内部データに変換する変換手段と、前記内部データを記憶領域に格納するための格納手段と、受信した各図形要素の描画位置を計算するための計算手段と、前記記憶領域に格納された各図形要素の内部データを削除するための削除手段と、前記格納手段が前記記憶領域に図形要素の内部データを格納しようとした際に、前記記憶領域の残量が前記図形要素のデータ量よりも少ない場合には、前記削除手段が前記記憶領域に格納された各図形要素の内部データのうち前記描画位置が最も下側にある図形要素の内部データを削除するように制御する制御手段とを有することを特徴とする。
また、本発明の情報処理方法は、ホストシステムから受信した構造化文書の図形要素を逐次処理する情報処理方法であって、前記構造化文書の各図形要素を内部データに変換する変換工程と、前記内部データを記憶領域に格納するための格納工程と、受信した各図形要素の描画位置を計算するための計算工程と、前記記憶領域に格納された図形要素の内部データを削除するための削除工程と、前記格納工程で前記記憶領域に図形要素の内部データを格納しようとした際に、前記記憶領域の残量が前記図形要素のデータ量よりも少ない場合には、前記削除工程で前記記憶領域に格納された各図形要素の内部データのうち前記描画位置が最も下側にある図形要素の内部データを削除するように制御する制御工程とを有することを特徴とする。
また、本発明のプログラムは、上記に記載の方法の各工程をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明によれば、少量のメモリ消費で正常にページ記述データを処理し、描画を行うことが可能になる。例えば１ページ分のページ記述データをメモリ内に保持することができない印刷装置においても、送信側でページ記述データの加工や分割、変換を行うことなく、正常にページ記述データの印刷を行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明に係る情報処理装置の実施形態を説明する。本実施形態はホストシステムから受信した構造化文書の図形要素を逐次処理する情報処理装置に本発明を適用したものである。また、本実施形態においては、本発明に係る情報処理装置としてプリンタ装置を例に説明する。以下、本実施形態のプリンタ装置の構成について、図１のブロック図を参照して説明する。
【００１５】
図１において、ＣＰＵ１０１はシステム制御部であり装置全体を制御する。ＲＯＭ１０２は、ＣＰＵの制御プログラムや各種固定データを格納する読取専用のメモリである。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成された書換え可能なメモリであり、プログラム制御変数等を一時記憶するためのものである。各種ワークバッファ、受信データを格納する受信バッファ、オブジェクトデータ、画像メモリ等もＲＡＭ１０３に含まれる。
【００１６】
印字部１０４は、ページ記述言語を解析して作成した画像データを印字するためのものである。表示部１０５は、ＬＣＤ、ＬＥＤ等を用いてオペレータに表示通知するためのものである。操作部１０６は、ハードキー等で構成され、オペレータが各種入力操作を行うためのものである。通信制御部１０７は、外部装置との通信を制御するためのものであり、ＬＡＮ回線１０８に接続されている。システムバス１０９は、１０１〜１０７の各ユニットを通信可能に接続するバスである。
【００１７】
図２は、本発明の実施形態に係るプリンタ装置を含むシステムの概要を示した構成図である。同図において、コンピュータ装置２０１とプリンタ装置２０３はＬＡＮ２０２に接続され、互いに通信が可能となっている。
【００１８】
コンピュータ装置２０１はページ記述データを作成することが可能であり、コンピュータ装置２０１で作成されたページ記述データはＬＡＮ２０２を経由してプリンタ装置２０３へ送信される。プリンタ装置２０３では受信したページ記述データを解析して画像データに変換し印字を行う。
【００１９】
本実施形態では、ページ記述データとしてＳＶＧで記述されたデータを用いる。ＳＶＧはＸＭＬ形式のベクトルグラフィックスであり、テキストベースのデータフォーマットである。
【００２０】
また、本実施形態では、コンピュータ装置２０１とプリンタ装置２０３との間のデータの送受信にはストリーミングが用いられる。すなわち、ＳＶＧデータは、小さなサイズのデータに分割され、少量ずつ送受信される。プリンタ装置２０３では少量ずつ受信したＳＶＧデータの断片を順次処理することが可能である。
【００２１】
図３は、本実施形態で用いるＳＶＧデータの一例である。図３に示したＳＶＧはデータサイズは小さいが、これは説明を簡単にするためのものであり、より大きいデータサイズのＳＶＧに対しても本発明は適用され得る。同図に示したとおり、ＳＶＧにおいては、オブジェクトの種類や座標値等のプロパティ値が文字列で記述されている。
【００２２】
図４は、図３に示したＳＶＧの図形要素をもとに生成した画像データを表した図である。図３及び図４に示したＳＶＧは白黒の画像データであるが、ＳＶＧではカラーも使用可能であり、本発明はカラーデータに対しても当然適用可能である。
【００２３】
図４に示した画像データをプリンタ装置２０３が印刷する際は、同図に示した画像の左上から描画を開始し、横軸（Ｘ軸）が主走査方向、縦軸（Ｙ軸）が副走査方向となる。
【００２４】
図５は、ＲＡＭ１０３の内部構成を示した模式図である。同図に示したとおり、ＲＡＭ１０３は複数の領域から構成される。ワークバッファ領域５０１は、プログラム変数等を格納するメモリ領域である。受信バッファ領域５０２は、送信されてきたＳＶＧのテキストデータを一時格納するメモリ領域である。オブジェクトデータ領域５０３は、ＳＶＧを内部データに変換したデータを格納するためのメモリ領域である。前述のとおりＳＶＧはテキストデータであり、座標値等はすべて文字列で表現される。内部データはこれらの文字列を数値に変換するなど、データ量を圧縮し、より処理しやすい形式に変換したものである。画像メモリ領域５０４は、オブジェクトデータ領域５０３に格納した内部データから生成した画像データを格納するメモリ領域である。オブジェクトデータ領域５０３には、各オブジェクトの描画位置、即ち上端Ｙ座標と下端Ｙ座標の値を格納したテーブルも記憶される。この上端Ｙ座標と下端Ｙ座標の値は、オブジェクトの存在領域（描画範囲）を判断するために用いられる。
【００２５】
本実施形態においては画像メモリ領域５０４に格納された画像データが、印字部１０４によって処理され、記録紙に印刷される。図６は本実施形態のプリンタ装置２０３における処理の流れを示すフローチャートである。同図は、プリンタ装置２０３がコンピュータ装置２０１からストリームデータとして受信されてくるＳＶＧの受信開始直後から、印字部１０４で印字するまでの処理の流れを示している。
【００２６】
同図に示したとおり、プリンタ装置２０３はまず、起点Ｙ座標を表す変数Ｙ１に０をセットし、終点Ｙ座標を表す変数Ｙ２に印刷するグラフィックスの高さをセットする（ステップＳ６０１）。この描画の開始地点Ｙ座標Ｙ１と終点Ｙ座標Ｙ２は印刷可能な範囲を示すものであり、グラフィックスの左上を原点とした座標系の座標値である。
【００２７】
プリンタ装置２０３は、コンピュータ装置２０１からＳＶＧデータを送受信する前に、プロトコルによってＳＶＧの印刷サイズをコンピュータ装置２０１から取得している。ステップＳ６０１の処理の際には、変数Ｙ２格納するグラフィックスの高さの値として、プロトコルによって取得した印刷サイズの高さを使用する。
【００２８】
次にステップＳ６０２で、プリンタ装置２０３はＳＶＧのストリームデータを受信する。ここでは、数バイト〜数十バイト程度のＳＶＧデータの一部を受信する。受信したストリームデータは、受信バッファ領域５０２に順次格納される。
【００２９】
続いてステップＳ６０３で、プリンタ装置２０３は、オブジェクトを受信したか否かを判断する。すなわち、受信バッファ領域５０２に格納したＳＶＧの一部が少なくとも一つのオブジェクトとなっているかを判断する。ここでオブジェクトとは、図形、テキスト、画像、フォント等を示すデータであり、例えば図３で示したＳＶＧではpolygon要素やrect要素、text要素、line要素等がそれぞれ一つのオブジェクトである。ステップＳ６０３でオブジェクトを受信していないと判断されれば、さらにＳＶＧデータを取得するためステップＳ６０２の処理へ戻る。ステップＳ６０３でオブジェクトを受信したと判断されれば、そのオブジェクトは座標Ｙ１からＹ２の間に少なくとも一部が存在するか否かを判断する（ステップＳ６０４）。
【００３０】
前述のとおり、起点Ｙ座標Ｙ１と終点Ｙ座標Ｙ２は印刷可能な範囲を示すものであるから、あるオブジェクトがＹ１からＹ２の間にまったく存在しないのであれば、そのオブジェクトは印刷する必要がない。
逆に、オブジェクトの一部がＹ１からＹ２の間に一部でも存在すれば、そのオブジェクトは印刷する必要がある。ステップＳ６０４は、受信したオブジェクトが印刷範囲に含まれるかを判断するためのものである。
【００３１】
ここで、オブジェクトがＹ１からＹ２の間に存在するか否か判断するために、ＳＶＧデータの座標値が使用される。例えば図３に示したＳＶＧのrect要素は矩形を表すものであるが、この矩形はrect要素の属性値ｙと属性値heightの値から存在範囲のＹ座標の上端と下端を判断（計算）することができるため、その値を用いてステップＳ６０４の処理を行う。
【００３２】
ステップＳ６０４でオブジェクトがＹ１からＹ２の間に一部も存在しないと判断されれば、そのオブジェクトは印刷が不要であるから次のストリームデータを受信するためにステップＳ６０２の処理に戻る。ステップＳ６０４においてオブジェクトがＹ１からＹ２の間に少なくとも一部が存在すると判断されれば、そのオブジェクトの内部データを格納するためのメモリ領域であるオブジェクトデータ領域５０３が十分にあるか否かを判断する（ステップＳ６０５）。
【００３３】
ここで、十分にあるか否かというのは、受信したオブジェクトを内部データに変換したデータを格納するための領域がオブジェクトデータ領域５０３に残っているかという判断である。すなわち、オブジェクトデータ領域５０３の残量が、受信したオブジェクトを内部データに変換したデータのサイズより大きいか否かを判断することになる。ステップＳ６０５でオブジェクトデータ領域５０３が十分にあると判断されれば、受信したオブジェクトの上端Ｙ座標と下端Ｙ座標の値をそのオブジェクトと関連付けたテーブルに格納する（ステップＳ６０８）。このテーブルもオブジェクトデータ領域５０３に記憶される。ステップＳ６０８に続いて、受信したオブジェクトを内部データに変換したものをオブジェクトデータ領域５０３に格納する（ステップＳ６０９）。
【００３４】
ステップＳ６０９の処理の後には、コンピュータ装置２０１から送られてくるＳＶＧのストリームデータはまだあるか否かを判断し（ステップＳ６１０）、ストリームデータがまだあると判断されればステップＳ６０２の処理に戻る。
【００３５】
一方、ステップＳ６０５において、オブジェクトデータ領域５０３が十分にはないと判断されれば、オブジェクトデータ領域５０３に格納されているテーブルを参照して上端Ｙ座標の値が最も大きいオブジェクトを判断する。そして、そのオブジェクトの内部データをオブジェクトデータ領域５０３から削除する（ステップＳ６０６）。この処理により、オブジェクトデータ領域５０３のメモリが一部解放される。上端Ｙ座標の値が最も大きいオブジェクトが複数存在する場合には、それらのオブジェクトの内部データをすべて削除する。
【００３６】
ステップＳ６０６の処理の後には、終点Ｙ座標を表す変数Ｙ２に、削除したオブジェクトの上端Ｙ座標の値をセットする（ステップＳ６０７、本発明でいう削除位置情報格納手段の処理に対応する）。オブジェクトデータ領域から内部データを削除したことによりそのオブジェクトは描画することができないため、終点Ｙ座標は削除したオブジェクトの上端Ｙ座標となる。
【００３７】
ステップＳ６０７の処理の後は、再度メモリ領域のオブジェクトデータ領域５０３は十分にあるか否かを判断し（ステップＳ６０５）、以降の処理を繰り返す。
【００３８】
また、ステップＳ６１０で、ＳＶＧのストリームデータはもうない、すなわちストリームデータの受信は終了したと判断されれば、起点Ｙ座標Ｙ１から終点Ｙ座標Ｙ２の範囲を画像データに変換し、画像メモリ領域５０４に格納する。印字部１０４は、これに呼応して画像メモリ領域５０４に格納された画像データの印字を開始する（ステップＳ６１１）。
【００３９】
ステップＳ６１１の処理の後は、終点Ｙ座標Ｙ２はグラフィックスの高さと一致するか否かを判断する（ステップＳ６１２）。これはすなわち、印字が必要な全オブジェクトが画像データに変換され画像メモリ領域５０４に一時格納されたか否かを意味する。もしステップＳ６０７の処理を行っていれば、Ｙ２の値がグラフィックスの高さと一致しなくなる。
【００４０】
なお、本フローチャートではＳ６１１の印字処理の終了後にステップＳ６１２の処理を行っているかのように記述している。しかし、本実施形態では画像データが画像メモリ領域５０４に格納され印字部１０４が印字を開始した時点でステップＳ６１２の処理を行うことが可能である。印字部１０４の印字が終了すれば、画像メモリ領域５０４に格納された画像データは破棄される。
【００４１】
ステップＳ６１２において、終点Ｙ座標Ｙ２はグラフィックスの高さと一致すると判断されれば、印字が必要なオブジェクトはすべて処理したことになるから、図６のフローチャートの処理を終了する。また、ステップＳ６１２において、終点Ｙ座標Ｙ２はグラフィックスの高さと一致しないと判断されれば、起点Ｙ座標を表す変数Ｙ１に現在のＹ２の値をセットし、終点Ｙ座標Ｙ２に改めてグラフィックスの高さの値をセットする（ステップＳ６１３）。
【００４２】
そして、オブジェクトデータ領域５０３に格納されたオブジェクトの内部データをすべて破棄し、コンピュータ装置２０１にＳＶＧデータの再送信を要求する（ステップＳ６１４）。これは、一度送られたＳＶＧデータをすべて再度送信するよう要求するものである。
【００４３】
なお本実施形態では、コンピュータ装置２０１はプロトコルによって再送信要求があればデータを再送信する機能を持っている。ステップＳ６１４でコンピュータ装置２０１に再送信要求を出した後は、プロトコルの処理を経て、再度ストリームデータの受信を開始する（ステップＳ６０２）。以降は同様の処理を繰り返し、最終的には印字が必要な全オブジェクトの印刷が行われフローチャートの処理を終了する。
【００４４】
なお、図６のフローチャートでは、ステップＳ６０１において、起点Ｙ座標Ｙ１に０をセットし終点Ｙ座標Ｙ２にグラフィックスの高さをセットしているが、終点Ｙ座標Ｙ２にバンドの高さをセットするようにしても良い。その場合には、ステップＳ６１３において、印字しようとするバンドの起点Ｙ座標と終点Ｙ座標の値をセットすることになる。
【００４５】
以上説明したように、図６のフローチャートに示した処理によって、オブジェクトデータ領域５０３が小さい場合であってもプリンタ装置２０３はページ記述データを正常に印刷することが可能となる。
【００４６】
図７は、図３に示したＳＶＧをコンピュータ装置２０１からプリンタ装置２０３にストリーム形式で送信する場合の、オブジェクトの送信順序を示した模式図である。同図に示したとおり、コンピュータ装置２０１は図３のＳＶＧを上から順に送るため、プリンタ装置２０３はpolygon要素、rect要素、text要素、line要素、circle要素、ellipse要素の順にオブジェクトを受信することになる。
【００４７】
図８は、図３に示したＳＶＧをプリンタ装置２０３が処理する場合の実際の動作例を示したフロー図である。プリンタ装置２０３は図６に示したフローチャートの処理を行うものであるが、図３に示したＳＶＧを図６のフローチャートに従って処理すると図８のようになる。なお、図８では変数に値を格納するといった細かい処理は省略してある。
【００４８】
図８の処理においては、プリンタ装置２０３のオブジェクトデータ領域５０３には、オブジェクトデータは４つまでしか格納できないことを前提としている。オブジェクトデータ領域５０３に格納するオブジェクトデータは、各オブジェクトデータのサイズにもよるため、単純にオブジェクトの個数で表されるものではない。また、実際にはオブジェクトデータのメモリ領域がオブジェクト４個分しかないという状況は考えにくいが、ここでは同様に説明のわかりやすさのためにそのような前提にしている。本発明は、より大きなメモリサイズの装置にも当然適用可能である。
【００４９】
図８に示したとおり、プリンタ装置２０３は、ステップＳ８０１においてコンピュータ装置２０１からＳＶＧの一部であるpolygon要素のテキストデータを受信し受信バッファ領域５０２に一時格納する。そして、テキストデータを内部データに変換した上でオブジェクトデータ領域５０３に格納する。内部データに変換した時点で受信バッファ領域５０２はクリアする。
【００５０】
次に、同様にrect要素、text要素、line要素を順次受信し受信バッファ領域５０２に一時格納して、内部データに変換した上でオブジェクトデータ領域５０３に格納する（ステップＳ８０２、Ｓ８０３、Ｓ８０４）。
【００５１】
続いて、circle要素を受信して受信バッファ領域５０２に格納する（Ｓ８０５）。ここで、オブジェクトデータ領域５０３にはすでに４個のオブジェクトのデータがあり空き領域がない。このため、既にオブジェクトデータ領域５０３に格納されているオブジェクトのうちオブジェクトの上端が最も下側にあるpolygon要素の内部データをオブジェクトデータ領域５０３から削除する（ステップＳ８０６）。そして、受信バッファ領域５０２に一時格納されているcircle要素のテキストデータを内部データに変換した上でオブジェクトデータ領域５０３に格納する（ステップＳ８０７）。
【００５２】
更に、ellipse要素を受信する（ステップＳ８０８）が、同様にオブジェクトデータ領域５０３には空き領域がないため、オブジェクトの上端が最も下側にあるtext要素の内部データをオブジェクトデータ領域５０３から削除する（ステップＳ８０９）。そして、ellipse要素の内部データをオブジェクトデータ領域５０３に格納する（ステップＳ８１０）。
【００５３】
ここまでで、オブジェクトのストリームデータを一通り処理し終えたので、オブジェクトデータ領域５０３に格納された内部データを解析し、text要素の上端位置より上側部分を画像データに変換する。生成された画像データは画像メモリ領域５０４に格納され、印字部１０４が印刷する（ステップＳ８１１）。画像データに変換された後は、オブジェクトデータ領域５０３にあるオブジェクトの内部データは不要であるから削除する。
【００５４】
そして、ステップＳ８１１ではグラフィックスの一部しか印刷されないため、コンピュータ装置２０１にＳＶＧの再送信を要求する（ステップＳ８１２）。コンピュータ装置２０１は、プリンタ装置２０３からの再送信要求を受けて、ＳＶＧのストリームデータを再送信する。続いてプリンタ装置２０３は、再度polygon要素を受信し、polygon要素は印刷領域に含まれるので、内部データに変換した上でオブジェクトデータ領域５０３に格納する（ステップＳ８１３）。このときpolygon要素が印刷領域に含まれるか否かの判断には、図６のフローチャートに示した起点Ｙ座標Ｙ１と終点Ｙ座標Ｙ２が用いられる。
【００５５】
次に、polygon要素の次にrect要素を受信するが、rect要素は印刷領域に一切含まれないため、オブジェクトデータ領域５０３に格納しない（ステップＳ８１４）。一方、続いて受信するtext要素、line要素はともに印刷領域に含まれるため、内部データに変換した上でオブジェクトデータ領域５０３に格納する（ステップＳ８１５、Ｓ８１６）。
【００５６】
次に、circle要素は印刷領域に一切含まれないため、オブジェクトデータ領域５０３に格納しない（ステップＳ８１７）。次に、ellipse要素は印刷領域に含まれるため、内部データに変換した上でオブジェクトデータ領域５０３に格納する（ステップＳ８１８）。
【００５７】
ここまでで２度目のオブジェクトストリームの処理を終えたので、オブジェクトデータ領域５０３に格納された内部データを解析し、text要素の上端位置から下側の部分を画像データに変換する。生成された画像データは画像メモリ領域５０４に格納され、印字部１０４によって印刷される（ステップＳ８１９）。
【００５８】
この時点でグラフィックスの全オブジェクトが印刷されたため、図８のフローチャートに示した処理を終了する。
【００５９】
図８のフロー図に示したように、本実施形態のプリンタ装置２０３においては、図３のＳＶＧのストリームデータを２回受信することにより、すべてのオブジェクトを印刷することが可能となる。ここではストリームデータの受信は２回行っているが、すべてのオブジェクトを印刷するために３回以上受信を繰り返しても良い。
【００６０】
なお、本実施形態では、プリンタ装置２０３を例に説明をしたが、本発明はプリンタ装置に限らず、ディスプレイ装置、画像データベース装置等の情報処理装置にも適用され得る。
【００６１】
また、本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
プログラムコードを供給するための記録媒体としては、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００６３】
また、コンピュータが読み出したプログラムコードを実行することにより、コンピュータ上で稼動しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【００６４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリ（記憶領域）に書きこまれるものでもよい。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施形態によるプリンタ装置の構成を示すブロック図である。
【図２】本発明の実施形態によるプリンタ装置を含むシステムの構成を示す模式図である。
【図３】本発明の実施形態によるプリンタ装置で処理されるＳＶＧデータの記述例を示す図である。
【図４】図３に示したＳＶＧを解析して生成した画像データを表した図である。
【図５】本発明の実施形態によるプリンタ装置のＲＡＭの内部構成を示した模式図である。
【図６】本発明の実施形態によるプリンタ装置における処理の流れを示したフローチャートである。
【図７】図３に示したＳＶＧをコンピュータ装置から本発明の実施形態によるプリンタ装置にストリーム形式で送信する場合の、オブジェクトの送信順序を示した模式図である。
【図８】図３に示したＳＶＧをプリンタ装置３が処理する場合の実際の動作例を示したフローチャートである。
【符号の説明】
【００６６】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  印字部
１０５  表示部
１０６  操作部
１０７  通信制御部
１０８  ＬＡＮ回線
１０９  システムバス
２０３  プリンタ装置
【図１】
2009137042.tif 000003
【図２】
2009137042.tif 000004
【図３】
2009137042.tif 000005
【図４】
2009137042.tif 000006
【図５】
2009137042.tif 000007
【図６】
2009137042.tif 000008
【図７】
2009137042.tif 000009
【図８】
2009137042.tif 000010