(57)【要約】【課題】  簡易なシステムで、分散印刷を実現する。【解決手段】  クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際、ボート番号として通常の「９１００」ではなく、「１９１００」を用いる。プリンタＰＲＴ１のカスタムネットワークボードＣＮＢは、通信データＤＴ０を受信すると、ポート番号「１９１００」に待機している分散印刷ソフトウェアに渡す。分散印刷ソフトウェアに従ってＣＰＵにより実現される各機能部が、分散先として、プリンタＰＲＴ２〜ＰＲＴ４の他、自己のプリンタＰＲＴ１を決定し、印刷ジョブデータに含まれるＱＴ値を「２５部」に変更すると共に、送信先ポート番号を「１９１００」ではなく、「９１００」に変更した上で、それら分散先のプリンタに、それぞれ、印刷ジョブを含む通信データＤＴ１〜ＤＴ４を送信する。【選択図】  図１
2005178347.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
特定のポート番号を指定して前記印刷ジョブが送信されてきた場合に、前記印刷ジョブを前記分散先印刷装置に分散することを特徴とする分散印刷制御装置。
【請求項２】
請求項１に記載の分散印刷制御装置において、
前記分散先印刷装置に分散する際、前記特定のポート番号とは異なるポート番号を指定して前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項３】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合に、前記印刷ジョブを前記分散先印刷装置に分散することを特徴とする分散印刷制御装置。
【請求項４】
請求項３に記載の分散印刷制御装置において、
前記分散先印刷装置に分散する際、前記特定の印刷プロトコルとは異なる印刷プロトコルで前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項５】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる２以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
送信される前記印刷ジョブが印刷部数情報を含むと共に、該印刷部数情報の示す部数がｎ部（但し、ｎは２以上の整数）である場合に、各分散先印刷装置に割り当てるべき分散部数を、それぞれ、それら分散部数の総和が前記ｎ部となるよう、決定し、各分散先印刷装置毎に、前記印刷部数情報の示す部数が決定した前記分散部数となるよう、前記印刷部数情報を変更して、前記印刷ジョブを前記分散先印刷装置に分散することを特徴とする分散印刷制御装置。
【請求項６】
請求項５に記載の分散印刷制御装置において、
前記分散部数を決定する際、各分散部数がほぼ同じ値となるよう、決定することを特徴とする分散先印刷制御装置。
【請求項７】
請求項５に記載の分散印刷制御装置において、
前記分散部数を決定する際、各分散先印刷装置から、その分散先印刷装置の有する消耗品に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定することを特徴とする分散先印刷制御装置。
【請求項８】
請求項７に記載の分散印刷制御装置において、
取得した前記消耗品に関する情報が前記消耗品の残量または残寿命である場合、各分散部数を決定するに際し、前記消耗品の残量または残寿命が多い分散先印刷装置ほど、割り当てるべき前記分散部数を多くすることを特徴とする分散先印刷制御装置。
【請求項９】
請求項５に記載の分散印刷制御装置において、
前記分散部数を決定する際、各分散先印刷装置の性能に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定することを特徴とする分散先印刷制御装置。
【請求項１０】
請求項９に記載の分散印刷制御装置において、
取得した前記性能に関する情報が前記分散先印刷装置の処理速度である場合、各分散部数を決定するに際し、前記処理速度が速い分散先印刷装置ほど、割り当てるべき前記分散部数を多くすることを特徴とする分散先印刷制御装置。
【請求項１１】
請求項５ないし請求項１０のうちの任意の１つに記載の分散印刷制御装置において、
送信される前記印刷ジョブのうち、前記印刷部数情報を受信した場合には、前記印刷ジョブの全てを受信する前であっても、前記印刷部数情報を変更して、前記印刷ジョブの分散を開始することを特徴とする分散印刷制御装置。
【請求項１２】
請求項１ないし請求項１１のうちの任意の１つに記載の分散印刷制御装置において、
前記ネットワークに接続された印刷装置のうち、少なくとも１つの特定印刷装置に、内蔵または接続されていることを特徴とする分散印刷制御装置。
【請求項１３】
請求項１２に記載の分散印刷制御装置において、
前記分散先印刷装置として、前記特定印刷装置を決定することを許容することを特徴とする分散印刷制御装置。
【請求項１４】
請求項１２または請求項１３に記載された分散印刷制御装置において、
前記特定印刷装置と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から検索し、前記分散先印刷装置として決定することを特徴とする分散印刷制御装置。
【請求項１５】
請求項１２または請求項１３に記載された分散印刷制御装置において、
分散先指定ファイルを有すると共に、
前記特定印刷装置と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から、前記分散先指定ファイルの指定内容に基づいた範囲内で検索し、前記分散先印刷装置として決定することを特徴とする分散印刷制御装置。
【請求項１６】
請求項１４または請求項１５に記載された分散印刷制御装置において、
前記特定印刷装置の機種情報を、電源投入後から前記検索の開始前までの間に前記特定印刷装置から取得することを特徴とする分散印刷制御装置。
【請求項１７】
ネットワークに接続された印刷装置であって、
請求項１ないし請求項１１のうちの任意の１つに記載の分散印刷制御装置を内蔵することを特徴とする印刷装置。
【請求項１８】
請求項１７に記載の印刷装置において、
前記分散先印刷装置として、自身を決定することを許容することを特徴とする印刷装置。
【請求項１９】
請求項１７または請求項１８に記載された印刷装置において、
自身と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から検索し、前記分散先印刷装置として決定することを特徴とする印刷装置。
【請求項２０】
請求項１７または請求項１８に記載された印刷装置において、
分散先指定ファイルを有すると共に、
自身と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から、前記分散先指定ファイルの指定内容に基づいた範囲内で検索し、前記分散先印刷装置として決定することを特徴とする印刷装置。
【請求項２１】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散するための印刷ジョブ分散方法であって、
（ａ）前記印刷ジョブを含む通信データを受信する工程と、
（ｂ）受信した前記通信データが特定のポート番号を指定している場合に、前記通信データに含まれる前記印刷ジョブを、前記分散先印刷装置に分散する工程と、
を備える印刷ジョブ分散方法。
【請求項２２】
請求項２１に記載の印刷ジョブ分散方法において、
前記工程（ｂ）は、前記分散先印刷装置に分散する際に、前記特定のポート番号とは異なるポート番号を指定して前記印刷ジョブを送信する工程を含むことを特徴とする印刷ジョブ分散方法。
【請求項２３】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散するための印刷ジョブ分散方法であって、
（ａ）前記印刷ジョブを受信する工程と、
（ｂ）受信した前記印刷ジョブが特定の印刷プロトコルで送信されてきた場合に、前記印刷ジョブを、前記分散先印刷装置に分散する工程と、
を備える印刷ジョブ分散方法。
【請求項２４】
請求項２３に記載の印刷ジョブ分散方法において、
前記工程（ｂ）は、前記分散先印刷装置に分散する際、前記特定の印刷プロトコルとは異なる印刷プロトコルで前記印刷ジョブを送信する工程を含むことを特徴とする印刷ジョブ分散方法。
【請求項２５】
ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる２以上の分散先印刷装置に分散するための印刷ジョブ分散方法であって、
（ａ）前記印刷ジョブを受信する工程と、
（ｂ）受信した前記印刷ジョブが印刷部数情報を含むと共に、該印刷部数情報の示す部数がｎ部（但し、ｎは２以上の整数）である場合に、各分散先印刷装置に割り当てるべき分散部数を、それぞれ、それら分散部数の総和が前記ｎ部となるよう、決定する工程と、
（ｃ）各分散先印刷装置毎に、前記印刷部数情報の示す部数が決定した前記分散部数となるよう、前記印刷部数情報を変更して、前記印刷ジョブを前記分散先印刷装置に分散する工程と、
を備える印刷ジョブ分散方法。
【請求項２６】
請求項２５に記載の印刷ジョブ分散方法において、
前記工程（ｂ）は、各分散先印刷装置から、その分散先印刷装置の有する消耗品に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定する工程を含むことを特徴とする印刷ジョブ分散方法。
【請求項２７】
請求項２５に記載の印刷ジョブ分散方法において、
前記工程（ｂ）は、各分散先印刷装置の性能に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定する工程を含むことを特徴とする印刷ジョブ分散方法。
【請求項２８】
分散印刷制御装置によって、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散させるためのコンピュータプログラムであって、
前記印刷ジョブを含む通信データを受信する機能と、
受信した前記通信データが特定のポート番号を指定している場合に、前記通信データに含まれる前記印刷ジョブを、前記分散先印刷装置に分散する機能と、
を前記分散印刷制御装置に内蔵されたコンピュータによって実現させるためのコンピュータプログラム。
【請求項２９】
分散印刷制御装置によって、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散させるためのコンピュータプログラムであって、
前記印刷ジョブを受信する機能と、
受信した前記印刷ジョブが特定の印刷プロトコルで送信されてきた場合に、前記印刷ジョブを、前記分散先印刷装置に分散する機能と、
を前記分散印刷制御装置に内蔵されたコンピュータによって実現させるためのコンピュータプログラム。
【請求項３０】
分散印刷制御装置によって、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる２以上の分散先印刷装置に分散させるためのコンピュータプログラムであって、
前記印刷ジョブを受信する機能と、
受信した前記印刷ジョブが印刷部数情報を含むと共に、該印刷部数情報の示す部数がｎ部（但し、ｎは２以上の整数）である場合に、各分散先印刷装置に割り当てるべき分散部数を、それぞれ、それら分散部数の総和が前記ｎ部となるよう、決定する機能と、
各分散先印刷装置毎に、前記印刷部数情報の示す部数が決定した前記分散部数となるよう、前記印刷部数情報を変更して、前記印刷ジョブを前記分散先印刷装置に分散する機能と、
を前記分散印刷制御装置に内蔵されたコンピュータによって実現させるためのコンピュータプログラム。
【請求項３１】
請求項３０に記載のコンピュータプログラムにおいて、
前記分散部数を決定する機能は、各分散先印刷装置から、その分散先印刷装置の有する消耗品に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定する機能を含むことを特徴とするコンピュータプログラム。
【請求項３２】
請求項３０に記載のコンピュータプログラムにおいて、
前記分散部数を決定する機能は、前記分散先印刷装置の性能に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定する機能を含むことを特徴とするコンピュータプログラム。
【請求項３３】
請求項２８ないし請求項３２のうちの任意の１つに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された１以上の印刷装置に印刷ジョブを分散して、分散印刷を行う技術に関する。
【背景技術】
【０００２】
近年、複数のプリンタを同一ネットワークに接続し、ユーザが複数のプリンタを使い分けることができる印刷システムが普及しつつある。複数部の印刷を行う場合、印刷ジョブを各プリンタに分散し、並行処理することにより、短時間で印刷を完了する技術、いわゆる分散印刷も提案されている（例えば、特許文献１参照）。分散印刷は、ネットワーク上に設けられた分散印刷用の専用サーバが、印刷ジョブの分散先および印刷部数を制御するのが通常である。
【０００３】
【特許文献１】特開２００２−２１５３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術では、分散印刷を実現するために専用サーバを含めた大がかりなシステムが必要となっていた。
【０００５】
本発明は、かかる課題を解決するためになされたものであり、簡易なシステムで、分散印刷を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記した目的の少なくとも一部を達成するために、本発明の第１の分散印刷制御装置は、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
特定のポート番号を指定して前記印刷ジョブが送信されてきた場合に、前記印刷ジョブを前記分散先印刷装置に分散することを要旨とする。
【０００７】
従って、分散印刷を実行するために、例えば、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、ポート番号の指定を特定のポート番号に変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、分散印刷制御装置が、分散印刷を全て制御しているため、専用サーバを用いることなく、簡易なシステムで分散印刷を実現することが可能である。
【０００８】
本発明の第１の分散印刷制御装置において、前記分散先印刷装置に分散する際、前記特定のポート番号とは異なるポート番号を指定して前記印刷ジョブを送信することが好ましい。
【０００９】
このように構成することにより、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散先印刷装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに指定されるポート番号は特定のポート番号とは異なるため、その分散した印刷ジョブを、特定の番号ポートを指定して送信されてきた印刷ジョブと判断することがなく、さらに再分散，再々分散など、無限に分散するようなことがない。
【００１０】
本発明の第２の分散印刷制御装置は、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる１以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合に、前記印刷ジョブを前記分散先印刷装置に分散することを要旨とする。
【００１１】
従って、第１の分散印刷制御装置の場合と同様に、分散印刷を実行するために、例えば、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、印刷プロトコルの指定を特定の印刷プロトコルに変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、分散印刷制御装置が、分散印刷を全て制御しているため、専用サーバを用いることなく、簡易なシステムで分散印刷を実現することが可能である。
【００１２】
本発明の第２の分散印刷制御装置において、前記分散先印刷装置に分散する際、前記特定の印刷プロトコルとは異なる印刷プロトコルで前記印刷ジョブを送信することが好ましい。
【００１３】
このように構成することにより、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散先印刷装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに用いられる印刷プロトコルは特定の印刷プロトコルとは異なるため、その分散した印刷ジョブを、特定の印刷プロトコルで送信されてきた印刷ジョブと判断することがなく、さらに再分散，再々分散など、無限に分散するようなことがない。
【００１４】
本発明の第３の分散印刷制御装置は、ネットワークを介して送信される印刷ジョブを、前記ネットワークに接続された印刷装置のうち、分散先となる２以上の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
送信される前記印刷ジョブが印刷部数情報を含むと共に、該印刷部数情報の示す部数がｎ部（但し、ｎは２以上の整数）である場合に、各分散先印刷装置に割り当てるべき分散部数を、それぞれ、それら分散部数の総和が前記ｎ部となるよう、決定し、各分散先印刷装置毎に、前記印刷部数情報の示す部数が決定した前記分散部数となるよう、前記印刷部数情報を変更して、前記印刷ジョブを前記分散先印刷装置に分散することを要旨とする。
【００１５】
このように、第３の分散印刷制御装置では、印刷ジョブに含まれる印刷部数情報のみを変更し、その印刷ジョブを各分散先印刷装置にそれぞれ分散するだけで、容易に分散印刷を行うことができるので、分散印刷制御装置の有するＣＰＵとしては、高い処理能力を有するＣＰＵを用いなくて済み、製造コストを低減することができる。
【００１６】
本発明の第３の分散印刷制御装置において、前記分散部数を決定する際、各分散部数がほぼ同じ値となるよう、決定するようにしてもよい。
【００１７】
このように決定することにより、各分散先制御装置にできる限り均等に印刷部数を割り当てることができる。
【００１８】
本発明の第３の分散印刷制御装置において、前記分散部数を決定する際、各分散先印刷装置から、その分散先印刷装置の有する消耗品に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定するようにしてもよい。
【００１９】
このように決定することにより、各分散先印刷装置における消耗品の状態に応じて、効率よく、分散印刷を行うことが可能となる。
【００２０】
上記分散印刷制御装置において、取得した前記消耗品に関する情報が前記消耗品の残量または残寿命である場合、各分散部数を決定するに際し、前記消耗品の残量または残寿命が多い分散先印刷装置ほど、割り当てるべき前記分散部数を多くすることが好ましい。
【００２１】
このようにすることにより、分散印刷を開始した後に、分散先印刷装置において、消耗品がなくなったり、消耗品の寿命がつきたりすることに起因して印刷が停止してしまうという可能性を低減することができ、各分散先印刷装置を効率よく利用することができる。
【００２２】
本発明の第３の分散印刷制御装置において、前記分散部数を決定する際、各分散先印刷装置の性能に関する情報をそれぞれ取得し、それら取得情報に基づいて、各分散部数を決定するようにしてもよい。
【００２３】
このように決定することにより、各分散先印刷装置の性能に応じて、効率よく、分散印刷を行うことが可能となる。
【００２４】
上記分散印刷制御装置において、取得した前記性能に関する情報が前記分散先印刷装置の処理速度である場合、各分散部数を決定するに際し、前記処理速度が速い分散先印刷装置ほど、割り当てるべき前記分散部数を多くすることが好ましい。
このようにすることにより、全体として、分散印刷に要する時間を短縮することができる。
【００２５】
本発明の第３の分散印刷制御装置において、送信される前記印刷ジョブのうち、前記印刷部数情報を受信した場合には、前記印刷ジョブの全てを受信する前であっても、前記印刷部数情報を変更して、前記印刷ジョブの分散を開始することが好ましい。
このようにすることより、各分散先印刷装置での印刷開始を大幅に早めることができる。
【００２６】
本発明の分散印刷制御装置において、前記ネットワークに接続された印刷装置のうち、少なくとも１つの特定印刷装置に、内蔵または接続されていてもよい。
【００２７】
特定印刷装置に内蔵または接続された分散印刷制御装置において、前記分散先印刷装置として、前記特定印刷装置を決定することを許容することが好ましい。
【００２８】
このように構成することにより、特定印刷装置自身を分散先印刷装置の候補に組み入れることができ、分散先印刷装置の選択範囲を広げることができる。
【００２９】
特定印刷装置に内蔵または接続された分散印刷制御装置において、前記特定印刷装置と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から検索し、前記分散先印刷装置として決定することが好ましい。
【００３０】
分散印刷制御装置が特定印刷装置に内蔵または接続されている場合、分散印刷制御装置に送信されてくる印刷ジョブは、特定印刷装置用の印刷ジョブとして送信されてくるため、その印刷ジョブが分散される分散先印刷装置も、特定印刷装置と同一機種であれば、それら分散先印刷装置において、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせることができる。
【００３１】
特定印刷装置に内蔵または接続された分散印刷制御装置において、分散先指定ファイルを有すると共に、
前記特定印刷装置と同一機種の印刷装置であって、印刷実行可能な印刷装置を、前記ネットワークに接続された印刷装置の中から、前記分散先指定ファイルの指定内容に基づいた範囲内で検索し、前記分散先印刷装置として決定することが好ましい。
【００３２】
このように、分散先指定ファイルを用いることにより、分散先印刷装置の候補を、予め、所望の印刷装置に絞り込むことができる。
【００３３】
特定印刷装置に内蔵または接続された分散印刷制御装置において、前記特定印刷装置の機種情報を、電源投入後から前記検索の開始前までの間に前記特定印刷装置から取得することが好ましい。
【００３４】
このように構成することにより、例え、分散印刷制御装置が、電源オフ状態のときに、別機種の特定印刷装置に新たに内蔵または接続されたとしても、電源投入後に、その特定印刷装置の機種情報を適正に取得することができる。
【００３５】
なお、本発明は、上記した分散印刷制御装置としての構成の他、その分散印刷制御装置を内蔵する印刷装置としても構成することができる。また、そのような装置発明の態様に限ることなく、印刷ジョブ分散方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【００３６】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、印刷装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態を、実施例に基づいて、下記の項目に分けて説明する。
Ａ．第１の実施例：
Ａ１．システム概要：
Ａ２．プリンタの構成：
Ａ３．通常印刷処理：
Ａ４．分散印刷処理：
Ａ５．実施例の効果：
Ｂ．第２の実施例：
Ｂ１．プリンタの構成：
Ｂ２．通常印刷処理：
Ｂ３．分散印刷処理：
Ｂ４．実施例の効果：
Ｃ．第３の実施例：
Ｃ１．分散印刷処理：
Ｃ２．実施例の効果：
Ｄ．第４の実施例：
Ｄ１．分散印刷処理：
Ｄ２．実施例の効果：
Ｅ．変形例：
【００３８】
Ａ．第１の実施例：
Ａ１．システム概要：
図１は本発明の第１の実施例としてのプリンタＰＲＴ１を備える印刷システムの構成を示す説明図である。この印刷システムでは、図示するように、クライアントＰＣ（以下、クライアントと略す）ＣＬ、複数のプリンタＰＲＴ１〜ＰＲＴ４がローカルエリアネットワーク（ＬＡＮ）に接続されている。各機器間の通信は、ＴＣＰ／ＩＰプロトコルをベースとしているため、各機器には、それぞれ、ＩＰアドレスが予め固定で割り振られている。説明の便宜上、クライアントＣＬには「ＩＰｃ」、プリンタＰＲＴ１〜ＰＲＴ４には、それぞれ「ＩＰ１」〜「ＩＰ４」なるアドレスが設定されているものとする。なお、厳密に言えば、これらＩＰアドレスは、クライアントＣＬ，プリンタＰＲＴ１〜ＰＲＴ４自体に設定されているわけではなく、ＴＣＰ／ＩＰのネットワークから見た場合のノード（すなわち、具体的には、ＴＣＰ／ＩＰ通信を行うためにネットワークに接続されているネットワークボードなど）に設定されている。
【００３９】
これらプリンタのうち、プリンタＰＲＴ１には、カスタムネットワークボードＣＮＢが取り付けられている。このカスタムネットワークボードＣＮＢは、受信した印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における分散印刷制御装置に相当する。一方、他のプリンタには、それぞれ、標準のネットワークボード（図示せず）が取り付けられている。
【００４０】
一例として図中には、クライアントＣＬからプリンタＰＲＴ１に、印刷ジョブを含む通信データＤＴ０が送信される場合を例示した。
【００４１】
図２はこのような印刷ジョブを含む通信データの構成を概念的に示す説明図である。図２に示すように、通信データは、大きく分けて、ヘッダと、印刷ジョブデータと、に分かれている。
【００４２】
このうち、ヘッダには、その通信データの発信元である機器のＩＰアドレス（発信元ＩＰアドレス）と、その機器内における発信元であるソフトウェアを特定するポート番号（発信元ポート番号）と、を含む他、その通信データの送信先である機器のＩＰアドレス（送信先ＩＰアドレス）と、その機器内における送信先であるソフトウェアを特定するポート番号（送信先ポート番号）とを含んでいる。発信元である機器のソフトウェアから発信された通信データは、送信先ＩＰアドレスに従って、そのＩＰアドレスを有する機器に送信され、さらに、受信したその機器内では、送信先ポート番号に従って、その番号のポートで待機しているソフトウェアに渡される。
【００４３】
一方、印刷ジョブデータは、ジョブ制御言語の部分と、印刷コマンドと、に分かれており、このうち、ジョブ制御言語部分には、印刷部数情報として、印刷部数を表すＱＴ値が記載されている。
【００４４】
なお、ＴＣＰ／ＩＰの場合、通信データは、通常、バケットで通信される。従って、実際には、一連の印刷ジョブデータは、時分割された上で、各時分割データの前に上記ヘッダを付けて、それぞれ、送信されることになる。
【００４５】
図１に戻って、通信データＤＴ０には、送信先ＩＰアドレスとして「ＩＰ１」が、送信先ポート番号として「１９１００」が、ＱＴ値（すなわち、印刷部数）として「１００部」が、それぞれ記載されている。
【００４６】
本実施例では、印刷プロトコルとして無手順プロトコルを用いている。無手順プロトコルでは、通常、ボート番号として「９１００」が割り当てられているが、本発明の特徴として、本実施例では、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際、ボート番号として通常の「９１００」ではなく、「１９１００」を用いる。
【００４７】
プリンタＰＲＴ１のカスタムネットワークボードＣＮＢは、この通信データＤＴ０を受信すると、ポート番号「１９１００」に待機しているソフトウェアに、印刷ジョブデータを渡す。本実施例では、ポート番号「１９１００」には、分散印刷制御機能を実現するための分散印刷ソフトウェアが待機している。それにより、その分散印刷ソフトウェアに従ってＣＰＵにより実現される各機能部が、分散先のプリンタとして、プリンタＰＲＴ２〜ＰＲＴ４の他、自己のプリンタＰＲＴ１を決定し、印刷ジョブデータに含まれるＱＴ値を「２５部」に変更すると共に、送信先ポート番号を「１９１００」ではなく、「９１００」に変更した上で、それら分散先のプリンタに、それぞれ、印刷ジョブを含む通信データＤＴ１〜ＤＴ４を送信する。
【００４８】
従って、例えば、通信データＤＴ２には、送信先ＩＰアドレスとして「ＩＰ２」が、送信先ポート番号として「９１００」が、ＱＴ値として「２５部」が、それぞれ記載されている。
【００４９】
プリンタＰＲＴ２の標準ネットワークボードは、この通信データＤＴ２を受信すると、ポート番号「９１００」に待機しているソフトウェアに、印刷ジョブデータを渡す。ポート番号「９１００」は、前述したとおり、印刷プロトコルである無手順プロトコルに対して、通常割り当てられているポート番号であるので、印刷ジョブデータは、プリンタＰＲＴ２内の印刷制御ソフトウェアに渡されて、その印刷ジョブに従った印刷が実行される。
【００５０】
他のプリンタＰＲＴ３，ＰＲＴ４は、もちろんのこと、分散印刷制御機能を有するＰＲＴ１においても、同様に、送信された印刷ジョブに従った印刷が実行される。
【００５１】
この結果、各プリンタＰＲＴ１〜ＰＲＴ４では、各「２５部」ずつの印刷が実行されることになり、システム全体で、合計「１００部」の分散印刷が実行されることになる。
【００５２】
Ａ２．プリンタの構成：
図３は図１におけるプリンタＰＲＴ１の構成を主として示す説明図である。プリンタＰＲＴ１は、プリンタ本体ＰＲＢと、上述したカスタムネットワークボードＣＮＢと、を備えている。このうち、プリンタ本体ＰＲＢは、主として、プリンタエンジン４１と、プリンタコントローラ４２と、を備えている。プリンタエンジン４１は、実際に印刷を行う機構部分である。プリンタコントローラ４２は、カスタムネットワークボードＣＮＢから印刷ジョブデータを受け取り、その印刷ジョブに従ってプリンタエンジン４１を制御し、印刷を実行させる。
【００５３】
一方、本発明の特徴部分であるカスタムネットワークボードＣＮＢは、主として、ＣＰＵ２０と、メモリ３０と、を備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略されている。
【００５４】
ＣＰＵ２０は、メモリ３０より、上記した分散印刷ソフトウェアなどのプログラムを読み出して、実行することにより、図示した各機能ブロックとして機能する。なお、各機能ブロックをハードウェア的に構築しても構わない。
【００５５】
これら機能ブロックのうち、ＴＣＰ／ＩＰ解釈部２１は、ＴＣＰ／ＩＰプロトコルを解釈して、ネットワークを介して外部との通信を行う。具体的には、受信した通信データに含まれる送信先ＩＰアドレスや送信先ポート番号を検出したり、送信する通信データに送信先ＩＰアドレスや送信先ポート番号を付与したりする。無手順プロトコル解釈部２２Ａ，２２Ｂは、印刷プロトコルである無手順プロトコルを解釈する。本実施例では、説明の便宜上、通信データが、送信先ポート番号として通常の「９１００」で送信されている場合には、無手順プロトコル解釈部２２Ｂが機能し、特定の「１９１００」で送信されている場合には、無手順プロトコル解釈部２２Ａが機能するものとしている。
【００５６】
また、分散先決定部２３は、分散印刷を行う際に、ＬＡＮ上から、分散先となるべきプリンタを検索して、分散先プリンタとして決定する。部数決定部２４は、指定されている総印刷部数から、各分散先プリンタに割り当てるべき分散部数を決定する。分散処理部２５は、印刷ジョブデータに含まれる印刷部数を示すＱＴ値を書き換えた上で、各分散プリンタに印刷ジョブデータを分配する。
【００５７】
一方、メモリ３０は、上記したプログラムを格納する他、各種データを格納するために、バッファ部３１や分散先指定ファイル格納部３２を備えている。このうち、バッファ部３１は、送信された印刷ジョブデータを一時的に格納するための格納部であるが、記憶容量が少ないため、送信された印刷ジョブデータの全てを格納することはできない。また、分散先指定ファイル格納部３２は分散先指定ファイルを格納する。この分散先指定ファイルは、ＬＡＮに接続されている複数のプリンタの中で、分散印刷における分散先として使用したいプリンタを、前もって、指定して限定しておきたい場合に用いる。従って、そのような指定が不要な場合には、分散先指定ファイル格納部３２には何も格納されない。
【００５８】
さて、図３において、その他、クライアントＣＬにおいては、アプリケーション１３の他、機能ブロックとして、無手順プロトコル解釈部１２やＴＣＰ／ＩＰ解釈部１１を備えている。また、プリンタＰＲＴ２においては、プリンタエンジン５４やプリンタコントローラ５３の他、機能ブロックとして、無手順プロトコル解釈部５２やＴＣＰ／ＩＰ解釈部５１を備えている。このうち、無手順プロトコル解釈部１２，無手順プロトコル解釈部５２は、プリンタＰＲＴ１において、送信先ポート番号として通常の「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂと同じ機能を有している。また、ＴＣＰ／ＩＰ解釈部１１，５１も、プリンタＰＲＴ１におけるＴＣＰ／ＩＰ解釈部２１と、プリンタエンジン５４やプリンタコントローラ５３も、プリンタＰＲＴ１におけるプリンタエンジン４１やプリンタコントローラ４２と、それぞれ同一の機能や構成を有している。
【００５９】
なお、図１に示すプリンタＰＲＴ３，４については、図３におけるプリンタＰＲＴ２と同様の構成を有している。
【００６０】
Ａ３．通常印刷処理：
本発明の特徴部分である分散印刷処理を説明する前に、通常の印刷処理について簡単に説明する。なお、印刷ジョブを、クライアントＣＬからプリンタＰＲＴ１に送信し、プリンタＰＲＴ１のみで印刷を実行する場合を例として説明する。この場合、印刷ジョブは、図３において、点線で示す経路をたどって転送される。なお、クライアントＣＬにおけるプリンタドライバ（図示せず）において、印刷プロトコルの設定は、無手順プロトコルに設定されているものとする。
【００６１】
ユーザがクライアントＣＬに印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブを、無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に送信する。このとき、無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１」を指定すると共に、送信先ポート番号として、無手順プロトコルに通常割り当てられている「９１００」を指定する。
【００６２】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１」に従って、その通信データを受信し、さらに、その通信データに含まれる送信先ポート番号が「９１００」であるので、「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、印刷ジョブのデータに含まれるＱＴ値から印刷部数を読み取り、指定されている部数だけ、プリンタエンジン４１に印刷を実行させる。
【００６３】
Ａ４．分散印刷処理：
次に、本発明の特徴部分である分散印刷処理について詳細に説明する。まず、前提として、ユーザにより、プリンタＰＲＴ１の電源が投入されると、プリンタ本体ＰＲＢ及びカスタムネットワークボードＣＮＢが起動して、分散先決定部２３が、プリンタコントローラ４２から、自己のプリンタＰＲＴ１の機種名を取得する。具体的には、分散先決定部２３が、送信先ＩＰアドレスとして、自己のプリンタＰＲＴ１のＩＰアドレス「ＩＰ１」を指定して、ＳＮＭＰ（Simple Network Management Protocol）で機種名を問い合わせることにより、ＣＰＵ２０が、バスを介してプリンタコントローラ４２に機種名を要求し、その応答を受け取ることにより、取得する。
【００６４】
以上の前提を踏まえた上で、印刷ジョブを、クライアントＣＬからプリンタＰＲＴ１に送信し、そのプリンタＰＲＴ１の他、プリンタＰＲＴ２〜ＰＲＴ４で分散印刷を実行する場合を例として説明する。
【００６５】
分散印刷を行う際には、ユーザは、クライアントＣＬにおけるプリンタドライバにおいて、印刷プロトコルの設定が、無手順プロトコルに設定されていることを確認した上で、ポート番号の設定を、通常の「９１００」から特定の「１９１００」に変更する。すなわち、本実施例では、ここでのポート番号の設定を切り換えることにより、通常の「９１００」では通常印刷を、特定の「１９１００」では分散印刷を、それぞれ選択することになる。
【００６６】
そこで、ユーザがクライアントＣＬに、印刷部数「１００部」として印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷部数を示すＱＴ値を「１００部」とした印刷ジョブを、無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に送信する。このとき、無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１」を指定すると共に、送信先ポート番号として、通常の「９１００」ではなく、「１９１００」を指定する。
【００６７】
これにより、クライアントＣＬからプリンタＰＲＴ１に、図１に示すような通信データＤＴ０が送信される。すなわち、通信データＤＴ０には、送信先ＩＰアドレスとして「ＩＰ１」が、送信先ポート番号として「１９１００」が、ＱＴ値（すなわち、印刷部数）として「１００部」が、それぞれ記載されている。
【００６８】
図４はプリンタＰＲＴ１における主要機能ブロックの処理手順を示すフローチャートである。具体的には、分散処理部２５，分散先決定部２３及び部数決定部２４が実行する処理である。
【００６９】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データＤＴ０に含まれる送信先ＩＰアドレス「ＩＰ１」に従って、その通信データを受信し、さらに、その通信データに含まれる送信先ポート番号が「１９１００」であるので、今度は、無手順プロトコル解釈部２２Ｂではなく、「１９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ａに渡す。
【００７０】
一方、分散処理部２５は、ポート番号「１９１００」に、印刷ジョブが着信するまで待機している（ステップＳ１０２）。無手順プロトコル解釈部２２Ａは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取ると、その印刷ジョブのデータを、ポート番号「１９１００」で待機している分散処理部２５に渡す。
【００７１】
分散処理部２５は、受信した印刷ジョブデータの先頭から順次受け取ってバッファ部３１に格納する（ステップＳ１０４）。
【００７２】
図５は一例として印刷ジョブのデータをエディタで開いて示した説明図である。図５に示すとおり、印刷ジョブデータの前側は、ジョブ制御言語部分となっており、後側は印刷コマンドとなっている。また、ジョブ制御言語部分には、印刷部数情報として、印刷部数を示すＱＴ値が記載されている。図示した例では、"ＱＴ＝２"となっており、ＱＴ値（印刷部数）が「２部」であることを示している。
【００７３】
分散処理部２５は、格納した印刷ジョブデータにＱＴ値が見つかるまで（ステップＳ１０６）、受信した印刷ジョブデータをバッファ部３１に格納し続ける。その後、ＱＴ値が見つかると、分散処理部２５は、印刷ジョブデータのバッファ部３１部への格納を停止し、見つかったＱＴ値から総印刷部数を取得する（ステップＳ１０８）。この場合、ＱＴ値（印刷部数）として、前述したとおり「１００部」が記載されている（"ＱＴ＝１００"）ので、その「１００部」を、分散印刷すべき総印刷部数として取得することになる。
【００７４】
次に、分散先決定部２３は、ＬＡＮに接続された複数のプリンタの中から、分散先となるべきプリンタを検索して、分散先プリンタとして決定する（ステップＳ１１０）。
【００７５】
図６は分散先プリンタの検索・決定処理ルーチンの処理手順を示すフローチャートである。この処理ルーチンが開始されると、分散先決定部２３は、まず、分散先指定ファイル格納部３２に、分散先指定ファイルが格納されているか否かを検出する（ステップＳ２０２）。分散先指定ファイルが格納されている場合には、前もって、分散先として使用したいプリンタの候補が指定されていることになる。
【００７６】
図７は分散先指定ファイルの内容を示す説明図である。図７に示すように、分散先指定ファイルには、分散先として使用したいプリンタのＩＰアドレスが列挙して記載されている。このような分散先指定ファイルは、例えば、サービスマンが、プリンタＰＲＴ１を設置して初期設定する際に、そのプリンタＰＲＴ１に設定用コンピュータなどを接続して、インストールすることにより、分散先指定ファイル格納部３２に格納することができる。また、ＬＡＮを介してインストールするようにしてもよい。なお、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタＰＲＴ１も使用したい場合には、自己プリンタＰＲＴ１のＩＰアドレス「ＩＰ１」も、分散先指定ファイルに記載しておく必要がある。
【００７７】
さて、分散先指定ファイル格納部３２に分散先指定ファイルが格納されている場合には、分散先決定部２３は、その分散先指定ファイルを読み出して、記載されているプリンタのＩＰアドレスをリストアップする（ステップＳ２０４）。
【００７８】
反対に、分散先指定ファイルが格納されていない場合には、分散先決定部２３は、ＳＮＭＰなどを利用して、ＬＡＮに対し、ブロードキャストでＬＡＮに接続されている各機器のＩＰアドレスを問い合わせ、応答されたＩＰアドレスをリストアップする（ステップＳ２０６）。
【００７９】
次に、分散先決定部２３は、ＳＮＭＰで、リストアップしたＩＰアドレスの各機器に対し、その機種名を問い合わせ、応答された機種名に基づいて、自己のプリンタＰＲＴ１と同一機種のプリンタを選択する（ステップＳ２０８）。このように、自己のプリンタＰＲＴ１と同一機種のプリンタを、分散先プリンタの候補として選択するのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。カラー印刷や両面印刷指定も統一して実行する。
【００８０】
なお、既述したとおり、分散先決定部２３は、プリンタＰＲＴ１の電源投入時に、プリンタＰＲＴ１の機種名を既に取得しているので、それに基づいて、自己のプリンタＰＲＴ１と同一機種のプリンタを選択する。
【００８１】
また、分散先指定ファイルで指定されているＩＰアドレスの機器に対しても、機種名の問い合わせを行うのは、次の理由による。すなわち、分散先指定ファイル作成後に、機器の入れ換えなどにより、分散先指定ファイルに記載されていたＩＰアドレスが、自己のプリンタＰＲＴ１と別機種のプリンタに割り振られたり、プリンタ以外の機器に割り振られたりする可能性があるので、自己のプリンタＰＲＴ１と同一機種であるかの確認を行うためである。さらに、分散先指定ファイルで指定されているＩＰアドレスの機器が、実際に電源が投入されていて、ネットワーク経路が到達可能であることの確認も同時に行っている。
【００８２】
さらに、分散先決定部２３は、ＳＮＭＰなどで、選択したプリンタに対し、オンライン状態であるか、オフライン状態であるかの問い合わせを行い、応答結果に基づいて、オンライン状態にあるプリンタを選択する（ステップＳ２１０）。これにより、用紙切れやトナー切れ（あるいはインク切れ）、あるいは紙詰まりなど、エラーを起こしていて、すぐには印刷できないプリンタを、分散先プリンタの候補から排除することができる。
【００８３】
次に、分散先決定部２３は、分散先プリンタの候補として、未だ１台のプリンタも選択されていない場合には（ステップＳ２１２）、自己のプリンタＰＲＴ１を候補として選択する（ステップＳ２１４）。
【００８４】
こうして、分散先決定部２３は、以上の処理によって選択したプリンタを、分散先プリンタとして決定する（ステップＳ２１６）。前述したとおり、図１中に示した例では、分散先プリンタとして、自己のプリンタＰＲＴ１と、他のプリンタＰＲＴ２〜ＰＲＴ４の合計４台のプリンタを決定している。その後、ＣＰＵ２０は、図６に示す処理ルーチンを終了して、図４の処理に戻る。
【００８５】
図４のステップＳ１１２では、部数決定部２４が、先に決定した分散先プリンタの台数と、ステップＳ１０８で取得した総印刷部数とに基づいて、各分散先プリンタに割り当てるべき分散部数を決定する。本実施例では、各分散先プリンタに、できる限り均等に割り当てられるように、分散部数を決定するようにしている。このとき、それら分散部数の総和が総印刷部数の値と等しくなるように決定する。
【００８６】
従って、前述したとおり、図１中に示した例では、分散先プリンタの台数が４台で、総印刷部数は「１００部」であるので、各分散先プリンタに割り当てるべき分散部数を、各々、「２５部」ずつと決定している。
【００８７】
但し、分散先プリンタの台数や総印刷部数の値によっては、当然に、各分散先プリンタで、分散部数が均等にならない場合も生じる。従って、そのことを踏まえた上で、具体的には、次のようにして分散部数の決定を行っている。
【００８８】
すなわち、分散先プリンタの台数をｍ台、総印刷部数をｎ部として、ｍ台の分散先プリンタのうち、ｘ番目のプリンタに割り当てるべき分散部数をａxとすると、その分散部数ａxは式（１）に従って決定する。
【００８９】
【数１】
2005178347.tif 000003
【００９０】
なお、式（１）において、右辺２項目の"（...≦...）？１：０"は、カッコ内の不等式を満足する場合には、その項の値を１とし、不等式を満足しない場合には、その項の値を０とするものである。
【００９１】
従って、例えば、分散先プリンタの台数ｍが４台（ｍ＝４）、総印刷部数ｎが１０２部（ｎ＝１０２）の場合は、式（１）は式（２）のとおりとなる。
【００９２】
【数２】
2005178347.tif 000004
【００９３】
よって、４台の分散先プリンタへの分散部数ａxは、それぞれ、次のとおりとなる。
１番目のプリンタ：ａ1＝２５＋１＝２６部
２番目のプリンタ：ａ2＝２５＋１＝２６部
３番目のプリンタ：ａ3＝２５＋０＝２５部
４番目のプリンタ：ａ4＝２５＋０＝２５部
【００９４】
次に、分散処理部２５は、バッファ部３１に格納している印刷ジョブデータのうち、ＱＴ値のみを、各分散先プリンタ毎に、その分散先プリンタに割り当てた分散部数ａxの値に変更して、その印刷ジョブデータを各分散先プリンタにそれぞれ送信する（ステップＳ１１４）。従って、例えば、図１中に示した例では、各分散先プリンタに割り当てた分散部数は各々「２５部」であるので、印刷ジョブデータに記載されている"ＱＴ＝１００"を"ＱＴ＝２５"に変更して、その印刷ジョブデータを４台の分散先プリンタに送信することになる。また、分散処理部２５は、受信した印刷ジョブデータのバッファ部３１への格納を再開し、それ以降に受信し、バッファ部３１に一旦格納した印刷ジョブデータも、順次、各分散先プリンタにそれぞれ送信する（ステップＳ１１５）。
【００９５】
こうして、分散処理部２５は、受信した印刷ジョブを、ＱＴ値のみ変更して、無手順プロトコル解釈部２２Ｂ，ＴＣＰ／ＩＰ解釈部２１を介して、各分散先プリンタにそれぞれ送信することになる。このとき、無手順プロトコル解釈部２２Ｂは、印刷プロトコルである無手順プロトコルに従って、その印刷ジョブを含む通信データを送信する。また、ＴＣＰ／ＩＰ解釈部２１は、その通信データの送信先ＩＰアドレスとして、各分散先プリンタのＩＰアドレスをそれぞれ指定すると共に、送信先ポート番号としては、受信した際のポート番号「１９１００」ではなく、無手順プロトコルで通常割り当てるボート番号「９１００」を指定する。
【００９６】
例えば、図１中に示した例では、分散先プリンタとしてプリンタＰＲＴ１〜ＰＲＴ４が決定されているため、各々の分散先プリンタに送信される通信データＤＴ１〜ＤＴ４では、送信先ＩＰアドレス，送信先ポート番号，ＱＴ値は以下のように指定される。
【００９７】
プリンタＰＲＴ１への通信データＤＴ１→「ＩＰ１」，「９１００」，「２５部」
プリンタＰＲＴ２への通信データＤＴ２→「ＩＰ２」，「９１００」，「２５部」
プリンタＰＲＴ３への通信データＤＴ３→「ＩＰ３」，「９１００」，「２５部」
プリンタＰＲＴ２への通信データＤＴ４→「ＩＰ４」，「９１００」，「２５部」
【００９８】
分散先プリンタの１つであるプリンタＰＲＴ２では、図３に示すように、ＴＣＰ／ＩＰ解釈部５１が、通信データＤＴ２に含まれる送信先ＩＰアドレス「ＩＰ２」に従って、その通信データＤＴ２を受信し、さらに、その通信データＤＴ２に含まれる送信先ポート番号が「９１００」であるので、無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部５２は、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ５３に渡す。プリンタコントローラ５３は、印刷ジョブのデータに含まれるＱＴ値から印刷部数として「２５部」を読み取り、指定されているその部数だけ、プリンタエンジン５４に、印刷ジョブに従った印刷を実行させる。
【００９９】
他の分散先プリンタであるプリンタＰＲＴ３，ＰＲＴ４においても、同様にして、指定された印刷部数「２５部」だけ、印刷ジョブに従った印刷が実行される。
【０１００】
また、分散先プリンタである自己のプリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、送信した通信データＤＴ１を、その通信データＤＴ１に含まれる送信先ＩＰアドレス「ＩＰ１」に基づいて受信する。さらに、ＴＣＰ／ＩＰ解釈部２１は、その通信データＤＴ１に含まれる送信先ポート番号が「９１００」であるので、通常印刷の場合と同様に、「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、印刷ジョブのデータに含まれるＱＴ値から印刷部数として「２５部」を読み取り、指定されているその部数だけ、プリンタエンジン４１に、印刷ジョブに従った印刷を実行させる。
【０１０１】
以上のようにして、分散先プリンタであるプリンタＰＲＴ１〜ＰＲＴ４では、それぞれ、「２５部」ずつの印刷が実行されることになり、システム全体で、合計「１００部」の分散印刷が実行されることになる。
【０１０２】
さて、一方、図４に戻って、分散処理部２５は、前述したステップＳ１０６において、バッファ部３１に格納した印刷ジョブデータにＱＴ値が見つからなければ、次に、分散処理部２５は、格納している印刷ジョブデータにジョブ制御言語部分が見つかっており、かつ、そのジョブ制御言語部分の終端が見つかっていないかどうかを判定する（ステップＳ１１６）。
【０１０３】
その結果、格納している印刷ジョブデータにジョブ制御言語部分が見つかっていない場合は、印刷ジョブデータにジョブ制御言語部分自体がないものと判断でき、また、ジョブ制御言語部分は見つかっているが、ＱＴ値が見つかることなく、すでに、その終端が見つかっている場合は、ジョブ制御言語部分にＱＴ値がないものと判断できる。従って、これらの場合には、もはや、受信している印刷ジョブデータ内にＱＴ値を見つける可能性がないので、分散処理部２５は、次のステップＳ１１８に移り、自己のプリンタＰＲＴ１のみを分散先プリンタとして決定する（ステップＳ１１８）。すなわち、ＱＴ値がなく、総印刷部数が不明であるため、分散印刷を行うことは不可能であるため、自己のプリンタＰＲＴ１のみの通常の印刷に切り換えるのである。そして、分散処理部２５は、バッファ部３１に格納している印刷ジョブデータをそのまま、分散先プリンタとして決定した自己のプリンタＰＲＴ１に送信する（ステップＳ１２０）。その後、分散処理部２５は、それ以降に受信した印刷ジョブデータも分散先プリンタである自己のプリンタＰＲＴ１に送信する（ステップＳ１２２）。
【０１０４】
こうして、分散処理部２５は、受信した印刷ジョブを、無手順プロトコル解釈部２２Ｂ，ＴＣＰ／ＩＰ解釈部２１を介して、自己のプリンタＰＲＴ１に送信することになる。このとき、無手順プロトコル解釈部２２Ｂは、印刷プロトコルである無手順プロトコルに従って、その印刷ジョブを含む通信データを送信すると共に、ＴＣＰ／ＩＰ解釈部２１は、その通信データの送信先ＩＰアドレスとして、自己のプリンタの「ＩＰ１」を指定すると共に、送信先ポート番号としては、受信した際のポート番号「１９１００」ではなく、無手順プロトコルで通常割り当てるボート番号「９１００」を指定する。
【０１０５】
自己のプリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、送信した通信データを、その通信データＤＴ１に含まれる送信先ＩＰアドレス「ＩＰ２」に基づいて受信し、さらに、その通信データに含まれる送信先ポート番号が「９１００」であるので、「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、印刷ジョブのデータに含まれるべきＱＴ値がないため、１部だけ、プリンタエンジン４１に、印刷ジョブに従った印刷を実行させる。この結果、プリンタＰＲＴ１では、１部のみ印刷が実行されることになる。
【０１０６】
Ａ５．実施例の効果：
以上説明したように、本実施例においては、分散印刷制御機能を有するプリンタＰＲＴ１が、分散印刷を全て制御しているため、専用サーバを用いることなく、簡易なシステムで分散印刷を実現することが可能である。
【０１０７】
また、クライアントＣＬでは、分散印刷を実行するために、特別なソフトウェアをインストールすることなく、単に、プリンタドライバにおいて、ポート番号の設定を、無手順プロトコルで通常割り当てられている通常のポート番号「９１００」から特定のポート番号「１９１００」に変更するだけで、分散印刷を実現することができるため、ユーザの負担を大幅に軽減することができる。
【０１０８】
また、分散先プリンタでは、送信されてくる通信データは、ポート番号が無手順プロトコルで通常割り当てられているポート番号「９１００」となっているので、分散印刷であるかどうかに関知することなく、そのまま印刷を実行することができる。
【０１０９】
また、分散印刷制御機能を有するプリンタＰＲＴ１では、分散印刷制御実行のトリガとなる通信データの示す送信先ポート番号「１９１００」と、分散先プリンタに送信する通信データの示す送信先ポート番号「９１００」と、を変えているため、分散先プリンタに自己のプリンタＰＲＴ１が含まれていて、自己宛に印刷ジョブを含む通信データを送信した場合でも、その通信データの示すポート番号は「９１００」であって、分散印刷制御のトリガとはなり得ず、それ故、自己宛に分散した印刷ジョブを、さらに再分散，再々分散など、無限に分散させるようなことがない。同様に、同じネットワーク内に、分散印刷制御機能を有するカスタムネットワークボードが２枚以上存在する場合にも、それらの間で分散すべき印刷ジョブをピンポンすることがない。
【０１１０】
また、分散印刷制御機能を有するプリンタＰＲＴ１では、受信した印刷ジョブのうち、印刷部数情報であるＱＴ値のみを変更して、各分散先プリンタにそれぞれ送信するだけで、容易に分散印刷を行うことができるので、カスタムネットワークボードＣＮＢの有するＣＰＵ２０としては、高い処理能力を有するＣＰＵを用いなくて済み、製造コストを低減することができる。
【０１１１】
また、分散印刷制御機能を有するプリンタＰＲＴ１では、受信してバッファ部３１に格納した印刷ジョブに、ＱＴ値を見つけたら、ＱＴ値を変更して、直ちに、その印刷ジョブの各分散先プリンタへの送信を開始しているため、クライアントＣＬから送信された印刷ジョブの全てを受信してから、その印刷ジョブの各分散先プリンタへの送信を開始する場合に比較して、各分散先プリンタでの印刷開始を大幅に早めることができる。
【０１１２】
Ｂ．第２の実施例：
上記した第１の実施例においては、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際と、プリンタＰＲＴ１から分散先プリンタに印刷ジョブを送信する際において、それぞれ、印刷プロトコルとして同じプロトコル（すなわち、無手順プロトコル）を用いるが、ポート番号として異なるポート番号（すなわち、「９１００」と「１９１００」）を用いることにより、分散印刷を実現するようにしていたが、本実施例においては、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際と、プリンタＰＲＴ１から分散先プリンタに印刷ジョブを送信する際において、それぞれ、印刷プロトコルとして異なるプロトコルを用いることによって、分散印刷を実現する。
【０１１３】
Ｂ１．プリンタの構成：
図８は本発明の第２の実施例としてのプリンタＰＲＴ１の構成を主として示す説明図である。本実施例において、図８に示す構成が、第１の実施例における図３に示した構成と異なる点は、無手順プロトコル解釈部２２Ａに代えて、ＬＰＲ解釈部２６を用いた点（但し、無手順プロトコル解釈部２２Ｂはそのまま）と、それに応じて、クライアントＣＬでも、ＬＰＲ解釈部１４を設けた点である。それ以外の構成は、図３に示した構成と同じである。
【０１１４】
図８において、ＬＰＲ解釈部２６，１４は、それぞれ、印刷プロトコルであるＬＰＲ（Line PRinter daemon protocol）を解釈する。
【０１１５】
Ｂ２．通常印刷処理：
分散印刷処理を説明する前に、通常の印刷処理について簡単に説明する。なお、印刷ジョブを、クライアントＣＬからプリンタＰＲＴ１に送信し、プリンタＰＲＴ１のみで印刷を実行する場合を例として説明する。この場合、印刷ジョブは、図８において、点線で示す経路をたどって転送される。なお、クライアントＣＬにおけるプリンタドライバ（図示せず）において、印刷プロトコルの設定は、無手順プロトコルに設定されているものとする。
【０１１６】
ユーザがクライアントＣＬに印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブを、無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に送信する。このとき、無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１」を指定する。
【０１１７】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１」に従って、その通信データを受信する。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、印刷ジョブのデータに含まれるＱＴ値から印刷部数を読み取り、指定されている部数だけ、プリンタエンジン４１に印刷を実行させる。
【０１１８】
Ｂ３．分散印刷処理：
次に、分散印刷処理について説明する。分散印刷を行う際には、ユーザは、クライアントＣＬにおけるプリンタドライバにおいて、印刷プロトコルの設定を、無手順プロトコルからＬＰＲに変更する。すなわち、本実施例では、ここでの印刷プロトコルの設定を切り換えることにより、無手順プロトコルでは通常印刷を、ＬＰＲでは分散印刷を、それぞれ選択することになる。
【０１１９】
そこで、ユーザがクライアントＣＬに、印刷部数「１００部」として印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷部数を示すＱＴ値を「１００部」とした印刷ジョブを、ＬＰＲ解釈部１４，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に送信する。このとき、ＬＰＲ解釈部１４は、印刷プロトコルであるＬＰＲに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１」を指定する。
【０１２０】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１」に従って、その通信データを受信する。ＬＰＲ解釈部２６は、ＬＰＲに従って、印刷ジョブを含む通信データを受け取り、そのうちの印刷ジョブのデータを分散処理部２５に渡す。
【０１２１】
こうして、本実施例において、分散処理部２５に印刷ジョブデータが渡されてから、その後、分散先プリンタと分散部数とが決定されるまでの処理については、第１の実施例と同様であるので、それらについての説明は省略する。なお、ここで、例えば、分散先プリンタとしてプリンタＰＲＴ１〜ＰＲＴ４が、また、各々への分散部数として「２５部」が、それぞれ、決定されたものとする。
【０１２２】
その後、分散処理部２５は、受信した印刷ジョブのＱＴ値のみを変更し、そして、その印刷ジョブを、ＬＰＲ解釈部２６ではなく、無手順プロトコル解釈部２２Ｂを介し、さらに，ＴＣＰ／ＩＰ解釈部２１を介して、各分散先プリンタにそれぞれ送信する。このとき、無手順プロトコル解釈部２２Ｂは、印刷プロトコルである無手順プロトコルに従って、その印刷ジョブを含む通信データを送信する。また、ＴＣＰ／ＩＰ解釈部２１は、その通信データの送信先ＩＰアドレスとして、各分散先プリンタのＩＰアドレスをそれぞれ指定する。
【０１２３】
分散先プリンタの１つであるプリンタＰＲＴ２では、図８に示すように、ＴＣＰ／ＩＰ解釈部５１が、通信データＤＴ２に含まれる送信先ＩＰアドレス「ＩＰ２」に従って、その通信データＤＴ２を受信し、無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部５２は、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ５３に渡す。プリンタコントローラ５３は、印刷ジョブのデータに含まれるＱＴ値から印刷部数として「２５部」を読み取り、指定されているその部数だけ、プリンタエンジン５４に、印刷ジョブに従った印刷を実行させる。
【０１２４】
他の分散先プリンタであるプリンタＰＲＴ３，ＰＲＴ４においても、同様にして、指定された印刷部数「２５部」だけ、印刷ジョブに従った印刷が実行される。
【０１２５】
また、分散先プリンタである自己のプリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１」に基づいて、自己宛に送信した通信データを受信する。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受け取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、印刷ジョブのデータに含まれるＱＴ値から印刷部数として「２５部」を読み取り、指定されているその部数だけ、プリンタエンジン４１に、印刷ジョブに従った印刷を実行させる。
【０１２６】
以上のようにして、分散先プリンタであるプリンタＰＲＴ１〜ＰＲＴ４では、それぞれ、「２５部」ずつの印刷が実行されることになり、システム全体で、合計「１００部」の分散印刷が実行されることになる。
【０１２７】
Ｂ４．実施例の効果：
以上説明したように、本実施例においては、第１の実施例と同様に、分散印刷制御機能を有するプリンタＰＲＴ１が、分散印刷を全て制御しているため、専用サーバを用いることなく、簡易なシステムで分散印刷を実現することが可能である。
【０１２８】
また、クライアントＣＬでは、分散印刷を実行するために、特別なソフトウェアをインストールすることなく、単に、プリンタドライバにおいて、印刷プロトコルの設定を、ＬＰＲに変更するだけで、分散印刷を実現することができるため、ユーザの負担を大幅に軽減することができる。
【０１２９】
また、分散印刷制御機能を有するプリンタＰＲＴ１では、分散印刷制御実行のトリガとなる印刷プロトコル（すなわち、ＬＰＲ）と、分散先プリンタに送信する際の印刷プロトコル（すなわち、無手順プロトコル）と、で種類を変えているため、分散先プリンタに自己のプリンタＰＲＴ１が含まれていて、自己宛に印刷ジョブを送信した場合でも、その際の印刷プロトコルは無手順プロトコルであって、分散印刷制御のトリガとはなり得ず、それ故、自己宛に分散した印刷ジョブを、さらに再分散，再々分散など、無限に分散させるようなことがない。
【０１３０】
Ｃ．第３の実施例：
上記した第１及び第２の実施例においては、部数決定部２４が、各分散先プリンタにできる限り均等に割り当てられるように、分散部数を決定するようにしていたが、本実施例においては、部数決定部２４が、各分散先プリンタに対し、トナー残量を問い合わせ、その応答に応じて、各分散先プリンタに割り当てるべき分散部数を決定するようにしている。
【０１３１】
なお、本実施例において、プリンタの構成や通常印刷処理については、第１または第２の実施例とほぼ同様であるので、それらについての説明は省略する。
【０１３２】
Ｃ１．分散印刷処理：
それでは、本実施例における分散印刷処理について説明する。かかる分散印刷処理についても、大部分の処理は、第１または第２の実施例と同様であり、従って、それら実施例と異なる部分の処理について、以下、詳細に説明する。
【０１３３】
例えば、第１の実施例において、図４に示す処理手順では、ステップＳ１１０において、分散先決定部２３が、ＬＡＮに接続された複数のプリンタの中から、分散先となるべきプリンタを検索して、分散先プリンタとして決定した後、ステップＳ１１２において、前述したとおり、部数決定部２４が、分散先プリンタの台数と総印刷部数とに基づいて、各分散先プリンタにできる限り均等に割り当てられるよう、分散部数を決定していた。これに対し、本実施例では、ステップＳ１１２の処理に代えて、部数決定部２４が、図９に示す分散部数決定処理を実行する。
【０１３４】
図９は本発明の第３の実施例としてのプリンタＰＲＴ１における分散部数決定処理ルーチンの処理手順を示すフローチャートである。この処理ルーチンが開始されると、部数決定部２４は、まず、分散先指定ファイル格納部３２に、分散先指定ファイルが格納されているか否かを検出する（ステップＳ３０２）。そして、分散先指定ファイルが格納されていれば、部数決定部２４は、分散先指定ファイル格納部３２から分散先指定ファイルを読み出して、その分散先指定ファイルに、分散部数の比率が記載されているか否かを検出する（ステップＳ３０４）。分散先指定ファイルは、前述したとおり、ＬＡＮに接続されている複数のプリンタの中で、分散先として使用したいプリンタを、前もって、指定するものである。これに加えて、本実施例では、それら分散先として使用したい各プリンタに対し、それぞれに割り当てたい分散部数の比率も、分散先指定ファイルで、前もって、指定することができるようにしている。
【０１３５】
図１０は分散先指定ファイルの内容を示す説明図である。図１０に示すように、分散先指定ファイルには、分散先として使用したいプリンタのＩＰアドレスと、そのプリンタに割り当てたい分散部数の比率と、がペアとなって、列挙して記載されている。すなわち、この分散先指定ファイルでは、分散先として使用したいプリンタとして、ＩＰアドレス"163.141.1.223"のプリンタとＩＰアドレス"163.141.1.222"のプリンタとが指定されており、さらに、前者のプリンタに割り当てたい分散部数と後者のプリンタに割り当てたい分散部数との比率として、２：１が指定されている。
【０１３６】
なお、このような分散先指定ファイルを分散先指定ファイル格納部３２へ格納する方法については、図７に示した分散先指定ファイルと同様である。また、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタＰＲＴ１を使用し、分散部数の比率も指定したい場合には、自己プリンタＰＲＴ１のＩＰアドレス「ＩＰ１」と、自己プリンタＰＲＴ１に割り当てたい分散部数の比率を、分散先指定ファイルに記載しておく必要がある。
【０１３７】
さて、分散先指定ファイルに分散部数の比率が記載されている場合には、部数決定部２４は、図４におけるステップＳ１０８で取得した総分散部数と、各分散先プリンタについて記載されていた分散部数の比率とに基づいて、各分散先プリンタに割り当てるべき分散部数を決定する（ステップＳ３０６）。このとき、それら分散部数の総和が総印刷部数の値と等しくなるように決定する。
【０１３８】
従って、例えば、図４におけるステップＳ１１０において、図１０に示す分散先指定ファイルで指定された２台のプリンタが、分散先プリンタとして決定された場合、ステップＳ１０８で取得した総印刷部数が「９０部」であるとすると、前述したとおり、ＩＰアドレス"163.141.1.223"のプリンタに割り当てたい分散部数とＩＰアドレス"163.141.1.222"のプリンタに割り当てたい分散部数との比率は、２：１であるので、部数決定部２４は、前者のプリンタに割り当てるべき分散部数を「６０部」と決定し、後者のプリンタに割り当てるべき分散部数を「３０部」と決定する。
【０１３９】
なお、総印刷部数の値や分散部数の比率によっては、その比率で割り切れずに余りが生じる場合もある。そのような場合には、その余りを適当な分散先プリンタに割り当て、各分散先プリンタに対する分散部数の総和が総印刷部数と等しくなるよう、分散部数の決定を行うようにする。
【０１４０】
一方、分散先指定ファイル格納部３２に分散先指定ファイルが格納されていない場合や、格納されていても、分散先指定ファイルに分散比率が記載されていない場合には、部数決定部２４は、ＳＮＭＰなどを利用して、ＬＡＮを介して、図４におけるステップＳ１１０の処理で決定された分散先プリンタに対し、消耗品であるトナーの残量を問い合わせ、その応答を取得する（ステップＳ３０８）。一般に、プリンタはトナー残量などを監視する機能を有しているため、部数決定部２４による問い合わせに対して、分散先プリンタは、自己のトナー残量を直ちに応答することができる。
【０１４１】
次に、部数決定部２４は、図４におけるステップＳ１０８で取得した総分散部数と、各分散先プリンタから取得したトナー残量とに基づいて、各分散先プリンタに割り当てるべき分散部数を決定する（ステップＳ３１０）。このとき、それら分散部数の総和が総印刷部数の値と等しくなるように決定する。
【０１４２】
例えば、ステップＳ１１０において、分散先プリンタとして、図１に示すプリンタＰＲＴ２，ＰＲＴ３がそれぞれ決定され、その後、ステップＳ３０８において、部数決定部２４が、それら分散先プリンタに対しトナー残量を問い合わせた結果、プリンタＰＲＴ２のトナー残量は「３０％」であり、プリンタＰＲＴ３のトナー残量は、プリンタＰＲＴ２の倍の「６０％」であるものとする。
【０１４３】
そこで、ステップＳ１０８で取得した総印刷部数が「１２０部」であるとすると、部数決定部２４は、プリンタＰＲＴ２に割り当てるべき分散部数を「４０部」と決定し、プリンタＰＲＴ３に割り当てるべき分散部数を「８０部」と決定する。すなわち、部数決定部２４は、トナー残量の少ないプリンタに対しては分散部数を少なくし、トナー残量の多いプリンタに対しては分散部数を多くするよう、各分散先プリンタのトナー残量に応じて、各分散先プリンタに割り当てるべき分散部数を決定する。
【０１４４】
これを一般化すると、次のごとくになる。すなわち、分散先プリンタの台数をｍ台、総印刷部数をｎ部、ｍ台の分散先プリンタのうちのｘ番目のプリンタのトナー残量をｔx、ｘ番目のプリンタに割り当てるべき分散部数をａxとした場合、部数決定部２４は、その分散部数ａxを式（３）に従って決定する。
【０１４５】
【数３】
2005178347.tif 000005
【０１４６】
なお、総印刷部数やトナー残量の値によっては、式（３）の計算において、割り切れずに余りが生じる場合もある。そのような場合には、前述の分散部数の比率の場合と同様、その余りを適当な分散先プリンタに割り当て、各分散先プリンタに対する分散部数の総和が総印刷部数ｎと等しくなるよう、分散部数の決定を行うようにする。
【０１４７】
以上のようにして、部数決定部２４によって、各分散先プリンタに割り当てるべき分散部数がそれぞれ決定したら、図４におけるステップＳ１１４において、分散処理部２５が、バッファ部３１に格納している印刷ジョブデータのうち、ＱＴ値のみを、各分散先プリンタ毎に、その分散先プリンタに割り当てた分散部数の値に変更して、その印刷ジョブデータを各分散先プリンタにそれぞれ送信する。
【０１４８】
その他の処理については、前述したとおり、第１または第２の実施例と同様であるので、それらについての説明は省略する。
【０１４９】
Ｃ２．実施例の効果：
以上説明したように、本実施例においては、トナー残量の少ないプリンタに対しては分散部数を少なくし、トナー残量の多いプリンタに対しては分散部数を多くするよう、各分散先プリンタのトナー残量に応じて、各分散先プリンタに割り当てるべき分散部数を決定しているため、分散印刷を開始した後に、分散先プリンタにおいて、トナー切れにより印刷が停止するという可能性が少なくなり、各分散先プリンタを効率よく利用することができる。
【０１５０】
Ｄ．第４の実施例：
上記した第３の実施例においては、部数決定部２４が、各分散先プリンタに対し、トナー残量を問い合わせ、その応答に応じて分散部数を決定するようにしていたが、本実施例においては、部数決定部２４が、各分散先プリンタに対し、トナー残量ではなく、用紙収納トレイにおける用紙の有無を問い合わせ、その応答に応じて、各分散先プリンタに割り当てるべき分散部数を決定するようにしている。
【０１５１】
なお、本実施例においても、プリンタの構成や通常印刷処理については、第１または第２の実施例とほぼ同様であるので、それらについての説明は省略する。
【０１５２】
Ｄ１．分散印刷処理：
それでは、本実施例における分散印刷処理について説明する。かかる分散印刷処理についても、大部分の処理は、第１または第２の実施例と同様であり、従って、それら実施例と異なる部分の処理について、以下、詳細に説明する。
【０１５３】
本実施例においては、図４におけるステップＳ１１０において、分散先決定部２３が、ＬＡＮに接続された複数のプリンタの中から、分散先となるべきプリンタを検索して、分散先プリンタとして決定した後、ステップＳ１１２の処理に代えて、部数決定部２４が、図１１に示す分散部数決定処理を実行する。
【０１５４】
図１１は本発明の第４の実施例としてのプリンタＰＲＴ１における分散部数決定処理ルーチンの処理手順を示すフローチャートである。なお、この処理ルーチンのうち、ステップＳ４０２，Ｓ４０４，Ｓ４０６の処理については、図９におけるステップＳ２０２，Ｓ２０４，Ｓ２０６の処理と同様であるので、それらについての説明は省略する。
【０１５５】
そこで、ステップＳ４０２において分散先指定ファイル格納部３２に分散先指定ファイルが格納されていない場合や、ステップＳ４０４において分散先指定ファイルに分散比率が記載されていない場合には、部数決定部２４は、まず、図４におけるステップＳ１０４においてバッファ部３１に格納した印刷ジョブデータから、ユーザによって設定された印刷時の用紙サイズを取得する（ステップＳ４０８）。このような用紙サイズは、ＱＴ値と同様に、印刷ジョブデータにおけるジョブ制御言語部分に記載されている。
【０１５６】
次に、部数決定部２４は、ＳＮＭＰなどを利用して、ＬＡＮを介して、図４におけるステップＳ１１０の処理で決定された分散先プリンタに対し、それらが有する用紙収納トレイの数を問い合わせ、その応答を取得し、さらに、その応答に応じて、それら用紙収納トレイに収納される用紙のサイズと、それら用紙収納トレイに現在用紙が収納されているか否かを問い合わせ、その応答を取得する（ステップＳ４１０）。一般に、プリンタは用収納トレイに収納される用紙のサイズと用紙の有無などを監視する機能を有しているため、部数決定部２４による上記問い合わせに対して、分散先プリンタは、自己の用紙収納トレイの用紙サイズと用紙の有無を直ちに応答することができる。
【０１５７】
例えば、図４におけるステップＳ１１０において、分散先プリンタとして、図１に示すプリンタＰＲＴ２，ＰＲＴ３がそれぞれ決定され、それらプリンタにおける用紙収納トレイにおける用紙の収納状態が図１２に示すごとくであるとする。
【０１５８】
図１２は分散先プリンタの備える用紙収納トレイを模式的に示した説明図である。図１２に示すように、プリンタＰＲＴ２は用紙収納トレイ２ａ，２ｂ，２ｃを備えており、プリンタＰＲＴ３は用紙収納トレイ３ａ，３ｂを備えているため、分散先決定部２３による最初の問い合わせ（用紙収納トレイの数）に対し、プリンタＰＲＴ２は「３」、ＰＲＴ２は「２」と応答する。そして、プリンタＰＲＴ２では、それら用紙収納トレイに収納される用紙のサイズは、用紙収納トレイ２ａが「Ａ３」，用紙収納トレイ２ｂ，２ｃが「Ａ４」であり、それら用紙収納トレイにはいずれも現在用紙が収納されており、また、プリンタＰＲＴ３では、用紙収納トレイ３ａが「Ａ３」，用紙収納トレイ３ｂが「Ａ４」であり、それら用紙収納トレイにはいずれも現在用紙が収納されているので、分散先決定部２３による次の問い合わせ（用紙収納トレイの用紙サイズと用紙の有無）に対し、プリンタＰＲＴ２，ＰＲＴ３は、それぞれ、その状態を応答する。
【０１５９】
次に、部数決定部２４は、各分散先プリンタ毎に、その分散先プリンタに用意されていると想定される利用可能な用紙の最大枚数を算出する（ステップＳ４１２）。具体的には、例えば、ステップＳ４０８で取得した用紙サイズ（すなわち、ユーザにより設定された用紙サイズ）が「Ａ４」であり、分散先プリンタＰＲＴ２，ＰＲＴ３の用紙収納トレイにおける用紙の収納状態が図１２に示すごとくである場合、部数決定部２４は、これらプリンタＰＲＴ２，ＰＲＴ３からの応答結果に基づき、用紙サイズが「Ａ４」の用紙収納トレイのうち、現在用紙が収納されている用紙収納トレイを特定し、それら用紙収納トレイにおける用紙の収納可能枚数を積算することにより、そのプリンタについて、用意されていると想定される利用可能な用紙の最大枚数を算出する。すなわち、プリンタＰＲＴ２については、用紙サイズが「Ａ４」の用紙収納トレイは、用紙収納トレイ２ｂ，２ｃであり、いずれも現在用紙が収納されている。それらの用紙収納トレイ２ｂ，２ｃにおける用紙の収納可能枚数はそれぞれ「５００枚」であるので、それらの和から、プリンタＰＲＴ２において用意されていると想定される利用可能な用紙の最大枚数は、「１０００枚」となる。一方、プリンタＰＲＴ３については、用紙サイズが「Ａ４」の用紙収納トレイは、用紙収納トレイ３ｂのみであり、そこには現在用紙が収納されている。その用紙収納トレイ３ｂにおける用紙の収納可能枚数も「５００枚」であるので、プリンタＰＲＴ３において用意されていると想定される利用可能な用紙の最大枚数は、「５００枚」となる。
【０１６０】
本実施例において、部数決定部２４が各分散先プリンタから取得する情報は、各用紙収納トレイに実際に収納されている用紙の枚数ではなく、各用紙収納トレイに現在用紙が収納されているか否かの情報であるので、部数決定部２４が、例え、用紙収納トレイに現在用紙が収納されているという情報を受け取ったとしても、その用紙収納トレイには、用紙が収容可能枚数一杯まで収納されているのか、１枚しか収納されていないのかは、部数決定部２４にとって、不明である。従って、本実施例においては、各用紙収納トレイに、それぞれ、収容可能枚数一杯まで用紙が収納されていると想定して、分散部数を決定するようにしている。よって、或る分散先プリンタにおいて用意されていると想定される利用可能な用紙の最大枚数とは、そのプリンタにおいて、ユーザにより設定された用紙サイズの用紙を収納している用紙収納トレイについて、それぞれ、収容可能枚数一杯まで用紙が収納されていると想定した場合における、収納枚数の合計となる。
【０１６１】
次に、部数決定部２４は、図４におけるステップＳ１０８で取得した総分散部数と、各分散先プリンタについて算出した用紙の最大枚数とに基づいて、各分散先プリンタに割り当てるべき分散部数を決定する（ステップＳ４１４）。このとき、それら分散部数の総和が総印刷部数の値と等しくなるように決定する。
【０１６２】
例えば、ステップＳ１０８で取得した総印刷部数が「１８０部」であるとすると、上記した例では、プリンタＰＲＴ２における用紙の最大枚数は「１０００枚」であり、プリンタＰＲＴ３における用紙の最大枚数は、プリンタＰＲＴ２の１／２の「５００枚」であるので、部数決定部２４は、プリンタＰＲＴ２に割り当てるべき分散部数を「１２０部」と決定し、プリンタＰＲＴ３に割り当てるべき分散部数を「６０部」と決定する。すなわち、分散先決定部２３は、用紙の最大枚数の少ないプリンタに対しては分散部数を少なくし、用紙の最大枚数の多いプリンタに対しては分散部数を多くするよう、各分散先プリンタにおける用紙の最大枚数に応じて、各分散先プリンタに割り当てるべき分散部数を決定する。
【０１６３】
これを一般化すると、次のごとくになる。すなわち、分散先プリンタの台数をｍ台、総印刷部数をｎ部、ｍ台の分散先プリンタのうちのｘ番目のプリンタにおける用紙の最大枚数をｐx、ｘ番目のプリンタに割り当てるべき分散部数をａxとした場合、部数決定部２４は、その分散部数ａxを式（４）に従って決定する。
【０１６４】
【数４】
2005178347.tif 000006
【０１６５】
なお、総印刷部数や用紙の最大枚数によっては、式（４）の計算において、割り切れずに余りが生じる場合もある。そのような場合には、前述のトナー残量の場合と同様、その余りを適当な分散先プリンタに割り当て、各分散先プリンタに対する分散部数の総和が総印刷部数と等しくなるよう、分散部数の決定を行うようにする。
【０１６６】
以上のようにして、部数決定部２４によって、各分散先プリンタに割り当てるべき分散部数がそれぞれ決定したら、図４におけるステップＳ１１４において、分散処理部２５が、バッファ部３１に格納している印刷ジョブデータのうち、ＱＴ値のみを、各分散先プリンタ毎に、その分散先プリンタに割り当てた分散部数の値に変更して、その印刷ジョブデータを各分散先プリンタにそれぞれ送信する。
【０１６７】
その他の処理については、前述したとおり、第１または第２の実施例と同様であるので、それらについての説明は省略する。
【０１６８】
Ｄ２．実施例の効果：
以上説明したように、本実施例においては、用意されていると想定される用紙の最大枚数の少ないプリンタに対しては分散部数を少なくし、用紙の最大枚数の多いプリンタに対しては分散部数を多くするよう、各分散先プリンタにおける用紙の最大枚数に応じて、各分散先プリンタに割り当てるべき分散部数を決定しているため、分散印刷を開始した後に、分散先プリンタにおいて、用紙切れにより印刷が停止するという可能性が少なくなり、各分散先プリンタを効率よく利用することができる。
【０１６９】
Ｅ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【０１７０】
上記した第１の実施例では、印刷プロトコルとして無手順プロトコルを用いたが、ポート番号の変更が可能であれば、ＬＰＲ，ＩＰＰ（Internet Printing Protocol），ＦＴＰ（File Transfer Protocol），ＳＭＢ（Server Message Block），ＡｐｐｌｅＴａｌｋなど、別の印刷プロトコルを用いるようにしてもよい。
【０１７１】
上記した第２の実施例では、印刷プロトコルとして、ＬＰＲと無手順プロトコルの組み合わせで用いるようにしたが、互いに異なっていれば、別の印刷プロトコル同士の組み合わせで用いるようしてもよい。
【０１７２】
上記した第４の実施例では、部数決定部２４は、各分散先プリンタに対し、各用紙収納トレイに収納される用紙のサイズと、それら用紙収納トレイに現在用紙が収納されているか否かを問い合わせ、その応答結果に応じて、各分散先プリンタに割り当てるべき分散部数を決定した。しかし、各分散先プリンタが、例えば、各用紙収納トレイに現在収納されている用紙の枚数を検出する機能を有している場合には、部数決定部２４が、各分散先プリンタに対し、各用紙収納トレイにおける現在の用紙枚数を問い合わせ、その応答結果に応じて、各分散先プリンタに割り当てるべき分散部数を決定するようにしてもよい。その場合には、各分散先プリンタ毎に、実際に用意されている利用可能な用紙の枚数が事前に把握できるため、分散印刷を行った際に、いずれの分散先プリンタにおいても、用紙切れを起こさないように、各分散先プリンタに分散部数を割り当てることもできる。
【０１７３】
上記した第３または第４の実施例では、部数決定部２４が、各分散先プリンタに対し、トナー残量や、用紙収納トレイにおける用紙の有無などを問い合わせて、その応答結果に応じて、各分散先プリンタに割り当てるべき分散部数を決定するようにしていたが、本発明はこれに限定されるものではない。例えば、プリンタの消耗品として、トナーや用紙の他に、回転ドラムなどもあるため、各分散先プリンタに対し、回転ドラムの残寿命を問い合わせ、その応答結果に応じて、各分散先プリンタに対する分散部数を決定するようにしてもよい。また、分散先プリンタがレーザープリンタではなく、インクジェットプリンタ，昇華型プリンタ，ドットインパクトプリンタ，熱転写型プリンタなどの場合には、トナー残量に代えて、インク残量や、インクリボン残量などを問い合わせ、その応答結果に応じて分散部数を決定するようにしてもよい。さらに、これら消耗品の残量や残寿命に代えて、消耗品の使用量や使用頻度や使用時間を問い合わせ、その応答結果に応じて分散部数を決定するようにしてもよい。
【０１７４】
あるいは、これらプリンタの消耗品に関するものではなく、プリンタの性能に応じて、各分散先プリンタに対する分散部数を決定するようにしてもよい。例えば、各分散先プリンタに対して、その処理速度を問い合わせ、その応答結果に応じて、処理速度が遅いプリンタに対しては分散部数を少なくし、処理速度が速いプリンタに対しては分散部数を多くするよう、各分散先プリンタに割り当てるべき分散部数を決定するようにしてもよい。このように決定した場合には、システム全体として、分散印刷に要する時間を大幅に短縮することができる。
【０１７５】
また、プリンタの性能の場合には、それらは予めわかっており、その後も変化することがないので、分散先プリンタについて、その性能に関する情報をプリンタＰＲＴ１に予め持たせておき、必要に応じてそれを参照して、各分散先プリンタに対する分散部数を決定するようにしてもよい。その場合、プリンタＰＲＴ１は各分散先プリンタに対し問い合わせを行う必要がない。
【０１７６】
また、ある程度まとまった部数以上を分散させたり、あらかじめ登録された情報に基づいてプリンタの物理的な距離を考慮したり、プリンタのネットワークトポロジー的な距離を考慮したり、さらに、分散先指定ファイルに指定された順番を考慮したり、分散先指定ファイルの中に部数の分散比率を指定してそれを考慮したりしてもよい。
【０１７７】
上記した実施例では、ＬＡＮに接続されている各機器にはＩＰアドレスが固定で割り振られていたが、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバなどによって、動的にＩＰアドレスを割り振るようにしてもよい。但し、上記した第１の実施例のように、ポート番号「１９１００」とポート番号「９１００」を使い分けてＩＰアドレスでプリンタを特定する場合は、分散元プリンタ（プリンタＰＲＴ１）は予めＩＰアドレスが固定で割り振っておいたほうが好ましい。分散先指定ファイルを使う場合は、分散先プリンタも予めＩＰアドレスを振っておいたほうが好ましい。また、分散先指定ファイルを使わない場合は、分散先プリンタは予めＩＰアドレスを振っておかず、ＤＨＣＰによるＩＰアドレス割り当てにしておいてもよい。
【０１７８】
このように、ＩＰアドレスでプリンタを特定するようなプロトコルの場合は、分散元アドレスは予め固定でＩＰアドレスを割り振っておくことが好ましいが、ＳＭＢやＡｐｐｌｅＴａｌｋのように論理的なプリンタ名でプリンタを特定する場合はその限りでない。
ＳＭＢやＡｐｐｌｅＴａｌｋのような場合は、分散元、分散先ともに、論理的なプリンタ名をつけておき、分散先指定ファイルにも、それらのプリンタ名を指定しておくことで、ＩＰアドレスを使うことなく、同様の効果を発揮させることができる。
【０１７９】
上記した実施例では、分散印刷制御装置を、プリンタＰＲＴ１に内蔵されたカスタムネットワークボードＣＮＢとして構成するようにしたが、本発明はこれに限定されるものではなく、分散印刷制御装置をプリンタＰＲＴ１と別体とし、ＵＳＢ接続，ＩＥＥＥ１３９４バス接続，パラレル接続，シリアル接続などの有線接続や、ブルートゥース接続，無線ＬＡＮ接続，赤外線接続などの無線接続で接続するようにしてもよい。
【０１８０】
上記した実施例では、分散先指定ファイルでは、分散先として使用したいプリンタのＩＰアドレスをそれぞれ指定するようにしていたが、本発明はこれに限定されるものではなく、例えば、分散先プリンタの検索を行いたいＩＰアドレスの範囲を指定するようにしてもよい。
【０１８１】
上記した実施例では、送信先の指定や、分散先プリンタの検索や、分散先指定ファイルにおける分散先プリンタの指定などにおいて、ＩＰアドレスを用いるようにしたが、代わりに、ＭＡＣアドレスや、その他、機器を一意的に特定することができるＩＤを用いるようにしてもよい。
【０１８２】
上記した実施例では、分散先プリンタを決定する際、図６のステップＳ２１１において、分散先プリンタの候補として１台のプリンタも選択されていない場合、ステップＳ２１４において、直ちに、自己のプリンタＰＲＴ１を候補として選択するようにした。しかしながら、ＬＡＮ上に、自己のプリンタＰＲＴ１と同一機種のプリンタが存在しても、用紙切れなどでオフラインの状態にあったり、あるいは、電源オフの状態にあったりして、それを理由に、分散先プリンタの候補として１台のプリンタも選択されていない可能性もあるので、分散先決定部２３が、ステップＳ２１１において、１台のプリンタも選択されていないと判断した場合に、一定時間待機し、その後、ステップ２０２に戻って、以降の処理を再度行うようにしてもよい。この場合、一定時間の待機中に、上記プリンタが、用紙が補充されて、オンライン状態になったり、電源が投入され、電源オンの状態になったりして、印刷実行可能な状態になれば、分散印刷の実行は可能となる。
【０１８３】
上記した実施例では、カスタムネットワークボードＣＮＢによる、自己プリンタＰＲＴ１の機種名取得は、プリンタＰＲＴ１の電源投入時に行っていたが、本発明はこれに限定されるものではなく、少なくとも、分散先プリンタを決定する際して、図６のステップＳ２０５の処理（自己プリンタＰＲＴ１と同一機種のプリンタの選択）よりも前に行っていればよい。従って、例えば、このステップＳ２０５の直前で、自己プリンタＰＲＴ１の機種名取得の処理を行うようにしてもよい。
【図面の簡単な説明】
【０１８４】
【図１】本発明の第１の実施例としての印刷システムの構成を示す説明図である。
【図２】印刷ジョブを含む通信データの構成を概念的に示す説明図である。
【図３】図１におけるプリンタＰＲＴ１の構成を主として示す説明図である。
【図４】プリンタＰＲＴ１における主要機能ブロックの処理手順を示すフローチャートである。
【図５】印刷ジョブのデータをエディタで開いて示した説明図である。
【図６】分散先プリンタの検索・決定処理ルーチンの処理手順を示すフローチャートである。
【図７】分散先指定ファイルの内容を示す説明図である。
【図８】本発明の第２の実施例としての印刷システムにおいて、プリンタＰＲＴ１の構成を主として示す説明図である。
【図９】本発明の第３の実施例としてのプリンタＰＲＴ１における分散部数決定処理ルーチンの処理手順を示すフローチャートである。
【図１０】分散先指定ファイルの内容を示す説明図である。
【図１１】本発明の第４の実施例としてのプリンタＰＲＴ１における分散部数決定処理ルーチンの処理手順を示すフローチャートである。
【図１２】分散先プリンタの備える用紙収納トレイを模式的に示した説明図である。
【符号の説明】
【０１８５】
１１...ＴＣＰ／ＩＰ解釈部
１２...無手順プロトコル解釈部
１３...アプリケーション
１４...ＬＰＲ解釈部
２０...ＣＰＵ
２１...ＴＣＰ／ＩＰ解釈部
２２Ａ，２２Ｂ...無手順プロトコル解釈部
２３...分散先決定部
２４...部数決定部
２５...分散処理部
２６...ＬＰＲ解釈部
３０...メモリ
３１...バッファ部
３２...分散先指定ファイル格納部
４１...プリンタエンジン
４２...プリンタコントローラ
５１...ＴＣＰ／ＩＰ解釈部
５２...無手順プロトコル解釈部
５３...プリンタコントローラ
５４...プリンタエンジン
ＣＬ...クライアント
ＣＮＢ...カスタムネットワークボード
ＰＲＢ...プリンタ本体
ＰＲＴ１〜ＰＲＴ４...プリンタ
【図１】
2005178347.tif 000007
【図２】
2005178347.tif 000008
【図３】
2005178347.tif 000009
【図４】
2005178347.tif 000010
【図５】
2005178347.tif 000011
【図６】
2005178347.tif 000012
【図７】
2005178347.tif 000013
【図８】
2005178347.tif 000014
【図９】
2005178347.tif 000015
【図１０】
2005178347.tif 000016
【図１１】
2005178347.tif 000017
【図１２】
2005178347.tif 000018