(57)【特許請求の範囲】
【請求項１】
バンド単位で印刷データを作成する印刷データ作成装置であり、
外部装置から、一又は複数の画像オブジェクトの圧縮データである特定の圧縮データに含まれる複数個の部分圧縮データのそれぞれを順次取得する取得手段と、
前記複数個の部分圧縮データのそれぞれを順次展開することによって、複数個の部分展開データのそれぞれを順次作成する展開データ作成手段と、
１個の部分圧縮データから１個の部分展開データが作成される毎に、当該１個の部分圧縮データを消去する圧縮データ消去手段と、
１個の部分展開データが作成される毎に、当該１個の部分展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定するバンド特定手段と、
１個の部分展開データについてバンドが特定される毎に、当該１個の部分展開データを消去する展開データ消去手段と、
１個の部分展開データについてバンドが特定される毎に、当該バンドと、当該１個の部分展開データの元の１個の部分圧縮データのデータ範囲と、が対応づけられている対応情報を、特定のメモリ領域に記憶させるバンド−データ範囲記憶手段と、
前記複数個の部分展開データのそれぞれについて前記対応情報が前記特定のメモリ領域に記憶された後に、印刷データが作成されるべき対象バンドに対応づけられている対象データ範囲を前記特定のメモリ領域から特定する範囲特定手段と、
前記外部装置から、前記特定の圧縮データのうち、前記対象データ範囲を有する対象圧縮データを再取得する再取得手段と、
前記対象圧縮データを展開することによって対象展開データを作成し、前記対象展開データを印刷データに変換することによって、前記対象バンドの印刷データを作成する印刷データ作成手段と
を備える印刷データ作成装置。
【請求項２】
前記複数個の部分圧縮データのそれぞれは、予め決められている所定サイズを有することを特徴とする請求項１の印刷データ作成装置。
【請求項３】
展開データ用メモリ領域と印刷データ用メモリ領域とをさらに備え、
前記展開データ用メモリ領域は、前記複数個の部分展開データのそれぞれを順次記憶し、
前記展開データ消去手段は、１個の部分展開データについてバンドが特定される毎に、当該１個の部分展開データを前記展開データ用メモリ領域から消去し、
前記印刷データ用メモリ領域は、前記対象バンドの印刷データを記憶する
ことを特徴とする請求項１又は２の印刷データ作成装置。
【請求項４】
最初のバンドの印刷データを作成するために必要であると前記バンド特定手段によって特定された各部分展開データを変換することによって前記最初のバンドの印刷データを作成し、前記最初のバンドの印刷データを前記印刷データ用メモリ領域に記憶させる記憶制御手段をさらに備え、
前記対象バンドが前記最初のバンドである場合には、
前記範囲特定手段は、前記対象データ範囲を前記特定のメモリ領域から特定せず、
前記再取得手段は、前記最初のバンドの印刷データを作成するための圧縮データを再取得せず、
前記対象バンドが前記最初のバンドより後のバンドである場合には、
前記範囲特定手段は、前記対象データ範囲を前記特定のメモリ領域から特定し、
前記再取得手段は、前記対象圧縮データを再取得する
ことを特徴とする請求項３の印刷データ作成装置。
【請求項５】
前記一又は複数の画像オブジェクトの回転角度を特定する回転角度特定手段をさらに備え、
前記バンド−データ範囲記憶手段は、
前記回転角度特定手段によって特定された前記回転角度がゼロでない場合に、前記対応情報を前記特定のメモリに記憶させ、
前記回転角度特定手段によって特定された前記回転角度がゼロである場合に、前記対応情報を前記特定のメモリに記憶させない
ことを特徴とする請求項１から４のいずれかの印刷データ作成装置。
【請求項６】
バンド単位で印刷データを作成する印刷データ作成方法であり、
外部装置から、一又は複数の画像オブジェクトの圧縮データである特定の圧縮データに含まれる複数個の部分圧縮データのそれぞれを順次取得する取得工程と、
前記複数個の部分圧縮データのそれぞれを順次展開することによって、複数個の部分展開データのそれぞれを順次作成する展開データ作成工程と、
１個の部分圧縮データから１個の部分展開データが作成される毎に、当該１個の部分圧縮データを消去する圧縮データ消去工程と、
１個の部分展開データが作成される毎に、当該１個の部分展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定するバンド特定工程と、
１個の部分展開データについてバンドが特定される毎に、当該１個の部分展開データを消去する展開データ消去工程と、
１個の部分展開データについてバンドが特定される毎に、当該バンドと、当該１個の部分展開データの元の１個の部分圧縮データのデータ範囲と、が対応づけられている対応情報を、特定のメモリ領域に記憶させるバンド−データ範囲記憶工程と、
前記複数個の部分展開データのそれぞれについて前記対応情報が前記特定のメモリ領域に記憶された後に、印刷データが作成されるべき対象バンドに対応づけられている対象データ範囲を前記特定のメモリ領域から特定する範囲特定工程と、
前記外部装置から、前記特定の圧縮データのうち、前記対象データ範囲を有する対象圧縮データを再取得する再取得工程と、
前記対象圧縮データを展開することによって対象展開データを作成し、前記対象展開データを印刷データに変換することによって、前記対象バンドの印刷データを作成する印刷データ作成工程と
を備える印刷データ作成方法。
【請求項７】
バンド単位で印刷データを作成するためのコンピュータプログラムであり、
外部装置から、一又は複数の画像オブジェクトの圧縮データである特定の圧縮データに含まれる複数個の部分圧縮データのそれぞれを順次取得する取得工程と、
前記複数個の部分圧縮データのそれぞれを順次展開することによって、複数個の部分展開データのそれぞれを順次作成する展開データ作成工程と、
１個の部分圧縮データから１個の部分展開データが作成される毎に、当該１個の部分圧縮データを消去する圧縮データ消去工程と、
１個の部分展開データが作成される毎に、当該１個の部分展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定するバンド特定工程と、
１個の部分展開データについてバンドが特定される毎に、当該１個の部分展開データを消去する展開データ消去工程と、
１個の部分展開データについてバンドが特定される毎に、当該バンドと、当該１個の部分展開データの元の１個の部分圧縮データのデータ範囲と、が対応づけられている対応情報を、特定のメモリ領域に記憶させるバンド−データ範囲記憶工程と、
前記複数個の部分展開データのそれぞれについて前記対応情報が前記特定のメモリ領域に記憶された後に、印刷データが作成されるべき対象バンドに対応づけられている対象データ範囲を前記特定のメモリ領域から特定する範囲特定工程と、
前記外部装置から、前記特定の圧縮データのうち、前記対象データ範囲を有する対象圧縮データを再取得する再取得工程と、
前記対象圧縮データを展開することによって対象展開データを作成し、前記対象展開データを印刷データに変換することによって、前記対象バンドの印刷データを作成する印刷データ作成工程と
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像オブジェクトの圧縮データを取得し、その圧縮データを展開することによって展開データを作成し、その展開データを変換することによって印刷データを作成する技術に関する。特に、バンド単位で印刷データを作成する技術に関する。
【背景技術】
【０００２】
下記の特許文献１には、バンド単位で印刷データを作成するプリンタが開示されている。ヘッドの１走査分の画像部分（バンド）に相当する容量のメモリにラスタイメージデータを順次展開していくため、ヘッドのノズル数とバンドの横幅の長さで決まる容量の部分的なメモリ領域があれば、印刷することが可能である。この特許文献１には、画像オブジェクトを回転処理して印刷することも開示されている。
【０００３】
【特許文献１】特開２００１−１１９５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、画像オブジェクトを回転処理して印刷する場合、ラスタイメージデータを順次展開しても、印刷するバンドと、ラスタイメージデータに展開した画像部分とが対応していないため、画像オブジェクトをすべてラスタイメージデータに展開する必要があり、メモリの負担が大きくなる。
【０００５】
本明細書によって開示される技術は、上記の実情に鑑みて創作されたものであり、画像オブジェクトの圧縮データから印刷データを効率的に作成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、バンド単位で印刷データを作成する印刷データ作成装置であり、外部装置から、一又は複数の画像オブジェクトの圧縮データである特定の圧縮データに含まれる複数個の部分圧縮データのそれぞれを順次取得する取得手段と、前記複数個の部分圧縮データのそれぞれを順次展開することによって、複数個の部分展開データのそれぞれを順次作成する展開データ作成手段と、１個の部分圧縮データから１個の部分展開データが作成される毎に、当該１個の部分圧縮データを消去する圧縮データ消去手段と、１個の部分展開データが作成される毎に、当該１個の部分展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定するバンド特定手段と、１個の部分展開データについてバンドが特定される毎に、当該１個の部分展開データを消去する展開データ消去手段と、
１個の部分展開データについてバンドが特定される毎に、当該バンドと、当該１個の部分展開データの元の１個の部分圧縮データのデータ範囲と、が対応づけられている対応情報を、特定のメモリ領域に記憶させるバンド−データ範囲記憶手段と、前記複数個の部分展開データのそれぞれについて前記対応情報が前記特定のメモリ領域に記憶された後に、印刷データが作成されるべき対象バンドに対応づけられている対象データ範囲を前記特定のメモリ領域から特定する範囲特定手段と、前記外部装置から、前記特定の圧縮データのうち、前記対象データ範囲を有する対象圧縮データを再取得する再取得手段と、前記対象圧縮データを展開することによって対象展開データを作成し、前記対象展開データを印刷データに変換することによって、前記対象バンドの印刷データを作成する印刷データ作成手段とを備える印刷データ作成装置である。
本明細書によって開示される一つの形態の技術は、バンド単位で印刷データを作成する印刷データ作成装置である。この印刷データ作成装置は、取得手段と展開データ作成手段とバンド特定手段と消去手段とバンド−データ範囲記憶手段と範囲特定手段と印刷データ作成手段とを備える。取得手段は、一又は複数の画像オブジェクトの圧縮データを取得する。展開データ作成手段は、取得手段によって取得された圧縮データを部分的に展開することによって展開データを作成することを繰り返す。なお、展開データ作成手段は、画像オブジェクトの全ての圧縮データが取得手段によって取得された後に、その圧縮データを部分的に展開することを開始してもよい。また、後述するように、取得手段は、少しずつ圧縮データを取得するようにしてもよい。この場合、展開データ作成手段は、取得手段によって圧縮データが取得される毎に展開データを作成してもよい。
【０００７】
バンド特定手段は、展開データ作成手段によって作成された展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定することを繰り返す。消去手段は、バンド特定手段によってバンドが特定された展開データを消去することを繰り返す。上述したように、バンド特定手段は、圧縮データから作成された展開データに基づいて、その展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定する。これにより、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲との関係が明らかになる。バンド−データ範囲記憶手段は、この関係を記憶する。即ち、バンド−データ範囲記憶手段は、バンド特定手段によって特定された情報に基づいて、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲とを対応づけて記憶する。範囲特定手段は、印刷データが作成されるべきバンドに対応づけられているデータ範囲をバンド−データ範囲記憶手段から特定する。印刷データ作成手段は、範囲特定手段によって特定されたデータ範囲の圧縮データから印刷データを作成する。これにより、１バンド分の印刷データが完成することになる。
【０００８】
上記の技術では、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲との関係を導き出す。この関係さえわかれば、各バンドの印刷データを作成する際に、そのバンドを作成するのに必要な圧縮データを特定することができる。例えば、１つのバンドの印刷データを作成する際に、そのバンドを作成するのに必要な圧縮データのみを展開することができる。各バンドの印刷データを作成する際に、全ての圧縮データ（もしくはほぼ全ての圧縮データ）を展開する必要がない。本技術では、バンドと圧縮データのデータ範囲との関係を作成するための処理時間が必要ではあるが、その関係さえ構築してしまえば、各バンドの印刷データを作成するための処理時間は短くて済む。しかも、上記の技術では、圧縮データの展開、バンドの特定、及び、展開データの消去を繰り返すことによって、バンドと圧縮データのデータ範囲との関係を作成する。全ての圧縮データから作成される展開データをキャッシュしておく手法を採用しないために、メモリの使用量を抑えることができる。この技術を利用すると、印刷データを効率的に作成することを実現することができる。
【０００９】
なお、展開データ作成手段は、１つの画像オブジェクトのみが存在する場合に、その画像オブジェクトの圧縮データを部分的に展開することを繰り返してもよい。また、展開データ作成手段は、例えば２つの画像オブジェクトが存在する場合に、一方の画像オブジェクトの全ての圧縮データを展開し、次いで他方の画像オブジェクトの圧縮データの全てを展開してもよい。この場合も、展開データ作成手段が圧縮データを部分的に展開することを繰り返していると言える。
【００１０】
上述したように、展開データ作成手段は、画像オブジェクトの全ての圧縮データが取得手段によって取得された後に、その圧縮データを部分的に展開することを実行してもよい。一方において、取得手段は、外部から所定サイズの圧縮データを取得することを繰り返してもよい。なお、「所定サイズ」は、必ずしも一定サイズである必要はない。例えば、取得手段は、あるタイミングにおいては１０００バイトの圧縮データを取得し、別のタイミングでは９００バイトの圧縮データを取得してもよい。展開データ作成手段は、上記の所定サイズの圧縮データを展開することによって展開データを作成することを繰り返してもよい。バンド特定手段は、上記の所定サイズの圧縮データから作成された展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定することを繰り返してもよい。消去手段は、上記の所定サイズの圧縮データから作成された展開データを消去することを繰り返してもよい。
【００１１】
消去手段は、上記の所定サイズの圧縮データから作成された展開データとその圧縮データとを消去することを繰り返す。
この構成によると、展開データのみならず圧縮データも消去されるために、メモリの使用量をより抑えることができる。
【００１２】
展開データのみならず圧縮データも消去される場合、以下の構成を採用してもよい。即ち、印刷データ作成装置は、範囲特定手段によって特定されたデータ範囲の圧縮データを外部から取得する再取得手段をさらに備えていてもよい。この場合、印刷データ作成手段は、再取得手段によって取得された圧縮データを展開することによって展開データを作成し、その展開データを印刷データに変換することによって印刷データを作成する。
【００１３】
印刷データ記憶装置は、展開データ記憶手段と印刷データ記憶手段とをさらに備えていてもよい。展開データ記憶手段は、展開データ作成手段によって作成された展開データを記憶してもよい。消去手段は、バンド特定手段によってバンドが特定された展開データを展開データ記憶手段から消去してもよい。印刷データ記憶手段は、印刷データ作成手段によって作成された印刷データを記憶してもよい。
【００１４】
本技術では、バンドと圧縮データのデータ範囲との関係を作成するために、全ての圧縮データを展開する必要がある。ここで作成された展開データから最初のバンド（最初に印刷されるバンド）の印刷データを作成して印刷データ記憶手段に記憶しておくことができる。この場合、バンドと圧縮データのデータ範囲との関係を構築した後に、最初のバンドに対応する圧縮データから印刷データを作成する必要がない。これを実現するために、印刷データ作成装置は、最初のバンドの印刷データを作成するために必要であるとバンド特定手段によって特定された展開データを変換することによって印刷データを作成し、その印刷データを印刷データ記憶手段に記憶させる記憶制御手段をさらに備えていてもよい。
この構成によると、より効率的に印刷データを作成することができる。なお、この構成の場合、バンド−データ範囲記憶手段は、最初のバンドと、その最初のバンドを作成するために必要な圧縮データのデータ範囲とを対応づけて記憶しなくてもよい（ただし記憶してもよい）。
【００１５】
印刷データ作成装置は、一又は複数の画像オブジェクトの回転角度を特定する回転角度特定手段をさらに備えていてもよい。この場合、回転角度特定手段によって特定された上記の回転角度がゼロでない場合のみ、バンド−データ範囲記憶手段に記憶されるべき情報（即ちバンドと圧縮データのデータ範囲との関係）を作成してもよい。
この構成では、回転角度がゼロの場合、バンド−データ範囲記憶手段に記憶されるべき情報が作成されない。なお、回転角度にかかわらず、バンド−データ範囲記憶手段に記憶されるべき情報を作成するようにしてもよい。
【００１６】
本明細書によって開示される技術は、バンド単位で印刷データを作成する印刷データ作成方法として表現することもできる。この印刷データ作成方法は、以下の工程を備える。
（１）一又は複数の画像オブジェクトの圧縮データを取得する取得工程。
（２）取得工程で取得された上記の圧縮データを部分的に展開することによって展開データを作成することを繰り返す展開データ作成工程。
（３）展開データ作成工程で作成された展開データがいずれのバンドの印刷データを作成するために必要であるのかを特定することを繰り返すバンド特定工程。
（４）バンド特定工程でバンドが特定された展開データを消去することを繰り返す消去工程。
（５）バンド特定工程で特定された情報に基づいて、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲とを対応づけて記憶するバンド−データ範囲記憶工程。
（６）印刷データが作成されるべきバンドに対応づけられているデータ範囲をバンド−データ範囲記憶工程で作成された情報から特定する範囲特定工程。
（７）範囲特定工程で特定されたデータ範囲の圧縮データから印刷データを作成する印刷データ作成工程。
この方法を利用すると、印刷データを効率的に作成することができる。
【００１７】
バンド単位で印刷データを作成するためのコンピュータプログラムも有用である。このコンピュータプログラムは、上記の（１）〜（７）の各工程をコンピュータに実行させる。このコンピュータプログラムを利用すると、印刷データを効率的に作成するコンピュータデバイスを実現することができる。
【発明を実施するための最良の形態】
【００１８】
ここでは、以下の実施例に記載の技術の主要な特徴をまとめておく。
（形態１）印刷データ作成装置は、シングルコネクションを利用して外部から画像オブジェクトの圧縮データをダウンロードする。なお、マルチコネクションを利用して並列的に画像オブジェクトの圧縮データをダウンロードしてもよい。
（形態２）画像オブジェクトと各バンドとの相対的な位置関係を決定するレイアウト処理が実行される。レイアウト処理は、ＸＨＴＭＬ−Ｐｒｉｎｔデータに含まれる各画像オブジェクトの位置データに基づいて実行される。
（形態３）印刷媒体に印刷される順に各バンドの印刷データが作成される。１つのバンドのバンド幅は、例えば、インクジェットヘッドが１回の走査によって印刷することが可能である範囲に基づいて設定される。
（形態４）印刷データは、いわゆる二値データである。しかしながら、印刷データは、他の種類のデータ（例えば多値データ）であってもよい。
【００１９】
（形態５）展開データは、例えば、ＲＧＢの多階層（例えば２５６階層）によって表現されるビットマップデータである。印刷データは、展開データより小さい階層によって表現されるビットマップデータである。印刷データの階層数は、プリンタの具体的な構成に依存する。例えば、ドットの有無のみを利用して印刷するプリンタの場合、印刷データは、２階層（例えば０と１）によって表現される。一方において、大ドット、中ドット、小ドット、及び、ドット無を利用して印刷するプリンタの場合、印刷データは、４階層（例えば０と１と２と３）によって表現される。
【００２０】
図１は、印刷媒体１００に印刷するために利用される印刷データが複数のバンド１１２，１１４，１１６に分けられている様子を示す。この例の場合、アルファベットの「Ａ」を有する画像オブジェクト１２０が印刷媒体１００に印刷される。画像オブジェクト１２０を印刷媒体１２０に印刷するためには、各バンド１１２，１１４，１１６の印刷データが順に作成される。即ち、最初にバンド１１２の印刷データが作成されて印刷され、次いでバンド１１４の印刷データが作成されて印刷され、次いでバンド１１６の印刷データが作成されて印刷される。例えば、バンド１１２の印刷データを作成する場合、以下の手順に従って処理を実行することを提案することができる。まず、画像オブジェクト１２０の圧縮データ１２２を展開することによって展開データを作成し、その展開データを変換することによって印刷データを作成する。次いで、圧縮データ１２４から印刷データを作成する。さらに、圧縮データ１２６，１２８，１３０から印刷データを順に作成する。これにより、バンド１１２の印刷データが完成し、その印刷データに従って印刷媒体１００に印刷することができる。バンド１１２の印刷データは、印刷後に消去することができる。次いで、圧縮データ１３０の続きから圧縮データを展開することによって、バンド１１４の印刷データを作成することができる。このように、バンド単位で印刷データを作成して印刷することを繰り返すと、印刷が終了したバンドの印刷データを消去していくことができる。このために、メモリの使用量を少なくすることができる。
【００２１】
また、上記の例の場合、画像オブジェクト１２０の圧縮データを部分的に展開することを繰り返している。即ち、圧縮データ１２２を最初に展開し、次いで圧縮データ１２４，１２６，１２８，１３０を順に展開している。この手法を採用せずに、画像オブジェクト１２０の全ての圧縮データを同時に展開すればよいように思える。しかしながら、この場合、全ての圧縮データから作成された展開データをキャッシュしておく必要があり、メモリの負担が大きい。上記の例のように圧縮データを部分的に展開することを繰り返すようにすると、印刷データに変換された展開データを消去していくことができる。このために、メモリの使用量を少なくすることができる。
【００２２】
上述したように、画像オブジェクトを回転処理して印刷が行なわれることがある。例えば、図２は、画像オブジェクト１２０が図１の状態から右回りに９０度回転した状態を示す。この例の場合も、画像オブジェクト１２０の圧縮データを部分的に展開することを繰り返すことによって、各バンド１１２〜１１６の印刷データを作成することができる。例えば、バンド１１２の印刷データを作成する場合、圧縮データ１２２〜１３０のみならず、圧縮データ１３０の続きの圧縮データについても展開する必要がある。ほぼ全ての圧縮データを展開しなければ、バンド１１２の印刷データを作成することができない。また、上記の図１の例の場合、バンド１１２を作成するために必要な圧縮データ１２２〜１３０の続きから圧縮データを展開していけば、バンド１１４の印刷データを作成することができる。しかしながら、図２の例の場合、バンド１１２を作成するために必要な圧縮データの続きから圧縮データを展開するわけにはいかない。バンド１１４の印刷データを作成するためには、全ての圧縮データ（もしくはほぼ全ての圧縮データ）を再び展開しなければならない。同様に、バンド１１６の印刷データを作成するためにも、全ての圧縮データ（もしくはほぼ全ての圧縮データ）を再び展開しなければならない。これでは、印刷データを作成するための処理時間が長くなってしまう。最初のバンド１１２の印刷データを作成する際に全ての展開データをキャッシュしておけば、バンド１１４やバンド１１６の印刷データを作成する際に、圧縮データを再び展開する必要はなくなる。しかしながら、この場合、上述したようにメモリの負担が大きくなる。
【００２３】
単純に考えると、印刷データが作成されるべきバンドに対応する圧縮データのみを展開すればよいように思える。例えば、バンド１１２の印刷データを作成する場合、画像オブジェクト１２０の全ての圧縮データの中から、バンド１１２の印刷データを作成するために必要な圧縮データのデータ範囲を特定し、そのデータ範囲の圧縮データから印刷データを作成すればよいように思える。しかしながら、圧縮データから展開データを作成してみなければ、その圧縮データがいずれのバンドの印刷データを作成するために必要であるのかがわからない。即ち、圧縮データの状態では、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲との関係がわからない。このために、本明細書によって開示される技術では、以下の手法を採用することによって、印刷データを効率的に作成することを実現する。
【実施例】
【００２４】
図面を参照して本発明の実施例を説明する。図３は、本実施例の多機能機システム２を示す。多機能機システム２は、ＰＣ１０と多機能機４０を備える。
【００２５】
（ＰＣの構成）
ＰＣ１０は、操作装置１２と表示装置１４と制御装置１６とネットワークインターフェイス２４を備える。操作装置１２は、キーボードやマウスによって構成されている。ユーザは、操作装置１２を操作することによって、様々な情報や指示をＰＣ１０に入力することができる。例えば、ユーザは、印刷指示をＰＣ１０に入力することができる。この結果、ＰＣ１０から多機能機４０に後述するＸＨＴＭＬ−Ｐｒｉｎｔデータが送られることになる。表示装置１４は、様々な情報を表示することができる。
【００２６】
制御装置１６は、ＣＰＵ１８とＲＯＭ２０とＲＡＭ２２等を有する。ＣＰＵ１８は、ＲＯＭ２０に記憶されているプログラムに従って各種の処理を実行する。ＲＯＭ２０は、各種のプログラムを記憶している。例えば、ＲＯＭ２０は、後述するＸＨＴＭＬ−Ｐｒｉｎｔデータを作成して多機能機４０に送信する処理を実行するためのプログラムを記憶している。ＲＡＭ２２は、ＣＰＵ１８が処理を実行する過程で生成される様々な情報を一時的に記憶することができる。ネットワークインターフェイス２４は、ネットワーク回線６０に接続されている。ネットワーク回線６０は、多機能機４０に接続されている。ＰＣ１０は、ネットワークインターフェイス２４を介して多機能機４０と通信可能である。
【００２７】
（多機能機の構成）
多機能機４０は、操作装置４２と表示装置４４と印刷装置４６とスキャナ装置４８と制御装置５０とネットワークインターフェイス５８を有する。操作装置４２は、複数のキーによって構成されている。ユーザは、操作装置４２を操作することによって、様々な情報や指示を多機能機４０に入力することができる。表示装置４４は、様々な情報を表示することができる。本実施例の印刷装置４６は、インクジェットタイプの印刷装置である。印刷装置４６は、後述する二値データ（印刷データ）に基づいて印刷用紙に印刷することができる。スキャナ装置４８は、原稿をスキャンして画像データを生成することができる。
【００２８】
制御装置５０は、ＣＰＵ５２とＲＯＭ５４とＲＡＭ５６等を有する。ＣＰＵ５２は、ＲＯＭ５４に記憶されているプログラムに従って各種の処理を実行する。ＲＯＭ５４は、各種のプログラムを記憶している。例えば、ＲＯＭ５４は、ＸＨＴＭＬ−Ｐｒｉｎｔデータに基づいて二値データのレイアウトを決定する処理、画像オブジェクトの圧縮データをダウンロードする処理、圧縮データを展開して展開データを作成する処理、展開データを二値データに変換する処理等を実行するためのプログラムを記憶している。ＲＡＭ５６は、ＣＰＵ５６が処理を実行する過程で生成される様々な情報を一時的に記憶することができる。ＲＡＭ５６に記憶される情報の内容は後で説明する。ネットワークインターフェイス５８は、ネットワーク回線６０に接続されている。ネットワーク回線６０は、ＰＣ１０に接続されている。多機能機４０は、ネットワークインターフェイス５８を介してＰＣ１０と通信可能である。
【００２９】
（多機能機が記憶するデータの内容）
図４は、多機能機４０のＲＡＭ５６の記憶内容の一例を示す。ＲＡＭ５６は、ＸＨＴＭＬ−Ｐｒｉｎｔデータメモリ（ＸＰＭ）７０と、コンテキストデータメモリ（ＣＤＭ）７２と、展開データメモリ（ＤＤＭ）８６と、バンドメモリ（ＢＭ）８８と、その他の記憶領域９０等を有する。ＸＰＭ７０は、ＰＣ１０から送信されてくるＸＨＴＭＬ−Ｐｒｉｎｔデータを記憶することができる。ＸＨＴＭＬ−Ｐｒｉｎｔデータの内容は、後で詳しく説明する。ＣＤＭ７２は、画像オブジェクトのアドレス（ファイル名）７４と、メタ情報７６と、インデックス７８と、圧縮データ８０と、受信済フラグ８２と、テーブル８４とを対応づけて記憶することができる。これらの各データ７４〜８４の具体的な内容は、後で詳しく説明する。ＤＤＭ８６は、展開データを記憶することができる。ＢＭ８８は、１バンド分の二値データ（印刷データ）を記憶することができる。記憶領域９０は、様々なデータを記憶することができる。記憶領域９０に記憶されるデータの内容は、必要に応じて後で説明する。
【００３０】
（ＰＣが実行する処理）
上述したように、ユーザは、ＰＣ１０の操作装置１２を操作することによって、印刷指示を入力することができる。この場合、ＰＣ１０は、印刷対象のデータからＸＨＴＭＬ−Ｐｒｉｎｔデータ（詳しくは後述する）を作成する。ＰＣ１０は、ＸＨＴＭＬ−Ｐｒｉｎｔデータを多機能機４０に送信する。この結果、多機能機４０は、以下の処理を実行することになる。
【００３１】
（多機能機が実行する処理）
多機能機４０が実行する処理について説明する。この処理は、多機能機４０のＣＰＵ５２によって実行される。図５から図７は、ＰＣ１０からＸＨＴＭＬ−Ｐｒｉｎｔデータが送られてきた場合に多機能機４０が実行する処理のフローチャートを示す。
【００３２】
ＣＰＵ５２は、ＸＨＴＭＬ−Ｐｒｉｎｔデータを受信すると（Ｓ１０）、そのＸＨＴＭＬ−ＰｒｉｎｔデータをＸＰＭ７０（図４参照）に記憶させる。次いで、ＣＰＵ５２は、ＰＣ１０に対するＴＣＰコネクションを確立する（Ｓ１２）。続いて、ＣＰＵ５２は、ＸＰＭ７０に記憶されているＸＨＴＭＬ−Ｐｒｉｎｔデータに基づいてレイアウト処理を実行する（Ｓ１４）。
【００３３】
レイアウト処理の内容について詳しく説明する。図８から図１０は、ＸＨＴＭＬ−Ｐｒｉｎｔデータの一部を例示する。図８に示されるように、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、基準ＵＲＩ３０２を含んでいる。基準ＵＲＩ３０２は、ＰＣ１０のＩＰアドレス「１９２．１６８．０．１００」と「ｐｈｏｔｏ」を含んでいる。多機能機４０は、この基準ＵＲＩ３０２に含まれる画像オブジェクト（画像ファイル；後で詳しく説明する）の圧縮データをダウンロードし、それを展開して展開データを作成し、展開データを二値データ（印刷データ）に変換する。ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、印刷メディアのルールを指定する文字列３０４と、印刷可能な範囲を指定する文字列３０６と、印刷媒体のサイズ３０７と、ブランク３０８とを含んでいる。このブランク３０８がどのようにして利用されるのかについては、後で詳しく説明する。
【００３４】
図９に示されるように、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、ブランク３１０を含んでいる（後で詳しく説明する）。また、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、画像オブジェクトの位置を指定するデータ３１５を含んでいる。ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、１ページ内に整列状態で印刷されるべき８つの画像オブジェクトを含んでいる。即ち、このＸＨＴＭＬ−Ｐｒｉｎｔデータ３００に基づいて印刷されると、８つの画像オブジェクトが１枚の印刷媒体にインデックス印刷される。このために、データ３１５は、８つの画像オブジェクトのそれぞれの位置データを含んでいる。各画像オブジェクトの位置データは、ブランク３２０，３２２，３２４と幅３２６と高さ３２８（後で詳しく説明する）を含んでいる。また、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、画像オブジェクトのより詳しい位置を指定するクラス属性３４０を含んでいる。クラス属性３４０は、画像オブジェクトの回転角やより詳細なブランク等を指定するものである。
【００３５】
図１０に示されるように、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、各画像オブジェクトのファイル名３５２とクラス３５４を指定するデータ３５０を含んでいる。例えば、データ３５０ａは、「ｐｈｏｔｏ  ００１．ｊｐｇ」というファイル名３５２と、「ｉｍｇ＿３４＿０ｄｅｇ」というクラス３５４を含んでいる。このクラス３５４は、図９の符号３４０ａのクラス属性に対応する。即ち、データ３５０ａに対応する画像オブジェクトは、「ｐｈｏｔｏ  ００１．ｊｐｇ」というファイル名３５２を有するものであり、クラス属性３４０ａに従って回転角や詳細なブランクが決定される。この例の場合、符号３４０ａのクラス属性は、「ｉｍａｇｅ＿ｏｒｉｅｎｔａｔｉｏｎ：０ｄｅｇ」を含んでいる。これは、データ３５０ａに対応する画像オブジェクトの回転角が「０」であることを意味する。なお、クラス属性３４０ａに含まれる詳細なブランクについての説明は省略する。
【００３６】
図１１は、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００に含まれる各ブランク等がどのような意味を持つのかを説明するための図を示す。符号４００は、１ページの印刷媒体（例えば印刷用紙）を示す。印刷媒体４００のサイズは、図８のサイズ３０７によって決定される。この例の場合、レターサイズの印刷媒体４００が採用される。ブランク４０８は、図８のブランク３０８に対応する。この例の場合、ブランク４０８は「０．２」（ｉｎｃｈ）である。ブランク４０９は、多機能機４０によって予め決められている値である。ブランク４１０は、図９のブランク３１０に対応する。この例の場合、ブランク４１０は「０」である。これにより、ページ領域４０６が画定する。このページ領域４０６内に複数の画像オブジェクトが配置されることになる。
【００３７】
ページ領域４０６のブランク４２２は、図９のブランク３２２に対応する。例えば、図９の位置データ３１５ａでは、ブランク３２２が「０」である。このために、ブランク４２２も「０」になる。ページ領域４０６のブランク４２４は、図９のブランク３２４に対応する。例えば、図９の位置データ３１５ａでは、ブランク３２４が「０．４６６」（ｉｎｃｈ）である。このために、ブランク４２４も「０．４６６」（ｉｎｃｈ）になる。ページ領域４０６のブランク４２０は、図９のブランク３２０に対応する。例えば、図９の位置データ３１５ａでは、ブランク３２０が「０」である。このために、ブランク４２０も「０」になる。幅４２６は、図９の幅３２６に対応する。例えば、図９の位置データ３１５ａでは、幅３２６が「３．２５」（ｉｎｃｈ）である。このために、幅４２６も「３．２５」（ｉｎｃｈ）になる。高さ４２８は、図９の高さ３２８に対応する。例えば、図９の位置データ３１５ａでは、高さ３２８が「２．５」（ｉｎｃｈ）である。このために、高さ４２８も「２．５」（ｉｎｃｈ）になる。
【００３８】
ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００に含まれる各ブランク等を参照にすることによって、画像オブジェクトの位置を決定することができる。即ち、図１１の例では、符号４５０で示される領域に１つの画像オブジェクトが配置される。上述したように、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００は、８つの画像オブジェクトのそれぞれの位置データ３１５（図９参照）を含んでいる。このために、図１１の印刷媒体４００内における８つの画像オブジェクトの位置を決定することができる。図５のＳ１４のレイアウト処理において、ＣＰＵ５２は、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００から８つの画像オブジェクトの位置を決定する。図１２は、印刷媒体４００内における画像オブジェクト５１０，５２０，５３０，５４０の位置を示す。なお、実際には８つの画像オブジェクトが存在するが、図１２では、印刷媒体４００の上半分のみを示しており、４つの画像オブジェクト５１０，５２０，５３０，５４０のみを示している。
【００３９】
ＣＰＵ５２は、二値データをバンド単位で作成して印刷する。即ち、１ページの印刷媒体４００の印刷に利用される二値データは、複数のバンド４８０，４８２，４８４，４８６に分けられる。詳しくは後述するが、ＣＰＵ５２は、まず、第１バンド４８０の二値データを作成して印刷する。次いで、第２バンド４８２の二値データを作成して印刷する。この処理を第３バンド４８４以降も繰り返すことによって、１ページの印刷媒体４００に対応する全ての二値データが印刷されることになる。なお、１つのバンドのバンド幅（図１２の上下方向の長さ）は、インクジェットヘッドの１回の走査で印刷することができる幅である。なお、バンド幅は、他の基準によって定められてもよい。
【００４０】
図５に戻って、ＣＰＵ５２が実行する処理の説明を続ける。Ｓ１４のレイアウト処理で作成されたレイアウトデータ（画像オブジェクトの位置とバンドとの相対的な位置関係を示すデータ）は、例えば、記憶領域９０（図４参照）に一時的に記憶される。レイアウト処理を実行すると、ＣＰＵ５２は、画像オブジェクトの回転角度を特定する（Ｓ１５）。ＸＨＴＭ−Ｐｒｉｎｔデータ３００のデータ３５０（図１０参照）から各画像オブジェクト５１０，５２０，５３０，５４０の回転角度を特定することができる。図１０の例では、全ての画像オブジェクト５１０，５２０，５３０，５４０の回転角度がゼロである。この場合、ＣＰＵ５２は、Ｓ１５でＹＥＳと判断してＳ１６に進む。一方において、回転角度がゼロではない画像オブジェクトが一つでも存在する場合、ＣＰＵ５２は、Ｓ１５でＮＯと判断して図１９のＳ１００に進む。
【００４１】
Ｓ１６以降の処理について説明する。Ｓ１００以降の処理は、後で詳しく説明する。Ｓ１６では、ＣＰＵ５２は、第１バンド４８０を処理バンドとして特定する。また、Ｓ１６では、ＣＰＵ５２は、ＢＭ８８（図４参照）をクリアする。次いで、ＣＰＵ５２は、処理バンドに画像オブジェクトが含まれているのか否かを判断する（Ｓ１８）。例えば、図１２の例の場合、第１バンド４８０に画像オブジェクト５１０，５２０が含まれている。この場合、ＣＰＵ５２は、Ｓ１８でＹＥＳと判断する。Ｓ１８でＹＥＳの場合、ＣＰＵ５２は、処理対象の画像オブジェクトを特定する（Ｓ２０）。例えば、図１２の例のように２つの画像オブジェクト５１０，５２０が存在する場合、一方のオブジェクト（本実施例では画像オブジェクト５１０とする）を特定する。Ｓ２０を終えると、図６のＳ５０に進む。
【００４２】
Ｓ５０では、ＣＰＵ５２は、処理対象の画像オブジェクトのコンテキストデータが存在するのか否かを判断する。図４のＣＤＭ７２は、画像オブジェクト毎のコンテキストデータを記憶することができる。ＣＰＵ５２は、ＣＤＭ７２の記憶内容をチェックすることによって、処理対象の画像オブジェクトのコンテキストデータが既に作成済であるのか否かを判断する。例えば、図１２の第１バンド４８０が処理バンドである場合、画像オブジェクトのコンテキストデータがまだ存在しない。この場合、Ｓ５０でＮＯと判断される。
【００４３】
Ｓ５０でＮＯの場合、ＣＰＵ５２は、処理対象の画像オブジェクト５１０のコンテキストデータを作成してＣＤＭ７２に記憶させる（Ｓ５２）。まず、ＣＰＵ５２は、画像オブジェクト５１０のファイル名「ｐｈｏｔｏ  ００１．ｊｐｇ」をＣＤＭ７２に記憶させる。この際、メタ情報７６とインデックス７８と圧縮データ８０には何も記憶されない。また、受信済フラグ８２は「０」である。なお、Ｓ１５でＹＥＳと判断されてＳ１６以降の処理が実行される場合、テーブル８４が作成されない。テーブル８４は、Ｓ１５でＮＯと判断されてＳ１００以降の処理が実行される場合に作成される。テーブル８４については後で詳しく説明する。
【００４４】
次いで、ＣＰＵ５２は、処理対象の画像オブジェクト５１０のデータ（本実施例ではＪＰＥＧファイル）を所定バイト分（本実施例では「４０００バイト」とする）だけ返信するようにＰＣ１０にリクエストを送信する（Ｓ５４）。具体的には、画像オブジェクト５１０のファイル名「ｐｈｏｔｏ  ００１．ｊｐｇ」を含むＨＴＴＰリクエストを送信する。このＨＴＴＰリクエストには、４０００バイト分（０〜３９９９バイトの範囲）のみを返信するように指示する文字列が含まれる。この結果、ＰＣ１０は、「ｐｈｏｔｏ  ００１．ｊｐｇ」のＪＰＥＧファイルに含まれる４０００バイト分のデータを多機能機４０に送信する（ＨＴＴＰレスポンス）。なお、本実施例の多機能機４０は、シングルコネクションでＰＣ１０とデータ通信を行なう。即ち、ＣＰＵ５２は、複数のＨＴＴＰリクエストを同時的に送信しない。ＣＰＵ５２は、１つのＨＴＴＰリクエストを送信し、それに対するＨＴＴＰレスポンスを受信すると、次のＨＴＴＰリクエストを送信する。
【００４５】
ここで、ＪＰＥＧファイルのデータ構造について説明しておく。図１３は、ＪＰＥＧファイルのデータ構造を簡単に示す。ＪＰＥＧファイル６１０は、メタ情報６１２と圧縮データ６１４を含む。メタ情報６１２は、画像に関するパラメータ（解像度等）や圧縮データ６１４を展開するために必要なパラメータ（ハフマンテーブル等）を含んでいる。圧縮データ６１４は、画像オブジェクトのＪＰＥＧ画像データ（後述する展開データ）が圧縮されたものである。ＪＰＥＧファイル６１０では、メタ情報６１２が先頭に存在しており、それに続いて圧縮データ６１４が存在している。従って、多機能機４０が先頭からデータを送信するようにＰＣ１０に要求すると、ＰＣ１０は、メタ情報６１２を先に返信することになる。
【００４６】
例えば、画像オブジェクト５１０について図６のＳ５４の処理がはじめて行なわれる場合、ＣＰＵ５２は、先頭から３９９９バイトまでの範囲を返信することを指示するＨＴＴＰリクエストを送信する。図１４は、ＨＴＴＰリクエスト７００の一例を示す。ＨＴＴＰリクエスト７００は、画像オブジェクト５１０のファイル名７０１を含んでいる。また、ＨＴＴＰリクエスト７００は、データの範囲を示す文字列７０２を含んでいる。例えば、先頭から３９９９バイトまでの範囲を送信するように指示する場合、文字列７０２に「０−３９９９」という数値が挿入される。この結果、ＰＣ１０は、先頭から３９９９バイトまでのデータを含むＨＴＴＰレスポンスを多機能機４０に返信する。
【００４７】
図１５は、ＨＴＴＰレスポンスの一例を示す。ＨＴＴＰレスポンス７１０は、いずれの範囲のデータを返信しているのかを示す文字列７１２と、ＪＰＥＧファイル６００の総データサイズを示す文字列７１４を含んでいる。ＨＴＴＰレスポンス７１０は、メタ情報（図１３の符号６１２参照）や圧縮データ（図１３の符号６１４参照）を含む。ＨＴＴＰレスポンス７１０に含まれるデータは、ＨＴＴＰリクエスト７００の内容に応じて変わる。例えば、ＪＰＥＧファイル６００の先頭から６０００バイトまでがメタ情報であり、先頭から３９９９バイトまでを返信することを指示するＨＴＴＰリクエスト７００が受信された場合、ＨＴＴＰレスポンス７１０は、メタ情報のみを含むことになる。また、上記の例で４０００バイトから７９９９バイトまでを返信することを指示するＨＴＴＰリクエスト７００が受信された場合、ＨＴＴＰレスポンス７１０は、メタ情報と圧縮データの両方を含むことになる。また、上記の例で８０００バイトから１１９９９バイトまでを返信することを指示するＨＴＴＰリクエスト７００が受信された場合、ＨＴＴＰレスポンス７１０は、圧縮データのみを含むことになる。なお、図１５では、ＨＴＴＰレスポンス７１０に含まれる圧縮データ７１６が例示されている。
【００４８】
図６に示されるＳ５４の処理を行なうと、４０００バイト分のデータが多機能機４０によって受信される（Ｓ５６）。ＣＰＵ５２は、ＣＤＭ７２（図４参照）のインデックス７８を増加させる。例えば、画像オブジェクト５１０（ｐｈｏｔｏ  ００１．ｊｐｇ）について先頭から３９９９バイトまでの範囲のデータが受信された場合、その画像オブジェクト５１０に対応するコンテキストデータのインデックス７８を「３９９９」まで増加させる。なお、Ｓ５６でメタ情報６１２（図１３参照）が受信された場合、ＣＰＵ５２は、そのメタ情報６１２をＣＤＭ７２に記憶させる。これにより、ＣＰＵ５２は、ＣＤＭ７２に記憶されているメタ情報６１２を利用して、後工程（図７のＳ７０）で圧縮データを展開することができる。
【００４９】
次いで、ＣＰＵ５２は、メタ情報を全て受信したのか否かを判断する（Ｓ５８）。例えば、メタ情報６１２（図１３参照）には、メタ情報自身の全データサイズを計算することができるデータが含まれる。ＣＰＵ５２は、メタ情報６１２の全データサイズを計算し、その全データサイズを受信したのか否かをインデックス７８から判断することができる。Ｓ５８でＮＯの場合、ＣＰＵ５２は、Ｓ５４に戻ってＨＴＴＰリクエストを実行する。このＨＴＴＰリクエストには、インデックス７８に記憶されている値（例えば３９９９）に続く４０００バイト分の範囲（４０００〜７９９９）を送信するように指示する文字列７０２（図１４参照）が含まれる。
【００５０】
Ｓ５８でＹＥＳの場合、メタ情報６１０が全て受信されたことになる。例えば、ＪＰＥＧファイル６１０のメタ情報６１２が６０００バイトのデータである場合、最初のＳ５６の処理で先頭から３９９９バイトまでの範囲のメタ情報６１２が受信され、次のＳ５６の処理で４０００から６０００バイトまでの範囲のメタ情報６１２（即ち全てのメタ情報）が受信されることになる。この場合、６００１から７９９９バイトまでの圧縮データ６１４も受信されることになる。この場合、Ｓ６０の処理が実行される。Ｓ６０では、ＣＰＵ５２は、圧縮データをＣＤＭ７２（図４参照）に記憶させる。例えば、画像オブジェクト５１０（ｐｈｏｔｏ  ００１．ｊｐｇ）の圧縮データが受信された場合、その画像オブジェクト５１０のファイル名に対応づけて圧縮データを記憶させる。ＣＰＵ５２は、Ｓ６０を終えると、図７のＳ７０に進む。
【００５１】
Ｓ７０では、ＣＰＵ５２は、Ｓ６０でＣＤＭ７２に記憶された圧縮データを展開することによって、展開データを作成する。この展開データは、ＤＤＭ８６（図４参照）に一時的に記憶される。さらに、ＣＰＵ５２は、ＤＤＭ８６に記憶された展開データを二値データに変換し、その二値データをＢＭ８８（図４参照）に書き込む。展開データは、ＲＧＢの２５６階調のビットマップデータである。二値データは、展開データが二値化されたビットマップデータである。印刷装置４６（図３参照）は、後工程（図５のＳ３２）において、この二値データに従って印刷媒体４００にドットを形成することができる。なお、以下では、二値データのことを「印刷データ」と呼ぶことがある。ＣＰＵ５２は、展開データと二値データを作成すると、ＣＤＭ７２に記憶されている圧縮データをクリアするとともに、ＤＤＭ８６に記憶されている展開データをクリアする。
【００５２】
図１６は、２つの画像オブジェクト５１０，５２０の展開データが作成される様子を説明するための図を示す。上記のＳ７０の処理が実行されることによって、画像オブジェクト５１０の部分５１０ａに対応する展開データ（及び二値データ）が作成されることになる。ＣＰＵ５２は、処理対象の画像オブジェクト５１０について、処理バンド（第１バンド４８０）に対応する全ての展開データ（即ち二値データ）が作成されたのか否かを判断する（Ｓ７２）。例えば、図１６の部分５１０ａに対応する展開データが作成された段階では、第１バンド４８０に含まれる部分５１０ｂ，５１０ｃの展開データがまだ作成されていない。この場合、ＣＰＵ５２は、Ｓ７２でＮＯと判断する。
【００５３】
Ｓ７２でＮＯの場合、ＣＰＵ５２は、ＰＣ１０にＨＴＴＰリクエストを送信する（Ｓ７４）。このＨＴＴＰリクエストには、インデックス７８に記憶されている値（例えば７９９９）に続く４０００バイト分の範囲（８０００〜１１９９９）を送信するように指示する文字列７０２（図１４参照）が含まれる。即ち、図６のＳ５６で受信された圧縮データの続きの圧縮データをリクエストする。この結果、４０００バイト分の圧縮データが多機能機４０によって受信される（Ｓ７６）。さらに、ＣＰＵ５２は、ＣＤＭ７２のインデックス７８（図４参照）を増加させ、圧縮データをＣＤＭ７２に記憶させる。次いで、ＣＰＵ５２は、画像オブジェクト５１０を構成する全ての圧縮データを受信したのか否かを判断する（Ｓ７８）。Ｓ７８では、４０００バイト分のリクエストを送信した結果として、４０００バイトのレスポンスがあった場合に、ＮＯと判断される。一方において、４０００バイト分のリクエストを送信した結果として、４０００バイト未満のレスポンスがあった場合に、ＹＥＳと判断される。この場合、ＣＰＵ５２は、処理対象の画像オブジェクトに対応する受信済フラグ８２（図４参照）を「０」から「１」に変更する（Ｓ８０）。
【００５４】
Ｓ７８でＮＯの場合、ＣＰＵ５２は、Ｓ７０に戻って圧縮データを展開して展開データを作成し、展開データを二値データ（印刷データ）に変換する。これにより、図１６の部分５１０ｂの展開データが作成され、部分５１０ｂの二値データがＢＭ８８に書き込まれることになる。この状態では、Ｓ７２で再びＮＯと判断される。この結果、ＣＰＵ５２は、Ｓ７４，Ｓ７６，Ｓ７０の処理を再び繰り返すことになる。これにより、図１６の部分５１０ｃの展開データが作成され、部分５１０ｃの二値データがＢＭ８８に書き込まれることになる。なお、部分５１０ｃは、第２バンド４８２にも跨っている。この場合、ＣＰＵ５２は、第１バンド４８０に含まれる二値データのみをＢＭ８８に書き込む。また、この場合、ＣＰＵ５２は、Ｓ７０の処理において、第１バンド４８０に対応する展開データを作成するために必要であった圧縮データのみをＣＤＭ７２からクリアする。即ち、第２バンド４８２に対応する展開データを作成するために必要である圧縮データは、ＣＤＭ７２に残ることになる。この圧縮データは、第２バンド４８２に対応する展開データを作成する際に利用される。
【００５５】
図１６の部分５１０ａ，５１０ｂ，５１０ｃに対応する二値データが作成された場合、Ｓ７２でＹＥＳと判断される。この場合、図７のＳ８４に進む。Ｓ８４では、ＣＰＵ５２は、処理対象の画像オブジェクト５１０の圧縮データがＣＤＭ７２に存在せず、かつ、受信済フラグ８２（図４参照）が「１」であるのか否かを判断する。この受信済フラグ８２は、Ｓ７８でＹＥＳの場合に「１」になるものである。即ち、画像オブジェクト５１０の全ての圧縮データが受信された場合に、画像オブジェクト５１０に対応する受信済フラグ８２が「１」になる。図１６の部分５１０ａ，５１０ｂ，５１０ｃに対応する二値データが作成された段階では、画像オブジェクト５１０の全ての圧縮データが受信されていない。このために、Ｓ８４でＮＯと判断される。この場合、ＣＰＵ５２は、Ｓ８６をスキップして図５のＳ３０に進む。一方において、Ｓ８４でＹＥＳの場合、ＣＰＵ５２は、処理対象の画像オブジェクト（例えば５１０）に対応するコンテキストデータをＣＤＭ７２からクリアする（Ｓ８６）。
【００５６】
図５のＳ３０では、ＣＰＵ５２は、処理バンド（第１バンド４８０）に未処理の画像オブジェクトが存在するのか否かを判断する。即ち、ＣＰＵ５２は、第１バンド４８０に含まれていて、第１バンド４８０に対応する二値データが作成されてない画像オブジェクトが存在するのか否かを判断する。例えば、画像オブジェクト５１０の二値データ（図１６の符号５１０ａ，５１０ｂ，５１０ｃの二値データ）が作成された段階でＳ３０の処理が実行される場合、画像オブジェクト５２０については二値データがまだ作成されていない。この場合、Ｓ３０でＹＥＳと判断され、Ｓ２０に戻る。Ｓ２０では、画像オブジェクト５２０が処理対象の画像オブジェクトとして特定される。ＣＰＵ５２は、画像オブジェクト５２０について図６と図７の各処理を実行する。この結果、図１６に示される部分５２０ａと部分５２０ｂに対応する展開データ（及び二値データ）が作成されることになる。この場合、図５のＳ３０でＮＯと判断され、Ｓ３２に進む。
【００５７】
Ｓ３２では、ＣＰＵ５２は、第１バンド４８０の印刷処理を実行する。ＣＰＵ５２は、ＢＭ８８（図４参照）に記憶されている二値データ（印刷データ）に従って印刷するように印刷装置４６に指示する。これにより、印刷装置４６が第１バンド４８０を印刷することになる。次いで、ＣＰＵ５２は、全てのバンドについて印刷されたのか否かを判断する（Ｓ３４）。例えば、第１バンド４８０が印刷された段階では、第２バンド４８２以降の印刷が行なわれていない。この場合、Ｓ３４でＮＯと判断される。ＣＰＵ５２は、次の第２バンド４８２を処理バンドとして特定する（Ｓ３６）。また、ＣＰＵ５２は、ＢＭ８８（図４参照）をクリアする。即ち、第１バンド４８０の二値データをクリアする。
【００５８】
ＣＰＵ５２は、Ｓ３６を終えると、第２バンド４８２についてＳ１８以降の処理を実行する。この結果、図１６に示される部分５１０ｃの一部（第２バンド４８２に対応する部分）、部分５１０ｄ、部分５１０ｅ、部分５１０ｆ、部分５１０ｇ、及び部分５１０ｈの展開データ（及び二値データ）が作成される。次いで、図１６に示される部分５２０ｃ、部分５２０ｄ、部分５２０ｅ、部分５２０ｆ、及び部分５２０ｇの展開データ（及び二値データ）が作成される。これにより、第２バンド４８２の二値データが完成し、第２バンド４８２の印刷処理が実行される（図５のＳ３２）。ＣＰＵ５２は、第３バンド４８４以降についても同様に印刷処理を実行する。これにより、８つの画像オブジェクト５１０，５２０等が１ページに印刷された印刷媒体４００が得られることになる。ＣＰＵ５２は、全てのバンドの印刷を終えると、図５のＳ３４でＹＥＳと判断する。この場合、ＣＰＵ５２は、コネクションを切断し（Ｓ３８）、処理を終える。
【００５９】
上記の処理を実行すると、画像オブジェクト５１０の圧縮データが少しずつダウンロードされ（４０００バイト単位でダウンロードされ）、展開データ（及び二値データ）が作成される。展開データが作成される毎に、画像オブジェクト５１０について第１バンド４８０に対応する全ての展開データが作成されたのか否かが判断される。ここで肯定的な判断がなされると、画像オブジェクト５１０のダウンロードをストップし、画像オブジェクト５２０のダウンロードに移行する。この結果、第１バンド４８０の二値データを作成するのに必要な展開データ（部分５１０ａ〜５１０ｃに対応する展開データ）のみが作成される。即ち、画像オブジェクト５１０について第２バンド４８２や第３バンド４８４に対応する全ての展開データが作成されるわけではない。このために、展開データを記憶するためのメモリ使用量（本実施例の場合はＤＤＭ８６の使用量）は少なくて済む。シングルコネクションで複数の画像オブジェクト５１０，５２０等の圧縮データをダウンロードして展開データを作成する場合に、メモリ容量を圧迫することなく展開データを効率的に作成することができる。
【００６０】
続いて、図５のＳ１５でＮＯと判断されて実行される処理について説明する。図１７は、上記のＸＨＴＭＬ−Ｐｒｉｎｔデータ３００とは別のＸＨＴＭＬ−Ｐｒｉｎｔデータ８００の一部を示す。ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００と同様に、ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００は、画像オブジェクトの位置を指定するデータ８１５を含んでいる。ただし、ＸＨＴＭＬ−Ｐｒｉｎｔデータ３００の場合と違って、ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００は、１つの画像オブジェクトの位置を指定するデータ８１５のみを含んでいる。データ８１５は、ブランク８２０，８２２，８２４と幅８２６と高さ８２８を含んでいる。これらは、図９のブランク３２０，３２２，３２４と幅３２６と高さ３２８と同様の意味を持つ。ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００は、クラス属性８４０を含んでいる。また、ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００は、画像オブジェクトのファイル名８５２とクラス８５４を指定するデータ８５０を含んでいる。ファイル名８５２は、「ｐｈｏｔｏ  ００１．ｊｐｇ」である。クラス８５４は、「ｉｍｇ＿３４＿２７０ｄｅｇ」である。これは、ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００に含まれる画像オブジェクトの回転角度が２７０度（右回りに２７０度）であることを意味する。
【００６１】
図１８は、ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００に含まれる画像オブジェクト１０００を模式的に示す。印刷媒体９００に対する印刷に利用される二値データ（印刷データ）は、複数のバンド９８０，９８２，９８４，９８６，９８８に分けられる。画像オブジェクト１０００は、アルファベットの「Ａ」という文字を含む。画像オブジェクト１０００の絶対的なデータ構成（ＰＣ１０に記憶されている状態）では、「Ａ」が上を向いている。即ち、画像オブジェクト１０００を印刷する際の回転角度がゼロであれば、上を向いている「Ａ」が印刷される。図１８の例では、画像オブジェクト１０００が右回り２７０度の回転角度を有するために、「Ａ」が左を向いている。左を向いている「Ａ」が印刷媒体９００に印刷される。この場合であっても、画像オブジェクト１０００の絶対的なデータ構成に従って先頭から順に圧縮データがダウンロードされる。即ち、図１８の例の場合、最初に圧縮データ１０１０がダウンロードされ、次いで圧縮データ１０１２がダウンロードされ、次いで圧縮データ１０１４がダウンロードされる。
【００６２】
上記のＸＨＴＭＬ−Ｐｒｉｎｔデータ８００の場合、ＣＰＵ５２は、図５のＳ１５でＮＯと判断する。この場合、図１９のＳ１００に進む。Ｓ１００では、ＣＰＵ５２は、ＢＭ８８をクリアする。次いで、ＣＰＵ５２は、テーブル作成処理を実行する（Ｓ１０２）。図２０は、テーブル作成処理のフローチャートを示す。ＣＰＵ５２は、処理対象の画像オブジェクトを特定する（Ｓ１３０）。上記のＸＨＴＭＬ−Ｐｒｉｎｔデータ８００の場合、ＣＰＵ５２は、画像オブジェクト１０００を特定する。次いで、ＣＰＵ５２は、画像オブジェクト１０００のコンテキストデータ（図４参照）を作成する（Ｓ１３２）。この処理は、上記の図６のＳ５２の処理と同様である。続いて、ＣＰＵ５２は、処理対象の画像オブジェクト１０００のデータを４０００バイト分だけ返信するようにＰＣ１０にリクエストを送信する（Ｓ１３４）。この処理は、上記の図６のＳ５４の処理と同様である。これにより、４０００バイト分のデータが多機能機４０によって受信される（Ｓ１３６）。ＣＰＵ５２は、ＣＤＭ７２（図４参照）のインデックス７８を増加させる。この処理は、上記の図６のＳ５６の処理と同様である。ＣＰＵ５２は、メタ情報を全て受信したのか否かを判断する（Ｓ１３８）。この処理は、上記の図６のＳ５８の処理と同様である。
【００６３】
Ｓ１３８でＹＥＳの場合、ＣＰＵ５２は、ブロックを作成する処理を実行する（Ｓ１４０）。図１８と図２２を参照しながら、ブロックについて説明する。図１８に示されるように、画像オブジェクト１０００は、複数のバンド９８０〜９８８に跨っている。上述したように、圧縮データ１０１０，１０１２，１０１４が順にダウンロードされる。各圧縮データ１０１０，１０１２，１０１４から作成される展開データ（二値データも）は、一定の横幅ＤＷを有する。なお、本実施例では、図１８の見た目のとおりに、ＤＷを横幅と呼ぶ。しかしながら、画像オブジェクト１０００の絶対的なデータ構成（即ち回転角度がゼロの場合）では、ＤＷは縦幅になる。横幅ＤＷは、規格値であってもよいし、オブジェクト毎に異なる値であってもよい。図２２は、画像オブジェクト１０００を簡単に示す。バンド９８０〜９８８と幅ＤＷとによって仕切られた１つの領域のことを本実施例ではブロックと呼ぶ。即ち、本実施例の画像オブジェクト１０００の場合、３５個のブロックＢ１〜Ｂ３５が存在する。なお、図２２では、全てのブロックに符号を付けていない。例えば、第１バンド９８０には、７つのブロックＢ５，Ｂ１０，Ｂ１５，Ｂ２０，Ｂ２５，Ｂ３０，Ｂ３５が含まれている。
【００６４】
図２０のＳ１４０では、ＣＰＵ５２は、各ブロックを特定する情報をテーブル８４（図４参照）に書き込む。図２３は、テーブル８４の一例を示す。テーブル８４は、ブロックを特定する情報１１００と、座標１１０２と、幅１１０４と、バンド１１０６と、データ範囲１１０８とが対応づけられたものである。ＣＰＵ５２は、情報１１００の欄に各ブロックＢ１〜Ｂ３５を書き込む。また、ＣＰＵ５２は、各ブロックＢ１〜Ｂ３５に対応する座標を書き込む。この座標は、図１８や図２２において各ブロックＢ１〜Ｂ３５の左下の頂点の座標Ｃ１〜Ｃ７等である。即ち、画像オブジェクト１０００の絶対的なデータ構成（即ち回転角度がゼロの場合）では、座標Ｃ１〜Ｃ７等は、各ブロックＢ１〜Ｂ３５の左上の頂点の座標になる。
【００６５】
ＣＰＵ５２は、各ブロックＢ１〜Ｂ３５に対応する幅１１０４を書き込む。この幅は、図１８において各ブロックの縦幅である。例えば、ブロックＢ１に対応する幅１１０４として図１８のＤ１が書き込まれる。同様に、ブロックＢ２に対応づけてＤ２が書き込まれ、ブロックＢ３に対応づけてＤ３が書き込まれ、ブロックＢ４に対応づけてＤ４が書き込まれ、ブロックＢ５に対応づけてＤ５が書き込まれる。なお、Ｄ２とＤ３とＤ４は同じ値である。これらはバンド幅に一致するからである。さらに、ＣＰＵ５２は、各ブロックＢ１〜Ｂ３５に対応するバンド１１０６を書き込む。例えば、ブロックＢ１に対応するバンド１１０６として、第５バンド９８８を意味する「５」が書き込まれる。同様に、ブロックＢ２に対応づけて「４」が書き込まれ、ブロックＢ３に対応づけて「３」が書き込まれ、ブロックＢ４に対応づけて「２」が書き込まれ、ブロックＢ５に対応づけて「１」が書き込まれる。図２０のＳ１４０の処理が実行されると、テーブル８４の各欄１１００，１１０２，１１０４，１１０６にデータが書き込まれた状態になる。ただし、データ範囲１１０８の欄には、何も書き込まれてない。
【００６６】
図２０のＳ１４０の処理を実行すると、ＣＰＵ５２は、圧縮データをＣＤＭ７２に記憶させる（Ｓ１４２）。この処理は、図６のＳ６０の処理と同様である。次いで、ＣＰＵ５２は、Ｓ１４２でＣＤＭ７２に記憶された圧縮データを展開することによって展開データを作成する（Ｓ１４４）。ＣＰＵ５２は、この展開データをＤＤＭ８６（図４参照）に記憶させる。ＣＰＵ５２は、この展開データがいずれのバンドに対応するのかを特定する（より具体的に言うと、いずれのブロックに対応するのかを特定する）。即ち、この展開データがいずれのバンド（ブロック）の二値データを作成するために必要であるのかを特定する。各ブロックＢ１〜Ｂ３５の座標がわかっているために（図２３参照）、ＣＰＵ５２は、展開データがいずれのブロックに対応するのかを特定することができる。この展開データの元である圧縮データのデータ範囲は、Ｓ１３４でリクエストされたデータ範囲（図１４の符号７０２参照）から特定することができる。そうすると、バンド（ブロック）と、そのバンド（ブロック）の印刷データを作成するために必要な圧縮データのデータ範囲との関係がわかることになる。ＣＰＵ５２は、図２３に示されるテーブル８４において、特定されたブロックに対応するデータ範囲１１０８に情報を書き込む。ＣＰＵ５２は、Ｓ１４４の処理を終えると、図２１のＳ１５０に進む。
【００６７】
Ｓ１５０では、ＣＰＵ５２は、Ｓ１４４で作成された展開データの中に第１バンド９８０（図１８参照）に対応する展開データが存在するのか否かを判断する。即ち、ＣＰＵ５２は、Ｓ１４４で作成された展開データの中に、第１バンド９８０の印刷データを作成するために必要な展開データが存在するのか否かを判断する。ここでＹＥＳの場合、ＣＰＵ５２は、第１バンド９８０に対応する展開データを二値データ（印刷データ）に変換する処理を実行する（Ｓ１５２）。ＣＰＵ５２は、この印刷データをＢＭ８８（図４参照）に記憶させる。一方において、Ｓ１５０でＮＯの場合、Ｓ１５２をスキップする。
【００６８】
ＣＰＵ５２は、ＣＤＭ７２に記憶されている圧縮データと、ＤＤＭ８６に記憶されている展開データとをクリアする（Ｓ１５４）。次いで、ＣＰＵ５２は、処理対象の画像オブジェクトの受信済フラグ８２（図４参照）が「１」であるのか否かを判断する（Ｓ１５６）。ここでＮＯの場合、ＣＰＵ５２は、ＰＣ１０にＨＴＴＰリクエストを送信する（Ｓ１５８）。このＨＴＴＰリクエストには、インデックス７８（図４参照）に記憶されている値に続く４０００バイト分の範囲を送信するように指示する文字列７０２（図１４参照）が含まれる。この処理は、図７のＳ７４の処理と同様である。ＣＰＵ５２は、ＣＤＭ７２のインデックス７８（図４参照）を増加させ、圧縮データをＣＤＭ７２に記憶させる（Ｓ１６０）。この処理は、図７のＳ７６の処理と同様である。次いで、ＣＰＵ５２は、処理対象の画像オブジェクトを構成する全ての圧縮データを受信したのか否かを判断する（Ｓ１６２）。この処理は、図７のＳ７８の処理と同様である。ここでＹＥＳの場合、ＣＰＵ５２は、処理対象の画像オブジェクトに対応する受信済フラグ８２（図４参照）を「０」から「１」に変更する（Ｓ１６４）。一方において、Ｓ１６２でＮＯの場合、Ｓ１６４をスキップする。
【００６９】
Ｓ１６２でＮＯの場合、又は、Ｓ１６４の処理を終えた場合、ＣＰＵ５２は、図２０のＳ１４４に進む。これにより、Ｓ１６０で受信された圧縮データが展開され、展開データからブロックが特定され、その情報がテーブル８４に書き込まれることになる。ＣＰＵ５２は、圧縮データのダウンロード、圧縮データの展開、ブロックの特定、及び、テーブル８４への書き込みを繰り返すことによって、テーブル８４を作成する。処理対象の画像オブジェクトの全ての圧縮データについて上記の各処理が実行されると、図２１のＳ１５６でＹＥＳと判断されることになる。この場合、ＣＰＵ５２は、他の画像オブジェクトが存在するのか否かをＸＨＴＭＬ−Ｐｒｉｎｔデータ８００に基づいて判断する（Ｓ１６６）。ＸＨＴＭＬ−Ｐｒｉｎｔデータ８００の場合、１つの画像オブジェクト１０００しか存在しないために、Ｓ１６６でＮＯと判断される。この場合、テーブル作成処理を終了する。一方において、他の画像オブジェクト（群）が存在する場合、ＣＰＵ５２は、他の１つの画像オブジェクトを処理対象の画像オブジェクトとして特定し（Ｓ１３０）、その画像オブジェクトについてＳ１３２以降の処理を実行する。
【００７０】
図１９のＳ１０２でテーブル８４が作成されると、Ｓ１０４に進む。Ｓ１０４では、ＣＰＵ５２は、第１バンド９８０を処理バンドとして特定する。上述したように、第１バンド９８０の印刷データは、テーブル作成処理において作成済である（図２１のＳ１５２参照）。ＣＰＵ５２は、ＢＭ８８（図４参照）に記憶されている第１バンド９８０の印刷データを印刷する処理を実行する（Ｓ１０６）。この処理は、図５のＳ３２の処理と同様である。次いで、ＣＰＵ５２は、全てのバンドについて印刷されたのか否かを判断する（Ｓ１０８）。例えば、第１バンド９８０が印刷された段階では、第２バンド９８２以降の印刷が行なわれていない。この場合、Ｓ１０８でＮＯと判断される。
【００７１】
Ｓ１０８でＮＯの場合、ＣＰＵ５２は、次のバンド（例えば第２バンド９８２）を処理バンドとして特定し、ＢＭ８８（図４参照）をクリアする（Ｓ１１０）。次いで、ＣＰＵ５２は、テーブル８４を検索することによって、処理バンドに対応するデータ範囲を特定する（Ｓ１１２）。例えば、第２バンド９８２が処理バンドである場合、ＣＰＵ５２は、ブロックＢ４に対応するデータ範囲Ｒ７〜Ｒ８（図２３参照）を特定する。なお、図２３では、ブロックＢ７以降が省略されている。ＣＰＵ５２は、ブロックＢ７以降であって第２バンド９８２に対応する他のデータ範囲も特定する。これにより、第２バンド９８２に対応する全てのデータが特定されることになる。
【００７２】
ＣＰＵ５２は、Ｓ１１２で特定されたデータ範囲の圧縮データを４０００バイト単位で送信するようにＰＣ１０にリクエストする（Ｓ１１４）。本実施例では、Ｓ１１４でリクエストするデータサイズが、図２０のＳ１３４や図２１のＳ１５８でリクエストするデータサイズと同じである。しかしながら、異なるデータサイズをリクエストしてもよい。例えば、１つのブロックの全ての圧縮データをリクエストするようにしてもよい。ＣＰＵ５２は、圧縮データをＣＤＭ７２（図４参照）に記憶させる。次いで、ＣＰＵ５２は、圧縮データを展開することによって展開データを作成する。ＣＰＵ５２は、展開データをＤＤＭ８６（図４参照）に記憶させる。次いで、ＣＰＵ５２は、展開データを変換することによって印刷データを作成する。ＣＰＵ５２は、印刷データをＢＭ８８（図４参照）に記憶させる。次いで、ＣＰＵ５２は、ＣＤＭ７２に記憶されている圧縮データと、ＤＤＭ８６に記憶されている展開データとをクリアする。ＣＰＵ５２は、圧縮データのリクエスト、圧縮データの展開、展開データの変換、及び、データ（圧縮データと展開データ）のクリアを繰り返し実行することによって、Ｓ１１４の処理を実行する。これにより、印刷されるべきバンド（例えば第２バンド９８２）の印刷データが作成されることになる。
【００７３】
Ｓ１１４で作成された印刷データは、Ｓ１０６で印刷される。全てのバンドについて印刷された場合、ＣＰＵ５２は、Ｓ１０８でＹＥＳと判断する。この場合、ＣＰＵ５２は、コネクションを切断し（Ｓ１１６）、処理を終える。この処理は、図５のＳ３８の処理と同様である。
【００７４】
本実施例の技術では、バンドと、そのバンドの印刷データを作成するために必要な圧縮データのデータ範囲との関係（テーブル８４）を導き出す。各バンドの印刷データを作成する際に、そのバンドを作成するのに必要な圧縮データのみを展開することができる。例えば、図１８の第２バンド９８２の印刷データを作成する際には、第２バンド９８２を作成するのに必要な圧縮データのみを展開することができる。また、第３バンド９８４の印刷データを作成する際には、第３バンド９８４を作成するのに必要な圧縮データのみを展開することができる。各バンドの印刷データを作成する際に、画像オブジェクト１０００の全ての圧縮データ（もしくはほぼ全ての圧縮データ）を展開する必要がない。しかも、この技術では、画像オブジェクト１０００の全ての圧縮データから作成される展開データをキャッシュしておく手法を採用しないために、メモリの使用量を抑えることができる。この技術を利用すると、印刷データを効率的に作成することを実現することができる。
【００７５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
（１）例えば、上記の実施例の多機能機４０は、ＰＣ１０から画像オブジェクトの圧縮データをダウンロードして印刷データを作成する。しかしながら、多機能機４０は、デジタルカメラ、メモリカード、インターネット上のサーバ、その他の外部装置から画像オブジェクトをダウンロードして印刷データを作成してもよい。
（２）図６のＳ５４、図７のＳ７４、図２０のＳ１３４、及び、図２１のＳ１５８において、リクエスト毎にデータサイズを変えてもよい。
（３）テーブル作成処理において、第１バンド９８０に対応するテーブルを作成しなくてもよい。テーブル作成処理で第１バンド９８０の印刷データが作成されるために、図１９のＳ１１２やＳ１１４の処理において第１バンド９８０の印刷データを作成する必要がないからである。
（４）上記の実施例では、ＰＣ１０から送信されるＸＨＴＭＬ−Ｐｒｉｎｔデータの中に画像オブジェクトの回転角度に関する情報が含まれている。ユーザは、ＰＣ１０を操作することによって回転角度を指定することができる。しかしながら、ユーザが多機能機４０を操作することによって回転角度を指定することができるようにしてもよい。
【００７６】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００７７】
【図１】バンド単位で印刷データを作成する様子を説明するための図を示す。
【図２】画像オブジェクトが図１の状態から右回りに９０度回転している図を示す。
【図３】実施例の多機能機システムの構成を示す。
【図４】多機能機のＲＡＭの記憶内容の一例を示す。
【図５】多機能機が実行する処理のフローチャートを示す。
【図６】図５の続きのフローチャートを示す。
【図７】図６の続きのフローチャートを示す。
【図８】ＸＨＴＭＬ−Ｐｒｉｎｔデータの一例を示す。
【図９】ＸＨＴＭＬ−Ｐｒｉｎｔデータの一例を示す。
【図１０】ＸＨＴＭＬ−Ｐｒｉｎｔデータの一例を示す。
【図１１】ＸＨＴＭＬ−Ｐｒｉｎｔデータに含まれるブランク等を説明するための図を示す。
【図１２】複数の画像オブジェクトが１ページの印刷媒体にレイアウトされている様子を示す。
【図１３】ＪＰＥＧファイルのデータ構成を簡単に示す。
【図１４】ＨＴＴＰリクエストの一例を示す。
【図１５】ＨＴＴＰレスポンスの一例を示す。
【図１６】画像オブジェクトを少しずつダウンロードする様子を説明するための図を示す。
【図１７】ＸＨＴＭＬ−Ｐｒｉｎｔデータの別の例を示す。
【図１８】ＸＨＴＭＬ−Ｐｒｉｎｔデータに含まれる画像オブジェクトを模式的に示す。
【図１９】図５の続きのフローチャートを示す。
【図２０】テーブル作成処理のフローチャートを示す。
【図２１】図２０の続きのフローチャートを示す。
【図２２】ブロックを説明するための図を示す。
【図２３】テーブルの一例を示す。
【符号の説明】
【００７８】
１０：ＰＣ
４０：多機能機
８４：テーブル
１１０：印刷媒体
１１２，１１４，１１６：バンド
１２０：画像オブジェクト
１２２，１２４，１２６，１２８，１３０：圧縮データ
【図１】
0005040505.tif 000002
【図２】
0005040505.tif 000003
【図３】
0005040505.tif 000004
【図４】
0005040505.tif 000005
【図５】
0005040505.tif 000006
【図６】
0005040505.tif 000007
【図７】
0005040505.tif 000008
【図８】
0005040505.tif 000009
【図９】
0005040505.tif 000010
【図１０】
0005040505.tif 000011
【図１１】
0005040505.tif 000012
【図１２】
0005040505.tif 000013
【図１３】
0005040505.tif 000014
【図１４】
0005040505.tif 000015
【図１５】
0005040505.tif 000016
【図１６】
0005040505.tif 000017
【図１７】
0005040505.tif 000018
【図１８】
0005040505.tif 000019
【図１９】
0005040505.tif 000020
【図２０】
0005040505.tif 000021
【図２１】
0005040505.tif 000022
【図２２】
0005040505.tif 000023
【図２３】
0005040505.tif 000024