(57)【要約】【課題】連続して受信された複数のＸＰＳ形式のドキュメントデータを別々の印刷ジョブとして、連続的に処理する。【解決手段】  通信装置１は、ＸＰＳ形式のドキュメントデータを受信する。ＸＰＳ解釈部１２は、そのドキュメントデータにおけるシグネチャを読み出し、シグネチャの値に基づいてフィールドのサイズを特定し、そのサイズだけデータ読み出し位置を進める処理を、エンド・オブ・セントラルディレクトリレコードを示すシグネチャが読み出されるまで繰り返し実行する。そして、制御部１３は、ＸＰＳ解釈部１２によりエンド・オブ・セントラルディレクトリレコードが発見されると、そのエンド・オブ・セントラルディレクトリレコードを１つの印刷ジョブを終わりとして印刷ジョブを確定する。【選択図】  図１
2010277277.tif 000002
【特許請求の範囲】
【請求項１】
ＸＰＳ形式のドキュメントデータに従って印刷を行う画像形成装置において、
ＸＰＳ形式のドキュメントデータを受信する受信手段と、
前記ドキュメントデータにおけるシグネチャを読み出し、前記シグネチャの値に基づいてフィールドのサイズを特定し、そのサイズだけデータ読み出し位置を進める処理を、エンド・オブ・セントラルディレクトリレコードを示すシグネチャが読み出されるまで繰り返し実行するＸＰＳ解釈手段と、
前記ＸＰＳ解釈手段によりエンド・オブ・セントラルディレクトリレコードが発見されると、そのエンド・オブ・セントラルディレクトリレコードを１つの印刷ジョブを終わりとして印刷ジョブを確定する制御手段と、
を備えることを特徴とする画像形成装置。
【請求項２】
前記ＸＰＳ解釈手段は、前記シグネチャの値に基づいて、データ読み出し位置にあるフィールドの種別を特定し、その種別からそのフィールドのサイズを特定することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記ＸＰＳ解釈手段は、前記シグネチャの値がローカルファイルヘッダを示している場合、そのローカルファイルヘッダからファイルデータのサイズを読み出し、前記ローカルファイルヘッダのサイズ、前記ファイルデータのサイズおよびデータデスクリプタのサイズの合計だけデータ読み出し位置を進めることを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記受信手段は、周辺機器インタフェースで前記ＸＰＳ形式のドキュメントデータを受信することを特徴とする請求項１記載の画像形成装置。
【請求項５】
前記周辺機器インタフェースは、ユニバーサルシリアルバスまたはパラレルインタフェースであることを特徴とする請求項４記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に関するものである。
【背景技術】
【０００２】
近年、ＸＰＳ（XML Paper Specification）形式のドキュメントデータ（以下、ＸＰＳドキュメントデータという）が使用されている。ＸＰＳドキュメントデータは、ＺＩＰ形式で圧縮されている。このため、ＸＰＳドキュメントデータは、ＺＩＰ形式のフォーマットを有する。このＸＰＳドキュメントデータを受信し、そのＸＰＳドキュメントデータに従って印刷を行うプリンタがある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２３４５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＸＰＳドキュメントデータを１つのファイルとして、例えばファイル転送プロトコルなどでプリンタへ供給する場合には、ＸＰＳドキュメントデータの終端はファイルの終端として検出可能である。しかしながら、ＵＳＢ（Universal Serial Bus）やパラレルインタフェースなどの周辺機器インタフェースでＸＰＳドキュメントデータをプリンタへ供給する場合には、連続する複数のドキュメントデータが一連のデータストリームとなって供給されるため、各ドキュメントデータの終端がわからず、連続する複数のＸＰＳドキュメントデータを別々の印刷ジョブとしてプリンタへ供給することが困難である。
【０００５】
また、あるプリンタにおいては、タイムアウト時間を設け、タイムアウト時間が経過するまでドキュメントデータを待ち続け、タイムアウト時間が経過したときに、１つの印刷ジョブを確定させ、その印刷ジョブが開始される。このようにすると、連続する複数のＸＰＳドキュメントデータを別々のジョブとしてプリンタへ供給することができるが、１つの印刷ジョブごとにタイムアウト時間だけの遅延が発生してしまう。
【０００６】
また、ページ記述言語で印刷データを記述してプリンタへ供給する場合には、ＰＪＬ（Printer Job Language）のようなデバイス制御言語を使用して明示的にデータ終端を与えることができるが、ＸＰＳ形式の仕様では、そのようなデータ終端を与えることが許されていない。
【０００７】
本発明は、上記の問題に鑑みてなされたものであり、複数のＸＰＳドキュメントデータを別々の印刷ジョブとして、連続的に処理することができる画像形成装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明では以下のようにした。
【０００９】
本発明に係る画像形成装置は、ＸＰＳ形式のドキュメントデータを受信する受信手段と、ドキュメントデータにおけるシグネチャを読み出し、シグネチャの値に基づいてフィールドのサイズを特定し、そのサイズだけデータ読み出し位置を進める処理を、エンド・オブ・セントラルディレクトリレコードを示すシグネチャが読み出されるまで繰り返し実行するＸＰＳ解釈手段と、ＸＰＳ解釈手段によりエンド・オブ・セントラルディレクトリレコードが発見されると、そのエンド・オブ・セントラルディレクトリレコードを１つの印刷ジョブを終わりとして印刷ジョブを確定する制御手段とを備える。
【００１０】
これにより、エンド・オブ・セントラルディレクトリレコードを使用して、複数のＸＰＳ形式のドキュメントデータを別々の印刷ジョブとして、連続的に処理することができる。また、シグネチャごとにデータをスキップしていくため、エンド・オブ・セントラルディレクトリレコードを示すシグネチャと同値のデータが途中に存在しても、ＸＰＳ形式のドキュメントデータの終端を正確に検出することができる。
【００１１】
また、本発明に係る画像形成装置は、上記の画像形成装置に加え、次のようにしてもよい。この場合、ＸＰＳ解釈手段は、シグネチャの値に基づいて、データ読み出し位置にあるフィールドの種別を特定し、その種別からそのフィールドのサイズを特定する。
【００１２】
また、本発明に係る画像形成装置は、上記の画像形成装置に加え、次のようにしてもよい。この場合、ＸＰＳ解釈手段は、シグネチャの値がローカルファイルヘッダを示している場合、そのローカルファイルヘッダからファイルデータのサイズを読み出し、ローカルファイルヘッダのサイズ、ファイルデータのサイズおよびデータデスクリプタのサイズの合計だけデータ読み出し位置を進める。
【００１３】
また、本発明に係る画像形成装置は、上記の画像形成装置に加え、次のようにしてもよい。この場合、受信手段は、周辺機器インタフェースでＸＰＳ形式のドキュメントデータを受信する。
【００１４】
また、本発明に係る画像形成装置は、上記の画像形成装置に加え、次のようにしてもよい。この場合、周辺機器インタフェースは、ユニバーサルシリアルバスまたはパラレルインタフェースである。
【発明の効果】
【００１５】
本発明によれば、連続して受信された複数のＸＰＳドキュメントデータを別々の印刷ジョブとして、連続的に処理することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
【図２】図２は、ＺＩＰ形式のデータ構造を示す図である。
【図３】図３は、図１に示す画像形成装置によるドキュメントデータ受信処理について説明するフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図に基づいて本発明の実施の形態を説明する。
【００１８】
図１は、本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。図１において、通信装置１は、パーソナルコンピュータなどのホスト装置に接続され、ＵＳＢ、パラレルインタフェースなどといった周辺機器インタフェースでＸＰＳドキュメントデータを受信する装置である。
【００１９】
また、画像処理装置２は、ドキュメントデータから抽出された画像データに対して画像処理を施して印刷データを生成する装置である。印刷データは、印刷エンジン３を制御するためのデータである。
【００２０】
また、印刷エンジン３は、印刷データに従って印刷用紙に画像を印刷する装置である。
【００２１】
また、コンピュータ４は、図示せぬＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などを有し、ＲＡＭにプログラムをロードしＣＰＵで実行する装置である。
【００２２】
コンピュータ４において、バッファ１１は、図示せぬＲＡＭに設けられ、受信されたドキュメントデータを一時的に記憶する記憶領域である。
【００２３】
また、コンピュータ４において、プログラムをＣＰＵで実行することにより、各種処理部が実現される。この実施の形態では、ＸＰＳ解釈部１２および制御部１３が実現される。
【００２４】
ＸＰＳ解釈部１２は、バッファ１１からＸＰＳドキュメントデータにおけるシグネチャを読み出し、そのシグネチャの値に基づいて、現在のデータ読み出し位置にあるフィールドのサイズを特定し、そのサイズだけデータ読み出し位置を進める処理を、エンド・オブ・セントラルディレクトリレコードを示すシグネチャが読み出されるまで繰り返し実行する処理部である。
【００２５】
ＸＰＳドキュメントデータは、ＺＩＰ形式で圧縮されたデータである。図２は、ＺＩＰ形式のデータ構造を示す図である。図２に示すように、ＺＩＰ形式のデータには、１組または複数組のローカルファイルヘッダ（Local File Header）、ファイルデータ（File Data）およびデータデスクリプタ（Data Descriptor）、セントラルディレクトリ（Central Directory）、並びにエンド・オブ・セントラルディレクトリレコード（End Of Central Directory Record）が含まれている。エンド・オブ・セントラルディレクトリレコードは、ＺＩＰデータの終端に位置する。
【００２６】
セントラルディレクトリは、１または複数のファイルヘッダおよびデジタルシグネチャを有する。
【００２７】
ローカルファイルヘッダ、セントラルディレクトリにおけるファイルヘッダおよびデジタルシグネチャ、並びにエンド・オブ・セントラルディレクトリレコードは、それらの先頭に、シグネチャを有する。シグネチャは、４バイトのデータであり、フィールドの種別に固有の値を有する。ローカルファイルヘッダのシグネチャの値は、０ｘ０４０３４ｂ５０である。セントラルディレクトリにおけるファイルヘッダのシグネチャの値は、０ｘ０２０１４ｂ５０である。セントラルディレクトリにおけるデジタルシグネチャのシグネチャの値は、０ｘ０５０５４ｂ５０である。エンド・オブ・セントラルディレクトリレコードのシグネチャの値は、０ｘ０６０５４ｂ５０である。
【００２８】
また、これらのフィールドは、固定長である。ただし、ファイルデータは、可変長であり、そのサイズは、ローカルファイルヘッダに含まれている。
【００２９】
また、制御部１３は、画像処理装置２および印刷エンジン３を制御し、受信されたＸＰＳドキュメントデータに対応する印刷ジョブを管理し、印刷ジョブを実行して印刷エンジン３に印刷を行わせる処理部である。また、制御部１３は、ＸＰＳ解釈部１２によりエンド・オブ・セントラルディレクトリレコードが発見されると、そのエンド・オブ・セントラルディレクトリレコードを１つの印刷ジョブを終わりとして印刷ジョブを確定する。
【００３０】
次に、上記装置の動作について説明する。図３は、図１に示す画像形成装置によるドキュメントデータ受信処理について説明するフローチャートである。
【００３１】
ＸＰＳドキュメントデータが通信装置１により受信されると、バッファ１１に順番に記憶される（ステップＳ１）。
【００３２】
そして、ＸＰＳ解釈部１２は、バッファ１１内のドキュメントデータの先頭から４バイトのシグネチャを読み出す（ステップＳ２）。
【００３３】
ＸＰＳ解釈部１２は、そのシグネチャの値から、現在のデータ読み出し位置にあるフィールドの種別を特定し、そのフィールドのサイズを特定する（ステップＳ３）。このとき、そのフィールドがローカルファイルヘッダである場合には、ＸＰＳ解釈部１２は、ファイルデータのサイズをローカルファイルヘッダから読み出す。
【００３４】
なお、シグネチャの値とフィールド種別とフィールドサイズとは互いに関連付けられて予めテーブル（図示せず）に格納されており、そのテーブルを参照することにより、フィールドのサイズが特定される。
【００３５】
ＸＰＳ解釈部１２は、特定したサイズだけ（つまり、次のフィールドの先頭まで）、データ読み出し位置を進める（ステップＳ４）。このとき、現在のデータ読み出し位置にあるフィールドがローカルファイルヘッダである場合には、そのローカルファイルヘッダ、並びにそれに対応するファイルデータおよびデータデスクリプタがスキップされ、次のフィールドの先頭まで、データ読み出し位置が進められる。
【００３６】
また、ＸＰＳ解釈部１２は、ステップＳ２で読み出したシグネチャの値がエンド・オブ・セントラルディレクトリレコードを示す値であるか否かを判定する（ステップＳ５）。
【００３７】
ステップＳ２で読み出したシグネチャの値がエンド・オブ・セントラルディレクトリレコードを示す値ではない場合、ＸＰＳ解釈部１２は、現在のデータ読み出し位置のフィールドについて、ステップＳ２〜Ｓ４の処理を再度行う。
【００３８】
一方、ステップＳ２で読み出したシグネチャの値がエンド・オブ・セントラルディレクトリレコードを示す値である場合、ＸＰＳ解釈部１２は、現在のデータ読み出し位置を制御部１３に通知する。制御部１３は、データの先頭または前回のエンド・オブ・セントラルディレクトリレコードの次のフィールドから、現在のデータ読み出し位置までのドキュメントデータを１つの印刷ジョブとし、その印刷ジョブをキューに登録したり、そのまま実行したりする（ステップＳ６）。
【００３９】
そして、ＸＰＳ解釈部１２は、エンド・オブ・セントラルディレクトリレコードの後にデータが続いているか否かを判定する（ステップＳ７）。エンド・オブ・セントラルディレクトリレコードの後にデータが続いている場合には、次の印刷ジョブを確定させるための処理（ステップＳ２〜Ｓ６）が実行される。エンド・オブ・セントラルディレクトリレコードの後にデータが続いていない場合には、処理を終了する。
【００４０】
以上のように、上記実施の形態によれば、通信装置１は、ＸＰＳドキュメントデータを受信する。ＸＰＳ解釈部１２は、そのドキュメントデータにおけるシグネチャを読み出し、シグネチャの値に基づいてフィールドのサイズを特定し、そのサイズだけデータ読み出し位置を進める処理を、エンド・オブ・セントラルディレクトリレコードを示すシグネチャが読み出されるまで繰り返し実行する。そして、制御部１３は、ＸＰＳ解釈部１２によりエンド・オブ・セントラルディレクトリレコードが発見されると、そのエンド・オブ・セントラルディレクトリレコードを１つの印刷ジョブを終わりとして印刷ジョブを確定する。
【００４１】
これにより、複数のＸＰＳドキュメントデータが連続して受信され連続的にバッファ１１に記憶されていても、エンド・オブ・セントラルディレクトリレコードを使用して、複数のＸＰＳドキュメントデータを別々の印刷ジョブとして、連続的に処理することができる。つまり、上述のようなタイムアウト時間の経過を待たなくても、直ちに後続の印刷ジョブを処理することができる。また、シグネチャごとにデータをスキップしていくため、エンド・オブ・セントラルディレクトリレコードを示すシグネチャと同値のデータが途中に存在しても、ＸＰＳドキュメントデータの終端を正確に検出することができる。
【００４２】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【産業上の利用可能性】
【００４３】
本発明は、例えば、ＵＳＢでパーソナルコンピュータに接続されるプリンタに適用可能である。
【符号の説明】
【００４４】
１  通信装置（受信手段の一例）
１２  ＸＰＳ解釈部（ＸＰＳ解釈手段の一例）
１３  制御部（制御手段の一例）
【図１】
2010277277.tif 000003
【図２】
2010277277.tif 000004
【図３】
2010277277.tif 000005