(57)【要約】【課題】  メモリ容量の少ないプリンタであっても、リソースファイルを含むアーカイブデータ（ＸＰＳデータ）を適切に印刷処理することができる仕組みを提供する。【解決手段】  プリンタ２００と通信可能に接続されたホストコンピュータ１００において、ＣＰＵ１０１は、プリンタ２００において印刷対象となるページの情報が記述された印刷対象データ（ＦＰ）のファイルと、ＦＰに基づき参照されるリソースファイルとを含み構成されるアーカイブデータを取得し、ＦＰのファイルを分割して、当該アーカイブデータに当該分割されたＦＰのファイルを反映させるとともに、当該アーカイブデータにＦＰにおいてリソースファイルを参照する参照回数の情報を含める処理を行う。そして、ＦＰのファイルを分割する際には、前記参照回数の情報に応じて分割するようにする。【選択図】  図１
2010128962.tif 000002
【特許請求の範囲】
【請求項１】
プリンタと通信可能に接続された情報処理装置であって、
ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得手段と、
前記印刷対象データのファイルを分割する分割手段と、
前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割手段により分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記分割手段は、前記属性情報ファイルに記憶する参照回数に応じて前記印刷対象データのファイルを分割することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プリンタの第１のメモリ量を取得するプリンタメモリ量取得手段と、
前記印刷対象データのファイルのデータ量に基づく第２のメモリ量が前記プリンタメモリ量取得手段により取得された前記第１のメモリ量を超えるか否かを判断する判断手段と
を更に有し、
前記分割手段は、前記判断手段で前記第２のメモリ量が前記第１のメモリ量を超えると判断される場合、前記第１のメモリ量を超えない位置で前記印刷対象データのファイルを分割することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記属性情報ファイルが存在するか否かを判定する属性情報ファイル判定手段と、
前記印刷対象データで前記リソースファイルを参照する参照回数を記憶する、前記属性情報ファイルを生成する属性情報ファイル生成手段と、
前記属性情報ファイルが存在しないと判定される場合には、前記属性情報ファイル生成手段で生成された属性情報ファイルに、前記属性情報ファイルが存在すると判定される場合には、既に存在する属性情報ファイルに、前記参照回数を入力する参照回数入力手段と
を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記リソースファイルは、イメージファイルまたはフォントファイルであり、
前記参照回数入力手段は、前記印刷対象データにおいて参照する前記イメージファイルまたは前記フォントファイルごとの前記参照回数を前記属性情報ファイルに入力することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記アーカイブデータ生成手段で生成されたアーカイブデータを前記プリンタに送信する送信手段を更に有することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
情報処理装置とプリンタとで構成される印刷制御システムであって、
前記情報処理装置は、
ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含み構成されるアーカイブデータを取得するアーカイブデータ取得手段と、
前記印刷対象データのファイルを分割する分割手段と、
前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割手段により分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成手段と
を有し、
前記プリンタは、
前記アーカイブデータ生成手段で生成されたアーカイブデータを順次受信する受信手段と、
前記アーカイブデータに含まれる属性情報ファイルの参照回数に従って、前記受信手段で受信したアーカイブデータに含まれるリソースファイルの削除を行う削除手段と
を有することを特徴とする印刷制御システム。
【請求項８】
プリンタと通信可能に接続された情報処理装置の制御方法であって、
ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得ステップと、
前記印刷対象データのファイルを分割する分割ステップと、
前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割ステップにより分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成ステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
プリンタと通信可能に接続された情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、
ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得ステップと、
前記印刷対象データのファイルを分割する分割ステップと、
前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割ステップにより分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタと通信可能に接続された情報処理装置及びその制御方法、情報処理装置とプリンタとを含み構成される印刷制御システム、並びに、情報処理装置の制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ（以下、「ＰＣ」と称する）等の情報処理装置は、キーボード入力や画像出力といった入出力機能や、ディスク或いはメモリの管理など、多くのアプリケーションソフトから共通して利用される基本的な機能を提供する。そして、このような機能を提供するために、情報処理装置には、コンピュータシステム全体を管理するソフトウェアであるオペレーティングシステム（以下、「ＯＳ」と称する）が存在する。このＯＳとしては、例えば、Ｍｉｃｒｏｓｏｆｔ社製のＷｉｎｄｏｗｓ（登録商標）＿ＸＰや、Ｗｉｎｄｏｗｓ＿２０００、Ｗｉｎｄｏｗｓ＿Ｖｉｓｔａなどが挙げられる。
【０００３】
また、ＰＣ等の情報処理装置を用いてユーザが各種の文書を閲覧できるように様々な文書ファイルフォーマットが存在するが、その１つに、ＸＭＬ＿Ｐａｐｅｒ＿Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以下、「ＸＰＳ」と称する）という文書ファイルフォーマットがある。ここで、前述したＷｉｎｄｏｗｓ＿Ｖｉｓｔａでは、ＸＰＳが、文書ファイルフォーマットとしてのみでなく印刷スプールファイルのフォーマットとしても利用される。なお、ＸＰＳのフォーマットに従ったデータを「ＸＰＳデータ」、データがＸＰＳ形式のファイルを「ＸＰＳファイル」と称する。また、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）とは、文書やデータの意味や、構造を記述するためのマークアップ言語の１つであり、構造化文書と呼ばれる。構造化文書は他には、ＨＴＭＬやＳＧＭＬなどがある。
【０００４】
ここで、ＰＣ等の情報処理装置とプリンタなどの出力装置と備えるシステムにおいて、印刷を実施する場合、通常、アプリケーションは、ユーザからの印刷実行命令を受けると、アプリケーションが起動しているＯＳ、及び、当該ＯＳが提供する印刷システムに応じた印刷命令の発行処理を行う。
【０００５】
例えば、前述したＷｉｎｄｏｗｓ＿ＸＰやＷｉｎｄｏｗｓ＿２０００などのＯＳ上で起動しているアプリケーションは、当該ＯＳが提供するＧＤＩプリントパスと呼ばれる印刷システムの形式に従って印刷命令を発行する。ここで、ＧＤＩとは、Ｇｒａｐｈｉｃｓ＿Ｄｅｖｉｃｅ＿Ｉｎｔｅｒｆａｃｅの略称である。一方、前述したＷｉｎｄｏｗｓ＿Ｖｉｓｔａにおいては、前述したＧＤＩプリントパスに加えて、ＸＰＳプリントパスと呼ばれる印刷システムが新たに提供されている。
【０００６】
次に、ＸＰＳデータのフォーマットについて説明する。
ＸＰＳデータは、複数のファイルがＺＩＰ圧縮形式で１つのファイルに包含された形式を有するデータである。ここで包含されるファイルとしては、例えば、ＸＭＬファイル、ＪＰＥＧファイル、ＰＮＧファイル、ＴＩＦＦファイル、ＨＤ＿Ｐｈｏｔｏファイル、フォントファイルなどである。ここで、ＸＭＬとは、Ｅｘｔｅｎｓｉｂｌｅ＿Ｍａｒｋｕｐ＿Ｌａｎｇｕａｇｅの略称であり、ＪＰＥＧとは、Ｊｏｉｎｔ＿Ｐｈｏｔｏｇｒａｐｈｉｃ＿Ｅｘｐｅｒｔｓ＿Ｇｒｏｕｐの略称であり、ＰＮＧとは、Ｐｏｒｔａｂｌｅ＿Ｎｅｔｗｏｒｋ＿Ｇｒａｐｈｉｃｓの略称であり、ＴＩＦＦとは、Ｔａｇｇｅｄ＿Ｉｍａｇｅ＿Ｆｉｌｅ＿Ｆｏｒｍａｔの略称である。
【０００７】
ここで、前述したＸＭＬファイルには、文書を形成するための各種の情報がＸＭＬ形式で記述される。なお、記述される情報ごとに複数のＸＭＬファイルに分割されている。ここで、ＸＰＳでは、１つの文書は、複数もしくは１つのドキュメントという括りから成り、１つのドキュメントは、複数もしくは１つのページという括りから成るといったように、１つの文書は、幾つかの括りに分割されて考えられている。
【０００８】
また、ＪＰＥＧ、ＰＮＧ、ＴＩＦＦ、ＨＤ＿Ｐｈｏｔｏは、それぞれ、イメージを表現するためのフォーマットであり、以降、これらのファイルを総称して「イメージファイル」と称する。このイメージファイルやフォントファイルも、文書を構成するのに必要な数だけＸＰＳデータに包含される。また、ＸＰＳデータに包含されるファイルを、それぞれ、「パーツ」と称する。つまり、１つのＸＰＳデータには、複数のパーツが包含されている。
【０００９】
図２３は、ＸＰＳデータの構成のイメージの一例を示す模式図である。
ここで、ＸＰＳデータに包含された各パーツは、別のパーツへの参照を行うことができ、この参照を繰り返すことで全てのパーツが関係性を持つといった性質によって、１つの文書情報が形成される。以下、図２３に示されるＸＰＳデータに包含される各パーツについて説明を行う。
【００１０】
ａ）＿ｒｅｌｓ／．ｒｅｌｓ：
文書の開始点となるパーツである。後述するｂ）ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅへの参照を有する。
【００１１】
ｂ）ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）：
１つの文書の構成情報が記述されるパーツである。後述するｃ）ＦｉｘｅｄＤｏｃｕｍｅｎｔへの参照を有する。なお、１つのデータは、複数のドキュメントを有することができる。即ち、ＦＤＳは、複数のＦｉｘｅｄＤｏｃｕｍｅｎｔへの参照を有することができる。
【００１２】
ｃ）ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）：
１つのドキュメントに存在する複数のページをページ順に並べて束ねるためのパーツである。即ち、１つのドキュメントの構成情報が記述されるパーツであり、後述するｄ）ＦｉｘｅｄＰａｇｅへの参照を有する。なお、１つのドキュメントは、複数のページを有することができる。即ち、ＦＤは、複数のＦｉｘｅｄＰａｇｅへの参照を有することができる。
【００１３】
ｄ）ＦｉｘｅｄＰａｇｅ（ＦＰ）：
１ページの描画内容が記述されたパーツである。必要に応じて、イメージファイルやフォントファイルへの参照を有することができる。例えば、当該ページにイメージの描画が存在する場合には、当該イメージファイルへの参照を有することになる。
【００１４】
ｅ）ＦｉｘｅｄＰａｇｅ．ｒｅｌｓ（ＦＰ．ｒｅｌｓ）：
ｄ）ＦｉｘｅｄＰａｇｅに関連するパーツへの参照情報が記述されたパーツである。参照先としては、例えば、イメージファイル、フォントファイル、印刷設定情報が記述された後述するプリントチケットファイルなどである。このＦＰ．ｒｅｌｓは、１ＦｉｘｅｄＰａｇｅにつき１つ存在する、もしくはＦＰ．ｒｅｌｓ自体が存在しない。
【００１５】
ｆ）プリントチケット：
予め定義されたＸＭＬスキーマの形式に従って記述された印刷条件の設定が記述されたファイルである。以下、印刷設定を行うために予め定義されたＸＭＬスキーマの形式を「プリントスキーマ」と称し、印刷スキーマに従って印刷条件が記述されているＸＭＬファイルを「プリントチケット」と称する。
【００１６】
図２４は、図２３に示すＸＰＳデータに包含される各パーツの参照関係の論理的構造の一例を示す模式図である。また、図２５は、ＸＭＬファイルの記述に基づいた参照関係の一例を示す模式図である。
【００１７】
次に、プリントチケットの詳細について説明する。
図２６は、ＸＭＬファイルの記述に基づいたプリントチケットの一例を示す模式図である。
【００１８】
プリントチケットのルートタグは、図２６に示す＜ＰｒｉｎｔＴｉｃｋｅｔ＞である。このルートタグの子要素に、＜Ｆｅａｔｕｒｅ＞タグが存在する。この＜Ｆｅａｔｕｒｅ＞タグは、必須属性として、"ｎａｍｅ"を持つ。この"ｎａｍｅ"の値は、印刷対象プリンタの機能を示し、例えば、ページサイズ指定機能用の値が存在する。なお、この"ｎａｍｅ"の値は、プリントスキーマに定義されている値を使用してもよいし、ベンダが独自に定義した値を使用してもよい。また、プリントスキーマが所属するＸＭＬ名前空間は、"ｈｔｔｐ：／／ｓｃｈｅｍａｓ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｗｉｎｄｏｗｓ／２００３／０８／ｐｒｉｎｔｉｎｇ／ｐｒｉｎｔｓｃｈｅｍａｆｒａｍｅｗｏｒｋ"と、"ｈｔｔｐ：／／ｓｃｈｅｍａｓ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｗｉｎｄｏｗｓ／２００３／０８／ｐｒｉｎｔｉｎｇ／ｐｒｉｎｔｓｃｈｅｍａｋｅｙｗｏｒｄｓ"である。
【００１９】
また、＜Ｆｅａｔｕｒｅ＞タグは、通常、子要素に＜Ｏｐｔｉｏｎ＞タグを１つ持つ。この＜Ｏｐｔｉｏｎ＞タグは、親要素である＜Ｆｅａｔｕｒｅ＞タグで指定された機能の設定を示し、その属性として、＜Ｆｅａｔｕｒｅ＞タグと同様、"ｎａｍｅ"を持ち、この属性値で機能を設定する。この際の属性値は、プリントスキーマまたはベンダ独自のスキーマで定義されている値が入る。例えば、上位の＜Ｆｅａｔｕｒｅ＞タグが、ページサイズ指定機能であれば、"Ａ４"といった値が入ることが予想される。通常、この＜Ｏｐｔｉｏｎ＞タグは、１つの＜Ｆｅａｔｕｒｅ＞タグの子要素として、１つしか存在しない。また、＜Ｏｐｔｉｏｎ＞タグは、子要素に、＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞を持つ。この際、＜Ｏｐｔｉｏｎ＞タグは、＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞を複数持つこともある。
【００２０】
＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞タグは、親要素である＜Ｏｐｔｉｏｎ＞タグで指定された機能の設定の一部を示し、必須属性として、"ｎａｍｅ"を持ち、設定の一部を指定する。また、属性値には、プリントスキーマまたはベンダ独自のスキーマで定義されている値が入る。例えば、上位の＜Ｏｐｔｉｏｎ＞タグが"Ａ４"であれば、幅や高さといった値が入ることが予想される。この＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞タグは、子要素に、＜Ｖａｌｕｅ＞タグを１つ持つ。
【００２１】
＜Ｖａｌｕｅ＞タグは、＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞タグの"ｎａｍｅ"属性で指定された内容の具体的な値が入る。例えば、上位の＜ＳｃｏｒｅｄＰｒｏｐｅｒｔｙ＞タグの"ｎａｍｅ"属性値が幅であれば、"２４７０００"と具体的な数値が入る。
【００２２】
ところで、Ｗｉｎｄｏｗｓ＿Ｖｉｓｔａでは、ＸＰＳが、文書ファイルフォーマットとしてのみでなく印刷スプールファイルのフォーマットとしても利用できると前述したが、この際、前述したＸＰＳプリントパスが使用される場合には、通常、ＯＳが提供する印刷システムが自動で印刷スプールファイルをＸＰＳファイルフォーマットの形式で生成する。ここで、ユーザが任意のＸＰＳデータを作成してスプールすることも可能であり、また、後述するＭＸＤＷで作成されたＸＰＳデータをスプールすることも可能である。
【００２３】
また、ＸＰＳデータをプリントデータとして利用する場合、ＺＩＰ圧縮されたデータがＰＣ等の情報処理装置からネットワークを介してプリンタなどの出力装置に送信される。なお、この際、送信データ（ＸＰＳデータ）は、全てが一括で送られるのではなく、幾つかに分割されて出力装置に送られるのが一般的である。そして、出力装置では、ＸＰＳデータを受信する処理を行った後、印刷処理を実施するために、受信したＸＰＳデータを解析する処理を行う。なお、通常、出力装置は、受信処理と、既に受信済みのＸＰＳデータの解析処理を並行して行うことが可能である。
【００２４】
ところで、Ｗｉｎｄｏｗｓ＿Ｖｉｓｔａの機能の１つとして、Ｍｉｃｒｏｓｏｆｔ＿ＸＰＳ＿Ｄｏｃｕｍｅｎｔ＿Ｗｒｉｔｅｒ（以下、「ＭＸＤＷ」と称する）なる、ＸＰＳファイルを生成するためのアプリケーションが存在する。このＭＸＤＷによって、ＸＰＳファイルを生成した場合、通常は、「＿ｒｅｌｓ／．ｒｅｌｓ」の情報を有するファイルデータ部、「ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）」の情報を有するファイルデータ部、「ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）」の情報を有するファイルデータ部、「ＦｉｘｅｄＰａｇｅ（ＦＰ）」の情報を有するファイルデータ部のデータは、それぞれ、図２７のように、「ＦｉｘｅｄＰａｇｅ（ＦＰ）」→「ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）」（２７１３、２７１４）→「ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）」（２７１５）→「＿ｒｅｌｓ／．ｒｅｌｓ」（２７１６）の順序に並んで構成される。以降、この順序を「データ順」と称する。なお、図２７は、ＭＸＤＷが通常生成するＸＰＳファイルのデータ順の一例を示す模式図である。
【００２５】
ここで、ＸＰＳデータをプリントデータとして利用する場合、前述した通り、ＸＰＳデータは、幾つかに分割されて出力装置に送信される。この際、前述したデータ順に並んだＸＰＳデータでは、送信開始後、「ＦｉｘｅｄＰａｇｅ（ＦＰ）」、「ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）」、「ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）」の情報を有するファイルデータ部が全て送信された後に、「＿ｒｅｌｓ／．ｒｅｌｓ」の情報を有するファイルデータ部が出力装置に送信されることになる。
【００２６】
ここで、前述した通り、「＿ｒｅｌｓ／．ｒｅｌｓ」は、文書の開始点となるパーツであるため、出力装置では、「＿ｒｅｌｓ／．ｒｅｌｓ」の情報を有するファイルデータ部が受信されるまで、ＸＰＳデータの解析を開始できない。その結果、ＸＰＳデータの受信処理とＸＰＳデータの解析処理と並行して行うことができず、全体としての印刷スループットが低下してしまう。なお、仮に、ＸＰＳデータの先頭に、「＿ｒｅｌｓ／．ｒｅｌｓ」の情報を有するファイルデータ部があったとしても、次に、参照すべき「ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）」の情報を有するファイルデータ部が最後尾等にあるようなデータ順であった場合には、当該ファイルデータ部が受信されるまで、ＸＰＳデータの解析処理を中断せざるを得ず、この場合においても、全体としての印刷スループットが低下してしまう。
【００２７】
ところで、ＸＰＳには、１つのパーツを複数のパーツに分割するインターリーブと呼ばれる仕様が存在し、ＭＸＤＷの設定でインターリーブの仕様に則ったデータを作成することが可能である（例えば、非特許文献１、非特許文献２参照）。この仕様に即したＸＰＳデータを「ピースデータ」と言う。つまり、ＸＰＳデータ内において、意味のある最小単位は「パーツ」であるが、物理的なデータとしての最小単位は「ピース」である。
【００２８】
通常のＸＰＳデータをインターリーブの仕様に即したデータに変換することをインターリーブ化と呼ぶ。図２８は、図２５に示すＸＰＳデータをインターリーブ化した際のパーツデータの一例を示す模式図である。図２８に示すインターリーブ化では、次のパーツへの参照が存在するところまで各パーツを分割している。また、図２９は、インターリーブ化した際のＸＰＳデータの構成のイメージの一例を示す模式図である。また、図３０は、インターリーブ化した際のＸＰＳファイルのデータ順の一例を示す模式図である。
【００２９】
ここで、図２８に示すように分割した各パーツを、図３０に示すように、各参照部の直後に参照先データが配置されるようなデータ順に並び替えることにより、前述した印刷スループットが低下する問題は解決可能である。なお、図２８〜図３０では、リレーションシップパーツとプリントチケットが省略されている箇所があるが、図を簡略しているだけであり、実際は存在している。例えば、／Ｄｏｃｕｍｅｎｔｓ／１／Ｐａｇｅ／１．ｆｐａｇｅのリレーションシップパーツとそのリレーションシップパーツから参照されるプリントチケットは、図３０の３００３と３００４との間に存在している。
【００３０】
さて、図３０に示すように各参照部の直後に参照先データが配置されるようなデータ順に並び替えることにより、印刷スループットが低下する問題が解決可能な理由としては、出力装置では解析すべきパーツの情報を有するファイルデータ部を順番に受信していくため、当該ファイルデータ部の受信後すぐに当該ファイルデータ部の解析処理を行うことが可能になるためである。
【００３１】
例えば、図２９に示す例では、出力装置は、２個に分割された「＿ｒｅｌｓ／．ｒｅｌｓ」の１個目のパーツの情報を有するファイルデータ部を受信する。ここで、出力装置は、最初に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。
【００３２】
続いて、出力装置は、ｎ個に分割された「ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）」の１個目のパーツの情報を有するファイルデータ部を受信する。ここで、出力装置は、次に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。
【００３３】
続いて、出力装置は、ｉ個に分割された１つ目のドキュメントの構成情報が記述された「ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）」の１個目のパーツの情報を有するファイルデータ部を受信する。ここで、出力装置は、次に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。
【００３４】
続いて、出力装置は、１つ目のドキュメントの１ページ目のページ情報が記述された「ＦｉｘｅｄＰａｇｅ（ＦＰ）」の情報を有するファイルデータ部を受信する。ここで、出力装置は、次に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。その結果、１つ目のドキュメントの１ページ目の印刷を行うことができる。
【００３５】
続いて、出力装置は、ｉ個に分割された１つ目のドキュメントの構成情報が記述された「ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）」の２個目のパーツの情報を有するファイルデータ部を受信する。ここで、出力装置は、次に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。
【００３６】
続いて、出力装置は、１つ目のドキュメントの２ページ目のページ情報が記述された「ＦｉｘｅｄＰａｇｅ（ＦＰ）」の情報を有するファイルデータ部を受信する。ここで、出力装置は、次に当該パーツを解析する必要があるが、既に当該パーツの情報を有するファイルデータ部を受信済みであるため、すぐに当該パーツの解析を開始できる。その結果、１つ目のドキュメントの２ページ目の印刷を行うことができる。
【００３７】
以降、同様に、ファイルデータ部を受信後すぐに当該パーツの解析ができるようになり、印刷スループットが低下する問題は解決される。
【００３８】
次に、ＺＩＰ圧縮されたデータの構成及びデータの検索方法について説明する。
【００３９】
ＺＩＰ圧縮データには、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒやファイルデータと呼ばれるデータ部分が存在する。ここで、ファイルデータの直前には、必ず、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒが存在し、このＬｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒとファイルデータとの組によって、伸張データの１つのファイルの情報が構成される。言い換えると、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒとファイルデータとの１組によって、伸張データの１つのファイルを伸張することができる。以降、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒとファイルデータとの組を合わせて「ファイルデータ部」と称する。また、伸張データに複数のファイルが存在する場合には、ファイルデータ部が複数組列挙される。図３１は、ＺＩＰ圧縮データの構成の一例を示す模式図である。
【００４０】
ところで、ＺＩＰ圧縮では、伸張データのディレクトリ構成を保持したままの圧縮が可能であるが、あるファイルが伸張データ時のディレクトリ構成では上位の階層に存在したとしても、圧縮時に当該ファイルを構成するファイルデータ部がデータの前方にあるとは限らない。言い換えると、伸張時のディレクトリ構成上の階層位置と圧縮時のファイルデータ部の位置に関連性はない。
【００４１】
次に、ＸＰＳパーツ名が判明している場合、ＸＰＳからパーツデータを取得する方法について説明する。
図３１に示すＬｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒの内部構造には、先頭データが"ＰＫ３４"というバイナリデータであり、その後、既定の位置に当該Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒと対になるファイルデータのデータ名とデータサイズが記述されている。よって、"ＰＫ３４"というバイナリデータを先頭から順番に検索し、検索後、規定の位置に存在するファイルデータのデータ名を検索して取得・判定し、その結果、所望していたパーツデータでなければ、前記データサイズ分、後方に存在するＬｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒの"ＰＫ３４"というバイナリデータを前回検索した位置から再度検索する。そして、上述した処理を目的のパーツデータを取得できるまで繰り返し行う。
【００４２】
【非特許文献１】ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＸＰＳ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｒｅｆｅｒｅｎｃｅ  Ｇｕｉｄｅ）の「１７．１  Ｉｎｔｅｒｌｅａｖｉｎｇ  Ｏｐｔｉｍｉｚａｔｉｏｎ」、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｅｃｍａ−ｉｎｔｅｒｎａｔｉｏｎａｌ．ｏｒｇ／ｍｅｍｅｎｔｏ／ＴＣ４６−ａｖａｉｌａｂｌｅｄｏｃｓ．ｈｔｍ＞からダウンロード可能な文献
【非特許文献２】Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ  Ｐａｒｔ  ２（Ｏｐｅｎ  Ｐａｃｋａｇｉｎｇ  Ｃｏｎｖｅｎｔｉｏｎｓ）の「９．１．４  Ｉｎｔｅｒｌｅａｖｉｎｇ」、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｅｃｍａ−ｉｎｔｅｒｎａｔｉｏｎａｌ．ｏｒｇ／ｐｕｂｌｉｃａｔｉｏｎｓ／ｓｔａｎｄａｒｄｓ／Ｅｃｍａ−３７６．ｈｔｍ＞からダウンロード可能な文献
【発明の開示】
【発明が解決しようとする課題】
【００４３】
前述したＭＸＤＷで作成されたＸＰＳファイル内のＦｉｘｅｄＰａｇｅ（ＦＰ）が複数のイメージファイルを参照している場合、インターリーブ機能を使用して作成する／しないに関わらず、図３２に示すように、ＦＰ（３２１０）よりも前方にイメージファイルが配置される。
【００４４】
また、図３３は、図３２に示すＦＰ（３２１０）の一例を示す模式図である。具体的に、図３３には、図３２のＦＰ（３２１０）に示される「／Ｄｏｃｕｍｅｎｔｓ／１／Ｐａｇｅ／１．ｆｐａｇｅ」の内容が示されている。図３３に示すように、ＦＰ（３２１０）は、「／Ｒｅｓｏｕｒｃｅ／Ｉｍａｇｅ／１．ｊｐｅｇ」を２度参照し、「／Ｒｅｓｏｕｒｃｅ／Ｉｍａｇｅ／２．ｊｐｅｇ」を１度参照し、「／Ｒｅｓｏｕｒｃｅ／Ｉｍａｇｅ／３．ｊｐｅｇ」を２度参照し、「／Ｒｅｓｏｕｒｃｅ／Ｉｍａｇｅ／４．ｊｐｅｇ」を１度参照している。そして、このようなデータがプリンタ（出力装置）に送信された場合、上述したイメージファイルをＦｉｘｅｄＰａｇｅ（ＦＰ）の処理開始時まで保持しておかなければならず、記憶領域が少ないプリンタでは、印刷できない可能性がある。
【００４５】
そこで、非特許文献１や非特許文献２に記載されているインターリーブをＦｉｘｅｄＰａｇｅ（ＦＰ）に対しても適用し、図３３に示すＦＰを、図３４に示すようにイメージファイルを参照している箇所で分割し、直後に参照するイメージファイルを配置して、図３５に示すようなＸＰＳファイルを作成して、プリンタに送信するという方法が考えられる。この方法により、プリンタ側で、イメージファイルを受け取ると同時に処理を行い、処理の終了とともにイメージファイルを記憶領域から削除することで、記憶領域の少ないプリンタであっても印刷が可能になる。
【００４６】
しかしながら、この方法では、ＦＰの分割数が増えることによる、ＺＩＰ圧縮ファイルの解凍処理の増加によるスループット（印刷速度）の低下が問題となる。また、ＦＰから、同一のイメージファイルを複数回参照することが可能であるため、イメージファイルの参照箇所ごとに分割送信して、プリンタ側で処理終了ごとに消去するのであれば、図３５に示す３５０７と３５１１のようにイメージファイルを複数回送信する必要があり、ネットワーク回線の伝送効率の低い場合、スループットの低下が問題となる。
【００４７】
そこで、プリンタのメモリ上に参照するイメージファイルを一時的に記憶しておき、同一のイメージファイルについては、プリンタにおいて、必要に応じてメモリから読み出すようにする方法が考えられる。
【００４８】
しかしながら、この場合、例えば、メモリ容量が少ないローコストのプリンタにおいて、イメージファイルの多いＸＰＳデータをダイレクト印刷する場合には、メモリオーバとなってしまうことが起こる。そして、メモリオーバになった場合、プリンタは、例えば、イメージファイルの解像度を落とすなどの処理を行って印刷を行うようにしてしまうため、ユーザの期待する適切な印刷物が得られないという問題があった。
【００４９】
本発明は、このような問題点に鑑みてなされたものであり、メモリ容量の少ないプリンタであっても、リソースファイルを含むアーカイブデータ（ＸＰＳデータ）を適切に印刷処理することができる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００５０】
本発明の情報処理装置は、プリンタと通信可能に接続された情報処理装置であって、ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得手段と、前記印刷対象データのファイルを分割する分割手段と、前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割手段により分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成手段とを有する。
【００５１】
本発明の印刷制御システムは、情報処理装置とプリンタとで構成される印刷制御システムであって、前記情報処理装置は、ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含み構成されるアーカイブデータを取得するアーカイブデータ取得手段と、前記印刷対象データのファイルを分割する分割手段と、前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割手段により分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成手段とを有し、前記プリンタは、前記アーカイブデータ生成手段で生成されたアーカイブデータを順次受信する受信手段と、前記アーカイブデータに含まれる属性情報ファイルの参照回数に従って、前記受信手段で受信したアーカイブデータに含まれるリソースファイルの削除を行う削除手段とを有する。
【００５２】
本発明の情報処理装置の制御方法は、プリンタと通信可能に接続された情報処理装置の制御方法であって、ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得ステップと、前記印刷対象データのファイルを分割する分割ステップと、前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割ステップにより分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成ステップとを有する。
【００５３】
本発明のプログラムは、プリンタと通信可能に接続された情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、ドキュメントの構成情報が記述されたページ構成データのファイルと、前記ページ構成データに基づき参照され、前記プリンタにおいて印刷対象となるページの情報が記述された印刷対象データのファイルと、前記印刷対象データに基づき参照されるリソースファイルとを含むアーカイブデータを取得するアーカイブデータ取得ステップと、前記印刷対象データのファイルを分割する分割ステップと、前記印刷対象データで前記リソースファイルを参照する参照回数を含む、前記印刷対象データを印刷する際に利用される属性を記憶する属性情報ファイルと、前記分割ステップにより分割された前記印刷対象データのファイルと、前記ページ構成データのファイルと、前記リソースファイルとを含むアーカイブデータを生成するアーカイブデータ生成ステップとをコンピュータに実行させるためのものである。
【発明の効果】
【００５４】
本発明によれば、メモリ容量の少ないプリンタであっても、リソースファイルを含むアーカイブデータを適切に印刷処理することができる。
【発明を実施するための最良の形態】
【００５５】
以下に、図面を参照しながら、本発明を実施するための最良の形態（実施形態）について説明する。なお、以下に示す本発明の実施形態においては、複数のデータ（ファイル）を１つのデータ（ファイル）にまとめたアーカイブデータ（アーカイブファイル）として、ＸＰＳデータ（ＸＰＳファイル）を適用した例について説明する。
【００５６】
図１は、本発明の実施形態に係る印刷制御システム１０の概略構成の一例を示す模式図である。なお、本発明の実施形態に係る印刷制御システム１０は、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、更には、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされて処理が行われるシステムであっても、適用できる。即ち、図１に示す印刷制御システム１０（以降の説明では、図１に示す印刷制御システムを「印刷制御システム１０−１」とする）は、一例を示したものであり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００５７】
図１に示す印刷制御システム１０−１は、情報処理装置に相当するホストコンピュータ（クライアントコンピュータ）１００と、出力装置（印刷装置）に相当するプリンタ２００と、これらの装置を通信可能に接続するネットワーク３００を有して構成されている。
【００５８】
ホストコンピュータ１００は、図１に示すように、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、システムバス１０４、入力コントローラ（以下、「入力Ｃ」と称する）１０５、ビデオコントローラ（以下、「ＶＣ」と称する）１０６、メモリコントローラ（以下、「ＭＣ」と称する）１０７、通信インターフェース（以下、「通信Ｉ／Ｆ」と称する）１０８、キーボード（以下、「ＫＢ」と称する）１０９、ＣＲＴディスプレイ（以下、「ＣＲＴ」と称する）１１０、及び、外部メモリ１１１を有して構成されている。
【００５９】
ＣＰＵ１０１は、ＲＯＭ１０３或いは外部メモリ１１１に記憶されたプログラム等に基づいてシステムバス１０４に接続された各デバイスを制御して、当該ホストコンピュータ１００における動作を統括的に制御する。
【００６０】
ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０２にロードして、プログラムを実行することで各種の動作を実現する。
【００６１】
ＲＯＭ１０３には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input / Output System）やオペレーティングシステムプログラム（以下、ＯＳ）、ＣＰＵ１０１が本実施形態に係るホストコンピュータ１００の機能を実現するために必要な各種のプログラム等が記憶されている。なお、これらのプログラムは、外部メモリ１１１に記憶されている態様であってもよい。また、本実施形態で使用するＯＳは、例えばＷｉｎｄｏｗｓ＿Ｖｉｓｔａ（Ｍｉｃｒｏｓｏｆｔ社製）を想定するが、これに限定されるものではない。
【００６２】
システムバス１０４は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力Ｃ１０５、ＶＣ１０６、ＭＣ１０７及び通信Ｉ／Ｆ１０８を、相互に通信可能に接続する。
【００６３】
入力Ｃ１０５は、ＫＢ１０９やマウス等のポインティングデバイス（不図示）からの入力を制御する。
【００６４】
ＶＣ１０６は、ＣＲＴ１１０等の表示装置への表示を制御する。なお、表示装置は、ＣＲＴであっても、液晶ディスプレイ等のその他の表示装置であってもよい。
【００６５】
ＭＣ１０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種のデータ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ１１１へのアクセスを制御する。
【００６６】
通信Ｉ／Ｆ１０８は、ネットワーク３００を介して、外部装置（図１に示す例では、プリンタ２００）との通信を制御する。例えば、通信Ｉ／Ｆ１０８は、ＴＣＰ／ＩＰを用いたインターネット通信やプリンタ２００との間でデータ送受信等が可能である。
【００６７】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０上での表示を可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上のマウスカーソル（不図示）等でのユーザ指示を可能とする。
【００６８】
プリンタ２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、システムバス２０４、通信インターフェース（以下、「通信Ｉ／Ｆ」と称する）２０５、印刷部インターフェース（以下、「印刷部Ｉ／Ｆ」と称する）２０６、メモリコントローラ（以下、「ＭＣ」と称する）２０７、印刷部２０８、操作部２０９、及び、外部メモリ２１０を有して構成されている。
【００６９】
ＣＰＵ２０１は、ＲＯＭ２０３或いは外部メモリ２１０に記憶されたプログラム等に基づいてシステムバス２０４に接続された各デバイスを制御して、当該プリンタ２００における動作を統括的に制御する。例えば、ＣＰＵ２０１は、ＲＯＭ２０３或いは外部メモリ２１０に記憶されたプログラム等に基づいて印刷部（例えばプリンタエンジン）２０８に出力情報としての画像信号を出力する処理を行う。
【００７０】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ２０２は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等にも用いられる。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０２にロードして、プログラムを実行することで各種の動作を実現する。また、ＲＡＭ２０２は、増設ポート（不図示）に接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００７１】
ＲＯＭ２０３には、フォントＲＯＭ２０３ａ、プログラムＲＯＭ２０３ｂ、及び、データＲＯＭ２０３ｃが設けられている。フォントＲＯＭ２０３ａには、上記出力情報を生成する際に使用する各種のフォントデータ等が記憶されている。プログラムＲＯＭ２０３ｂには、ＣＰＵ２０１がプリンタ２００の各種機能を実現するために必要な各種のプログラムが記憶されている。データＲＯＭ２０３ｃには、例えばＣＰＵ２０１が各種の処理を行う際に必要な各種のデータ（各種の情報も含む）が記憶され、また、外部メモリ２１０がないプリンタ２００の場合には、ホストコンピュータ１００で利用される情報等も記憶される。
【００７２】
システムバス２０４は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、通信Ｉ／Ｆ２０５、印刷部Ｉ／Ｆ２０６、ＭＣ２０７、及び、操作部２０９を、相互に通信可能に接続する。
【００７３】
通信Ｉ／Ｆ２０５は、ネットワーク３００を介して、外部装置（図１に示す例では、ホストコンピュータ１００）との通信を制御する。
【００７４】
印刷部Ｉ／Ｆ２０６は、印刷部２０８との通信を制御する。
【００７５】
ＭＣ２０７は、ハードディスク（ＨＤ）やＩＣカード等の外部メモリ２１０へのアクセスを制御する。外部メモリ２１０は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、外部メモリ２１０は、１個に限らず、例えば、複数設けて、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。さらに、外部メモリ２１０は、例えば、ＮＶＲＡＭ（不図示）を有し、操作部２０９からのプリンタモード設定情報を記憶するようにしてもよい。
【００７６】
操作部２０９は、例えば、操作パネル及び操作パネルの操作のためのスイッチ、並びに、ＬＥＤ表示器等を備えて構成されており、ユーザにより操作されるものである。
【００７７】
また、本実施形態では、プリンタ２００がサポートするプリントデータは、ＸＰＳデータを想定しているが、同様のファイルフォーマットを有するデータであれば、これに限定されるものではない。
【００７８】
図２は、本発明の実施形態に係る印刷制御システム１０の概略構成の変形例を示す模式図である。
図２に示す印刷制御システム１０−２は、図１に示すホストコンピュータ１００（具体的には、１００−１〜１００−４）、図１に示すプリンタ２００（具体的には、２００−１〜２００−２）、及び、図１に示すネットワーク３００に加えて、ローカルインターフェース３０１と、プリントサーバコンピュータ４００を有して構成されている。
【００７９】
この場合、ホストコンピュータ１００（１００−１〜１００−４）の通信Ｉ／Ｆ１０８は、ネットワークインターフェースカード（ＮＩＣ）の機能を有するものとする。プリンタ２００（２００−１〜２００−２）は、セントロニクスやＵＳＢ等のローカルインターフェース３０１を介してプリントサーバコンピュータ４００と接続されて当該プリントサーバコンピュータ４００を介してネットワーク３００に接続される形態であっても、ネットワーク３００に直接接続される形態であってもよい。なお、ネットワーク３００に直接接続されているプリンタ２００（具体的には、２００−１）の通信Ｉ／Ｆ２０５は、ネットワークインターフェースカード（ＮＩＣ）の機能を有するものとする。
【００８０】
また、プリントサーバコンピュータ４００を介してネットワーク３００に接続されるプリンタ２００（具体的には、２００−２）に対して各ホストコンピュータ１００から印刷ジョブを送信する場合、まず、各ホストコンピュータ１００は、プリントサーバコンピュータ４００へ印刷ジョブを送信する。そして、プリントサーバコンピュータ４００は、各ホストコンピュータ１００から送信されてきた印刷ジョブを、当該プリントサーバコンピュータ４００のプリントサブシステム（不図示）を介して、プリンタ２００へ送信する。これにより、各ホストコンピュータ１００は、プリントサーバコンピュータ４００を介して印刷ジョブをプリンタ２００へ送信することができる。
【００８１】
また、ネットワーク３００に直接接続されているプリンタ２００（具体的には、２００−１）に対して各ホストコンピュータ１００から印刷ジョブを送信する場合、各ホストコンピュータ１００は、ネットワーク３００に直接接続されているプリンタ２００へ印刷ジョブを送信する。
【００８２】
次に、ホストコンピュータ１００による前述したＧＤＩプリントパスを用いた印刷制御機能の機能構成について説明を行う。
【００８３】
図３は、本発明の実施形態に係る印刷制御システム１０のホストコンピュータ１００によるＧＤＩプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。
ホストコンピュータ１００には、ＧＤＩプリントパスを用いた際の印刷制御機能として、図３に示すように、アプリケーション１３１、ＧＤＩ１３２、ユーザインターフェースドライバ１３３、スプーラ１３４、ＥＭＦスプールファイル１３５、プリントプロセッサ１３６、プリンタグラフィックスドライバ１３７及びランゲージモニタ１３８が構成される。
【００８４】
ここで、アプリケーション１３１、ＧＤＩ１３２、ユーザインターフェースドライバ１３３、スプーラ１３４、プリントプロセッサ１３６及びプリンタグラフィックスドライバ１３７は、例えば、図１に示すＣＰＵ１０１とＲＯＭ１０３或いは外部メモリ１１１に記憶されているプログラムとから構成される。また、ＥＭＦスプールファイル１３５は、例えば、図１に示す外部メモリ１１１に構成される。また、ランゲージモニタ１３８は、例えば、図１に示すＣＰＵ１０１とＲＯＭ１０３或いは外部メモリ１１１に記憶されているプログラム、並びに、通信Ｉ／Ｆ１０８から構成される。
【００８５】
アプリケーション１３１は、ＧＤＩ１３２を介してプリンタ２００に対して印刷条件の設定を行う。より具体的に、アプリケーション１３１は、例えば、印刷に使用する用紙のサイズの設定や逆順で印刷するか否かの設定、製本の体裁で印刷を行う製本印刷を実施するか否かの設定など、各種の印刷条件を設定する処理を行う。さらに、アプリケーション１３１は、ＧＤＩ１３２等を介してプリンタ２００に対して文書や写真画像等の描画命令を発行して印刷実行を指示する。以下、図３の説明等において、描画命令の発行に伴ってＧＤＩ１３２を介してスプーラ１３４に通知される文書・画像データ及び描画命令を総称して「印刷データ」と称する。
【００８６】
ＧＤＩ１３２は、アプリケーション１３１等からの指示に基づき、ＧＤＩプリントパスに係る処理を行う。
【００８７】
ユーザインターフェースドライバ１３３は、ＧＤＩ１３２を介して通知された印刷条件をプリンタ２００に適合する内容に変更し、最終的な印刷条件を確定する処理を行う。さらに、ユーザインターフェースドライバ１３３は、ＧＤＩ１３２を介して、最終的に確定した印刷条件をスプーラ１３４に通知する処理を行う。
【００８８】
スプーラ１３４は、ＧＤＩ１３２を介して通知された印刷データ及び印刷条件をＥＭＦスプールファイル１３５に格納する。
【００８９】
プリントプロセッサ１３６は、スプーラ１３４を介してＥＭＦスプールファイル１３５に格納された印刷データを取得し、当該印刷データを１ページ単位で処理する。
【００９０】
プリンタグラフィックスドライバ１３７は、ＧＤＩ１３２を介してプリントプロセッサ１３６で処理された印刷データを取得し、当該印刷データをプリンタ２００で印刷出力可能なＰＤＬデータに変換する処理を行う。
【００９１】
ランゲージモニタ１３８は、プリンタ２００と双方向の通信を行い、プリンタ２００の情報を取得してＣＲＴ１１０に表示する処理を行う。また、ランゲージモニタ１３８は、プリンタグラフィックスドライバ１３７が生成したＰＤＬデータをプリンタ２００に供給する。なお、ランゲージモニタ１３８は、プリンタ２００が備えるメモリ容量や、エンジンコントローラの構成により異なる転送方法を採用することができる。
【００９２】
続いて、ＧＤＩプリントパスを用いた印刷制御機能における一連の動作について説明する。
【００９３】
まず、アプリケーション１３１は、ユーザからの操作指示に従って、印刷条件の設定、及び任意の文書又は写真画像等の印刷実行の指示を行う。
【００９４】
ＧＤＩ１３２は、アプリケーション１３１から印刷実行の指示を受けると、ユーザインターフェースドライバ１３３に対して、プリンタ２００での印刷条件の設定内容、及び、印刷開始のイベントを通知する。
【００９５】
ユーザインターフェースドライバ１３３は、ＧＤＩ１３２からプリンタ２００での印刷条件の設定内容の通知を受けると、通知された印刷条件の設定内容を参照して、プリンタ２００において印刷出力可能な設定内容であるか否かを判断する。ここで、ユーザインターフェースドライバ１３３は、ＧＤＩ１３２から通知された印刷条件の設定内容が、プリンタ２００において印刷出力可能な設定内容になっていないと判断した場合には、プリンタ２００において印刷出力可能な設定内容になるように、印刷条件の設定内容を更新（一部更新も含む）し、印刷条件を確定する。
【００９６】
続いて、アプリケーション１３１は、ＧＤＩ１３２を介して、文書・画像データの描画命令を発行する。
【００９７】
スプーラ１３４は、アプリケーション１３１における描画命令の発行に伴って生成された印刷データ、及び、ユーザインターフェースドライバ１３３が確定した印刷条件の通知を受けると、通知された印刷データ及び印刷条件をＥＭＦスプールファイル１３５に格納する。
【００９８】
プリントプロセッサ１３６は、スプーラ１３４を介してＥＭＦスプールファイル１３５から印刷条件の設定内容及び印刷データを取得する。続いて、プリントプロセッサ１３６は、ＧＤＩ１３２を介して、当該印刷条件の設定内容及び印刷データを１ページ単位で処理し、これをプリンタグラフィックスドライバ１３７に供給する。ここで、ＧＤＩ１３２は、プリントプロセッサ１３６からプリンタグラフィックスドライバ１３７に印刷データを供給する際に、印刷データに含まれる描画命令をグラフィックス描画コマンドに変換する処理を行う。
【００９９】
プリンタグラフィックスドライバ１３７は、ＧＤＩ１３２により生成されたグラフィックス描画コマンド及びＧＤＩ１３２から通知された印刷条件の設定内容に基づいて、ＧＤＩ１３２を介してプリントプロセッサ１３６から供給された印刷データから、プリンタ２００が解釈できるＰＤＬデータを生成する。
【０１００】
ランゲージモニタ１３８は、当該ホストコンピュータ１００からプリンタ２００にＰＤＬデータを伝送するために使用されるインターフェースを経由して、プリンタグラフィックスドライバ１３７から供給されたＰＤＬデータをプリンタ２００に供給（送信）する。
【０１０１】
そして、プリンタ２００（例えばＣＰＵ２０１）は、ランゲージモニタ１３８から供給されたＰＤＬデータを解釈し、印刷画像データを用紙上に印刷出力する処理を行う。
【０１０２】
次に、ホストコンピュータ１００による前述したＸＰＳプリントパスを用いた印刷制御機能の機能構成について説明を行う。
【０１０３】
図４は、本発明の実施形態に係る印刷制御システム１０のホストコンピュータ１００によるＸＰＳプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。ここで、図４においては、図３に示す構成と同様の機能を有する構成については、同じ符号を付している。
【０１０４】
ホストコンピュータ１００には、ＸＰＳプリントパスを用いた際の印刷制御機能として、図４に示すように、アプリケーション１３１、ＷＰＦ（Ｗｉｎｄｏｗｓ＿Ｐｒｅｓｅｎｔａｔｉｏｎ＿Ｆｏｕｎｄａｔｉｏｎ）印刷サポート１４１、ユーザインターフェースドライバ１３３、スプーラ１３４、ＸＰＳスプールファイル１４２、フィルタパイプラインマネージャ１４３、レイアウトフィルタ１４４、レンダリングフィルタ１４５及びランゲージモニタ１３８が構成される。
【０１０５】
ここで、アプリケーション１３１、ＷＰＦ印刷サポート１４１、ユーザインターフェースドライバ１３３、スプーラ１３４、フィルタパイプラインマネージャ１４３、レイアウトフィルタ１４４及びレンダリングフィルタ１４５は、例えば、図１に示すＣＰＵ１０１とＲＯＭ１０３或いは外部メモリ１１１に記憶されているプログラムとから構成される。また、ＸＰＳスプールファイル１４２は、例えば、図１に示す外部メモリ１１１に構成される。また、ランゲージモニタ１３８は、例えば、図１に示すＣＰＵ１０１とＲＯＭ１０３或いは外部メモリ１１１に記憶されているプログラム、並びに、通信Ｉ／Ｆ１０８から構成される。
【０１０６】
アプリケーション１３１は、ＷＰＦ印刷サポート１４１を介してＸＰＳデータを作成する処理を行う。また、アプリケーション１３１は、文書や写真画像等のドキュメント、印刷条件、描画命令をＸＰＳデータに対して設定する処理を行う。以下、図４の説明等において、ＸＰＳデータに含まれている文書や写真画像等のドキュメント及び描画命令を総称して「印刷データ」と称する。さらに、アプリケーション１３１は、ＷＰＦ印刷サポート１４１を介して印刷実行を指示する。
【０１０７】
ＷＰＦ印刷サポート１４１は、アプリケーション１３１からの指示に基づき、ＸＰＳデータを構成（作成）する処理を行う。また、ＷＰＦ印刷サポート１４１は、当該ＸＰＳデータから印刷条件の設定内容を取り出して、ユーザインターフェースドライバ１３３に通知する処理を行う。また、ＷＰＦ印刷サポート１４１は、ユーザインターフェースドライバ１３３が確定した印刷条件の設定内容をＸＰＳデータに設定する処理を行う。さらに、ＷＰＦ印刷サポート１４１は、ＸＰＳデータをスプーラ１３４に通知する処理を行う。
【０１０８】
ユーザインターフェースドライバ１３３は、ＷＰＦ印刷サポート１４１から通知された印刷条件をプリンタ２００に適合する内容に変更し、最終的な印刷条件を確定する処理を行う。さらに、ユーザインターフェースドライバ１３３は、最終的に確定した印刷条件をＷＰＦ印刷サポート１４１に通知する処理を行う。
【０１０９】
スプーラ１３４は、ＷＰＦ印刷サポート１４１から通知されたＸＰＳデータをＸＰＳスプールファイル１４２に格納する。
【０１１０】
フィルタパイプラインマネージャ１４３は、まず、スプーラ１３４を介してＸＰＳスプールファイル１４２に格納されたＸＰＳデータを取得する。そして、フィルタパイプラインマネージャ１４３は、取得したＸＰＳデータをレイアウトフィルタ１４４及びレンダリングフィルタ１４５を介してプリンタ２００で印刷出力可能なＰＤＬデータに変換する処理を行う。
【０１１１】
レイアウトフィルタ１４４は、ＸＰＳデータ内の印刷データやページ構成を編集する処理を行う。
【０１１２】
レンダリングフィルタ１４５は、レイアウトフィルタ１４４により編集されたＸＰＳデータ内の印刷データをプリンタ２００で印刷出力可能なＰＤＬデータに変換する処理を行う。ただし、本発明の実施形態では、ＸＰＳデータをプリントデータとして用い、ＸＰＳデータをプリンタ２００に送信して、プリンタ２００でＸＰＳデータから描画する画像データを生成するため、レンダリングフィルタ１４５は使用されない。つまり、このレンダリングフィルタ１４５を通さずに処理がされる（ＸＰＳデータダイレクトプリント）。そのため、レンダリングフィルタ１４５を備えないようにすることも可能である。
【０１１３】
ランゲージモニタ１３８は、プリンタ２００と双方向の通信を行い、プリンタ２００の情報を取得してＣＲＴ１１０に表示する処理を行う。また、ランゲージモニタ１３８は、フィルタパイプラインマネージャ１４３から通知されたＸＰＳデータをプリンタ２００に供給する。なお、ランゲージモニタ１３８は、プリンタ２００が備えるメモリ容量や、エンジンコントローラの構成により異なる転送方法を採用することができる。
【０１１４】
ここで、前述したＸＰＳデータに含まれるパーツデータについて再度説明する。
ＸＰＳデータには、前述したように、以下のａ）〜ｆ）に示すパーツが存在し、それぞれ、以下のような参照を有する。
【０１１５】
ａ）＿ｒｅｌｓ／．ｒｅｌｓ：
文書の開始点となるパーツである。後述するｂ）ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅへの参照を有する。
【０１１６】
ｂ）ＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（ＦＤＳ）：
１つの文書の構成情報が記述されるパーツである。後述するｃ）ＦｉｘｅｄＤｏｃｕｍｅｎｔへの参照を有する。なお、１つのデータは、複数のドキュメントを有することができる。即ち、ＦＤＳは、複数のＦｉｘｅｄＤｏｃｕｍｅｎｔへの参照を有することができる。
【０１１７】
ｃ）ＦｉｘｅｄＤｏｃｕｍｅｎｔ（ＦＤ）：
１つのドキュメントに存在する複数のページをページ順に並べて束ねるためのパーツである。即ち、１つのドキュメントの構成情報が記述されるパーツであり、後述するｄ）ＦｉｘｅｄＰａｇｅへの参照を有する。なお、１つのドキュメントは、複数のページを有することができる。即ち、ＦＤは、複数のＦｉｘｅｄＰａｇｅへの参照を有することができる。
【０１１８】
ｄ）ＦｉｘｅｄＰａｇｅ（ＦＰ）：
１ページの描画内容が記述されたパーツである。必要に応じて、イメージファイルやフォントファイルなどの外部リソースファイルへの参照を有することができる。例えば、当該ページにイメージの描画が存在する場合には、当該イメージファイルへの参照を有することになる。
【０１１９】
ｅ）ＦｉｘｅｄＰａｇｅ．ｒｅｌｓ（ＦＰ．ｒｅｌｓ）：
ｄ）ＦｉｘｅｄＰａｇｅに関連するパーツへの参照情報が記述されたパーツである。参照先としては、例えば、イメージファイル、フォントファイル、印刷設定情報が記述された後述するプリントチケットファイルなどである。
【０１２０】
ｆ）プリントチケット：
予め定義されたＸＭＬスキーマの形式に従って記述された印刷条件の設定が記述されたファイルである。以下、印刷設定を行うために予め定義されたＸＭＬスキーマの形式を「プリントスキーマ」と称し、印刷スキーマに従って印刷条件が記述されているＸＭＬファイルを「プリントチケット」と称する。なお、プリントチケットを言い換えると、印刷に用いられる属性を記憶する属性情報ファイルである。
【０１２１】
ここで、ＸＰＳデータに包含される各パーツの参照関係の論理的構造については、前述したように、図２４にその一例が示され、また、ＸＭＬファイルの記述に基づいた参照関係については、前述したように、図２５にその一例が示されている。
【０１２２】
続いて、ＸＰＳプリントパスを用いた印刷制御機能における一連の動作について説明する。
【０１２３】
まず、アプリケーション１３１は、ユーザからの操作指示に従って、任意の文書又は写真画像等のドキュメントを読み込む処理を行う。なお、前述した任意の文書には、予め作成されていたＸＰＳデータも含まれる。
【０１２４】
続いて、アプリケーション１３１は、ユーザからの操作指示に従って、ＸＰＳデータの作成を行い、文書や写真画像等のドキュメント、印刷条件、描画命令をＸＰＳデータに設定する。なお、アプリケーション１３１は、予め作成されていたＸＰＳデータを読み込んだ場合には、新たにＸＰＳデータを作成することはなく、読み込んだＸＰＳデータに含まれる印刷条件や描画命令をユーザからの操作指示に従って編集すればよい。
【０１２５】
続いて、アプリケーション１３１は、ユーザからの操作指示に従って、ＸＰＳデータを用いて印刷実行の指示を行う。
【０１２６】
ＷＰＦ印刷サポート１４１は、アプリケーション１３１から印刷実行の指示を受けると、ＸＰＳデータ内のプリントチケットを取り出し、印刷条件の設定内容として当該プリントチケットをユーザインターフェースドライバ１３３に通知する。
【０１２７】
ユーザインターフェースドライバ１３３は、ＷＰＦ印刷サポート１４１からプリンタ２００での印刷条件の設定内容の通知を受けると、通知された印刷条件の設定内容を参照して、プリンタ２００において印刷出力可能な設定内容であるか否かを判断する。ここで、ユーザインターフェースドライバ１３３は、ＷＰＦ印刷サポート１４１から通知された印刷条件の設定内容が、プリンタ２００において印刷出力可能な設定内容になっていないと判断した場合には、プリンタ２００において印刷出力可能な設定内容になるように、印刷条件の設定内容を更新（一部更新も含む）し、印刷条件を確定する。続いて、ユーザインターフェースドライバ１３３は、確定した印刷条件によりプリントチケットを更新し、ＷＰＦ印刷サポート１４１に通知する。
【０１２８】
ＷＰＦ印刷サポート１４１は、ユーザインターフェースドライバ１３３から通知されたプリントチケットをＸＰＳデータに設定し、当該ＸＰＳデータをスプーラ１３４に通知する。
【０１２９】
スプーラ１３４は、ＷＰＦ印刷サポート１４１からＸＰＳデータの通知を受けると、通知されたＸＰＳデータをＸＰＳスプールファイル１４２に格納する。なお、ＷＰＦ印刷サポート１４１を介さずにアプリケーション１３１からスプーラ１３４に任意のＸＰＳデータを通知することも可能である。つまり、ＭＸＤＷで作成したＸＰＳデータを通知することも可能である。続いて、スプーラ１３４は、フィルタパイプラインマネージャ１４３に対して印刷開始のイベントを通知する。
【０１３０】
フィルタパイプラインマネージャ１４３は、スプーラ１３４から印刷開始のイベントの通知を受けると、スプーラ１３４を介してＸＰＳスプールファイル１４２に格納されているＸＰＳデータを取得する。続いて、フィルタパイプラインマネージャ１４３は、当該ＸＰＳデータをレイアウトフィルタ１４４に通知する。
【０１３１】
レイアウトフィルタ１４４は、通知されたＸＰＳデータから印刷データ及びプリントチケットを取得する。続いて、レイアウトフィルタ１４４は、プリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データの編集及びＸＰＳデータのページ構成の編集を行う。なお、印刷データやページ構成の編集内容には、ビットマップの合成（ウォーターマーク）、ページ合成（割付）、ページ順序の変更（逆順）等が含まれる。続いて、レイアウトフィルタ１４４は、印刷データやページ構成の編集を終えた後のＸＰＳデータをフィルタパイプラインマネージャ１４３に通知する。
【０１３２】
続いて、フィルタパイプラインマネージャ１４３は、レイアウトフィルタ１４４から通知されたＸＰＳデータをレンダリングフィルタ１４５に通知する。
【０１３３】
レンダリングフィルタ１４５は、フィルタパイプラインマネージャ１４３から通知されたＸＰＳデータから、印刷データ及びプリントチケットを取得する。続いて、レンダリングフィルタ１４５は、取得したプリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データからプリンタ２００が解釈できるＰＤＬデータを生成し、当該ＰＤＬデータをフィルタパイプラインマネージャ１４３に通知する。
【０１３４】
続いて、フィルタパイプラインマネージャ１４３は、レンダリングフィルタ１４５から通知されたＰＤＬデータをランゲージモニタ１３８に供給する。
【０１３５】
ランゲージモニタ１３８は、当該ホストコンピュータ１００からプリンタ２００にＰＤＬデータを伝送するために使用されるインターフェースを経由して、フィルタパイプラインマネージャ１４３から供給されたＰＤＬデータをプリンタ２００に供給（送信）する。
【０１３６】
そして、プリンタ２００（例えばＣＰＵ２０１）は、ランゲージモニタ１３８から供給されたＰＤＬデータを解釈し、印刷画像データを用紙上に印刷出力する処理を行う。この本実施形態における処理は、特に、記憶領域が少ないプリンタ２００において、ＸＰＳデータをＰＤＬデータとして処理する場合に有効である。
【０１３７】
次に、ホストコンピュータ１００によるＸＰＳプリントパスを用いた印刷制御処理の処理手順について説明する。
【０１３８】
図５は、本発明の実施形態に係る印刷制御システム１０のホストコンピュータ１００によるＸＰＳプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。なお、以下の説明では、主として、レイアウトフィルタ１４４における処理について記載する。
【０１３９】
まず、図５のステップＳ１０１において、フィルタパイプラインマネージャ１４３は、スプーラ１３４から印刷開始のイベントの通知を受けると、スプーラ１３４を介して、ＸＰＳスプールファイル１４２に格納されているＭＸＤＷで作成されたＸＰＳデータを取得する処理を行う。そして、フィルタパイプラインマネージャ１４３は、取得したＸＰＳデータをレイアウトフィルタ１４４に通知する。
【０１４０】
続いて、ステップＳ１０２において、レイアウトフィルタ１４４は、フィルタパイプラインマネージャ１４３から通知されたＸＰＳデータを解析して、当該ＸＰＳデータ内のプリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データの編集及びＸＰＳデータのページ構成の編集を行う。ここで、レイアウトフィルタ１４４は、記憶領域が少ないプリンタ２００で処理可能なＸＰＳデータに編集する。
【０１４１】
続いて、ステップＳ１０３において、レイアウトフィルタ１４４は、編集（生成）を終えた後のＸＰＳデータをフィルタパイプラインマネージャ１４３に通知する処理を行う。
【０１４２】
その後、フィルタパイプラインマネージャ１４３は、レイアウトフィルタ１４４から通知されたＸＰＳデータをレンダリングフィルタ１４５に通知する処理を行う。そして、レンダリングフィルタ１４５は、フィルタパイプラインマネージャ１４３から通知されたＸＰＳデータから、プリンタ２００が解釈できるＰＤＬデータを生成し、当該ＰＤＬデータをフィルタパイプラインマネージャ１４３に通知する。ここで、本実施形態に係るプリンタ２００は、ＸＰＳデータをプリントデータとして使用するものであるため、レンダリングフィルタ１４５では、レイアウトフィルタ１４４で処理されたＸＰＳデータに対して、特に処理は行わない。
【０１４３】
そして、フィルタパイプラインマネージャ１４３は、レンダリングフィルタ１４５から通知されたプリントデータ（ＸＰＳデータ）をランゲージモニタ１３８に供給する。そして、ランゲージモニタ１３８は、当該ホストコンピュータ１００からプリンタ２００にＰＤＬデータを伝送するために使用されるインターフェースを経由して、フィルタパイプラインマネージャ１４３から供給されたプリントデータ（ＸＰＳデータ）をプリンタ２００に送信する（送信ステップ）。なお、プリンタ２００へプリントデータ（ＸＰＳデータ）を送信する際には、プリンタ２００で即時に印刷処理を実行できるようにするために、ＸＰＳデータを細分化データ（パケット）単位にしてプリンタ２００に送信する。つまり、プリンタ２００は、データストリームしながら、印刷を実行することが可能となる。
【０１４４】
次に、図５のステップＳ１０２におけるＸＰＳデータの解析・編集処理の詳細について説明する。
図６は、図５のステップＳ１０２におけるＸＰＳデータの解析・編集処理の詳細な処理手順の一例を示すフローチャートである。
【０１４５】
図５のステップＳ１０２の処理では、まず、図６のステップＳ２０１において、レイアウトフィルタ１４４は、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在するか否かを判断する。ここで、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在するか否かの判断は、この「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータは前述したようにＸＭＬ形式であるので、ルート要素の終了タグが未処理であるか否かによって判断する。具体的に、例えば図２７に示すＸＰＳファイルでは、２７０２に記述されている、＜／Ｒｅｌａｔｉｏｎｓｈｉｐｓ＞の終了要素を検出したところで、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータの処理終了と判断する。なお、ルート要素の終了タグは、最後のピースに必ず存在する。また、インターリーブされていない場合には、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータは１つしか存在しない。以降、ＸＭＬ形式のパーツデータに関して、全て解析（処理）したか否かの判断は、同様の方法をとるものとする。
【０１４６】
ステップＳ２０１の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図６におけるフローチャートの処理を終了する。即ち、図５のステップＳ１０２の処理を終了する。
【０１４７】
一方、ステップＳ２０１の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在する場合には、ステップＳ２０２に進む。
【０１４８】
ステップＳ２０２に進むと、レイアウトフィルタ１４４は、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータを全て取得したか否かを判断する。ここで、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータを全て取得したか否かの判断は、インターリーブされている場合には、後述するＸＰＳデータ内のパーツデータ（もしくはピースデータ）の検索時に最後のピース名が「／＿ｒｅｌｓ／．ｒｅｌｓ／［ｉ］．ｌａｓｔ．ｐｉｅｃｅ」（ｉは０で始まる通し番号であり、１つのパーツが３つにインターリーブ（分割）処理されるのであれば、最後のピースのｉは２となる）となっているので、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒの内容から当該ピースデータを取得し、前記ピース名のデータを取得した際に、全て取得したと判断する。以降、パーツデータを全て取得したか否かの判断は、同様の方法をとるものとする。また、インターリーブされていない場合には、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータは１データのみしか存在しないので、後述するステップＳ２０３の処理は１回しか行われない。
【０１４９】
ステップＳ２０２の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータの全てを取得していない場合には、ステップＳ２０３に進む。
【０１５０】
ステップＳ２０３に進むと、レイアウトフィルタ１４４は、次の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータまたはピースデータを検索し、これを伸長して取得する。この際、本実施形態では、当該検索の方法として、Ｌｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒをデータの先頭から検索する方法を採用するものとする。また、このとき検索するＬｏｃａｌ＿Ｆｉｌｅ＿Ｈｅａｄｅｒ内のデータ名としては、「＿ｒｅｌｓ／．ｒｅｌｓ」或いはインターリーブされている場合の「＿ｒｅｌｓ／．ｒｅｌｓ／［ｉ］．ｐｉｅｃｅ"である。以降、特に言及が無い限り、ＸＰＳデータ内のパーツデータ等の検索方法は、この方法を採用するものとする。また、本実施形態では、当該伸張の方法として、一般的なＺＩＰデータの伸張方法を採用するものとし、伸張したデータはディレクトリ構成を保持したまま各種のファイルを外部メモリ１１１に書き出す形態で保存する。以降、ＸＰＳデータ内のパーツデータ等の伸長方法は、この方法を採用するものとする。
【０１５１】
ステップＳ２０３の処理が終了した場合、或いは、ステップＳ２０２において未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータを全て取得したと判断された場合には、ステップＳ２０４に進む。
【０１５２】
続いて、ステップＳ２０４において、レイアウトフィルタ１４４は、取得した次の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＤＳのデータ名を取得する処理を行う。ここで、前述したように、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）は、ＸＭＬ形式で記述されたファイルであり、本実施形態では、当該解析の方法として、一般的なＸＭＬファイルの解析方法を採用するものとする。なお、以後、ＸＭＬ形式で記述されたファイルを解析する場合は、本例と同様に、一般的なＸＭＬファイルの解析方法を採用するものとする。
【０１５３】
また、レイアウトフィルタ１４４は、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）をＸＰＳデータに追加する処理を行う。即ち、ここでの処理は、既に圧縮されている「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）を、元のＸＰＳデータを利用して新たなＸＰＳデータを生成するために当該元のＸＰＳデータに追加する処理である。このＸＰＳデータに追加された「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）は、例えば、図７の７０１のようになる。ここで、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）は、初めのパーツデータ（ピースデータ）であるため、図７に示すように、ＸＰＳデータの先頭に配置（追加）される。
【０１５４】
続いて、ステップＳ２０５において、レイアウトフィルタ１４４は、ステップＳ２０４でＦＤＳのデータ名を取得できたか否かを判断する。
【０１５５】
ステップＳ２０５の判断の結果、ステップＳ２０４でＦＤＳのデータ名を取得できた場合には、ステップＳ２０６に進む。
【０１５６】
ステップＳ２０６に進むと、レイアウトフィルタ１４４は、当該ＦＤＳの処理を行う。
【０１５７】
ステップＳ２０６の処理が終了した場合、或いは、ステップＳ２０５においてＦＤＳのデータ名を取得できなかったと判断された場合には、ステップＳ２０１に戻り、ステップＳ２０１以降の処理を再度行う。
【０１５８】
以上の図６に示すステップＳ２０１〜Ｓ２０６の処理を経ることにより、図５のステップＳ１０２におけるＸＰＳデータの解析・編集処理が行われる。
【０１５９】
次に、図６のステップＳ２０６におけるＦＤＳの処理の詳細について説明する。
図８は、図６のステップＳ２０６におけるＦＤＳの処理の詳細な処理手順の一例を示すフローチャートである。
【０１６０】
図６のステップＳ２０６の処理では、まず、図８のステップＳ３０１において、レイアウトフィルタ１４４は、未処理のＦＤＳパーツデータが存在するか否かを判断する。
【０１６１】
ステップＳ３０１の判断の結果、未処理のＦＤＳパーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図８におけるフローチャートの処理を終了する。即ち、図６のステップＳ２０６の処理を終了する。
【０１６２】
一方、ステップＳ３０１の判断の結果、未処理のＦＤＳパーツデータが存在する場合には、ステップＳ３０２に進む。
【０１６３】
ステップＳ３０２に進むと、レイアウトフィルタ１４４は、未処理のＦＤＳパーツデータを全て取得したか否かを判断する。
【０１６４】
ステップＳ３０２の判断の結果、未処理のＦＤＳパーツデータの全てを取得していない場合には、ステップＳ３０３に進む。
【０１６５】
ステップＳ３０３に進むと、レイアウトフィルタ１４４は、次のＦＤＳパーツデータまたはピースデータを検索し、これを伸長して取得する。
【０１６６】
ステップＳ３０３の処理が終了した場合、或いは、ステップＳ３０２において未処理のＦＤＳパーツデータを全て取得したと判断された場合には、ステップＳ３０４に進む。
【０１６７】
続いて、ステップＳ３０４において、レイアウトフィルタ１４４は、取得した次のＦＤＳパーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＤのデータ名を１つ取得する処理を行う。
【０１６８】
また、レイアウトフィルタ１４４は、ＦＤＳパーツデータ（ピースデータ）をＸＰＳデータに追加する処理を行う。即ち、ここでの処理は、既に圧縮されているＦＤＳパーツデータ（ピースデータ）を、元のＸＰＳデータのＦＤＳパーツデータ（ピースデータ）を利用して新たなＸＰＳデータを生成するために当該元のＸＰＳデータに追加する処理である。このＸＰＳデータに追加されたＦＤＳパーツデータ（ピースデータ）は、例えば、図７の７０２のようになる。ここで、ＦＤＳパーツデータ（ピースデータ）は、図７に示すように、図６のステップＳ２０４の際に追加された「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）である７０１の後に配置（追加）される。
【０１６９】
続いて、ステップＳ３０５において、レイアウトフィルタ１４４は、ステップＳ３０４でＦＤのデータ名を取得できたか否かを判断する。
【０１７０】
ステップＳ３０５の判断の結果、ステップＳ３０４でＦＤのデータ名を取得できた場合には、ステップＳ３０６に進む。
【０１７１】
ステップＳ３０６に進むと、レイアウトフィルタ１４４は、当該ＦＤの処理を行う。
【０１７２】
ステップＳ３０６の処理が終了した場合、或いは、ステップＳ３０５においてＦＤのデータ名を取得できなかったと判断された場合には、ステップＳ３０１に戻り、ステップＳ３０１以降の処理を再度行う。
【０１７３】
以上の図８に示すステップＳ３０１〜Ｓ３０６の処理を経ることにより、図６のステップＳ２０６におけるＦＤＳの処理が行われる。
【０１７４】
次に、図８のステップＳ３０６におけるＦＤの処理の詳細について説明する。
図９は、図８のステップＳ３０６におけるＦＤの処理の詳細な処理手順の一例を示すフローチャートである。
【０１７５】
図８のステップＳ３０６の処理では、まず、図９のステップＳ４０１において、レイアウトフィルタ１４４は、未処理のＦＤパーツデータが存在するか否かを判断する。
【０１７６】
ステップＳ４０１の判断の結果、未処理のＦＤパーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図９におけるフローチャートの処理を終了する。即ち、図８のステップＳ３０６の処理を終了する。
【０１７７】
一方、ステップＳ４０１の判断の結果、未処理のＦＤパーツデータが存在する場合には、ステップＳ４０２に進む。
【０１７８】
ステップＳ４０２に進むと、レイアウトフィルタ１４４は、未処理のＦＤパーツデータを全て取得したか否かを判断する。
【０１７９】
ステップＳ４０２の判断の結果、未処理のＦＤパーツデータの全てを取得していない場合には、ステップＳ４０３に進む。
【０１８０】
ステップＳ４０３に進むと、レイアウトフィルタ１４４は、次のＦＤパーツデータまたはピースデータを検索し、これを伸長して取得する。
【０１８１】
ステップＳ４０３の処理が終了した場合、或いは、ステップＳ４０２において未処理のＦＤパーツデータを全て取得したと判断された場合には、ステップＳ４０４に進む。
【０１８２】
続いて、ステップＳ４０４において、レイアウトフィルタ１４４は、取得した次のＦＤパーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＰのデータ名を１つ取得する処理を行う。
【０１８３】
また、レイアウトフィルタ１４４は、ＦＤパーツデータ（ピースデータ）をＸＰＳデータに追加する処理を行う。即ち、ここでの処理は、既に圧縮されているＦＤパーツデータ（ピースデータ）を、元のＸＰＳデータのＦＤパーツデータ（ピースデータ）を利用して新たなＸＰＳデータを生成するために当該元のＸＰＳデータに追加する処理である。このＸＰＳデータに追加されたＦＤパーツデータ（ピースデータ）は、例えば、図７の７０３のようになる。ここで、ＦＤパーツデータ（ピースデータ）は、図７に示すように、図８のステップＳ３０４の際に追加されたＦＤＳパーツデータ（ピースデータ）である７０２の後に配置（追加）される。
【０１８４】
続いて、ステップＳ４０５において、レイアウトフィルタ１４４は、ステップＳ４０４でＦＰのデータ名を取得できたか否かを判断する。
【０１８５】
ステップＳ４０５の判断の結果、ステップＳ４０４でＦＰのデータ名を取得できた場合には、ステップＳ４０６に進む。
【０１８６】
ステップＳ４０６に進むと、レイアウトフィルタ１４４は、当該ＦＰの処理を行う。
【０１８７】
ステップＳ４０６の処理が終了した場合、或いは、ステップＳ４０５の判断の結果、ステップＳ４０４でＦＰのデータ名を取得できなかった場合には、ステップＳ４０１に戻り、ステップＳ４０１以降の処理を再度行う。
【０１８８】
以上の図９に示すステップＳ４０１〜Ｓ４０６の処理を経ることにより、図８のステップＳ３０６におけるＦＤの処理が行われる。
【０１８９】
次に、図９のステップＳ４０６におけるＦＰの処理の詳細について説明する。
図１０は、図９のステップＳ４０６におけるＦＰの処理の詳細な処理手順の一例を示すフローチャートである。
【０１９０】
図９のステップＳ４０６の処理では、まず、図１０のステップＳ５０１において、レイアウトフィルタ１４４は、ＦＰパーツデータを検索し、これを伸長して取得する。この際、ＭＸＤＷで作成されたＦＰは、通常インターリーブされていない。
【０１９１】
続いて、ステップＳ５０２において、レイアウトフィルタ１４４は、ステップＳ５０１で取得したＦＰパーツデータを解析して、参照する外部リソースの参照回数を求めて、外部リソース参照リスト（外部リソース参照回数リスト）の作成処理を行う。
【０１９２】
続いて、ステップＳ５０３において、レイアウトフィルタ１４４は、プリントチケットを編集して、これをＸＰＳデータの中に含める処理を行う。
【０１９３】
続いて、ステップＳ５０４において、レイアウトフィルタ１４４は、ＦＰの分割処理を行う。
【０１９４】
以上の図１０に示すステップＳ５０１〜Ｓ５０４の処理を経ることにより、図９のステップＳ４０６におけるＦＰの処理が行われる。
【０１９５】
次に、図１０のステップＳ５０２における外部リソース参照回数リスト作成処理の詳細について説明する。
図１１は、図１０のステップＳ５０２における外部リソース参照回数リスト作成処理の詳細な処理手順の一例を示すフローチャートである。
【０１９６】
図１０のステップＳ５０２の処理では、まず、図１１のステップＳ６０１において、レイアウトフィルタ１４４は、図１０のステップＳ５０１の処理で取得したＦＰパーツデータを解析して、描画命令を検出（抽出）する処理を行う。
【０１９７】
続いて、ステップＳ６０２において、レイアウトフィルタ１４４は、ステップＳ６０１で検出（抽出）した描画命令に、イメージデータやフォントデータ等への外部リソースの参照が含まれているか否かを判断する。
【０１９８】
ステップＳ６０２の判断の結果、ステップＳ６０１で検出した描画命令に外部リソースの参照が含まれている場合には、ステップＳ６０３に進む。
【０１９９】
ステップＳ６０３に進むと、レイアウトフィルタ１４４は、ステップＳ６０２で検出した外部リソースに係る外部リソース名が既に外部参照リソースリストに含まれているか否かを判断する。
【０２００】
ここで、外部参照リソースリストについて説明を行う。
図１２は、本発明の実施形態を示し、外部参照リソースリストの一例を示す模式図である。図１２に示す外部参照リソースリストは、例えば、上述した図３３に示すようなＦＰを解析した場合に作成されるものである。
【０２０１】
この図１２に示す外部参照リソースリストは、レイアウトフィルタ１４４により作成されて、例えば、外部メモリ１１１に保存されるものである。また、図１２に示すように、外部参照リソースリストには、各外部リソースごとに、外部リソース名、参照回数、及び、参照済みフラグの各項目が設定される。参照済みフラグは、図１０のステップＳ５０４におけるＦＰ分割処理で使用される領域である。
【０２０２】
ここで、再び、図１１の説明に戻る。
ステップＳ６０３の判断の結果、ステップＳ６０２で検出した外部リソースに係る外部リソース名が既に図１２に示す外部参照リソースリストに含まれている場合には、ステップＳ６０４に進む。
【０２０３】
ステップＳ６０４に進むと、レイアウトフィルタ１４４は、図１２に示す外部参照リソースリスト内の当該外部リソース名の参照回数をインクリメントする処理を行う。
【０２０４】
一方、ステップＳ６０３の判断の結果、ステップＳ６０２で検出した外部リソースに係る外部リソース名が図１２に示す外部参照リソースリストに含まれていない場合には、ステップＳ６０５に進む。
【０２０５】
ステップＳ６０５に進むと、レイアウトフィルタ１４４は、図１２に示す外部参照リソースリストに、新規に検出した外部リソース名を追加し、その参照回数を１に設定する処理を行う。
【０２０６】
ステップＳ６０４もしくはステップＳ６０５の処理が終了した場合、または、ステップＳ６０２において描画命令に外部リソースの参照が含まれていないと判断された場合には、ステップＳ６０６に進む。
【０２０７】
ステップＳ６０６に進むと、レイアウトフィルタ１４４は、現在処理中のＦＰパーツデータの最後まで解析を行ったか否かを判断する。この判断の結果、現在処理中のＦＰパーツデータの最後までは未だ解析を行っていない場合には、ステップＳ６０１に戻り、ステップＳ６０１以降の処理を再度行う。
【０２０８】
一方、ステップＳ６０６の判断の結果、現在処理中のＦＰパーツデータの最後まで解析を行った場合には、図１１におけるフローチャートの処理を終了する。即ち、図１０のステップＳ５０２の処理を終了する。
【０２０９】
次に、図１０のステップＳ５０３におけるプリントチケット編集処理の詳細について説明する。
図１３は、図１０のステップＳ５０３におけるプリントチケット編集処理の詳細な処理手順の一例を示すフローチャートである。
【０２１０】
図１０のステップＳ５０３の処理では、まず、図１３のステップＳ７０１において、レイアウトフィルタ１４４は、ＦＰ（ＦｉｘｅｄＰａｇｅ）パーツデータに関連付けられたプリントチケットが存在するか否かを判断する。
【０２１１】
ステップＳ７０１の判断の結果、ＦＰパーツデータに関連付けられたプリントチケットが存在しない場合には、ステップＳ７０２に進む。
【０２１２】
ステップＳ７０２に進むと、レイアウトフィルタ１４４は、プリントチケットを作成して、これをＸＰＳデータの中に含める処理を行う。
【０２１３】
ステップＳ７０２の処理が終了した場合、或いは、ステップＳ７０１においてＦＰパーツデータに関連付けられたプリントチケットが存在すると判断された場合には、ステップＳ７０３に進む。
【０２１４】
ステップＳ７０３に進むと、レイアウトフィルタ１４４は、図１０のステップＳ５０２で作成した外部参照リソースリストの内容を、図１４に示すように、＜ＰｒｉｎｔＴｉｃｋｅｔ＞ルートタグの１階層下の子要素として、＜Ｆｅａｔｕｒｅ＞タグ１４０１を挿入する。
【０２１５】
ここで、図１４は、本発明の実施形態を示し、プリントチケットの一例を示す模式図である。上述したように、レイアウトフィルタ１４４は、図１０のステップＳ５０２で作成した外部参照リソースリストの内容を、＜Ｆｅａｔｕｒｅ＞タグ１４０１に反映する。ここで反映されるのは、図１２に示す外部参照リソースリストの「外部リソース名」と「参照回数」の情報である。具体的に、図１４に示す＜Ｆｅａｔｕｒｅ＞タグ１４０１の１４０２に「外部リソース名」の情報が反映され、＜Ｆｅａｔｕｒｅ＞タグ１４０１の１４０３に「参照回数」の情報が反映されている。
【０２１６】
ここで、＜Ｆｅａｔｕｒｅ＞タグ１４０１の挿入には、ＤＯＭ等のインターフェースを備えた一般的なＸＭＬ解析用モジュールを使用する。また、外部参照リソースリストの情報のプリントチケット内における表現の方法は、図１２に示す外部参照リソースリストの情報を一意に復元することが可能であれば、どのような方法であってもよい。
【０２１７】
以上の図１３に示すステップＳ７０１〜Ｓ７０３の処理を経ることにより、図１０のステップＳ５０３におけるプリントチケット編集処理が行われる。
【０２１８】
次に、図１０のステップＳ５０４におけるＦＰの分割処理の詳細について説明する。
図１５は、図１０のステップＳ５０４におけるＦＰ分割処理の詳細な処理手順の一例を示すフローチャートである。
【０２１９】
図１０のステップＳ５０４の処理では、まず、図１５のステップＳ８０１において、レイアウトフィルタ１４４は、プリンタ２００の限界メモリ量を取得する処理を行う。この限界メモリ量の値は、プリンタドライバ内に固定値として保持されている。
【０２２０】
続いて、ステップＳ８０２において、レイアウトフィルタ１４４は、例えば外部メモリ１１１の記憶領域に、外部リソースのメモリ量（合計）に相当する領域を確保し、その領域の値（外部リソースメモリ量合計）を０に設定する。
【０２２１】
続いて、ステップＳ８０３において、レイアウトフィルタ１４４は、例えば外部メモリ１１１の記憶領域に、処理中のＦＰデータのメモリ量（合計）に相当する領域を確保し、その領域の値（処理ＦＰメモリ量合計）を０に設定する。
【０２２２】
ステップＳ８０２及びＳ８０３で確保した領域は、ＦＰの分割処理中に使用される。
【０２２３】
続いて、ステップＳ８０４において、レイアウトフィルタ１４４は、描画命令を１つ検出（取得）する処理を行う。
【０２２４】
続いて、ステップＳ８０５において、レイアウトフィルタ１４４は、ステップＳ８０４の検出開始時から検出終了時までのＸＭＬデータ量を、処理ＦＰメモリ量合計に加算する処理を行う。
【０２２５】
続いて、ステップＳ８０６において、レイアウトフィルタ１４４は、ステップＳ８０４で検出した描画命令が外部リソースを参照するか否かを判断する。
【０２２６】
ステップＳ８０６の判断の結果、ステップＳ８０４で検出した描画命令が外部リソースを参照する場合には、ステップＳ８０７に進む。
【０２２７】
ステップＳ８０７に進むと、レイアウトフィルタ１４４は、ステップＳ８０６で検出した外部リソースが外部リソース参照リスト内に存在するか否かを判断する。ここで、外部リソースが外部リソース参照リスト内に存在しない場合は、既に、当該外部リソースがＸＰＳデータに追加されているということである。
【０２２８】
ステップＳ８０７の判断の結果、ステップＳ８０６で検出した外部リソースが外部リソース参照リスト内に存在する場合には、ステップＳ８０８に進む。
【０２２９】
ステップＳ８０８に進むと、レイアウトフィルタ１４４は、外部参照リソースリスト内の当該外部リソースの参照回数をデクリメントし、参照済みフラグをＯＮにする。
【０２３０】
続いて、ステップＳ８０９において、レイアウトフィルタ１４４は、外部参照リソースリスト内の当該外部リソースの参照回数が０であるか否かを判断する。
【０２３１】
ステップＳ８０９の判断の結果、外部参照リソースリスト内の当該外部リソースの参照回数が０である場合には、ステップＳ８１０に進む。
【０２３２】
ステップＳ８１０に進むと、レイアウトフィルタ１４４は、現在検出中の描画命令に基づいてＦＰの分割処理を行う。具体的には、ＦＰピースデータを伸張して、伸張されたデータから現在検出中の描画命令のところまでを抽出し、当該抽出したデータを分割したＦＰピースデータ（パーツデータ）として作成する。より、詳細には、前回ＦＰを分割した箇所より後から現在検出中の描画命令のところまででＦＰを分割し、これをＦＰピースデータ（パーツデータ）として作成する。そして、レイアウトフィルタ１４４は、作成したＦＰピースデータを圧縮してＸＰＳデータに追加する。
【０２３３】
ここで、ステップＳ８１０で作成されたＦＰピースデータは、初めは、図９のステップＳ４０４で追加されたＦＤパーツデータ（ピースデータ）の後であって、図７の７０４及び７０５が追加された後に、図７の７０６として配置され追加される。また、次に作成されたＦＰピースデータは、後工程であるステップＳ８１１で追加された外部リソースの後に、図７の７０９として配置され追加される。
【０２３４】
続いて、ステップＳ８１１において、レイアウトフィルタ１４４は、外部参照リソースリストを先頭から検索し、現在検出した外部リソースを、分割したＦＰピースデータ（例えば、図７の７０６）の直後に続けてＸＰＳデータに追加する。例えば、図７に示す例では、現在検出した外部リソースを、図７の７０７及び７０８として配置して追加する。
【０２３５】
続いて、ステップＳ８１２において、レイアウトフィルタ１４４は、外部参照リソースリストの先頭から現在検出した外部リソースまでを、当該外部参照リソースリストから削除する処理を行う。
【０２３６】
続いて、ステップＳ８１３において、レイアウトフィルタ１４４は、外部リソースメモリ量合計を０に設定する。
【０２３７】
続いて、ステップＳ８１４において、レイアウトフィルタ１４４は、処理ＦＰメモリ量合計を０に設定する。
【０２３８】
また、ステップＳ８０９の判断の結果、外部参照リソースリスト内の当該外部リソースの参照回数が０でない場合には、ステップＳ８１５に進む。
【０２３９】
ステップＳ８１５に進むと、レイアウトフィルタ１４４は、外部リソースメモリ量合計に、検出した外部リソースのメモリ量（具体的には、外部リソースの展開後のメモリ量）を加算する処理を行う。この際、加算する外部リソースの展開後のメモリ量は、ＺＩＰヘッダの中に記述されているのでそれを参照する。
【０２４０】
ステップＳ８１５の処理が終了した場合、ステップＳ８０６においてステップＳ８０４で検出した描画命令が外部リソースを参照しないと判断された場合、或いは、ステップＳ８０７においてステップＳ８０６で検出した外部リソースが外部リソース参照リスト内に存在しないと判断された場合には、ステップＳ８１６に進む。
【０２４１】
ステップＳ８１６に進むと、レイアウトフィルタ１４４は、処理ＦＰメモリ量合計と外部リソースメモリ量合計との合計が、ステップＳ８０１で取得したプリンタ２００の限界メモリ量を超えているか否かを判断する。
【０２４２】
ステップＳ８１６の判断の結果、処理ＦＰメモリ量合計と外部リソースメモリ量合計との合計が、ステップＳ８０１で取得したプリンタ２００の限界メモリ量を超えている場合には、ステップＳ８１７に進む。
【０２４３】
ステップＳ８１７に進むと、レイアウトフィルタ１４４は、ステップＳ８１０と同様の処理、即ち、現在検出中の描画命令に基づいてＦＰの分割を行い、当該分割により作成されたＦＰピースデータを圧縮してＸＰＳデータに追加する。なお、追加するＸＰＳデータは、ステップＳ８０１で取得したプリンタ２００の限界メモリ量を超えない位置で分割されたデータである。
【０２４４】
続いて、ステップＳ８１８に進むと、レイアウトフィルタ１４４は、外部参照リソースリストを先頭から検索し、参照済みフラグがＯＮになっている外部リソースを全て、ステップＳ８１７で追加したＦＰピースデータの直後に続けてＸＰＳデータに追加する。
【０２４５】
続いて、ステップＳ８１９において、レイアウトフィルタ１４４は、外部参照リソースリストを先頭から検索し、参照済みフラグがＯＮになっている外部リソースを全て、当該外部参照リソースリストから削除する処理を行う。
【０２４６】
続いて、ステップＳ８２０において、レイアウトフィルタ１４４は、ステップＳ８１３と同様の処理、即ち、外部リソースメモリ量合計を０に設定する。
【０２４７】
続いて、ステップＳ８２１において、レイアウトフィルタ１４４は、ステップＳ８１４と同様の処理、即ち、処理ＦＰメモリ量合計を０に設定する。
【０２４８】
ステップＳ８１４の処理が終了した場合、ステップＳ８２１の処理が終了した場合、或いは、ステップＳ８１６において処理ＦＰメモリ量合計と外部リソースメモリ量合計との合計がプリンタ２００の限界メモリ量を超えていないと判断された場合には、ステップＳ８２２に進む。
【０２４９】
ステップＳ８２２に進むと、レイアウトフィルタ１４４は、現在処理中のＦＰパーツデータの最後まで解析を行ったか否かを判断する。この判断の結果、現在処理中のＦＰパーツデータの最後までは未だ解析を行っていない場合には、ステップＳ８０４に戻り、ステップＳ８０４以降の処理を再度行う。
【０２５０】
一方、ステップＳ８２２の判断の結果、現在処理中のＦＰパーツデータの最後まで解析を行った場合には、ステップＳ８２３に進む。
【０２５１】
ステップＳ８２３に進むと、レイアウトフィルタ１４４は、ＸＰＳデータに追加されていない箇所（処理部分）を最後のＦＰピースデータとして、ＸＰＳデータに追加する。その後、図１５におけるフローチャートの処理を終了する。即ち、図１０のステップＳ５０４の処理を終了する。これにより、ＦＰパーツ（印刷対象データ）でリソースファイルを参照する参照回数を含む、ＦＰパーツ（印刷対象データ）を印刷する際に利用される属性を記憶するプリントチケット（属性情報ファイル）と、分割により作成されたＦＰピースデータ（印刷対象データ）のファイルと、ＦＤパーツ（ページ構成データ）のファイルと、リソースファイルとを含むアーカイブデータが生成される。
【０２５２】
図１５において、ステップＳ８１０及びＳ８１１、または、ステップＳ８１８及びＳ８１９の処理を行うことによって、ＦＰパーツデータを分割したＸＰＳデータが生成され、メモリの少ないローコストプリンタでもＸＰＳデータをダイレクト印刷することが可能となる。
【０２５３】
図１６は、本発明の実施形態を示し、図４に示すレイアウトフィルタ１４４において分割されたＦＰの一例を示す模式図である。
図３３に示すＦＰを図１２に示す外部参照リソースリストを使用して分割処理した場合、プリンタ２００の限界メモリ量を１度も超えることが無ければ、図１６に示すようになる。そして、これを図７に示すように、ＸＰＳデータ内に配置することになる。なお、この場合、ステップＳ８２３で追加した最後のＦＰピースデータは、例えば、図１６の１６０４及び図７の７１３で示される、「／Ｄｏｃｕｍｅｎｔ／１／Ｐａｇｅ／１．Ｆｐａｇｅ／［３］．Ｌａｓｔ．Ｐｉｅｃｅ」である。また、もしプリンタ２００の限界メモリ量の値が小さければ、図３４や図３５のように参照箇所ごとに分割されることもあり得る。
【０２５４】
図１７は、本発明の実施形態に係る印刷制御システム１０のプリンタ２００によるＸＰＳプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。
【０２５５】
まず、図１７のステップＳ９０１において、プリンタ２００のＣＰＵ２０１は、ホストコンピュータ１００からＸＰＳデータを受信する。この受信したＸＰＳデータは、プリンタ２００で即時に印刷処理させるために、ホストコンピュータ１００でＸＰＳデータを細分化データ（パケット）単位にして送信されたデータである。また、細分化データをデータストリームの受信に従って、順次プリンタ２００の記憶領域（例えば、外部メモリ２１０）に記憶して格納する（データストリーム）。
なお、ステップＳ９０１のデータストリームは、後述するステップＳ９０２の処理を実行しながら行っている。また、ステップＳ９０２の処理は、データストリームしたデータをプリンタ２００の記憶領域（例えば、外部メモリ２１０）から順次読み出し処理する。なお、ステップＳ９０２の処理は、各処理が実行できる単位（１つのファイル（パーツ）分）を受信していない（読み出しができない）場合は処理を待機する。
【０２５６】
続いて、ステップＳ９０２において、プリンタ２００のＣＰＵ２０１は、ステップＳ９０１で取得したＸＰＳデータの解析を行って、ＸＰＳデータの印刷処理を行う。
【０２５７】
次に、図１７のステップＳ９０２におけるＸＰＳデータの解析・印刷処理の詳細について説明する。
図１８は、図１７のステップＳ９０２におけるＸＰＳデータの解析・印刷処理の詳細な処理手順の一例を示すフローチャートである。
【０２５８】
図１７のステップＳ９０２の処理では、まず、図１８のステップＳ１００１において、プリンタ２００のＣＰＵ２０１は、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在するか否かを判断する。
【０２５９】
ステップＳ１００１の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図１８におけるフローチャートの処理を終了する。即ち、図１７のステップＳ９０２の処理を終了する。
【０２６０】
一方、ステップＳ１００１の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータが存在する場合には、ステップＳ１００２に進む。
【０２６１】
ステップＳ１００２に進むと、プリンタ２００のＣＰＵ２０１は、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータを全て取得したか否かを判断する。
【０２６２】
ステップＳ１００２の判断の結果、未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータの全てを取得していない場合には、ステップＳ１００３に進む。
【０２６３】
ステップＳ１００３に進むと、プリンタ２００のＣＰＵ２０１は、次の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータまたはピースデータを検索し、これを伸長して取得する。
【０２６４】
ステップＳ１００３の処理が終了した場合、或いは、ステップＳ１００２において未処理の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータを全て取得したと判断された場合には、ステップＳ１００４に進む。
【０２６５】
続いて、ステップＳ１００４において、プリンタ２００のＣＰＵ２０１は、取得した次の「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＤＳのデータ名を取得する処理を行う。ここで、前述したように、「＿ｒｅｌｓ／．ｒｅｌｓ」パーツデータ（ピースデータ）は、ＸＭＬ形式で記述されたファイルであり、本実施形態では、当該解析の方法として、一般的なＸＭＬファイルの解析方法を採用するものとする。なお、以後、ＸＭＬ形式で記述されたファイルを解析する場合は、本例と同様に、一般的なＸＭＬファイルの解析方法を採用するものとする。
【０２６６】
続いて、ステップＳ１００５において、プリンタ２００のＣＰＵ２０１は、ステップＳ１００４でＦＤＳのデータ名を取得できたか否かを判断する。
【０２６７】
ステップＳ１００５の判断の結果、ステップＳ１００４でＦＤＳのデータ名を取得できた場合には、ステップＳ１００６に進む。
【０２６８】
ステップＳ１００６に進むと、プリンタ２００のＣＰＵ２０１は、当該ＦＤＳの処理を行う。
【０２６９】
ステップＳ１００６の処理が終了した場合、或いは、ステップＳ１００５においてＦＤＳのデータ名を取得できなかったと判断された場合には、ステップＳ１００１に戻り、ステップＳ１００１以降の処理を再度行う。
【０２７０】
以上の図１８に示すステップＳ１００１〜Ｓ１００６の処理を経ることにより、図１７のステップＳ９０２におけるＸＰＳデータの解析・印刷処理が行われる。即ち、図１８の処理は、ホストコンピュータ１００のレイアウトフィルタ１４４で行われる図６の処理と同様の処理が行われる。
【０２７１】
次に、図１８のステップＳ１００６におけるＦＤＳの処理の詳細について説明する。
図１９は、図１８のステップＳ１００６におけるＦＤＳの処理の詳細な処理手順の一例を示すフローチャートである。
【０２７２】
図１８のステップＳ１００６の処理では、まず、図１９のステップＳ１１０１において、プリンタ２００のＣＰＵ２０１は、未処理のＦＤＳパーツデータが存在するか否かを判断する。
【０２７３】
ステップＳ１１０１の判断の結果、未処理のＦＤＳパーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図１９におけるフローチャートの処理を終了する。即ち、図１８のステップＳ１００６の処理を終了する。
【０２７４】
一方、ステップＳ１１０１の判断の結果、未処理のＦＤＳパーツデータが存在する場合には、ステップＳ１１０２に進む。
【０２７５】
ステップＳ１１０２に進むと、プリンタ２００のＣＰＵ２０１は、未処理のＦＤＳパーツデータを全て取得したか否かを判断する。
【０２７６】
ステップＳ１１０２の判断の結果、未処理のＦＤＳパーツデータの全てを取得していない場合には、ステップＳ１１０３に進む。
【０２７７】
ステップＳ１１０３に進むと、プリンタ２００のＣＰＵ２０１は、次のＦＤＳパーツデータまたはピースデータを検索し、これを伸長して取得する。
【０２７８】
ステップＳ１１０３の処理が終了した場合、或いは、ステップＳ１１０２において未処理のＦＤＳパーツデータを全て取得したと判断された場合には、ステップＳ１１０４に進む。
【０２７９】
続いて、ステップＳ１１０４において、プリンタ２００のＣＰＵ２０１は、取得した次のＦＤＳパーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＤのデータ名を１つ取得する処理を行う。
【０２８０】
続いて、ステップＳ１１０５において、プリンタ２００のＣＰＵ２０１は、ステップＳ１１０４でＦＤのデータ名を取得できたか否かを判断する。
【０２８１】
ステップＳ１１０５の判断の結果、ステップＳ１１０４でＦＤのデータ名を取得できた場合には、ステップＳ１１０６に進む。
【０２８２】
ステップＳ１１０６に進むと、プリンタ２００のＣＰＵ２０１は、当該ＦＤの処理を行う。
【０２８３】
ステップＳ１１０６の処理が終了した場合、或いは、ステップＳ１１０５においてＦＤのデータ名を取得できなかったと判断された場合には、ステップＳ１１０１に戻り、ステップＳ１１０１以降の処理を再度行う。
【０２８４】
以上の図１９に示すステップＳ１１０１〜Ｓ１１０６の処理を経ることにより、図１８のステップＳ１００６におけるＦＤＳの処理が行われる。即ち、図１９の処理は、ホストコンピュータ１００のレイアウトフィルタ１４４で行われる図８の処理と同様の処理が行われる。
【０２８５】
次に、図１９のステップＳ１１０６におけるＦＤの処理の詳細について説明する。
図２０は、図１９のステップＳ１１０６におけるＦＤの処理の詳細な処理手順の一例を示すフローチャートである。
【０２８６】
図１９のステップＳ１１０６の処理では、まず、図２０のステップＳ１２０１において、プリンタ２００のＣＰＵ２０１は、未処理のＦＤパーツデータが存在するか否かを判断する。
【０２８７】
ステップＳ１２０１の判断の結果、未処理のＦＤパーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図２０におけるフローチャートの処理を終了する。即ち、図１９のステップＳ１１０６の処理を終了する。
【０２８８】
一方、ステップＳ１２０１の判断の結果、未処理のＦＤパーツデータが存在する場合には、ステップＳ１２０２に進む。
【０２８９】
ステップＳ１２０２に進むと、プリンタ２００のＣＰＵ２０１は、未処理のＦＤパーツデータを全て取得したか否かを判断する。
【０２９０】
ステップＳ１２０２の判断の結果、未処理のＦＤパーツデータの全てを取得していない場合には、ステップＳ１２０３に進む。
【０２９１】
ステップＳ１２０３に進むと、プリンタ２００のＣＰＵ２０１は、次のＦＤパーツデータまたはピースデータを検索し、これを伸長して取得する。
【０２９２】
ステップＳ１２０３の処理が終了した場合、或いは、ステップＳ１２０２において未処理のＦＤパーツデータを全て取得したと判断された場合には、ステップＳ１２０４に進む。
【０２９３】
続いて、ステップＳ１２０４において、プリンタ２００のＣＰＵ２０１は、取得した次のＦＤパーツデータ（ピースデータ）を解析し、ＸＰＳデータ内のＦＰのデータ名を１つ取得する処理を行う。
【０２９４】
続いて、ステップＳ１２０５において、プリンタ２００のＣＰＵ２０１は、ステップＳ１２０４でＦＰのデータ名を取得できたか否かを判断する。
【０２９５】
ステップＳ１２０５の判断の結果、ステップＳ１２０４でＦＰのデータ名を取得できた場合には、ステップＳ１２０６に進む。
【０２９６】
ステップＳ１２０６に進むと、プリンタ２００のＣＰＵ２０１は、当該ＦＰの処理を行う。
【０２９７】
ステップＳ１２０６の処理が終了した場合、或いは、ステップＳ１２０５においてＦＰのデータ名を取得できなかったと判断された場合には、ステップＳ１２０１に戻り、ステップＳ１２０１以降の処理を再度行う。
【０２９８】
以上の図２０に示すステップＳ１２０１〜Ｓ１２０６の処理を経ることにより、図１９のステップＳ１１０６におけるＦＤの処理が行われる。即ち、図２０の処理は、ホストコンピュータ１００のレイアウトフィルタ１４４で行われる図９の処理と同様の処理が行われる。
【０２９９】
次に、図２０のステップＳ１２０６におけるＦＰの処理の詳細について説明する。
図２１は、図２０のステップＳ１２０６におけるＦＰの処理の詳細な処理手順の一例を示すフローチャートである。
【０３００】
図２０のステップＳ１２０６の処理では、まず、図２１のステップＳ１３０１において、プリンタ２００のＣＰＵ２０１は、ＦＰパーツデータに関連付けられたプリントチケット３５０５を検索し伸長して取得し、例えば、図１２に示すような外部参照リソースリストを作成する。なお、プリントチケット３５０５は、ＦＰパーツデータに先立ってプリンタ２００は受信されるため、このタイミングで図１２に示すような外部参照リソースリストを作成することが可能である。
【０３０１】
続いて、ステップＳ１３０２において、プリンタ２００のＣＰＵ２０１は、未処理のＦＰパーツデータが存在するか否かを判断する。なお、ＦＰパーツが分割されている場合、各ＦＰパーツデータは、ステップＳ１２０４において取得したＦＰのデータ名に添え字［１］［２］［３］・・・［ｉ］が付してある。つまり、ＦＰパーツを分割した場合にも、ＦＰのデータ名を用いて未処理のＦＰパーツデータが存在するか否かを判断することができる。
【０３０２】
ステップＳ１３０２の判断の結果、未処理のＦＰパーツデータが存在しない場合（即ち、全てのパーツデータについて解析（処理）済みである場合）には、図２１におけるフローチャートの処理を終了する。即ち、図２０のステップＳ１２０６の処理を終了する。
【０３０３】
一方、ステップＳ１３０２の判断の結果、未処理のＦＰパーツデータが存在する場合には、ステップＳ１３０３に進む。
【０３０４】
ステップＳ１３０３に進むと、プリンタ２００のＣＰＵ２０１は、未処理のＦＰパーツデータを全て取得したか否かを判断する。
【０３０５】
ステップＳ１３０３の判断の結果、未処理のＦＰパーツデータの全てを取得していない場合には、ステップＳ１３０４に進む。
【０３０６】
ステップＳ１３０４に進むと、プリンタ２００のＣＰＵ２０１は、次のＦＰパーツデータまたはピースデータを検索し、これを伸長して取得する。
【０３０７】
続いて、ステップＳ１３０５において、プリンタ２００のＣＰＵ２０１は、ステップＳ１３０５で取得したＦＰパーツデータまたはピースデータの描画命令処理を行う。
【０３０８】
ステップＳ１３０５の処理が終了した場合、或いは、ステップＳ１３０３において未処理のＦＰパーツデータの全てを取得していないと判断された場合には、ステップＳ１３０２に戻り、ステップＳ１３０２以降の処理を再度行う。
【０３０９】
以上の図２１に示すステップＳ１３０１〜Ｓ１３０５の処理を経ることにより、図２０のステップＳ１２０６におけるＦＰの処理が行われる。
【０３１０】
次に、図２１のステップＳ１３０５におけるＦＰパーツデータまたはピースデータの描画命令処理（ＦＰ描画命令処理）の詳細について説明する。
図２２は、図２１のステップＳ１３０５におけるＦＰ描画命令処理の詳細な処理手順の一例を示すフローチャートである。
【０３１１】
図２１のステップＳ１３０５の処理では、まず、図２２のステップＳ１４０１において、プリンタ２００のＣＰＵ２０１は、図２１のステップＳ１３０４の処理で取得したＦＰデータを解析して、描画命令を検出（抽出）する処理を行う。
【０３１２】
続いて、ステップＳ１４０２において、プリンタ２００のＣＰＵ２０１は、ステップＳ１４０１で検出（抽出）した描画命令に、イメージデータやフォントデータ等への外部リソースの参照が含まれているか否かを判断する。
【０３１３】
ステップＳ１４０２の判断の結果、ステップＳ１４０１で検出した描画命令に外部リソースの参照が含まれている場合には、ステップＳ１４０３に進む。
【０３１４】
ステップＳ１４０３に進むと、プリンタ２００のＣＰＵ２０１は、プリンタ２００の記憶領域（例えば、外部メモリ２１０）に格納されている外部リソースを取得し、描画処理を行う。この際、ステップＳ１４０１で検出した描画命令から参照される外部リソースは、当該描画命令が記述されているＦＰピースデータの直後に、後工程であるステップＳ１４０４の処理において配置されるため、プリンタ２００の記憶領域に存在しているものである。
【０３１５】
続いて、ステップＳ１４０４において、プリンタ２００のＣＰＵ２０１は、ステップＳ１３０１の処理で作成した外部参照リソースリスト内の当該検出した外部リソースの参照回数をデクリメントする。
【０３１６】
続いて、ステップＳ１４０５において、プリンタ２００のＣＰＵ２０１は、外部参照リソースリスト内の当該外部リソースの参照回数が０であるか否かを判断する。
【０３１７】
ステップＳ１４０５の判断の結果、外部参照リソースリスト内の当該外部リソースの参照回数が０である場合には、ステップＳ１４０６に進む。
【０３１８】
ステップＳ１４０６に進むと、プリンタ２００のＣＰＵ２０１は、プリンタ２００の記憶領域に格納されている当該外部リソースの削除処理を行う。これは、参照回数が０であれば、プリンタ２００の記憶領域に格納されている当該外部リソースは、処理中のＦＰにおいて今後二度と参照されることが無く、当該記憶領域から削除しても問題無いからである。このように、今後、参照されない外部リソースを削除することにより、プリンタ２００の記憶領域に余裕を与えることでできる。
【０３１９】
ステップＳ１４０６の処理が終了した場合、ステップＳ１４０２において描画命令に外部リソースの参照が含まれていないと判断された場合、或いは、ステップＳ１４０５において外部参照リソースリスト内の当該外部リソースの参照回数が０でないと判断された場合には、ステップＳ１４０７に進む。
【０３２０】
ステップＳ１４０７に進むと、プリンタ２００のＣＰＵ２０１は、現在処理中のＦＰパーツデータまたはピースデータも今後参照されることはないので、プリンタ２００の記憶領域（例えば、外部メモリ２１０）から削除する処理を行う。
【０３２１】
続いて、ステップＳ１４０８において、プリンタ２００のＣＰＵ２０１は、現在処理中のＦＰパーツデータまたはピースデータの最後まで解析を行ったか否かを判断する。この判断の結果、現在処理中のＦＰパーツデータまたはピースデータの最後までは未だ解析を行っていない場合には、ステップＳ１４０１に戻り、ステップＳ１４０１以降の処理を再度行う。
【０３２２】
一方、ステップＳ１４０８の判断の結果、現在処理中のＦＰパーツデータまたはピースデータの最後まで解析を行った場合には、図２２におけるフローチャートの処理を終了する。即ち、図２１のステップＳ１３０５の処理を終了する。
【０３２３】
以上説明したように、本実施形態に係る印刷制御システム１０のホストコンピュータ１００（情報処理装置）では、以下の処理を行うようにしている。
まず、ドキュメントの構成情報が記述されたページ構成データ（ＦＤ）のファイルと、ＦＤに基づき参照され、プリンタ２００において印刷対象となるページの情報が記述された印刷対象データ（ＦＰ）のファイルと、ＦＰに基づき参照されるリソースファイルとを含み構成されるＸＰＳデータ（アーカイブデータ）を取得するようにしている（例えば、図５のＳ１０１：アーカイブデータ取得ステップ）。その後、ＦＰのファイルを分割するようにしている（例えば、図１５のＳ８１０、Ｓ８１７：分割ステップ）。そして、印刷対象データ（ＦＰ）でリソースファイルを参照する参照回数を含む、ＦＰを印刷する際に利用される属性を記憶するプリントチケット（属性情報ファイル）と、前記分割ステップにより分割されたＦＰのファイルと、ＦＤのファイルと、リソースファイルとを含むＸＰＳデータ（アーカイブデータ）を生成するようにしている（例えば、図１５のＳ８２３：アーカイブデータ生成ステップ）。
かかる構成によれば、プリンタ２００側で、ホストコンピュータ１００で処理されたＸＰＳデータの印刷処理を行う際に、メモリ容量の少ないプリンタであっても、リソースファイルを含むＸＰＳデータを適切に印刷処理することができる。
【０３２４】
さらに、ホストコンピュータ１００では、プリンタ２００のメモリ量（第１のメモリ量）を取得し（図１５のＳ８０１：プリンタメモリ量取得ステップ）、ＦＰのデータ量に基づくメモリ量がＳ８０１で取得したメモリ量（第２のメモリ量）を超えるか否かを判断し（図１５のＳ８１６：判断ステップ）、前記分割ステップでは、前記リソースファイルを参照する参照回数の情報に加えて、前記判断ステップによる判断の結果に基づいて、ＦＰのファイルを分割するようにしている。さらに、前記分割ステップでは、前記リソースファイルを参照する参照回数の情報と前記判断ステップによる判断の結果に加えて、更に参照済みのリソースファイルの情報（参照済みフラグ）に基づいて、ＦＰのファイルを分割するようにしている。
【０３２５】
また、本実施形態に係る印刷制御システム１０のプリンタ２００では、以下の処理を行うようにしている。
まず、ホストコンピュータ１００で編集処理されたＸＰＳデータを受信して、当該ＸＰＳデータをプリンタ２００の記憶領域（例えば、外部メモリ２１０）に記憶するようにしている（図１７のＳ９０１）。そして、ＸＰＳデータの印刷処理を行った際に、当該ＸＰＳデータに含まれる前記参照回数の情報に応じて、プリンタ２００の記憶領域に記憶されているＸＰＳデータに含まれるリソースファイルの削除を行うようにしている（図２２のＳ１４０６：削除ステップ）。
【０３２６】
（本発明の他の実施形態）
前述した本発明の実施形態に係る印刷制御システム１０のホストコンピュータ１００を構成する図３及び図４の各構成部、並びに、ホストコンピュータ１００及びプリンタ２００における印刷制御処理を示す図５、図６、図８〜図１１、図１３、図１５、図１７〜図２２の各ステップは、コンピュータのＣＰＵがＲＯＭなどに記憶されたプログラムを実行することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０３２７】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０３２８】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図５、図６、図８〜図１１、図１３、図１５、図１７〜図２２に示すフローチャートに対応したプログラム）を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０３２９】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０３３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０３３１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０３３２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０３３３】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０３３４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０３３５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０３３６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０３３７】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０３３８】
【図１】本発明の実施形態に係る印刷制御システムの概略構成の一例を示す模式図である。
【図２】本発明の実施形態に係る印刷制御システムの概略構成の変形例を示す模式図である。
【図３】本発明の実施形態に係る印刷制御システムのホストコンピュータによるＧＤＩプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。
【図４】本発明の実施形態に係る印刷制御システムのホストコンピュータによるＸＰＳプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。
【図５】本発明の実施形態に係る印刷制御システムのホストコンピュータによるＸＰＳプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。
【図６】図５のステップＳ１０２におけるＸＰＳデータの解析・編集処理の詳細な処理手順の一例を示すフローチャートである。
【図７】本発明の実施形態を示し、ＦＰを含むＸＰＳデータの一例を示す模式図である。
【図８】図６のステップＳ２０６におけるＦＤＳの処理の詳細な処理手順の一例を示すフローチャートである。
【図９】図８のステップＳ３０６におけるＦＤの処理の詳細な処理手順の一例を示すフローチャートである。
【図１０】図９のステップＳ４０６におけるＦＰの処理の詳細な処理手順の一例を示すフローチャートである。
【図１１】図１０のステップＳ５０２における外部リソース参照回数リスト作成処理の詳細な処理手順の一例を示すフローチャートである。
【図１２】本発明の実施形態を示し、外部参照リソースリストの一例を示す模式図である。
【図１３】図１０のステップＳ５０３におけるプリントチケット編集処理の詳細な処理手順の一例を示すフローチャートである。
【図１４】本発明の実施形態を示し、プリントチケットの一例を示す模式図である。
【図１５】図１０のステップＳ５０４におけるＦＰ分割処理の詳細な処理手順の一例を示すフローチャートである。
【図１６】本発明の実施形態を示し、図４に示すレイアウトフィルタにおいて分割されたＦＰの一例を示す模式図である。
【図１７】本発明の実施形態に係る印刷制御システムのプリンタによるＸＰＳプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。
【図１８】図１７のステップＳ９０２におけるＸＰＳデータの解析・印刷処理の詳細な処理手順の一例を示すフローチャートである。
【図１９】図１８のステップＳ１００６におけるＦＤＳの処理の詳細な処理手順の一例を示すフローチャートである。
【図２０】図１９のステップＳ１１０６におけるＦＤの処理の詳細な処理手順の一例を示すフローチャートである。
【図２１】図２０のステップＳ１２０６におけるＦＰの処理の詳細な処理手順の一例を示すフローチャートである。
【図２２】図２１のステップＳ１３０５におけるＦＰ描画命令処理の詳細な処理手順の一例を示すフローチャートである。
【図２３】ＸＰＳデータの構成のイメージの一例を示す模式図である。
【図２４】図２３に示すＸＰＳデータに包含される各パーツの参照関係の論理的構造の一例を示す模式図である。
【図２５】ＸＭＬファイルの記述に基づいた参照関係の一例を示す模式図である。
【図２６】ＸＭＬファイルの記述に基づいたプリントチケットの一例を示す模式図である。
【図２７】ＭＸＤＷが通常生成するＸＰＳファイルのデータ順の一例を示す模式図である。
【図２８】図２５に示すＸＰＳデータをインターリーブ化した際のパーツデータの一例を示す模式図である。
【図２９】インターリーブ化した際のＸＰＳデータの構成のイメージの一例を示す模式図である。
【図３０】インターリーブ化した際のＸＰＳファイルのデータ順の一例を示す模式図である。
【図３１】ＺＩＰ圧縮データの構成の一例を示す模式図である。
【図３２】インターリーブ化したＸＰＳファイルのデータ順の一例を示す模式図である。
【図３３】図３２に示すＸＰＳファイル内のＦＰの一例を示す模式図である。
【図３４】ＦＰの分割処理の一例を示す模式図である。
【図３５】ＸＰＳファイルのデータ順の一例を示す模式図である。
【符号の説明】
【０３３９】
１０−１  印刷制御システム
１００  ホストコンピュータ（クライアントコンピュータ）
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  システムバス
１０５  入力Ｃ（入力コントローラ）
１０６  ＶＣ（ビデオコントローラ）
１０７  ＭＣ（メモリコントローラ）
１０８  通信Ｉ／Ｆ（通信インターフェース）
１０９  ＫＢ（キーボード）
１１０  ＣＲＴ（ＣＲＴディスプレイ）
１１１  外部メモリ
２００  プリンタ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  通信Ｉ／Ｆ（通信インターフェース）
２０６  印刷部Ｉ／Ｆ（印刷部インターフェース）
２０７  ＭＣ（メモリコントローラ）
２０８  印刷部
２０９  操作部
２１０  外部メモリ
３００  ネットワーク
【図１】
2010128962.tif 000003
【図２】
2010128962.tif 000004
【図３】
2010128962.tif 000005
【図４】
2010128962.tif 000006
【図５】
2010128962.tif 000007
【図６】
2010128962.tif 000008
【図７】
2010128962.tif 000009
【図８】
2010128962.tif 000010
【図９】
2010128962.tif 000011
【図１０】
2010128962.tif 000012
【図１１】
2010128962.tif 000013
【図１２】
2010128962.tif 000014
【図１３】
2010128962.tif 000015
【図１４】
2010128962.tif 000016
【図１５】
2010128962.tif 000017
【図１６】
2010128962.tif 000018
【図１７】
2010128962.tif 000019
【図１８】
2010128962.tif 000020
【図１９】
2010128962.tif 000021
【図２０】
2010128962.tif 000022
【図２１】
2010128962.tif 000023
【図２２】
2010128962.tif 000024
【図２３】
2010128962.tif 000025
【図２４】
2010128962.tif 000026
【図２５】
2010128962.tif 000027
【図２６】
2010128962.tif 000028
【図２７】
2010128962.tif 000029
【図２８】
2010128962.tif 000030
【図２９】
2010128962.tif 000031
【図３０】
2010128962.tif 000032
【図３１】
2010128962.tif 000033
【図３２】
2010128962.tif 000034
【図３３】
2010128962.tif 000035
【図３４】
2010128962.tif 000036
【図３５】
2010128962.tif 000037