(57)【要約】【課題】ＸＭＬなどのマークアップ言語により記述したデータについての印刷を行う際に、より早いタイミングで印刷を開始することができる印刷制御装置、印刷システム、印刷装置の制御方法、ドライバプログラム、及びそのプログラムを記録した記録媒体を提供すること。【解決手段】ＸＭＬパース部２２０の第２ＸＭＬ解釈部２２２は、ＸＭＬドキュメントのうち先頭バンドに掛かる描画領域を有した描画命令に対応する記述の後端位置を特定し、この後端位置の行番号通知を第１ＸＭＬ解釈部２２１に受け渡す。第１ＸＭＬ解釈部２２１は、行番号通知に該当する行より前方の記述を解釈して描画命令を取得し、制御部２１０に受け渡す。レンダリング部２３０は、受け取った描画命令に従うレンダリング処理により先頭バンドのバンドデータを生成する。制御部２１０は、バンドデータをプリンタに送信して、先頭バンドの印刷処理を開始させる。【選択図】図３
2008015649.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させる印刷制御装置であって、
前記印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段と、
前記入力データの記述を順次解釈して、前記印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段と、
前記入力データの記述を解釈して、前記印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、前記入力データの記述範囲を特定する第２の解釈手段と、
前記特定された記述範囲の記述から取得された描画命令を展開して前記先頭バンドのバンドデータを生成してから、前記特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段と、
前記バンドデータが生成されると、当該バンドデータに従う印刷処理を前記印刷装置に行わせる印刷制御手段とを備えることを特徴とする印刷制御装置。
【請求項２】
請求項１に記載の印刷制御装置において、
前記第２の解釈手段は、前記入力データの記述を解釈して、先頭バンドに掛かる描画範囲を有する描画命令に対応する記述の後端位置を探索し、
前記展開手段は、前記入力データにおいて前記後端位置より解釈順が前方の記述から取得された描画命令を順次展開して前記先頭バンドのバンドデータを生成してから、前記後端位置より解釈順が後方の記述から取得された描画命令を順次展開するようにして前記先頭バンド以降のバンドデータを生成することを特徴とする印刷制御装置。
【請求項３】
請求項２に記載の印刷制御装置において、
前記第１の解釈手段が行う処理と、前記第２の解釈手段が行う処理とを並列して実行させ、
前記展開手段は、前記第２の解釈手段が前記後端位置を見つけるまでは、前記第１の解釈手段が取得した描画命令を順次展開し、前記第２の解釈手段が前記後端位置を見つけてから、前記先頭バンドのバンドデータを生成することを特徴とする印刷制御装置。
【請求項４】
請求項３に記載の印刷制御装置において、
前記第２の解釈手段は、前記第１の解釈手段が行う解釈の順番とは逆順に前記入力データの記述を解釈することを特徴とする印刷制御装置。
【請求項５】
請求項３又は４に記載の印刷制御装置において、
前記展開手段は、前記第２の解釈手段が前記後端位置を検出したときに、前記後端位置の記述に対応する描画命令が未展開の場合、前記第１の解釈手段が取得する描画命令を次々に展開して、前記後端位置の記述に対応する描画命令が展開されたタイミングで、前記先頭バンドのバンドデータを生成することを特徴とする印刷制御装置。
【請求項６】
請求項３乃至５のいずれか一項に記載の印刷制御装置において、
前記展開手段は、前記第２の解釈手段が前記後端位置を検出したときに、前記後端位置の記述に対応する描画命令が既に展開済みの場合、既に展開済みの描画命令から前記先頭バンドのバンドデータを生成することを特徴とする印刷制御装置。
【請求項７】
請求項１乃至６のいずれか一項に記載の印刷制御装置において、
前記マークアップ言語は、ＸＭＬ、ＨＴＭＬ又はＸＨＴＭＬのいずれかであることを特徴とする印刷制御装置。
【請求項８】
印刷装置と、印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、前記印刷装置に次々に実行させる印刷制御装置とを備える印刷システムであって、
前記印刷制御装置は、
前記印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段と、
前記入力データの記述を順次解釈して、前記印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段と、
前記入力データの記述を解釈して、前記印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、前記入力データの記述範囲を特定する第２の解釈手段とを備え、
前記印刷装置は、
前記特定された記述範囲の記述から取得された描画命令を展開して前記先頭バンドのバンドデータを生成してから、前記特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段と、
前記バンドデータが生成されると、当該バンドデータに従う印刷処理を実行する印刷処理手段とを備えることを特徴とする印刷システム。
【請求項９】
印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させる印刷装置の制御方法であって、
前記印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力工程と、
前記入力データの記述を順次解釈して、前記印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈工程と、
前記入力データの記述を解釈して、前記印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、前記入力データの記述範囲を特定する第２の解釈工程と、
前記特定された記述範囲の記述から取得された描画命令を展開して前記先頭バンドのバンドデータを生成する第１の展開工程と、
前記特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する第２の展開工程と、
前記バンドデータが生成されると、当該バンドデータに従う印刷処理を前記印刷装置に行わせる印刷制御工程とを備えることを特徴とする印刷装置の制御方法。
【請求項１０】
印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させるためのドライバプログラムであって、
コンピュータを、
前記印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段、
前記入力データの記述を順次解釈して、前記印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段、
前記入力データの記述を解釈して、前記印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、前記入力データの記述範囲を特定する第２の解釈手段、
前記特定された記述範囲の記述から取得された描画命令を展開して前記先頭バンドのバンドデータを生成してから、前記特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段、
前記バンドデータが生成されると、前記印刷装置との通信を行う通信手段を介して当該バンドデータを前記印刷装置に順次供給して、当該バンドデータに従う印刷処理を前記印刷装置に行わせる印刷制御手段、として機能させることを特徴とするドライバプログラム。
【請求項１１】
請求項１０に記載のドライバプログラムを記録した、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬなどのマークアップ言語により記述したデータから、印刷装置が処理可能な画像データを生成し、画像データに従って行われる印刷処理を制御する印刷制御装置、印刷システム、印刷装置の制御方法、ドライバプログラム、及びそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来、マークアップ言語の１つであるＸＭＬ(Extensible Markup Language)により記述されたデータ（以下、「ＸＭＬドキュメント」ともいう）を処理可能としたＸＭＬプリンタが知られている。
【０００３】
例えば、特許文献１に記載の技術では、プリンタドライバが、ＸＭＬドキュメントの内容を展開してプリンタが解釈可能な言語又はビットマップ形式で表された画像データを生成している。
【０００４】
特許文献２に記載の技術では、ＸＭＬドキュメントにネットワーク上のアドレス情報が含まれる場合に、ネットワーク上にあるアドレス情報の指定先のサーバと通信して、オブジェクトなどのデータを取得し、通信して取得したデータを組み込んだＸＭＬドキュメントを解釈してレンダリングすることにより、画像データを生成している。
【０００５】
ここで、プリンタが処理に要するメモリ領域を節約するために、画像を所定の高さで区分したバンドごとに処理することがある。このようなプリンタでＸＭＬドキュメントを扱うためには、ＸＭＬドキュメントから生成した画像をバンドごとに区切って、バンドごとの画像データ（以下、「バンドデータ」という）をプリンタに順次供給する必要がある。
【０００６】
例えば、図１２に示すように、ＸＭＬドキュメントを解釈して得られる複数の描画命令に対応して、複数の図形が描画された画像を印刷対象として扱う場合、印刷時の用紙搬送方向（Ｙ方向）の上端から所定の高さ（画素数）ごとに画像を区切るようにして複数のバンドに区分して、各バンドごとに処理が行われる。具体的には、区分したバンドを端から順にバンド０、バンド１、…と昇順の番号により各バンドを称すると、プリンタドライバは、バンド０より順番にバンドデータを送信して、プリンタは、色変換処理・スクリーン処理などの印刷処理を各バンドデータごとに行う。これにより、各バンドの印刷内容が次々に印刷されて印刷対象となる画像全体が印刷される。
【０００７】
このように、プリンタがバンドごとに印刷処理を行うとした場合、各バンドの印刷処理は各バンドのバンドデータに従って行うので、ＸＭＬドキュメントに対する印刷が開始されるタイミングは、プリンタドライバより先頭バンドのバンドデータを受け取るタイミングに依存する。すなわち、プリンタが先頭バンドのバンドデータを受け取ると、印刷対象のＸＭＬドキュメントに対応する印刷処理が開始可能となる。
【０００８】
【特許文献１】特開２０００−３３０９０８号公報
【特許文献２】特開２００２−９１７２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＸＭＬドキュメントに記述された描画命令は描画位置に従って順番に記述されているとは限らないので、プリンタドライバが先頭のバンドデータを生成するためには、ＸＭＬドキュメントの全描画命令についての解釈・展開を待ってから生成する必要がある。
【００１０】
例えば、ＸＭＬドキュメントを記述の順番に解釈・展開して、図１２に示すように３つのオブジェクトＯＢ１，ＯＢ２，ＯＢ３を順番に描画する場合、２つのオブジェクトＯＢ１，ＯＢ３が先頭バンド（バンド０）のバンド領域に掛かっているため、オブジェクトＯＢ１を描画した時点で、先頭バンドのバンドデータを得ることはできない。先頭バンドのバンドデータを得るためには、少なくとも、３つ目のオブジェクトＯＢ３が描画されるまで待つ必要がある。
【００１１】
このように、ＸＭＬドキュメントを記述順に解釈して得られる描画命令の順番は、描画位置との関わりがないために、ＸＭＬドキュメントに記述された全描画命令を展開し終えるまで、先頭バンドのバンドデータを確定することができない。このため、プリンタが、先頭バンドのバンドデータに従って印刷処理を開始するタイミングが遅くなってしまうという課題があった。
【００１２】
そこで、本発明は、ＸＭＬなどのマークアップ言語により記述したデータについての印刷を行う際に、より早いタイミングで印刷を開始することができる印刷制御装置、印刷システム、印刷装置の制御方法、ドライバプログラム、及びそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させる印刷制御装置であって、印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段と、入力データの記述を順次解釈して、印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段と、入力データの記述を解釈して、印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、入力データの記述範囲を特定する第２の解釈手段と、特定された記述範囲の記述から取得された描画命令を展開して先頭バンドのバンドデータを生成してから、特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段と、バンドデータが生成されると、当該バンドデータに従う印刷処理を印刷装置に行わせる印刷制御手段とを備えることを特徴とする。
【００１４】
この構成によれば、先頭バンドの印刷処理に必要な、入力データの記述範囲を特定し、特定した記述範囲の記述を解釈して先頭バンドのバンドデータを生成して、先頭バンドのバンドデータに従う印刷処理を印刷装置に行わせる。そして、先頭バンドのバンドデータの生成後に、特定された記述範囲以外の記述をさらに解釈して先頭バンド以降のバンドデータを生成して、先頭バンド以降についての印刷処理を印刷装置に行わせる。印刷装置は、先頭バンド以降のバンドに対応する記述についての解釈・展開を待つことなく、先頭バンドのバンドデータが生成されたタイミングで当該先頭バンドの印刷処理を開始するので、入力データに対応する印刷を開始するタイミングを早めることができる。また、印刷終了のタイミングも早まることになるので、例えば、ユーザが印刷指示を出してから印刷終了までの待ち時間を短縮することができ、ユーザにとっての利便性をより高めることができる。
【００１５】
また、本発明の印刷制御装置において、第２の解釈手段は、入力データの記述を解釈して、先頭バンドに掛かる描画範囲を有する描画命令に対応する記述の後端位置を探索し、展開手段は、入力データにおいて後端位置より解釈順が前方の記述から取得された描画命令を順次展開して先頭バンドのバンドデータを生成してから、後端位置より解釈順が後方の記述から取得された描画命令を順次展開するようにして先頭バンド以降のバンドデータを生成することが好ましい。
【００１６】
この構成によれば、先頭バンドに掛かる描画範囲を有する描画命令に対応する記述の後端位置を探索して、後端位置より解釈順が前方にある入力データの記述を解釈して先頭バンドのバンドデータを生成して、先頭バンドのバンドデータに従う印刷処理を印刷装置に行わせる。そして、先頭バンドのバンドデータの生成後に、後端位置より解釈順が後方の記述を解釈して先頭バンド以降のバンドデータを生成して、先頭バンド以降についての印刷処理を印刷装置に行わせる。これにより、印刷開始のタイミングを早めた処理が可能になる。
【００１７】
また、本発明の印刷制御装置において、第１の解釈手段が行う処理と、第２の解釈手段が行う処理とを並列して実行させ、展開手段は、第２の解釈手段が後端位置を見つけるまでは、第１の解釈手段が取得した描画命令を順次展開し、第２の解釈手段が後端位置を見つけてから、先頭バンドのバンドデータを生成することが好ましい。
【００１８】
この構成によれば、第２の解釈手段による後端位置の探索を待つことなく、第１の解釈手段及び展開手段は処理を進めるため、処理効率が高まり、印刷開始のタイミングをより早めることができる。
【００１９】
また、本発明の印刷制御装置において、第２の解釈手段は、第１の解釈手段が行う解釈の順番とは逆順に入力データの記述を解釈することが好ましい。
【００２０】
この構成によれば、第２の解釈手段が、第１の解釈手段が解釈する順番の逆順に後端位置を探索することにより、第１の解釈手段と第２の解釈手段とが行う並列処理を効率的に行うことができる。
【００２１】
また、本発明の印刷制御装置において、展開手段は、第２の解釈手段が後端位置を検出したときに、後端位置の記述に対応する描画命令が未展開の場合、第１の解釈手段が取得する描画命令を次々に展開して、後端位置の記述に対応する描画命令が展開されたタイミングで、先頭バンドのバンドデータを生成することが好ましい。
【００２２】
この構成によれば、後端位置の記述に対応する描画命令が未展開の場合、後端位置の記述に対応する描画命令が展開されることを待ってから、先頭バンドのバンドデータを生成するので、第１の解釈手段と第２の解釈手段とを並列処理させながら、印刷処理の開始タイミングを早めた処理を行うことができる。
【００２３】
また、本発明の印刷制御装置において、展開手段は、第２の解釈手段が後端位置を検出したときに、後端位置の記述に対応する描画命令が既に展開済みの場合、既に展開済みの描画命令から先頭バンドのバンドデータを生成することが好ましい。
【００２４】
この構成によれば、後端位置の記述に対応する描画命令が既に展開済みの場合、既に展開済みの描画命令から直ちに先頭バンドのバンドデータを生成するので、第１の解釈手段と第２の解釈手段とを並列処理させながら、印刷処理の開始タイミングを早めた処理を行うことができる。
【００２５】
また、本発明の印刷制御装置において、マークアップ言語は、ＸＭＬ、ＨＴＭＬ又はＸＨＴＭＬのいずれかであることが好ましい。
【００２６】
この構成によれば、ＸＭＬ、ＨＴＭＬ又はＸＨＴＭＬの形式の入力データに対応する印刷をより早いタイミングで開始することができるようになる。
【００２７】
また、本発明のもう一つの態様は、印刷装置と、印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させる印刷制御装置とを備える印刷システムであって、印刷制御装置は、印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段と、入力データの記述を順次解釈して、印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段と、入力データの記述を解釈して、印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、入力データの記述範囲を特定する第２の解釈手段とを備え、印刷装置は、特定された記述範囲の記述から取得された描画命令を展開して先頭バンドのバンドデータを生成してから、特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段と、バンドデータが生成されると、当該バンドデータに従う印刷処理を実行する印刷処理手段とを備えることを特徴とする。
【００２８】
この構成によれば、印刷を開始するタイミングを早めた、利便性の高い印刷システムを得ることができる。
【００２９】
また、本発明は方法の発明とすることができる。すなわち、本発明は、印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させる印刷装置の制御方法であって、印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力工程と、入力データの記述を順次解釈して、印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈工程と、入力データの記述を解釈して、印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、入力データの記述範囲を特定する第２の解釈工程と、特定された記述範囲の記述から取得された描画命令を展開して先頭バンドのバンドデータを生成する第１の展開工程と、特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する第２の展開工程と、バンドデータが生成されると、当該バンドデータに従う印刷処理を印刷装置に行わせる印刷制御工程とを備えることを特徴とする。
【００３０】
さらに、本発明はプログラム及びそのプログラムを記録した記録媒体とすることができる。本発明は、印刷対象の画像を所定の高さに区分したバンドごとに行う印刷処理を、印刷装置に次々に実行させるためのドライバプログラムであって、コンピュータを、印刷対象の画像をマークアップ言語で記述した入力データを受け付ける入力手段、入力データの記述を順次解釈して、印刷対象の画像を描画するための描画命令を次々に取得する第１の解釈手段と、入力データの記述を解釈して、印刷処理の実行順が先頭より所定数までのバンドである先頭バンドの印刷処理に必要な、入力データの記述範囲を特定する第２の解釈手段、特定された記述範囲の記述から取得された描画命令を展開して先頭バンドのバンドデータを生成してから、特定された記述範囲以外の記述から取得された描画命令をさらに展開して先頭バンド以降のバンドデータを生成する展開手段、バンドデータが生成されると、印刷装置との通信を行う通信手段を介して当該バンドデータを印刷装置に順次供給して、当該バンドデータに従う印刷処理を印刷装置に行わせる印刷制御手段、として機能させることを特徴とする。
【００３１】
このドライバプログラムを記録した記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの光ディスク、光磁気ディスク、ＩＣカード、又はメモリカードなどコンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を具体化した実施形態について図面を参照して説明する。
【００３３】
図１は、本実施形態に係る印刷システムの構成を示したブロック図である。図１に示すように、印刷システム１は、ホストコンピュータ（印刷制御装置）２及びプリンタ（印刷装置）３を備えている。
【００３４】
ホストコンピュータ２は、例えば汎用のパーソナルコンピュータであり、図１に示すように、ＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２、ハードディスク（ＨＤ）２３、ＣＤ−ＲＯＭドライブ２４、ネットワークインターフェイス（ネットワークＩ／Ｆ）２５、及び通信インターフェイス（通信Ｉ／Ｆ）２６を備えている。通信Ｉ／Ｆ２６は、ケーブルを介してプリンタ３が接続されており、ホストコンピュータ２とプリンタ３とは相互にデータ通信可能となっている。また、ネットワークＩ／Ｆ２５はＬＡＮケーブルなどを介してネットワークサーバ４と接続されており、ネットワークサーバ４と所定のプロトコルに従う通信を行うことにより、ホストコンピュータ２はインターネットに接続可能である。
【００３５】
ＣＰＵ２０は、ホストコンピュータ２の各構成を制御する部分であり、ハイパー・スレッディング・テクノロジなどのマルチスレッドに対応させる技術や、処理単位となるプロセッサコアを複数個有することにより、複数の処理を並列に実行可能な構成になっている。これにより、ＣＰＵ２０は、後述する第１ＸＭＬ解釈部として行う処理と第２ＸＭＬ解釈部として行う処理とを並列に実行する。もっとも、２つ以上のＣＰＵを備えた構成とすることにより、第１ＸＭＬ解釈部、第２ＸＭＬ解釈部として行う処理を並列処理してもよい。
【００３６】
ＲＯＭ２１はホストコンピュータ２を制御するための所定のプログラムなどが記録された不揮発性のメモリ、ＲＡＭ２２はワーキングメモリなどに用いる汎用のメモリである。
【００３７】
ＨＤ２３は、アプリケーションプログラムや本発明に係るドライバプログラムなどを記録している。なお、ドライバプログラムはＨＤ２３に予め記録されていてもよいし、ＣＤ−ＲＯＭ５などの記録媒体に記録された形態で供給され、ＣＰＵ２０がＣＤ−ＲＯＭドライブ２４によりＣＤ−ＲＯＭ５からプログラムを読み出し、読み出したプログラムをＨＤ２３に記録するものとしてもよい。
【００３８】
そして、ＣＰＵ２０が、所定のオペレーションシステムの下で、ＨＤ２３に記録されたアプリケーションプログラムを実行することによりアプリケーション１００が機能し、ドライバプログラムを読み出して実行することによりプリンタドライバ２００が機能する（図２参照）。
【００３９】
アプリケーション１００は、文書作成ソフトウェアやウェブブラウザなどのプリンタ３に対する印刷要求元である。アプリケーション１００は、文書作成ソフトウェアにより作成されたＸＭＬドキュメントや、ウェブブラウザがネットワークサーバ４と通信するようにしてインターネットから取得したＸＭＬドキュメントなどを印刷の対象として、印刷要求及びＸＭＬドキュメントを含む所定のフォーマットの印刷データをプリンタドライバ２００に受け渡す処理を行う。
【００４０】
プリンタドライバ２００は、アプリケーション１００から印刷データを受け取ると、ＸＭＬドキュメント（入力データ）を解釈して描画処理を行うことにより、プリンタ３が処理可能なフォーマットの画像データを生成し、この印刷用の画像データを通信Ｉ／Ｆ２６を介してプリンタ３に送信する部分である。これらの処理を行うため、図２に示すように、プリンタドライバ２００は、制御部２１０、ＸＭＬパース部２２０及びレンダリング部２３０を備えている。
【００４１】
制御部２１０は、ＸＭＬパース部２２０及びレンダリング部２３０を制御して、ＸＭＬドキュメントに対する各種の処理を行わせる部分である。そのため、制御部２１０は、アプリケーション１００から受け渡されたＸＭＬドキュメントに入力処理を行うＸＭＬドキュメント入力部（入力手段）２１１と、ＸＭＬパース部２２０及びレンダリング部２３０とのデータ授受を制御するデータ制御部２１２と、バンドデータをプリンタ３に出力してバンドごとの印刷処理を行わせる印刷制御部２１３とを有している。
【００４２】
ＸＭＬパース部２２０は、ＸＭＬドキュメントを解釈してＸＭＬドキュメントの描画内容を表す描画命令を取得し、解釈して取得した描画命令を制御部２１０に受け渡す部分である。このＸＭＬパース部２２０は、第１ＸＭＬ解釈部２２１と第２ＸＭＬ解釈部２２２とを有している。
【００４３】
第２ＸＭＬ解釈部２２２は、ＸＭＬドキュメントを解釈して得られる複数の描画命令のうち、先頭バンド（バンド０）を描画するために必要な描画命令に対応する記述の後端位置を探索する処理を行う。
【００４４】
第１ＸＭＬ解釈部２２１は、ＸＭＬドキュメントを解釈して描画命令を取得する部分である。そのため、まず、ＸＭＬドキュメントの記述を先頭から順番に解釈して、取得した描画命令を、制御部２１０に順次受け渡す処理を行う。なお、以下では、ＸＭＬドキュメントの記述を先頭から順番に解釈するときの解釈順を「正順」といい、後端から順番に解釈するときの解釈順を「逆順」という。
【００４５】
また、第１ＸＭＬ解釈部２２１は、第２ＸＭＬ解釈部２２２が先頭バンドの記述の後端位置を見つけると、この後端位置より前の記述より取得した描画命令により、先頭バンドのバンドデータを生成可能であると判断して、先頭バンドのバンドデータの生成処理を開始してもよい旨の先頭バンドの処理開始通知を、制御部２１０を介してレンダリング部２３０に送る処理を行う。
【００４６】
レンダリング部２３０は、制御部２１０を介してＸＭＬパース部２２０から受け渡された描画命令を順次ビットマップ形式のオブジェクト画像に展開し、展開したオブジェクト画像を配置するようにして、ビットマップ形式の画像データを生成するレンダリング処理を実行する。そして、生成した画像データは、プリンタ３に出力するためいったん制御部２１０に受け渡す処理を行う。
【００４７】
また、レンダリング部２３０は、制御部２１０を介して第１ＸＭＬ解釈部２２１より先頭バンドの処理開始通知を受けると、その時点で展開済みの画像データの画像から、先頭バンドに対応する領域の画像を抜き出すようにして、先頭バンドのバンドデータを生成する。そして、先頭バンドのバンドデータを制御部２１０に受け渡してから、さらに受け取る描画命令についてレンダリング処理を行って先頭バンド以降のバンドデータを生成し、制御部２１０に受け渡す処理を行う。
【００４８】
制御部２１０がレンダリング部２３０からバンドデータを受け取ると、印刷制御部２１３は、そのバンドデータをプリンタ３に出力するようにして、プリンタ３にバンドデータに従う色変換・スクリーン処理などの印刷処理を次々に行わせる。これにより、プリンタ３に、先頭バンドを印刷させてから、先頭バンド以降のバンドを次々に印刷させるようにして、ＸＭＬドキュメントに記述された印刷対象となる画像全体を印刷させる。
【００４９】
なお、印刷処理のうちの一部、例えば色変換処理についてはホストコンピュータ側で行って、色変換後のバンドデータをプリンタ３に出力するようにしてもよい。
【００５０】
このように、本実施形態に係るプリンタドライバ２００は、ＸＭＬドキュメントの記述を順次処理する中で、後端位置の記述まで処理されて先頭バンドのバンドデータが生成可能になると、ＸＭＬドキュメントの全記述、全描画命令についての処理完了を待つことなく、先頭バンドのバンドデータを生成して、先頭バンドについての印刷処理をプリンタ３に行わせている。すなわち、先頭バンドについての処理は、先頭バンド以外のバンドより優先して行うようにしている。
【００５１】
次に、ＸＭＬドキュメントが入力された際にプリンタドライバ２００が行う詳細な処理について、図３を参照しながら、図４〜図７のフローチャートに従って順番に説明する。なお、図３は、制御部２１０、ＸＭＬパース部２２０及びレンダリング部２３０間でのデータの動きを示した図であり、図４は制御部２１０、図５は第２ＸＭＬ解釈部２２２、図６は第１ＸＭＬ解釈部２２１、図７はレンダリング部２３０が行う処理手順を示している。
【００５２】
制御部２１０は、アプリケーション１００からＸＭＬドキュメントを受け取ると図４に示す処理を開始する。処理を開始すると、まず、ステップＳ１００において、ＸＭＬドキュメント入力部２１１は入力されたデータがＸＭＬドキュメントであることを認識して入力処理を行う（図３（１）参照）。
【００５３】
次に、ステップＳ１１０では、データ制御部２１２は、入力されたＸＭＬドキュメントをＸＭＬパース部２２０に受け渡す（図３（２）参照）。
【００５４】
ここで、実際には、ＸＭＬドキュメントを受け渡した後、制御部２１０は後述するステップＳ１２０の処理を行うが、説明の便宜のため、以下では、制御部２１０から受け渡されたＸＭＬドキュメントに対してＸＭＬパース部２２０の第２ＸＭＬ解釈部２２２が行う処理から説明する。
【００５５】
第２ＸＭＬ解釈部２２２は、データ制御部２１２からＸＭＬパース部２２０にＸＭＬドキュメントが受け渡されると図５に示す処理を開始する。処理を開始すると、ステップＳ２００において、受け渡されたＸＭＬドキュメントを構成する記述のうち、未処理の記述があるか否かを判断して、未処理の記述があれば（ステップＳ２００：Ｙｅｓ）、ステップＳ２１０に進む。未処理の記述がなければ（ステップＳ２００：Ｎｏ）、図５に示した処理を終了する。
【００５６】
ステップＳ２１０に処理が進むと、第２ＸＭＬ解釈部２２２は、ＸＭＬドキュメントのデータを解釈（パース）して、描画命令の描画範囲を取得する。なお、ここで行うパースは描画命令単位で行う処理であり、ＸＭＬドキュメントの記述を後端行から先頭行の記述に向って順番（すなわち、逆順）に処理する。１つの描画命令についての描画範囲を取得するとステップＳ２２０に進んで、第２ＸＭＬ解釈部２２２は、取得した描画命令の描画範囲が先頭バンドのバンド領域に掛かっているか否かを判断する。
【００５７】
このときの処理について図８に示すＸＭＬドキュメント及び図９に示す描画例を用いて説明する。図８に示すように、ＸＭＬドキュメントは、各行ごとに記述されたタグ及びタグに囲まれる部分に描画内容が記述されることにより構成されている。図８の例では、左端に示した行番号に従うと、「３」，「４」行目及び「ｍ」，「ｍ＋１」行目に描画内容の記述を含んでいる。
【００５８】
具体的には、図８に示すＸＭＬドキュメントによれば、図９に示すように、行番号「３」の記述により描画開始位置Ａ（ｘ＝ｘ１，ｙ＝ｙ１）が指定され、行番号「４」の記述により描画開始位置Ａから、位置Ｂ（ｘ２，ｙ１），Ｃ（ｘ２，ｙ２），Ｄ（ｘ１，ｙ２）を順番に通って描画開始位置Ａに戻る線からなる１つのオブジェクトＯＢ（４）を描画する描画内容が取得される。同様に、行番号「ｍ」の記述により描画開始位置Ｅ（ｘ３，ｙ３）が指定され、行番号「ｍ＋１」の記述により描画開始位置Ｅから、位置Ｆ（ｘ４，ｙ３），Ｇ（ｘ４，ｙ４），Ｈ（ｘ３、ｙ４）を順番に通って描画開始位置Ｅに戻る線からなる１つのオブジェクトＯＢ（ｍ＋１）を描画する描画内容が指定される。したがって、Ｙ方向について、オブジェクトＯＢ（４）の描画範囲は「ｙ１〜ｙ２」、オブジェクトＯＢ（ｍ＋１）の描画範囲は「ｙ３〜ｙ４」となる。
【００５９】
ここで、用紙搬送方向は用紙の短辺方向（Ｘ方向）又は長辺方向（Ｙ方向）であるが、用紙搬送方向はＹ方向であるものとすると、バンド領域はＹ方向に一定のバンド幅ＢＨごとに区分され、先頭バンド（バンド０）の範囲はＹ方向について「０〜ＢＨ」となる。
【００６０】
ステップＳ２２０の判断では、第２ＸＭＬ解釈部２２２は、先頭バンドの範囲が判断対象の描画命令の描画範囲に掛かっているか、すなわち範囲の重複が一部にでも存在しているか否かを判断することにより行う。例えば、図９の例に示すように、「ｙ１，ｙ２，ｙ４＞ＢＨ＞ｙ３」である場合、Ｙ方向の描画範囲「ｙ３〜ｙ４」であるオブジェクトＯＢ（ｍ＋１）は、「ｙ３〜ＢＨ」の範囲で先頭バンドの範囲と一部重複する。このとき、オブジェクトＯＢ（ｍ＋１）の描画命令の描画範囲は、先頭バンドのバンド領域に掛かっていると判断される。一方、オブジェクトＯＢ（４）の描画範囲「ｙ１〜ｙ２」は先頭バンドの範囲と重複していないので、オブジェクトＯＢ（４）の描画命令の描画範囲は、先頭バンドのバンド領域に掛かっていないと判断される。こうして、描画範囲が先頭バンドに掛かっていれば（ステップＳ２２０：Ｙｅｓ）、ステップＳ２３０に進み、先頭バンドに掛かっていなければ（ステップＳ２２０：Ｎｏ）、ステップＳ２００に戻ってＸＭＬドキュメントに含まれる次の描画命令の記述について処理を行う。
【００６１】
なお、図８，９の例では図形のオブジェクトを描画するときの一例について説明したが、ＸＭＬドキュメントの描画内容としてはこれに限られることなく、テキストやビットマップ形式などのイメージであってもよい。
【００６２】
ステップＳ２３０に処理が進むと、第２ＸＭＬ解釈部２２２は、描画範囲が先頭バンドに掛かる描画命令が記述された行番号を第１ＸＭＬ解釈部２２１に通知する。図８，９の例であれば、描画範囲が重複するオブジェクトＯＢ（ｍ＋１）の記述の後端の行である、「ｍ＋１」行目の行番号が通知される。この行番号は、逆順にパースして最初に見つけた先頭バンドにかかる描画命令の記述位置であるので、先頭バンドにかかる描画範囲を有する描画命令の記述範囲の終端位置を示している。第２ＸＭＬ解釈部２２２は、行番号を通知すると、図５に示した処理を終了する。
【００６３】
次に、第１ＸＭＬ解釈部２２１が行う処理について説明する。データ制御部２１２からＸＭＬパース部２２０にＸＭＬドキュメントが受け渡されると、第１ＸＭＬ解釈部２２１は、図６に示す処理を開始する。処理を開始すると、まず、ステップＳ３００において、第１ＸＭＬ解釈部２２１は、受け取ったＸＭＬドキュメントに未処理の記述があるか否かを判断する。未処理の記述があれば（ステップＳ３００：Ｙｅｓ）、ステップＳ３１０に進む。未処理の記述がなければ（ステップＳ３００：Ｎｏ）、ステップＳ３８０に進む。
【００６４】
ステップＳ３１０に処理が進むと、第１ＸＭＬ解釈部２２１は、ＸＭＬドキュメントの記述を正順に解釈（パース）して、描画命令を取得する。取得した描画命令は、ＲＡＭ２２に格納され、ＲＡＭ２２の格納先のアドレスを示したアドレス指定の描画命令を制御部２１０に受け渡す。なお、ここで行うパースは描画命令単位で行う処理であり、ＸＭＬドキュメントの記述を先頭行から後端行の記述に向って順番に処理するようにして、１つの描画命令について上述した処理を行うと、ステップＳ３２０に進む。
【００６５】
ステップＳ３２０に処理が進むと、第１ＸＭＬ解釈部２２１は、第２ＸＭＬ解釈部２２２より行番号通知を受け取っているか否かを判断する。行番号通知を受け取っていなければ（ステップＳ３２０：Ｎｏ）、ステップＳ３００に戻って次の記述についての処理を行う。ステップＳ３００，３１０の処理を繰り返し行うようにして、その処理中に行番号通知を受け取っていれば（ステップＳ３２０：Ｙｅｓ）、ステップＳ３３０に進む。
【００６６】
ステップＳ３３０に処理が進むと、第１ＸＭＬ解釈部２２１は、受け取った行番号通知の行番号と、ステップＳ３１０においてパース済みの行番号とを比較して、行番号通知の行番号がパース済みの行番号より大きいか否かを判断する。受け取った通知の行番号がパース済みの行番号より大きければ（ステップＳ３３０：Ｙｅｓ）、ステップＳ３４０に進んで、ステップＳ３１０と同様に、ＸＭＬドキュメントの記述を正順にパースして、１つの描画命令を取得して制御部２１０に受け渡す。そして、ステップＳ３３０に戻り再び判断を行う。受け取った通知の行番号の記述までパースされ、パース済みの行番号が通知の行番号以上となると（ステップＳ３３０：Ｎｏ）、ステップＳ３５０に進む。この判断により、少なくとも、行番号通知の行番号までの記述についてはパース済みとなり、先頭バンドを展開するために必要な描画命令について制御部２１０への受け渡しが完了してから、ステップＳ３５０の処理を行うことになる。
【００６７】
ステップＳ３５０に処理が進むと、第１ＸＭＬ解釈部２２１は、先頭バンドを展開するために必要な描画命令については制御部２１０への受け渡しが済んでいるので、先頭バンドの処理開始通知を、制御部２１０に受け渡す。
【００６８】
次に、ステップＳ３６０では、ＸＭＬドキュメントに未処理の記述がまだ残っているか否かを判断する。未処理の記述が残っていれば（ステップＳ３６０：Ｙｅｓ）、ステップＳ３７０に進んで、ＸＭＬドキュメントを正順にパースして、取得した１つの描画命令を制御部２１０に受け渡してから、ステップＳ３６０に戻るようにして、ＸＭＬドキュメントの全記述分の描画命令の受け渡しが完了するまで、処理を繰り返し行う。全記述について処理がなされると（ステップＳ３６０：Ｎｏ）、ステップＳ３８０に進む。
【００６９】
ステップＳ３００又はステップＳ３６０よりステップＳ３８０に処理が進むと、第１ＸＭＬ解釈部２２１は、ＸＭＬドキュメントの全記述についてパース・描画命令の受け渡しが終了しているので、制御部２１０にデータ終了通知を受け渡して、図６に示した処理を終了する。
【００７０】
このように、ＸＭＬパース部２２０においては、第２ＸＭＬ解釈部２２２が、ＸＭＬドキュメントより先頭バンドにかかる描画範囲を有する描画命令の記述部分の終端位置を探索している。第１ＸＭＬ解釈部２２１は、ＸＭＬドキュメントの記述を解釈して描画命令を次々に制御部２１０に受け渡すようにしながら、終端位置までの記述が処理されたタイミングで、先頭バンドの処理開始通知を制御部２１０に受け渡している。また、ＸＭＬドキュメントを受け取ったタイミングで、第１ＸＭＬ解釈部２２１が行う処理と、第２ＸＭＬ解釈部２２２が行う処理とを開始するようにして並列に処理を行っている。そして、先頭バンドの処理開始通知後には、ＸＭＬドキュメントの未処理の記述を解釈、描画命令を受け渡すようにして、全記述について処理を終えると、データ終了通知を制御部２１０に受け渡している。
【００７１】
次に、図４のフローチャートに戻って、制御部２１０がＸＭＬパース部２２０からデータを受け取った際に行う処理手順について説明する。
【００７２】
制御部２１０は、上記したＸＭＬドキュメントの入力処理（ステップＳ１００及びステップＳ１１０）を終了したタイミングでステップＳ１２０の処理を開始している。ステップＳ１２０では、データ制御部２１２は、ＸＭＬパース部２２０から受け渡されるデータを監視するようにして、ＸＭＬパース部２２０からデータを受信したか否かを判断し続けている。データを受信していなければ（ステップＳ１２０：Ｎｏ）、再びステップＳ１２０の処理を行うようにして監視を続行する。そして、ＸＭＬパース部２２０からデータを受信すると（ステップＳ１２０：Ｙｅｓ）、ステップＳ１３０に進む。
【００７３】
ステップＳ１３０に処理が進むと、データ制御部２１２は、受信したデータが描画命令であるか否かを判断する。受信したデータが描画命令であれば（ステップＳ１３０：Ｙｅｓ）、ステップＳ１４０に進む。描画命令でなければ（ステップＳ１３０：Ｎｏ）、ステップＳ１５０に進む。
【００７４】
ステップＳ１４０に処理が進むと、データ制御部２１２は、描画命令に示されるアドレス指定先のＲＡＭ２２にアクセスして、描画命令の実データを読み出し（図３（７）参照）、描画命令の実データをレンダリング部２３０に受け渡す（図３（８）参照）。
【００７５】
ステップＳ１４０において描画命令がレンダリング部２３０に受け渡すと、ステップＳ１２０に処理が戻るようにして、データ制御部２１２は次にＸＭＬパース部２２０から送信されるデータの監視を続行する。
【００７６】
また、ステップＳ１３０の処理において受信したデータが描画命令でなければ（ステップＳ１３０：Ｎｏ）、ステップＳ１５０に処理が進んで、受信したデータが先頭バンドの処理開始通知であるか否かを判断する。処理開始通知であれば（ステップＳ１５０：Ｙｅｓ）、ステップＳ１６０に進んで、先頭バンドの処理開始通知をレンダリング部２３０に受け渡す（図３（９）参照）。先頭バンドの処理開始通知を受け渡すと、ステップＳ１２０に処理が戻るようにして、データ制御部２１２は次にＸＭＬパース部２２０から送信されるデータの監視を続行する。
【００７７】
また、ステップＳ１５０の処理において受信したデータが先頭バンドの処理開始通知でなければ（ステップＳ１５０：Ｎｏ）、ステップＳ１７０に処理が進んで、受信したデータがデータ終了通知であるか否かを判断する。受信したデータがデータ終了通知でなければ（ステップＳ１７０：Ｎｏ）、ステップＳ１２０に戻ってデータの監視を続行する。データ終了通知であれば（ステップＳ１７０：Ｙｅｓ）、ステップＳ１８０に進んで、ＸＭＬドキュメントについての描画命令の送信が終了した旨のデータ終了通知を、レンダリング部２３０に受け渡してから、図４に示した処理を終了する。
【００７８】
このように、制御部２１０は、ＸＭＬパース部２２０から次々に受け取る、アドレス指定の描画命令を、実データに置き換えてレンダリング部２３０に順次受け渡す処理を行っている。また、ＸＭＬパース部２２０から、先頭バンドの処理開始通知又はデータ終了通知を受け取ると、受け取った通知をレンダリング部２３０に受け渡す処理を行っている。
【００７９】
次に、レンダリング部２３０が行う処理手順について、図７のフローチャートに従って説明する。
【００８０】
図７に示す処理を開始すると、ステップＳ４００において、レンダリング部２３０は制御部２１０からデータを受けとったか否かを判断して、新たにデータを受け取っていなければ（ステップＳ４００：Ｎｏ）、所定の時間経過後に再びステップＳ４００の判断を行うようにして、新たにデータを受け取っていればステップＳ４１０に進む（ステップＳ４００：Ｙｅｓ）。
【００８１】
ステップＳ４１０に処理が進むと、レンダリング部２３０は受け取ったデータが描画命令であるか否かを判断する。描画命令であれば（ステップＳ４１０：Ｙｅｓ）、ステップＳ４２０に進む。描画命令でなければ（ステップＳ４１０：Ｎｏ）、ステップＳ４３０に進む。
【００８２】
ステップＳ４２０に処理が進むと、レンダリング部２３０は、受け取った描画命令を展開する。そして、展開したオブジェクト画像を、受け取った描画命令の描画開始位置に配置して、ビットマップ形式の画像データにオブジェクト画像を埋め込む処理を行う。このレンダリング処理により、処理対象の描画命令を反映させた画像データが得られる。レンダリング処理を行うと、ステップＳ４１０に戻って、次に受け取るデータについて処理を行うようにして、次々に受け渡される描画命令について、次々にレンダリング処理を行う。
【００８３】
ステップＳ４１０において、受け取ったデータが描画命令でなければ（ステップＳ４１０：Ｎｏ）、ステップＳ４３０に進んで、受け取ったデータが先頭バンドの処理開始通知であるか否かを判断する。先頭バンドの処理開始通知であれば（ステップＳ４３０：Ｙｅｓ）、ステップＳ４４０に進む。描画命令でなければ（ステップＳ４３０：Ｎｏ）、ステップＳ４６０に進む。
【００８４】
ステップＳ４４０に処理が進むと、レンダリング部２３０は、ステップＳ４２０のレンダリング処理により、先頭バンドを展開するために必要となる全ての描画命令についてレンダリング処理が行われたので、生成された画像データから先頭バンドのバンドデータを生成する。そして、ステップＳ４５０において、先頭バンドのバンドデータを制御部２１０に受け渡す。制御部２１０の印刷制御部２１３は、通信Ｉ／Ｆ２６を介して先頭バンドのバンドデータをプリンタ３に送信することにより、ホストコンピュータ２はプリンタ３に先頭バンドの印刷処理を開始させる。レンダリング部２３０は、先頭バンドのバンドデータを受け渡すと、ステップＳ４１０に戻って、次に受け取るデータについて処理を行う。
【００８５】
また、ステップＳ４３０において受け取ったデータが先頭バンドの処理開始通知でなければ（ステップＳ４３０：Ｎｏ）、ステップＳ４６０に処理が進んで、レンダリング部２３０は、受け取ったデータがデータ終了通知であるか否かを判断する。データ終了通知でなければ（ステップＳ４６０：Ｎｏ）、ステップＳ４１０に戻って、次に受け取るデータについて処理を行う。
【００８６】
受け取ったデータがデータ終了通知であれば（ステップＳ４６０：Ｙｅｓ）、制御部２１０から次々に受け取る描画命令に対してステップＳ４２０のレンダリング処理を次々に行うようにしてＸＭＬドキュメント全体に対応する画像データが生成済みであるので、ステップＳ４７０に進んで、生成した画像データの画像をバンドごとに区分して、先頭バンド以降の各バンドごとのバンドデータを生成する。そして、ステップＳ４８０において生成したバンドデータを次々に制御部２１０に受け渡し、受け渡しを終えると図７に示した処理を終了する。制御部２１０の印刷制御部２１３は、受け渡されたバンドデータを通信Ｉ／Ｆ２６を介してプリンタ３に次々に送信することにより、プリンタ３に先頭バンド以降のバンドごとの印刷処理を次々に行わせる。これにより、全バンドについての印刷処理が行われて、ＸＭＬドキュメントに対応した印刷がなされる。
【００８７】
なお、ステップＳ１００及びステップＳ１１０の処理が入力工程、ステップＳ３００〜ステップＳ３８０の処理が第１の解釈工程、ステップＳ２００〜ステップＳ２３０の処理が第２の解釈工程、ステップＳ４２０及びステップＳ４４０の処理が第１の展開工程、ステップＳ４２０及びステップＳ４７０の処理が第２の展開工程、ステップＳ４５０及びステップＳ４８０の処理が印刷制御工程に相当する。
【００８８】
以上に説明したように、本実施形態では、先頭バンド以外のバンドについての描画命令を展開する前に、先頭バンドの描画に必要となる描画命令を展開して先頭バンドのバンドデータを生成して、プリンタ３に先頭バンドの印刷処理を開始させている。そして、先頭バンドのバンドデータの生成後に、先頭バンド以外のバンドについての描画命令を展開して、先頭バンド以降のバンドデータを順次プリンタ３に送り出すようにしている。
【００８９】
以下、本実施形態の効果を記載する。
【００９０】
（１）プリンタ３は、先頭バンドのバンドデータを受け取るステップＳ４５０のタイミングで、印刷処理を開始することができるので、ＸＭＬオブジェクトの記述から得られる全ての描画命令を展開してからバンドデータを生成する必要がある従来の処理方法に比べて、先頭バンドの印刷処理を開始するタイミングを早めることができる。そして、プリンタ３が先頭バンドについての印刷処理の実行中に、プリンタドライバ２００は、先頭バンド以降のバンドについての描画命令をさらに展開して先頭バンド以降のバンドデータを生成するための処理を開始しているので、ＸＭＬドキュメントに対応する印刷処理をより早いタイミングで終えることができる。これにより、ユーザにとって印刷完了までの待ち時間が短縮することになるので、ユーザにとっての利便性が向上する。
【００９１】
（２）第２ＸＭＬ解釈部２２２が、先頭バンドに掛かる描画範囲を有する描画命令の記述の後端位置の行番号を検出すると、第１ＸＭＬ解釈部２２１が、この行番号の通知を受け取り、後端位置より前方の記述を解釈する。このとき、第１ＸＭＬ解釈部２２１が行う処理と第２ＸＭＬ解釈部２２２が行う処理とを並列に実行しているので、第２ＸＭＬ解釈部２２２が後端位置の探索中にも、第１ＸＭＬ解釈部２２１は、記述を解釈して描画命令を次々に取得している。これにより、処理効率が高まり、より早いタイミングで印刷を開始できるようになる。
【００９２】
以上、本発明の一実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施することもできる。以下、変形例を挙げて説明する。
【００９３】
（変形例１）上記実施形態では、印刷制御装置としてのホストコンピュータ側のプリンタドライバ２００が、パース及びレンダリングの処理を行ったが、本発明はこの態様に限られない。例えば、ホストコンピュータ側でパースの処理を行い、プリンタ側でレンダリングの処理を行うようにしてもよい。すなわち、図１０（ａ）に示すように、印刷システム１は、制御部２１０及びＸＭＬパース部２２０を有するプリンタドライバ２００を備えたホストコンピュータ２と、レンダリング部２３０、印刷処理部３００、及び印刷エンジン３１０を備えたプリンタ３とを具備する。
【００９４】
この印刷システム１において、制御部２１０は、ＸＭＬパース部２２０からの行番号通知を通信Ｉ／Ｆ２６によりプリンタ３に受け渡して、プリンタ３側のレンダリング部２３０が、行番号通知を受け取ると、それまでに受け取った描画命令に従ってレンダリング処理を行うことにより、先頭バンドのバンドデータを生成する。先頭バンドのバンドデータを印刷処理部３００に受け渡して、印刷処理を開始させると、ホストコンピュータ２より次に受け取る描画命令に従うレンダリング処理を次々に行うようにして、各バンドのバンドデータを生成して、印刷処理部３００はこのバンドデータに従う印刷処理を行う。印刷処理部３００は、バンドデータを印刷エンジン３１０に対応する画像信号に変換して、印刷エンジン３１０はこの画像信号に従って印刷を行う。これにより、印刷処理部３００が印刷処理を開始するタイミングが早まり、印刷完了までの待ち時間を短縮することができる。
【００９５】
また、プリンタ側に印刷制御装置の構成を有したシステムであってもよい。すなわち、図１０（ｂ）に示すように、プリンタ３は、ＸＭＬパース部２２０、レンダリング部２３０、印刷処理部３００、及び印刷エンジン３１０を備えている。ホストコンピュータ２はＸＭＬドキュメントを含む印刷データをプリンタ３に送信して、ＸＭＬパース部２２０及びレンダリング部２３０を有するプリン３が、パース及びレンダリングを行うようにしてもよい。
【００９６】
（変形例２）上記実施形態では、先頭の１つのバンドを先頭バンドとして処理したが、印刷処理の処理順が先頭から所定数のバンドを先頭バンドとして処理してもよい。このとき、先頭から所定数のバンドに掛かる描画命令の記述の後端位置を探索するようにして、上記実施形態と同様の処理を行うとよい。
【００９７】
（変形例３）上記実施形態では、図９の例において、バンド０にオブジェクトの一部が描画されるためにバンド０を先頭バンドとしたが、オブジェクトなどが描画されないバンドについては印刷処理を行うことがないため、オブジェクトを含む最初のバンドを先頭バンドとするとよい。例えば、バンド０〜ｎ−１にはオブジェクトが描画されることなく、バンドｎに初めてオブジェクトが描画される場合は、バンドｎを先頭バンドとして処理する。また、このときは、先頭バンド以前のバンドについてはレンダリング処理を行う必要がないため、ステップＳ４４０の処理において、先頭バンドのバンドデータに加えて、オブジェクトが描画されていない先頭バンドより前のバンドのバンドデータを制御部２１０に受け渡して、プリンタ３に出力するようにするとよい。
【００９８】
（変形例４）上記実施形態では先頭バンドに対応する記述の後端位置を求めるようにして、先頭バンドの処理に必要な記述範囲を特定したが、先頭バンドに対応する記述の先頭位置を求めて、記述範囲を特定するようにしてもよい。例えば、図１１に示すように、第４の変形例に掛かるプリンタドライバ２００のＸＭＬパース部２２０は、第１ＸＭＬ解釈部２２１及び第２ＸＭＬ解釈部２２２に加えて、さらに第３ＸＭＬ解釈部２２３を有している。第３ＸＭＬ解釈部２２３は、ＸＭＬドキュメントの記述を先頭から順番（すなわち、正順）に解釈して、先頭バンドを描画するために必要な描画命令に対応する記述の先頭位置を探索する。このときの第１ＸＭＬ解釈部２２１は、第３ＸＭＬ解釈部２２２により探索された先頭位置の記述より解釈を開始して、第２ＸＭＬ解釈部２２３により探索された後端位置の記述まで解釈することにより、先頭バンドのバンドデータを生成する。このように、先頭バンドの描画に必要な記述の前後を特定して優先的に処理することにより、先頭バンドを処理するために要する処理量がさらに少なくなるので、印刷開始のタイミングをさらに早めることができる。
【００９９】
（変形例５）展開後のデータ形式はビットマップ形式に限られない。例えば、バンドごとに描画内容の描画命令を示す中間コードのデータを受け渡す印刷システムであれば、レンダリング部２３０は描画命令を、中間コードデータ（画像データ）に展開する。このとき、プリンタ３は、受け取る中間コードデータに、レンダリング処理・色変換処理・スクリーン処理などの印刷処理を次々に行うようにして、処理するとよい。
【０１００】
（変形例６）上記実施形態では、ＸＭＬ形式のデータを処理する例について説明したが、ＨＴＭＬ(Hypertext Markup Language)やＸＨＴＭＬ(Extensible Hypertext Markup Language)などのマークアップ言語で記述されたデータを処理するようにしてもよい。
【０１０１】
（変形例７）本発明は、プリンタに限られることなく、複写機やファックスに適用することもできる。
【図面の簡単な説明】
【０１０２】
【図１】本実施形態に係る印刷システムの構成を示したブロック図。
【図２】ホストコンピュータの機能的構成を示したブロック図。
【図３】プリンタドライバ内におけるデータの動きを説明する説明図。
【図４】制御部が行う処理手順を示したフローチャート。
【図５】第２ＸＭＬ解釈部が行う処理手順を示したフローチャート。
【図６】第１ＸＭＬ解釈部が行う処理手順を示したフローチャート。
【図７】レンダリング部が行う処理手順を示したフローチャート。
【図８】ＸＭＬドキュメントの一例を示した図。
【図９】描画命令に従う描画例を示した図。
【図１０】第１の変形例を説明するための説明図、（ａ）、（ｂ）は変形例の一例を示した図。
【図１１】第４の変形例を説明するための説明図。
【図１２】バンドを説明するための説明図。
【符号の説明】
【０１０３】
１…印刷システム、２…印刷制御装置としてのホストコンピュータ、３…印刷装置としてのプリンタ、４…ネットワークサーバ、５…記録媒体としてのＣＤ−ＲＯＭ、２０…ＣＰＵ、２１…ＲＯＭ、２２…ＲＡＭ、２３…ハードディスク、２４…ＣＤ−ＲＯＭドライブ、２５…ネットワークインターフェイス、２６…通信インターフェイス、１００…アプリケーション、２００…プリンタドライバ、２１０…制御部、２１１…入力手段としてのＸＭＬドキュメント入力部、２１２…データ制御部、２１３…印刷制御手段としての印刷制御部、２２０…ＸＭＬパース部、２２１…第１の解釈手段としての第１ＸＭＬ解釈部、２２２…第２の解釈手段としての第２ＸＭＬ解釈部、２３０…展開手段としてのレンダリング部、３００…印刷処理部、３１０…印刷エンジン。
【図１】
2008015649.tif 000003
【図２】
2008015649.tif 000004
【図３】
2008015649.tif 000005
【図４】
2008015649.tif 000006
【図５】
2008015649.tif 000007
【図６】
2008015649.tif 000008
【図７】
2008015649.tif 000009
【図８】
2008015649.tif 000010
【図９】
2008015649.tif 000011
【図１０】
2008015649.tif 000012
【図１１】
2008015649.tif 000013
【図１２】
2008015649.tif 000014