(57)【要約】      （修正有）【課題】ホストやサーバを介さずに、代行印刷や分散印刷が可能な印刷システムを提供する。【解決手段】外部メモリー３を接続可能なプリンタ装置であって、印刷ジョブデータを受信する入出力Ｉ／Ｆ１１と、受信した印刷ジョブデータをプリンタ装置に接続された外部メモリー３に記憶させる代行／分散印刷制御部１３１とを備え、代行／分散印刷制御部１３１は、他のプリンタ装置での印刷ジョブデータの処理方法を記述した指示データを、受信した印刷データと関連付けて外部メモリー３に記憶する。【選択図】図１
2010244112.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリーと接続可能なジョブ処理装置であって、
ジョブデータを受信する受信手段と、
受信したジョブデータを前記ジョブ処理装置に接続された外部メモリーに記憶させる記憶制御手段と、を備え、
前記記憶制御手段は、
前記ジョブ処理装置とは異なる他のジョブ処理装置における、前記受信したジョブデータの処理方法を記述した指示データを、前記受信したジョブデータと関連付けて前記外部メモリーに記憶させる、
ジョブ処理装置。
【請求項２】
前記受信したジョブデータの処理が、複数の単位処理から構成されており、
前記記憶制御手段は、前記単位処理が完了するごとに、前記単位処理が完了したことを示す完了データを、前記受信したジョブデータに関する指示データとして前記外部メモリーに記憶させる、
請求項１記載のジョブ処理装置。
【請求項３】
前記受信したジョブデータの処理が、複数の単位処理から構成されており、
分散処理の指示を受け付ける受け付け手段、を更に備え、
前記記憶制御手段は、分散処理の指示を受け付けた場合、前記複数の単位処理を、前記ジョブ処理装置に行わせる単位処理と、前記他のジョブ処理装置に行わせる単位処理とに分割し、前記他のジョブ処理装置に行わせる単位処理を示した処理対象表示データを、前記受信したジョブデータに関する前記指示データとして前記外部メモリーに記憶させる、
請求項１又は２記載のジョブ処理装置。
【請求項４】
前記指示データと、前記指示データに関連付けられているジョブデータとを、前記ジョブ処理装置に接続された外部メモリーから読み出す読み出し手段と、
前記読み出された指示データに基づいて、前記読み出されたジョブデータを処理するジョブ処理手段と、を更に備える、
請求項１〜３のうちのいずれかに記載のジョブ処理装置。
【請求項５】
外部メモリーと接続可能なジョブ処理装置であって、
前記外部メモリーに記憶されているジョブデータの処理方法を記述した指示データと、前記指示データに関連付けられているジョブデータとを、前記ジョブ処理装置に接続された外部メモリーから読み出す読み出し手段と、
前記読み出された指示データに基づいて、前記読み出されたジョブデータを処理するジョブ処理手段と、を備える、
ジョブ処理装置。
【請求項６】
前記指示データに関連付けられているジョブデータの処理が、複数の単位処理から構成されており、
前記ジョブ処理手段は、前記複数の単位処理のうちの処理が完了した単位処理を示す完了データが、前記指示データとして前記外部メモリーに記憶されている場合、前記複数の単位処理のうちの前記完了データが示す単位処理以外の単位処理についてだけ処理する、
請求項５記載のジョブ処理装置。
【請求項７】
前記指示データに関連付けられているジョブデータの処理が、複数の単位処理から構成されており、
前記ジョブ処理手段は、前記ジョブ処理装置に行わせる単位処理を示した処理対象表示データが、前記指示データとして前記外部メモリーに記憶されている場合、前記複数の単位処理のうちの前記処理対象表示データが示す単位処理についてだけ処理する、
請求項５又は６記載のジョブ処理装置。
【請求項８】
外部メモリーと接続可能なジョブ処理装置が行うジョブ処理方法であって、
ジョブデータを受信し、
受信したジョブデータを前記ジョブ処理装置に接続された外部メモリーに記憶し、
前記ジョブ処理装置とは異なる他のジョブ処理装置における、前記受信したジョブデータの処理方法を記述した指示データを、前記受信したジョブデータと関連付けて前記外部メモリーに記憶する、
ジョブ処理方法。
【請求項９】
外部メモリーと接続可能なジョブ処理装置が行うジョブ処理方法を実現するコンピュータープログラムであって、
ジョブデータを受信し、
受信したジョブデータを前記ジョブ処理装置に接続された外部メモリーに記憶し、
前記ジョブ処理装置とは異なる他のジョブ処理装置における、前記受信したジョブデータの処理方法を記述した指示データを、前記受信したジョブデータと関連付けて前記外部メモリーに記憶する、
ジョブ処理方法を実現するコンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ処理装置、ジョブ処理方法、ジョブ処理方法を実現するコンピュータープログラムに関し、特に、複数のジョブ処理装置を利用して代行処理或いは分散処理を行うための技術に関する。
【背景技術】
【０００２】
ジョブ処理装置の一例としてプリンターをとりあげて説明する。従来、例えば通信ネットワークを介して接続された複数のプリンターを利用して、代行印刷或いは分散印刷を行う技術が知られている（例えば、特許文献１，２）。ここで、代行印刷とは、印刷ジョブを受けたプリンターが故障する等して印刷できなくなった場合に、その印刷ジョブを受けたプリンターに代えて他のプリンターに、その印刷ジョブの印刷を行わせる印刷方法のこと（また、上記他のプリンターが行う印刷のこと）をいう。また、分散印刷とは、複数ページからなる印刷ジョブを数ページごとに分割し、分割後の印刷ジョブのそれぞれの印刷を、異なるプリンターに並列的に行わせる印刷方法のこと（また、上記異なるプリンターのそれぞれが行う印刷のこと）をいう。分散印刷により、印刷処理の高速化が図られる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２９６３３３号公報
【特許文献２】特開２００２−２１５３６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１，２の技術では、代行印刷或いは分散印刷（以下、適宜「代行印刷等」という）に利用される複数のプリンターのそれぞれが、通信ネットワークを介して、或いは、上記複数のプリンターを管理するプリントサーバーを介して、印刷ジョブを発行するホスト装置と接続される。そして、ホスト装置又はプリントサーバーによって、代行印刷等の制御が行われる。即ち、ホスト装置又はプリントサーバーは、印刷ジョブの内容や代行印刷等に利用される複数のプリンターの各状態等に基づいて代行印刷等をさせる最適なプリンターを選択し、その選択されたプリンターに対して代行印刷等の実行を指示する。このような構成における問題点としては、以下のものがある。
【０００５】
まず、通信ネットワーク上の流れるデータ量が増加し、ネットワーク資源を圧迫することが挙げられる。即ち、ホスト装置又はプリントサーバーは、プリンターの状態管理を行うために、複数のプリンターのそれぞれとの間で、状態管理のために必要なデータを送受信する必要がある。また、代行印刷では、ホスト装置又はプリントサーバーが、印刷ジョブデータ（故障する等して印刷できなくなったプリンターに送信した印刷ジョブデータと同じ印刷ジョブデータ）を、再度、代行印刷を行うプリンターへ送信する必要がある。また、分散印刷では、分割された印刷ジョブデータ（その各々にヘッダーが付与されるため、分割前の印刷ジョブデータに比べてデータ量が大きくなる）を、分割後の印刷ジョブを実行させるプリンターの各々に送信する必要がある。従って、上述したように、通信ネットワーク上の流れるデータ量が増加し、ネットワーク資源を圧迫することになる。
【０００６】
また、代行印刷等を制御するホスト装置又はプリントサーバーが、代行印刷等に利用される複数のプリンターの状態管理や、代行印刷等をさせる最適なプリンターの選択処理等を行う必要がある。従って、これらの処理を実行するためのモジュールを、ホスト装置又はプリントサーバーに搭載する必要がある。
【０００７】
更に、代行印刷等を行うプリンターは、通常、ホスト装置又はプリントサーバーによって選択されるので、代行印刷等が可能なプリンターが複数あった場合に、ユーザーは、どのプリンターによって印刷されるのかが容易にわからないといった問題がある。
【０００８】
以上のような問題は、プリンターだけに限らず、複数の装置を利用して代行処理或いは分散処理が行われる様々なジョブ処理装置についても、同様に起こり得る。
【０００９】
従って、本発明の目的は、通信ネットワークに負荷をかけることなく代行処理或いは分散処理を行えるようにすることである。また、他の目的は、代行処理或いは分散処理における、ユーザーの利便性を向上させることである。
【課題を解決するための手段】
【００１０】
本発明の一つの実施態様に従うジョブ処理装置は、外部メモリーと接続可能なジョブ処理装置であって、ジョブデータを受信する受信手段と、受信したジョブデータを前記ジョブ処理装置に接続された外部メモリーに記憶させる記憶制御手段と、を備え、前記記憶制御手段は、前記ジョブ処理装置とは異なる他のジョブ処理装置における、前記受信したジョブデータの処理方法を記述した指示データを、前記受信したジョブデータと関連付けて前記外部メモリーに記憶させる。
【００１１】
上記構成によれば、ジョブデータを受信したジョブ処理装置（指示元の装置）に装着された外部メモリーには、受信したジョブデータ（受信ジョブデータ）と、その受信ジョブデータに関する指示データとが記憶される。指示データは、その指示データに関連付けられたジョブデータの処理方法を記述したものである。従って、例えば指示元の装置が故障する等して受信ジョブデータを処理することができなくなった場合、或いは、例えば受信ジョブデータを処理する際の処理負荷が高く指示元の装置だけでは時間がかかりすぎるために、他のジョブ処理装置（指示先の装置）にも処理を分散させて行わせたい場合に、指示先の装置に受信ジョブデータの処理（即ち、代行処理或いは分散処理）を行わせることができるようになる。即ち、ユーザーが、指示データ及び受信ジョブデータが記憶された外部メモリーを、指示先の装置に装着することで、指示先の装置は、指示データに基づいて、受信ジョブデータの処理（代行処理或いは分散処理）を行うことができる。
【００１２】
また、ユーザーは、外部メモリーを装着した装置を指示先の装置とすることができるので、指示先の装置を任意に定めることができる。従って、ユーザーは、指示先の装置の候補が複数あった場合に、例えばジョブ処理装置の機能や設置場所等を考慮して、指示先の装置を自由に選択することができる。
【００１３】
また、指示先の装置は、外部メモリーを介して指示データ及びジョブデータを受信するため、指示元の装置と指示先の装置とが、データ通信可能なように接続されている必要はない。また、指示元の装置と指示先の装置とが、例えば通信ネットワークを介して接続されている場合であっても、指示元の装置から指示先の装置へ指示データやジョブデータを送信する必要がないので、通信ネットワークに負荷をかけることはない。
【００１４】
本発明に係る好適な実施形態では、前記受信したジョブデータの処理が、複数の単位処理から構成されており、前記記憶制御手段は、前記単位処理が完了するごとに、前記単位処理が完了したことを示す完了データを、前記受信したジョブデータに関する指示データとして前記外部メモリーに記憶させてもよい。
【００１５】
上記構成によれば、指示データには、それに関連付けられたジョブデータについて、どの単位処理までジョブ処理が完了したかといった完了データが含まれる。これにより、指示先の装置によって代行処理が行われる場合、指示先の装置は、完了データを参照することで、完了済みの単位処理については処理を行わずに未完了の単位処理についてだけ処理を行えるようになる。
【００１６】
本発明に係る好適な実施形態では、前記受信したジョブデータの処理が、複数の単位処理から構成されており、分散処理の指示を受け付ける受け付け手段、を更に備え、前記記憶制御手段は、分散処理の指示を受け付けた場合、前記複数の単位処理を、前記ジョブ処理装置に行わせる単位処理と、前記他のジョブ処理装置に行わせる単位処理とに分割し、前記他のジョブ処理装置に行わせる単位処理を示した処理対象表示データを、前記受信したジョブデータに関する前記指示データとして前記外部メモリーに記憶させてもよい。
【００１７】
上記構成によれば、指示先の装置は、指示データを参照することにより、自分に割り当てられた単位処理を知ることができるので、その割り当てられた単位処理についてだけ処理することができる。これにより、指示元の装置と指示先の装置とが、それぞれ自分に割り当てられた単位処理を実行することで、分散処理が可能となる。
【００１８】
本発明に係る好適な実施形態では、前記指示データと、前記指示データに関連付けられているジョブデータとを、前記ジョブ処理装置に接続された外部メモリーから読み出す読み出し手段と、前記読み出された指示データに基づいて、前記読み出されたジョブデータを処理するジョブ処理手段と、を更に備えてもよい。
【００１９】
上記構成によれば、一つのジョブ処理装置が、代行処理或いは分散処理の実行を他の装置に指示する機能、及び、代行処理或いは分散処理の指示を受けた場合にその指示に従い代行処理或いは分散処理を行う機能の両方を実現可能となる。
【００２０】
本発明の別の側面によれば、外部メモリーと接続可能なジョブ処理装置であって、前記外部メモリーに記憶されているジョブデータの処理方法を記述した指示データと、前記指示データに関連付けられているジョブデータとを、前記ジョブ処理装置に接続された外部メモリーから読み出す読み出し手段と、前記読み出された指示データに基づいて、前記読み出されたジョブデータを処理するジョブ処理手段と、を備える。
【００２１】
上記構成によれば、外部メモリーが装着されたジョブ処理装置は、外部メモリーに記憶されている指示データに基づいて、その指示データに関連付けられているジョブデータを処理することができる。即ち、外部メモリーが装着されたジョブ処理装置は、指示先の装置として、代行処理或いは分散処理を行うことができる。
【００２２】
本発明に係る好適な実施形態では、前記指示データに関連付けられているジョブデータの処理が、複数の単位処理から構成されており、前記ジョブ処理手段は、前記複数の単位処理のうちの処理が完了した単位処理を示す完了データが、前記指示データとして前記外部メモリーに記憶されている場合、前記複数の単位処理のうちの前記完了データが示す単位処理以外の単位処理についてだけ処理してもよい。
【００２３】
上記構成によれば、ジョブ処理装置は、完了データを参照することで、完了済みの単位処理については処理を行わずに未完了の単位処理についてだけ処理を行えるようになる。
【００２４】
本発明に係る好適な実施形態では、前記指示データに関連付けられているジョブデータの処理が、複数の単位処理から構成されており、前記ジョブ処理手段は、前記ジョブ処理装置に行わせる単位処理を示した処理対象表示データが、前記指示データとして前記外部メモリーに記憶されている場合、前記複数の単位処理のうちの前記処理対象表示データが示す単位処理についてだけ処理してもよい。
【００２５】
上記構成によれば、ジョブ処理装置は、指示データを参照することにより、自分に割り当てられた単位処理を知ることができるので、その割り当てられた単位処理についてだけ処理することができる。これにより、指示元の装置と指示先の装置とが、それぞれ自分に割り当てられた単位処理を実行することで、分散処理が可能となる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態に係るジョブ処理装置の一例としてのプリンターの構成例を示す図である。
【図２】代行印刷ヘッダーの一例を示す図である。
【図３】分散印刷ヘッダーの一例を示す図である。
【図４】指示元プリンターの代行／分散印刷制御部が行う、代行印刷に関する制御処理のフローチャートである。
【図５】指示元プリンターが行う印刷処理のフローチャートである。
【図６】指示元プリンターの代行／分散印刷制御部が行う、分散印刷に関する制御処理のフローチャートである。
【図７】指示先プリンターの代行／分散印刷制御部が行う、代行印刷等に関する制御処理のフローチャートである。
【発明を実施するための形態】
【００２７】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【００２８】
図１は、本実施形態に係るジョブ処理装置の一例としてのプリンター１の構成例を示す図である。
【００２９】
本実施形態に係るプリンター１は、代行印刷等（代行印刷或いは分散印刷）の制御を行うことが可能なプリンターである。即ち、プリンター１は、代行印刷等の実行を他のプリンター１に指示することができ、また、代行印刷等の実行指示を受けた場合は、その指示に従い代行印刷等を行うことができる。また、プリンター１には、着脱可能な外部メモリー３（例えば、ＵＳＢ（Universal Serial Bus）メモリーやＳＤ（Secure Digital）メモリーカード等）を装着することができる。
【００３０】
本実施形態において、図１におけるプリンター１Ａ（即ち、ホスト装置２に接続されているプリンター１）が、代行印刷等を指示する側のプリンターである。一方、図１におけるプリンター１Ｂ（即ち、プリンター１Ａと外部メモリー３を介して接続されている一以上のプリンター１）が、代行印刷等を指示される側のプリンターである。以下、代行印刷等を指示する側のプリンター１Ａを「指示元プリンター」と呼び、代行印刷等を指示される側のプリンター１Ｂを「指示先プリンター」と呼ぶ。本実施形態では、指示元プリンター１Ａと指示先プリンター１Ｂとの間の、代行印刷等の実行指示の受け渡しは、着脱可能な外部メモリー３を介して行われる。
【００３１】
また、本実施形態では、指示元プリンター１Ａは、それがホスト装置２から受信した印刷ジョブ（以下、「受信ジョブ」）を、代行印刷等の対象とする。従って、指示元プリンター１Ａは、受信ジョブの印刷が完了する前に指示元プリンター１Ａが故障する等して印刷できなくなった場合には、受信ジョブの代行印刷を指示先プリンター１Ｂへ指示する（より正確には、指示元プリンター１Ａは、指示先プリンター１Ｂが受信ジョブを代行印刷できるように、必要なデータを外部メモリー３に記憶しておく）。また、指示元プリンター１Ａは、ユーザーから分散印刷の指示を受けた場合には、受信ジョブの分散印刷を一以上の指示先プリンター１Ｂへ指示する（より正確には、指示元プリンター１Ａは、一以上の指示先プリンター１Ｂが受信ジョブを分散印刷できるように、必要なデータを外部メモリー３に記憶しておく）。尚、必ずしもホスト装置２から受信した受信ジョブを代行印刷等の対象とする必要はなく、例えば、指示元プリンター１の記憶装置（例えば、不揮発性の記憶装置）に記憶されている印刷ジョブ（例えば、リプリントのために記憶されている印刷ジョブ）が代行印刷等の対象とされてもよい。
【００３２】
また、本実施形態において、指示元プリンター１Ａと指示先プリンター１Ｂとは、実質的に同様の構成を有している。即ち、指示元プリンター１Ａ及び指示先プリンター１Ｂの両者とも、代行印刷等の実行を他のプリンター１に指示する機能、及び、代行印刷等の指示を受けた場合にその指示に従い代行印刷等を行う機能の両方を実現可能である。尚、指示元プリンター１Ａが、両機能のうちの、代行印刷等の実行を他のプリンター１に指示する機能だけを実現し、指示先プリンター１Ｂが、両機能のうちの、代行印刷等の指示を受けた場合にその指示に従い代行印刷等を行う機能だけを実現するようにしてもよい。
【００３３】
以下、指示元プリンター１Ａを例にとって、プリンター１の構成を説明する。
【００３４】
プリンター１は、例えば、入出力Ｉ／Ｆ（インターフェース）１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１３と、外部メモリーＩ／Ｆ１４と、プリント部１６と、ユーザーＩ／Ｆ１８とを備える。ＣＰＵ１３、ＲＯＭ１５、ＲＡＭ１２、ユーザＩ／Ｆ部１１、外部メモリーＩ／Ｆ１４、プリント部１６及びユーザーＩ／Ｆ１８は、バス１７を介して接続される。
【００３５】
ＲＯＭ１５には、例えば、ＣＰＵ１３により実行される各種のコンピュータープログラムが格納される。ＲＡＭ１２は、ＣＰＵ１３が処理するデータ、例えば、ホスト装置２から受信した印刷ジョブデータやその受信した印刷ジョブデータをラスターライズすることで得られたラスターデータ等を、一時的に格納しておくためのバッファとして利用される。
【００３６】
入出力Ｉ／Ｆ１１は、ホスト装置２とデータ通信を行うためのインターフェース装置である。入出力Ｉ／Ｆ１１は、印刷ジョブの内容を示す印刷ジョブデータをホスト装置２から受信し、その受信した印刷ジョブデータ（以下、「受信ジョブデータ」）をＲＡＭ１２に書き込む。尚、プリンター１は、印刷ジョブデータを、それを構成するセグメント単位で受信する。従って、入出力Ｉ／Ｆ１１は、受信ジョブデータを構成するセグメント（以下、「受信データ」）を受信するごとに、その受信した受信データをＲＡＭ１２に書き込む。
【００３７】
外部メモリーＩ／Ｆ１４は、着脱可能な記憶媒体である外部メモリー３をプリンター１に装着するためのインターフェースである。外部メモリーＩ／Ｆ１４は、それを介してプリンター１に装着された外部メモリー３へデータを書き込んだり、その外部メモリー３からデータを読み出したりする。
【００３８】
ユーザーＩ／Ｆ１８は、ユーザーの操作を受け付けるとともにユーザーに提示すべき各種画面を表示する装置である。ユーザーＩ／Ｆ１８としては、例えば、タッチパネル等が採用される。
【００３９】
プリント部１６は、例えば、紙、ＯＨＰシート、厚紙、封筒等の画像形成媒体に、指定された画像を出力する装置である。
【００４０】
ＣＰＵ１３は、ＲＯＭ１５に格納されている各種のコンピュータープログラムを実行することにより、例えば、代行／分散印刷制御部１３１、プリント制御部１３２として機能する。
【００４１】
プリント制御部１３２は、プリント部１６を制御して、受信ジョブデータに基づく画像を画像形成媒体に出力させる処理部である。具体的には、プリント制御部１３２は、ＲＡＭ１２に格納されている受信ジョブデータを読み出し、その読み出した受信ジョブデータをラスターライズすることで、受信ジョブデータに対応したラスターデータを生成する。そして、プリント制御部１３２は、その生成したラスターデータに基づく画像をプリント部１６に出力させる。これにより、受信ジョブデータに基づく画像が、画像形成媒体に出力される。本実施形態では、印刷ジョブデータに基づく画像を出力する処理のことを「印刷処理」と呼ぶ。
【００４２】
代行／分散印刷制御部１３１は、代行印刷等に関する制御を行う処理部であり、上述した、代行印刷等の実行を他のプリンター１に指示する機能、及び、代行印刷等の指示を受けた場合にその指示に従い代行印刷等を行う機能を実現する処理部である。例えば、指示元プリンター１Ａにおける代行／分散印刷制御部１３１は、指示先プリンター１Ｂに代行印刷等を行わせるために、指示元プリンター１Ａに装着されている外部メモリー３に、必要なデータを書き込む（外部メモリーＩ／Ｆ１４を制御して、必要なデータを書き込ませる）。具体的には、代行／分散印刷制御部１３１は、例えば、代行印刷等の対象とされる受信ジョブデータと、その受信ジョブデータに関する、代行印刷等の実行を指示するためのデータ（以下、「指示データ」）とを、対応付けて、外部メモリー３に書き込む。指示データには、例えば、対応する受信ジョブデータについての、指示先プリンター１Ｂにおける処理方法が記述される。一方、指示先プリンター１Ｂにおける代行／分散印刷制御部１３１は、指示先プリンター１Ｂに装着された外部メモリー３から指示データを読み出して、その指示データに従い、その指示データに対応付けられている受信ジョブデータの印刷処理を行う。
【００４３】
以下、図２及び図３を参照して、指示データの詳細について説明する。図２の符号５は、代行印刷を指示するための指示データ（以下、「代行印刷ヘッダー」）の一例を示しており、図３の符号６は、分散印刷を指示するための指示データ（以下、「分散印刷ヘッダー」）の一例を示している。
【００４４】
図２に示されるように、代行印刷ヘッダー５は、代行印刷の対象とされる一つの印刷ジョブデータ４（本実施形態では、受信ジョブデータ）につき、一つ作成される。代行印刷ヘッダー５には、例えば、代行印刷であることを示すデータ５１と、印刷済みページ５２と、データポインター５３とが含まれる。データポインター５３には、対応する印刷ジョブデータ４（この代行印刷ヘッダー５に従って処理されることとなる印刷ジョブデータ４）の外部メモリー３上の記憶位置が設定される。印刷済みページ５２には、対応する印刷ジョブデータ４についての印刷済みページのページ番号が記録される。即ち、印刷済みページ５２には、対応する印刷ジョブデータ４が示す印刷ジョブが複数のページから構成されている場合に、その複数のページのうちの、指示元プリンター１Ａによって既に印刷がなされたページのページ番号が記録される。
【００４５】
図３に示されるように、分散印刷ヘッダー６は、分散印刷の対象とされる一つの印刷ジョブデータ４（本実施形態では、受信ジョブデータ）に対して、その印刷ジョブ（その印刷ジョブデータ４が示す印刷ジョブ）を分割した後の印刷ジョブ（指示元プリンター１Ａによって処理されるものを除く）の数だけ作成される。具体的に説明すると、図３の例では、分散印刷の対象とされる印刷ジョブデータ４の印刷ジョブが、四つに分割された場合を示している。この四つの分割後の印刷ジョブのうち、一つが、指示元プリンター１Ａによって処理され、他の三つが、指示先プリンター１Ｂによって処理されることになる。この指示先プリンター１Ｂによって処理される印刷ジョブのそれぞれについて、分散印刷ヘッダー６が作成される。
【００４６】
分散印刷ヘッダー６には、例えば、分散印刷であることを示すデータ６１と、印刷すべきページ６２と、データポインター６３とが含まれる。代行印刷ヘッダー５の場合と同様に、データポインター６３には、対応する印刷ジョブデータ４（この分散印刷ヘッダー６に従って処理されることとなる印刷ジョブデータ４）の外部メモリー３上の記憶位置が設定される。印刷すべきページ６２には、その分散印刷ヘッダー６に従って分散印刷を行う指示先プリンター１Ｂが印刷することとなるページのページ番号が記録される。
【００４７】
以上が、本実施形態に係るプリンター１の構成の説明である。以下、プリンター１のＣＰＵ１３によって行われる処理の詳細について説明する。尚、図４〜図６の処理は、指示元プリンター１のＣＰＵ１３によって行われる処理であり、図７の処理は、指示先プリンター１のＣＰＵ１３によって行われる処理である。以下、図４〜図６の説明における「外部メモリー３」とは、指示元プリンター１に装着されている外部メモリー３のことを意味し、図７の説明における「外部メモリー３」とは、指示先プリンター１に装着されている外部メモリー３のこと意味するものとする。尚、以下の説明では、受信ジョブデータ４が示す印刷ジョブ（受信ジョブ）は、複数のページから構成されているものとする。
【００４８】
図４は、指示元プリンター１Ａの代行／分散印刷制御部１３１が行う、代行印刷に関する制御処理のフローチャートである。この処理は、指示元プリンター１Ａがホスト装置２から受信データ（受信ジョブデータ４を構成するセグメント）を受信し、その受信した受信データが入出力Ｉ／Ｆ１１によってＲＡＭ１２に書き込まれたことを契機として開始される。
【００４９】
まず、代行／分散印刷制御部１３１は、ＲＡＭ１２に書き込まれた受信データを読み出す（Ｓ１）。
【００５０】
次に、代行／分散印刷制御部１３１は、今回の受信データ（ステップＳ１で読み出された受信データ）の外部メモリー３への書き込みが、受信ジョブデータ４の外部メモリー３への初回の書き込みとなるか否か（即ち、受信ジョブデータ４（受信ジョブデータ４の一部）が未だ外部メモリー３に書き込まれていないかどうか）を判定する（Ｓ２）。
【００５１】
受信ジョブデータ４の外部メモリー３への初回の書き込みとなる場合は（Ｓ２：ＹＥＳ）、代行／分散印刷制御部１３１は、ステップＳ１で読み出された受信データを外部メモリー３に書き込む（Ｓ３）。
【００５２】
そして、代行／分散印刷制御部１３１は、代行印刷ヘッダー５を作成し、その作成した代行印刷ヘッダー５を外部メモリー３に書き込む（Ｓ４）。ここで、代行印刷ヘッダー５のデータポインター５３には、ステップＳ３で書き込まれた受信データの外部メモリー３上の記憶位置が設定される。また、代行印刷ヘッダー５の印刷済みページ５２には、空の値（例えば、ＮＵＬＬ）が設定される。
【００５３】
一方、受信ジョブデータ４の外部メモリー３への初回の書き込みとならない場合（即ち、既に受信ジョブデータ４（受信ジョブデータ４の一部）が記憶済みである場合）は（Ｓ２：ＮＯ）、代行／分散印刷制御部１３１は、ステップＳ３で書き込まれた、記憶済みの受信ジョブデータ４（受信ジョブデータ４の一部）に、ステップＳ１で読み出された受信データを追加して書き込む（Ｓ５）。このステップＳ５の処理が、受信ジョブデータ４を構成する全ての受信データ（正確には、初回に書き込まれたもの（ステップＳ３で書き込まれたもの）を除く）について行われることにより、代行印刷ヘッダー５のデータポインター５３が指しているデータが、受信ジョブデータ４として完成する。即ち、受信ジョブデータ４の外部メモリー３への書き込みが完了する。
【００５４】
ステップＳ６では、後続の受信データがあるかどうかが判定される。
【００５５】
後続の受信データがある場合は（Ｓ６：ＹＥＳ）、その後続の受信データについて、再度ステップＳ１〜Ｓ５の処理が行われる。
【００５６】
一方、後続の受信データがない場合（即ち、受信ジョブデータ４を構成する全ての受信データについてステップＳ１〜Ｓ５の処理が終了した場合）は（Ｓ６：ＮＯ）、代行／分散印刷制御部１３１は、外部メモリー３に書き込まれた受信ジョブデータ４を有効なもの（即ち、代行印刷等が可能なもの）とする（Ｓ７）。具体的には、代行／分散印刷制御部１３１は、受信ジョブデータ４が有効なものであることを示すデータを、例えばＲＡＭ１２に記憶する。
【００５７】
以上の処理が行われることにより、外部メモリー３には、受信ジョブデータ４と、その受信ジョブデータに関する代行印刷ヘッダー５とが書き込まれる。従って、この図４の処理が完了した後に、指示元プリンター１Ａが故障する等して受信ジョブデータ４を処理することができなくなった場合に、ユーザーは、指示元プリンター１Ａに装着されている外部メモリー３を取り外して、その外部メモリー３をユーザーが任意に選択したプリンター１に装着することにより、その外部メモリー３が装着されたプリンター１（これが指示先プリンター１Ｂとなる）に代行印刷を行わせることができるようになる。尚、指示先プリンター１Ｂが行う処理（即ち、外部メモリー３に書き込まれたデータに基づいて代行印刷を行う処理）については、後に図７を参照して説明する。
【００５８】
図５は、指示元プリンター１Ａが行う印刷処理のフローチャートである。この処理は、図４の処理と同様に、指示元プリンター１Ａがホスト装置２から受信データ（受信ジョブデータ４を構成するセグメント）を受信し、その受信した受信データが入出力Ｉ／Ｆ１１によってＲＡＭ１２に書き込まれたことを契機として開始される。即ち、図４の処理と図５の処理とは、並列的に処理され得る。
【００５９】
まず、プリント制御部１３２は、所定の一時停止フラグがＯＮ（一時停止中であることを示す値）となっているか否かを判定する（Ｓ１１）。ここで、一時停止フラグとは、印刷処理を一時的に停止するために用いられるフラグである。例えば、ユーザーから分散印刷の指示を受けた場合、指示元プリンター１Ａは、印刷ジョブを分割する処理を行う。そして、その分割処理の後は、指示元プリンター１Ａは、分割後の印刷ジョブのうちの一つを処理することになる。従って、分散印刷の指示を受けた場合は、指示元プリンター１Ａが処理することとなる分割後の印刷ジョブが決定されるまで、印刷処理が一時的に停止される必要がある。そのために、上記の一時停止フラグが利用される。一時停止フラグは、例えばＲＡＭ１２に記憶される。
【００６０】
一時停止フラグがＯＮの場合（即ち、印刷処理が一時停止中とされている場合）は（Ｓ１１：ＹＥＳ）、プリント制御部１３２は、一時停止フラグがＯＦＦ（一時停止中ではないことを示す値）になるまで待機する。
【００６１】
一方、一時停止フラグがＯＦＦの場合（即ち、印刷処理が一時停止中とされていない場合）は（Ｓ１１：ＮＯ）、プリント制御部１３２は、ＲＡＭ１２に書き込まれた受信ジョブデータ４（受信ジョブデータ４の一部）が１ページ分のデータとなっているか否かを判定する（Ｓ１２）。
【００６２】
ＲＡＭ１２に書き込まれた受信ジョブデータ４が１ページ分のデータとなっていない場合は（Ｓ１２：ＮＯ）、プリント制御部１３２は、ＲＡＭ１２に書き込まれた受信ジョブデータ４が１ページ分のデータとなるまで待機する。
【００６３】
一方、ＲＡＭ１２に書き込まれた受信ジョブデータ４が１ページ分のデータとなっている場合は（Ｓ１２：ＹＥＳ）、プリント制御部１３２は、そのページ（ＲＡＭ１２に書き込まれた受信ジョブデータ４（受信ジョブデータ４の一部）に対応するページであり、以下、「対象ページ」という）が、指示元プリンター１Ａに割り当てられているページ（即ち、指示元プリンター１Ａが印刷すべきページ）であるか否かを判定する（Ｓ１３）。
【００６４】
対象ページが指示元プリンター１Ａに割り当てられているページでない場合は（Ｓ１３：ＮＯ）、プリント制御部１３２は、対象ページを印刷することなく、再びステップＳ１１の処理を行う。
【００６５】
一方、対象ページが指示元プリンター１Ａに割り当てられているページである場合は（Ｓ１３：ＹＥＳ）、プリント制御部１３２は、対象ページを印刷する。即ち、プリント制御部１３２は、対象ページに対応する受信ジョブデータ４をラスターライズしてラスターデータを生成し（Ｓ１４）、その生成したラスターデータに基づく画像をプリント部１６に出力させる（Ｓ１５）。
【００６６】
その後、代行／分散印刷制御部１３１は、指示元プリンター１Ａに外部メモリー３が装着されているか否かを判定する（Ｓ１６）。
【００６７】
指示元プリンター１Ａに外部メモリー３が装着されていない場合は（Ｓ１６：ＮＯ）、その後、ステップＳ１８の処理が行われる。
【００６８】
一方、指示元プリンター１Ａに外部メモリー３が装着されている場合は（Ｓ１６：ＹＥＳ）、代行／分散印刷制御部１３１は、対象ページのページ番号を、代行印刷ヘッダー５の印刷済みページ５２に記録する（Ｓ１７）。その後、ステップＳ１８の処理が行われる。
【００６９】
ステップＳ１８では、受信ジョブデータ４が示す印刷ジョブ（受信ジョブ）の処理が終了したか否かが判定される（Ｓ１８）。
【００７０】
受信ジョブの処理が未だ終了していない場合は（Ｓ６：ＹＥＳ）、再度ステップＳ１１〜Ｓ１７の処理が行われる。
【００７１】
以上の処理（特にステップＳ１６，Ｓ１７）が行われることにより、代行印刷ヘッダー５には、それに関連付けられた受信ジョブデータ４について、どのページまで印刷処理が完了したかといったことを示すデータ（即ち、印刷済みページ５２）が記録される。これにより、指示先プリンター１Ｂによって代行印刷が行われる場合、指示先プリンター１Ｂは、印刷済みページ５２を参照することで、完了済みのページについては印刷処理を行わずに未完了のページについてだけ印刷処理を行えるようになる。
【００７２】
図６は、指示元プリンター１Ａの代行／分散印刷制御部１３１が行う、分散印刷に関する制御処理のフローチャートである。この処理は、例えば、指示元プリンター１Ａが、ユーザーＩ／Ｆ１８を介して、ユーザーから分散印刷の指示を受けた場合に開始される。
【００７３】
ユーザーＩ／Ｆ１８を介して、ユーザーから分散印刷の指示を受けた場合（Ｓ２１：ＹＥＳ）、代行／分散印刷制御部１３１は、分散印刷の対象とされる印刷ジョブデータ４（即ち、受信ジョブデータ４）が有効なものとされているか否か（即ち、図４の処理が完了し、受信ジョブデータ４が外部メモリー３に記憶済みであるか否か）を判定する（Ｓ２２）。このステップＳ２２の判定は、例えば、受信ジョブデータ４が有効なものであることを示すデータが、例えばＲＡＭ１２に記憶されているか否かが判定されることによって行われる。
【００７４】
受信ジョブデータ４が有効なものとされていない場合（即ち、受信ジョブデータ４の外部メモリー３への書き込みが未だ完了していない場合）は（Ｓ２２：ＮＯ）、代行／分散印刷制御部１３１は、ユーザーＩ／Ｆ１８を介してその旨をユーザーに通知する（Ｓ２３）。
【００７５】
一方、受信ジョブデータ４が有効なものとされている場合は（Ｓ２２：ＹＥＳ）、代行／分散印刷制御部１３１は、印刷処理を一時的に停止する（Ｓ２４）。即ち、代行／分散印刷制御部１３１は、一時停止フラグをＯＮにする。
【００７６】
その後、指示元プリンター１Ａが、分散印刷させるプリンター１の数（以下、「分散数」）の入力を、ユーザーＩ／Ｆ１８を介して、ユーザーから受け付ける（Ｓ２５）。
【００７７】
その後、代行／分散印刷制御部１３１は、受信ジョブを、ステップＳ２５で入力された分散数個の印刷ジョブに分割する（Ｓ２６）。そして、代行／分散印刷制御部１３１は、分割後の印刷ジョブ（指示元プリンター１Ａが処理するものを除く）のそれぞれについて分散印刷ヘッダー６を作成し、その作成した分散印刷ヘッダー６を外部メモリー３に書き込む（Ｓ２７）。各代行印刷ヘッダー５のデータポインター５３には、受信ジョブデータ４の外部メモリー３上の記憶位置が設定される。
【００７８】
このステップＳ２６，２７の処理を具体的な例を挙げて説明すると、受信ジョブのページ数が１３ページであり、分散数が４であった場合は、例えば、代行／分散印刷制御部１３１は、１〜４ページまでの印刷ジョブと、５〜７ページまでの印刷ジョブと、８〜１０ページまでの印刷ジョブと、１１〜１３ページまでの印刷ジョブとの４つに分割することができる。そして、指示元プリンター１Ａは、この四つの分割後の印刷ジョブうちの一つ（ここでは、１〜４ページまでの印刷ジョブとする）を処理することができる。この場合、代行／分散印刷制御部１３１は、図３に示したような、５〜７ページまでの印刷ジョブ、８〜１０ページまでの印刷ジョブ、及び１１〜１３ページまでの印刷ジョブの三つの印刷ジョブのそれぞれについての分散印刷ヘッダー６を作成することになる。
【００７９】
その後、代行／分散印刷制御部１３１は、ユーザーＩ／Ｆ１８を介して、分散印刷の準備が完了した旨（即ち、外部メモリー３を取り外して他のプリンター１に装着してもよい旨）をユーザーに通知する（Ｓ２８）。この通知を受けて、ユーザーは、外部メモリー３を指示元プリンター１Ａから取り外して、ユーザーが任意に選択したプリンター１に装着することになる。これにより、ユーザーは、その外部メモリー３が装着されたプリンター１（これが指示先プリンター１Ｂとなる）に分散印刷を行わせることができる。尚、指示元プリンター１Ａが処理するものを除いた分割後の印刷ジョブが複数ある場合（即ち、指示先プリンター１Ｂが複数選択される場合）は、ユーザーは、分散印刷を行わせるプリンター１を複数選択し、その選択したプリンター１のそれぞれに、指示元プリンター１Ａから取り外した外部メモリー３を装着することになる。
【００８０】
その後、指示元プリンター１Ａは、自分に割り当てられた分割後の印刷ジョブの印刷処理を行う（Ｓ３０）。
【００８１】
図７は、指示先プリンター１Ｂの代行／分散印刷制御部１３１が行う、代行印刷等に関する制御処理のフローチャートである。この処理は、指示先プリンター１Ｂに外部メモリー３が装着されたことを契機として開始される。
【００８２】
指示先プリンター１Ｂに外部メモリー３が装着されると（Ｓ４１：ＹＥＳ）、代行／分散印刷制御部１３１は、外部メモリー３に分散印刷ヘッダー６が書き込まれているか否かを判定する（Ｓ４２）。
【００８３】
外部メモリー３に分散印刷ヘッダー６が書き込まれている場合は（Ｓ４２：ＹＥＳ）、代行／分散印刷制御部１３１は、この指示先プリンター１Ｂに実行させる処理内容（代行印刷か分散印刷か）を、ユーザーＩ／Ｆ１８を介してユーザーに選択させる（Ｓ４３）。
【００８４】
ステップＳ４２において外部メモリー３に分散印刷ヘッダー６が書き込まれていないと判定された場合（Ｓ４２：ＮＯ）、又は、ステップＳ４３において代行印刷が選択された場合（Ｓ４３：代行印刷）は、代行印刷が行われる。
【００８５】
一方、ステップＳ４３において分散印刷が選択された場合（Ｓ４３：分散印刷）は、分散印刷が行われる。
【００８６】
まず、代行印刷が行われる場合について説明する。
【００８７】
この場合、代行／分散印刷制御部１３１は、代行印刷ヘッダー５と、その代行印刷ヘッダー５に関連付けられている印刷ジョブデータ４とを外部メモリー３から読み出す（Ｓ４８）。
【００８８】
その後、代行／分散印刷制御部１３１は、ステップＳ４８で読み出された代行印刷ヘッダー５に従って、代行印刷を実行する（Ｓ４９）。具体的には、例えば、代行印刷ヘッダー５が図２で示されたものであった場合、代行／分散印刷制御部１３１は、印刷済みページ（図２の例では１〜４ページ）以外のページについてだけ印刷するように制御する。即ち、代行／分散印刷制御部１３１は、ステップＳ４８で読み出された印刷ジョブデータ４のうち、印刷済みページ（図２の例では１〜４ページ）以外のページに対応する部分について、プリント制御部１３２にラスターライズを行わせ、それにより生成されたラスターデータに基づく画像をプリント部１６に出力させる。
【００８９】
次に、分散印刷が行われる場合について説明する。
【００９０】
この場合、代行／分散印刷制御部１３１は、一つの分散印刷ヘッダー６（複数ある場合は任意に選択した一つ）と、その分散印刷ヘッダー６に関連付けられている印刷ジョブデータ４とを外部メモリー３から読み出す（Ｓ４４）。そして、代行／分散印刷制御部１３１は、その読み出した分散印刷ヘッダー６及び印刷ジョブデータ４を、ＲＡＭ１２にコピーする（Ｓ４５）。
【００９１】
次に、代行／分散印刷制御部１３１は、ステップＳ４４で読み出した分散印刷ヘッダー６を外部メモリー３から削除する（Ｓ４６）。
【００９２】
その後、代行／分散印刷制御部１３１は、ユーザーＩ／Ｆ１８を介して、外部メモリー３を取り外してもよい旨をユーザーに通知する（Ｓ４７）。
【００９３】
その後、代行／分散印刷制御部１３１は、ステップＳ４４で読み出された分散印刷ヘッダー６に従って、分散印刷を実行する（Ｓ４９）。具体的には、例えば、分散印刷ヘッダー６が図３における符号６Ａで示されたものであった場合、代行／分散印刷制御部１３１は、印刷すべきページ（図３の例では５〜７ページ）についてだけ印刷するように制御する。即ち、代行／分散印刷制御部１３１は、ステップＳ４４で読み出された印刷ジョブデータ４のうち、印刷すべきページ（図３の例では５〜７ページ）に対応する部分について、プリント制御部１３２にラスターライズを行わせ、それにより生成されたラスターデータに基づく画像をプリント部１６に出力させる。
【００９４】
以上が、プリンター１のＣＰＵ１３によって行われる処理の説明である。このような処理が行われることにより、外部メモリー３には、代行印刷等の対象となる印刷ジョブデータ４（本実施形態では、受信ジョブデータ４）と、その印刷ジョブデータ４についての、指示先プリンター１Ｂにおける処理方法が記述された指示データ（代行印刷ヘッダー５又は分散印刷ヘッダー６）とが記憶される。従って、指示元プリンター１Ａが故障する等して受信ジョブデータ４を処理することができなくなった場合、或いは、例えば受信ジョブデータ４を処理する際の処理負荷が高く指示元プリンター１Ａだけでは時間がかかりすぎるために、他のプリンター１（指示先プリンター１Ｂ）にも処理を分散させて行わせたい場合に、指示先プリンター１Ｂに受信ジョブデータ４の処理（即ち、代行印刷或いは分散印刷）を行わせることができるようになる。即ち、ユーザーが、指示データ及び受信ジョブデータ４が記憶された外部メモリー３を、指示先プリンター１Ｂに装着することで、指示先プリンター１Ｂは、指示データに基づいて、受信ジョブデータ４の処理（代行印刷或いは分散印刷）を行うことができる。
【００９５】
また、ユーザーは、外部メモリー３を装着したプリンター１を指示先プリンター１Ｂとすることができるので、指示先プリンター１Ｂを任意に定めることができる。従って、ユーザーは、指示先プリンター１Ｂの候補が複数あった場合に、例えばその候補とされているプリンター１の機能や設置場所等を考慮して、指示先プリンター１Ｂを自由に選択することができる。
【００９６】
また、指示先プリンター１Ｂは、外部メモリー３を介して指示データ及び印刷ジョブデータ４を受信するため、指示元プリンター１Ａと指示先プリンター１Ｂとが、データ通信可能なように接続されている必要はない。また、指示元プリンター１Ａと指示先プリンター１Ｂとが、例えば通信ネットワークを介して接続されている場合であっても、指示元プリンター１Ａから指示先プリンター１Ｂへ指示データや印刷ジョブデータ４を送信する必要がないので、通信ネットワークに負荷をかけることはない。
【００９７】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【符号の説明】
【００９８】
１…プリンター、１１…入出力Ｉ／Ｆ、１２…ＲＡＭ、１３…ＣＰＵ、１３１…代行／分散印刷制御部、１３２…プリント制御部、１４…外部メモリーＩ／Ｆ、１５…ＲＯＭ、１６…プリント部、１７…バス、１８…ユーザーＩ／Ｆ、２…ホスト装置、３…外部メモリー、４…印刷ジョブデータ、５…代行印刷ヘッダー、６…分散印刷ヘッダー
【図１】
2010244112.tif 000003
【図２】
2010244112.tif 000004
【図３】
2010244112.tif 000005
【図４】
2010244112.tif 000006
【図５】
2010244112.tif 000007
【図６】
2010244112.tif 000008
【図７】
2010244112.tif 000009