(57)【要約】【課題】  ページ単位での分散印刷を簡易な構成にて実現する。【解決手段】印刷制御装置は、ネットワークに接続された複数の印刷装置のうち、少なくとも一つに内蔵される。印刷制御装置は、複数のページに亘る印刷を要求する第１の印刷ジョブを受信する受信部と、複数の印刷装置の中から、第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定する分散先特定部と、第１の印刷ジョブにより印刷を要求される複数のページを、分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定する割当ページ決定部と、割当ページの印刷を要求する第２の印刷ジョブを、複数の分散先印刷装置に対してそれぞれ送信する送信部と、を備える。【選択図】  図４
2007041753.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の印刷装置のうち、少なくとも一つの前記印刷装置に内蔵される印刷制御装置であって、
複数のページに亘る印刷を要求する第１の印刷ジョブを受信する受信部と、
前記複数の印刷装置の中から、前記第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定する分散先特定部と、
前記第１の印刷ジョブにより印刷を要求される複数のページを、前記分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定する割当ページ決定部と、
前記割当ページの印刷を要求する第２の印刷ジョブを、複数の前記分散先印刷装置に対してそれぞれ送信する送信部と、
を備える印刷制御装置。
【請求項２】
請求項１に記載の印刷制御装置において、
前記第１の印刷ジョブは、
前記印刷が要求される複数のページに対応する印刷データを含み、
前記第２の印刷ジョブは、
前記印刷データをそのまま含むと共に、前記割当ページを特定するためのページ特定情報を含む印刷制御装置。
【請求項３】
請求項２に記載の印刷制御装置において、
前記第２の印刷ジョブは、前記第１の印刷ジョブに、前記ページ特定情報を追加した印刷ジョブである印刷制御装置。
【請求項４】
請求項２または請求項３に記載の印刷制御装置において、
前記割当ページは、１または連続する複数のページであり、
前記ページ特定情報は、前記割当ページの開始ページと終了ページを特定するための情報である印刷制御装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の印刷制御装置において、
前記第１の印刷ジョブは、前記印刷が要求される複数のページの総ページ数を特定するためのページ数情報を含み、
前記割当ページ決定部は、前記割当ページのページ数を、前記ページ数情報に基づいて決定する印刷制御装置。
【請求項６】
請求項５に記載の印刷制御装置において、
前記第１の印刷ジョブは、さらに、前記印刷が要求される複数のページに対応する印刷データを含み、
前記第１の印刷ジョブは、前記受信部により受信される際に、前記ページ数情報が前記印刷データより先に受信されるように構成される印刷制御装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の印刷制御装置において、
前記割当ページ決定部は、各分散先印刷装置に割り当てられる各割当ページのページ数を、ほぼ均等にする印刷制御装置。
【請求項８】
請求項７に記載の印刷制御装置において、
前記第２の印刷ジョブは、前記第１の印刷ジョブにより印刷を要求される複数のページに対応する印刷データを全て含み、
前記分散先印刷装置は、前記第２の印刷ジョブにより要求される印刷を実行する際に、前記印刷データをページ順に解釈して、前記割当ページに対応する印刷データを選択的に印刷し、
前記割当ページ決定部は、前記総ページ数が前記分散先印刷装置の数で割り切れない場合には、各分散先印刷装置に割り当てられる各割当ページのうち、ページ順の早いページを含む割当ページのページ数を多くする印刷制御装置。
【請求項９】
ネットワークに接続される印刷装置であって、
複数のページに亘る印刷を要求する第１の印刷ジョブを受信する受信部と、
前記印刷装置自身と前記ネットワークに接続された他の印刷装置の中から、前記第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定する分散先特定部と、
前記第１の印刷ジョブにより印刷を要求される複数のページを、前記分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定する割当ページ決定部と、
前記割当ページの印刷を要求する第２の印刷ジョブを、複数の前記分散先印刷装置に対してそれぞれ送信する送信部と、
を備える印刷装置。
【請求項１０】
ネットワークに接続された複数の印刷装置における印刷方法であって、
前記複数の印刷装置の中のいずれかである特定印刷装置において、
複数のページに亘る印刷を要求する第１の印刷ジョブを受信し、
前記複数の印刷装置の中から、前記第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定し、
前記第１の印刷ジョブにより印刷を要求される複数のページを、前記分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定し、
前記割当ページの印刷を要求する第２の印刷ジョブを、複数の前記分散先印刷装置に対してそれぞれ送信し、
前記分散先印刷装置のそれぞれにおいて、
前記特定印刷装置から前記第２の印刷ジョブを受信し、
前記第２の印刷ジョブに基づいて、前記割当ページの印刷を実行する印刷方法。
【請求項１１】
コンピュータに、ネットワークに接続された複数の印刷装置のうちの少なくとも一つを制御させるためのコンピュータプログラムであって、
複数のページに亘る印刷を要求する第１の印刷ジョブを受信する第１の機能と、
前記複数の印刷装置の中から、前記第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定する第２の機能と、
前記第１の印刷ジョブにより印刷を要求される複数のページを、前記分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定する第３の機能と、
前記割当ページの印刷を要求する第２の印刷ジョブを、複数の前記分散先印刷装置に対してそれぞれ送信する第４の機能と、
を前記コンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷ジョブを２以上の印刷装置に分散して、分散印刷を行う技術に関する。
【背景技術】
【０００２】
複数の印刷装置にネットワークを介して接続された印刷制御装置が、複数の印刷装置に印刷ジョブを分散する分散印刷システムが知られている（例えば、特許文献１）。その従来技術では、１つの印刷ジョブにおいて印刷を要求される複数のページを、ページ単位で複数の印刷装置に配分し、並行して印刷を行うことにより、短時間で複数部数の印刷を完了することができる。
【０００３】
【特許文献１】特開２００２−２６８８５０号公報
【特許文献２】特開２００１−１００９６３号公報
【特許文献３】特開平１１−１１０１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、ページ単位での分散印刷を実現するために専用サーバを含めた大がかりなシステムが必要とされる場合があった。
【０００５】
本発明は、上記課題を解決するためになされたものであり、簡易な構成にてページ単位での分散印刷を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一部を解決するために本発明の第１の態様は、ネットワークに接続された複数の印刷装置のうち、少なくとも一つに内蔵される印刷制御装置を提供する。本態様に係る印刷制御装置は、複数のページに亘る印刷を要求する第１の印刷ジョブを受信する受信部と、前記複数の印刷装置の中から、前記第１の印刷ジョブにより要求される印刷の分散先となる複数の分散先印刷装置を特定する分散先特定部と、前記第１の印刷ジョブにより印刷を要求される複数のページを、前記分散先印刷装置の数のグループに分けて、各分散先印刷装置に割り当てられる各割当ページを決定する割当ページ決定部と、前記割当ページの印刷を要求する第２の印刷ジョブを、複数の前記分散先印刷装置に対してそれぞれ送信する送信部と、を備えることを特徴とする。
【０００７】
本態様によれば、印刷を要求される複数のページを、複数の分散先印刷装置にページ単位で割当てて印刷を行わせる分散印刷（ページ単位での分散印刷）を、印刷装置に内蔵された印刷制御装置が行う。従って、簡易な構成でページ単位での分散印刷を実現することができる。
【０００８】
本態様に係る印刷制御装置において、前記第１の印刷ジョブは、前記印刷が要求される複数のページに対応する印刷データを含み、前記第２の印刷ジョブは、前記印刷データをそのまま含むと共に、前記割当ページを特定するためのページ特定情報を含んでも良い。こうすれば、第２の印刷ジョブは、第１の印刷ジョブに含まれる印刷データをそのまま含むので、印刷制御装置は、印刷データの加工をすることなく、容易に、第２の印刷ジョブを生成できる。この結果、印刷制御装置の処理負荷を低減でき、印刷制御装置をより簡易な装置にすることができる。
【０００９】
本態様に係る印刷制御装置において、前記第２の印刷ジョブは、前記第１の印刷ジョブに、前記ページ特定情報を追加した印刷ジョブであっても良い。こうすれば、第２の印刷ジョブは、第１の印刷ジョブにページ特定情報を追加するだけで生成されるので、印刷制御装置は、より容易に、第２の印刷ジョブを生成できる。この結果、印刷制御装置の処理負荷を低減でき、印刷制御装置をより簡易な装置にすることができる。
【００１０】
本態様に係る印刷制御装置において、前記割当ページは、１または連続する複数のページであり、前記ページ特定情報は、前記割当ページの開始ページと終了ページを特定するための情報を含んでも良い。こうすれば、開始ページと終了ページを特定することにより、分散先印刷装置は、容易に、割当ページを特定することができる。
【００１１】
本態様に係る印刷制御装置において、前記第１の印刷ジョブは、前記印刷が要求される複数のページの総ページ数を特定するためのページ数情報を含み、前記割当ページ決定部は、前記割当ページのページ数を、前記ページ数情報に基づいて決定しても良い。こうすれば、印刷制御装置は、総ページ数を容易に把握でき、総ページ数に基づいて容易に、適切な割当ページを決定できる。
【００１２】
本態様に係る印刷制御装置において、前記第１の印刷ジョブは、さらに、前記印刷が要求される複数のページに対応する印刷データを含み、前記第１の印刷ジョブは、前記受信部により受信される際に、前記ページ数情報が前記印刷データより先に受信されるように構成されても良い。こうすれば、印刷データを受信する前に、ページ数情報を受信するので、印刷制御装置は、印刷データを受信していなくても、総ページ数を把握でき、総ページ数に基づいて適切な割当ページを決定できる。
【００１３】
本態様に係る印刷制御装置において、前記割当ページ決定部は、各分散先印刷装置に割り当てられる各割当ページのページ数を、ほぼ均等にしても良い。こうすれば、短時間にページ単位での分散印刷を完了させることができる。また、係る場合において、前記第２の印刷ジョブは、前記第１の印刷ジョブにより印刷を要求される複数のページに対応する印刷データを全て含み、前記分散先印刷装置は、前記第２の印刷ジョブにより要求される印刷を実行する際に、前記印刷データをページ順に解釈して、前記割当ページに対応する印刷データを選択的に印刷し、前記割当ページ決定部は、前記総ページ数が前記分散先印刷装置の数で割り切れない場合には、各分散先印刷装置に割り当てられる各割当ページのうち、ページ順の早いページを含む割当ページのページ数を多くしても良い。ページ順の早いページを含む割当ページを印刷する分散先印刷装置は、より割当ページの印刷を早く開始できる。そのような分散先印刷装置に多くのページ数を印刷させることにより、短時間にページ単位での分散印刷を完了させることができる。
【００１４】
なお、本発明は、上記した印刷制御装置としての構成の他、ネットワークに接続される印刷装置、あるいは、複数の印刷装置を備える印刷システムとしても構成することができる。また、そのような物の発明としての態様に限ることなく、ネットワークに接続された複数の印刷装置における印刷方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明に係る印刷制御装置および印刷装置について、図面を参照しつつ、実施例に基づいて説明する。
【００１６】
Ａ．第１実施例：
・分散印刷システムの構成：
図１および図２を参照して、本発明の第１実施例における分散印刷システムの構成について説明する。図１は、本発明の第１実施例における分散印刷システムの概略構成を示す説明図である。図２は、第１実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図である。
【００１７】
この分散印刷システムは、図１に示すように、クライアントとしての計算機（以下、単にクライアントという。）ＣＬと、複数のプリンタＰＲＴ１〜ＰＲＴ４を含む。クライアントＣＬと、プリンタＰＲＴ１〜ＰＲＴ４は、ローカルエリアネットワーク（ＬＡＮ）を介して互いに接続されている。各機器間の通信は、ＴＣＰ／ＩＰプロトコルを用いて行われるため、各機器にはそれぞれＩＰアドレスが割り振られる。説明の便宜上、クライアントＣＬには「ＩＰｃ」、プリンタＰＲＴ１〜ＰＲＴ４には、それぞれ「ＩＰ１」〜「ＩＰ４」なるＩＰアドレスが設定されているものとする。なお、厳密に言えば、これらＩＰアドレスは、クライアントＣＬ、プリンタＰＲＴ１〜ＰＲＴ４自体に設定されているわけではなく、ＴＣＰ／ＩＰのネットワークから見た場合のノード（すなわち、具体的には、ＴＣＰ／ＩＰ通信を行うためにネットワークに接続されているネットワークボードなど）に設定されている。
【００１８】
これらプリンタのうち、プリンタＰＲＴ１には、カスタムネットワークボード１００がそれぞれ取り付けられている。このカスタムネットワークボード１００は、クライアントＣＬから受信した印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における印刷制御装置に相当する。プリンタＰＲＴ２〜ＰＲＴ４には、それぞれ、標準のネットワークボード２００が取り付けられている。
【００１９】
図１において、実線で示す矢印は、クライアントＣＬからプリンタＰＲＴ１のカスタムネットワークボード１００に印刷ジョブが送信され、プリンタＰＲＴ１のカスタムネットワークボード１００からプリンタＰＲＴ１〜ＰＲＴ４にその印刷ジョブが分散される流れを示している。このように、プリンタＰＲＴ１〜ＰＲＴ４はいずれも、プリンタＰＲＴ１のカスタムネットワークボード１００から分散印刷の分散先とされ得る。以下において、各プリンタＰＲＴ１〜ＰＲＴ４を区別する必要のない場合には、符号の末尾の数字を省略しプリンタＰＲＴともいう。また、プリンタＰＲＴ１〜ＰＲＴ４のうち、分散先とされたプリンタを分散先プリンタともいう。
【００２０】
プリンタＰＲＴ１は、図２に示すように、プリンタ本体ＰＲＢ１と、上述したカスタムネットワークボード１００とを備えている。プリンタ本体ＰＲＢ１は、主として、プリンタエンジン９０と、プリンタコントローラ８０とを備えている。プリンタエンジン９０は、実際に印刷を行う。プリンタコントローラ８０は、後述する印刷ジョブ受信部６０から供給される印刷ジョブを受け取り、その印刷ジョブを解釈してプリンタエンジン９０を制御して印刷を実行させる。プリンタコントローラ８０は、供給された印刷ジョブを始めとするデータを一時的に格納するプリンタバッファ８２を備えている。また、プリンタコントローラ８０は、プリンタ本体ＰＲＢ１に関する種々の情報を収集してＭＩＢ(Management Information Base)と呼ばれる形式で保存したファイル（以下、ＭＩＢファイルという。）８１を格納している。ＭＩＢファイル８１には、種々の情報がオブジェクト単位で保存され、オブジェクトごとに、オブジェクトＩＤ（以下、ＯＩＤという。）が割り振られている。
【００２１】
カスタムネットワークボード１００は、主として、中央演算装置（ＣＰＵ）２０と、メモリ３０とを備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略している。
【００２２】
ＣＰＵ２０は、メモリ３０より、上記した分散印刷を実行するためのソフトウエアなどのプログラムを読み出して、実行することにより、図示した各機能ブロックをソフトウエア的に実現する。なお、各機能ブロックをハードウエア的に構築しても構わない。
【００２３】
ＣＰＵ２０によって実現される機能ブロックには、ＴＣＰ／ＩＰ部１０と、分散制御部５０と、印刷ジョブ受信部６０と、ＳＮＭＰマネージャ４０と、ＳＮＭＰエージェント７０が含まれる。
【００２４】
ＴＣＰ／ＩＰ部１０は、ＴＣＰ／ＩＰプロトコルを解釈して、主としてネットワークを介して外部との通信を行う。ＴＣＰ／ＩＰプロトコルにおいてトランスポート層の処理を行うプロトコルとして、ＴＣＰ（Transmission Control Protocol）とＵＤＰ（User Datagram Protocol）がある。ＴＣＰは、信頼性の高いコネクション型の通信を実現するプロトコルである。一方、ＵＤＰは、高速なコネクションレス型の通信を実現するプロトコルである。ＴＣＰ／ＩＰ部１０は、後述する印刷ジョブの通信を、ＴＣＰを用いて行うと共に、後述するＳＮＭＰマネージャ４０とＳＮＭＰエージェント７０間の通信を、ＵＤＰを用いて行う。
【００２５】
分散制御部５０は、分散印刷が指定された印刷ジョブ（以下、第１の印刷ジョブともいう。）を受信して、分散先プリンタに印刷ジョブを分散する。分散制御部５０は、サブ機能ブロックとして分散ジョブ受信部５２と、分散先特定部５４と、割当ページ決定部５６と、印刷ジョブ送信部５８を備えている。分散ジョブ受信部５２は、クライアントＣＬなどの外部機器からネットワークを介して、第１の印刷ジョブを受信する。分散先特定部５４は、カスタムネットワークボード１００と接続されている複数のプリンタの中から第１の印刷ジョブの分散先となる複数の分散先プリンタを特定する。割当ページ決定部５６は、第１の印刷ジョブにより印刷が要求される複数のページを、特定された分散先プリンタの数のグループに分ける。割当ページ決定部５６は、グループに分けられたページをそれぞれ、特定された各分散先プリンタの割当ページとする。印刷ジョブ送信部５８は、割当ページの印刷を分散先プリンタに要求する印刷ジョブ（以下、第２の印刷ジョブともいう。）を、各分散先プリンタに対して送信する。以上のような分散制御部５０が実行する処理については、さらに後述する。
【００２６】
印刷ジョブ受信部６０は、分散印刷が指定されていない通常の印刷ジョブ、例えば、上述した第２の印刷ジョブを受信してプリンタコントローラ８０に供給する。ＳＮＭＰマネージャ４０は、ＳＮＭＰ（Simple Network Management Protocol）と呼ばれる通信プロトコルを用いて、各プリンタＰＲＴ１〜ＰＲＴ４が備えるＳＮＭＰエージェント７０に問い合わせて、各種の情報を取得する。ＳＮＭＰマネージャ４０は、上述したＯＩＤを指定することにより取得すべき情報を特定して問い合わせを行う。
【００２７】
ＳＮＭＰエージェント７０は、ＳＮＭＰマネージャ４０の問い合わせに応じて、上述したＭＩＢファイル８１から所望の情報を取得し、ＳＮＭＰマネージャ４０に対して、その情報を送信する。
【００２８】
一方、メモリ３０は、上述の各機能を実現するためのプログラムを格納する他、ＯＩＤ格納部３２、分散先指定ファイル格納部３４、バッファ３６を備えている。ＯＩＤ格納部３２には、ＳＮＭＰマネージャ４０が上述した問い合わせを行う際に指定するＯＩＤが格納されている。ＯＩＤは、問い合わせ可能な情報の種類と関連付けられて格納されており、ＳＮＭＰマネージャ４０は、ＯＩＤ格納部３２を参照して指定すべきＯＩＤを取得することができる。分散先指定ファイル格納部３４は、分散先指定ファイルを格納する。この分散先指定ファイルは、ＬＡＮに接続されている複数のプリンタの中で、分散印刷における分散先として使用したいプリンタを、前もって、指定しておきたい場合に用いる。従って、そのような指定が不要な場合には、分散先指定ファイル格納部３４には何も格納されなくても良い。バッファ３６は、受信した第１の印刷ジョブを始めとするデータを、ＣＰＵ２０が一時的に格納するための格納部である。
【００２９】
プリンタＰＲＴ２〜プリンタＰＲＴ４は、同一の構成を有しているので、代表してプリンタＰＲＴ２の構成について説明する。プリンタＰＲＴ２は、図２に示すように、プリンタ本体ＰＲＢ２および上述したネットワークボード２００を備えている。プリンタ本体ＰＲＢ２の構成は、上述したプリンタＰＲＴ１のプリンタ本体ＰＲＢ１と同一の構成を有しているので、各構成要素にプリンタＰＲＴ１のプリンタ本体ＰＲＢ１の構成要素と同一の符号を付しその説明を省略する。ネットワークボード２００は、上述したカスタムネットワークボード１００が有する機能のうち、分散印刷制御機能を除く機能を有している。すなわち、ネットワークボード２００は、ＴＣＰ／ＩＰ部１０と、印刷ジョブ受信部６０と、ＳＮＭＰエージェント７０とを有している。ネットワークボード２００の各構成要素は、カスタムネットワークボード１００の同名の構成要素と同様の機能や構成を有しているのでその説明を省略する。
【００３０】
ここで、上記説明から解るように、プリンタＰＲＴ１に搭載されたカスタムネットワークボード１００は、プリンタＰＲＴ２〜プリンタＰＲＴ４に搭載されたネットワークボード２００の備える機能を全て備えている。そして、カスタムネットワークボード１００の分散制御部５０からみて、プリンタＰＲＴ１〜プリンタＰＲＴ４は、全て等価であり、後述する分散印刷処理において全て分散先プリンタとして指定され得る。分散制御部５０は、分散制御部５０自体が内蔵されているプリンタＰＲＴ１についても、他のプリンタについても区別なく扱うことができる。
【００３１】
クライアントＣＬは、図２に示すように、アプリケーション１１の他、機能ブロックとして、ＴＣＰ／ＩＰ部１３と印刷ジョブ送信部１２とを有している。ＴＣＰ／ＩＰ部１３は、上述したカスタムネットワークボード１００のＴＣＰ／ＩＰ部１０と同様の機能および構成を有している。印刷ジョブ送信部１２は、アプリケーション１１の印刷要求に応じて印刷ジョブを生成し、ＴＣＰ／ＩＰ部１３を介して生成された印刷ジョブをプリンタＰＲＴに送信する。なお、分散印刷が指定された第１の印刷ジョブは、カスタムネットワークボード１００を備えるプリンタＰＲＴ１に対してのみ送信され、分散印刷が指定されていない通常の印刷ジョブは、プリンタＰＲＴ１〜ＰＲＴ４のいずれに対しても送信されることができる。
【００３２】
・印刷ジョブについて：
分散印刷処理を説明する前に、図３を参照して、本実施例に用いられる印刷ジョブについて説明する。図３は、印刷ジョブの構成を説明する概念図である。図３（ａ）は、印刷ジョブの通信に用いられる通信データの構成を示している。図３（ｂ）は、印刷ジョブのデータ構造を示している。
【００３３】
印刷ジョブは、ＴＣＰ／ＩＰプロトコルに従った形式の通信データとして送信される。この通信データは、図３（ａ）に示すように、ヘッダ４００と、データ部４５０とに分かれている。このうち、ヘッダ４００には、その通信データの送信元である機器のＩＰアドレスである送信元ＩＰアドレスＳＡと、その機器内における送信元であるソフトウエアを特定するポート番号である送信元ポート番号ＳＰと、を含む他、その通信データの送信先である機器のＩＰアドレスである送信先ＩＰアドレスＤＡと、その機器内における送信先であるソフトウエアを特定するポート番号である送信先ポート番号ＤＰとを含んでいる。送信元である機器のソフトウエアから発信された通信データは、送信先ＩＰアドレスＤＡに従って、そのＩＰアドレスを有する機器に送信され、さらに、受信したその機器内では、送信先ポート番号ＤＰに従って、その番号のポートで待機しているソフトウエアに渡される。データ部４５０は、通信の対象となるデータが格納される部分であり、本実施例では、印刷ジョブが格納される。
【００３４】
例えば、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定された第１の印刷ジョブを送信する場合、通信データのヘッダ４００には、上述した送信先ＩＰアドレスＤＡとしてプリンタＰＲＴ１のＩＰアドレスである「ＩＰ１」が、送信先ポート番号ＤＰとして「５９１００」がそれぞれ記載される。「５９１００」は、第１の印刷ジョブを受信する分散制御部５０が待機しているポート番号である。また、ヘッダ４００には、送信元ＩＰアドレスＳＡとして「ＩＰｃ」が、送信元ポート番号ＳＰとして印刷ジョブ送信部１２が待機しているポート番号（具体的な数字は省略）が記載される。一方、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定されていない通常の印刷ジョブを送信する場合、送信先ポート番号ＤＰとして上述した「５９１００」に代えて、「９１００」が記載される。「９１００」は、通常の印刷ジョブの受信を行う印刷ジョブ受信部６０が待機しているポート番号である。すなわち、本実施例では、印刷ジョブ送信部１２は、ユーザの要求に応じて印刷ジョブの送信時に指定される送信先ポート番号ＤＰの値を切り換えることにより、分散印刷を指定するか、指定しないかを選択することができる。言い換えれば、分散印刷が指定された第１の印刷ジョブは、ポート番号「５９１００」で待機する分散制御部５０に受信される印刷ジョブのことを指し、分散印刷が指定されていない通常の印刷ジョブは、ポート番号「９１００」で待機する印刷ジョブ受信部６０に渡される印刷ジョブを指している。印刷ジョブの内容自体は、基本的に第１の印刷ジョブと通常の印刷ジョブとの間に違いはない。
【００３５】
図３（ｂ）を参照して、印刷ジョブのデータ構造について説明する。印刷ジョブＪＢは、図３（ｂ）に示すように、ジョブ制御言語部５０１と、ページ記述言語部５０２を有している。ページ記述言語部５０２は、印刷内容を表す印刷データが所定のページ記述言語を用いて記述されている部分である。ページ記述言語としては、ESC/PageやPostscriptなどが用いられ得る。ジョブ制御言語部５０１には、ページ記述言語部５０２に記述された印刷データを印刷するために必要な属性が記述されている。ジョブ制御言語部５０１は、所定のジョブ制御言語、本実施例ではＥＪＬ（Epson Job Language）を用いて記述されている。
【００３６】
図３（ｂ）の下側は、ジョブ制御言語部５０１に記述された内容の具体例を示している。ジョブ制御言語部５０１は、上述した属性として、印刷用紙サイズ、ページ記述言語部５０２の記述に使用されているページ記述言語の種別と共に、総ページ数情報ＴＰ、印刷モード指定情報ＤＸ、印刷部数ＱＴを含んでいる。総ページ数情報ＴＰは、ページ記述言語部５０２に含まれる印刷データの総ページ数を示している。図３（ｂ）に示す例では、総ページ数情報ＴＰとして、総ページ数は１０ページであることが記述されている。印刷モード指定情報ＤＸは、印刷モードが、両面印刷モードであるか、片面印刷モードであるかを示している。具体的には、図３（ｂ）に示すような「ＤＸ＝ＯＦＦ」という記述は、片面印刷モードであることを示している。一方、「ＤＸ＝ＯＮ」という記述は、両面印刷モードであることを示している。
【００３７】
ジョブ制御言語部５０１には、さらに、ページ特定情報ＰＥを含めることができる。ページ特定情報ＰＥは、ページ記述言語部５０２に含まれる印刷データの全てのページの中から印刷すべきページを特定する情報である。印刷ジョブのジョブ制御言語部５０１にページ特定情報ＰＥが含まれている場合、印刷ジョブを受信したプリンタＰＲＴは、後述するように、ページ記述言語部５０２に含まれる印刷データのうちページ特定情報ＰＥによって特定されたページのみを選択的に印刷する。ページ特定情報ＰＥは、開始ページ番号Ｓ、および、終了ページ番号Ｅを含んでいる。これによって、開始ページ番号Ｓから終了ページ番号Ｅまでの、１または連続する複数のページが指定される。図３（ｂ）に示す例では、先頭ページ番号（STARTPAGE）として「５」が、終了ページ番号（ENDPAGE）として「８」が記述されている。したがって、図３（ｂ）に示す印刷ジョブは、１〜１０ページまでの１０ページ分の印刷データを含んでいるが、そのうち５ページから８ページまでの４ページの印刷を要求していることになる。一方、ジョブ制御言語部５０１にページ特定情報ＰＥが含まれていない印刷ジョブは、ページ記述言語部５０２に含まれる印刷データの全てのページの印刷を要求しているものと解釈される。
【００３８】
・分散印刷処理：
図４〜図７を参照して上述した印刷ジョブを用いて行われる本実施例における分散印刷処理について詳細に説明する。図４は、分散印刷処理の概要を示す説明図である。図５は、分散印刷処理の処理ルーチンを示すフローチャートである。図６は、分散先プリンタ特定処理の処理ルーチンを示すフローチャートである。図７は、分散先プリンタに割り当てられるページ数の一例を示すテーブルである。第１実施例では、まず片面印刷モード、すなわち、第１の印刷ジョブにおいて「ＤＸ＝ＯＦＦ」が指定されている場合における分散印刷処理を説明する。両面印刷モードにおける分散印刷処理については、第２実施例として後述する。
【００３９】
図４に示す具体例を用いて、分散印刷処理について説明を進める。本具体例では、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定された第１の印刷ジョブＪＢ１が送信される。そして、第１の印刷ジョブＪＢ１を受信したプリンタＰＲＴ１の分散制御部５０が、第１の印刷ジョブにより要求される印刷を、分散先プリンタとしての４つのプリンタＰＲＴ１〜ＰＲＴ４に分散する。
【００４０】
クライアントＣＬからプリンタＰＲＴ１に送信される第１の印刷ジョブＪＢ１は、送信先ＩＰアドレスＤＡとして「ＩＰ１」、送信先ポート番号ＤＰとして「５９１００」が記述されたヘッダ４００を有する通信データとして送信される。実際には、第１の印刷ジョブＪＢ１は、複数のＴＣＰパケットに分割され、分割されたパケットごとにヘッダ４００を付加されて、送信される。しかしながら、図４では、図を見やすくするため、第１の印刷ジョブＪＢ１全体に、１つのヘッダ４００が付加された図を示している。このような図示は、後述する第２の印刷ジョブＪＢ２１〜ＪＢ２４についても同様である。
【００４１】
第１の印刷ジョブＪＢ１のジョブ制御言語部５０１には、上述した総ページ数情報ＴＰが含まれ、図４に示す例では、総ページ数Ｑは１０であることが記述されている。一方、第１の印刷ジョブＪＢ１として送信されてくる印刷ジョブに、印刷する必要のない印刷データを含める必要は通常はない。従って、第１の印刷ジョブＪＢ１のジョブ制御言語部５０１には、ページ特定情報ＰＥが含まれていないか、あるいは、総ページ数情報ＴＰに記述されたページ数の全てを特定するページ特定情報ＰＥが含まれているのが通常である。本実施例における第１の印刷ジョブＪＢ１には、図４に示すように、ページ特定情報ＰＥは含まれていないものとする。
【００４２】
第１の印刷ジョブＪＢ１のページ記述言語部５０２には、総ページ数Ｑに対応する印刷データがページ記述言語により記述されている。図４に示す例では、１０ページ分の印刷データＤＴが、ページ記述言語部５０２に記述されている。
【００４３】
分散印刷処理は、カスタムネットワークボード１００のＣＰＵ２０が備える分散制御部５０によって実行される処理である。カスタムネットワークボード１００が搭載されたプリンタＰＲＴ１が、印刷ジョブを受け付ける状態にあるとき、分散制御部５０の分散ジョブ受信部５２は、上述した第１の印刷ジョブＪＢ１が着信するのを待っている（ステップＳ１０２）。クライアントＣＬから第１の印刷ジョブＪＢ１、すなわち、送信先ポート番号ＤＰが「５９１００」である印刷ジョブがプリンタＰＲＴ１に着信すると（ステップＳ１０２：ＹＥＳ）、分散ジョブ受信部５２は、ＴＣＰ／ＩＰ部１０を介して、第１の印刷ジョブＪＢ１を受信する。分散ジョブ受信部５２は、まず、ジョブ制御言語部５０１を含む印刷ジョブの先頭部分を受信する（ステップＳ１０４）。
【００４４】
分散制御部５０は、受信された第１の印刷ジョブにより印刷を要求される総ページ数Ｑを取得する（ステップＳ１０６）。具体的には、分散制御部５０は、ジョブ制御言語部５０１を読み出し、第１の印刷ジョブに含まれる総ページ数情報ＴＰを取得する。
【００４５】
続いて、分散制御部５０は、分散先プリンタ特定処理を実行する（ステップＳ１０８）。分散先プリンタ特定処理は、分散制御部５０の分散先特定部５４によって実行される処理である。図６に示すように、分散先プリンタ特定処理が開始されると、分散先特定部５４は、ネットワーク上に接続された機器のＩＰアドレスを取得する（ステップＳ２０２）。分散先特定部５４は、分散先指定ファイル格納部３４に分散先指定ファイルが格納されている場合には、分散先指定ファイルを参照して、ＩＰアドレスを取得する。分散先指定ファイルには、分散先として使用したいプリンタのＩＰアドレスが列挙して記載されている。このような分散先指定ファイルは、プリンタＰＲＴ１が初期設定される際に、設定用コンピュータなどを用いてプリンタＰＲＴ１に格納される。なお、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタＰＲＴ１も使用したい場合には、自己プリンタＰＲＴ１のＩＰアドレス「ＩＰ１」も、分散先指定ファイルに記載しておく。
【００４６】
一方、分散先指定ファイルが格納されていない場合には、分散先特定部５４は、ＳＮＭＰマネージャ４０を用いて、ＬＡＮに対し、ブロードキャストでＬＡＮに接続されている各機器のＩＰアドレスを問い合わせ、応答されたＩＰアドレスを取得する。
【００４７】
次に、分散先特定部５４は、取得されたＩＰアドレスを割り当てられた各機器に関する情報を取得する（ステップＳ２０４）。具体的には、分散先特定部５４は、ＳＮＭＰマネージャ４０を用いて、ユニキャストで各機器に対して問い合わせを行い、問い合わせの応答として機種名およびステータスを取得する。
【００４８】
分散先特定部５４は、取得された機種名およびステータスに基づいて、ネットワーク上に接続された機器の中から所定の条件を満たすプリンタを検索し、検索されたプリンタを分散先プリンタとして特定する（ステップＳ２０６）。所定の条件の一例を、以下に示す。
１．自己プリンタＰＲＴ１と同一の機種であること。
２．電源が投入されていること。
３．トナー残量が所定の閾値以上であること。
４．オンライン状態にあること。
５．印刷中でないこと（プリンタエンジン９０が駆動中でないこと）。
【００４９】
これらの項目についての情報は、全て上述のＳＮＭＰマネージャ４０による問い合わせによって、取得することができる。自己プリンタＰＲＴ１と同一機種であることを、分散先プリンタとして選択する条件とするのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。また、カラー印刷や両面印刷指定も統一して実行させることができる。分散先指定ファイルで指定されているＩＰアドレスの機器に対しても、機種名の問い合わせを行うのは、次の理由による。すなわち、分散先指定ファイル作成後に、機器の入れ換えなどにより、分散先指定ファイルに記載されていたＩＰアドレスが、自己のプリンタＰＲＴ１と別機種のプリンタに割り振られたり、プリンタ以外の機器に割り振られたりする可能性があるので、自己のプリンタＰＲＴ１と同一機種であるかの確認を行うためである。
【００５０】
２〜５の条件は、すぐに印刷できないプリンタを分散先プリンタとして選択することを防ぐためである。オンライン状態とは、用紙切れや紙詰まりといったエラーを起こしている状態（オフライン状態）ではない正常な状態のことを指す。
【００５１】
そして、分散先特定部５４は、１台以上の分散先プリンタが特定されたか否かを判断する（ステップＳ２０８）。一台以上特定されている場合（ステップＳ２０８：ＹＥＳ）には、分散先特定部５４は分散先プリンタ選択処理を終了する。一台の分散先プリンタも特定されていない場合（ステップＳ２０８：ＮＯ）には、分散先特定部５４は、所定期間待機して（ステップＳ２１０）、ステップＳ２０２〜ステップＳ２０８の処理を繰り返す。以下、本ステップにおいて、分散先プリンタとして、上述したプリンタＰＲＴ１〜ＰＲＴ４の全部、計４台が分散先プリンタとして特定されるものとして説明を続ける。
【００５２】
図５に戻って、説明を続ける。分散先プリンタが特定されると、分散制御部５０は、特定された各分散先プリンタに割り当てられる割当ページを決定する（ステップＳ１１０）。割当ページの決定は、分散制御部５０の割当ページ決定部５６によって実行される。割当ページ決定部５６は、印刷を要求される全てのページがいずれかの分散先プリンタのいずれかに割り当てられるように、印刷を要求される複数のページを、特定された分散先プリンタの数のグループに分ける。そして、割当ページ決定部５６は、各グループを、特定された各分散先プリンタの割当ページとする。具体的には、割当ページ決定部５６は、分散先プリンタごとに、割当ページの開始ページ番号Ｓと終了ページ番号Ｅとを決定する。
【００５３】
ここで、割当ページのページ数は、以下の２つの考え方に基づいて決定される。
１．各分散先プリンタに、できるだけ均等なページ数を割り当てる。
２．完全に均等に割り当てられない場合、すなわち、印刷が要求される総ページ数Ｑが、分散先プリンタの数Ｍで割り切れない場合には、端数は、ページ順の早いページ、すなわち、ページ番号が小さいページを割り当てられる分散先プリンタから順に１ページずつ割り当てられる。
【００５４】
図７には、４台の分散先プリンタに分散される場合に、上述した考え方に基づいて求められた割当ページの数が示されている。分散先プリンタ番号ｍが小さい分散先プリンタほど、ページ順の早いページが割り当てられるものとする。図７に示すように、印刷が要求される総ページ数Ｑが、分散先プリンタの数Ｍで割り切れる場合には、各分散先プリンタにそれぞれ同じページ数が割り当てられる。例えば、総ページ数Ｑ＝１２であり、分散先プリンタの数が４である場合には、各分散先プリンタに３ページずつ割り当てられる。一方、総ページ数Ｑが、分散先プリンタの数Ｍで割り切れない場合には、端数は、ページ順の早いページが割り当てられる２台の分散先プリンタに割り当てられる。例えば、総ページ数Ｑ＝１４であり、分散先プリンタの数が４である場合には、総ページ数を分散先プリンタの数４で割った余りである２ページは、ページ順の早いページが割り当てられる２台の分散先プリンタに、それぞれ１枚ずつ割り当てられる。
【００５５】
続いて、以上説明した割当ページを決定するための具体的な計算手法について説明する。印刷を要求される総ページ数＝Ｑ、分散先プリンタの数＝Ｍ、ページ順が早いページが割り当てられる順番に付された分散先プリンタ番号＝ｍとする。そうすると、ｍ番の分散先プリンタの割当ページのページ数Ｐ(ｍ)は、以下の式（１）によって、算出される。
【００５６】
【数１】
2007041753.tif 000003
【００５７】
ここで、式（１）における関数Ｉｎｔ（ａ）は、数値ａの整数部分を取り出す関数である。例えば、Ｉｎｔ（３．２３）＝３である。この数式に、数値Ｑ、Ｍ、ｍを代入すると、図７に示すテーブルに示す数値を算出することができる。Ｐ（ｍ）を用いて、ｍ番の分散先プリンタの割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）は、それぞれ以下の式（２）（３）によって算出される。
【００５８】
【数２】
2007041753.tif 000004
【００５９】
以上の説明から解るように、割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）は、総ページ数Ｑと、分散先プリンタの台数Ｍと、分散先プリンタの番号ｍの関数として表される。図４に示す具体例では、Ｑ＝１０、Ｍ＝４であるので、
１台目の分散先プリンタ（プリンタＰＲＴ１）：Ｓ（１）＝１、Ｅ（１）＝３
２台目の分散先プリンタ（プリンタＰＲＴ２）：Ｓ（２）＝４、Ｅ（２）＝６
３台目の分散先プリンタ（プリンタＰＲＴ３）：Ｓ（３）＝７、Ｅ（３）＝８
４台目の分散先プリンタ（プリンタＰＲＴ４）：Ｓ（４）＝９、Ｅ（４）＝１０
となる。
【００６０】
各分散先プリンタについて、割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）が算出されると、すなわち、各分散先プリンタが印刷すべき割当ページが決定されると、分散制御部５０は、割当ページの印刷を要求する第２の印刷ジョブを、各分散先プリンタに対して送信する（ステップＳ１１２〜Ｓ１１４）。第２の印刷ジョブの送信は、分散制御部５０の印刷ジョブ送信部５８が実行する。図４には、各分散先プリンタとしてのプリンタＰＲＴ１〜ＰＲＴ４に送信される第２の印刷ジョブＪＢ２１〜ＪＢ２４がそれぞれ示されている。
【００６１】
図４に示すように、第２の印刷ジョブＪＢ２１〜ＪＢ２４を送信する通信データのヘッダ４００には、送信先ＩＰアドレスＤＡとしてそれぞれの分散先であるプリンタＰＲＴのＩＰアドレス「ＩＰ１」、「ＩＰ２」、「ＩＰ３」「ＩＰ４」が記述される。さらに、これらのヘッダ４００には、送信先ポート番号ＤＰとして「９１００」が記述される。
【００６２】
第２の印刷ジョブＪＢ２１〜ＪＢ２４のジョブ制御言語部５０１は、第１の印刷ジョブＪＢ１のジョブ制御言語部５０１に上述したページ特定情報ＰＥを追加したものである。ページ特定情報ＰＥには、上述したステップＳ１１０において算出された各分散先プリンタの割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）が記述される。
【００６３】
第２の印刷ジョブＪＢ２１〜ＪＢ２４のページ記述言語部５０２は、第１の印刷ジョブＪＢ１のページ記述言語部５０２と全く同一である。すなわち、第２の印刷ジョブＪＢ２１〜ＪＢ２４のページ記述言語部５０２には、総ページ数Ｑに対応する印刷データがページ記述言語により記述されている。図４に示す例では、１０ページ分の印刷データＤＴが、ページ記述言語部５０２に記述されている。
【００６４】
第２の印刷ジョブＪＢ２１〜ＪＢ２４の送信を、ステップごとに説明する。まず、分散制御部５０の印刷ジョブ送信部５８は、ジョブ制御言語部５０１にページ特定情報ＰＥを追加した上で、ジョブ制御言語部５０１を含む第２の印刷ジョブＪＢ２１〜ＪＢ２４の先頭部分を、それぞれ各プリンタＰＲＴ１〜ＰＲＴ４（分散先プリンタ）に送信する（ステップＳ１１２）。次に、分散制御部５０の分散ジョブ受信部５２は、第１の印刷ジョブＪＢ１の先頭部分以降の部分をクライアントＣＬから受信し、分散制御部５０の印刷ジョブ送信部５８は、受信された先頭部分以降の部分を、そのまま順次各プリンタＰＲＴ１〜ＰＲＴ４に送信する（ステップＳ１１４）。その後、第１の印刷ジョブＪＢ１の全ての部分を受信したか否かを判断する（ステップＳ１１６）。分散制御部５０は、第１の印刷ジョブＪＢ１の全てを受信していないと判断すると（ステップＳ１１６：ＮＯ）、ステップＳ１１４に戻る。一方、分散制御部５０は、第１の印刷ジョブＪＢ１の受信が終了したと判断すると（ステップＳ１１６：ＹＥＳ）、本処理を終了する。
【００６５】
・分散先プリンタにおける処理
続いて、図８および図９を参照して、分散先プリンタ、図４に示す例ではプリンタＰＲＴ１〜ＰＲＴ４における処理について説明する。図８は、第２の印刷ジョブを含む通常の印刷ジョブの受信処理の処理ルーチンを示すフローチャートである。図９は、第２の印刷ジョブを含む通常の印刷ジョブの印刷処理の処理ルーチンを示すフローチャートである。
【００６６】
まず、通常の印刷ジョブの受信処理について説明する。本処理は、プリンタＰＲＴの印刷ジョブ受信部６０によって実行される処理である。プリンタＰＲＴが印刷ジョブを受け付ける状態にあるとき、印刷ジョブ受信部６０は、第２の印刷ジョブを含む通常の印刷ジョブが着信するのを待っている（ステップＳ１０２）。通常の印刷ジョブ、すなわち、送信先ポート番号ＤＰが「９１００」である印刷ジョブがプリンタＰＲＴに着信すると（ステップＳ３０２：ＹＥＳ）、印刷ジョブ受信部６０は、ＴＣＰ／ＩＰ部１０を介して、送信されてくる印刷ジョブを順次受信して、プリンタバッファ８２に格納する（ステップＳ３０４）。印刷ジョブ受信部６０は、印刷ジョブを全て受信したか否かを判断する（ステップＳ３０６）。印刷ジョブを送信してくる機器は、印刷ジョブを全て送信すると、印刷ジョブを送信するための通信コネクションの切断要求を送信してくる。従って、印刷ジョブ受信部６０は、通信コネクションの切断要求の有無によって、印刷ジョブを全て受信したか否かを判断できる。印刷ジョブ受信部６０は、印刷ジョブを全て受信していないと判断すると（ステップＳ３０６：ＮＯ）、ステップＳ３０４に戻る。印刷ジョブ受信部６０は、印刷ジョブを全て受信したと判断すると（ステップＳ３０６：ＹＥＳ）、受信処理を終了する。
【００６７】
続いて、通常の印刷ジョブの印刷処理について説明する。この印刷処理は、プリンタＰＲＴのプリンタコントローラ８０によって実行される処理である。プリンタコントローラ８０は、印刷ジョブ受信部６０から印刷ジョブのデータを受け取ると、すなわち、上述した受信処理によりプリンタバッファ８２に印刷ジョブが格納され始めると、印刷処理を開始する。
【００６８】
プリンタコントローラ８０は、印刷処理を開始すると、まず、印刷ジョブにページ特定情報ＰＥが含まれているか否かを判断する（ステップＳ４０２）。具体的には、プリンタコントローラ８０は、プリンタバッファ８２に格納されている印刷ジョブのジョブ制御言語部５０１から、上述したページ特定情報ＰＥを検索し、ページ特定情報ＰＥの有無を判断する。ページ特定情報ＰＥが含まれていると判断すると（ステップＳ４０２：ＹＥＳ）、プリンタコントローラ８０は、ページ特定情報ＰＥ、すなわち、開始ページ番号Ｓおよび終了ページ番号Ｅを取得する（ステップＳ４０４）して、ステップＳ４０６に移行する。一方、ページ特定情報ＰＥが含まれていないと判断すると（ステップＳ４０２：ＮＯ）、プリンタコントローラ８０は、そのままステップＳ４０６に移行する。
【００６９】
プリンタコントローラ８０は、続いて、処理対象のページ番号ｎを初期化して、ｎ＝１とする（ステップＳ４０６）。プリンタコントローラ８０は、印刷ジョブを解釈して、処理対象のページ、すなわち、ｎページの画像データを生成する（ステップＳ４１０）。具体的には、プリンタコントローラ８０は、プリンタエンジン９０が印刷に用いるための画像データ、例えば、プリンタエンジン９０の解像度に合わせたドットデータを、ページ記述言語に記述されている印刷データから生成する。印刷ジョブのページ記述言語部５０２には、印刷データがページ順に記述されているため、プリンタコントローラ８０は、ページ記述言語部５０２に含まれる印刷データを、先頭から順次、１ページ分ずつ解釈していく。
【００７０】
処理対象であるｎページの画像データが生成されると、プリンタコントローラ８０は、ステップＳ４０４において、ページ特定情報ＰＥが取得されているか否かを判断する（ステップＳ４１２）。プリンタコントローラ８０は、ページ特定情報ＰＥが取得されていると判断すると（ステップＳ４１２：ＹＥＳ）、ページ特定情報ＰＥとして取得された開始ページ番号Ｓおよび終了ページ番号Ｅを用いて、Ｓ≦ｎ≦Ｅが成立するか否かを判断する（ステップＳ４１４）。すなわち、プリンタコントローラ８０は、処理対象であるｎページがページ特定情報ＰＥにより特定されるページであるか否かを判断する。
【００７１】
プリンタコントローラ８０は、ｎページがページ特定情報ＰＥにより特定されるページであると判断した場合（ステップＳ４１４：ＹＥＳ）、あるいは、ページ特定情報ＰＥが取得されていないと判断した場合（ステップＳ４１２：ＮＯ）には、ｎページについての印刷要求を、プリンタエンジン９０に対して発行し（ステップＳ４１６）、ステップＳ４１８に移行する。プリンタエンジン９０は、プリンタコントローラ８０から印刷要求を受け取ると、プリンタコントローラ８０が生成した画像データを用いて、ｎページの印刷を実行する。一方で、プリンタコントローラ８０は、処理対象であるｎページがページ特定情報ＰＥにより特定されるページではないと判断した場合（ステップＳ４１４：ＮＯ）には、印刷要求の発行を行わずに、ステップＳ４１８に移行する。
【００７２】
続いて、プリンタコントローラ８０は、処理対象であるｎページがページ記述言語部５０２に含まれる印刷データの最終ページであるか否かを判断する（ステップＳ４１８）。プリンタコントローラ８０は、ｎページが最終ページであると判断すると（ステップＳ４１８：ＹＥＳ）、印刷処理を終了する。一方で、プリンタコントローラ８０は、ｎページが最終ページではないと判断すると（ステップＳ４１８：ＮＯ）、処理対象のページ番号ｎをインクリメントし（ステップＳ４２０）、ステップＳ４１０に戻る。すなわち、プリンタコントローラ８０は、次のページについて上述したステップＳ４１０〜Ｓ４１８の処理を繰り返す。
【００７３】
以上のような印刷処理を実行することによって、プリンタＰＲＴは、印刷ジョブにページ特定情報ＰＥが含まれている場合には、ページ特定情報ＰＥにより特定されるページについて印刷を実行し、それ以外のページについては印刷を行わない。また、プリンタＰＲＴは、印刷ジョブにページ特定情報ＰＥが含まれていない場合には、ページ記述言語部５０２に記述された印刷データの全てのページを印刷する。
【００７４】
ここで、ステップＳ４１０において、ページ特定情報ＰＥにより特定されるページ以外のページ（実際には印刷を行わないページ）についても、印刷データを解釈して画像データを生成する理由について説明する。理由の１つは、ページ記述言語部５０２において、ページ番号の大きいページの印刷データが、ページ番号の小さいページの印刷データを引用して記述されている場合があるからである。例えば、全ページに共通するオブジェクト（例えば、ヘッダやフッタ）は、最初のページの印刷データと共に１回だけ含まれるよう生成され、後のページの印刷データには含まれずに最初の１回のデータを参照するようになっている場合がある。このような場合には、プリンタコントローラ８０は、画像データを生成する際において、最初のページの画像データの一部を、後のページの画像データの一部として引用することが行われる。つまり、割当ページの印刷を行うために、割当ページより前の画像データを用いる場合があるので、プリンタコントローラ８０は、印刷を行わないページも含めて先頭ページから順に画像データを生成している。なお、プリンタコントローラ８０が印刷データを解釈して画像データを生成するのに要する時間は、プリンタエンジン９０が実際に印刷を行うのに要する時間と比較して、非常に短い。従って、印刷を行わないページの画像データを生成することは、ほとんど時間のロスにはならない。
【００７５】
以上の説明から解るように、分散先プリンタとしてのプリンタＰＲＴ１〜ＰＲＴ４は、ページ特定情報ＰＥを含む第２の印刷ジョブＪＢ２１〜ＪＢ２４を受信すると、ページ特定情報ＰＥにより特定される割当ページについてのみ印刷を実行する。この結果、各分散先プリンタが、割当ページの印刷をそれぞれ実行することにより、第１の印刷ジョブＪＢ１により要求される印刷が完了される。
【００７６】
以上説明した第１実施例によれば、プリンタＰＲＴ１に内蔵されたネットワークボード２００が、ページ単位での分散印刷処理を実行するので、専用の分散サーバ等の外部機器を用いることなく、複数のプリンタＰＲＴからなる簡易な構成で、ページ単位での分散印刷を実現できる。
【００７７】
さらに、第２の印刷ジョブＪＢ２１〜ＪＢ２４は、第１の印刷ジョブＪＢ１のジョブ制御言語部５０１に、ページ特定情報ＰＥとして開始ページ番号Ｓと終了ページ番号Ｅとを追加したものである。従って、ネットワークボード２００の分散制御部５０は、容易に第２の印刷ジョブＪＢ２１〜ＪＢ２４を生成できる。この結果、分散制御部５０の処理負荷を低減でき、ネットワークボード２００をより簡易な装置にすることができる。詳しく説明すると、従来は、第１の印刷ジョブＪＢ１に含まれる印刷データを加工して、割当ページ分の印刷データを生成していた。係る場合には、上述したように、後ろのページの印刷データが前のページの印刷データを引用している場合など、単純に第１の印刷ジョブＪＢ１に含まれる印刷データを分割するだけでは、割当ページ分の印刷データを生成することができない場合もあった。場合によっては、ページ記述言語で記述された印刷データを一旦、ページ単位の画像データに変換した後、割当ページ分の画像データをページ記述言語に再変換する処理が必要になるおそれもあった（特許文献１）。かかる場合には、割当ページ分の印刷データを生成するための機能をハードウエアまたはソフトウエアとして実現する構成を、分散制御装置に備える必要があった。しかし、本実施例においては、第１の印刷ジョブＪＢ１に含まれる印刷データＤＴをそのまま第２の印刷ジョブＪＢ２１〜ＪＢ２４に含めるので、そのような構成を必要としない。この結果、分散制御部５０の構成を簡素化し、より簡易な構成でページ単位での分散印刷を実現できる。
【００７８】
また、クライアントＣＬは、第１の印刷ジョブＪＢ１をプリンタＰＲＴ１（分散制御部５０）に対して、１回送信するだけで良く、分散先プリンタや割当ページを指定する必要もない。従って、クライアントＣＬの処理負荷も、通常の印刷処理と同程度とすることができる。
【００７９】
さらに、第１実施例において、各分散先プリンタの割当ページの決定は、上述した式（１）〜（３）に基づいて行われる。すなわち、総ページ数Ｑ、分散先プリンタの台数Ｍ、分散先プリンタの番号ｍとに基づいて、算出される。そして、総ページ数Ｑを特定するための総ページ数情報ＴＰは、第１の印刷ジョブＪＢ１のジョブ制御言語部５０１に含まれているので、分散制御部５０は、総ページ数を容易に把握でき、総ページ数に基づいて容易に、適切な割当ページを決定できる。
【００８０】
さらに、総ページ数情報ＴＰを含むジョブ制御言語部５０１は、第１の印刷ジョブＪＢ１において、ページ記述言語部５０２より先頭側に配置されている。すなわち、総ページ数情報ＴＰは、印刷ジョブ受信部６０によって、印刷データＤＴより先に受信される構成となっている。したがって、分散制御部５０は、第１の印刷ジョブＪＢ１のうち、ジョブ制御言語部５０１を含む先頭部分さえ受信すれば、割当ページを決定して第２の印刷ジョブＪＢ２１〜ＪＢ２４のジョブ制御言語部５０１を生成することができる。この結果、分散制御部５０は、第２の印刷ジョブＪＢ２１〜ＪＢ２４のうち、ジョブ制御言語部５０１を含む先頭部分を各分散先プリンタに送信した後、第１の印刷ジョブＪＢ１の残りの部分を順次受信して、第２の印刷ジョブＪＢ２１〜ＪＢ２４の残りの部分として各分散先プリンタに送信すれば良い（図５参照）。従って、ネットワークボード２００は、第１の印刷ジョブＪＢ１の全体を、スプールする必要がない。従って、ネットワークボード２００において、第１の印刷ジョブＪＢ１をスプールしておくバッファ３６の容量を低減することができる。
【００８１】
さらに、各分散先プリンタの割当ページのページ数は、式（１）〜（３）および図７から解るように、ほぼ均等にされる。これにより、短時間にページ単位での分散印刷を完了させることができる。また、総ページ数Ｑが分散先プリンタの台数Ｍで割り切れない場合には、ページ順の早いページを含む割当ページのページ数を多くしている（図７）。図９を参照して上述したように、分散先プリンタである各プリンタＰＲＴは、ページ特定情報ＰＥを含む印刷ジョブの印刷を行う場合、実際に印刷を行うか否かに関わらず、全ての印刷データＤＴを先頭から解釈していく。そして、プリンタＰＲＴは、印刷すべきページについて印刷データを解釈したタイミングで、実際に印刷を行う。従って、各ＰＲＴにおいて印刷データを解釈する速度が同じであると仮定すれば、ページ順の早い（ページ番号の小さい）ページを含む割当ページを印刷するプリンタＰＲＴは、ページ番号の遅い（ページ番号の大きい）ページを含む割当ページを印刷するプリンタＰＲＴより早く印刷が開始される。このため、ページ順の早いページを含む割当ページのページ数を多くすることにより、より短時間にページ単位での分散印刷を完了させることができる。
【００８２】
Ｂ．第２実施例：
第２実施例として、両面印刷モードにおける分散印刷処理について説明する。第２実施例における分散印刷システムの概略構成は、図１および図２を参照して説明した第１実施例における構成と同一であるので、その説明を省略する。図１０〜図１１を参照して、両面印刷モードを要求する印刷ジョブについて説明する。図１０は、両面印刷モードを要求する印刷ジョブのジョブ制御言語部５０１の一例を示す説明図である。図１１は、両面印刷モードにおける印刷形態を説明する概念図である。
【００８３】
両面印刷モードでの印刷を要求する印刷ジョブは、図１０に示すように、ジョブ制御言語部５０１に含まれる印刷モード指定情報ＤＸに、「ＤＸ＝ＯＮ」と記述されている。さらに、印刷モード指定情報ＤＸに「ＤＸ＝ＯＮ」と記述されている場合には、印刷モード指定情報ＤＸには、先頭ページ印刷面指定情報が含まれる。先頭ページ印刷面指定情報は、「ＦＣ＝ＦＲ」および「ＦＣ＝ＢＫ」のいずれかである。
【００８４】
両面印刷モードは、１つの印刷用紙の両面に１ページずつ印刷する印刷モードである。図１１に示すように、先に印刷がなされる面を第１の面Ｆ１、後に印刷がなされる面を第２の面Ｆ２とする。先頭ページ印刷面指定情報が「ＦＣ＝ＦＲ」である場合には、図１１（ａ）に示すように、先頭ページ（ページ番号１）は第１の面Ｆ１に印刷され、次のページ（ページ番号２）は第２の面Ｆ２に印刷される。したがって、先頭ページ印刷面指定情報が「ＦＣ＝ＦＲ」である場合には、その印刷ジョブを１つのプリンタＰＲＴで印刷すると、印刷用紙の第１の面Ｆ１には奇数ページが印刷され、第２の面Ｆ２には偶数ページが印刷される。
【００８５】
一方、先頭ページ印刷面指定情報が「ＦＣ＝ＢＫ」である場合には、図１１（ｂ）に示すように、第１の面Ｆ１には、なにも印刷されず白紙のままとされ、先頭ページ（ページ番号１）は第２の面Ｆ２に印刷される。次のページ（ページ番号２）は、次の印刷用紙の第１の面に印刷される。したがって、先頭ページ印刷面指定情報が「ＦＣ＝ＢＫ」である場合には、その印刷ジョブを１つのプリンタＰＲＴで印刷すると、印刷用紙の第１の面Ｆ１には偶数ページが印刷され、第２の面Ｆ２には奇数ページが印刷される。
【００８６】
続いて、図１２〜図１４を参照して、第１の印刷ジョブＪＢ１（図４）が両面印刷モードによる印刷を要求する印刷ジョブである場合（両面印刷モード時）における分散印刷処理について説明する。図１２は、両面印刷モード時における割当ページの決定の処理ルーチンを示すフローチャートである。図１３は、両面モード時における割当ページの決定を説明するための概念図である。図１４は、両面印刷モード時における割当ページの決定結果について説明する概念図である。
【００８７】
第１の印刷ジョブＪＢ１が両面印刷モードによる印刷を要求する印刷ジョブである場合の分散印刷処理の基本的な処理ステップは、図５を参照して説明した第１実施例における分散印刷処理の処理ステップと同様である。両者の異なる点は、図５：ステップＳ１１０における割当ページの決定の手法である。以下、両面印刷モード時の割当ページの決定について説明する。
【００８８】
図１２には、両面印刷モード時における分散印刷処理のステップＳ１１０の処理を、さらに詳しく示したフローチャートが示されている。まず、分散制御部５０の割当ページ決定部５６は、上述した先頭ページ印刷面指定情報を取得する（ステップＳ１１０２）。続いて、割当ページ決定部５６は、出力されるべき印刷用紙の総数Ｑｖを算出する（ステップＳ１１０４）。印刷用紙の総数Ｑｖは、以下の式（４）によって算出される。
【００８９】
【数３】
2007041753.tif 000005
【００９０】
上記式（４）において、Ｑは、印刷を要求される総ページ数であり、図５：ステップＳ１０６において取得される。また、ｂは、先頭ページ印刷面指定情報に応じて設定される変数である。先頭ページ印刷面指定情報が「ＦＣ＝ＦＲ」である場合、すなわち、先頭ページが第１の面Ｆ１に印刷される場合には、変数ｂ＝０とされる。一方、先頭ページ印刷面指定情報が「ＦＣ＝ＢＫ」である場合、すなわち、先頭ページが第２の面Ｆ２に印刷される場合には、変数ｂ＝１とされる。Ｉｎｔは、上述した式（１）において説明したように、整数部分を取り出す関数である。図１３に示す例は、総ページ数Ｑ＝１０であり、先頭ページ印刷面指定情報が「ＦＣ＝ＢＫ」である第１の印刷ジョブを、３台の分散先プリンタに分散する場合について示している。かかる場合は、図１３（ｂ）に示すように、印刷用紙の総数Ｑｖ＝６と定められる。なお、図１３（ａ）は、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷された場合の印刷結果を概念的に示している。
【００９１】
割当ページ決定部５６は、続いて、出力されるべき印刷用紙を各分散先プリンタに割り当てる（ステップＳ１１０６）。具体的には、割当ページ決定部５６は、分散先プリンタごとに、割り当てられる印刷用紙の開始用紙番号Ｓｖと終了用紙番号Ｅｖとを決定する。用紙番号Ｓｖ、Ｅｖは、ページ順の早いページが印刷される印刷用紙から順に、付される番号である。割り当てられる印刷用紙の枚数は、第１実施例において割当ページのページ数を決定する際と同様の考え方に基づいて定められる。すなわち、
１．各分散先プリンタに、できるだけ均等な数の印刷用紙を割り当てる。
２．完全に均等に割り当てられない場合、すなわち、印刷用紙の総数Ｑｖが、分散先プリンタの数Ｍで割り切れない場合には、端数は、ページ順の早いページを割り当てられる分散先プリンタから順に１枚ずつ割り当てる。
【００９２】
具体的には、開始用紙番号Ｓｖおよび終了用紙番号Ｅｖは、第１実施例における式（１）〜（３）において、総ページ数Ｑを印刷用紙の総数Ｑｖに置き換えた式（５）〜（７）を用いて算出される。
【００９３】
【数４】
2007041753.tif 000006
【００９４】
上記式（５）〜（７）において、Ｐｖ（ｍ）、Ｓｖ（ｍ）、Ｅｖ（ｍ）は、それぞれ、ｍ番の分散先プリンタに割り当てられる印刷用紙の数、開始用紙番号、終了用紙番号を表す。図１３に示す例では、分散先プリンタの数が３台である場合を示しており、出力されるべき６枚の印刷用紙がそれぞれ２枚ずつ各分散先プリンタに割当られるように、開始用紙番号Ｓｖ（ｍ）および終了用紙番号Ｅｖ（ｍ）が定められている（図１３（ｃ））。
【００９５】
続いて、割当ページ決定部５６は、割当られた印刷用紙に印刷されるべきページを割当ページとして決定する（ステップＳ１１０８）。図１３に示す例では、１台目の分散先プリンタ（ｍ＝１）に割当られている１〜２枚目の印刷用紙に印刷されるべきページは、１ページから３ページである。したがって、割当ページ決定部５６は、１台目の分散先プリンタの割当ページについて、開始ページ番号Ｓ（１）＝１、終了ページ番号Ｅ（１）＝３を算出する（図１３（ｄ）参照）。２台目、３台目の分散先プリンタについても同様の考え方により、図１３（ｄ）に示すように、それぞれ、Ｓ（２）＝４、Ｅ（２）＝７、および、Ｓ（３）＝８、Ｅ（３）＝１０が算出される。
【００９６】
開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）の具体的な算出式は、以下の式（８）〜（９）で表される。
Ｓ（１）＝１、  Ｓ（ｍ）＝２×Ｓｖ（ｍ）−ｂ−１  （２≦ｍ≦Ｍ）  ...（８）
Ｅ（ｍ）＝２×Ｅｖ（ｍ）−ｂ  （１≦ｍ≦Ｍ−１）、  Ｅ（Ｍ）＝Ｑ  ...（９）
【００９７】
ここで、図１４（ａ）は、先頭ページが第２の面Ｆ２に印刷される場合、すなわち、先頭ページ印刷面指定情報が「ＦＣ＝ＢＫ」である場合に決定される割当ページの一例を示している。図１４（ｂ）は、先頭ページが第１の面Ｆ１に印刷される場合、すなわち、先頭ページ印刷面指定情報が「ＦＣ＝ＦＲ」である場合に決定される割当ページの一例を示している。上述の式（８）（９）により割当ページを決定すると、先頭ページが印刷される印刷面に応じて、割当ページが変化することが解る。具体的には、先頭ページが第２の面Ｆ２に印刷される場合には、第１の印刷ジョブＪＢ１の最終ページが含まれる割当ページを除いて、割当ページの終了ページ番号は、奇数になる。最終ページ（Ｑページ）が含まれる割当ページの終了ページ番号は、当然であるが、最終ページのページ番号Ｑになる。図１４（ａ）に示す例では、１台目および２台目の分散先プリンタの割当ページの終了ページ番号は、それぞれ、奇数３、７である。３台目の分散先プリンタの割当ページは、最終ページ（１０ページ）を含むので、割当ページの終了ページ番号は１０になる。一方、先頭ページが第１の面Ｆ１に印刷される場合には、第１の印刷ジョブＪＢ１の最終ページが含まれる割当ページを除いて、割当ページの終了ページ番号は、偶数になる。最終ページ（Ｑページ）が含まれる割当ページの終了ページ番号は、最終ページのページ番号Ｑである。図１４（ｂ）に示す例では、１台目および２台目の分散先プリンタの割当ページの終了ページ番号は、それぞれ、偶数４、８である。３台目の分散先プリンタの割当ページは、最終ページ（１０ページ）を含むので、割当ページの終了ページ番号は１０になる。
【００９８】
各分散先プリンタについて、それぞれ、開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）が決定されると、すなわち、各分散先プリンタの割当ページが決定されると、分散制御部５０は、図５に示すフローチャートに戻って、第１実施例と同様にして、ステップＳ１１２以降の処理を実行する。
【００９９】
分散先プリンタにおける処理は、図８および図９を参照して説明した第１実施例における処理と同一であるので、その説明を省略する。
【０１００】
以上説明した第２実施例によれば、第１実施例において上述した作用・効果に加えて、両面印刷モードに特有の以下の作用・効果を奏する。すなわち、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷した場合に、同一の印刷媒体に印刷されるページを、同一の分散先プリンタに割り当てるので、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷した場合と同様の印刷結果を再現できる。この結果、ユーザは、分散印刷であることを意識せず、通常の印刷と同じ感覚で印刷ジョブを送信すれば、分散印刷により所望の印刷結果を得ることができる。
【０１０１】
仮に、両面印刷モードであることを考慮せず、第１実施例に示したアルゴリズムにより割当ページを決定すると、所望の印刷結果を得ることができない。図１４（ｃ）（ｄ）は、第１実施例に示したアルゴリズムにより割当ページを決定した場合の一例を示している。図１４（ｃ）は、先頭ページが第２の面Ｆ２に印刷される場合を示し、図１４（ｄ）は、先頭ページが第１の面Ｆ１に印刷される場合を示している。図１４（ｃ）（ｄ）のいずれの場合であっても、途中の印刷用紙のいずかにおいて、第２の面Ｆ２がなにも印刷されない白紙の面になってしまうことが解る。
【０１０２】
さらに、各分散先プリンタの割当ページのページ数をほぼ均等にするので、１台のプリンタＰＲＴで印刷を行う場合と同様の印刷結果を再現しつつ、より短時間にページ単位での分散印刷を完了させることができる。
【０１０３】
さらに、先頭ページ印刷面指定情報に応じて、割当ページを決定するので、先頭ページが第１の面Ｆ１に印刷される場合であっても、第２の面Ｆ２に印刷される場合であっても、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷した場合と同様の印刷結果を再現できる。
【０１０４】
Ｃ．変形例：
・第１変形例：
図１５および図１６を参照して、第１変形例について説明する。図１５は、第１変形例における第１の印刷ジョブＪＢ１のデータ構造を示す説明図である。図１６は、第１変形例における分散印刷処理の処理ルーチンを示すフローチャートである。
【０１０５】
本変形例における第１の印刷ジョブＪＢ１は、第１および第２実施例における第１の印刷ジョブＪＢ１と異なり、ジョブ制御言語部５０１が２つの部分、すなわち、第１のジョブ制御言語部５０１ａと第２のジョブ制御言語部５０１ｂとに分かれている。第１のジョブ制御言語部５０１ａは、ページ記述言語部５０２の前に配置される一方で、第２のジョブ制御言語部５０１ｂはページ記述言語部５０２の後ろに配置される。すなわち、本変形例における第１の印刷ジョブＪＢ１は、分散制御部５０の分散ジョブ受信部５２に受信される際、第１のジョブ制御言語部５０１ａ、ページ記述言語部５０２、第２のジョブ制御言語部５０１ｂという順序で受信される。第２のジョブ制御言語部５０１ｂには、第１および第２の実施例においてジョブ制御言語部５０１に含まれていた情報のうち総ページ数情報ＴＰが記述され、第２のジョブ制御言語部５０１ｂには、それ以外の情報が記述されている。プリンタコントローラ８０およびクライアントＣＬのプリンタドライバの仕様によって、第１の印刷ジョブＪＢ１がこのような構造を有する場合がある。
【０１０６】
本変形例における分散印刷処理について説明する。図５を参照して説明した第１および第２実施例における分散印刷処理と異なる点は、図５におけるステップＳ１０４に代えてステップＳ５０４が実行される点と、図５におけるステップＳ１１２〜Ｓ１１６に代えて、ステップＳ５１２が実行される点である（図１６）。
【０１０７】
ステップＳ５０４において、分散制御部５０の分散ジョブ受信部５２は、印刷ジョブの先頭部分だけでなく、印刷ジョブの全体を受信する。分散制御部５０は、次のステップＳ１０６において、総ページ数情報ＴＰを参照して、総ページ数Ｑを取得する必要があるため、印刷ジョブのうち最後に受信される第２のジョブ制御言語部５０１ｂを受信しておく必要があるからである。
【０１０８】
ステップＳ５１２において、分散制御部５０の印刷ジョブ送信部５８は、ページ特定情報ＰＥを追加した印刷ジョブを第２の印刷ジョブＪＢ２１〜ＪＢ２４として、各分散先プリンタに送信する。ステップＳ５０４において、印刷ジョブの全体が受信されているので、第１実施例のように、第１の印刷ジョブＪＢ１の受信と、第２の印刷ジョブＪＢ２１〜ＪＢ２４の送信を繰り返す必要はない。
【０１０９】
他のステップＳ１０２、Ｓ１０６〜Ｓ１１０における処理は、第１および第２の実施例と同一であるので、図１６において同一の符号を付しその説明を省略する。
【０１１０】
本変形例によれば、第１の印刷ジョブＪＢ１の全体を一度に受信する必要があるので、バッファ３６には、第１の印刷ジョブＪＢ１の全体を格納できる領域が確保される必要がある。それ以外は、第１および第２の実施例と同様の作用・効果を得ることができる。
【０１１１】
・第２変形例：
上記第２実施例では、印刷用紙の両面に１ページずつ印刷する両面印刷モードが用いられているが、複数のページを１枚の印刷用紙に印刷するその他の印刷モードにも適用することができる。その他の印刷モードとしては、例えば、１枚の印刷用紙の第１の面Ｆ１に複数のページを並べて印刷する印刷モード、具体的には、縮小印刷モードがある。あるいは、第１の面Ｆ１および第２の面Ｆ２に、それぞれ、複数のページを印刷する印刷モード、具体的には、縮小両面印刷モードがある。第２変形例として第１の面Ｆ１および第２の面Ｆ２に２ページずつ、つまり、１枚の印刷用紙に４ページの印刷を行う印刷モードが用いられる場合について説明する。図１７は、第２変形例における割当ページの決定を説明するための概念図である。
【０１１２】
第２変形例においても、割当ページの決定のための処理ステップは、基本的に、図１２を参照して説明した第２実施例における処理ステップと同様である。図１７（ａ）は、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷された場合の印刷結果を概念的に示している。図１７に示す例では、第２の面Ｆ２から印刷を始める場合であるので、取得されるページ印刷面指定情報は、「ＦＣ＝ＢＫ」である。また、総ページ数Ｑは２０であり、分散先プリンタの台数は３台であるとする。第２実施例と同様に、割当ページ決定部５６は、先頭ページ印刷面指定情報と、総ページ数Ｑを用いて、出力されるべき印刷用紙の総数Ｑｖを算出し、出力されるべき印刷用紙を各分散先プリンタに割り当てる。図１７に示す例では、図１７（ｂ）に示すように、印刷用紙の総数Ｑｖ＝６と定められ、図１７（ｃ）に示すように、各分散先プリンタに２枚ずつ出力されるべき印刷用紙が割当てられる。
【０１１３】
さらに、割当ページ決定部５６は、割当られた印刷用紙に印刷されるべきページを割当ページとして決定する。図１７に示す例では、図１７（ｄ）に示すように、最初の印刷用紙に、２ページ、それ以降の印刷用紙（最終ページが割り当てられる印刷用紙を除く）に４ページずつ割り当てられる。その結果、各分散先プリンタの割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）が、図１７（ｂ）に示すように算出される。
【０１１４】
以上に一例を示したように、複数のページを１枚の印刷用紙に印刷する様々の印刷モードにおいて、第１の印刷ジョブＪＢ１を１台のプリンタＰＲＴで印刷した場合と同様の印刷結果を再現できる。
【０１１５】
・その他の変形例：
上記第２実施例では、図１２：ステップＳ１１０２において、割当ページの決定のために先頭ページ印刷面指定情報を取得しているが、先頭ページが印刷される印刷用紙に印刷されるページ数が特定できる情報であれば、割当ページの決定を行うことができる。したがって、ジョブ制御言語部５０１に、先頭ページが印刷される印刷用紙に印刷されるページ数をそのまま記述することとし、ステップＳ１１０２において、これを取得することとしても良い。
【０１１６】
上記第１実施例においては、第１の印刷ジョブＪＢ１は、ページ特定情報ＰＥが含まれていないものとしているが、第１の印刷ジョブＪＢ１のページ記述言語部５０２に含まれる印刷データのうち一部のページを特定するページ特定情報ＰＥを含んでも良い。
【０１１７】
かかる場合には、分散制御部５０は、総ページ数情報ＴＰを取得する際に（図５：ステップＳ１０６）、総ページ数情報ＴＰに代えてページ特定情報ＰＥを取得する。分散制御部５０は、ページ特定情報ＰＥにより特定された範囲のページ数をカウントして、印刷を要求される総ページ数Ｑとする。
【０１１８】
そして、分散制御部５０は、割当ページを決定した後、第１の印刷ジョブＪＢ１に記述されているページ特定情報ＰＥを、割当ページを特定するページ特定情報ＰＥに変更して、第２の印刷ジョブＪＢ２１〜ＪＢ２４を生成すれば良い。その際には、ページ特定情報ＰＥに記述される開始ページ番号および終了ページ番号は、第１の印刷ジョブＪＢ１に記述されているページ特定情報ＰＥにより特定された範囲のページを適切に指定するように調整する。例えば、第１の印刷ジョブＪＢ１に記述されているページ特定情報ＰＥによって５ページ目から１４ページ目までの１０ページが特定されている場合を考える。そして、係る１０ページを、図４に示した例と同様に、４台の分散先プリンタに分散するとする。すると、割当ページは、上述した式（１）〜（３）により、
１台目の分散先プリンタ（プリンタＰＲＴ１）：Ｓ（１）＝１、Ｅ（１）＝３;
２台目の分散先プリンタ（プリンタＰＲＴ２）：Ｓ（２）＝４、Ｅ（２）＝６;
３台目の分散先プリンタ（プリンタＰＲＴ３）：Ｓ（３）＝７、Ｅ（３）＝８;
４台目の分散先プリンタ（プリンタＰＲＴ４）：Ｓ（４）＝９、Ｅ（４）＝１０;
と決定されるが、実際に第２の印刷ジョブＪＢ２１〜ＪＢ２４に記述されるページ特定情報ＰＥは、５ページ目から１４ページ目までの１０ページが印刷されるように、各値に４を加えて調整する。
【０１１９】
したがって、調整後の割当ページの開始ページ番号Ｓａ（ｍ）および終了ページ番号Ｅａ（ｍ）は、
１台目の分散先プリンタ（プリンタＰＲＴ１）：Ｓａ（１）＝５、Ｅａ（１）＝７
２台目の分散先プリンタ（プリンタＰＲＴ２）：Ｓａ（２）＝８、Ｅａ（２）＝１０
３台目の分散先プリンタ（プリンタＰＲＴ３）：Ｓａ（３）＝１１、Ｅａ（３）＝１２
４台目の分散先プリンタ（プリンタＰＲＴ４）：Ｓａ（４）＝１３、Ｅａ（４）＝１４
となる。
【０１２０】
上記第１および第２実施例において、プリンタＰＲＴの各部は、ソフトウエア的に構成されているものを、ハードウエア的に構成するようにしてもよいし、ハードウエア的に構成されているものを、ソフトウエア的に構成するようにしてもよい。
【０１２１】
上記第１および第２実施例におけるプリンタエンジン９０は、種々のタイプのものが用いられ得る。例えば、レーザー式に限らず、インクジェット式、昇華型、ドットインパクト式、熱転写型など、あらゆるタイプのプリンタエンジンが用いられ得る。
【０１２２】
以上、本発明の実施例および変形例について説明したが、本発明はこれらの実施例および変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
【図面の簡単な説明】
【０１２３】
【図１】本発明の第１実施例における分散印刷システムの概略構成を示す説明図。
【図２】第１実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図。
【図３】印刷ジョブの構成を説明する概念図。
【図４】分散印刷処理の概要を示す説明図。
【図５】分散印刷処理の処理ルーチンを示すフローチャート。
【図６】分散先プリンタ特定処理の処理ルーチンを示すフローチャート。
【図７】分散先プリンタに割り当てられるページ数の一例を示すテーブル。
【図８】通常の印刷ジョブの受信処理の処理ルーチンを示すフローチャート。
【図９】通常の印刷ジョブの印刷処理の処理ルーチンを示すフローチャート。
【図１０】両面印刷モードを要求する印刷ジョブのジョブ制御言語部の一例を示す説明図。
【図１１】両面印刷モードにおける印刷形態を説明する概念図。
【図１２】両面印刷モード時における割当ページの決定の処理ルーチンを示すフローチャート。
【図１３】両面モード時における割当ページの決定を説明するための概念図。
【図１４】両面印刷モード時における割当ページの決定結果について説明する概念図。
【図１５】第１変形例における第１の印刷ジョブＪＢ１のデータ構造を示す説明図。
【図１６】第１変形例における分散印刷処理の処理ルーチンを示すフローチャート。
【図１７】第２変形例における割当ページの決定を説明するための概念図。
【符号の説明】
【０１２４】
１０...ＴＣＰ／ＩＰ部
１１...アプリケーション
１２...印刷ジョブ送信部
１３...ＴＣＰ／ＩＰ部
２０...ＣＰＵ
３０...メモリ
３２...ＯＩＤ格納部
３４...分散先指定ファイル格納部
３６...バッファ
４０...ＳＮＭＰマネージャ
５０...分散制御部
５２...分散ジョブ受信部
５４...分散先特定部
５６...割当ページ決定部
５８...印刷ジョブ送信部
６０...印刷ジョブ受信部
７０...ＳＮＭＰエージェント
８０...プリンタコントローラ
８１...ＭＩＢファイル
８２...プリンタバッファ
９０...プリンタエンジン
１００...カスタムネットワークボード
２００...ネットワークボード
４００...ヘッダ
４５０...データ部
５０１...ジョブ制御言語部
５０１ａ...第１のジョブ制御言語部
５０１ｂ...第２のジョブ制御言語部
５０２...ページ記述言語部
ＰＲＴ...プリンタ
ＰＲＢ...プリンタ本体
ＣＬ...クライアント
ＪＢ...印刷ジョブ
【図１】
2007041753.tif 000007
【図２】
2007041753.tif 000008
【図３】
2007041753.tif 000009
【図４】
2007041753.tif 000010
【図５】
2007041753.tif 000011
【図６】
2007041753.tif 000012
【図７】
2007041753.tif 000013
【図８】
2007041753.tif 000014
【図９】
2007041753.tif 000015
【図１０】
2007041753.tif 000016
【図１１】
2007041753.tif 000017
【図１２】
2007041753.tif 000018
【図１３】
2007041753.tif 000019
【図１４】
2007041753.tif 000020
【図１５】
2007041753.tif 000021
【図１６】
2007041753.tif 000022
【図１７】
2007041753.tif 000023