(57)【要約】【課題】印刷設定のデフォルト値をドライバがインストールされる環境に応じて編集する。【解決手段】カスタマイズツールにより、プリンタドライバインストール時に適用されるデフォルトの印刷設定を編集する。そのためにカスタマイズツールのスタンプ設定ボタンをクリックされると、そのためのＵＩ画面を表示し（Ｓ７０２）、詳細設定に応じてスタンプの文字やサイズ、色、位置、傾き、書体等を変更して（Ｓ７０３）、設定されたパラメータを保存する（Ｓ７０４）。また、編集がコントロールの変更であれば、そのためのＵＩを表示し（Ｓ７０６）、設定に応じてパラメータを変更する（Ｓ７０７）。変更されたパラメータはカスタマイズされたデフォルトの印刷設定として保存され、ドライバのインストール時にロードされる。【選択図】図２８
2006309726.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置を制御するデバイスドライバをカスタマイズする情報処理装置であって、
カスタマイズされているカスタマイズドライバを特定するための識別情報を発行する発行手段と、
前記発行手段が発行した識別情報を、前記カスタマイズドライバと関連付けて記憶する記憶手段と
を備える情報処理装置。
【請求項２】
当該カスタマイズドライバに対応する識別情報が前記記憶手段により記憶されているか判定する判定手段と、
前記判定手段の判定により、前記識別情報が設定されていると判定された場合、前記記憶手段に記憶されているカスタマイズドライバをインストールする際、当該識別情報をオペレーティングシステムが管理する記憶領域に登録する登録手段と
を備える請求項１に記載の情報処理装置。
【請求項３】
デバイスドライバに対して特定の設定値を設定する設定手段と、
前記設定された設定値を前記デバイスドライバの情報ファイルに書き込んで、カスタマイズドライバを生成する生成手段とを、更に備える請求項２に記載の情報処理装置。
【請求項４】
カスタマイズドライバをインストールする際、前記判定手段は、前記識別情報を用いて、既にインストールされているデバイスドライバがカスタマイズされているかを判定し、
前記設定手段は、前記判定手段により前記デバイスドライバがカスタマイズされていると判定される場合、前記情報ファイルに書き込まれている前記設定値を、インストールするデバイスドライバの情報ファイルに書き込む請求項３に記載の情報処理装置。
【請求項５】
前記カスタマイズされた設定とは、複数の印刷設定値に対応する複合印刷設定、及び、プリンタドライバのユーザインタフェースを変更する設定、及び、プリンタドライバを操作する際にプリンタドライバのユーザインタフェースを介して設定する設定値の少なくともひとつを含む請求項３に記載の情報処理装置。
【請求項６】
カスタマイズされているカスタマイズドライバを取得するドライバ取得手段と、
カスタマイズドライバをインストール指示するインストール指示手段と、
前記インストール指示手段がインストール指示するカスタマイズドライバを特定する識別情報を取得する識別情報取得手段と、
前記識別情報を用いて、前記インストール手段がインストールした結果を表示する表示手段と、
を備える情報処理装置。
【請求項７】
前記インストール指示手段は、複数のデバイスドライバをインストールするものであり、
前記表示手段は、インストール結果として、カスタマイズされているドライバとカスタマイズされていないドライバを識別可能に表示する請求項６に記載の情報処理装置。
【請求項８】
前記インストール指示手段は、ネットワークを介して外部情報処理装置に対して、インストール指示を送信することによりインストール指示を行なうものであり、
外部情報処理装置から送信されてくるインストール結果を示す情報と、前記取得手段が取得した識別情報を用いて、前記表示手段は前記カスタマイズドライバのインストールが成功したか否かを識別可能に表示する請求項６に記載の情報処理装置。
【請求項９】
前記取得手段は、情報処理装置内に記憶されている識別情報を取得する請求項６に記載の情報処理装置。
【請求項１０】
前記取得手段は、外部情報処理装置から返送されてくる識別情報を取得する請求項６に記載の情報処理装置。
【請求項１１】
コンピュータ可読記録媒体に記録された、画像形成装置を制御するデバイスドライバをカスタマイズするプログラムであって、該プログラムは、
カスタマイズされているカスタマイズドライバを特定するための識別情報を発行する発行処理手順のコードと、
前記発行処理手順のコードが発行した識別情報を、前記カスタマイズドライバと関連付けて記憶手段により記憶する記憶処理手順のコードとを備える。
【請求項１２】
当該カスタマイズドライバに対応する識別情報が前記記憶手段により記憶されているか判定する判定処理手順のコードと、
前記判定処理手順の判定により、前記識別情報が設定されていると判定された場合、前記記憶手段に記憶されているカスタマイズドライバをインストールする際、当該識別情報をオペレーティングシステムが管理する記憶領域に登録する登録処理手順のコードと
を備える請求項１１に記載のプログラム。
【請求項１３】
デバイスドライバに対して特定の設定値を設定する設定処理手順のコードと、
前記設定された設定値を前記デバイスドライバの情報ファイルに書き込んで、カスタマイズドライバを生成する生成処理手順のコードと
を更に備えるを備える請求項１２に記載のプログラム。
【請求項１４】
カスタマイズドライバをインストールする際、前記判定処理手順では、前記識別情報を用いて、既にインストールされているデバイスドライバがカスタマイズされているかを判定し、
前記設定処理手順は、前記判定処理手順により前記デバイスドライバがカスタマイズされていると判定される場合、前記情報ファイルに書き込まれている前記設定値を、インストールするデバイスドライバの情報ファイルに書き込む請求項１３に記載のプログラム。
【請求項１５】
前記カスタマイズされた設定とは、複数の印刷設定値に対応する複合印刷設定、及び、プリンタドライバのユーザインタフェースを変更する設定、及び、プリンタドライバを操作する際にプリンタドライバのユーザインタフェースを介して設定する設定値の少なくともひとつを含む請求項１１に記載のプログラム。
【請求項１６】
カスタマイズされているカスタマイズドライバを取得するドライバ取得処理手順のコードと、
カスタマイズドライバをインストール指示するインストール指示処理手順のコードと、
前記インストール指示処理手順でインストール指示するカスタマイズドライバを特定する識別情報を取得する識別情報取得処理手順のコードと、
前記識別情報を用いて、前記インストール手段がインストールした結果を表示する表示処理手順のコードとを備える。
【請求項１７】
前記インストール指示処理手順は、複数のデバイスドライバをインストールするものであり、
前記表示処理手順のコードは、インストール結果として、カスタマイズされているドライバとカスタマイズされていないドライバを識別可能に表示する請求項１６に記載のプログラム。
【請求項１８】
前記インストール指示処理手順は、ネットワークを介して外部情報処理装置に対して、インストール指示を送信することによりインストール指示を行なうものであり、
外部情報処理装置から送信されてくるインストール結果を示す情報と、前記取得処理手順が取得した識別情報を用いて、前記表示処理手順は前記カスタマイズドライバのインストールが成功したか否かを識別可能に表示する請求項１６に記載のプログラム。
【請求項１９】
前記取得処理手順は、情報処理装置内に記憶されている識別情報を取得する請求項１６に記載のプログラム。
【請求項２０】
前記取得処理手順は、外部情報処理装置から返送されてくる識別情報を取得する請求項１６に記載のプログラム。
【請求項２１】
画像形成装置を制御するデバイスドライバをカスタマイズするカスタマイズ方法であって、
カスタマイズされているカスタマイズドライバを特定するための識別情報を発行する発行処理ステップと、
前記発行処理ステップで発行した識別情報を、前記カスタマイズドライバと関連付けて記憶手段により記憶する記憶ステップとを備える。
【請求項２２】
デバイスドライバの動作設定情報をカスタマイズ可能なカスタマイズ用プログラムであって、
メモリに保存された、デバイスドライバをインストールするためのドライバセットを読み込む読込工程と、
前記読込工程で読み込まれたドライバセットのデバイスドライバがインストールされた際に初期的に保持する動作設定情報を編集する設定編集工程と、
前記設定編集工程により編集された動作設定情報を、前記デバイスドライバのドライバセット内に設定定義情報として保存する保存工程と
をコンピュータにより実行させることを特徴とするプログラム。
【請求項２３】
デバイスドライバの動作設定情報をカスタマイズ可能な情報処理装置であって、
メモリに保存された、デバイスドライバをインストールするためのドライバセットを読み込む読込手段と、
前記読込手段で読み込まれたドライバセットのデバイスドライバがインストールされた際に初期的に保持する動作設定情報を編集する設定編集手段と、
前記設定編集手段により編集された動作設定情報を、前記デバイスドライバのドライバセット内に設定定義情報として保存する保存手段と
を備えることを特徴とする情報処理装置。
【請求項２４】
前記デバイスドライバはプリンタを駆動制御するためのプリンタドライバであり、前記設定編集手段は、文書に付加印刷されるスタンプの内容および位置を含む設定情報を変更することを特徴とする請求項２３に記載の情報処理装置。
【請求項２５】
前記設定編集手段は、前記スタンプを有効化するか否かの設定を変更可能であることを特徴とする請求項２４に記載の情報処理装置。
【請求項２６】
前記設定編集手段は、前記プリンタドライバが前記情報処理装置にインストールされた後に提供される設定編集機能により前記スタンプに係る設定情報の変更を許すか否かの設定を変更可能であることを特徴とする請求項２４または２５に記載の情報処理装置。
【請求項２７】
前記動作設定情報には、前記動作設定情報の各項目に所望の値を設定したプロファイル情報が含まれ、前記設定編集手段は、前記プロファイル情報の追加または削除または、プロファイル情報に含まれる各項目についても編集が可能であることを特徴とする請求項２３に記載の情報処理装置。
【請求項２８】
前記設定編集手段は、前記プリンタドライバが前記情報処理装置にインストールされた後に提供される設定編集機能により前記プロファイル情報の変更を許すか否かの設定を変更可能であることを特徴とする請求項２７に記載の情報処理装置。
【請求項２９】
前記設定編集手段により編集された動作設定情報を前記情報処理装置により画面上に表示させるための表示手段をさらに備えることを特徴とする請求項２３乃至２７のいずれか１項に記載の情報処理装置。
【請求項３０】
前記保存手段で保存されたドライバセットに基づくデバイスドライバのインストールの際、またはインストール後に最初に起動された際に、前記設定定義情報にアクセスするアクセス手段と、
前記アクセス手段によりアクセスされた前記設定定義情報に基づく設定値を、動作設定情報の変更のための操作画面に表示する設定表示制御手段とを更に備え、
前記設定表示制御手段は、前記動作設定情報のうちの所定の項目について、変更不可の設定がされている場合には、当該項目の設定値を、変更不可能な態様で表示することを特徴とする請求項２９に記載の情報処理装置。
【請求項３１】
デバイスドライバの動作設定情報をカスタマイズ可能な情報処理方法であって、
メモリに保存された、デバイスドライバをインストールするためのドライバセットを読み込む読込工程と、
前記読込工程で読み込まれたドライバセットのデバイスドライバがインストールされた際に初期的に保持する動作設定情報を編集する設定編集工程と、
前記設定編集工程により編集された動作設定情報を、前記デバイスドライバのドライバセット内に設定定義情報として保存する保存工程と
を備えることを特徴とする情報処理方法。
【請求項３２】
デバイスドライバの動作設定情報をカスタマイズ可能な情報処理システムであって、
メモリに保存された、デバイスドライバをインストールするためのドライバセットを読み込む読込手段と、
前記読込手段で読み込まれたドライバセットのデバイスドライバがインストールされた際に初期的に保持する動作設定情報を編集する設定編集手段と、
前記設定編集手段により編集された動作設定情報を、前記デバイスドライバのドライバセット内に設定定義情報として保存する保存手段と
を備えることを特徴とする情報処理システム。
【請求項３３】
前記保存手段で保存されたドライバセットに基づくデバイスドライバのインストールの際、またはインストール後に最初に起動された際に、前記設定定義情報にアクセスするアクセス手段と、
前記アクセス手段によりアクセスされた前記設定定義情報に基づく設定値を、動作設定情報の変更のための操作画面に表示する設定表示制御手段とを更に備え、
前記設定表示制御手段は、前記動作設定情報のうちの特定の項目について、変更不可の設定がされている場合には、当該項目の設定値を、変更不可能な態様で表示することを特徴とする請求項３２に記載の情報処理システム。
【請求項３４】
デバイスドライバの設定情報のデフォルト値をカスタマイズ可能な設定画面を表示する工程と、
前記設定画面を用いて設定された印字オプションの設定項目をカスタマイズされた項目として前記デバイスドライバのユーザインターフェースの関連データに書き込む工程と、
前記デバイスドライバの起動時、前記ユーザインターフェース関連データを参照してカスタマイズされた印字オプションの設定項目を前記デバイスドライバのユーザインターフェースに反映できる反映工程と
を備えることを特徴とする情報処理方法。
【請求項３５】
ユーザインターフェースを使用して設定された表示属性値に基づいて処理を実行する情報処理装置における情報処理方法であって、
デバイスドライバの印字オプションの初期値と構成情報を設定するためのユーザインターフェースを表示する表示制御工程と、
前記ユーザインターフェースを用いて設定された初期値と構成情報を前記デバイスドライバに関連付けて記憶する記憶工程と、
前記記憶工程により記憶された前記初期値と構成情報に基づいて、前記デバイスドライバユーザインターフェース画面を編集して表示する表示工程と
を有することを特徴とする情報処理方法。
【請求項３６】
デバイスドライバの設定情報のデフォルト値をカスタマイズ可能な設定画面を表示する手段と、
前記設定画面を用いて設定された印字オプションの設定項目をカスタマイズされた項目として前記デバイスドライバのユーザインターフェースの関連データに書き込む手段と、
前記デバイスドライバの起動時、前記ユーザインターフェース関連データを参照してカスタマイズされた印字オプションの設定項目を前記デバイスドライバのユーザインターフェースに反映できる反映手段と
を備えることを特徴とする情報処理装置。
【請求項３７】
ユーザインターフェースを使用して設定された表示属性値に基づいて処理を実行する情報処理装置であって、
デバイスドライバの印字オプションの初期値と構成情報を設定するためのユーザインターフェースを表示する表示制御手段と、
前記ユーザインターフェースを用いて設定された初期値と構成情報を前記デバイスドライバに関連付けて記憶する記憶手段と、
前記記憶手段に記憶された前記初期値と構成情報に基づいて、前記デバイスドライバユーザインターフェース画面を編集して表示する表示手段と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバ等のデバイスドライバをカスタマイズする情報処理技術に関するものである。
【背景技術】
【０００２】
従来、印刷システムの導入環境に応じて、使用するプリンタを制御するプリンタドライバプログラム（以下、プリンタドライバという）のカスタマイズを行ないたいという要望があった。特に、近年は、顧客によるプリンタの使用態様も多様化し、プリンタドライバに対するカスタマイズ要望は増加傾向にある。
【０００３】
その要望に対応するため、従来のプリンタドライバについても、プリンタドライバのベンダは、利用者に対してカスタマイズシステムを提供していた。カスタマイズシステムによりカスタマイズ可能な項目として、たとえば利用者による印刷設定の変更の制限がある。すなわち、通常であればプリンタドライバのユーザインタフェース（以下、単に「UI」と記す。）から、印刷設定の値を利用者が変更できる。プリンタドライバのカスタマイズにより、印刷設定値を変更ができないように、指定した項目の変更を制限できる。本実施形態では、この印刷設定の変更の制限を入力制御という。入力制御の対象とする印刷設定項目は、プリンタドライバのカスタマイズの際に指定できる。
【０００４】
上述のカスタマイズ技術を開示する文献として、例えば、以下の特許文献１及び特許文献２及び特許文献３に示されるものがある。
【特許文献１】特開平８−２７８８７１号公報
【特許文献２】特開２００２−２９７３４１号公報
【特許文献３】特開２００３−１５０３４１号公報（段落００１１〜００１４）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のカスタマイズシステムでカスタマイズされたプリンタドライバには、それがカスタマイズされたプリンタドライバであるこことを識別するための固有のコード（カスタムドライバコード）が付与される。しかしこのカスタムドライバコードは他のプログラムモジュール等から参照することができない。そのため、コンピュータがカスタマイズドライバを使用しているかどうかを外部から判断できないという課題があった。
【０００６】
例えば、接続されたコンピュータは、カスタマイズされたプリンタドライバの使用を義務づけられたネットワークシステムがあるとする。しかし、カスタマイズされたプリンタドライバが使用されていたとしても、システム管理者がそのことを知るのは困難である。すなわち、システムの管理が困難である。また、ドライバのバージョンアップのために、既にインストールされているドライバに、インストーラを用いて新たなバージョンのドライバを上書きインストールすることがある。その際にも、インストーラは、インストールされているドライバがカスタマイズドライバであることを知ることができない。そのため、新たなドライバにカスタマイズされた項目に特有の情報（カスタマイズ情報という）を引き継ぐことができないという課題があった。
【０００７】
また以下のような問題もあった。特許文献３には、ドライバのインストール時に、利用者にドライバの意機能の制限を選択させ、選択された制限の範囲内で対話的に機能設定を行うドライバのインストーラが提案されている。
【０００８】
特許文献２には、カスタマイズ操作の簡便化する方法が提案されている。すなわち、ユーザがプリンタドライバの各機能で使用する各種パラメータの値をパラメータファイルとしてサーバ上に登録しておく。インストーラのインストール処理部によるプリンタドライバのインストール処理が終了すると、パラメータ要求部がサーバに対してパラメータ値を要求する。パラメータ受信部がサーバからパラメータ値を受信して、プリンタドライバのパラメータ変更部にこれを渡し、パラメータ値を変更させる。
【０００９】
しかしながら、特許文献３のインストーラでは、個々のコンピュータについて印刷設定（動作設定ともいう）情報を、その構成や環境に適した値に変更しなくてはならない。このため、コンピュータの大量導入やシステム管理者等による一元管理になじまない。すなわち、特許文献３の方法では、システム管理者（ITマネージャ）の判断で、各利用者のＰＣにインストールされるプリンタドライバの印刷機能の制限を行うことができないという問題がある。
【００１０】
また、特許文献２記載の方法では、事前に複雑なパラメータファイルを準備しないとドライバをインストールできないという問題がある。また、サーバとクライアントとがネットワーク通信が行える環境でなくてはならず、システム環境が制限されてしまうという問題もある。
【００１１】
本発明は、上記の従来技術に鑑みてなされたものであり、外部のプログラムからレジストリを参照することで、インストールされているプリンタドライバがカスタマイズ済みのプリンタドライバであるか否かを判定することを可能にする情報処理技術の提供を目的とする。
【００１２】
あるいは、インストーラでプリンタドライバをアップデートする場合にも、こインストーラがアップデートされるドライバがカスタマイズしたドライバかどうか判定し、正確にカスタマイズ情報を引き継ぐことを可能にする情報処理技術の提供を目的とする。
【００１３】
また、複数のコンピュータにインストールするデバイスドライバ、とくにプリンタドライバを、その環境や使用するデバイスの構成に応じて簡単にカスタマイズすることを目的とする。
【００１４】
また、動作設定のうち、特に印刷画像にオーバレイされるスタンプに関する詳細な設定の変更を制限することを目的とする。たとえばスタンプ画像のオーバレイを有効にするか無効にするかの設定や、スタンプリスト（「丸秘」、「Ｃｏｎｆｉｄｅｎｔｉａｌ」、「ドラフト」、「コピー」等の文字列や画像のリスト）の設定など、スタンプについてのデフォルトの設定の変更を制限することを目的とする。
【００１５】
また、デバイスドライバの動作設定情報には、その動作設定情報の値をまとめて登録したいわゆる「お気に入り」（プロファイルとも呼ぶ。）が用意されている場合がある。お気に入りは動作設定情報を構成するパラメータのファイルとして用意され、適用するお気に入りファイルを指定することで、動作設定情報に含まれる各パラメータの値がまとめて置換される。お気に入りは動作設定情報のデフォルトにも含まれていることがある。
【００１６】
しかし、デフォルトとして用意されたお気に入りは１セットに限られているという問題がある。また、デフォルトの動作設定を、お気に入りとして登録されている動作設定に置換することで、デフォルト設定によりデバイスの機能の一部が制限されている場合でもその制限が変更されてしまうことが生じ得る。すなわき機能制限の目的を果たせない場合があった。
【００１７】
そこで本発明は、デバイスドライバの動作設定情報の集合、いわゆる「お気に入り」や「プロファイル」を容易にカスタマイズでき、使用可能な機能の制限の厳格な適用を実現することも目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するべく、本発明にかかる情報処理技術は、以下の構成を備えることを特徴とする。
【００１９】
すなわち、本発明に係る情報処理装置は、画像形成装置を制御するデバイスドライバをカスタマイズする情報処理装置であって、カスタマイズされているカスタマイズドライバを特定するための識別情報を発行する発行手段と、前記発行手段が発行した識別情報を、前記カスタマイズドライバと関連付けて記憶する記憶手段とを備える。
【発明の効果】
【００２０】
本発明によれば、外部のアプリケーションツールからレジストリを参照れば、カスタマイズ済みのプリンタドライバかを判定することが可能になる。
【００２１】
あるいは、インストーラでドライバをアップデートする場合にも、この情報からカスタマイズしたドライバかどうか判定し、正確にカスタマイズ情報を引き継ぐことが可能になる。
【００２２】
また本発明によれば、複数のコンピュータにインストールするデバイスドライバ、とくにプリンタドライバを、その環境や使用するデバイスの構成に応じて迅速に、また容易にカスタマイズすることが可能となる。
【００２３】
さらに、印刷画像にオーバレイされるスタンプに関するデフォルトの設定の編集等を、利用者の要求に応じて行える。
【００２４】
さらに、デバイスドライバの動作設定情報のプロファイルを容易にカスタマイズでき、また、プロファイルを通した機能制限の抜け穴を防止できる。
【発明を実施するための最良の形態】
【００２５】
[第１実施形態]
以下、添付図面を参照して本発明の好適な実施形態を説明する。なお、本実施形態ではMicrosoft（登録商標）社製PC用ＯＳ（Operating System）であるWindows（登録商標）のプリンタドライバをカスタマイズする方法を例として説明する。
【００２６】
図１は、本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。この印刷処理システムは、情報処理装置（以下、「ホストコンピュータ」ともいう）３０００と、このホストコンピュータ３０００より印刷データを受信して印刷を行なうプリンタ１５００を備えている。なお、ホストコンピュータ３０００，３００２は、サーバ３００１により提供されるサービスを受ける。そこでホストコンピュータ３０００，３００２をクライアントコンピュータ（またはクライアント）と呼ぶこともある。
【００２７】
ホストコンピュータ３０００において、ＣＰＵ１は、ＲＡＭ２に記憶されているプログラムに従って、システムバス４に接続される各デバイスを総括的に制御している。このＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ３ｂ、及び各種データを記憶するデータＲＯＭ３ｃに区分けして構成されている。
【００２８】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０への表示を制御している。ディスクコントローラ（ＤＫＣ）７は、ハードディスクなどの外部メモリ１１へのアクセスを制御している。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース２１を介してプリンタ１５００に接続され、プリンタ１５００との間で通信制御処理を行なう。
【００２９】
外部メモリ１１は、例えばハードディスク（ＨＤ）やＭＯ或はフレキシブルディスク（ＦＤ）等である。外部メモリ１１には、図示の如く、オペレーティングシステムプログラム（以下、ＯＳ）２０５をはじめ各種アプリケーション（例えば、図形、イメージ、文字、表等が混在した文書処理を行う文書処理アプリケーションプログラム）２０１、印刷処理関連プログラム２０４を記憶している他に、ユーザファイル、編集ファイル等も記憶されている。刷処理関連プログラム２０４は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のプリンタに対して共通に利用され得る。また、この印刷処理関連プログラム２０４は、プリンタ制御コマンド生成モジュール（以下、プリンタドライバ）２０４１、プリンタドライバＵＩ制御モジュール２０４２をも含んでいる。さらに、プリンタドライバをインストールするためのプログラムファイルやデータファイルを含むインストールセットもハードディスク１１に保存される。本実施形態でいうプリンタドライバのインストールセットとは、コンピュータにプリンタドライバをインストールするための情報である。プリンタドライバのインストールセットは、ＯＳが提供するインストールプログラムを用いてプリンタドライバをインストールするためのインストール定義ファイル（ｉｎｆファイルと呼ばれる）と、プリンタドライバ情報ファイル（ＵＰＤファイルともいう）と、プリンタドライバ等のプログラムファイルから構成されていてもよいし、あるいは、実行形式（ｅｘｅファイル）ファイルを含むインストーラから構成されていてもよい。インストールセットからインストール定義ファイルを除いたファイルの集合を、ドライバセットと呼ぶ。後述のコントロール設定ＵＩを介して指定された印刷設定のデフォルト値（初期値）やコントロールの表示設定情報は、プリンタドライバ情報ファイル（ＵＰＤファイル）２０４３に保存される。さらに、プリンタドライバの駆動制御のためのパラメータ、たとえば両面印刷の別や用紙サイズ等の印刷設定を定めた印刷設定情報も外部メモリ１１に保存され、プリンタドライバにより参照される。なお、印刷設定やコントロールの表示設定など、ドライバＵＩやカスタマイズツールから設定可能な情報をプリンタ設定情報あるいはプリンタプロパティ（あるいは単にプロパティ）とよぶ。特に本実施形態のカスタマイズツールでカスタマイズされたプリンタ設定情報をカスタマイズ情報と呼ぶ。
【００３０】
外部メモリ１１に記憶された、本実施形態に係るカスタマイズツールプログラム（以下、単にカスタマイズツール）２０１ａを含むアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。またＣＰＵ１は、例えばＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（Ｗｈａｔ Ｙｏｕ Ｓｅｅ Ｉｓ Ｗｈａｔ Ｙｏｕ Ｇｅｔ）を可能としている。更に、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定画面（プリンタドライバＵＩ制御モジュール２０４２により制御される）を開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバ２０４１に対する印刷処理の設定を行うことができる。なお、カスタマイズツールは、かならずしもカスタマイズの対処となるプリンタドライバがインストールされるコンピュータにおいて実行される必要はない。コンピュータ３０００以外のコンピュータにおいてカスタマイズツールを実行し、プリンタドライバをカスタマイズしてインストールセットを生成し、それをコンピュータ３０００にインストールすることもできる。なお、本実施形態では、プリンタドライバが提供するＵＩ（図４等に示す）における設定を印刷設定と呼び、設定可能な項目を印刷設定項目と呼ぶ。そのため、印刷設定項目といっても必ずしも印刷に直接関連する項目とは限らない。
【００３１】
次にプリンタ１５００の構成について説明する。ＣＰＵ１２は、プリンタ１５００の全体の動作を制御している。ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ１９は、ＮＶＲＡＭ（Ｎon-volatile  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３は、各種フォントを記憶するフォントＲＯＭ１３ａ、ＣＰＵ１２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３ｂ、及び各種データを記憶するデータＲＯＭ１３ｃを備えている。入力部１８は、ホストコンピュータ３０００との間でデータの送受信を行なう。印刷部インターフェース（Ｉ／Ｆ）１６は、プリンタエンジンである印刷部１７とのインターフェースを制御している。
【００３２】
外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御されている。外部メモリ１４には、オプションとして接続されるハードディスク（ＨＤ）、光磁気ディスク（ＭＯ）、フロッピー(登録商標）ディスク（ＦＤ）、ＩＣカード等が含まれており、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。尚、ハードディスク等の外部メモリ１４が接続されていない場合には、ＲＯＭ１３のデータＲＯＭ１３ｃに、ホストコンピュータ３０００で利用される情報等を記憶することになる。尚、この外部メモリ１４は１個に限らず複数備えるものであってもよい。例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。ホストコンピュータ３００２（クライアントPCともいう。）、サーバコンピュータ（サーバPCともいう）３００１もホストコンピュータと同様のハード構成を有する。ホストコンピュータはN台接ネットワークへ続されていても良い（図示省略）。
【００３３】
操作部１５０１には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭ（Ｎon-volatile  ＲＡＭ：不揮発性ＲＡＭ）を有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
【００３４】
ＣＰＵ１２は、ＲＯＭ１３のプログラムＲＯＭ１３ｂに記憶された制御プログラム等に基づき、印刷部インターフェース１６を介して印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通信処理が可能である。ＣＰＵ１２は、ホストコンピュータ３０００から送信される印刷データを受信すると共に、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００３５】
図２は、所定のアプリケーション及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。
【００３６】
ＲＡＭ２には、図示の如く、ＢＩＯＳ２０６、ＯＳ２０５をはじめ、アプリケーション２０１、印刷処理関連プログラム２０４、及び関連データ２０３がロードされている。ドライバをカスタマイズするためのプログラム（以下、カスタマイズツールという）もＲＡＭ２にロードされる。更に、空きメモリ領域２０２も確保されている。これにより、アプリケーション２０１及び印刷処理関連プログラム２０４が実行可能な状態となる。尚、印刷処理関連プログラム２０４におけるプリンタドライバＵＩ制御モジュール２０４２（図１）は、ユーザによる印刷設定指令に応じてＣＲＴ１０に印刷設定画面を表示し、ＫＢ９などを使用したユーザからの設定を可能にする。
【００３７】
図３は、カスタマイズツールのＵＩを例示する図である。本実施形態におけるカスタマイズツールは、Windows （登録商標）2000/XP/Server 2003上で動作し、Windows （登録商標）98/ME、Windows （登録商標）NT4.0、Windows （登録商標）2000/XP/Server 2003向けの各プリンタドライバをカスタマイズできる。ただし、本発明の趣旨は、必ずしもこれらのＯＳに限定されるものではない。これら以外のＯＳについても、プリンタドライバを実際にインストールすることなく、擬似ＡＰＩ（この内容は後に詳細に説明する）により、ＯＳに対応するＡＰＩの動作をシミュレートすることが可能である。そして疑似ＡＰＩを用いることで、個別の関数を動作させる引数の設定を変更、追加等することは可能である。
【００３８】
図３において、ユーザがメニュー３０１の"開く"を指定すると、カスタマイズされるドライバセットのフォルダを指示するためのダイアログ(不図示)が表示される。そのダイアログを通して、カスタマイズされるドライバの格納先を指示することができる。指示されたフォルダは、表示欄３０２に表示され、指示されたドライバセットの対応ＯＳが表示欄３０３に表示される。なお、ドライバセットは、ドライバのインストール情報を記述したｉｎｆファイルとともにインストールセットとして保存されている。そのため、ドライバセットの指定は、インストールセットの指定と同様の意味を持つ。
【００３９】
リストビュー３０５には、カスタマイズされるプリンタドライバの対応機種名が表示される。また、カスタマイズされた設定に対して、識別表示「On」が表示される。チェックボックス３１０をチェックすると、ボタン３１１が有効となる。ボタン３１１を押下するとカスタマイズ用のプリンタドライバＵＩ（図４）が表示される。そのＵＩ上で、印刷設定（ドキュメントプロパティ）の初期値設定、デバイスの設定（プリンタプロパティ）等の初期値設定を行なうことができる。なお、ドキュメントプロパティおよびデバイスプロパティをあわせてプロパティと呼ぶ場合がある。また、プロパティを印刷設定あるいは印刷設定情報と呼ぶ場合がある。
【００４０】
チェックボックス３２０をチェックすると、ボタン３２１が有効となる。ボタン３２１を押下すると、プリンタドライバＵＩ上のコントロールの表示方法をカスタマイズするためのＵＩ（図５）が表示される。そのＵＩを通して、カスタマイズ用のプリンタドライバＵＩ上におけるコントロールの表示方法を設定することができる。
【００４１】
ボタン３３０を押下することで、カスタマイズドライバの作成先を指定するためのダイアログ（不図示）が表示され、カスタマイズドライバの作成先を指定することができる。 
スピンボックス３５０を操作、もしくは値を入力すると、ここで入力された値がカスタマイズドライバを一意に特定するための特定情報（以下、「カスタマイズコード」という。）が、ドライバ情報ファイルに保持される。なお特定情報を識別情報ともいう。
【００４２】
各種設定を行った後、ボタン３４０を押下すると、設定に従ってカスタマイズされたプリンタドライバが作成される。
【００４３】
図４は、図３のＵＩにおいて、ボタン３１１を押下すると表示される、プリンタドライバ（以下、単に「ドライバ」ともいう）の初期設定値カスタマイズ用のプリンタドライバＵＩ（初期設定値カスタマイズＵＩ）である。
【００４４】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の設定部として機能し、かかる設定部は、例えば、図４に示すＵＩ画面のような文書のプロパティ設定とデバイスのプロパティ設定を行なうための設定画面をＣＲＴ上に表示させる。
【００４５】
インストールされたWindows（登録商標） NT4.0、Windows （登録商標）2000/XP/Server 2003のプリンタドライバでは、文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとが同時に１つのＵＩ画面中に表示されることはない。これに対して、本発明の実施形態にかかるカスタマイズツールにより表示されるプリンタドライバＵＩは、カスタマイズツールがプリンタドライバのモジュールを利用して表示を行っている。そのＵＩでは、文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとが同時に１つのＵＩ画面（図４）に表示される。図４において、ドキュメントプロパティのＵＩとして、ページ設定４０１、仕上げ４０２、給紙４０３、印刷品質４０４の４種類のＵＩが表示可能である。そして、プリンタプロパティのＵＩとしてデバイスの設定４０５が表示可能である。これらの各ＵＩ４０１〜４０５を介して、システム管理者等によって、ドキュメントプロパティの初期値設定と、プリンタプロパティの初期値設定を行なうことができる。
【００４６】
また、図４に示すＵＩにおいては、カスタマイズ対象でない設定に関しては、ユーザによる設定の入力を受け付けないように構成されている。カスタマイズ対象でない設定項目は、例えば、図４のボタン４１０のようにグレイアウト表示により、カスタマイズ対象でない項目であることを利用者が認識できるように表示される。
【００４７】
図５は、ドキュメントプロパティＵＩに表示される各種コントロールを、操作可能とするか、それとも操作不可とするかを指定するためのＵＩ（以下コントロール設定ＵＩという）を例示する図である。なおコントロールとは、ＵＩに表示されるプッシュボタン、エディットボックス、ラジオボタン、チェックボックス、スクロールバー等の操作用のオブジェクトである。コントロール設定ＵＩは、図３でボタン３２１を押下した際に、ホストコンピュータ３０００のＣＲＴ１０上に表示される。図５に示す画面例では、ドキュメントプロパティで設定可能なページ設定、仕上げ、給紙、印刷品質、共通の５種類のカテゴリにおける印刷設定項目のコントロールについて、その表示状態を利用者が指定できる。本実施形態では、コントロールの表示状態の指定をコントロール設定と呼ぶ。図５においては、ドキュメントプロパティＵＩに含まれる各カテゴリにそれぞれ対応するプロパティシートが、コントロール設定ＵＩに表示される。プロパティシートには、ページ設定シート５０１、仕上げシート５０２、給紙シート５０３、印刷品質シート５０４が含まれる。そしてシート５０１−５０４上で指定されたコントロール設定に応じて、ドキュメントプロパティＵＩのシート４０１−シート４０４上に各設定項目のコントロールが表示される。たとえば、操作不可と指定されたコントロールはグレイ表示され、ユーザによる操作はできない。このため、該当する印刷設定項目の値は、デフォルト値のまま変更できない。このように、コントロールの表示制御を通して、印刷設定項目の値の変更の可否が制御される。共通シート５０５では、ページ設定シート４０１、仕上げシート４０２、給紙シート４０３、印刷品質シート４０４に共通する表示制御の設定を行なうことが可能である。
【００４８】
表示欄５０６には、印刷設定項目「Ｊｏｂ  Ｏｐｅｒａｔｉｏｎｓ」のコントロールの設定が具体的に示されている。本実施形態では、コントロールの設定として、有効表示(通常通りの表示)、無効表示(Disabled)、非表示（Hidden）のいずれかを指定することができる。同様にその他の印刷設定項目コントロールについても、有効、無効、非表示の設定を個別にすることで、ドキュメントプロパティＵＩの表示をコントロールすることができる。これらの設定を利用者が入力すると、カスタマイズツールは、入力に対応する情報をUPDファイルに書き込む。なお、あるコントロールについて、「無効」および「非表示」が指定された場合には、そのコントロールは操作できない。そのため、そのコントロールを用いた印刷設定の変更はできない。逆に、あるコントロールについて「有効」が指定された場合には、そのコントロールを用いた印刷設定の変更が可能となる。
【００４９】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の表示制御部として機能し、表示制御部は設定された文書のプロパティ（コントロール項目を含む）に基づいて、ユーザインタフェース(ＵＩ)における項目の有効表示、無効表示または非表示を制御することができる。
【００５０】
＜カスタマイズツールの動作＞
次に、図６のフローチャートを用いて、カスタマイズツール２０１ａの基本動作について説明する。尚、基本動作の実行においては、ホストコンピュータ３０００におけるＣＰＵ１が動作の主体となってカスタマイズツールが実行される。ただし、以下の説明においては、カスタマイズツール２０１ａを処理の実行主体とした記述もあるが、実際にはＣＰＵ１により処理は実行されている。
【００５１】
まず、ステップＳ６０１において、ユーザによりカスタマイズツールが起動されると、カスタマイズツールの初期化処理がなされる。ステップＳ６０２において、カスタマイズツールは、図３で説明したＵＩ画面をＣＲＴ１０上に表示する。ステップＳ６０３において、ユーザにより、カスタマイズされるプリンタドライバのインストールセットの指示が図３のＵＩ画面から入力されると、ステップＳ６０４において、指示されたインストールセットのチェック処理を行なう。カスタマイズツールは、インストールセットのチェック処理において、指定されたドライバセットに対応する、プリンタドライバのインストール情報を記述するファイル（ＩＮＦファイル）を開く。カスタマイズツールは、開いたinfファイルの記述内容（例えばｓｉｇｎａｔｕｒｅ７０１、７１０、７２０の値）から、指示されたインストールセットに対応可能なＯＳか、指示されたプリンタドライバがカスタマイズツールによるカスタマイズに対応したプリンタドライバであるかを判定する。
【００５２】
ここで、図７は、プリンタドライバのインストール情報を記述するinfファイルの記述内容を例示する図である。図７Ａ−図７Ｃにｉｎｆファイルの一部の例を示す。図７の符号７００はＷｉｎｄｏｗｓ（登録商標）９８／Ｍｅのためのｉｎｆファイルの例である。図７の符号７１０はＷｉｎｄｏｗｓ（登録商標）ＮＴ４．０のためのｉｎｆファイルの例である。図７の符号７２０はＷｉｎｄｏｗｓ（登録商標）２０００／ＸＰ／Ｓｅｒｖｅｒ２００３のためのｉｎｆファイルの例である。このinfファイルには、モジュール記述情報が含まれており（不図示）、このモジュール記述情報に基づいて、カスタマイズツールはプリンタドライバのＵＩ処理を行っているモジュールを特定することができる。ＣＰＵ１により実行されるカスタマイズツールは、各infファイル７００，７１０，７２０中の「Signature」７３０，７４０，７５０の設定を参照する。ｓｉｇｎａｔｕｒｅが、文字列リソース"$CHICAGO$"であれば、Windows（登録商標）98/ME用のプリンタドライバと判断する。
【００５３】
また、カスタマイズツールは、参照しているinfファイル中の「Signature」の設定が、文字列リソース"$Windows(登録商標）NT$"である場合は、Windows（登録商標）NT4.0用ドライバセットまたは、Windows（登録商標）2000/XP/Server 2003用のドライバセットのいずれかであると判断する。更に、カスタマイズツールは、signatureからWindows（登録商標）ＮＴ４．０用またはWindows（登録商標）200/X/Server用と判定されたドライバセットについては、さらに絞り込みを行なうために、infファイル（７１０、７２０）中の「DISK1」７６０、７７０を参照する。ＤＩＳＫ１の設定文字列リソース内に「NT」が含まれている場合にはWindows(登録商標) NT4.0用と判断し、含まれていない場合には、Windows (登録商標) 2000/XP/Server 2003用と判断する。
【００５４】
また、カスタマイズに対応しているプリンタドライバのｉｎｆファイルには、そのことを示すための特定の文字列リソースが含まれている。そこでカスタマイズツールは、その特定の文字列リソースがプリンタドライバのinfファイル中に含まれているか否かを判断することにより、対応するプリンタドライバがカスタマイズに対応しているか判別することができる。
【００５５】
説明を図６に戻す。ステップＳ６０５において、プリンタドライバがカスタマイズに対応していないとカスタマイズツールにより判別される場合は（Ｓ６０５−ＮＯ）、処理をステップＳ６１０に進めて、エラー処理を行い、再度インストールセットの指示ステップ（Ｓ６０３）に戻る。エラー処理では、たとえば指定されたドライバセットがカスタマイズに非対応であることをユーザに通知するためのメッセージを表示する。
【００５６】
一方、ステップＳ６０５の判定において、プリンタドライバがカスタマイズに対応しているとカスタマイズツールにより判別される場合には（Ｓ６０５−ＹＥＳ）、処理をステップＳ６０６に進める。ステップＳ６０６において、カスタマイズツールは、ＣＲＴＣ６を制御してＣＲＴ１０上に図３〜図５で説明したＵＩ画面を表示させてプリンタドライバのカスタマイズの設定を可能にする。図３〜図５のＵＩは、カスタマイズツールが、プリンタドライバのＵＩモジュールを用いて表示させる。図３〜図５のＵＩを介して入力される設定がカスタマイズデータとなる。カスタマイズデータは、プリンタドライバが読み出し可能なファイルであるUPDファイルに保存される。プリンタドライバは、インストールされると、UPDファイル内の設定値を読み込む。そして、プリンタドライバは、UPDファイル内のカスタマイズされた設定値を、プリンタドライバの印刷設定項目に反映する。例えば、よく使う印刷設定値（両面、２in１など）のプリセットをプリンタドライバに予め反映しておく。また、印刷設定項目のコントロールは、図５のＵＩにおける指定に従って表示される。カスタマイズされたドライバをインストールするだけで、よく使う印刷設定値や、カスタマイズされたデフォルト値がプリンタドライバに設定された状態となる。また各印刷設定項目の値だけでなく、各印刷設定項目を操作するためのコントロールもカスタマイズされる。
【００５７】
図３〜図５のＵＩ画面を通じて、プリンタドライバのカスタマイズに関する設定がなされてカスタマイズの指示がなされると(Ｓ６０７)、カスタマイズツールは、ＵＩ画面で指示された内容（カスタマイズデータ）に基づいてカスタマイズしたドライバセットの作成処理を行なう。なお、カスタマイズされたドライバセットをカスタマイズドライバともいう。カスタマイズドライバといってもドライバのプログラムコードが変更されるのではなく、印刷設定項目のデフォルト値や、デフォルト値の変更の可否がカスタマイズされる。ステップＳ６０８においては、カスタマイズされたプリンタドライバの設定情報（印刷設定のデフォルト値やコントロールの表示指定等）が、ＵＰＤファイルに保存される。そして、そのＵＰＤファイルとプリンタドライバプログラム、プリンタドライバのＵＩ制御プログラムなどを含むインストールセットが作成される。
【００５８】
カスタマイズツールはＣＰＵ１により実行され、カスタマイズドライバ生成部として機能する。カスタマイズドライバ生成部は、設定された文書のプロパティまたはデバイスのプロパティを、プリンタドライバ（デバイスドライバ）のプリンタドライバ情報ファイル（ＵＰＤファイル）に書き込み、カスタマイズドライバを生成する。
【００５９】
すなわち、カスタマイズツールは、カスタマイズドライバの作成処理において、まずカスタマイズ元のインストールセットを、カスタマイズドライバを保存する場所（作成先）にコピーする。その後、作成先にコピーしたインストールセットに含まれているプリンタドライバ情報ファイル(ＵＰＤファイル)へ、カスタマイズデータを書き込むことでカスタマイズドライバを作成する。なおカスタマイズデータとは、カスタマイズツールが提供する図３〜図５のＵＩを通して利用者に入力された設定値である。
【００６０】
ここで、図９は、ドライバセットを構成する１ファイルである、プリンタドライバ情報ファイル(ＵＰＤファイル)２０４３のデータフォーマットを説明する図である。図９に示すように、ＵＰＤファイルは、ヘッダ９０１、ＩＤ定義９０２、データ９０３からなる。ＩＤ定義９０２には、データ９０３に格納されているデータのＩＤと、データの格納位置（アドレス）との組が格納されている。そして、そのＩＤとアドレスとの組が、ＩＤの数に相当する分のセットで格納されている。本実施形態に係るカスタマイズツールでは、カスタマイズ用に定義されたＩＤに対応するデータの値が変更されている。尚、ＩＤ定義９０２に使用したいカスタマイズデータのＩＤが定義されていない場合は、そのカスタマイズデータに対応する新たなＩＤがＩＤ定義９０２に追加される。
【００６１】
ＵＰＤファイルは対応するデバイスドライバ（プリンタドライバ）ごと（機種毎）に存在する。よって、機種毎に異なるカスタマイズを行なうことが可能である。また例えば、ある機種に対応したカスタマイズ済みのドライバセットを使用して、他の機種のドライバをカスタマイズすることも可能である。また、ＩＤ定義９０２ではカスタマイズ用のＩＤを使用しているため、新しいバージョンのプリンタドライバに、それ以前にカスタマイズしたプリンタドライバの設定を引き継ぐこともできる。
【００６２】
カスタマイズされたプリンタドライバは、カスタマイズデータが書き込まれたＵＰＤファイルを、インストール時又は初回の起動時に読み込み、ＵＰＤファイルのＩＤ定義９０２の所定ＩＤに対応付けて格納されたデータ９０３を読み込む。例えば、カスタマイズツールにより作成されたＵＰＤファイルには、ＩＤ定義９０２内に「CUSTUMIZED」を示すＩＤと、そのデータ格納位置として番地Ｘが格納されているとする。
【００６３】
カスタマイズ対応のプリンタドライバは、インストール完了又は初回起動時において、開いたＵＰＤファイルのＩＤ定義９０２内に「CUSTUMIZED」を示すＩＤ情報が記憶されていた場合、その情報に対応する番地Ｘを読み出す。続いて、そのプリンタドライバは、この番地Ｘに格納されたデータ９０３から、実際のドライバ設定データであるデバイスモードのデータ構造を更に読み出す。尚、ここで番地Ｘは絶対アドレスであってもよく、或はヘッダ９０１にデータ９０３の先頭アドレスを格納しておき、番地Ｘにはこのデータ９０３の先頭番地からのオフセットアドレスをセットしてもよい。
【００６４】
カスタマイズツールはＣＰＵ１により実行されて、カスタマイズ用ＵＩを表示するための表示制御部として機能する。かかる表示制御部は、カスタマイズツールの起動時において、プリンタドライバの情報ファイルを参照し、ユーザインタフェースをCRT10に表示させることができる。
【００６５】
本実施形態において、カスタマイズツールは、カスタマイズデータとして、（ｉ）文書用の設定を行なうドキュメントプロパティに関するデフォルト値データ（図４の４０１〜４０４により設定されるデータ）と、(ii)デバイスの設定を行なうプリンタプロパティに関するデフォルト値データ（図４の４０５により設定される）、及び、(iii)ドキュメントプロパティに関するＵＩ上のコントロールの表示方法に関するデータ（図５のＵＩ画面より設定されたデータ）とをＵＰＤファイルに対して書き込む。カスタマイズされたプリンタドライバは、インストール完了時又は初回起動時に、カスタマイズツールにより作成されたＵＰＤファイルを読み込み、カスタマイズ情報を元に動作する。これにより、カスタマイズされたプリンタドライバの動作環境を容易に構築することができる。
【００６６】
説明を図６に戻し、カスタマイズドライバが作成された後（Ｓ６０８）、ユーザから終了指示がなされると(Ｓ６０９)、カスタマイズツールの動作を終了する(Ｓ６１１)。
【００６７】
次に、図８のフローチャートを用いて、ＣＰＵ１により実行されるカスタマイズツールが、プリンタドライバのカスタマイズ用ＵＩを表示する処理について説明する。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となる。また図８の処理は、図６のステップＳ６０６において実行される処理である。
【００６８】
図３のボタン３１１が押下されると、カスタマイズツールは、プリンタドライバのＵＩ処理を行っているモジュールをinfファイルに含まれているモジュール記述情報を元に特定する。そして、特定したＵＩモジュールを、カスタマイズツールから呼び出しが可能なように、メモリにロードする(Ｓ８０１)。たとえば図１のプリンタドライバＵＩ制御モジュール２０４２がメモリにロードされる。
【００６９】
次に、ステップＳ８０２において、プリンタドライバのエクスポート関数のアドレスを取得する（Ｓ８０２）。なおエクスポート関数とは、モジュールの外部からそのモジュールが提供する機能を呼び出すための呼び出し口である。たとえばプリンタドライバのＵＩ制御モジュールには、プロパティシートを表示する機能を外部から呼び出すためのエクスポート関数が定義されている。次に、カスタマイズツールと、カスタマイズに対応しているプリンタドライバとの間で情報をやりとりするための構造体であるＣＳＰＬ構造体(不図示)を初期化する(Ｓ８０３)。ＣＳＰＬ構造体は、プリンタドライバの印刷設定情報（コントロールの表示指定を含む）や、フィニッシャ等のオプションデバイスに関するオプション設定情報を保存するための構造体である。ＣＳＰＬ構造体は、プリタドライバのＵＩ制御モジュールを介して入力された印刷設定値等を、カスタマイズツールが読み出すためのデータである。したがってＣＳＰＬ構造体はカスタマイズツールからデータの読出しが可能に構成されている。ＣＳＰＬ構造体は、プリンタドライバの設定情報を保存するためのDeviceOption構造体およびDevmode構造体に保存される情報を保存できる。したがってＣＳＰＬ構造体は、たとえばDeviceOption構造体とDevmode構造体とをつなぎ合わせたデータ構造を定義することで実現される。ＣＳＰＬ構造体には、そのプリンタドライバのＵＩのコントロール設定やデフォルト値など各種の情報が保存される。ＣＳＰＬ構造体は、対応するプリンタドライバがインストールされていなくても、カスタマイズツールによって入力された情報を保存できる。
【００７０】
その後、ステップＳ８０４においてプロパティシート（カスタマイズ用のドライバＵＩ）の表示処理を行なう。なお、ステップＳ８０４における処理の概略は、図１３にも示した。このとき、図４で示したように、ドキュメントプロパティとプリンタプロパティを同時にカスタマイズできるように、両方のプロパティページが１つのＵＩ画面に表示されるようにプロパティシートの表示関数を呼び出す。関数は、ステップＳ８０２で取得したアドレスを入り口として呼び出すことができる。呼び出される関数は、予め定めておきｉｎｆファイルに記述しておいても良いし、たとえば一定の規則で名称等を関数に付与することで、名称からプロパティシートの表示関数を判別できるようにしておいても良い。なお、図４の各項目毎のプロパティシートはプリンタドライバのＵＩ制御モジュールで表示可能であるが、図５のＵＩはプリンタドライバでは表示されない場合もある。その場合には、図５のＵＩは、カスタマイズツールにそれを表示するための機能を用意しておく。ただし本実施形態では、図５のＵＩの各シートもプリンタドライバのＵＩ制御モジュールにより表示される。そこで、カスタマイズツールはそのための関数を呼び出せば表示が実現される。
【００７１】
カスタマイズ用のドライバＵＩがユーザによって閉じられると、カスタマイズ用のドライバＵＩにて設定された情報はＣＳＰＬ構造体に保持される。カスタマイズツールは、入力されたプリンタドライバの情報をＣＳＰＬ構造体（DeviceOption構造体、Devmode構造体を含む）から取得する(Ｓ８０５)。なお、図４〜図５のＵＩを介してカスタマイズツールにより保存されたデフォルト値やコントロールの表示指定等、カスタマイズに関する情報をカスタマイズ情報という。カスタマイズツールが取得したカスタマイズ情報は、図６のステップＳ６０８でＵＰＤファイルに保存される。
【００７２】
カスタマイズツールは、ＣＰＵ１の制御の下、文書のプロパティまたはデバイスのプロパティに対応するプリンタドライバのデータ（すなわちカスタマイズ情報）を取得する取得部として機能する。かかる取得部は、プリンタドライバの設定に関するデータを保持するデータ保持部（ＣＳＰＬ構造体）とデータの受け渡しを行なうことにより、プリンタドライバの情報（すなわちカスタマイズ情報）を取得することができる。この際、取得部は、ＵＩ画面（図３〜図５）により設定された文書のプロパティまたはデバイスのプロパティに対応するデータを、データ保持部（ＣＳＰＬ構造体）に保持させる。データ保持部（ＣＳＰＬ構造体）からこれらのプロパティに対応するプリンタドライバの情報をカスタマイズ用の設定情報として取得する。カスタマイズツールは、このデータ保持部の内容を、後述するＧＰＤファイルに対して書き込む。プリンタドライバは、呼び出されたときに、カスタマイズされたＧＰＤファイルがあるかどうかを判定する。カスタマイズされたＧＰＤファイルがあるとプリンタドライバが判定した場合、カスタマイズされたＧＰＤファイルの中のカスタマイズされた印刷設定やＵＩ制御データなどをプリンタドライバが読み出す。そして、プリンタドライバはカスタマイズ設定される。このカスタマイズ用の設定情報（すなわちカスタマイズ情報）に基づいて、表示制御部として機能するプリンタドライバは、図３乃至図５のＵＩを介して設定されたカスタマイズ情報（たとえばコントロールの表示制御の指定や、印刷設定情報のデフォルト値など）に基づいて、カスタマイズされたユーザインタフェースを後述する擬似ＡＰＩを用いてＣＲＴ１０に表示する。
【００７３】
その後、ステップＳ８０６において、先のステップＳ８０１において、メモリにロードしたモジュールをアンロードして、カスタマイズ用ドライバＵＩの表示を終了する（Ｓ８０７）。
【００７４】
この処理フローについては、プリンタドライバの対応ＯＳによって若干処理は異なっている。例えば、Windows（登録商標） NT4.0とWindows（登録商標） 2000/XP/Server 2003は、ドライバＵＩの表示にCommon  Property  SheetUIというOSの仕組みを利用している。そこで図８のステップＳ８０４では、必要な前処理をして、Common  Property  SheetUI関数の呼び出しを行っている。一方、Windows （登録商標）98/MEについては、図８のステップＳ８０４では、必要な前処理をして、Property  Sheet関数を呼び出してＵＩの表示を行っている。ただし、基本的な処理フローについては図８で示したとおりである。
【００７５】
図１０Ａは、プリンタドライバが実装しているWindows（登録商標） API（Application Programming Interface：アプリケーションプログラムインターフェース）の呼び出しについて説明する図である。図８のステップＳ８０４でプリンタドライバのＵＩモジュールが実行され、プリンタドライバＵＩ処理１０１０が遂行される。本実施形態のプリンタドライバのＵＩモジュールは、プリンタドライバＵＩ処理１０１０において、Windows （登録商標）APIの代わりに疑似Windows （登録商標）APIを呼び出す。疑似Windows （登録商標）APIは、プリンタドライバがインストールされている場合（通常の呼び出し時）は、Windows （登録商標）API（図中では、単に「API」と示す）を呼び出す（１０４０）。一方、カスタマイズに対応したプリンタドライバがインストールされていない場合でも、カスタマイズツールからプリンタドライバＵＩモジュールが呼び出される。プリンタドライバＵＩモジュールは、この場合にも疑似Windows （登録商標）ＡＰＩを呼び出す。この場合は、疑似Windows （登録商標）API１０６０（図中では、単に「擬似API」と示す）は、対応関係にあるWindows （登録商標）APIの処理をシミュレートして、その結果をプリンタドライバＵＩ処理１０１０に返す。
【００７６】
図１０Ｂに示すテーブル１０３０は、Windows （登録商標）APIと対応する疑似（登録商標） API名の関係を示すテーブルの一例である。なお図１０Ｂ中では、それぞれWindows （登録商標）APIを「API」、Windows （登録商標）APIと対応する疑似（登録商標） APIを「擬似API名」と示す。この対応関係および疑似ＡＰＩは、予め作成しておき、プリンタドライバセットの構成ファイルとして保存しておくことができる。なお、疑似ＡＰＩはカスタマイズツールの一部を構成しており、カスタマイズツールがコンピュータにインストールされると、それとともに疑似ＡＰＩもインストールされる。そこで本実施形態では、疑似ＡＰＩを含めてカスタマイズツールと呼ぶ場合がある。
【００７７】
疑似Windows（登録商標） APIは、カスタマイズツールからの呼び出しの場合、疑似Windows （登録商標） APIがWindows （登録商標） APIの処理をシミュレートして処理をプリンタドライバＵＩ処理１０１０に返し、ＯＳにプリンタドライバがインストールされた後に通常のドライバＵＩとして呼び出された場合には、通常のWindows（登録商標） API１０２０の呼び出しを行って、処理をプリンタドライバＵＩ処理１０１０に返す。
【００７８】
図１１は、疑似Windows（登録商標） API（図中では、単に「擬似API」と示す）の呼び出しに関する処理の流れを説明するフローチャートである。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。
【００７９】
まず、ステップＳ１１１０において、カスタマイズツールは、疑似Windows （登録商標）APIの引数に含まれるプリンタハンドル（引数）が、カスタマイズツールからの呼び出し時に受け渡されるＣＳＰＬ構造体のアドレス情報（以下、単に「アドレス情報」ともいう）であるかを判定する。ＣＳＰＬ構造体の先頭メンバはＣＳＰＬ構造体のサイズを示すようになっているので、渡されたプリンタハンドル（引数）をＣＳＰＬ構造体の先頭アドレスとして扱って参照し、ＣＳＰＬ構造体のサイズと一致している場合には、引数のプリンタハンドルはＣＳＰＬ構造体のアドレスであると判断する（Ｓ１１１０−ＹＥＳ）。判定の基準となるＣＳＰＬ構造体のサイズは、例えば図１０Ｂのテーブルと共に予め与えられて保存されている。ステップＳ１１１０では、この値を、引数として与えられたアドレスが示すデータと比較し、一致すればプリンタハンドルがＣＳＰＬ構造体のアドレスと一致すると判定できる。
【００８０】
引数のプリンタハンドルがＣＳＰＬ構造体のアドレスではない場合（Ｓ１１１０−ＮＯ）、通常のプリンタドライバの動作となるので、そのまま、Windows （登録商標）API（図中では、単に「API」と示す）の呼び出しを行って(Ｓ１１２０)、処理を終了する。
【００８１】
ステップＳ１１１０の判断において、引数のプリンタハンドルがＣＳＰＬ構造体のアドレスと一致する場合には（Ｓ１１１０−ＹＥＳ）、処理をステップＳ１１３０に進める。
【００８２】
通常、プリンタドライバのユーザインタフェースを制御するプログラムは、ドライバに対する入力に応じてWindows （登録商標）APIの呼び出しを行なう。本実施形態では、プリンタドライバをインストールしていない状態では、Windows（登録商標） APIを呼び出すことはできないが、擬似ＡＰＩを呼び出すことは出来るよう構成されている。
ステップＳ１１３０では、、擬似Windows（登録商標） API を呼び出す。呼び出された疑似WindowsＡＰＩ（擬似ＡＰＩ）はWindows （登録商標）APIと同等の処理を行って、その処理結果をプリンタドライバＵＩ処理１０１０に戻し、処理を終了する。プリンタドライバＵＩモジュールは、処理結果、たとえばＵＩを通して入力された印刷設定の各項目の値や、コントロールの表示の指定を、ハンドルで指定された構造体に保存し、処理を終了する。
【００８３】
以上の処理により、カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の選択部として機能する。かかる選択部は、データ保持部（ＣＳＰＬ構造体）に保持されているアドレス情報（先頭アドレス）に基づいて、使用する（呼び出すべき）アプリケーションプログラムインタフェース（Windows （登録商標）API、または疑似Windows （登録商標）API）を選択する。
【００８４】
図１２は疑似Windows （登録商標）APIの一例として、プリンタドライバＵＩからCSPL_GetVersionEx()関数（図１０Ｂの欄１０４０を参照）を呼び出す場合の、CSPL_GetVersionEx()関数による処理の流れを示すフローチャートである。本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールにより、プリンタドライバＵＩが呼び出され、さらにCSPL_GetVersionEx()関数が呼び出される。CSPL_GetVersionEx()関数がシミュレートするWindows （登録商標）APIは、Windows （登録商標）GetVersionEx()関数である（図１０Ｂの表１０３０を参照）。このWindows （登録商標）APIは、ホストコンピュータ上で動作しているＯＳのバージョンに関する情報をプリンタドライバＵＩ側の処理１０１０に返す処理を行なう。 
まず、ステップＳ１２１０において、CSPL_GetVersionEx()関数は、関数の引数であるプリンタハンドルが、呼び出し時に受け渡されるＣＳＰＬ構造体のアドレスであるかを判定する。この判定方法は、図１１のステップＳ１１１０で説明した判定方法と同様である。引数がＣＳＰＬ構造体のアドレスでない場合は（Ｓ１２１０−ＮＯ）、処理をステップＳ１２２０に進める。ステップＳ１２２０では、通常のプリンタドライバとして動作するWindows（登録商標） APIである、GetVersionEx()関数１０４０を呼び出して(Ｓ１２２０)、処理を終了する。
【００８５】
一方、ステップＳ１２１０の判定において、関数の引数がＣＳＰＬ構造体のアドレスと一致する場合には（Ｓ１２１０−ＹＥＳ）、処理をステップＳ１２３０に進める。ステップＳ１２３０では、ＣＳＰＬ構造体の中に保持されているプリンタドライバに対応するＯＳの情報を元にGetVersionEx（）関数の処理を擬似的に処理（GetVersionEx（）関数の処理と同等の処理を実行）する(Ｓ１２３０)。
【００８６】
例えば、図３〜図５のＵＩ画面から選択された文書のプロパティまたはデバイスのプロパティに対応して呼び出される擬似Windows （登録商標）APIは、対応するWindows （登録商標）APIの処理をシミュレートする。すなわち、CSPL_GetVersionEx()関数は、ステップＳ１２３０においても、GetVersionEx()関数と同じ処理結果をプリンタドライバＵＩモジュールに返す。これは他の関数についても同様である。ステップＳ１２３０、またはステップＳ１２２０の処理後、図１２のフローチャートの処理を終了する。
【００８７】
例えば、Windows（登録商標）98/MEのプリンタドライバＵＩ制御モジュールが、カスタマイズツールからの呼び出しによって実行される場合を説明する。すなわち、カスタマイズの対象はWindows（登録商標）98/MEのプリンタドライバである。本実施形態ではカスタマイズツールはWindows （登録商標）2000/XP/Server 2003に対応しており、カスタマイズツールが実行される環境はこれらのいずれかのＯＳにより制御されるものとする。ＣＳＰＬ構造体は、図８のステップＳ８０３で初期化されるので、たとえばこのときにＣＳＰＬ構造体にＯＳのバージョンを示すデータとして、Windows（登録商標） 98/MEであるという情報が書き込まれる。これにより、ＣＳＰＬ構造体には、ドライバモジュールの対応ＯＳはWindows（登録商標） 98/MEであるという情報（ＯＳのバージョン情報）が含まれている。そこで、CSPL_GetVersionEx()関数は、ステップＳ１２３０において、ＣＳＰＬ構造体のＯＳのバージョン情報にアクセスし、「Windows （登録商標）ME」であるという値をコール元のプリンタドライバＵＩモジュールに返す。Windows （登録商標）98/MEのドライバモジュールのＵＩ制御処理に破綻が生じないようにすることができる。
【００８８】
これは、他の疑似Windows（登録商標） APIについても同様である。実際にプリンタドライバがインストールされていないので、本来、Windows（登録商標）APIの呼び出しにより、ドライバモジュールのＵＩ制御において不都合が発生してしまう場合がある。そのような場合でも、疑似関数（擬似API）内でWindows （登録商標）APIの処理をシミュレートすることで、Windows （登録商標）APIの動作を仮想的にＵＩ制御に反映させることが可能になる。 
また、Windows（登録商標）98/MEのプリンタドライバは本来16bit環境で動作するモジュールである。よって、そのＵＩ処理も16bit環境で行われるようになっている。しかしながら、本実施形態の対象としているWindows（登録商標） 98/MEのプリンタドライバは、そのＵＩ処理において、16bit環境でわたされるＵＩの処理を、サンクアップというＯＳの機構を利用し、32bit環境にて行っている。すなわち、プリンタドライバＵＩモジュールは、３２ビットコードで記述され、３２ビットのデータを処理できるように作成されている。このため、本実施形態のカスタマイズツールからは、Windows（登録商標）98/MEのプリンタドライバＵＩモジュールの処理関数を呼び出して、Windows（登録商標） 98/MEのＵＩ表示及び制御を比較的容易に行なうことが可能である。
【００８９】
こうしてカスタマイズツールは、印刷設定を含むプロパティを取得（すなわち利用者により設定された情報を保存）する。そして、カスタマイズツールは、オペレーティングシステムにデバイスドライバを稼動可能に登録することなく取得した印刷設定を含むプロパティを、前記デバイスドライバが読み出し可能な状態で保存することができる。オペレーティングシステムへのデバイスドライバの稼動可能な登録とは、すなわち、オペレーティングシステムのアドミニストレータの権限を用いて、オペレーティングシステムが管理するレジストリ領域にデバイスドライバを登録してインストールことである。プロパティには、印刷設定のほか、コントロールの表示指定も含まれる。なお、当該設定時、デバイスドライバは、オペレーティングシステムが管理するファイルシステムのユーザ領域に記憶された状態にある。プロパティは、カスタマイズツールによりＵＰＤファイルに保存される。作成されたＵＰＤファイルは、カスタマイズ対象のプリンタドライバやプリンタドライバＵＩモジュール、およびｉｎｆファイルと共にインストールセットを構成する。作成されたインストールセットは、記録媒体や通信媒体を介してクライアントコンピュータに配布される。インストーラは、ｉｎｆファイルの記述に従ってインストールを実行する。インストーラは、ＵＰＤファイルから読み込んだ各設定項目に対応する値を、devmode構造体やdeviceOption構造体の該当する項目の値として複写する。プリンタドライバおよびプリンタドライバＵＩモジュールは、devmode構造体やdeviceOption構造体に保存された各項目の値を参照して動作する。
【００９０】
前述の処理は、アプリケーションプログラムの一例であるカスタマイズツールにより実行されるものである。カスタマイズツールは、さらに、前記デバイスドライバを介した情報の入力に対して、オペレーティングシステムに代理して前記デバイスドライバに応答する。
【００９１】
そして、このカスタマイズツールの擬似的な代理応答があるので、デバイスドライバは、エラー処理に陥ることなく、前記アプリケーションからの応答を、オペレーティングシステムからの応答として認識し、その後のユーザからの入力による設定処理を続行する。 
更に、カスタマイズツールは、プリンタドライバに対する擬似APIを含む。更に、カスタマイズツールは、複数種類のオペレーティングシステム用（例えば、Windows（登録商標）NT,Windows（登録商標）９５など）のデバイスドライバに対して、前記印刷設定を含むプロパティを設定できる。
【００９２】
なお、カスタマイズツールは、複数のデバイスドライバに対して、一度の指示でカスタマイズツールが取得した印刷設定に係わる情報を設定できる。
【００９３】
以上説明したように、本実施形態における擬似APIは、オペレーティングのAPIをシミュレートすることで、オペレーティングシステムにインストールされている場合と同様に、デバイスドライバを実行するためのプログラムである。もし、擬似的にカスタマイズツール（疑似API）がデバイスドライバに応答しなければ、デバイスドライバはエラー処理に移行してしまう。これにより、デバイスドライバをインストールすることなく、カスタマイズツールによるカスタマイズ処理を続行させることができる。
【００９４】
図１３は、カスタマイズに対応したプリンタドライバのプロパティ設定に関するＵＩ制御の処理の流れを説明するフローチャートである。図１３の手順の中で、図１１や図１２に示す疑似ＡＰＩ関数がコールされ、プロパティシートの表示や、パラメータの取得、設定値の入力が実現される。尚、本処理の実行においては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタマイズツールが動作の主体となるものとする。
【００９５】
まず、ステップＳ１３００において、ＵＩ制御の指示が入力されると、カスタマイズツールが起動して、ステップＳ１３１０において、ＵＩの初期化処理が行なわれる。ステップＳ１３２０において、図９で示すプリンタドライバ情報ファイルがあるか判定する。ある場合には(Ｓ１３２０−ＹＥＳ)、処理をステップＳ１３３０に進め、プリンタドライバ情報ファイルに保存されたカスタマイズ情報に従ってＵＩ上のコントロールを表示する。本例では、コントロールの表示は、有効、無効、非表示の３通りに制御可能である。ＵＩ表示後、ユーザ操作待機状態にする（Ｓ１３４０）。一方、プリンタドライバ情報ファイルがない場合には（Ｓ１３２０−ＮＯ）、ステップＳ１３３０の処理をスキップし、ユーザ操作待機状態にする（Ｓ１３４０）。なお、プリンタドライバ情報ファイルがあっても、なんらデータが含まれていなければ、カスタマイズ情報はないため、ステップＳ１３２０からステップＳ１３４０に分岐する。
【００９６】
その後、ユーザの操作が行われるまで待機し(Ｓ１３４０)、ＵＩを閉じる操作がなされた場合(Ｓ１３５０―ＹＥＳ)には、ＵＩの処理を終了(Ｓ１３７０)し、他の操作であった場合は（Ｓ１３５０−ＮＯ）、ユーザの操作に対応したＵＩ制御を行い(Ｓ１３６０)、処理をステップＳ１３２０に戻す。入力されたプロパティ情報は、ＣＳＰＬ構造体を介して再度プリンタドライバ情報ファイル（ＵＰＤファイル）に保存される。なおこのとき、図３のカスタマイズコード３５０をプリンタドライバ情報ファイルに、あらかじめ定めた識別コードとともに保存する。
【００９７】
図５で指示されたコントロールの表示方法に関するカスタマイズデータは、図９で示したプリンタドライバ情報ファイル内に保持されているので、そのカスタマイズデータに従った、ＵＩコントロールの表示が可能である。
なお、カスタマイズツールはカスタマイズ情報にしたがわず、全ての設定項目のコントロールについて有効としてもよい。その場合にはプリンタドライバ情報ファイルに含まれたカスタマイズ情報のうち、コントロールの表示指定についてはすべて「有効」とみなしてＵＩを表示する。
【００９８】
本実施形態では、カスタマイズ情報をＵＰＤファイルというドライバ情報ファイルに書き出すようにしているが、プリンタドライバが参照可能であり、かつ、解析可能なファイルであれば、その形態はＵＰＤファイルに限定されるものではない。従って、次期Windows（登録商標）であるLonghornにおいてはプリンタドライバの情報ファイルとしてＧＰＤファイルが標準的なものとなっているが、このファイル内にカスタマイズ情報を組み込むようにしてもよい。
【００９９】
印刷装置を制御するデバイスドライバ（プリンタドライバ）を、プロパティ（文書用の設定を行なうドキュメントプロパティに関する初期値データと、デバイスの設定を行なうプリンタプロパティに関する初期値データ）の設定によりカスタマイズする情報処理装置は、（１）文書のプロパティ設定とデバイスのプロパティ設定によりカスタマイズしたデバイスドライバを特定するための特定情報（カスタマイズコード）を設定する特定情報設定部と、（２）デバイスドライバをインストールする際に、デバイスドライバに対応する特定情報（カスタマイズコード）が特定情報設定部により設定されているか判定する判定部と、（３）判定部の判定により、デバイスドライバに対応する特定情報（カスタマイズコード）が設定されていると判定された場合、特定情報（カスタマイズコード）をレジストリに登録する登録部とを備える。情報処理装置において、上述の各部は、ＣＰＵ１の制御の下、カスタマイズツールを実行することにより、各部の処理が実行される。
【０１００】
図１４は、上述のカスタマイズツールによりカスタマイズされたドライバセットをコンピュータにインストールする処理を具体的に示す図である。図１４は、カスタマイズドライバのインストール時において、プリンタドライバ情報ファイル中にカスタマイズコードが保存されている場合の処理を説明するフローチャートである。カスタマイズドライバのインストールが実行されると、ＣＰＵ１により実行されるカスタマイズツールは、ステップＳ１４１０において、インストール先のドライバセットに含まれるプリンタドライバ情報ファイルを読み込む。そして、ステップＳ１４２０において、カスタマイズツールは、読み込んだプリンタドライバ情報ファイル中に、インストールするカスタマイズドライバに対応するデータとして、図３のＵＩ画面におけるスピンボックス３５０から入力されたカスタマイズコードが保存されているか判定する。カスタマイズコードが保存されている場合（Ｓ１４２０−ＹＥＳ）、処理をステップＳ１４３０に進める。カスタマイズツールは、プリンタ情報ファイルから読み取ったＯＳ上の特定のレジストリにカスタマイズコードを保存（登録）して処理を終了する。一方、ステップＳ１４２０の判定において、カスタマイズ情報ファイルにカスタマイズコードが設定されていない場合（Ｓ１４２０−ＮＯ）は、ステップＳ１４３０の処理をスキップして処理を終了する。
【０１０１】
カスタマイズツールはＣＰＵ１の制御の下、情報処理装置の判定部として機能し、かかる判定部は、デバイスドライバをインストールする際、レジストリに登録されている特定情報（カスタマイズコード）により、既にインストールされているデバイスドライバがカスタマイズされているか判定することができる。また、カスタマイズツールはＣＰＵ１の制御の下、情報処理装置のプロパティ設定部として機能し、かかるプロパティ設定部は、判定部によりデバイスドライバ（プリンタドライバ）がカスタマイズされていると判定される場合、情報ファイルに書き込まれている文書のプロパティ設定またはデバイスのプロパティ設定を、インストールするデバイスドライバの情報ファイルに書き込むことができる。これにより、カスタマイズ情報を正確に引き継ぐことが可能になる。
【０１０２】
図１５は、レジストリエディタの表示画面を例示的に示す図である。カスタマイズツールが、カスタマイズドライバのカスタマイズコードを、ＯＳ上のドライバの設定に関する特定のレジストリに登録すると、「Customize  Code」の名前（１５０１）で、カスタマイズコード「20041224」という数値（１５０２）が組み合わされて表示される。ここで、カスタマイズドライバを特定するためのカスタマイズコードは、欄１５０２に示す数値に限定されるものではなく、スピンボックス３５０からの入力により、任意にカスタマイズコードを設定することができるものとする。
【０１０３】
本実施形態によれば、デバイスドライバ（プリンタドライバ）の設定に関する特定のレジストリへカスタマイズコードを登録することにより、外部のアプリケーションツールからカスタマイズコードを参照することができる。外部のアプリケーションツールがレジストリのカスタマイズコードを参照すれば、インストールされているプリンタドライバがカスタマイズ済みのプリンタドライバかを判断することが可能になる。なおカスタマイズされていないプリンタドライバがインストールされた場合には、カスタマイズコードの欄はレジストリに登録されない。したがって、カスタマイズコードの有無でカスタマイズされているか否かが判定でき、カスタマイズコードの内容でバージョンを特定できる。
【０１０４】
また、インストーラでプリンタドライバをアップデートする場合にも、このカスタママイズコードからカスタマイズしたプリンタドライバかどうか判定する。そして、ドライバ情報ファイル（ＵＰＤファイル）に含まれているカスタマイズ情報を新たにインストールする別のプリンタドライバのＵＰＤファイルに書き込むことで、ユーザが設定したカスタマイズ情報を正確に引き継ぐことが可能になる。
【０１０５】
システム管理者は、レジストリの登録内容に基づいて、ユーザが使用しているプリンタドライバがカスタマイズされたものか判定することが可能になる。
【０１０６】
また、本実施形態によれば、プリンタドライバのインストールを行なわずに、ユーザの所望するカスタマイズを反映させてカスタマイズドライバのインストールセットを作成し、個別のＯＳに対応したプリンタドライバのインストールを不要とすることで、作業効率の向上を図ることが可能になる。
【０１０７】
プリンタドライバが、カスタマイズに対応していないＯＳ用のものであっても、ユーザの所望するカスタマイズを反映させたカスタマイズドライバを作成することが可能になる。
【０１０８】
また、プリンタドライバの初期設定値のカスタマイズにおいては、プリンタドライバのＵＩと同等のＵＩを用いて作業が可能であるので、カスタマイズにおける初期設定作業を容易に行なうことができる。かかるＵＩを利用して設定したカスタマイズの内容を反映させて、表示項目の有効表示、無効表示、非表示を制御することで、ユーザの作業効率、操作の利便性の向上を図ることが可能になる。
【０１０９】
カスタマイズドライバは、カスタマイズしていないドライバのインストールセットと同様の構成であるので、Microsoft（登録商標）社製、Windows（登録商標）オペレーティングシステム、または、次期ＯＳであるLonghornにおける、いわゆるPoint&Print環境においてもカスタマイズドライバとして動作することが可能であり、カスタマイズドライバの汎用性を向上させることができる。
【０１１０】
図１６は、カスタマイズコードのレジストリとカスタマイズツールのメモリ上に格納された状態を表すブロック図である。ホストコンピュータ３０００の外部メモリ１１に記憶されており、RAM２に展開され、カスタマイズツールが制御するCPU１に参照される。
【０１１１】
カスタマイズコードは、ＯＳが管理する特定のレジストリ格納領域に保管されている。レジストリはツリー構造で格納されており、カスタマイズコードを参照する際には、ツリーの最上位のサブツリーからサブキーをたどっていくことで参照することができる。
【０１１２】
カスタマイズツールは、ユーザからの入力を受け付けるＵＩ制御、ドライバとカスタマイズの情報をやりとりするドライバアクセス部、アプリケーション情報を更新するＩＮＦ変更部、デバイスの依存情報を更新するＵＰＤ変更部からなっている。
【０１１３】
次に、カスタマイズコードを有するドライバのプッシュインストール処理について説明する。図１７の前処理として、サーバPCを操作する管理者（ユーザ）は、後述する図１８乃至図１９のユーザインタフェースを用いて、インストールタスクの内容を定義する。
【０１１４】
ユーザは、図１８を用いてインストール対象となるクライアントPCを選択する。そして、図１９を用いて、インストール対象となるドライバ（カスタマイズコード含む）を選択する。これらの一連の処理で指定又は選択された情報に基づいてドライバインストールタスクをサーバで生成する。以上が前処理である。前処理の詳細については、後に詳述する。
【０１１５】
図１７は、ネットワークに接続されたサーバクライアント環境で、サーバからプッシュインストーラにプリンタドライバをインストールするタスクをスケジューリングした後に実際に実行される一例を示す。このフローチャートは、前処理が終わった後、図２０のregisterボタンを管理者がマウスなどを押下するのに応答して開始される。
【０１１６】
サーバPCで生成されたドライバインストールタスクは図２０で設定されたスケジューリングに従い、あらかじめサーバからクライアントにインストールされたエージェントに対して、タスクの問合せを要求するように指示を出す（１７０１）。当該要求指示を出されたクライアントのエージェントはサーバに対して、タスクを要求する（１７０２）。タスクを要求されたサーバは図１８の１８０２で選択したクライアントのエージェントに対してタスクを転送してキューイングを行なう（１７０３）。タスクを受け取ったそれぞれのクライアントのエージェントは、キューイングされたタスクを実行して（１７０４）、その結果をそれぞれサーバに通知する（１７０５）。サーバPCは、インストール結果がクライアントから通知されてくるのに応答して、後述する図２１のような画面を表示する。図２１の画面を操作すると、同じく後述する図２２の画面に切り替えることが出来る。なお、本実施形態におけるエージェントは、制御プログラムである。RAM２に展開され、CPU１により１７０２，１７０４，１７０５の処理を実行させる。サーバ側ではインストールプログラムがCPU１により実行され、1701,１７０３の処理を行なう。
【０１１７】
図１８乃至図２２は、ドライバインストールタスクを生成するためのサーバ側のＵＩの一例を示した概念図である。
【０１１８】
図１８は、クライアントデータベースの一例を示す図である。図１８には、このサーバにネットワーク接続されているクライアントＰＣがリストアップされている。１８０１には、ネットワーク上のグループが表示されている。グループは、複数のチームを含む場合がある。また、それぞれのチームは、複数のクライアントを含む場合がr。図１８の例では、area11,area12,area13がネットワーク上に存在していることがわかる。
【０１１９】
そして、area11は、team A, team B, team Cを含む事が図１８の１８０１に示されている。そして、area 11のteamAに属するクライアントとして、ClientPC01乃至ClientPCnまでが列挙されている1802。クライアントデータベースを検索することにより、１８０１及び１８０２が表示される。１８０２には、各クライアントに搭載されているオペレーティングシステムの種類（本実施形態では、W2K,W9ｘの２種類）が表示されている。
【０１２０】
クライアントPCをサーバPCからネットワークを介して探索することにより、１８０１のクライアントデータベースは収集してもよい。１８０４のキャンセルボタンを押すと、プログラムが終了する。
【０１２１】
図１９は、図１８のNext１８０３ボタンを押すと表示される図である。図１９は、サーバPC側に記憶されている、ドライバのリストを示す。プリンタドライバ名１９０５、デバイス名１９０６、ドライバのPDL（ページ印刷言語）の種類１９０７、ドライバが対応するオペレーティングシステムの種類1908が示されている。さらに、UIに表示される対応言語１９０９、その他１９１０（例えば、ファックスドライバであることを示す情報が格納できる）の情報も表示される。さらに、前述の実施形態で説明した各ドライバに対応するカスタマイズコード１９０３も表示される。カスタマイズコードは、番号や記号が用いられる。未カスタマイズのドライバの場合にはNONEと表示される。１９０４には、選択状態とするかどうかを選択可能なチェックボックスが表示されている。黒塗りの四角は選択状態を示す。(a)乃至(b)の記号はシンボルマークであり、ドライバを特定するための通し記号として用いられる。
【０１２２】
図２０は、図１９でOKボタン１９０２を押すと開くウィンドウである。２００１では、インストールタスクをクライアントPCへ送信して実行させる時期を指定できる。チェックボックスにより、即時送信・実行もできるし、送信時の指定も出来る。図２０では、タスクスケジューラでは、このドライバインストールタスクを実行するスケジュールを入力することが可能で、ここでは2005年の3月1日の午後11時にインストールタスクがスケジューリングされている。
【０１２３】
さらに、単にタスクの内容を登録するだけで処理時間を未定（ユーザの指示があったとき）とすることもできる。即時実行若しくは時刻指定のインストール処理を選択した状態で、登録ボタンを押すと、指定した時刻にタスクの登録処理がはじまる。すなわち、図１８及び図１９で指定された内容がドライバインストールタスクとしてまとめられる。そして、当該ドライバインストールタスクは図２０で指定された時期にクライアントPCのエージェントに対してサーバPCから送信される。
【０１２４】
図２１は、クライアント装置からインストール結果を通知する図である。図１８の１８０２選択された２１０１乃至２１０５は、各クライアントのインストール状況に対応する。
【０１２５】
これらのＵＩで指定されたドライバインストールタスクでは、ドライバデータベースに登録されたドライバの対応ＯＳ１９０８をみて、そのＯＳを搭載したクライアントＰＣに対して、タスクスケジューラで指定した日時にドライバのインストールを実行することが可能である。
【０１２６】
例えば、Win２Kのドライバを搭載されたクライアントPC０１乃至０３である。これらのクライアントには、Win２Kに対応したドライバ(a)(b)(d)(e)が全てインストールされる。Win95についても同様に考えることが出来る。
【０１２７】
そして、サーバに通知されたタスクの実行結果は、図２２のようにサーバ上のＵＩでリスト表示されて、ステータスを確認することが可能である。
【０１２８】
クライアントPC０１は、ステータスとしてOKを返却している。インストールしたドライバとして、通し記号として(a),(b),(d),(e)が表示されている。図１９の通し記号１９０４に対応する。これらの通し記号に対応するドライバのインストールが完了したことを示している。クライアントPC０２では、NGとして表示されている。これは、何らかのエラーが発生して、ドライバのインストールが失敗したことを示す。画面は、クライアントPC０４では、(a)(b)(d)(e)、クライアントPC０４では、(a)(c)(d)、クライアントPCnでは(a)(d)(d)がそれぞれインストールが成功したことを示している。
【０１２９】
図２２は、クライアントPC０４のインストール状況を示す図である。図２１のエントリ２１０４に対応する行をマウス等で、ダブルクリックすると開く。他のクライアントのインストール結果を知りたければ、他の行２１０１、２１０２、２１０３、２１０５などをダブルクリックすることで同様の表示が可能である。
【０１３０】
図２２には、クライアントPC０４のインストール結果として表示がある。画面は(a)(c)(d)に対応するドライバがインストールされたことを示す。それぞれのドライバのドライバ名、カスタマイズコードも表示される。カスタマイズされていないドライバにはNONEが表示されている。これにより、複数のドライバをインストールした際であっても、クライアントからの通知により、サーバ側の管理者は、カスタマイズされたドライバとカスタマイズされていないドライバを識別可能に表示できる。
＊  本実施形態では、プリンタを制御するデバイスドライバをカスタマイズするクライアントPCを開示した。
＊  また、カスタマイズされているカスタマイズドライバを特定するための特定情報の一例であるカスタマイズコードを発行するカスタマイズツールが開示された。さらに、クライアントPCは、カスタマイズツールが発行したカスタマイズコードを、カスタマイズドライバと関連付けて記憶する外部メモリを有する。
【０１３１】
さらに、外部メモリに記憶されているカスタマイズドライバをインストールする際、当該カスタマイズドライバに対応する特定情報が設定されているかをカスタマイズツールは判定する。
【０１３２】
カスタマイズツールの判定処理により、カスタマイズコードが設定されていると判定された場合、当該特定情報をオペレーティングシステムが管理する記憶領域の一例である、レジストリに登録する。
【０１３３】
さらに、デバイスドライバに対して特定の設定値をカスタマイズツールは設定する。
【０１３４】
さらに、カスタマイズツールが設定した設定値を前記デバイスドライバの情報ファイルに書き込む。そして、デバイスライバからカスタマイズドライバをカスタマイズツールは生成する。
【０１３５】
さらに、カスタマイズドライバをインストールする際、カスタマイズツールは、カスタマイズコードを用いて、既にインストールされているデバイスドライバがカスタマイズされているかを判定する。
【０１３６】
そして、カスタマイズツールは、デバイスドライバがカスタマイズされていると判定した場合、次の処理をする。すなわち、情報ファイルに書き込まれている前記設定値を、インストールするデバイスドライバの情報ファイルに対してカスタマイズツールが書き込む。
【０１３７】
前記カスタマイズされた設定とは、複数の印刷設定値に対応する複合印刷設定の一例であるお気に入り設定、及び、プリンタドライバのユーザインタフェースを変更する設定であるUPDファイルに書き込まれる設定を含む。さらに、カスタマイズされた設定とは、プリンタドライバを操作する際にプリンタドライバのユーザインタフェースを介して設定する設定値を含む。
【０１３８】
さらに、サーバPCに搭載されているインストールプログラムが、カスタマイズされているカスタマイズドライバを取得する。インストールプログラムが、さらにカスタマイズドライバをインストール指示する。
【０１３９】
インストールプログラムがインストール指示するカスタマイズドライバを、インストールプログラムが特定する。
【０１４０】
カスタマイズコードを用いて、そのインストールプログラムがインストールした結果を表示する。
【０１４１】
インストールプログラムは、複数のデバイスドライバをインストールできる。そして、インストールプログラムは、インストール結果として、カスタマイズされているドライバとカスタマイズされていないドライバをサーバPCのCRTディスプレイ上に、識別可能に表示する。
【０１４２】
インストールプログラムは、ネットワークを介してクライアントPCに対して、インストール指示を送信することによりインストール指示を行なう。そして、クライアントPCから送信されてくるインストール結果を示す情報と、インストールプログラムが取得したカスタマイズコードを用いて、CRTには、前記カスタマイズドライバのインストールが成功したか否かを表示する。
【０１４３】
インストールプログラムは、サーバPC内に記憶されているカスタマイズコードを取得する。
【０１４４】
インストールプログラムは、クライアントPCから返送されてくるカスタマイズコードを取得する。
【０１４５】
以上のように、本実施形態によれば、カスタマイズツールを用いて、プリンタ設定情報をカスタマイズすることができる。また、カスタマイズコードをプリンタ設定情報と共にプリンタドライバ情報ファイルに保存することで、ドライバのインストール時やインストール後に、プリンタドライバがカスタマイズされたものであることを、他のプログラムや利用者が知ることができる。また、サーバにより、各クライアントにインストールされているドライバがカスタマイズされたものであることを知ることができる。また、ドライバの更新をする際にも、インストーラがカスタマイズコードを参照することで、上書きされるドライバがカスタマイズされたドライバであることを知ることができる。
【０１４６】
［第２実施形態］
＜コンピュータおよびプリンタの構成＞
以下、添付図面を参照して本実施形態を詳細に説明する。図４３は、本発明の一実施の形態に係る印刷処理システムの構成を示すブロック図である。この印刷処理システムは、ホストコンピュータ３０００（情報処理装置）と、このホストコンピュータ３０００よりの印刷データを受信して印刷を行うプリンタ１５００（印刷装置）を備えている。
【０１４７】
ホストコンピュータ３０００において、ＣＰＵ１は、ＲＡＭ２に記憶されているプログラムに従って、システムバス４に接続される各デバイスを総括的に制御している。このＲＡＭ２はまたＣＰＵ１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ３ｂ、及び各種データを記憶するデータＲＯＭ３ｃに区分けして構成されている。
【０１４８】
キーボードコントローラ（ＫＢＣ）５は、キーボード（ＫＢ）９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０への表示を制御している。ディスクコントローラ（ＤＫＣ）７は、ハードディスクなどの外部メモリ１１へのアクセスを制御している。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェース２１を介してプリンタ１５００に接続され、プリンタ１５００との間で通信制御処理を行う。
【０１４９】
外部メモリ１１は、例えばハードディスク（ＨＤ）やＭＯ或はフレキシブルディスク（ＦＤ）等であり、図示の如く、オペレーティングシステムプログラム（以下、ＯＳ）２０５をはじめ各種アプリケーション（例えば、図形、イメージ、文字、表等が混在した文書処理を行う文書処理アプリケーションプログラム）２０１、印刷処理関連プログラム２０４を記憶している他に、ユーザファイル、編集ファイル等も記憶している。刷処理関連プログラム２０４は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のプリンタに対して共通に利用され得る。また、この印刷処理関連プログラム２０４は、プリンタ制御コマンド生成モジュール（以下、プリンタドライバ）２０４１、プリンタドライバＵＩ制御モジュール２０４２をも含んでいる。さらに、プリンタドライバをインストールするためのプログラムファイルやデータファイルを含むインストールセットもハードディスク１１に保存される。本実施例でいうプリンタドライバのインストールセットとは、コンピュータにプリンタドライバをインストールするための情報であり、コンピュータ上のＯＳの機能であるインストールプログラムを用いてプリンタドライバをインストールするためのインストール定義ファイル（ｉｎｆファイルと呼ばれる）とプリンタドライバ情報ファイル（ＵＰＤ（User-Interface Printer Description）ファイル）２０４３と、プリンタドライバ等のプログラムファイルから構成されていてもよいし、また、実行形式（ｅｘｅファイル）ファイルを含むインストーラから構成されていてもよい。ＵＰＤファイルは、プリンタドライバの設定定義情報である。また、プリンタドライバの駆動制御のためのパラメータ、たとえば両面印刷の別や用紙サイズ等の印刷設定を定めた印刷設定情報も外部メモリ１１に保存され、プリンタドライバにより参照される。
【０１５０】
外部メモリ１１に記憶された、本実施の形態に係るカスタマイズツールプログラム（以下、単にカスタマイズツール）を含むアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。またＣＰＵ１は、例えばＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（Ｗｈａｔ Ｙｏｕ Ｓｅｅ Ｉｓ Ｗｈａｔ Ｙｏｕ Ｇｅｔ）を可能としている。更に、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定画面（プリンタドライバＵＩ制御モジュール２０４２により制御される）を開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバ２０４１に対する印刷処理の設定を行うことができる。なお、カスタマイズツールは、かならずしもカスタマイズの対処となるプリンタドライバがインストールされるコンピュータにおいて実行される必要はない。コンピュータ３０００以外のコンピュータにおいてカスタマイズツールを実行し、プリンタドライバをカスタマイズしてインストールセットを生成し、それをコンピュータ３０００にインストールすることもできる。
【０１５１】
次にプリンタ１５００の構成について説明する。ＣＰＵ１２は、プリンタ１５００の全体の動作を制御している。ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ１９は、ＮＶＲＡＭ（不揮発ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３は、各種フォントを記憶するフォントＲＯＭ１３ａ、ＣＰＵ１２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３ｂ、及び各種データを記憶するデータＲＯＭ１３ｃを備えている。入力部１８は、ホストコンピュータ３０００との間でデータの送受信を行う。印刷部インターフェース１６は、プリンタエンジンである印刷部１７とのインターフェースを制御している。
【０１５２】
外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御されており、オプションとして接続されるハードディスク（ＨＤ）、ＭＯ、フレキシブルディスク（ＦＤ）、ＩＣカード等を含んでおり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。尚、ハードディスク等の外部メモリ１４が接続されていない場合には、ＲＯＭ１３のデータＲＯＭ１３ｃに、ホストコンピュータ３０００で利用される情報等を記憶することになる。尚、この外部メモリ１４は１個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【０１５３】
操作部１５０１には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。
【０１５４】
ＣＰＵ１２は、ＲＯＭ１３のプログラムＲＯＭ１３ｂに記憶された制御プログラム等に基づき、印刷部インターフェース１６を介して印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。またＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、ホストコンピュータ３０００から送信される印刷データを受信すると共に、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【０１５５】
＜メモリマップ＞
図２は、所定のアプリケーション（本発明のカスタマイズツールを含む）及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。これは第１実施形態と同様であるので説明を省略する。
【０１５６】
＜ＵＰＤファイルの構成＞
図２９は、設定定義情報であるプリンタドライバ情報ファイル（ＵＰＤファイル）２０４３を含むドライバセット８００（インストールセット）のデータフォーマットを説明する図である。図２９において、ドライバセット構成ファイル８００の構成要素は、更新されたＵＰＤファイル２０４３と、更新されたＩＮＦファイル８０４と、その他のドライバファイル（ＤＬＬファイル，ＨＬＰファイル，ＴＸＴファイル等）８０５である。
【０１５７】
ＵＰＤファイル２０４３は、ヘッダ８０１、ＩＤ定義部８０２、データ部８０３を含む。ＩＤ定義８０２には、ＵＰＤデータ８０３に格納されているＵＰＤデータのＩＤとＵＰＤデータの格納位置（アドレス）との組データが格納されている。したがって、ＩＤ定義部８０２には、ＩＤの数に相当する組データが格納されている。ＵＰＤファイル２０４３はプリンタドライバ毎、すなわちプリンタの機種毎に存在する。ドライバセット８００（インストールセット）は、複数機種のプリンタドライバを保持しており、その数に応じたＵＰＤファイル２０４３が保持されているため、１つのインストールセットにより機種毎に異なるカスタマイズを行って、プリンタドライバをコンピュータにインストールすることが可能である。
【０１５８】
カスタマイズツールによりカスタマイズされたＵＰＤファイル２０４３には、ＩＤ定義８０２内にカスタマイズされたデフォルト値であることを示す所定のＩＤ（たとえば「ＣＵＳＴＵＭＩＺＥＤ」）と、そのデータ格納位置の番地Ｘが格納されている。カスタマイズされていないＵＰＤファイルについては、カスタマイズされたことを示すＩＤがＩＤ定義部９０２に含まれていない。そのため、ＩＤ定義部８０２を参照することで、カスタマイズされているか否かを判定することができる。このカスタマイズされたことを示すＩＤが第１実施形態のカスタマイズコードに相当する。
【０１５９】
またＩＤ定義８０２ではカスタマイズ用のＩＤを使用しているため、新しいバージョンのプリンタドライバに、それ以前にカスタマイズしたプリンタドライバの設定を引き継ぐこともできる。
【０１６０】
ＵＰＤファイル２０４３はヘッダ８０１、ＩＤ定義８０２、ＵＰＤデータ８０３からなる。ＩＤ定義８０２には、ＵＰＤデータ８０３に格納されているデータのＩＤとＵＰＤデータの格納位置（アドレス）との組が格納されている。そして、その組がＩＤの数に相当する分のセットで格納されている。本実施の形態に係るカスタマイズツールでは、カスタマイズ用に定義されたＩＤに対応するデータの値を変更している。尚、ＩＤ定義８０２に使用したいカスタマイズデータのＩＤが定義されていない場合は、そのカスタマイズデータに対応する新たなＩＤがＩＤ定義８０２に追加される。ＵＰＤファイルはデバイスドライバごとに存在する。よって、次のような場合もカスタマイズが可能である。即ち、ある機種に対応したカスタマイズ済みのドライバセットを使用して更に他の機種もカスタマイズすることが可能である。例えば、ある機種でカスタマイズ済みのドライバセットの設定内容を用いて、別の機種の機器をもカスタマイズできる。また、ＩＤ定義８０２ではカスタマイズ用のＩＤを使用しているため、新しいバージョンのプリンタドライバに、それ以前にカスタマイズしたプリンタドライバの設定を引き継ぐこともできる。尚、カスタマイズ対応のプリンタドライバは、カスタマイズツールによりカスタマイズされる。プリンタドライバは、インストール時又は初回の起動時にＵＰＤファイル２０４３を読み込み、ＵＰＤファイル２０４３のＩＤ定義８０２の所定ＩＤに対応付けて格納されたＵＰＤデータ８０３を読み込むように実装される。例えば、カスタマイズツールにより作成されたＵＰＤファイル２０４３には、ＩＤ定義８０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤと、そのデータ格納位置として番地Ｘが格納されているとする。カスタマイズ対応のプリンタドライバは、インストール完了又は初回起動時には、ＩＤ定義８０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤ情報が記憶されている場合、その情報に対応する番地を読み出すように予め実装されている。よって、このプリンタドライバは、インストール完了時又は初回起動時には、ＵＰＤファイル２０４３のＩＤ定義８０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤを含むとき、そのＩＤ定義から対応するデータの番地Ｘを読み出す。続いて、そのプリンタドライバは、この番地Ｘのデータ８０３から、実際のドライバ設定データであるデバイスモードのデータ構造を更に読み出す。尚、ここで番地Ｘは絶対アドレスであっても良く、或はヘッダ８０１にデータ８０３の先頭アドレスを格納しておき、番地Ｘにはこのデータ８０３の先頭番地からのオフセットアドレスをセットしても良い。このようにしてＵＰＤファイルを用意することにより、カスタマイズされたプリンタドライバは、インストール完了時又は初回起動時に、自動的にカスタマイズツールにより作成されたＵＰＤファイルを読み込み、プリンタドライバのデフォルトの設定値をデバイスモードとして自動的にプリセットする。これにより、カスタマイズされたプリンタドライバの動作環境を容易に構築することができる。
【０１６１】
更に、更新されたＵＰＤデータ８０３は、元のドライバのＵＰＤデータ８０３１と、カスタマイズされたデータ８０３２を含む。ＵＰＤデータ８０３（従来のＵＰＤデータ８０３１）は、プリンタドライバのＵＩ上でデフォルト設定値として表示される印刷設定データ（ＤＥＶＭＯＤＥ）、印刷設定データのプロファイル（お気に入り設定）を示すプロファイルデータ、及びスタンプデータを含んでいる。同様に、カスタマイズしたデータ８０３２には、デフォルト設定にカスタマイズした印刷設定データ（ＤＥＶＭＯＤＥ）８０３２ａと、カスタマイズしたプロファイル（お気に入り）データ８０３２ｂと、本実施形態で説明するカスタマイズしたスタンプデータ８０３２ｃが含まれる。カスタマイズしたプロファイルデータは、プリンタドライバにおいて設定可能な項目について、カスタマイズ操作によって設定された値が与えられた、印刷設定パラメータのセットである。プロファイルデータには、セット毎に名称が与えられており、複数存在する場合もある。スタンプデータは、それらプロファイルデータのいずれかあるいは全てにおいて使用される。カスタマイズしたＤＥＶＭＯＤＥデータ８０３２ａは、プリンタドライバがインストールされたコンピュータにおいて、そのプリンタドライバにより用いられる印刷設定である。カスタマイズしたＤＥＶＭＯＤＥデータ８０３２ａは、そのままの形式でプリンタの印刷設定情報として利用可能である。
【０１６２】
図３９は、このデバイスモード（デフォルト設定値）としての印刷設定データ（ＤＥＶＭＯＤＥ）８０３２ａのデータ構造の一例を示す図である。図３９においては、用紙向き（ｄｍＯｒｉｅｎｔａｔｉｏｎ）、用紙サイズ（ｄｍＰａｐｅｒＳｉｚｅ）、用紙幅（ｄｍＰａｐｅｒＷｉｄｔｈ）、部数（ｄｍＣｏｐｉｅｓ）などが格納されている様子が記載されている。その他、このＤＥＶＭＯＤＥデータ構造体はレジストリに格納される。プリンタドライバ２０４１は、このレジストリに格納されたＤＥＶＭＯＤＥデータ構造体を読み書きすることで、デフォルトの印刷設定環境や、後述する「お気に入り」を読み込んでユーザインタフェースにも反映することができる。
【０１６３】
本実施の形態では、カスタマイズした印刷設定データは、デバイスモード：ＤＥＶＭＯＤの形式でＵＰＤファイルに保存される。デバイスモードとは、普及しているＯＳで定義されている印刷設定データを格納するためのデータ構造の呼称である。このデバイスモードのデータ構造の形式で、各種印刷設定は、ＨＤ１１のＯＳが管理するレジストリ領域や、同じくＨＤ１１に記憶されるＵＰＤファイルのデータ領域９０３（図９）に格納される。
【０１６４】
プリンタドライバ２０４１は、動作時にレジストリ領域を読み出して設定された値に応じた印刷設定を実現する。プリンタドライバ２０４１は、このデバイスモードを読み出して、それに従う印刷設定を行ったＰＤＬデータを生成し、プリンタに転送して印刷を行わせる。これによりプリンタは、プリンタドライバから転送されるＰＤＬ形式の印刷設定に従って印刷処理を行う。
【０１６５】
＜カスタマイズの概略＞
次に本実施の形態に係るカスタマイズツール（アプリケーション２０１）によるＵＰＤファイル（設定定義情報）の変更処理について説明する。カスタマイズツールは、まず、カスタマイズの元となる、カスタマイズ対応のドライバセットを読み込む。この元となるデバイスドライバのＵＩ関連のデータファイル（ＵＰＤファイル）を修正し、カスタマイズされたＵＰＤファイルを含んだドライバセットを作成する。そして、このＵＰＤファイルを変更したドライバセットを、カスタマイズ済みドライバセットとして出力する。このドライバセットは、インストーラを含まないように、Ａｄｄ Ｐｒｉｎｔｅｒによるインストールに対応した「．ＩＮＦ形式」のものである。Ａｄｄ Ｐｒｉｎｔｅｒとは、ウインドウズ（登録商標）オペレーティングシステムにおいて提供されているプリンタの追加のための手順である。ただし、インストーラを含むドライバセットとしてパッケージ化してもよい。
【０１６６】
図４２は、ドライバセットのカスタマイズを説明する図で、ここでは、本実施の形態に係るカスタマイズツール２２００がドライバセットを作成するときに必要となるドライバセットと、作成されるドライバセットとを説明している。図４２において、上半分（カスタマイズツール２２００より上の部分）が新しくカスタマイズしたドライバセットを作成する状態遷移を示している。カスタマイズツール２２００は、元となるカスタマイズ可能なドライバセット２２０１をベースに、そのドライバセット内のＵＰＤファイルを書き換えてカスタマイズ済みドライバセット２２０２を作成する。
【０１６７】
下半分は、アップデート時の状態遷移を示している。アップデートとは、新しいバージョンのドライバに、以前カスタマイズしたドライバの設定を引き継がせる処理である。カスタマイズツール２２００は、更新された、元となるカスタマイズ可能なドライバセット２２０３と、既に更新された（カスタマイズ済み）の古いバージョンのドライバセット２２０４を使用して、既にカスタマイズされた古いバージョンのドライバセット２２０４のカスタマイズデータを、カスタマイズ可能な更新されたドライバセット２２０３に入れ込むことで、更新済みのカスタマイズされたドライバセット２２０５を作成する。また新しくカスタマイズされたドライバセット２２０２を作成するとき、及び新しいバージョンのドライバに、以前カスタマイズしたドライバの設定を引き継ぐ時も、このカスタマイズツール２２００が必要となる。
【０１６８】
＜カスタマイズ操作＞
図２４は、本実施の形態に係るホストコンピュータ３０００におけるプリンタドライバスタンプのデフォルト設定値をカスタマイズできるカスタマイズツール２２００の起動後の操作画面を示す図である。
【０１６９】
ボタン３０１をクリックすると、コモンダイアログが開かれ、カスタマイズ対象のドライバセット（インストールセット）を格納するフォルダを指定できる。続いて、本ツールは、３０１で指定されたドライバセットのＵＰＤファイルを解析し、ドライバセットの対応ＯＳや対応ドライバ（前述したように、プリンタの機種毎にＵＰＤファイルが保持されている）を分析し、分析が完了したら対応ドライバの一覧がリストビュー３０２に表示される。ユーザがリストビュー３０２から任意のドライバ名を選択しカスタマイズを行う。チェックボックス３０３をＯＮにすると、ボタン３０４がイネーブル（操作可能）状態となる。更にボタンをクリックすると前記選択されたドライバのプロパティダイアログが表示され、プリンタドライバの様々なコントロール（ＵＩ部品）のデフォルト値を指定することができる。チェックボックス３０３をＯＦＦにすると、ボタン３０４がディスエーブル（操作不能）状態となり、前記選択されたドライバのプロパティダイアログ画面を開くことができない。同様な操作で、チェックボックス３０５とボタン３０８を使って、プリンタドライバの「お気に入り」設定をカスタマイズすることができ、チェックボックス３０６とボタン３０９を使って、プリンタドライバの「スタンプ」設定をカスタマイズできる。例えば、チェックボックス３０６をＯＮにすると、ボタン３０９がイネーブル（操作可能）状態となる。更にボタン３０９をクリックすると、図２５に示すスタンプのプロパティダイアログが表示され、スタンプの詳細設定のデフォルト値を編集することができる。チェックボックス３０６をＯＦＦにすると、ボタン３０９がディスエーブル（操作不能）状態となり、スタンプのプロパティダイアログ画面を開くことができない。図２５に示されるスタンプのプロパティダイアログで新規追加または編集されたスタンプ情報は、カスタマイズされたＵＰＤデータ８０３２中のカスタマイズされたスタンプデータ８０３２ｂに作成され保存される。
【０１７０】
また、本実施形態のカスタマイズツールはドライバダイアログ画面上の各コントロール（ＵＩ部品）の表示／非表示属性をカスタマイズする機能も提供する。チェックボックス３０７をＯＮにし、ボタン３１０をクリックすると、図２６に示すコントロールの設定画面が表示される。図２６のこの画面にてドライバダイアログ画面上の各コントロール表示／非表示や有効／無効属性のデフォルト値、たとえばスタンプのプロパティボタン３０９の表示／非表示のデフォルト値を指定することができる。
【０１７１】
また、ボタン３１２をクリックすると、前記操作で設定したドライバＵＩとお気に入りとスタンプとコントロール表示／非表示の設定内容をカスタマイズドライバ作成時に反映する。すなわちカスタマイズされたデフォルトの設定情報がＵＰＤファイルに保存される。ボタン３１２を押下しないと、前記設定は反映されずに廃棄される。ボタン３１１を押下すると、前記設定内容は反映されずに廃棄される。
【０１７２】
なお、カスタマイズしたプリンタを保存する場合、参照ボタン３１３をクリックし、フォルダ指定コモンダイアログで保存の場所を指定する必要がある。更に作成ボタン３１４をクリックして、カスタマイズしたドライバセットが図２３の外部メモリ１１に保存される。カスタマイズドライバセットを作成する際、カスタマイズの内容をどのようにドライバ構成ファイル（ＵＰＤファイル）に保存するかを後ほど図２８説明する部分で詳細に述べる。
【０１７３】
続いて、図２５に示すスタンプ詳細画面のカスタマイズ方法を詳しく説明する。リストボックス４０１のデフォルト内容（カスタマイズ前）はプリンタドライバの工場出荷時の設定されたスタンプ一覧であり、あるスタンプをデフォルトから削除する場合、まず前記一覧から削除したいスタンプを選択し、次に削除ボタン４０３をクリックする。本実施形態において、スタンプは必ず１つ以上、存在しなければならない。そのため、スタンプ一覧内のスタンプが１つになった時点で、削除ボタンはグレイアウト（選択不可能な状態とした表示）し、スタンプは削除できなくなる。
【０１７４】
新しいスタンプを追加する場合、新規追加ボタン４０２をクリックする。また、新規追加されたスタンプの詳細を細かく指定することが可能である。テキストボックス４０４でスタンプ名称を指定できる。テキストボックス４０５でスタンプの表示文字（テキスト）を指定できる。コンボボックス４０６でスタンプの表示用フォントを指定できる。コンボボックス４０７でスタンプの表示用フォントのスタイル（標準／太字／斜体／太字＋斜体）のどちらかを指定できる。スピンコントロール４０８でスタンプの表示用フォントサイズを指定できる。コンボボックス４０９でスタンプの表示色を一覧から選べる。
【０１７５】
チェックボックス４１０をＯＮにすると、スタンプ文字を囲む枠を指定可能、ラジオボタン４１１で丸囲みを指定でき、ラジオボタン４１２で四角囲みを指定できる。また、スタンプ文字と元ページの印刷内容の関係を印刷方法で指定可能、ラジオボタン４１３で透かし印刷を指定でき、ラジオボタン４１４で重ね印刷を指定できる。スタンプの印刷位置を指定するには２つの方法が用意された。水平スライドバー４１７と垂直スライドバー４１６で４１５プレビュー表示を見ながら、位置を調整しても良いし、また、テキストボックス４１８と４１９で相対座標を直接入力することで設定可能である。なお、ボタン４２０をクリックすると、スタンプがページの中心へ移動される。次に、スタンプ文字の描画方向は、デフォルトでは水平方向（印刷ページの左→ 右へ）である。ラジオボタン４２１を選択すると描画方向がページ左下から右上への対角線方向になり、ラジオボタン４２２を選択すると描画方向がページ左上から右下への対角線方向になる。またラジオボタン４２３を選択すると描画方向の角度を自由に設定可能になり、テキストボックス４２４で直接角度の数値を入力しても、スライドバー４２５で調整しても可能である。チェックボックス４２６がＯＦＦの状態であれば、スタンプが各印刷ページに印刷されるが、ＯＮの状態にすると、スタンプが先頭ページだけに印刷される。また、本実施形態に明示的なスタンプ順番変更コントロールを設けていないが、他の実施形態でスタンプ順番を変更できるコントロールを提供するのも一般的である。
【０１７６】
続いて、図２６に示すコントロール設定画面のカスタマイズ方法を説明する。該当画面は複数のタブシートから構成され、設定できるコントロール／表示属性（表示／非表示、有効／無効、等）を、プリンタドライバにより提供される印刷設定用ＵＩ（以下、ドライバＵＩと呼び、図３１に例示する。）のシートをベースにカテゴライズしている。タブシートを選択して設定したいコントロール／表示属性をコントロール一覧ツリービュー５０２に表示させる。タブシート５０１は現在選択されている状態で、ツリービューに表示されているアイテムはドライバＵＩの「ページ設定」シート上のコントロールである。コントロール５０６の「スタンプ」はフォーカスを持ち、現在選択されたアイテムを表す。なおフォーカスを持つコントロール５０６の表示属性を「有効」に設定すると、ドライバＵＩのスタンプチェックボックスが有効になり、カスタマイズしたドライバＵＩ上でのスタンプの詳細設定が可能になる。逆に、コントロール５０６を「無効」にすると、スタンプチェックボックスがグレイアウト状態になり、カスタマイズしたドライバＵＩ上でのスタンプの詳細設定ができなくなる。
【０１７７】
また、コントロール５１０「スタンプ編集」の表示属性を「表示」に指定すると、カスタマイズしたドライバＵＩ上でスタンプ編集ボタンが常に表示される。コントロール５１０「スタンプ編集」の表示属性を「非表示」に指定した場合、スタンプ編集ボタンが表示されず、ユーザが見えなくなる。ボタン５０３をクリックした場合、ドライバＵＩの該当タブシート上のすべてのコントロールが有効になる。ボタン５０４をクリックした場合、ドライバＵＩの該当タブシート上のすべてのコントロールが無効になり、すなわち、ユーザが設定できなくなる。ボタン５０５をクリックした場合、ドライバＵＩの該当タブシート上のすべてのコントロールが表示されなくなる。
【０１７８】
ＯＫボタン５０７をクリックした場合、ユーザが設定した内容がカスタマイズユーティリティの記憶装置に一時保存され、本コントロール設定ダイアログが閉じられる。キャンセルボタン５０８をクリックした場合、設定内容が保存されずに、ダイアログが閉じられる。また、ヘルプボタン５０９をクリックした場合、本コントロールに関するヘルプ情報が表示される。
【０１７９】
＜カスタマイズ処理フロー＞
図２７は、本実施の形態に係るカスタマイズツールの動作を示すフローチャートである。まずステップ６０１で、利用者の操作に応じてカスタマイズ設定処理を行う。その中には、図２４のカスタマイズツールのＵＩを介するデフォルト値の編集操作を含む。さらに、デフォルトの編集操作には、図２５のようなスタンプカスタマイズ画面の表示およびスタンプのカスタマイズ処理が含まれる。ドライバカスタマイズ用プログラムは、元になる動作設定情報が指定された場合にはＵＰＤファイル２０４３から指定された動作設定情報ファイル（動作設定データ）を読み、その値をＵＩ上に表示する。ユーザは、この画面上でスタンプの削除・追加したり、スタンプの詳細設定の設定値を変更するための操作を行う。ドライバカスタマイズ用プログラムは、元となる動作設定情報ファイルに含まれる各設定項目のパラメータの値を、操作に応じて変更して一時保存する。
【０１８０】
そしてステップ６０２で図２４の生成ボタン３１４が指示されると、プリンタドライバ２０４１のＵＩ関連のデータを含む設定定義情報であるＵＰＤファイルを変更する。そしてステップ７０４で、３１３参照ボタンで指定した場所にカスタマイズプリンタドライバが作成される。
【０１８１】
図２８は図２７のステップＳ６０１の詳細を示すフロー図である。まず、スタンプ設定であるか否かが判定される（Ｓ７０１）。ここでは、図２４のＵＩにおいて、ボタン３０９が押されたならＹＥＳと判定される。スタンプ設定であると判定された場合、図２５のスタンプ詳細ＵＩを表示する（Ｓ７０２）。そしてスタンプ詳細ＵＩ上における利用者による操作に応じて、印刷設定情報に含まれる各項目の値を変更する（Ｓ７０３）。変更可能な項目には、たとえばスタンプの文字や書体、色、サイズなどのスタンプの内容や、スタンプの傾きや位置といったスタンプの位置が含まれる。またスタンプの追加、削除等も可能である。このＵＩ上でＯＫボタン４２７が押されると、ステップＳ７０３において設定されたパラメータが保存される（Ｓ７０４）。
【０１８２】
一方、スタンプ設定でバイト判定された場合には、ステップＳ７０５においてコントロールの編集か判定される。コントロールの編集であると判定されれば、図２６に示すコントロール設定ＵＩ画面を表示する（Ｓ７０６）。そして、そのＵＩ画面における操作に応じて、コントロールのパラメータを設定する（Ｓ７０７）。設定されるコントロールのパラメータには、たとえはスタンプの有効無効の別を示すスタンプ有効コントロールや、プリンタドライバＵＩにおいてスタンプ編集ボタンを表示するか否か、すなわちスタンプ編集を許可するか否かを示すスタンプ編集コントロールが含まれる。この後ＯＫボタン５０７が押されたならステップＳ７０４に分岐する。
【０１８３】
＜カスタマイズ可能なパラメータ＞
図２８の手順においてカスタマイズ可能なパラメータには以下の項目が含まれる。
（１）スタンプの表示文字（テキスト）、
（２）スタンプの表示用フォント、
（３）スタンプの表示用フォントのスタイル（標準／太字／斜体／太字＋斜体）、
（４）スタンプの表示用フォントサイズ、
（５）スタンプの表示色、
（６）スタンプ文字を囲む枠を指定（丸囲みまたは四角囲み）、
（７）スタンプ文字とそれを重畳する元ページの印刷内容の関係（スタンプの透かし印刷または重ね印刷）、
（８）スタンプの印刷位置、
（９）スタンプ文字の描画方向（傾き）、
（１０）スタンプが印刷されるページ（各印刷ページまたは先頭ページ）、
（１１）スタンプの表示属性（プリンタドライバＵＩにおけるスタンプ設定について「有効」または「無効」）、
（１２）スタンプ編集の表示属性を（プリンタドライバＵＩにおけるスタンプ編集ボタンについて「表示」または「非表示」）。
【０１８４】
＜ドライバＵＩ＞
図３０は、本実施の形態に係るプリンタドライバプログラム２０４１の起動時におけるＵＩ画面へのデフォルト値の表示処理を説明するフローチャートである。まずステップＳ９０１で、デフォルト値の取得要求があるとステップＳ９０２に進む。デフォルト値の取得要求は、たとえば、プリンタドライバのインストール時、あるいはインストール後初めて起動された場合に、プリンタドライバ自身により発せられる。ステップＳ９０２では、ユーザが指定した（カスタマイズした）デフォルト値が記憶されているか確認する。カスタマイズしたデフォルト値の有無は、定義部を参照してカスタマイズされたＩＤがあるか否かにより判定可能である。カスタマイズしたデフォルト値が記憶されている場合はステップＳ９０３に進み、カスタマイズしたデフォルト値をＵＰＤファイルから読み込んで、ステップＳ９０４で初期的な印刷設定情報として保存し、図３１に示すドライバＵＩ画面に表示する。プリンタドライバのベンダにより標準的に用意される印刷設定情報のプロファイルには「標準設定」という名称が与えられる。図３１はプロファイル「標準設定」が適用された例を示す。一方、ステップＳ４０３で、ユーザがカスタマイズしたデフォルト値が記憶されていなかった場合はステップＳ４０５に進み、予め与えられているデフォルト値をＵＰＤファイルから読み、ステップＳ４０４でそれを印刷設定情報として保存するとともにドライバＵＩに表示する。
【０１８５】
図３１はドライバＵＩ画面の一例である。このドライバＵＩ画面を介して利用者は、原稿サイズボックスを操作して原稿サイズを、出力用紙サイズボックス１００４を操作して用紙サイズを、部数ボックス１００５を操作して部数を、方向ラジオボタン１００６を操作して用紙方向を、レイアウトボックス１００７を操作してレイアウトを、スタンプチェックボックス１００１およびスタンプ編集ボタン１００２を操作してスタンプの設定変更を行うことが出来る。もちろん、コントロールの設定においてイネーブルと設定されている項目に限られる。
【０１８６】
たとえば、図２６のコントロール５０６の「スタンプ」の表示属性を「有効」に設定しておくと、図３１プリンタドライバ画面のスタンプチェックボックス１００１が有効になる。これにより、カスタマイズしたドライバＵＩ上でのスタンプの詳細設定が可能になる。逆に、コントロール５０６を「無効」にすると、スタンプチェックボックス１００１がグレイアウト状態になり、カスタマイズしたドライバＵＩ上でのスタンプの詳細設定ができなくなる。また、コントロール５１０「スタンプ編集」の表示属性を「表示」に指定しておくと、カスタマイズしたドライバＵＩ上でボタン１００２が常に表示されるが、コントロール５１０「スタンプ編集」の表示属性を「非表示」に指定しておいた場合、ボタン１００２が表示されず、ユーザには見ることができず、したがって編集もできない。図２６のボタン５０３をクリックしておくと、ドライバＵＩの該当タブシート上のすべてのコントロールが有効になる。ボタン５０４をクリックしておくと、ドライバＵＩの該当タブシート上のすべてのコントロールが無効になり、すなわち、ユーザが設定できなくなる。ボタン５０５をクリックしておくと、ドライバＵＩの該当タブシート上のすべてのコントロールが表示されなくなる。
【０１８７】
以上のようにして、スタンプの設定について、デフォルト値をカスタマイズすることが可能となる。これにより、たとえばＩＴマネージャーがデバイスドライバの印字オプションをカスタマイズすることにより、ユーザ所望の印字オプションデフォルト設定されたドライバを簡単に大量配布することで、ユーザ印刷設定負荷を軽減し、印刷設定効率をアップする効果が得られる。
【０１８８】
なお、本実施形態ではプリンタドライバについて説明したが、プリンタ以外のデバイス、たとえばスキャナやスキャナとプリンタとが一体となったディジタル複合機などについて、本発明を適用することも可能である。デバイスドライバ一般に適用した場合、プリンタドライバの印刷設定は、デバイスドライバ一般の動作設定と換言できる。
【０１８９】
［第３実施形態］
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。本実施形態では、印刷設定の「お気に入り」すなわちプロファイルについてカスタマイズできるカスタマイズツールについて説明する。なお、第１実施形態と共通の部分については説明を省略する。直本実施形態の構成については図２３、図２とも第２実施形態と共通である。本実施形態においては、インストールされるドライバセットのＵＰＤファイルに印刷設定のプロファイルを複数用意しておくことが出来る。そのうちのひとつ（一定のアドレスに保存されたプロファイル）がデフォルト値としてドライバのインストール時にレジストリに登録される。その他は、印刷設定情報の一部としてドライバのインストール時にコンピュータにロードされ保存される。そして選択し得るプロファイルの選択肢として、プリンタドライバから選択することが可能である（ただし設定に応じて）。
【０１９０】
図３１は、本実施の形態に係るホストコンピュータ３０００におけるドライバＵＩすなわち印刷設定画面の表示例を示す図である。図３１は、印刷設定画面における「ページ設定」の画面を示し、３０１で示すように「標準設定」の場合で示している。この標準設定では、原稿サイズ３０２は「Ａ４」、出力用紙サイズ３０３は「原稿サイズと同じ」、部数３０４は「１部」、印刷の向き３０５は「縦」、そしてページレイアウト３０６は「１ページ／枚」となっている。初めて表示されるときや、「標準に戻す」ボタン３０７が指示されると、各種項目のデフォルト値が表示される。このとき、印刷処理関連プログラム２０４（図２）はデフォルト値を読み込んで図３１で示す画面上に表示する。このデフォルト値が本実施形態では「標準設定」と名付けられたお気に入りプロファイルにまとめられ、一定のアドレスに保存されている。
【０１９１】
図３３は、本実施の形態に係る印刷処理関連プログラム２０４における、例えば図３１のようなプリンタドライバの起動時におけるＵＩ画面へのお気に入りの表示処理を説明するフローチャートである。尚、ここでは、ホストコンピュータ３０００の基本システムのルールに従った場所にお気に入りの項目が記憶されており、後述するようにしてユーザが指定したお気に入りの項目は、これとは異なる場所に記憶されている。
【０１９２】
まずステップＳ１２１１で、「お気に入り」の取得要求があるとステップＳ１２１２に進む。ここで「お気に入り」とは、プリンタドライバ２０４１の複数の印刷設定を一纏まりにしたものである。ユーザは、この一纏まりの設定からなる「お気に入り」をプリンタドライバ２０４１のユーザインタフェースで指定することで所望の動作環境を得ることができる。例えば、スタンプとステイプルをよく用いるユーザの場合には、これらステイプルとスタンプ設定の組を「お気に入り」として登録することにより、この「お気に入り」を選択するだけで、複数の設定を所望の値に設定して印刷させることができる。以下、本実施形態ではこのお気に入りのプロファイルデータをお気に入りデータと呼ぶ。ステップＳ１２１２でユーザが指定したお気に入りデータが記憶されているか確認する。ユーザが指定したお気に入りデータが記憶されている場合はステップＳ１２１３に進み、ユーザが指定したお気に入りデータを取得してステップＳ１２１４で表示する。一方、ステップＳ１２１３で、ユーザが指定したお気に入りデータが記憶されていなかった場合はステップＳ１２１５に進み、予め指定されているお気に入りデータを取得し、ステップＳ１２１４で表示する。尚、本実施の形態では、ユーザが指定したお気に入りデータは、プリンタドライバのＵＩ関連のデータファイル（ＵＰＤファイル）に記憶されている。初期的に導入されるデフォルトのお気に入りデータにはたとえば「標準設定」という名称が付され、その名称でお気に入りデータはＵＰＤファイルのデータ部に保存されている。そのため、ステップＳ１２１２では、たとえばＵＤＰファイルの定義部におけるＩＤを参照してカスタマイズされたデータを示すＩＤを検索する。そして、該当するＩＤがあれば、カスタマイズされたデフォルトのお気に入りデータが存在していると判定できる。
【０１９３】
図３４は、外部メモリ１１に記憶されているアプリケーション２０１に含まれる、本実施の形態に係るカスタマイズツールのＵＩの一例を示す図である。図３４では、プリンタドライバのＵＩ上でコントロールが使用できるかどうかを指定するＵＩ１３０７が含まれている。ここで使用不可に指定したコントロールのリストをカスタマイズデータとして、プリンタドライバのＵＩ関連のＵＰＤファイルに格納することができる。ユーザが「選択されたコントロールを有効化」チェックボックス１３１１を選択することで、コントロール選択ボタン１３０７を選択可能に表示される。ボタン１３０７がクリックされると、図３７のＵＩ画面が表示される。図３７において、複数のチェックボックスのうち、チェックされているのが使用可能コントロールであることを示している。同じく、チェックボックスが未チェックであるのが使用不可コントロールを示す。ユーザは、図３７のＵＩにおいて使用可能にしたいコントロールのチェックボックスをチェックし、使用不可能にしたいコントロールのチェックボックスを未チェックにすることで、作成ボタン１３０９の指示を行ったときにその設定を反映できる。図３７についての詳細は後述する。
【０１９４】
このカスタマイズツールの特徴の一つは、カスタマイズするプリンタドライバ２０４１をインストールする必要がなく、デフォルト値の設定が容易であることである。具体的には、例えば、印刷設定（「Ａｐｐｌｙ Ｄｒｉｖｅｒ ｓｅｔｔｉｎｇｓ）のチェックボックス１３１４がチェックされていて、印刷設定のプロパティボタン１３０５が指示（クリック）されると、図３５に示したようにプリンタドライバのＵＩが表示される。
【０１９５】
図３５では、印刷設定のデフォルトが表示されており、ここでは用紙サイズが「Ａ４」、出力サイズは「原稿サイズと同じ」、コピー部数は「１」、そして１ページに１画像がレイアウトされている。このカスタマイズツールは、ホストコンピュータのＯＳ２０５（図２３）がプリンタドライバ２０４１を読み出す仕組みを利用して実現されている。このため、プリンタドライバ２０４１のコンフリクトも再現されており、カスタマイズされたプリンタドライバ２０４１のデフォルトの値を確実に知ることができる。プリンタドライバ２０４１のコンフリクトとは、印刷設定と、プリンタ構成とが一致しない状態をいう。たとえば、プリンタに両面印刷機能がないにも関わらず両面印刷設定がされている状態は、コンフリクトが生じた状態である。印刷設定情報のデフォルト値は、プリンタドライバがインストールされる環境とは無関係に与えられている。そのために、そしてデフォルト値を現実のコンピュータにそのまま適用すると、コンフリクトが生じる場合もある。
【０１９６】
図３４において、１３０１は印刷に使用するプリンタの名称、１３０２は基本ドライバへのパス、１３０３はカスタマイズされたドライバを記憶するフォルダのパスを示している。入力ボックス１３０４は、カスタマイズされた内容を特定するカスタムコードの入力欄で、ここには任意の値を入力できる。この値は、プリンタドライバのバージョン情報を表示する部分（図４１参照）や、設定の一覧を表示する部分に表示することで、インストールされたプリンタドライバがカスタマイズされたものであるか判別することができる。コントロール選択ボタン１３０７は、選択されたコントロールをイネーブルにするようにチェックされている場合に、コントロールを選択するためのボタンである。
【０１９７】
プリンタドライバのＵＩ関連のＵＰＤファイルが変更されてカスタマイズされたＵＰＤファイルが作成されるのは、作成ボタン１３０９が指示（クリック）されたときである。この作成ボタン１３０９が指示されると、変更されるＵＰＤファイル以外でカスタマイズ済みドライバセットが格納される場所にコピーされ、ＵＰＤファイルは変更処理を行った後に格納される。これは第１実施形態で説明したとおりである。
【０１９８】
次に図３４の表示画面を使用してプリンタドライバを更新（Ｕｐｄａｔｅ）する場合を説明する。この更新処理は、本実施の形態において、カスタマイズ済のプリンタドライバを更新するもので、「Ｍａｋｅ Ｓｔｙｌｅ」の「Ｕｐｄａｔｅ」のラジオボタンがチェックされている場合に実行される。入力領域１３０２にカスタマイズを行ったドライバセットのフォルダパスを入力し、入力領域１３０８に、その更新の元となるドライバセットのフォルダパスを入力して作成ボタン１３０９を指示する。これにより、変更されるＵＰＤファイル以外でカスタマイズ済みドライバセットが入力領域１３０３で指定された場所にコピーされ、ＵＰＤファイルは変更処理を行った後に、そのドライバの対応するアドレスに格納される。例えば、ＰＤＬＸのバージョン６．３０に対応したカスタマイズ済みのドライバをＰＤＬＸ６．４０に更新すると、ＰＤＬＸ６．３０で行ったカスタマイズが引き継がれたＰＤＬＸ６．４０ドライバが作成される。
【０１９９】
図３７は、図３４のカスタマイズツールで、チェックボックス１３１１がチェックされて、コントロールが選択可能であり、コントロール選択ボタン１３０７が指示された場合に表示されるＵＩを示す図である。この表示制御は、カスタマイズツールにより実行される。図３７において、コントロールを制限するためのＷａｔｅｒｍａｒｋ（スタンプ）のチェックボックス１６００が未チェックに設定されている。この状態でＯＫボタン１６０１を指示すると、この表示は図３７から図３４へ戻り、カスタマイズツールは、そのときのカスタマイズされた状態を記憶する。そして作成ボタン１３０９が指示されると、カスタマイズツールは、ＷａｔｅｒｍａｒｋのＵＩをユーザにより操作不能にする指示を示す値を書き込んだＵＰＤファイルを生成する。
【０２００】
図３８は、こうしてカスタマイズを行ったプリンタドライバ２０４１のＵＩの一例を示す図である。前述のようにしてカスタマイズされたプリンタドライバは、カスタマイズツールが生成したＵＰＤファイルをインストール時又は起動時に読み込み、図３８に示すようなＵＩを表示する。図３７の例では、Ｗａｔｅｒｍａｒｋ（スタンプ）のチェックボックス８００が未チェックに設定されていたため、図３８のスタンプのコントロール部９００がグレーアウトで表示され、スタンプに対するユーザの操作を制限して禁止している。このように、ユーザが図３７に示すようなＵＩのチェックボックスを指示するだけで、ユーザが設定できないコントロールを、予めプリンタドライバ２０４１にプリセットとして組み込むことができ、これによりカスタマイズができる。
【０２０１】
図３６は図３４において、お気に入り設定の適用のチェックボックス１３１３をチェックして、１３１４のボタンを押下した際に表示される、お気に入りデータの追加、削除、編集を行なうためのＵＩの一例を示す図である。ここではお気に入り一覧１５０１に表示された中から編集対象のお気に入りデータを選択して、削除ボタン１５０４を押下することで、選択したお気に入りデータを削除することができる。また、お気に入り一覧に表示されたお気に入りデータを選択して、編集ボタン１５０３を押下することで、既存のお気に入りデータに含まれるパラメータ値、すなわちお気に入りデータにより特定される印刷設定を変更することができる。さらに新規追加ボタン１５０２を押すことで新たにお気に入り一覧に項目を追加することができる。またお気に入りの選択許可チェックボックス１５０５を選択すれば、プリンタドライバＵＩ（図３８参照）において、所望のお気に入りデータの選択が許可される。選択されたお気に入りデータは印刷設定情報として印刷設定情報が格納されるデータ領域にロードされる。設定の編集許可チェックボックス１５０６が選択されれば、プリンタドライバＵＩ（図３８参照）において、適用したお気に入りデータの各項目（ただしコントロールがイネーブルにされている項目）について、設定値を変更することが出来る。
【０２０２】
図４３は、図３６において、新規追加、または編集ボタンを押下した際に表示されるお気に入りデータを設定するためのＵＩの一例を示す図である。ここでは名称にお気に入りデータの名称を入力して、さらにページ設定、仕上げ、給紙や印刷品質のタグからそれぞれの印刷設定を入力して、ＯＫボタン２３０１を押下することで、お気に入りデータの印刷設定を作成することができる。
【０２０３】
尚、本実施の形態では、カスタマイズした印刷設定データ（デバイスモード：ＤＥＶＭＯＤＥ）を使用した「お気に入り」が作成される。デバイスモードとは、普及しているＯＳで定義されている印刷設定データを格納するためのデータ構造の呼称である。このデバイスモードのデータ構造の形式で、各種印刷設定は、ＨＤ１１のＯＳが管理するレジストリ領域や、同じくＨＤ１１に記憶されるＵＰＤファイルのデータ領域９０３（図９）に格納される。ＵＰＤファイルは、図９に示す構成を持つ。なおＵＰＤファイルに格納する際には、構造を再現できる形式でプリンタ設定情報を保存すればよい。
【０２０４】
プリンタドライバ２０４１は、動作時にレジストリ領域を読み出して設定された値に応じた印刷設定を実現する。プリンタドライバ２０４１は、このデバイスモードを読み出して、それに従う印刷設定を行ったＰＤＬデータを生成し、プリンタに転送して印刷を行わせる。これによりプリンタは、プリンタドライバから転送されるＰＤＬ形式の印刷設定に従って印刷処理を行う。
【０２０５】
本実施の形態におけるカスタマイズツールを用いると、メーカープリセットとして提供されている「標準設定」に相当するお気に入りデータが作成される。例えば、カスタマイズツールを使用して、ステイプル及びスタンプの印刷設定が入力されると、その印刷設定をデバイスモード（ＤＥＶＭＯＤＥ）構造体として、ＵＰＤファイルのデータ９０３の所定のアドレスに書き込む。ここで、カスタマイズされたプリンタドライバは、予め所定のアドレスを読み出すように実装されているので、所定のアドレスを読み出すと、読み出されたデバイスモード（ＤＥＶＭＯＤＥ）形式の印刷設定データの値がデフォルト設定としてプリンタドライバに設定される。すなわちレジストリの印刷設定情報の領域に複製される。更に、このデバイスモード（ＤＥＶＭＯＤＥ）の値を設定値とした「お気に入り」を組み込まれる。このように実装されたドライバは、カスタマイズ対応ドライバと呼ぶことがある。尚、この標準設定に相当する「お気に入り」の名称は、カスタマイズツールにおいて、図３４の「プロファイル名」のエディットボックス１３１２に入力された名称を使用する。
【０２０６】
カスタマイズツールで追加、削除される「お気に入り」は、「お気に入り」コンボボックスに反映され、順番の並び替えを不可能にすることもできる。カスタマイズで編集される「お気に入り」のデータは、通常のデバイスドライバが持つ「お気に入り」とは異なり、レジストリ（格納領域）には保存されないため、ドライバＵＩからは編集できない（編集できないことを表す赤丸が表示される）。従って、カスタマイズで編集される「お気に入り」は、「お気に入り」の追加・編集ダイアログには表示されないようにすることができる。更に、カスタマイズで編集される「お気に入り」は、カスタマイズされたことを示すマーク、例えば図３８の１７０１で示すように、指のアイコンが表示される。カスタマイズで追加される「お気に入り」は、ユーザがドライバＵＩを操作して印刷設定データを変更した後、カスタマイズされた印刷設定に戻したいときに利用する。
【０２０７】
図３９は、このデバイスモード（ＤＥＶＭＯＤＥ）のデータ構造の一例を示す図である。ここでは、用紙向き（ｄｍＯｒｉｅｎｔａｔｉｏｎ）、用紙サイズ（ｄｍＰａｐｅｒＳｉｚｅ）、用紙幅（ｄｍＰａｐｅｒＷｉｄｔｈ）、部数（ｄｍＣｏｐｉｅｓ）などが格納されている様子が記載されている。その他、このＤＥＶＭＯＤＥデータ構造体はレジストリに格納される。プリンタドライバ２０４１は、このレジストリに格納されたＤＥＶＭＯＤＥデータ構造体を読み書きすることで、デフォルトの印刷設定環境や、後述する「お気に入り」を読み込んでユーザインタフェースにも反映することができる。
【０２０８】
尚、このデバイスモードに格納可能な印刷設定の例としては、図３９の例以外に以下の項目がある。原稿サイズ、出力用紙サイズ、ページレイアウト（１枚の物理用紙に何ページの論理ページを画像形成するか）、スタンプ、ページ枠、枠なし、日付を印刷するかしないか、ユーザ名を印刷するかしないか、ページ番号を印刷するかしないか、オーバレイ印刷をするかしないか等をページ設定の印刷設定として定義できる。更に、両面印刷、とじ方向（長辺とじ、短辺とじ）、綴じ代、排紙先、排紙先を部単位で変更するか、ＴｒｕｅＴｙｐｅフォントをプリンタフォントとして置き換えるか否か、トナー節約モードで印刷するか否か、ＴｙｐｅＷｉｎｇ機能を使うか否か、イメージ加速処理をするか否か、ＰＤＦファイルを常にイメージモードで印刷するか否かを等を設定できる。更に、これらは全てデバイスモードとして格納され、本実施の形態に係るカスタマイズ対応のプリンタドライバやカスタマイズツールにより「お気に入り」として取り扱うことができる。
【０２０９】
図４０は、本実施の形態に係るカスタマイズツールの動作を示すフローチャートである。まずステップＳ１９０１で、カスタマイズを行いたい設定値になるように設定値を変更する。これは例えば前述した図３４の表示画面を表示し、その画面において、カスタムコード１３０４が設定されて、プリンタ設定のプロパティ１３０５やお気に入りの設定のプロパティ１３１４や等が、ユーザの所望の値に設定されることに相当している。そしてステップＳ１９０２で生成ボタン１３０９が指示されると、プリンタドライバ２０４１のＵＩ関連のデータファイルであるＵＰＤファイルを変更する。そしてステップＳ１９０４で、そのドライバセットを元のプリンタドライバにコピーする。
【０２１０】
図９は、ＵＰＤファイルのデータフォーマットを説明する図である。図９に示すように、ＵＰＤファイルはヘッダ９０１、ＩＤ定義９０２、データ９０３からなる。ＩＤ定義９０２には、データ９０３に格納されているデータのＩＤとデータの格納位置（アドレス）との組が格納されている。そして、その組がＩＤの数に相当する分のセットで格納されている。本実施の形態に係るカスタマイズツールでは、カスタマイズ用に定義されたＩＤに対応するデータの値を変更している。尚、ＩＤ定義９０２に使用したいカスタマイズデータのＩＤが定義されていない場合は、そのカスタマイズデータに対応する新たなＩＤがＩＤ定義９０２に追加される。
【０２１１】
ＵＰＤファイルは各デバイスドライバごとに存在する。よって、次のような場合もカスタマイズが可能である。即ち、ある機種に対応したカスタマイズ済みのドライバセットを使用して更に他の機種もカスタマイズすることが可能である。例えば、ある機種でカスタマイズ済みのドライバセットの設定内容を用いて、別の機種の機器をもカスタマイズできる。また、ＩＤ定義９０２ではカスタマイズ用のＩＤを使用しているため、新しいバージョンのプリンタドライバに、それ以前にカスタマイズしたプリンタドライバの設定を引き継ぐこともできる。
【０２１２】
尚、カスタマイズ対応のプリンタドライバは、カスタマイズツールによりカスタマイズされる。プリンタドライバは、インストール時又は初回の起動時にＵＰＤファイルを読み込み、ＵＰＤファイルのＩＤ定義９０２の所定ＩＤに対応付けて格納されたデータ９０３を読み込むように実装される。例えば、カスタマイズツールにより作成されたＵＰＤファイルには、ＩＤ定義９０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤと、そのデータ格納位置として番地Ｘが格納されているとする。
【０２１３】
カスタマイズ対応のプリンタドライバは、インストール完了又は初回起動時には、ＩＤ定義９０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤ情報が記憶されている場合、その情報に対応する番地を読み出すように予め実装されている。よって、このプリンタドライバは、インストール完了時又は初回起動時には、ＵＰＤファイルのＩＤ定義９０２内に「ＣＵＳＴＵＭＩＺＥＤ」を示すＩＤを含むとき、そのＩＤ定義から対応するデータの番地Ｘを読み出す。続いて、そのプリンタドライバは、この番地Ｘのデータ９０３から、実際のドライバ設定データであるデバイスモードのデータ構造を更に読み出す。尚、ここで番地Ｘは絶対アドレスであっても良く、或はヘッダ９０１にデータ９０３の先頭アドレスを格納しておき、番地Ｘにはこのデータ９０３の先頭番地からのオフセットアドレスをセットしても良い。
【０２１４】
このようにしてＵＰＤファイルを用意することにより、カスタマイズされたプリンタドライバは、インストール完了時又は初回起動時に、自動的にカスタマイズツールにより作成されたＵＰＤファイルを読み込み、プリンタドライバのデフォルトの設定値をデバイスモードとして自動的にプリセットする。これにより、カスタマイズされたプリンタドライバの動作環境を容易に構築することができる。
【０２１５】
図４２は、ドライバセットのカスタマイズを説明する図で、第１実施形態と同様である。
【０２１６】
図４１は、プリンタドライバのバージョン表示の一例を示す図で、ここではカスタマイズコード（「０００１」）がバージョン情報ダイアログのバージョン部分に付加された例を示している。カスタマイズドライバは、カスタマイズツールで入力したカスタムコードの値１３０４を、ドライバＵＩの「バージョン情報」タブに表示されているドライバのバージョンの後ろに追加して表示する。
【０２１７】
次に本実施の形態に係るカスタマイズツールによるＵＰＤファイルの変更処理について説明する。カスタマイズツールは、次の手順でカスタマイズ済みドライバセットを作成する。まず、カスタマイズの基となる、カスタマイズ対応のドライバセットを読み込む。この基となるデバイスドライバのＵＩ関連のデータファイル（ＵＰＤファイル）を修正し、カスタマイズされたＵＰＤファイルを含んだドライバセットを作成する。そして、このＵＰＤファイルを変更したドライバセットを、カスタマイズ済みドライバセットとして出力する。このドライバセットは、インストーラを含まないように、Ａｄｄ Ｐｒｉｎｔｅｒによるインストールに対応した「．ｉｎｆ形式」のものである。但し、インストーラを含むドライバセットとしてパッケージ化してもよい。
【０２１８】
＜カスタマイズ処理フロー＞
図４４に、カスタマイズツールによりお気に入りデータを編集する際の処理手順を示す。これは図４０のステップＳ１９０２以下を詳しく説明したものに相当する。
【０２１９】
まずカスタマイズツールが起動されると図３４のＵＩ画面を表示する（Ｓ２４０１）。次にオペレータによる操作入力を許し、入力を待つ（Ｓ２４０２）。入力されたなら内容を判定する（Ｓ２４０３）。作成ボタンであれば、カスタマイズされたＵＰＤファイルに、カスタマイズされたデータを保存する（Ｓ２４０４）。たとえば、お気に入りデータがカスタマイズされた場合には、カスタマイズされたお気に入りデータがＵＰＤファイルに保存される。この場合、ＵＰＤファイルのＩＤとしてカスタマイズされたことを示すＩＤが記録される。
【０２２０】
また入力が「お気に入りの編集」であれば、ＵＰＤファイルからお気に入りデータのリストを読み込み（Ｓ２４０５）、図３６のようなお気に入りリスト画面を表示する（Ｓ２４０６）。ここでまた操作待ちをし（Ｓ２４０７）、入力を判定する（Ｓ２４０８）。入力が削除であれば選択されているお気に入りデータを削除する（Ｓ２４０９）。ただしこの段階ではＵＰＤファイルへの適用をせずに、削除されるお気に入りデータの名称を削除対象であることを示す情報を保存する。「編集」または「追加」であれば、操作に応じて対象ファイルの編集を行う（Ｓ２４１０）。チェックボックス１５０５、１５０６の操作であれば、対応するフラグを操作に応じてセットあるいはリセットする（Ｓ２４１１）。「ＯＫ」ボタンであれば、ステップＳ２４０１に戻る。
【０２２１】
図４５は図４４のステップＳ２４１０を示す。ステップＳ２５０１ではまず図４３に示すＵＩを表示する。各シートには、たとえば編集であれば、選択されたお気に入りデータに従って、その設定が表示される。ステップＳ２５０２では、操作に応じて各項目の値を変更する。設定変更操作や、変更処理自体は、通常プリンタドライバＵＩで設定変更する処理と同様である。そして変更された結果は、選択されたお気に入りデータに上書き保存される。ただしそのお気に入りデータの名称も図３６の画面において変更可能である。また追加であれば、たとえは図４３の画面では、デフォルトの印刷設定が適用されている。そして、デフォルト設定値を元に編集が行われ、新規に与えられた名称のお気に入りデータとして保存される。
【０２２２】
ＵＰＤファイルにお気に入りデータとして保存される内容には以下の例がある。
（１）お気に入り選択許可フラグ（プリンタドライバにおいてこのフラグを参照し、お気に入りの選択を許可するまたは禁止する設定）。
（２）設定の編集許可フラグ（プリンタドライバにおいてこのフラグを参照し、適用されているお気に入りデータの設定値の変更を許可するまたは禁止する）。
（３）作成された数のお気に入りデータ（個々のお気に入りデータに、印刷設定が含まれる）。このうちの一つが、プリンタドライバインストール時のデフォルトの印刷設定となる。
【０２２３】
以上のようにして、本実施形態のデバイスドライバのカスタマイズ用プログラムにより、お気に入りデータ（プロファイルデータ）の編集を簡易化することができる。また、デフォルトの印刷設定情報以外の選択肢を用意しておくことが出来る。
【０２２４】
［他の実施形態］
本発明の目的は前述したように、本実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２２５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【０２２６】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【図面の簡単な説明】
【０２２７】
【図１】本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。
【図２】所定のアプリケーション及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。
【図３】カスタマイズツールのＵＩを例示する図である。
【図４】初期設定値カスタマイズ用のプリンタドライバＵＩを示す図である。
【図５】ドキュメントプロパティ表示コントロール設定ＵＩを例示する図である。
【図６】カスタマイズツールにおける基本動作の処理の流れを説明するフローチャートである。
【図７】プリンタドライバのインストール情報を記述するinfファイルの記述内容を例示する図である。
【図８】プリンタドライバのカスタマイズ用ＵＩを表示する処理の流れを説明するフローチャートである。
【図９】プリンタドライバを構成するＵＰＤファイルのデータフォーマットを説明する図である。
【図１０Ａ】プリンタドライバが実装しているアプリケーション  プログラム  インターフェース（ＡＰＩ）の呼び出しについて説明する図である。
【図１０Ｂ】APIと対応する疑似 APIの関係を示す図である。
【図１１】疑似Windows（登録商標） APIの呼び出しに関する処理の流れを説明するフローチャートである。
【図１２】疑似Windows （登録商標）APIの一例として、CSPL_GetVersionEx(  )関数を呼び出す場合の処理の流れを示すフローチャートである。
【図１３】カスタマイズに対応したプリンタドライバのプロパティ設定に関するＵＩ制御の処理の流れを説明するフローチャートである。
【図１４】カスタマイズドライバのインストール時において、カスタマイズコードが設定された場合の処理を説明するフローチャートである。
【図１５】カスタマイズコードが特定のレジストリに登録された状態のレジストリエディタの表示画面を例示する図である。
【図１６】カスタマイズコードのレジストリとカスタマイズツールのクライアントPC上のRAMに展開された状態を表す概念図である。
【図１７】サーバクライアント環境でプッシュインストールのタスクを実行する際のサーバ、クライアントの処理を示したフローチャートである。
【図１８】ドライバインストールタスクを生成するためのサーバ側のＵＩの一例を示した概念図である。
【図１９】ドライバインストールタスクを生成するためのサーバ側のＵＩの一例を示した概念図である。
【図２０】ドライバインストールタスクのスケジューリングを設定するためのサーバ側のＵＩの一例を示した図である。
【図２１】インストールタスクの実行結果を示す図である。
【図２２】インストールタスクの実行結果の詳細を示す図である。
【図２３】本発明に適用したシステム構成の一例を示す図である。
【図２４】プリンタドライバカスタマイズツールUIを実施する一例を示す図である。
【図２５】スタンプの詳細をカスタマイズできるUI実装の一例を示す図である。
【図２６】プリンタドライバUI上のコントロールの表示属性（表示／非表示、有効／無効）をカスタマイズできる実装画面の一例を示す図である。
【図２７】スタンプをカスタマイズする処理のフローチャートである。
【図２８】スタンプをカスタマイズする処理のフローチャートである。
【図２９】カスタマイズドライバセットおよびUDPファイル内保存されるカスタマイズデータの構成を示す図である。
【図３０】本実施の形態に係るプリンタドライバプログラムの起動時におけるＵＩ画面へのデフォルト値の表示処理のフローチャートである。
【図３１】カスタマイズされたドライバＵＩの例を示す図である。
【図３２】カスタマイズされたドライバＵＩの表示手順の一部を示す図である。
【図３３】本実施の形態に係る印刷処理関連プログラムにおけるお気に入りの表示処理を説明するフローチャートである。
【図３４】本実施の形態に係るカスタマイズツールのＵＩの一例を示す図である。
【図３５】プリンタドライバのＵＩの一例を示す図である。
【図３６】お気に入りの追加編集用のプリンタドライバＵＩの一例を示す図である。
【図３７】図３４のカスタマイズツールにより表示されるＵＩの一例を示す図である。
【図３８】本実施の形態に係るカスタマイズを行ったプリンタドライバのＵＩの一例を示す図である。
【図３９】本実施の形態に係るデバイスモード（DEVMODE）データ構造の一例を示す図である。
【図４０】本実施の形態に係るカスタマイズツールの動作を示すフローチャートである。
【図４１】本実施の形態に係るプリンタドライバのバージョン表示の一例を示す図である。
【図４２】本実施の形態に係るドライバセットのカスタマイズを説明する図である。
【図４３】お気に入りとして登録する項目の値を設定するためのプリンタドライバＵＩの一例を示す図である。
【図４４】本実施の形態に係るカスタマイズツールの動作を示すフローチャートである。
【図４５】本実施の形態に係るカスタマイズツールの動作を示すフローチャートである。
【図１】
2006309726.tif 000003
【図２】
2006309726.tif 000004
【図３】
2006309726.tif 000005
【図４】
2006309726.tif 000006
【図５】
2006309726.tif 000007
【図６】
2006309726.tif 000008
【図７】
2006309726.tif 000009
【図８】
2006309726.tif 000010
【図９】
2006309726.tif 000011
【図１０Ａ】
2006309726.tif 000012
【図１０Ｂ】
2006309726.tif 000013
【図１１】
2006309726.tif 000014
【図１２】
2006309726.tif 000015
【図１３】
2006309726.tif 000016
【図１４】
2006309726.tif 000017
【図１５】
2006309726.tif 000018
【図１６】
2006309726.tif 000019
【図１７】
2006309726.tif 000020
【図１８】
2006309726.tif 000021
【図１９】
2006309726.tif 000022
【図２０】
2006309726.tif 000023
【図２１】
2006309726.tif 000024
【図２２】
2006309726.tif 000025
【図２３】
2006309726.tif 000026
【図２４】
2006309726.tif 000027
【図２５】
2006309726.tif 000028
【図２６】
2006309726.tif 000029
【図２７】
2006309726.tif 000030
【図２８】
2006309726.tif 000031
【図２９】
2006309726.tif 000032
【図３０】
2006309726.tif 000033
【図３１】
2006309726.tif 000034
【図３２】
2006309726.tif 000035
【図３３】
2006309726.tif 000036
【図３４】
2006309726.tif 000037
【図３５】
2006309726.tif 000038
【図３６】
2006309726.tif 000039
【図３７】
2006309726.tif 000040
【図３８】
2006309726.tif 000041
【図３９】
2006309726.tif 000042
【図４０】
2006309726.tif 000043
【図４１】
2006309726.tif 000044
【図４２】
2006309726.tif 000045
【図４３】
2006309726.tif 000046
【図４４】
2006309726.tif 000047
【図４５】
2006309726.tif 000048