(57)【要約】      （修正有）【課題】汎用のデバイスドライバーにおいて、策定済みの規格では対応できない周辺装置の機種固有の機能に関する情報を取得し、システムソフトウェアのデバイス依存部分を低減可能な仕組みを提供する。【解決手段】汎用プリンタードライバーのプリンター能力取得部は、ベンダや機種に依存しない各種プリンターに対して共通に利用可能な情報取得の定義情報（機器共通の情報取得定義）を用いて、プリンターから、プリンターに固有の情報取得の定義情報（機器固有の情報取得定義）を取得し（S1002、S1003）、機器固有の情報取得定義を用いて、プリンターから、プリンターに固有の構成情報を取得し（S1005〜S1007）、プリンターごとの拡張情報格納部に保存する（S1007）。汎用プリンタードライバーは、拡張情報格納部に保存されているプリンターの構成情報を用いて、プリンターを制御する。【選択図】図１０
2020004159.tif 000002
【特許請求の範囲】
【請求項１】
複数の周辺装置に対して共通に利用可能なデバイスドライバーを有する情報処理装置であって、
前記複数の周辺装置に対して共通に利用可能な情報取得の定義情報である第１定義情報を用いて、前記いずれかの周辺装置に固有の情報取得の定義情報である第２定義情報を取得する第１取得手段と、
前記第１取得手段により取得された前記第２定義情報を用いて、該周辺装置から、該周辺装置に固有の構成情報を取得する第２取得手段と、
前記第２取得手段により取得された前記第２定義情報を、前記デバイスドライバーで使用する周辺装置ごとの記憶領域に格納する格納手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記デバイスドライバーは、前記周辺装置ごとの記憶領域に格納されている前記周辺装置の構成情報を用いて、該周辺装置を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１取得手段は、前記いずれかの周辺装置に対応する記憶領域に前記第２定義情報が格納されていない場合に、前記第２定義情報の取得を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１定義情報は、前記デバイスドライバーで使用するデータを格納する記憶領域に記憶されていることを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１取得手段は、前記いずれかの周辺装置から前記第２定義情報を取得することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１取得手段は、サーバーから前記第２定義情報を取得することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項７】
前記周辺装置は、印刷装置を含み、
前記デバイスドライバーは、プリンタードライバーを含むことを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
複数の周辺装置に対して共通に利用可能なデバイスドライバーを有する情報処理装置の制御方法であって、
複数の周辺装置に対して共通に利用可能な情報取得の定義情報である第１定義情報を用いて、前記いずれかの周辺装置に固有の情報取得の定義情報である第２定義情報を取得する第１取得ステップと、
前記第１取得ステップで取得された前記第２定義情報を用いて、該周辺装置から、該周辺装置に固有の構成情報を取得する第２取得ステップと、
前記第２取得ステップで取得された前記第２定義情報を、前記デバイスドライバーで使用する周辺装置ごとの記憶領域に格納する格納ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
コンピューターを、請求項１〜７のいずれか１項記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置等の周辺装置から情報の取得を行う処理の制御に関する。
【背景技術】
【０００２】
近年、情報処理端末のモバイル化や、業務環境においてもフリーアドレスのように業務中に特定の場所に座らない働き方をする企業があるなど、ユーザーが特定の場所に常駐しない環境が現れている。これに伴い、ユーザーが印刷を行う場合、従来のように固定の印刷装置に対してだけでなく、移動した場所に応じた様々なベンダの機種や様々なモデルの印刷装置を用いて印刷を行いたいケースが増えてきている。
【０００３】
ここで、機能が異なる複数種類の印刷装置を制御するためのプリンタードライバーとしてユニバーサルプリンタードライバーと称されるプリンタードライバーが知られている（特許文献１）。
【０００４】
また、印刷装置のベンダが提供するプリンタードライバーを使用することなく、印刷装置に対して印刷データを送信できるようにすることが考えられている。例えば、Ubuntu（登録商標）17.04では、OSのデフォルト機能として、IPP Everyware（登録商標）に対応する印刷装置に対して印刷データを送信する仕組みが搭載されている。IPP Everywareは、様々なベンダやブランドの印刷装置を使用した印刷を可能とする一連の規格であり、業界団体などで規格の策定や普及活動が行われている。
【０００５】
一般に、上述したようなユニバーサルプリンタードライバーは、ベンダごとに提供されている。従って、同じベンダが販売している機能が異なる複数種類の印刷装置については、1つのユニバーサルプリンタードライバーで対応することができる。しかし、異なるベンダの印刷装置を1つのユニバーサルプリンタードライバーで対応することは困難であった。これは、ベンダごとに各々異なる通信方式、PDL（ページ記述言語）やJDL（ジョブ記述言語）で印刷データのやり取りを行っているため、統一することが難しいといった事情に起因する。また、ベンダごとにPDLやJDLに独自の拡張を行っているため統一して動作させることが難しいといった事情にも起因する。
【０００６】
ところで、Windows（登録商標）等の実行環境でも、ベンダが提供するV3形式やV4形成のプリンタードライバーを個別にインストールすることなく印刷実行できる仕組みを提供できれば、ユーザーにとっての利便性を高めることができると想定される。
このような仕組みを実現するために、IPPに準拠する仕組みを使用した印刷サービスをWindows環境で利用できるようにすることも考えられる（非特許文献１）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２４３０６７号公報
【非特許文献】
【０００８】
【非特許文献１】http://ug.oipsrv.net/USRMA-0672-zz-PS-jaJP/contents/PS850_network725_printernosetuzokuhouhouippipps.html
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ベンダや機種に依存しない汎用のプリンタードライバー（以下「汎用プリンタードライバー」という）では、各種ベンダが販売している印刷装置の印刷が可能である。しかし、従来の汎用プリンタードライバーでは、機器固有の機能については対応できなかった。
【００１０】
例えば、従来の汎用プリンタードライバーでは、印刷装置の構成情報（能力情報）を取得する場合、一般的な機能に関しては、IPPに準拠するデバイス構成情報の取得処理で取得することが可能であった。しかし、従来の汎用プリンタードライバーでは、機器固有の機能や新規機能に関する情報を、IPPに準拠するデバイス構成情報の取得処理で取得することはできなかった。
【００１１】
本発明は、上記の課題を鑑みてなされたものである。本発明の目的は、汎用のデバイスドライバーにおいて、策定済みの規格では対応できない周辺機器の機種固有の機能に関する情報を取得できる仕組みを提供することを目的とするものである。また、本発明は、システムソフトウェアのデバイス依存部分を低減する仕組みを提供することをさらに別の目的とする。
【課題を解決するための手段】
【００１２】
本発明は、複数の周辺装置に対して共通に利用可能なデバイスドライバーを有する情報処理装置であって、前記複数の周辺装置に対して共通に利用可能な情報取得の定義情報である第１定義情報を用いて、前記いずれかの周辺装置に固有の情報取得の定義情報である第２定義情報を取得する第１取得手段と、前記第１取得手段により取得された前記第２定義情報を用いて、該周辺装置から、該周辺装置に固有の構成情報を取得する第２取得手段と、前記第２取得手段により取得された前記第２定義情報を、前記デバイスドライバーで使用する周辺装置ごとの記憶領域に格納する格納手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明の一つの側面によれば、汎用のデバイスドライバーにおいて、策定済みの規格では対応できない周辺装置の機種固有の機能に関する情報を取得することが可能となる。また、本発明の別の側面によれば、システムソフトウェアのデバイス依存部分を低減可能な仕組みを提供できる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態の情報処理装置の構成の一例を示す図。
【図２】本実施形態の情報処理装置を含むシステムの構成の一例を示す図。
【図３】クライアントコンピューターのソフトウェア構成の一例を示す図。
【図４】OSの標準印刷設定画面の一例を示す図。
【図５Ａ】ベンダ固有の印刷拡張アプリの印刷設定画面の一例を示す図。
【図５Ｂ】ベンダ固有の印刷拡張アプリの印刷設定画面の一例を示す図。
【図６】ベンダ固有のタイルアプリの画面を例示する図。
【図７】機器共通（機器非依存）の情報取得の定義の一例を示す図。
【図８】USBでの情報取得時の拡張定義の一例を示す図。
【図９】機器固有（機器依存）の情報取得の定義の一例を示す図。
【図１０】第１実施形態における構成情報取得処理の一例を示すフローチャート。
【図１１】第２実施形態における機器固有の情報取得の定義の取得処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。
〔第１実施形態〕
図１は、本発明の一実施形態を示す情報処理装置の構成の一例を示す図である。
図１において、クライアントコンピューター100は、本実施形態の情報処理装置であり、一般的なコンピューターを用いて構成されている。
CPU101は、主記憶装置102のROM1021、RAM1022あるいは補助記憶装置105に格納されたプログラムに従ってコンピューター100全体の制御を行う。
【００１６】
RAM1022は、CPU101が各処理を行う際のワークエリアとしても使用される。
補助記憶装置105には、アプリケーション（アプリ）1051やデバイスアプリケーション（デバイスアプリ）1052、汎用プリンタードライバー1053、オペレーティングシステム（OS）1054等の各種プログラムが格納される。プリンタードライバーは、デバイスドライバーの一例である。本発明は、デバイスドライバーに適用可能なものであり、プリンタードライバーに限定されるものではない。デバイスドライバーには、スキャナードライバーやファックスドライバーなどの各種の周辺装置（周辺機器）のデバイスドライバーを含む。
【００１７】
キーボード1031やマウス、タッチパネル、タッチパッドなどに代表されるポインティングデバイス1032等の入力機器は、入力インターフェース（I/F）103を通してコンピューター100に接続される。コンピューター100は、これらの入力機器を通してユーザーからのプログラムへの操作を受け付ける。
【００１８】
出力I/F104には、モニター1041等の出力デバイスが接続され、プログラムの指示に従いモニター上にUIを表示する。なお、スマートフォンやタブレット端末を始めとする端末に関してはポインティングデバイス1032とモニター1041が一体となっているものがあるが、ここでは役割ごとに分離して表記を行っているだけであり、置き換えて考えてももちろん構わない。
【００１９】
通信I/F106は、ネットワーク1061やUniversal Serial Bus（USB）1062に接続されており、コンピューター100の外部機器、例えば、図２のコンピューター202やプリンター201との通信が可能である。
【００２０】
上記各モジュールは、システムバス107で接続され、各モジュール間でデータのやり取りが可能である。また、本実施形態の機能を実現するためのプログラム（1051〜1054等）は、不図示のCD−ROMやUSBメモリー等を介して補助記憶装置105に追加可能である。さらに、これらのプログラムを、ネットワーク1061を経由して補助記憶装置105に追加することも可能である。なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、Localネットワークを介して接続されて処理が行われるシステムであってもよい。
【００２１】
以下、図２を用いて、ネットワーク1061の環境について説明する。
図２は、本実施形態の情報処理装置を含むシステムの構成の一例を示す図である。
本実施形態のシステムでは、印刷を行う文書や画像を作成するコンピューター100／202等の印刷装置（画像形成装置ともいう）が単体もしくは複数ネットワークに接続されている。さらにプリンター201が単体もしくは複数ネットワークに接続されていることやUSB1062を経由してコンピューター100／202に接続されることもある。周辺機器の一例として画像形成装置がある。画像形成装置の一例としてプリンター201、スキャナ、ファクシミリ装置、これらの複合機があげられる。
【００２２】
上記ネットワークにはPersonal Area Network（PAN）、LANなどの小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。なお、クラウドなど、サーバーやプリンターがインターネットを経由して接続されていても構わない。この際の通信方式であるがIEEE802.11規格に則ったワイヤレスLANでの通信はもちろんBluetooth（登録商標）通信、IMT-2000規格に則った携帯電話回線を始めとする通信等、特に限定は行わないものとする。IMT-2000は、「International Mobile Telecommunication 2000」を示す。また、USBに関しては直接接続する形態以外にもUSBハブや交換機のようなもので中継されていても構わない。
【００２３】
図３は、クライアントコンピューター100のソフトウェア構成の一例を示す図である。本実施形態では、アプリ1051と汎用プリンタードライバー1053について詳細に説明する。特に、アプリ1051に含まれる印刷拡張アプリ10511と、汎用プリンタードライバー1053の構成要素であるコンフィグモジュール10531、グラフィクスフィルタ10532に関して詳細に説明する。図３に示す各ソフトウェアモジュールは、CPU101が補助記憶装置105等に格納されるプログラムをRAM1022にロードして実行することにより実現され機能する。
【００２４】
アプリ1051は、ワードプロセッサやブラウザー等の一般的なアプリケーションである。アプリ1051は、モニター1041上にUIを表示し、ポインティングデバイス1032やキーボード1031等の入力機器によってユーザーの印刷要求を受け付ける。ユーザーの印刷要求を受けて、アプリ1051は、OS1054のサブシステムである印刷システム（不図示）へ印刷要求を出す。印刷システムは、アプリ1051と汎用プリンタードライバー1053の中間に位置し、印刷処理における共通処理の実行を行う。具体的な実行処理としては、印刷対象プリンターの選択や選択された汎用プリンタードライバー1053を用いてプリンター201が解釈可能な印刷命令への変換を行う。
【００２５】
印刷拡張アプリ10511は、タイルアプリ部301と詳細情報設定UI部302を有する。
タイルアプリ部301は、印刷拡張アプリ10511を起動するユーザー操作を受けたことに従って実行されるUI部である。タイルアプリ部301は、図６のように登録されたプリンターを一覧表示し、プリンターのステータス表示などの機能を提供する。
図６は、ベンダ固有のタイルアプリの画面を例示する図である。
図６に示す情報取得ボタン601は、プリンターのステータスを取得する場合に使用される。
【００２６】
詳細情報設定UI部302は、OS1054によって実行された詳細印刷設定イベントを受信することにより実行されるUI部である。具体的には、図４に示すOS標準の印刷設定画面に存在する詳細設定画面へのリンク401をクリックすることで、詳細情報設定UI部302が図５Ａ、図５Ｂのような印刷拡張アプリ10511のUIの表示を行う。
図４は、OSの標準印刷設定画面の一例を示す図である。
図５Ａ、図５Ｂは、ベンダ固有の印刷拡張アプリの印刷設定画面の一例を示す図である。詳細は後述する。
【００２７】
なお、一般的にプリンタードライバーは、印刷出力先のプリンターに依存する処理を受け持つモジュールである。しかし、本実施形態の汎用プリンタードライバー1053は、プリンターのベンダや機種に依存せず通信や印刷が可能な標準的な規格に則ったものである。汎用プリンタードライバー1053は、ベンダや機種が異なる複数のプリンターに対して共通に利用可能なプリンタードライバーである。なお、汎用プリンタードライバー1053は、印刷拡張アプリ10511を導入することで付加的な機能や詳細な設定画面を拡張させることが可能である。
【００２８】
コンフィグモジュール10531は、データ保持部303、プリンター能力取得部304を有する。
データ保持部303は、汎用プリンタードライバー1053で使用するデータを格納する記憶領域に対応する。ここでは、補助記憶装置105上にあるファイルシステムやレジストリはもちろん揮発性データとして一時的にRAM1022に格納されるものも該当する。
【００２９】
データ保持部303は、基本情報格納部3031と拡張情報格納部3032を有する。
基本情報格納部3031は、汎用プリンタードライバー1053が導入される際に定義されている各ベンダで共通のものやベンダ内で共通して用いられる設定や仕様に関する情報や定義等を格納する領域である。具体的には、対応する用紙サイズやカラー設定といった印刷に必要な能力や印刷設定に関する定義や、「A3サイズではステープルは打てない」といった禁則に関する定義、通信時に取得する情報に関する定義（機器共通の情報取得の定義）などである。また、ベンダのプリンターが持つ共通した依存性を解決するためのデータの変換テーブルや変換ロジックの定義を格納しても構わない。このように、基本情報格納部3031は、ベンダや機種が異なる複数のプリンターに対して共通に利用可能な情報を格納する。
【００３０】
一方、拡張情報格納部3032は、汎用プリンタードライバー1053の導入後に機能を拡張させる目的で定義されるデータが格納される。このデータには、例えば、特殊用紙のサポート情報や機器固有のフィニッシャーを用いた機能に関する定義といった機器固有の機能に関する定義や、デフォルト値のカスタマイズやお気に入り設定といったインストール後の設定を制御する情報が該当する。また、このデータは、印刷設定以外にもキャリブレーションといった画質の補正などの内部的に使用する情報であっても構わない。
このように、基本情報格納部3031には、ベンダや機種が異なる複数の印刷装置に対して共通に利用可能な情報（例えば機器共通の情報取得の定義情報）が格納されている。また、拡張情報格納部3032には、装置に固有の情報（例えば機器固有の情報取得の定義情報）が格納されている。なお、データ保持部303は、プリンターごとに設けられる。
【００３１】
プリンター能力取得部304は、プリンター201から、機器構成情報やユーザーにより設定された情報等の取得を行う。ここで用いられる通信はInternet Printing Protocol（IPP）やWeb Service on Devices（WSD）を始めとする標準的なプロトコルを用いたものを対象としており、OS1054が実行可能な通信を指す。
【００３２】
なお、印刷拡張アプリ10511を始めとするアプリケーションが独自にプリンター能力取得部304の処理を呼び出してもよいものとする。ここでは、一例として、IPPを使用する場合を例として説明する。プリンター能力取得部304は、基本情報格納部3031に格納される能力情報を“RFC2911”で既定されたプリンター属性要求操作（Get-Printer-Attributes Operations）を用いて取得する。また、プリンター能力取得部304は、Get-Printer-Attributes Requestをプリンター201に対して送信する。当該リクエストの応答として、プリンター201の属性情報が得られる。プリンター属性要求操作により得られるプリンターの能力情報は、例えば、「両面」や「カラー印刷」が可能かどうかなどの、標準的な印刷設定の能力情報などである。
【００３３】
グラフィクスフィルタ10532は、アプリ1051より、印刷システム経由で、プリンターが一般的に解釈可能な設定情報を含む標準文書データを受け取り、標準文書データ解析部305で解析を行う。そして、グラフィクスフィルタ10532は、該標準文書データを、出力データ生成部306を用いて、印刷設定を反映させた標準文書データに変換する。変換された標準文書データは、OS1054のサブシステムであるシステムスプーラ10541に受け渡され、プリンター201へ送信される。
【００３４】
なお、ここでの標準文書データは、XPSやPDF、Post Script（PS）のような標準的なPage Discription Language（PDL）かあるいはPDLに付加データを加えて拡張させたものを指す。XPSは、「XML Paper Specification」を示す。PDFは、「Portable Document Format」を示す。
【００３５】
以下、本実施形態の処理の概要について説明する。
本実施形態では、プリンター201から構成情報の取得を行うが、汎用プリンタードライバー1053は、ベンダや機種に対する依存性を持たないものである。このため、従来の方法では、機種固有の機能を始めとする機種依存の情報を取得することができなかった。例えば、「ステープル」の能力は一般的なものであるため、ベンダや機種共通の情報としての定義が可能であり、標準的な構成情報の取得処理で取得可能である。しかし、金属の針を使わずに留めを行う「針なしとじ」機能の能力は特定機種のみのものであるため、標準的な構成情報取得では、情報取得ができない。このため本実施形態では、まず、機種共通の情報取得の定義（ベンダや機種が異なる複数のプリンターに対して共通に利用可能）を用いて、プリンター201に機種固有の情報取得の定義の問い合わせを行う。そして、取得した機器固有（機種依存）の情報取得の定義を用いることで、プリンター201から機種固有の能力情報を取得する。
【００３６】
上記処理に関して図１０のフローを用いて説明する。
図１０は、第１実施形態における構成情報取得処理の一例を示すフローチャートである。本実施形態では、構成情報取得時にプリンターから機器依存の定義を取得して該機種依存の定義を用いてプリンターから機種固有の情報を取得する。このフローチャートの処理は、クライアントコンピューター100のCPU101が補助記憶装置105等に格納されるプログラムをRAM1022にロードして実行することにより実現される。なお、本フローチャートに示す処理は、特に断らない限りOS1054から呼び出された汎用プリンタードライバー1053のプリンター能力取得部304において実行されるものとする。ここではプリンター201を例として説明する。
【００３７】
また、本フローチャートに示す処理の実行タイミングは、OS1054から発生するイベント、プリンター201から発生するイベント、ユーザー操作により発生するイベントによって適宜呼び出される。まずOS1054から発生するイベントとは、汎用プリンタードライバー1053がインストールされ、初期化されたタイミングで発生するもの、OS1054がネットワークに接続されたり接続状態が変わったりした際に発生するイベント等を指す。また、システムにより予約された一定時間ごとか、特定の時刻により発生するイベントでも構わない。またプリンター201から発生するイベントとは、プリンター201側で設定の更新がされた際やプリンター201が起動された際、フィニッシャーなどのオプションが取り付け（取り外し）された際などに発生するイベントを指す。また、プリンター201から発生するイベントには、プリンター201のステータスが更新された際などに発生するイベントも含まれる。また、ユーザー操作により発生するイベントとは、汎用プリンタードライバー1053に結びついた印刷拡張アプリ10511が操作された際に発生するイベントである。例えば、タイルアプリ部301の情報取得ボタン601、詳細情報設定UI部302の情報取得ボタン501の操作が、ユーザー操作により発生するイベントに該当する。また、印刷拡張アプリ10511がユーザーによって起動された場合や終了された場合もユーザー操作により発生するイベントと見なす。
【００３８】
まずS1001において、プリンター能力取得部304は、機種固有の情報取得の定義が存在しているかどうかを判定する。具体的には、プリンター能力取得部304は、プリンター201に対応するデータ保持部303の拡張情報格納部3032に機種固有の情報取得の定義が存在しているか否かの判定を行う。この際、システムのRAM1022上に機種固有の情報取得の定義と同様の情報がロードされていることを判定の条件としてもよいし、機種固有の情報取得の定義を取得済みであるというフラグを持たせておいて判定の条件としてもよい。
【００３９】
上記S1001において、機種固有の情報取得の定義が存在しないと判定した場合（S1001でNoの場合）、プリンター能力取得部304は、S1002に処理を進め、プリンター201に対して機器固有の情報取得の定義の取得を行うように制御する。
【００４０】
S1002において、プリンター能力取得部304は、機器共通の情報取得の定義の読み込みを行う。上述したように、機器共通の情報取得の定義は、プリンター201に対応するデータ保持部303の基本情報格納部3031に機種に依存しないデータとして保存されており、例えば図７のようなものである。
【００４１】
図７は、機器共通（機器非依存）の情報取得の定義の一例を示す図である。
能力情報取得の定義701は、プリンター201から機種固有の情報取得の定義を取得するためのリクエスト情報であり、このリクエストを行うことで、プリンター201から図９のような機器固有の情報取得の定義の取得を行うことが可能となる。本実施形態のリクエストは、文字列として定義の取得を想定しているが、別途バイナリー形式でデータの取得を行ってもよいし、本例のようなXMLでなくJSONのような別のデータ形式で取得を行い、別途コンバートした上で用いるといった方法でも構わない。
図９は、機器固有（機器依存）の情報取得の定義の一例を示す図である。
【００４２】
次にS1003において、プリンター能力取得部304は、上記S1002で読み込んだ情報（機器共通（機器非依存）の情報取得の定義）を基に機器固有（機器依存）の情報取得の定義をプリンター201から取得する。該取得した情報はシステムのRAM1022に読み込まれる。この際、接続の確立やデータ取得時の再送処理といった処理は、OS1054側によって制御される。また、接続がUSB接続であった場合も基本的にネットワーク接続時と同様である。しかし、プリンター201が通信に用いるデータがベンダ固有のものであったり特殊な処理が必要であったりした場合には、図８のような実行可能なスクリプトを読み込ませて処理を行ってもよい。本スクリプトは、プリンター201に印刷処理をかけたり、情報の取得を行ったりする際に読み込まれ、処理内容に合わせて予約された名称の関数が実行される。
【００４３】
図８は、USBでの情報取得時の拡張定義の一例を示す図である。
例えば、情報の取得時は、図８のgetSchemas関数が呼び出され、記載している処理が呼び出される。なお、本例ではgetSchemas関数が呼び出されたが、例えばIPP接続であった場合にはGetPrinterAttibute関数に紐付いた処理が呼び出される。また、処理の内容に関しては、例えばプリンター側から返されるデータが、ベンダ固有のバイナリーデータや所定フォーマットのデータであった際に、そのデータのコンバートを行う。また、機器によってコンバート処理を切り替える等、機器ごとの処理の分岐や通信のやり取りの際にプリンター201との処理の待ち合わせや、情報取得と印刷処理が平行して走った場合の通信データの整合性を取るなどの処理を行ってもよい。このスクリプトによってデータを変換することで、通常のネットワークでの通信と同様に処理を行わせることが可能となる。
【００４４】
次にS1004において、プリンター能力取得部304は、上記S1003で取得したデータ（機器固有の情報取得の定義）を、プリンター201に対応するデータ保持部303の拡張情報格納部3032に保存し、S1005に処理を進める。
【００４５】
また上記S1001において、機種固有の情報取得の定義が存在すると判定した場合（S1001でYesの場合）、プリンター能力取得部304は、S1005に処理を進める。
【００４６】
S1005において、プリンター能力取得部304は、機器固有の情報取得の定義を適用する処理を行う。ここでは、図７のような機器共通の定義を図９のような定義と置き換える処理を想定しているが、機器共通の定義と機器固有の定義が競合しない場合は、両方読み込むなどの方法をとってもよいし、２つのファイルをマージしてもよいものとする。
【００４７】
次にS1006において、プリンター能力取得部304は、上記S1005での処理で更新された情報を適用する処理を行う。本処理は、設定の再読み込みや適用処理の呼び出し処理が該当するが、システムの初期化処理の呼び出しを行ってもよい。また、必要であれば、OS1054が管理するシステムスプーラ10541の再起動も行う。なお、再起動時に必要であれば、タスクスケジューラや外部プロセスを用いて自身のプロセスを再実行してもらうなどの方法を取ってもよい。
【００４８】
次にS1007において、プリンター能力取得部304は、上記S1006で適用した機器固有の情報取得の定義を基に機器固有（機器依存）の情報をプリンター201から取得する。本実施例では、図９のような機器固有の情報取得の定義を用いて情報を取得する。例えば、機器共通の定義901はステープルが可能かどうかという機器共通の設定に対する情報取得の定義である。また、機器固有の定義902は「パンチや針なしとじ」といった機器固有の情報取得の定義である。本ステップでは、このような定義に従い情報の取得を行う。なお、プリンター能力取得部304は、ここで取得した構成情報を、プリンター201に対応するデータ保持部303の拡張情報格納部3032に保存し、本フローチャートの処理を終了する。
【００４９】
続けて、図５を用いて、取得した情報に基づき表示される設定画面の一例について説明する。なお、図５Ａは機器固有の情報取得を行っていない場合に表示される設定画面の一例を示している。また、図５Ｂは機器固有の情報取得を行った場合に表示される設定画面の一例を示している。
【００５０】
図５Ａ又は図５Ｂの画面は、印刷設定を行うためのユーザー操作をOS1054が検知し、OS1054によって、印刷に使用するプリンターに対応する印刷拡張アプリ10511が呼びされたことに応じて、表示される。OS1054によって起動された印刷拡張アプリ10511は、汎用プリンタードライバー1053のデータ保持部303に記憶された、印刷に使用するプリンターに対応する機能情報を取得する。そして、印刷拡張アプリ10511の詳細情報設定UI部302は、当該取得した情報に基づいて図５Ａ又は図５Ｂのような設定画面を表示する。
【００５１】
例えば、図５Ａの設定画面において、情報取得ボタン501がユーザー操作されることに応じて、上述した図１０の処理が実行される。そして、OS1054からのイベントを受信すると、詳細情報設定UI部302が図１０の処理で取得された機器固有（機器依存）の構成情報を用いて詳細設定画面の表示を更新する。これにより、図５Ａのような機器情報取得前の設定画面から、機器固有の設定も含む図５Ｂのような設定画面に切り替えることが可能となる。そして、図５Ｂのような設定画面で設定された印刷設定を用いて、汎用プリンタードライバー1053が、プリンター201を制御する。例えば、プリンター201に図５Ｂのような設定画面で設定された印刷設定に基づく印刷ジョブ等を送信する。
以上のように、汎用のプリンタードライバーにおいて、策定済みの規格では対応できない機種固有の機能に関する情報を取得できるようになる。
【００５２】
〔第２実施形態〕
第２実施形態では、サーバー上に機器固有の情報取得の定義が存在する場合について説明する。第１実施形態では機器固有の情報取得の定義をプリンター側に問い合わせる構成について説明したが、第２実施形態ではサーバーから定義を取得する構成について説明する。
【００５３】
図１１は、第２実施形態における機器固有の情報取得の定義の取得処理の一例を示すフローチャートであり、図１０のS1002及びS1003に置き換えて実行されるものとする。
なお、このフローチャートの処理は、クライアントコンピューター100のCPU101が補助記憶装置105等に格納されるプログラムをRAM1022にロードして実行することにより実現される。なお、本フローチャートに示す処理は、特に断らない限りOS1054から呼び出された汎用プリンタードライバー1053のプリンター能力取得部304において実行されるものとする。
【００５４】
S1101において、プリンター能力取得部304は、機器固有の情報取得定義の格納場所の取得を行う。この格納場所の情報は、予め汎用プリンタードライバー1053上に定義されていてもよいし、機器共通の定義上にファイルの参照が記載されていてもよい。なお、ベンダや機種により上記の格納場所が異なる場合には、プリンター201のベンダや機種等の情報を用いて、格納場所を取得してもよい。また、機器固有の情報取得の定義のファイルの格納場所は、インターネット上に配置されているか、共有ファイルとしてサーバー上にアップされているか、あるいはローカルストレージに配置されているものを用いてもよい。また、プリンター201上に設けられたファイル共有の仕組みを用いて格納されていても構わない。
【００５５】
次にS1102では、プリンター能力取得部304は、上記S1101で取得した機器固有の情報取得定義の格納場所に対する認証処理を行う。
次にS1103では、プリンター能力取得部304は、上記S1101で取得した機器固有の情報取得定義の格納場所から、機器固有の情報取得定義のファイルの取得を行う。なお、取得の際に、プリンター201のベンダや機種等の情報が必要な場合にはこれらを用いて取得するものとする。
以上の処理を行うことで、サーバー等に配置された機器固有の情報取得定義のファイルを取得することができる。
【００５６】
以上示したように、各実施形態によれば、各種プリンター共通に利用可能なベンダや機種に依存しない汎用プリンタードライバーにおいて、策定済みの規格では対応できない印刷装置の機種固有の機能に関する情報を取得することが可能となる。
【００５７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【００５８】
（その他の実施形態）
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００５９】
100    クライアントコンピューター
201    プリンター
302    詳細情報設定UI部
303    データ保持部
304    プリンター能力取得部
1053    汎用プリンタードライバー
1054    オペレーティングシステム（OS）
10511    印刷拡張アプリ
【図１】
2020004159.tif 000003
【図２】
2020004159.tif 000004
【図３】
2020004159.tif 000005
【図４】
2020004159.tif 000006
【図５Ａ】
2020004159.tif 000007
【図５Ｂ】
2020004159.tif 000008
【図６】
2020004159.tif 000009
【図７】
2020004159.tif 000010
【図８】
2020004159.tif 000011
【図９】
2020004159.tif 000012
【図１０】
2020004159.tif 000013
【図１１】
2020004159.tif 000014