(57)【要約】【課題】出力画像に組み込むデータを外部への参照の形で記述できるＨＴＭＬ等の文書を印刷する装置において、小さいメモリでも大きい文書を円滑に印刷できるようにする。【解決手段】文書構成情報管理部１５は、文書解析部１３によるＨＴＭＬ文書の解析結果に基づき、文書要素間の構造を示す文書構成情報を作成する。各文書要素の実体データを非同期にダウンロードしていく間に、ワークメモリの空き容量に不足が生じると、メモリ管理部１６が、文書構成情報を参照して、ワークメモリ上にある各要素の実体データのうち、出力順序が最も後のものをワークメモリからアンロードし、ＨＤＤに待避する。その後、印刷済みにより不要となったデータができると、メモリ管理部１６がそのデータをワークメモリから削除し、空いた領域に対し、ＨＤＤに待避していたデータを再ロードする。【選択図】　　　　図３
2004127132.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書要素を含む文書の記述を解析し、解析の際に検出した各文書要素の表示内容データをワークメモリにロードし、該ワークメモリ上の表示内容データ群を用いて出力画像を生成し、媒体上に画像形成する画像形成装置であって、
前記文書の解析結果に基づき、検出した各文書要素間の構造の情報を含む文書構成情報を作成する文書構成管理手段と、
前記ワークメモリの空き容量の不足を検知した場合、前記ワークメモリにロードされた表示内容データのうち、前記文書構成情報に基づき選択した表示内容データを前記ワークメモリからアンロードするアンロード制御手段と、
を備える画像形成装置。
【請求項２】
前記アンロード制御手段は、前記文書構成情報に基づき、各文書要素の表示内容データが前記出力画像に出現する順序を求め、この出現順序が遅いものから優先的にアンロードすることを特徴とする請求項１記載の画像形成装置。
【請求項３】
二次記憶装置と、
前記アンロード制御手段が前記ワークメモリからアンロードする文書要素の表示内容データを前記二次記憶装置に格納するデータ待避手段と、
文書要素の表示内容データを前記出力画像に組み込むときに、その表示内容データが前記ワークメモリ上に存在しない場合、前記データ待避手段からその表示内容データを前記ワークメモリにロードする再ロード手段と、
を更に備える請求項１記載の画像形成装置。
【請求項４】
前記文書構成管理手段は、前記文書構成情報として、前記ワークメモリ上にロードした各文書要素の表示内容データのサイズの情報を含む文書構成情報を作成し、
前記アンロード制御手段は、前記各文書要素が前記出力画像に出現する順序および出現位置を評価し、所定範囲内に出現する文書要素が複数ある場合は、表示内容データのサイズの大きいものから優先的にアンロードする、
ことを特徴とする請求項２記載の画像形成装置。
【請求項５】
前記ワークメモリ上にロードした各文書要素の表示内容データの取得元を示す情報を前記文書構成情報に記録する手段と、
文書要素の表示内容データを前記出力画像に組み込むときに、その表示内容データが前記ワークメモリ上に存在しない場合、前記文書構成情報に含まれる当該表示内容データの取得元からその表示内容データを再取得して前記ワークメモリに再ロードする再ロード手段と、
を更に備える請求項１記載の画像形成装置。
【請求項６】
前記文書構成管理手段は、前記文書構成情報に、前記ワークメモリ上にロードした各文書要素の表示内容データの取得に要した時間の情報を登録し、
前記アンロード制御手段は、前記各文書要素が前記出力画像に出現する順序および出現位置を評価し、所定範囲内に出現する文書要素が複数ある場合は、表示内容データの取得に要した時間の短いものから優先的にアンロードする、
ことを特徴とする請求項５記載の画像形成装置。
【請求項７】
前記所定範囲内に出現する文書要素とは同一のページに出現する文書要素である
ことを特徴とする請求項４または請求項６記載の画像形成装置。
【請求項８】
前記ワークメモリ上にロードした各表示内容データの出力画像への組み込み状況を監視し、出力画像への組み込みが完了して不要になった表示内容データを前記ワークメモリから削除するデータ削除手段、を更に備える請求項１記載の画像形成装置。
【請求項９】
前記文書構成情報に記録された各文書要素の表示内容データが前記ワークメモリ上にロードされているか、アンロードされているかを管理する手段と、
前記データ削除手段により前記ワークメモリから表示内容データを削除した時点で、前記ワークメモリからアンロードされている表示内容データの中から、前記文書構成情報を参照して、前記出力画像に出現する順序が早いものから優先的に前記ワークメモリに再ロードする再ロード手段と、
を更に備える請求項８記載の画像形成装置。
【請求項１０】
前記再ロード手段は、前記ワークメモリからアンロードされている表示内容データの中で、前記出力画像に出現する順序が最も早いものが、前記出力画像への組み込みが完了していない表示内容データ群の先頭から所定長さ以上離れている場合は、この時点では前記ワークメモリへの再ロードを行わないことを特徴とする請求項９記載の画像形成装置。
【請求項１１】
複数の文書要素を含む文書の記述を解析し、解析の際に検出した各文書要素の表示内容データをワークメモリにロードし、該ワークメモリ上の表示内容データ群を用いて出力画像を生成し、媒体上に画像形成する画像形成装置の制御方法であって、
前記文書の解析結果に基づき、検出した各文書要素間の構造の情報を含む文書構成情報を作成する構成情報作成ステップと、
前記ワークメモリの空き容量の不足を検知した場合、前記ワークメモリにロードされた表示内容データのうち、前記文書構成情報に基づき選択した表示内容データを前記ワークメモリからアンロードするアンロード制御ステップと、
を含む方法。
【請求項１２】
前記アンロード制御ステップでは、前記文書構成情報に基づき、各文書要素の表示内容データが前記出力画像に出現する順序を求め、この出現順序が遅いものから優先的にアンロードすることを特徴とする請求項１１記載の方法。
【請求項１３】
前記アンロード制御ステップでは、前記ワークメモリからアンロードする文書要素の表示内容データを当該画像形成装置の二次記憶装置に格納し、
前記ワークメモリからアンロードした表示内容データを前記ワークメモリに再ロードする場合には、前記二次記憶装置から前記ワークメモリ上にロードすることを特徴とする請求項１１記載の方法。
【請求項１４】
前記ワークメモリ上にロードした各文書要素の表示内容データの取得元を示す情報を前記文書構成情報に記録するステップと、
前記ワークメモリからアンロードした表示内容データを前記ワークメモリに再ロードする場合に、前記文書構成情報に含まれる当該表示内容データの取得元からその表示内容データを再取得するステップと、
を含む請求項１１記載の方法。
【請求項１５】
前記ワークメモリ上にロードした各表示内容データの出力画像への組み込み状況を監視し、出力画像への組み込みが完了して不要になった表示内容データを前記ワークメモリから削除する削除ステップ、を更に備える請求項１１記載の方法。
【請求項１６】
前記文書構成情報に記録された各文書要素の表示内容データが前記ワークメモリ上にロードされているか、アンロードされているかを管理し、
前記削除ステップにて前記ワークメモリから表示内容データを削除した時点で、前記ワークメモリからアンロードされている表示内容データの中から、前記文書構成情報を参照して、前記出力画像に出現する順序が早いものから優先的に前記ワークメモリに再ロードする、
請求項１５記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書を構成する各文書要素の表示内容データを当該文書内の記述又は外部から取得して出力画像を生成し画像形成する装置に関する。
【０００２】
【従来の技術】
近年、ＨＴＭＬやＸＭＬ、ＸＨＴＭＬ−ｐｒｉｎｔなどのハイパーテキスト文書を印刷する機会がますます増大しており、プリンタがハイパーテキスト文書を受け入れて印刷できるようになりつつある。例えば特許文献１には、プリンタがハイパーテキスト文書や、その文書を構成する各文書要素のデータをインターネット上の各サーバから取得して印刷を行う装置が開示されている。このようにハイパーテキスト文書のデータをプリンタ自身がダウンロードして印刷する処理は、プルプリントとも呼ばれる。
【０００３】
また、特許文献２には、このようなプルプリントシステムとして、プリンタがプロキシサーバに対してハイパーテキスト文書のデータの一部を要求すると、プロキシサーバが要求された部分を含むデータ全体をインターネット上から一括取得し、その中から要求された一部分をプリンタに提供するシステムが開示されている。
【０００４】
ハイパーテキスト文書を印刷する場合、プリンタはその文書を先頭から順に解析していき、出力に組み込むデータのソースファイル名等の記述を検出すると、そのファイルの取得要求をインターネット上のサーバに送信する。そして、この要求に応じてサーバから送られてきたファイルをビットマップに展開して出力画像に組み込み、この出力画像を用紙等の所定媒体に印刷する。
【０００５】
ここで、ハイパーテキスト文書を構成する各文書要素のデータは、インターネット上の異なる複数のサーバに蓄積されているのが一般的であり、データの取得にはある程度の時間がかかる。また、データの取得に要する時間は、サーバの応答時間等によって様々に変わるので、インターネット上に取得要求を発行した順にデータが取得できるとは限らない。このため、例えば前のページに組み込まれる要素のデータよりも後のページに組み込まれる要素のデータの方が先に取得されることもしばしばである。
【０００６】
印刷では、先頭ページから順に出力していく必要があるので、後ろのページのデータが先に取得できたとしても、その時点でこれを印刷出力することはできないため、そのデータはそれより前のページのデータがすべて揃うまではプリンタ内に保持しておかなければならない。このため、従来の装置では、一般的にハイパーテキスト文書の印刷に必要なデータ全体をプリンタにダウンロードしてから印刷の処理を行っていた。このため、従来は、大きいサイズのハイパーテキスト文書を印刷するには、プリンタ内に大容量の記憶装置を設ける必要があり、コスト高を招くという問題があった。
【０００７】
特許文献２には、このような問題に対する一つの解決策として、プリンタ内の処理バッファの空き容量を監視し、ダウンロードすべきデータファイルのうち空き容量に収まる一部についての取得要求をその都度発行することで、処理バッファの容量を抑える技術が開示されている。
【０００８】
【特許文献１】
特開平１１−１３４１２５号公報
【特許文献２】
特開２００１−１０１０９１号公報
【０００９】
【発明が解決しようとする課題】
特許文献２の技術では、プリンタは、処理バッファに空き容量ができる都度、データの取得要求を発行するので、そのデータを保持するサーバやインターネットの状況によっては、要求したデータがすぐに取得できない場合もあり、そのような場合には印刷処理が遅れるなどの不具合が生じる。特許文献２では、この問題に対する対策として、プリンタと同じＬＡＮ内に、インターネット上からデータを一括取得するプロキシサーバを設け、このプロキシサーバからプリンタにデータを供給する方式を提案している。この方式は１つの有効な方式ではあるが、システム構成が大がかりになるという欠点がある。
【００１０】
本発明はこのような課題に鑑みなされたものであり、ハイパーテキスト文書などのように、各文書要素の表示内容データをその文書の外部から取得する必要がある文書を画像形成する装置において、小容量のワークメモリでも比較的大規模な文書を画像形成できるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明は、複数の文書要素を含む文書の記述を解析し、解析の際に検出した各文書要素の表示内容データをワークメモリにロードし、該ワークメモリ上の表示内容データ群を用いて出力画像を生成し、媒体上に画像形成する画像形成装置において、前記文書の解析結果に基づき、検出した各文書要素間の構造の情報を含む文書構成情報を作成し、前記ワークメモリの空き容量の不足を検知した場合、前記ワークメモリにロードされた表示内容データのうち、前記文書構成情報に基づき選択した表示内容データを前記ワークメモリからアンロードする。
【００１２】
ここで、各文書要素間の構造の情報の例には、それら文書要素群が構成する論理的な関係の情報や、出力画像におけるそれら文書要素のレイアウト上の関係の情報（出力画像における出現順序の情報もこの一種である）等を挙げることができる。
【００１３】
本発明の好適な態様では、ワークメモリ上にロードした各表示内容データの出力画像への組み込み状況を監視し、出力画像への組み込みが完了して不要になった表示内容データを前記ワークメモリから削除する。
【００１４】
更に好適な態様では、前記文書構成情報に記録された各文書要素の表示内容データが前記ワークメモリ上にロードされているか、アンロードされているかを管理し、前記出力画像への組み込みが完了して不要になったデータをワークメモリから表示内容データを削除した時点で、その時ワークメモリからアンロードされている表示内容データの中から、前記文書構成情報を参照して、前記出力画像に出現する順序が早いものから優先的に前記ワークメモリに再ロードする。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。
【００１６】
図１は、本発明の実施形態に係るプリンタのハードウエア構成の一例を概略的に示す図である。
【００１７】
このプリンタは、ＣＰＵ（中央演算処理装置）１０１，ＲＯＭ（リード・オンリー・メモリ）１０２，ＲＡＭ（ランダム・アクセス・メモリ）１０３，操作パネル１０４，ＬＡＮ（ローカル・エリア・ネットワーク）インタフェース１０５，プリントエンジン１０６及びハードディスクドライブ（ＨＤＤ）１０７を備えている。
【００１８】
ＣＰＵ１０１は、ＲＯＭ１０２に格納された各種制御プログラムを実行することで本プリンタの各部を制御し、本プリンタの処理動作を実現する。この制御プログラムの中には、ＨＴＭＬやＸＨＴＭＬ−ｐｒｉｎｔなどの文書をページ分割して印刷するための制御動作を記述したものが含まれる。このページ分割の処理手順については、後で詳しく説明する。ＲＡＭ１０３は、ＣＰＵ１０１による各種プロブラムの実行時の作業メモリ領域（ワークメモリ）として利用され、例えばプリンタ受信データ（イメージデータやＨＴＭＬデータなど）やこれを展開したビットマップデータなどが格納される。操作パネル１０４は、プリンタに対し印刷条件を設定するためのユーザインタフェース装置であり、例えばタッチパネル式液晶ディスプレイや各種入力ボタンなどを有している。ＬＡＮインタフェース１０５は、ＬＡＮ上の装置と通信したり、ＬＡＮを介してインターネット上の装置と通信したりするための通信処理を行う。プリントエンジン１０６は、ＣＰＵ１０１の指示に従って印刷対象のビットマップデータを受け取り、用紙等の媒体に印刷する。ハードディスクドライブ（ＨＤＤ）１０７は、書き換え可能な不揮発性の記憶装置であり、ユーザやサービスエンジニアが設定した各種設定データやプログラムなどが格納される他、ＲＡＭ１０３から溢れたデータの待避領域として用いられる。
【００１９】
図２は、このプリンタ２０２が適用されるシステムの構成例を示す図である。この例では、ＬＡＮ２０３上にクライアントＰＣ（パーソナルコンピュータ）２０１とプリンタ２０２とが接続されている。クライアントＰＣ２０１とプリンタ２０２は、ＬＡＮ２０３を介してインターネット２０４に接続されている。インターネット２０４上には、サーバ２０５が存在する。
【００２０】
図２のシステムでは、例えばクライアントＰＣ２０１や図示しないモバイル装置がプリンタ２０２に対してＨＴＭＬ文書の印刷要求と、印刷対象のＨＴＭＬ文書データを送信すると、これを受信したプリンタ２０２は、そのＨＴＭＬ文書データを解析し、ビットマップデータを生成して媒体に印刷する。ここで、ＨＴＭＬ文書の中にはＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）等により示されるオブジェクト（文書要素）が含まれる場合があり、このような場合プリンタ２０２は、そのＵＲＬ等に従って、そのオブジェクトが存在するインターネット２０４上のサーバ２０５からそのオブジェクトのデータをダウンロードし、これを用いてビットマップデータを生成する。以上のように、ＨＴＭＬ文書をそのままプリンタ２０２に送って印刷させる方式はダイレクトプリント方式とも呼ばれる。また、このほか、プリンタ２０２の操作パネル１０４からＨＴＭＬ文書のＵＲＬを直接入力したり、クライアントＰＣ２０１や図示しないモバイル装置からプリンタ２０２に対してＨＴＭＬ文書のＵＲＬを送信したりして、プリンタ２０２に印刷指示を行うことも可能である（プルプリント）。この場合、プリンタ２０２は、入力されたＵＲＬに従ってインターネット２０４上からそのＨＴＭＬ文書をダウンロードし、印刷処理を行う。
【００２１】
本実施形態のプリンタ２０２は、上記のように他のサーバに存在するデータをダウンロードし、出力画像に組み込んで印刷する際に、印刷対象の文書の構造を考慮したメモリ管理を行うことにより、ワークメモリであるＲＡＭ１０３の容量の節約を実現している。
【００２２】
このメモリ管理機能を含めた、プリンタ２０２における文書データ処理機構１０を図３を参照して説明する。図３の処理機構１０は、ＲＯＭ１０２やＨＤＤ１０７に格納されたプログラムや設定データをＣＰＵ１０１で実行することにより実現される。
【００２３】
この処理機構１０において、主制御部１１は、この処理機構１０の全体的な制御を行う手段である。データ取得部１２は、主制御部１１からのデータ取得要求に応じて、ＬＡＮ２０やインターネット等のネットワークを介してデータを取得する手段である。文書解析部１３は、入力されるＨＴＭＬ文書やＨＴＭＬ文書を含むＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ　Ｉｎｔｅｒｎｅｔ　Ｍａｉｌ　Ｅｘｔｅｎｓｉｏｎｓ）文書を解析して個々の文書要素を検出し、それら文書要素群が構成する論理構造を求める。文書構成情報管理部１５は、検出された文書要素や論理構造の情報に基づき、文書構成情報を作成して管理する（詳細は後述）。
【００２４】
ここで、文書要素の中には、その内容のデータ（印刷結果に示される内容という意味で、表示内容データと呼ぶ）がＨＴＭＬ文書と共にＭＩＭＥ文書内にすでに含まれているものもあれば、外部参照のもの（すなわちＨＴＭＬ文書の当該要素の記述には、表示内容データへのリンク情報（例えばＵＲＬ）が含まれる）もある。後者については、文書解析部１３は、主制御部１１を介して、データ取得部１２にその表示内容データのダウンロードを要求する。ここで、ＨＴＭＬ文書のデータや、ＨＴＭＬ文書やＭＩＭＥ文書を先頭から順に解析していく際に検出した各文書要素の表示内容データ、この解析の進行に従って逐次作成、更新される文書構成情報等の各種データは、ワークメモリであるＲＡＭ１０３に格納される。なお、ＨＴＭＬ文書を含むＭＩＭＥ文書内又は外部からのダウンロードにより得られる表示内容データは、ＨＴＭＬやページ記述言語等の記述言語で記述されていたり、符号化やデータ圧縮が施されていたりすることも少なくない。このような場合は、表示内容データをプリントエンジン１０６で取扱可能なイメージデータ形式（例えばビットマップイメージ）に展開する必要がある。このような展開処理をソフトウエアベースで行う場合は、この処理のための作業領域にＲＡＭ１０３が利用される。
【００２５】
描画部１４は、ＲＡＭ１０３に格納されている文書構成情報や各文書要素の表示内容データ（或いはそれを展開したデータ）を元に、先頭ページから順に各ページのページイメージを、ＲＡＭ１０３とは別に設けられているページバッファ（図示省略）上に生成する。このようにして生成されたページイメージが、プリントエンジン１０６に渡され、用紙上に印刷される。
【００２６】
メモリ管理部１６は、以上の各部による処理の際のＲＡＭ１０３の管理を行う手段であり、文書解析部１３やデータ取得部１２や描画部１４などの各部からのメモリ確保要求に応じてＲＡＭ１０３の空き領域を割り当てたり、逆に不要となったデータが記憶された領域を解放したりする処理を行う。特に本実施形態では、メモリ管理部１６は、メモリ確保要求に応じられるだけの空き容量がない場合や空き容量が所定の容量以下になった場合、すでにＲＡＭ１０３上にロードされている表示内容データ群（これから表示内容データをロードするために確保されている領域を含む）の中のいくつかをＲＡＭ１０３からアンロードすることにより、ＲＡＭ１０３の空き領域を増やしてメモリ確保要求に応える。
【００２７】
ここで、「アンロード」とは、ＲＡＭ１０３に確保されている表示用データのための領域をＲＡＭ１０３から「一時的に」解放する動作を言う。この際、ＲＡＭ１０３から解放する領域や表示用データの管理情報を残し、領域にロードされた表示用データそのものは他の記憶装置に待避させた後に削除するかあるいはそのまま削除する。すなわち、アンロードされる領域の表示用データは、待避した記憶装置からの再ロードまたは装置外部からの再ダウンロードによって、原則的には、後でＲＡＭ１０３上に再ロードされる。これに対し、ＲＡＭ１０３からデータを「削除する」という場合は、すでに印刷出力が済んでしまったページ内の文書要素の表示内容データ（ただし、後のページでも利用されるものは除く）のように、今後使用されないデータをＲＡＭ１０３から永久的に削除する動作を意味する。
【００２８】
本実施形態のアンロード処理は、一般的なコンピュータにおいてキャッシュや仮想記憶の管理に用いられるＬＲＵ（Ｌｅａｓｔ　Ｒｅｃｅｎｔｌｙ　Ｕｓｅｄ）アルゴリズムによるデータ削除管理とは異なり、文書構成情報を参照することで、印刷処理の進行に影響が少ないもの（例えば、後続のページに記録されるデータや比較的容量の小さなデータ等、いったん削除してから再ロードしても印刷の遅れが少なくて済むもの）を判別し、アンロードするようにしている。
【００２９】
本実施形態では、ＲＡＭ１０３からアンロードした表示内容データは、二次記憶である比較的大容量のＨＤＤ１０７に格納される。
【００３０】
図４は、この文書データ処理機構１０における、文書解析部１３及び文書構成情報管理部１５の処理手順を示すフローチャートである。
【００３１】
例えばプルプリントの場合は、クライアントＰＣ２０１や操作パネル１０４から印刷対象のＨＴＭＬ文書データのＵＲＬが入力されると、データ取得部１２がそのＵＲＬに示される文書データの取得要求を、例えばＨＴＴＰ１．１のＧＥＴ命令の形でＬＡＮ２０上に発行し、この取得要求に応じてＬＡＮ２０やこれにつながるインターネット上のサーバから返信されてくる文書データを取得する（Ｓ１０）。ここで、取得された文書データはＲＡＭ１０３に格納される。文書データを取得すると、文書構成情報管理部１５に、その文書の情報を登録する（情報内容については図５，６を参照して後で説明する）（Ｓ１１）。
【００３２】
次に文書解析部１３が、その文書データを先頭から順に解析していく（Ｓ１２）。この解析では、文書のデータを順に構文解析していき、文書の最後に達していなければ（Ｓ１３）、タグ検出により文書要素を見つけるまでデータ解析を進める（Ｓ１４）。ここで文書要素を見つけると、この要素の情報を文書構成情報管理部１５に登録するとともに、すでに登録されている文書や文書要素の情報の中で、この新たに登録した文書要素に関連するものに、この新規登録の要素の情報を反映させる（Ｓ１５）。
【００３３】
ここで、文書要素が、当該ＨＴＭＬ文書内に組み込まれたテキストである場合は、ＨＴＭＬ文書に含まれるそれらテキストが、その文書要素に対応する表示内容データと認識され、表示内容データの所在を示す情報が文書構成情報管理部１５に登録される。例えば、ＨＴＭＬ文書に組み込まれたテキストの文書要素は、文書要素を検出した際には、その表示内容データはすでにＲＡＭ１０３上にロードされている。
【００３４】
一方、そのＨＴＭＬ文書において、文書要素がその実体データ（表示内容データ）へのリンク情報の形で文書要素が記述されている場合（例えば、文書に組み込むべき画像のソースのＵＲＬがＩＭＧタグ内に記述されている場合など）は、その文書要素のデータをダウンロード等により取得する必要がある。そこで、文書解析部１３は、検出した文書要素の記述中に、他の場所に存在するデータへのリンク情報（例えばＩＭＧタグ内に記述された画像データのＵＲＬ）があるかどうかを判定し（Ｓ１６）、そのようなリンク情報に従ってデータの取得処理を行う（Ｓ１７）。このとき、リンク情報が外部のＵＲＬである場合は、データ取得部１２が、そのＵＲＬの指し示すデータをインターネット上のサーバからダウンロードする。また、リンク情報が、そのＨＴＭＬ文書を含むＭＩＭＥ文書、あるいはＸＨＴＭＬ−ｐｒｉｎｔ文書内にコード情報として組み込まれたイメージデータ（インライン・イメージとよばれる）を指している場合には、ＭＩＭＥ文書あるいはＸＨＴＭＬ−ｐｒｉｎｔ文書の解析を進め、そのインライン・イメージのコードデータが見つかるのを待つ。
【００３５】
ここで、図４は、１つの文書データ（ここでは、ＨＴＭＬデータのみならず、その中で参照される画像等のデータも、１つの文書データとして扱う）を取得したときに行う一連のプロセスを示している。したがって、Ｓ１７によりリンク先データの取得が要求されると、そのデータについて、図４に示すプロセスが別途開始され、取得要求元のプロセス等と並行的（コンカレント）に実行される。図４中の破線によるループはこのことを示している。データをインターネット上から取得する場合もあるので、各取得対象のデータがいつ取得できるか分からないため、このように各データを非同期的に取得する構成となっている。Ｓ１７で取得要求を行ったリンク先のデータについては、そのデータの取得のためのプロセスにより、データ取得処理が行われて表示内容データが取得され、この表示内容データに関する情報が文書構成情報管理部１５に登録される。
【００３６】
次に図５及び図６を参照して、文書構成情報管理部１５が管理する文書構成情報と、その作成手順について説明する。
【００３７】
図５において、（ａ）は入力されるＨＴＭＬ文書の記述内容を概略的に示すと共に、各記述と、文書構成情報管理部１５におけるデータ管理上の各項目との対応関係を示している。また、（ｂ）は、（ａ）のＨＴＭＬ文書についての、文書構成情報管理部１５におけるデータ管理構造を示している。また、図６は、文書構成情報管理部１５が管理する文書構成情報の、ある時点におけるスナップショットを概念的に示したものである。
【００３８】
図５（ａ）に示すＨＴＭＬ記述全体が一つの文書データを構成する。この文書データにＤ−００１という一意的な識別情報が付与され、これに対応する管理情報（図６の（ａ１）参照）が作成される。この管理情報は、Ｄ−００１という識別情報で検索できる形で、ＲＡＭ１０３に格納される。なお、識別情報Ｄ−００１は、ユーザやクライアントＰＣ２０１から印刷対象のＵＲＬ”ｈｔｔｐ：／／ｘｘｘ．ｙｙｙ．ｊｐ／ｉｎｄｅｘ．ｈｔｍ”がプリンタ２０２に入力された時に文書構成情報管理部１５が付与する。そして、データ取得部１２がこのＵＲＬに対応するＨＴＭＬ文書のデータをダウンロードすると、文書構成情報管理部１５が、その文書データの管理情報を作成し、その時点で判明しているその文書データに関する情報をその管理情報に登録する。
【００３９】
例えば、図６（ａ１）では、ＨＴＭＬ文書Ｄ−００１の管理情報として、（１）識別情報（ＤＩＤ：ドキュメントＩＤ）、（２）当該文書のデータ名（ファイル名）、（３）当該文書データの所在場所を示すパス（ファイル名とともに、ＵＲＬから抽出できる）、（４）当該文書データのデータサイズ（ダウンロード完了時に分かる）、（５）取得時間（ダウンロードに要した時間）、（６）データ要素（当該文書内の先頭に現れる文書要素の管理情報へのポインタ）、の６つの項目からなる管理情報を作成する。ＨＴＭＬ文書の場合、第６項目「データ要素」以外はダウンロード完了時点で判明しているので、これらの値が管理情報に登録される。
【００４０】
さて、このＨＴＭＬ文書の本体部分（＜ＢＯＤＹ＞〜＜／ＢＯＤＹ＞）を先頭から構文解析していくと、まずテキストデータからなる文書要素（エレメント）が検出される。このとき、文書構成情報管理部１５は、この要素にＥ−００１００１という一意的な識別情報を付与し、これに対応する管理情報（図６の（ｂ１）参照）を作成する。この管理情報は、Ｅ−００１００１という識別情報で検索できる形で、ＲＡＭ１０３に格納される。
【００４１】
例えば、図６（ｂ１）では、文書要素Ｅ−００１００１の管理情報として、（１）識別情報（ＥＩＤ：エレメントＩＤ）、（２）当該文書要素の要素種（テキスト、テーブル、リスト、画像、リンク（参照情報）など）、（３）当該文書要素の描画サイズ（内容データが確定すると分かる）、（４）次要素（文書データ中で当該文書要素の次に現れる文書要素の管理情報へのポインタ）、（５）内容（当該文書要素の表示内容データへのポインタ）、の５つの項目からなる管理情報を作成する。このうち、要素種は、このテキスト文書要素Ｅ−００１００１を検出した時点で判明しているので、この時点で管理情報に登録される。また、テキストの場合、レイアウト条件（ページサイズやマージン量、フォントの種類やサイズ、字送りなど。ＣＳＳ：Ｃａｓｃａｄｉｎｇ　Ｓｔｙｌｅ　Ｓｈｅｅｔｓ等により更に詳細に規定される場合もある）が予め指定されていれば、テキストデータが取得できた時点で描画サイズを求めることができるので、描画サイズの値も登録することができる。
【００４２】
また、この要素Ｅ−００１００１の内容であるテキストデータは、ＨＴＭＬ文書Ｄ−００１内に含まれており、この要素Ｅ−００１００１を認識（例えば終了タグを認識するなど）した段階ですでに得られているので、文書構成情報管理部１５は、この内容データ（テキスト）に対してＢ−００１００１という識別情報（ＢＩＤ：ブロックＩＤ）を付与し、この内容データを識別情報Ｂ−００１００１で検索可能な形でＲＡＭ１０３に格納する（図６の（ｃ１）参照）。そして、この要素Ｅ−００１００１の管理情報の第５項目「内容」には、この内容データへのポインタ（Ｂ−００１００１）が登録される（図６の（ｂ１）の参照）。
【００４３】
なお、要素Ｅ−００１００１の管理情報のうち、「次要素」は、文書データＤ−００１の解析が進まないと判明しないので、空欄にしておく。
【００４４】
このようにして文書データＤ−００１から、先頭の文書要素Ｅ−００１００１が検出されると、文書構成情報管理部１５は、当該文書データＤ−００１の管理情報の第６項目「データ要素」に対し、この先頭要素Ｅ−００１００１へのポインタを登録する（図６の（ａ１）参照）。
【００４５】
以上、文書中の先頭の要素Ｅ−００１００１が検出された時の処理を示した。この後更にＨＴＭＬ文書Ｄ−００１の解析を進めていくと、次に＜ＩＭＧ＞タグによって示される、画像を内容とする文書要素が検出される。すると、文書構成情報管理部１５は、この要素に対しＥ−００１００２という一意的な識別情報を付与し、これに対応する管理情報（図６の（ｂ２）参照）を作成する。また、この時点で、要素Ｅ−００１００１の次要素Ｅ−００１００２が判明したので、要素Ｅ−００１００１の管理情報にこの次要素へのポインタを登録する。
【００４６】
ここで、この要素Ｅ−００１００２の内容は、リンク記述（この例ではＵＲＬ”ｈｔｔｐ：／／ａａａ．ｂｂｂ．ｊｐ／ｉｍａｇｅ．ｊｐｇ”）の形で示されているので、管理情報の「要素種」には、要素内容がリンクであることを示す情報が登録され、このリンクに従ってデータ名やパスが登録される。また「描画サイズ」は、リンク先の情報が取得できるまで分からないので、この時点では「（未確定）」となっている。
【００４７】
このように内容データが、外部のデータへのリンクで示される文書要素が検出されると、前述のようにリンク先データのダウンロードのためのプロセスが開始される（図４のＳ１７）。このとき文書構成情報管理１５は、ダウンロード対象のデータに対して一意的な識別情報Ｄ−００２を付与して管理情報を作成し、上記プロセスにより、データがダウンロードできると、そのデータに関する情報を管理情報に登録する（図６の（ａ２）参照）。このように、本実施形態では、プリンタ２０２の外部からダウンロードするデータと、そのＨＴＭＬ文書の記述に含まれる文書要素とを概念上区別し、前者には識別情報ＤＩＤを与えて文書データとして扱い、後者には識別情報ＥＩＤを付与して要素として扱う。したがって、文書要素Ｅ−００１００２のリンクに従ってダウンロードする画像データについても、まず文書データとしての識別情報Ｄ−００２が付与され、管理情報（ａ２）が作成される。ダウンロードが終了するまでは、「サイズ」と「取得時間」は「（未確定）」になっている。
【００４８】
そして、このダウンロードするデータＤ−００２は、画像データであるので、文書構成情報管理部１５は、この画像データに対して一意な識別情報Ｅ−００１００３を付与して文書要素として扱い、管理情報（図６の（ｂ３））を作成する。この要素Ｅ−００１００３は、「要素種」が画像であることはこの時点で分かっているが、描画サイズについては圧縮データの展開等が完了するまでは分からないため、管理情報における「描画サイズ」は「（未確定）」としている。また、「内容」についても、ダウンロードが終わるまで確定しないので、「（未取得）」としている。これらの「描画サイズ」や「内容」は、ダウンロードが終了した段階で、登録される。
【００４９】
ダウンロードが終了すると、ダウンロードしたデータサイズと所要時間が確定するため、これらを識別情報Ｄ−００２の「サイズ」と「取得時間」に登録する。ダウンロードされた画像データの実体はブロックＩＤ（ＢＩＤ）で識別可能な情報として格納される。Ｅ−００１００３の「内容」にはこのブロックＩＤが登録される。また、ダウンロードしたデータの属性情報をもとに画像のサイズを確定し、「描画サイズ」に登録する。
【００５０】
なお、文書要素のリンク記述が、ＨＴＭＬ文書の中に組み込まれたデータ（インライン・イメージなど。以下、インライン・データと呼ぶ）を指している場合も、上記と同様、そのリンク先のデータを起点とする、文書データ、文書要素データ、及びデータ実体、の階層構造の管理情報群で管理を行うことができる。この場合、文書データレベルの管理情報の「データ名」には、例えばリンク記述に示されたそのデータの識別情報を登録すればよい。ただしこの場合、ダウンロードは行う必要がないので、文書データレベルの管理情報を作成しないですますことも可能である。なお、リンク先がＨＴＭＬ文書の外か内かの判断は、基本的には、当該リンク先がＵＲＬの形で記述されている場合は外、ＭＩＭＥ文書やＸＨＴＭＬ−ｐｒｉｎｔ文書で添付データへの参照を示す場合に用いられる「ｃｉｄ：」（コンテントＩＤ）の形で記述されている場合は内、と判断できる。
【００５１】
さて、文書データＤ−００１の解析に戻ると、文書要素Ｅ−００１００２の次に更に＜ＩＭＧ＞タグによって示される文書要素が検出されるので、文書構成情報管理部１５はこの要素を識別情報Ｅ−００１００４（図６の（ｂ４））で管理すると共に、このタグ中のリンク先からダウンロードするデータを識別情報Ｄ−００３で管理する。また、要素Ｅ−００１００２の管理情報には、この次要素Ｅ−００１００４へのポインタを登録する。そして、このデータＤ−００３中の画像データを識別情報Ｅ−００１００５の文書要素として管理し（図６の（ｂ５））、更にこの要素については画像データの実体がこの時点で存在するので、この実体データを識別情報Ｂ−００１００２で管理する（図６の（ｃ２））。
【００５２】
そして、更に文書データＤ−００１の解析を進めると、要素Ｅ−００１００４の次にテキスト要素が検出されるので、この要素を識別情報Ｅ−００１００６で管理し、この管理情報に対し、そのテキストの実体データＢ−００１００ｘへのポインタを登録する（図６の（ｂ６））。
【００５３】
以上、図５（ａ）に例示したＨＴＭＬ文書の解析と、これに従った文書構成情報の構築過程を、具体的な文書構成情報の例である図６を参照して説明した。この図６に示した各文書データ、文書要素の管理情報の集まりが、文書構成情報である。図５（ｂ）は、図５（ａ）の解析に従って作成又は取得される管理情報や実体データ相互の関係を矢印で示したものであり、実線のブロックが文書データ及び文書要素の管理情報や実体データを示し、破線のブロックはＨＴＭＬ文書外へのリンクを示している。
【００５４】
このように、図４に示す解析処理に従って文書構成情報が作成され、解析処理やダウンロード処理の進行に従ってその文書構成情報が更新されていく。本実施形態では、このような解析処理と並行して、主制御部１１及び描画部１４が印刷出力のための画像生成処理を実行する。この処理を図７を参照して説明する。
【００５５】
この処理は、文書構成情報管理部１５の内容が更新されるたびに実行される。主制御部１１が、文書構成情報管理部１５を参照し、未出力の文書要素を先頭から順に仮レイアウトすることで、未出力の先頭ページに含まれる文書要素群を求める（Ｓ２０）。この仮レイアウトは、未出力の先頭から順番に各文書要素の描画サイズの領域を、レイアウト条件に従って仮想的に配置していく（実体的なデータをページバッファに書き込む必要はないが、この書き込みを行ってもよい）ことで行うことができる。この仮レイアウトの際に、そのページに含まれるべき文書要素の表示内容データがすべて取得済かどうかを判定する（Ｓ２１）。未取得の表示内容データがある場合はそのページを描画できないため処理を終了する。描画可能な場合は、ここで、メモリ確保のための動的なアンロード処理（詳細は後述）のため、文書構成情報に登録されている文書要素の表示内容データのうちＲＡＭ１０３上にない表示内容データの再ロード処理を行う（Ｓ２２）。ここで、そのページに含まれるべき表示内容データの中にアンロード中のものがなければ、再ロードは不要である。そして、この結果、ページ内のすべての文書要素の表示内容データがＲＡＭ１０３上に揃った段階で、描画部１４がページバッファ上にそのページの出力画像を描画する（Ｓ２３）。このページ描画が完了すると、主制御部１１がプリントエンジン１０６に対してページバッファ上のページ画像の印刷出力を指示し、そのページ画像に組み込み済みの各表示内容データについて、メモリ解放の指示をメモリ管理部１６に発行する（Ｓ２４、なおメモリ解放処理の詳細については後述する）。
【００５６】
ただし、文書要素のうち、ＨＴＭＬ文書内に組み込まれたインライン・データへとリンクしているものについては、そのインライン・データが文書内の別の文書要素から参照されている可能性がある。そこで、表示内容データが文書要素から参照しているインライン・データである場合は、そのデータについてのメモリ解放指示を行わないようにすることも好適である。なお、描画した表示内容データがインライン・データであるかどうかは、文書構成情報の文書データレベル（ＤＩＤ）の管理情報のデータ名やパスを参照すれば判別できる。
【００５７】
そして、このページ描画完了に伴い、主制御部１１は、文書構成情報管理部１５に対し、今回描画したページに組み込んだ各文書要素が出力済みである旨を記録させる（Ｓ２５）。ここで、出力済みであることを記録する代わりに、当該文書要素の管理情報を削除してもよい。そして、主制御部１１は、ＨＴＭＬ文書の文書要素及び該文書から参照する文書要素のすべてについての描画出力が完了したかどうかを判断し（Ｓ２６）、完了していなければＳ２０に戻って未出力の文書要素の描画処理を続行する。
【００５８】
以上に説明した図７の処理は、出力画像生成のプロセスにて、ページ画像の出力が終わるたびに次のページの範囲を確定していくものであったが、これはあくまで一例である。この他にも例えば、解析結果に基づいてページの分割（すなわち文書要素群を先頭ページから順に割り当てていく処理）を行う処理プロセスを出力画像生成の処理とは独立して設け、出力画像生成プロセスはこのページ分割の結果から未処理の先頭ページの文書要素群を順次把握する構成とすることもできる。
【００５９】
本実施形態のプリンタ２０２では、以上に説明した図４の解析処理及び図７の出力画像生成処理により、ＨＴＭＬ文書の印刷が進められていく。ここで、ＲＡＭ１０３の容量が印刷対象の文書のサイズから見て小さい場合、この処理の進行中に、例えばデータのダウンロードや圧縮データ展開、管理情報の作成などの処理を実行する際に、メモリ不足が生じる可能性がある。本実施形態では、そのような場合、メモリ管理部１６が、ＲＡＭ１０３にロードされているデータ群の一部をアンロード（一時的削除）して、メモリ不足を解消する処理を行う。この処理の流れを、図８を参照して説明する。
【００６０】
この処理において、ダウンロード等の処理からメモリ管理部１６に対してメモリ確保要求が発行されると、メモリ管理部１６は、要求されたサイズのメモリを、ＲＡＭ１０３の空き領域から確保しようとする（Ｓ３０）。これでメモリが確保できれば（Ｓ３１の判定結果がＹ）、この処理は終了する。一方、Ｓ３０で要求されたメモリが確保できなかった場合は（Ｓ３１の判定結果がＮ）、メモリ管理部１６は、文書構成情報管理部１５を参照し、ＲＡＭ１０３からアンロードすべき文書要素を決定し（Ｓ３２）、この要素の表示内容データをＲＡＭ１０３からアンロードして、ＨＤＤ１０７に格納する（Ｓ３３）。
【００６１】
ここで、アンロード対象とする表示内容データは、現在ＲＡＭ１０３にロードされている表示内容データのうち、最も後のページに出現するもの（すなわち最も後のページに印刷されるもの）から順に選択する。ここで、図５（ｂ）から分かるように、ＨＴＭＬ文書における各文書要素の順序は文書構成情報から求めることができる。そして、ＨＴＭＬ文書の場合、印刷（表示）出力の際の文書要素の順序は、基本的にＨＴＭＬ記述中でのその要素の順番と実質的に等しい。従って、ＲＡＭ１０３上に存在する表示内容データに対応する各文書要素の順序を文書構成情報から求めれば、この順序で最も後ろの要素の表示内容データをアンロード対象として選択することができる。なおＣＳＳ等のスタイル情報でスタイルを設定する場合も、ＨＴＭＬ記述の順序とスタイル情報から出力ページ上での順序を求めることができるので、文書構成情報とスタイル情報から出力順序を求めれば、後は同様の扱いができる。
【００６２】
このようにして決定したアンロード対象の表示内容データをアンロードすると、Ｓ３０に戻って、要求されたメモリサイズの確保処理を再度実行する。そして、そのサイズが確保できなければ、再度Ｓ３２及びＳ３３の処理を繰り返し、別の表示内容データをアンロードする。これを、要求されたサイズのメモリ領域が確保できるまで繰り返す。
【００６３】
以上では、出力ページの連なりにおいて、現時点で最後尾に出力されるべき文書要素の表示データを１つずつアンロードしたが、文書要素の表示内容データのデータサイズが分かっていることも多いので、要求されたメモリサイズを確保するに必要な分の表示内容データをＳ３３でまとめてアンロードしてもよい。
【００６４】
図９は、このアンロード処理の様子を説明するための図である。要求に応じたメモリ確保ができないと判定した時のＲＡＭ１０３内のデータ内容を図９（ａ）に示す。このときＲＡＭ１０３には、３つの文書要素の管理情報３１０，３２０，３３０と、その各々の要素の実体データ３１１，３２１，３３１がロードされている（より上位の文書データレベルの管理情報は図示省略した）。文書構成情報に基づき、これらの中で文書要素３３０が最も後ろのページに出現すると判定されると、（ｂ）に示すように、この要素３３０の実体データ３３１がＲＡＭ１０３（ワークメモリ）からアンロードされ、ＨＤＤ１０７に格納される。このように文書要素の表示内容データをアンロードすると、その要素の管理情報に、表示内容データがアンロード中である旨の情報と、ＨＤＤ１０７に待避した表示内容データを呼び出すための情報（例えばファイル名等のアドレス情報）を、記録する。図９（ｂ）の例では、管理情報の「内容」欄に、表示内容データがアンロード中か否かを示すフラグが設けられ、アンロード中の場合は「待避先」欄に待避先のアドレス情報が記録される。
【００６５】
以上では、組み込まれる出力ページの順序が最も後の表示内容データから優先的にアンロードした。このアンロード対象判定基準によれば、アンロードした場合の、ＲＡＭ１０３上の表示内容データ群で連続して印刷可能なページ数の減少を最小限で抑えることができる。また、このアンロード対象判定基準によれば、表示内容データをアンロードしてから再ロードが必要になるまでの時間が長く取れるので、その間にアンロードしたデータの再ロードする機会も増えるので、アンロードによる印刷遅れ等のペナルティを極めて少なくすることができる。このように、本実施形態のアンロード対象判定基準によれば、その後の印刷出力への影響ができるだけ少ないアンロード対象を選択できる。
【００６６】
なお、このアンロード対象判定基準の場合、同じページに配置される表示内容データであってもアンロード順位が異なるが、ここで更に「同一ページの表示内容データが複数ある場合は、データサイズの大きいものから順にアンロードする」という追加の基準を採用することにより、有効性の高いアンロードが可能になる。データサイズが大きい方が、アンロードしたときのメモリ解放量が大きいからである。この追加の基準を用いるには、ＲＡＭ１０３上にある表示内容データ群について、予めページへの割り当て（ページ分割）を行っておけばよい。また、未取得の表示内容データがある場合はページ分割は暫定であるため、同一ページという範囲ではなく、データの取得状況に応じた範囲を対象としてもよい。
【００６７】
以上説明したようなページ単位の出力順序判定によらず、単純にＲＡＭ１０３上にロードされている表示内容データの中で、出力への組み込み順序が最も後のものから優先的にアンロードするような基準でもよい。
【００６８】
このようにしてアンロードした表示内容データは、そのデータを印刷出力する時点ではＲＡＭ１０３にロードしておく必要がある。このため、前述の図７の手順では、その表示内容データが表示されるべきページの出力時点で、再ロード処理を行っている。しかし、ページ画像の生成時点でデータの再ロードを行っていたのでは、印刷出力が遅くなる場合もある。そこで、本実施形態では、使用済みデータについてのメモリ解放を行った際に、この解放により空いたメモリ領域に対して、その時点でアンロード中の表示内容データのいくつかを再ロードすることで、ページ出力時点での再ロードをできるだけ減らすようにしている。このような「前もって」の再ロードのための処理手順を図１０に示す。
【００６９】
この手順では、メモリ管理部１６が、出力画像生成処理等から使用済みのデータについてのメモリ解放指示を受けると、指示されたデータを記憶するＲＡＭ１０３の領域を解放する（Ｓ４０）。そして、このようにメモリ解放を行うと、メモリ管理部１６は、解放したメモリ領域に対して再ロードする表示内容データを決定する（Ｓ４１）。この再ロード対象の決定は、文書構成情報管理部１５の情報から現在アンロード中の文書要素群を特定し、それら文書要素群の中で配置されるページが最も早い順番のもの（或いはＨＴＭＬ文書中での文書要素の順番がもっとも早いもの）を再ロード対象とする。このような基準に従って再ロード対象を判定すれば、ページの出力時に当該ページ内の表示内容データがすべてＲＡＭ１０３上に存在する確率を高めることができる。
【００７０】
ここで、上記のようにアンロードされているデータの中で最先出力のものを選ぶという基準で再ロード対象を選んでも、その再ロード対象が現在印刷出力中のページから遙かに後のページのデータであれば、仮にそのデータを再ロードしても、そのデータの属するページを印刷するまでの間にそのデータが再度アンロードされる可能性が少なからずある。このようなことは無駄である。そこで、これを避けるためには、上記基準を変形した次のような基準を用いることが好適である。すなわち、この変形した基準では、アンロードされている表示内容データの中で最先出力のものが、現在出力中のページから所定ページ数内のページに使用されるものであればそれをこの時点での再ロード対象とし、そうでなければこの時点での再ロード処理は見送る。例示した変形の基準は、再ロード対象かどうかを現在の出力からのページ数で評価したが、この代わりに、現在出力中（すなわちページバッファへ描画中）の文書要素からみた画像上での長さ（すなわち、出力中の要素の直後からアンロード中の最先の要素の直前までの、各要素の描画サイズ（ページ進行方向）の和）や、現在出力中の文書要素からアンロード中の最先の文書要素までの要素数が所定の閾値以下か否かに基づき、再ロード対象か否かを判定してもよい。あるいは現在出力中の文書要素からアンロード中の最先の文書要素までの要素のうち、描画サイズが未確定な要素数が所定の閾値以下か否かに基づくようにしてもよい。すなわち、この場合、描画サイズな未確定な要素数が所定の閾値以下であれば、アンロード中の最先の要素を再ロードし、そうでなければこの時点での再ロードを見送る。
【００７１】
また、この再ロード対象の判定処理で、Ｓ４０でのメモリ解放量と、各文書要素の表示内容データのデータサイズとを考慮し、最先出力予定のものから順にその解放量内に収まる表示内容データ群を、一度に再ロード対象に選択することもできる。
【００７２】
このような判定処理（Ｓ４１）で再ロード対象が見つからなければ（Ｓ４２の判定結果がＮ）、この時点では再ロード処理は行わない。一方、Ｓ４１で再ロード対象が見つかれば（Ｓ４２の判定結果がＹ）、それら各対象の表示内容データの待避先（図９（ｂ）参照）を文書構成情報管理部１５から求め、各待避先から表示内容データを読み出してＲＡＭ１０３にロードする（Ｓ４３）。このように表示内容データを再ロードした場合、その表示内容データに対応する文書要素の管理情報のアンロード・フラグをリセットして、そのデータがＲＡＭ１０３上にあることが管理情報から分かるようにする。
【００７３】
なお、図１０のメモリ解放時の再ロード処理で再ロードされなかった表示内容データは、最悪の場合でも、図７のページ出力時の再ロード（Ｓ２２）でＲＡＭ１０３にロードされる。
【００７４】
再ロードは、上述したメモリ解放時、及びページ出力にて必要となった時の他に、例えばタイマー等を用いて定期的に実行してもよい。この時の再ロード対象の選択基準も、メモリ解放時の基準と同様でよい。
【００７５】
また、Ｓ４１で再ロード対象が求められた場合でも、その再ロード対象の表示内容データがメモリ解放も考慮したＲＡＭ１０３の空き容量を越える場合が考えられる。このような場合、再ロードを見合わせるのも一つの方法である。また別の方法として、新たにアンロード処理を行ってメモリ空き容量を増やした上で、その再ロード対象をロードするという方法も可能である。ただしこの場合、再ロード対象のデータと新たにアンロードしようとするデータとの出力画像上での順序を比較し、この結果再ロード対象の方が後の場合は再ロードを行わない、等の処理とすることが望ましい。
【００７６】
以上説明したように、本実施形態によれば、文書に含まれる要素間の構造を記憶し、この構造の情報に従ってＲＡＭ１０３上のデータ中からアンロード対象を決めるので、ＬＲＵ方式等の一般的なメモリ管理と比較して、文書の構造により即したメモリ管理ができる。
【００７７】
解析によって検出した各要素の表示内容データの取得を並行的に実行する場合、例えば文書の最初のページに組み込むべき要素の表示内容データの取得に時間がかかり、その後の要素のデータが続々と取得できてＲＡＭ１０３の空きが少なくなる場合がある。このときに最初のページの要素のデータが取得されると、これをロードするためにＲＡＭ１０３上の他の要素のデータをアンロードする必要が出てくる。このとき、ＬＲＵの考え方で行くと最も前に取得したデータをアンロードすることになるが、仮にこれが最初のページに組み込むべき他の要素のデータであれば、折角最初のページの要素群のデータがすべて取得できているにもかかわらず、その内の１つがアンロードされるため、これを再ロードするまで最初のページが印刷できなくなるというような不具合が考えられる。これに対し、本実施形態では、文書の要素間の構造を参照してアンロード対象を決めており、最初のページに組み込まれるべき要素をこの構造の情報に基づき求めることができるので、このような不具合は回避できる。
【００７８】
特に、文書構造の情報からは、各文書要素が出力画像（ページ群）に現れる順序を求めることができ、この順序が後のものを優先的にアンロードすることで、アンロードした要素が必要となるまでに再ロードする機会を多くとることができるので、印刷出力の進行に対するペナルティの少ないメモリ管理が可能となる。
【００７９】
また、本実施形態では、ページ画像の出力が完了するごとに、これにより以後不要となった文書要素のデータをＲＡＭ１０３上から削除するので、ＲＡＭ１０３のメモリ領域を有効活用できる。そして、この削除により空き容量が増えたタイミングで、アンロード中の表示内容データの再ロードを実行することで、印刷処理の進行を円滑にすることができる。特に、アンロード中の表示内容データの中で、出力の順序が早いものから順に再ロード対象に選ぶことで、印刷出力進行への悪影響を少なくすることができる。
【００８０】
以上では、プリンタ２０２がＨＤＤ１０７を備えており、ＲＡＭ１０３からアンロードしたデータをＨＤＤ１０７に待避する構成を説明したが、プリンタの中にはＨＤＤ等の大容量二次記憶を搭載できないものも存在する。このようなプリンタに上記実施形態の手法を適用する場合、ＲＡＭ１０３からアンロードした表示内容データは、ＨＤＤ等の待避先がないため、プリンタ中からはなくなってしまう。しかしながら、この場合でも、文書構成情報管理部１５は、アンロードされた文書要素の表示内容データのオリジナルの所在場所を「データ名」や「パス」と言った情報として持っているので、この場所から再度ダウンロードすることでＲＡＭ１０３への再ロードが可能である。したがって、上記実施形態のメモリ管理の手法は、ＨＤＤ等の二次記憶がないプリンタにも適用可能である。
【００８１】
二次記憶のないプリンタに適用した場合の、アンロード対象や再ロード対象の選択の基準は、上述の二次記憶付きのプリンタの場合と同様、アンロード対象は出力への出現順序が遅いものから優先的に選択し、再ロード対象は出力への出現順序の早いものから優先的に選択する、というものでよい。ここで、ページプリンタの場合、出力への出現順序はページ単位で評価すればよいが、同一ページに配されるべき表示内容データが複数ある場合のアンロードの優先順序は、文書構成情報に記録されている「取得時間」が短いものを優先して選択することが好適である。この選択基準によれば、再ロードに要する時間が短くて済むため、印刷の進行への悪影響が少ない。
【００８２】
また以上の説明では、ページバッファをＲＡＭ１０３とは別に設けたが、構成を簡単なものとするため、ＲＡＭ１０３の中にページバッファを設けるようにしてもよい。
【００８３】
また以上の説明では、ページプリンタを例にとって説明したが、上記実施形態のメモリ管理手法の適用対象は、その基本的な考え方を見れば明らかなように、ページプリンタに限定されるものではない。例えば、ロール紙等に連続的に印刷出力していくプリンタの場合でも、印刷対象の文書の構造の情報を管理しておき、ワークメモリの容量が足りなくなった場合は、その構造情報を参照して印刷進行に影響の少ないもの（例えば出力されるのができるだけ後のもの）から優先的にアンロードすることで、印刷出力のための処理を円滑に進めることができる。
【００８４】
また、以上の説明では、文書を解析して得た文書構造の情報（文書構成情報）を管理し、これを参照してアンロードや再ロードの対象を選択したが、その文書構成情報から各要素の出力順序又は各要素のレイアウト（出力ページ又は一連の出力画像上での各要素の配置関係）の情報を作成し、この出力順序又はレイアウトを参照してアンロードや再ロードの対象を選択してもよい。これら出力順序やレイアウトの情報も、文書の構造を示す情報の一種と捉えることができる。
【００８５】
以上の説明では、ＨＴＭＬ文書を処理する場合を例にとったが、実施形態の内容から明らかなように、本発明は、ＸＭＬやＸＨＴＭＬ−ｐｒｉｎｔなど、出力画像に組み込むべきデータを文書外部への参照の形で記述できる文書一般を画像形成処理する装置に適用可能である。
【図面の簡単な説明】
【図１】本発明が適用されるプリンタのハードウエア構成の一例を示すブロック図である。
【図２】本発明が適用されるネットワーク環境の一例を示す図である。
【図３】実施形態のプリンタにおける文書データ処理機構の概略構成を示す機能ブロック図である。
【図４】実施形態のプリンタにおける文書解析処理の流れを示すフローチャートである。
【図５】印刷対象文書の例と、この文書の解析により得られる構造の情報を模式的に示す図である。
【図６】図５に例示した文書の解析により得られる文書構成情報の例を示す図である。
【図７】実施形態のプリンタにおける出力画像生成処理の流れを示すフローチャートである。
【図８】実施形態のプリンタにおけるメモリ確保処理の流れを示すフローチャートである。
【図９】アンロード対象の選択の仕方を説明するための図である。
【図１０】実施形態のプリンタにおけるメモリ解放処理の流れを示すフローチャートである。
【符号の説明】
１０　文書データ処理機構、１１　主制御部、１２　データ取得部、１３　文書解析部、１４　描画部、１５　文書構成情報管理部、１６　メモリ管理部、２０　ＬＡＮ、１０７　ＨＤＤ。
【図１】
2004127132.tif 000003
【図２】
2004127132.tif 000004
【図３】
2004127132.tif 000005
【図４】
2004127132.tif 000006
【図５】
2004127132.tif 000007
【図６】
2004127132.tif 000008
【図７】
2004127132.tif 000009
【図８】
2004127132.tif 000010
【図９】
2004127132.tif 000011
【図１０】
2004127132.tif 000012