(57)【要約】【課題】ドキュメントの印刷設定情報を引き継がないことを可能とすると共に、プリンタドライバの印刷設定画面で変更した印刷設定情報を有効にすることができ、また、アプリケーションの印刷設定画面で現在有効な印刷設定情報を表示可能とすることを目的とする。【解決手段】アプリケーションと、プリンタドライバと、を有する情報処理装置であって、プリンタドライバは、複数の設定項目の中でアプリケーションにより設定された印刷設定情報の値を優先する設定項目を選択する選択手段と、選択手段により選択された設定項目はアプリケーションにより設定された印刷設定情報の値が適用され、選択された設定項目とは異なる設定項目にはプリンタドライバにより設定された印刷設定情報の値が適用された印刷設定情報をアプリケーションに対して通知する通知手段と、を有することによって課題を解決する。【選択図】図３
2011170506.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションと、プリンタドライバと、を有する情報処理装置であって、
前記プリンタドライバは、
複数の設定項目の中でアプリケーションにより設定された印刷設定情報の値を優先する設定項目を選択する選択手段と、
前記選択手段により選択された設定項目はアプリケーションにより設定された印刷設定情報の値が適用され、前記選択された設定項目とは異なる設定項目にはプリンタドライバにより設定された印刷設定情報の値が適用された印刷設定情報を前記アプリケーションに対して通知する通知手段と、
を有する情報処理装置。
【請求項２】
前記印刷設定情報は、前記プリンタドライバのみがアクセスできる第一の領域と、前記プリンタドライバと前記アプリケーションとがアクセスできる第二の領域とを有し、前記第一の領域に前記第二の領域の設定項目の値が含まれる請求項１記載の情報処理装置。
【請求項３】
前記通知手段により前記アプリケーションに通知された前記印刷設定情報の値は前記アプリケーションにより提供される画面に表示される請求項１又は２記載の情報処理装置。
【請求項４】
アプリケーションと、プリンタドライバと、を有する情報処理装置が実行する情報処理方法であって、
前記プリンタドライバが、複数の設定項目の中でアプリケーションにより設定された印刷設定情報の値を優先する設定項目を選択する選択ステップと、
前記プリンタドライバが、前記選択ステップで選択された設定項目はアプリケーションにより設定された印刷設定情報の値が適用され、前記選択された設定項目とは異なる設定項目にはプリンタドライバにより設定された印刷設定情報の値が適用された印刷設定情報を前記アプリケーションに対して通知する通知ステップと、
を有する情報処理方法。
【請求項５】
コンピュータを、プリンタドライバとして機能させるプログラムであって、
前記プリンタドライバは、
複数の設定項目の中でアプリケーションにより設定された印刷設定情報の値を優先する設定項目を選択する選択手段と、
前記選択手段により選択された設定項目はアプリケーションにより設定された印刷設定情報の値が適用され、前記選択された設定項目とは異なる設定項目にはプリンタドライバにより設定された印刷設定情報の値が適用された印刷設定情報を前記アプリケーションに対して通知する通知手段と、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータ上のアプリケーションで作成したドキュメントを印刷する前に、ユーザーはアプリケーション上で用紙サイズを選択したり印刷部数を変更したりする等の印刷設定操作を行う。印刷設定操作で設定される印刷設定情報はドキュメントのデータとして保持されることが多いので、ドキュメントの変更を中断した後でも、再度開くと印刷設定情報が維持されている。また、ドキュメントファイルを他人に配布しても、そのまま印刷設定情報を引き継ぐことができる。しかし、印刷設定情報がそのまま引き継がれてしまうために、都合が良くないことがある。例えば、プリンタのデフォルト設定である「Ａ４」、「縦」で印刷されるつもりで、印刷設定情報を特に変更することなく印刷したところ、ドキュメントが「Ａ３」、「横」の印刷設定情報を持っていた場合、Ａ３の横で印刷が行われてしまう。勿論、印刷の前に毎回、印刷設定情報を変更すればいいが、ユーザはデフォルト設定で印刷すると思いこんでいることも多く、ドキュメントの印刷設定情報を引き継ぐことがかえって問題になってしまう。
従来ではこのような問題に対処するために、様々な技術が提案されている。印刷設定情報に優先順位を設け、アプリケーションから渡される印刷設定情報を優先するか、ドライバで保存したファイルの印刷設定情報を優先するかを決定し、最終的な印刷設定情報を作る技術がある（特許文献１）。
【０００３】
その他の技術として、プリンタドライバが、アプリケーションの印刷設定情報を無視する方法もある。この方法を採用すると、例えばアプリケーション上で部単位印刷をＯＮにしても、プリンタドライバで部単位印刷をＯＮにしない限り、実際に部単位印刷の機能が動作しない。しかし、この方法ではアプリケーションで設定した値が実際の印刷に反映されないので、ユーザーは混乱してしまう。そこで、無視するだけでなく、プリンタドライバがアプリケーションの印刷設定情報を常に「プリンタドライバ設定」という値に変更してアプリケーションに返すということが行われていた。この方法を用いると、アプリケーション側には「プリンタドライバ設定」と表示されるので、ユーザーはプリンタドライバで設定した印刷設定情報が有効になるということがわかる。アプリケーションの印刷設定情報を無視するかどうかは、プリンタドライバの印刷設定画面で変更することが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−５８３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来、実施されている方法では、アプリケーション側で現在の印刷設定情報がわからなくなってしまうという問題がある。アプリケーションには、「プリンタドライバ設定」と表示されるだけなので、ユーザーが実際に設定されている値を確認したい場合は、プリンタドライバの印刷設定画面を表示しなければならない。  
本発明は、ドキュメントの印刷設定情報を引き継がないことを可能とすると共に、プリンタドライバの印刷設定画面で変更した印刷設定情報を有効にすることができ、アプリケーションの印刷設定画面で現在有効な印刷設定情報を表示可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、アプリケーションと、プリンタドライバと、を有する情報処理装置であって、前記プリンタドライバは、複数の設定項目の中でアプリケーションにより設定された印刷設定情報の値を優先する設定項目を選択する選択手段と、前記選択手段により選択された設定項目はアプリケーションにより設定された印刷設定情報の値が適用され、前記選択された設定項目とは異なる設定項目にはプリンタドライバにより設定された印刷設定情報の値が適用された印刷設定情報を前記アプリケーションに対して通知する通知手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、ドキュメントの印刷設定情報を引き継がないことを可能とすると共に、プリンタドライバの印刷設定画面で変更した印刷設定情報を有効にすることができる。また、本発明によれば、アプリケーションの印刷設定画面で現在有効な印刷設定情報を表示可能とすることができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の一例であるクライアント等のハードウェア構成の一例を示す図である。
【図２】システム構成の一例を示す図である。
【図３】クライアント等の機能構成の一例を示す図（その１）である。
【図４】ユーザインタフェースの一例を示す図である。
【図５】ＤＥＶＭＯＤＥ構造体の一例を示す図である。
【図６】アプリケーションから印刷設定情報であるＤＥＶＭＯＤＥ構造体が渡されたときのプリンタドライバの処理の一例を示すフローチャートである。
【図７】アプリケーションの印刷設定情報の値を優先するか否かを設定するユーザインタフェースの一例を示す図である。
【図８】レジストリの構成の一例を示す図である。
【図９】フラグの一例を示す図である。
【図１０】レジストリのキーと、印刷設定の値と、の対応関係を示すリストの一例を示す図である。
【図１１】プリンタドライバから印刷設定情報であるＤＥＶＭＯＤＥ構造体をアプリケーションやプリントマネージャに返却する処理の一例を示すフローチャートである。
【図１２】クライアント等の機能構成の一例を示す図（その２）である。
【図１３】プリントチケットの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、情報処理装置の一例であるクライアント等のハードウェア構成の一例を示す図である。なお、特に断らない限り、本実施形態の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであってもよい。
ＣＰＵ１０１は、主記憶装置１０２のＲＯＭ１０２１或いはＲＡＭ１０２２或いは補助記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０２２は、ＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。補助記憶装置１０５は、オペレーティングシステム（ＯＳ）１０５３やアプリケーション１０５１等を記録する。キーボード１０３１やマウス・タッチパネル等に代表されるポインティングデバイス１０３２等の入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピュータに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインタフェースであり、モニタ１０４１やプリンタ１０４２等の出力機器に対してデータを出力する。情報処理装置とプリンタ１０４２とは、直接接続されるローカルＩ／Ｏのみならず、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１０６１を通して接続されていてもよい。また、共通データシステムバス１０７は、モジュール間でそれぞれのデータのやり取りを司る。
なお、ＣＰＵ１０１がプログラムに基づき処理を実行することによって、クライアント装置の機能が実現される。つまり、例えば、ＣＰＵ１０１がプリンタドライバのプログラムに基づき処理を実行することによって、プリンタドライバの機能が実現される。同様に、ＣＰＵ１０１が、アプリケーションのプログラムに基づき処理を実行することによって、アプリケーションの機能が実現される。なお、以下では説明の簡略化のため、ＣＰＵ１０１ではなく、プリンタドライバやアプリケーションが処理を行うものとして説明を行う。また、本明細書に記載のフローチャートの各ステップは、関連するプログラムをＣＰＵ１０１が読み込んで実行することで実現される。
【００１１】
図２は、システム構成の一例を示す図である。印刷を行う文書や画像を作成するクライアントコンピュータ２０１／２０２が単体若しくは複数、ネットワークに接続されている。また、ネットワークには、クライアントのユーザーやプリンタを管理するサーバーコンピュータ２０３が接続されていることもある。プリンタ２０４／２０５が単体若しくは複数、ネットワークに接続されており、プリンタ２０５のように物理的に接続されていても実際には使用できないオフライン状態であることもある。ネットワークにはＰＡＮ、ＬＡＮ、ＭＡＮ、ＷＡＮ等の小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。クラウド等、サーバーやプリンタがインターネットを越えて接続されていてもよい。なお、ＰＡＮとは、Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、ＬＡＮとは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、ＭＡＮとは、Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、ＷＡＮとは、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。
【００１２】
図３は、クライアント等の機能構成の一例を示す図（その１）である。オペレーティングシステム３１０は、補助記憶装置１０５にＯＳ１０５３として格納されている。グラフィックスエンジン３０２、プリントマネージャ３０４は、オペレーティングシステム３１０に含まれるモジュールである。プリンタドライバ３０３は、補助記憶装置１０５にプリンタドライバ１０５２として格納されている。アプリケーション３０１は、補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーは、キーボードやマウス等の入力装置１０３を使用して、出力装置１０４のモニタに映し出されたアプリケーション３０１を使用して作成した文書３０１１の印刷処理の実行を指示する。
まず、ユーザーは、プリンタの選択として、印刷を実行するプリンタに対応したプリンタドライバ３０３を選択する。
次に、ユーザーは、印刷設定情報３０１３の作成を行う。文書の印刷設定情報３０１３は、プリンタドライバのコンフィギュレーションモジュール３０３２によって初期値が作成される。ユーザーは、コンフィギュレーションモジュール３０３２によって作成された印刷設定情報３０１３をアプリケーション若しくはプリンタドライバのユーザインタフェースを使用して、ユーザーが望む最終印刷結果になるように変更する。ユーザーは、例えば、出力する用紙サイズを変更したり、両面印刷、白黒モードを設定したりする。印刷設定情報３０１３は、ＲＡＭ１０２２上に確保されるが、保存する形式はバイナリのデータ構造体であったり、マークアップ言語のＸＭＬであったりする。この形態はプリンタドライバやオペレーティングシステム３１０の仕様によって異なる。印刷設定情報３０１３は、印刷の度に作成されるが、プリンタ３０９のオプション機器や、ユーザーごとの環境設定等設定を保持しておきたいものは、プリンタドライバがオペレーティングシステム３１０のレジストリデータベース３０８に保存する。印刷設定情報３０１３のユーザーごとのデフォルト値は、オペレーティングシステム３１０のプリントマネージャ３０４が、レジストリデータベース３０８に保存する。
【００１３】
印刷設定情報３０１３が作成されると、ユーザーによって印刷処理の実行が指示され、オペレーティングシステム３１０に印刷処理が通知される。オペレーティングシステム３１０は、グラフィックスエンジン３０２を通じて、指定されたプリンタドライバ３０３への描画を行う。印刷設定情報３０１３でレイアウト処理が指定されている場合は、プリンタドライバ３０３のレンダリングモジュール３０３１による処理が実行される前に一時的なスプールファイル３０５が作成され、レイアウトモジュール３０６が起動される。レイアウト処理とは、印刷設定情報に従って、ページの順番を入れ替えたり、一枚の用紙に複数ページを配置したりする処理を指す。レイアウトモジュール３０６は、レイアウトを変更した後、プリンタドライバ３０３への描画を行う。プリンタドライバ３０３は、レンダリングモジュール３０３１によって、描画データをプリンタが理解できるデータ言語、即ちプリンタ制御言語に変換する。このとき印刷設定情報３０１３も、プリンタ制御言語に変換される。レンダリングモジュール３０３１、コンフィギュレーションモジュール３０３２は共に複数の種類のプリンタ３０９に対して共通のモジュールであることが多く、機種ごとの違いは機種依存データファイル３０３３に記述されている。レンダリングモジュール３０３１、コンフィギュレーションモジュール３０３２は、適宜、この機種依存データファイル３０３３を参照する。プリンタ制御言語はスプールファイル３０５として逐次保存されていく。プリントマネージャ３０４は、スプールファイル３０５を取得し、印刷ジョブファイルとして印刷処理のスケジュール管理を行う。プリンタが印刷できる状態になると、プリントマネージャ３０４は、Ｉ／Ｏモジュール３０７を介してプリンタ３０９にプリンタ制御言語（印刷ジョブ）を送信する。このようにして、アプリケーションからの文書データ（ドキュメントデータ）がプリンタ制御言語に変換されて印刷が行われる。
【００１４】
ユーザーが文書３０１１の印刷設定情報３０１３を作成するには、アプリケーションによって印刷設定情報３０１３を直接、書き換えるか、コンフィギュレーションモジュール３０３２が提供するユーザインタフェース（図４）を使用する。印刷設定情報３０１３は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、ＤＥＶＭＯＤＥ構造体と呼ばれる図５の構造である。ＤＥＶＭＯＤＥ構造体は、オペレーティングシステムで公開定義されている標準の設定領域５０１と、プリンタドライバが拡張した設定領域５０２と、に分けられている。プリンタドライバ及びアプリケーションがアクセスする第二の領域の一例である標準の設定領域５０１には、用紙サイズや給紙段の切り替え、カラー白黒の切り替え等印刷の基本的な設定項目の値が含まれる。プリンタドライバがアクセスする第一の領域の一例である拡張した設定領域５０２には、プリンタのオプションに応じた排紙機能や、細かい色調整機能等の値が含まれる。アプリケーションは、プリンタドライバ３０３が持つ拡張設定を知ることはできないので、直接、印刷設定情報を書き換えることができるのは、システムで定義されている標準の設定領域５０１だけとなる。そこで、アプリケーションは、プリンタドライバ３０３のユーザインタフェース（図４）を表示させて、拡張された印刷設定情報をユーザーに設定させるのが一般的である。コンフィギュレーションモジュール３０３２は、ユーザインタフェースだけではなく、アプリケーションプログラムインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）も提供している。したがって、アプリケーションは、ユーザインタフェースを表示せずに、ＡＰＩを使用して拡張された印刷設定を外部から行うこともできる。しかし、ＡＰＩを使用する場合、アプリケーションがプリンタドライバ３０３ごとに対応しなければならない。したがって、一般的なアプリケーションは、標準の設定領域５０１のみ変更を行う。ここで、本実施形態におけるプリンタドライバ３０３は、拡張した設定領域５０２に、標準の設定領域５０１に含まれる設定項目５０１１〜５０１４とまったく同一の設定項目をコピーとして持っている（５０２１〜５０２４）。なお、図６のフローチャートが実行される前の設定項目５０２１〜５０２４には、プリンタドライバの初期設定情報の値又は図４のＵＩを使ってユーザーが設定した設定情報の値が含まれ、アプリケーションの設定情報の値は含まれない。
【００１５】
図６と図１１とのフローチャートに従って、アプリケーションの印刷設定情報を反映しないようにしながら、アプリケーションに対して印刷設定情報を表示させるプリンタドライバ３０３の動作を説明する。
図６は、アプリケーションから印刷設定情報であるＤＥＶＭＯＤＥ構造体が渡されたときのプリンタドライバ３０３の処理の一例を示すフローチャートである。この動作フローは、前述のように初期の印刷設定情報を作成する前処理であると同時に、印刷時に値同士が競合した印刷設定情報の整合性を取るマージ処理の前処理でもある。
まず、プリンタドライバは、アプリケーション若しくはプリントマネージャから印刷設定情報のＤＥＶＭＯＤＥ構造体を受け取る（Ｓ９０１）。次にプリンタドライバは、ドライバの印刷設定情報にＤＥＶＭＯＤＥ構造体の印刷設定情報を適用するために、ＤＥＶＭＯＤＥ構造体のデータを１つずつ読みだす準備として、ＤＥＶＭＯＤＥ構造体の標準の設定領域５０１の設定項目をリストにして並べる（Ｓ９０２）。この時点ではまだリストに設定項目が残っているので、プリンタドライバは、標準の設定領域５０１の設定項目を取り出す処理を終了せずに先に進む（Ｓ９０３）。次に、プリンタドライバは、リストから標準の設定領域５０１の設定項目を１つ取り出す（Ｓ９０４）。プリンタドライバは、標準の設定領域５０１の設定項目に対応したフラグをレジストリデータベースから取得する（Ｓ９０５）。ここでいうフラグとは、標準領域の各設定項目についてアプリケーションの印刷設定情報の値を「優先する」か、「優先しない」かの２択のデータである。フラグは、ユーザーが、プリンタドライバのユーザインタフェースでそれぞれの設定項目ごとに設定できる（図７参照）。なお、ユーザーは、図７のユーザインタフェースを使って部数と解像度以外の項目については、アプリケーションの設定値をプリンタドライバの設定値に対して優先して使用することを設定している。フラグは、プリンタドライバが、ユーザーごとにオペレーティングシステムのレジストリデータベースに保存する。レジストリデータベースは階層構造になっている。プリンタドライバは、ユーザーごとにプリンタの機種別、機能別に分けてフラグを保存する（図８参照）。
【００１６】
本実施形態の例では、Ｅｎｖｉｒｏｎｍｅｎｔの階層フォルダにアプリケーションの印刷設定情報の値を「優先する」か否かのフラグが保存される。フラグは、それぞれ名前と値（種類及びデータ）との形で保存される（図９参照）。例えば、標準領域の「部単位」設定についてアプリケーションの値を優先するかどうかであれば、ＤｒｉｖｅｒＵＩＰｒｉｏｒｉｔｙＤｍＣｏｌｌａｔｅという名前で、値は文字列（ＲＥＧ＿ＳＺ）で「ＤｒｉｖｅｒＵＩＰｒｉｏｒｉｔｙＤｍＣｏｌｌａｔｅ」か「Ｎｏｎｅ」の２択のフラグとなる。値が、「ＤｒｉｖｅｒＵＩＰｒｉｏｒｉｔｙＤｍＣｏｌｌａｔｅ」であればアプリケーションの値を「優先する」、「Ｎｏｎｅ」であればアプリケーションの値を「優先しない」となる。この値は、例えば図６の処理が始まる前にユーザーが設定しておくもので、デフォルトでは全てアプリケーションの値を「優先する」になっている。「優先する」がデフォルトなのは、一般的なプリンタドライバは、途中の動作に差異があるものの、結果として「優先する」の動作を行うので、何も設定しなければ従来のプリンタドライバと同等の動作を行うようにするためである。プリンタドライバは、標準領域の設定項目に対応したフラグがそれぞれどの設定項目にあたるかのリスト（図１０）を持っており、このリストを基にレジストリデータベースからフラグを取得する。プリンタドライバは、標準領域の対象設定項目についてレジストリデータベースから取得したフラグの値がアプリケーションの値を「優先する」になっているかどうかを判定する（Ｓ９０６）。そして、「優先する」ならば拡張した設定領域５０２に含まれる標準領域の設定項目（５０２１〜５０２４）のうち対象設定項目（例えば、５０１２）と同一の部分（例えば、５０２２）に、標準の設定領域５０１の対象設定項目の値をコピーする（Ｓ９０７）。その結果、拡張した設定領域５０２の標準領域の設定項目に初期値として含まれていたプリンタドライバの値がアプリケーションの値に更新される。一方、プリンタドライバは、「優先しない」ならば特に何もせずに、次の標準領域の設定項目を取り出す。その結果、拡張した設定領域５０２の標準領域の設定項目（５０２１〜５０２４）における「優先しない」設定項目には、プリンタドライバの設定情報の値が残る。
全ての標準領域の設定項目を処理した場合、プリンタドライバは、拡張領域の印刷設定情報の値をドライバ印刷設定情報として取り込む（Ｓ９０８）。拡張した設定領域には標準領域の設定項目（５０１１〜５０１２）のコピー（５０２１〜５０２４）が保持されているので、プリンタドライバは、拡張した設定領域５０２から印刷設定情報全体を認識できる。そのあと、プリンタドライバは、初期の印刷設定情報を作成したり、印刷設定情報の整合性を取ったりする。そして、プリンタドライバは、必要があればユーザインタフェースを表示してプリンタドライバの印刷設定情報を画面に適用する等の、従来のプリンタドライバの処理を行う。
【００１７】
図１１は、プリンタドライバから印刷設定情報であるＤＥＶＭＯＤＥ構造体をアプリケーションやプリントマネージャに返却する処理の一例を示すフローチャートである。図１１の処理は、プリンタドライバが、機能間の整合性を修正した印刷設定情報や、ユーザインタフェースで設定された印刷設定情報を返すときの動作フローである。
プリンタドライバは、Ｓ９０８において取り込まれたドライバ印刷設定情報を、ＤＥＶＭＯＤＥ構造体の拡張した設定領域５０２に書き出す（Ｓ１００１）。標準領域の設定項目も拡張領域の中にコピーとして含まれるので、プリンタドライバは、拡張領域に全ての印刷設定情報の値を書きこむことができる。次に、プリンタドライバは、拡張領域の中の標準領域の値（５０２１〜５０２４）を、標準の設定領域５０１に全て書き出す（Ｓ１００２）。図７の設定に従って具体的に説明すると、Ｓ１００２を実行することにより標準の設定領域５０１の用紙、カラー／白紙、ＩＭＣ（Ｍ）、部単位、給紙段の設定項目にはアプリケーションの設定情報の値が適用される。一方、標準の設定領域５０１の部数と解像度の設定項目にはプリンタドライバの設定情報の値が適用される。そして、プリンタドライバは、アプリケーションやプリントマネージャに最終的にＤＥＶＭＯＤＥ構造体を返却して終了となる（Ｓ１００３）。この動作フローでは、プリンタドライバは、アプリケーションの印刷設定情報を「優先する」かどうかについては判断しない。結果として、アプリケーションが認識できる標準領域の印刷設定情報の値として、ドライバの印刷設定情報の値がそのままアプリケーションに返されるので、ドライバで設定した印刷設定情報がアプリケーション上でも表示される。
【００１８】
このように本実施形態のプリンタドライバが、図７の機能を提供することで、ドキュメントの印刷設定情報を引き継ぐことにより生じるユーザーが意図しない印刷物が印刷されるという問題を解決できる。更に、アプリケーションの設定情報を優先しない項目には、プリンタドライバの設定情報の値が適用されたＤＥＶＭＯＤＥがアプリケーション等に返却されるため、ユーザーはアプリケーションのユーザインタフェースを使って設定情報の値を確認できる。
一般的に、ユーザーは、プリンタドライバのユーザインタフェースを開かないことが多いので、アプリケーション上で最終的な印刷設定情報がわかることは非常にメリットがある。また、アプリケーションで作成された文書に印刷設定情報を持っていても、事前にユーザーが「優先しない」ように設定しておくことで、思いがけない印刷が行われることがなくなる。また、「優先しない」ときは、ユーザーは、アプリケーション上で印刷設定情報を変更することができなくなってしまうが、プリンタドライバのユーザインタフェース上であれば印刷設定情報を変更することができるので、変更できないわけではない。
本実施形態のプリンタドライバでは、アプリケーションの印刷設定情報の値を「優先する」かどうかを、各設定項目に対して個別に設定するが、全ての設定項目に対してまとめて「優先する」かどうかを指定するようにしてもよい。このようにすると、ユーザーは細かい内容にこだわらなくても済む。また、設定できる値が標準の印刷設定情報の数だけとはいえ多い。したがって、プリンタドライバは、グルーピング化して複数の値をまとめて設定可能にするようにしてもよい。
また、本実施形態のプリンタドライバでは、アプリケーションの印刷設定情報の値を「優先する」かどうかをレジストリデータベースに保存していたが、印刷設定情報であるＤＥＶＭＯＤＥ構造体の拡張された印刷設定情報の中に保存するようにしてもよい。
また、本実施形態のプリンタドライバでは、アプリケーションの印刷設定情報の値を「優先する」かどうかをユーザーごとに保存していたが、管理者が一括で保存するようにしてもよい。この場合は、「優先する」かどうかの値を変更することができるのも、管理者のみとなる。サーバー、クライアント型のネットワークを通じてプリンタドライバを配信する際に、管理者の設定として保存しておけば、全てのクライアントに同じ設定で使用させることができる。
また、本実施形態のプリンタドライバでは、アプリケーションの印刷設定情報の値を「優先する」かどうかを機種別のドライバごとに保存していたが、全ての機種で同じ設定が使われるように一括で保存するようにしてもよい。
【００１９】
＜実施形態２＞
図１２は、クライアント等の機能構成の一例を示す図（その２）である。実施形態２は、ＸＰＳＤｒｖ印刷システムに本発明を適用した一実施形態である。ここで、ＸＰＳＤｒｖとは、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）と呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うプリンタドライバのことを指す。ＸＰＳＤｒｖ印刷処理システム全体は、オペレーティングシステム上で動作しており、補助記憶装置１０５のＯＳ１０５３に相当する。プリントマネージャ４１４は、オペレーティングシステムに含まれるモジュールである。バージョン３プリンタドライバとプリントフィルタパイプラインの各フィルタとは、補助記憶装置１０５にプリンタドライバ１０５２として格納されている。ＧＤＩ印刷アプリケーション（ＧＤＩアプリ）４０１とＸＰＳ印刷アプリケーション（ＸＰＳアプリ）４０２とは、補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーは、キーボードやマウス等の入力装置１０３を使用して、出力装置１０４のモニタに映し出されたＧＤＩアプリ４０１、若しくはＸＰＳアプリ４０２から印刷処理を実行する。
【００２０】
まず、ユーザーは、印刷したいプリンタ４１６を選択する。これは、印刷を実行するプリンタ４１６に対応したプリンタドライバを選択することと同義である。次に印刷設定情報が設定される。アプリケーションが印刷設定用のメモリを確保し、アプリケーションかプリンタドライバのコンフィギュレーションモジュール４０５が、機種依存ファイル４０７を利用して設定データを埋めるという形で印刷設定情報が設定される。
ＧＤＩアプリ４０１では印刷設定情報としてバイナリのＤＥＶＭＯＤＥ構造体４０３を用い、ＸＰＳアプリ４０２では、マークアップ言語のＸＭＬで記載されたプリントチケット４０４を用いる。ＤＥＶＭＯＤＥ構造体４０３もプリントチケット４０４も、図５の構造のように、オペレーティングシステムが定義する標準領域とプリンタドライバが独自で定義する拡張領域とを持つ。また、プリントチケット４０４は、図１３にあるようなＸＭＬ形式で記述された印刷設定情報であるので、標準領域と拡張領域とは名前空間によって記載が分かれている。このＤＥＶＭＯＤＥ構造体４０３若しくはプリントチケット４０４が印刷設定情報を保持しており、アプリケーションが、直接、書き換えることで印刷設定情報を変更する。
プリンタ４１６に依存した専用の設定情報は、コンフィギュレーションモジュール４０５が持つプリンタドライバのユーザインタフェース（図４）を表示させ、ユーザーが、ユーザインタフェースを操作することで設定される。プリンタドライバは、ユーザインタフェースの設定に従い、ＤＥＶＭＯＤＥ構造体４０３若しくはプリントチケット４０４のプリンタ４１６に依存した設定を変更する。印刷設定とは、より具体的には、出力する用紙サイズを「Ａ４」にする、両面印刷を行う、カラーと白黒とを切り替える、給紙段を指定する等の設定のことを指す。プリントチケット４０４は、印刷設定情報がＸＭＬ形式で記述されているので、ＸＰＳアプリ４０２が全ての設定値を直接、変更して書き換えることは容易だが、従来のようにプリンタドライバのユーザインタフェースを使って設定変更してもよい。
【００２１】
印刷設定情報は、文書印刷の度に作成されるが、プリンタ４１６のオプション機器や、ユーザーごとの環境設定等、設定を保持しておきたいものは、プリンタドライバがオペレーティングシステムのレジストリデータベース４１７に保存する。印刷設定情報のユーザーごとのデフォルト値はオペレーティングシステムのプリントマネージャ４１４が、レジストリデータベース４１７に保存する。最後に描画データの変換が行われる。印刷設定情報が確定した場合、ユーザーは、アプリケーションから印刷処理を実行する。
ＧＤＩアプリ４０１から印刷する場合は、バージョン３プリンタドライバの形態を取るＧＤＩｔｏＸＰＳ変換モジュール４０８に描画データが送られ、ＸＰＳスプールファイル４０９が作成される。バージョン３プリンタドライバとは、Ｗｉｎｄｏｗｓ２０００以降に対応したプリンタドライバのことを指す。このときＧＤＩｔｏＸＰＳ変換モジュール４０８は、コンフィギュレーションモジュール４０５を呼び出し、印刷設定情報をＤＥＶＭＯＤＥ構造体４０３からプリントチケット４０４に変換する。ＸＰＳアプリ４０２から印刷する場合、ＸＰＳファイルをＸＰＳアプリ自身が生成するのと、オペレーティングシステムがＸＰＳアプリからの描画命令に応じてＸＰＳファイルを生成するのとの２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル４０９が生成される。このようにＸＰＳＤｒｖ印刷システムは、印刷時に必ずＸＰＳスプールファイル４０９が生成されるのが特徴である。
【００２２】
ＸＰＳスプールファイル４０９が生成された場合、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは、複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル４１０でフィルタの数や順番を制御する。プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャは、フィルタコンフィギュレーションファイル４１０に従って、この実施形態では設定フィルタ４１１、レイアウトフィルタ４１２、レンダラフィルタ４１３の順に処理を行う。処理は、ＸＰＳスプールファイル４０９をフィルタに受け渡すことで行われ、フィルタがそれぞれＸＰＳスプールファイル４０９を加工し次のフィルタに渡していくことで処理が進む。最後に、プリンタが理解できるデータ言語であるプリンタ制御言語（以下、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と略す）となって出力される。勿論、プリンタ４１６がＸＰＳスプールファイル４０９を直接、読み込んで印刷できるＸＰＳダイレクトプリンタであれば、全てのフィルタをスルーして印刷を行ってもよい。
設定フィルタ４１１では、プリントチケットを読み込んで印刷に必要なデータをプリントチケットに書き込む処理を、レイアウトフィルタ４１２では倍率の変更や製本の面付けレイアウトやスタンプ等レイアウトに関する処理を行う。レイアウトフィルタ４１２では、ＸＰＳスプールファイル４０９に含まれるプリントチケット４０４に従って動作する。そのため、例えば面付けの設定がプリントチケット４０４に存在しないときは、レイアウトフィルタ４１２は、何も動作せず処理をスルーして、次のフィルタにＸＰＳスプールファイル４０９をそのまま渡す。最後のレンダラフィルタ４１３では、ＸＰＳスプールファイル４０９をレンダリングしてＰＤＬに変換する。ＰＤＬデータは、印刷処理のスケジュール管理を行うプリントマネージャ４１４で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。
プリントマネージャ４１４は、プリンタ４１６が印刷できる状態になった場合、キューに登録した順にＰＤＬデータをＩ／Ｏモニタ４１５を通して送信する。このようにして、アプリケーションからの文書データをプリンタ言語に変換することがプリンタドライバの主な役目である。
【００２３】
このＸＰＳＤｒｖ印刷処理システムであっても、印刷設定情報は標準領域と、拡張領域と、を持っており、プリンタドライバのコンフィギュレーションモジュールが処理を行う。プリントチケットの拡張領域にも、標準領域と同一の設定項目をコピーとして持つ。このことで、プリンタドライバが、実施形態１の図６と図１１との動作フローに従って、アプリケーションの値を「優先する」かどうかの処理を実行することができる。標準領域との区別は名前空間で行うので、アプリケーションがどちらの設定を適用していいか迷うことはない。
【００２４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２５】
以上上述した各実施形態によれば、ドキュメントの印刷設定情報を引き継がないことを可能とすると共に、プリンタドライバの印刷設定画面で変更した印刷設定情報を有効にすることができる。また、アプリケーションの印刷設定画面で現在有効な印刷設定情報を表示可能とすることができる。
【００２６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2011170506.tif 000003
【図２】
2011170506.tif 000004
【図３】
2011170506.tif 000005
【図４】
2011170506.tif 000006
【図５】
2011170506.tif 000007
【図６】
2011170506.tif 000008
【図７】
2011170506.tif 000009
【図８】
2011170506.tif 000010
【図９】
2011170506.tif 000011
【図１０】
2011170506.tif 000012
【図１１】
2011170506.tif 000013
【図１２】
2011170506.tif 000014
【図１３】
2011170506.tif 000015