(57)【特許請求の範囲】
【請求項１】
印刷ドライバを生成するためにクライアント装置のオンデマンド印刷ドライバアプリケーションが実行する方法であって、
印刷装置の現在の機能を特定するコンフィギュレーションデータを前記印刷装置に要求するステップと、
前記印刷装置から前記コンフィギュレーションデータを受信するステップと、
複数の印刷装置に共通する特定の一群の機能と、前記コンフィギュレーションデータで指定されている前記印刷装置の現在の機能との双方に基づいて、印刷ドライバデータファイルを生成するステップと、
前記印刷ドライバデータファイルと、前記複数の印刷装置に共通しているユーザインターフェースモジュールと、前記複数の印刷装置に共通しているレンダリングモジュールとを含む、前記印刷装置の印刷ドライバを生成するステップと、
を有し、前記印刷ドライバを生成するステップにおいて、前記印刷ドライバをインストールするのに使用されるデータ及び命令を含むＩＮＦファイルを生成し、該ＩＮＦファイルを印刷ドライバに含め、
前記ＩＮＦファイルを生成する場合において、
一群の文字列をコンフィギュレーションファイルからコピーし、前記特定の一群の機能のデフォルト値を示すデフォルトの一群の文字列の値と共に前記一群の文字列を前記ＩＮＦファイルに格納し、
前記コンフィギュレーションデータに基づいて、１つ以上の前記デフォルトの文字列の値を、前記印刷装置の特性を反映した値と共に更新する、方法。
【請求項２】
前記コンフィギュレーションデータで指定された前記印刷装置の前記現在の機能及び前記特定の一群の機能を実行するための一群のコマンドを生成し、該一群のコマンドを前記印刷ドライバデータファイルに含めるステップを更に有する請求項１記載の方法。
【請求項３】
前記ＩＮＦファイルが、前記印刷ドライバに含まれるファイルのリストを有する、請求項１記載の方法。
【請求項４】
前記印刷ドライバデータファイルを生成するステップが、
前記複数の印刷装置に共通する特定の一群の機能に対応する一群の共通のコマンド文字列を、印刷ドライバデータファイルテンプレートから抽出するステップと、
前記一群の共通のコマンド文字列を、前記印刷ドライバデータファイルに含めるステップと、
を含む、請求項１記載の方法。
【請求項５】
前記共通する特定の一群の機能に含まれていない１つ以上の印刷装置の機能について、
１つ以上の共通のコマンド文字列中の１つ以上のコマンド文字列を、前記１つ以上の機能の暫定的なコマンド文字列として使用するステップと、
前記１つ以上のコマンド文字列を前記印刷ドライバデータファイルに格納し、前記印刷ドライバデータファイルの中で、前記１つ以上のコマンド文字列が暫定的なコマンド文字列であることを指示するステップと、
を有する請求項４記載の方法。
【請求項６】
印刷ドライバを生成するためにクライアント装置のオンデマンド印刷ドライバアプリケーションに処理方法を実行させるコンピュータプログラムであって、前記処理方法は、
印刷装置の現在の機能を特定するコンフィギュレーションデータを前記印刷装置に要求するステップと、
前記印刷装置から前記コンフィギュレーションデータを受信するステップと、
複数の印刷装置に共通する特定の一群の機能と、前記コンフィギュレーションデータで指定されている前記印刷装置の現在の機能との双方に基づいて、印刷ドライバデータファイルを生成するステップと、
前記印刷ドライバデータファイルと、前記複数の印刷装置に共通しているユーザインターフェースモジュールと、前記複数の印刷装置に共通しているレンダリングモジュールとを含む、前記印刷装置の印刷ドライバを生成するステップと、
を有し、前記印刷ドライバを生成するステップにおいて、前記印刷ドライバをインストールするのに使用されるデータ及び命令を含むＩＮＦファイルを生成し、該ＩＮＦファイルを印刷ドライバに含め、
前記ＩＮＦファイルを生成する場合において、
一群の文字列をコンフィギュレーションファイルからコピーし、前記特定の一群の機能のデフォルト値を示すデフォルトの一群の文字列の値と共に前記一群の文字列を前記ＩＮＦファイルに格納し、
前記コンフィギュレーションデータに基づいて、１つ以上の前記デフォルトの文字列の値を、前記印刷装置の特性を反映した値と共に更新する、コンピュータプログラム。
【請求項７】
印刷ドライバを生成する処理方法を実行するオンデマンド印刷ドライバアプリケーションを有する装置であって、前記処理方法は、
印刷装置の現在の機能を特定するコンフィギュレーションデータを前記印刷装置に要求するステップと、
前記印刷装置から前記コンフィギュレーションデータを受信するステップと、
複数の印刷装置に共通する特定の一群の機能と、前記コンフィギュレーションデータで指定されている前記印刷装置の現在の機能との双方に基づいて、印刷ドライバデータファイルを生成するステップと、
前記印刷ドライバデータファイルと、前記複数の印刷装置に共通しているユーザインターフェースモジュールと、前記複数の印刷装置に共通しているレンダリングモジュールとを含む、前記印刷装置の印刷ドライバを生成するステップと、
を有し、前記印刷ドライバを生成するステップにおいて、前記印刷ドライバをインストールするのに使用されるデータ及び命令を含むＩＮＦファイルを生成し、該ＩＮＦファイルを印刷ドライバに含め、
前記ＩＮＦファイルを生成する場合において、
一群の文字列をコンフィギュレーションファイルからコピーし、前記特定の一群の機能のデフォルト値を示すデフォルトの一群の文字列の値と共に前記一群の文字列を前記ＩＮＦファイルに格納し、
前記コンフィギュレーションデータに基づいて、１つ以上の前記デフォルトの文字列の値を、前記印刷装置の特性を反映した値と共に更新する、装置。
【請求項８】
前記処理方法が、前記コンフィギュレーションデータで指定された前記印刷装置の前記現在の機能及び前記特定の一群の機能を実行するための一群のコマンドを生成し、該一群のコマンドを前記印刷ドライバデータファイルに含めるステップを更に有する、請求項７記載の装置。
【請求項９】
前記ＩＮＦファイルが、前記印刷ドライバに含まれるファイルのリストを有する、請求項７記載の装置。
【請求項１０】
前記印刷ドライバデータファイルを生成するステップが、
前記複数の印刷装置に共通する特定の一群の機能に対応する一群の共通のコマンド文字列を、印刷ドライバデータファイルテンプレートから抽出するステップと、
前記一群の共通のコマンド文字列を、前記印刷ドライバデータファイルに含めるステップと、
を含む、請求項７記載の装置。
【請求項１１】
前記共通する特定の一群の機能に含まれていない１つ以上の印刷装置の機能について、
１つ以上の共通のコマンド文字列中の１つ以上のコマンド文字列を、前記１つ以上の機能の暫定的なコマンド文字列として使用するステップと、
前記１つ以上のコマンド文字列を前記印刷ドライバデータファイルに格納し、前記印刷ドライバデータファイルの中で、前記１つ以上のコマンド文字列が暫定的なコマンド文字列であることを指示するステップと、
を前記処理方法が更に有する請求項１０記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷ドライバに関連する。
【背景技術】
【０００２】
この「背景技術」で説明される技法は遂行可能な技法であるが、過去に既に実証又は遂行されている技法であるとは限らない。従って、特に断りのない限り、「背景技術」で説明されるどの技法も、本願発明に対する従来技術であるとは限らず、「背景技術」に含まれているという理由だけで、それを出願人が「従来技術」と認めたわけでもない。
【０００３】
一般に、印刷ドライバはプロセスであり、そのプロセスは、アプリケーションプログラムで生成された印刷データを処理し、その印刷データの処理を処理するよう意図されている印刷装置でサポートされているフォーマットに、印刷データを変換する。例えば、ユーザは、ワードプロセッサアプリケーションを使って電子書類を作成する。そしてユーザはアプリケーションプログラムで印刷オプションを選択し、特定の印刷装置に対してその電子書類を印刷するよう要求する。アプリケーションプログラムは、印刷データを生成し、ユーザのクライアント装置にインストールされている印刷ドライバへ、印刷データを提供する。しばしばこの工程はスプーラ(spooler)と呼ばれる中間的なプロセスを利用し、スプーラは印刷データを局所的に保存する。印刷ドライバは印刷データを処理し、変換された印刷データを生成し、その変換された印刷データは特定の印刷装置でサポートされているフォーマットになっている。例えば、印刷ドライバは印刷データを生成し、ポストスクリプトフォーマットに従うよう変換された印刷データを生成する。そして印刷データは、その変換された印刷データを特定の印刷装置に送信する。特定の印刷装置は、変換された印刷データを処理し、電子書類の印刷バージョンを生成する。
【０００４】
従来の印刷装置は印刷装置固有のものである。即ち、印刷ドライバの各々は印刷データをあるフォーマットに変換するよう設計され、そのフォーマットは、特定の印刷装置でサポートされている特定のフォーマットに従うものである。印刷ドライバの装置依存性は、いくつもの欠点の理由になる。ユーザが使用しようとしている印刷装置各々について、印刷ドライバが、ユーザのクライアント装置にインストールされなければならない、というのが１つの問題である。印刷装置が購入された場合、通常、印刷ドライバは記憶媒体に用意されている(インターネットを通じてダウンロードされてもよい。)。ユーザが別の場所に移動した場合、どのような印刷ドライバが、そのユーザにとって利用可能であるか、或いは利用可能な印刷装置の機能を、ユーザは知らないかもしれないし、多くの場合ユーザは適切なドライバを持っていない又はインターネットにアクセスして適切な印刷ドライバをダウンロードしていない。一般的に、ユーザは、利用可能な印刷装置及びそれらの機能について問い合わせを行い、必要な印刷ドライバを取得し、インストールし、設定しなければならなくなる。限定的なユーザインターフェースしか備えていない小型の携帯装置をユーザが使用する場合、上記の問題は一層悪化する。なぜなら、印刷ドライバをダウンロードし、インストールし、構築することは、この種の制約のある装置にとってかなり困難だからである。印刷装置の特性や機能が変わった場合、その印刷装置用のドライバのインスタンス全てが更新され、それらの特性や機能が使用できるようにしなければならず、その作業は複雑で時間がかかってしまう、というのが別の問題である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】株式会社リコー  プリンタードライバーダウンロードサイト
【非特許文献２】http://support.ricoh.com/bbv2/html/dr_ut_d/ipsio/index.htm
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、上記の問題を克服するオンデマンド印刷ドライバアプリケーションをもたらすことである。
【課題を解決するための手段】
【０００７】
本発明の一形態によれば、オンデマンド印刷ドライバアプリケーションが構築され、印刷ドライバの現在の機能に基づいて、要求に応じて印刷ドライバを生成する。オンデマンド印刷ドライバアプリケーションは、印刷装置の現在の機能を特定するコンフィギュレーションデータを求めて印刷装置に問い合わせを行う。現在の機能には、その印刷装置によりサポートされている機能及び何らかの現在インストール済みのオプションが含まれてよい。本発明の一実施例では、コンフィギュレーションデータは、メタデータ、印刷コンフィギュレーションデータ、印刷機能データ及び拡張データを含んでよい。オンデマンド印刷ドライバアプリケーションは、印刷装置からコンフィギュレーションデータを受信し、複数の印刷装置に共通する一群の基本機能一式と、そのコンフィギュレーションデータで指定される印刷装置の現在の機能との双方に基づいて、印刷ドライバデータファイルを生成する。例えば、基本機能は複数の印刷装置に共通する基本機能及び印刷オプションを含んでよい。オンデマンド印刷ドライバアプリケーションは、印刷装置用の印刷ドライバを生成し、その印刷ドライバは、少なくとも、印刷ドライバデータファイル、UIモジュール及びレンダリングモジュールを含む。UIモジュールは、印刷ドライバデータファイルを使用してグラフィカルユーザインターフェースを生成し、グラフィカルユーザインターフェースは印刷オプションや設定をユーザが選べるようにする。レンダリングモジュールは、印刷ドライバデータファイルを使用して、ワードプロセッサのようなアプリケーションプログラムで生成されたアプリケーションデータを処理し、印刷装置でサポートされているフォーマットに従う印刷データを生成する。UIモジュール及びレンダリングモジュールは、複数の印刷装置に共通し、複数の印刷装置と共に、特定の機能又は拡張機能と共に使用され、その特定の機能等は、印刷ドライバデータファイルに反映される特定の印刷装置でサポートされているものである。印刷ドライバは印刷ドライバリポジトリに保存されてもよいし、及び／又はクライアント装置にインストールされてもよい。オンデマンド印刷ドライバアプリケーションは、印刷装置の現在の機能に基づいて、いつでもオンデマンドで印刷ドライバを生成できるようにする。
【０００８】
本発明の一形態によれば、印刷ドライバを生成するコンピュータで使用される方法がもたらされる。オンデマンド印刷ドライバアプリケーションは、印刷装置の現在の機能を特定するコンフィギュレーションデータを求めて印刷装置に問い合わせを行う。オンデマンド印刷ドライバアプリケーションは、印刷装置からコンフィギュレーションデータを受信する。オンデマンド印刷ドライバアプリケーションは、複数の印刷装置に共通する基本機能群と、そのコンフィギュレーションデータで指定される印刷装置の現在の機能との双方に基づいて、印刷ドライバデータファイルを生成する。オンデマンド印刷ドライバアプリケーションは、印刷装置用の印刷ドライバを生成し、その印刷ドライバは、印刷ドライバデータファイル、ユーザインターフェースモジュール及びレンダリングモジュールを含み、ユーザインターフェースモジュール及びレンダリングモジュールの双方は、複数の印刷装置に共通している。
【０００９】
添付図面中の同様な番号は同様な要素を示す。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例によるオンデマンド印刷ドライバアプリケーションを用いて印刷ドライバを生成する上位概念的方法を示すフローチャート。
【図２】本発明の一実施例によるオンデマンド印刷ドライバアーキテクチャ例を示すブロック図。
【図３】ウインドウズベースのオペレーティングシステムでオンデマンド印刷ドライバアプリケーションを利用し、印刷ドライバを生成及びインストールする本発明の一実施例による技法を示す状態遷移図。
【図４】本発明の一実施例によるオンデマンド印刷ドライバアプリケーションの実施例を示すブロック図。
【図５】本発明の一実施例による印刷ドライバパッケージ生成モジュールで実行される一部の機能を示すフローチャート。
【図６】ウェブサービスを使ってコンフィギュレーションデータを取得する場合の印刷装置問合モジュールの動作例を示すフローチャート。
【図７】INFファイルを生成する本発明の一実施例による技法を示すフローチャート。
【図８】印刷ドライバデータファイルを生成する本発明の一実施例による技法を示すフローチャート。
【図９】本発明の実施例が使用されてもよいコンピュータシステムのブロック図。
【発明を実施するための形態】
【００１１】
説明を目的とする以下の詳細な説明では、本発明の十分な理解を図るため、多くの具体的詳細が述べられる。しかしながら、本発明はそのような具体的詳細によらずに実施されてもよいことは、当業者に明白であろう。また、本発明を不必要に曖昧にするかもしれないことを避けるため、周知の構造及び装置はブロック図形式で示される。本発明の様々な形態は、以下の観点から説明される。
【００１２】
I．概要
II．オンデマンド印刷ドライバアーキテクチャ
III．機能概要
IV．オンデマンド印刷ドライバアプリケーション
Ａ．印刷ドライバパッケージ生成モジュール
Ｂ．印刷装置問合モジュール
Ｃ．INFファイル生成モジュール
Ｄ．印刷ドライバデータ(GPD)ファイル生成モジュール
Ｅ．印刷ドライバストレージ更新モジュール及び印刷ドライバインストールモジュール
V．実現手段
【実施例１】
【００１３】
＜I．概要＞
オンデマンド印刷ドライバアプリケーションが構築され、印刷ドライバの現在の機能に基づいて、要求に応じて印刷ドライバを生成する。図１は、本発明の一実施例によるオンデマンド印刷ドライバアプリケーションを用いて印刷ドライバを生成する上位概念的方法を示すフローチャートである。ステップ102において、オンデマンド印刷ドライバアプリケーションは、印刷装置の現在の機能を特定するコンフィギュレーションデータを求めて印刷装置に問い合わせを行う。現在の機能には、その印刷装置によりサポートされている機能及び何らかの現在インストール済みのオプションが含まれてよい。本発明の一実施例では、コンフィギュレーションデータは、メタデータ、印刷コンフィギュレーションデータ、印刷機能データ及び拡張データを含んでよい。ステップ104において、オンデマンド印刷ドライバアプリケーションは、印刷装置からコンフィギュレーションデータを受信する。ステップ106において、複数の印刷装置に共通する一群の基本機能一式と、そのコンフィギュレーションデータで指定される印刷装置の現在の機能との双方に基づいて、オンデマンド印刷ドライバアプリケーションは印刷ドライバデータファイルを生成する。例えば、基本機能は複数の印刷装置に共通する基本機能及び印刷オプションを含んでよい。ステップ108において、オンデマンド印刷ドライバアプリケーションは、印刷装置用の印刷ドライバを生成し、その印刷ドライバは、少なくとも、印刷ドライバデータファイル、UIモジュール及びレンダリングモジュールを含む。UIモジュールは、印刷ドライバデータファイルを使用してグラフィカルユーザインターフェースを生成し、グラフィカルユーザインターフェースは印刷オプションや設定をユーザが選べるようにする。レンダリングモジュールは、印刷ドライバデータファイルを使用して、ワードプロセッサのようなアプリケーションプログラムで生成されたアプリケーションデータを処理し、印刷装置でサポートされているフォーマットに従う印刷データを生成する。UIモジュール及びレンダリングモジュールは、複数の印刷装置に共通し、複数の印刷装置と共に、特定の機能又は拡張機能と共に使用され、その特定の機能等は、印刷ドライバデータファイルに反映される特定の印刷装置でサポートされているものである。印刷ドライバは印刷ドライバリポジトリに保存されてもよいし、及び／又はクライアント装置にインストールされてもよい。オンデマンド印刷ドライバアプリケーションは、印刷装置の現在の機能に基づいて、いつでもオンデマンドで印刷ドライバを生成できるようにする。
【００１４】
＜II．オンデマンド印刷ドライバアーキテクチャ＞
図２は本発明の一実施例によるオンデマンド印刷ドライバアーキテクチャ例200を示すブロック図である。アーキテクチャ200は、クライアント装置202、印刷装置204，206，208及び印刷ドライバリポジトリ210を含み、それらはネットワーク212により互いに通信可能に結合されている。図２に示される様々な要素間でデータ通信機能をもたらす適切な如何なる媒体又は手段によって、ネットワーク212は実現されてよい。ネットワーク212の具体例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、イーサーネット又はインターネット等のネットワークや、１つ以上の地上、衛星又は無線リンク等を含むが、これらに限定されない。ネットワーク212は、図２に示されている様々な要素間でセキュア通信機能を発揮してもよい。図２の様々な要素は、１つ以上の直接的な通信リンクで互いに通信してもよいが、簡明化のため図示されてはいない。
【００１５】
クライアント装置202は如何なるタイプのクライアント装置でもよく、本発明は特定のタイプのクライアント装置に限定されない。例えばクライアント装置202の具体例は、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルディジタルアシスタント(PDA)、移動装置及び電話装置等を含むが、これらに限定されない。本実施例の場合、クライアント装置202は、ユーザインターフェース214、アプリケーションプログラム216、オンデマンド印刷ドライバアプリケーション218、スプーラ220、印刷ドライバ222及びストレージ224を含む。
【００１６】
印刷装置204，206，208は、印刷データを処理し、印刷データの反映された電子書類の印刷バージョンを生成できる適切な如何なるタイプの装置でもよい。印刷装置204，206，208の具体例は、プリンタ、ネットワークを利用するコピー機及び複合機(MFP)等を含んでよいが、これらに限定されず、本願で説明される技法は、何らかの特定のタイプの印刷装置204，206，208に限定されない。本発明の実施例は図２に示される４つの印刷装置の観点から説明されるが、本技法は、同じ又は異なる物理的な場所に用意された幾つの印刷装置にも適用可能である。クライアント装置202は、特定の実現手段に依存して、何らかの通信プロトコルに従って且つ何らかのフォーマットで、印刷装置204，206，208に印刷データを提供する。例えば、SNMPが使用されてもよい。
【００１７】
ユーザインターフェース214は、クライアント装置202及びユーザ間で情報を通信可能にする如何なる手段及び／又はプロセスによって実現されてもよい。ユーザインターフェース214の具体例は、陰極線管(CRT)や液晶ディスプレイ(LCD)のようなディスプレイ、キーパッド、タッチパッド、タッチスクリーン、キーボード又はマウスのような入力装置、又はディスプレイ及び入力装置の組み合わせを含んでよいが、これらに限定されない。
【００１８】
アプリケーションプログラム216は、印刷データを生成できる適切な如何なるタイプのアプリケーションでもよい。アプリケーションプログラム216の具体例は、ワードプロセシングプログラム、スプレッドシートプログラム、電子メールプログラムその他の適切な如何なるタイプのアプリケーションでよく、これらに限定されない。
【００１９】
オンデマンド印刷ドライバアプリケーション218は、以下で更に詳細に説明されるように、印刷装置用の印刷ドライバをオンデマンドで生成する。コンピュータハードウエア、コンピュータソフトウエア又はコンピュータハードウエア及びコンピュータソフトウエアの何らかの組み合わせにおける、１つ以上のプロセッサ、モジュール又はコンポーネントとして、オンデマンド印刷ドライバアプリケーション218は実現されてよい。説明の便宜上、オンデマンド印刷ドライバアプリケーション218は、クライアント装置202で実現されるように図示及び説明されるが、本発明はそのような状況に限定されず、オンデマンド印刷ドライバアプリケーション218は他のネットワーク要素で実現されてもよい。オンデマンド印刷ドライバアプリケーション218については、後に詳細に説明される。
【００２０】
印刷ドライバ222は、特定の実現手段に依存して、多種多様なモジュール及びコンポーネントを含んでよい。図２に示される例の場合、印刷ドライバ222はUIモジュール226、レンダリングモジュール228及び印刷ドライバデータファイル230を含む。印刷ドライバデータファイル230は、オンデマンド印刷ドライバアプリケーション218により生成され且つあるデータを含み、そのデータは、UIモジュール226及びレンダリングモジュール228より使用される。印刷ドライバデータファイル230に含まれているデータの一例は、コマンド群であり、そのコマンド群は基本的な印刷装置機能に加えて印刷装置の現在の機能の双方を実現する。印刷ドライバ222は、簡明化のため図２には図示も説明もされていない他のモジュール、要素及び機能を含んでもよく、本発明は、モジュール及び機能の何らかの特定の組み合わせを含む印刷ドライバ222を生成するオンデマンド印刷ドライバアプリケーション218に限定されない。レンダリングモジュール228は、印刷データを処理し、意図されている受信側の印刷装置でサポートされているフォーマットに従うように変換された印刷データを生成する。例えば、レンダリングモジュール228は、例えばアプリケーションプログラム216のようなワードプロセシングプログラムで生成される印刷データ232を処理し、その印刷データ232はポストスクリプトをサポートする印刷装置で処理されるように意図されていることに基づいて、ポストスクリプトフォーマットに合うように変換された印刷データを生成する。
【００２１】
ストレージ224は如何なるタイプのストレージで実現されてもよい。ストレージ224の具体例は、ランダムアクセスメモリ(RAM)のような揮発性メモリ及び１つ以上のディスクやフラッシュメモリのような不揮発性ストレージを含んでよいが、これらに限定されない。簡明化のため図２には図示も説明もされていないが、クライアント装置202は、特定の実現手段に応じて別の手段、モジュール、プロセス等を含んでもよい。図２の場合、ストレージ224は単なる説明の便宜の観点から印刷データ232を保存するように示されているが、ストレージ224は様々な他のタイプのデータを含んでもよい。
【００２２】
＜III．機能概要＞
図３は、ウインドウズベースのオペレーティングシステムでオンデマンド印刷ドライバアプリケーションを利用し、印刷ドライバを生成及びインストールする本発明の一実施例による技法を示す状態遷移図である。図３に示されているように、ネットワークフォルダプロセスからユーザがネットワークエクスプローラユーティリティを開くと、本プロセスが始まる。これによりステップ１では、機能発見アプリケーションプログラムインターフェース(API)により、ネットワークフォルダがネットワークディスカバリプロバイダを起動する。ステップ２において、ネットワークディスカバリプロバイダは、ディスカバリリクエストを生成し、ネットワーク上で利用可能なプリンタにディスカバリリクエストを送信する。本実施例の場合、ネットワークディスカバリプロバイダは、ウェブサービスデバイス(WSD)標準仕様に従い、WSDイネーブルプリンタに対するWSDディスカバリリクエストを例えばマルチキャスト形式で生成するが、本発明はWSDを利用する状況に限定されない。
【００２３】
ステップ３では、WSDプリンタがリクエストに対する応答を生成し、ネットワークディスカバリプロバイダに送信する。ステップ４では、ネットワークディスカバリプロバイダはその応答を機能ディスカバリAPIに転送する。機能ディスカバリAPIは、発見されたプリンタ各々の機能インスタンスを作成し、ステップ５において、プリンタ機能インスタンスのリストをネットワークフォルダプロセスに提供する。ネットワークフォルダプロセスは、発見されたプリンタのリストを表示する。ステップ６において、発見された特定のプリンタのコンテンツメニューから、「生成及びインストール」オプションをユーザは選択する。オンデマンド印刷ドライバアプリケーションは、特定のプリンタについて印刷ドライバ及び印刷ドライバデータファイルを生成し、ステップ７において印刷ドライバのストレージは更新される。ステップ８において、プリンタ追加ウィザードが起動し、特定のプリンタに対する印刷ドライバがインストールされる。
【００２４】
＜IV．オンデマンド印刷ドライバアプリケーション＞
図４は、本発明の一実施例によるオンデマンド印刷ドライバアプリケーション400の実施例を示すブロック図である。この例の場合、オンデマンド印刷ドライバアプリケーション400は、印刷ドライバパッケージ生成モジュール402、印刷ドライバ問合モジュール404、INFファイル生成モジュール406、印刷ドライバデータ(GPD)ファイル生成モジュール408、印刷ドライバストレージ更新モジュール410及び印刷ドライバインストールモジュール412を含む。上述のモジュールは、特定の実現手段に依存して、コンピュータハードウエア、コンピュータソフトウエア、又はコンピュータハードウエア及びコンピュータソフトウエアの何らかの組み合わせで実現されてもよい。オンデマンド印刷ドライバアプリケーション400は、特定の実現手段に応じて、別のモジュール、コンポーネント及びプロセスを含んでよく、本発明は、図４に図示及び説明されている特定のモジュールを含むオンデマンド印刷ドライバアプリケーション400に限定されない。上述のモジュール各々については、後に詳細に説明される。
【００２５】
後に詳細に説明されるように、オンデマンド印刷ドライバアプリケーション400のいくつかのモジュールは、コンフィグファイル(config  file)中の情報を使用し、コンフィグファイルは印刷ドライバを生成するための詳細な情報を含む。以下の表Iは、コンフィグファイルの内容の一例を示す。説明の便宜上、表Iのコンフィグファイル例に含まれているデータは、そのコンフィグファイルを使用する様々なモジュールに応じて組織され及びラベル付けされている。コンフィグファイルは、特定の実現手段の条件に応じて、如何なるフォーマットであってもよく、本発明は特定の如何なるフォーマットのコンフィグファイルにも限定されない。フォーマット例は、テキスト、リッチテキスト、XMLのようなマークアップ言語を含むが、これらに限定されない。
【００２６】
表I−コンフィグファイル例
印刷ドライバパッケージ生成モジュール及びINFファイル生成モジュールで使用されるセクション：
【数１】
0005402016.tif 000002
【００２７】
印刷ドライバ(GPD)ファイル生成モジュールで使用されるセクション
【数２】
0005402016.tif 000003
【００２８】
●データファイルセクション：ドライバ属性情報を含む。ドライバ属性情報は、例えば印刷ドライバがXPS印刷ドライバであるか否か、のようなものであり、最終的な印刷ドライバデータファイルに挿入可能である。
【数３】
0005402016.tif 000004
【００２９】
＜＜  Ａ．印刷ドライバパッケージ生成モジュール  ＞＞
印刷ドライバパッケージ生成モジュール402はワークフォルダ414を作成し、そのワークフォルダ中に印刷ドライバパッケージが生成される。「パッケージ」なる用語は、データだけでなく実行可能なコードを含むデータ項目の集まるを指すのに使用される。ワークフォルダ414は、如何なるタイプの暫定的ストレージでよく、そして、「フォルダ」という用語が説明の便宜上使用されているが、「フォルダ」形式のデータ構造であることは必須でない。本発明の一実施例の場合、印刷ドライバパッケージ生成モジュール402は、複数の印刷ドライバに使用される標準的なデータ項目群をワークフォルダ414内に有する。本実施例の場合、表Iのコンフィグファイルは、「ドライバデータファイルエクストラファイル(DriverDataFileExtraFile)」タグを含み、ワークフォルダ414に保存される標準的なデータ項目を特定(識別)する。本実施例の場合、これらのデータ項目は別のコンフィギュレーションファイルを含むデータファイルであり、図４では、“RICONFIG.XML”という名称のオートコンフィグ(autoconfig)xmlファイル、ダイナミックリンクライブラリに組み込まれるレンダリングプラグインモジュールである“RIAFRES.DLL”という名称のレンダリングモジュール、ダイナミックリンクライブラリに組み込まれるUIプラグインモジュールである“RIAFUI2.DLL”という名称のUIモジュール、及び“RIAFCMAC.GPD”という名称のマクロファイルとして識別されている。これらのファイルは、特定の実現手段に依存して、印刷ドライバストレージ420又は他の何処かの場所から抽出されてよい。この例の場合、標準的なデータファイルは、UIモジュール及びレンダリングモジュールであり、これらは複数の印刷ドライバに対して同じである。印刷ドライバデータファイル230は、特定の印刷同値に固有のコマンド及び動作をもたらす。INFファイル生成モジュール406で生成されたINFファイル及び印刷ドライバデータファイル生成モジュール408で生成された印刷ドライバ(GPD)ファイルが、ワークフォルダ414に保存されることを、印刷ドライバパッケージ生成モジュール402は引き起こす。
【００３０】
図５は、本発明の一実施例による印刷ドライバパッケージ生成モジュール402で実行される一部の機能を示すフローチャートである。ステップ502では、印刷ドライバパッケージ生成モジュール402はワークフォルダ414を生成する。ステップ504では、印刷ドライバパッケージ生成モジュール402は、コンフィグファイルを読み取り、印刷ドライバに含まれるべき標準ファイルを決定する。例えば、再び表Iを参照するに、標準ファイルは“ドライバデータファイルエクストラファイル(DriverDataFileExtraFile)”タグとして特定されている。ステップ506において、印刷ドライバパッケージ生成モジュール402は、例えば印刷ドライバストレージ420に保存されている印刷ドライバパッケージを見出し、その印刷ドライバパッケージは、特定の標準ファイルを含んでいる。ステップ508において、印刷ドライバパッケージ生成モジュール402は印刷ドライバパッケージのINFファイルを取り出し、ステップ510において、INFファイルで指定されているような印刷ドライバパッケージのバージョンが最新バージョンであるか否かを確認する。例えば、INFファイルは“ドライババージョン値(DriverVersionValue)”という名称のタグを含み、印刷ドライバパッケージのバージョンを指定してもよい。印刷ドライバパッケージが最新バージョンであった場合、ステップ512において、印刷ドライバパッケージのパス(path)が保存される。そして、ステップ514において、或いはステップ510で印刷ドライバパッケージが最新バージョンでなかった場合、次の印刷ドライバパッケージが評価される。利用可能な全ての印刷ドライバパッケージが評価され且つ最新バージョンが確認されるまで、ステップ506−514は反復される。このプロセスが完了すると、ステップ516において、最新バージョンの印刷ドライバパッケージに含まれている標準ファイルが、印刷ドライバストレージ420から取り出され、ワークフォルダ414に保存される。
【００３１】
＜＜  Ｂ．印刷装置問合モジュール  ＞＞
印刷装置問合モジュール404は、印刷装置416からコンフィギュレーションデータ418を抽出する。コンフィギュレーションデータは、印刷装置の機能を特定する。本実施例の場合、コンフィギュレーションデータはメタデータ、印刷コンフィギュレーションデータ、印刷機能データ及び拡張データを含み、これらは如何なる数のデータファイルに又は如何なるフォーマットに保存されてもよい。以下、このデータを説明する：
１．セマンティックファイル(セマンティックメタデータ、セマンティック印刷機能、セマンティックプリンタコンフィギュレーション、セマンティックデフォルト印刷チケット)：セマンティック標準仕様に対する装置情報プラス特徴／装置の拡張情報を含む。
【００３２】
●セマンティックメタデータは、プリンタの一般情報を標準的なフォーマットで提供する：
【数４】
0005402016.tif 000005
【００３３】
●セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションは、現在のプリンタモデルがサポート可能な全ての物理的な機能を規定する。これらの機能の内の１つ以上は、現時点でインストールされていないかもしれない。セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションで規定されているどの機能も、GPDファイルに含められる。
【００３４】
●セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションは、プリンタの物理的機能の情報及び各特徴におけるオプション情報を規定する。この情報は、UI表示名、機能のデフォルトオプション、或いは機能がUIの文書属性又は装置属性に属するか否かを示してもよい。また、セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションは、様々な言語に備えてローカルな文字列を決めてもよい。機能のUI表示名は、ローカルな文字列定義を利用する場合の一例である。
【００３５】
●セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションは、どのオプションについても如何なるコマンド文字列をも規定しない。
【００３６】
●セマンティック印刷機能及びセマンティックプリンタコンフィギュレーションが如何なる機能も定義していなかった場合、或いは問い合わせプロセスの際にそれらが欠落していた場合、印刷ドライバデータ(GPD)ファイル生成プログラムは、その中の何らかの物理的機能にもよらず印刷ドライバデータ(GPD)を生成する。それでも、生成される最終的なドライバパッケージは動作可能であろう(即ち、UIを提供し、レンダリングジョブを実行する)。
【００３７】
２．拡張データ：例えば、GPD/PPD/RPCSキーワードのように、印刷装置に固有のセマンティックキーワードに合致しないキーワードを含む。また、スイッチを含み、印刷装置の特徴のリスト及び基礎的GPDの選択機能をサポートするように含める。
【００３８】
●プリンタモデルがサポートする物理的機能を規定するセマンティックファイルとは異なり、拡張データは、印刷ドライバデータ(GPD)ファイルに挿入される或る論理機能を規定する。具体的な論理機能は以下のものを含んでよいが、これらに限定されない：
Support8CharPassword
SupportDocUiReplace
AutoCongig
SupportSecurePrint
SupportSamplePrint
SupportSecurePrint
SupportHoldPrint
SupportStoredPrint
SupportDocumentBox
●拡張データは、現在のプリンタモデルがサポートしている物理的機能のリストを含み、そのリストの依頼は、それらの機能をドライバUIに表示する際の重要情報として、印刷ドライバデータ(GPD)ファイルに転送される。また、機能の完全なリストは、どの程度多くの物理的機能をプリンタがサポートするかを生成プログラムに指示する際のリファレンスとして提供し、これらの機能各々を発見するためにセマンティックファイルに向かう。
【００３９】
●機能のUIの制約は、拡張ファイル内で規定され、これらの制約は最終的な印刷ドライバデータ(GPD)ファイルに含まれる。
【００４０】
図６は、ウェブサービスを使ってコンフィギュレーションデータを取得する場合の印刷装置問合モジュール404の動作例を示すフローチャート600である。ステップ602において、印刷装置問合モジュール404は、印刷装置のUUIDを読み取る。ステップ604−610において、印刷装置問合モジュール404は、ディスカバリプロセスにより知った印刷装置各々のUUIDと読み取ったUUIDとを比較する。読み取ったUUIDが印刷装置のUUIDに合致した場合、ステップ612において、印刷装置問合モジュール404はその印刷装置のアドレスを取得する。ステップ614において、印刷装置問合モジュール404はプロキシ(proxy)を生成し、ステップ616においてSOAP問合ボディ(body)を作成する。ステップ618において、印刷装置問合モジュール404は、印刷装置に問合を行い、コンフィギュレーションデータを含む応答(レスポンス)を受信する。ステップ620において、印刷装置問合モジュール404は、レスポンスのボディ構造をXMLに変換する。
【００４１】
＜＜  Ｃ．INFファイル生成モジュール  ＞＞
INFファイル生成モジュール406は、印刷ドライバファイルに含まれているINFファイルを作成する。INFファイルは、印刷ドライバをインストールするのに使用される。図７は、INFファイルを生成する本発明の一実施例による技法を示すフローチャート700を示す。ステップ702において、INFファイル生成モジュール406は、基本INFファイル名(即ち、INFファイルテンプレート)をコンフィグファイルから取得する。例えば、表Iのコンフィグファイル例は、基本INFファイル名を指定する“基本INFファイル値(BassicINFFilevalue)”を含む。ステップ704において、INFファイル生成モジュール406は、基本INFファイルをロードする。ステップ706において、基本INFファイルに含まれている文字列値は、コンフィグファイル中の値に基づいて修正される。また、コンフィグライフ中の他の情報が、基本INFファイルに加えられてもよい。例えば、以下のステップが実行されてもよい。
【００４２】
１．コンフィグファイルからシグネチャを取得し、ターゲットファイルの“[Version]”セクションに加える：
［Version］
Signature=“string  from  Config  file”
２．OEM文字列定義をコンフィグファイルから読み取り、その文字列を［Strings］セクションに加える：
［Strings］
OEM=“OEM  string  from  config  file”
３．ドライババージョン文字列をコンフィグファイルから読み取り、“DriverVer=[driverVersion  from  Config]”として[Version]におく：
[Version]
Signature=“string  from  Config  file”
DriverVer=[driverVersion  string  from  config  file]
４．装置メタデータから、製造者文字列を“Device  ID:MFG”のフォーマットで取得する。[Manufacture]セクションの下でINFファイルを加える：
[Manufacture]
%Richo%=[Manufacture  string  from  Metadata]
５．製造者URLをコンフィグファイルから読み取り、セクション[OEM  URLS]の下でINFファイルを追加し、次のように定義する：
[OEM  URLS]
%Richo%=[Manufacture  URL  string  from  Metadata]
６．装置メタデータから、“MFG；MDL”のフォーマットでモデル名文字列を読み取る。
【００４３】
ステップ708では、INFファイル中のPnPID文字列が、PnPID生成モジュールで生成された新たなPnPID文字列と共に置換される。ステップ710では、いくつかの他の文字列が基本INFファイル内で置換される。これは、例えば、装置モデル、製造者、製造者のURL及びデータファイル名文字列を以下のようにして置き換えることを含んでよい：
７．現在の製造者及びモデルに従って印刷ドライバデータファイル(GPD)名を作成し、計算式は次のとおりである：
{(DeviceID:MFG:F2)(DeviceID:MLD,L5)(6)
８．[manufacture]セクションの下で、INFコマンドラインを““MOdelName”=[GDPNAME],PNPID”のフォーマットで作成する。
【００４４】
例えば、リコー(登録商標)の印刷装置の場合：
“Richo
Aficio 3245C PCL6”=[GPDNAME], RichoRichoh_Aficio_32C45C,
Richo_Aficio_3245C_PCL6
９．[GPDNAME]セクションをターゲットINFファイル内に作成する：
１０．[GPDName]セクション内のデータファイルを規定する
[RIC3245.GPD]
DataFile=RIA32455.GPD
１１．[GPDName]セクションの下で“DataSection=UNIDRV_DATA”を追加する
[RIC3245.GPD]
DataFile=RIA32455.GPD
DataSection=UNIDRV_DATA
１２．コンフィグファイルから、印刷プロセッサ名の文字列を読み取る
１３．コンフィグファイルから、プリンタプロセッサDLL名の文字列を読み取る
１４．[GPDName]セクションの下でINFコマンドラインを作成する：
[RIC3245.GPD]
DataFile=RIA32455.GPD
DataSection=UNIDRV_DATA
PrintProcessor=[PrintProcessorName，PrinterProcessorDLLName]
１５．“Copy_File_GPDName”と呼ばれるセクションを作成し、各ラインに1ファイルでファイルのリストをこのセクションにまとめる。ファイル名の多くは、コンフィグファイルから来たものである。リストは以下のものを含む：
<OEMFiles>
<DriverdataFile>
<Macrofile>
<CmdMacrofile>
<HelpFile>
<DriverDataExtra>
<GPD file name created>
１６．“SourceDiscFiles”セクションを生成し、このセクションの下でステップ17のファイル全てをリスト化する：
[SourceDiskFiles]
<HelpFile>=1
<Macrofile>=1
ステップ708及び710の双方は、印刷装置問合モジュール404により印刷装置416から抽出した情報を使用することを含む。ステップ712では、修正されたINFファイルがワークフォルダ414に保存される。
【００４５】
＜＜  Ｄ．印刷ドライバデータ(GPD)ファイル生成モジュール  ＞＞
印刷ドライバデータ(GPD)ファイル生成モジュール408は、UIモジュール226及びレンダリングモジュール228で使用される印刷ドライバデータファイルを作成する。図８は、印刷ドライバデータファイルを生成する本発明の一実施例による技法を示すフローチャート800である。ステップ802において、印刷ドライバデータ(GPD)ファイル生成モジュール408は、コンフィグファイルから印刷ドライバデータファイル形式(formula)を取得し、印刷装置から装置IDを取得する。例えば、表Iのコンフィグファイル例は、“ドライバデータファイル名フォーミュラ(DriverDataFileNameformula)＝”という名前のタグを含み、ターゲットの印刷ドライバデータファイル名を特定するのに使用される形式を指定する。この例の場合、ターゲット印刷ドライバデータファイル名は、“MFG:F2;MDL:L5;().GPD”の形式で決定されている。この形式は、製造者名の最初の２文字(“MFG:F2”)と、モデル名の末尾５文字(“MDL:L5”)と、一定のもの(“()”)との連結を表す。ファイルは“.GPD”の拡張子を含み、これは、印刷ドライバデータファイルが一般的なプリンタドライバデータファイルであることを意味する。印刷ドライバデータ(GPD)ファイル生成モジュール408は、装置ID及びこの形式を使って、ターゲット印刷ドライバデータファイル(即ち、印刷ドライバに含まれる印刷ドライバデータファイル)の名前を作成する。説明の便宜上、本発明の実施例は、一般的な印刷ドライバ(即ち、GPDフォーマット)の印刷ドライバに印刷ドライバデータファイルが含まれている観点から説明されているが、本発明はこのような状況に限定されず、印刷ドライバデータファイルは特定の実現手段に応じて様々な形式をとってよい。
【００４６】
ステップ804では、印刷ドライバデータ(GPD)ファイル生成モジュール408は、コンフィグファイルから、印刷ドライバデータファイルテンプレート名を取得する。印刷ドライバデータファイルテンプレートは、ターゲット印刷ドライバデータファイルの開始点として機能する。より具体的には、印刷ドライバデータファイルテンプレートは、或るデータを含み、そのデータは、全部でないとしてもほとんどの印刷ドライバデータファイルに共通しており、例えば、印刷ジョブを生成するのに必要な基本コマンドを含む。例えば、印刷ドライバデータファイルテンプレートは、印刷ジョブをレンダリングする際のスプーラプロセスをサポートするコマンドを含んでよい。表Iのコンフィグファイル例は、GPDファイルテンプレート名を指定する“基本GPDファイル値(BasicGPDFile  value)”というタグ名を含む。
【００４７】
ステップ806では、印刷ドライバデータ(GPD)ファイル生成モジュール408が、印刷ドライバデータファイルテンプレートの内容を、ターゲット印刷ドライバデータファイルにコピーする。或いは、印刷ドライバデータ(GPD)ファイル生成モジュール408は、印刷ドライバデータファイルテンプレートを含める指示を含んでもよい。ステップ808では、印刷ドライバデータ(GPD)ファイル生成モジュール408は、コンフィグファイルからデータファイルセクションをコピーし、関連するエントリをターゲット印刷ドライバデータファイルに作成する。ステップ810において、印刷ドライバデータ(GPD)ファイル生成モジュール408は、例えば拡張データに含まれているようなコンフィギュレーションデータ418から、特徴、マクロ、表示順序、サポートされている機能及び制約をコピーし、関連するエントリをターゲット印刷ドライバデータファイルに作成する。
【００４８】
ステップ812では、印刷ドライバデータ(GPD)ファイル生成モジュール408は、マッピング及びマクロファイルに加えて、印刷コンフィギュレーション、印刷機能、拡張子、デフォルト印刷チケット形式及び印刷装置に基づいて、関連するエントリをターゲット印刷ドライバデータファイルに作成する。マッピングファイルは、意味論的なものからリソースdllに表示名を対応付けるデータを含む。これは特にリソースdllがベンダ(例えば、マイクロソフト)にローカルな場合に有用である。例えば、マッピングファイルは、印刷装置の全ての可能な機能及び各特徴に対する全ての可能なオプションをリスト化する。特定のプリンタモデルは、これらの特徴の一部分を規定し、各特徴に対するオプション(選択肢)の部分集合を規定する。プリンタモデルが新たな特徴(マッピングファイル内で規定されていないかもしれない機能)を有する場合、印刷ドライバデータ(GPD)ファイル生成プログラムは、セマンティックプリンタXMLファイル中のこの特徴の表示名を取得する必要がある。この状況の下で、生成された印刷ドライバデータ(GPD)ファイル内の特徴は、表示名として一定の文字列を含んでもよい。例えば、マイクロソフトのようなベンダは、ドライバのUIの特別な特徴に対して局在性(localization)をもたらさないかもしれない。プリンタモデルが提供する意味論的特徴の各々について、印刷ドライバデータ(GPD)ファイル生成プログラムは、このマッピングファイルを通じて読み取り、その特徴に対応するセクションを見出す。次に、プログラムは、この特徴のGPDキーワード名を読み取り、その名前を使ってGPDファイル内のGPDファイルを生成する。そして、印刷ドライバデータ(GPD)ファイル生成モジュール408は、現在の特徴のリソースIDをマッピングファイルから読み取り、それをGPD特徴の下でリソースIDとして保存する。このリソースIDは、UIの中でその特徴の表示名として使用される。印刷ドライバデータ(GPD)ファイル生成モジュール408は、その特徴内のプリンタセマンティック機能で規定されるオプション各々に対して、同様なことを実行する。一定の文字列の代わりにリソースIDを使用する。なぜなら、マイクロソフトのようなベンダは彼らのOSの中でこれらのリソース文字列を自動的に別の言葉に変換する手段を用意しているからである。ベンダのプリンタドライバがローカルな文字列を用意する必要性をなくすためである。
【００４９】
マクロファイルは、プリンタ機能オプションのデフォルトコマンド文字列群を規定する。プリンタドライバデータ(GPD)ファイルテンプレートと同様に、マクロファイルの内容は、ターゲット印刷ドライバ(GPD)データファイルの末尾に挿入される、或いはファイルの印刷ドライバパッケージの一部分として別個のファイルとして用意されてよい(ターゲット印刷ドライバ(GPD)ファイルの“*include”コマンドにより参照される)。マクロファイルは、象徴的なGPDコマンド文字列を印刷ドライバに提供し、PCLジョブレンダリングを実行する。多くの状況では、マクロファイルで規定されるコマンド文字列は、現在のプリンタモデルのコマンド群の一部分でないかもしれない。その場合、現時あのモデルの実際のコマンド文字列が、意味論的チケットに基づいて変換プロセスで作成される。これは、印刷装置がレンダリング後のPDLデータストリームを受信した後になされ、そのPDLデータストリームは、意味論的チケットを含む。変換プロセスは、印刷ドライバ及び説明中のオンデマンド印刷ドライバアプリケーション118とは別個に実行されてもよい。意味論的ファイルはGPDに如何なるコマンド文字列も与えないので、印刷ドライバは現在のプリンタのコマンド群が何であるかを知るすべがない。従って、マクロファイルで用意されるコマンド文字列が、現在のプリンタモデルの実際のコマンドの暫定的な代替物として使用される。この象徴的な置換なしには、レンダリング後のPDLジョブデータ中のPDLコマンドはなく、オペレーティングシステムに問題を引き起こしかねない。例えば、有効なPDLコマンドを含んでいない印刷ドライバは、有効なPDLデータパッケージであるとは考えられない。また、ユーザが、印刷ドライバによりレンダリングされたPDLジョブデータを保存し、後にその保存されていたPDLジョブを別の製造者の印刷装置に送信する、という場合があるかもしれない。内部にPDLコマンドが準備されていなければ、PDLジョブデータは他の如何なる印刷装置によっても受け入れられないであろう。これに対して、多くのPDLベースの印刷装置は、たとえ命令群が異なっていたとしても、有効なPDLデータを部分的に受け入れることができる。
【００５０】
＜＜  Ｅ．印刷ドライバストレージ更新モジュール及び印刷ドライバインストールモジュール＞＞
印刷ドライバストレージ更新モジュール410は、ワークフォルダ414からの印刷ドライバファイルを印刷ドライバストレージ420に保存する。これは、例えば、オペレーティングシステムルーチンを呼び出し、転送を実行することを含んでもよい。印刷ドライバインストールモジュール412は、印刷ドライバストレージ420からの印刷ドライバをインストールする。これは、例えば、オペレーティングシステムソフトウエアインストールルーチンを使ってなされてもよい。
【００５１】
＜V．実現手段＞
以上説明されたオンデマンド印刷ドライバを生成する技法は、如何なるタイプのコンピュータアーキテクチャ又はプラットフォームで実行されてもよい。更に、本技法は、コンピュータハードウエア、コンピュータソフトウエア、又はコンピュータハードウエア及びコンピュータソフトウエアの何らかの組み合わせにより実現されてもよい。説明の目的で  図９は本発明の実施例が使用されてよいコンピュータシステム例900のブロック図を示す。コンピュータシステム900は、情報を通信するためのバス902又は他の通信手段と、バス902に結合された情報を処理するプロセッサ904とを有する。コンピュータシステム900は、ランダムアクセスメモリ(RAM)又は他のダイナミックストレージデバイスのようなバス902に結合されたメインメモリ906を有し、メインメモリはプロセッサ904で実行される命令や情報を格納する。メインメモリ906は、プロセッサ904で実行される命令の実行中に、一時的な変数又は他の中間的な情報を格納するのに使用されてもよい。コンピュータシステム900は、プロセッサ904のための命令や静的な情報を格納する、バス902に結合されたリードオンリメモリ(ROM)908又は他のスタティックストレージデバイスを更に含む。磁気ディスク又は他の光ディスクのようなストレージデバイス910は、情報及び命令を格納するために用意されバス902に結合される。
【００５２】
コンピュータシステム900は、コンピュータユーザに情報を表示するために、陰極線管(CRT)のようなディスプレイ912にバス902を介して結合されてもよい。英数字その他のキーを含む入力装置914は、情報及び命令選択内容をプロセッサ904に通知するためにバス902に結合される。他の種類のユーザ入力装置は、カーソル制御装置916（例えば、マウス、トラックボール又はカーソル方向キー）であり、指示情報及び命令選択をプロセッサ904に通知し且つディスプレイ912でのカーソルの動きを制御する。この入力装置は典型的には第１軸（例えば、ｘ）及び第２軸（例えば、ｙ）の２軸による２つの自由度を有し、装置が平面上の位置を指定できるようにする。
【００５３】
本発明は本願で説明されている技法を実現するコンピュータシステム900を利用することに関連する。本発明の一実施例によれば、メインメモリ906に含まれる１以上の命令の１以上のシーケンスを実行するプロセッサ904に応じて、本技法がコンピュータシステム900により実行される。そのような命令は、ストレージデバイス910のような他のコンピュータ読取可能な媒体からメインメモリ906に読み込まれてもよい。メインメモリ906に含まれている命令シーケンスの実行は、本願で説明されるプロセスステップをプロセッサ904が実行することを引き起こす。代替実施例では、本発明を実施するために、ハードワイヤード回路が、代替的に使用されてもよいし或いはソフトウエア命令との組み合わせで使用されてもよい。すなわち本発明の実施例はハードウエア回路及びソフトウエアの特定の如何なる組み合わせにも限定されない。
【００５４】
ここで使用されているように「コンピュータ読取可能な媒体」なる用語は、特定の手順の動作をコンピュータに引き起こすデータを提供することに関与する如何なる媒体にも関連する。コンピュータシステム900を使用する一実施例では、様々なコンピュータ読取可能な媒体が存在してよく、例えば、実行に備えてプロセッサ904に命令を提供する際に使用される。そのような媒体は、様々な形態をとる可能性があり、限定ではないが、不揮発性媒体、揮発性媒体及び伝送媒体を含む。不揮発性媒体は、例えば、ストレージデバイス910のような光又は磁気ディスクを含む。揮発性媒体は、メインメモリ906のようなダイナミックメモリを含む。コンピュータ読取可能な媒体の一般的な形態は、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープその他の如何なる磁気媒体、CD-ROMその他の如何なる光媒体、RAM、PROM、EPROM、フラッシュEPROMその他のメモリチップ、メモリカートリッジ、又はコンピュータが読み取ることの可能な他の如何なる媒体をも含む。
【００５５】
コンピュータ読取可能な様々な形態は、１以上の命令の１以上のシーケンスをプロセッサ904に実行に備えて搬送する際にも適用可能である。例えば命令は初期には遠く離れたリモートコンピュータの磁気ディスクで搬送されてもよい。リモートコンピュータは自身のダイナミックメモリからその命令をロードし、モデムを用いて電話回線を介して命令を送信してもよい。コンピュータシステム900付近のモデムは電話回線でそのデータを受信し、赤外線送信機を用いてそのデータを赤外線信号に変換する。赤外線検出器は、赤外線信号で搬送されたデータを受信し、そのデータをバス902に置く。バス902はデータをメインメモリ906に運び、プロセッサ904はメインメモリから命令を抽出して実行する。メインメモリ906で受信された命令は、プロセッサ904で実行される前又はその後にストレージデバイス910に選択的に格納されてもよい。
【００５６】
コンピュータシステム900はバス902に結合された通信インターフェース918も含む。通信インターフェース918は、ローカルネットワーク922に接続されるネットワークリンク920に結合する双方向データ通信をもたらす。例えば、通信インターフェース918は、データ通信接続を対応するタイプの電話回線に与える統合サービスディジタルネットワーク(ISDN)カード又はモデムでもよい。別の例では、通信インターフェース918は、データ通信接続をコンパチブルなLANに与えるLANカードでもよい。無線リンクが使用されてもよい。どの実現手段でも、通信インターフェース918は、電気的な、電磁的な又は光学的な信号を送信及び受信し、様々なタイプの情報を表現するディジタルデータストリームを運ぶ。
【００５７】
ネットワークリンク920は典型的には１以上のネットワークを介して他のデータ装置とのデータ通信をもたらす。例えば、ネットワークリンク920はローカルネットワーク922を介してホストコンピュータ924とのコネクションを提供する、或いはインターネットサービスプロバイダ(ISP)926により運営されるデータ機器とのコネクションを提供する。そしてISP926はデータ通信サービスをワールドワイドパケットデータ通信ネットワーク(今日、インターネット928として一般に言及されている)を介して提供する。ローカルネットワーク922及びインターネット928の双方は、ディジタルデータストリームを搬送する、電気的な、電磁的な又は光学的な信号を使用する。
【００５８】
コンピュータシステム900は、ネットワーク、ネットワークリンク920及び通信インターフェース918を介して、メッセージを送信し及びプログラムコードを含むデータを受信する。インターネットの例の場合、サーバー930はインターネット928、ISP926、ローカルネットワーク922及び通信インターフェース918を介して、アプリケーションプログラムに関する要求されたコードを送信してよい。プロセッサ904は受信したコードを受信したときに実行してもよいし、後の実行に備えてストレージデバイス910又は他の不揮発性ストレージに格納していたかのように実行してもよい。
【００５９】
以上本発明の特定の具体的な実施例が、実施例毎に異なってよい多くの具体的詳細に関連しながら説明されてきた。出願人の意図する本発明の独占排他権の範囲は特許請求の範囲であり、その範囲は本願出願後の如何なる修正も含む。限定、要件、特性、特徴、効果又は属性その他の特許請求の範囲に明示的に列挙されていないものは、特許請求の範囲を決して限定するものではない。従って本明細書及び図面は、限定的な意味ではなく例示として解釈されるべきである。
【符号の説明】
【００６０】
200  アーキテクチャ
202  クライアント装置
204，206，208  印刷装置
210  印刷ドライバリポジトリ
212  ネットワーク
214  ユーザインターフェース
216  アプリケーションプログラム
218  オンデマンド印刷ドライバアプリケーション
220  スプーラ
222  印刷ドライバ
224  ストレージ
226  UIモジュール
228  レンダリングモジュール
230  印刷ドライバデータファイル
232  印刷データ
234  印刷ドライバ
400  オンデマンド印刷ドライバアプリケーション
402  印刷ドライバパッケージ生成モジュール
404  印刷ドライバ問合モジュール
406  INFファイル生成モジュール
408  印刷ドライバデータ(GPD)ファイル生成モジュール
410  印刷ドライバストレージ更新モジュール
412  印刷ドライバインストールモジュール
900  コンピュータシステム
902  バス
904  プロセッサ
906  メインメモリ
908  リードオンリメモリ
910  ストレージデバイス
912  ディスプレイ
914  入力装置
916  カーソル制御部
918  通信インターフェース
920  ネットワークリンク
922  ローカルネットワーク
924  ホスト
926  インターネットサービスプロバイダ
928  インターネット
930  サーバー
【図１】
0005402016.tif 000006
【図２】
0005402016.tif 000007
【図３】
0005402016.tif 000008
【図４】
0005402016.tif 000009
【図５】
0005402016.tif 000010
【図６】
0005402016.tif 000011
【図７】
0005402016.tif 000012
【図８】
0005402016.tif 000013
【図９】
0005402016.tif 000014