(57)【要約】【課題】ネットワーク識別子によりプリンタを識別している場合には、ホストコンピュータに保存されているプリンタ毎の機能設定が、そのプリンタの設置再編に伴い利用できなくなってしまう。【解決手段】プリンタデバイスにユーザＩＤと機能設定の組およびその設定の指定頻度を保存し、プリンタデバイスはそのプリンタデバイス利用時に指定されたユーザＩＤに対応して保存されている機能設定の中で指定頻度の高い設定をホストコンピュータに返し、ホストコンピュータはその機能設定をデフォルトとして印刷処理を指示する。【選択図】図１
2006092287.tif 000002
【特許請求の範囲】
【請求項１】
所定の通信媒体上に接続された、少なくとも一つ以上の画像形成装置および、少なくとも一つ以上の端末装置を備えたプリントシステムにおいて、
前記画像形成装置を使用する利用者を識別する利用者識別手段、
前記端末装置から前記画像形成装置に対して前記利用者と印刷設定を組にした情報を送信する印刷設定登録手段、
前記印刷設定登録手段によって前記端末装置から送信された前記利用者と印刷設定および印刷設定の当該利用者における指定頻度を組とした情報を前記画像形成装置内に保存する印刷設定保持手段、
前記端末装置から前記画像形成装置に対して印刷を行う利用者を指定する利用者指定手段、
前記印刷設定保持手段に保存されている利用者と印刷設定の組の中から前記利用者指定手段によって指定された利用者に対応する最も指定頻度の高い印刷設定を前記画像形成装置から前記端末装置へ送信する印刷設定返送手段、
前記印刷設定返送手段によって画像形成装置から送信された当該印刷設定を用いて当該端末装置から当該画像形成装置に印刷指示を行う印刷指示手段、
を備えることを特徴とするプリントシステム。
【請求項２】
前記印刷設定保持手段は印刷設定と利用者全体における指定頻度を組とした情報を保持し、
前記利用者指定手段によって指定された利用者が前記印刷設定保持手段に保存されていなかった場合に、前記印刷設定返送手段は利用者全体における指定頻度の最も高い印刷設定を返送することを特徴とする請求項１に記載のプリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された一つ以上のホストコンピュータと一つ以上の画像形成装置からなるプリントシステムに関する。
【背景技術】
【０００２】
ネットワーク経由で接続されるプリンタはホストコンピュータからネットワーク識別子あるいはプリントサーバにおけるプリンタの識別子によってと識別される。ネットワーク識別子は、ＴＣＰ／ＩＰにおけるＩＰアドレスなど、プリントサーバによらずにネットワーク内で一意にプリンタを識別することができる。一方、プリントサーバにおいてプリンタを識別する場合には、ホストコンピュータはプリントサーバを識別するだけで、そのプリントサーバから利用できるプリンタに関する情報を得ることができる。ネットワーク識別子によってプリンタを識別する場合でも、ネットワーク内のプリンタデバイスをリストアップすることや、プリンタデバイスからそのプリンタデバイスに関する情報を取得することも可能であるため、技術的にはネットワーク識別子の場合であってもホストコンピュータから目的のプリンタを選択することは容易であるといえる。
【０００３】
一方、プリンタデバイスは様々な付加機能を持つに至っており、その機能の選択をホストコンピュータから行うことが可能になっている。多くのプリントシステムにおいては、プリンタドライバと呼ばれるソフトウェアモジュールにおいて、その設定が可能となっており、ホストコンピュータあるいはそのホストコンピュータにログインしている利用者の単位でデフォルト設定を保存したり、印刷時に設定を選択、変更することが可能となっている。
【０００４】
利用者はこのようなプリンタデバイスでは様々な機能を選択して使用することが出来るため、特によく利用する設定を保存しておき、簡単に選択して使用することが出来るようになっている。
【０００５】
これらの機能設定はプリンタをネットワーク識別子で識別する場合には各ホストコンピュータに、プリントサーバを利用して識別する場合にはホストコンピュータあるいはプリントサーバに設定、保存されることになる。
【特許文献１】特開２００３−１８７２１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
プリンタが自身のネットワーク識別子をもってネットワークへ接続することができるようになり、ネットワーク上へのプリンタの設置は非常に容易となった。このため、プリンタ設置の追加、削除、移動、ネットワーク設定変更を頻繁に行うことが容易に可能となっており、また、行われるようになっている。例えば、オフィス内のレイアウト変更や、ネットワークレイアウトの変更などである。
【０００７】
この結果、ホストコンピュータから見ると、物理的には同じプリンタデバイスであるにもかかわらず、異なるプリンタとして見えるように変化する状況が起こりやすくなった。ただし現実問題として、単にプリンタから出力するだけであれば、新しく見えるプリンタに対して、そのままアクセスすること自体は容易であるため、特に問題とはならない。問題となるのはプリンタ毎に機能設定を行っている場合である。
【０００８】
ネットワーク識別子によりプリンタを識別している場合には、ホストコンピュータに保存されているプリンタ毎の機能設定が、そのプリンタの設置再編に伴い利用できなくなってしまう。プリントサーバによってプリンタを識別する場合には、そのプリントサーバにおいてホストコンピュータあるいはユーザ情報と関連付けて機能設定を保存するデータベースを保持し、プリンタの設置再編に合わせて忘れずにデータベースの更新を行うことで、このような問題点は解消される。ただし、現実的にはこのようなメンテナンスは非常に工数がかかる作業であり、そのような作業を必要とすることは、ネットワークに対してプリンタデバイスを容易に接続できるという利点を相殺してしまうものである。
【０００９】
サーバで統一的に管理するのではなく、機種毎にプリンタドライバで同じ設定をデフォルトで設定できるようにするという方法もあるが、同じ種類のデバイスであっても個体差によって設定が異なることはよくある。例えば、同じ機能を持っていても特定のデバイス個体の調子が悪い場合には特にその機能を使わないデバイスと使うデバイスで使い分けたりすることもある。
【００１０】
また一方で、利用者の立場から見ると、一人の利用者が複数のホストコンピュータを利用することも考えられる。例えば、主に固定位置で使用しているデスクトップＰＣと持ち運びながら様々な場所で利用するノートＰＣの二つを利用する場合などである。また、ＰＣの低コスト化に伴い、複数のＰＣを利用する利用者も増えてきている。
【００１１】
利用者はそれぞれ利用するプリンタ毎に異なる、頻繁に使用する設定を簡単に選択して使用したいという要求がある。しかし、複数のホストコンピュータと複数のプリンタデバイスの利用環境において、プリンタの機能設定をホストコンピュータ毎に行わなくてはならない状況は利用者にとって煩雑な作業を強いられる。この状況についてもプリントサーバで全てのプリンタが管理されていれば、プリントサーバのデータベースに設定を保存することで煩雑さから開放されるが、サーバのメンテナンスを考慮すれば、必ずしも全ての環境で用意できるものではない。
【００１２】
なお、今日の技術としてはデバイスの筺体あるいは付属設備としてサーバシステムを付加、内蔵するものも存在するが、そのような装置であっても、サーバのメンテナンスに関する課題は変わらず、加えてどのようなプリンタデバイスでも搭載しているというような条件ではない。さらに、そのような装置はネットワークシステム内では稀な存在であるため、本発明における課題とは一線を画すものである。
【００１３】
本発明が上記課題に鑑みて、プリントサーバなどのネットワーク上のプリンタデバイスを一括で管理するサーバを使用せずに、また、利用者がホストコンピュータとプリンタデバイスの組み合わせごとに予め利用者自身が個別に設定を行わずに、ユーザ毎にデバイス個体に対する同じ印刷機能設定をどのホストコンピュータからでも利用でき、かつ、プリンタデバイスのネットワーク上の設定の変更によらず継続して印刷機能設定を利用できるようにすることにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するために本発明は以下の構成からなる。
【００１５】
所定の通信媒体上に接続された、少なくとも一つ以上の画像形成装置および、少なくとも一つ以上の端末装置を備えたプリントシステムにおいて、前記画像形成装置を使用する利用者を識別する利用者識別手段、前記端末装置から前記画像形成装置に対して前記利用者と印刷設定を組にした情報を送信する印刷設定登録手段、前記印刷設定登録手段によって前記端末装置から送信された前記利用者と印刷設定および印刷設定の当該利用者における指定頻度を組とした情報を前記画像形成装置内に保存する印刷設定保持手段、前記端末装置から前記画像形成装置に対して印刷を行う利用者を指定する利用者指定手段、前記印刷設定保持手段に保存されている利用者と印刷設定の組の中から前記利用者指定手段によって指定された利用者に対応する最も指定頻度の高い印刷設定を前記画像形成装置から前記端末装置へ送信する印刷設定返送手段、前記印刷設定返送手段によって画像形成装置から送信された当該印刷設定を用いて当該端末装置から当該画像形成装置に印刷指示を行う印刷指示手段、を備えることを特徴とするプリントシステム。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、プリントサーバなどのネットワーク上のプリンタデバイスを一括で管理するサーバを使用せずに、また、利用者がホストコンピュータとプリンタデバイスの組み合わせごとに予め利用者自身が個別に設定を行わずに、ユーザ毎にデバイス個体に対する同じ印刷機能設定をどのホストコンピュータからでも利用でき、かつ、プリンタデバイスのネットワーク上の設定の変更によらず継続して印刷機能設定を利用できるようにすることが可能となった。
【００１７】
また、いずれのホストコンピュータからでも初めて使用する利用者の場合でも、そのデバイスの利用頻度の高い設定をデフォルトで使用することが出来るため、どのような利用者に対しても望ましい設定を簡単に使用することが出来ることとなった。
【００１８】
プリンタ本体に設定情報を保存するだけであるため、低価格帯のデバイスにおいても容易かつ低コストで実現することが出来、ネットワークに接続される多くのプリンタデバイスを対応させることが可能となった。
【発明を実施するための最良の形態】
【００１９】
以下本発明の実施例を、図に沿って詳細に説明する。
【実施例】
【００２０】
（第一の実施例）
図１は本発明における実施例であるプリントシステムの全体構成を示すブロック図である。
【００２１】
図１において、１および２はクライアントＰＣ、３および４はプリンタ、５はクライアントＰＣとプリンタを接続するネットワークである。
【００２２】
図においてクライアントＰＣから送られた印刷ジョブはプリンタによって処理されて出力されるものとする。
【００２３】
なお、図１においてはクライアントＰＣとプリンタ、それぞれ２つのみ図示しているが、これに限らず任意の数のクライアントＰＣとプリンタが接続されているものとする。
【００２４】
さらにクライアントＰＣおよびプリンタ内におけるソフトウェアモジュールの構成も含めて詳細に説明を行う。
【００２５】
図２は本実施例におけるクライアントＰＣとプリンタの内部構成を示すブロック図である。図２においては説明の便宜のためハードウェアとソフトウェアが混在している。
【００２６】
図において、１０はプリンタ、１１はクライアントＰＣを示す。１０は図１における３あるいは４などに対応し、１１は図１における１あるいは２などに対応する。ここでは特定の組み合わせではなく、一般的な構成を表している。
【００２７】
プリンタ１０は大きく分けると１２の画像形成装置、１３の記憶装置、１４のＣＰＵ、１５の通信装置のハードウェアブロックから成る。画像形成装置１２はプリンタ１０における印刷機能を持つ部分であり、さらに付加機能を実現するための紙搬送機能や製本機能を持つ場合もある。記憶装置１３は本発明における特徴であるユーザ情報と設定情報を保存する。１４のＣＰＵはプリンタ１０を制御する。通信装置１５によって、プリンタ１０は印刷指示としてのジョブや印刷設定を受け取る。
【００２８】
１１のクライアントＰＣは大きく分けると１６の通信装置、１７のＣＰＵ、１５の入出力装置のハードウェアブロックから成る。通信装置１６はクライアントＰＣからプリンタに対して印刷指示としてのジョブや印刷設定を送信するために使用される。１７のＣＰＵはクライアントＰＣの本体とも言える部分であり、ここで必要な制御や演算が全て行われる。入出力装置１８はクライアントＰＣの利用者が必要な操作を行うにあたり情報の入力や、また逆にクライアントＰＣから得られる情報を確認するための装置であり、一般的なキーボードやマウス、ディスプレイを示している。
【００２９】
通信装置１５および１６により、クライアントＰＣとプリンタは任意の組み合わせで通信を行うことが可能となっており、プリンタ１０にとっては通信装置１５を通して、クライアントＰＣ１１にとっては通信装置１６を通して、それぞれ互いを透過的にアクセスできるようになっている。
【００３０】
なお、クライアントＰＣは一般的なコンピュータシステムの形態をとっており、公知の技術により構成されているものとして、本実施例においては詳細な説明を省略する。
【００３１】
２０は１４のＣＰＵの上で動作するソフトウェアプログラムを示す制御ソフトウェアである。図において制御ソフトウェア２０は通信装置１５から得られるクライアントＰＣからの印刷指示情報を元に画像形成装置１２を制御し、出力を行う。また、記憶装置１３を使用してユーザ情報と設定情報の記憶、読み出しを行う。この他、通信装置１５を使用してクライアントＰＣへ情報を送信する制御も制御ソフトウェア２０が行う。
【００３２】
２１、２２、２３は１７のＣＰＵの上で動作するソフトウェアプログラムを示す。２１は１７のＣＰＵ上で動作しているオペレーティングシステムであり、２２のプリンタドライバや２３のアプリケーションプログラムに対してクライアントＰＣの資源としてのＩ／Ｏ、すなわち通信装置１６や入出力装置１８を利用するための機能を提供する。２２はプリンタドライバであり、プリンタ１０を利用して出力を行うための機能をアプリケーションプログラム２３に対して提供する。アプリケーションプログラム２３はクライアントＰＣ上で動作し、利用者が利用する一般的なソフトウェアである。
【００３３】
利用者がクライアントＰＣ上のアプリケーションプログラムを利用してプリンタに出力を行う場合には、入出力装置１８からクライアントＰＣの操作を行う。そして、オペレーティングシステム２１は入出力装置１８を制御しつつアプリケーションプログラム２３へ利用者の操作情報を伝える。アプリケーションプログラム２３はプリンタドライバ２２あるいはオペレーティングシステム２１直接を利用して利用者との対話あるいは印刷処理の指示を行う。プリンタドライバ２２はアプリケーションプログラム２３から指定された印刷データをプリンタ１０へ伝えるべくオペレーティングシステムを利用する。オペレーティングシステム２１は通信装置１６を介して、プリンタドライバの印刷指示をプリンタ１０の通信装置１５へ伝える。
【００３４】
ここで、プリンタドライバ２２はプリンタ１０に対応したソフトウェアモジュールであり、異なるプリンタに対しては異なるプリンタドライバがその役目を果たす。図３はこのことを示した図である。
【００３５】
図３は図２におけるクライアントＰＣとプリンタの関係を複数のプリンタが接続される場合の例で示したブロック図である。図３においては図２に比較して必要な部分のみに簡略化しており、プリンタ内部のブロック図と入出力装置について省略しているが、その部分については図２におけるブロック図と同様であるものとする。
【００３６】
図３において３０はクライアントＰＣを示す。３０のクライアントＰＣは通信装置１６を介して３のプリンタＡと４のプリンタＢに接続されている。この場合、１７のＣＰＵの内部ではプリンタＡ用のプリンタドライバ３４とプリンタＢ用のプリンタドライバ３３がそれぞれ存在し、３４によって３への出力が、３３によって４への出力が制御されるものとする。アプリケーションプログラム３２はプリンタＡ、プリンタＢいずれのほうから出力するかによって３３と３４のプリンタドライバを使い分ける。なお、複数のプリンタが物理的に接続されている場合であっても、プリンタドライバがＣＰＵ内に存在しない場合も実運用上はありえるが、その場合には対応するプリンタドライバをもっていないプリンタに対しては出力できない。
【００３７】
次に、利用者がアプリケーションプログラムを通じてプリンタから印刷を行う際のユーザインタフェースについて説明する。
【００３８】
図４は本実施例におけるプリンタドライバの設定画面の一例である。図４に示すユーザインタフェースは図２におけるクライアントＰＣの入出力装置１８に不図示のキーボードおよびマウス等のポインティングデバイスを利用して操作するものである。
【００３９】
図において、１００はプリンタドライバの設定画面、そしてその中で、１０１は印刷を行おうとしている利用者のユーザＩＤ表示部、１０２は両面印刷選択パネル、１０３は面付け印刷設定パネル、１０４は用紙サイズ選択パネル、１０５は印刷画質選択パネル、１０６は印刷開始ボタン、１０７は印刷キャンセルボタンを示している。
【００４０】
図４においては、プリンタドライバは両面印刷、面付け指定、用紙サイズ、画質の４つの設定を選択できることを示している。
【００４１】
１０１のユーザＩＤ表示はクライアントＰＣの利用者がクライアントＰＣにログインした際に使用したユーザ名を示しており、プリンタに保存されるユーザごとの情報もこのユーザＩＤを使用して識別するものとする。図４においては「ｕｓｅｒ−ａ」というユーザＩＤでログインして印刷しようとしていることを示している。
【００４２】
１０２は両面印刷を行うか、片面印刷を行うかを選択するためのチェックボックスである。図４においては両面印刷が選択されている。
【００４３】
１０３は用紙の一面に何ページ分を配置して印刷を行うかを選択する。図４においては１面に１ページ分、１面に２ページ分、１面に４ページ分、の３種類の面付けの中から選択することが出来る。図においては１ページ分の面付けが選択されている。
【００４４】
１０４は出力に使用する用紙サイズを指定する。図４においてはＡ４サイズが指定されている。
【００４５】
１０５は画質を選択する。図４においては高画質モードと通常画質モードが選択できるようになっており、高画質モードが選択されている。
【００４６】
１０６の印刷ボタンを押すことにより、１０１から１０５までで示された設定に従った印刷を開始することが出来る。１０７のキャンセルボタンを押すと印刷処理はキャンセルされアプリケーションプログラムの操作へ戻る。
【００４７】
次に、利用者がアプリケーションプログラムを通じてプリンタから印刷を行う際の情報の流れについて説明する。
【００４８】
図５は本実施例におけるプリントシステムで利用者が印刷を行う際の通信の流れを示したタイミングチャートである。
【００４９】
図において２００はクライアントＰＣの利用者、２０１はアプリケーションプログラム、２０２はプリンタドライバ、２０３はプリンタを示している。アプリケーションプログラム２０１は図３における３２に対応し、プリンタドライバ２０２は図３における３３あるいは３４に、プリンタ２０３は図３における３あるいは４に対応する。
【００５０】
まず利用者はアプリケーションプログラムを使用している。そして、２０４においてアプリケーション上で印刷を行うために印刷指示を行う。
【００５１】
アプリケーションはこれに対応した処理としてアプリケーションから印刷を行う対象であるプリンタと対応するプリンタドライバが決められる。そして、２０５でプリンタドライバに対して印刷設定の指示を行う。ここでアプリケーションプログラムは印刷を行おうとしている利用者のユーザＩＤをプリンタドライバに対して送信する。印刷設定指示を受けたプリンタドライバは対応するプリンタに対して２０６でユーザＩＤを送信し、ユーザＩＤに対応して保存されている印刷設定情報の取得を要求する。
【００５２】
プリンタは図２における１３の記憶装置に保存されている２０６で指定されたユーザＩＤに対応する設定データを検索し、２０７でプリンタドライバへ返す。なお、ここでユーザＩＤに対応する設定データが保存されていなかった場合にはエラーステータスを返すものとする。プリンタドライバはプリンタから返された設定を元に図４に示す設定画面を表示する（２０８）。設定画面では２０７でプリンタから返された設定で表示されおり、利用者が設定を変更する必要が無ければ図４に示す１０６の印刷ボタンを押すだけで印刷を開始することが出来る。図４に示す設定画面は図５における２０８から２０９の間でプリンタドライバによって表示されるものである。
【００５３】
通常は、その利用者のための設定が反映されているため、利用者はそのまま印刷ボタンを押すだけで印刷を開始できる。利用者が印刷ボタンを押すと２０９でプリンタドライバに対して印刷設定と印刷開始指示が送られる。
【００５４】
利用者から印刷開始指示が送られるとプリンタドライバは利用者の指定した設定でプリンタに対して印刷指示を送る（２１０）。この際、印刷ジョブデータに加えて、ユーザＩＤと利用者が指定した印刷設定データもプリンタへ送信する。
【００５５】
プリンタはプリンタドライバからの印刷指示に対して印刷処理を行うと同時に、指定されたユーザＩＤと設定データを図２における記憶装置１３へ保存しておく。これにより、以後の印刷においてもクライアントＰＣがいずれかに関わらず同じ利用者が同じ設定で印刷することが可能となる。
【００５６】
印刷が完了するとプリンタからプリンタドライバへ（２１１）、次にプリンタドライバからアプリケーションへ（２１２）、最後にアプリケーションから利用者に対して印刷が完了された旨の通知が行われる。
【００５７】
次にプリンタドライバとプリンタの間でやり取りされるデータの構造について説明する。
【００５８】
図６は図５の２０７においてプリンタからプリンタドライバに返されるデータの構造を示している。図６に示すデータ構造体は３００と３０１の領域から成り、３０１は設定データ本体、３００は設定データ３００のサイズを示すデータである。設定データの内容はプリンタおよびプリンタドライバによって異なるため、図６のデータ構造体を解釈できるのは対応するプリンタドライバのみである。
【００５９】
図７は図５の２１０においてプリンタドライバからプリンタへ送られるデータ構造を示している。図７に示すデータ構造体は５つの領域から成る。３１０はその印刷ジョブに対応するユーザＩＤである。３１０は図４において１０１で示されるユーザＩＤと同じものである。３１１および３１２は２１０で送られる送信データに対応する設定データである。データ構造的には、この二つの部分は図６に示すデータ構造と同じである。３１４は２１０で指示している印刷ジョブのデータ本体である。印刷するページデータおよびプリンタに対する操作指示のデータが含まれている。３１３は３１４のサイズを示すデータである。
【００６０】
プリンタは印刷処理と同時に図７における３１０、３１１、３１２の部分のデータを図２における記憶装置１３へ保存する。図８は記憶装置１３における保存状態を示すデータ構造である。
【００６１】
図８に示すデータ構造は、まずプリンタに記憶されているユーザＩＤのリストを持つ。３２０と３２１はその一部を示している。一つのユーザＩＤに対応して設定データのリストへのリンクをもっている。リンクの先にはそのユーザＩＤに対応した設定データのリストがある。３２０は３２２から３２５で成る一つのデータ構造体を指している。３２０が指すデータ構造体はさらに３２６から３２９で成る一つのデータ構造体を指しており、さらにそのデータ構造体は先のデータ構造体を指すというように線形リストの構造になっている。同様に３２１は３３０から３３３で成る構造体を指しており、３２１が指す構造体は３３４から３３７で成る構造体を指している。
【００６２】
ユーザＩＤのリストから指し示されている一つのデータ構造体は４つの領域から成っている。３２２はその構造体が指す設定データが利用された回数を示すカウント値である。３２３は線形リストを構成する次の構造体を指している。線形リストの最後となるデータ構造体は例えば３３５に示されるようにその先のデータ構造体が無いことを示すように無効なポインタ値が格納されている。この値は本実施例においてはｎｕｌｌ値である。３２５は設定データであり、３２４は３２５のデータサイズを示すデータである。３２４および３２５の部分は図６に示すデータ構造と同じ構造と成っており、図５における２０７で設定データを返す際にはこの部分をそのまま返すことになる。
【００６３】
同様に、３２６から３２９、３３０から３３３、３３４から３３７も同じ意味のデータ構造と成っている。これらが、ユーザＩＤ毎にそれぞれ同じデータ構造でリストを保持するようになっている。
【００６４】
次に図８に示すデータ構造に基づいた設定データの登録について説明する。
【００６５】
図９は本実施例における設定データの保存、つまり図５における２１０から２１１の間で行われるユーザＩＤに対応した設定データを記憶装置１３へ保存する処理を説明するフローチャートである。
【００６６】
まず図５における２１０でプリンタドライバからの印刷指示が送られると、プリンタはステップＳ４００において処理を開始する。プリンタは図７に示す構造のデータを受け取り、ステップＳ４０１において図７における３１０で示されるユーザＩＤが図８に示されるユーザＩＤリストに含まれているかを探し出す。ステップＳ４０２では、ユーザＩＤがリストに含まれているか否かによって処理の分岐を行う。ユーザＩＤがリストに含まれている場合（Ｙｅｓ）にはステップＳ４０３へ進み、含まれていなかった場合にはステップＳ４０７へ進む。
【００６７】
ステップＳ４０３ではユーザＩＤに対応する設定データ構造体のリストを辿る。具体的には、例えば図８における３２０からリンクの先を探して３２２から３２５のデータ構造体へ行く。この後は３２３からリンクの先を探して３２６から３２９のデータ構造体へ行くように、次々とリンクの先を辿っていく。ステップＳ４０３においてはまず一つ分のリンクを辿る。リンクの先がある場合（Ｙｅｓ）にはステップＳ４０４へ進み、無い場合（Ｎｏ）にはステップＳ４０８へ進む。リンクの先が無い場合というのは、例えば、図８における３３５のような状態である。
【００６８】
ステップＳ４０４ではリンクの先のデータ構造から設定データの部分を読み込む。そしてステップＳ４０５にて、このデータと図７における３１１および３１２の部分を比較し一致した場合（Ｙｅｓ）にはステップＳ４０６へ進み、一致しなかった場合（Ｎｏ）には更に次のリンクの先を辿るためにステップＳ４０３へ戻る。ステップＳ４０６では一致した設定データを持つデータ構造体のカウント値を１増加させる。図８においては２２２、３２６、３３０、３３４などの部分がカウント値である。カウント値をインクリメントした後は登録処理を終了する（ステップＳ４０９）。
【００６９】
ステップＳ４０２においてユーザＩＤがリストに無かった場合にはステップＳ４０７へ進み新たにユーザＩＤをリストへ追加する。図８においては３２０、３２１等が列挙されているテーブルデータ構造の最後へ追加される。この時点では設定データのデータ構造体へのリンクは無いものとする。
【００７０】
更にステップＳ４０８へ進み、ここで設定データのデータ構造体を追加する。ここでカウント値は１、リンク先を示すデータは空、設定データサイズと設定データは図７における３１１および３１２の部分をそのまま複製するものとする。これにより、新しくユーザＩＤと設定データが追加された。後はステップＳ４０９へ進み処理を終了する。
【００７１】
ステップＳ４０３において、（指定された設定データに一致する）設定データの構造体が無かった場合にはステップＳ４０８へ進み、上記同様設定データを追加する。
【００７２】
以上、説明した手順により、図８に示されているデータ構造体にはユーザＩＤと設定データの組み合わせがユーザ毎の指定頻度に従って記録されていくことになる。
【００７３】
次にこのデータ構造からユーザＩＤに対応して最も指定頻度の高い設定データを取得する手順、すなわち図５における２０７で返すデータの検索について説明する。
【００７４】
図１０は本実施例における設定データの検索処理を説明するフローチャートである。
【００７５】
まず図５における２０６でプリンタドライバからの設定取得要求が送られると、プリンタはステップＳ４１０において処理を開始する。プリンタはステップＳ４１１において指定されたユーザＩＤが図８に示されるユーザＩＤリストに含まれているかを探し出す。ステップＳ４１２では、ユーザＩＤがリストに含まれているか否かによって処理の分岐を行う。ユーザＩＤがリストに含まれている場合（Ｙｅｓ）にはステップＳ４１３へ進み、含まれていなかった場合にはステップＳ４２０へ進む。
【００７６】
ステップＳ４１３ではこの後の処理で使用する変数であるカウント値の最大値を０に初期化しておく。次にステップＳ４１４ではユーザＩＤに対応する設定データ構造体のリストを辿る。具体的には、例えば図８における３２０からリンクの先を探して３２２から３２５のデータ構造体へ行く。この後は３２３からリンクの先を探して３２６から３２９のデータ構造体へ行くように、次々とリンクの先を辿っていく。ステップＳ４１４においてはまず一つ分のリンクを辿る。リンクの先がある場合（Ｙｅｓ）にはステップＳ４１５へ進み、無い場合（Ｎｏ）にはステップＳ４１９へ進む。
【００７７】
ステップＳ４１５ではリンクの先のデータ構造からカウント値を読み込む。そしてステップＳ４１６にて、過去に調べたデータ構造体におけるカウント値の最大値と比較して現在参照しているデータ構造体のカウント値のほうが大きいかを判断する。現在のカウント値が最大値である場合（Ｙｅｓ）にはステップＳ４１７へ進み、そうでない場合（Ｎｏ）にはステップＳ４１４へ戻る。
【００７８】
ステップＳ４１７では現在参照しているデータ構造体の設定データが最も指定頻度の高いものである可能性があるため、データ構造体への参照を記憶しておく。次のステップＳ４１８ではカウント値の最大値を記憶している変数を更新する。
【００７９】
ステップＳ４１４においてリンクの先が無かった場合は、そのユーザＩＤに対応する全ての設定データを調べたことを意味する。ステップＳ４１９ではステップＳ４１７で最後に記憶していたデータ構造体、すなわち最大のカウント値を持つデータ構造体の設定データをプリンタドライバへ送信し、ステップＳ４２１にて処理を終了する。
【００８０】
ステップＳ４１２においてリストに指定されたユーザＩＤが含まれていなかった場合にはステップＳ４２０にてプリンタドライバへエラーを返す。これにより、プリンタドライバはプリンタドライバの持つデフォルト値にて利用者に設定を促すことになる。
【００８１】
以上説明した手順により、図８に示すデータ構造から指定されたユーザＩＤに対応する過去最も指定頻度の高かった設定データを返すことができるようになっている。
【００８２】
以上説明したように、プリンタ本体にプリンタドライバで設定する情報、ユーザＩＤ、指定回数の組を保存し、プリンタドライバでの印刷設定前にプリンタからユーザＩＤに対応する最も指定回数の多い設定情報を返すようにし、印刷時にはユーザＩＤと印刷設定情報をプリンタに渡してプリンタ本体内でそのデータを更新することにより、同じユーザＩＤを使用する利用者がどのクライアントＰＣから印刷しても、また、プリンタ本体のネットワーク上の接続設定が変わっても、常に利用者の希望に近い印刷設定を利用できるようになった。
【００８３】
なお、本実施例においては、クライアントＰＣにログインした時のユーザＩＤをプリンタに保存されている設定情報を識別するために使用していたが、これに限らず任意のユーザ識別子を使用することが可能である。たとえば、プリンタドライバの設定画面においてユーザＩＤを利用者が入力するようになっていても有効である。
【００８４】
（第二の実施例）
第二の実施例においては第一の実施例のそれと基本的な構成は同じであるため、第一の実施例との差異のみを説明する。
【００８５】
第一の実施例においては、記憶装置１３に登録されていないユーザＩＤに対しては設定データが無いものとしてエラーを返していた。従って、初めて使用する利用者は全くのデフォルト値を使用することになる。これに対して第二の実施例においては、登録されていない利用者に対して全ての利用者の設定データの最も指定頻度の高いものを選択して返す。
【００８６】
図１１は第二の実施例における記憶装置１３内のデータ構造を示した図である。
【００８７】
図１１のデータ構造においては大きく分けて二つの参照開始ポイントがある。一つは３５０に示すユーザＩＤリストの参照であり、ここからの参照手順は基本的に図８に示す手順と同じである。もう一つは３５８に示す設定データのリストへの入り口である。
【００８８】
図１１に示すデータ構造はユーザＩＤ毎に設定データのリストを保持するのではなく、設定データのリストは全体に一つとして、ユーザＩＤ毎には設定データへのポインタとユーザＩＤ単位での指定カウンタから成るデータ構造のリストを保持する。
【００８９】
全体の設定データリストはそれぞれの設定データ構造体に全ユーザＩＤの中での指定カウントを保持している。
【００９０】
図において、３５０はユーザＩＤリストへの参照の入り口、３５１はユーザＩＤとユーザＩＤ毎の設定データリストへのポインタから成る一つのユーザＩＤ項目、３５２から３５４および３５５から３５７はユーザＩＤ毎に保持する設定データリストの一つのデータ構造体を示し、これがユーザ毎に一つ以上連なっているような構造と成る。この中で３５２あるいは３５５は対応する設定データとユーザＩＤの組み合わせによって指定された回数のカウンタ、３５３あるいは３５６は次の項目へのポインタ、３５４あるいは３５７は設定データ実体へのポインタを示すデータである。
【００９１】
一方、３５８は全体の設定データリストへの参照の入り口、３５９から３６２、３６３から３６６、３６７から３７０は全てのユーザＩＤにおいて保持される設定データリストの一つのデータ構造体を示し、これが線形リスト構造と成っている。この中で、３５９、３６３、３６７で示されるデータは全てのユーザＩＤにおいてその設定データの指定された回数のカウンタ、３６０、３６４、３６８は次の設定データ構造体へのポインタ、３６１と３６２、３６５と３６６、３６９と３７０は設定データの本体である。この部分は図６に示すデータ構造と同じ構造と成っており、図５における２０７で設定データを返す際にはこの部分をそのまま返すことになる。
【００９２】
次に図１１に示すデータ構造へのアクセスの仕方について説明する。
【００９３】
図１２は第二の実施例における設定データの登録処理を示すフローチャートである。これは第一の実施例における図９に対応する処理である。
【００９４】
まず図５における２１０でプリンタドライバからの印刷指示が送られると、プリンタはステップＳ４３０において処理を開始する。プリンタは図７に示す構造のデータを受け取り、対応する設定データを探し出すためにまず図１１における３５８から全体リストへ行く（Ｓ４３１）。ここから順にリンクを辿るためステップＳ４３２において次の設定データの構造体がリンク先に存在するかを判断する。存在する場合（Ｙｅｓ）にはステップＳ４３３へ進み、存在しない場合（Ｎｏ）にはステップＳ４３６へ進む。ステップＳ４３３では次の設定データ構造体へ進み設定データの部分を読み取る。そしてステップＳ４３４において、読み取った設定データと図７に示すプリンタドライバから指定された設定データが一致するかを判断する。一致する場合（Ｙｅｓ）にはステップＳ４３５へ進み、一致しない場合（Ｎｏ）にはステップＳ４３２へ戻ってさらにリストの先に一致する設定データがあるかを探していく。ステップＳ４３５では後にユーザＩＤに対応する設定データとして記録されているかを調べるために一致した設定データ構造体へのポインタを記憶しておく。
【００９５】
ステップＳ４３２において次の設定データが無いということは３５８からの全体リストの最後まですすんでもプリンタドライバから指定された設定データに一致するものが無かったことを示す。そこで、ステップＳ４３６では全体リストの最後にプリンタドライバから指定された設定データでリストのデータ構造体を追加する。設定データのサイズと設定データは図７で示すデータ構造体のものをそのまま複製し、カウント値は０に設定しておく。そして、ステップＳ４３７において追加した設定データ構造体へのポインタを記憶しておき、ステップＳ４３８へ進む。
【００９６】
全体リストから設定データ構造体を探し出す、あるいは追加してポインタを記憶したら、次にステップＳ４３８でステップＳ４０１において図７における３１０で示されるユーザＩＤが図１１における３８０に示されるユーザＩＤリストに含まれているかを探し出す。ステップＳ４３９では、ユーザＩＤがリストに含まれているか否かによって処理の分岐を行う。ユーザＩＤがリストに含まれている場合（Ｙｅｓ）にはステップＳ４４０へ進み、含まれていなかった場合にはステップＳ４４３へ進む。
【００９７】
ステップＳ４４０ではユーザＩＤに対応する構造体のリストを辿る。リンクの先がある場合（Ｙｅｓ）にはステップＳ４４１へ進み、無い場合（Ｎｏ）にはステップＳ４４４へ進む。
【００９８】
ステップＳ４４１ではリンクの先のデータ構造から設定データへのポインタ部分を読み込む。そしてステップＳ４４２にて、このポインタとステップＳ４３５あるいはステップＳ４３７で記憶したポインタと比較し一致した場合（Ｙｅｓ）にはステップＳ４４５へ進み、一致しなかった場合（Ｎｏ）には更に次のリンクの先を辿るためにステップＳ４４０へ戻る。
【００９９】
ステップＳ４３９においてユーザＮｏがリストに無かった場合にはステップＳ４４３へ進み新たにユーザＩＤをリストへ追加する。この時点では設定データのデータ構造体へのリンクは無いものとする。
【０１００】
更にステップＳ４４４へ進み、ここでデータ構造体を追加する。ここでカウント値は０、リンク先を示すデータは空、設定データへのポインタはステップＳ４３５あるいはステップＳ４３７で記憶したポインタを設定する。そして、ステップＳ４４５へ進む。
【０１０１】
ステップＳ４４０において、リストの最後まで行った場合にはステップＳ４４４へ進み、上記同様データ構造体を追加する。
【０１０２】
ステップＳ４４５ではユーザＩＤリストからの構造体でユーザ毎のカウント値を１増加させる。図１１においては３５３、３５６がこれに相当する部分である。
【０１０３】
次にステップＳ４４６において、今度は全体でのカウント値を１増加させる。図１１においては３５９、３６３、３６７がこれに相当する部分である。
【０１０４】
以上で、指定された設定データが更新され、ユーザ毎のカウント値と全体でのカウント値も更新されステップＳ４４７で狩猟する。
【０１０５】
以上、説明した手順により、図１１に示されているデータ構造体にはユーザＩＤと設定データの組み合わせがユーザ毎および全体の両方の指定頻度に従って記録されていくことになる。
【０１０６】
次にこのデータ構造からユーザＩＤに対応して最も指定頻度の高い設定データを取得する手順、すなわち図５における２０７で返すデータの検索について説明する。
【０１０７】
図１３は第二の実施例における設定データの検索処理を説明するフローチャートである。これは第一の実施例における図１０に対応する処理である。
【０１０８】
まず図５における２０６でプリンタドライバからの設定取得要求が送られると、プリンタはステップＳ４５０において処理を開始する。プリンタはステップＳ４５１において指定されたユーザＩＤが図１１に示されるユーザＩＤリストに含まれているかを探し出す。ステップＳ４５２では、ユーザＩＤがリストに含まれているか否かによって処理の分岐を行う。ユーザＩＤがリストに含まれている場合（Ｙｅｓ）にはステップＳ４５３へ進み、含まれていなかった場合にはステップＳ４６０へ進む。
【０１０９】
ステップＳ４５３ではこの後の処理で使用する変数であるカウント値の最大値を０に初期化しておく。次にステップＳ４５４ではユーザＩＤに対応する設定データ構造体のリストを辿る。具体的には、例えば図１１における３５１からリンクの先を探して３５２から３５４のデータ構造体へ行く。この後は３５３からリンクの先を探して３５５から３５７のデータ構造体へ行くように、次々とリンクの先を辿っていく。ステップＳ４５４においてはまず一つ分のリンクを辿る。リンクの先がある場合（Ｙｅｓ）にはステップＳ４５５へ進み、無い場合（Ｎｏ）にはステップＳ４５９へ進む。
【０１１０】
ステップＳ４５５ではリンクの先のデータ構造からカウント値を読み込む。そしてステップＳ４５６にて、過去に調べたデータ構造体におけるカウント値の最大値と比較して現在参照しているデータ構造体のカウント値のほうが大きいかを判断する。現在のカウント値が最大値である場合（Ｙｅｓ）にはステップＳ４５７へ進み、そうでない場合（Ｎｏ）にはステップＳ４５４へ戻る。
【０１１１】
ステップＳ４５７では現在参照しているデータ構造体の指す設定データが最も指定頻度の高いものである可能性があるため、データ構造体への参照を記憶しておく。次のステップＳ４５８ではカウント値の最大値を記憶している変数を更新する。
【０１１２】
ステップＳ４５４においてリンクの先が無かった場合は、そのユーザＩＤに対応する全ての設定データを調べたことを意味する。ステップＳ４５９ではステップＳ４５７で最後に記憶していたデータ構造体、すなわち最大のカウント値を持つデータ構造体からポインタを辿って設定データをプリンタドライバへ送信し、ステップＳ４６８にて処理を終了する。
【０１１３】
ステップＳ４５２においてリストに指定されたユーザＩＤが含まれていなかった場合には全体リストからユーザＩＤに関わらず指定頻度も最も高いものを探し出すため全体リスト、つまり図１１における３５８からデータ構造を辿る（ステップＳ４６０）。
【０１１４】
ステップＳ４６１ではこの後の処理で使用する変数であるカウント値の最大値を０に初期化しておく。次にステップＳ４６２では設定データ構造体の全体リストを辿る。具体的には、例えば図１１における３５８からリンクの先を探して３５９から３６２のデータ構造体へ行く。この後は３６０からリンクの先を探して３６３から３６６のデータ構造体へ行くように、次々とリンクの先を辿っていく。ステップＳ４６２においてはまず一つ分のリンクを辿る。リンクの先がある場合（Ｙｅｓ）にはステップＳ４６３へ進み、無い場合（Ｎｏ）にはステップＳ４６７へ進む。
【０１１５】
ステップＳ４６３ではリンクの先のデータ構造からカウント値を読み込む。そしてステップＳ４６４にて、過去に調べたデータ構造体におけるカウント値の最大値と比較して現在参照しているデータ構造体のカウント値のほうが大きいかを判断する。現在のカウント値が最大値である場合（Ｙｅｓ）にはステップＳ４６５へ進み、そうでない場合（Ｎｏ）にはステップＳ４６２へ戻る。
【０１１６】
ステップＳ４６５では現在参照しているデータ構造体の指す設定データが最も指定頻度の高いものである可能性があるため、データ構造体への参照を記憶しておく。次のステップＳ４６６ではカウント値の最大値を記憶している変数を更新する。
【０１１７】
ステップＳ４６２においてリンクの先が無かった場合は、全ての設定データを調べたことを意味する。ステップＳ４６７ではステップＳ４６５で最後に記憶していたデータ構造体、すなわち最大のカウント値を持つデータ構造体から設定データをプリンタドライバへ送信し、ステップＳ４６８にて処理を終了する。
【０１１８】
以上説明した手順により、図１１に示すデータ構造から指定されたユーザＩＤに対応する過去最も指定頻度の高かった設定データを返すことができるようになっている。そして、ユーザＩＤが登録されていない場合でも全体の中で最も指定頻度の高かった設定データを返すことができるようになっている。
【図面の簡単な説明】
【０１１９】
【図１】第一の実施例におけるプリントシステムの全体構成を示すブロック図
【図２】第一の実施例におけるクライアントＰＣとプリンタの内部構成を示すブロック図
【図３】第一の実施例におけるクライアントＰＣとプリンタの関係を複数のプリンタが接続される場合の例で示したブロック図
【図４】第一の実施例におけるプリンタドライバの設定画面の一例を示す図
【図５】第一の実施例におけるプリントシステムで利用者が印刷を行う際の通信の流れを示したタイミングチャート
【図６】第一の実施例におけるデータ構造例を示す図
【図７】第一の実施例におけるデータ構造例を示す図
【図８】第一の実施例におけるデータ構造例を示す図
【図９】第一の実施例における設定データを保存する処理を説明するフローチャート
【図１０】第一の実施例における設定データの検索処理を説明するフローチャート
【図１１】第二の実施例におけるデータ構造例を示す図
【図１２】第二の実施例における設定データの登録処理を示すフローチャート
【図１３】第二の実施例における設定データの検索処理を説明するフローチャート
【符号の説明】
【０１２０】
１  クライアントＰＣ
２  クライアントＰＣ
３  プリンタＡ
４  プリンタＢ
５  ネットワーク（接続線）
【図１】
2006092287.tif 000003
【図２】
2006092287.tif 000004
【図３】
2006092287.tif 000005
【図４】
2006092287.tif 000006
【図５】
2006092287.tif 000007
【図６】
2006092287.tif 000008
【図７】
2006092287.tif 000009
【図８】
2006092287.tif 000010
【図９】
2006092287.tif 000011
【図１０】
2006092287.tif 000012
【図１１】
2006092287.tif 000013
【図１２】
2006092287.tif 000014
【図１３】
2006092287.tif 000015