IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-情報処理装置及びプログラム及び方法 図1
  • 特許-情報処理装置及びプログラム及び方法 図2
  • 特許-情報処理装置及びプログラム及び方法 図3
  • 特許-情報処理装置及びプログラム及び方法 図4
  • 特許-情報処理装置及びプログラム及び方法 図5
  • 特許-情報処理装置及びプログラム及び方法 図6
  • 特許-情報処理装置及びプログラム及び方法 図7
  • 特許-情報処理装置及びプログラム及び方法 図8
  • 特許-情報処理装置及びプログラム及び方法 図9
  • 特許-情報処理装置及びプログラム及び方法 図10
  • 特許-情報処理装置及びプログラム及び方法 図11
  • 特許-情報処理装置及びプログラム及び方法 図12
  • 特許-情報処理装置及びプログラム及び方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-01
(45)【発行日】2022-12-09
(54)【発明の名称】情報処理装置及びプログラム及び方法
(51)【国際特許分類】
   G06F 3/12 20060101AFI20221202BHJP
   H04L 67/00 20220101ALI20221202BHJP
【FI】
G06F3/12 325
G06F3/12 303
G06F3/12 332
H04L67/00
【請求項の数】 13
(21)【出願番号】P 2021039526
(22)【出願日】2021-03-11
(62)【分割の表示】P 2017016118の分割
【原出願日】2017-01-31
(65)【公開番号】P2021096869
(43)【公開日】2021-06-24
【審査請求日】2021-03-11
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】中川 雅司
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2016-058041(JP,A)
【文献】特開2012-226582(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09 - 3/12
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
プリンタードライバーのインストール完了に基づき、インストールされた前記プリンタードライバーに登録されたプリンターから該プリンターの構成情報を取得するオペレーティングシステムがインストールされたコンピューターに、プリンタードライバー及び前記プリンタードライバーに対応するグラフィカルユーザーインターフェース(GUI)を提供するアプリケーションのインストーラーであって、
前記コンピューターに、
前記プリンタードライバー及び前記アプリケーションをインストールするインストール工程と、
前記オペレーティングシステムから、前記プリンタードライバーのインストール完了の通知を受信する受信工程と、
受信した前記プリンタードライバーのインストール完了の通知に基づき、前記アプリケーションに前記プリンターから構成情報を取得させるための通知をする通知工程と、
を実行させることを特徴とするインストーラー。
【請求項2】
前記アプリケーションは、前記プリンタードライバーに登録された前記プリンターから前記プリンターの構成情報を取得する機能を有することを特徴とする請求項1に記載のインストーラー。
【請求項3】
前記アプリケーションは、前記通知工程における制御に基づき、追加のユーザー操作なしに前記プリンターの構成情報を取得することを特徴とする請求項1または2に記載のインストーラー。
【請求項4】
前記アプリケーションは、前記オペレーティングシステムにより取得された前記プリンターの構成情報が記憶されているファイルに、前記通知工程の通知に基づき取得した前記プリンターの構成情報を記憶することを特徴とする請求項1乃至3のいずれか一項に記載のインストーラー。
【請求項5】
プリンタードライバーのインストール完了に基づき、インストールされた前記プリンタードライバーに登録されたプリンターから該プリンターの構成情報を取得するオペレーティングシステムがインストールされたコンピューターの制御方法であって、
前記プリンタードライバー及び前記プリンタードライバーに対応するグラフィカルユーザーインターフェース(GUI)を提供するアプリケーションをインストールするインストール工程と、
前記オペレーティングシステムから、前記プリンタードライバーのインストール完了の通知を受信する受信工程と、
受信した前記プリンタードライバーのインストール完了の通知に基づき、前記アプリケーションに前記プリンターから構成情報を取得させるための通知をする通知工程と、
を有することを特徴とする制御方法。
【請求項6】
前記アプリケーションは、前記プリンタードライバーに登録された前記プリンターから前記プリンターの構成情報を取得する機能を有することを特徴とする請求項5に記載の制御方法。
【請求項7】
前記アプリケーションは、前記通知工程における制御に基づき、追加のユーザー操作なしに前記プリンターの構成情報を取得することを特徴とする請求項5または6に記載の制御方法。
【請求項8】
前記アプリケーションは、前記オペレーティングシステムにより取得された構成情報が記憶されるファイルに前記アプリケーションにより取得された構成情報を記憶することを特徴とする請求項5乃至7のいずれか一項に記載の制御方法。
【請求項9】
オペレーティングシステムがインストールされている情報処理装置であって、
プリンタードライバーと前記プリンタードライバーに対応するグラフィカルユーザインタフェース(GUI)を提供するアプリケーションをインストールするインストール手段と、
前記プリンタードライバーのインストールに基づき、前記オペレーティングシステムを用いて、前記プリンタードライバーに登録されたプリンターから構成情報を取得する第1の取得手段と、
前記プリンタードライバーのインストールに基づき、前記アプリケーションを用いて、前記プリンタードライバーに登録されたプリンターから構成情報を取得する第2の取得手段と、
を有し、
前記オペレーティングシステムは、前記プリンタードライバーのインストール完了を通知し、
前記第2の取得手段は、前記オペレーティングシステムからのインストール完了の通知に基づいて実行される
ことを特徴とする情報処理装置。
【請求項10】
前記インストール手段は、前記プリンタードライバーと前記アプリケーションをインストールするためのインストーラーを実行することで、前記プリンタードライバーと前記アプリケーションをインストールすることを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記オペレーティングシステムは、前記プリンタードライバーのインストール完了を前記インストーラーに通知し、
前記第2の取得手段は、前記オペレーティングシステムから通知を受け付けた前記インストーラーにより実行されることを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記第2の取得手段は、前記プリンタードライバーのインストールに基づき、ユーザーによる追加指示なしに前記プリンターから前記プリンターの構成情報を取得することを特徴とする請求項9乃至11のいずれか一項に記載の情報処理装置。
【請求項13】
前記第1の取得手段により取得された構成情報をファイルに記憶する第1の記憶手段と、
前記第2の取得手段により取得された構成情報を前記ファイルに記憶する第2の記憶手段と、を有することを特徴とする請求項9乃至12のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は周辺装置の構成情報の取得のための技術に関する。
【背景技術】
【0002】
従来、コンピューターにデバイスドライバーをインストールした上で、プリンターやスキャナー、カメラ、3Dプリンターなどの周辺装置が利用されている。例えば、コンピューター上で作成した文書や図といったファイルをアプリケーションから印刷する際には、コンピューターにインストールされたプリンタードライバーを使って描画データをページ記述言語に変換し、周辺装置としてのプリンターに送信するのが一般的である。またそのとき、用紙の種類や両面、カラー、給紙方法といった印刷設定は、アプリケーションが持つ印刷設定用のユーザーインターフェースか、プリンタードライバーが提供する印刷設定用のユーザーインターフェース(以降、UIとも呼ぶ)を使って設定を行う。
【0003】
また、Windows VISTA(登録商標)から導入された、周辺装置とコンピューターとの接続形態として、Web Services for Devices(WSDと呼ぶ)というものがある。このWSDでは、周辺装置に対応するデバイスドライバーをコンピューターにインストールした際に、その周辺装置と双方向通信を行い、周辺装置の能力情報やオプション構成情報などを含む構成情報を取得してデバイスドライバーに通知する仕組みがある。このオプション構成情報とは、周辺装置に対して、追加で設置できる機器や付加機能などのオプション構成に関する情報を指す。具体的には、プリンターの例では、印刷用紙を増加させるためのオプション給紙カセット装置や、印刷した用紙に対してホチキスやパンチができるようにするフィニッシャーオプション装置などのオプション機器や機能に関する情報である。また、Standard TCP/IPのポートでも、同様のオプション構成情報をSNMP(Simple Network Management Protocol)によって取得し、デバイスドライバーに通知する仕組みがある。この仕組みをAutoConfigという。AutoConfigについては、参考文献1等に記載されている。プリンタードライバーはこのような仕組みで取得したオプション構成情報を保存し、オプション構成に応じたGUIの表示や設定を行うことができる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-25755号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述のOSが提供するAutoConfigの仕組みでは、周辺装置のオプション構成情報が正しく取得できない場合がある。特に、コンピューターで所定バージョン以上のOSが実行され、周辺装置とコンピューターとがStandard TCP/IPのポートで接続している場合、ネットワーク環境によっては、オプション構成情報などの構成情報の取りこぼしが発生することがある。これはOSからの各オプション構成情報取得要求が非常に高速なUDP(User Datagram Protocol)によるリクエストであり、さらに周辺装置の応答が遅れても再送のリクエストも無いので、その情報は未取得とみなされるからである。OSの機能を介した構成情報の取りこぼしが発生すると、デバイスドライバーは、そのオプション構成がないものとして動作することが多い。例えば、給紙トレイや給紙カセットのオプション構成が取りこぼし対象になった場合、プリンタードライバーはそれらの給紙方法は使用できないとみなし、印刷設定のUIでもそれらの給紙方法は設定できなくしてしまう。その結果、プリンターにはオプションの給紙カセットが設置されているにも関わらず、印刷時にその給紙カセットからの給紙ができないという問題があった。このように、OSの機能に起因する構成情報の取りこぼしによって、デバイスドライバーで取りこぼした構成情報に係る機能を使用できないという問題が在る。
【0006】
また、プリンタードライバー及び前記プリンタードライバー向けのグラフィカルユーザーインターフェース(GUI)を提供するアプリケーションのインストーラーであって、コンピューターに、前記プリンタードライバー及び前記アプリケーションをインストールするインストール工程と、インストールされた前記アプリケーションと通信する通信工程とを実行させ、当該通信により、前記アプリケーションは、プリンターから該プリンターの構成情報を取得することを特徴とするインストーラーが知られていなかった。
【課題を解決するための手段】
【0007】
本発明は以下の構成を有する。すなわち、本願発明の一形態によれば、プリンタードライバーのインストール完了に基づき、インストールされた前記プリンタードライバーに登録されたプリンターから該プリンターの構成情報を取得するオペレーティングシステムがインストールされたコンピューターに、プリンタードライバー及び前記プリンタードライバーに対応するグラフィカルユーザーインターフェース(GUI)を提供するアプリケーションのインストーラーであって、
前記コンピューターに、
前記プリンタードライバー及び前記アプリケーションをインストールするインストール工程と、
前記オペレーティングシステムから、前記プリンタードライバーのインストール完了の通知を受信する受信工程と、
受信した前記プリンタードライバーのインストール完了の通知に基づき、前記アプリケーションに前記プリンターから構成情報を取得させるための通知をする通知工程と、
を実行させることを特徴とするインストーラーが提供される。
【発明の効果】
【0008】
本発明の一形態によれば、上述したOSの構成情報の取得機能に起因する構成情報の取りこぼしによる不具合を軽減できる。また、本発明の別の形態によれば、インストーラがインストール後のアプリケーションと通信することにより、プリンターの構成情報を取得できるようになる。また、本発明の別の形態によれば、構成情報の取りこぼしによる不具合を有するOSの構成情報の取得機能とは異なる構成情報の取得が可能となる。
【図面の簡単な説明】
【0009】
図1】本発明の実施形態に係る印刷処理システムのクライアントコンピューター、サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図
図2】本発明の実施形態に係る印刷処理システムの一般的なコンピューターを用いたシステムのブロック構成図
図3】本発明の実施形態に係る印刷処理システムの印刷システムのブロック構成図
図4】本発明の実施形態に係る印刷処理システムのインストーラーモジュールのブロック構成図
図5】本発明の実施形態に係る印刷処理システムのプリンタードライバーインストール時のプリンターからオプション構成情報を取得するシーケンス図
図6】本発明の実施形態に係る印刷処理システムのPreConfig処理を説明するフローチャート
図7】本発明の実施形態に係る印刷処理システムのAutoConfigが取得するオプション構成情報の定義の一例を示す図
図8】本発明の実施形態に係る印刷処理システムにおけるインストール時のPreConfigを行うかどうかの判定処理を説明するフローチャート
図9】本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時のPreConfigを行うかどうかの判定処理を説明するフローチャート
図10】本発明の実施形態に係る印刷処理システムの印刷設定画面起動時に表示するメッセージ画面の一例
図11】本発明の実施形を示す図態に係る印刷処理システムにおける印刷設定画面起動時の設定項目を有効化/無効化を判定する処理を説明するフローチャート
図12】本発明の実施形態に係る印刷処理システムの印刷設定画面の一例その1を示す図
図13】本発明の実施形態に係る印刷処理システムの印刷設定画面の一例その2を示す図
【発明を実施するための形態】
【0010】
[実施形態1]
<印刷処理システム及びその構成要素の構成>
図1は本発明の実施形態に係る印刷処理システムのクライアントコンピューター、サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。本実施形態のプリントシステムは、1又は複数のクライアントコンピューター100(例えば、ユーザー毎)、1又は複数のサーバー2000(例えば、階毎に設置)、1又は複数のプリンター3000(例えば、階毎に設置)で構成される。さらに、上記クライアントコンピューター100、サーバー2000、プリンター3000がローカルエリアネットワーク4000を介して接続される構成となっている。ネットワーク4000にはPAN(Personal Area Network)、LAN(Local Area Network)などの小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。なお本実施形態では、プリンター或いは印刷装置は、プリンターを含むデバイスを指しており、たとえば多機能複写機(MFP)もプリンター或いは印刷装置に含まれる。
【0011】
図2は本発明の実施形態に係る印刷処理システムの一般的なコンピューターすなわち情報処理装置を用いたシステムのブロック構成図である。ここでは、クライアントコンピューター100の構成を説明しているが、特に断らない限り、サーバー2000も同様の構成である。CPU101は主記憶装置102のROM1021、RAM1022あるいは補助記憶装置105に格納されたプログラムに従って、PC100全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105には、アプリケーション1051やインストーラー1052、プリンタードライバー1053、オペレーティングシステム1054等の各種プログラムが格納される。なお、これ以降アプリケーション1051をアプリ、プリンタードライバー1053をドライバー、オペレーティングシステム1054をOSと表記することもある。キーボード108やマウスまたはタッチパネルなどに代表されるポインティングデバイス(マウス)109などの入力機器は、入力I/F103を通じてPC100に接続される。出力I/F104にはモニター110などの出力デバイスが接続され、プログラムの指示に従いモニター上にユーザインターフェース(UI)を表示する。これらの入力・出力機器を通してユーザーからのプログラムへの操作を受け付ける。通信I/F106は、ネットワーク4000に接続されており、PC100の外部機器、例えば、図1のサーバー2000やプリンター3000との通信が可能である。上記のモジュールは、共通データシステムバス107で接続され、各モジュール間でデータのやり取りが可能である。プログラム1051~1054は、不図示のCD-ROMやUSBメモリーを介して補助記憶装置105に追加可能である。更にネットワーク4000を経由して補助記憶装置105に追加することも可能である。なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【0012】
<印刷システムのソフトウェア構成>
図3は本発明の実施形態に係る印刷処理システムの印刷システムのブロック構成図である。
印刷システムはXPSファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。印刷システムは、オペレーティングシステム1054上で動作している。プリントマネージャ218、GDItoXPS変換モジュール207、フィルタパイプラインマネージャ212、ポートモニター219はオペレーティングシステム1054に含まれるモジュールである。GDIとはプリンターの印刷イメージの生成を行うグラフィックスコンポーネントであり、XPSは、電子文書を記述するためのXMLベースのフォーマットである。XPSは、マイクロソフト社のウインドウズ(登録商標)で、GDIに代えて採用されたものであり、GDIからXPSへのデータの互換性を維持するためにGDItoXPS変換モジュール207が用意されている。本実施形態では、XPSがネイティブの形式であり、GDIデータはXPSデータに変換されてから印刷される。GDItoXPS変換モジュール207は、GDIで描画されたデータをXPSデータへ変換する機能を持つ。フィルタパイプラインマネージャ212は、XPS印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニター219は、プリンターにアクセスするプリントマネージャ218とプリンタードライバー間で通信を制御することができ、プリンタードライバー1053はポートモニター219を経由して印刷処理を行う。また、プリントマネージャ218はポートモニター219を通して、プリンター3000と通信しAutoConfigを行う。本実施例では、周辺装置に対応するデバイスドライバーのGUI提供などの補助機能をもつ関連アプリケーションが周辺装置から構成情報を取得する取得機能をさらに持つ。具体的には、この関連アプリケーションの1例であるプリンターエクステンション210が、プリントマネージャ218やポートモニター219を経由せずに、プリンター3000と直接通信し、プリンター3000のオプション機器の構成を示すオプション構成情報を取得する経路を持つものとする。図3では、GDItoXPS変換モジュール207、コンフィギュレーションモジュール208、フィルタパイプラインマネージャ212は、プリンタードライバー1053に含まれているが、オペレーティングシステム1054から提供されているプリンタードライバー1053のモジュールという位置づけである。コンフィギュレーションモジュール208は、プリンタードライバー1053が提供する印刷設定編集モジュール2081を使用して印刷設定情報を編集することができる。印刷設定編集モジュール2081は、Constraint Scriptと呼ばれるスクリプト言語で記載され、プリンタードライバーが提供するプロパティバッグ2082、2083を利用して印刷設定情報を編集する。プロパティバッグとは、プリンターの機種依存情報として利用するためのDriverPropertyBag2082と呼ばれるデータ群と、プリントキューに紐づいたQueuePropertyBag2083と呼ばれるデータ群が保持された領域を指す。
【0013】
DriverPropertyBag2082は、ドライバーパッケージ内に存在するプリンターの機種依存データであり、プリンタードライバーインストール後にOS内の特定の領域に読み取り専用としてデータ群が保持される。
【0014】
QueuePropertyBag2083は、Key-Valueペアのxml定義ファイルをOSに登録することで利用することが可能であり、Valueに関して一定の権限上で編集が可能である。また、印刷設定定義ファイルであるGPDにもQueuePropertyBag2083の定義を記載することができる。
【0015】
プリンタードライバー1053とフィルタパイプラインマネージャ212の各フィルタは、図1の補助記憶装置105にプリンタードライバー1053として格納されている。GDI印刷アプリケーション201とXPS印刷アプリケーション202は、図1の補助記憶装置105にアプリケーション1051として格納されている。GDI印刷アプリケーション201およびXPS印刷アプリケーション202はそれぞれ、GDIおよびXPS形式で印刷データを作成するアプリケーションであり、例えば文書処理アプリケーションなどがある。ユーザーはキーボード108やタッチパネル/マウスなどに代表されるポインティングデバイス109などといった入力装置を使用して、出力装置のモニター110に映し出されたGDI印刷アプリケーション201(以下、GDIアプリと略す)、もしくはXPS印刷アプリケーション202(以下、XPSアプリと略す)から印刷処理を実行する。印刷処理は、プリンターの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。なおXPS印刷アプリケーションおよびGDI印刷アプリケーションをまとめて印刷アプリケーションと呼ぶ。
【0016】
まずは、印刷アプリケーションの画面から、印刷したいプリンター3000の選択をする。ユーザーから見るとプリンター3000の選択は、印刷を実行するプリンター3000に対応したプリンタードライバー1053を選択することと同義である。プリンタードライバー1053の選択には、不図示のプリントキューを利用する。
【0017】
次に印刷設定を作成する。印刷設定はまず、アプリケーション1051が印刷設定用のメモリー領域をRAM1022に確保する。そして、アプリケーション1051は、選択されたプリンタードライバー1053のコンフィギュレーションモジュール208を呼び出して、印刷設定データを作成して格納する。GDIアプリ201では印刷設定データとしてバイナリのDEVMODE構造体203を用い、XPSアプリ202ではマークアップ言語のXMLで記載されたPrintTicket204を用いる。DEVMODE構造体203は、オペレーティングシステム1054が定義する標準領域とプリンタードライバー1053が独自で定義する拡張領域を持つ。PrintTicket204は、XML形式で記述された印刷設定情報で、標準領域と拡張領域は名前空間によって記載が分かれている。印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール208は、機種依存ファイル209を利用して、印刷設定データを作成する。このDEVMODE構造体203もしくはPrintTicket204が印刷設定を保持しており、アプリケーションが直接、値を書き換えることで印刷設定を変更する。機種依存ファイル209は、GPDと呼ばれる印刷設定定義ファイルを指し、テキストベースで記載されている。またこの機種依存ファイル209である印刷設定定義ファイルには、プリンターの能力やプリンターのオプション構成、プリントキューに紐づくQueuePropertyBagの定義を記載することができる。
【0018】
これら禁則情報も含めたプリンター3000に依存した専用の印刷設定は、プリンターエクステンション210が持つユーザーインターフェースで設定する。プリンタードライバー1053は、ユーザーインターフェースの設定に従い、DEVMODE構造体203もしくはPrintTicket204のプリンター3000に依存した設定を変更する。PrintTicket204は印刷設定がXML形式で記述されているので、XPSアプリ202がすべての設定値を直接変更して書き換えることは容易だが、プリンターエクステンション210のユーザーインターフェースを使って設定変更してもかまわない。このプリンターエクステンション210は、プリンタードライバー1053の一種ではあるが、プリンタードライバー1053とは別のアプリケーションとしてインストールが行われる。
【0019】
印刷設定は文書等の印刷のたびに作成するが、プリンター3000のオプション機器構成や、ユーザーごとの環境設定など保持しておきたい設定は、プリンターエクステンション210がオペレーティングシステム1054のレジストリデータベース205に保存する。レジストリデータベース205が使用できないときは、プリンターエクステンション210は、アプリケーションデータ220に設定を保存する。印刷設定のデフォルト値はオペレーティングシステムのプリントマネージャ218が、レジストリデータベース205に保存する。レジストリデータベース205や、アプリケーションデータ220は、補助記憶装置105に保存される。
【0020】
印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。GDIアプリ201から印刷する場合は、OSのモジュールであるGDItoXPS変換モジュール207に描画データが送られ、XPS形式に変換されてXPSスプールファイル206が作成される。このときGDItoXPS変換モジュール207はコンフィギュレーションモジュール208を呼び出し、印刷設定をDEVMODE構造体203からPrintTicket204に変換する。変換する際には、コンフィギュレーションモジュール208によって、印刷設定編集モジュール2081が使用される。
【0021】
一方、XPSアプリ202から印刷する場合は、XPSファイルをXPSアプリ自身が生成するのと、オペレーティングシステム1054がXPSアプリからの描画命令に応じてXPSファイルを生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル206を生成する。
【0022】
GDIアプリ201又はXPSアプリ202から印刷の指示が行われることでXPSスプールファイル206が生成されたら、プリントフィルタパイプライン211に処理が渡される。プリントフィルタパイプライン211は複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル216でフィルタの数や順番を制御する。本実施形態ではプリンター3000と通信する機構を持つ通信フィルタ213、製本やスタンプのレイアウト処理を行う機構を持つレイアウトフィルタ214、XPSスプールファイル206をレンダリングしてPDL(PageDescriptionLanguage)に変換する機構を持つレンダラフィルタ215で構成される。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ218で管理され、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンター3000が印刷できる状態になったら、キューに登録した順にポートモニター219を通して送信する。このようにして、アプリケーションからの印刷データをPDLデータに変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。
【0023】
<インストーラーモジュールの構成>
図4は本発明の実施形態に係る印刷処理システムのインストーラー1052のブロック構成図の一例である。ブロック図の基本構成は、以下の通りである。
・ネットワーク探索モジュール10520
・ドライバーインストールモジュール10521
・ドライバー更新モジュール10522
・プリンターキューインストールモジュール10523
・PreConfigモジュール10524
これらのソフトウェアモジュールは、補助記憶装置105に格納されており、ユーザーの要求や、他のシステムの要求に応じて、補助記憶装置105からRAM1022にロードされ、CPU101で実行される。ネットワーク探索モジュール10520は、IPv4探索部400、IPv6探索部401、WSD探索部402で構成されている。ネットワーク探索モジュール10520とは、ネットワーク4000で繋がっているプリンターを探索する機能を搭載したモジュールである。探索するプロトコルはIPv4、IPv6、WSDがあり、IPv4探索部400、IPv6探索部401、WSD探索部402それぞれが、ユーザーの指示に従い、それぞれのプロトコルでプリンター3000と通信し、通信できたプリンター全てをリストする。探索した結果のリストを、それぞれIPv4探索部400は、IPv4探索結果リスト403に、IPv6探索部401は、IPv6探索結果リスト404に、WSD探索部402は、WSD探索結果リスト405に保存する。探索対象のデバイスは一般的なデバイスであるが、本例では特にプリンターが探索の対象となる。
【0024】
ドライバーインストールモジュール10521は、デバイスドライバーをインストールするモジュールであり、たとえばインストール指示に応じてデバイスドライバーインストールすることができる。ドライバー更新モジュール10522は、インストール済みのドライバーを、それがリバイスされたことを示す情報などに応じて更新する。本実施形態では、ネットワークから探索したデバイス特にプリンターに対して、対応するドライバーをインストールするが、そのインストール処理はプリンターキューインストールモジュール10523により行われる。
【0025】
プリンターキューインストールモジュール10523は、USBプリンターインストール部406、ネットワークプリンターインストール部407、WSDプリンターインストール部408で構成されている。USBプリンターインストール部406は、予め対象のプリンタードライバー1054をインストールしておき、その後、USBプラグアンドプレイインストールを行う。プラグアンドプレイインストールとはクライアントコンピューター100にプリンター3000を接続した際にOS1055が、プリンタードライバー1054のインストールと設定とを自動的に行う仕組みのことである。ユーザーは手順に従って、プリンター3000とクライアントコンピューター100とをケーブルで接続するだけでそのプリンターが利用可能となるので、ユーザビリティ(使い勝手)を向上させる技術の1つとなっている。WSDポートの場合もプラグアンドプレイインストールがあり、こちらの場合はケーブルを接続する必要もなく、手順に従って探索されたプリンターの一覧から所望するプリンター3000を選択するだけで利用可能となる。PreConigモジュール10524は、ドライバー呼び出し部410があり、プリンターキューインストールが完了した後に、必要に応じてインストールしたプリンタードライバー1053に対し、オプション構成情報取得を行うように指示を行う。
【0026】
<オプション構成情報の取得手順>
図5は本発明の実施形態に係る印刷処理システムのプリンタードライバーインストール時において、プリンターからオプション構成情報を取得するシーケンス図である。プリンターがまずインストーラー1052がOS1054に対しインストール指示を行う(S501)。インストール指示は、たとえば、プリンターの探索結果に応じて、USBプリンターインストール部406、ネットワークプリンターインストール部407、WSDプリンターインストール部408により出される。OS1054はインストーラー1052からインストール指示を受け取りプリンタードライバー1053のインストール処理を実施し、その処理が完了すると、インストーラー1052に対しインストール完了通知処理を行う(S502)。プリンタードライバー1053のインストールに際して、対応するプリンターエクステンション210が未インストールの場合には、ドライバーインストールに伴いプリンターエクステンション210もインストールされることになる。それと同じタイミングでプリンター3000に対しオプション構成情報の取得要求を行う(S503)。プリンター3000は、OS1054からオプション構成情報の取得要求を受け取ると、現在のオプション構成情報を調べて、その結果を応答情報としてOS1054に送付する(S504)。OS1054は、プリンター3000からオプション構成情報の取得処理が完了すると、そのオプション構成情報を、インストールしたプリンタードライバー1052のQueuePropertyBag2083に書き込む(S505)。これまでの一連の処理をAutoConfigという。
【0027】
一方、インストーラー1052はOS1054からインストール完了通知を受け取ると、該当するプリンタードライバー1053に対し、構成情報取得要求(または指示)を行う(S506)。本実施例では、プリンターエクステンション210が構成情報の取得機能を有するため、プリンターエクステンション210に対して、直接、構成情報の取得要求(または指示)を行うことも可能である。プリンタードライバー1053は、インストーラー1052から構成情報取得要求を受け取るとプリンター3000に対し、プリンターエクステンション210と連携して、オプション構成情報の取得要求を行う(S507)。プリンター3000は、プリンタードライバー1053からオプション構成情報の取得要求を受け取ると、現在のオプション構成情報を調べて、その結果を応答情報としてプリンタードライバー1053に送付する(S508)。プリンタードライバー1053は、オプション構成情報の取得処理が完了すると、その情報をQueuePropertyBag2083に登録する(S509)。インストーラー1052がプリンターエクステンション210に構成情報の取得要求を行った場合には、プリンターエクステンション210が、プリンターからの取得情報をQueuePropertyBag2083に登録する。
ステップS506からここまでの一連の処理を、OS1054がS503~S504で行うAutoConfig(オートコンフィグあるいは自動構成とも呼ぶ。)に対し、PreConfig(プレコンフィグ)という。AutoConfigは、OS1054に含まれるプリントマネージャ218が制御するオプション構成情報の取得処理なので、取得するオプション情報はベンダー側で定義しているが、取得方法についてはOS1054に依存する。接続ポートがWSDポートの場合、プリンターとの1回の通信で全てのオプション構成情報を取得できるのに対して、Standard TCP/IPポートだった場合、SNMPで取得するので、オプションの数に応じて、数回から数十回の複数回の通信でプリンターからオプション構成情報を取得できる。その複数回の通信は、環境によっては、OS1054から0.1ミリ程度の間隔(これを第1の時間間隔と呼ぶ)で行われるので、プリンター3000側で処理が追い付かず、応答が間に合わないことがある。しかもSNMPはUDPベースであり応答確認が行われない。その結果オプション構成情報の取りこぼしが発生する。
【0028】
一方、PreConfigは、プリントマネージャ218を介さず、プリンター3000との通信を全てドライバー1053が制御するので、プリンター3000との通信回数を少なくしたり、通信間隔をたとえば第1の時間間隔よりも長い時間間隔(第2の時間間隔)としたりすることが可能である。さらにアプリケーションのレベルでオプション構成毎に構成情報の取得に成功したかどうかを判定し、失敗している場合は再度同じオプション構成情報取得を試みることも可能である。その結果、AutoConfigに比べてオプション構成情報の取りこぼしが少なくなる。あるいは、通信に物理的な障害等がない限りは取りこぼしをなくすこともできる。
【0029】
このように図5の手順によって、たとえOSがAutoConfigによってオプション構成情報を取得し損ねることがあっても、PreConfigによってオプション構成情報を取得できる。なお図5のシーケンスでは、プレコンフィグをオートコンフィグの後で行うようにしている。このためには、たとえば、インストーラー1052がインストール完了通知を受信した後、オートコンフィグによる構成情報の書き込みの完了によるオートコンフィグ全体の取得処理の完了を、プリンタードライバー1053あるいはOS1054に対するポーリングにより判定してもよい。あるいは、プリンタードライバー1053が、プレコンフィグ要求を受信した場合に、オートコンフィグによるオプション構成情報の書き込み(S505)の完了までその処理を遅延させ、S505が完了した後、プリンターに対して構成情報の取得要求(S507)を行ってもよい。あるいは、プリンタードライバー1053は、インストール完了通知に応じたプレコンフィグ要求の受信後に受けたオートコンフィグによるオプション構成情報の書き込みを無視するように構成してもよい。
【0030】
<PreConfig処理>
図6は本発明の実施形態に係る印刷処理システムのPreConfig処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンターエクステンション210が行う。プリンターエクステンション210は、補助記憶装置105に記録されており、RAM1022にロードされ、CPU101によって実行される。
【0031】
本処理は、図5で説明した通り、インストール処理の完了通知(S502)をOS1054から受け取ったインストーラー1052がプリンタードライバー1053に構成情報取得を要求した際に発生し、プリンタードライバー1053の関連モジュールの1つであるプリンターエクステンション210により実現される。すなわちステップS506による要求に応じて実行される。
【0032】
まず、プリンター3000と接続している接続ポートの種類を判別する(S601)。接続ポートを判別する理由は、接続ポート毎に、OS1054が行うAutoConfig処理が異なるため、それぞれの処理で取得できる情報に差があるため、PreConfigの処理も切り替えが必要であるためである。接続ポートがWSDポートの場合(S601でWSDポートと判定した場合)、オプション構成情報を含むWSD Schemaの一括取得を行う(S602)。取得したWSD Schemaから、必要なオプション構成情報を抜き出し、QueuePropertyBag2083に登録する(S603)。QueuePropertyBag2083への構成情報の登録による保存処理は、プリンターエクステンション210ではなくその取得結果を受けたプリンタードライバー1053が実行してもよい。
【0033】
なお、WSDとはWeb Services for Devices(またはWeb Services on Devices)の略称である。接続ポートがWSDポートの場合、WSD Schemaは利用可能であるので、プリンター側の設定が、WSD Schemaが利用できない設定であることを理由としてWSD Schemaの取得に失敗することはない。しかしながら通信環境に起因して失敗することはあり得ることから、PreConfigにおいてオプション構成情報の再取得を試みている。したがって図6では省略しているが、ステップS602の直後に、WSD Schemaの一括取得に成功したか否かを判定し、成功でなければリトライするように構成してもよい。
【0034】
ポート判別判定(S601)で、Standard TCP/IPポートだった場合(S601でStandard TCP/IPポートと判定した場合)、まずはWSD Schemaの一括取得を行う(S604)。この処理はS602と同じである。WSDポート接続時では、プリンター側の設定が、WSD Schemaが利用できない設定であることを理由としてWSD Schemaの一括取得が失敗することはない。しかし、Standard TCP/IPポート接続時では、プリンター側の設定により、WSD Schemaの取得に失敗することがあるので、オプション構成情報取得が成功したかどうかを判定する(S605)。この判定は、たとえば応答の内容から行うことができる。WSD Schemaの取得に失敗した場合には、ポートモニター219を経由してプリンター300と通信を行い、オプション構成情報を取得する。これはOSによるAutoConfigと同様である。しかし特にオプション構成が多い場合、OS1054からの多くの問い合わせが繰り返し行われて、それぞれの問い合わせに対して、プリンターが正しくの応答できず、そのためにAutoConfigは失敗している可能性がある。その場合に、オプション構成情報の取得に失敗したこととなる。一方、プリンターが、WSD Schemaが利用できるよう設定されていれば、WSD Schemaの一括取得は成功する。
【0035】
そこでWSD Schemaの一括取得が成功している場合(S605のYes)は、WSDポート接続時同様、取得したWSD Schemaから、必要なオプション構成情報を抜き出し、QueuePropertyBag2083に登録する(S606)。
【0036】
一方、プリンターの設定に起因してWSD Schemaの一括取得が失敗した場合(S605のNo)、ステップS607に分岐する。この場合には、上述したようにAutoConfigにおいてもオプション構成情報の取得に失敗している可能性がある。そこでその場合には、ポートモニター219を経由してプリンター3000と通信を行い、一定の時間間隔をおいたのち(S607)、必要な情報すなわちオプション構成情報の問い合わせを行う(S608)。必要な情報については、予め用意されており、それに従って問い合わせを行う。この通信経路は、OS1054によるAutoConfigと同じだが取得する方法が異なる。OS1054によるAutoConfigでは、全てのオプション情報を一気に取得しようとするが、プリンターエクステンション210によるPreConfigでの問い合わせは、一つ一つの項目についての情報を一定時間の間隔をあけてプリンターに問い合わせする。この一定間隔とは、プリンター3000がオプション構成情報の要求に対して確実に応答できる間隔(たとえば10ms~100ms程度)のことを指し、こうすることで情報の取りこぼしを軽減させることができる。また、プリンターエクステンション210は、1項目ずつでなくても、プリンター3000が処理可能な項目数分を、1度の問い合わせで要求することも可能である。全ての情報を取得できたら(S609のYes)、取得した構成情報をQueuePropertyBag2083に登録する(S610)。ステップS609において、リクエストしたオプション設定情報の項目が応答されなければ、そのリクエストを再送するようにしてもよい。また全項目についてリクエストした後、取得漏れがあれば、漏れた項目についてリクエストを再送しても良い。
【0037】
なおポート判別判定(S601)で、USBポートだった場合(S601でUSBポートと判定した場合)、AutoConfigによりオプション構成情報の取得に成功していると考えられるので、PreConfigにおいては特に何もしていない。
【0038】
このように、リクエストの時間間隔を、応答が期待できる適切な値にすることで、1回のリクエストにより対応する構成情報の取得がしやすくなる。さらに、必要な構成情報がすべて取得できたか確認することで、構成情報を確実に取得できる。以上の手順を用いることにより、Standard TCP/IPポート接続時にAutoConfigでオプション構成情報の取りこぼしが発生しても、再度PreConfigを行うことにより、オプション構成情報の取りこぼしが発生しにくくなる。
【0039】
[実施形態2]
実施形態1の方法では、AutoConfigの後に、PreConfigを行うことによってオプション構成情報取得の取りこぼしを抑止していた。ただし、実施形態1では、全てのプリンターに対し、必ずPreConfigを行うようになっているので、AutoConfigで全てのオプション構成情報の取得が成功していてもPreConfigを実施してしまう。これは単に同じことをしているだけなので、インストール時のパフォーマンスに影響する。インストール対象が複数であれば、その台数分パフォーマンスが劣化する。
【0040】
上記問題を解決する方法として、本実施例では、AutoConfigの後に、取得対象のオプション構成情報が全て取得できているかどうかを判断して、一つでも取得に失敗している場合のみ、PreConfigを実施する。実施形態1で説明した通りAutoConfigは、OS1054で制御されているので、取得処理時に取得に成功したかどうかを判断するのは難しい。そこで、AutoConfigで取得するオプション構成情報の結果の値に「未取得」の値を追加する。通常、オプション構成情報は、「なし」か「あり」かの値を定義する。AutoConfigでは、プリンター3000から取得した情報を元に、上記「なし」か「あり」かの値を設定する。この際、AutoConfigで取得できなかったオプション構成情報は、デフォルトの値に変換して設定する。つまり、大抵は「なし」の値に変換される。そこで、オプション構成情報の定義に「なし」、「あり」の他に「未取得」に相当する値を定義し、かつデフォルトの値をこの「未取得」にしておく。図7は、本実施形態に係る印刷処理システムのAutoConfigが取得するオプション構成情報の定義の一例である。本例では、カセット3の構成情報の定義に、「なし」を意味する「NotInstalled」と「あり」を意味する「Installed」の他に「未取得」を意味する「Unacquired」を追加定義する(710)。かつ、デフォルト値(*DefaultOptionに定義する値)をUnacquiredに設定する。こうすることで、AutoConfigがオプション構成情報時に取得できなかったオプション構成情報取得は「Unacquired」が設定されることになる。
【0041】
図8は本発明の実施形態に係る印刷処理システムにおけるインストール時のPreConfigを行うかどうかの判定処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー1053内に構成されているプリンターエクステンション210が行う。プリンターエクステンション210は、補助記憶装置105に記録されており、RAM1022にロードされ、CPU101によって実行される。
【0042】
本処理は、図5で説明した通り、インストール処理の完了通知(S502)をOS1054から受け取ったインストーラー1052がプリンターエクステンション210に構成情報取得を要求した際に発生する。まず、AutoConfigの取得結果を調べる(S801)。オプション構成情報取得結果が「未取得」の場合(S802のYes)、PreConfigを実施する(S804)。PreConfigに関しては実施例1の図6と同等の処理なので説明は省略する。オプション構成情報が取得済みであることを全てのオプション構成情報について調べて(S802、S803)、全てのオプション構成情報が取得済だった場合(S803のYes)、PreConfigは行なわない。一方、ひとつでも未取得のオプション構成情報があればPreConfigを実施する。
【0043】
以上の手順を用いることにより、AutoConfigのオプション構成情報取得状況により、PreConfigを行うかどうかを判断するので、AutoConfigで全てのオプション構成情報が正しく取得できている場合は、パフォーマンスの向上につながる。
【0044】
[実施形態3]
実施形態2では、インストーラー1052がプリンタードライバー1053のインストール時に、AutoConfigの取得結果をもとにPreConfigを行うかどうかを自動で判断していた。ただしオフィス環境によっては、クライアントコンピューター100にプリンタードライバー1053を事前にインストールしておいて、設置後にプリンター3000と繋げて運用することもある。その場合、インストーラー1052ではオプション構成情報は取得できないまま、インストールが完了してしまう。上記問題を解決する方法として、本実施形態では、印刷設定画面起動時に取得対象のオプション構成情報が全て取得できているかどうかを判断して、一つでも取得に失敗している場合のみ、PreConfigを実施する。
【0045】
図9は本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時のPreConfigを行うかどうかの判定処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー1053内に構成されているプリンターエクステンション210が行う。プリンターエクステンション210は、補助記憶装置105に記録されており、RAM1022にロードされ、CPU101によって実行される。
【0046】
本処理は、印刷アプリケーション1051から印刷を行う際に印刷設定画面を起動した際に発生する。ステップS901~ステップS903は、実施例2で説明したステップS801~S803と同等なので説明は省略する。オプション構成情報取得結果が「未取得」の場合(S902のYes)、オプション構成情報取得結果に「未取得」があったことを示すメッセージを表示する(S904)。表示するメッセージの具体的な例を図10に示す。ただし、これに限定されるものではない。ユーザーによって本メッセージ画面1000の[はい]ボタンが押下された場合(S905のYes)、PreConfigを実施する(S906)。PreConfigに関しては実施形態1の図6と同等の処理なので説明は省略する。本メッセージ画面1000の[いいえ]ボタンが押下された場合(S905のNo)、PreConfigは行なわない。
【0047】
以上の手順を用いることにより、プリンタードライバーのインストール時にオプション構成情報取得が失敗した場合でも、印刷画面起動時に自動的に判断して、ユーザーの判断のもと、オプション構成情報取得ができるようになる。
【0048】
[実施形態4]
実施形態3では、印刷設定画面起動時にAutoConfigの取得結果をもとにPreConfigを行うかどうかを判断し、必要な場合、その旨をユーザーに通知し、ユーザーの判断のもとでオプション構成情報取得が行えるようにした。ただし、該当するオプション構成情報がプリンター3000に定義されていない場合、プリンタードライバー1053で構成情報取得を行っても取得に失敗する。従来情報取得に失敗したオプション構成は、「なし」と判断して動作しているが、そうなった場合その機能がプリンターに設置されているにも関わらず使用できないという問題があった。
【0049】
上記問題を解決する方法として、本実施例では、オプション構成情報が「未取得」に該当する結果であった場合、「あり」に相当する動作をする。
【0050】
図11は本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時の設定項目を有効化/無効化を判定する処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー1053内に構成されているプリンターエクステンション210が行う。プリンターエクステンション210は、補助記憶装置105に記録されており、RAM1022にロードされ、CPU101によって実行される。
【0051】
本処理は、印刷アプリケーション1051から印刷を行う際に印刷設定画面を起動した際に発生する。まず、該当する印刷設定項目に関連するオプション構成情報の結果を調べる(S1101)。オプション構成情報の結果が「なし」に相当する値だった場合(S1102のなし)、使用できる機能を無効化する(S1103)。オプション構成情報の結果が「あり」に相当する値だった場合(S1102のあり)、使用できる機能を有効化する(S1104)。オプション構成情報の結果が「未取得」に相当する値だった場合(S1102の未取得)、使用できる機能を有効化する(S1105)。
【0052】
例えば、図12のようにオプション構成情報取得をした結果、「排紙オプション」12001のオプション構成情報が失敗し「未取得」になった場合、図13の印刷設定画面における「ステイプル」13001の選択項目は、従来であれば「しない」のみの選択肢になっている。しかし、本実施形態では、「排紙オプション」12001は、未取得の場合には「あり」に相当して動作するので、ステイプル13001は「しない」の他に「する」、「する(針なしとじ)」の選択肢もあり、それらも選択可能の状態にする。
【0053】
以上の手順を用いることにより、オプション構成情報に失敗した場合でも、情報が取得できていない状態と判断した場合、該当するオプション構成を「あり」として動作することにより、従来その機能を使用できるようになる。
【0054】
[その他の実施例]
以上、デバイスドライバーの一例であるプリンタードライバーのインストール時などにおけるプリンターからの構成情報の取得に関する例を説明した。しかし、プリンター以外の周辺装置であっても、オプション構成を有しているデバイス(スキャナーやカメラ、3Dプリンターなど)であれば、本発明は適用可能である。つまり、上記実施形態と同様にして、構成情報をデバイスから取得し、その構成情報に基づいて、デバイスドライバーを用いてオプション構成を利用し、また、ユーザーに設定を行わせることができる。
【0055】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0056】
100 クライアントコンピューター、3000 プリンター、1051 アプリ、1052 インストーラー、1053 プリンタードライバー、1054 オペレーティングシステム、210 プリンターエクステンション、2101 双方向通信モジュール、218 プリントマネージャ、219 ポートモニター
2083 QueuePropertyBag、10524 PreConfigモジュール、410 ドライバー呼び出し部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13