(57)【要約】【課題】機器の種類及び機能拡張に依らずに機器が処理可能なデータを生成することが可能な情報処理装置等を提供する。【解決手段】本発明の情報処理装置は、機器と接続され、前記機器の機器情報に基づいて前記機器が処理可能なデータを生成する情報処理装置であって、前記機器情報に基づいて前記機器に実行させる処理内容を設定する処理内容設定手段７２１と、処理内容設定手段７２１により設定された処理内容に未知の情報が含まれる場合に、前記機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段７４２と、コマンド取得手段７４２が取得したコマンドと、前記処理内容とに基づいて、前記機器が処理可能なデータを生成するデータ生成手段７４３とを有する。【選択図】図７
2008009967.tif 000002
【特許請求の範囲】
【請求項１】
機器と接続され、前記機器の機器情報に基づいて前記機器が処理可能なデータを生成する情報処理装置であって、
前記機器情報に基づいて前記機器に実行させる処理内容を設定する処理内容設定手段と、
該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段と、
該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記機器が処理可能なデータを生成するデータ生成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記機器情報は、前記機器により実行可能な機能の設定を表す設定値と、該設定値に対応するコマンドとを含む参照情報を有することを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記処理内容設定手段は、前記機器に実行させる処理内容を前記設定値を用いて設定し、
前記コマンド取得手段は、前記処理内容に対応した設定値に基づき、前記参照情報からコマンドを取得することを特徴とする、請求項２記載の情報処理装置。
【請求項４】
前記機器情報は、前記機器の拡張された機能を表す情報と、該情報に対応する機能コマンドとを含む第１の参照情報を有し、
該第１の参照情報は、前記情報の設定を表す設定値と、該設定値に対応する設定コマンドとを含む第２の参照情報を有することを特徴とする、請求項１記載の情報処理装置。
【請求項５】
前記処理内容設定手段は、前記機器に実行させる処理内容を前記情報及び前記設定値を用いて設定し、
前記コマンド取得手段は、前記処理内容に対応した情報及び設定値に基づき、前記第１の参照情報及び前記第２の参照情報の夫々から前記機能コマンド及び前記設定コマンドを取得することを特徴とする、請求項４記載の情報処理装置。
【請求項６】
前記処理内容は、前記機器に予め備わる機能に係る情報及び設定値を格納する固定領域と、前記機器の拡張された機能に係る情報及び設定値を格納する拡張領域とを有することを特徴とする、請求項５記載の情報処理装置。
【請求項７】
前記機器情報に基づいて前記機器に実行させる処理内容を設定するための設定画面を表示する設定画面表示手段を更に有することを特徴とする、請求項１記載の情報処理装置。
【請求項８】
前記機器が認識可能なコマンドを前記データ生成手段が認識可能な設定値と対応付けて記憶するコマンド記憶手段を更に有し、
前記コマンド取得手段は、前記処理内容設定手段により設定された処理内容に前記コマンド記憶手段に記憶されていない設定値が含まれる場合に、その設定値を前記未知の情報であると判断する、ことを特徴とする請求項１乃至７のうちいずれか一項記載の情報処理装置。
【請求項９】
機器と接続され、前記機器の機器情報に基づいて前記機器が処理可能なデータを生成する情報処理装置を、
前記機器情報に基づいて前記機器に実行させる処理内容を設定する処理内容設定手段、
該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段、及び
該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記機器が処理可能なデータを生成するデータ生成手段として機能させるためのプログラム。
【請求項１０】
前記機器情報は、前記機器により実行可能な機能の設定を表す設定値と、該設定値に対応するコマンドとを含む参照情報を有することを特徴とする、請求項９記載のプログラム。
【請求項１１】
前記処理内容設定手段は、前記機器に実行させる処理内容を前記設定値を用いて設定し、
前記コマンド取得手段は、前記処理内容に対応した設定値に基づき、前記参照情報からコマンドを取得することを特徴とする、請求項１０記載のプログラム。
【請求項１２】
前記機器情報は、前記機器の拡張された機能を表す情報と、該情報に対応する機能コマンドとを含む第１の参照情報を有し、
該第１の参照情報は、前記情報の設定を表す設定値と、該設定値に対応する設定コマンドとを含む第２の参照情報を有することを特徴とする、請求項９記載のプログラム。
【請求項１３】
前記処理内容設定手段は、前記機器に実行させる処理内容を前記情報及び前記設定値を用いて設定し、
前記コマンド取得手段は、前記処理内容に対応した情報及び設定値に基づき、前記第１の参照情報及び前記第２の参照情報の夫々から前記機能コマンド及び前記設定コマンドを取得することを特徴とする、請求項１２記載のプログラム。
【請求項１４】
前記処理内容は、前記機器に予め備わる機能に係る情報及び設定値を格納する固定領域と、前記機器の拡張された機能に係る情報及び設定値を格納する拡張領域とを有することを特徴とする、請求項１３記載のプログラム。
【請求項１５】
前記情報処理装置を、更に、前記機器情報に基づいて前記機器に実行させる処理内容を設定するための設定画面を表示する設定画面表示手段として機能させることを特徴とする、請求項９記載のプログラム。
【請求項１６】
前記コマンド取得手段は、前記処理内容設定手段により設定された処理内容が、前記データ生成手段が認識可能であって、前記機器が認識可能なコマンドに対応する設定値以外の設定値を含む場合に、その設定値を前記未知の情報であると判断する、ことを特徴とする請求項９乃至１５のうちいずれか一項記載の情報処理装置。
【請求項１７】
請求項９乃至１６のうちいずれか一項記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
情報処理装置、機器及び記憶装置を有する情報処理システムにおいて、
前記記憶装置は、前記機器が実行可能な機能に係る機器情報を記憶し、
前記情報処理装置は、
前記記憶装置から所定の機器の機器情報を取得する機器情報取得手段と、
該機器情報取得手段が取得した機器情報に基づいて、前記所定の機器に実行させる処理内容を設定する処理内容設定手段と、
該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報取得手段が取得した機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段と、
該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記所定の機器が処理可能なデータを生成するデータ生成手段と、
該データ生成手段が生成したデータを前記所定の機器へ送信するデータ送信手段とを有し、
前記機器は、
前記情報処理装置から送信されたデータを受信するデータ受信手段と、
該データ受信手段が受信したデータを処理するデータ処理手段とを有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器と接続される情報処理装置と、コンピュータをそのような情報処理装置として機能させるプログラム及びその記録媒体と、機器と情報処理装置とが接続された情報処理システムとに関する。
【背景技術】
【０００２】
ネットワーク上で、例えばパーソナルコンピュータ等の情報処理装置（以下、単にＰＣという。）と、例えばプリンタ、スキャナ及びファクシミリ（ＦＡＸ）等の周辺機器とが接続されている場合に、ＰＣは、自身にインストールされているアプリケーションで作成されたデータを、周辺機器が処理可能なデータへ変換するためのデバイスドライバを有する。
【０００３】
図１は、ＰＣとプリンタとから成る情報処理システムのネットワーク構成図の従来例を示す。
【０００４】
図１において、情報処理システム１０は、第１及び第２のＰＣ１１及び１２と、第１及び第２のプリンタ１３及び１４と、それらを相互に接続して、データ通信を可能にするネットワーク１５とを有する。
【０００５】
第１のＰＣ１１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作するアプリケーション１６と、第1のプリンタ１３に対応する第１のプリンタドライバ１７と、第２のプリンタに対応する第２のプリンタドライバ１８とを有する。
【０００６】
第２のＰＣ１２も、原則的には、第１のＰＣ１１と同様の構成を有する。
【０００７】
第１のプリンタドライバ１７は、ユーザーインターフェース（ＵＩ）モジュール１７１と、印刷データ生成モジュール１７２と、機器情報処理モジュール１７３と、記憶装置１７４とを有する。
【０００８】
ＵＩモジュール１７１は、第１のプリンタドライバ１７に対応するプリンタ、即ち、第１のプリンタ１３の各種機能に係る機器情報に基づいて、第１のプリンタ１３を設定するための設定画面を表示する手段である。ユーザは、ＵＩモジュール１７１により表示された設定画面で、第１のプリンタ１３の各種機能の設定を入力する。ＵＩモジュール１７１は、更に、ユーザの入力に基づいて、第1のプリンタ１３に実行させる処理内容を設定する。
【０００９】
印刷データ生成モジュール１７２は、アプリケーション１６で作成又は閲覧した文書データ等を、ユーザが入力した第１のプリンタ１３の各種機能の設定に従って、第1のプリンタ１３が解釈可能な印刷データへ変換する手段である。機器情報処理モジュール１７３は、ＵＩモジュール１７１が設定画面を表示することができるよう、記憶装置１７４から第１のプリンタ１３の機器情報を読み出す手段である。記憶装置１７４は、第１のプリンタ１３の機器情報を記憶しておく手段である。
【００１０】
第２のプリンタドライバ１８も、原則的には、第１のプリンタドライバ１７と同様の構成を有する。
【００１１】
なお、「機器情報」とは、プリンタ等の周辺機器のデバイス構成情報と、これに関連したコマンド情報とを対応付けているファイル情報である。また、「処理内容」は、デバイス初期化及び周辺機器の環境等に関する情報を含み、ＤＥＶＭＯＤＥ構造体というデータ構造体に格納される。図２は、機器情報及び処理内容の従来のデータ構造の一例を概略的に表す図である。
【００１２】
図２（ａ）は、機器情報のデータ構造をテーブル形式で表している。図２（ａ）のデータ構造は、列２１、２２及び２３を有する。列２１には、プリンタが有している機能名が格納されており、列２２には、列２１に格納された機能が実行可能であるか否かを表すデータが格納されている。更に、列２２において、その機能が実行可能であって、機能実行時の詳細な設定を行うための選択肢が存在することを表すデータが格納されている場合には、列２３に選択肢の内容が格納されている。なお、「選択肢」とは、例えばプリンタの場合には、「ステープル」機能を実行する際の用紙の綴じ位置（「右上」、「左下」等）が選択肢となる。
【００１３】
図２（ｂ）は、処理内容のデータ構造を表し、図２（ａ）と同じく、理解を容易とするために、テーブル形式で表されている。図２（ｂ）のデータ構造は、列２４及び２５を有する。列２４には、プリンタが有している機能名が格納されており、列２５には、ユーザが設定画面で入力した印刷設定の設定、即ち、図２（ａ）に示す機器情報の列２３に格納された選択肢の中からユーザによって選択された値が格納されている。
【００１４】
次に、図１に示した従来の情報処理システムにおけるプリンタドライバの動作について図３を用いて説明する。
【００１５】
ユーザが、例えば図１の第1のプリンタへの印刷設定要求を行った場合、最初に、ステップＳ１０１において、第1のプリンタ１３の印刷設定をするための設定画面を表示するよう、設定画面呼び出し要求が、アプリケーション１６からＵＩモジュール１７１へ送信される。ＵＩモジュール１７１は、アプリケーション１６からの要求を受け、ステップＳ１０２において、機器情報処理モジュール１７３へ、第１のプリンタ１３の機器情報を取得するよう機器情報取得命令を送信する。機器情報処理モジュール１７３は、ステップＳ１０３において、記憶装置１７４（図１）に記憶されている機器情報を読み出し、それをステップＳ１０４においてＵＩモジュール１７１へ送信する。ステップＳ１０５において、ＵＩモジュール１７１は、機器情報処理モジュール１７３からの機器情報に基づいて、第１のプリンタ１３の印刷設定をするための設定画面を、モニタ等の表示手段（図示せず。）を介してユーザに表示する。ステップＳ１０６において、ユーザは、ＵＩモジュール１７１が表示した設定画面で、マウス及びキーボード等の入力手段（図示せず。）を用いて、第１のプリンタ１３への印刷設定値を入力する。ＵＩモジュール１７１は、ステップＳ１０７において、ユーザが入力した設定値を第１のプリンタ１３に実行させる処理内容として設定し、ステップＳ１０８において、設定した処理内容をアプリケーション１６へ送信する。送信後、ステップＳ１０９において、アプリケーション１６は、処理内容を保存する。
【００１６】
そして、ユーザがステップＳ１１０においてアプリケーション上で第１のプリンタ１３への印刷要求を行うと、印刷データ生成モジュール１７２は、ステップＳ１１１において、アプリケーション１６に保存された処理内容を読み込む。次に、印刷データ生成モジュール１７２は、ステップＳ１１２において、読み込んだ処理内容に基づいて、第１のプリンタ１３が解釈可能な印刷データを生成し、ステップＳ１１３において、生成した印刷データを第１のプリンタ１３又はスプーラへ送信する。印刷データの送信後、印刷データ生成モジュール１７２は、ステップＳ１１４において、送信完了通知をアプリケーション１６へ送信する。ステップＳ１１５において、アプリケーション１６は、送信完了通知を受けて、印刷処理を完了する。
【００１７】
このように、従来のＰＣには、接続されたプリンタの夫々に対応する複数のプリンタドライバが組み込まれている。即ち、ＰＣは、利用するプリンタの数だけプリンタドライバを有することとなる。
【００１８】
例えば、特開２００４−３１０４８８号公報（特許文献１参照。）に、同じ種類の印刷装置に対するドライバのインストールを１つにする印刷システムが開示されている。特許文献１に開示された印刷システムでは、１つの識別子の印刷装置を複数のネットワークＩＤで管理された印刷装置として見せることにより、複数の印刷装置を管理する端末側では複数のドライバをイントールせずに済むようになる。
【００１９】
また、寿命及び故障等の理由から使用中の機器を新しいものに交換する場合に、たとえ新しい機器が前の機器と同じ種類のものであったとしても、前の機器にはなかった新しい機能が追加されている場合には、追加された機能に対応するデバイスドライバを情報処理装置にインストールする必要が生ずる。
【００２０】
例えば、特開２００５−１７３７０１号公報（特許文献２参照。）に、ドライバ全体を再インストールするのではなく、新たに追加された機能のみをプラグインモジュールとしてインストールすることができる情報処理装置等が開示されている。
【特許文献１】特開２００４−３１０４８８号公報
【特許文献２】特開２００５−１７３７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかし、特許文献１に開示された印刷システムは、同じ種類の印刷装置が複数存在する場合に、端末に組み込まれるプリンタドライバを1つにすることができるのであって、異なる種類の印刷装置が複数存在する場合には、依然として端末に複数のプリンタドライバを組み込まなければならないという問題がある。
【００２２】
また、特許文献２に開示された情報処理装置は、新たに追加するプラグインについては追加可能モジュールの一覧から所望のモジュールを選択することになるため、その追加可能モジュールがどんな機能なのかを知らなければならず、ユーザへの負担は軽減されないという問題がある。
【００２３】
更に近年では、同一ベンダの機種のみならず、異なるベンダの機器もそれ１つで共通に利用可能となる、所謂ユニバーサルドライバも開発されてきているが、このようなユニバーサルドライバは、各機器が有する最大公約数的な機能に係る機器情報しか有していないのが現状であり、各機器に固有の機能を十分に利用することできないことが多い。また、係るユニバーサルドライバに対応する機器自体に機能拡張があった場合には、ユニバーサルドライバ自体を再度インストールし直さなければならないといった問題もある。
【００２４】
本発明は、上記問題の少なくとも１つに鑑みなされたものであり、機器の種類及び機能拡張に依らずに機器が処理可能なデータを生成することが可能な情報処理装置、プログラム及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明の情報処理装置は、機器と接続され、前記機器の機器情報に基づいて前記機器が処理可能なデータを生成する情報処理装置であって、前記機器情報に基づいて前記機器に実行させる処理内容を設定する処理内容設定手段と、該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段と、該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記機器が処理可能なデータを生成するデータ生成手段とを有することを特徴とする。
【００２６】
これにより、機器の種類及び機能拡張に依らずに機器が処理可能なデータを生成することが可能な情報処理装置を提供することができる。
【００２７】
また、上記目的を達成するために、本発明の情報処理装置は、前記機器情報が、前記機器により実行可能な機能の設定を表す設定値と、該設定値に対応するコマンドとを含む参照情報を有することを特徴とする。
【００２８】
これにより、情報処理装置側が有する機器情報を、機器の現在の機器情報に適合させるよう更新することができる。
【００２９】
また、上記目的を達成するために、本発明の情報処理装置において、前記処理内容設定手段は、前記機器に実行させる処理内容を前記設定値を用いて設定し、前記コマンド取得手段は、前記処理内容に対応した設定値に基づき、前記参照情報からコマンドを取得することができる。
【００３０】
これにより、情報処理装置側が有する機器情報を機器の現在の機器情報に適合させた場合に、参照情報に含まれる設定値を用いて処理内容を設定し、更に、処理内容の設定に用いられた設定値を用いて、参照情報から、機器が処理可能なデータを生成するためのコマンドを取得することができる。
【００３１】
また、上記目的を達成するために、本発明の情報処理装置は、前記機器情報が、前記機器の拡張された機能を表す情報と、該情報に対応する機能コマンドとを含む第１の参照情報を有し、該第１の参照情報が、前記情報の設定を表す設定値と、該設定値に対応する設定コマンドとを含む第２の参照情報を有することを特徴とする。
【００３２】
これにより、情報処理装置側が有する機器情報を、機器の現在の機器情報に適合させるよう更新することができる。
【００３３】
また、上記目的を達成するために、本発明の情報処理装置において、前記処理内容設定手段は、前記機器に実行させる処理内容を前記情報及び前記設定値を用いて設定し、前記コマンド取得手段は、前記処理内容に対応した情報及び設定値に基づき、前記第１の参照情報及び前記第２の参照情報の夫々から前記機能コマンド及び前記設定コマンドを取得することができる。
【００３４】
これにより、情報処理装置側が有する機器情報を機器の現在の機器情報に適合させた場合に、参照情報に含まれる情報及び設定値を用いて処理内容を設定し、更に、処理内容の設定に用いられた情報及び設定値を用いて、参照情報から、機器が処理可能なデータを生成するためのコマンドを取得することができる。
【００３５】
また、上記目的を達成するために、本発明の情報処理装置において、前記処理内容は、前記機器に予め備わる機能に係る情報及び設定値を格納する固定領域と、前記機器の拡張された機能に係る情報及び設定値を格納する拡張領域とを有することができる。
【００３６】
これにより、情報処理装置が、機器の現在の機器情報に含まれる、機器の機能拡張に伴う新規な情報を取り扱うことができる。
【００３７】
また、上記目的を達成するために、本発明の情報処理装置において、前記機器情報に基づいて前記機器に実行させる処理内容を設定するための設定画面を表示する設定画面表示手段を更に有することができる。
【００３８】
これにより、ユーザが機器の設定を視覚的に認識し、実行することができる。
【００３９】
また、上記目的を達成するために、本発明の情報処理装置は、前記機器が認識可能なコマンドを前記データ生成手段が認識可能な設定値と対応付けて記憶するコマンド記憶手段を更に有し、前記コマンド取得手段は、前記処理内容設定手段により設定された処理内容に前記コマンド記憶手段に記憶されていない設定値が含まれる場合に、その設定値を前記未知の情報であると判断することができる。
【００４０】
これにより、予め設定された値以外は未知の情報として扱うことができる。
【００４１】
上記目的を達成するために、本発明のプログラムは、機器と接続され、前記機器の機器情報に基づいて前記機器が処理可能なデータを生成する情報処理装置を、前記機器情報に基づいて前記機器に実行させる処理内容を設定する処理内容設定手段、該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段、及び該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記機器が処理可能なデータを生成するデータ生成手段として機能させることができる。
【００４２】
上記目的を達成するために、本発明のプログラムは、コンピュータ読み取り可能な記録媒体に記録されることにより実現可能である。
【００４３】
上記目的を達成するために、本発明の情報処理システムは、情報処理装置、機器及び記憶装置を有する情報処理システムであって、前記記憶装置は、前記機器が実行可能な機能に係る機器情報を記憶し、前記情報処理装置は、前記記憶装置から所定の機器の機器情報を取得する機器情報取得手段と、該機器情報取得手段が取得した機器情報に基づいて、前記所定の機器に実行させる処理内容を設定する処理内容設定手段と、該処理内容設定手段により設定された処理内容に未知の情報が含まれる場合に、前記機器情報取得手段が取得した機器情報から前記未知の情報に対応するコマンドを取得するコマンド取得手段と、該コマンド取得手段が取得したコマンドと、前記処理内容とに基づいて、前記所定の機器が処理可能なデータを生成するデータ生成手段と、該データ生成手段が生成したデータを前記所定の機器へ送信するデータ送信手段とを有し、前記機器は、前記情報処理装置から送信されたデータを受信するデータ受信手段と、該データ受信手段が受信したデータを処理するデータ処理手段とを有することを特徴とする。
【発明の効果】
【００４４】
本発明により、機器の種類及び機能拡張に依らずに機器が処理可能なデータを生成することが可能な情報処理装置、プログラム及び情報処理システムを提供することが可能となる。
【発明を実施するための最良の形態】
【００４５】
本発明を実施するための最良の形態を、添付の図面を参照して説明する。
【００４６】
図４は、本発明の一実施形態としてのコンピュータのハードウェア構成例を示す図である。図４に示されるように、コンピュータ４０は、バス４６によって相互に接続されたドライブ装置４１と、補助記憶装置４２と、メモリ装置４３と、演算処理装置４４と、インターフェース装置４５とを有する。コンピュータ４０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体４７によって提供される。
【００４７】
ドライブ装置４１は、記録媒体４７を読み取るための装置である。プログラムを記録した記録媒体４７がドライブ装置４１にセットされると、プログラムが記録媒体４７からドライブ装置４１を介して補助記憶装置４２にインストールされる。なお、本実施形態では、記録媒体に記録されたプログラムとして、プリンタドライバやＰＣ−ＦＡＸドライバ等の各種デバイスドライバが適用可能であるが、説明を簡単なものとするため、以降はプリンタドライバを例として説明する。
【００４８】
補助記憶装置４２は、インストールされたプログラムを格納すると共に、必要なファイル及びデータ等を格納する装置である。メモリ装置４３は、プログラムの起動指示があった場合に、補助記憶装置４２からプログラムを読み出して格納する装置である。演算処理装置４４は、メモリ装置４３に格納されたプログラムに従って、コンピュータ４０に係る機能を実行する装置である。インターフェース装置４５は、コンピュータ４０を外部のネットワーク又は公衆回線へ接続するための装置である。
【００４９】
図５は、コンピュータ４０の機能構成例を示す図である。図５に示されるように、コンピュータ４０は、ネットワークを介してプリンタ５０に接続されており、アプリケーション４１０と、描画サービス４２０と、プリンタドライバ４３０と、印刷データ送信サービス４４０とを有する。なお、このコンピュータ４０としては、一般的なＰＣに限らず、サーバーＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）若しくは携帯電話等の携帯型端末、又は、プリンタ若しくは複合機等の組み込み機器等であっても良い。
【００５０】
アプリケーション４１０は、例えばウィンドウズ（登録商標）のようなＯＳ上で動作するプログラムであって、例えば、文書作成ソフト及び表計算ソフト等のような汎用アプリケーションである。
【００５１】
描画サービス４２０は、ＯＳ上で動作する描画エンジンであって、一般に、アプリケーション４１０と描画サービス４２０との間を接続するインターフェースと共にＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）に含まれている。
【００５２】
プリンタドライバ４３０は、ＯＳの内部命令をプリンタ５０が解釈可能な印刷データ、所謂プリンタ言語（ＰＤＬ）データに変換するモジュールである。一般に、ＧＤＩ４２０とプリンタドライバ４３０との間は、ＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるインターフェースで接続されている。
【００５３】
印刷データ送信サービス４４０は、所謂スプーラであって、プリンタドライバ４３０で生成されたＰＤＬデータをスプールするモジュールである。このスプーラ４４０によりスプールされたＰＤＬデータは、印刷ポートからネットワークを介してプリンタ５０へ送信される。
【００５４】
更に、図６は、上述したコンピュータ４０とプリンタとが接続された情報処理システムの一例を表すネットワーク構成図である。
【００５５】
図６において、情報処理システム６０は、第１及び第２のコンピュータ４０ａ及び４０ｂと、第１及び第２のプリンタ５０ａ及び５０ｂと、それらを相互に接続して、データ通信を可能にするネットワーク６５とを有する。
【００５６】
第１のコンピュータ４０ａは、アプリケーション４１０と、１つのプリンタドライバ４３０とを有する。第２のコンピュータ４０ｂも、原則的には、第１のコンピュータ４０ａと同様の構成を有する。
【００５７】
また、第１及び第２のプリンタ５０ａ及び５０ｂは、夫々、記憶装置５１０及び５２０の夫々を有する。記憶装置５１０及び５２０は、第１及び第２のプリンタ５０ａ及び５０ｂの夫々の各種機能に係る機器情報を記憶しておく装置である。
【００５８】
プリンタドライバ４３０は、ユーザーインターフェース（ＵＩ）モジュール４３１と、印刷データ生成モジュール４３２と、機器情報処理モジュール４３３とを有する。
【００５９】
ＵＩモジュール４３１は、第１及び第２のプリンタ５０ａ及び５０ｂの夫々の各種機能に係る機器情報に基づいて、夫々のプリンタを設定するための設定画面を表示する手段である。ユーザは、ＵＩモジュール４３１により表示された設定画面で、第１及び第２のプリンタ５０ａ及び５０ｂの夫々の各種機能の設定を入力する。ＵＩモジュール４３１は、更に、ユーザの入力に基づいて、第1及び第２のプリンタ５０ａ及び５０ｂに実行させる処理内容を設定する。
【００６０】
印刷データ生成モジュール４３２は、アプリケーション４１０で作成又は閲覧した文書データ等を、ユーザが入力した第１及び第２のプリンタ５０ａ及び５０ｂの夫々の各種機能の設定に従って、夫々のプリンタが解釈可能な印刷データへ変換する手段である。機器情報処理モジュール４３３は、ＵＩモジュール４３１が設定画面を表示することができるよう、夫々のプリンタの記憶装置５１０及び５２０に記憶された機器情報を読み出す手段である。
【００６１】
以下、このコンピュータにおける処理について詳細に説明する。
【００６２】
図７は、本実施形態のコンピュータが有しているプリンタドライバ４３０の構成の一例を表すブロック図である。
【００６３】
このプリンタドライバ４３０は、ユーザーインターフェース（ＵＩ）モジュール４３１と、印刷データ生成モジュール４３２と、機器情報処理モジュール４３３とを有する。
【００６４】
機器情報処理モジュール４３３は、図６のようにネットワークを介して接続されたプリンタから、そのプリンタが実行可能な機能に係る機器情報を取得する機器情報取得部７１１と、以前に取得したそのプリンタ又は他のプリンタの機器情報を保存する機器情報保存部７１２と、機器情報取得部７１１が取得した機器情報と機器情報保存部７１２に保存されている機器情報とを比較する情報比較部７１３とを有する。情報比較部７１３による比較の結果より、機器情報取得部７１１が取得した機器情報に含まれる新しい情報を用いて、機器情報保存部７１２に保存されている機器情報を更新する。
【００６５】
ＵＩモジュール４３１は、機器情報保存部７１２に保存された機器情報に基づいて、印刷対象となる文書データの印刷設定を受け付ける設定画面を生成し、更に、この設定画面から受け付けた、後述するＤＥＶＭＯＤＥ構造体等に処理内容を設定する処理内容設定部７２１と、処理内容設定部７２１で生成された設定画面をモニタ等（図示せず。）に表示する表示部７２２と、キーボード及びマウス等によりユーザからの入力を受ける入力部７２３とを有する。
【００６６】
アプリケーション４１０は、処理内容設定部７２１で設定された処理内容を保存する処理内容保存部７３１を有する。この処理内容保存部７３１の例としては、後述するＤＥＶＭＯＤＥ構造体のような所定の形式の構造体も含む。
【００６７】
印刷データ生成モジュール４３２は、処理内容保存部７３１に保存された処理内容を読み込む処理内容読込部７４１と、処理内容読込部７４１が読み込んだ処理内容を調べることで、その内容に印刷データ生成モジュールにとって未知の情報が含まれているか否かを判定し、未知の情報が含まれている場合には、機器情報保存部７１２から未知の情報に対応するコマンドを取得するコマンド取得部７４２と、コマンド取得部７４２が取得したコマンドと処理内容読込部７４１が読み込んだ処理内容とに基づいて、プリンタが解釈可能な印刷データを生成するデータ生成部７４３と、プリンタが認識可能なコマンドを印刷データ生成モジュールが認識可能な設定値と対応付けて記憶したコマンド記憶部７４４とを有する。
【００６８】
コマンド取得部７４２は、処理内容読込部７４１が読み込んだ処理内容に含まれる設定値をコマンド記憶部７４４に記憶された設定値と比較することにより、処理内容読込部７４１が読み込んだ処理内容に印刷データ生成モジュールにとって未知の情報が含まれているか否を判定することができる。詳細には、コマンド記憶部７４４は、例えば、後述のＤＥＶＭＯＤＥ構造体の固定領域に予め格納されている項目や値等の情報を記憶しており、コマンド取得部７４２は、固定領域に格納されていない情報を未知の情報として扱う。
【００６９】
データ生成部７４３は、処理内容読込部７４１が読み込んだ処理内容に含まれる設定値に対応するコマンドをコマンド記憶部７４４から取得し、このコマンドと、コマンド取得部７４２が取得したコマンドとに基づいて、印刷データを生成する。データ生成部７４３が生成した印刷データは、上述のスプーラ４４０へ送信される。
【００７０】
次に、このプリンタドライバ４３０の動作について、図８のシーケンス図を参照して説明する。
【００７１】
ユーザが、例えば図６の第1のプリンタ５０ａへの印刷設定要求を行った場合、例えば、ウィンドウズ（登録商標）で動作するアプリケーションの印刷設定画面において「プロパティ」ボタンを押した場合、最初に、ステップＳ２０１において、第1のプリンタ５０ａの印刷設定をするための設定画面（例えば、プロパティ画面）を表示するよう、設定画面呼び出し要求が、アプリケーション４１０からＵＩモジュール４３１へ送信される。ＵＩモジュール４３１は、アプリケーション４１０からの要求を受け、ステップＳ２０２において、機器情報処理モジュール４３３へ、第１のプリンタ５０ａの機器情報を取得するよう機器情報取得命令を送信する。
【００７２】
機器情報処理モジュール４３３は、ＵＩモジュール４３１からの命令を受けると、ステップＳ２０３において、機器情報取得部７１１を用いて第1のプリンタ５０ａの記憶装置５１０に記憶されている機器情報を読み出す。次に、ステップＳ２０４において、機器情報取得部７１１が読み出した機器情報は、情報比較部７１３により、機器情報保存部７１２に保存されていれる機器情報と比較されて、その中に含まれる新しい情報部分が、機器情報保存部７１２に保存されている機器情報を更新するために用いられる。これにより、機器情報保存部７１２に保存されている機器情報は、第１のプリンタ５０ａの現在実行可能な機能に係る機器情報へと書き換えられることになる。この機器情報は、ステップＳ２０５においてＵＩモジュール４３１へ送信される。
【００７３】
ＵＩモジュール４３１は、機器情報処理モジュール４３３からの機器情報を受け、ステップＳ２０６において、処理内容設定部７２１が、その機器情報に基づいて、第１のプリンタ５０ａの各種機能を設定する設定画面を生成し、表示部７２２を介してユーザに表示する。ステップＳ２０７において、ユーザは、表示部７２２が表示した設定画面で、入力部７２３を用いて、第１のプリンタ５０ａへの印刷設定値を入力する。処理内容設定部７２１は、ステップＳ２０８において、ユーザが入力部７２３を介して入力した設定値を第１のプリンタ５０ａに実行させる処理内容として設定する。この処理内容は、ステップＳ２０９においてアプリケーション４１０へ送信される。処理内容の送信後、ステップＳ２１０において、アプリケーション４１０は、処理内容保存部７３１に処理内容を保存する。
【００７４】
この場合に、ユーザが、ステップＳ２１１においてアプリケーション上で第１のプリンタ５０ａへの印刷要求を行うと、印刷データ生成モジュール４３２の処理内容読込部７４１は、ステップＳ２１２において、アプリケーション４１０の処理内容保存部７３１に保存された処理内容を読み込む。次に、コマンド取得部７４２は、ステップＳ２１３において、読み込んだ処理内容に含まれる設定値をコマンド記憶部７４４に記憶された設定値と比較することにより、読み込んだ処理内容に印刷データ生成モジュールにとって未知の情報が含まれているか否かを判定し、未知の情報が含まれている場合には、ステップＳ２１４において、機器情報処理モジュール４３３へ問い合わせを行う。機器情報処理モジュール４３３は、ステップＳ２１５において、機器情報保存部７１２に保存されている機器情報を読み出して、その中から、コマンド取得部７４２から問い合わせのあった未知の情報に対応するコマンドを抽出し、ステップＳ２１６において、コマンド取得部７４２へ送信する。
【００７５】
ステップＳ２１７において、コマンド取得部７４２は、機器情報処理モジュール４３３から送信されたコマンドを取得する。次に、ステップＳ２１８において、このコマンドと、先のステップＳ２１２で処理内容読込部７４１が読み込んだ処理内容とに基づいて、データ生成部７４３は、第１のプリンタ５０ａが解釈可能な印刷データを生成する。生成された印刷データは、ステップＳ２１９において上述のスプーラ４４０へ送信される。印刷データの送信後、印刷データ生成モジュール４３２は、ステップＳ２２０において、送信完了通知をアプリケーション４１０へ送信する。ステップＳ２２１において、アプリケーション４１０は、送信完了通知を受けて、印刷処理を完了する。
【００７６】
このように、本実施形態でのコンピュータは、異なる種類のプリンタが複数接続されている場合に、全てのプリンタの機器情報を予め記憶しておくのではなく、必要に応じて、プリンタからその機器情報を読み出し、機器情報に含まれる未知の情報に関してそれに対応するコマンドを取得することにより、１つのプリンタドライバで異なる種類の複数のプリンタに対応することが可能となる。
【００７７】
また、コンピュータにプリンタドライバをインストールした後に、そのプリンタドライバに対応するプリンタに機能拡張が生じた場合にも、本実施形態のコンピュータは、機能拡張により追加された新規の機能に対応するコマンドを取得することができるので、プリンタドライバの再インストールをすることなく、容易にプリンタの機能拡張に対応することが可能となる。
【００７８】
以下、本実施形態の具体的な処理及びデータ構造について説明する。
【実施例１】
【００７９】
〔設定画面の構成〕
図９は、本実施例のコンピュータにおいてプリンタの各種機能を設定するための設定画面の一例を示す。
【００８０】
図９の設定画面には、プリンタの印刷実行に用いる紙種を選択するための項目（「Ｐａｐｅｒ  Ｔｙｐｅ」）が設けられている。ユーザが、設定画面上で紙種の選択を行う場合、選択肢９０が表示される。選択肢９０は、デフォルト部９１と、追加部９２とから成る。デフォルト部９１は、プリンタから取得した機器情報のうち、コンピュータ側で既知であった情報であり、追加部９２は、コンピュータ側で未知であった情報である。即ち、追加部９２は、プリンタから新たに機器情報を取得した際に、新規な情報として、既にコンピュータが有していた機器情報に追加された情報である。
【００８１】
図９のような設定画面は、図１０（ａ）及び（ｂ）においてテーブル形式で表されている機器情報及び機器情報に関連づけられた参照情報に基づいて生成される。また、図９の設定画面において追加部９２にある選択項目のいずれかが選ばれた場合の処理内容の設定状態は、図１０（ｃ）のように、テーブル形式で表される。なお、機器情報、参照情報及び処理内容のデータ構造は、テーブル形式以外の形式でもよい。
【００８２】
〔機器情報及び処理内容のデータ構造〕
図１０（ａ）は、本実施例における機器情報のデータ構造の一例を概略的に表す図である。
【００８３】
図７及び図８を参照して上で説明したように、プリンタドライバ４３０は、所定のプリンタから読み出した機器情報と、既知の機器情報とを情報比較部７１３により比較して、所定のプリンタから読み出した機器情報に含まれる新しい情報、即ち、ある機能の選択肢の項目に係る追加情報を抽出し、これを既知の機器情報に加える。このように更新された機器情報は、図１０（ａ）のようなデータ構造で機器情報保存部７１２に保存される。
【００８４】
図１０（ａ）のデータ構造は、列２１０、２２０及び２３０を有する。列２１０には、プリンタが有している機能名が格納されており、列２２０には、列２１０に格納された機能が実行可能であるか否かを表すデータが格納されている。更に、列２２０において、その機能が実行可能であって、機能実行時の詳細な設定を行うための選択肢が存在することを表すデータが格納されている場合には、列２３０に選択肢の内容が格納されている。ただし、新たに選択肢の項目が追加された機能、即ち、「紙種」においては、その選択肢の内容が列２３０の対応する行に格納されず、代わりに、「紙種」の選択肢を表す参照情報に関連づけられている。
【００８５】
図１０（ｂ）は、本実施例における図１０（ａ）の機器情報に関連づけられた参照情報のデータ構造の一例を概略的に表す図である。
【００８６】
図１０（ｂ）のデータ構造は、列２６０、２７０及び２８０を有する。列２６０には、設定画面上に実際に表示するための文字列が格納されている。列２７０には、プリンタドライバが認識可能な、選択肢の夫々の項目に対応する設定値が格納されている。列２８０には、プリンタが認識可能な、選択肢の夫々の項目に対応するコマンドが格納されている。なお、参照情報も、機器情報と同じく、プリンタドライバの機器情報保存部７１２に保存される。
【００８７】
図７及び図８を参照して上で説明したように、プリンタドライバ４３０は、機器情報保存部７１２に保存された機器情報に基づいて、表示部７２２を介してユーザに設定画面を表示する。本実施例のように、ある機能の選択肢の項目が追加された場合には、図１０（ａ）及び（ｂ）の機器情報及び拡張情報に基づいて、図９のような設定画面が表示される。図９の設定画面において、表示される紙種の選択肢９０は、図１０（ｂ）に示した拡張情報の列２６０に格納された文字列に基づく。
【００８８】
また、図１０（ｃ）は、本実施例における図１０（ａ）及び（ｂ）の機器情報及び参照情報に基づく処理内容のデータ構造の一例を概略的に表す図である。
【００８９】
図１０（ｃ）のデータ構造は、ＤＥＶＭＯＤＥ構造体という構造体であって、列２４０及び２５０を有する。列２４０には、プリンタが有している機能名が格納されており、列２５０には、ユーザが設定画面で入力した印刷設定の設定値、即ち、図１０（ａ）に示す機器情報の列２３０に格納された選択肢、又は図１０（ｂ）の参照情報により表される選択肢の中から、ユーザによって選択された値が格納されている。なお、一般に、ＤＥＶＭＯＤＥ構造体は、固定領域と拡張領域とを有するが、本実施例では固定領域のみを使用する。
【００９０】
図１０（ａ）の機器情報及び図１０（ｂ）の拡張情報が保存された後に、ユーザが、図９の設定画面において紙種の設定を行い、選択肢９０の中から追加部９２に含まれる項目を選択した場合を考える。例えば、ユーザが項目「特殊紙３Ａ」を選択したとすると、図１０（ｃ）のように、処理内容の機能「紙種」の設定に対応する所定領域には、図１０（ｂ）の参照情報において文字列「特殊紙３Ａ」に対応する設定値「５１２」が格納される。その後、図１０（ｃ）のようなデータ構造を有する処理内容は、上述のアプリケーション４１０に保存される。
【００９１】
次に、ユーザが、アプリケーション上で所定のプリンタへの印刷要求を行うと、プリンタドライバ４３０は、プリンタが解釈可能な印刷データを生成するために、アプリケーション４１０からの処理内容を読み込む。このとき、プリンタドライバ４３０は、読み込んだ処理内容に含まれる設定値をコマンド記憶部７４４に記憶された設定値と比較することにより、読み込んだ処理内容に印刷データ生成モジュールにとって未知の情報が含まれているか否かを判定するが、プリンタから機器情報を取得した際に新たに追加された情報を未知の情報として認識する。本実施例では、図１０（ｃ）の処理内容において、設定値「５１２」が未知の情報として扱われる。
【００９２】
図７及び図８を参照して上で説明したように、プリンタドライバ４３０は、処理情報に未知の情報が含まれていた場合に、プリンタが解釈可能な印刷データを生成するために、機器情報から未知の情報に対応するコマンドを取得する。以下、このコマンド取得動作について、図７のブロック図及び図１１のフロー図を参照して更に詳細に説明する。
【００９３】
〔コマンド取得及びデータ生成〕
図１１は、処理内容が図１０（ｃ）のようなデータ構成を有する場合の本実施例のプリンタドライバにおけるコマンド取得動作の一例を説明するフロー図である。
【００９４】
ユーザが、アプリケーション上で所定のプリンタへの印刷要求を行うと、印刷データ生成モジュール４３２の処理内容読込部７４１は、ステップＳ３０１において、アプリケーション４１０の処理内容保存部７３１に保存された、図１０（ｃ）のようなデータ構造を有する処理内容を読み込む。更に、処理内容読込部７４１は、ステップＳ３０２において、読み込んだ処理内容の固定領域のみを抽出して読み込む。次に、コマンド取得部７４２は、ステップＳ３０３において、読み込まれた固定領域の一行目から順に、図１０（ｃ）の列２５０に格納された印刷設定を読み出して、この印刷設定に含まれる設定値をコマンド記憶部７４４に記憶された設定値と比較することで、ステップＳ３０４において、読み出した印刷設定に未知の設定値が含まれるか否かを判定する。
【００９５】
判定の結果、読み出した印刷設定に未知の設定値が含まれていない場合には、ステップはＳ３０５に進み、コマンド取得部７４２は、印刷設定に対応するコマンドを生成する。
【００９６】
一方、判定の結果、読み出した印刷設定に未知の設定値が含まれている場合には、ステップはＳ３０６に進み、コマンド取得部７４２は、機器情報処理モジュール４３３に対して、その未知の設定値に関する問い合わせを行う。機器情報処理モジュール４３３は、ステップＳ３０７において、機器情報保存部７１２に保存されている機器情報、本実施例では、図１０（ａ）のようなデータ構造を有する機器情報を読み出して、その中から、コマンド取得部７４２から問い合わせのあった未知の設定値に対応するコマンドを抽出し、ステップＳ３０８において、コマンド取得部７４２へ送信する。
【００９７】
図１０（ｃ）の処理内容において紙種の印刷設定の設定値として格納された「５１２」が未知の設定値である場合に、コマンド情報取得部７４２は、紙種の「５１２」という設定値に関して機器情報処理モジュール４３３へ問い合わせを行う。機器情報処理モジュール４３３は、コマンド情報取得部７４２からの問い合わせを受けて、機器情報保存部７１２に保存されている図１０（ａ）の機器情報を読み出す。図１０（ａ）の機器情報を見ると、「紙種」は参照情報に関連づけられているので、機器情報処理モジュール４３３は、更に、同じく機器情報保存部７１２に保存されている図１０（ｂ）の参照情報を読み出す。図１０（ｂ）の参照情報より、コマンド取得部７４２から問い合わせのあった設定値「５１２」に対応するコマンドは「ＳＰＥＣＩＡＬ３Ａ」であることが分かる。機器情報処理モジュール４３３は、このコマンド「ＳＰＥＣＩＡＬ３Ａ」をコマンド取得部７４２へ返す。
【００９８】
このように、印刷データ生成モジュール４３２は、コマンド取得部７４２により、未知の設定値、即ち、新たに追加された選択肢の項目に対応するコマンドを取得することができる。
【００９９】
ステップＳ３０５においてコマンドを生成した後、又はステップＳ３０６からＳ３０８においてコマンドを取得した後、ステップＳ３０９において、コマンド取得部７４２は、固定領域にまだ読み出していない印刷設定の設定値が存在するか否かを判定する。
【０１００】
判定の結果、まだ読み出していない印刷設定の設定値が存在する場合には、ステップはＳ３０３に戻り、上述したコマンド生成又は取得のための動作を繰り返す。
【０１０１】
一方、判定の結果、固定領域の全ての印刷設定の設定値が読み出され、それらの夫々に対してコマンドが生成又は取得されている場合には、ステップはＳ３１０に進む。ステップＳ３１０において、データ生成部７４３は、コマンド取得部７４２が生成又は取得したコマンドを用いて、プリンタが解釈可能な印刷データとして、例えばＰＤＬデータのＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）部を生成し、これを上述のスプーラ４４０へ送信する。
【０１０２】
このように、本実施例のコンピュータは、機能の異なるプリンタが接続される場合に、そのプリンタから取得した新規の情報を、プリンタドライバが予め有する機器情報に関連づけて参照情報として保存することにより、参照情報からコマンドを取得して、そのコマンドを用いてプリンタが解釈可能な印刷データを生成することが可能となる。
【実施例２】
【０１０３】
〔設定画面の構成〕
図１２は、本実施例のコンピュータにおいてプリンタの各種機能を設定するための設定画面の一例を示す。
【０１０４】
図１２の設定画面には、プリンタの拡張機能を設定するためのタブページ１２００が設けられている。プリンタに拡張機能が追加されていない場合の設定画面１２１において、拡張機能の表示１２１０は、ユーザが設定を行うことができないようオフとなっている。一方、拡張機能が存在する場合の設定画面１２２では、拡張機能表示１２２０はオンとなり、拡張機能の機能名が明示され、その機能の設定を行うための選択肢１２３０が用意される。ユーザは、プリンタのデフォルト機能と同じように、拡張機能に関しても設定を行うことができる。
【０１０５】
図１２の設定画面１２２より、拡張機能として「Ｚ折り」１２２０が追加され、その折り目の有無及び方向を設定するための選択肢１２３０として「なし」、「左」、「右」及び「上」が用意されていることが分かる。
【０１０６】
拡張機能は、プリンタから新たに機器情報を取得した際に、新規な情報として、既にコンピュータが有していた機器情報に追加された情報である。
【０１０７】
図１２のような設定画面は、図１３（ａ）、（ｂ）及び（ｃ）においてテーブル形式で表されている機器情報、機器情報に関連づけられた第1の参照情報及び第1の参照情報に関連づけられた第２の参照情報に基づいて生成される。また、図１２の設定画面１２２において拡張機能１２２０が設定される場合の処理内容の設定状態は、図１３（ｄ）のように、テーブル形式で表される。なお、機器情報、第１及び第２の参照情報並びに処理内容のデータ構造は、テーブル形式以外の形式でもよい。
【０１０８】
〔機器情報及び処理内容のデータ構造〕
図１３（ａ）は、本実施例における機器情報のデータ構造の一例を概略的に表す図である。
【０１０９】
図７及び図８で説明したように、プリンタドライバ４３０は、所定のプリンタから読み出した機器情報と、既知の機器情報とを情報比較部７１３により比較して、所定のプリンタから読み出した機器情報に含まれる新しい情報、即ち、プリンタの拡張機能に係る追加情報を抽出し、これを既知の機器情報に加える。このように更新された機器情報は、図１３（ａ）のようなデータ構造で機器情報保存部７１２に保存される。
【０１１０】
図１３（ａ）のデータ構造は、列２１００、２２００及び２３００を有する。列２１００には、プリンタが有している機能名が格納されており、列２２００には、列２１００に格納された機能が実行可能であるか否かを表すデータが格納されている。更に、列２２００において、その機能が実行可能であって、機能実行時の詳細な設定を行うための選択肢が存在することを表すデータが格納されている場合には、列２３００に選択肢の内容が格納されている。ただし、拡張機能においては、その実行可否及び選択肢の内容が列２２００及び２３００の対応する行に格納されず、代わりに、拡張機能の実際の機能を表す第１の参照情報に関連づけられている。
【０１１１】
図１３（ｂ）は、本実施例における図１３（ａ）の機器情報に関連づけられた第１の参照情報のデータ構造の一例を概略的に表す図である。
【０１１２】
図１３（ｂ）のデータ構造は、列２６１０、２６２０、２６３０及び２６４０を有する。列２６１０には、設定画面上に実際に表示するための文字列が格納されている。列２６２０には、処理内容のデータ構造における所定領域を表す領域ＩＤが格納されている。列２６３０には、プリンタが認識可能な、その機能に対応するコマンドが格納されている。更に、列２６４０において、拡張機能は、その機能の選択肢を表す第２の参照情報に関連づけられている。
【０１１３】
図１３（ｃ）は、本実施例における図１３（ｂ）の第１の参照情報に関連づけられた第２の参照情報のデータ構造の一例を概略的に表す図である。
【０１１４】
図１３（ｃ）のデータ構造は、列２７１０、２７２０及び２７３０を有する。列２７１０には、設定画面上に実際に表示するための文字列が格納されている。列２７２０には、プリンタドライバが認識可能な、選択肢の夫々の項目に対応する設定値が格納されている。列２７３０には、プリンタが認識可能な、選択肢の夫々の項目に対応するコマンドが格納されている。
【０１１５】
なお、第１及び第２の参照情報も、機器情報と同じく、プリンタドライバの機器情報保存部７１２に保存される。
【０１１６】
図７及び図８で説明したように、プリンタドライバ４３０は、機器情報保存部７１２に保存された機器情報に基づいて、表示部７２２を介してユーザに設定画面を表示する。そしてプリンタに拡張機能が存在する場合には、図１３（ａ）、（ｂ）及び（ｃ）の機器情報並びに第１及び第２の拡張情報に基づいて、図１２のような設定画面１２２が表示される。図１２の設定画面１２２において、拡張機能表示１２２０に表示される機能名「Ｚ折り」は、図１３（ｂ）に示した第１の拡張機能の列２６１０に格納された文字列であり、選択肢１２３０の表示される項目は、図１３（ｃ）に示した第２の拡張機能列２７１０に格納された文字列である。
【０１１７】
また、図１３（ｄ）は、本実施例における図１３（ａ）〜（ｃ）の機器情報及び参照情報に基づく処理内容のデータ構造の一例を概略的に表す図である。
【０１１８】
図１３（ｄ）のデータ構造は、ＤＥＶＭＯＤＥ構造体という構造体であって、列２４００及び２５００を有する。図１３（ｄ）のデータ構造は、更に、固定領域２００ａと拡張領域２００ｂとに分けられている。
【０１１９】
固定領域２００ａは、プリンタが予め有する機能に係る設定が格納される領域であって、固定領域２００ａにおいて、列２４００には、プリンタが有している機能名が格納されており、列２５００には、ユーザが設定画面で入力した印刷設定の設定値、即ち、図１３（ａ）に示す機器情報の列２３００に格納された選択肢、又は、先の実施例１のように、ある機能の選択肢の項目が追加された場合には図１０（ｂ）の参照情報により表される選択肢の中から、ユーザによって選択された値が格納されている。
【０１２０】
拡張領域２００ｂは、プリンタに追加された機能、即ち、拡張機能に係る設定が格納される領域であって、拡張領域２００ｂにおいて、列２４００には、拡張領域内の場所を表す領域ＩＤが格納されており、列２５００には、拡張機能の存在を表すフラグ２５１０と、ユーザが設定画面で入力した印刷設定の設定値、即ち、図１３（ｃ）の第２の参照情報により表される選択肢の中から、ユーザによって選択された値とが格納されている。
【０１２１】
図１３（ａ）の機器情報並びに図１３（ｂ）及び（ｃ）の第１及び第２の拡張情報が保存された後に、ユーザが、図１２の設定画面において拡張機能の設定を行い、選択肢１２３０の中からいずれかの項目を選択した場合を考える。例えば、ユーザが拡張機能１２２０「Ｚ折り」の選択肢１２３０から項目「左」を選択したとすると、図１３（ｂ）の第１の参照情報の列２６２０には、文字列「Ｚ折り」に対応する領域ＩＤとして「５」が入力されているから、図１３（ｄ）のように、処理内容の拡張領域２００ｂにおいて領域ＩＤ「５」に対応する行の列２５００には、拡張機能の存在を表すようフラグ２５１０が立てられる。例えば、データが２進数で表される場合には、「１」がフラグオン、「０」がフラグオフを表すとする。更に、領域ＩＤ「５」に対応する行の列２５００には、印刷設定２５２０として、図１３（ｃ）の第２の参照情報において文字列「左」に対応する設定値「１」が格納される。その後、図１３（ｄ）のようなデータ構造を有する処理内容は、上述のアプリケーション４１０に保存される。
【０１２２】
次に、ユーザが、アプリケーション上で所定のプリンタへの印刷要求を行うと、プリンタドライバ４３０は、プリンタが解釈可能な印刷データを生成するために、アプリケーション４１０からの処理内容を読み込む。このとき、プリンタドライバ４３０は、読み込んだ処理内容を調べることで、その内容に未知の情報が含まれているか否かを判定するが、プリンタから機器情報を取得した際に新たに追加された情報を未知の情報として認識する。本実施例では、図１３（ｄ）の処理内容の拡張領域２００ｂにおいて、フラグ２５１０が立てられている（「１」である）領域の領域ＩＤ「５」及び設定値「１」が未知の情報として扱われる。
【０１２３】
図７及び図８を参照して上で説明したように、プリンタドライバ４３０は、処理情報に未知の情報が含まれていた場合に、プリンタが解釈可能な印刷データを生成するために、機器情報から未知の情報に対応するコマンドを取得する。以下、このコマンド取得動作について、図７のブロック図及び図１４のフロー図を参照して更に詳細に説明する。
【０１２４】
〔コマンド取得及びデータ生成〕
図１４は、処理内容が図１３（ｄ）のようなデータ構成を有する場合のプリンタドライバ４３０におけるコマンド取得動作の一例を説明するフロー図である。
【０１２５】
ユーザが、アプリケーション上で所定のプリンタへの印刷要求を行うと、印刷データ生成モジュール４３２の処理内容読込部７４１は、ステップＳ４０１において、アプリケーション４１０の処理内容保存部７３１に保存された、図１３（ｄ）のようなデータ構造を有する処理内容を読み込む。
【０１２６】
最初に、ステップＳ４０２において、処理内容読込部７４１は、読み込んだ処理内容の固定領域２００ａのみを抽出して読み込み、先の実施例１で図１１を参照して説明したコマンドの生成及び取得の動作、ステップＳ３０２〜Ｓ３０９を実行する。
【０１２７】
固定領域の上記処理が完了した後に、ステップＳ４０３において、処理内容読込部７４１は、読み込んだ処理内容の拡張領域２００ｂを抽出して読み込む。コマンド取得部７４２は、ステップＳ４０４において、読み込まれた拡張領域２００ｂの一行目から順に、図１３（ｄ）の列２５００に格納されたフラグ２５１０を読み出し、ステップＳ４０５において、フラグが存在するか否か（「１」であるか否か）を判定する。
【０１２８】
判定の結果、フラグが存在しない（「０」である）場合には、ステップはＳ４１０に進む。
【０１２９】
一方、判定の結果、フラグが存在する（「１」である）場合には、ステップはＳ４０６に進み、コマンド取得部７４２は、そのフラグに対応する領域の領域ＩＤ及び印刷設定を読み出す。次に、ステップＳ４０７において、コマンド取得部７４２は、機器情報処理モジュール４３３に対して、読み出した領域ＩＤ及び印刷設定に関する問い合わせを行う。機器情報処理モジュール４３３は、ステップＳ４０８において、機器情報保存部７１２に保存されている機器情報、本実施例では、図１３（ａ）のようなデータ構造を有する機器情報を読み出して、その中から、コマンド取得部７４２から問い合わせのあった領域ＩＤ及び印刷設定に対応するコマンドを抽出し、ステップＳ４０９において、コマンド取得部７４２へ送信する。
【０１３０】
図１３（ｄ）の処理内容において、領域ＩＤ「５」に対応する拡張領域２００ｂの所定領域のフラグ２５１０が「１」であって、更に、その領域に印刷設定の設定値として「１」が格納されている場合に、コマンド情報取得部７４２は、領域ＩＤ「５」及び印刷設定値「１」に関して機器情報処理モジュール４３３へ問い合わせを行う。機器情報処理モジュール４３３は、コマンド情報取得部７４２からの問い合わせを受けて、機器情報保存部７１２に保存されている図１３（ａ）の機器情報を読み出す。図１３（ａ）の機器情報において機器の拡張機能に係る情報は、第１の参照情報として機器情報に関連づけられている。従って、機器情報処理モジュール４３３は、更に、同じく機器情報保存部７１２に保存されている図１３（ｂ）の第１の参照情報を読み出す。図１３（ｂ）の第１の参照情報より、コマンド取得部７４２から問い合わせのあった領域ＩＤ「５」に対応するコマンドは「ＺＦＯＬＤＩＮＧ」であることが分かる。第１の参照情報において、領域ＩＤ「５」に対応するコマンドは、更に第２の参照情報に関連づけられているので、機器情報処理モジュール４３３は、更に、同じく機器情報保存部７１２に保存されている図１３（ｃ）の第２の参照情報を読み出す。図１３（ｃ）の第２の参照情報より、コマンド取得部７４２から問い合わせのあった印刷設定値「１」に対応するコマンドは「ＬＥＦＴ」であることが分かる。従って、機器情報処理モジュール４３３は、コマンド「ＺＦＯＬＤＩＮＧ」及び「ＬＥＦＴ」をコマンド取得部７４２へ返す。
【０１３１】
このように、印刷データ生成モジュール４３２は、コマンド取得部７４２により、未知の情報に対応するコマンド、即ち、プリンタの新たに追加された機能に対応するコマンドを取得することができる。
【０１３２】
ステップＳ４０５においてフラグが存在しないことが確認された後、又はステップＳ４０６からＳ４０９においてコマンドを取得した後、ステップＳ４１０において、コマンド取得部７４２は、拡張領域２００ｂにまだ読み出していないフラグが存在するか否かを判定する。
【０１３３】
判定の結果、まだ読み出していないフラグが存在する場合には、ステップはＳ４０４に戻り、拡張機能に対応するコマンドを取得するための上記動作を繰り返す。
【０１３４】
一方、判定の結果、拡張領域２００ｂの全てのフラグが読み出されている場合には、ステップはＳ４１１に進む。ステップＳ４１１において、データ生成部７４３は、コマンド取得部７４２が取得したコマンドを用いて、プリンタが解釈可能な印刷データとして、例えばＰＤＬデータのＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）部を生成し、これを上述のスプーラ４４０へ送信する。
【０１３５】
このように、本実施例のコンピュータは、機能の異なるプリンタが接続される場合に、そのプリンタから取得した新規の情報を、プリンタドライバが予め有する機器情報に関連づけて第１の参照情報として保存し、更に、新規の情報の詳細な設定を表す設定値を第２の参照情報として保存することにより、第１及び第２の参照情報の夫々から、新規の情報に対応するコマンドと、新規な情報に係る設定値に対応するコマンドとを取得して、それらのコマンドを用いてプリンタが解釈可能な印刷データを生成することが可能となる。
【０１３６】
〔変形例〕
以上、本発明の実施形態では、プリンタドライバに関して説明したが、アプリケーションからの指示を機器が処理可能なデータへ変換するソフトウェアであれば、スキャナドライバ及びＰＣ−ＦＡＸドライバ等の他のデバイスドライバにも適用することができる。
【０１３７】
また、本発明の機能は、情報処理装置のハードディスク（ＨＤＤ）、読出し専用メモリ（ＲＯＭ）等のメモリに格納されたプログラムによっても実現されるとしたが、あるいは、情報処理装置においてハードウェアとして実現されても良い。
【０１３８】
また、変形例でのコンピュータは、機器の機器情報を、所定の時点又は非同期に取得しても良い。
【０１３９】
また、上記機器の機器情報は、例えば外部の記憶装置としてのサーバー装置で保存されても良い。
【０１４０】
また、本発明の実施形態は、デバイスドライバドライバ及びそれに準じるモジュールの形態に限定されず、アプリケーション自身に適用させても良い。
【０１４１】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨を損なわない範囲で変更することが可能である。
【図面の簡単な説明】
【０１４２】
【図１】情報処理システムのネットワーク構成図の従来例を示す。
【図２（ａ）】機器情報の従来のデータ構造の一例を概略的に表す図である。
【図２（ｂ）】処理内容の従来のデータ構造の一例を概略的に表す図である。
【図３】従来のプリンタドライバの動作の一例を説明するシーケンス図である。
【図４】本実施形態のコンピュータのハードウェア構成例を示す図である。
【図５】本実施形態のコンピュータの機能構成例を示す図である。
【図６】本実施形態の情報処理システムのネットワーク構成例を示す。
【図７】本実施形態のコンピュータにおけるプリンタドライバ部の詳細な構成の一例を表すブロック図である。
【図８】本実施形態のプリンタドライバの動作の一例を説明するシーケンス図である。
【図９】実施例１のコンピュータにおいてプリンタの各種機能を設定するための設定画面の一例を示す。
【図１０（ａ）】実施例１の機器情報のデータ構造の一例を概略的に表す図である。
【図１０（ｂ）】図１０（ａ）の機器情報に関連づけられた参照情報のデータ構造の一例を概略的に表す図である。
【図１０（ｃ）】図１０（ａ）及び（ｂ）の機器情報及び参照情報に基づく処理内容のデータ構造の一例を概略的に表す図である。
【図１１】図１０（ｃ）の処理内容に対する実施例１のプリンタドライバのコマンド取得動作の一例を説明するフロー図である。
【図１２】実施例２のコンピュータにおいてプリンタの各種機能を設定するための設定画面の一例を示す。
【図１３（ａ）】実施例２の機器情報のデータ構造の一例を概略的に表す図である。
【図１３（ｂ）】図１３（ａ）の機器情報に関連づけられた第１の参照情報のデータ構造の一例を概略的に表す図である。
【図１３（ｃ）】図１３（ｂ）の第１の参照情報に関連づけられた第２の参照情報のデータ構造の一例を概略的に表す図である。
【図１３（ｄ）】図１３（ａ）〜（ｃ）の機器情報及び参照情報に基づく処理内容のデータ構造の一例を概略的に表す図である。
【図１４】図１３（ｄ）の処理内容に対する実施例２のプリンタドライバのコマンド取得動作の一例を説明するフロー図である。
【符号の説明】
【０１４３】
４０，４０ａ，４０ｂ  コンピュータ
４１０  アプリケーション
４２０  描画サービス
４３０  プリンタドライバ
４３１  ＵＩモジュール
４３２  印刷データ生成モジュール
４３３  機器情報処理モジュール
４４０  スプーラ
５０，５０ａ，５０ｂ  プリンタ
５１０，５２０  記憶装置
６０  情報処理システム
６５  ネットワーク
７１１  機器情報取得部
７１２  機器情報保存部
７１３  情報比較部
７２１  処理内容設定部
７２２  表示部
７２３  入力部
７３１  処理内容保存部
７４１  処理内容読込部
７４２  コマンド取得部
７４３  データ生成部
７４４  コマンド記憶部
２００ａ  固定領域
２００ｂ  拡張領域
【図１】
2008009967.tif 000003
【図２（ａ）】
2008009967.tif 000004
【図２（ｂ）】
2008009967.tif 000005
【図３】
2008009967.tif 000006
【図４】
2008009967.tif 000007
【図５】
2008009967.tif 000008
【図６】
2008009967.tif 000009
【図７】
2008009967.tif 000010
【図８】
2008009967.tif 000011
【図９】
2008009967.tif 000012
【図１０（ａ）】
2008009967.tif 000013
【図１０（ｂ）】
2008009967.tif 000014
【図１０（ｃ）】
2008009967.tif 000015
【図１１】
2008009967.tif 000016
【図１２】
2008009967.tif 000017
【図１３（ａ）】
2008009967.tif 000018
【図１３（ｂ）】
2008009967.tif 000019
【図１３（ｃ）】
2008009967.tif 000020
【図１３（ｄ）】
2008009967.tif 000021
【図１４】
2008009967.tif 000022