(57)【要約】      （修正有）【課題】プリンタドライバが仕様変更により、サポートしなくなった設定であっても、プリンタドライバ独自の機能を利用するアプリケーションに対してはその使用を可能とする方法を提供する。【解決手段】拡張モジュールは、アプリケーションから印刷情報を制御する命令を受け付ける。受信した命令が印刷情報の更新要求であると判断した場合に、アプリケーションから指定された第一の設定値をサポートしているか否かを判断する。第一の設定値をサポートしていないと判断した際に、第一の設定値を置き換え可能な第二の設定値を決定し、決定した第二の設定値を印刷情報に設定し、第一の設定値をアプリケーションとやりとりするための情報に書き込む。一方、受信した命令が印刷設定情報の取得要求であると判断した場合に、アプリケーションとやりとりするための情報が書き込まれているかを判断し、この情報に基づいてアプリケーションに印刷設定情報を返却する。【選択図】図５
2014013475.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから印刷情報を制御可能な拡張モジュールを有する情報処理装置において、
前記拡張モジュールは、
アプリケーションから印刷情報を制御する命令を受け付ける命令受信工程（Ｓ４０１、Ｓ４０２）と、
前記命令受信工程が、受信した命令に基づいて印刷情報を制御する印刷情報制御工程（Ｓ４０３〜Ｓ４０８）と、
前記印刷情報制御工程が印刷情報の更新を要求する命令であると判断した場合に、アプリケーションから指定された第一の設定値をサポートしているか否かを判断するサポート判断工程（Ｓ５０１、Ｓ５０２）と、
前記サポート判断手段により第一の設定値をサポートしていないと判断した際に、前記第一の設定値を置き換え可能な第二の設定値を決定する置き換え可能値決定工程（Ｓ５０５）と、
前記置き換え可能値決定工程により決定した第二の設定値を印刷設定として印刷情報に設定する印刷情報設定工程（Ｓ５０６）と、
前記第一の設定値をアプリケーションとやりとりするための情報に書き込む書込み工程（Ｓ５０７）と、
前記印刷情報制御工程が印刷設定情報の取得を要求する命令であると判断した場合に、前記アプリケーションとやりとりするための情報が書き込まれているかを判断する判断工程（Ｓ６０１）と、
前記判断工程が前記アプリケーションとやりとりするための情報が書き込まれていると判断した際に、この情報に基づいてアプリケーションに印刷設定情報を返却する返却工程（Ｓ６０２、Ｓ６０３）と、
を備えることを特徴とする情報処理方法。
【請求項２】
前記印刷情報制御工程が、印刷設定可能な設定群の取得を要求する命令であると判断した場合に、アプリケーションから要求された設定項目が置き換え可能な設定値を持つか否かを判断する置き換え可能値判断工程（Ｓ７０１〜Ｓ７０４）と、
前記置き換え可能値判断工程が置き換え可能な設定値を持つと判断した際に、置き換え可能値に対応するサポートしない設定値を設定群に追加する設定群追加工程（Ｓ７０５、Ｓ７０６）と、
を備えることを特徴とする請求項１に記載の情報処理方法。
【請求項３】
アプリケーションから印刷情報を制御可能な拡張モジュールを有する情報処理装置において、前記拡張モジュールは、アプリケーションから印刷情報を制御する命令を受け付ける命令受信手段と、前記命令受信手段が、受信した命令に基づいて印刷情報を制御する印刷情報制御手段と、前記印刷情報制御手段が印刷情報の更新を要求する命令であると判断した場合に、アプリケーションから指定された第一の設定値をサポートしているか否かを判断するサポート判断手段と、前記サポート判断手段により第一の設定値をサポートしていないと判断した際に、前記第一の設定値を置き換え可能な第二の設定値を決定する置き換え可能値決定手段と、前記置き換え可能値決定手段により決定した第二の設定値を印刷設定として印刷情報に設定する印刷情報設定手段と、前記第一の設定値をアプリケーションとやりとりするための情報に書き込む書込み手段と、前記印刷情報制御手段が印刷設定情報の取得を要求する命令であると判断した場合に、前記アプリケーションとやりとりするための情報が書き込まれているかを判断する判断手段と、前記判断手段が前記アプリケーションとやりとりするための情報が書き込まれていると判断した際に、この情報に基づいてアプリケーションに印刷設定情報を返却する返却手段と、を備えることを特徴とする情報処理装置。
【請求項４】
前記印刷情報制御手段が、印刷設定可能な設定群の取得を要求する命令であると判断した場合に、アプリケーションから要求された設定項目が置き換え可能な設定値を持つか否かを判断する置き換え可能値判断手段と、前記置き換え可能値判断手段が置き換え可能な設定値を持つと判断した際に、置き換え可能値に対応するサポートしない設定値を設定群に追加する設定群追加手段と、を備えることを特徴とする請求項に３記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法に関する。特に、ホストコンピュータ等に存在する印刷データをプリンタ等の出力装置によって印刷する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
一般に、ホストコンピュータとプリンタから成る印刷システムにおいて、ホストコンピュータに組み込まれたプリンタドライバの多くは、使用するプリンタの機種に対応した様々な印刷設定を指定することが可能となっている。しかし、ホストコンピュータに搭載されるオペレーティングシステム（以降、ＯＳと呼ぶ）の中には、接続されているプリンタの種類に依らずＯＳ自身が印刷設定値を保持するものが存在する。例えば、米国アップル社の「Ｍａｃ  ＯＳ  Ｘ（登録商標）」では、用紙サイズ設定画面をＯＳが提供し、一般的な用紙サイズ情報、すなわちＡ４やレター、Ｂ５等のような予め規格として定まった定形のものをＯＳ独自の識別子と共に定義している。ＯＳが保持している用紙サイズ情報には、寸法等の他に表示名称を含み、ＯＳがサポートしている複数の言語環境に対応するため各国言語に翻訳された名称を定義している。プリンタドライバは、対応するプリンタのサポート用紙サイズの中で、ＯＳが独自に定義している定形の用紙サイズについてはＯＳ独自の識別子を使用する。一方、ＯＳが定義する定形の用紙サイズ以外のサポート用紙サイズについてはドライバ独自の識別子を使用し、プリンタドライバがサポートしている複数言語に対応するため各国言語に翻訳された名称をプリンタドライバ自身が定義している。これにより、ＯＳはＯＳ独自の識別子に関してはＯＳが定義している用紙サイズ名称を、一方、ドライバ独自の識別子に関してはドライバが定義している用紙サイズ名称を用紙サイズ設定画面に表示することが可能となる。このように、一般的な定形サイズについてはＯＳ独自の識別子を使用することで、プリンタが複数登録されている環境でユーザがプリンタを切り替えたとしても、変更前後のプリンタ間で同等の用紙サイズをサポートしている場合には、その設定値を引き継ぐことが可能となる。しかしながら、ＯＳ独自の識別子を使用することでＯＳ自身が定義する用紙サイズ名称が表示されるため、ドライバ側はドライバ自身が定義する用紙サイズ名称との整合性を制御できないという問題がある。
【０００３】
例えば、５ｘ７サイズと２Ｌサイズを両方サポートしているプリンタドライバが、５ｘ７サイズにＯＳ独自の識別子を使用し、２Ｌサイズにドライバ独自の識別子を使用するケースがある。このとき、ＯＳが、５ｘ７サイズの用紙サイズ名称を「２Ｌ」と定義し、ドライバが２Ｌサイズの用紙サイズ名称を「２Ｌ」と定義する場合を考える。５ｘ７サイズの「２Ｌ」と、２Ｌサイズの「２Ｌ」が重複して表示されてしまい、ユーザはどちらの「２Ｌ」を選択すればよいか分からず、適切な用紙サイズ設定を行うことができない。実際、５ｘ７サイズと２Ｌサイズの寸法は換算する単位系によって誤差があり、国や地域における規格によってもその扱いは様々であるのが現状である。
【０００４】
従来、この問題を解決するために重複する可能性がある複数のサイズを別々の用紙サイズとせずに同等の用紙サイズとしていずれか一つの用紙サイズのみサポートする方法が一般的である。また、プリンタで使用可能な印刷設定項目だけに制限せずに、任意の印刷設定項目を選択項目として指定可能にする手段を備える方法が開示されている。これによると、印刷設定項目の選択項目を制限しないかわりに、指定されたプリンタに対して使用不可能である印刷設定項目を表示する。これにより、ユーザが指定したプリンタのサポート機能や使用可能な印刷設定情報を把握していなくても所望の印刷結果を得ることを可能にしている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３９３７７７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、アプリケーションによっては、プリンタドライバが独自に備える機能を利用した上で、敢えて一定の設定項目に制限して各種印刷設定処理を実現したい場合がある。プリンタが高機能になれば、プリンタドライバがサポートする機能や設定項目は多種多様なものとなり、ユーザにとって選択肢が広がる一方で適切な設定をすべての機能に対して完璧に行うことは困難である。そのため、アプリケーションは用途に合わせて設定項目の表示制限を行っている。このようなアプリケーションは、プリンタドライバのサポート機能や使用可能な印刷設定情報を把握し、プリンタドライバのサポート情報に基づいて自身の用途に合わせた適切な設定項目や選択項目を独自に取り決めている。そのため、プリンタドライバ側のサポート情報等の仕様が変更された場合には、それに応じてアプリケーション側で独自に取り決めている設定項目や選択項目を見直す対応が必要となる。しかしながら、プリンタドライバの仕様変更の度に、アプリケーション側で独自に取り決めている設定項目や選択項目に影響が及んでいるかを考慮し、対応し続けるのは困難である。例えば、Ａ４、レター、５ｘ７判、Ｌ判、２Ｌ判サイズをサポートしているプリンタドライバに対して、設定項目の制限を行う写真系アプリケーションについて考える。この写真系アプリケーションは、写真サイズとして積極的に選ばせたいＬ判や２Ｌ判サイズのみを用紙サイズ設定として表示し、それ以外のサイズ項目の表示は行わない。このように、写真系アプリケーションは、５ｘ７サイズと２Ｌサイズについて、２Ｌサイズのみを写真系サイズと定義していたとする。一方、プリンタドライバは、５ｘ７サイズの「２Ｌ」と、２Ｌサイズの「２Ｌ」が重複して表示されることを避けるため、両サイズを同等の用紙サイズとみなし、一方の２Ｌサイズを非サポートサイズとして動作するように仕様を変更したとする。この場合、アプリケーション側では写真サイズとして選ばせたいはずの２Ｌサイズが、指定したプリンタドライバにとっては非サポートサイズとみなされるため、アプリケーションのユーザインターフェース（以降、ＵＩと呼ぶ）上で２Ｌサイズが選択できなくなるという現象が発生する。これをアプリケーション側で解決するためには、５ｘ７サイズを新たに写真系サイズとして定義したアプリケーションを作成し直す等の対応が必要となるという問題があった。
【０００７】
そこで、本発明では上記の問題点を鑑み、プリンタドライバが仕様変更によりサポートしなくなった設定であっても、プリンタドライバ独自の機能を利用するアプリケーションに対してはその使用を可能にする情報処理装置、情報処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述のような課題を解決するための本発明は以下のような構成を備えることを特徴とする。すなわち、アプリケーションから印刷情報を制御可能な拡張モジュールを有する情報処理装置において、前記拡張モジュールは、アプリケーションから印刷情報を制御する命令を受け付ける命令受信工程と、前記命令受信工程が、受信した命令に基づいて印刷情報を制御する印刷情報制御工程と、前記印刷情報制御工程が印刷情報の更新を要求する命令であると判断した場合に、アプリケーションから指定された第一の設定値をサポートしているか否かを判断するサポート判断工程と、前記サポート判断手段により第一の設定値をサポートしていないと判断した際に、前記第一の設定値を置き換え可能な第二の設定値を決定する置き換え可能値決定工程と、前記置き換え可能値決定工程により決定した第二の設定値を印刷設定として印刷情報に設定する印刷情報設定工程と、前記第一の設定値をアプリケーションとやりとりするための情報に書き込む書込み工程と、前記印刷情報制御工程が印刷設定情報の取得を要求する命令であると判断した場合に、前記アプリケーションとやりとりするための情報が書き込まれているかを判断する判断工程と、前記判断工程が前記アプリケーションとやりとりするための情報が書き込まれていると判断した際に、この情報に基づいてアプリケーションに印刷設定情報を返却する返却工程とを備える。
【発明の効果】
【０００９】
以上説明したように、本発明によれば、プリンタドライバが仕様変更によりサポートしなくなった設定であっても、プリンタドライバ独自の機能を利用するアプリケーションに対してはその項目の使用を可能にすることができる。これにより、プリンタドライバ独自の機能を利用するアプリケーションは、プリンタドライバの仕様変更を意識することなくプリンタドライバ独自の機能を利用することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の一形態に係る情報処理装置のハードウェア構成を示す図である。
【図２】本実施形態の一形態に係る情報処理装置のソフトウェア構成を示す図である。
【図３】本実施形態の一形態に係るアプリケーション２０１の処理の流れを示すフローチャートである。
【図４】第１の実施形態に係る拡張モジュール２０５の処理の流れを示すフローチャートである。
【図５】第１の実施形態に係る印刷情報の更新処理を示すフローチャートである。
【図６】第１の実施形態に係る設定項目の設定値の取得処理を示すフローチャートである。
【図７】第１の実施形態に係る設定項目の設定値群の取得処理を示すフローチャートである。
【図８】本実施形態の一形態に係る印刷オブジェクトのデータ構成例を示す図である。
【図９】本実施形態の一形態に係る置き換え可能テーブルの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
【００１２】
尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
＜実施形態１＞
本実施形態のコンピュータ装置の構成について、図１のブロック図を参照して説明する。ホストコンピュータ1とＥｔｈｅｒｎｅｔ(登録商標）やＵＳＢなどの通信バス１１１を介してプリンタ２と通信可能な印刷システムの例である。ホストコンピュータ1には、ＯＳとして「Ｍａｃ ＯＳ（登録商標）Ｘ」と同等のＯＳがインストールされているものとする。図１では、プリンタは１つのみ図示したが、通信バス１１１を介して任意の数のプリンタが接続可能である。
【００１４】
ホストコンピュータ１において、１０１はＲＡＭ１０３および外部記憶装置１０４に格納されたプログラムに従って各部を制御するＣＰＵである。プリンタ２に対応したプリンタドライバを実行し、アプリケーションプログラムに基づいて作成された出力情報をプリンタに対応する出力コマンドに変換し、プリンタ２に所定のプロトコルで出力する。１０２はＲＯＭで、ＣＰＵ１０１が実行するＢＩＯＳプログラムやフォントデータを格納するＲＯＭである。１０３はＲＡＭで、必要に応じてＣＰＵ１０１がデータの書き込みや読み出しを行ったりするために使用され、プリンタドライバ起動時には、プリンタドライバのプログラムコードがこのＲＡＭ１０３にロードされる。１０４は外部記憶装置で、ＣＰＵ１０１が読み出すプログラムコードが格納されており、本実施形態の機能の一部を実現するデバイスで、例えばＦＤ、ＣＤ−ＲＷ、ＨＤＤなどである。１０５が入力デバイス制御部で、キーボードやマウス等の入力デバイス１０７を制御する。１０６は表示装置制御部で、表示装置１０８を制御する。１０９は内部バスで、各構成要素間のデータ通信を行うデータバス、システムバスで構成される。１１０は通信Ｉ／Ｆで、通信バス１１１を介してプリンタ２との通信を司り、双方向通信可能である。
【００１５】
なお、シリアルインターフェースとしてはＵＳＢ、ＩＥＥＥ１３９４など、パラレルインターフェースとしてはセントロニクス、ＳＣＳＩなど、ネットワークとしてはＥｔｈｅｒｎｅｔや無線ＬＡＮ（ＩＥＥＥ802.11）など、複数の種類が想定されるが、双方向の通信を実現するものであればどのようなインターフェースでも構わない。
【００１６】
プリンタ２において、１１３はプリンタコントローラで、通信Ｉ／Ｆ１１２より得られたプリンタコマンドをもとにプリンタエンジン１１４を制御し印刷を行う。１１４はプリンタエンジンで、プリンタヘッドの操作や記録媒体の搬送を行う機構である。
【００１７】
図２は、本発明の実施の形態に係るホストコンピュータ１のソフトウェア構成を示すブロック図である。ホストコンピュータ１は、アプリケーション２０１、印刷システム２０２、プリンタドライバ２０３、Ｉ／Ｆ制御部２０６を備える。アプリケーション２０１から受け取った印刷データを印刷システム２０２およびプリンタドライバ２０３を通じて、プリンタ２が処理可能（印刷可能）なプリントデータに変換して、Ｉ／Ｆ制御部２０６を経てプリンタ２へ出力する。
【００１８】
アプリケーション２０１は、印刷システム２０２に対して印刷要求を行うものであり、印刷を行う印刷データの作成／編集や、作成された印刷データをＯＳの印刷システム２０２へ渡す制御を行う。印刷システム２０２は、ＯＳの印刷制御プログラムであり、プリンタ２に印刷を実行させるための印刷処理全般を管理する処理を行う。この印刷システム２０２は、印刷要求があった場合、アプリケーション２０１から送られた印刷データのスプール処理や、プリンタドライバ２０３のロード／実行などの様々な印刷制御を行うプログラムで構成される。
【００１９】
プリンタドライバ２０３は、プリンタドライバ全体を構成するブロックであり、ドライバ部２０４と拡張モジュール２０５とを備えている。ドライバ部２０４は、印刷システム２０２によりスプールされたアプリケーション２０１の印刷データファイルを印刷設定情報に従ってプリンタ２が解釈可能なデータ形式のプリントデータへ変換する制御プログラムで構成される。そして、このプリントデータをＩ／Ｆ制御部２０６を経てプリンタ２へ出力する。
【００２０】
拡張モジュール２０５は、Ｍａｃ ＯＳ Ｘ（登録商標）システムで定義されているプリンタドライバ命令（Ｄｅｖｉｃｅ Ｄｒｉｖｅｒ Ｉｎｔｅｒｆａｃｅ、略して以後ＤＤＩと呼ぶ）とは別に、独自のプリンタドライバ命令（以後、拡張ＤＤＩと呼ぶ）を新たに定義し印刷情報の制御を行う制御プログラムである。
【００２１】
一般的にＭａｃ ＯＳ Ｘ（登録商標）システムにおいて、プリンタドライバの設定情報を格納するための印刷オブジェクトが用意されている。この印刷オブジェクトには、プリンタから印刷を実行するために必要なプリンタ情報および様々な設定情報が格納されている。特に、印刷オブジェクトにはプリンタドライバの仕様に固有の情報が保持されており、これらはプリンタドライバごとにその内部構造が異なるためアプリケーションは直接現在の設定を参照したり、更新したりすることができない。従って、アプリケーションは拡張モジュール２０５を介して拡張ＤＤＩを利用することでプリンタドライバ固有の印刷情報のやりとりを行い、アプリケーションのユーザインターフェース（以降、ＵＩと呼ぶ）上にプリンタドライバ固有の設定項目をメニューとして表示する。拡張モジュール２０５は、アプリケーション２０１が拡張ＤＤＩを利用して印刷情報をコントロールする場合において、アプリケーション２０１からの入力情報を印刷オブジェクトの形で受け取る。
【００２２】
アプリケーション２０１が生成する印刷オブジェクトのデータ構成例を図８に示す。図８（ａ）に示す印刷オブジェクト３０００は、プリンタ２から印刷を行うために必要な全ての情報が格納されている。より具体的には、現在選択されているプリンタ名称などのプリンタに関する基本情報３０１０に加えて、プリンタ２固有の印刷設定に関する拡張情報３０２０から構成される。プリンタ２固有の拡張情報の一例としては、一般的な用紙サイズ情報３０３０などが含まれる。アプリケーション２０１が、プリンタドライバ２０３が持つＵＩを使って設定可能な機能を設定する場合、ドライバ部２０４によってプリンタ２が持つ全ての機能に対する設定項目が印刷設定情報として印刷オブジェクト３０００に書き込まれる。一方、アプリケーション２０１のＵＩ上にプリンタドライバ２０３固有の設定項目を表示して設定する場合には、拡張モジュール２０５がアプリケーション２０１からの拡張ＤＤＩの要求に応じて必要な設定項目を印刷設定情報として印刷オブジェクト３０００に書き込む。
【００２３】
図３は、アプリケーション２０１の処理の流れを表すフローチャートである。アプリケーション２０１はホストコンピュータ１で実行されるプリンタドライバ２０３に用意された拡張モジュール２０５を利用してプリンタドライバ固有の設定項目を設定可能である。まず、アプリケーション２０１は、ホストコンピュータ１において起動される。アプリケーション２０１は、プリンタドライバ２０３固有の設定項目をアプリケーション２０１のＵＩ上に表示する必要がある。そのために、アプリケーション２０１は、拡張モジュール２０５に対して拡張ＤＤＩを利用して、必要な設定項目におけるプリンタ２で使用可能な設定値群の「取得」を要求する（Ｓ３０１）。同様に、アプリケーション２０１は拡張モジュール２０５に対して、その設定項目の現在の設定値の「取得」を要求する（Ｓ３０２）。アプリケーション２０１は、拡張モジュール２０５から必要とする全ての設定項目情報の取得が完了するまで処理を繰り返す（Ｓ３０３／Ｎｏ）。拡張モジュール２０５からの印刷情報の取得が完了すると（Ｓ３０３／Ｙｅｓ）、Ｓ３０４に進む。Ｓ３０４において、アプリケーション２０１は、拡張モジュール２０５を介して取得したプリンタ２で使用可能な設定項目の設定値群の中から、自身の用途に応じてＵI上にメニューとして表示する設定値を決定する。このとき、アプリケーション２０１は、図示しないが自身の用途に応じて独自に取り決めた表示制限情報を持ち、その情報に基づいて必要な設定値を決定するものとする。そして、Ｓ３０５において、アプリケーション２０１は自身のＵＩ上にプリンタドライバ２０３固有の設定項目をメニューとして表示する（Ｓ３０５）。アプリケーション２０１は、プリンタドライバ２０３固有の設定項目の各々について、Ｓ３０１において取得した設定値群の中から、Ｓ３０４において決定した設定値のみを選択肢として、Ｓ３０２において取得した設定値が現在選択された状態でメニューの表示を行うことが可能となる。次に、表示されたメニューに対してユーザが設定を変更すると（Ｓ３０６／Ｙｅｓ）、アプリケーション２０１は、その変更内容を反映するために拡張モジュール２０５に対して印刷情報の「更新」を要求する（Ｓ３０７）。そして、拡張モジュール２０５に対して全ての印刷情報の更新が完了するまで処理を繰り返す（Ｓ３０８／Ｎｏ）。全ての印刷情報の更新が完了すると（Ｓ３０８／Ｙｅｓ）、Ｓ３０９に進みアプリケーション２０１は、更新された印刷オブジェクトをパラメータとしてＯＳの印刷システム２０２に対して印刷処理を実行して、処理を終了する。
【００２４】
図４は、本発明の実施の形態に係るホストコンピュータ１で実行される拡張モジュール２０５の処理の流れを表すフローチャートである。図３のＳ３０１、Ｓ３０２およびＳ３０７において、アプリケーション２０１からプリンタドライバ２０３の拡張モジュール２０５に対して設定項目の「取得」要求、および印刷情報の「更新」要求を受け付けた場合に拡張モジュール２０５が行う処理の流れを表すものである。拡張モジュール２０５は、アプリケーション２０１からプリンタドライバ２０３の拡張モジュール２０５に対して拡張ＤＤＩを利用して設定項目の「取得」要求、および印刷情報の「更新」要求があった場合に起動される。まず、Ｓ４０１において拡張モジュール２０５は、設定項目の「取得」要求、および印刷情報の「更新」要求命令を受信する。このとき、拡張モジュール２０５は、受信した要求に合わせて印刷情報全般をコントロールするために、アプリケーション２０１から印刷オブジェクトを同時に受信する（Ｓ４０２）。次に、受信した命令が、設定項目の「更新」要求であるのかを判断する（Ｓ４０３）。Ｓ４０３でＹｅｓと判別されると、Ｓ４０４に進み拡張モジュール２０５は、印刷情報の更新処理を行う。一方、Ｓ４０３でＮｏと判別されると、Ｓ４０５に進み拡張モジュール２０５は、受信した命令が、設定項目における設定値の「取得」要求であるのかを判断する。Ｓ４０５でＹｅｓと判別されると、Ｓ４０６に進み拡張モジュール２０５は、設定項目の設定値の取得処理を行う。さらに、Ｓ４０５でＮｏと判別されると、Ｓ４０７に進み拡張モジュール２０５は、受信した命令が、設定項目における設定値群の「取得」要求であるのかを判断する。Ｓ４０７でＹｅｓと判別されると、Ｓ４０８に進み拡張モジュール２０５は、設定項目の設定値群の取得処理を行う。
【００２５】
図５は、Ｓ４０４における印刷情報の更新処理の流れを表わすフローチャートである。ここでは、拡張モジュール２０５が、アプリケーション２０１から指定された設定値を設定項目に対して設定し、印刷オブジェクトの形で受け取った印刷情報を更新する処理を行う。まず、Ｓ５０１において拡張モジュール２０５は、プリンタドライバ２０３がサポートしているプリンタ２で使用可能な印刷情報をドライバ部２０４から取得する。次に、拡張モジュール２０５は、アプリケーション２０１から更新要求のあった設定項目に関する情報を、取得した印刷情報の中から抽出し、その中にアプリケーション２０１から指定された設定値が含まれているかを判断する（Ｓ５０２）。Ｓ５０２でＮｏと判別されると、拡張モジュール２０５は、アプリケーション２０１から指定された設定値はプリンタドライバ２０３がサポートしていない設定値であるとみなし、Ｓ５０５に進む。そして、Ｓ５０５において、拡張モジュール２０５は、アプリケーション２０１から指定された設定値について、プリンタドライバ２０３がサポートする設定値の中に置き換え可能な設定値が存在するかを判断する。
【００２６】
ここで、Ｓ５０５において置き換え可能な設定値が存在するか否かを判断する情報テーブルの一例を図９に示す。図９において４０００は、プリンタ２で使用可能な設定項目において、プリンタドライバ２０３がサポートしていない設定値に対して、置き換え可能な設定値の情報を表わす置き換え可能テーブルである。置き換え可能テーブル４０００では、用紙サイズという設定項目において、プリンタドライバ２０３でサポートしている設定値の中で「５ｘ７サイズ」に置き換えることができる設定値が存在することを表わしている。すなわち、プリンタドライバ２０３では非サポートである「２Ｌサイズ」に対しては、「５ｘ７サイズ」が置き換え可能な用紙サイズとして決定される。
【００２７】
図５の説明に戻る。拡張モジュール２０５は、置き換え可能な設定値が存在しないと判断した場合（Ｓ５０５／Ｎｏ）、指定された設定値はプリンタドライバ２０３に対して有効ではないとみなし、Ｓ５０８において非サポートであることを伝える情報をアプリケーション２０１に返却して、処理を終了する。一方、置き換え可能な設定値が存在すると判断した場合（Ｓ５０５／Ｙｅｓ）、印刷オブジェクトに対して、ドライバ部２０４が参照する情報を記述したキーに、指定された設定値ではなく置き換え可能な設定値を書き込む（Ｓ５０６）。次に、拡張モジュール２０５は、印刷オブジェクトに対して、アプリケーション２０１とやりとりするための情報を記述するキーを新たに設け、ここにアプリケーション２０１から指定された設定値を書き込む（Ｓ５０７）。一方、Ｓ５０２でＹｅｓと判別されると、拡張モジュール２０５は、アプリケーション２０１から指定された設定値はプリンタドライバ２０３がサポートしている設定値であるとみなし、Ｓ５０３に進む。そして、Ｓ５０３において拡張モジュール２０５は、印刷オブジェクトに対して、ドライバ部２０４が参照する情報を記述したキーに、アプリケーション２０１から指定された設定値を書き込む。そして、最後にＳ５０４において拡張モジュール２０５は、更新した印刷オブジェクトをアプリケーション２０１に返却して、処理を終了する。
【００２８】
図６は、Ｓ４０６における設定項目の設定値の取得処理の流れを表わすフローチャートである。ここでは、拡張モジュール２０５が、アプリケーション２０１から指定された設定項目に対して、現在設定されている設定値を取得してアプリケーション２０１に返却する処理を行う。まず、Ｓ６０１において拡張モジュール２０５は、アプリケーション２０１から印刷オブジェクトの形で受け取った印刷情報の中に、アプリケーション２０１とやりとりするための情報を記述したキーが存在するかを判断する。印刷オブジェクトにこのキーが存在していれば（Ｓ６０１／Ｙｅｓ）、Ｓ６０２に進み拡張モジュール２０５は、アプリケーション２０１とやりとりするための情報を記述したキーの設定値を取得する。一方、アプリケーション２０１とやりとりするための情報を記述したキーが存在していなければ（Ｓ６０１／Ｎｏ）、Ｓ６０４に進み拡張モジュール２０５は、ドライバ部２０４が参照する情報を記述したキーがから設定値を取得する。そして、Ｓ６０３において拡張モジュール２０５は、取得した設定値をアプリケーション２０１に返却して、処理を終了する。
【００２９】
たとえば、用紙サイズ項目に置き換え可能な設定値を持つプリンタドライバ２０３に対して、アプリケーション２０１から拡張ＤＤＩを利用してプリンタドライバ２０３がサポートしていない用紙サイズ「２Ｌサイズ」の設定値が指定された場合を考える。また、このときの印刷オブジェクト３０００の状態を図８（ｂ）に示す。Ｓ５０２において、「２Ｌサイズ」を置き換え可能な設定値が存在するか判断する。図９に示した置き換え可能テーブル４０００によれば、「２Ｌサイズ」に対しては「５ｘ７サイズ」が置き換え可能な設定値として決定される。そして、Ｓ５０６においてドライバ部２０４が参照する情報を記述したキーには、置き換え可能な設定値として決定された「５ｘ７サイズ」を書き込む。図８（ｂ）に示した印刷オブジェクト３０００によれば、用紙サイズ情報３０３０に「５ｘ７サイズ」が書き込まれることになる。そして、Ｓ５０７においてアプリケーション２０１とやりとりするための情報を記述したキーにアプリケーション２０１から指定された設定値「２Ｌサイズ」を書き込む。図８（ｂ）に示した印刷オブジェクト３０００によれば、アプリケーション２０１とやりとりするための情報３０４０に「２Ｌサイズ」が書き込まれることになる。次に、アプリケーション２０１が、用紙サイズ項目に対して、拡張ＤＤＩを利用してプリンタドライバ２０３に現在設定されている設定値の取得を要求した場合を考える。Ｓ６０１において印刷オブジェクトにアプリケーション２０１とやりとりするための情報を記述したキーが存在するか否かを判断する。図８（ｂ）に示した印刷オブジェクト３０００によれば、アプリケーション２０１とやりとりするための情報３０４０が存在している。すなわち、Ｓ６０２においてアプリケーション２０１とやりとりするための情報３０４０から「２Ｌサイズ」設定を取得することができ、Ｓ６０３においてアプリケーション２０１に用紙サイズ項目の設定値として「２Ｌサイズ」設定を返却することができる。
【００３０】
このように、アプリケーション２０１とやりとりするための情報を新規に設けることで、アプリケーション２０１から指定された設定値を保持しておくことができる。つまり、アプリケーション２０１が指定した設定値が、プリンタドライバ２０３がサポートする他の設定値に置き換えられたとしても、アプリケーション２０１は自身が設定した設定値を再びプリンタドライバ２０３から拡張モジュール２０５を介して取得することが可能となる。
【００３１】
図７は、Ｓ４０８における設定項目の設定値群の取得処理の流れを表わすフローチャートである。ここでは、拡張モジュール２０５が、アプリケーション２０１から指定された設定項目に対して、プリンタ２で使用可能な設定値群をドライバ部２０４から取得してアプリケーション２０１に返却する処理を行う。まず、Ｓ７０１において拡張モジュール２０５は、プリンタドライバ２０３がサポートしているプリンタ２で使用可能な印刷情報をドライバ部２０４から取得する。次に、Ｓ７０２において拡張モジュール２０５は、アプリケーション２０１から指定された設定項目に関する情報を、取得した印刷情報の中から抽出する。このとき、指定された設定項目に対して、プリンタ２で使用可能な設定値が複数存在する場合には、設定値群として抽出される。そして、Ｓ７０３において拡張モジュール２０５は、アプリケーション２０１から指定された設定項目が、置き換え可能な設定値を持つか否かを判断する。図９に示す置き換え可能テーブル４０００によれば、設定項目欄に記載されている「用紙サイズ」とアプリケーション２０１から指定された設定項目が一致するか否かで判断が可能である。Ｓ７０３でＹｅｓと判別されると、Ｓ７０４に進み抽出された設定値群の中に置き換え可能な設定値として登録された値が含まれているかを判別する。Ｓ７０４でＹｅｓと判別されると、Ｓ７０５に進み拡張モジュール２０５は、置き換えられることが可能と判断された本来プリンタドライバ２０３がサポートしていない設定値を取得する。置き換え可能テーブル４０００によれば、抽出された設定値群の中に「５ｘ７サイズ」が含まれている場合には、プリンタドライバ２０３が非サポートの設定値「２Ｌサイズ」を取得することができる。そして、Ｓ７０６において拡張モジュール２０５は、Ｓ７０２において抽出された設定値群に、Ｓ７０５において取得した本来プリンタドライバ２０３が非サポートとしている設定値を追加する。そして、Ｓ７０７において拡張モジュール２０５は、アプリケーション２０１から指定された設定項目に対する設定値群をアプリケーション２０１に返却して、処理を終了する。一方、Ｓ７０３およびＳ７０４でＮｏと判別されると、Ｓ７０７に進み拡張モジュール２０５は、指定された設定項目には置き換え可能な設定値が存在しないとみなし、Ｓ７０２で抽出された設定値群をそのままアプリケーション２０１に返却して、処理を終了する。こうして、置き換え可能テーブル４０００の情報に基づいてプリンタドライバ２０３が非サポートとしている設定値を設定値群に追加することで、アプリケーション２０１のＵＩ上の設定項目のメニューに非サポート設定値を表示することが可能となる。
【００３２】
このようにして、本実施形態では、プリンタドライバ２０３が非サポートとしている設定値であっても、アプリケーション２０１からの設定情報の「取得」、および印刷情報の「更新」を行うことが可能となる。すなわち、用途に合わせて設定項目に表示制限を行っているようなアプリケーションに対して、プリンタドライバ２０３側の変更によって意図せず設定値が選択できなくなることを防ぐことが可能となる。
【００３３】
＜他の実施形態＞
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３４】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００３５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００３６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００３７】
１              ホストコンピュータ
２              プリンタ
２０１          アプリケーション
２０２          印刷システム
２０３          プリンタドライバ
２０４          ドライバ部
２０５          拡張モジュール部
２０６          Ｉ／Ｆ制御部
【図１】
2014013475.tif 000003
【図２】
2014013475.tif 000004
【図３】
2014013475.tif 000005
【図４】
2014013475.tif 000006
【図５】
2014013475.tif 000007
【図６】
2014013475.tif 000008
【図７】
2014013475.tif 000009
【図８】
2014013475.tif 000010
【図９】
2014013475.tif 000011