(57)【要約】【課題】ＸＰＳファイルの効率的なデータ処理を可能とした画像形成システムを提供する。【解決手段】画像処理装置１２は、Ｚｉｐ構成のＸＰＳ形式データを生成するＸＰＳデータ生成部２０と、該ＸＰＳ形式データの圧縮データサイズを算出する第１データ算出部３５と、伸張後データサイズを算出する第２データ算出部３０と、圧縮データサイズと伸張後のデータサイズを含むヘッダ情報を作成するヘッダ作成部２５を備える。画像形成装置５０は、画像処理装置が送信したＸＰＳ形式データのヘッダ情報を受信し、ＸＰＳデータの圧縮データサイズと伸張後データサイズを取得するヘッダ解析部６０と、圧縮データサイズに基づいてＸＰＳ形式データの格納先を決定する第１判定部６５と、伸張後データサイズに基づいてＸＰＳ形式データの伸張先を決定する第２判定部７０を備える。【選択図】図１
2011145745.tif 000002
【特許請求の範囲】
【請求項１】
ＸＰＳ形式データを送信可能な画像処理装置と、該画像処理装置から前記ＸＰＳ形式データを受信し、該ＸＰＳ形式データに基づいて印刷処理を行う画像形成装置とを備える画像形成システムにおいて、
前記画像処理装置は、
Ｚｉｐ構成の前記ＸＰＳ形式データを生成するデータ生成部と、
前記Ｚｉｐ構成のＸＰＳ形式データの圧縮データサイズを算出する第１データ算出部と、
前記Ｚｉｐ構成のＸＰＳ形式データの伸張後データサイズを算出する第２データ算出部と、
前記圧縮データサイズと前記伸張後のデータサイズを含むヘッダ情報を作成するヘッダ作成部と、
前記ヘッダ情報を付加したＸＰＳ形式データを前記画像形成装置に送信する送信部とを備え、
前記画像形成装置は、
前記画像処理装置が送信した前記ＸＰＳ形式データのヘッダ情報を受信し、該ヘッダ情報より前記ＸＰＳデータの圧縮データサイズと伸張後データサイズを取得するヘッダ解析部と、
前記圧縮データサイズに基づいて前記ＸＰＳ形式データの格納先を決定する第１判定部と、
前記伸張後データサイズに基づいて前記ＸＰＳ形式データの伸張先を決定する第２判定部と、
前記ＸＰＳ形式データの格納先または伸張先としての記憶媒体と、
前記第２判定部が決定した伸張先に前記ＸＰＳ形式データを伸張するデータ伸張部と、
前記データ伸張部が伸張したＸＰＳ形式データを解析するデータ解析部と、
前記データ解析部の解析結果に基づいて印刷処理を行う画像形成部とを備えることを特徴とする画像形成システム。
【請求項２】
前記画像処理装置は、前記データ生成部が生成した前記ＸＰＳデータの先頭に前記ヘッダ情報を付加すると共に、該ＸＰＳデータのＺｉｐ構成データを更新するデータ更新部を備えることを特徴とする請求項１に記載の画像形成システム。
【請求項３】
前記第２データ算出部は、前記ＸＰＳ形式データの伸張後データサイズとして、テキストデータサイズとバイナリデータサイズを算出し、前記第２判定部は、前記テキストデータサイズと前記バイナリデータサイズのそれぞれについて伸張先を決定することを特徴とする請求項１または２に記載の画像形成システム。
【請求項４】
前記第２判定部は、前記ヘッダ解析部が取得した前記ＸＰＳデータの圧縮データサイズまたは伸張後データサイズと前記記録媒体のメモリ容量を比較し、前記圧縮データサイズまたは前記伸張後データサイズが前記記憶媒体のメモリ容量より大きい場合に前記画像処理装置にエラーを通知することを特徴とする請求項１乃至３に記載の画像形成システム。
【請求項５】
前記記憶媒体として、メモリ容量および処理速度の異なる複数の記憶媒体を備えており、少なくとも前記テキストデータの伸張先は、該記憶媒体の処理速度を優先して決定されることを特徴とする請求項３に記載の画像形成システム。
【請求項６】
Ｚｉｐ構成のＸＰＳ形式データを受信し、該ＸＰＳ形式データに基づいて印刷処理を行う画像形成装置において、
前記ＸＰＳ形式データには、該ＸＰＳ形式データの圧縮データサイズと伸張後のデータサイズを含むヘッダ情報が付加されており、
前記ＸＰＳ形式データのヘッダ情報を受信し、該ヘッダ情報より、前記ＸＰＳデータの圧縮データサイズと伸張後データサイズを取得するヘッダ解析部と、
前記圧縮データサイズに基づいて前記ＸＰＳ形式データの格納先を決定する第１判定部と、
前記伸張後データサイズに基づいて前記ＸＰＳ形式データの伸張先を決定する第２判定部と、
前記ＸＰＳ形式データの格納先または伸張先としての記憶媒体と、
前記第２判定部で判定された伸張先に前記ＸＰＳ形式データを伸張するデータ伸張部と、
前記データ伸張部が伸張したＸＰＳ形式データを解析するデータ解析部と、
前記データ解析部の解析結果に基づいて印刷処理を行う画像形成部とを備えることを特徴とする画像形成装置。
【請求項７】
前記ヘッダ情報の伸張後データサイズには、テキストデータサイズとバイナリデータサイズが含まれており、前記第２判定部は、前記テキストデータサイズと前記バイナリデータサイズのそれぞれについて伸張先を決定することを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記第２判定部は、前記ヘッダ解析部が取得した前記ＸＰＳデータの圧縮データサイズまたは伸張後データサイズと前記記録媒体のメモリ容量を比較し、前記圧縮データサイズまたは前記伸張後データサイズが前記記憶媒体のメモリ容量より大きい場合に前記ＸＰＳデータの送信元にエラーを通知することを特徴とする請求項６または７に記載の画像形成装置。
【請求項９】
前記記憶媒体として、メモリ容量および処理速度の異なる複数の記憶媒体を備えており、少なくとも前記テキストデータの伸張先は、該記憶媒体の処理速度を優先して決定されることを特徴とする請求項７に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置および画像形成システムに関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータが備えるアプリケーションプログラム上で作成された文章データや画像データ等の印刷データを画像形成装置（例えば、プリンタ）に送信して印刷処理する画像形成システムが知られている。
この印刷処理においては、ホストコンピュータにおいて、送信すべき印刷データをプリンタドライバにてプリンタが解析可能なページ記述言語（ＰＤＬ:Page  Description  Language）データに変換し、プリンタ側に送信すると共に、プリンタ側において該ページ記述言語データを受信して、ビットマップデータに展開した後、印刷処理することが行われている。
【０００３】
ところで、近年、ホストシステムよりプリンタに送信するＰＤＬデータについては、従来のストリーム形式（データをダウンロードしながら順次変換処理する配信形式）ではなく、フォルダ構造を有する複数のデータを圧縮して一つのファイルに纏め、ＰＤＬファイルとして配信する形式が提案されている。
このような非ストリーム形式のＰＤＬファイルとして、例えば、Microsoft社のＸＰＳファイルが知られている。ＸＰＳファイルの配信では、プリンタ側に一度圧縮ファイルを転送し、プリンタ側では、この圧縮ファイルを伸張した後に構文解析（パース）処理が行われることになる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２５２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記ＸＰＳファイルは、Ｚｉｐ形式のデータであり、プリンタ側において、全てのデータを受信しないと受信データのサイズを把握することができない。従って、受信データをＲＡＭ等に格納している最中にメモリフルが発生すると、既にメモリ上に格納し終えたデータと、これからホスト側から受信する残りのデータを全てハードディスク（ＨＤＤ）等の大容量記憶装置に格納し直す必要があった。
また、受信した全データをＲＡＭ等に格納できたとしても、格納されたＺｉｐ形式のデータをＺｉｐ伸張して再度ＲＡＭに格納する途中でメモリフルが発生すると、データ受信のときと同様に、既にメモリに格納し終えた伸張データと、以降の伸張データを全てＨＤＤ等へ格納し直す必要があった。
【０００６】
このように、従来のＸＰＳファイルの配信においては、受信側において無駄なデータ移動（データ読み出し処理と読み出したデータの別メモリへの再書き込み処理）が発生し、その分、データ処理に時間を要し、極めて非効率的であった。
【０００７】
本発明は、上記問題に鑑みなされたもので、ホストシステムより受信したＸＰＳファイルを効率的にデータ処理することが可能な画像形成装置および画像形成システムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
すなわち、本発明は、ＸＰＳ形式データを送信可能な画像処理装置と、該画像処理装置から上記ＸＰＳ形式データを受信し、該ＸＰＳ形式データに基づいて印刷処理を行う画像形成装置とを備える画像形成システムにおいて、上記画像処理装置は、Ｚｉｐ構成の上記ＸＰＳ形式データを生成するデータ生成部と、上記Ｚｉｐ構成のＸＰＳ形式データの圧縮データサイズを算出する第１データ算出部と、上記Ｚｉｐ構成のＸＰＳ形式データの伸張後データサイズを算出する第２データ算出部と、上記圧縮データサイズと上記伸張後のデータサイズを含むヘッダ情報を作成するヘッダ作成部と、上記ヘッダ情報を付加したＸＰＳ形式データを上記画像形成装置に送信する送信部とを備え、上記画像形成装置は、上記画像処理装置が送信した上記ＸＰＳ形式データのヘッダ情報を受信し、該ヘッダ情報より上記ＸＰＳデータの圧縮データサイズと伸張後データサイズを取得するヘッダ解析部と、上記圧縮データサイズに基づいて前記ＸＰＳ形式データの格納先を決定する第１判定部と、上記伸張後データサイズに基づいて上記ＸＰＳ形式データの伸張先を決定する第２判定部と、上記ＸＰＳ形式データの格納先または伸張先としての記憶媒体と、上記第２判定部が決定した伸張先に上記ＸＰＳ形式データを伸張するデータ伸張部と、上記データ伸張部で伸張したＸＰＳ形式データを解析するデータ解析部と、上記データ解析部の解析結果に基づいて印刷処理を行う画像形成部とを備えることを特徴としている。
【０００９】
また、別の発明は、Ｚｉｐ構成のＸＰＳ形式データを受信し、該ＸＰＳ形式データに基づいて印刷処理を行う画像形成装置において、上記ＸＰＳ形式データには、該ＸＰＳ形式データの圧縮データサイズと伸張後のデータサイズを含むヘッダ情報が付加されており、上記ＸＰＳ形式データのヘッダ情報を受信し、該ヘッダ情報より、上記ＸＰＳデータの圧縮データサイズと伸張後データサイズを取得するヘッダ解析部と、上記圧縮データサイズに基づいて上記ＸＰＳ形式データの格納先を決定する第１判定部と、上記伸張後データサイズに基づいて上記ＸＰＳ形式データの伸張先を決定する第２判定部と、上記ＸＰＳ形式データの格納先または伸張先としての記憶媒体と、上記第２判定部で判定された伸張先に上記ＸＰＳ形式データを伸張するデータ伸張部と、上記データ伸張部で伸張されたＸＰＳ形式データを解析するデータ解析部と、上記データ解析部の解析結果に基づいて印刷処理を行う画像形成部とを備えることを特徴としている。
【発明の効果】
【００１０】
本発明によれば、ＸＰＳファイルに該ＸＰＳファイルのファイルサイズと伸張後のデータサイズを記述したヘッダ情報を付加するようにしたので、画像形成装置は、このヘッダ情報を参照することで、実際にＸＰＳファイルの全データを受信しなくとも、ＸＰＳファイルのファイルサイズと伸張後のデータサイズを取得することが可能であり、これらの取得情報から、ＸＰＳデータの格納や伸張に最適な記憶媒体を決定することができる。その結果、格納・伸張時のメモリフルによるデータの無駄な読み出し動作と読み出したデータの再書き込み動作を無くすことができ、データ処理の効率アップを図ることができる。このことは、ひいては印刷処理時間の短縮にも寄与するものである。
【図面の簡単な説明】
【００１１】
【図１】実施例１による画像形成システムの構成を示す機能ブロック図である。
【図２】Ｚｉｐファイルの構造図である。
【図３】Local  File  Headerの構成図である。
【図４】Central  Directory  Headerの構成図である。
【図５】End  of  central  directory  recordの構成図である。
【図６】実施例１によるドライバの基本処理を示すフローチャートである。
【図７】実施例１によるＺｉｐファイルの伸張後データサイズの算出処理を示すフローチャートである。
【図８】ＸＰＳファイルのファイルサイズの取得処理を示すフローチャートである。
【図９】Central  Directory  Headerの更新処理を示すフローチャートである。
【図１０】実施例１によるダミーヘッダの構成図である。
【図１１】実施例１によるダミーヘッダを付加したＸＰＳファイルの構造図である。
【図１２】実施例１によるプリンタの基本処理を示すフローチャートである。
【図１３】ダミーヘッダのチェック処理を示すフローチャートである。
【図１４】実施例１によるダミーヘッダの解析処理を示すフローチャートである。
【図１５】ＸＰＳファイルの既存の格納・伸張処理を示すフローチャートである。
【図１６】実施例２による画像形成システムの構成を示す機能ブロック図である。
【図１７】実施例２によるドライバの基本処理を示すフローチャートである。
【図１８】実施例２によるＺｉｐファイル伸張後のテキストデータ及びバイナリデータサイズの算出処理を示すフローチャートである。
【図１９】実施例２によるダミーヘッダの構成図である。
【図２０】実施例２によるＸＰＳファイルの構造図である。
【図２１】実施例２によるプリンタの基本処理を示すフローチャートである。
【図２２】実施例２によるダミーヘッダの解析処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図１〜図２２に基づいて、本発明に係る画像形成システム１０の実施の形態を説明する。
【実施例１】
【００１３】
先ず、図１〜図５を用いて実施例１による画像形成システム１０の構成を説明する。
図１は、実施例１による画像形成システムの構成を示す機能ブロック図、図２は、Ｚｉｐファイルの構造図、図３は、Local  File  Headerの構成図、図４は、Central  Directory  Headerの構成図、図５は、End  of  central  directory  recordの構成図である。
【００１４】
図１に示すように、本実施例の画像形成システム１０は、画像処理装置としてのホストＰＣ１２と画像形成装置としてのプリンタ５０とで構成されている。
ホストＰＣ１２のオペレーティングシステム（ＯＳ）１３は、ホストＰＣ１２の全体を管理するソフトウエアシステムであって、ホストＰＣ１２には、このＯＳ１３上で動作するドライバ１５（プリンタドライバ）と、ＸＰＳ形式の文書ファイル（文章データや画像データ）を作成してドライバ１５に供給するアプリケーション１８が搭載されている。
【００１５】
上記ドライバ１５は、ＸＰＳデータ生成部（データ生成部）２０、ダミーヘッダ作成部（ヘッダ作成部）２５、ＸＰＳ伸張後サイズ算出部（第２データ算出部）３０、ＸＰＳファイルサイズ算出部（第１データ算出部）３５、ＸＰＳファイル更新部（データ更新部）４０、データ送信部４５を備える。これらは、ドライバ１５が起動されることにより実現される機能部である。
【００１６】
ＸＰＳデータ生成部２０は、アプリケーション１８よりベースとなるＸＰＳファイルを受け取り、プリンタ５０に適用可能なＺｉｐ圧縮構成のＸＰＳファイルを作成する部分である。
ＸＰＳ伸張後サイズ算出部３０は、ＸＰＳデータ生成部２０で作成されたＸＰＳファイルを伸張したときのデータサイズを算出する部分である。
ＸＰＳファイルサイズ算出部３５は、ＸＰＳデータ生成部２０で作成されたＸＰＳファイルのファイルサイズを算出する部分である。
ダミーヘッダ作成部２５は、ＸＰＳ伸張後サイズ算出部３０とＸＰＳファイルサイズ算出部３５で算出されたＸＰＳファイルの伸張データサイズとファイルサイズを記述したダミーヘッダ（図１０参照）を作成する部分である。尚、上記ダミーヘッダ作成部２５で作成されるダミーヘッダは、Ｚｉｐ圧縮されていないデータである。
ＸＰＳファイル更新部４０は、ダミーヘッダ作成部２５で作成されたダミーヘッダをＸＰＳファイルに付加すると共に、ダミーヘッダを付加したことによるＸＰＳファイルの内部データの書き換えを行い、ＸＰＳファイルを更新する部分である。
データ送信部４５は、ＸＰＳファイル更新部４０で更新されたＸＰＳファイルをプリンタ５０へ送信する部分である。
【００１７】
また、上記プリンタ５０は、データ受信部５５、ダミーヘッダ解析部（ヘッダ解析部）６０、データ受信先判定部（第１判定部）６５、データ伸張先判定部（第２判定部）７０、ＸＰＳデータ伸張部（データ伸張部）７５、ＸＰＳデータ解析部（データ解析部）８０、印刷イメージ作成部８５、データ格納部（記憶媒体）９０、拡張データ格納部（記憶媒体）９５、印刷部（画像形成部）１００を備える。これらは、プリンタ５０に搭載された図示しないＣＰＵが所定の制御プログラムを実行することにより実現される機能部である。
【００１８】
データ受信部５５は、上記ドライバ１５のデータ送信部４５より送信されたＸＰＳファイルを受信する部分である。
ダミーヘッダ解析部６０は、データ受信部５５が受信したＸＰＳファイルのダミーヘッダを解析し、以降、ホストＰＣ１２から受信するＸＰＳファイルのファイルサイズと伸張後のデータサイズを取得する部分である。
データ受信先判定部６５は、ダミーヘッダ解析部６０が取得したＸＰＳファイルのファイルサイズを元にＸＰＳファイルの格納先を決定する部分である。
データ伸張先判定部７０は、ダミーヘッダ解析部６０が取得した伸張後のデータサイズを元にＸＰＳファイルの伸張先を決定する部分である。
ＸＰＳデータ伸張部７５は、データ受信部５５が受信したＸＰＳファイルをデータ伸張先判定部７０が決定した伸張先へ伸張（Ｚｉｐ伸張）する部分である。
ＸＰＳデータ解析部８０は、伸張されたＸＰＳデータのマークアップを解析する部分である。
印刷イメージ作成部８５は、ＸＰＳデータ解析部８０が解析したＸＰＳデータをビットマップ形式に展開して印刷イメージデータを生成する部分である。
データ格納部９０は、データのアクセス速度は速いが、下記拡張データ格納部９５に比べてメモリ容量が小さい記憶媒体であり、本実施例では、ＲＡＭ（Random  Access  Memory）を使用している。
拡張データ格納部９５は、データのアクセス速度は遅いが、上記データ格納部９０に比べてメモリ容量の大きい記憶媒体であり、上記データ格納部９０（ＲＡＭ）に容量不足が発生したときに使用される。拡張データ格納部９５として、本実施例ではＨＤＤ（Hard  Disk  Drive）を使用している。
印刷部１００は、印刷イメージ作成部８５で作成された印刷イメージデータに基づく画像を記録媒体上に印刷する印刷処理を行う部分である。
【００１９】
尚、上記ＸＰＳファイルは、イメージファイル、フォントファイル、テキストファイル等をＺｉｐ形式にアーカイブ化（複数のファイルを一つのファイルに纏めることで、通常、圧縮が施される）したＺｉｐ圧縮構成のファイルである。
【００２０】
このＺｉｐファイル２００は、図２に示すように、１つ以上（本実施例では、２つ）のLocal  File  Header２１０、２３０とFile  Data２２０、２４０とCentral  Directory  Header２７０、２８０と、１つのEnd  of  central  directory  record２９５とで構成されている。
【００２１】
Local  File  Header２１０は、File  Data２２０のヘッダ情報であり、Local  File  Header２３０は、File  Data２４０のヘッダ情報である。File  Data２２０とFile  Data２４０には、Ｚｉｐ圧縮された文書データが書き込まれている。
Central  Directory  Header２７０は、File  Data２２０のディレクトリデータであり、Local  File  Header２１０の全ての情報と拡張情報が記述されている。
Central  Directory  Header２８０は、File  Data２４０のディレクトリデータであり、Local  File  Header２３０の全ての情報と拡張情報が記述されている。
End  of  central  directory  record２９５は、Central  Directory  Headerの終端とＺｉｐファイルの終了を示している。
【００２２】
ＸＰＳファイルをＺｉｐ圧縮すると、そのファイルに対応するLocal  File  HeaderとFile  DataとCentral  Directory  Headerが生成される。尚、Central  Directory  Headerの拡張情報を参照しないとＺｉｐ伸張できない圧縮形式も存在しているため、Ｚｉｐファイルの伸張時には、先ず、Central  Directory  Headerを参照する必要がある。
【００２３】
上記したLocal  File  Headerの構成は図３に示され、Central  Directory  Headerの構成は図４に示され、End  of  central  directory  recordの構成は図５に示されている。
【００２４】
次に、図６を用いて実施例１の動作を説明する。図６は、実施例１によるドライバ１５の基本処理を示すフローチャートである。
【００２５】
ホストＰＣ１２のユーザが、アプリケーション１８上で作成した文書（ＸＰＳファイル）の印刷を指示すると、アプリケーション１８よりＸＰＳファイルがドライバ１５のＸＰＳデータ生成部２０に供給される。
ＸＰＳデータ生成部２０は、ＸＰＳファイルを受け取り、対応するプリンタ５０に適したＺｉｐ形式にて、ＸＰＳファイルを生成する（Ｓ１０００）。
この際、ＸＰＳ伸張後サイズ算出部３０は、ＸＰＳデータ生成部２０で作成されたＸＰＳファイルを伸張したときのデータサイズを算出し、同時にＸＰＳファイルサイズ算出部３５は、該ＸＰＳファイルのファイルサイズを算出する。
【００２６】
ダミーヘッダ作成部２５は、ＸＰＳ伸張後サイズ算出部３０により算出された上記伸張データのトータルサイズを取得し（Ｓ１０１０）（詳細は後述）、次いで、ＸＰＳファイルサイズ算出部３５で算出された上記ファイルサイズを取得する（Ｓ１０２０）（詳細は後述）。
【００２７】
ダミーヘッダ作成部２５は、先のＳ１０１０、Ｓ１０２０で取得したＸＰＳファイルの伸張データサイズとファイルサイズを元にダミーヘッダを作成する（Ｓ１０３０）。
【００２８】
図１０は、上記ダミーヘッダの構成図である。
ダミーヘッダは、６４バイトのデータファイルであり、Local  File  Headerと同じ構成を有し、先頭より３０バイト目のfile  name（ファイル名）にダミーヘッダであることを示す１８バイトのシグネチャ情報が記述される。本実施例では、シグネチャ情報として(FF  00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  FF)が記述される。
【００２９】
また、先頭より４８バイト目のextra  field（拡張データフィールド）に１６バイトで伸張前のデータサイズ（例えば、0x00000000  0x00200000）と伸張後のデータサイズ（例えば、0x00000000  0x00400000）が記述される。
【００３０】
また、先頭より２６バイト目のfile  name  length（ファイル名のサイズ）にバイト数１８が、先頭より２８バイト目のextra  field  length（拡張データのサイズ）にバイト数１６が記述される。
【００３１】
ＸＰＳファイル更新部４０は、図１１に示すように、先のＳ１０３０で作成されたダミーヘッダをＸＰＳファイルの先頭に付加し（Ｓ１０４０）、同時に、このＸＰＳファイルのCentral  Directory  Headerの内容を更新する（Ｓ１０５０）（詳細は後述）。図１１は、６４バイトのダミーヘッダが付加されたＸＰＳファイルの構造図である。
【００３２】
データ送信部４５は、ＸＰＳファイル更新部４０でダミーヘッダの付加と内部データの更新が行われたＸＰＳファイルをプリンタ５０に送信する（Ｓ１０６０）。
【００３３】
次に、図７を用いて、図６のＳ１０１０における処理動作の詳細を説明する。図７は、実施例１によるＺｉｐファイルの伸張後データサイズの算出処理を示すフローチャートである。
先ず、ＸＰＳファイル伸張後のトータルデータサイズを格納しておく変数の値を０に初期化する（Ｓ１０１１）。
【００３４】
ＸＰＳファイルの先頭よりCentral  Directory  Headerを検索する（Ｓ１０１２）。尚、Central  Directory  Headerは、図４のファイル中の「0x02014b50」で示されるシグネチャ（central  file  header  signature）を発見することで検索可能である。
【００３５】
ファイル中にCentral  Directory  Headerが存在するか否かをチェックし（Ｓ１０１３）、存在する場合は、そのCentral  Directory  Headerの記述情報より伸張後データサイズを取得する（Ｓ１０１４）。尚、伸張後データサイズは、Central  Directory  Headerの先頭より２４バイト目から４バイトの情報（uncompressed  size）に記述されている。
取得した伸張後データサイズを上記変数に加算し（Ｓ１０１５）、次のCentral  Directory  Headerの検索動作を続行する（Ｓ１０１２）。
Ｓ１０１３の判定処理で、Central  Directory  Headerが発見されなくなったときは検索動作を終了し、更新された上記変数にて伸張後トータルデータサイズを図６のＳ１０１０に返す（Ｓ１０１６）。
【００３６】
次に、図８を用いて、図６のＳ１０２０における処理動作の詳細を説明する。図８は、ＸＰＳファイルのファイルサイズの取得処理を示すフローチャートである。
先ず、ＸＰＳファイルサイズ算出部３５は、ドライバ１５より取得したＸＰＳファイルのファイル情報を取得する（Ｓ１０２１）。このファイル情報は、例えば、ＳＴＡＴ関数を実行することにより取得可能である。ＳＴＡＴ関数は、ファイルの入出力を行う関数であって、ＳＴＡＴ関数を実行することで、所望のファイル情報を規定の配列形式で取得できる。該配列形式については記載していないが、具体的には、その配列中の７番目の要素よりファイルサイズを取得することができる（Ｓ１０２２）。取得したファイルサイズを図６のＳ１０２０に返す（Ｓ１０２３）。
【００３７】
次に、図９を用いて、図６のＳ１０５０における処理動作の詳細を説明する。図９は、Central  Directory  Headerの更新処理を示すフローチャートである。
【００３８】
先ず、ＸＰＳファイル更新部４０は、ＸＰＳファイルの先頭よりCentral  Directory  Headerを検索する（Ｓ１０５１）。尚、Central  Directory  Headerは、図４のファイル情報中の「0x02014b50」で示されるシグネチャ（central  file  header  signature）を発見することで検索可能である。
ファイル中にCentral  Directory  Headerが存在するか否かをチェックし（Ｓ１０５２）、存在する場合は、そのCentral  Directory  Headerに関連付けられているLocal  File  Headerまでのファイル先頭からのオフセット値をダミーヘッダのサイズ（６４バイト）分加算した値に更新する（Ｓ１０５３）。
尚、Local  File  Headerへのオフセット値は、Central  Directory  Headerの先頭より４２バイト目（relative  offset  of  local  header）に４バイトで記述されている。
【００３９】
Local  File  Headerへのオフセット値を更新した後は、次のCentral  Directory  Headerについて検索を続行し（Ｓ１０５１）、シグネチャ「0x02014b50」が発見できなくなった場合は、全てのCentral  Directory  Headerの更新が完了したとして本処理を終了する。
【００４０】
次に、図１２を用いてプリンタ５０の動作を説明する。図１２は、実施例１によるプリンタの基本処理を示すフローチャートである。
【００４１】
先ず、データ受信部５５は、ホストＰＣ１２のドライバ１５より送信されたＸＰＳファイルの先頭６４バイト分のデータファイルを受信し、データ格納部９０（ＲＡＭ）に格納する（Ｓ１５００）。
【００４２】
ダミーヘッダ解析部６０は、受信した６４バイトのデータを参照して（Ｓ１５１０）、受信したデータがダミーヘッダであるか否かをチェックする（Ｓ１５２０）（詳細は後述）。
【００４３】
受信データがダミーヘッダである場合は、ダミーヘッダの内容（extra  field）を解析し、続いて受信するＸＰＳファイルのファイルサイズと伸張後のデータサイズを取得する（Ｓ１５３０）（詳細は後述）。
【００４４】
データ受信先判定部６５は、取得したＸＰＳファイルのファイルサイズがＲＡＭの容量より大きいか否かをチェックし（Ｓ１５４０）、大きい場合は、プリンタ５０にＲＡＭの代わりとなる大容量の拡張データ格納部９５（ＨＤＤ）が搭載されているか否かをチェックする（Ｓ１５５０）。
ＨＤＤが搭載されている場合は、以降受信するＸＰＳファイルは全てＨＤＤへ格納する（Ｓ１５６０）。また、ＨＤＤが搭載されていない場合は、全データの格納は不可であるとして、即座にその旨のエラーをユーザに通知し（Ｓ１６００）、受信したデータは破棄して（Ｓ１６３０）、本処理を終了する。
尚、上記エラーは、ホストＰＣ１２が備える図示しない表示部に画面表示にて通知される。
【００４５】
他方、先のＳ１５４０の判定処理で、取得したＸＰＳファイルのファイルサイズがＲＡＭの容量より小さい場合は、以降ホストＰＣ１２より受信するＸＰＳファイルは全てデータ格納部９０（ＲＡＭ）に格納する（Ｓ１５７０）。
【００４６】
ホストＰＣ１２より受信したＸＰＳファイルの全データをＲＡＭやＨＤＤに格納し終えると、次に、データ伸張先判定部７０は、取得したＸＰＳファイルの伸張後サイズがＲＡＭの容量より大きいか否かをチェックし（Ｓ１５８０）、大きい場合は、プリンタ５０にＲＡＭの代わりとなるＨＤＤが搭載されているか否かをチェックする（Ｓ１５９０）。
ＨＤＤが搭載されている場合は、ＸＰＳデータ伸張部７５は、ＲＡＭやＨＤＤに格納されているＸＰＳファイルをＨＤＤに伸張する（Ｓ１６１０）。また、ＨＤＤが搭載されていない場合は、全伸張データの格納は不可であるとして、即座にその旨のエラーをユーザに通知すると共に（Ｓ１６００）、既に受信したデータは全て破棄して（Ｓ１６３０）、本処理を終了する。
【００４７】
他方、先のＳ１５８０の判定処理で、取得したＸＰＳファイルの伸張後サイズがＲＡＭ容量より小さい場合は、ＸＰＳデータ伸張部７５は、伸張データを全てＲＡＭに格納できるとして、既にＲＡＭに格納されているＸＰＳファイルをＲＡＭへ伸張する（Ｓ１６２０）。
【００４８】
上記したＸＰＳファイルの伸張処理が全て完了すると、ＸＰＳデータ解析部８０は、伸張ファイルの中のテキストファイルに記述されているマークアップ言語の構文解析（文章の段落構造やフォントサイズ等の解析）を行い（Ｓ１６４０）、印刷イメージ作成部８５は、ＸＰＳデータ解析部８０の解析結果に基づく印刷イメージ（ビットマップイメージデータ）を作成し（Ｓ１６５０）、印刷部１００は、作成された印刷イメージに基づき、画像を記録媒体上に印刷する（Ｓ１６５２）。
【００４９】
また、先の、Ｓ１５２０の判定処理で、ＸＰＳファイルにダミーヘッダが付加されていない場合は、既存のＸＰＳファイルの格納処理と伸張処理をおこなう（Ｓ１５７５）（詳細は後述）。
Ｓ１５７５の伸張処理においてエラー（メモリフル）が発生したか否かをチェックし（Ｓ１５７７）、正常であれば、既述したＳ１６４０〜Ｓ１６５２の処理を実行し、本処理を終了する。
他方、先のＳ１５７７の判定処理で、エラーが発生している場合は、印刷処理は行わずに本処理を終了する。
【００５０】
次に、図１３を用いて、図１２のＳ１５２０における処理動作の詳細を説明する。図１３は、ダミーヘッダのチェック処理を示すフローチャートである。
【００５１】
先ず、ダミーヘッダ解析部６０は、受信した６４バイトのデータファイル（図１０参照）の先頭から２６バイト目に格納されているFile  name  length（ファイル名のサイズ）がダミーヘッダ作成時に記述した通りの１８バイトであるか否かをチェックし（Ｓ１５２１）、１８バイトでない場合は、ダミーヘッダでないと判断する（Ｓ１５２４）。
【００５２】
Ｓ１５２１の判定処理で、ファイル名のサイズが１８バイトである場合は、先頭より３０バイト目から１８バイト分のデータ（File  name）を取得し、このデータがダミーヘッダシグネチャを示す「FF  00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  FF」であるか否かチェックする（Ｓ１５２２）。
【００５３】
取得した１８バイトのデータがシグネチャと一致する場合はダミーヘッダであると判断し（Ｓ１５２３）、一致しない場合は、ダミーヘッダではないと判断する（Ｓ１５２４）。
【００５４】
次に、図１４を用いて、図１２のＳ１５３０における処理動作の詳細を説明する。図１４は、実施例１によるダミーヘッダの解析処理を示すフローチャートである。
【００５５】
先ず、ダミーヘッダ解析部６０は、ホストＰＣ１２より受信したダミーヘッダ（図１０）の先頭より４８バイト目から１６バイト分のデータ（extra  field）を取得し、始めの８バイトのデータを参照してＸＰＳファイルの伸張前のデータサイズ、すなわち、ファイルサイズを取得し（Ｓ１５３１）、次の８バイトのデータを参照して伸張後のデータサイズを取得する（Ｓ１５３２）。
【００５６】
次に、図１５を用いて、図１２のＳ１５７５における処理動作の詳細を説明する。図１５は、ＸＰＳファイルの既存の格納・伸張処理を示すフローチャートである。
【００５７】
先ず、データ受信部５５は、ホストＰＣ１２より受信したＸＰＳファイルをデータ格納部９０（ＲＡＭ）に格納していく（Ｓ１８００）。データ格納中に（受信データ量がＲＡＭの容量を超える）メモリフルが発生したか否かをチェックし（Ｓ１８１０）、メモリフルが発生しない場合は、ＲＡＭに格納したＸＰＳファイルをＲＡＭに伸張する（Ｓ１８２０）。
【００５８】
次いで、この伸張処理中にメモリフルが発生したか否かをチェックし（Ｓ１８３０）、メモリフルが発生しなければ伸張処理が正常終了したものとし、伸張処理中にメモリフルが発生した場合は、ＲＡＭ以外の大容量の記憶媒体として拡張データ格納部９５（ＨＤＤ）がプリンタ５０に搭載されているか否かをチェックする（Ｓ１８８０）。
【００５９】
Ｓ１８８０の判定処理で、ＨＤＤが搭載されている場合は、既にＲＡＭに格納されている伸張済みのデータをＨＤＤに移し替え（Ｓ１８９０）、以降、ＲＡＭ内の未伸張のＸＰＳファイルはＨＤＤへ伸張する（Ｓ１９００）。伸張処理が全て完了したら、本処理を終了する。
他方、ＨＤＤが搭載されていない場合は、伸張データの格納は不可としてエラーを通知し（Ｓ１９１０）、受信したデータを全て破棄して（Ｓ１９２０）、本処理を終了する。
【００６０】
また、先のＳ１８１０の判定処理で、メモリフルが発生した場合は、ＨＤＤが搭載されているか否かをチェックし（Ｓ１８４０）、ＨＤＤが搭載されている場合は、ＲＡＭに格納された受信済みのＸＰＳファイルをＨＤＤに移し替え（Ｓ１８５０）、以降に受信するＸＰＳファイルは全てＨＤＤに格納する（Ｓ１８６０）。
【００６１】
ＸＰＳファイルを全てＨＤＤに格納し終えると、該ＸＰＳファイルをＨＤＤに伸張し（Ｓ１８７０）、伸張処理が完了したら本処理を終了する。
【００６２】
また、先のＳ１８４０の判定処理で、ＨＤＤが搭載されていない場合は、ユーザにエラーを通知し（Ｓ１９１０）、受信したデータを全て破棄して（Ｓ１９２０）、本処理を終了する。
【００６３】
このように、ＸＰＳファイルにダミーヘッダが付加されてない場合の処理、すなわち、既存の格納・伸張処理では、受信したＸＰＳファイルの格納処理や格納したＸＰＳファイルの伸張処理が実行されるまで、ＸＰＳデータの記憶媒体への格納・伸張が可能か否か、即ち、印刷処理のためのデータの解析が可能か否かを判断することができないという非効率が生じ得る。また、係る非効率が生じた場合、ユーザへのエラー通知もＸＰＳファイルにダミーヘッダが付加されている場合のように、即座に行うことができない。
【００６４】
以上、実施例１によれば、ＸＰＳファイルの先頭にダミーヘッダを付加したので、プリンタ５０は、このダミーヘッダを解析することで、実際にＸＰＳファイルの全データを受信しなくとも、ＸＰＳファイルのファイルサイズと伸張後のデータサイズを取得することが可能であり、これらの取得情報から、ＸＰＳデータの格納や伸張に最適な記憶媒体を決定することが可能となる。その結果、メモリフルによるデータの無駄な読み出しや読み出したデータの再書き込みを無くし、データ処理の効率アップを図ることができる。
また、データ処理前に記憶媒体の容量不足を把握できれば、ユーザにその旨を即座に通知することができる。
【００６５】
また、ＸＰＳファイルのCentral  Directory  Headerの内容を修正することで、ＸＰＳファイルのファイル形式を維持することが可能であり、ダミーヘッダを解析できないプリンタやＸＰＳファイルをＰＣ上で閲覧するビューア等でも正常に処理することができる。
【実施例２】
【００６６】
次に、図１６を用いて実施例２による画像形成システムの構成を説明する。図１６は、実施例２による画像形成システムの構成を示す機能ブロック図である。
【００６７】
図１６に示すように、本実施例の画像形成システム１０は、画像処理装置としてのホストＰＣ１２と画像形成装置としてのプリンタ５０とで構成されている。
オペレーティングシステム（ＯＳ）１３は、ホストＰＣ１２全体を管理するソフトウエアシステムであって、ホストＰＣ１２には、このＯＳ１３上で動作するドライバ１５（プリンタドライバ）とＸＰＳ形式の文書ファイル（文章データや画像データ）を作成してドライバ１５に供給するアプリケーション１８が搭載されている。
【００６８】
上記ドライバ１５は、ＸＰＳデータ生成部（データ生成部）２０、ダミーヘッダ作成部（ヘッダ作成部）２５、データ別伸張後サイズ算出部（第２データ算出部）３２、ＸＰＳファイルサイズ算出部（第１データ算出部）３５、ＸＰＳファイル更新部（データ更新部）４０、データ送信部４５を備える。これらは、ドライバ１５を起動することにより実現される機能部である。上記の内、ダミーヘッダ作成部２５とデータ別伸張後サイズ算出部３２以外は実施例１（図１）と同様であり、詳細な説明は省略する。
【００６９】
データ別伸張後サイズ算出部３２は、ＸＰＳデータ生成部２０で作成されたＸＰＳファイルに含まれる全テキストファイルの伸張後サイズと、全バイナリファイルの伸張後サイズを算出する部分である。
ダミーヘッダ作成部２５は、データ別伸張後サイズ算出部３２で算出されたＸＰＳファイルの伸張後テキストデータサイズと伸張後バイナリデータサイズとＸＰＳファイルサイズ算出部３５で算出されたファイルサイズ等を記述したダミーヘッダ（図１９参照）を作成する部分である。尚、上記ダミーヘッダ作成部２５で作成されるダミーヘッダは、Ｚｉｐ圧縮されていないデータである。
【００７０】
また、上記プリンタ５０は、データ受信部５５、ダミーヘッダ解析部（ヘッダ解析部）６０、データ受信先判定部（第１判定部）６５、テキストデータ伸張先判定部（第２判定部）７６、バイナリデータ伸張先判定部（第２判定部）７７、ＸＰＳデータ伸張部（データ伸張部）７５、ＸＰＳデータ解析部（データ解析部）８０、印刷イメージ作成部８５、データ格納部（記憶媒体：ＲＡＭ）９０、拡張データ格納部（記憶媒体：ＨＤＤ）９５、印刷部（画像形成部）１００を備える。これらは、プリンタ５０に搭載された図示しないＣＰＵが所定の制御プログラムを実行することにより実現される機能部である。
上記の内、ダミーヘッダ解析部６０、テキストデータ伸張先判定部７６、バイナリデータ伸張先判定部７７、ＸＰＳデータ伸張部７５以外は実施例１（図１）と同様であり、詳細な説明は省略する。
【００７１】
ダミーヘッダ解析部６０は、データ受信部５５が受信したＸＰＳファイルのダミーヘッダを解析し、これ以降に受信するＸＰＳファイルのファイルサイズと伸張後のテキストデータサイズと伸張後のバイナリデータサイズを取得する部分である。
テキストデータ伸張先判定部７６は、ダミーヘッダ解析部６０が取得した伸張後のテキストデータサイズを元にテキストファイルの伸張先を決定する部分である。尚、テキストファイルとは、ＸＰＳマークアップ言語が記述されているファイルである。
バイナリデータ伸張先判定部７７は、ダミーヘッダ解析部６０が取得した伸張後のバイナリデータサイズを元にバイナリファイルの伸張先を決定する部分である。尚、バイナリファイルとは、ＸＰＳマークアップ以外のファイル（例えば、イメージファイルやフォントファイル）である。
ＸＰＳデータ伸張部７５は、データ受信部５５が受信したＸＰＳファイルを伸張（Ｚｉｐ伸張）すると共に、テキストファイルをテキストデータ伸張先判定部７６が決定した伸張先へ伸張し、バイナリファイルをバイナリデータ伸張先判定部７７が決定した伸張先へ伸張する部分である。
【００７２】
次に、図１７を用いて実施例２の動作を説明する。図１７は、実施例２によるドライバ１５の基本処理を示すフローチャートである。
【００７３】
ホストＰＣ１２のユーザが、アプリケーション１８上で作成した文書（ＸＰＳファイル）の印刷を指示すると、アプリケーション１８よりＸＰＳファイルがＸＰＳデータ生成部２０に供給される。
ＸＰＳデータ生成部２０は、アプリケーション１８よりＸＰＳファイルを受け取り、対応するプリンタ５０に適したＺｉｐ形式にて、ＸＰＳファイルを生成する（Ｓ２０００）。
この際、データ別伸張後サイズ算出部３２は、ＸＰＳデータ生成部２０で作成されたＸＰＳファイルに含まれる全テキストファイルの伸張後サイズと、全バイナリファイルの伸張後サイズを算出し、同時にＸＰＳファイルサイズ算出部３５は、該ＸＰＳファイルのファイルサイズを算出する。
【００７４】
ダミーヘッダ作成部２５は、データ別伸張後サイズ算出部３２で算出されテキストファイルのトータルサイズとバイナリファイルのトータルサイズを取得し（Ｓ２０１０）（詳細は後述）、次いで、ＸＰＳファイルサイズ算出部３５で算出された、ＸＰＳファイルのファイルサイズを取得し（Ｓ２０２０）、これらテキストファイルのトータルサイズとバイナリファイルのトータルサイズとファイルサイズを元に、ダミーヘッダを作成する（Ｓ２０３０）。
【００７５】
図１９は、上記ダミーヘッダの構成図である。
ダミーヘッダは、７２バイトのデータファイルであり、Local  File  Headerと同じ構成を有し、先頭より３０バイト目のfile  name（ファイル名）にダミーヘッダであることを示す１８バイトのシグネチャ情報（本実施例では、FF  00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  FF）が記述される。
【００７６】
また、先頭より４８バイト目のextra  filed（拡張データフィールド）に、最初の８バイトで伸張前のデータサイズ（例えば、0x00000000  0x00200000）が、次の８バイトで伸張後のテキストデータサイズ（例えば、0x00000000  0x00100000）が、さらに次の８バイトで伸張後のバイナリデータサイズ（例えば、0x00000000  0x00300000）が記述される。
【００７７】
また、先頭より２６バイト目のfile  name  length（ファイル名のサイズ）にバイト数１８が、また、先頭より２８バイト目のextra  field  length（拡張データのサイズ）にバイト数２４が記述される。
【００７８】
ＸＰＳファイル更新部４０は、図２０に示すように、先のＳ２０３０で作成されたダミーヘッダをＸＰＳファイルの先頭に付加し（Ｓ２０４０）、このＸＰＳファイルのCentral  Directory  Headerの内容を更新する（Ｓ２０５０）。図２０は、７２バイトのダミーヘッダが付加されたＸＰＳファイルの構造図である。
【００７９】
図１７の処理に戻り、データ送信部４５は、ＸＰＳファイル更新部４０でダミーヘッダの付加と内部データの更新が行われたＸＰＳファイルをプリンタ５０に送信する（Ｓ２０６０）。
【００８０】
ここで、Ｓ２０２０の処理の詳細は、図８の処理と同様であり、Ｓ２０４０の処理の詳細は、図９の処理と同様である。
【００８１】
次に、図１８を用いて、図１７のＳ２０１０における処理動作の詳細を説明する。図１８は、実施例２によるＺｉｐファイル伸張後のテキストデータ及びバイナリデータサイズの算出処理を示すフローチャートである。
【００８２】
先ず、伸張後のテキストデータサイズを格納しておく変数の値を０に初期化し（Ｓ２０７０）、次いで、伸張後バイナリデータサイズを格納しておく変数の値を０に初期化する（Ｓ２０８０）。
【００８３】
ＸＰＳファイルの先頭よりCentral  Directory  Headerを検索する（Ｓ２０９０）。尚、Central  Directory  Headerは、図４のファイル情報中の「0x02014b50」で示されるcentral  file  header  signature（シグネチャ）を発見することで検索可能である。
【００８４】
ファイル中にCentral  Directory  Headerが存在するか否かをチェックし（Ｓ２１００）、存在する場合は、そのCentral  Directory  Headerの記述情報より伸張後データサイズを取得する（Ｓ２１１０）。尚、伸張後データサイズは、Central  Directory  Headerの先頭より２４バイト目から４バイトの情報（uncompressed  size）に記述されている。
【００８５】
次に、Central  Directory  Headerの記述情報よりFile  Dataのデータ属性をチェックする（Ｓ２１２０）。このデータ属性（internal  file  attributes）は、Central  Directory  Headerの先頭より３６バイト目から２バイトで記載されており、「０」はバイナリデータを示し、「１」はテキストデータを示している。
【００８６】
データ属性がテキストデータであれば、取得した伸張後データサイズを上記した伸張後データサイズ格納用の変数に加算し（Ｓ２１３０）、また、データ属性がバイナリデータであれば、取得した伸張後データサイズを伸張後バイナリデータサイズ格納用の変数に加算し（Ｓ２１４０）、次のCentral  Directory  Headerの検索動作を継続する（Ｓ２０９０）。
Ｓ２０９０の判定処理で、Central  Directory  Headerが発見されなくなったときは検索を終了し、更新された各変数にて伸張後テキストファイルのトータルサイズ（Ｓ２１５０）と、伸張後バイナリファイルのトータルサイズ（Ｓ２１６０）を図１７のＳ２０１０に返す。
【００８７】
尚、図１７のＳ２０５０の処理の詳細は、既に説明した図９の処理と同様であるが、実施例２では、ダミーヘッダのサイズが７２バイトである点が実施例１と相違している。
【００８８】
次に、図２１を用いてプリンタ５０の動作を説明する。図２１は、実施例２によるプリンタの基本処理を示すフローチャートである。
【００８９】
先ず、データ受信部５５は、ホストＰＣ１２のドライバ１５より送信されたＸＰＳファイルの先頭７２バイト分のデータファイルを受信し、データ格納部９０（ＲＡＭ）に格納する（Ｓ２５００）。
【００９０】
ダミーヘッダ解析部６０は、受信した７２バイトのデータを参照して（Ｓ２５１０）、受信したデータがダミーヘッダであるか否かをチェックする（Ｓ２５２０）。尚、Ｓ２５２０の処理の詳細は、実施例１（図１３）のＳ１５２０と同様である。
【００９１】
Ｓ２５２０の判定処理で、受信したデータがダミーヘッダである場合は、ダミーヘッダの内容（extra  field）を解析し、続いて受信するＸＰＳファイルのファイルサイズと伸張後のテキストデータサイズと伸張後のバイナリデータサイズを取得する（Ｓ２５３０）（詳細は後述）。
【００９２】
データ受信先判定部６５は、取得したＸＰＳファイルのファイルサイズがＲＡＭの容量より大きいか否かをチェックし（Ｓ２５４０）、大きい場合は、プリンタ５０にＲＡＭの代わりとなる大容量の拡張データ格納部９５（ＨＤＤ）が搭載されているか否かをチェックする（Ｓ２５５０）。
ＨＤＤが搭載されている場合は、以降受信するＸＰＳファイルは全てＨＤＤへ格納する（Ｓ２５６０）。また、ＨＤＤが搭載されていない場合は、全データの格納は不可であるとして、即座にその旨のエラーをユーザに通知し（Ｓ２６００）、受信したデータは破棄して（Ｓ２６３０）、本処理を終了する。
【００９３】
他方、先のＳ２５４０の判定処理で、取得したＸＰＳファイルのファイルサイズがＲＡＭの容量より小さい場合は、以降ホストＰＣ１２より受信するＸＰＳファイルは全てデータ格納部９０（ＲＡＭ）に格納する（Ｓ２５７０）。
【００９４】
ホストＰＣ１２より受信したＸＰＳファイルの全データをＲＡＭやＨＤＤに格納し終えると、次に、テキストデータ伸張先判定部７６は、取得したＸＰＳファイルの伸張後のテキストデータサイズがＲＡＭの容量より大きいか否かをチェックし（Ｓ２５８０）、大きい場合は、プリンタ１５にＲＡＭの代わりとなるＨＤＤが搭載されているか否かをチェックする（Ｓ２５９０）。
ＨＤＤが搭載されている場合は、ＸＰＳデータ伸張部７５は、ＲＡＭやＨＤＤに格納されているテキストファイルをＨＤＤに伸張する（Ｓ２６１０）。
【００９５】
次に、バイナリデータ伸張先判定部７７は、取得したＸＰＳファイルの伸張後のバイナリデータサイズがＲＡＭの容量より大きいか否かをチェックし（Ｓ２６４０）、大きい場合は、格納されているバイナリファイルをＨＤＤに伸張し（Ｓ２６７０）、小さい場合は、ＲＡＭに伸張する（Ｓ２６８０）。
【００９６】
先のＳ２５８０の判定処理で、ＸＰＳファイルの伸張後のテキストデータサイズがＲＡＭの容量より小さい場合は、テキストファイルをＲＡＭへ伸張する（Ｓ２６２０）。
【００９７】
Ｓ２６２０で、テキストファイルをＲＡＭへ伸張した後、バイナリデータ伸張サイズがＲＡＭ容量からテキストファイル伸張サイズを引いた容量（すなわち、ＲＡＭの空き容量）より大きいか否かをチェックし（Ｓ２６５０）、大きい場合は、バイナリファイルのＲＡＭへの伸張は不可と判断し、代わりにＨＤＤが搭載されているかをチェックする（Ｓ２６６０）。
ＨＤＤが搭載されている場合は、バイナリファイルをＨＤＤに伸張する（Ｓ２６７０）。
ＨＤＤが搭載されていない場合は、バイナリファイルの伸張は不可として、直ちにその旨のエラーをユーザに通知し（Ｓ２６００）、受信したＸＰＳファイルと伸張したファイルを破棄し（Ｓ２６３０）、本処理を終了する。
【００９８】
先のＳ２６５０の判定処理で、ＲＡＭの空き容量よりバイナリデータ伸張サイズの方が小さい場合は、ＸＰＳファイルから伸張されるバイナリファイルはＲＡＭへ伸張する（Ｓ２６８０）。
【００９９】
上記したＸＰＳファイルの伸張処理が全て完了すると、ＸＰＳデータ解析部８０は、伸張ファイル中のテキストファイルに記述されているマークアップ言語の構文解析を行い（Ｓ２６９０）、印刷イメージ作成部８５は、ＸＰＳデータ解析部８０の解析結果に基づいて印刷イメージを作成し（Ｓ２７００）、印刷部１００は、作成された印刷イメージに基づき、画像を記録媒体上に印刷する（Ｓ２７１０）。
【０１００】
尚、先の、Ｓ２５２０の判定処理で、ダミーヘッダが付加されていない場合は、既存のＸＰＳファイルの格納処理と伸張処理をおこなう（Ｓ２６７５）（詳細は、図１５参照）。
Ｓ２６７５の伸張処理においてエラー（メモリフル）が発生したか否かをチェックし（Ｓ２５７７）、正常であれば、既述したＳ２６９０〜Ｓ２７１０の処理を実行した後、本処理を終了する。
他方、先のＳ２５７７の判定処理で、エラーが発生した場合は、印刷処理を行わずに本処理を終了する。
【０１０１】
次に、図２２を用いて、図２１のＳ２５３０における処理動作の詳細を説明する。図２２は、実施例２によるダミーヘッダの解析処理を示すフローチャートである。
先ず、ダミーヘッダ解析部６０は、受信したダミーヘッダ（図１９）の先頭より４８バイト目から２４バイト分のデータ（extra  field）を取得し、始めの８バイトのデータを参照してＸＰＳファイルのファイルサイズを取得し（Ｓ２５３１）、次の８バイトのデータを参照してテキストファイル伸張サイズを取得し、さらに最後の８バイトのデータを参照してバイナリファイル伸張サイズを取得する（Ｓ２５３３）。
【０１０２】
以上のように、実施例２によれば、ＸＰＳファイルから伸張されるテキストファイルとバイナリファイルの伸張サイズを別々に取得することにより、実施例１の効果に加えて、印刷データとしてアクセス頻度の高いテキストファイルをデータアクセス速度の速いＲＡＭに優先的に格納することで、ＸＰＳマークアップの構文解析処理を高速化できる。
【産業上の利用可能性】
【０１０３】
本実施形態では、印刷装置としてプリンタを例示したが、この他、ＰＤＬデータを処理可能な装置であれば、ファクシミリ、複写機、或いは、これらの機能を備える複合機（ＭＰF：Multiple  Function  Printer）にも適用可能である。
【符号の説明】
【０１０４】
１０  画像形成システム
１２  ホストＰＣ（画像処理装置）
２０  ＸＰＳデータ生成部（データ生成部）
２５  ダミーヘッダ作成部（ヘッダ作成部）
３０  ＸＰＳ伸張後サイズ算出部（第２データ算出部）
３５  ＸＰＳファイルサイズ算出部（第１データ算出部）
４０  ＸＰＳファイル更新部（データ更新部）
５０  プリンタ（画像形成装置）
６０  ダミーヘッダ解析部（ヘッダ解析部）
６５  データ受信先判定部（第１判定部）
７０  データ伸張先判定部（第２判定部）
７５  ＸＰＳデータ伸張部（データ伸張部）
８０  ＸＰＳデータ解析部（データ解析部）
９０  データ格納部（記憶媒体）
９５  拡張データ格納部（記憶媒体）
１００  印刷部（画像形成部）
【図１】
2011145745.tif 000003
【図２】
2011145745.tif 000004
【図３】
2011145745.tif 000005
【図４】
2011145745.tif 000006
【図５】
2011145745.tif 000007
【図６】
2011145745.tif 000008
【図７】
2011145745.tif 000009
【図８】
2011145745.tif 000010
【図９】
2011145745.tif 000011
【図１０】
2011145745.tif 000012
【図１１】
2011145745.tif 000013
【図１２】
2011145745.tif 000014
【図１３】
2011145745.tif 000015
【図１４】
2011145745.tif 000016
【図１５】
2011145745.tif 000017
【図１６】
2011145745.tif 000018
【図１７】
2011145745.tif 000019
【図１８】
2011145745.tif 000020
【図１９】
2011145745.tif 000021
【図２０】
2011145745.tif 000022
【図２１】
2011145745.tif 000023
【図２２】
2011145745.tif 000024