(57)【要約】【課題】  本発明はカスタマイズアプリケーションの更新をしなくとも、プリンタードライバーや印刷設定アプリケーションのバージョンアップに対応できる構成を構築することで、プリンタードライバーのカスタマイズを簡易な構成で実現することを目的とする。【解決手段】  本発明の情報処理装置はデフォルトの印刷設定を設定するための印刷設定画面と印刷設定画面におけるコントロールの表示状態を設定するための状態設定画面をインストール前の印刷設定アプリケーションに表示させて、印刷設定画面と状態設定画面で設定を受け付けることにより生成されたカスタマイズデータを印刷設定アプリケーションから受信して、カスタマイズデータと印刷設定アプリケーションをインストールする。これによって、インストール後の印刷設定アプリケーションはカスタマイズデータに従って印刷設定画面を表示する。【選択図】  図６
2019075011.tif 000002
【特許請求の範囲】
【請求項１】
第１の指示が行われた場合にデフォルトの印刷設定を設定するための印刷設定画面を表示させるための指示と、第２の指示が行われた場合に前記印刷設定画面におけるコントロールの表示状態を設定するための状態設定画面を表示させるための指示をインストール前の印刷設定アプリケーションに行う指示手段と、
前記印刷設定画面と前記状態設定画面で設定を受け付けることにより生成されたカスタマイズデータを前記印刷設定アプリケーションから受信する受信手段と、
前記カスタマイズデータと前記印刷設定アプリケーションをインストールするインストール手段と、を有し、
インストール後の前記印刷設定アプリケーションは前記カスタマイズデータに従って前記印刷設定画面を表示することを特徴とする情報処理装置。
【請求項２】
カスタマイズ対象の機種の選択を受け付ける受付手段と、を有し、
前記印刷設定アプリケーションは選択された前記機種に応じて前記印刷設定画面と前記状態設定画面を表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
受信した前記カスタマイズデータを前記印刷設定アプリケーションがインストール後に利用するオペレーティングシステムにより管理される領域とは異なる領域に保存する保存手段と、を有することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
カスタマイズ対象の機種の一覧を含む機種一覧画面を表示する表示手段と、を有し、
前記機種一覧画面は機種ごとに前記印刷設定画面と前記状態設定画面による設定変更が行われているか否かを表示することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記状態設定画面は前記印刷設定画面の印刷設定項目のコントロールを非表示又は無効に変更する設定を受け付けることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
コンピューターに、
第１の指示が行われた場合にデフォルトの印刷設定を設定するための印刷設定画面を表示させるための指示と、第２の指示が行われた場合に前記印刷設定画面におけるコントロールの表示状態を設定するための状態設定画面を表示させるための指示をインストール前の印刷設定アプリケーションに行う指示工程と、
前記印刷設定画面と前記状態設定画面で設定を受け付けることにより生成されたカスタマイズデータを前記印刷設定アプリケーションから受信する受信工程と、
前記カスタマイズデータと前記印刷設定アプリケーションをインストールするインストール工程と、を実行させ、
インストール後の前記印刷設定アプリケーションは前記カスタマイズデータに従って前記印刷設定画面を表示することを特徴とするプログラム。
【請求項７】
前記コンピューターに、
カスタマイズ対象の機種の選択を受け付ける受付工程と、を実行させ、
前記印刷設定アプリケーションは選択された前記機種に応じて前記印刷設定画面と前記状態設定画面を表示することを特徴とする請求項６に記載のプログラム。
【請求項８】
前記コンピューターに、
受信した前記カスタマイズデータを前記印刷設定アプリケーションがインストール後に利用するオペレーティングシステムにより管理される領域とは異なる領域に保存する保存工程と、を実行させることを特徴とする請求項６又は請求項７に記載のプログラム。
【請求項９】
前記コンピューターに、
カスタマイズ対象の機種の一覧を含む機種一覧画面を表示する表示工程と、を実行させ、
前記機種一覧画面は機種ごとに前記印刷設定画面と前記状態設定画面による設定変更が行われているか否かを表示することを特徴とする請求項６乃至８のいずれか１項に記載のプログラム。
【請求項１０】
前記状態設定画面は前記印刷設定画面の印刷設定項目のコントロールを非表示又は無効に変更する設定を受け付けることを特徴とする請求項６乃至９のいずれか１項に記載のプログラム。
【請求項１１】
第１の指示が行われた場合にデフォルトの印刷設定を設定するための印刷設定画面を表示させるための指示と、第２の指示が行われた場合に前記印刷設定画面におけるコントロールの表示状態を設定するための状態設定画面を表示させるための指示をインストール前の印刷設定アプリケーションに行う指示工程と、
前記印刷設定画面と前記状態設定画面で設定を受け付けることにより生成されたカスタマイズデータを前記印刷設定アプリケーションから受信する受信工程と、
前記カスタマイズデータと前記印刷設定アプリケーションをインストールするインストール工程と、を有し、
インストール後の前記印刷設定アプリケーションは前記カスタマイズデータに従って前記印刷設定画面を表示することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプリンタードライバーをインストールする技術に関する。
【背景技術】
【０００２】
従来、プリンタードライバーをインストールする技術がある。特許文献１はインストーラーを用いてプリンタードライバーをインストールする技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２５２０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
Ｖ４（Ｖｅｒｓｉｏｎ  ４）以降の印刷システムでは印刷設定画面はプリンタードライバーに対応する印刷設定アプリケーションによって表示される。そして印刷設定アプリケーションの印刷設定画面は工場出荷値やプリンターから取得された情報に基づいて表示される。こうした情報の他に印刷設定画面に対して、予め指定された工場出荷値とは異なるデフォルトの印刷設定や、特定の印刷設定の変更を禁止する等の独自のカスタマイズを行いたい場合がある。こうした要望を本明細書では、カスタマイズデータと印刷設定アプリケーションをインストールして、インストール後の印刷設定アプリケーションがカスタマイズデータに従って印刷設定画面を表示することで、前述のカスタマイズを実現する。
【０００５】
このとき、デフォルトの印刷設定や、印刷設定画面のコントロールの表示状態の設定といったカスタマイズを印刷設定アプリケーションとは別途開発されるカスタマイズアプリケーションで独立して行うように構成したとする。このように構成すると、例えばプリンタードライバーや印刷設定アプリケーションのバージョンアップによって、印刷設定項目の増減があった場合に、それに追従してカスタマイズアプリケーションの更新を行わなければならなくなる問題がある。
【０００６】
これに対して本発明はカスタマイズアプリケーションの更新をしなくとも、プリンタードライバーや印刷設定アプリケーションのバージョンアップに対応できる構成を構築することで、プリンタードライバーのカスタマイズを簡易な構成で実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明に係る情報処理装置は、
第１の指示が行われた場合にデフォルトの印刷設定を設定するための印刷設定画面を表示させるための指示と、第２の指示が行われた場合に前記印刷設定画面におけるコントロールの表示状態を設定するための状態設定画面を表示させるための指示をインストール前の印刷設定アプリケーションに行う指示手段と、
前記印刷設定画面と前記状態設定画面で設定を受け付けることにより生成されたカスタマイズデータを前記印刷設定アプリケーションから受信する受信手段と、
前記カスタマイズデータと前記印刷設定アプリケーションをインストールするインストール手段と、を有し、
インストール後の前記印刷設定アプリケーションは前記カスタマイズデータに従って前記印刷設定画面を表示することを特徴とする。
【発明の効果】
【０００８】
本発明により、機種に依存したカスタマイズ専用のユーザーインターフェースでカスタマイズすることができ、対象機種が持つすべての機能のカスタマイズが可能になる。また、対象機種が持たない機能のカスタマイズを不用意にすることなく、ユーザーがカスタマイズした機能が確実に反映されるようになる。
【図面の簡単な説明】
【０００９】
【図１】コンピューターのハードウェアとソフトウェアのブロック構成図。
【図２】Ｖ３プリンタードライバーの印刷処理システムのブロック構成図。
【図３】カスタマイズアプリのブロック構成図。
【図４】プリンタードライバーのドライバセット。
【図５】カスタマイズアプリの動作のフローチャート。
【図６】カスタマイズアプリのカスタマイズ詳細のフローチャート。
【図７】カスタマイズアプリの機種一覧画面。
【図８】プリンタードライバーの印刷設定画面。
【図９】コントロールの表示状態をカスタマイズするための状態設定画面。
【図１０】コントロール表示タブを追加した印刷設定画面。
【図１１】コントロール表示をコンテキストメニューで変更可能な印刷設定画面。
【図１２】デフォルトデータとＵＩデータを融合したカスタマイズデータ。
【図１３】Ｖ４プリンタードライバーの印刷処理システムのブロック構成図。
【図１４】作成したカスタマイズドライバセットをインストールするフローチャート。
【図１５】カスタマイズされた印刷設定画面を表示するフローチャート。
【図１６】カスタマイズされた印刷設定画面。
【発明を実施するための形態】
【００１０】
本明細書では印刷設定アプリケーションのユーザーインターフェースそのものを使ってプリンタードライバーのカスタマイズを行う。これによって、通常の印刷設定アプリケーションで操作をするように、印刷設定を確定させた値をカスタマイズしたデフォルト値としたり、スタンプやお気に入りなどのデータベースを編集したりすることが可能となる。
【００１１】
一方、ユーザーインターフェース上にあるコントロールの表示・非表示を切り替えるといった、印刷設定アプリケーションの印刷設定画面で従来設定できなかったカスタマイズ機能については、カスタマイズを行うカスタマイズアプリケーション側で画面を表示し、設定値を作成することが考えられる。しかしながら、カスタマイズアプリケーション側でこうしたカスタマイズ機能を実現してしまうと、機種に依存したプリンタードライバーの機能に対するカスタマイズの実現に対して開発工数上の問題が生じる。この問題はカスタマイズアプリケーション側でコントロールの表示状態をカスタマイズするために、カスタマイズアプリケーションが全てのプリンタードライバーの全ての機種依存部分に対して、個別に対応しなければならないことによる。
【００１２】
この問題に対する解決策としてカスタマイズアプリケーションにおけるコントロールの表示・非表示のカスタマイズ機能を機種共通の機能に限定したり、機種依存の設定項目をカスタマイズ対象項目から除外したりすることが考えられる。ただし、どちらの解決策もカスタマイズアプリケーションの機能を低下させてしまう。
【００１３】
そこで、本明細書ではデフォルト値のカスタマイズとコントロールの表示状態のカスタマイズの両方を印刷設定アプリケーションで実現することで、カスタマイズアプリケーションの機能を落とさずに、開発工数の低減を図る方法について説明する。なお、本明細書に記載の内容は印刷設定アプリケーションのないＶ３でも同様に実現が可能であるため、Ｖ３とＶ４のそれぞれの印刷システムで実現する方法を説明している。
【００１４】
図１は本発明の実施形態を示す一般的な情報処理装置（コンピューター）を用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
【００１５】
ＣＰＵ１０１は主記憶装置１０２のＲＯＭ１０２１あるいはＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って情報処理装置全体を制御する。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。補助記憶装置１０５はアプリケーション１０５１、プリンタードライバー１０５２、オペレーティングシステム（ＯＳ）１０５３等を記録する。キーボード１０３１やマウス・タッチパネルなどに代表されるポインティングデバイス１０３２などの入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインターフェースであり、モニタ１０４１やプリンター１０４２などの出力機器に対してデータを出力する。プリンター１０４２とは直接接続されるローカルＩ／Ｏのみならず、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１０６１を通して接続されていてもよい。また、１０７は共通データシステムバスで、Ｉ／Ｆやモジュール間でデータのやりとりを行う。
【００１６】
なお、本発明のアプリケーション１０５１やプリンタードライバー１０５２のフローチャートの各ステップは、ＣＰＵ１０１が、フローチャートに関するプログラムを補助記憶装置１０５やＲＡＭ１０２２から読み出して実行することで実現される。
【００１７】
また、プリンター１０４２は、印刷機能のみを持った印刷装置でも良いし、ＦＡＸ機能のみを持ったＦＡＸ装置でも良いし、スキャン機能および印刷機能など複数の機能を持った複合機でも良い。なお、プリンター１０４２を画像処理装置や画像形成装置と呼ぶこともある。
【００１８】
図２において、Ｖ３プリンタードライバーの印刷処理システムを示す。アプリケーション１０５１と、プリンタードライバー１０５２、オペレーティングシステム１０５３は、図１の補助記憶装置１０５に格納されている。グラフィックスエンジン２０２、プリントマネージャ（スプーラ）２０８はオペレーティングシステム１０５３に含まれるモジュールである。ユーザーはキーボード１０３１やポインティングデバイス１０３２などといった入力装置を使用して、出力装置のモニタ１０４１に映し出されたアプリケーション１０５１を使用して作成した文書２０１の印刷処理を実行する。
【００１９】
プリンタードライバー１０５２のユーザーインターフェースは、コンフィギュレーションモジュール２０６が提供する。プリンター１０４２のオプション機器構成や、ユーザーごとの環境設定など設定を保持しておきたいものは、プリンタードライバー１０５２がオペレーティングシステム１０５３のレジストリデータベース２０４に保存する。印刷設定２０１２のユーザーごとのデフォルト値はオペレーティングシステム１０５３のプリントマネージャ２０８が、レジストリデータベース２０４に保存する。
【００２０】
アプリケーション１０５１は、印刷設定２０１２が作成し終わったら、ユーザーによって印刷処理が指示され、オペレーティングシステム１０５３に印刷処理の開始を通知する。オペレーティングシステム１０５３はグラフィックスエンジン２０２を通じて、指定されたプリンタードライバー１０５２への描画処理を行う。印刷設定２０１２でレイアウト処理が指定されている場合は、プリンタードライバー１０５２のレンダリングモジュール２０５に行く前に一時的なスプールファイル２０９を作成し、レイアウトモジュール（プリントプロセッサ）２１０で処理を行う。描画データ２０１１が送られてきたプリンタードライバー１０５２はレンダリングモジュール２０５によって、プリンターが理解できるデータ言語すなわちプリンター制御言語に変換する。プリンタードライバー１０５２が作成したプリンター制御言語は、プリントマネージャ２０８のＩ／Ｏモジュール２１１を介してプリンター１０４２に順次印刷ジョブデータを送信する。
【００２１】
近年では、Ｖ４プリンタードライバーと呼ばれる印刷処理システムも登場した。図１３はＶ４プリンタードライバー印刷システムのブロック構成図である。Ｖ４プリンタードライバー印刷システムはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以下、ＸＰＳと略す）と呼ばれるファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。図１３におけるソフトウェアコンポーネントの１０５１、１０５２は、補助記憶装置１０５に記憶されており、実行時にＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。Ｖ４プリンタードライバー印刷システムは、オペレーティングシステム１０５３上で動作している。プリントマネージャ２０８、ＧＤＩｔｏＸＰＳ変換モジュール１３０５、フィルターパイプラインマネージャ１３０９はオペレーティングシステム１０５３に含まれるモジュールである。ＧＤＩｔｏＸＰＳ変換モジュール１３０５、フィルターパイプラインマネージャ１３０９は、プリンタードライバー１０５２に含まれているが、オペレーティングシステム１０５３から提供されているプリンタードライバー１０５２専用のモジュールである。プリンタードライバー１０５２とフィルターパイプラインマネージャ１３０９の通信フィルター１３１０、レイアウトフィルター１３１１、レンダラーフィルター１３１２と、デバイスアプリ／プリンターエクステンション１３０７は、図１の補助記憶装置１０５にプリンタードライバー１０５２として格納されている。ＧＤＩ印刷アプリケーション１３０１（以下、ＧＤＩアプリと略す）とＸＰＳ印刷アプリケーション１３０２（以下、ＸＰＳアプリと略す）は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。
【００２２】
デバイスアプリ／プリンターエクステンション１３０７は、プリンタードライバー１０５２と連携して動作するアプリケーションであり、プリンタードライバー１０５２とは別のプログラムとしてインストールされる。ストアから配信されるアプリ向けのデバイスアプリと、デスクトップアプリ向けのプリンターエクステンションの２種類が存在する。どちらも、Ｖ４プリンタードライバーでは、プリンタードライバー１０５２の印刷設定２０１２を作成するためのユーザーインターフェースを提供するために、コンフィギュレーションモジュール２０６から呼び出される。デスクトップアプリ向けプリンターエクステンションであれば、プリンタードライバー１０５２と一緒にインストールすることもできる。デバイスアプリは、プリンタードライバー１０５２がインストールされると、ネットワークを通してクラウドのストアサーバーから自動インストールされる。プリンター１０４２のオプション機器や、ユーザーごとの環境設定などは、プリンタードライバーがオペレーティングシステムのレジストリデータベース２０４、もしくはプロパティバッグ１３１４に保存する。印刷設定２０１２のデフォルト値はオペレーティングシステムのプリントマネージャ２０８が、レジストリデータベース２０４に保存する。レジストリデータベース２０４や、プロパティバッグ１３１４は、補助記憶装置１０５に保存される。
【００２３】
Ｖ４プリンタードライバー印刷システムは、印刷時に必ず描画データに基づくＸＰＳスプールファイル１３０４を生成する点が特徴である。ＸＰＳスプールファイル１３０４が生成されたら、プリントフィルタパイプライン１３０８に処理が渡される。プリントフィルタパイプライン１３０８は複数のフィルターを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル１３１３がフィルターの数や順番を制御する。通信フィルター１３１０はプリンター１０４２からの情報を取得する。レイアウトフィルター１３１１はページのレイアウトを変更したり付加描画を行ったりする。レンダラーフィルター１３１２はプリンター制御言語に変換する。また、フィルターはプリンタードライバー１０５２の構成によって、数や種類が異なる。例えば、図１３の３つのフィルターに加えて、更に、印刷ジョブを暗号化するための暗号化フィルターなどが含まれていても良い。プリンタードライバー１０５２が作成したプリンター制御言語は、プリントマネージャ２０８のＩ／Ｏモジュール２１１を介してプリンター１０４２に順次印刷ジョブデータを送信する。
【００２４】
図３は、カスタマイズアプリケーション３０１を使ってプリンタードライバー１０５２をカスタマイズする際の、ブロック構成図である。プリンタードライバー１０５２をカスタマイズするカスタマイズアプリケーション３０１も、印刷するアプリケーション同様に、図１の補助記憶装置１０５に格納されている。
【００２５】
プリンタードライバー１０５２をカスタマイズする際は、プリンタードライバー１０５２はオペレーティングシステム１０５３にインストールする前の状態になるので、図２や図１３で示したプリンタードライバー１０５２のモジュールに加えて、ＩＮＦファイル３０７を持っている。ＩＮＦファイル３０７は、プリンタードライバー１０５２が持つモジュールのインストールに関連するすべての情報（ＩＮＦｏｒｍａｔｉｏｎ）を持ったファイルである。オペレーティングシステム１０５３は、ＩＮＦファイル３０７を基にして、プリンタードライバー１０５２がどんなモジュールやファイルを持っているかを知ることになる。ＩＮＦファイル３０７は、プリンタードライバー１０５２のモジュールやファイルが勝手に書き換わっていないことを保証するために、署名されている。プリンタードライバー１０５２を直接カスタマイズしてモジュールやファイルを書き替えてしまうと、ＩＮＦファイル３０７の署名が崩れてしまうので、本実施例ではカスタマイズデータをプリンタードライバー１０５２とは別に作る形でカスタマイズを行う。
【００２６】
カスタマイズアプリケーション３０１は、カスタマイズモジュール３０２と、シミュレートＡＰＩモジュール３０３と、作成されたカスタマイズデータからなる。アプリケーション１０５１がプリンタードライバー１０５２で印刷設定を行う際は、Ｖ３プリンタードライバーではオペレーティングシステム１０５３のプリントマネージャ２０８を経由してコンフィギュレーションモジュール２０６を呼び出す。Ｖ４プリンタードライバーでは、コンフィギュレーションモジュール２０６を経由してデバイスアプリ／プリンターエクステンション１３０７を呼び出す。しかし、プリンタードライバー１０５２はカスタマイズを行う時点ではオペレーティングシステム１０５３にインストールされていない。そのため、カスタマイズアプリケーション３０１は、オペレーティングシステム１０５３を経由して呼び出すことができないので、印刷するアプリケーション１０５１と同じ方法ではプリンタードライバー１０５２のユーザーインターフェースを表示することができない。そこで、シミュレートＡＰＩモジュール３０３は、あたかもプリンタードライバー１０５２がインストールされているように、ＩＮＦファイル３０７を基にしてコンフィギュレーションモジュール２０６やデバイスアプリ／プリンターエクステンション１３０７を呼び出すようにするモジュールである。カスタマイズアプリケーション３０１は、３つのカスタマイズデータ（カスタマイズデフォルトデータ３０４、カスタマイズレジストリデータ３０５、カスタマイズＵＩデータ３０６）を作成した後、カスタマイズドライバセットを出力する。
【００２７】
図４はカスタマイズドライバセットのブロック構成図である。図４ａがカスタマイズする前のドライバセットで、ＩＮＦファイル３０７を含むプリンタードライバー１０５２と、インストーラー４０１をあわせたものである。Ｖ４プリンタードライバーでは、コンフィギュレーションモジュール２０６の代わりにデバイスアプリ／プリンターエクステンション１３０７を含む。カスタマイズアプリケーション３０１は、最終的に機種依存カスタマイズデータ４０２を含む、図４ｂのカスタマイズドライバセットを出力する。機種依存カスタマイズデータ４０２は、機種ごとにカスタマイズデフォルトデータ３０４、カスタマイズレジストリデータ３０５、カスタマイズＵＩデータ３０６を含んでいる。
【００２８】
次に、カスタマイズアプリケーション３０１を使って、プリンタードライバー１０５２をカスタマイズする方法を、図５と図６のフローチャートを使って説明する。
【００２９】
図５のフローチャートにおいて、カスタマイズアプリケーション３０１は、まず使用許諾の承諾を得る画面を表示する（Ｓ５０１）。ユーザーによって承諾が得られると、カスタマイズアプリケーション３０１は、カスタマイズする対象のプリンタードライバー１０５２を選択させる画面を表示する（Ｓ５０２）。ここで、カスタマイズする対象のプリンタードライバー１０５２が含まれたドライバセットの、インストーラー４０１もしくはＩＮＦファイル３０７がユーザーによって選択され、カスタマイズアプリケーション３０１は、プリンタードライバー１０５２を特定することができる。カスタマイズアプリケーション３０１は、次に詳細なカスタマイズ設定処理を行う（Ｓ５０３）。この詳細なカスタマイズ設定処理は、図６のフローチャートによって後述する。カスタマイズアプリケーション３０１は、カスタマイズ設定が終了しカスタマイズデータを作成すると、カスタマイズドライバセットを出力して終了する（Ｓ５０４）。
【００３０】
図６のフローチャートと図７の機種一覧画面を使用して、カスタマイズアプリケーション３０１の詳細なカスタマイズ設定処理を説明する。
【００３１】
カスタマイズアプリケーション３０１は機種一覧画面を表示する（Ｓ６０１）。図７が機種一覧画面で、リストビュー７０１にカスタマイズ可能な機種一覧が表示されている。図７の機種一覧では機種ごとに後述する印刷設定画面や状態設定画面による設定変更が、その機種に対して行われているのか否かを示す表示を行う。具体的には変更が行われていれば「変更あり」という文字列を表示する。次にユーザーによってリストビュー７０１で機種の選択を受付け、カスタマイズアプリケーション３０１は、選択された機種をカスタマイズの対象とする（Ｓ６０２）。カスタマイズアプリケーション３０１は、ユーザーによって「キャンセル」ボタン７０６が押されたかどうかを判定する（Ｓ６０３）。カスタマイズアプリケーション３０１は、「キャンセル」ボタン７０６が押されていたら、カスタマイズ対象のプリンタードライバー選択処理Ｓ５０２に戻る（Ｓ６０８）。カスタマイズアプリケーション３０１は、ユーザーによって「次へ」ボタン７０５が押されたかどうかを判定する（Ｓ６０４）。カスタマイズアプリケーション３０１は、「次へ」ボタン７０５が押されていたら、次のカスタマイズドライバセットの出力Ｓ５０４へ進む（Ｓ６０９）。カスタマイズアプリケーション３０１は、「設定解除」ボタン７０３が押されたかどうかを判定する（Ｓ６０５）。カスタマイズアプリケーション３０１は、「設定解除」ボタン７０３が押されていたら、現在選択されている機種のカスタマイズデータをクリアする（Ｓ６１０）。
【００３２】
カスタマイズアプリケーション３０１は、「設定」ボタン７０２が押されたかどうかを判定する（Ｓ６０６）。カスタマイズアプリケーション３０１は、「設定」ボタン７０２が指示された場合に、シミュレートＡＰＩモジュール３０３を使って、プリンタードライバー１０５２のコンフィギュレーションモジュール２０６かデバイスアプリ／プリンターエクステンション１３０７を呼び出す（Ｓ６１１）。
【００３３】
シミュレートＡＰＩモジュール３０３は、オペレーティングシステム１０５３のプリントマネージャ２０８やコンフィギュレーションモジュール２０６と同じことを疑似的に行うモジュールである。シミュレートＡＰＩモジュール３０３は、プリンタードライバー１０５２がインストールされていなくても、インストールされているかのようにＶ３プリンタードライバーのコンフィギュレーションモジュール２０６やＶ４プリンタードライバーのデバイスアプリ／プリンターエクステンション１３０７を呼び出すことができる。プリンタードライバー１０５２がインストールされているときに、本来レジストリデータベース２０４やプロパティバッグ１３１４に保存していたデータは、シミュレートＡＰＩモジュール３０３を使うと、カスタマイズレジストリデータ３０５に保存される。シミュレートＡＰＩモジュール３０３は、プリンタードライバー１０５２で使用するモジュールやファイルを確定するために、ＩＮＦファイル３０７に記載された情報を使用して、どのモジュールやファイルを呼び出せばいいかを知ることができる。プリンタードライバー１０５２から見ると、オペレーティングシステム１０５３のプリントマネージャ２０８から呼び出されているか、シミュレートＡＰＩモジュール３０３から呼び出されているかは区別しない。プリンタードライバー１０５２はシミュレートＡＰＩモジュール３０３から呼び出されたとしても、オペレーティングシステム１０５３のプリントマネージャ２０８から呼び出されたときと同じように動作する。
【００３４】
カスタマイズアプリケーション３０１から呼び出されることで、デフォルトの印刷設定を設定するためのプリンタードライバーの通常の印刷設定画面が表示される（Ｓ６１２）。Ｖ３プリンタードライバーではインストール前のコンフィギュレーションモジュール２０６が、Ｖ４プリンタードライバーではインストール前のデバイスアプリ／プリンターエクステンション１３０７が表示を行う。
【００３５】
図８が、通常の印刷設定を行うプリンタードライバーの印刷設定画面であり、プリンタードライバー１０５２又はデバイスアプリ／プリンターエクステンション１３０７は機種依存データファイル２０７を読み込んで、Ｓ６０２で選択された機種にあわせた表示を行う。プリンタードライバー１０５２は、ユーザーによって操作され決定された値に基づき、通常どおり印刷設定２０１２を作成しレジストリデータベース２０４やプロパティバッグ１３１４に保存する。
【００３６】
しかし、この時点ではシミュレートＡＰＩモジュール３０３から呼び出されているので、実際のオペレーティングシステム１０５３が管理しているレジストリデータベース２０４やプロパティバッグ１３１４の領域に保存するわけではない。シミュレートＡＰＩモジュール３０３は、印刷設定２０１２をカスタマイズデフォルトデータ３０４に、レジストリデータベース２０４やプロパティバッグ１３１４に保存したデータをカスタマイズレジストリデータ３０５に、それぞれ置き換えて（リダイレクトして）保存する。これによって、Ｖ４であれば例えばインストール後のデバイスアプリ／プリンターエクステンション１３０７が実際に利用するオペレーティングシステム１０５３により管理される領域とは異なる領域に分離して保存される。
【００３７】
カスタマイズアプリケーション３０１はカスタマイズデフォルトデータ３０４とカスタマイズレジストリデータ３０５を受け取る（Ｓ６１３）。Ｖ３プリンタードライバーではインストール前のコンフィギュレーションモジュール２０６から、Ｖ４プリンタードライバーではインストール前のデバイスアプリ／プリンターエクステンション１３０７から受信する。
【００３８】
カスタマイズアプリケーション３０１は、「コントロール表示」ボタン７０４が押されたかどうかを判定する（Ｓ６０７）。カスタマイズアプリケーション３０１は、「コントロール表示」ボタン７０４が指示された場合に、カスタマイズ用ＡＰＩを使って直接プリンタードライバー１０５２のコンフィギュレーションモジュール２０６かデバイスアプリ／プリンターエクステンション１３０７を呼び出す（Ｓ６１４）。「設定」ボタン７０２と異なり、「コントロール表示」ボタン７０４が指示されると、プリンタードライバー１０５２の通常のユーザーインターフェースではなく、印刷設定画面における印刷設定項目のコントロールの表示状態を設定するためのカスタマイズ専用の状態設定画面が表示される（Ｓ６１５）。Ｖ３プリンタードライバーではインストール前のコンフィギュレーションモジュール２０６が、Ｖ４プリンタードライバーではインストール前のデバイスアプリ／プリンターエクステンション１３０７が表示を行う。
【００３９】
図９が、カスタマイズ専用の状態設定画面で、プリンタードライバー１０５２又はデバイスアプリ／プリンターエクステンション１３０７は機種依存データファイル２０７を読み込んで、Ｓ６０２で選択された機種にあわせた表示を行う。状態設定画面は通常の印刷設定を行う印刷設定画面の各コントロールの状態を切り替えるためのものである。コントロールの状態は、「表示」「無効」「非表示」の３種類が存在し、「表示」は通常どおり表示するもの、「無効」はユーザーの操作が効かなくなるようにグレーアウトするもの、「非表示」はコントロールを表示しなくするものを指す。
【００４０】
カスタマイズアプリケーション３０１は、作成されたカスタマイズＵＩデータ３０６を受け取る（Ｓ６１６）。Ｖ３プリンタードライバーではインストール前のコンフィギュレーションモジュール２０６から、Ｖ４プリンタードライバーではインストール前のデバイスアプリ／プリンターエクステンション１３０７から受信する。以降、カスタマイズＵＩデータ３０６がどのように作成されるのかを説明する。
【００４１】
プリンタードライバー１０５２は、カスタマイズ専用のユーザーインターフェース用に、各コントロールと、内部の印刷設定２０１２の機能であるＦｅａｔｕｒｅを、機種依存データファイル２０７として、関連づけるテーブルを持っている。プリンタードライバー１０５２の「用紙サイズ」や「印刷の向き」などの印刷設定２０１２はＰｒｉｎｔＴｉｃｋｅｔと呼ばれるマークアップ言語のデータ構造になっており、それぞれの機能は、Ｆｅａｔｕｒｅとして管理されている。Ｆｅａｔｕｒｅは、選択肢のＯｐｔｉｏｎを持つ構造であり、たとえば、印刷設定のうち「用紙サイズ」でいえば、「ＰａｐｅｒＳｉｚｅ」というＦｅａｔｕｒｅに、「Ａ４」や「Ｂ５」といったＯｐｔｉｏｎを持っている。
【００４２】
ユーザーインターフェースのコントロールは、チェックボックスやドロップダウンボックスなどユーザーが操作しやすいように配置されているが、必ずしも内部の印刷設定であるＦｅａｔｕｒｅと対になっているわけではない。また、機種によっては、プリンタードライバー１０５２のユーザーインターフェース上に、存在する機能と存在しない機能がある。
【００４３】
そこで、プリンタードライバー１０５２は、機種依存データファイル２０７として、ユーザーインターフェースのコントロールを関連づけるコントロールＩＤと、印刷設定の機能であるＦｅａｔｕｒｅを関連づけるテーブルを持つ。コントロールＩＤは、プリンタードライバー１０５２のユーザーインターフェース上のコントロールと、一意になっている。コントロールＩＤと、印刷設定の機能であるＦｅａｔｕｒｅは一対一に対応づけられるわけでもなく、一つのコントロールが、内部の印刷設定としては複数の機能に関連づいていることもある。この場合は、関連付けられたすべてのＦｅａｔｕｒｅの状態が「無効」もしくは「非表示」になっていないと、コントロールに対する状態変更は行われない。以下の表１は、プリンタードライバー１０５２が持つ関連づけるテーブルである。
【００４４】
【表１】
2019075011.tif 000003
【００４５】
ユーザーがカスタマイズ専用のユーザーインターフェースで設定を行うと、プリンタードライバー１０５２は、それぞれのコントロールＩＤに対応したＦｅａｔｕｒｅと、カスタマイズした状態の設定値を、カスタマイズＵＩデータ３０６として保存する。なお、コントロールＩＤではなく、印刷設定のＦｅａｔｕｒｅという形で関連づけて保存するのは、今後プリンタードライバー１０５２の更新によりユーザーインターフェースのコントロールが変わっても、情報が欠落しないようにするためである。
【００４６】
図１４のフローチャートを使用して、作成したカスタマイズドライバセットをインストールするフローを説明する。カスタマイズドライバセットのインストーラー４０１は、カスタマイズドライバセットに含まれるプリンタードライバー１０５２をインストールする（Ｓ１４０１）。加えて、Ｖ４プリンタードライバーではプリンターエクステンション１３０７をインストールする。なお、プリンターエクステンション１３０７はプリンタードライバー１０５２とは別途インストールするように構成しても構わない。次に、カスタマイズドライバセットのインストーラー４０１は、ドライバセットの中にカスタマイズデータがあるかどうかを判定する（Ｓ１４０２）。もし、カスタマイズデータが存在すれば、カスタマイズドライバセットのインストーラー４０１は、カスタマイズデータすべてをレジストリデータベース２０４もしくはプロパティバッグ１３１４に書き込んで終了する（Ｓ１４０３）。カスタマイズデータが存在しなければ、カスタマイズドライバセットのインストーラー４０１はそのまま終了する。
【００４７】
図１５のフローチャートを使用して、カスタマイズドライバーのコンフィギュレーションモジュール２０６もしくはデバイスアプリ／プリンターエクステンション１３０７のユーザーインターフェースの表示について説明する。以降のフローチャートの説明は、Ｖ３プリンタードライバーのコンフィギュレーションモジュール２０６を主語として記載するが、Ｖ４プリンタードライバーであればデバイスアプリ／プリンターエクステンション１３０７が主語になる。コンフィギュレーションモジュール２０６は、オペレーティングシステム１０５３から、印刷ダイアログで詳細設定ボタンが押下される等により、印刷設定を変更するための印刷設定画面を開く指示を受け取る（Ｓ１５０１）。コンフィギュレーションモジュール２０６は、レジストリデータベース２０４にカスタマイズレジストリデータ３０５があるかどうかを判定する（Ｓ１５０２）。カスタマイズレジストリデータ３０５が存在すれば、コンフィギュレーションモジュール２０６は、レジストリデータベース２０４からレジストリデータを取得し、カスタマイズレジストリデータ３０５で上書きを行う（Ｓ１５０３）。カスタマイズレジストリデータ３０５は差分としてのカスタマイズデータなので、レジストリデータがそのまま使用される部分と、カスタマイズデータが上書きして使用される部分がある。コンフィギュレーションモジュール２０６は、レジストリデータベース２０４にカスタマイズデフォルトデータ３０４があるかどうかを判定する（Ｓ１５０４）。カスタマイズデフォルトデータ３０４が存在すれば、コンフィギュレーションモジュール２０６は、レジストリデータベース２０４から印刷設定のデフォルト値を取得し、カスタマイズデフォルトデータ３０４で上書きを行う（Ｓ１５０５）。カスタマイズデフォルトデータ３０４は差分としてのカスタマイズデータなので、レジストリデータがそのまま使用される部分と、カスタマイズデータが上書きして使用される部分がある。次にコンフィギュレーションモジュール２０６は、カスタマイズデータで上書きされたレジストリデータと印刷設定のデフォルト値をベースにして、印刷設定画面の表示を行う（Ｓ１５０６）。これによって、Ｖ４ではインストール後の印刷設定アプリケーションがカスタマイズデータに従って印刷設定画面を表示することができる。次に、コンフィギュレーションモジュール２０６は、レジストリデータベース２０４にカスタマイズＵＩデータ３０６があるかどうかを判定する（Ｓ１５０７）。カスタマイズＵＩデータ３０６が存在すれば、コンフィギュレーションモジュール２０６は、カスタマイズＵＩデータ３０６に基づき、指定されているＦｅａｔｕｒｅに関連づけられたコントロールをテーブルから取得する。そして、コンフィギュレーションモジュール２０６は、取得した指定されているＦｅａｔｕｒｅに関連づけられたコントロールの表示状態を、カスタマイズした状態の設定値に従って、非表示もしくは無効化を行う（Ｓ１５０８）。図１６は実際にカスタマイズしたユーザーインターフェースの表示状態である。図８と比べて、両面印刷とページ集約が非表示になっており、印刷の向きとカラーモードが無効化されグレーアウトしている。
【００４８】
このようにして、カスタマイズアプリケーション３０１は、プリンタードライバー１０５２に対して、シミュレートＡＰＩモジュール３０３を使用するか、カスタマイズ用ＡＰＩを使用することで、機種依存した専用のユーザーインターフェースを表示することができる。カスタマイズアプリケーション３０１を変更することなく、プリンタードライバー１０５２の対応する機種にあわせたカスタマイズ用のユーザーインターフェースを表示できる。
【００４９】
また、カスタマイズアプリケーション３０１からカスタマイズ用ＡＰＩを使用してプリンタードライバー１０５２が呼び出されたときに、通常のユーザーインターフェースと並べてカスタマイズ用ユーザーインターフェースを表示してもよい。この場合は、図１０のようになる。従来と同様にカスタマイズできるだけでなく、コントロール表示で選択したコントロールの状態を、タブを切り替えることですぐに確認することができる。
【００５０】
また、カスタマイズアプリケーション３０１からカスタマイズ用ＡＰＩを使用してプリンタードライバー１０５２が呼び出されたときに、通常のユーザーインターフェース上で、コントロール上にポインタを置いてメニューで状態変更できるようにしてもよい。この場合は、図１１のようになる。ユーザーはプリンタードライバー１０５２のＵＩに対して直観的に、コントロールの状態を変更する操作をすることが可能になる。
【００５１】
また、カスタマイズＵＩデータ３０６は、カスタマイズデフォルトデータ３０４と一体化して一つにすることも可能である。カスタマイズデフォルトデータ３０４は、印刷設定であるＰｒｉｎｔＴｉｃｋｅｔのデフォルトとの差分データから作成されている。そのうち、Ｆｅａｔｕｒｅの属性を追加するためにＰｒｏｐｅｒｔｙを付与し、そこにコントロールの状態を書き込む。ＥｎａｂｌｅＣｏｎｔｒｏｌのＰｒｏｐｅｒｔｙは有効か無効かの状態を示し、ＳｈｏｗＣｏｎｔｒｏｌのＰｒｏｐｅｒｔｙは表示か非表示かの状態を示す。この場合は、図１２のようになる。印刷設定のＰｒｉｎｔｔＴｉｃｋｅｔにおいて、属性のＰｒｏｐｅｒｔｙは特に印刷設定自体には影響を及ぼさないので、一体化することが可能である。
【００５２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５３】
３０４  カスタマイズデフォルトデータ
３０５  カスタマイズレジストリデータ
３０６  カスタマイズＵＩデータ
１３０７  デバイスアプリ／プリンターエクステンション
【図１】
2019075011.tif 000004
【図２】
2019075011.tif 000005
【図３】
2019075011.tif 000006
【図４】
2019075011.tif 000007
【図５】
2019075011.tif 000008
【図６】
2019075011.tif 000009
【図７】
2019075011.tif 000010
【図８】
2019075011.tif 000011
【図９】
2019075011.tif 000012
【図１０】
2019075011.tif 000013
【図１１】
2019075011.tif 000014
【図１２】
2019075011.tif 000015
【図１３】
2019075011.tif 000016
【図１４】
2019075011.tif 000017
【図１５】
2019075011.tif 000018
【図１６】
2019075011.tif 000019