(57)【要約】【課題】  機器から機器情報を取得できない場合であっても、ドライバを自動生成することができるプログラムや装置を提供する。【解決手段】  PC等の情報処理装置は、ドライバ生成プログラムを実行することにより、プロトコル判定部１０３、情報取得部１０４、ドライバ生成部１０５として機能し、プロトコル判定部１０３が、機器との通信に使用されるプロトコルを検出し、そのプロトコルが指定されたプロトコルであるか否かを判定し、情報取得部１０４が、指定されたプロトコルであると判定された場合、機器から機器情報を取得し、指定されたプロトコルでないと判定された場合、情報格納部から機種共通の機器情報を取得し、ドライバ生成部１０５が、取得した機器情報に基づき機器に対応したドライバを生成する。【選択図】  図２
2011103066.tif 000002
【特許請求の範囲】
【請求項１】
機器を動作させるためのドライバを生成する処理を情報処理装置に実行させるドライバ生成プログラムであって、前記ドライバ生成プログラムが、
前記機器との通信に使用されるプロトコルを検出し、前記プロトコルが指定されたプロトコルであるか否かを判定するステップと、
前記指定されたプロトコルであると判定された場合、前記機器から機器情報を取得し、前記指定されたプロトコルでないと判定された場合、情報格納部から機種共通の機器情報を取得するステップと、
取得した前記機器情報に基づき前記機器に対応したドライバを生成するステップとを前記情報処理装置に実行させる、ドライバ生成プログラム。
【請求項２】
前記取得するステップは、前記指定されたプロトコルであると判定された場合、前記機器から当該機器に固有な機器情報のみを取得し、前記情報格納部から機種共通の機器情報を取得し、前記生成するステップは、前記固有な機器情報および前記機種共通の機器情報を組み合わせて前記機器に対応したドライバを生成する、請求項１に記載のドライバ生成プログラム。
【請求項３】
請求項１または２に記載のプログラムが記録された記録媒体。
【請求項４】
機器を動作させるためのドライバを自動生成する情報処理装置であって、
前記機器との通信に使用されるプロトコルを検出し、前記プロトコルが指定されたプロトコルであるか否かを判定するプロトコル判定部と、
前記指定されたプロトコルであると判定された場合、前記機器から機器情報を取得し、前記指定されたプロトコルでないと判定された場合、情報格納部から機種共通の機器情報を取得する情報取得部と、
取得した前記機器情報に基づき前記機器に対応したドライバを生成するドライバ生成部とを備える、情報処理装置。
【請求項５】
前記情報処理装置が、前記機種共通の機器情報を格納する前記情報格納部を備える、請求項４に記載の情報処理装置。
【請求項６】
前記機種共通の機器情報は、前記情報処理装置と通信可能な前記情報格納部としての外部記憶装置に格納され、前記外部記憶装置から取得される、請求項４に記載の情報処理装置。
【請求項７】
前記情報取得部は、前記機器から前記機器情報を取得することが可能な場合に、前記機器から当該機器に固有な機器情報のみを取得し、前記情報格納部から前記機種共通の機器情報を取得し、前記ドライバ生成部は、前記固有な機器情報および前記機種共通の機器情報を組み合わせて前記機器に対応したドライバを生成する、請求項４〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記機器は、印刷を実行する画像形成装置であり、前記情報処理装置は、前記画像形成装置に対応したプリンタドライバを生成し、前記プリンタドライバを実行して、前記画像形成装置に対し印刷を指令する、請求項４〜７のいずれか１項に記載の情報処理装置。
【請求項９】
請求項１または２に記載のドライバ生成プログラムにより生成されたドライバを実行する情報処理装置から送信された印刷データの印刷処理を行う、画像形成装置。
【請求項１０】
請求項１または２に記載のドライバ生成プログラムを格納するプログラム格納部と、前記ドライバ生成プログラムを情報処理装置へ送信するプログラム送信部とを備える、画像形成装置。
【請求項１１】
請求項１または２に記載のドライバ生成プログラムを格納する画像形成装置と情報処理装置とを含む印刷システムであって、前記画像形成装置と前記情報処理装置の通信時に、前記画像形成装置から前記情報処理装置へ前記プログラムを提供し、前記情報処理装置が前記プログラムを実行し、前記画像形成装置に対応したドライバを生成する、印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器から当該機器の機器情報を、取得可能か否かを判断し、可能である場合は機器情報を取得し、それを使用して、不可能である場合は予め保持する機器情報を使用して、当該機器を動作させるためのドライバを自動生成するドライバ生成プログラム、そのプログラムが記録された記録媒体、ドライバ生成プログラムを実行する情報処理装置、そのプログラムにより生成されたドライバによって送信された印刷データの印刷処理を行う画像形成装置、その情報処理装置とその画像形成装置とを含む印刷システムに関する。
【背景技術】
【０００２】
PCにプリンタを初めて接続し、印刷を実行しようとする場合、そのPC上にそのプリンタを動作させるためのプリンタドライバがインストールされていなければならない。そのプリンタドライバをインストールする方法として、Plug and Playと呼ばれる方式が数多く採用されるようになってきている。これは、PCが実装するOSに同梱されているドライバが存在すれば、プリンタを接続した時点でそのプリンタに対応したドライバが自動でインストールされるというものである。
【０００３】
しかしながら、すべてのドライバをOSに同梱することはデータサイズが大きくなってしまうことから困難であり、これに対応するために、プリンタから取得したCapability情報を基にプリンタドライバを自動生成する仕組みが提案されている。ここで、Capability情報とは、プリンタが有する機能情報で、プリンタの機能に関する情報が記載されたテキストファイルとして作成されるプリンタ設定ファイルに、値を付与するために用いられる設定データを含むものである。
【０００４】
この仕組みは、windows（登録商標）vistaにおけるWSD(Web Service on Device)スキーマを採用している。WSDスキーマでは、WSDに対応したプリンタをネットワークに接続すると自動的に認識されるようになっており、様々な機器を簡単につないで利用するための手続きを規定するWSDプロトコルを使用し、そのプリンタからCapability情報を取得することができる。
【０００５】
この仕組みを利用すれば、このようにして取得したCapability情報を基にプリンタドライバを自動生成することができるが、この仕組みはWSDに対応したプリンタに対してのみサポートされ、その他の、例えばUSB接続する場合のPlug and Playについてはサポートされていないので、プリンタドライバを自動生成することはできなかった。
【０００６】
従来、ドライバを自動生成してインストールするシステムおよび方法として、プリンタから各機種固有の機能情報を取得し、その機能情報を基にプリンタドライバを生成し、自動的にインストールする技術が提案されている（特許文献１参照）。この技術では、そのシステムがデバイスドライバ生成ロジックおよびデバイスジョブ処理ロジックを有し、デバイスドライバ生成ロジックにより、周辺装置から第１の機能説明情報、一般的なデバイスドライバファイル、コンフィギュレーションデータを受信し、これらに基づき周辺装置およびOSについてデバイスドライバを生成し、また、デバイスジョブ処理ロジックにより、第１の機能説明情報に基づき周辺装置が実行するジョブを記述するジョブチケットを生成し、ページ記述言語にフォーマットされたジョブデータとともに周辺装置に送信している。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、この技術も、プリンタから機能情報を取得することができない場合、ドライバを自動生成することはできない。
【０００８】
これでは機能情報を取得することができない場合、ユーザ自身がその機器に対応したドライバをインストールしなければ機器を使用することができず、特に機器の設置台数が多い企業等においては面倒な作業であった。
【課題を解決するための手段】
【０００９】
本発明は、上記課題に鑑み、機能情報を含む機器情報を取得することができる機器か否かを判断し、その判断に応じて機器情報をその機器から取得するか、自己が保持する情報を使用するかを決定し、いずれかから取得した情報に基づき、機器を動作させるためのドライバを自動生成するドライバ生成プログラムを提供する。これにより、プリンタから機器情報を取得することができない場合であっても、ドライバを自動生成することができ、その生成したドライバをインストールし、その機器を動作させることができる。
【００１０】
具体的には、そのドライバ生成プログラムは、PC等の情報処理装置に、機器との通信に使用されるプロトコルを検出し、そのプロトコルが指定されたプロトコルであるか否かを判定するステップと、指定されたプロトコルであると判定された場合、その機器から機器情報を取得し、指定されたプロトコルでないと判定された場合、情報格納部から機種共通の機器情報を取得するステップと、取得した機器情報に基づき、その機器に対応したドライバを生成するステップとを実行させる。
【００１１】
また、そのドライバ生成プログラムは、情報処理装置により実行されて、その情報処理装置を、機器との通信に使用されるプロトコルを検出し、そのプロトコルが指定されたプロトコルであるか否かを判定するプロトコル判定部と、指定されたプロトコルであると判定された場合、その機器から機器情報を取得し、指定されたプロトコルでないと判定された場合、情報格納部から機種共通の機器情報を取得する情報取得部と、取得した機器情報に基づき、その機器に対応したドライバを生成するドライバ生成部として機能させることができ、本発明では、この情報処理装置を提供することも可能である。
【００１２】
上記の機器は、印刷を実行する画像形成装置とすることができ、上記の情報処理装置は、当該画像形成装置に対応したドライバを生成し、そのドライバを実行して、画像形成装置に対し印刷を指令する。この場合、情報処理装置が上記の情報格納部を備えることができる。
【００１３】
また、機種共通の機器情報は、情報処理装置以外の外部記憶装置に記憶することもでき、この場合、情報処理装置は、この外部記憶装置にアクセスし、読み出して使用することができる。
【００１４】
上記情報取得部は、機器から機器情報を取得することが可能な場合に、その機器から当該機器に固有の機器情報のみを取得し、情報格納部から機種共通の機器情報を取得し、上記ドライバ生成部は、それらの機器情報を組み合わせてその機器に対応したドライバを生成することも可能である。
【００１５】
また、上記のドライバ生成プログラムにより生成されたドライバを実行する情報処理装置から送信された印刷データの印刷処理を行う、画像形成装置を提供することもでき、この画像形成装置は、そのドライバ生成プログラムを格納するプログラム格納部と、そのドライバ生成プログラムを情報処理装置へ送信するプログラム送信部とを備えることができる。
【００１６】
本発明では、機器としての画像形成装置とその画像形成装置を動作させるためのドライバを自動生成するドライバ生成プログラムを実行する情報処理装置とを含む印刷システムも提供することができる。
【００１７】
ドライバ生成プログラムは、情報処理装置が保持するばかりでなく、画像形成装置が保持し、情報処理装置との通信時に提供することが可能であり、画像形成装置は、このプログラムを情報処理装置へ送信すると、情報処理装置は、このプログラムを実行してドライバを生成し、そのドライバをインストールして、情報処理装置から画像形成装置を動作させることができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態の印刷システムの概略図。
【図２】印刷システムが備える画像形成装置と情報処理装置の機能ブロック図。
【図３】ドライバを自動生成する処理の流れを示したフローチャート図。
【図４】画像形成装置から取得した機器情報を例示した図。
【図５】機種共通の機器情報を例示した図。
【図６】機種に固有の機器情報を例示した図。
【発明を実施するための形態】
【００１９】
図１は、機器としての画像形成装置と、その画像形成装置を動作させるためのドライバを自動生成するドライバ生成プログラムを実行する情報処理装置とを含む印刷システムの概略図である。図１に示す印刷システムは、１台の情報処理装置１００と３台の画像形成装置２００、２１０、２２０とがネットワーク３００に接続され、また、その情報処理装置１００と１台の画像形成装置２３０とが直接接続され、互いに通信可能とされている。
【００２０】
情報処理装置１００は、基本ソフトウェアとしてのOS、各機能を実現するためのアプリケーション、画像形成装置２００、２１０、２２０、２３０を動作させ、OSが制御できるようにするためのドライバを生成するドライバ生成プログラム、コアドライバ、各種データを記憶するメモリやHDDと、それらを読み出して処理するCPUとを備えるPC、ワークステーション、サーバまたは他の形式のホストコンピュータ、PDA等の携帯端末とすることができる。この情報処理装置１００は、windows（登録商標）シリーズ、UNIX（登録商標）、LINUX（登録商標）、MAC OS（登録商標）等のOSを実装し、このOSの管理下で、アプリケーション、ドライバ生成プログラム、コアドライバ、生成したドライバ等を実行する。
【００２１】
ネットワーク３００は、インターネットやLANとされ、TCP/IP、WSD(Web Service on Device)、UDP等のプロトコルを使用して情報処理装置１００と画像形成装置２００、２１０、２２０との間のデータ通信を可能にしている。また、情報処理装置１００に通信ケーブルにより直接接続される画像形成装置２３０は、USBやRS-232C等のプロトコルを使用してデータ通信を可能にしている。
【００２２】
画像形成装置２００、２１０、２２０、２３０は、情報処理装置１００と同様、メモリやHDD、CPUを備えることができる。また、画像形成装置２００、２１０、２２０、２３０は、プリンタ、スキャナ、コピー機、FAX装置、これらの機能を有する複合機(MFP)等とすることができ、MFPである場合、画像を読み取るための読取装置および印刷して出力するための印刷装置を備える。
【００２３】
読取装置は、原稿に光を照射する光源と、反射した光を所定の方向へ向けるミラーと、その反射光を受光し、電気信号として出力するCCDとを備えて構成される。また、印刷装置は、プリンタドライバによって描画されたイメージデータを受け付け、そのイメージデータに基づき印刷出力を行う。
【００２４】
印刷装置が電子写真方式のプリンタである場合、印刷装置は、イメージデータを受け付け、イメージデータに基づき露光装置に指示するコントローラと、コントローラからの指示を受け付け、感光体ドラムに書き込み光を照射する露光装置と、書き込み光が照射され、潜像が形成される感光体ドラムと、感光体ドラムを帯電する帯電ユニットと、感光体ドラム上に形成された潜像を、トナーを付着させることにより現像する現像ユニットと、用紙を給紙する給紙ユニットと、現像により形成されたトナー像を用紙に転写する転写ユニットと、用紙に転写されたトナー像に圧力および熱を加えて用紙にトナーを定着させる定着ユニットと、印刷された用紙が排紙される排紙ユニットと、感光体ドラムや転写ユニット上に残ったトナーを取り除くクリーニングユニットとを含んで構成される。
【００２５】
このように、画像形成装置２００、２１０、２２０、２３０は、印刷装置を含み、情報処理装置１００は、その印刷装置を制御して利用するために、ドライバとしてプリンタドライバを使用する。したがって、ドライバ生成プログラムを実行して生成されるドライバを、プリンタドライバとして以下説明する。
【００２６】
ここで、情報処理装置１００に実装されるOSがwindows（登録商標）vistaである場合、印刷およびスキャン用の周辺機器の接続に関するプロトコルであるWSDプロトコルが提供され、このWSDプロトコルを使用して、ネットワーク３００に接続されたWSDに対応したプリンタ、スキャナ、プロジェクタ等を探索し、それらを認識し、それらから機能情報等を取得することができる。本実施例では、windows（登録商標）vistaのWSDプロトコルについて説明するが、このWSDプロトコルに限定されるものではない。
【００２７】
WSD対応機器は、ネットワークに接続する際、ネットワーク上の機器にメッセージを通知し、接続している間は、他のWSD対応機器からの発見やデータ交換の要求に対して応答を返すように構成されている。
【００２８】
実際に機器を発見する場合、WSD対応機器から、ルーティングや名前解決といった制御情報のやりとりに使用する専用アドレス宛に、発見対象機器の種類を指定して発見要求パケットを送信する。指定された種類の機器がネットワークに接続されていれば、その発見要求パケットに対し、ユニキャストで応答する。例えば、発見対象機器としてプリンタを指定すれば、その発見要求パケットに対し、ネットワーク上のすべてのプリンタが応答を返す。
【００２９】
なお、vistaでは、WSDプロトコルのほか、SSDPと呼ばれるネットワーク上のUPnP機器を探索、発見するためのプロトコルも使用してネットワークに接続された機器を探索、発見するが、これらのプロトコルでは自らの情報を通知しない。したがって、待ち状態とされ、他の機器が探索しにきたときにはじめて情報を交換する。このため、システム起動時に、探索プロトコルが使用するポートを開けて待機する。WSD対応機器がネットワークに接続され、その機器が探索しにくると、その開かれたポートを使用して、デバイス名、ネットワークアドレス、製造業者名、機種名等の情報交換を行うことができる。なお、この探索は、定期的に行われ、これにより、接続の有無を定期的に確認する。
【００３０】
図２は、印刷システムが備える情報処理装置と画像形成装置の機能ブロック図である。情報処理装置１００は、インストール処理部１０１と、I/F制御部１０２と、プロトコル判定部１０３と、情報取得部１０４と、ドライバ生成部１０５と、ドライバ格納部１０６と、情報格納部１０７とを備えている。また、画像形成装置２００は、ホストI/F２０１と、情報提供部２０２と、情報格納部２０３とを備えている。ここでは、画像形成装置２００の構成例を示したが、画像形成装置２１０、２２０、２３０も同様の構成である。
【００３１】
ネットワーク３００に接続された情報処理装置１００のインストール処理部１０１は、画像形成装置２００がネットワーク３００に接続され、情報処理装置１００と画像形成装置２００とが接続されると、自動的にプリンタドライバのインストールを開始し、その処理を正常に行う。プリンタドライバのインストールは、このインストール処理部１０１によるインストールに限られるものではなく、OSのAPI関数を使用してインストールすることも可能である。
【００３２】
I/F制御部１０２は、情報処理装置１００と画像形成装置２００との間で通信を行う際に、情報処理装置１００と画像形成装置２００の接続形態に応じて、画像形成装置２００へ情報を送信したり、応答を受信する。接続形態は、ネットワーク接続、USB接続、RS-232C接続等があり、これらの接続における通信で使用されるプロトコルから判別することができる。
【００３３】
情報処理装置１００のCPUがドライバ生成プログラムを実行すると、そのCPUは、プロトコル判定部１０３、情報取得部１０４、ドライバ生成部１０５として機能し、まず、プロトコル判定部１０３は、情報処理装置１００と画像形成装置２００との間の通信に使用されるプロトコルが、指定されたプロトコルか否かを判定する。例えば、指定されたプロトコルがWSDプロトコルとされている場合、WSDプロトコルであるか否かを判定する。
【００３４】
WSDプロトコルは、WSDスキーマにより機器情報を取得することができることから、機器から機器情報を取得することができるプロトコルで、その他のUSBプロトコル等は、機器から機器情報を取得することができず、多くの情報のやりとりを行うことが難しいものである。
【００３５】
指定されたプロトコルであった場合、プロトコル判定部１０３が情報取得部１０４へその旨を通知し、情報取得部１０４が、I/F制御部１０２を介して画像形成装置２００へ機器情報取得要求を送り、画像形成装置２００から機器情報を取得する。ここで、機器情報は、プリンタドライバを生成するために必要な情報を含み、具体的には、パンチ機能やステープル機能等の機器に固有な情報のほか、画像形成装置２００、２１０、２２０、２３０のすべてに共通な、設定可能な用紙サイズ、印刷方向、選択可能な給紙装置、品質、部数、拡大／縮小、両面印刷機能等の情報を含む。
【００３６】
情報格納部１０７は、ネットワーク３００に接続されている画像形成装置２００、２１０、２２０や直接接続される画像形成装置２３０のすべてに共通な、上記のような機器情報を格納する。ドライバ格納部１０６は、画像形成装置２００、２１０、２２０、２３０を使用する際に絶対に必要なドライバとして機種に依存しないコアドライバを格納し、また、ドライバ生成部１０５により生成されたプリンタドライバも格納する。これらのドライバは、互いを識別するためにドライバ名が関連付けられ格納される。
【００３７】
図２では、情報格納部１０７は、情報処理装置１００が備える構成となっているが、情報処理装置１００以外の外付けハードディスク等の外部記憶装置とすることもできる。この場合、情報処理装置１００は、この外部記憶装置にアクセスし、画像形成装置２００、２１０、２２０、２３０のすべてに共通な機器情報を読み出して使用することができる。
【００３８】
コアドライバは、プリンタドライバのインストールを要求するOSの管理モジュールから呼び出され、その呼び出しに応答して、機器情報取得要求を画像形成装置２００へ送信し、その画像形成装置２００から機器情報を取得する。したがって、このコアドライバは、CPUに実行されて上記の情報取得部１０４として機能し、ドライバ生成プログラムの一部を構成するものである。
【００３９】
ドライバ生成部１０５は、動作させる画像形成装置２００の機器情報を、プロトコルに応じて画像形成装置２００または情報取得部１０４から取得し、取得した機器情報に基づき、画像形成装置２００に対応したプリンタドライバを生成する。
【００４０】
プリンタドライバは、プリンタの機能に関する情報が記述されたテキストファイルとして作成されるプリンタ設定ファイルを含み、そのプリンタ設定ファイルは、GPD(Generic Printer Description)ファイルとして実装することができる。GPDファイルは、windows（登録商標）シリーズのOSで、OSが標準的に備えている汎用的なプリンタドライバであるUniversal Printer Driverを使用して印刷処理を行う場合に使用されるDLL(Dynamic Link Library)ファイルとして実装される。
【００４１】
また、GPDファイルには、画像形成装置２００が情報処理装置１００に対して、プリンタ設定情報として機能するデータ構造体であるDEVMODEを設定するための情報が登録され、このファイルは、上記の汎用的なプリンタドライバをカスタマイズして印刷処理を実行するのに使用される。なお、DEVMODEは、windows（登録商標）系のOSで使用されるデータ構造体で、情報処理装置１００のレジストリに登録される。
【００４２】
UNIX（登録商標）やLINUX（登録商標）では、プリンタ設定情報として、printerinfo.txt等を使用することができる。したがって、OSとしてこれらを採用する場合、画像形成装置２００には、priterinfo.txtを設定するための情報を登録しておくことができる。
【００４３】
機器情報は、HTML、HXTML、XML言語で記述されたテキストファイルとして取得され、ドライバ生成部１０５は、GPDファイルのテンプレートに、取得した機器情報を記述してGPDファイルを生成する。GPDファイルのテンプレートは、GPDファイルに記述される情報のうち、変更されないものを予め記述した雛形であり、情報処理装置１００のHDDやNVRAM等の不揮発性記憶装置に予め格納されている。ドライバ生成部１０５は、このようにして生成したGPDファイルと、必要に応じてファームウェア等として予め搭載されたプリンタドライバが使用するプログラムやその他のファイルとをセットとして登録し、プリンタドライバを生成する。そして、ドライバ生成部１０５は、これを、画像形成装置２００に対応したドライバとして、ドライバ格納部１０６にドライバ名を関連付けて格納する。
【００４４】
インストール処理部１０１は、プリンタドライバが生成され、ドライバ格納部１０６に格納されたことの通知をドライバ生成部１０５から受けて、そのときに通知されたドライバ名を基に、ドライバ格納部１０６からプリンタドライバを読み出し、プリンタドライバをインストールする。
【００４５】
このようにしてインストールが完了すると、情報処理装置１００からその画像形成装置２００を操作することが可能になり、その画像形成装置２００が備えるすべての機能を使用することが可能となる。
【００４６】
一方、ネットワーク３００に接続された機器が、WSD対応機器でない場合、WSDプロトコルを使用して通信を行うことはできず、他のプロトコルを使用して通信を行うことになる。USBのローカルケーブルで接続される場合、USBプロトコルにより通信を行うことになるが、このUSBプロトコルは、多くの情報のやり取りを行うことが難しく、プロトコル判定部１０３が、指定されたプロトコルであるWSDプロトコルでないと判定する。
【００４７】
このため、プロトコル判定部１０３は、情報取得部１０４にその旨を通知し、情報取得部１０４は、情報格納部１０７から機種共通の機器情報を読み出して取得し、その情報をドライバ生成部１０５へ送る。
【００４８】
ドライバ生成部１０５は、GPDファイルのテンプレートに、取得した機器情報を記述してGPDファイルを生成し、プリンタドライバを生成する。ドライバ生成部１０５は、上記と同様、生成したプリンタドライバをドライバ格納部１０６にドライバ名を関連付けて格納する。その後の処理は、上記と同様である。
【００４９】
画像形成装置２００が備えるホストI/F２０１は、情報処理装置１００が備えるI/F制御部１０２との間で通信を行い、情報処理装置１００からの要求を受け取り、情報処理装置１００に対して応答を返す処理を行う。情報格納部２０３は、画像形成装置２００の機能に関する機能情報や属性が記述されたメタデータ等を機器情報として格納する。情報提供部２０２は、ホストI/F２０１を介して機器情報取得要求が送信されてきた場合に、情報格納部２０３から機器情報を読み出し、情報処理装置１００に対してその機器情報を提供する。
【００５０】
これまで各装置が備える各部の機能について説明してきたが、次に、図３を参照して、ドライバを自動生成する処理を詳細に説明する。情報処理装置１００と画像形成装置２００とを接続すると、大きく分けて２つの方法で自動的にプリンタドライバのインストールが開始される。
【００５１】
１つは、USBケーブル等で互いを直接接続した場合で、もう１つは、WSDプロトコルを使用して通信するネットワークに接続した場合である。前者の場合、Plug and Playという技術により情報処理装置１００が保持する情報を基にプリンタドライバを生成し、それをインストールする。後者の場合は、ローカルとネットワークの区別をユーザに意識させない新しいPlug and Play機構であるPnP-Xという技術により画像形成装置２００から機器情報を取得し、それを用いてプリンタドライバを生成し、それをインストールする。
【００５２】
そこで、このドライバを自動生成する処理では、ステップ３００から開始すると、まず、ステップ３０５で、Plug and PlayによりOSの管理モジュールがプリンタドライバのインストールを要求し、ドライバ格納部１０６からコアドライバを読み出し、コアドライバをインストールする。このコアドライバのインストールにより情報取得部１０４としての機能が実現され、情報取得部１０４が機器情報の取得処理を行うことができるようになる。
【００５３】
情報取得部１０４が機器情報取得要求を送信する前に、ステップ３１０で、プロトコル判定部１０３が、情報処理装置１００と画像形成装置２００との間の通信で使用されているプロトコルがWSDプロトコルであるか否かを判定する。WSDプロトコルであるか否かの判定は、WSDプロトコルを使用して通信を行う場合、通信を行うために開かれたポートのポート名に「WSD」という文字がつけられることから、ポート名を確認することにより判定することができる。なお、この判定法は、あくまで一例であり、レジストリを確認する等の他の方法により判定することも可能である。
【００５４】
ステップ３１０でWSDプロトコルであると判定された場合、ステップ３１５へ進み、プロトコル判定部１０３がその旨を情報取得部１０４へ通知し、情報取得部１０４がそれを受け取ると、画像形成装置２００へ機器情報取得要求を送る。そして、ステップ３２０で、情報取得部１０４は、画像形成装置２００から機器情報を受信して取得する。WSDプロトコルで通信を行う場合、情報処理装置１００は、マルチキャストで発見要求パケットをネットワーク３００上に出し、それに対してユニキャストで送られてきた応答に含まれるネットワークアドレス等の情報を取得しており、情報取得部１０４は、そのネットワークアドレス等の情報を使用して画像形成装置２００へ機器情報取得要求を送る。それに応答して、画像形成装置２００は、自己が保持する機器情報を収集する等して取得し、その機器情報を情報処理装置１００へ送る。これにより、情報取得部１０４は、その機器情報を受け取る。
【００５５】
一方、ステップ３１０でWSDプロトコルでないと判定された場合、ステップ３２５へ進み、情報格納部１０７に格納されている画像形成装置の機種に共通の機器情報を読み出して取得する。
【００５６】
このようにして取得された機器情報を用い、ステップ３３０において、GPDファイルのテンプレートに必要な情報を記述し、プリンタドライバが使用するプログラムや他のファイル、記述されたGPDファイルをセットとして登録し、プリンタドライバを生成する。生成したプリンタドライバは、ドライバ格納部１０６へドライバ名が関連付けられて格納される。
【００５７】
最後に、ステップ３３５で、インストール処理部１０１が、ドライバ生成部１０５からプリンタドライバを生成した旨の通知を受け、その通知に含まれるドライバ名を基にドライバ格納部１０６から読み出し、プリンタドライバをインストールする。そして、ステップ３４０において、インストールが完了した時点でこの処理は終了となる。
【００５８】
上記の例では、WSDプロトコルを使用して通信が行われる場合に、画像形成装置２００から機器情報のすべてを取得したが、すべての情報ではなく、画像形成装置２００の機種に固有な機器情報のみを取得し、そのほかは、情報格納部１０７に格納されている機種共通の機器情報を取得し、それらを組み合わせてプリンタドライバを生成することも可能である。ちなみに、機種に固有な機器情報は、上述したパンチ機能やステープル機能に関する情報やフィニッシャの構成情報等であり、機種共通の機器情報は、上述した設定可能な用紙サイズ、印刷方向、選択可能な給紙装置、品質、部数、拡大／縮小、両面印刷機能等の情報である。
【００５９】
このようにして、画像形成装置２００から機器情報が取得することができるか否かに関係なく、情報処理装置１００にプリンタドライバが同梱されていなくても、Plug and Play時にプリンタドライバを自動生成し、インストールを行うことができる。これまで機器が画像形成装置２００として説明してきたため、生成されるドライバをプリンタドライバとしたが、これに限られるものではない。
【００６０】
ここで、画像形成装置２００から取得する機器情報の一例を、図４に示す。機器情報は、xml方式で記述されたテキストファイルとすることができる。xmlは、適切な名前空間により定義された各種のタグを利用して記述されており、開始タグおよび終了タグの間に各情報を設定するタグが配置される。図４に示す例では、パンチ機能、用紙方向、両面印刷に関する機器情報を記載しているのが示されている。
【００６１】
この機器情報のうち、「rodp:HolePunch」と「/rodp:HolePunch」で囲まれた記述部分が、パンチ機能に関する情報である。次の「rodp:Orientation」と「/rodp:Orientation」で囲まれた記述部分が、用紙方向に関する情報である。また、「rodp:Sides」と「/rodp:Sides」で囲まれた記述部分が、両面印刷機能に関する情報である。
【００６２】
パンチ機能に関する情報には、この機能をOFFにするという情報、穴を左に２つ、上に２つ、右に２つという情報が含まれ、用紙方向に関する情報には、横方向、縦方向という情報が含まれ、両面印刷機能に関する情報には、片面印刷をしないという情報、用紙の長辺を反転させるという情報、短辺を反転させるという情報が含まれている。
【００６３】
また、情報格納部１０７に格納されている機種共通の機器情報の一例を、図５に示す。この例では、画像形成装置２００から取得することができる機器情報の中で機種共通の用紙方向および両面印刷機能に関する情報のみが記載されているのが示されている。
【００６４】
画像形成装置２００の情報格納部２０３に格納されている機種に固有な機器情報の一例を、図６に示す。この例では、図４に示す機器情報から図５に示す機種共通の機器情報を除いたパンチ機能に関する情報のみが記載されているのが示されている。
【００６５】
機器情報は、パンチ機能、用紙方向、両面印刷機能の３つに限られるものではなく、その他の機能等を含むことができ、他の適切なタグで設定された各種の設定を記述することができる。
【００６６】
プリンタドライバは、プリンタ設定ファイルに、GUIに表示される表示文字列を固有に識別する情報を登録することができる。表示文字列は、機器情報から言語テーブルを使用して抽出することができ、言語テーブルは、データベース等として実装することができる。
【００６７】
プロトコル判定部１０３およびドライバ生成部１０５としてCPUを機能させるためのモジュールと、コアドライバとを含むドライバ生成プログラムは、情報処理装置１００に格納され、情報処理装置１００で実行されて当該情報処理装置１００をドライバ生成システムとして機能させることができるが、このドライバ生成プログラムは、SDカードやCD-ROM等の記録媒体に記録され、記録媒体として提供することもできる。
【００６８】
また、ドライバ生成プログラムは、画像形成装置２００、２１０、２２０、２３０が備えるHDD等に格納され、WSD対応機器の探索時等において、情報処理装置１００へ送信することも可能である。この場合、情報処理装置１００は、画像形成装置２００、２１０、２２０、２３０のいずれかからドライバ生成プログラムを受信すると、そのドライバ生成プログラムに含まれるコアドライバをインストールし、上述したようにして、機器情報取得要求を送信し、機器情報を取得することができ、その機器情報を基にプリンタドライバを生成することができる。
【００６９】
なお、このようにドライバ生成プログラムを機器情報と分離して提供するのではなく、一緒に提供することも可能である。
【００７０】
これまで本発明を上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、ドライバを生成するために必要な機器情報としては上述した情報に限られるものではなく、必要に応じて他の情報も含めることができるものである。
【符号の説明】
【００７１】
１００…情報処理装置、１０１…インストール処理部、１０２…I/F制御部、１０３…プロトコル判定部、１０４…情報取得部、１０５…ドライバ生成部、１０６…ドライバ格納部、１０７…情報格納部、２００、２１０、２２０、２３０…画像形成装置、２０１…ホストI/F、２０２…情報提供部、２０３…情報格納部、３００…ネットワーク
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開２００９−５９３６５号公報
【図１】
2011103066.tif 000003
【図２】
2011103066.tif 000004
【図３】
2011103066.tif 000005
【図４】
2011103066.tif 000006
【図５】
2011103066.tif 000007
【図６】
2011103066.tif 000008