(57)【要約】【課題】プリンタが他のプリンタとの間の相対距離をリスト化して保持する。【解決手段】プリンタ３０は、他のプリンタ３２との間の相対距離を取得して、代替プリンタリストテーブルＴＢ４０として保持する。プリンタ３０は、例えば、代替印刷を要求するプリンタを選択する際には、この代替プリンタリストテーブルＴＢ４０の相対距離を検索し、最も相対距離の近いプリンタ３２を代替プリンタとして選択する。これにより、効率的に代替印刷を要求するプリンタ等を選択することができる。【選択図】　図１
2004102333.tif 000002
【特許請求の範囲】
【請求項１】
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得手段と、
前記プリンタ位置情報取得手段が取得した前記プリンタ位置情報を、他のプリンタに送信し、前記他のプリンタに、当該プリンタと前記他のプリンタとの間の相対距離を算出させる、プリンタ位置情報送信手段と、
前記他のプリンタから前記相対距離を受信する、相対距離受信手段と、
前記相対距離受信手段が受信した前記相対距離を格納する、相対距離格納手段と、
を備えることを特徴とするプリンタ。
【請求項２】
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得手段と、
他のプリンタから、前記他のプリンタのプリンタ位置情報を受信する、プリンタ位置情報受信手段と、
前記プリンタ位置情報取得手段で取得したプリンタ位置情報と、前記プリンタ位置情報受信手段で受信したプリンタ位置情報とに基づいて、当該プリンタと前記他のプリンタとの間の相対距離を算出する、相対距離算出手段と、
前記相対距離算出手段が算出した前記相対距離を格納する、相対距離格納手段と、
を備えることを特徴とするプリンタ。
【請求項３】
印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、
当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記相対距離が最も近い他のプリンタを、代替プリンタに選択して、前記印刷送信用データの代替印刷を要求する、代替印刷要求手段と、
をさらに備えることを特徴とする請求項１又は請求項２に記載のプリンタ。
【請求項４】
前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にあるかどうかを判断する、相対距離判断手段を、さらに備えることを特徴とする請求項３に記載のプリンタ。
【請求項５】
前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にあると判断した場合には、受信した前記印刷送信用データを前記代替プリンタに転送する、転送手段を備えることを特徴とする請求項４に記載のプリンタ。
【請求項６】
前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にないと判断した場合には、受信した前記印刷送信用データに基づいて、前記代替プリンタに適合した代替印刷送信用データを生成し、この代替印刷送信用データを前記代替プリンタに送信する、代替送信手段をさらに備えることを特徴とする請求項５に記載のプリンタ。
【請求項７】
前記代替送信手段は、受信した前記印刷送信用データを復号することにより印刷データを取得し、この取得した印刷データを前記代替プリンタで復号できるように再び暗号化することにより、前記代替印刷送信用データを生成する、ことを特徴とする請求項６に記載のプリンタ。
【請求項８】
前記プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記印刷送信用データが復号できた場合には、前記印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データに基づく印刷を実行しない、選択印刷実行手段を、さらに備えることを特徴とする請求項７に記載のプリンタ。
【請求項９】
前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、前記印刷送信用データを復号して取得した印刷データを、前記代替プリンタの公開鍵で暗号化して、前記代替印刷送信用データを生成する、ことを特長とする請求項８に記載のプリンタ。
【請求項１０】
前記印刷送信用データに含まれているプリンタ位置情報と、前記プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データに基づく印刷を実行しない、選択印刷実行手段をさらに備えることを特徴とする請求項６に記載のプリンタ。
【請求項１１】
前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、受信した前記印刷送信用データから印刷データを取得し、この取得した印刷データに前記代替プリンタのプリンタ位置情報を結合することにより、前記代替印刷送信用データを生成する、ことを特徴とする請求項１０に記載のプリンタ。
【請求項１２】
印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、
当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記他のプリンタの前記相対距離をプリンタ毎にリスト化した代替プリンタリストを、前記印刷送信用データを送信した印刷クライアントに送信する、リスト送信手段と、
をさらに備えることを特徴とする請求項１に記載のプリンタ。
【請求項１３】
前記代替プリンタリストを、前記相対距離の近い順にソートする、ソート手段をさらに備えることを特徴とする請求項１２に記載のプリンタ。
【請求項１４】
前記代替プリンタリストには、前記他のプリンタを特定するための情報として、前記他のプリンタのネットワークアドレスが含まれている、ことを特徴とする請求項１２又は請求項１３に記載のプリンタ。
【請求項１５】
印刷データに基づいて印刷送信用データを生成する、印刷送信用データ生成手段と、
前記印刷送信用データをプリンタに送信する、第１送信手段と、
前記プリンタが印刷を実行できる状態にない場合に、前記プリンタから代替印刷通知を受信する、代替印刷通知受信手段であって、前記代替印刷通知には、代替プリンタの候補をリスト化した代替プリンタリストが少なくとも含まれており、前記代替プリンタリストには、前記プリンタと前記代替プリンタの候補との間の相対距離が少なくとも含まれている、代替印刷通知受信手段と、
少なくとも前記代替プリンタリストに基づいて、代替プリンタを選択する、代替プリンタ選択手段と、
選択した代替プリンタに、印刷送信用データを送信する、第２送信手段と、
を備えることを特徴とする印刷クライアント。
【請求項１６】
各プリンタに対応する公開鍵をテーブル化した公開鍵テーブルを、さらに備えており、
前記印刷送信用データ生成手段は、印刷データを送信するプリンタに対応する公開鍵を用いて、この印刷データを暗号化することにより、前記印刷送信用データを生成する、ことを特徴とする請求項１５に記載の印刷クライアント。
【請求項１７】
前記代替プリンタ選択手段は、前記代替プリンタリストと前記公開鍵テーブルとに基づいて、前記公開鍵テーブルにおいて公開鍵を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択する、ことを特徴とする請求項１６に記載の印刷クライアント。
【請求項１８】
前記第２送信手段は、前記代替プリンタとして選択されたプリンタの公開鍵を用いて、再び印刷データを暗号化して印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信する、ことを特徴とする請求項１７に記載の印刷クライアント。
【請求項１９】
各プリンタの設置されている場所を特定するためのプリンタ位置情報を、各プリンタに対応させてテーブル化したプリンタ位置情報テーブルを、さらに備えており、
前記印刷送信用データ生成手段は、印刷データを送信するプリンタのプリンタ位置情報を、印刷データに結合することにより、前記印刷送信用データを生成する、ことを特徴とする請求項１５に記載の印刷クライアント。
【請求項２０】
前記代替プリンタ選択手段は、前記代替プリンタリストと前記プリンタ位置情報テーブルとに基づいて、前記プリンタ位置情報テーブルにおいてプリンタ位置情報を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択する、ことを特徴とする請求項１９に記載の印刷クライアント。
【請求項２１】
前記第２送信手段は、前記代替プリンタとして選択されたプリンタのプリンタ位置情報を、印刷データに結合して、印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信する、ことを特徴とする請求項２０に記載の印刷クライアント。
【請求項２２】
１のプリンタの設置されている場所を特定するための第１プリンタ位置情報を取得する、第１プリンタ位置情報取得手段と、
他のプリンタの少なくとも１つについて、その設置されている場所を特定するための第２プリンタ位置情報を取得する、第２プリンタ位置情報取得手段と、
前記第１プリンタ位置情報と前記第２プリンタ位置情報とに基づいて、前記１のプリンタと前記他の１のプリンタとの間の相対距離を算出する、相対距離算出手段と、
前記相対距離算出手段が算出した前記相対距離を前記１のプリンタに格納する、相対距離格納手段と、
を備えることを特徴とする印刷システム。
【請求項２３】
前記１のプリンタは、
印刷クライアントが送信した印刷送信用データを前記１のプリンタで受信する、印刷送信用データ受信手段と、
前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記相対距離が最も近い他のプリンタを、代替プリンタに選択して、前記印刷送信用データの代替印刷を要求する、代替印刷要求手段と、
をさらに備えることを特徴とする請求項２２に記載の印刷システム。
【請求項２４】
前記１のプリンタは、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にあるかどうかを判断する、相対距離判断手段を、さらに備えることを特徴とする請求項２３に記載の印刷システム。
【請求項２５】
前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にあると判断した場合には、受信した前記印刷送信用データを前記代替プリンタに転送する、転送手段を備えることを特徴とする請求項２４に記載の印刷システム。
【請求項２６】
前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にないと判断した場合には、受信した前記印刷送信用データに基づいて、前記代替プリンタに適合した代替印刷送信用データを生成し、この代替印刷送信用データを前記代替プリンタに送信する、代替送信手段をさらに備えることを特徴とする請求項２５に記載の印刷システム。
【請求項２７】
前記代替送信手段は、受信した前記印刷送信用データを復号することにより印刷データを取得し、この取得した印刷データを前記代替プリンタで復号できるように再び暗号化することにより、前記代替印刷送信用データを生成する、ことを特徴とする請求項２６に記載の印刷システム。
【請求項２８】
前記１のプリンタは、前記第１プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記印刷送信用データが復号できた場合には、前記印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データに基づく印刷を実行しない、第１選択印刷実行手段を、さらに備え、
前記代替プリンタは、前記第２プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記１のプリンタから受信した前記印刷送信用データ又は前記代替印刷送信用データが復号できた場合には、前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しない、第２選択印刷実行手段を、さらに備える、
ことを特徴とする請求項２７に記載の印刷システム。
【請求項２９】
前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、前記印刷送信用データを復号して取得した印刷データを、前記代替プリンタの公開鍵で暗号化して、前記代替印刷送信用データを生成する、ことを特長とする請求項２８に記載の印刷システム。
【請求項３０】
前記１のプリンタは、前記印刷送信用データに含まれているプリンタ位置情報と、前記第１プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データに基づく印刷を実行しない、第１選択印刷実行手段をさらに備え、
前記代替プリンタは、前記印刷送信用データ又は前記代替印刷送信用データに含まれているプリンタ位置情報と、前記第２プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しない、第２選択印刷実行手段をさらに備える、
ることを特徴とする請求項２６に記載の印刷システム。
【請求項３１】
前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、受信した前記印刷送信用データから印刷データを取得し、この取得した印刷データに前記代替プリンタのプリンタ位置情報を結合することにより、前記代替印刷送信用データを生成する、ことを特徴とする請求項３０に記載の印刷システム。
【請求項３２】
前記１のプリンタは、
印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、
前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記他のプリンタの前記相対距離をプリンタ毎にリスト化した代替プリンタリストを、前記印刷送信用データを送信した印刷クライアントに送信する、リスト送信手段と、
をさらに備えることを特徴とする請求項２２に記載の印刷システム。
【請求項３３】
前記１のプリンタは、前記代替プリンタリストを、前記相対距離の近い順にソートする、ソート手段をさらに備えることを特徴とする請求項３２に記載の印刷システム。
【請求項３４】
前記代替プリンタリストには、前記他のプリンタを特定するための情報として、前記他のプリンタのネットワークアドレスが含まれている、ことを特徴とする請求項３２又は請求項３３に記載の印刷システム。
【請求項３５】
前記印刷クライアントは、
少なくとも前記代替プリンタリストに基づいて、代替プリンタを選択する、代替プリンタ選択手段と、
選択した代替プリンタに、印刷送信用データを送信する、再送信手段と、
をさらに備えることを特徴とする請求項３２乃至請求項３４のいずれかに記載の印刷システム。
【請求項３６】
前記印刷クライアントは、
各プリンタに対応する公開鍵をテーブル化した公開鍵テーブルと、
印刷データを送信するプリンタに対応する公開鍵を用いて、この印刷データを暗号化することにより、前記印刷送信用データを生成し、前記１のプリンタに送信する、印刷送信用データ送信手段と、
をさらに備えることを特徴とする請求項３５に記載の印刷システム。
【請求項３７】
前記代替プリンタ選択手段は、前記代替プリンタリストと前記公開鍵テーブルとに基づいて、前記公開鍵テーブルにおいて公開鍵を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択する、ことを特徴とする請求項３６に記載の印刷システム。
【請求項３８】
前記再送信手段は、前記代替プリンタとして選択されたプリンタの公開鍵を用いて、再び印刷データを暗号化して印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信する、ことを特徴とする請求項３７に記載の印刷システム。
【請求項３９】
前記印刷クライアントは、
各プリンタの設置されている場所を特定するためのプリンタ位置情報を、各プリンタに対応させてテーブル化したプリンタ位置情報テーブルと、
印刷データを送信するプリンタのプリンタ位置情報を、印刷データに結合することにより、前記印刷送信用データを生成し、前記１のプリンタに送信する、印刷送信用データ送信手段と、
をさらに備えることを特徴とする請求項３５に記載の印刷システム。
【請求項４０】
前記代替プリンタ選択手段は、前記代替プリンタリストと前記プリンタ位置情報テーブルとに基づいて、前記プリンタ位置情報テーブルにおいてプリンタ位置情報を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択する、ことを特徴とする請求項３９に記載の印刷システム。
【請求項４１】
前記再送信手段は、前記代替プリンタとして選択されたプリンタのプリンタ位置情報を、印刷データに結合して、印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信する、ことを特徴とする請求項４０に記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ、印刷クライアント、及び、印刷システムに関し、特に、プリンタに送信されるデータのセキュリティを確保しつつ、代替印刷を可能にするプリンタ、印刷クライアント、及び、印刷システムに関する。
【０００２】
【従来の技術】
今日、ネットワークを用いてプリンタを共有する印刷システムが、盛んに使用されるようになってきている。すなわち、１つのネットワークに、印刷クライアントとしてコンピュータを複数接続するとともに、例えば１台のプリンタをこのネットワークに接続することにより、複数の印刷クライアントからの印刷データを１台のプリンタが受け付けて、印刷を行うことができるようになってきている。
【０００３】
このようなネットワークを用いた印刷システムにおいては、様々なユーザが、各印刷クライアントから印刷データをプリンタに送信し、印刷を行うことができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、印刷クライアントから送信された印刷データを、プリンタが無条件に印刷してしまうこととすると、ユーザが意図した場所に設置されていないプリンタであってもそのまま印刷がなされてしまうこととなる。特に、以前使用されていた場所から別な場所に移動されたプリンタの場合、ネットワーク上のアドレスであるＩＰアドレス等は変更されていないこともあることから、移動後の場所にあるプリンタで、送信した印刷データの印刷が行われてしまうこととなる。このような事態は、印刷データのセキュリティを確保したいユーザにとっては、望ましくない。
【０００５】
さらには、印刷クライアントから送信された印刷データを、プリンタが無条件で印刷してしまうこととすると、本来そのプリンタで印刷する権限のない印刷クライアントからの印刷データまで、プリンタが印刷をしてしまうこととなる。この場合、そのプリンタで印刷できる印刷クライアントを制限できないこととなり、やはり好ましくない。特に、不正な意図をもって大量の印刷データを送信するユーザも存在し得ることを考えると、何らかの印刷制限を設ける必要がある。
【０００６】
また例えば、会社のある部署で使用していたプリンタを別の部署に移動させて、さらに使用する場合もある。このような場合、これまでそのプリンタで印刷する権限を有していた印刷クライアントであっても、プリンタの移動をした後には、このプリンタで印刷する権限を与えたくないことがある。このような状況において、印刷クライアントからの印刷データを、プリンタ側で印刷しないようにする技術の必要性が認められる。
【０００７】
さらに、印刷クライアントから印刷データを受信したプリンタが、何らかの原因により印刷不能である場合もある。例えば、紙詰まりや紙無しエラー等の理由により、印刷を実行できる状況でない場合がある。このような場合には、この印刷データを代わりに印刷できる代替プリンタで印刷を行うようにした方が、ユーザの利便性が向上する。
【０００８】
そこで本発明は、前記課題に鑑みてなされたものであり、印刷データのセキュリティを確保しつつ、代替印刷を実現することのできる、プリンタ、印刷クライアント、及び、印刷システムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明に係るプリンタは、当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得手段と、前記プリンタ位置情報取得手段が取得した前記プリンタ位置情報を、他のプリンタに送信し、前記他のプリンタに、当該プリンタと前記他のプリンタとの間の相対距離を算出させる、プリンタ位置情報送信手段と、前記他のプリンタから前記相対距離を受信する、相対距離受信手段と、前記相対距離受信手段が受信した前記相対距離を格納する、相対距離格納手段と、を備えることを特徴とする。
【００１０】
あるいは、本発明に係るプリンタは、当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得する、プリンタ位置情報取得手段と、他のプリンタから、前記他のプリンタのプリンタ位置情報を受信する、プリンタ位置情報受信手段と、前記プリンタ位置情報取得手段で取得したプリンタ位置情報と、前記プリンタ位置情報受信手段で受信したプリンタ位置情報とに基づいて、当該プリンタと前記他のプリンタとの間の相対距離を算出する、相対距離算出手段と、前記相対距離算出手段が算出した前記相対距離を格納する、相対距離格納手段と、を備えることを特徴とする。
【００１１】
これらの場合、印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記相対距離が最も近い他のプリンタを、代替プリンタに選択して、前記印刷送信用データの代替印刷を要求する、代替印刷要求手段と、をさらに備えるようにしてもよい。
【００１２】
さらに、前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にあるかどうかを判断する、相対距離判断手段を、さらに備えるようにしてもよい。
【００１３】
この場合、前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にあると判断した場合には、受信した前記印刷送信用データを前記代替プリンタに転送する、転送手段を備えるようにしてもよい。
【００１４】
この場合、前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと当該プリンタとの間の前記相対距離が所定範囲内にないと判断した場合には、受信した前記印刷送信用データに基づいて、前記代替プリンタに適合した代替印刷送信用データを生成し、この代替印刷送信用データを前記代替プリンタに送信する、代替送信手段をさらに備えるようにしてもよい。
【００１５】
この場合、前記代替送信手段は、受信した前記印刷送信用データを復号することにより印刷データを取得し、この取得した印刷データを前記代替プリンタで復号できるように再び暗号化することにより、前記代替印刷送信用データを生成するようにしてもよい。
【００１６】
さらに、前記プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記印刷送信用データが復号できた場合には、前記印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データに基づく印刷を実行しない、選択印刷実行手段を、さらに備えるようにしてもよい。
【００１７】
この場合、前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、前記印刷送信用データを復号して取得した印刷データを、前記代替プリンタの公開鍵で暗号化して、前記代替印刷送信用データを生成するようにしてもよい。
【００１８】
一方、前記印刷送信用データに含まれているプリンタ位置情報と、前記プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データに基づく印刷を実行しない、選択印刷実行手段をさらに備えるようにしてもよい。
【００１９】
この場合、前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、受信した前記印刷送信用データから印刷データを取得し、この取得した印刷データに前記代替プリンタのプリンタ位置情報を結合することにより、前記代替印刷送信用データを生成するようにしてもよい。
【００２０】
一方、印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記他のプリンタの前記相対距離をプリンタ毎にリスト化した代替プリンタリストを、前記印刷送信用データを送信した印刷クライアントに送信する、リスト送信手段と、をさらに備えるようにしてもよい。
【００２１】
さらに、前記代替プリンタリストを、前記相対距離の近い順にソートする、ソート手段をさらに備えるようにしてもよい。
【００２２】
また、前記代替プリンタリストには、前記他のプリンタを特定するための情報として、前記他のプリンタのネットワークアドレスが含まれているようにしてもよい。
【００２３】
本発明に係る印刷クライアントは、印刷データに基づいて印刷送信用データを生成する、印刷送信用データ生成手段と、前記印刷送信用データをプリンタに送信する、第１送信手段と、前記プリンタが印刷を実行できる状態にない場合に、前記プリンタから代替印刷通知を受信する、代替印刷通知受信手段であって、前記代替印刷通知には、代替プリンタの候補をリスト化した代替プリンタリストが少なくとも含まれており、前記代替プリンタリストには、前記プリンタと前記代替プリンタの候補との間の相対距離が少なくとも含まれている、代替印刷通知受信手段と、少なくとも前記代替プリンタリストに基づいて、代替プリンタを選択する、代替プリンタ選択手段と、選択した代替プリンタに、印刷送信用データを送信する、第２送信手段と、を備えることを特徴とする。
【００２４】
また、各プリンタに対応する公開鍵をテーブル化した公開鍵テーブルを、さらに備えており、前記印刷送信用データ生成手段は、印刷データを送信するプリンタに対応する公開鍵を用いて、この印刷データを暗号化することにより、前記印刷送信用データを生成するようにしてもよい。
【００２５】
この場合、前記代替プリンタ選択手段は、前記代替プリンタリストと前記公開鍵テーブルとに基づいて、前記公開鍵テーブルにおいて公開鍵を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択するようにしてもよい。
【００２６】
この場合、前記第２送信手段は、前記代替プリンタとして選択されたプリンタの公開鍵を用いて、再び印刷データを暗号化して印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信するようにしてもよい。
【００２７】
一方、各プリンタの設置されている場所を特定するためのプリンタ位置情報を、各プリンタに対応させてテーブル化したプリンタ位置情報テーブルを、さらに備えており、前記印刷送信用データ生成手段は、印刷データを送信するプリンタのプリンタ位置情報を、印刷データに結合することにより、前記印刷送信用データを生成するようにしてもよい。
【００２８】
また、前記代替プリンタ選択手段は、前記代替プリンタリストと前記プリンタ位置情報テーブルとに基づいて、前記プリンタ位置情報テーブルにおいてプリンタ位置情報を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択するようにしてもよい。
【００２９】
この場合、前記第２送信手段は、前記代替プリンタとして選択されたプリンタのプリンタ位置情報を、印刷データに結合して、印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信するようにしてもよい。
【００３０】
本発明に係る印刷システムは、１のプリンタの設置されている場所を特定するための第１プリンタ位置情報を取得する、第１プリンタ位置情報取得手段と、他のプリンタの少なくとも１つについて、その設置されている場所を特定するための第２プリンタ位置情報を取得する、第２プリンタ位置情報取得手段と、前記第１プリンタ位置情報と前記第２プリンタ位置情報とに基づいて、前記１のプリンタと前記他の１のプリンタとの間の相対距離を算出する、相対距離算出手段と、前記相対距離算出手段が算出した前記相対距離を前記１のプリンタに格納する、相対距離格納手段と、を備えることを特徴とする。
【００３１】
この場合、前記１のプリンタは、印刷クライアントが送信した印刷送信用データを前記１のプリンタで受信する、印刷送信用データ受信手段と、前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記相対距離が最も近い他のプリンタを、代替プリンタに選択して、前記印刷送信用データの代替印刷を要求する、代替印刷要求手段と、をさらに備えるようにしてもよい。
【００３２】
さらに、前記１のプリンタは、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にあるかどうかを判断する、相対距離判断手段を、さらに備えるようにしてもよい。
【００３３】
この場合、前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にあると判断した場合には、受信した前記印刷送信用データを前記代替プリンタに転送する、転送手段を備えるようにしてもよい。
【００３４】
さらに、前記代替印刷要求手段は、前記相対距離判断手段が、前記代替プリンタと前記１のプリンタとの間の前記相対距離が所定範囲内にないと判断した場合には、受信した前記印刷送信用データに基づいて、前記代替プリンタに適合した代替印刷送信用データを生成し、この代替印刷送信用データを前記代替プリンタに送信する、代替送信手段をさらに備えるようにしてもよい。
【００３５】
この場合、前記代替送信手段は、受信した前記印刷送信用データを復号することにより印刷データを取得し、この取得した印刷データを前記代替プリンタで復号できるように再び暗号化することにより、前記代替印刷送信用データを生成するようにしてもよい。
【００３６】
さらに、前記１のプリンタは、前記第１プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記印刷送信用データが復号できた場合には、前記印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データに基づく印刷を実行しない、第１選択印刷実行手段を、さらに備え、前記代替プリンタは、前記第２プリンタ位置情報取得手段で取得したプリンタ位置情報又はその周囲の位置情報を少なくとも含むパスフレーズを用いて生成したいずれかの秘密鍵で、前記１のプリンタから受信した前記印刷送信用データ又は前記代替印刷送信用データが復号できた場合には、前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しようとし、復号できなかった場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しない、第２選択印刷実行手段を、さらに備えるようにしてもよい。
【００３７】
この場合、前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、前記印刷送信用データを復号して取得した印刷データを、前記代替プリンタの公開鍵で暗号化して、前記代替印刷送信用データを生成するようにしてもよい。
【００３８】
一方、前記１のプリンタは、前記印刷送信用データに含まれているプリンタ位置情報と、前記第１プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データに基づく印刷を実行しない、第１選択印刷実行手段をさらに備え、前記代替プリンタは、前記印刷送信用データ又は前記代替印刷送信用データに含まれているプリンタ位置情報と、前記第２プリンタ位置情報取得手段で取得したプリンタ位置情報との差が、所定範囲内であるかどうかを判断し、両者の差が前記所定範囲内にある場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しようとし、両者の差が前記所定範囲内にない場合には前記印刷送信用データ又は前記代替印刷送信用データに基づく印刷を実行しない、第２選択印刷実行手段をさらに備えるようにしてもよい。
【００３９】
この場合、前記選択印刷実行手段で前記印刷送信用データに基づく印刷を実行しようとした際に、当該プリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記代替送信手段は、受信した前記印刷送信用データから印刷データを取得し、この取得した印刷データに前記代替プリンタのプリンタ位置情報を結合することにより、前記代替印刷送信用データを生成するようにしてもよい。
【００４０】
一方、前記１のプリンタは、印刷クライアントが送信した印刷送信用データを受信する、印刷送信用データ受信手段と、前記１のプリンタが前記印刷送信用データに基づく印刷を実行できる状態にない場合には、前記他のプリンタの前記相対距離をプリンタ毎にリスト化した代替プリンタリストを、前記印刷送信用データを送信した印刷クライアントに送信する、リスト送信手段と、をさらに備えるようにしてもよい。
【００４１】
この場合、前記１のプリンタは、前記代替プリンタリストを、前記相対距離の近い順にソートする、ソート手段をさらに備えるようにしてもよい。
【００４２】
また、前記代替プリンタリストには、前記他のプリンタを特定するための情報として、前記他のプリンタのネットワークアドレスが含まれているようにしてもよい。
【００４３】
また、前記印刷クライアントは、少なくとも前記代替プリンタリストに基づいて、代替プリンタを選択する、代替プリンタ選択手段と、選択した代替プリンタに、印刷送信用データを送信する、再送信手段と、をさらに備えるようにしてもよい。
【００４４】
さらに、前記印刷クライアントは、各プリンタに対応する公開鍵をテーブル化した公開鍵テーブルと、印刷データを送信するプリンタに対応する公開鍵を用いて、この印刷データを暗号化することにより、前記印刷送信用データを生成し、前記１のプリンタに送信する、印刷送信用データ送信手段と、をさらに備えるようにしてもよい。
【００４５】
この場合、前記代替プリンタ選択手段は、前記代替プリンタリストと前記公開鍵テーブルとに基づいて、前記公開鍵テーブルにおいて公開鍵を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択するようにしてもよい。
【００４６】
また、前記再送信手段は、前記代替プリンタとして選択されたプリンタの公開鍵を用いて、再び印刷データを暗号化して印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信するようにしてもよい。
【００４７】
一方、前記印刷クライアントは、各プリンタの設置されている場所を特定するためのプリンタ位置情報を、各プリンタに対応させてテーブル化したプリンタ位置情報テーブルと、印刷データを送信するプリンタのプリンタ位置情報を、印刷データに結合することにより、前記印刷送信用データを生成し、前記１のプリンタに送信する、印刷送信用データ送信手段と、をさらに備えるようにしてもよい。
【００４８】
この場合、前記代替プリンタ選択手段は、前記代替プリンタリストと前記プリンタ位置情報テーブルとに基づいて、前記プリンタ位置情報テーブルにおいてプリンタ位置情報を保持しているプリンタの中で、最も相対距離の近いプリンタを、前記代替プリンタとして選択するようにしてもよい。
【００４９】
また、前記再送信手段は、前記代替プリンタとして選択されたプリンタのプリンタ位置情報を、印刷データに結合して、印刷送信用データを再生成し、この再生成した印刷送信用データを、前記代替プリンタに送信するようにしてもよい。
【００５０】
なお、本発明は、プリンタを制御するための制御方法、印刷クライアントを制御するための制御方法、又は、印刷システムを制御するための制御方法として、実現することもできる。さらには、そのようにプリンタ、印刷クライアント、又は、印刷システムを制御するためのプログラムやそのプログラムを記録した記録媒体として実現することもできる。
【００５１】
【発明の実施の形態】
〔第１実施形態〕
本発明の第１実施形態に係る印刷システムは、プリンタが受信した印刷送信用データを復号する際には、プリンタが設置されている位置を表すプリンタ位置情報のみならず、このプリンタ位置情報の周囲の位置情報も含めて複数のパスフレーズを生成し、こられのパスフレーズを用いて生成したいずれかの秘密鍵で印刷送信用データＤ１０が復号できた場合には、その印刷を実行する。しかし、例えば紙詰まり等の理由でこのプリンタが印刷を実行できない場合には、このプリンタは、このプリンタからの相対距離に基づいて、受信した印刷データを代わりに印刷する代替プリンタを選定し、この代替プリンタに代替印刷を要求するようにしたものである。より詳しくを、以下に説明する。
【００５２】
まず、図１に基づいて、本実施形態に係る印刷システムの構成を説明する。図１は、本実施形態に係る印刷システムのハードウェア構成を示すブロック図である。
【００５３】
この図１に示すように、本実施形態に係る印刷システムは、ネットワーク１０に接続された印刷クライアント２０と、同じくネットワーク１０に接続されたプリンタ３０、３２とを備えている。本実施形態においては、ネットワーク１０は、ＴＣＰ／ＩＰ（ｔｒａｎｓｍｉｓｓｉｏｎ　ｃｏｎｔｒｏｌ　ｐｒｏｔｏｃｏｌ／ｉｎｔｅｒｎｅｔ　ｐｒｏｔｏｃｏｌ）を用いたインターネットにより構成されている。但し、ネットワーク１０の態様は、インターネットに限るものではなく、例えば、イーサーネット等のＬＡＮや、インターネットとＬＡＮの混在により構成されていてもよい。
【００５４】
印刷クライアント２０は、例えば、ホストコンピュータやパーソナルコンピュータと呼ばれる各種のコンピュータにより構成されている。本実施形態では、特に印刷クライアント２０は、印刷データを暗号化した印刷送信用データを生成し、この印刷送信用データをネットワーク１０を介してプリンタ３０及び／又はプリンタ３２に送信する。このネットワーク１０に接続される印刷クライアントの台数は任意であり、１台でもよく、複数台でもよい。また、この印刷クライアント２０は、コンピュータに限られるものではなく、例えば、撮影した画像を印刷する必要のあるデジタルカメラや、印刷画像データをコンテンツとして蓄積してあるコンテンツサーバ等でもよい。
【００５５】
また本実施形態においては、プリンタ３０、３２はいわゆるネットワークプリンタである。本実施形態においては、特にプリンタ３０、３２は、印刷送信用データを印刷クライアント２０から受信したときには、この印刷送信用データを復号できた場合にのみ、復号されることにより取得された印刷データに基づく印刷を行う。また、本実施形態においては、プリンタ３０、３２は、紙詰まり等の理由により印刷を実行できない場合には、復号された印刷データを代わりに印刷する代替プリンタを選定する。この選定した代替プリンタが所定範囲内に位置している場合には、受信した印刷送信用データをそのまま代替プリンタにネットワーク１０を介して転送する。一方、この選定した代替プリンタが所定範囲内に位置していない場合には、この代替プリンタの公開鍵を用いて印刷データを再び暗号化した印刷送信用データを生成する。そして、この代替プリンタにネットワーク１０を介して、生成した印刷送信用データを送信する。この印刷送信用データを受信した代替プリンタは、この印刷送信用データを復号し、復号できた場合には印刷を実行する。
【００５６】
本実施形態においては、プリンタ３０、３２は、ネットワーク１０に直接接続されており、各プリンタ３０、３２は固有のネットワークアドレスを有している。したがって、印刷クライアント２０は、このネットワークアドレスを指定することにより、印刷送信用データをプリンタ３０又はプリンタ３２に送信することができる。
【００５７】
但し、この図１においては、プリンタ３０、３２をネットワーク１０に直接接続しているが、プリンタサーバを介して接続するようにしてもよい。また、このネットワーク１０に接続されるプリンタの台数は任意であり、１台でもよく、複数台でもよい。
【００５８】
図２は、プリンタ３０の内部構成を説明するためのブロック図である。なお、プリンタ３２の内部構成もプリンタ３０と同様である。すなわち、プリンタ３０とプリンタ３２は同じプリンタ機種である。
【００５９】
この図２に示すように、プリンタ３０は、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）４０と、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）４２と、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）４４とを備えており、これらは互いに内部バス４６を介して接続されている。また、この内部バス４６には、通信用のインターフェース４８が接続されており、この通信用のインターフェース４８を介して、上述したネットワーク１０にプリンタ３０が接続されている。さらに、内部バス４６には、インターフェース５０が接続されており、このインターフェース５０には印刷エンジン５２が接続されている。
【００６０】
また、内部バス４６には、位置検出部５４が接続されている。この位置検出部５４は、プリンタ３０が設置されている位置を特定する機能を有する。本実施形態においては、例えば、ＧＰＳ（ｇｌｏｂａｌ　ｐｏｓｉｔｉｏｎｉｎｇ　ｓｙｓｔｅｍ）により構成されており、このプリンタ３０が設置されている位置の緯度、経度、高度が特定できるようになっている。現時点におけるＧＰＳの精度は、緯度、経度、高度（Ｘ軸、Ｙ軸、Ｚ軸）において、それぞれ±１０ｍ程度であると言われている。
【００６１】
但し、この位置検出部５４は、ＧＰＳを用いた構成に限らず、例えば、無線ＬＡＮによりこのプリンタ３０がネットワーク１０に接続されている場合には、このプリンタ３０が収容されている無線基地局に基づいて、プリンタ３０の位置を特定するようにしてもよい。或いは、ＰＨＳ（Ｐｅｒｓｏｎａｌ　Ｈａｎｄｙｐｈｏｎｅ　Ｓｙｓｔｅｍ）などの移動体通信技術を利用して、プリンタ３０の位置を特定するようにしてもよい。
【００６２】
さらに、本実施形態に係るプリンタ３０の内部バス４６には、インターフェース５６が接続されており、このインターフェース５６を介して、書き換え可能な不揮発性記憶装置として、ハードディスク５８が接続されている。本実施形態においては、このハードディスク５８は、例えば、書き換え可能な不揮発性記憶装置であるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　ＲＯＭ）に置き換えることも可能である。
【００６３】
図３は、印刷クライアント２０の内部構成を説明するためのブロック図である。この図３に示すように、本実施形態に係る印刷クライアント２０は、コンピュータ本体６０とディスプレイ６２とを備えて構成されている。
【００６４】
コンピュータ本体６０は、ＣＰＵ６４と、ＲＡＭ６６と、ＲＯＭ６８とを備えており、これらは互いに内部バス７０を介して接続されている。また、この内部バス７０には、通信用のインターフェース７２が接続されており、この通信用のインターフェース７２を介して、上述したネットワーク１０に印刷クライアント２０が接続されている。
【００６５】
さらに、内部バス７０には、インターフェース７４が接続されており、このインターフェース７４には大容量記憶装置であるハードディスク７６が接続されている。また、内部バス７０には、インターフェース７８が接続されており、このインターフェース７８から延びるケーブル８０を介して、上述したディスプレイ６２が接続されている。
【００６６】
次に、図４及び図５を参照して、本実施形態に係る印刷システムにおいて、例えば、印刷クライアント２０がプリンタ３０に印刷を要求した場合の処理を、概略的に説明する。図４は、印刷送信用データを受信したプリンタ３０がプリンタ３２に代替印刷を行う場合に、このプリンタ３２がプリンタ３０から所定範囲内に位置している場合の処理内容を説明するブロック図であり、図５は、同様の場合に、プリンタ３２がプリンタ３０から所定範囲内に位置していない場合の処理内容を説明するブロック図である。
【００６７】
まず、印刷クライアント２０は、予め、例えばプリンタ３０からこのプリンタ３０の公開鍵ＰＫＥＹ０を取得しておく。本実施形態においては、この公開鍵ＰＫＥＹ０の取得は、ネットワーク１０を介して行われる。すなわち、プリンタ３０は、公開鍵ＰＫＥＹ０を要求してきた印刷クライアントが正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、公開鍵ＰＫＥＹ０を通知する。但し、プリンタ３０の公開鍵ＰＫＥＹ０は、必ずしもネットワーク１０を介して印刷クライアント２０に通知する必要はない。例えば、印刷クライアント２０のユーザが、正当な権限を有する者であれば、プリンタ３０の設置場所に出向いて、プリンタ３０を操作することができるのであるから、ユーザがプリンタ３０のコントロールパネルを操作して、プリンタ３０の公開鍵ＰＫＥＹ０を取得するようにしてもよい。この場合、ユーザは、例えば、プリンタ３０の公開鍵ＰＫＥＹ０をフレキシブルディスク等の記録媒体に記録し、これを印刷クライアント２０に読み込ませればよい。
【００６８】
次に、印刷クライアント２０のユーザは、印刷するべきデータを作成し、印刷クライアント２０に対してプリンタ３０を指定して印刷を指示する。図６は、印刷データＤ０５の暗号化及び復号の流れを説明する図である。
【００６９】
この図６に示すように、印刷クライアント２０は、取得した公開鍵ＰＫＥＹ０を用いて印刷データＤ０５を暗号化し、印刷送信用データＤ１０を生成する。ここで、印刷データＤ０５は、プリンタ３０で印刷エンジン５２を駆動した印刷を行うのに必要となる本来の印刷データを示している。なお、印刷送信用データＤ１０は、この図６に示した印刷データＤ０５以外のデータを含んでいてもよい。
【００７０】
図４及び図５に示すように、続いて、印刷クライアント２０は、この生成した印刷送信用データＤ１０を、ネットワーク１０を介して、プリンタ３０に送信する。この印刷送信用データＤ１０を受信したプリンタ３０は、図２に示すように、この受信した印刷送信用データＤ１０をＲＡＭ４２に一旦格納する。そして、プリンタ３０は、この暗号化された印刷送信用データＤ１０を、複数の所定の秘密鍵を用いて復号し、印刷送信用データＤ１０に含まれている印刷データＤ０５を取得しようとする（図６参照）。いずれかの秘密鍵でこの復号ができた場合には、印刷送信用データＤ１０に含まれている印刷データＤ０５を、印刷エンジン５２に送信して印刷を行い、いずれの秘密鍵でも復号できなかった場合には、印刷は行わない。
【００７１】
なお、本実施形態においては、公開鍵及び秘密鍵の生成は、プリンタ３０、３２の設けられている位置を示すプリンタ位置情報に依存して形成されるものであるが、詳しくは後述するものとする。また、復号のためのアルゴリズムの詳細についても後述するが、本実施形態においては、プリンタ３０、３２において、プリンタ位置情報が多少変動しても、正常に復号ができるアルゴリズムが用いられている。
【００７２】
ここで、プリンタ３０は、何らかの理由で印刷を行うことができなかったとする。すると、プリンタ３０は、代替プリンタリストテーブルを検索し、この印刷データＤ０５の印刷を代替させるプリンタを選択する。この際には、最もプリンタ３０からの相対距離が近いプリンタが、代替プリンタとして選択される。ここでは、代替プリンタとしてプリンタ３２が選択されたとする。
【００７３】
次に、プリンタ３０は、このプリンタ３０と代替プリンタ３２との間の距離が、所定範囲内にあるかどうかを判断する。プリンタ３０と代替プリンタ３２との間の距離が所定範囲内にある場合には、図４に示すように、本実施形態においては、受信した印刷送信用データＤ１０をそのまま転送しても代替プリンタ３２で復号されることが期待できるので、そのまま印刷送信用データＤ１０を代替プリンタ３２に転送する。代替プリンタ３２では、受信した印刷送信用データＤ１０を複数の所定の秘密鍵を用いて、復号しようとする。そして、いずれかの秘密鍵を用いることにより、この印刷送信用データＤ１０の復号ができた場合には印刷を行い、いずれの秘密鍵を用いても印刷送信用データＤ１０の復号ができなかった場合には、印刷を行わない。
【００７４】
一方、プリンタ３０と代替プリンタ３２との間の距離が所定範囲内にない場合には、図５に示すように、受信した印刷送信用データＤ１０をそのまま転送すると、代替プリンタ３２で復号されないと考えられる。このため、プリンタ３０は、図５に示すように、代替プリンタ３２の公開鍵ＰＫＥＹ１で印刷データＤ０５を暗号化して、印刷送信用データＤ１５を生成する。そして、この印刷送信用データＤ１５を、代替プリンタ３２に送信する。この印刷送信用データＤ１５を受信した代替プリンタ３２では、複数の所定の秘密鍵を用いて、印刷送信用データＤ１５を復号しようとする。そして、いずれかの秘密鍵を用いることにより、印刷送信用データＤ１５の復号ができた場合には印刷を行い、いずれの秘密鍵を用いても、印刷送信用データＤ１５の復号ができなかった場合には、印刷を行わない。
【００７５】
このようにすることにより、ユーザは、プリンタ３０が設置された後に一度だけ、公開鍵ＰＫＥＹ０を取得し、この公開鍵ＰＫＥＹ０を用いて試し印刷した後、印刷クライアント２０に保持しておくと、公開鍵ＰＫＥＹ０はこれ以降更新されないので、後述するように、後にプリンタ３０が移動された場合に、このプリンタ３０で印刷ができないようになる。そして、印刷ができないことがユーザに伝わることにより、プリンタ３０が所定の場所にないことが発覚し、プリンタ３０による印刷を未然に防げるのである。
【００７６】
次に、印刷クライアント２０、プリンタ３０、３２が行う処理について詳細に説明する。まず、公開鍵を印刷クライアント２０が取得する場合における、印刷クライアント２０及びプリンタ３０、３２の処理について、詳しく説明する。
【００７７】
図７は、印刷クライアント２０で実行される公開鍵要求処理を説明するフローチャートである。この公開鍵要求処理は、印刷クライアントのＲＯＭ６８又はハードディスク７６に格納されている公開鍵要求プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。また、この公開鍵要求処理は、プリンタ３０、３２が設置された後、ユーザが印刷クライアント２０に初期設定として１回だけ実行させる処理である。ここでは、印刷クライアント２０からプリンタ３０に公開鍵を要求する場合を想定して説明する。
【００７８】
図７に示すように、この公開鍵要求処理においては、まず印刷クライアント２０は、プリンタ３０に接続する（ステップＳ１００）。本実施形態においては、印刷クライアント２０は、プリンタ３０のネットワークアドレスを指定することにより、印刷クライアント２０とプリンタ３０との間の接続を確立する。
【００７９】
次に、印刷クライアント２０は、プリンタ３０へ認証情報を送信する（ステップＳ１０２）。本実施形態においては、この認証情報として、印刷クライアントを特定するためのクライアントＩＤと、パスワードとの組み合わせを用いている。したがって、印刷クライアント２０は、クライアントＩＤとパスワードとを、プリンタ３０へ送信する。
【００８０】
これに続いて、印刷クライアント２０は、プリンタ３０から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ３０で認証が認められたかどうかを判断する（ステップＳ１０４）。認証が認められなかった場合（ステップＳ１０４：Ｎｏ）には、上述したステップＳ１０２からを繰り返す。
【００８１】
一方、認証が認められた場合（ステップＳ１０４：Ｙｅｓ）には、印刷クライアント２０は、公開鍵取得要求をプリンタ３０へ送信する（ステップＳ１０６）。そして、プリンタ３０から公開鍵ＰＫＥＹ０を受信したかどうかを判断する（ステップＳ１０８）。プリンタ３０から公開鍵ＰＫＥＹ０を受信していない場合（ステップＳ１０８：Ｎｏ）には、このステップＳ１０８を繰り返して待機する。
【００８２】
一方、プリンタ３０から公開鍵ＰＫＥＹ０を受信した場合（ステップＳ１０８：Ｙｅｓ）には、この公開鍵ＰＫＥＹ０を格納する（ステップＳ１１０）。本実施形態においては、印刷クライアント２０は、ハードディスク７６に公開鍵テーブルＴＢ２０を設けており、取得したプリンタ位置情報は、この公開鍵テーブルＴＢ２０に格納され保持される。
【００８３】
図８は、この公開鍵テーブルＴＢ２０の構成の一例を示す図である。この図８に示すように、公開鍵テーブルＴＢ２０は、プリンタを特定するための情報を格納する項目Ｄ２０と、取得した公開鍵をプリンタに対応させて格納する項目Ｄ２１とを備えている。このように、公開鍵テーブルＴＢ２０は、複数のプリンタに関する公開鍵を、各プリンタ毎にテーブル化して保持することができるようになっている。また、このようにハードディスク７８の公開鍵テーブルＴＢ２０に公開鍵を格納することにより、印刷クライアント２０の電源がオフされて再び電源が投入された場合でも、それ以前に取得した公開鍵をそのままハードディスク７８から読み出して使用することができるようになっている。
【００８４】
この公開鍵テーブルＴＢ２０に、取得した公開鍵テーブルＴＢ２０を格納することにより、図７に示した公開鍵要求処理は終了する。
【００８５】
次に、図９に基づいて、印刷クライアント２０の公開鍵要求処理に対応して、プリンタ３０、３２で実行される公開鍵送信処理について説明する。この図９は、プリンタ３０、３２で実行される公開鍵送信処理を説明するフローチャートである。この公開鍵送信処理は、プリンタ３０、３２のＲＯＭ４４又はハードディスク５８に格納されている公開鍵送信プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。ここでも上述と同様に、印刷クライアント２０からプリンタ３０に公開鍵が要求された場合を想定して説明する。
【００８６】
図９に示すように、まず、プリンタ３０は、印刷クライアント２０と接続を確立する（ステップＳ１７０）。これは上述した印刷クライアント２０側のステップＳ１００に対応している。続いて、プリンタ３０は、印刷クライアント２０から認証情報を受信したかどうかを判断する（ステップＳ１７２）。認証情報を受信していない場合（ステップＳ１７２：Ｎｏ）には、このステップＳ１７２の処理を繰り返して待機する。
【００８７】
一方、認証情報を印刷クライアント２０から受信した場合（ステップＳ１７２：Ｙｅｓ）には、その認証情報がこのプリンタ３０に予め登録してある認証情報と一致するかどうかを判断する（ステップＳ１７４）。具体的には、上述したように、印刷クライアント２０からクライアントＩＤとパスワードが認証情報として送信されてくるので、このクライアントＩＤとパスワードが、このプリンタ３０に予め登録されているクライアントＩＤとパスワードと一致するかどうかを判断する。
【００８８】
認証情報が一致しなかった場合（ステップＳ１７４：Ｎｏ）には、プリンタ３０は印刷クライアント２０に、認証が受け入れられなかった旨の認証結果を送信し（ステップＳ１７６）、ステップＳ１７２の処理に戻る。一方、認証が一致した場合（ステップＳ１７４：Ｙｅｓ）には、プリンタ３０は印刷クライアント２０に、認証が受け入れられた旨の認証結果を送信する（ステップＳ１７８）。
【００８９】
なお、これらステップＳ１７２からステップＳ１７８の認証処理は、省くことも可能である。その場合、図７の公開鍵要求処理におけるステップＳ１０２及びステップＳ１０４も省くことができる。
【００９０】
次に、プリンタ３０は、印刷クライアント２０から公開鍵取得要求を受信したかどうかを判断する（ステップＳ１８０）。この公開鍵取得要求を受信していない場合（ステップＳ１８０：Ｎｏ）には、このステップＳ１８０の処理を繰り返して待機する。
【００９１】
一方、印刷クライアント２０から公開鍵取得要求を受信した場合（ステップＳ１８０：Ｙｅｓ）には、プリンタ３０は、このプリンタ３０の機器固有情報を取得する（ステップＳ１８２）。ここで、機器固有情報とは、このプリンタ３０に関して、固有に割り当てられている識別情報であり、例えば、プリンタ３０の製造シリアルナンバー、ＭＡＣアドレス等がある。但し、本実施形態においては、この機器固有情報は、プリンタ３０とプリンタ３２とで同じものが使われているとする。
【００９２】
次に、プリンタ３０は、位置検出部５４から、その時点におけるプリンタ３０の位置を表すプリンタ位置情報を取得する（ステップＳ１８４）。続いて、プリンタ３０は、機器固有情報と統計プリンタ位置情報とを用いてパスフレーズを作成する（ステップＳ１８６）。このパスフレーズの作成手法は種々のものが考えられるが、本実施形態においては、単純に機器固有情報の後ろに統計プリンタ位置情報をつなげることにより、パスフレーズを作成する。なお、パスフレーズは、これら機器固有情報及び統計プリンタ位置情報以外のデータを含んでいてもよい。
【００９３】
次に、プリンタ３０は、作成したパスフレーズを用いて、公開鍵暗号法により、公開鍵と秘密鍵とを生成する（ステップＳ１８８）。公開鍵暗号法では、使用するパスフレーズが同じであれば、再び、公開鍵と秘密鍵とを生成しても、同じものが生成されるという性質を有している。続いて、プリンタ３０は、この生成した公開鍵と秘密鍵のうち、公開鍵のみを印刷クライアント２０に送信する（ステップＳ１９０）。なお、秘密鍵は保存されることなく破棄される。これにより、本実施形態に係る位置情報送信処理が終了する。
【００９４】
次に、プリンタが他のプリンタから相対距離を含むプリンタ情報を取得して、代替プリンタリストテーブルを生成する処理を説明する。
【００９５】
図１０は、プリンタ３０、３２で実行される代替プリンタリスト生成処理を説明するフローチャートである。この代替プリンタリスト生成処理は、プリンタ３２のＲＯＭ４４又はハードディスク５８に格納されている代替プリンタリスト生成プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。この代替プリンタリスト生成処理は、所定の時間間隔で実行される処理であり、例えば、１日１回の割合で実行される処理である。
【００９６】
また、この代替プリンタリスト生成処理は、この処理を実行するプリンタから所定の範囲内にあるプリンタに対して行われる処理である。例えば、プリンタ３０がこの代替プリンタリスト生成処理を実行する場合、プリンタ３０は、このプリンタ３０と同じネットワークアドレスグループにあるすべてのプリンタに対して、この代替プリンタリスト生成処理を実行することになる。また、別な例としては、このプリンタ３０が無線通信を行うプリンタである場合には、プリンタ３０は、このプリンタ３０の無線が届く範囲内にあるすべてのプリンタに対して、この代替プリンタリスト生成処理を実行することとなる。
【００９７】
この図１０に示すように、プリンタ３０は、プリンタ情報を取得しようとしているプリンタ３２と接続を確立する（ステップＳ２００）。本実施形態においては、プリンタ３０は、プリンタ３２のネットワークアドレスを指定することにより、印刷クライアント２０とプリンタ３０との間の接続を確立する。また、本実施形態においては、プリンタ３０とプリンタ３２との間の通信は、ＳＳＬ（ｓｅｃｕｒｅ　ｓｏｃｋｅｔ　ｌａｙｅｒ）通信などにより、セキュリティが確保されているものとする。
【００９８】
次に、プリンタ３０は、位置検出部５４から、その時点における自らのプリンタ位置情報を取得する（ステップＳ２０２）。続いて、プリンタ３０は、このプリンタ位置情報を、プリンタ３２に送信する（ステップＳ２０４）。
【００９９】
次に、プリンタ３０は、プリンタ３２からプリンタ情報を受信したかどうかを判断する（ステップＳ２０６）。このプリンタ情報を受信していない場合（ステップＳ２０６：Ｎｏ）には、このステップＳ２０６の処理を繰り返して待機する。
【０１００】
一方、プリンタ３２からプリンタ情報を受信した場合（ステップＳ２０６：Ｙｅｓ）には、このプリンタ情報を、代替プリンタリストテーブルに格納する（ステップＳ２０８）。図１１は、本実施形態に係る代替プリンタリストテーブルＴＢ４０の構成の一例を示す図である。本実施形態においては、この代替プリンタリストテーブルＴＢ４０は、ハードディスク５８に形成される。この図１１に示すように、本実施形態における代替プリンタリストテーブルＴＢ４０は、項目として、ネットワークアドレスＤ４０と、プリンタ機種情報Ｄ４１と、相対距離Ｄ４２と、公開鍵Ｄ４３とを備えている。
【０１０１】
ネットワークアドレスＤ４０には、プリンタを特定するための情報として、ネットワークアドレスが格納される。プリンタ機種情報Ｄ４１には、プリンタの機種に関する情報が格納される。相対距離Ｄ４２には、このプリンタ３０と代替プリンタとの間の相対的な距離が格納される。公開鍵Ｄ４３には、代替プリンタの公開鍵が格納される。本実施形態においては、これらネットワークアドレスＤ４０、プリンタ機種情報Ｄ４１、相対距離Ｄ４２、公開鍵Ｄ４３に格納する情報は、ステップＳ２０６で受信したプリンタ情報に含まれている。このように、代替プリンタリストテーブルＴＢ４０では、代替プリンタの候補が、相対距離を含めて、プリンタ毎にリスト化されている。
【０１０２】
次に、図１０に示すように、プリンタ３０は、この代替プリンタリストテーブルＴＢ４０のソートを行う（ステップＳ２１０）。本実施形態においては、このプリンタ３０と代替プリンタとの間の距離が近い順にソートされる。具体的には、相対距離には、Ｘ軸、Ｙ軸、Ｚ軸、それぞれについて、このプリンタ３０と代替プリンタとの間の距離が、ΔＸ、ΔＹ、ΔＺとして格納されているので、これらΔＸ、ΔＹ、ΔＺに基づいて、プリンタ３０から近い順にソートする。例えば、次の式（１）によりプリンタ３０と代替プリンタとの間の直線的な距離Ｌを算出し、この直線的な距離Ｌの値の小さい順にソートすればよい。
【０１０３】
Ｌ＝√｛（ΔＸ）２＋（ΔＹ）２＋（ΔＺ）２｝　　…（１）
この代替プリンタリストテーブルＴＢ４０のソートをすることにより、本実施形態に係る代替プリンタリスト生成処理は終了する。
【０１０４】
次に、この代替プリンタリスト生成処理に対応して、他のプリンタで実行されるプリンタ情報送信処理について説明する。図１２は、プリンタ３０、３２で実行されるプリンタ情報送信処理を説明するフローチャートである。このプリンタ情報送信処理は、プリンタ３２のＲＯＭ４４又はハードディスク５８に格納されているプリンタ情報送信プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。ここでは、上述同様に、プリンタ３０からプリンタ３２にプリンタ情報の送信が要求される場合を想定して説明する。
【０１０５】
図１２に示すように、プリンタ３２は、プリンタ３０との接続を確立する（ステップＳ２２０）。これは、上述したステップＳ２００に対応する処理である。したがって、本実施形態においては、プリンタ３０とプリンタ３２との間の通信は、ＳＳＬ（ｓｅｃｕｒｅ　ｓｏｃｋｅｔ　ｌａｙｅｒ）通信などにより、セキュリティが確保される。
【０１０６】
次に、プリンタ３２は、相手のプリンタであるプリンタ３０から、プリンタ位置情報を受信したかどうかを判断する（ステップＳ２２２）。このプリンタ位置情報を受信していない場合（ステップＳ２２２：Ｎｏ）には、このステップＳ２２２の処理を繰り返して待機する。
【０１０７】
一方、プリンタ位置情報を受信した場合（ステップＳ２２２：Ｙｅｓ）には、プリンタ３２は、位置検出部５４から自らのその時点におけるプリンタ位置情報を取得する（ステップＳ２２４）。続いて、プリンタ３２は、プリンタ３０のプリンタ位置情報と、プリンタ３２のプリンタ位置情報とに基づいて、お互いの相対距離を算出する（ステップＳ２２６）。本実施形態においては、この相対距離の算出は、Ｘ軸、Ｙ軸、Ｚ軸のそれぞれについて差分を求めることにより、算出する。すなわち、プリンタ３０の緯度、経度、高度をそれぞれＸ１、Ｙ１、Ｚ１とし、プリンタ３２のプリンタ位置情報の緯度、経度、高度をそれぞれＸ２、Ｙ２、Ｚ２とした場合、ΔＸ＝｜Ｘ１−Ｘ２｜、ΔＹ＝｜Ｙ１−Ｙ２｜、ΔＺ＝｜Ｚ１−Ｚ２｜により、算出する。
【０１０８】
次に、プリンタ３２は、自らの機器固有情報と自らのプリンタ位置情報とに基づいてパスフレーズを作成し（ステップＳ２２８）、公開鍵暗号法により公開鍵と秘密鍵を生成する（ステップＳ２３０）。これらステップＳ２２８、Ｓ２３０の処理は、上述したステップＳ１８６、Ｓ１８８の処理と同様である。また、上述したように、パスフレーズを生成する際に使用するプリンタ３２の機器固有情報は、プリンタ３０の機器固有情報と同じである。
【０１０９】
次に、プリンタ３２は、プリンタ情報を生成する（ステップＳ２３２）。本実施形態においては、ステップＳ２２６で算出した相対距離と、プリンタ３２のプリンタ機種情報と、ステップＳ２３０で生成したプリンタ３２の公開鍵とを少なくとも含むプリンタ情報を生成する。続いて、プリンタ３２は、このプリンタ情報をプリンタ３０に送信する（ステップＳ２３４）。これにより、本実施形態に係るプリンタ情報送信処理が終了する。
【０１１０】
次に、印刷クライアント２０が印刷を行いたいときに、その印刷要求をプリンタ３０、３２に送信する場合の印刷クライアント２０及びプリンタ３０、３２の処理について、詳しく説明する。
【０１１１】
図１３は、印刷クライアント２０で実行される印刷要求処理を説明するフローチャートである。この印刷要求処理は、印刷クライアントのＲＯＭ６８又はハードディスク７６に格納されている印刷要求プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。ここでは、印刷クライアント２０からプリンタ３０に印刷を要求する場合を想定して説明する。
【０１１２】
この図１０に示すように、印刷クライアント２０は、ユーザの印刷要求に基づいて、印刷データＤ０５を作成する（ステップＳ２４０）。この印刷データＤ０５は、プリンタ３０が通常のプリンタである場合に、印刷を実際に行うのに必要となるデータである。
【０１１３】
次に、印刷クライアント２０は、ハードディスク７６の公開鍵テーブルＴＢ２０から、プリンタ３０の公開鍵ＰＫＥＹ０を読み出す（ステップＳ２４２）。続いて、印刷クライアント２０は、プリンタ３０の公開鍵ＰＫＥＹ０を用いて、印刷データＤ０５を暗号化して、印刷送信用データＤ１０を生成する（ステップＳ２４４）。なお、印刷送信用データＤ１０は、印刷データＤ０５以外のデータを含んでいてもよい。
【０１１４】
次に、印刷クライアント２０は、この暗号化した印刷送信用データを、プリンタ３０に送信する（ステップＳ２４６）。具体的には、プリンタ３０のネットワークアドレスを指定して、ネットワーク１０に印刷送信用データＤ１０を送出する。
【０１１５】
次に、印刷クライアント２０は、プリンタ３０から印刷結果情報を受信したかどうかを判断する（ステップＳ２４８）。印刷結果情報を受信していない場合（ステップＳ２４８：Ｎｏ）には、このステップＳ２４８の処理を繰り返して待機する。一方、印刷結果情報を受信した場合（ステップＳ２４８：Ｙｅｓ）には、その印刷結果情報が印刷完了通知であるかどうかを判断する（ステップＳ２５０）。
【０１１６】
この印刷結果情報が印刷完了通知である場合（ステップＳ２５０：Ｙｅｓ）には、プリンタ３０で印刷が正常に終了したことを意味しているので、ユーザにプリンタ３０で印刷が完了した旨を通知する（ステップＳ２５２）。一方、受信した印刷結果情報が印刷完了通知でない場合（ステップＳ２５０：Ｎｏ）には、その印刷結果情報が解読不能通知であるかどうかを判断する（ステップＳ２５４）。
【０１１７】
印刷結果情報が解読不能通知である場合（ステップＳ２５４：Ｙｅｓ）には、ユーザに、プリンタ３０で印刷送信用データＤ１０の復号ができなかったため、印刷が行われなかった旨を通知する（ステップＳ２５６）。一方、印刷結果情報が解読不能通知でない場合（ステップＳ２５４：Ｎｏ）には、その印刷結果情報が代替印刷通知であるかどうかを判断する（ステップＳ２５８）。
【０１１８】
印刷結果情報が代替印刷通知である場合（ステップＳ２５８：Ｙｅｓ）には、代替印刷であることをユーザに通知するとともに、代替印刷通知に含まれている代替プリンタを特定する情報もユーザに通知する（ステップＳ２６０）。一方、印刷結果情報が代替印刷通知でない場合（ステップＳ２５８：Ｎｏ）には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う（ステップＳ２６２）。
【０１１９】
これらステップＳ２５２、ステップＳ２５６、ステップＳ２６０及びステップＳ２６２の通知により、この印刷クライアント２０における印刷要求処理は終了する。
【０１２０】
図１４及び図１５は、印刷クライアント２０の印刷要求処理に対応して、プリンタ３０、３２で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタ３０、３２のＲＯＭ４４又はハードディスク５８に格納されている印刷実行プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。ここでも上述と同様に、印刷クライアント２０からプリンタ３０に印刷が要求された場合を想定して説明する。
【０１２１】
図１４に示すように、プリンタ３０は、印刷送信用データＤ１０をネットワーク１０から受信したかどうかを判断する（ステップＳ２７０）。何ら印刷送信用データＤ１０を受信していない場合（ステップＳ２７０：Ｎｏ）には、このステップＳ２７０の処理を繰り返して待機する。
【０１２２】
一方、印刷送信用データＤ１０を受信した場合（ステップＳ２７０：Ｙｅｓ）には、プリンタ３０は自らの機器固有情報を取得する（ステップＳ２７２）。続いて、プリンタ３０は、位置検出部５４から、その時点におけるプリンタ３０のプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを取得する（ステップＳ２７４）。このようにプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを、その都度、位置検出部５４から取得することとしているのは、プリンタ３０が別の場所に移動された場合には、このプリンタ３０がユーザの意図しない場所に設置されている可能性があり、このような場合にはプリンタ３０で印刷が行われないようにするためである。
【０１２３】
次に、プリンタ３０は、２７個のパスフレーズを生成する（ステップＳ２７６）。本実施形態においては、パスフレーズは、機器固有情報の後ろにプリンタ位置情報を結合することにより作成されるが、この結合するプリンタ位置情報を、ステップＳ２７４で取得したプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗの他に、その周辺２６カ所の位置情報についてもパスフレーズを作成しておくのである。
【０１２４】
図１６は、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗと、その周辺２６カ所の位置情報の関係を説明する概念図である。この図１６に示すように、ステップＳ２７４で位置検出部５４から取得したプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを中心位置に据える。この場合、位置検出部５４の最小測定単位１つ分だけ正負の方向にずらした位置情報が、その周囲に２６カ所存在することとなる。そこで、本実施形態においては、位置検出部５４のプリンタ位置情報が公開鍵を送信したときと比べてずれた場合でも、この公開鍵に基づいて暗号化された印刷送信用データＤ１０が復号できる秘密鍵を見つけ出すべく、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗの周囲についても、これらを位置情報として用いたパスフレーズを生成しておくこととしたのである。
【０１２５】
この図１６の例では、位置検出部５４の最小測定単位が１０ｍ単位であるとしている。したがって、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗに加えて、次の２６カ所のプリンタ位置情報が追加で定められる。
【０１２６】
（１）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ、Ｚｎｏｗ
（２）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ＋１０、Ｚｎｏｗ
（３）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗ＋１０
（４）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ、Ｚｎｏｗ
（５）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ−１０、Ｚｎｏｗ
（６）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗ−１０
（７）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ
（８）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ、Ｚｎｏｗ＋１０
（９）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ＋１０、Ｚｎｏｗ＋１０
（１０）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ−１０、Ｚｎｏｗ
（１１）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ、Ｚｎｏｗ−１０
（１２）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ−１０、Ｚｎｏｗ−１０
（１３）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ−１０、Ｚｎｏｗ
（１４）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ、Ｚｎｏｗ−１０
（１５）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ＋１０、Ｚｎｏｗ−１０
（１６）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ
（１７）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ、Ｚｎｏｗ＋１０
（１８）プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ−１０、Ｚｎｏｗ＋１０
（１９）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ＋１０
（２０）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ−１０
（２１）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ−１０、Ｚｎｏｗ＋１０
（２２）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ＋１０
（２３）プリンタ位置情報Ｘｎｏｗ＋１０、Ｙｎｏｗ−１０、Ｚｎｏｗ−１０
（２４）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ−１０、Ｚｎｏｗ＋１０
（２５）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ＋１０、Ｚｎｏｗ−１０
（２６）プリンタ位置情報Ｘｎｏｗ−１０、Ｙｎｏｗ−１０、Ｚｎｏｗ−１０
次に、図１４に示すように、プリンタ３０は、ステップＳ２７６で生成した２７個のパスフレーズを用いて、公開鍵暗号法により公開鍵と秘密鍵とを生成する（ステップＳ２７８）。したがって、本実施形態においては、２７個の公開鍵と２７個の秘密鍵とが生成されることとなる。続いて、プリンタ３０はカウンタＭを１に設定する（ステップＳ２８０）。
【０１２７】
次に、プリンタ３０は、Ｍ番目の秘密鍵を用いて、印刷送信用データＤ１０を復号する（ステップＳ２８２）。どのような順番で秘密鍵を使用するかは任意であるが、本実施形態においては、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを用いて生成した秘密鍵を一番始めに使用することとしている。なぜなら、位置検出部５４の再現性にもよるが、通常であれば、その時点で取得したプリンタ位置情報を用いて生成した秘密鍵で印刷送信用データＤ１０が復号できる可能性が最も高いと考えられるからである。
【０１２８】
次に、プリンタ３０は、秘密鍵を用いて印刷送信用データＤ１０の復号ができたかどうかを判断する（ステップＳ２８４）。復号ができた場合（ステップＳ２８４：Ｙｅｓ）には、このプリンタ３０自体が印刷実行可能な状態にあるかどうかを判断する（ステップＳ２８６）。例えば、プリンタ３０で紙詰まりが発生していたり、紙無しエラーが発生していたりした場合には、プリンタ３０は印刷実行可能な状態にないと判断する。
【０１２９】
プリンタ３０が印刷可能な状態である場合（ステップＳ２８６：Ｙｅｓ）には、得られた印刷データＤ０５に基づいて、印刷エンジン５２を駆動した印刷を実行する（ステップＳ２８８）。具体的には、印刷データＤ０５の言語解釈を行い、印刷エンジン５２に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン５２に送信することにより、印刷エンジン５２で印刷用紙等に印刷が行われる。
【０１３０】
このことから分かるように、本実施形態においては、ステップＳ２７６で２７カ所のプリンタ位置情報を少なくとも含むパスフレーズを生成し、これらのパスフレーズを用いてステップＳ２７８で２７個の秘密鍵を生成し、これら２７個の秘密鍵のいずれかで印刷送信用データＤ１０が復号できた場合には、印刷送信用データＤ１０がプリンタ位置情報と合致したと判断することとなる。
【０１３１】
この印刷が正常に完了した時点で、プリンタ３０は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント２０に送信する（ステップＳ２９０）。そして、上述したステップＳ２７０の処理に戻る。
【０１３２】
これに対して、ステップＳ２８４において、印刷送信用データＤ１０の復号ができなかったと判断した場合（ステップＳ２８４：Ｎｏ）には、カウンタＭが２７であるかどうかを判断する（ステップＳ２９２）。カウンタＭが２７でない場合（ステップＳ２９２：Ｎｏ）、つまり、まだ生成した秘密鍵が残っている場合には、カウンタＭに１を加えて（ステップＳ２９４）、上述したステップＳ２８２からを繰り返す。
【０１３３】
一方、カウンタＭが２７である場合（ステップＳ２９２：Ｙｅｓ）、つまり、生成した秘密鍵が残っていない場合には、解読不能通知を印刷結果情報として、印刷クライアント２０に送信する（ステップＳ２９６）。すなわち、生成した２７個の秘密鍵のいずれでも、受信した印刷送信用データＤ１０の復号ができなかったことになるので、プリンタ３０は、印刷送信用データＤ１０がプリンタ位置情報と合致しなかった判断する。そして、上述したステップＳ２７０の処理に戻る。
【０１３４】
これに対して、上述したステップＳ２８６で、プリンタ３０が印刷実行可能な状態にないと判断した場合（ステップＳ２８６：Ｎｏ）には、図１５に示すように、プリンタ３０は、代替印刷を行わせる代替プリンタを選択する（ステップＳ３１０）。具体的には、プリンタ３０は、代替プリンタリストテーブルＴＢ４０を検索し、相対距離Ｄ４２が最も近いプリンタを選択する。ここでは、プリンタ３２が代替プリンタとして選択されたとする。
【０１３５】
次に、プリンタ３０は、代替プリンタとして選択したプリンタとの距離が、所定範囲内であるかどうかを判断する（ステップＳ３１２）。本実施形態においては、図１６に示したように最小測定単位である１０ｍを基準に、２７個のプリンタ位置を設定しているので、これに対応して、所定範囲は緯度、経度、高度のそれぞれについて±１０ｍに設定されている。なぜなら、相対距離Ｄ４２のΔＸ、ΔＹ、ΔＺのそれぞれが±１０ｍの範囲内であれば、印刷クライアント２０から受信した印刷送信用データＤ１０をそのままプリンタ３２に転送しても、プリンタ３２で生成した秘密鍵を用いて復号できると考えられるからである。すなわち、上述したように、プリンタ３０の機器固有情報と、その周辺にあるプリンタの機器固有情報とは、同一に設定されている。このため、プリンタ３０と代替プリンタ３２との間の距離が所定範囲内にあれば、生成される公開鍵と秘密鍵は同じになり、そのまま印刷送信用データＤ１０を転送しても代替プリンタ３２で復号できると考えられる。
【０１３６】
したがって、代替プリンタとして選択したプリンタとの距離が所定範囲内である場合（ステップＳ３１２：Ｙｅｓ）には、プリンタ３０から受信した印刷送信用データＤ１０をそのまま別のプリンタ３２に送信する（ステップＳ３１４）。
【０１３７】
一方、代替プリンタとして選択したプリンタとの距離が所定範囲内でない場合（ステップＳ３１２：Ｎｏ）には、代替プリンタの公開鍵を取得する（ステップＳ３１６）。具体的には、代替プリンタリストテーブルＴＢ４０を検索して、プリンタ３２の公開鍵ＰＫＥＹ１を取得する。
【０１３８】
次に、プリンタ３０は、この公開鍵ＰＫＥＹ１を用いて、印刷データＤ０５を暗号化して、印刷送信用データＤ１５を生成する（ステップＳ３１８）。続いて、プリンタ３０は、この生成した印刷送信用データＤ１５を、ネットワーク１０を介して、代替プリンタであるプリンタ３２に送信する（ステップＳ３２０）。
【０１３９】
これらステップＳ３１４及びステップＳ３２０の後、プリンタ３０は、印刷結果情報として代替印刷通知を印刷クライアント２０に送信する（ステップＳ３２２）。本実施形態においては、この代替印刷通知には、代替印刷を行うプリンタを特定する情報が含まれている。そして、プリンタ３０は、上述した図１４のステップＳ２７０に戻る。
【０１４０】
なお、プリンタ３０から印刷送信用データＤ１０又は印刷送信用データＤ１５を受信したプリンタ３２でも、この印刷実行処理が行われる。このため、プリンタ３２で印刷送信用データＤ１０、Ｄ１５の復号ができた場合には、プリンタ３２で印刷が行われ、復号ができなかった場合には、プリンタ３２で印刷が行われないこととなる。
【０１４１】
以上のように、本実施形態に係る印刷システムによれば、印刷クライアント２０は、暗号化して送信した印刷送信用データＤ１０の印刷をできるプリンタを、プリンタ位置情報に基づいて限定することができるので、印刷クライアント２０のユーザが意図していない位置にあるプリンタで印刷が行われしまうのを回避することができる。例えば、プリンタ３０が別の場所に移動されたが、ネットワーク１０内におけるプリンタ３０のネットワークアドレスは変更されていない場合に、印刷クライアント２０から誤って印刷送信用データＤ１０をこのプリンタ３０に送信してしまっても、プリンタ３０ではプリンタ位置情報が変更されているため、ステップＳ２７６で作成されるパスフレーズが移動前と異なったものになる。このため、このパスフレーズを用いて生成された秘密鍵を用いても、印刷送信用データＤ１０の復号はできず、プリンタ３０では印刷が行われない。このため、印刷データＤ０５のセキュリティを高めることができる。
【０１４２】
一方、プリンタ３０、３２側においても、本来であればこのプリンタ３０、３２で印刷する権限のない者が、印刷データをこれらプリンタ３０、３２に送信して、大量の印刷をプリンタ３０、３２に実行させてしまうのを回避することができる。
【０１４３】
また、本実施形態においては、パスフレーズに機器固有情報も含めることとしたので、何らかの理由により第三者が、プリンタ３０の位置を知得したとしても、プリンタ３０の機器固有情報が分からなければ、プリンタ３０で使用されているパスフレーズを特定することができない。このため、正当な権限なき第三者がプリンタ３０で印刷を実行する可能性を、極めて低いものとすることができる。
【０１４４】
さらに、本実施形態に係るプリンタ３０、３２によれば、位置検出部５４で取得したプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗと、このプリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗの周囲の位置情報とを用いて、パスフレーズを生成し、この生成したパスフレーズにより複数の秘密鍵を生成するとともに、この生成した秘密鍵のいずれかで印刷送信用データＤ１０が復号できるかどうかを試みることとした。このため、位置検出部５４の検出精度の関係から、公開鍵送信処理において公開鍵を生成する際に使用したプリンタ位置情報と、印刷実行処理において秘密鍵を生成する際に使用するプリンタ位置情報との間にずれが生じていても、このずれを吸収して、印刷送信用データＤ１０を復号できる秘密鍵を生成することができる。このため、印刷送信用データＤ１０を円滑に復号できるようになる。
【０１４５】
さらに、本実施形態に係るプリンタ３０、３２によれば、印刷送信用データＤ１０の復号ができたとしても、プリンタが印刷実行可能な状態にない場合には、このプリンタ３０、３２から別のプリンタに代替印刷をすることとした。このため、ユーザは、例えばプリンタ３０で印刷ができなくとも、プリンタ３２から印刷結果を取得することができる。
【０１４６】
また、プリンタ３０、３２は、自ら周囲のプリンタと通信をして、周囲のプリンタとの間の相対的な距離を把握し、代替プリンタリストテーブルＴＢ４０を生成することとした。このため、プリンタ３０、３２が、代替プリンタを選択するにあたっては、最初に印刷送信用データＤ１０を受信したプリンタから最も近い位置にある別のプリンタを選択できるようになり、このため、ユーザが当初予定していたプリンタの位置から、最も近い位置にあるプリンタで、代替印刷の印刷結果を取得することができるようになる。
【０１４７】
さらに、周辺にあるプリンタ同士が互いに同一の機器固有情報であるようにするとともに、印刷送信用データＤ１０を受信したプリンタと代替プリンタとの間の相対距離が、所定範囲内にある場合には、印刷送信用データＤ１０を受信したプリンタはこの印刷送信用データＤ１０をそのまま代替プリンタに転送することとした。一方、印刷送信用データＤ１０を受信したプリンタと代替プリンタとの間の相対距離が、所定範囲内にない場合には、印刷送信用データＤ１０を受信したプリンタは、この印刷送信用データＤ１０を復号して取得した印刷データＤ０５を、代替プリンタの公開鍵で再び暗号化して、印刷送信用データＤ１５を生成し、この印刷送信用データＤ１５を代替プリンタに送信することとした。このため、相対距離が所定範囲内にある場合には、暗号化のための処理を省くことができる。
【０１４８】
〔第２実施形態〕
本発明の第２実施形態は、上述した第１実施形態に変形を加えて、印刷クライアント２０から印刷送信用データを受信したプリンタ３０が、印刷を実行できない状態にある場合には、これを印刷クライアント２０に通知して、印刷クライアント２０から代替プリンタに再び印刷送信用データを送信するようにしたものである。より詳しくを以下に説明する。
【０１４９】
なお、本実施形態に係るプリンタ３０、３２のハードウェア構成は、上述した図２と同様であり、上述した印刷クライアント２０のハードウェア構成は、図３と同様である。但し、本実施形態においては、プリンタ３０の機器固有情報とプリンタ３２の機器固有情報は、必ずしも、同一である必要はない。また、本実施形態においては、代替印刷をする際の印刷データの流れが、上述した第１実施形態と異なる。
【０１５０】
図１７は、本実施形態に係る印刷システムにおいて、印刷送信用データを受信したプリンタ３０が印刷を実行できる状態でない場合に、プリンタ３２で代替印刷を行う際の処理内容を説明するブロック図である。
【０１５１】
まず、印刷クライアント２０のユーザは、印刷するべきデータを作成し、印刷クライアント２０に対してプリンタ３０を指定して印刷を指示する。印刷クライアント２０は、プリンタ３０の公開鍵ＰＫＥＹ０を用いて印刷データＤ０５を暗号化し、印刷送信用データＤ１０を生成する。続いて、印刷クライアント２０は、この生成した印刷送信用データＤ１０を、ネットワーク１０を介して、プリンタ３０に送信する。この印刷送信用データＤ１０を受信したプリンタ３０は、図２に示すように、この受信した印刷送信用データＤ１０をＲＡＭ４２に一旦格納する。そして、プリンタ３０は、この暗号化された印刷送信用データＤ１０を複数の所定の秘密鍵を用いて、復号しようとする。そして、いずれかの秘密鍵を用いることにより、この印刷送信用データＤ１０の復号ができた場合には印刷を行い、いずれの秘密鍵を用いても印刷送信用データＤ１０の復号ができなかった場合には、印刷を行わない。
【０１５２】
ここで、プリンタ３０は、何らかの理由で印刷を行うことができなかったとする。すると、プリンタ３０は、代替印刷通知とともに、このプリンタ３０が保持している代替プリンタリストテーブルを印刷クライアント２０に送信する。この代替プリンタリストテーブルを受信した印刷クライアント２０は、この代替プリンタリストテーブルと公開鍵テーブルＴＢ２０とに基づいて、印刷クライアント２０が公開鍵を取得しているプリンタの中で、プリンタ３０から最も近いプリンタを代替プリンタとして選択する。ここでは、代替プリンタとして、プリンタ３２が選択されたとする。
【０１５３】
次に、印刷クライアント２０は、印刷データＤ０５を、代替プリンタ３２の公開鍵ＰＫＥＹ１を用いて暗号化し、印刷送信用データＤ１５を生成する。そして、印刷クライアント２０は、この印刷送信用データＤ１５を代替プリンタ３２に、ネットワーク１０を介して、送信する。
【０１５４】
この印刷送信用データＤ１５を受信した代替プリンタ３２では、この印刷送信用データＤ１５を複数の所定の秘密鍵を用いて、復号しようとする。そして、いずれかの秘密鍵を用いることにより、この印刷送信用データＤ１５の復号ができた場合には印刷を行い、いずれの秘密鍵を用いても印刷送信用データＤ１５の復号ができなかった場合には、印刷を行わない。
【０１５５】
次に、各プリンタの公開鍵を印刷クライアント２０が取得する場合における、印刷クライアント２０及びプリンタ３０、３２の処理についてであるが、これらの処理は上述した第１実施形態と同様である。一方、代替プリンタリストテーブルを生成するためのプリンタ３０、３２の処理であるが、基本的には、上述した第１実施形態と同様である。但し、第１実施形態に係る代替プリンタリストテーブルＴＢ４０と比べると、本実施形態に係る代替プリンタリストテーブルは公開鍵Ｄ４３を含んでいない点が異なる。
【０１５６】
図１８は、本実施形態に係る代替プリンタリストテーブルＴＢ６０の構成の一例を示す図である。本実施形態においても、この代替プリンタリストテーブルＴＢ６０は、プリンタ３０、３２のハードディスク５８に格納されている。この図１８に示すように、本実施形態に係る代替プリンタリストテーブルＴＢ６０は、データ項目として、ネットワークアドレスＤ４０と、プリンタ機種情報Ｄ４１と、相対距離Ｄ４２とを含んでいるが、公開鍵は含まれていない。これは、代替印刷をする場合に、この代替プリンタリストテーブルＴＢ６０を印刷クライアント２０に送信するので、公開鍵のセキュリティを確保するためである。
【０１５７】
このため、本実施形態に係るプリンタ情報送信処理は、上述した第１実施形態と部分的に異なる。図１９は、本実施形態に係るプリンタ情報送信処理を説明するフローチャートであり、上述した図１２に対応している。本実施形態に係るプリンタ情報送信処理は、ステップＳ２２０〜ステップＳ２２６までは、上述した第１実施形態と同様である。但し、ステップＳ２２６に続くステップＳ４００以降の処理が上述した第１実施形態と異なる。
【０１５８】
すなわち、ステップＳ２２６で相手のプリンタとの間の相対距離を算出した後に、プリンタ３２は、プリンタ情報を生成する（ステップＳ４００）。本実施形態においては、このプリンタ情報には、プリンタ３２のネットワークアドレスと、プリンタ機種情報と、ステップＳ２２６で算出した相対距離とが、少なくとも含まれている。
【０１５９】
次に、プリンタ３２は、この生成したプリンタ情報を、プリンタ３０に送信する（ステップＳ４０２）。これにより、本実施形態に係るプリンタ情報送信処理が終了する。
【０１６０】
次に、本実施形態に係る印刷実行処理であるが、プリンタ３０が印刷を実行できる状態でないと判断した場合の処理が、第１実施形態と異なる。図２０は、プリンタ３０が印刷を実行できる状態でないと判断した場合の印刷実行処理を説明するフローチャートであり、上述した図１５に対応している。すなわち、図１４の部分の処理は、上述した第１実施形態と同様である。
【０１６１】
この図２０に示すように、図１４のステップＳ２８６で、プリンタ３０が復号した印刷データＤ０５を印刷できる状態にないと判断した場合（ステップＳ２８６：Ｎｏ）には、プリンタ３０は、ハードディスク５８に格納されている代替プリンタリストテーブルＴＢ６０を取得する（ステップＳ４１０）。
【０１６２】
次に、プリンタ３０は、この代替プリンタリストテーブルＴＢ６０を含む代替印刷通知を、印刷送信用データＤ１０を送信した印刷クライアント２０に送信する（ステップＳ４１２）。そして、図１４のステップＳ２７０に戻る。これ以外の部分は、上述した第１実施形態と同様である。
【０１６３】
次に、本実施形態に係る印刷要求処理を、図２１及び図２２に基づいて説明する。図２１及び図２２は、本実施形態に係る印刷要求処理を説明するフローチャートであり、上述した図１３に対応している。図２１に示すように、ステップＳ２５８において、プリンタ３０から受信した印刷結果情報が代替印刷通知であったと、印刷クライアント２０で判断した場合の処理が、上述した第１実施形態と異なる。
【０１６４】
すなわち、受信した印刷結果情報が代替印刷通知であった場合（ステップＳ２５８：Ｙｅｓ）には、図２２に示すように、印刷クライアント２０は、代替プリンタを選択する（ステップＳ４２０）。本実施形態においては、印刷クライアント２０は、この印刷クライアント２０が公開鍵を保持しているプリンタの中で、最もプリンタ３０から近い位置にあるプリンタを、代替プリンタとして選択する。具体的には、公開鍵テーブルＴＢ２０に登録されているプリンタの中で、受信した代替プリンタリストテーブルＴＢ６０の相対距離Ｄ４２が最も近いプリンタを選択する。相対距離Ｄ４２から直線的な距離Ｌの算出は、上述した式（１）を用いて行う。
【０１６５】
次に、印刷クライアント２０は、選択した代替プリンタの公開鍵を、公開鍵テーブルＴＢ２０から読み出す（ステップＳ４２２）。ここでは、代替プリンタとしてプリンタ３２が選択され、公開鍵ＰＫＥＹ１が読み出されたとする。続いて、印刷クライアント２０は、公開鍵ＰＫＥＹ１を用いて、印刷データＤ０５を再び暗号化し、印刷送信用データＤ１５を生成する（ステップＳ４２４）。
【０１６６】
次に、印刷クライアント２０は、ユーザに代替プリンタを特定する情報を通知する（ステップＳ４２６）。続いて、印刷クライアント２０は、ステップＳ４２４で生成した印刷送信用データＤ１５を、ネットワーク１０を介して、プリンタ３２に送信する（ステップＳ４２８）。これにより、本実施形態に係る印刷要求処理が終了する。
【０１６７】
以上のように、本実施形態に係る印刷システムによっても、印刷データＤ０５及びプリンタ３０、３２のセキュリティを確保することができる。また、位置検出部５４の検出精度の関係から、公開鍵送信処理において公開鍵を生成する際に使用したプリンタ位置情報と、印刷実行処理において秘密鍵を生成する際に使用するプリンタ位置情報との間にずれが生じていても、このずれを吸収して、印刷送信用データＤ１０を復号できる秘密鍵を生成することができる。
【０１６８】
さらに、本実施形態に係るプリンタ３０、３２によれば、印刷送信用データＤ１０の復号ができたとしても、プリンタが印刷実行可能な状態にない場合には、印刷クライアント２０に、代替印刷をすることができるプリンタの一覧である代替プリンタリストテーブルＴＢ６０を通知することとした。このため、印刷クライアント２０は、この代替プリンタリストテーブルＴＢ６０の中から代替プリンタを選択することができる。
【０１６９】
しかも、代替プリンタリストテーブルＴＢ６０には、印刷送信用データＤ１０を送信したプリンタと、その代替プリンタの候補との間の相対距離Ｄ４２が含まれているので、印刷クライアント２０は、この印刷クライアント２０が公開鍵を取得しているプリンタの中で、印刷送信用データＤ１０を送信したプリンタに最も近い位置にある代替プリンタを選択することができる。
【０１７０】
さらに、本実施形態における代替プリンタリストテーブルＴＢ６０には、プリンタの公開鍵は含まれていないので、実際に印刷クライアント２０が公開鍵を正当に取得できたプリンタでしか、代替印刷をできないようにすることができる。このため、権限のないユーザが代替プリンタで印刷を行わないようにすることができる。
【０１７１】
〔第３実施形態〕
本発明の第３実施形態は、上述した第１実施形態における印刷データＤ０５の送信手法を変形したものであり、印刷データＤ０５に、この印刷データＤ０５を送信するプリンタのプリンタ位置情報を結合することにより、印刷送信用データＤ１００を生成するようにしたものである。より詳しくを、以下に説明する。
【０１７２】
なお、本実施形態に係るプリンタ３０、３２のハードウェア構成は、上述した図２と同様であり、上述した印刷クライアント２０のハードウェア構成は、図３と同様である。但し、本実施形態においては、プリンタ３０の機器固有情報とプリンタ３２の機器固有情報は、必ずしも、同一である必要はない。また、本実施形態においては、印刷送信用データの生成手法が、上述した第１実施形態と異なる。
【０１７３】
図２３は、印刷送信用データＤ１００を受信したプリンタ３０がプリンタ３２に代替印刷を行う場合に、このプリンタ３２が所定範囲内に位置している場合の処理内容を説明するブロック図であり、図２４は、同様の場合に、プリンタ３２が所定範囲内に位置していない場合の処理内容を説明するブロック図である。
【０１７４】
まず、印刷クライアント２０は、予め、例えばプリンタ３０からこのプリンタ３０のプリンタ位置情報を取得しておく。本実施形態においては、このプリンタ位置情報の取得は、ネットワーク１０を介して行われる。すなわち、プリンタ３０は、プリンタ位置情報を要求してきた印刷クライアントが正当な権限を有しているかどうかを確認し、正当な権限を有する場合にのみ、プリンタ位置情報を通知する。但し、プリンタ３０のプリンタ位置情報は、必ずしもネットワーク１０を介して印刷クライアント２０に通知する必要はない。例えば、印刷クライアント２０のユーザが、正当な権限を有する者であれば、プリンタ３０の設置場所に出向いて、プリンタ３０を操作することができるのであるから、ユーザがプリンタ３０のコントロールパネルを操作して、プリンタ３０のプリンタ位置情報を取得するようにしてもよい。この場合、ユーザは、例えば、プリンタ３０のプリンタ位置情報をフレキシブルディスク等の記録媒体に記録し、これを印刷クライアント２０に読み込ませればよい。
【０１７５】
次に、印刷クライアント２０のユーザは、印刷するべきデータを作成し、印刷クライアント２０に対してプリンタ３０を指定して印刷を指示する。図２５は、印刷送信用データＤ１００のデータフォーマットを説明する図である。
【０１７６】
この図２５に示すように、印刷クライアント２０は、生成した印刷データＤ０５に、取得したプリンタ位置情報を結合することにより、印刷送信用データＤ１００を生成する。なお、印刷送信用データＤ１００は、この図２５に示した印刷データＤ０５とプリンタ位置情報Ｄ５０以外のデータを含んでいてもよい。
【０１７７】
図２３及び図２４に示すように、続いて、印刷クライアント２０は、この生成した印刷送信用データＤ１００を、ネットワーク１０を介して、プリンタ３０に送信する。この印刷送信用データＤ１０を受信したプリンタ３０は、図２に示すように、この受信した印刷送信用データＤ１０をＲＡＭ４２に一旦格納する。そして、プリンタ３０は、印刷送信用データＤ１００に含まれているプリンタ位置情報を取得し、その時点におけるプリンタ３０のプリンタ位置情報とが合致するかどうかを判断する。但し、印刷送信用データＤ１００に含まれていたプリンタ位置情報と、その時点におけるプリンタ３０のプリンタ位置情報との差が、所定範囲内にある場合には、プリンタ３０は、両者が合致したと判断する。
【０１７８】
そして、プリンタ３０は、両者が合致した場合には、印刷送信用データＤ１０に含まれている印刷データＤ０５を、印刷エンジン５２に送信して印刷を行い、両者が合致しなかった場合には、印刷は行わない。
【０１７９】
ここで、プリンタ３０は、何らかの理由で印刷を行うことができなかったとする。すると、プリンタ３０は、代替プリンタリストテーブルを検索し、相対距離が最も近いプリンタを、この印刷データＤ０５の印刷を代替させるプリンタとして選択する。ここでは、代替プリンタとしてプリンタ３２が選択されたとする。
【０１８０】
次に、プリンタ３０は、このプリンタ３０と代替プリンタ３２との間の距離が、所定範囲内にあるかどうかを判断する。プリンタ３０と代替プリンタ３２との間の距離が所定範囲内にある場合には、図２３に示すように、受信した印刷送信用データＤ１００をそのまま転送しても代替プリンタ３２で印刷されることが期待できるので、そのまま印刷送信用データＤ１００を代替プリンタ３２に転送する。代替プリンタ３２では、受信した印刷送信用データＤ１００に含まれているプリンタ位置情報と、その時点における代替プリンタ３２のプリンタ位置情報とを比較し、両者の差が所定範囲内であれば印刷を行い、両者の差が所定範囲内になければ印刷を行わない。
【０１８１】
一方、プリンタ３０と代替プリンタ３２との間の距離が所定範囲内にない場合には、受信した印刷送信用データＤ１００をそのまま転送すると、代替プリンタ３２では印刷されないと考えられる。このため、プリンタ３０は、図２４に示すように、代替プリンタ３２のプリンタ位置情報を、印刷データＤ０５に結合して、別の印刷送信用データＤ１５０を生成する。そして、この印刷送信用データＤ１５０を、代替プリンタ３２に送信する。この印刷送信用データＤ１５０を受信した代替プリンタ３２では、受信した印刷送信用データＤ１５０に含まれているプリンタ位置情報と、その時点における代替プリンタ３２のプリンタ位置情報とを比較する。そして、受信した印刷送信用データＤ１５０に含まれているプリンタ位置情報と、その時点における代替プリンタ３２のプリンタ位置情報との差が所定範囲内であれば印刷を行い、所定範囲内になければ印刷を行わない。
【０１８２】
次に、各プリンタのプリンタ位置情報を印刷クライアント２０が取得する場合における、印刷クライアント２０及びプリンタ３０、３２の処理について、詳しく説明する。
【０１８３】
図２６は、印刷クライアント２０で実行される位置情報要求処理を説明するフローチャートである。この位置情報要求処理は、印刷クライアントのＲＯＭ６８又はハードディスク７６に格納されている位置情報要求プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。また、この公開鍵要求処理は、プリンタ３０、３２が設置された後、ユーザが印刷クライアント２０に初期設定として１回だけ実行させる処理である。ここでは、印刷クライアント２０からプリンタ３０にプリンタ位置情報を要求する場合を想定して説明する。
【０１８４】
図２６に示すように、この位置情報要求処理においては、まず印刷クライアント２０は、プリンタ３０に接続する（ステップＳ５１０）。具体的には、印刷クライアント２０は、プリンタ３０のネットワークアドレスを指定することにより、印刷クライアント２０とプリンタ３０との間の接続を確立する。
【０１８５】
次に、印刷クライアント２０は、プリンタ３０へ認証情報を送信する（ステップＳ５１２）。ここで認証情報とは、印刷クライアント２０、又は、印刷クライアント２０を操作しているユーザが、プリンタ３０を使用する権限を有しているかどうかを、プリンタ３０が判断するための情報である。本実施形態においては、この認証情報として、印刷クライアントを特定するためのクライアントＩＤと、パスワードとの組み合わせを用いている。したがって、印刷クライアント２０は、クライアントＩＤとパスワードとを、プリンタ３０へ送信する。
【０１８６】
これに続いて、印刷クライアント２０は、プリンタ３０から認証が受け入れられたか否かを示す認証結果を受信するので、この認証結果に基づいて、プリンタ３０で認証が認められたかどうかを判断する（ステップＳ５１４）。認証が認められなかった場合（ステップＳ５１４：Ｎｏ）には、上述したステップＳ５１２からを繰り返す。
【０１８７】
一方、認証が認められた場合（ステップＳ５１４：Ｙｅｓ）には、印刷クライアント２０は、位置情報取得要求をプリンタ３０へ送信する（ステップＳ５１６）。そして、プリンタ３０からプリンタ位置情報を受信したかどうかを判断する（ステップＳ５１８）。プリンタ３０からプリンタ位置情報を受信していない場合（ステップＳ５１８：Ｎｏ）には、このステップＳ５１８を繰り返して待機する。
【０１８８】
一方、プリンタ３０からプリンタ位置情報を受信した場合（ステップＳ５１８：Ｙｅｓ）には、このプリンタ位置情報を格納する（ステップＳ５２０）。本実施形態においては、印刷クライアント２０は、ハードディスク７６にプリンタ位置情報テーブルＴＢ１００を設けており、取得したプリンタ位置情報は、このプリンタ位置情報テーブルＴＢ１００に格納されて保持される。
【０１８９】
図２７は、このプリンタ位置情報テーブルＴＢ１００の構成の一例を示す図である。この図２７に示すように、プリンタ位置情報テーブルＴＢ１００は、プリンタを特定するための情報を格納する項目Ｄ１１０と、取得したプリンタ位置情報をプリンタに対応させて格納する項目Ｄ１１１とを備えている。
【０１９０】
本実施形態においては、項目Ｄ１１０には、プリンタを特定するための情報の一例として、そのプリンタのネットワークアドレスが格納されている。項目Ｄ１１１は、プリンタ特定情報のうちの緯度を格納する項目Ｄ１１２と、経度を格納する項目Ｄ１１３と、高度を格納する項目Ｄ１１４とを備えている。そして、このプリンタ位置情報テーブルＴＢ１００は、複数のプリンタに関するプリンタ位置情報を、各プリンタ毎に保持することができるようになっている。また、このようにハードディスク７８のプリンタ位置情報テーブルＴＢ１００にプリンタ位置情報を格納することにより、印刷クライアント２０の電源がオフされて再び電源が投入された場合でも、それ以前に取得したプリンタ位置情報をそのままハードディスク７８から読み出して使用することができるようになっている。
【０１９１】
このプリンタ位置情報テーブルＴＢ１００に、取得したプリンタ位置情報を格納することにより、図２６に示した位置情報要求処理は終了する。
【０１９２】
次に、図２８に基づいて、印刷クライアント２０の位置情報要求処理に対応して、プリンタ３０、３２で実行される位置情報送信処理について説明する。この図２８は、プリンタ３０、３２で実行される位置情報送信処理を説明するフローチャートである。この位置情報送信処理は、プリンタのＲＯＭ４４又はハードディスク５８に格納されている位置情報送信プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。ここでも上述と同様に、印刷クライアント２０からプリンタ３０にプリンタ位置情報を要求する場合を想定して説明する。
【０１９３】
図２８に示すように、まず、プリンタ３０は、印刷クライアント２０と接続を確立する（ステップＳ５３０）。これは上述した印刷クライアント２０側のステップＳ５１０に対応している。続いて、プリンタ３０は、印刷クライアント２０から認証情報を受信したかどうかを判断する（ステップＳ５３２）。認証情報を受信していない場合（ステップＳ５３２：Ｎｏ）には、このステップＳ５３２の処理を繰り返して待機する。
【０１９４】
一方、認証情報を印刷クライアント２０から受信した場合（ステップＳ５３２：Ｙｅｓ）には、その認証情報がこのプリンタ３０に予め登録してある認証情報と一致するかどうかを判断する（ステップＳ５３４）。具体的には、上述したように、印刷クライアント２０からクライアントＩＤとパスワードが認証情報として送信されてくるので、このクライアントＩＤとパスワードが、このプリンタ３０に予め登録されているクライアントＩＤとパスワードと一致するかどうかを判断する。
【０１９５】
認証情報が一致しなかった場合（ステップＳ５３４：Ｎｏ）には、プリンタ３０は印刷クライアント２０に、認証が受け入れられなかった旨の認証結果を送信し（ステップＳ５３６）、ステップＳ５３２の処理に戻る。一方、認証が一致した場合（ステップＳ５３４：Ｙｅｓ）には、プリンタ３０は印刷クライアント２０に、認証が受け入れられた旨の認証結果を送信する（ステップＳ５３８）。
【０１９６】
なお、これらステップＳ５３２からステップＳ５３８の認証処理は、省くことも可能である。その場合、図２６の位置情報要求処理におけるステップＳ５１２及びステップＳ５１４も省くことができる。
【０１９７】
次に、プリンタ３０は、印刷クライアント２０から位置情報取得要求を受信したかどうかを判断する（ステップＳ５４０）。この位置情報取得要求を受信していない場合（ステップＳ５４０：Ｎｏ）には、このステップＳ５４０の処理を繰り返して待機する。
【０１９８】
一方、印刷クライアント２０から位置情報取得要求を受信した場合（ステップＳ５４０：Ｙｅｓ）には、プリンタ３０は位置検出部５４から、その時点におけるプリンタ３０のプリンタ位置情報を取得する（ステップＳ５４２）。
【０１９９】
次に、プリンタ３０は、このプリンタ位置情報を印刷クライアント２０に送信する（ステップＳ５４４）。これにより、本実施形態に係る位置情報送信処理が終了する。
【０２００】
次に、プリンタが他のプリンタから相対距離を含むプリンタ情報を取得して、代替プリンタリストテーブルを生成する処理を説明する。代替プリンタリストテーブルを生成するプリンタが行う代替プリンタリスト生成処理は、上述した第１実施形態に係る図１０と同様である。但し、代替プリンタリストテーブルの構成が、上述した第１実施形態と異なる。
【０２０１】
図２９は、本実施形態に係る代替プリンタリストテーブルＴＢ８０の構成の一例を示す図である。この図２９に示すように、本実施形態に係る代替プリンタリストテーブルＴＢ８０は、上述した第１実施形態における代替プリンタリストテーブルＴＢ４０の公開鍵Ｄ４３の代わりに、プリンタ位置情報Ｄ４４を備えて構成されている。このプリンタ位置情報Ｄ４４には、代替プリンタの候補となるプリンタから送信されたプリンタ情報に含まれている代替プリンタのプリンタ位置情報が格納される。
【０２０２】
図３０は、代替プリンタの候補となるプリンタが実行するプリンタ情報送信処理を説明するフローチャートであり、上述した図１９に対応する図である。このプリンタ情報送信処理は、ステップＳ４００が図１９と異なる。すなわち、プリンタ３２は、プリンタ機種情報と、相対距離と、プリンタ位置情報とを、プリンタ情報に含める（ステップＳ４００Ａ）。それ以外の処理は、図１９と同様である。
【０２０３】
なお、本実施形態においては、代替プリンタリストテーブルＴＢ８０を生成するプリンタと、その代替プリンタの候補となるプリンタとの間の相対距離を、代替プリンタの候補となるプリンタが算出して、代替プリンタリストテーブルＴＢ８０を生成するプリンタに送信することとしているが、代替プリンタリストテーブルＴＢ８０を生成するプリンタがこれを算出するようにしてもよい。この場合、代替プリンタリストテーブルＴＢ８０を生成するプリンタが、代替プリンタの候補となるプリンタのプリンタ位置情報を取得してから、その相対距離を算出するようにすればよい。
【０２０４】
次に、印刷クライアント２０が印刷を行いたいときに、その印刷要求をプリンタ３０、３２に送信する場合の印刷クライアント２０及びプリンタ３０、３２の処理について、詳しく説明する。
【０２０５】
図３１は、印刷クライアント２０で実行される印刷要求処理を説明するフローチャートであり、上述した図１３に対応する図である。この印刷要求処理は、印刷クライアントのＲＯＭ６８又はハードディスク７６に格納されている印刷要求プログラムをＣＰＵ６４が読み込んで実行することにより実現される処理である。ここでは、印刷クライアント２０からプリンタ３０に印刷を要求する場合を想定して説明する。
【０２０６】
この図３１に示すように、印刷クライアント２０は、ユーザの印刷要求に基づいて、印刷データＤ０５を作成する（ステップＳ５５０）。この印刷データＤ０５は、プリンタ３０が通常のプリンタである場合に、印刷を実際に行うのに必要となるデータである。
【０２０７】
次に、印刷クライアント２０は、ハードディスク７６の代替プリンタリストテーブルＴＢ８０にあらかじめ登録してあった出力したいプリンタ３０のプリンタ位置情報Ｄ５０を読み出す（ステップＳ５５２）。続いて、印刷クライアント２０は、印刷データＤ０５に、この読み出したプリンタ位置情報Ｄ５０を加えて、印刷送信用データＤ１００を生成する（ステップＳ５５４）。
【０２０８】
次に、印刷クライアント２０は、この印刷送信用データＤ１００を暗号化する（ステップＳ５５６）。そして、この暗号化した印刷送信用データＤ１００を、プリンタ３０に送信する（ステップＳ５５８）。具体的には、プリンタ３０のネットワークアドレスを指定して、ネットワーク１０に印刷送信用データＤ１００を送出する。
【０２０９】
次に、印刷クライアント２０は、プリンタ３０から印刷結果情報を受信したかどうかを判断する（ステップＳ５６０）。印刷結果情報を受信していない場合（ステップＳ５６０：Ｎｏ）には、このステップＳ５６０の処理を繰り返して待機する。一方、印刷結果情報を受信した場合（ステップＳ５６０：Ｙｅｓ）には、その印刷結果情報が印刷完了通知であるかどうかを判断する（ステップＳ５６２）。
【０２１０】
この印刷結果情報が印刷完了通知である場合（ステップＳ５６２：Ｙｅｓ）には、プリンタ３０で印刷が正常に終了したことを意味しているので、ユーザにプリンタ３０で印刷が完了した旨を通知する（ステップＳ５６４）。一方、受信した印刷結果情報が印刷完了通知でない場合（ステップＳ５６２：Ｎｏ）には、その印刷結果情報が位置情報不一致通知であるかどうかを判断する（ステップＳ５６６）。
【０２１１】
印刷結果情報が位置情報不一致通知である場合（ステップＳ５６６：Ｙｅｓ）には、印刷送信用データＤ１００のプリンタ位置情報Ｄ５０と、プリンタ３０における現在のプリンタ位置情報とが一致しなかったため、印刷が行われなかった旨をユーザに通知する（ステップＳ５６８）。これにより、プリンタ３０が移動したことが分かり、プリンタ３０の盗難等を疑うことができる。
【０２１２】
一方、印刷結果情報が位置情報不一致通知でない場合（ステップＳ５６６：Ｎｏ）には、その印刷結果情報が代替印刷通知であるかどうかを判断する（ステップＳ５７０）。印刷結果情報が代替印刷通知である場合（ステップＳ５７０：Ｙｅｓ）には、ユーザに代替印刷が行われたことを通知するとともに、代替印刷が行われるプリンタを特定する情報を通知する（ステップＳ５７２）。
【０２１３】
一方、印刷結果情報が代替印刷通知でない場合（ステップＳ５７０：Ｎｏ）には、その他の何らかのエラーであると考えられるので、ユーザに、そのエラーの種類に応じた通知を行う（ステップＳ５７４）。
【０２１４】
これらステップＳ５６４、ステップＳ５６８、ステップＳ５７２及びステップＳ５７４の通知により、この印刷クライアント２０における印刷要求処理は終了する。
【０２１５】
次に、図３２及び図３３に基づいて、印刷クライアント２０の印刷要求処理に対応して、プリンタ３０、３２で実行される印刷実行処理について説明する。図３２及び図３３は、プリンタ３０、３２で実行される印刷実行処理を説明するフローチャートである。この印刷実行処理は、プリンタ３０、３２のＲＯＭ４４に格納されている印刷実行プログラムをＣＰＵ４０が読み込んで実行することにより実現される処理である。ここでも上述と同様に、印刷クライアント２０からプリンタ３０に印刷を要求する場合を想定して説明する。
【０２１６】
図３２に示すように、プリンタ３０は、印刷送信用データＤ１０をネットワーク１０から受信したかどうかを判断する（ステップＳ５８０）。何ら印刷送信用データＤ１００を受信していない場合（ステップＳ５８０：Ｎｏ）には、このステップＳ５８０の処理を繰り返して待機する。
【０２１７】
一方、印刷送信用データＤ１００を受信した場合（ステップＳ５８０：Ｙｅｓ）には、印刷送信用データＤ１００を復号する（ステップＳ５８２）。続いて、プリンタ３０は、この復号した印刷送信用データＤ１００に含まれているプリンタ位置情報Ｄ５０を取得する（ステップＳ５８４）。
【０２１８】
次に、プリンタ３０は、位置検出部５４から、その時点におけるプリンタ３０のプリンタ位置情報を取得する（ステップＳ５８６）。このようにプリンタ位置情報を、その都度、位置検出部５４から取得することとしているのは、プリンタ３０が別の場所に移動された場合には、このプリンタ３０がユーザの意図しない場所に設置されている可能性があり、このような場合にはプリンタ３０で印刷が行われないようにするためである。
【０２１９】
次に、プリンタ３０は、受信した印刷送信用データＤ１００に含まれているプリンタ位置情報Ｄ５０の緯度と、この時点で取得したプリンタ位置情報の緯度との差が、所定範囲内（例えば±１０ｍ）であるかどうかを判断する（ステップＳ５８８）。両者の緯度の差が所定範囲内でない場合（ステップＳ５８８：Ｎｏ）には、プリンタ位置情報が一致しなかったことになるので、印刷クライアント２０に位置情報不一致通知を送信する（ステップＳ６０２）。
【０２２０】
一方、両者の緯度の差が所定範囲内である場合（ステップＳ５８８：Ｙｅｓ）には、受信した印刷送信用データＤ１００に含まれているプリンタ位置情報Ｄ５０の経度と、この時点で取得したプリンタ位置情報の経度との差が、所定範囲内（例えば±１０ｍ）であるかどうかを判断する（ステップＳ５９０）。両者の経度の差が所定範囲内にない場合（ステップＳ５９０：Ｎｏ）には、プリンタ位置情報が一致しなかったことになるので、印刷クライアント２０に位置情報不一致通知を送信する（ステップＳ６０２）。
【０２２１】
一方、両者の経度の差が所定範囲内である場合（ステップＳ５９０：Ｙｅｓ）には、受信した印刷送信用データＤ１００に含まれているプリンタ位置情報Ｄ５０の高度と、この時点で取得したプリンタ位置情報の高度との差が、所定範囲内（例えば±１０ｍ）であるかどうかを判断する（ステップＳ５９２）。両者の高度の差が所定範囲内でない場合（ステップＳ５９２：Ｎｏ）には、プリンタ位置情報が一致しなかったことになるので、印刷クライアント２０に位置情報不一致通知を送信する（ステップＳ６０２）。
【０２２２】
一方、両者の高度の差が所定範囲内である場合（ステップＳ５９２：Ｙｅｓ）には、プリンタ位置情報が一致したことになるので、プリンタ３０は、印刷送信用データＤ１００に含まれている印刷データＤ０５を取得する（ステップＳ５９４）。すなわち、本実施形態においては、印刷送信用データＤ１００に含まれていたプリンタ位置情報Ｄ５０と、ステップＳ５８６で取得したプリンタ位置情報との差が所定範囲内にある場合には、印刷送信用データＤ１００がその時点におけるプリンタ位置情報と合致したと判断する。
【０２２３】
次に、プリンタ３０は、このプリンタ３０自体が印刷実行可能な状態にあるかどうかを判断する（ステップＳ５９６）。例えば、プリンタ３０で紙詰まりが発生していたり、紙無しエラーが発生していたりした場合には、プリンタ３０は印刷実行可能な状態にないと判断する。
【０２２４】
プリンタ３０が印刷可能な状態である場合（ステップＳ５９６：Ｙｅｓ）には、得られた印刷データＤ０５に基づいて、印刷エンジン５２を駆動した印刷を実行する（ステップＳ５９８）。具体的には、印刷データＤ０５の言語解釈を行い、印刷エンジン５２に適合した印刷要求データを生成する。そして、この印刷要求データを印刷エンジン５２に送信することにより、印刷エンジン５２で印刷用紙等に印刷が行われる。
【０２２５】
この印刷が正常に完了した時点で、プリンタ３０は、印刷が正常に終了した旨の印刷完了通知を、印刷結果情報として、印刷クライアント２０に送信する（ステップＳ６００）。そして、上述したステップＳ５８０の処理に戻る。
【０２２６】
これに対して、上述したステップＳ５９６で、プリンタ３０が印刷実行可能な状態にないと判断した場合（ステップＳ５９６：Ｎｏ）には、図３３に示すように、プリンタ３０は、代替印刷を行わせる代替プリンタを選択する（ステップＳ６１０）。具体的には、プリンタ３０は、代替プリンタリストテーブルＴＢ８０を検索し、プリンタ３０からの相対距離Ｄ４２が最も近いプリンタを、代替プリンタとして選択する。ここでは、プリンタ３２が代替プリンタとして選択されたとする。
【０２２７】
次に、プリンタ３０は、代替プリンタとして選択したプリンタとの距離が、所定範囲内であるかどうかを判断する（ステップＳ６１２）。本実施形態においては、ステップＳ５８８〜ステップＳ５９２に示したように、緯度、経度、高度の差がそれぞれ±１０ｍの範囲内にあれば印刷が実行されるので、これに対応して、代替プリンタとして選択したプリンタの相対距離ΔＸ、ΔＹ、ΔＺが、それぞれ±１０ｍの範囲内であるかどうかを判断する。なぜなら、相対距離Ｄ４２のΔＸ、ΔＹ、ΔＺのそれぞれが±１０ｍの範囲内であれば、印刷クライアント２０から受信した印刷送信用データＤ１００をそのままプリンタ３２に転送しても、プリンタ３２で印刷が行われると考えられるからである。
【０２２８】
したがって、代替プリンタとして選択したプリンタとの距離が所定範囲内である場合（ステップＳ６１２：Ｙｅｓ）には、プリンタ３０から受信した印刷送信用データＤ１００をそのまま別のプリンタ３２に送信する（ステップＳ６１４）。
【０２２９】
一方、代替プリンタとして選択したプリンタとの距離が所定範囲内でない場合（ステップＳ６１２：Ｎｏ）には、代替プリンタのプリンタ位置情報を取得する（ステップＳ６１６）。具体的には、代替プリンタリストテーブルＴＢ８０を検索して、プリンタ３２のプリンタ位置情報を取得する。
【０２３０】
次に、プリンタ３０は、印刷データＤ０５に、ステップＳ６１６で取得したプリンタ位置情報を結合することにより、印刷送信用データＤ１５０を生成する（ステップＳ６１８）。続いて、プリンタ３０は、この生成した印刷送信用データＤ１５０を、ネットワーク１０を介して、代替プリンタであるプリンタ３２に送信する（ステップＳ６２０）。
【０２３１】
これらステップＳ６１４及びステップＳ６２０の後、プリンタ３０は、印刷結果情報として代替印刷通知をプリンタ３０に送信する（ステップＳ６２２）。本実施形態においては、この代替印刷通知には、代替印刷を行うプリンタを特定する情報が含まれている。そして、プリンタ３０は、上述した図３２のステップＳ５８０に戻る。
【０２３２】
なお、プリンタ３０から印刷送信用データＤ１００又は印刷送信用データＤ１５０を受信したプリンタ３２でも、この印刷実行処理が行われる。このため、プリンタ３２において、印刷送信用データＤ１００、Ｄ１５０に含まれているプリンタ位置情報Ｄ５０と、プリンタ３２のプリンタ位置情報との差が所定範囲にある場合には、プリンタ３２で印刷が行われ、この差が所定範囲にない場合には、プリンタ３２で印刷が行われないこととなる。
【０２３３】
以上のように、本実施形態に係る印刷システムによっても、印刷データＤ０５及びプリンタ３０、３２のセキュリティを確保することができる。また、位置検出部５４の検出精度の関係から、位置情報送信処理で送信したプリンタ位置情報と、印刷実行処理で取得したプリンタ位置情報との間にずれが生じていても、このずれを吸収して、印刷送信用データＤ１００の印刷を実行させることができるさらに、本実施形態に係るプリンタ３０、３２によれば、印刷送信用データＤ１００のプリンタ位置情報が合致したとしても、プリンタが印刷実行可能な状態にない場合には、このプリンタ３０、３２から別のプリンタに代替印刷をすることとした。このため、ユーザは、例えばプリンタ３０で印刷ができなくとも、プリンタ３２から印刷結果を取得することができる。
【０２３４】
また、プリンタ３０、３２は、自ら周囲のプリンタと通信をして、周囲のプリンタとの間の相対的な距離を把握し、代替プリンタリストテーブルＴＢ８０を生成することとした。このため、プリンタ３０、３２が、代替プリンタを選択するにあたっては、最初に印刷送信用データＤ１００を受信したプリンタから最も近い位置にある別のプリンタを選択できるようになり、このため、ユーザが当初予定していたプリンタの位置から、最も近い位置にあるプリンタで、代替印刷の印刷結果を取得することができるようになる。
【０２３５】
さらに、印刷送信用データＤ１００を受信したプリンタと代替プリンタとの間の相対距離が、所定範囲内にある場合には、印刷送信用データＤ１００を受信したプリンタはこの印刷送信用データＤ１００をそのまま代替プリンタに転送することとした。一方、印刷送信用データＤ１００を受信したプリンタと代替プリンタとの間の相対距離が、所定範囲内にない場合には、印刷送信用データＤ１００を受信したプリンタは、この印刷送信用データＤ１００に含まれている印刷データＤ０５に、代替プリンタ３２のプリンタ位置情報を結合して、再び印刷送信用データＤ１５０を生成し、この印刷送信用データＤ１５０を代替プリンタ３２に送信することとした。このため、相対距離が所定範囲内にある場合には、印刷送信用データＤ１５０を生成するための処理を省くことができる。
【０２３６】
〔第４実施形態〕
本発明の第４実施形態は、上述した第３実施形態に変形を加えて、印刷クライアント２０から印刷送信用データを受信したプリンタ３０が、印刷を実行できない状態にある場合には、これを印刷クライアント２０に通知して、印刷クライアント２０から代替プリンタに再び印刷送信用データを送信するようにしたものである。より詳しくを以下に説明する。
【０２３７】
なお、本実施形態に係るプリンタ３０、３２のハードウェア構成は、上述した図２と同様であり、上述した印刷クライアント２０のハードウェア構成は、図３と同様である。但し、本実施形態においては、プリンタ３０の機器固有情報とプリンタ３２の機器固有情報は、必ずしも、同一である必要はない。また、本実施形態においては、代替印刷をする際の印刷データの流れが、上述した第３実施形態と異なる。
【０２３８】
図３４は、本実施形態に係る印刷システムにおいて、印刷送信用データを受信したプリンタ３０が印刷を実行できる状態でない場合に、プリンタ３２で代替印刷を行う際の処理内容を説明するブロック図である。
【０２３９】
まず、印刷クライアント２０のユーザは、印刷するべきデータを作成し、印刷クライアント２０に対してプリンタ３０を指定して印刷を指示する。印刷クライアント２０は、印刷データＤ０５に、プリンタ３０のプリンタ位置情報Ｄ５０を結合して、印刷送信用データＤ１００を生成する。続いて、印刷クライアント２０は、この生成した印刷送信用データＤ１００を、ネットワーク１０を介して、プリンタ３０に送信する。この印刷送信用データＤ１００を受信したプリンタ３０は、図２に示すように、この受信した印刷送信用データＤ１００をＲＡＭ４２に一旦格納する。そして、プリンタ３０は、この印刷送信用データＤ１００からプリンタ位置情報Ｄ５０を取得して、その時点におけるプリンタ３０のプリンタ位置情報との差が所定範囲にあるかどうかを判断する。プリンタ位置情報の差が所定範囲にある場合には、印刷送信用データＤ１０に含まれている印刷データＤ０５を、印刷エンジン５２に送信して印刷を行い、所定範囲にない場合には、印刷は行わない。
【０２４０】
ここで、プリンタ３０は、何らかの理由で印刷を行うことができなかったとする。すると、プリンタ３０は、代替印刷通知とともに、このプリンタ３０が保持している代替プリンタリストテーブルを印刷クライアント２０に送信する。この代替プリンタリストテーブルを受信した印刷クライアント２０は、この代替プリンタリストテーブルとプリンタ位置情報テーブルＴＢ１００とに基づいて、印刷クライアント２０がプリンタ位置情報を取得しているプリンタの中で、プリンタ３９から最も近いプリンタを代替プリンタとして選択する。ここでは、代替プリンタとして、プリンタ３２が選択されたとする。
【０２４１】
次に、印刷クライアント２０は、印刷データＤ０５に、代替プリンタ３２のプリンタ位置情報Ｄ５０を結合して、印刷送信用データＤ１５０を生成する。そして、印刷クライアント２０は、この印刷送信用データＤ１５０を代替プリンタ３２に、ネットワーク１０を介して、送信する。
【０２４２】
この印刷送信用データＤ１５０を受信した代替プリンタ３２では、印刷送信用データＤ１５０に含まれているプリンタ位置情報Ｄ５０を取得して、このプリンタ位置情報Ｄ５０と、その時点でプリンタ３２が取得したプリンタ位置情報との差が、所定範囲にあるかどうかを判断する。プリンタ位置情報の差が所定範囲にある場合には、印刷送信用データＤ１５０に含まれている印刷データＤ０５を、印刷エンジン５２に送信して印刷を行い、その差が所定範囲にない場合には、印刷は行わない。
【０２４３】
次に、プリンタのプリンタ位置情報を印刷クライアント２０が取得する場合における、印刷クライアント２０及びプリンタ３０、３２の処理についてであるが、これらの処理は上述した第３実施形態と同様である。また、代替プリンタリストテーブルを生成するためのプリンタ３０、３２の処理も、基本的には、上述した第１実施形態と同様である。但し、代替プリンタリストテーブルＴＢ８０と比べると、本実施形態に係る代替プリンタリストテーブルは、プリンタ位置情報Ｄ４４を含んでいない点が異なる。
【０２４４】
図３５は、本実施形態に係る代替プリンタリストテーブルＴＢ２００の構成の一例を示す図である。本実施形態においても、この代替プリンタリストテーブルＴＢ２００は、プリンタ３０、３２のハードディスク５８に格納されている。この図３５に示すように、本実施形態に係る代替プリンタリストテーブルＴＢ２００は、データ項目として、ネットワークアドレスＤ４０と、プリンタ機種情報Ｄ４１と、相対距離Ｄ４２とを含んでいるが、プリンタ位置情報は含まれていない。これは、代替印刷をする場合に、この代替プリンタリストテーブルＴＢ２００を印刷クライアント２０に送信するので、プリンタ位置情報のセキュリティを確保するためである。
【０２４５】
このため、本実施形態に係るプリンタ情報送信処理では、上述した第３実施形態における図３０のステップＳ４００Ａにおいて、プリンタ機種情報と相対距離とをプリンタ情報に含めることにより、このプリンタ情報を生成するが、プリンタ位置情報は含めない。これ以外の点は、上述した第３実施形態と同様である。
【０２４６】
次に、本実施形態に係る印刷実行処理であるが、プリンタ３０が印刷を実行できる状態でないと判断した場合の処理が、第３実施形態と異なる。図３６は、プリンタ３０が印刷を実行できる状態でないと判断した場合の印刷実行処理を説明するフローチャートであり、上述した図３３に対応している。この図３６に示すように、図３２のステップＳ５９６で、プリンタ３０が印刷データＤ０５を印刷できる状態にないと判断した場合（ステップＳ５９６：Ｎｏ）には、プリンタ３０は、ハードディスク５８に格納されている代替プリンタリストテーブルＴＢ２００を取得する（ステップＳ７１０）。
【０２４７】
次に、プリンタ３０は、この代替プリンタリストテーブルＴＢ２００を、印刷送信用データＤ１００を送信した印刷クライアント２０に送信する（ステップＳ７１２）。そして、図３２のステップＳ５８０に戻る。これ以外の部分は、上述した第３実施形態と同様である。
【０２４８】
次に、本実施形態に係る印刷要求処理を、図３７及び図３８に基づいて説明する。図３７及び図３８は、本実施形態に係る印刷要求処理を説明するフローチャートであり、上述した図３１に対応している。図３７に示すように、ステップＳ５７０において、印刷クライアント２０が、プリンタ３０から受信した印刷結果情報が、代替印刷通知であったと判断した場合の処理が、上述した第３実施形態と異なる。
【０２４９】
すなわち、受信した印刷結果情報が代替印刷通知であった場合（ステップＳ５７０：Ｙｅｓ）には、図３８に示すように、印刷クライアント２０は、代替プリンタを選択する（ステップＳ７２０）。本実施形態においては、印刷クライアント２０は、この印刷クライアント２０がプリンタ位置情報を保持しているプリンタの中で、最もプリンタ３０から近い位置にあるプリンタを、代替プリンタとして選択する。具体的には、プリンタ位置情報テーブルＴＢ１００に登録されているプリンタの中で、受信した代替プリンタリストテーブルＴＢ２００の相対距離Ｄ４２が最も近いプリンタを選択する。相対距離Ｄ４２から直線的な距離Ｌの算出は、上述した式（１）を用いて行う。
【０２５０】
次に、印刷クライアント２０は、選択した代替プリンタのプリンタ位置情報を、プリンタ位置情報テーブルＴＢ１００から読み出す（ステップＳ７２２）。ここでは、代替プリンタとしてプリンタ３２が選択され、プリンタ３２のプリンタ位置情報が読み出されたとする。続いて、印刷クライアント２０は、印刷データＤ０５に、プリンタ３２のプリンタ位置情報を結合して、印刷送信用データＤ１５０を生成する（ステップＳ７２４）。
【０２５１】
次に、印刷クライアント２０は、ユーザに代替プリンタを特定する情報を通知する（ステップＳ７２６）。続いて、印刷クライアント２０は、ステップＳ７２４で生成した印刷送信用データＤ１５０を、ネットワーク１０を介して、プリンタ３２に送信する（ステップＳ７２８）。これにより、本実施形態に係る印刷要求処理が終了する。
【０２５２】
以上のように、本実施形態に係る印刷システムによっても、印刷データＤ０５及びプリンタ３０、３２のセキュリティを確保することができる。また、位置検出部５４の検出精度の関係から、位置情報送信処理において印刷クライアント２０に送信したプリンタ位置情報と、印刷実行処理において取得したプリンタ位置情報との間にずれが生じていても、このずれを吸収して、印刷送信用データＤ１０の印刷を実行させることができる。
【０２５３】
さらに、本実施形態に係るプリンタ３０、３２によれば、印刷送信用データＤ１００のプリンタ位置情報が合致したとしても、プリンタが印刷実行可能な状態にない場合には、印刷クライアント２０に、代替印刷をすることができるプリンタの候補一覧である代替プリンタリストテーブルＴＢ２００を通知することとした。このため、印刷クライアント２０は、この代替プリンタリストテーブルＴＢ２００の中から代替プリンタを選択することができる。
【０２５４】
しかも、代替プリンタリストテーブルＴＢ２００には、印刷送信用データＤ１００を送信したプリンタと、その周囲のプリンタとの間の相対距離Ｄ４２が含まれているので、印刷クライアント２０は、この印刷クライアント２０がプリンタ位置情報を取得しているプリンタの中で、印刷送信用データＤ１００を送信したプリンタに最も近い位置にある代替プリンタを選択することができる。
【０２５５】
さらに、本実施形態における代替プリンタリストテーブルＴＢ２００には、プリンタのプリンタ位置情報は含まれていないので、実際に印刷クライアント２０がプリンタ位置情報を正当に取得できたプリンタでしか、代替印刷をできないようにすることができる。このため、権限のないユーザが代替プリンタで印刷を行わないようにすることができる。
【０２５６】
なお本発明は上記実施形態に限定されずに種々に変形可能である。例えば、上述した第１及び第２実施形態においては、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを中心として、その周囲の２６カ所の位置情報を、パスフレーズ生成用の候補として選定したが、その選定の態様及び個数はこれに限られるものではない。例えば、図３９に示すように、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを中心として、その周囲６カ所の位置情報を、パスフレーズ生成用の候補として選定するようにしてもよい。
【０２５７】
さらには、上述した第１及び第２実施形態においては、位置検出部５４の最小測定単位１つ分である±１０ｍの範囲までに含まれる位置情報を、パスフレーズ生成用の候補として選定したが、プリンタ位置情報Ｘｎｏｗ、Ｙｎｏｗ、Ｚｎｏｗを中心として、最小測定単位Ｎ個分（Ｎは自然数）の範囲までに含まれる位置情報を、パスフレーズ生成用の候補として選定するようにしてもよい。
【０２５８】
また、上述した各実施形態においては、代替プリンタリストテーブルを生成するプリンタ３０が、代替プリンタの候補であるプリンタ３２へプリンタ３０のプリンタ位置情報を送信し、プリンタ３２で相対距離を算出することとしたが、この相対距離はプリンタ３０で生成するようにしてもよい。すなわち、代替プリンタリストテーブルを生成するプリンタ３０が、プリンタ３２からプリンタ３２のプリンタ位置情報をネットワーク１０を介して取得し、プリンタ３０が相対距離を算出するようにしてもよい。
【０２５９】
また、上述した実施形態においては、代替プリンタリストテーブルにおける他のプリンタとの間の相対距離を、代替プリンタを選択するために使用したが、他の目的のために使用することもできる。
【０２６０】
また、上述した実施形態では、プリンタ３０、３２の印刷媒体が印刷用紙である場合を例に説明したが、印刷媒体はこれに限るものではなく、例えば、ＯＨＰシート等の他の印刷媒体であっても本発明を適用することができる。
【０２６１】
さらに、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ−Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＲＯＭ、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体を印刷クライアント２０及び／又はプリンタ３０、３２に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【０２６２】
また、印刷クライアント２０及び／又はプリンタ３０、３２は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、印刷クライアント２０及び／又はプリンタ３０、３２の備える他のプログラムを活用し、記録媒体には印刷クライアント２０及び／又はプリンタ３０、３２が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
【０２６３】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、印刷クライアント２０及び／又はプリンタ３０、３２に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【０２６４】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ印刷クライアント２０及び／又はプリンタ３０、３２は、そのプログラムの復号や伸張を行った上で、実行する必要がある。
【０２６５】
【発明の効果】
以上説明したように、本発明に係るプリンタ、印刷クライアント及び印刷システムによれば、プリンタが他のプリンタとの間の相対距離を把握することができるので、他のプリンタに代替印刷を要求する場合等において、自らのプリンタから最も近いプリンタを容易に選択することができるようになる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る印刷システムの構成の一例を示す図。
【図２】本発明の第１実施形態に係るプリンタのハードウェア構成の一例を示す図。
【図３】本発明の第１実施形態に係る印刷クライアントの構成の一例を示す図。
【図４】本発明の第１実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図（代替印刷を要求するプリンタと代替印刷を要求されたプリンタとの間の相対距離が所定範囲にある場合）。
【図５】本発明の第１実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図（代替印刷を要求するプリンタと代替印刷を要求されたプリンタとの間の相対距離が所定範囲にない場合）。
【図６】本発明の第１実施形態における印刷データと印刷送信用データとの関係を説明する図。
【図７】本発明の第１実施形態に係る印刷クライアントが実行する公開鍵要求処理を説明するフローチャートを示す図。
【図８】本発明の第１実施形態に係る印刷クライアントが備える公開鍵テーブルの構成の一例を示す図。
【図９】本発明の第１実施形態に係るプリンタが実行する公開鍵送信処理を説明するフローチャートを示す図。
【図１０】本発明の第１実施形態に係るプリンタが実行する代替プリンタリスト生成処理を説明するフローチャートを示す図。
【図１１】本発明の第１実施形態に係るプリンタが保持する代替プリンタリストテーブルの構成の一例を示す図。
【図１２】本発明の第１実施形態に係るプリンタが実行するプリンタ情報送信処理を説明するフローチャートを示す図。
【図１３】本発明の第１実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図。
【図１４】本発明の第１実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図（その１）。
【図１５】本発明の第１実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図（その２）。
【図１６】本発明の第１実施形態に係るプリンタが選定する、プリンタ位置情報の周囲にある２６カ所の位置関係を説明する図。
【図１７】本発明の第２実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図。
【図１８】本発明の第２実施形態に係るプリンタが保持する代替プリンタリストテーブルの構成の一例を示す図。
【図１９】本発明の第２実施形態に係るプリンタが実行するプリンタ情報送信処理を説明するフローチャートを示す図。
【図２０】本発明の第２実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図。
【図２１】本発明の第２実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図（その１）。
【図２２】本発明の第２実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図（その２）。
【図２３】本発明の第３実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図（代替印刷を要求するプリンタと代替印刷を要求されたプリンタとの間の相対距離が所定範囲にある場合）。
【図２４】本発明の第３実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図（代替印刷を要求するプリンタと代替印刷を要求されたプリンタとの間の相対距離が所定範囲にない場合）。
【図２５】本発明の第３実施形態に係る印刷送信用データのデータフォーマットを説明する図。
【図２６】本発明の第３実施形態に係る印刷クライアントが実行する位置情報要求処理を説明するフローチャートを示す図。
【図２７】本発明の第３実施形態に係る印刷クライアントが備えるプリンタ位置情報テーブルの構成の一例を示す図。
【図２８】本発明の第３実施形態に係るプリンタが実行する位置情報送信処理を説明するフローチャートを示す図。
【図２９】本発明の第３実施形態に係るプリンタが保持する代替プリンタリストテーブルの構成の一例を示す図。
【図３０】本発明の第３実施形態に係るプリンタが実行するプリンタ情報送信処理を説明するフローチャートを示す図。
【図３１】本発明の第３実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図。
【図３２】本発明の第３実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図（その１）。
【図３３】本発明の第３実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図（その２）。
【図３４】本発明の第４実施形態において、代替印刷を行う場合の印刷データと印刷送信用データとの流れを説明する図。
【図３５】本発明の第４実施形態に係るプリンタが保持する代替プリンタリストテーブルの構成の一例を示す図。
【図３６】本発明の第４実施形態に係るプリンタが実行する印刷実行処理を説明するフローチャートを示す図。
【図３７】本発明の第４実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図（その１）。
【図３８】本発明の第４実施形態に係る印刷クライアントが実行する印刷要求処理を説明するフローチャートを示す図（その２）。
【図３９】本発明の第１及び第２実施形態の変形例を説明する図。
【符号の説明】
１０　ネットワーク
２０　印刷クライアント
３０、３２　プリンタ
４０　ＣＰＵ
４２　ＲＡＭ
４４　ＲＯＭ
４６　内部バス
４８、５０　インターフェース
５２　印刷エンジン
５４　位置検出部
５８　ハードディスク
６０　コンピュータ本体
６２　ディスプレイ
６４　ＣＰＵ
６６　ＲＡＭ
６８　ＲＯＭ
７０　内部バス
７２、７４、７８　インターフェース
７６　ハードディスク
【図１】
2004102333.tif 000003
【図２】
2004102333.tif 000004
【図３】
2004102333.tif 000005
【図４】
2004102333.tif 000006
【図５】
2004102333.tif 000007
【図６】
2004102333.tif 000008
【図７】
2004102333.tif 000009
【図８】
2004102333.tif 000010
【図９】
2004102333.tif 000011
【図１０】
2004102333.tif 000012
【図１１】
2004102333.tif 000013
【図１２】
2004102333.tif 000014
【図１３】
2004102333.tif 000015
【図１４】
2004102333.tif 000016
【図１５】
2004102333.tif 000017
【図１６】
2004102333.tif 000018
【図１７】
2004102333.tif 000019
【図１８】
2004102333.tif 000020
【図１９】
2004102333.tif 000021
【図２０】
2004102333.tif 000022
【図２１】
2004102333.tif 000023
【図２２】
2004102333.tif 000024
【図２３】
2004102333.tif 000025
【図２４】
2004102333.tif 000026
【図２５】
2004102333.tif 000027
【図２６】
2004102333.tif 000028
【図２７】
2004102333.tif 000029
【図２８】
2004102333.tif 000030
【図２９】
2004102333.tif 000031
【図３０】
2004102333.tif 000032
【図３１】
2004102333.tif 000033
【図３２】
2004102333.tif 000034
【図３３】
2004102333.tif 000035
【図３４】
2004102333.tif 000036
【図３５】
2004102333.tif 000037
【図３６】
2004102333.tif 000038
【図３７】
2004102333.tif 000039
【図３８】
2004102333.tif 000040
【図３９】
2004102333.tif 000041