(57)【特許請求の範囲】
【請求項１】
第１種類のアプリケーションからの描画出力に応じて第１種類のプリンタドライバが処理可能な第１印刷情報に変換するための第１描画変換部と、第２種類のアプリケーションからの描画出力に応じて第２種類のプリンタドライバが処理可能な第２印刷情報に変換するための第２描画変換部とが動作し、前記第１および第２種類のプリンタドライバは印刷装置が解釈可能な印刷データを印刷装置に送信するコンピュータにより実行されるプログラムであって、
前記印刷データが送信される前に、出力先として呼び出されたプリンタドライバの種類と出力元のアプリケーションの種類とに基づいて、出力元のアプリケーションと出力先のプリンタドライバとの組み合わせが前記第１描画変換部または前記第２描画変換部による変換処理を必要とするか判定する判定手段と、
前記判定手段により前記第１描画変換部または前記第２描画変換部による変換処理を必要とすると判定された場合に、前記第１描画変換部または前記第２描画変換部による変換処理を必要としないもう１つのプリンタドライバに出力先を変更する旨の表示を行う変更表示手段と、
前記アプリケーションから出力先として前記もう一つのプリンタドライバが呼び出された場合、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映する設定反映手段としてコンピュータを機能させるためのプログラム。
【請求項２】
前記第１種類のプリンタドライバと前記第２種類のプリンタドライバで用いられる印刷設定画面は、共通のユーザインターフェースドライバにより提供されることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記変更表示手段は、印刷設定画面を介する印刷設定値の設定が完了した際に、正しい組み合わせとなるプリンタドライバに出力先を変更する旨の表示を行うことを特徴とする請求項１に記載のプログラム。
【請求項４】
前記判定手段により組み合わせが正しくないと判定される場合に、前記アプリケーションの名称と、印刷設定値とを関連づけて印刷設定保存領域に保存する保存手段と、
新たにプリンタドライバが呼び出された場合に、前記印刷設定保存領域に保存されている印刷設定値の組から、新たにプリンタドライバを呼びだしたアプリケーションの名称と、保持されている名称とが一致する印刷設定値を検索する検索手段として更にコンピュータを機能させ、
前記検索手段により一致する印刷設定値が検索される場合に、前記設定反映手段は、当該アプリケーションの名称に関連づけて保存されている印刷設定値を新たに呼び出された前記プリンタドライバに反映することを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記保存手段は、最初に呼び出されたプリンタドライバの種別を示す情報または、前記組合せを満たすもう１つのプリンタドライバの種別を示す情報を前記印刷設定値に関連付けて保存し、
前記検索手段は、プリンタドライバの種別を示す情報を用いて、印刷設定値を検索することを特徴とする請求項４記載のプログラム。
【請求項６】
前記設定反映手段により、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映した後に、前記印刷設定保存領域に保存されている印刷設定値を削除する削除手段として更にコンピュータを機能させることを特徴とする請求項４または５に記載のプログラム。
【請求項７】
前記設定反映手段は、印刷設定画面を介して設定可能な印刷設定値のうち、アプリケーションから設定できないプリンタドライバ独自の印刷設定値について反映することを特徴とする請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
第１種類のアプリケーションからの描画出力に応じて第１種類のプリンタドライバが処理可能な第１印刷情報に変換するための第１描画変換部と、第２種類のアプリケーションからの描画出力に応じて第２種類のプリンタドライバが処理可能な第２印刷情報に変換するための第２描画変換部とが動作し、前記第１および第２種類のプリンタドライバは印刷装置が解釈可能な印刷データを印刷装置に送信する情報処理装置であって、
前記印刷データが送信される前に、出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、出力元のアプリケーションと出力先のプリンタドライバとの組み合わせが前記第１描画変換部または前記第２描画変換部による変換処理を必要とするか判定する判定手段と、
前記判定手段により前記第１描画変換部または前記第２描画変換部による変換処理を必要とすると判定された場合に、前記第１描画変換部または前記第２描画変換部による変換処理を必要としないもう１つのプリンタドライバに出力先を変更する旨の表示を行う変更表示手段と、
前記アプリケーションから出力先として前記もう一つのプリンタドライバが呼び出された場合、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映する設定反映手段と
を備えることを特徴とする情報処理装置。
【請求項９】
前記第１種類のプリンタドライバと前記第２種類のプリンタドライバで用いられる印刷設定画面は、共通のユーザインターフェースドライバにより提供されることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記変更表示手段は、印刷設定画面を介する印刷設定値の設定が完了した際に、正しい組み合わせとなるプリンタドライバに出力先を変更する旨の表示を行うことを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記前記判定手段により組み合わせが正しくないと判定される場合に、前記アプリケーションの名称と、印刷設定値とを関連づけて印刷設定保存領域に保存する保存手段と、
新たにプリンタドライバが呼び出された場合に、前記印刷設定保存領域に保存されている印刷設定値の組から、新たにプリンタドライバを呼びだしたアプリケーションの名称と、保持されている名称とが一致する印刷設定値を検索する検索手段とを更に備え、
前記検索手段により一致する印刷設定値が検索される場合に、前記設定反映手段は、当該アプリケーションの名称に関連づけて保存されている印刷設定値を新たに呼び出された前記プリンタドライバに反映することを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記保存手段は、最初に呼び出されたプリンタドライバの種別を示す情報または、前記組合せを満たすもう１つのプリンタドライバの種別を示す情報を前記印刷設定値に関連付けて保存し、
前記検索手段は、プリンタドライバの種別を示す情報を用いて、印刷設定値を検索することを特徴とする請求項１１記載の情報処理装置。
【請求項１３】
前記設定反映手段により、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映した後に、前記印刷設定保存領域に保存されている印刷設定値を削除する削除手段として更にコンピュータを機能させることを特徴とする請求項１１または１２に記載の情報処理装置。
【請求項１４】
前記設定反映手段は、印刷設定画面を介して設定可能な印刷設定値のうち、アプリケーションから設定できないプリンタドライバ独自の印刷設定値について反映することを特徴とする請求項８乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
第１種類のアプリケーションからの描画出力に応じて第１種類のプリンタドライバが処理可能な第１印刷情報に変換するための第１描画変換部と、第２種類のアプリケーションからの描画出力に応じて第２種類のプリンタドライバが処理可能な第２印刷情報に変換するための第２描画変換部とが動作し、前記第１および第２種類のプリンタドライバは印刷装置が解釈可能な印刷データを印刷装置に送信する情報処理装置における印刷設定管理方法であって、
前記印刷データが送信される前に、出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、出力元のアプリケーションと出力先のプリンタドライバとの組み合わせが前記第１描画変換部または前記第２描画変換部による変換処理を必要とするか判定する判定工程と、
前記判定工程により前記第１描画変換部または前記第２描画変換部による変換処理を必要とすると判定された場合に、前記第１描画変換部または前記第２描画変換部による変換処理を必要としないもう１つのプリンタドライバに出力先を変更する旨の表示を行う変更表示工程と、
前記アプリケーションから出力先として前記もう一つのプリンタドライバが呼び出された場合、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映する設定反映工程と
を備えることを特徴とする情報処理方法。
【請求項１６】
前記第１種類のプリンタドライバと前記第２種類のプリンタドライバで用いられる印刷設定画面は、共通のユーザインターフェースドライバにより提供されることを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記変更表示工程は、印刷設定画面を介する印刷設定値の設定が完了した際に、正しい組み合わせとなるプリンタドライバに出力先を変更する旨の表示を行うことを特徴とする請求項１５に記載の情報処理方法。
【請求項１８】
前記前記判定工程により組み合わせが正しくないと判定される場合に、前記アプリケーションの名称と、印刷設定値とを関連づけて印刷設定保存領域に保存する保存工程と、
新たにプリンタドライバが呼び出された場合に、前記印刷設定保存領域に保存されている印刷設定値の組から、新たにプリンタドライバを呼びだしたアプリケーションの名称と、保持されている名称とが一致する印刷設定値を検索する検索工程とを更に備え、
前記検索工程により一致する印刷設定値が検索される場合に、前記設定反映工程は、当該アプリケーションの名称に関連づけて保存されている印刷設定値を新たに呼び出された前記プリンタドライバに反映することを特徴とする請求項１５乃至１７のいずれか１項に記載の情報処理方法。
【請求項１９】
前記保存工程は、最初に呼び出されたプリンタドライバの種別を示す情報または、前記組合せを満たすもう１つのプリンタドライバの種別を示す情報を前記印刷設定値に関連付けて保存し、
前記検索工程は、プリンタドライバの種別を示す情報を用いて、印刷設定値を検索することを特徴とする請求項１８記載の情報処理方法。
【請求項２０】
前記設定反映工程により、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定として反映した後に、前記印刷設定保存領域に保存されている印刷設定値を削除する削除工程として更にコンピュータを機能させることを特徴とする請求項１８または１９に記載の情報処理方法。
【請求項２１】
前記設定反映工程は、印刷設定画面を介して設定可能な印刷設定値のうち、アプリケーションから設定できないプリンタドライバ独自の印刷設定値について反映することを特徴とする請求項１５乃至２０のいずれか１項に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば異なる複数のグラフィクスエンジンを用いて印刷処理等を行える情報処理装置および情報処理装置における印刷設定反映方法とプログラムに関するものである。
【背景技術】
【０００２】
ホストコンピュータで実行されるアプリケーションから画像やテキストを印刷装置にて印刷するために、オペレーティングシステムは図３に示すような構成を取るのが一般的である。すなわち、アプリケーション１０１はグラフィクスエンジン１０３に対して描画データを渡し、その描画データはグラフィクスエンジン１０３にて加工されてからプリンタドライバ１０４に渡される。プリンタドライバは印刷装置に対する印刷データ（一般的にはＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を生成する。その印刷データはスプーラ１０５に格納された後、印刷装置１５００に送られる。
【０００３】
特にグラフィクスエンジン１０３は、アプリケーション１０１で作成された描画データの解像度を変換したり、プリンタドライバ１０４の処理能力に合わせてシミュレート処理等といった描画データの加工を行う。これによって、アプリケーション１０１とプリンタドライバ１０４とが互いに非依存な関係で動作することが出来る。グラフィクスエンジン１０３は、通常ＯＳ（オペレーティングシステム）１０２の一部として提供される。
【０００４】
一方、グラフィクスエンジン１０３は必ずしも一つであるとは限らず、二つ以上のグラフィクスエンジンが共存する構成（ＯＳ）が存在する。
【０００５】
例えば、２００５年に米国シアトルにてＷｉｎＨＥＣ  ２００５というハードウェアエンジニアリングカンファレンスがマイクロソフト社によって開催された。この場にて、Ｍｉｃｒｏｓｏｆｔの新しいＯＳ（Ｗｉｎｄｏｗｓ（登録商標）Ｖｉｓｔａなる名称を持つ。）は、図１に示すような２つのグラフィクスエンジンが共存する構成になることが紹介された（非特許文献１）。
【０００６】
従来のマイクロソフト社のプリンティングシステムは、Ｗｉｎ３２  ＡＰＩというＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を使用するアプリケーション（以後Ｗｉｎ３２アプリケーションと記述）により、ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるグラフィクスエンジンを使用する。そしてＧＤＩから呼び出されるプリンタドライバ（以後ＧＤＩプリンタドライバと記述）によって、描画データから印刷データを作成する、というものであった。この印刷処理フローを本実施形態ではＧＤＩプリントパスという。
【０００７】
Ｗｉｎｄｏｗｓ（登録商標）Ｖｉｓｔａでは、従来のＧＤＩプリントパスに加え、ＸＰＳプリントパスという新しい印刷処理フローが追加される。ＸＰＳプリントパスでは、ＷｉｎＦｘ  ＡＰＩというＡＰＩを使用するアプリケーション（以後ＷｉｎＦｘアプリケーションと記述）によりＷＰＦ（Windows(登録商標） Presentation Foundation）と呼ばれるグラフィクスエンジンを使用する。そしてＷＰＦグラフィクスエンジンにより、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）形式の描画データを、プリンタドライバ（以後ＸＰＳプリンタドライバ）に渡し、プリンタドライバが印刷データに変換する。
【０００８】
さらにこのＧＤＩとＷＰＦといったグラフィクスエンジンは、互いに連携することが出来る。この連携によりＷｉｎ３２アプリケーションからＸＰＳプリンタドライバに描画データを渡すことが出来たり、ＷｉｎＦｘアプリケーションからＧＤＩプリンタドライバに描画データを渡すことが出来るようになる。
【０００９】
この連携のために、ＧＤＩプリンタドライバを用いてＷｉｎＦｘアプリケーションから印刷を行う場合、描画データは、ＷＰＦグラフィックエンジンでＸＰＳ形式の描画データに変換され、さらにＸＰＳ形式からＥＭＦ形式の描画データに変換される。変換された描画データはＥＭＦスプールファイルに格納された後、ＧＤＩドライバにて印刷データへの変換が行われる。
【００１０】
また、ＸＰＳプリンタドライバを用いてＷｉｎ３２アプリケーションから印刷を行う場合、描画データは、ＧＤＩグラフィックエンジンでＥＭＦ形式の描画データに変換され、さらにＥＭＦ形式からＸＰＳ形式の描画データに変換される。変換された描画データは、ＸＰＳスプールファイルに格納された後、ＸＰＳプリンタドライバにて印刷データへ変される。
【００１１】
このようにＷｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおいては４つの印刷処理フローが用意される。これにより、ＧＤＩプリンタドライバあるいはＸＰＳプリンタドライバのどちらか一方を用意すれば、Ｗｉｎ３２アプリケーションおよびＷｉｎＦｘアプリケーション両方からの印刷処理に対応することが出来る。
【非特許文献１】マイクロソフトコーポレーション、「Advances in Windows（登録商標） Printing:TWPR05001_WinHEC05.ppt」、［オンライン］、平成１６年５月７日、［平成１７年２月２８日検索］、インターネット、＜ＵＲＬ：http://www.microsoft.com/whdc/device/print/default.mspx＞
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＸＰＳ形式とＥＭＦ形式とは異なるため、描画データ形式の変換には、印刷品質や機能、印刷速度等の点で課題が存在する。
【００１３】
例えばＥＭＦ形式でサポートされているＲＯＰ演算（ラスターオペレーション処理演算）のような論理演算を含む描画データは、ＸＰＳ形式ではサポートされていない。そのため、米国マイクロソフト社が決定する仕様によっては、論理演算を含む描画データに対しては、ＧＤＩ→ＸＰＳ変換モジュールで変換する際に論理演算情報が欠落してしまうおそれがある。ＸＰＳプリンタドライバには論理演算情報が削除された描画データが渡される場合、Ｗｉｎ３２アプリケーションにおいて意図された出力結果をＸＰＳプリンタドライバで作成することが出来なくなる可能性がある。
【００１４】
逆にＸＰＳ形式においてサポートされている高度なグラフィクス描画データは、ＥＭＦ形式においてサポートされていない。そのため、そのような描画データに対してはＸＰＳ→ＧＤＩ変換モジュールで変換する際に、フラッタリングと呼ばれる局所的なビットマップ化が行われる。その場合、グラフィクスデータがビットマップデータに変換されてしまうことにより、ＧＤＩプリンタドライバでは元のオブジェクト属性が判断出来なくなってしまい、オブジェクト属性に応じた出力結果を作成することが出来ない。すなわち、データ形式の変換により出力される画像品質が劣化する。例えば、プリンタドライバでＮページ印刷を行う場合、ビットマップ化されたデータを縮小して配置するため、グラフィクスの描画オブジェクトを縮小するサイズで描画する場合に比べて画質が低下してしまう。
【００１５】
また、例えばＸＰＳ形式においてサポートされる電子署名情報は、ＥＭＦ形式においてはサポートされていない。またＥＭＦ形式においてサポートされる、アプリケーションからの情報を直接ＧＤＩプリンタドライバに伝える処理は、ＸＰＳ形式においてはサポートされていない。そのため、ＸＰＳ形式からＥＭＦ形式へ、あるいはその逆の変換が行われる場合、変換元の形式の描画データに、変換後の形式ではサポートされない機能を使用する命令が含まれていると、その機能が遂行されることはない。すなわち、この様な場合には、実現できない機能が存在する。
【００１６】
また、ＧＤＩ→ＸＰＳ変換やＸＰＳ→ＧＤＩ変換等の処理が発生することにより、処理のオーバーヘッドが生じ、変換が不要な処理径路に較べると印刷処理速度が劣化してしまうおそれがある。
【００１７】
以上のように、データ形式の変換が行われると、品質面、機能面、速度面の何れの点においても問題が生じる。そのため、データ形式の変換が行われるような印刷処理径路を避けることが望ましい。
【００１８】
そのために、同じ印刷装置に対するＸＰＳプリンタドライバとＧＤＩプリンタドライバの両者をコンピュータにインストールしておいても、使用するプリンタドライバの選択は利用者に任されている。すなわち、Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおけるグラフィクスエンジンは、データ形式の変換が必要ない処理径路の選択を動的に行うことはない。さらに、一般の利用者の多くは、アプリケーションがＷｉｎ３２アプリケーションなのかＷｉｎＦｘアプリケーションなのかを意識したり、印刷処理フローが４通りあることを認識していない。そのため、ひとつのプリンタドライバをデフォルトのプリンタドライバとしていったん選択してしまうと、アプリケーションの種類に関わらず選択したプリンタドライバが使用される。このように、印刷処理径路において、ＧＤＩ→ＸＰＳ変換やＸＰＳ→ＧＤＩ変換というデータ形式の変換を避けることは困難であった。
【００１９】
本発明は上記従来例に鑑みてなされたもので、上記課題を解決することを目的とする。さらに、本発明は、上記課題を解決することに加えて、使用するプリンタドライバを、アプリケーションが使用するグラフィクスエンジンに対応したプリンタドライバに変更した場合であっても、変更前のプリンタドライバに対していったん入力された印刷設定を変更後のプリンタドライバに適用できる情報処理装置および情報処理装置における印刷設定反映方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために本発明は以下の構成を備える。すなわち、第１種類のアプリケーションから描画出力に応じて第１種類のプリンタドライバが処理可能な第１印刷情報に変換するための第１描画変換部と、第２種類のアプリケーションからの描画出力に応じて第２種類のプリンタドライバが処理可能な第２印刷情報に変換するための第２描画変換部とが動作するコンピュータにより実行されるプログラムであって、
出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第１種類のアプリケーションと前記第１種類のプリンタドライバとの組み合わせ、または前記第２種類のアプリケーションと前記第２種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
前記判定手段により前記組み合わせとなっていないと判定された場合に、前記組み合わせを満たすもう１つのプリンタドライバに出力先を変更する旨の表示を行う変更表示手段と、
前記アプリケーションから出力先として前記もう一つのプリンタドライバが呼び出された場合、最初に呼び出されたプリンタドライバに対して設定された印刷設定値を、新たに呼び出されたプリンタドライバに対する印刷設定ととして反映する設定反映手段と
してコンピュータを機能させる。
【発明の効果】
【００２１】
本発明により、アプリケーションが印刷処理に使用するグラフィクスエンジンに直接対応したプリンタドライバによる印刷処理を、予めそのプリンタドライバを使用するプリンタドライバとして選択しておかなくとも行うことができる。また、使用するプリンタドライバを変更した際には、変更前のプリンタドライバに対する印刷設定値を、変更後のプリンタドライバに対する印刷設定値として印刷に反映することができる。これにより、ユーザは、アプリケーションプログラムで作成した高品質な出力物を、特別な手間をかけることなく迅速に入手できる。
【発明を実施するための最良の形態】
【００２２】
［実施形態１］
＜コンピュータの構成＞
本発明に係る印刷制御装置の一実施形態について説明する。印刷制御装置はコンピュータ（情報処理装置）により実現されている。そのコンピュータのソフトウエア構成例を示す。コンピュータのハードウエア構成は、通常の汎用コンピュータと同様に、ＣＰＵ、メモリ、ユーザインターフェースデバイス（キーボードやディスプレイ等）、ファイル記憶装置などから構成される。
【００２３】
図１は、複数のグラフィクスエンジンが共存する例として、Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおける印刷処理フローおよび印刷処理のためのソフトウエアコンポーネントを示す。Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおいて、アプリケーションは、第１種類のアプリケーションであるＷｉｎ３２アプリケーション（２０１）と第２種類のアプリケーションであるＷｉｎＦｘアプリケーション（２１１）の２種類に区別される。グラフィクスエンジンは、第１描画変換部であるＧＤＩ（２０２）と第２描画変換部であるＷＰＦ（２１２）の２つがＯＳ（１０２）上に存在する。ここでＷｉｎ３２アプリケーション（２０１）は、ＧＤＩ（２０２）に対して第１描画データであるＧＤＩ関数を渡し、ＷｉｎＦｘアプリケーション（２１１）はＷＰＦ（２１２）に対して第２描画データであるＷＰＦ  ＡＰＩ形式データを渡す。また、プリンタダライバは、第１種類のプリンタドライバであるＧＤＩプリンタドライバ（２０３）と第２種類のプリンタドライバであるＸＰＳプリンタドライバ（２１３）の２種類に区別される。ＧＤＩプリンタドライバ（２０３）はＧＤＩ（２０２）から描画データを受け取り印刷装置１５００に対する印刷データに変換する。ＸＰＳプリンタドライバ（２１３）はＷＰＦ（２１２）から描画データを受け取り印刷装置１５００に対する印刷データに変換する。プリンタドライバで作成された印刷データは、スプーラ（１０５）を経て印刷装置（１５００）に送信される。
【００２４】
ここで、Ｗｉｎ３２アプリケーション（２０１）からＧＤＩ（２０２）を経由してＧＤＩプリンタドライバ（２０３）で印刷データを作成する印刷処理フローをＧＤＩプリントパスと呼ぶ。ＷｉｎＦｘアプリケーション（２１１）からＷＰＦ（２１２）を経由してＸＰＳプリンタドライバ（２１３）で印刷データを作成する印刷処理フローをＸＰＳプリントパスと呼ぶ。ここで、ＧＤＩプリントパスとＸＰＳプリントパスを、ストレートプリントパスと総称する。ただし、印刷処理フローはＧＤＩプリントパスとＸＰＳプリントパスだけでなく、Ｗｉｎ３２アプリケーション（２０１）からＧＤＩ（２０２）を経てＸＰＳプリンタドライバ（２１３）で印刷データを作成する印刷処理フローと、ＷｉｎＦｘアプリケーション（２１１）からＷＰＦ（２１２）を経てＧＤＩプリンタドライバ（２０３）で印刷データを作成する印刷処理フローも存在する。これらのパスは、ＧＤＩ→ＸＰＳ変換部３０２およびＸＰＳ→ＧＤＩ変換部３１２により、データ形式を変換することで実現される。ここで、各グラフィックエンジンでお互いのデータ形式に変換するプリントパスを、クロスプリントパスと総称する。
【００２５】
図２を用いて印刷処理フローの説明を行う。図２は、Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおける、２つのグラフィクスエンジン共存の仕組みを示す。Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおける印刷処理フローとしてはフロー３５１、３５２、３５３、３５４の４種類が存在する。
【００２６】
印刷処理フロー３５１は、ＧＤＩプリントパスを示している。Ｗｉｎ３２アプリケーション２０１から渡される描画データは、ＧＤＩ２０２にてＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ）形式でＥＭＦスプールファイルとして格納される。その後ＧＤＩプリンタドライバ２０３にて印刷データへの変換が行われる。
【００２７】
印刷処理フロー３５４は、Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡで追加されるＸＰＳプリントパスを示している。ＷｉｎＦｘアプリケーション２１１から渡される描画データは、ＷＰＦ２１２にてＸＰＳスプールファイル３１１に格納され、その後ＸＰＳプリンタドライバ２１３にて印刷データへの変換が行われる。
【００２８】
印刷処理フロー３５２は、ＷｉｎＦｘアプリケーション２１１からのデータをＧＤＩプリンタドライバ２０３で印刷する場合の印刷処理フローを示している。ＷｉｎＦｘアプリケーション２１１から渡される描画データは、ＷＰＦ２１２を経由してＸＰＳ→ＧＤＩ変換モジュール３１２にてＥＭＦ形式の描画データに変換される。変換された描画データはＥＭＦスプールファイルに格納された後、ＧＤＩドライバ２０３にて印刷データへの変換が行われる。
【００２９】
印刷処理フロー３５３は、Ｗｉｎ３２アプリケーション２０１からＸＰＳプリンタドライバ２１３で印刷する場合の処理フローを示している。Ｗｉｎ３２アプリケーション２０１から渡される描画データは、ＧＤＩ２０２を経由してＧＤＩ→ＸＰＳ変換モジュール３０２にてＸＰＳ形式の描画データに変換される。変換された描画データは、ＸＰＳスプールファイル３１１に格納された後、ＸＰＳプリンタドライバ２１３にて印刷データへ変される。
【００３０】
図４は、本実施形態のコンピュータを含むプリンタ制御システムの構成を説明するブロック図である。なお特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
【００３１】
図４において、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００３２】
また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。
【００３３】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。外部メモリ１１には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等が記憶される。本発明に係るプリンタドライバも外部メモリ１１に保存される。
【００３４】
プリンタコントローラ（ＰＲＴＣ）８は、所定の双方向性インターフェース２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。
【００３５】
また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００３６】
プリンタ１５００において、プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００３７】
また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１３のデータ用ＲＯＭにはハードディスク等の外部メモリ１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【００３８】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。ＲＡＭ１９は、ＣＰＵ１２の主メモリやワークエリア等として機能するＲＡＭでる。ＲＡＭ１９は、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。
【００３９】
外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル１８には、操作のためのスイッチおよびＬＥＤ表示器等が配されている。また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００４０】
＜ドライバの詳細な構成＞
図５は、本実施形態に関わるＧＤＩプリンタドライバ２０３とＸＰＳプリンタドライバ２１３の構成を示す。図５では、アプリケーションおよびグラフィクスエンジンについては記載を省略し、ひとつのものであるかのように示した。もちろん、図１に示すように、プリンタドライバは、グラフィクスエンジンからそれぞれ対応した描画データを入力する。
【００４１】
本実施形態においては、印刷装置（１５００）に対し、ＧＤＩプリンタドライバ（２０３）とＸＰＳプリンタドライバ（２１３）の両者がＯＳ（１０２）にインストールされている。尚、ＧＤＩプリンタドライバ２０３とＸＰＳプリンタドライバ２１３は、同一のプリンタを出力先とする関係にある。
【００４２】
ＧＤＩプリンタドライバ（２０３）は、ＧＤＩ  ＵＩ（ユーザインターフェースの略称）ドライバ（５０１）とＧＤＩグラフィクスドライバ（５０２）より構成される。ＧＤＩ  ＵＩドライバ（５０１）は、プリンタドライバのユーザインターフェースの表示や、ユーザから入力された印刷設定情報をレジストリに保存する。ＧＤＩグラフィクスドライバ（５０２）は、グラフィクスエンジン（１０３）から対応する描画データ（ＤＤＩ関数：Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）を受け取り、ＧＤＩ  ＵＩドライバ（５０１）で保存された印刷設定情報に応じて描画データから印刷データを作成する。
【００４３】
ＸＰＳプリンタドライバ（５１１）は、ＸＰＳ  ＵＩドライバ（５１１）とＸＰＳグラフィクスドライバ（５１２）より構成される。ＸＰＳ  ＵＩドライバ（５１１）は、プリンタドライバのユーザインターフェースの表示や、ユーザから入力された印刷設定情報をレジストリに保存する。ＸＰＳグラフィクスドライバ（５１２）は、グラフィクスエンジン（１０３）から対応する描画データ（ＸＰＳデータ）を受け取り、ＸＰＳ  ＵＩドライバ（５１１）で保存された印刷設定情報に応じて描画データから印刷データを作成する。
【００４４】
ここで、ＧＤＩ  ＵＩドライバ（５０１）とＸＰＳ  ＵＩドライバ（５１１）は、上述した各プリンタドライバが確保するレジストリとは別に、共通の印刷設定情報保存領域に設定情報（５２０）として保存し、アクセスすることが可能である。具体的には、ＧＤＩ  ＵＩドライバ（５０１）とＸＰＳ  ＵＩドライバ（５１１）は両者とも、ユーザにより設定された印刷設定を上述したレジストリと、この印刷設定情報保存領域に設定情報（５２０）を格納することが出来、またレジストリまたは設定情報（５２０）に格納された印刷設定をＵＩ設定画面に反映することが出来る。いずれのＵＩドライバも、ＤＥＶＭＯＤＥという定められた形式の刷設定情報を読み取り、また保存するためである。プリンタドライバ特有の印刷設定情報には、たとえば１ページのデータを１枚のシート上に縮小レイアウトするＮイン１や、用紙の方向、ページの順序、使用する用紙トレイ等を指定するための情報が含まれる。
【００４５】
なお、図５では、ＧＤＩ  ＵＩドライバ（５０１）とＸＰＳ  ＵＩドライバ（５１１）は異なったコンポーネントとして記述しているが、両者の機能やインターフェースを所有した形で一つの共通ＵＩドライバとして存在してもよい。その場合、ＧＤＩプリンタドライバ（２０３）は共通ＵＩドライバとＧＤＩグラフィクスドライバ（５０２）により構成され、ＸＰＳ  プリンタドライバ（２１３）は共通ＵＩドライバとＸＰＳグラフィクスドライバ（５１２）により構成されることになる。
【００４６】
図６は、本実施形態に関わるＧＤＩプリンタドライバとＸＰＳプリンタドライバの両者がインストールされている状況において、プリンタの状態を示すウインドウの例である。図６に示すように、一つの印刷装置（例としてプリンタＡ）に対して、ＧＤＩプリンタドライバ（２０３）が「プリンタＡ（ＧＤＩ）」として登録されている。また、同時に同じプリンタＡに対して、ＸＰＳプリンタドライバ（２１３）が「プリンタＡ（ＸＰＳ）」として登録されている。このように、一つの印刷装置に対して、ＧＤＩプリンタドライバ（２０３）とＸＰＳプリンタドライバ（２１３）という２つのプリンタドライバが共存している。なお米国マイクロソフト社のウインドウズ（登録商標）ＯＳでは、デフォルトのプリンタドライバを選択することができる。デフォルトとして選択されたプリンタドライバは、そのことを示す情報が、オペレーティングシステムからアクセス可能に記憶される。アプリケーションから印刷を行う際には、印刷が指示されると、通常はアプリケーションにおける印刷設定のユーザインターフェースが表示される。そしてそのアプリケーションのユーザインターフェースの中で、利用者は、プリンタドライバを選択することができる。特に選択がされないと、デフォルトのプリンタドライバが選択され、そのプリンタドライバを用いて印刷が行われる。図６では、デフォルトのプリンタドライバとして「プリンタＡ（ＸＰＳ）」２１３が選択されている。
【００４７】
＜ＵＩドライバの構成及び動作＞
図７は本発明の特徴を最もよくあらわす図面であり、本実施形態におけるＵＩドライバの構成を示すものである。図７のＵＩドライバは、上述したＧＤＩ  ＵＩドライバ（５１０）、ＸＰＳ  ＵＩドライバ５１１または、共通ＵＩドライバに相当する。本実施形態においては、ＧＤＩグラフィクスドライバ（５０２）およびＸＰＳグラフィクスドライバ（５１２）は特別な処理を行う訳ではなく、一般的なグラフィクスドライバの挙動と同様である。一方ＧＤＩ  ＵＩドライバ（２０３）およびＸＰＳ  ＵＩドライバ（２１３）において行われる処理および格納される処理部が本発明に係わる実施形態を特徴的に示す。もちろん前述したように、ＧＤＩ  ＵＩドライバ（２０３）およびＸＰＳ  ＵＩドライバ（２１３）とを共通化することもできる。その場合には、その共通ＵＩドライバが本発明の特徴的な構成を有し、また特徴的な処理を行う。なお、ＧＤＩ  ＵＩドライバ（２０３）およびＸＰＳ  ＵＩドライバ（２１３）および共通ＵＩドライバは、その機能は共通であるので、まとめてＵＩドライバと記述し、まとめて説明する。
【００４８】
本実施形態におけるＵＩドライバは、アプリケーション（２０１，２１１）からグラフィクスエンジン（２０２，２１２）を介してＵＩダイアログ表示に指示を受けると、アプリケーション情報取得部（７０３）により、ＵＩドライバを呼び出しているアプリケーション（１０１）の名称を取得する。また、そのアプリケーションが、Ｗｉｎ３２アプリケーション（２０１）とＷｉｎＦｘアプリケーション（２１１）のいずれであるかの情報（すなわちアプリケーションの種類情報）も取得する。本実施形態においては、Ｗｉｎ３２  ＡＰＩにて提供されているＧｅｔＭｏｄｕｌｅＦｉｌｅＮａｍｅ関数等を用いることで、ＵＩドライバを呼び出すプロセス名（実行ファイル名称）を取得できる。また、ＵＩドライバを呼んでいるアプリケーションが、Ｗｉｎ３２アプリケーション（２０１）とＷｉｎＦｘアプリケーション（２１１）のいずれかであるかは、以下のように判定できる。すなわち、前述の関数で取得した名称の実行ファイルが所持しているヘッダ部から、実行ファイルがインポートしているＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）を取得する。そして、そのインポートしているＤＬＬの中にＷｉｎＦｘアプリケーションに固有のモジュールが存在するか否かを判定する。たとえばＷｉｎＦｘに固有のモジュール名を予め表化して記憶しておき、その表から取得したモジュール名を検索し、ヒットすればＷｉｎＦｘ固有と判定できる。
【００４９】
このようにＷｉｎ３２アプリケーション（２０１）とＷｉｎＦｘアプリケーション（２１１）のいずれかを判断しているが、このほか、例えばＯＳがアプリケーションの種類を伝達するＡＰＩを提供しているのであればそれを利用してアプリケーションの種類情報を獲得できる。あるいは、ＵＩドライバにて、プロセス名（実行ファイル名称）に関連づけて、アプリケーション名称や、そのアプリケーションがＷｉｎ３２アプリケーションかＷｉｎＦｘアプリケーションかを示す種類情報を格納したアプリケーションテーブルを保存する方法も採用できる。この方法では、アプリケーションテーブルの保守のために、保守用のユーザインターフェースを表示し、利用者の入力によりそのアプリケーションテーブルを更新できることが望ましい。ＵＩドライバは、ＧｅｔＭｏｄｕｌｅＦｉｌｅＮａｍｅ関数等を用いることで、ＵＩドライバを呼び出すプロセス名を取得し、そのプロセス名でアプリケーションテーブルを検索する。ヒットすれば、該当するプロセス名に対応付けられたアプリケーション名が、ＵＩドライバを呼びだしたアプリケーションの名称である。また、該当するプロセス名に対応付けられたアプリケーションの種類が、ＵＩドライバを呼びだしたアプリケーションの種類である。
【００５０】
次に、アプリ・ドライバ判断部（７０４）により、アプリケーションとアプリケーションが呼び出しているＵＩドライバが適切であるかどうかを判断する。この判断基準に関しては、図８に後述する。適切であるとは、アプリケーションが使用するグラフィックエンジンとプリンタドライバとが整合していることである。すなわち、グラフィックエンジンから出力される描画データの形式を変換（たとえばＥＭＦ←→ＸＰＳ）する必要がないことである。アプリケーションが使用するグラフィックエンジンはアプリケーションの種類に応じて決まっている。したがって、アプリケーションの種類情報と、アプリケーションで選択されたプリンタドライバとが分かれば、適切であるか判定できる。アプリケーションの種類は上述した要領で取得できる。選択されているプリンタドライバは、その選択の情報が所定領域に保存されていればそれを参照することで特定できる。また、使用するプリンタドライバの情報（識別子等）が、印刷を行うアプリケーションプログラムからグラフィックエンジンに渡され、ＵＩドライバで参照できれば、それを参照することもできる。そしてプリンタドライバの識別子が参照できれば、それがＸＰＳプリンタドライバであるか、ＧＤＩプリンタドライバであるか（すなわちプリンタドライバの種類）は判定できる。たとえば、予めプリンタドライバの名称と、その種類情報とを対応付けたテーブルを作成して保存し、それを参照することでプリンタドライバの種類を判定できる。なお、適切であることを、同じ種類のアプリケーションとプリンタドライバとの組み合わせであると表現することもある。この同じ種類であるか否かの判定は、データ形式の変換の必要性を判定するためにグラフィックエンジンも行う必要があるので、それと同じ判定基準を採用することもできる。
【００５１】
アプリ・ドライバ判断部（７０４）により不適切と判断された場合、設定部（７０２）により印刷設定手段をユーザに対して提供する。すなわちＵＩ表示部（７０１）が印刷設定画面を表示する。ＵＩ設定保存部（７０６）は、ユーザが印刷設定画面に入力した設定値を、選択されたプリンタドライバ種別と関連付けてアプリケーションの名称（あるいは実行ファイル名称）と共に設定情報（５２０）として印刷設定情報保存領域に保存する。この印刷設定情報保存領域に関してはハードディスクやレジストリ（上述したレジストリとは異なるアドレスである）等、印刷設定処理が完了しても消えない領域であればいずれでよい。ただし、ＧＤＩ  ＵＩドライバ（５０１）とＸＰＳ  ＵＩドライバ（５１１）の両者がアクセスできる領域である必要がある。尚、印刷設定情報と関連付けられるプリンタドライバ種別は、クロスプリントパスとなる不適切と判断されたプリンタドライバ種別であるとして説明するが、不適切なプリンタドライバが選択された場合に、ストレートパスとなる適切なプリンタドライバの種別を示す情報を、印刷設定情報に関連づけて保存しておいてもよい。
【００５２】
ＵＩ設定部（７０２）によるユーザからの印刷設定、およびＵＩ設定保存部（７０６）による印刷設定の保存が行われた後、ドライバ切り替えダイアログ表示部（７０５）は、ダイアログボックス（図９参照）を表示する。このダイアログボックス９０１にはあらかじめ定められた文字列とともに、確認を促すボタン９０２が含まれる。利用者がこのボタン９０２を押すことで、このウインドウは閉じられる。現在選択されているプリンタドライバから、適切なプリンタドライバへのプリンタドライバの選択のし直し（切り替えともいう）は、利用者がアプリケーションの印刷指示ＵＩを介して行う。
【００５３】
そして、アプリ・ドライバ判断部（７０４）により適切と判断された場合、設定取得部（７０７）は設定情報（５２０）の取得を行う。その際、設定取得部（７０７）は、アプリケーション情報収集部（７０３）にて取得したアプリケーションの名称（あるいは実行ファイル名称）が、印刷設定情報に関連づけて保存されているアプリケーション名称と一致するか判定する。複数の設定情報が保存されている場合には、それぞれの印刷設定情報に関連づけられたアプリケーション名称に一致するものがあるか検索する。尚、この検索では、プリンタドライバ種別を示す情報に従って検索する。前述したように、不適切なプリンタドライバ種別を示す情報が関連付けられているシステムの場合には、今回選択されたプリンタドライバと出力先のプリンタが同一なクロスプリントパスとなるプリンタドライバ種別と一致する印刷設定情報を検索する。一方、適切なプリンタドライバ種別を示す情報が関連付けられているシステムの場合には、今回選択されたプリンタドライバ種別と一致する情報が関連付けられている印刷設定情報を検索する。
一致するアプリケーション名称に関連づけられた設定情報が保存されており、かつ、アプリケーションの印刷指示ＵＩからＵＩドライバの設定画面を表示する要求がある場合には、ＵＩ表示部７０１は、その設定情報のパラメータを反映させた設定画面をＣＲＴ１０に表示し、設定部（７０２）にて設定の入力を可能にする。利用者はその画面を参照して印刷設定を変更することもできる。こうして設定部（７０２）により印刷設定手段が提供される。もし利用者が表示された印刷設定あるいは変更した印刷設定のＵＩ画面を保存して印刷指示を入力したなら、選択されているグラフィクスプリンタドライバは、保存された印刷設定情報を用いて描画データを変換しプリンタに送出する。
【００５４】
また、アプリケーションが、ＵＩドライバの呼び出しを行わずに印刷要求を行ってきた場合にも、一致するアプリケーション名称に関連づけられた設定情報が保存されていれば、その設定情報のパラメータに従って、グラフィクスプリンタドライバ（ＧＤＩグラフィクスドライバまたはＸＰＳグラフィクスドライバ）が描画データを印刷データに変換してプリンタに送出する。
【００５５】
また設定取得部（７０７）は、ＵＩドライバを呼びだしたアプリケーションの名称と一致するアプリケーション名称を設定情報から見付けられなかった場合、予め定められたデフォルトの設定情報を、設定情報５２０に複製する。このデフォルトの設定情報は、プリンタドライバをインストールした際に、プリンタドライバと共にインストールされる。もちろんこの後変更することもできる。
【００５６】
ＵＩドライバによるこれらの処理により、クロスプリントパスとして指定されたＵＩドライバによってユーザが設定した印刷設定は、プリンタドライバ種別、アプリケーション名称および印刷設定が保存され、ストレートプリントパスとなるプリンタドライバを使用することをユーザに報知できる。そして、その後、ストレートプリントパスとなるプリンタドライバにユーザ選択により切り替えられても、プリンタドライバ種別とアプリケーション名称の検索が行われるため、切り替え後のプリンタドライバによって、保存されている印刷設定を引き継いで利用することができる。このため、切り替え前のプリンタドライバのＵＩドライバで行った印刷設定を、切り替え後のプリンタドライバによる印刷結果に反映することが出来る。
【００５７】
図８は、ＵＩドライバにおけるアプリ・ドライバ判断部で行う判断条件の一例を示したものである。図８の基準テーブルには、Ｗｉｎ３２アプリケーション（２０１）から印刷する際にＧＤＩプリンタドライバ（２０３）が選択されていれば適切であると判断される。このため該当する欄には「適切」と登録されている。これは、Ｗｉｎ３２アプリケーション（２０１）による印刷時にはＧＤＩグラフィクスエンジン（２０２）が利用され、ＧＤＩプリンタドライバ（２０３）ではＧＤＩグラフィクスドライバ（５０２）にてストレートプリントパスとして印刷処理が行われるためである。また、Ｗｉｎ３２アプリケーション（２０１）から印刷する際に、ＸＰＳ  ＵＩドライバ（５１１）が選択されていれば不適切と判断される。このため該当する欄には「不適切」とであると登録されている。これは、Ｗｉｎ３２アプリケーション（２０１）による印刷時にはＧＤＩグラフィクスエンジン（２０２）が利用されて、ＧＤＩ→ＸＰＳ変換（３０２）が行われ、ＸＰＳプリンタドライバ（２１３）ではＸＰＳグラフィクスドライバ（５１２）にてクロスプリントパスとして印刷処理が行われるためである。
【００５８】
同様に、ＷｉｎＦｘアプリケーション（２１１）からの印刷時にＸＰＳプリンタドライバ（２１３）が選択されていれば、適切であると判断される。これは、ＷｉｎＦＸアプリケーション（２１１）による印刷時にはＷＰＦグラフィクスエンジン（２１２）が利用され、ＸＰＳプリンタドライバ（２１３）では、ＸＰＳグラフィクスドライバ（５１２）にてストレートプリントパスとして印刷処理が行われるためである。また、ＷｉｎＦＸアプリケーション（２１１）からの印刷する際に、ＧＤＩ  ＵＩドライバ（５０１）が選択されていれば不適切と判断される。これは、ＷｉｎＦＸアプリケーション（２１１）による印刷時にはＷＰＦグラフィクスエンジン（２１２）が利用されて、ＸＰＳ→ＧＤＩ変換（３１２）が行われ、ＧＤＩプリンタドライバ（２０３）ではＧＤＩグラフィクスドライバ（５０２）にてクロスプリントパスとして印刷処理が行われるためである。そのため該当する項目には判断に応じた値が登録されている。
【００５９】
図９は、ＵＩドライバにおけるドライバ切り替えダイアログ表示部にて表示するダイアログの一例を示したものである。ユーザによる印刷設定が完了し、選択されているプリンタドライバがアプリケーションに対して不適切だった場合、適切なプリンタドライバを推奨する。それとともに、不適切なプリンタドライバのＵＩドライバで行った印刷設定は、適切なドライバを選択すると引き継がれることを表示する。なお、適切なプリンタドライバが何らかの形でアンインストールされて存在しない場合は、このダイアログは表示しない。なお、前述したように、適切なプリンタドライバとは、ストレートプリントパスとなり、かつ、出力先のプリンタが同一であるプリンタドライバである。
【００６０】
図１０は、ＵＩドライバにおける設定保存部７０６および設定取得部７０７でアクセスする設定情報５２０の例を示した図である。図１０にはアプリケーション名称と設定値との組が複数（５２０ａ〜５２０ｄ）保存されている。この設定情報（５２０）は、アプリケーション名称（実行ファイル名称）とＵＩドライバにて設定される設定値が対になっており、互いに関連づけられている。プリンタドライバが不適切と判定された場合、ＵＩドライバの設定保存部（７０６）によって、アプリケーション名称とそのときの設定値が保存される。ストレートプリントパスとなる適切なプリンタドライバと判定されれば、設定取得部（７０７）により設定情報（５２０）からアプリケーション名称を元に対になる設定値を検索する。ヒットした設定値のパラメータを利用して設定部（７０２）にその値を反映させることで、ユーザがドライバを切り替えた際の印刷設定の手間を省く。なお、設定部（７０２）にてパラメータを活用した後、その該当するアプリケーション名称と対になる設定値を設定情報（５２０）より削除すると、後に同じアプリケーションから印刷設定を行う際の混乱をさけることが出来る。逆に、アプリケーション毎にある固定の設定を提供する場合は、設定部（７０２）にてパラメータを活用した後においても削除しなければ良い。なお、プリンタドライバの種別を示す情報は、各アプリケーション名称と設定値の組の中で保持していてもよいし、プリンタドライバの種別毎にフォルダ階層を分けて、各アプリケーション名称と設定値の組を保持することで、関連付けていてもよい。
【００６１】
図１１は、本実施形態における、不適切なプリンタドライバが選択された場合のドライバ切り替えおよび設定の引継ぎの全体フローである。アプリケーション（１０１）から画像やテキストを印刷装置にて印刷する際、ユーザは、プリンタドライバにて印刷設定をおこなってから印刷を行うか、印刷設定を行わずにそのまま印刷を行うかのどちらかを選択する。
【００６２】
尚、本実施例においては、アプリケーション（１０１）からＵＩドライバを起動せずに直接グラフィクスドライバへの描画データの出力を行なった場合、ＵＩドライバがアプリケーションとプリンタドライバの適切・不適切判断を行うことや、適切なプリンタドライバを推奨するダイアログボックスを用いてユーザに知らせることは出来ない。ただし、上述したように、適切なプリンタドライバを推奨するダイアログボックスを用いてユーザに知らせた後に、アプリケーション（１０１）からＵＩドライバを起動せずに直接グラフィクスドライバへの描画データの出力を行なった場合は、保存済みの印刷設定情報を引きついて印刷データの生成を行うことは可能である。
【００６３】
図１１において、まず、ユーザがアプリケーション（１０１）から印刷する際に、プリンタドライバの印刷設定を行うようにアプリケーションに指示を出すと、アプリケーション（１０１）からはドライバ名称を元にＵＩドライバが呼び出される。同時にＵＩドライバへ設定指示が与えられる。設定指示が与えられたＵＩドライバは、図７の構成にて前述した通り、アプリケーション情報（名称及び種類）を取得し、アプリケーションと選択されたプリンタドライバとの相性（整合性あるいは適切さ）が判定される。不適切なプリンタドライバ（１１０１）であった場合は、ＯＫボタンの押下に応じて、ユーザが設定した印刷設定をアプリケーション名称と共に設定情報として保存し、ＵＩドライバ終了時に図９で前述したようなダイアログ表示を行う。不適切なプリンタドライバを選択した状態でＵＩドライバを起動させたことでダイアログ表示を受けたユーザは、そのダイアログ表示に基づいてアプリケーション上でプリンタドライバを選択し直す。その後再度印刷設定を行うようにアプリケーションに指示を出すと、アプリケーション（１０１）からは適切なドライバ名称を元に適切なＵＩドライバが呼び出され、同時にＵＩドライバへ設定指示が与えられる。
【００６４】
ここで呼び出されるＵＩドライバは適切なプリンタドライバ（１１０２）のＵＩドライバであり、不適切なプリンタドライバのＵＩドライバ（１１０１）にて保存された設定情報を元に設定画面を表示し、保存する。こうして、不適切なプリンタドライバが選択された状態でユーザが既に設定した情報を再度入力しないで良いようにする。そしてそのままユーザが適切なプリンタドライバへアプリケーションに対して印刷処理を指示することで、適切なグラフィクスドライバ（１１０３）が呼びだされる。こうして、図２の印刷処理フロー３５２や印刷処理フロー３５３といったデータ形式の変換を伴う処理径路を回避できる。これにより、描画不正や印刷速度、機能的に課題が存在する印刷処理フローを回避し、印刷処理フロー３５１（ＧＤＩプリントパス）や印刷処理フロー３５４（ＸＰＳプリントパス）のみで印刷処理を行うことが出来る。
【００６５】
図１２は、本実施形態におけるＵＩドライバに印刷設定ユーザインターフェース表示命令が渡されたときのＵＩドライバの処理フローを示したフローチャートである。
【００６６】
ユーザがアプリケーション（１０１）から印刷する際に、プリンタドライバの印刷設定をアプリケーション（１０１）に指示を出すと、アプリケーションは指定されたプリンタドライバのＵＩドライバに印刷設定ＵＩ表示命令を発行する。これによりプリンタドライバのＵＩドライバは表示命令を受け付ける（Ｓ１２−１）。
【００６７】
印刷設定ＵＩ表示命令を受け取ったＵＩドライバは、上述したようにＡＰＩを用いて、それ自身を呼び出したアプリケーションの名称（実行ファイル名）を取得する。また、その名称を元に呼び出したアプリケーションがＷｉｎ３２アプリケーションかＷｉｎＦｘアプリケーションかの種類情報を取得する（Ｓ１２−２）。
【００６８】
ＵＩドライバは、取得したアプリケーションの種類と、選択されているプリンタドライバの種類とに基づいて、ＵＩドライバを含むプリンタドライバが適切か否かを判断する（Ｓ１２−３）。これは図８の対応テーブルで示したように、アプリケーションとプリンタドライバの関係がストレートプリントパスになる関係であれば、適切であると判定される。
【００６９】
まず適切でないと判断された場合の処理について説明する。アプリケーションからの表示命令に従って、ＵＩドライバは、印刷設定ＵＩを表示し、ユーザから印刷設定の指定を受け付ける（Ｓ１２−４）。そして、ＯＫボタンの押下によりユーザから設定変更が完了したことを示す入力があると（Ｓ１２−５）、ＵＩドライバは、予め確保されている印刷設定情報保存領域に、呼び出し元アプリケーションの名称（実行ファイル名）と入力された設定値とを関連づけて設定情報（５２０）として保存する（Ｓ１２−６）。そのとき、ＵＩドライバは、適切なドライバを推奨する変更推奨ダイアログ（図９）の表示を行い（Ｓ１２−７）、Ｓ１２−３にて適切でないと判断された場合の処理が完了する。なお、上述したように、Ｓ１２−６で保存される設定情報には、選択された不適切なプリンタドライバの種別を示す情報、または推奨した適切なプリンタドライバの種別を示す情報が関連付けられている。
【００７０】
この後、利用者はステップＳ１２−７における表示に従ってプリンタドライバを選択し直し、印刷を試みることができる。なお、この後、アプリケーションからそのまま印刷要求が発行され、描画データの出力が行われた場合は、クロスプリントパスとして、描画データの形式変換が行われて、グラフィクスドライバを用いて印刷データが生成されて、プリンタへ印刷データが送信される。
【００７１】
一方Ｓ１２−３にて、呼び出し元のアプリケーションに対してプリンタドライバが適切であると判断された場合、ＵＩドライバは印刷設定情報保存領域に保存されている設定情報を読み込む（Ｓ１２−８）。そしてその設定情報を検索して、呼び出し元アプリケーションの名称（実行ファイル名）が保存されている判定する。保存されていれば、呼び出し元アプリケーションの名称（実行ファイル名）に対応した設定値が存在すると判定する（Ｓ１２−９）。尚、この検索では、上述したように、プリンタドライバ種別を示す情報を用いて、不適切なプリンタドライバが呼び出された際に保存された印刷設定情報であることを認識して、対応する設定値が存在するかを判定する。
呼び出し元アプリケーションに対応した設定値が存在する場合、その設定値を、これから行われる印刷ジョブの印刷設定情報として保存するとともに、指示された印刷設定ＵＩ表示画面に反映し、印刷設定情報保存領域に保存されている設定値とアプリケーション名称の組を削除する（Ｓ１２−１０）。その後ユーザから印刷設定の指定を受ける（Ｓ１２−１１）。この印刷設定ＵＩ表示画面を介して設定値が変更され、ＯＫボタンが押下されると、設定されている設定値は、レジストリに保存される。
【００７２】
そしてユーザから設定変更が完了したことを伝えられると（Ｓ１２−１２），Ｓ１２−３にて適切であると判断された場合の処理が完了する。この後、アプリケーションからグラフィックエンジンにデータが渡され、さらにそこからプリンタドライバに描画データが渡される。このとき、選択されているプリンタドライバは適切であると判定されているから、データ形式の変換は行われない。プリンタドライバは、ステップＳ１２−１１でレジストリに保存された印刷設定情報にしたがって描画データをＰＤＬで記述したデータに変換しプリンタに送信する。このように、本実施例では、印刷データの生成時には、レジストリに保存されている設定値を用い、不適切なＵＩドライバで設定された設定値は、共通の印刷設定情報保存領域に保存し、適切なＵＩドライバで読み込み可能としている。
【００７３】
また、共通の印刷設定情報保存領域に保存されているアプリケーションに対応した設定値を読み込んで、適切なＵＩドライバの印刷設定ＵＩ表示画面に設定値を反映した場合には、印刷瀬手値情報保存領域から該当する設定値の組を削除するため、設定値の引継ぎを1度行うことができる。そして、その後、同一のアプリケーションから印刷する場合には、印刷設定情報格納領域に対応する設定値の組がないため、ＵＩドライバの印刷設定ＵＩ表示画面には、従来技術のように、デフォルトの印刷設定値またはレジストリに登録されている設定値が反映されているため、以後の印刷設定に悪影響を与えることがなくなる。
【００７４】
なお、本実施形態を満たす構成としては、同一の印刷装置に対するＸＰＳプリンタドライバとＧＤＩプリンタドライバの両者が共存しており、また、ＸＰＳグラフィクスドライバおよびＧＤＩグラフィクスドライバは一般的な描画データを印刷データに変換するコンポーネントとして存在していれば良い。
【００７５】
［実施形態２］
図１１において、プリンタドライバが切り替えられた際、適切なＵＩドライバ（１１０２）によるＵＩ設定指示が渡されず、直接グラフィクスドライバ（１１０３）にて印刷処理が開始される場合には、ＵＩドライバではなく、グラフィクスドライバ（１１０３）が呼びだし元のアプリケーション情報を取得し、そのアプリケーション名称を元に印刷処理を行う。すなわち、この場合には、図１２のステップＳ１２−８以降の処理を、グラフィクスドライバが実行する。ＵＩドライバが図１２のステップＳ１２−８以降の処理を実行した後、読み出した印刷設定情報を削除しておけば、ステップＳ１２−１０が重複して実行されることを防止できる。
【００７６】
こうして、ＵＩドライバが呼び出されなくとも、不適切とされたプリンタドライバが選択された状態で入力された印刷設定を、適切なプリンタドライバに選択を切り替えた後に流用することができる。
【００７７】
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７８】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７９】
【図１】複数のグラフィクスエンジンが共存する例として、Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおける印刷処理フローおよび印刷処理に対するコンポーネントを示す図である。
【図２】Ｗｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡにおける、２つのグラフィクスエンジン共存の仕組みを示す図である。
【図３】一般的な印刷処理フローおよび印刷処理に対するコンポーネントを示す。
【図４】本実施形態の印刷制御装置およびその制御方法とプリンタドライバが適用される情報処理システムの構成の一例を示すブロック図である。
【図５】本実施形態に関わるＧＤＩプリンタドライバとＸＰＳプリンタドライバの構成を示す図である。
【図６】本実施形態に関わるＧＤＩプリンタドライバとＸＰＳプリンタドライバの両者がインストールされている状況を示す図である。
【図７】本実施形態におけるＵＩドライバの構成を示す図である。
【図８】ＵＩドライバにおける  アプリ・ドライバ判断部で行う判断条件を示した図である。
【図９】ＵＩドライバにおけるドライバ切り替えダイアログ表示部にて表示するダイアログの一例を示した図である。
【図１０】ＵＩドライバにおけるＵＩ設定保存部およびＵＩ設定取得部でアクセスする設定情報の例を示した図である。
【図１１】本実施形態における不適切なＵＩドライバが選択された時のドライバ切り替えおよび設定の引継ぎの全体フローを示した図である。
【図１２】本実施形態におけるＵＩドライバに印刷設定ユーザインターフェース表示命令が渡されたときのＵＩドライバの処理フローを示したフローチャートである。
【符号の説明】
【００８０】
１０１  アプリケーション
１０２  ＯＳ
１０３  グラフィクスエンジン
１０４  プリンタドライバ
２０１  Ｗｉｎ３２アプリケーション
２１１  ＷｉｎＦｘアプリケーション
２０２  ＧＤＩ
２１２  ＷＰＦ
２０３  ＧＤＩ  プリンタドライバ
２１３  ＸＰＳプリンタドライバ
３０２  ＧＤＩ→ＸＰＳ変換モジュール
３１２  ＸＰＳ→ＧＤＩ変換モジュール
５２０  設定情報
５０１  ＧＤＩ  ＵＩドライバ
５０２  ＧＤＩグラフィクスドライバ
５１１  ＸＰＳ  ＵＩドライバ
５１２  ＸＰＳグラフィクスドライバ
【図１】
0004785579.tif 000002
【図２】
0004785579.tif 000003
【図３】
0004785579.tif 000004
【図４】
0004785579.tif 000005
【図５】
0004785579.tif 000006
【図６】
0004785579.tif 000007
【図７】
0004785579.tif 000008
【図８】
0004785579.tif 000009
【図９】
0004785579.tif 000010
【図１０】
0004785579.tif 000011
【図１１】
0004785579.tif 000012
【図１２】
0004785579.tif 000013