(57)【要約】      （修正有）【課題】Ｖ４プリンタドライバで生成する印刷設定定義ファイルに記載されていない項目をユーザが所望とする印刷設定処理の変更において後から設定を追加することができる仕組みを提供する。【解決手段】設定項目が追加された印刷設定定義ファイルに基づいて、印刷設定情報を生成する。生成した印刷設定データに対して、追加された設定項目の内容として、追加分の情報を反映する。【選択図】図２
2018151690.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバの印刷設定定義ファイルに設定項目を追加する追加手段と、
前記追加手段により前記設定項目が追加された前記印刷設定定義ファイルに基づいて、印刷設定情報を生成する生成手段と、
前記生成手段により生成した前記印刷設定情報に対して、当該追加された設定項目の内容として、追加分の情報を反映する反映手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記追加分の情報を取得する取得手段、をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記追加分の情報を印刷装置から取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、前記追加分の情報を前記印刷装置から取得して前記プリンタドライバのプロパティバッグに保持することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記反映手段は、前記生成手段により生成した前記印刷設定情報に対して、前記追加された設定項目の内容として、前記プロパティバッグに保持された前記追加分の情報を反映することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記追加手段は、予め定められた数の設定項目を追加し、
前記反映手段は、前記追加分の情報を、当該追加された予め定められた数の設定項目に対して順に反映していく、
ことを特徴とする請求項３乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記追加分の情報は、用紙の種類であることを特徴とする請求項３乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記取得手段は、前記追加分の情報を前記情報処理装置のＯＳにより提供されるデータベースから取得することを特徴とする請求項２に記載の情報処理装置。
【請求項９】
前記反映手段は、前記生成手段により生成した前記印刷設定情報に対して、前記追加された設定項目の内容として、前記取得手段により取得した前記追加分のメディア情報を反映することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記生成手段は、前記追加手段により追加した設定項目に属する選択項目を生成し、
前記反映手段は、前記追加分の情報を、当該生成された選択項目に対して反映する、
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記追加分の情報は、用紙のサイズであることを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記反映手段は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに対して、前記追加された設定項目の内容として、前記追加分のメディア情報を反映する、
ことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記追加分の情報が反映されたＰｒｉｎｔＴｉｃｋｅｔの有効性を検証する検証手段、をさらに備えることを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記ＰｒｉｎｔＴｉｃｋｅｔとＤｅｖｍｏｄｅとを相互に変換する変換手段、をさらに備えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記生成手段は、前記情報処理装置のＯＳにより提供されるコンフィグレーションモジュールであることを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記反映手段は、前記コンフィグレーションモジュールに含まれることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記プリンタドライバは、Ｖ４プリンタドライバであることを特徴とする請求項１乃至１６のいずれか１項に記載の情報処理装置。
【請求項１８】
情報処理装置において実行される情報処理方法であって、
プリンタドライバの印刷設定定義ファイルに設定項目を追加する追加工程と、
前記追加工程において前記設定項目が追加された前記印刷設定定義ファイルに基づいて、印刷設定情報を生成する生成工程と、
前記生成工程において生成した前記印刷設定情報に対して、当該追加された設定項目の内容として、追加分の情報を反映する反映工程と、
を有することを特徴とする情報処理方法。
【請求項１９】
請求項１乃至１７のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバを有する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
オペレーティングシステム（ＯＳ）としてＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムがある。そのような印刷システムにおいて、アプリケーションプログラム（アプリケーション）等で生成された印刷データは、ＯＳ標準のデータ形式でスプールファイルに格納される。ＯＳは、印刷データを印刷するためにプリンタドライバを呼び出す。そして、プリンタドライバは、スプールファイルに格納された印刷データを読み取り、画像生成処理部により印刷イメージを作成し、さらに、プリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【０００３】
プリンタドライバは、アプリケーションに対して設定可能な機能と、機能毎に選択可能な設定値を提供し、アプリケーションは、提供された情報に基づき印刷設定を行う。プリンタドライバで設定可能な印刷設定は、プリンタドライバに予め定義されている。ここで、プリンタドライバが作成された以降に登場した新規メディアに対応したいといったように、後から特定の機能に対して設定できる項目を追加したいというニーズがある。それに対して、特定の設定で選択可能な項目と、それに付随するパラメータ群をプリンタドライバから独立させ、選択可能項目を後から追加することを可能とする仕組みが存在する（特許文献１）。
【０００４】
また、近年ではＷｉｎｄｏｗｓ（登録商標）において、Ｖ４プリンタドライバと呼ばれる新しいアーキテクチャで動作するプリンタドライバが導入されている。Ｖ４プリンタドライバは、Ｖ３プリンタドライバのアーキテクチャとして提供されていたＸＰＳ（ＸＭＬ Ｐａｐｅｒ Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリンタドライバの後継となるアーキテクチャであり、ＸＰＳ文書を利用した印刷パスを利用している。このＸＰＳ印刷パスにおいて、印刷物の体裁を決定するために利用されるものがＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓと呼ばれるＸＭＬ形式で記述された印刷機能情報と、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるＸＭＬ形式で記述された印刷設定情報である。Ｖ４プリンタドライバは、ＧＰＤ（Ｇｅｎｅｒｉｃ Ｐｒｉｎｔｅｒ Ｄｅｓｃｒｉｐｔｉｏｎ）と呼ばれる、プリンタドライバの印刷設定の機能を定義する印刷設定定義ファイルを同梱している。このＧＰＤを含んだプリンタドライバをＯＳにインストールすることで、ユーザに対してＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓやＰｒｉｎｔＴｉｃｋｅｔを用いた印刷設定変更機能を提供することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１５７６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
Ｖ４プリンタドライバでは、印刷設定定義ファイルに基づき、ＯＳ提供のコンフィグレーションモジュールがＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓやＰｒｉｎｔＴｉｃｋｅｔといった印刷設定データを生成する。そのため、印刷設定定義ファイルに記載されていない項目は、コンフィグレーションモジュールが不正な値と判断して設定を変更してしまう。そのため、ユーザが所望とする印刷設定処理が実行されないおそれがあった。
【０００７】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、ユーザが所望とする印刷設定処理を生成できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る情報処理装置は、プリンタドライバの印刷設定定義ファイルに設定項目を追加する追加手段と、前記追加手段により前記設定項目が追加された前記印刷設定定義ファイルに基づいて、印刷設定情報を生成する生成手段と、前記生成手段により生成した前記印刷設定情報に対して、当該追加された設定項目の内容として、追加分の情報を反映する反映手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ユーザが所望とする印刷設定処理を実行することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】印刷システムのハードウェア構成を示すブロック図。
【図２】ドライバ印刷システムのブロック構成を示す図。
【図３】印刷設定定義ファイル（ＧＰＤ）の一部を示す図。
【図４】ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを示す図。
【図５】ＰｒｉｎｔＴｉｃｋｅｔを示す図。
【図６】ＭｅｄｉａＴｙｐｅの定義を示す図。
【図７】ＱＰＢの内容を示す図。
【図８】印刷装置で保持されているメディアの情報を示す図。
【図９】メディアの追加後の印刷装置内の状態を示す図。
【図１０】プリンタエクステンションにより表示される画面を示す図。
【図１１】用紙更新を実行した時の処理を示すフローチャート。
【図１２】図１１の処理後のＱＰＢの状態を示す図。
【図１３】ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成処理を示すフローチャート。
【図１４】ＰｒｉｎｔＴｉｃｋｅｔの有効性検証処理を示すフローチャート。
【図１５】図１３の処理後のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを示す図。
【図１６】図１４の処理後のＰｒｉｎｔＴｉｃｋｅｔを示す図。
【図１７】用紙サイズに関連する設定を決定するための構成を示す図。
【図１８】ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを示す図。
【図１９】用紙サイズに関連する設定を決定するための構成を示す図。
【図２０】ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成処理を示すフローチャート。
【図２１】図２０の処理後のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを示す図。
【図２２】出力用紙サイズの選択可能項目の決定処理を示すフローチャート。
【図２３】Ｄｅｖｍｏｄｅへの変換処理を示すフローチャート。
【図２４】ＰｒｉｎｔＴｉｃｋｅｔへの変換処理を示すフローチャート。
【図２５】ＰｒｉｎｔＴｉｃｋｅｔの有効性検証処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１２】
［第１の実施形態］
図１は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ１０１は、情報処理装置の一例であり、入力インタフェース１１０、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、外部記憶装置１１４、出力インタフェース１１５、及び入出力インタフェース１１６を有する。また、入力インタフェース１１０には、キーボード１１８、ポインティングデバイス１１７などの入力デバイスが接続され、出力インタフェース１１５には、表示部１１９などの表示デバイスが接続されている。
【００１３】
ＲＯＭ１１２には、初期化プログラムが格納され、外部記憶装置１１４には、アプリケーションプログラム群、ＯＳ、プリンタドライバ２０３、その他の各種のデータが格納されている。例えば、ＲＡＭ１１３は、外部記憶装置１１４にストアされる各種のプログラムの実行の際のワークメモリとして使用される。なお、本実施形態では、ＣＰＵ１１１が、ＲＯＭ１１２に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ１０１における後述の機能及び後述するフローチャートに係る処理が実現される。印刷装置１０２は、入出力インタフェース１１６を介して、ホストコンピュータ１０１と接続されている。ここでは、ホストコンピュータ１０１と印刷装置１０２が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。
【００１４】
図２は、ドライバ印刷システムのブロック構成図である。ドライバ印刷システムは、ＸＰＳファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。プリンタドライバ２０３は、印刷装置１０２に対して印刷指示を行うことができる。コンフィグレーションモジュール２１９、フィルタパイプラインマネージャ２２１は、プリンタドライバ２０３に含まれている。しかし、これらは、ホストコンピュータ１０１のＯＳから提供されている、プリンタドライバ２０３のモジュールという位置づけである。
【００１５】
コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３に基づき、ＰｒｉｎｔＴｉｃｋｅｔやＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成を行う。印刷設定定義ファイル２１３は、ＧＰＤと呼ばれるテキストベースで記載されているファイルである。さらに、印刷設定定義ファイル２１３には「禁則」の定義を記載することができる。例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）が定義した記述法に基づき、ＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎの項目に、同時に設定できない印刷設定の設定値を記載することで、ユーザに対して禁則機能を提供することができる。ここで、同時に設定できない印刷設定とは、デバイスの機能として提供できないもののほかに、意図的にユーザに使用してほしくない項目も含まれる。なお、各機能（例えば、用紙のタイプ、品質）で設定される設定値が、本実施形態の項目に対応する。
【００１６】
また、コンフィグレーションモジュール２１９は、プリンタドライバ２０３が提供する印刷設定編集モジュール２１１を用いて印刷設定情報を編集することができる。印刷設定編集モジュール２１１は、ＣｏｎｓｔｒａｉｎｔＳｃｒｉｐｔと呼ばれる、ＪａｖａＳｃｒｉｐｔ（登録商標）言語で記載されたモジュールである。印刷設定編集モジュール２１１は、プリンタドライバ２０３によって格納されるデータが提供されるプロパティバッグ２１７を用いて印刷設定情報を編集する。
【００１７】
プロパティバッグ２１７とは、プリンタの機種依存情報として用いるためのＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇと呼ばれるデータ群と、プリントキューに関連づけられたＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇと呼ばれるデータ群が保持された領域を指す。ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇは、以降、ＤＰＢといい、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇは、以降、ＱＰＢという。ＤＰＢとＱＰＢは、ともにＯＳによって提供されている保存領域である。ＤＰＢは、ドライバパッケージ内に存在するプリンタの機種依存データであり、プリンタドライバ２０３のインストール後にＯＳ内の特定の領域に読取専用としてデータ群が保持される。ＱＰＢは、Ｋｅｙ−ＶａｌｕｅペアのＸＭＬ定義ファイルをＯＳに登録することで使用することが可能であり、Ｖａｌｕｅに関して一定の権限上で編集が可能である。また、印刷設定定義ファイル２１３であるＧＰＤにもＱＰＢの定義を記載することができる。
【００１８】
プリンタエクステンション２１５は、Ｖ４プリンタドライバにおいて、ユーザが印刷設定を行うためのベンダ独自のユーザインタフェースを提供するモジュールである。プリンタエクステンション２１５は、印刷に用いる用紙サイズや印刷方向、その他の属性を設定する機能を提供する。同時に、本実施形態におけるプリンタエクステンション２１５は、印刷装置１０２と通信することで情報を取得する機能を有し、また、取得した情報を前述のＱＰＢに格納する機能を有する。
【００１９】
図２における印刷システムにおいて、アプリケーション２０１が印刷を行う場合、まず印刷設定情報の作成を行う。アプリケーション２０１は、プリンタドライバ２０３のコンフィグレーションモジュール２１９を呼び出して、印刷設定情報を作成して格納する。また、アプリケーション２０１は、印刷設定情報の作成にプリンタエクステンション２１５を用いることができる。アプリケーション２０１は、ＤＥＶＭＯＤＥ構造体、もしくはＰｒｉｎｔＴｉｃｋｅｔの形式で印刷設定情報を保持している。
【００２０】
次に、アプリケーション２０１は、印刷データの生成を行う。作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能を通じてＸＰＳスプールファイル２０５に一時的に蓄えられる。ＸＰＳスプールファイル２０５が生成されると、フィルタパイプラインマネージャ２２１に処理が渡される。フィルタパイプラインマネージャ２２１は、複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル２２７でフィルタの数や順番が制御される。本実施形態におけるフィルタ群は、レイアウト処理部であるレイアウトフィルタ２２３と、印刷コマンド変換部である印刷コマンドフィルタ２２５とを含んで構成される。
【００２１】
レイアウトフィルタ２２３は、ＸＰＳスプールファイル２０５に格納されたＸＰＳドキュメントを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。レイアウト処理とは、例えば複数のページを一つの用紙面に印刷する割り付け印刷や、一つのページを複数の用紙面に印刷するポスター印刷を含む。
【００２２】
印刷コマンドフィルタ２２５は、レイアウトフィルタ２２３の出力を入力とし、印刷設定情報に従い、ＸＰＳドキュメントを印刷装置１０２が解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ２２５が入力のＸＰＳドキュメントを一度イメージデータに変換する場合、印刷コマンドフィルタ２２５は一般的にレンダフィルタと呼ばれる。レンダフィルタは、インクジェットプリンタに代表される廉価なラスタプリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルタ２２５がレンダフィルタとして動作する場合は、入力のＸＰＳドキュメントを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタプリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にＸＰＳが含まれる場合、印刷コマンドフィルタ２２５は、入力のＸＰＳドキュメントを編集してＸＰＳドキュメントを出力する。印刷コマンドフィルタ２２５にて処理する必要がなければ、入力のＸＰＳドキュメントをそのまま出力しても良いし、若しくは、印刷コマンドフィルタ２２５はプリンタドライバ２０３に含められなくても良い。
【００２３】
図３は、印刷設定定義ファイル（ＧＰＤ）の一部を示す図である。尚、ここでは用紙の種類（ＰａｇｅＭｅｄｉａＴｙｐｅ）と印刷品質（ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙ）のみが記載されているが、プリンタドライバ２０３でサポートする機能についても同様に記載される。ＧＰＤには、機能（Ｆｅａｔｕｒｅ）と、その機能で選択可能な項目（Ｏｐｔｉｏｎ）が記載される。例えば、機能の一例が用紙タイプであり、項目の一例が普通紙、光沢紙である。ＦｅａｔｕｒｅとＯｐｔｉｏｎには、それぞれ表示名称を記載することができる。記載された表示名称は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにおいてＤｉｓｐｌａｙＮａｍｅとして使用される。表示名称の記載方法には、名称を直接指定する方法と、文字列データを格納したリソースファイルを用いて、対象の文字列と対応づけるためのＩＤを指定する方法とがある。
【００２４】
ＧＰＤでは、前述のように禁則の定義を記載することができる。前述のＩｎｖａｌｉｄＣｏｍｂｉｎａｔｉｏｎの項目に、同時に設定できない印刷設定情報の設定値を記載することで、プリンタドライバ２０３は、ユーザに対して禁則機能を提供することができる。図３の例では、ＰａｇｅＭｅｄｉａＴｙｐｅのＧｌｏｓｓｙＰａｐｅｒと、ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙのＤｒａｆｔが同時に設定できないようになっている。また、Ｆｅａｔｕｒｅには、デフォルトオプションを設定することができる。デフォルトオプションは初期値であるとともに、前述の禁則に違反した場合に、変更される値として用いられる。
【００２５】
図４は、図３の印刷設定定義ファイルに基づき生成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一例を示す図である。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、ＸＭＬで記述される。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成には、ＰｒｉｎｔＴｉｃｋｅｔが指定され、指定されたＰｒｉｎｔＴｉｃｋｅｔの設定における能力情報が表現される。印刷設定定義ファイルで定義されたＦｅａｔｕｒｅ及びＯｐｔｉｏｎに対応して、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓでも、ＦｅａｔｕｒｅとＯｐｔｉｏｎが階層構造で表現される。
【００２６】
また、それぞれＯｐｔｉｏｎの子要素として表示名称を表すＤｉｓｐｌａｙＮａｍｅがＰｒｏｐｅｒｔｙとして定義される。さらに、各Ｏｐｔｉｏｎには、ｃｏｎｓｔｒａｉｎｅｄ属性が記述される。ｃｏｎｓｔｒａｉｎｅｄ属性は、対象のＯｐｔｉｏｎが設定可能な状態であるかを示す。設定可能な場合、ｃｏｎｓｔｒａｉｎｅｄ属性には“Ｎｏｎｅ”が設定される。印刷設定定義ファイルに記述された禁則に従い、指定されたＰｒｉｎｔＴｉｃｋｅｔに基づく設定下で設定できない場合、ｃｏｎｓｔｒａｉｎｅｄ属性には他の設定と競合して設定できない旨を示す“ＰｒｉｎｔＴｉｃｋｅｔＳｅｔｔｉｎｇｓ”が設定される。その他に、現在のデバイスの状態によって設定できない旨を示す“ＤｅｖｉｃｅＳｅｔｔｉｎｇｓ”などの設定値がある。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを用いるアプリケーション２０１は、印刷設定を行うための設定画面を提供する際に、ｃｏｎｓｔｒａｉｎｅｄ属性を参照して各Ｏｐｔｉｏｎが設定可能かを判断する。そして、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを用いるアプリケーション２０１は、設定画面において、設定値をグレーアウトしたり、設定値を除外したり、といった処理を行う。
【００２７】
図５は、ＰｒｉｎｔＴｉｃｋｅｔの一例を示す図である。ＰｒｉｎｔＴｉｃｋｅｔは、ＸＭＬで記述される。ＰｒｉｎｔＴｉｃｋｅｔは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに基づき生成される。ＰｒｉｎｔＴｉｃｋｅｔには、機能（Ｆｅａｔｕｒｅ）毎に、設定項目（Ｏｐｔｉｏｎ）が記載される。また、選択形式ではない機能については、ＰａｒａｍｅｔｅｒＩｎｉｔやＰｒｏｐｅｒｔｙの形式で、任意の数値や文字列を設定することが可能である。
【００２８】
また、Ｖ４プリンタドライバでは、前述のコンフィグレーションモジュール２１９によってＰｒｉｎｔＴｉｃｋｅｔの生成や、有効性の検証が行われる。有効性の検証は、印刷設定定義ファイル２１３に基づき行われる。コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３に記載されていない設定項目がＰｒｉｎｔＴｉｃｋｅｔに設定されている場合、該当の設定を不正値とみなし、該当機能のデフォルト設定値に変更する。
【００２９】
以上のようなドライバ印刷システムの構成において、以降、プリンタドライバ２０３のＦｅａｔｕｒｅの１つである用紙の種類（ＰａｇｅＭｅｄｉａＴｙｐｅ）について、プリンタドライバ２０３作成後に選択可能な設定値を追加する方法について説明する。ここで、本実施形態では、追加されうる設定値の上限数が予め決まっているものとする。
【００３０】
図６は、本実施形態で用いる印刷設定定義ファイル（ＧＰＤ）２１３における、ＭｅｄｉａＴｙｐｅの定義を示したものである。図３で示した印刷設定定義ファイル（ＧＰＤ）と比較すると、用紙の種類（メディア）に追加の設定値が登場した場合に、これを指定するために用いるＯｐｔｉｏｎとしてＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３が定義されている。前述したように、本実施形態では、追加されうる設定値の上限数が予め決まっており、追加されうるメディアの上限数は３個と定められている。
【００３１】
図７は、本実施形態において用いられるＱＰＢの内容の一例を示す図である。前述したように、ＱＰＢはＫｅｙ−Ｖａｌｕｅペアの構成からなり、図７はこれを模式化して示している。
【００３２】
本実施形態におけるＱＰＢには、Ｋｅｙとして、ＭｅｄｉａＬｉｓｔ、ＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３が定義されて、ＯＳに登録されている。さらに、ＭｅｄｉａＬｉｓｔについては、プリンタドライバ２０３の作成時にＶａｌｕｅの値も定義されてＯＳに登録される。
【００３３】
Ｋｅｙ：ＭｅｄｉａＬｉｓｔは、プリンタドライバ２０３作成時点で対応しているメディアのリストを保持する目的で設けられ、後述する処理において参照する。図７に示したように、プリンタドライバ２０３作成時に対応しているメディアのＯｐｔｉｏｎ名が列挙される。Ｋｅｙ：ＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３のＶａｌｕｅについては、プリンタドライバ２０３作成時点では、値が存在しない形でＯＳに登録される。
【００３４】
続いて、本実施形態における印刷装置１０２の構成について説明する。
【００３５】
図８は、印刷装置１０２で保持している、対応しているメディアの情報を示したものである。また、図８の印刷装置１０２は、出荷時点の状態を示しているものとする。印刷装置１０２は、対応するメディアが列挙されたメディアリスト８０１を保持する。プリンタ出荷時点のメディアリスト８０１には、ＰｌａｉｎとＧｌｏｓｓｙの２つが列挙されている。さらに、印刷装置１０２は、メディアリスト８０１に列挙された各メディアに対するメディア詳細情報８０２を保持する。メディア詳細情報８０２には、各メディアの名称（ＤｉｓｐｌｙＮａｍｅ）と、各メディアがサポートする印刷品質（ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙ）とが含まれている。また、メディア詳細情報８０２には、印刷ジョブにおいて各メディアを指定するときに用いる印刷コマンド（Ｃｏｍｍａｎｄ）が含まれている。
【００３６】
次に、印刷装置１０２出荷後に新規メディアが登場し、印刷装置１０２において使用可能なメディアに新規メディアが追加された例について説明する。
【００３７】
図９は、印刷装置１０２において使用可能なメディアに新規メディアが追加された後の、印刷装置１０２内の状態を示す図である。メディアリスト８０１には、プリンタ出荷時点には存在しなかった、ＣｏａｔとＧｌｏｓｓｙ２の２つが加わっている。さらに、追加された２つのメディアのメディア詳細情報８０２が加わっている。
【００３８】
プリンタドライバ２０３の処理の説明に戻る。
【００３９】
図９に示したように、印刷装置１０２には、プリンタドライバ２０３作成時に存在しなかったＣｏａｔとＧｌｏｓｓｙ２の２つのメディアが追加されている。本実施形態では、これらのメディアをプリンタドライバ２０３の用紙の種類（ＰａｇｅＭｅｄｉａＴｙｐｅ）の設定値として追加する処理を行う。
【００４０】
図１０は、本実施形態におけるプリンタエクステンション２１５により表示される画面の一例を示す図である。プリンタエクステンション２１５は、用紙の種類１００１と印刷品質１００２を表示する。また、それぞれの機能で選択可能な設定値については、コンフィグレーションモジュール２１９から取得したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの記載に基づいて表示する。さらに、プリンタエクステンション２１５は、印刷装置１０２に追加されたメディアに関する情報を、プリンタドライバ２０３に取り込むための機能として、用紙更新ボタン１００３を備える。用紙更新ボタン１００３が押下された場合、プリンタエクステンション２１５は、印刷装置１０２と通信して情報を取得し、取得した情報でＱＰＢの更新を行う。
【００４１】
図１１は、プリンタエクステンション２１５から用紙更新ボタン１００３が押下された時のプリンタドライバ２０３によって実行される処理を示すフローチャートである。図１１の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。
【００４２】
まず、Ｓ１１０１では、印刷装置１０２のメディアリスト８０１が取得され、ＱＰＢに記載されたＫｅｙ：ＭｅｄｉａＬｉｓｔのＶａｌｕｅ値と比較することで、印刷装置１０２に追加されたメディアの存在を確認する。本実施形態においては、図９に示したメディアリスト８０１を取得した場合、プリンタドライバ２０３作成時には無かったメディアとしてＣｏａｔとＧｌｏｓｓｙ２の２個が存在していると判断される。
【００４３】
Ｓ１１０２からＳ１１０７については、繰り返し処理用の変数Ｉに基づき処理の繰り返しが行われる。変数Ｉの上限は、追加されうるメディアの上限数と同じ値である。本実施形態では、追加されうるメディアの上限数が３個であることから、変数Ｉ＝１，２，３の順で代入を行い、Ｉ＝３まで繰り返したら、繰り返し処理を抜けるものとする。
【００４４】
Ｓ１１０３では、Ｉ個目の追加メディアが存在するか否かが判定される。本実施形態では、Ｓ１１０１にて２個の追加メディアが存在すると判断されている。従って、Ｉ＝１，２では処理をＳ１１０４に進め、Ｉ＝３では処理をＳ１１０６に進める。
【００４５】
Ｓ１１０４では、Ｉ個目の追加メディアの情報の取得が行われる。これは、印刷装置１０２から、追加されたメディアのメディア詳細情報８０２の取得が行われる。本実施形態では、Ｉ＝１の処理で印刷装置１０２からＣｏａｔのメディア詳細情報８０２を取得し、Ｉ＝２の処理で印刷装置１０２からＧｌｏｓｓｙ２のメディア詳細情報８０２を取得する。
【００４６】
Ｓ１１０５では、ＱＰＢに定義されているＫｅｙ：Ａｄｄｍｅｄｉａ「Ｉ」のＶａｌｕｅ領域に、Ｓ１１０４で取得したメディア詳細情報８０２の格納が行われる。本実施形態では、Ｉ＝１の処理において、ＱＰＢのＫｅｙ：ＡｄｄＭｅｄｉａ１のＶａｌｕｅ領域にＣｏａｔのメディア詳細情報８０２が格納される。そして、Ｉ＝２の処理において、ＱＰＢのＫｅｙ：ＡｄｄＭｅｄｉａ２のＶａｌｕｅ領域にＧｌｏｓｓｙ２のメディア詳細情報８０２が格納される。
【００４７】
一方、Ｓ１１０６では、ＱＰＢのＫｅｙ：Ａｄｄｍｅｄｉａ「Ｉ」のＶａｌｕｅの値のクリアが行われる。本実施形態では、Ｉ＝３の処理において、ＱＰＢのＫｅｙ：Ａｄｄｍｅｄｉａ３のＶａｌｕｅの値がクリアされる。
【００４８】
図１２は、プリンタエクステンション２１５から用紙更新１００３を実行し、図１１の処理を行った後のＱＰＢの状態を示したものである。Ｋｅｙ：ＡｄｄＭｅｄｉａ１のＶａｌｕｅには、Ｃｏａｔのメディア詳細情報８０２に相当する情報が格納されており、Ｋｅｙ：ＡｄｄＭｅｄｉａ２のＶａｌｕｅにはＧｌｏｓｓｙ２のメディア詳細情報８０２に相当する情報が格納されている。また、Ｋｅｙ：ＡｄｄＭｅｄｉａ３のＶａｌｕｅは空となっている。
【００４９】
次に、追加分のメディア情報を、図１０の用紙の種類１００１の設定値に含めるために必要な、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成処理について説明する。
【００５０】
図１３は、印刷設定編集モジュール２１１における、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成処理を示すフローチャートである。この処理は、コンフィグレーションモジュール２１９が印刷設定定義ファイル２１３に基づき生成したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに対して、ベンダ独自の処理を行うものである。図１３の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。
【００５１】
まず、Ｓ１３０１において、印刷設定編集モジュール２１１は、編集対象のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、コンフィグレーションモジュール２１９が印刷設定定義ファイル２１３に基づき生成したものである。
【００５２】
Ｓ１３０２からＳ１３０６については、繰り返し変数Ｉに基づき処理の繰り返しが行われる。変数Ｉの上限については、追加されうるメディアの上限数と同じ値である。本実施形態では、追加されうるメディアの上限数が３個であることから、変数Ｉ＝１，２，３の順で代入を行い、Ｉ＝３まで繰り返したら繰り返し処理を抜ける。
【００５３】
Ｓ１３０３において、印刷設定編集モジュール２１１は、ＱＰＢを参照し、Ｋｅｙ：ＡｄｄＭｅｄｉａ「Ｉ」のＶａｌｕｅに値が存在するか否かを判定する。値が存在すると判定された場合はＳ１３０４に、値が存在しないと判定された場合はＳ１３０５に処理を進める。本実施形態では、図１２に示したＱＰＢを参照することで、Ｉ＝１、Ｉ＝２ではＶａｌｕｅに値が存在すると判定され、Ｉ＝３ではＶａｌｕｅに値が存在しないと判定される。
【００５４】
Ｓ１３０４において、印刷設定編集モジュール２１１は、編集対象のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにおけるＰａｇｅＭｅｄｉａＴｙｐｅのＡｄｄＭｅｄｉａ「Ｉ」オプションのＤｉｓｐｌａｙＮａｍｅを、ＱＰＢに記載されたＤｉｓｐｌａｙＮａｍｅに変更する。本実施形態では、Ｉ＝１の場合に、図１２のＱＰＢからＫｅｙ：ＡｄｄＭｅｄｉａ１のＶａｌｕｅ値を参照し、このＶａｌｕｅ値から“ＤｉｓｐｌａｙＮａｍｅ”：“Ｃｏａｔｅｄ Ｐａｐｅｒ”という文字列を取り出す。これはＡｄｄＭｅｄｉａ１に対応する名称がＣｏａｔｅｄ  Ｐａｐｅｒであることを意味する。従って、ＡｄｄＭｅｄｉａ１オプションのＤｉｓｐｌａｙＮａｍｅをＡｄｄＭｅｄｉａ１からＣｏａｔｅｄ  Ｐａｐｅｒに変更する。同様にして、Ｉ＝２の場合には、ＡｄｄＭｅｄｉａ２オプションのＤｉｓｐｌａｙＮａｍｅをＡｄｄＭｅｄｉａ２からＧｌｏｓｓｙ  Ｐａｐｅｒ２に変更する。なお、変更結果は、図１５に示される。
【００５５】
一方、Ｓ１３０５において、印刷設定編集モジュール２１１は、ＰａｇｅＭｅｄｉａＴｙｐｅのＡｄｄＭｅｄｉａ「Ｉ」オプションのＣｏｎｓｔｒａｉｎｅｄ属性をＤｅｖｉｃｅＳｅｔｔｉｎｇｓに変更する。本実施形態では、Ｉ＝３の場合に、ＡｄｄＭｅｄｉａ３オプションのＣｏｎｓｔｒａｉｎｅｄ属性をＤｅｖｉｃｅＳｅｔｔｉｎｇｓに変更する。
【００５６】
Ｓ１３０４、Ｓ１３０５の処理を行うことによって、プリンタエクステンション２１５によって表示される画面（例えば、図１０）の用紙の種類１００１には、追加されたメディアの名称についても正しい名称で設定値が表示されることになる。また、プリンタエクステンション２１５は、Ｃｏｎｓｔｒａｉｎｅｄ属性に従って、設定不可能なオプションを判断し、設定値に含めないようにするといった制御をすることが可能となる。そのため、例えば、Ａｄｄｍｅｄｉａ３は、図１０の用紙の種類１００１の選択可能な設定値として表示されない。また、プリンタエクステンション２１５に限らず、ＰｒｉｎｔＣａｐａｂｌｉｔｉｅｓを参照して印刷設定を表示するアプリケーションについても同様な表示が可能となる。
【００５７】
Ｓ１３０７からＳ１３０９では、指定された印刷設定（ＰｒｉｎｔＴｉｃｋｅｔ）に従ってＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを編集する処理である。
【００５８】
Ｓ１３０７において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔを取得する。Ｓ１３０８において、印刷設定編集モジュール２１１は、ＰａｇｅＭｅｄｉａＴｙｐｅの設定値を確認し、設定値がＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３のいずれかであるか否かを判定する。設定値がＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３のいずれかであると判定された場合には、Ｓ１３０９に処理を進める。
【００５９】
Ｓ１３０９において、印刷設定編集モジュール２１１は、ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙのオプション（Ｄｒａｆｔ、Ｎｏｒｍａｌ、Ｈｉｇｈ）に対するＣｏｎｓｔｒａｉｎｅｄ属性の変更を行う。これは、ＱＰＢ上でＰｒｉｎｔＴｉｃｋｅｔのＰａｇｅＭｅｄｉａＴｙｐｅの設定値と同じＫｅｙを検出し、このＶａｌｕｅ値の記載に基づいて行う。
【００６０】
本実施形態では、例えば、プリンタエクステンション２１５を使ってＣｏａｔｅｄ  Ｐａｐｅｒが選択された場合、ＰｒｉｎｔＴｉｃｋｅｔにＡｄｄＭｅｄｉａ１が設定される。この場合、まず、図１２のＱＰＢからＫｅｙ：ＡｄｄＭｅｄｉａ１のＶａｌｕｅ値が参照される。そして、このＶａｌｕｅ値の中から、“ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙ”：“Ｄｒａｆｔ, Ｎｏｒｍａｌ”という文字列を取り出す。これは、ＡｄｄＭｅｄｉａ１のサポートする印刷品質を表し、記載のあるＤｒａｆｔ、Ｎｏｒｍａｌをサポートし、記載のないＨｉｇｈをサポートしないということを意味する。従って、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙに対して、ＤｒａｆｔオプションとＮｏｒｍａｌオプションのＣｏｎｓｔｒａｉｎｅｄ属性をＮｏｎｅに変更する。そして、ＨｉｇｈオプションのＣｏｎｓｔｒａｉｎｅｄ属性をＰｒｉｎｔＴｉｃｋｅｔＳｅｔｔｉｎｇｓに変更する。
【００６１】
Ｓ１３０９の処理を行うことによって、プリンタエクステンション２１５の印刷品質１００２に対して、Ｃｏｎｓｔｒａｉｎｅｄ属性に従って設定不可能なオプションを判断する。そして、プリンタエクステンション２１５は、設定不可能なオプションを図１０の画面の選択肢として含めないようにするといった制御が可能となる。例えば、図１０の画面においてＣｏａｔｅｄ  Ｐａｐｅｒが選択された場合、印刷品質１００２においてＨｉｇｈが設定値として非表示となる。
【００６２】
図１５は、図１３のフローチャートの処理により生成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一部である。この内、下線を引いた部分が、印刷設定編集モジュール２１１によって変更が加えられた部分である。
【００６３】
続いて、ＰｒｉｎｉｔＴｉｃｋｅｔの有効性検証処理について説明する。本実施形態では、上述したようにＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに対して印刷設定編集モジュール２１１にて独自の変更を行っている。このため、本実施形態では、印刷設定（ＰｒｉｎｔＴｉｃｋｅｔ）の有効性検証についても、印刷設定編集モジュール２１１による、独自の有効性検証処理を行う。
【００６４】
図１４は、印刷設定編集モジュール２１１における、ＰｒｉｎｔＴｉｃｋｅｔの有効性検証処理を示すフローチャートである。図１４の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。
【００６５】
Ｓ１４０１において、印刷設定編集モジュール２１１は、検証対象となるＰｒｉｎｔＴｉｃｋｅｔの取得を行う。なお、検証対象となるＰｒｉｎｔＴｉｃｋｅｔは、アプケーションで作成されてもよいし、図１０のプリンタエクステンションの画面を使って生成されても良い。例えば、プリンタエクステンションは、Ｃｏａｔｅｄ  Ｐａｐｅｒが選択された場合、ＰｒｉｎｔＴｉｃｋｅｔにＡｄｄＭｅｄｉａ１を設定する。一方、プリンタエクステンションは、ＧｌｏｓｓｙＰａｐｅｒ２が選択された場合、ＰｒｉｎｔＴｉｃｋｅｔにＡｄｄＭｅｄｉａ２を設定する。尚、取得されるＰｒｉｎｔＴｉｃｋｅｔは、コンフィグレーションモジュール２１９において印刷設定定義ファイル２１３に基づく検証が行われたものである。従って、図１４における処理は、コンフィグレーションモジュール２１９の処理結果に対して印刷設定編集モジュール２１１が追加で行うベンダ独自の処理である。
【００６６】
Ｓ１４０２において、印刷設定編集モジュール２１１は、取得したＰｒｉｎｔＴｉｃｋｅｔからＰａｇｅＭｅｄｉａＴｙｐｅの設定値を取得し、設定値によって処理を分岐する。設定値がＡｄｄＭｅｄｉａ１、ＡｄｄＭｅｄｉａ２、ＡｄｄＭｅｄｉａ３のいずれかの場合は処理をＳ１４０３に進め、それ以外の場合は、図１４の処理を終了する。
【００６７】
Ｓ１４０３において、印刷設定編集モジュール２１１は、ＰＴに設定されたＰａｇｅＭｅｄｉａＴｙｐｅの設定値に対応するＱＰＢのＶａｌｕｅ値が存在するか否かによって処理を分岐する。例えば、ＰＴにＡｄｄＭｅｄｉａ１が設定されていた場合、本実施形態における図１２のＱＰＢに照らし合わせると、Ｋｅｙ：ＡｄｄＭｅｄｉａ１のＶａｌｕｅ値が存在することから、Ｓ１４０３でＹｅｓと判定されＳ１４０４に処理を進める。一方、ＰＴにＡｄｄＭｅｄｉａ３が設定されていた場合、図１２のＱＰＢにおいて、Ｋｅｙ：ＡｄｄＭｅｄｉａ３のＶａｌｕｅ値は存在しないため、Ｓ１４０３でＮｏと判定されＳ１４０６に処理を進める。なお、図１０のプリンタエクステンションの画面を使って設定された場合は、ＡｄｄＭｅｄｉａ３は表示されないため、ＰＴにＡｄｄＭｅｄｉａ３が設定されるケースはない。上述したようにアプリケーションによってＰｒｉｎｔＴｉｃｋｅｔが生成された場合、ユーザが自由にＰｒｉｎｔＴｉｃｋｅｔを作成することができる。このアプリケーションを使ってＰｒｉｎｔＴｉｃｋｅｔを作成するケースにおいてＰＴにＡｄｄＭｅｄｉａ３が設定されることがある。
【００６８】
次に、Ｓ１４０４において、印刷設定編集モジュール２１１は、ＰＴに設定されたＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙの有効性検証処理を行う。これは、ＰＴに追加のメディアが設定されている場合に、当該メディアで設定不可な印刷品質（ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙ）が設定されていないかの検証処理を行うことを意味する。例えば、ＰＴにＡｄｄＭｅｄｉａ２が設定されていた場合、図１２のＱＰＢに照らし合わせ、Ｋｅｙ：ＡｄｄＭｅｄｉａ２のＶａｌｕｅ値から、“ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙ：“Ｎｏｒｍａｌ，  Ｈｉｇｈ”という文字列を取り出す。これは、ＡｄｄＭｅｄｉａ２のサポートする印刷品質を表し、記載のあるＮｏｒｍａｌ、Ｈｉｇｈをサポートし、記載のないＤｒａｆｔをサポートしないということを意味する。従って、ＰＴのＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙにおいて、Ｎｏｒｍａｌオプション、もしくは、Ｈｉｇｈオプションが設定されている場合、ＰＴは有効であると判断される。他方、ＰＴのＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙにおいて、Ｄｒａｆｔオプションが設定されている場合、ＰＴには不正な組み合わせが記述されていると判断する。そして、ＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙのオプションをＡｄｄＭｅｄｉａ２でサポートされる印刷品質（例えば、Ｎｏｒｍａｌ）に変更する。
【００６９】
Ｓ１４０５において、印刷設定編集モジュール２１１は、ＰＴに対して、Ｐｒｏｐｅｒｔｙ値の追加を行う。追加するＰｒｏｐｅｔｙ値は、印刷装置１０２に対して追加のメディアで印刷指示を行う場合に使用する印刷コマンド値である。例えば、ＰＴにＡｄｄＭｅｄｉａ２が設定されていた場合、図１２のＱＰＢに照らし合わせ、Ｋｅｙ：ＡｄｄＭｅｄｉａ２のＶａｌｕｅ値から、“Ｃｏｍｍａｎｄ”：“０ｘＦ００２”という文字列を取り出す。これは、ＡｄｄＭｅｄｉａ２で印刷装置１０２に対して印刷を行うための印刷コマンドが０ｘＦ００２であることを意味する。従って、ＰＴのＰｒｏｐｅｒｔｙ値として０ｘＦ００２を追加する。これにより、ＰＴを受け取った印刷コマンドフィルタ２２５は、印刷コマンドが記載されたＰｒｏｐｅｒｔｙ値を参照することで、追加のメディアを特定することができる。また、ここでは、印刷コマンドフィルタ２２５が印刷コマンドを知る構成として、ＰＴに含める構成を説明した。しかしながら、他の方法で追加メディアを特定しても良い。具体的には、印刷コマンドフィルタ２２５が、ＱＰＢを直接参照して、追加メディアの印刷コマンドの値を取得するというように構成しても良い。例えば、ＰＴにＡｄｄＭｅｄｉａ２が設定されていた場合、印刷コマンドフィルタ２２５は、ＱＰＢを直接参照すると０ｘＦ００２であることを特定できる。
【００７０】
一方、Ｓ１４０３でＮｏと判定された場合、Ｓ１４０６において、印刷設定編集モジュール２１１は、ＰＴのＰａｇｅＭｅｄｉａＴｙｐｅとＰａｇｅＯｕｔｐｕｔＱｕａｌｉｔｙの設定値をデフォルト設定に変更する。デフォルト設定については、ＤＰＢに予め保持しておくといった構成でも良い。
【００７１】
図１６は、図１４のフローチャートの処理により生成されたＰｒｉｎｔＴｉｃｋｅｔの一部である。ここで、ＰＴにはＡｄｄＭｅｄｉａ２が設定されていたとし、下線を引いた部分が、印刷設定編集モジュール２１１によって、変更が加えられた部分となる。
【００７２】
以上のように、本実施形態では、印刷設定定義ファイル２１３に対して、追加されうるオプションを、予め追加されうる設定値の個数分定義する。そして、印刷設定編集モジュール２１１は、オプションの内容を、追加された設置値の内容に即した形に編集する。本実施形態により、プリンタエクステンション２１５やアプリケーションは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓから印刷設定の設定値を表示し、ＰｒｉｎｔＴｉｃｋｅｔに印刷設定を保存する、という標準的な手順に基づき印刷設定を行うことが可能となる。また、プリンタエクステンション２１５やアプリケーションは、プリンタドライバ作成時のオプションと、追加されたオプションとを区別して制御しなくて済む。
【００７３】
［第２の実施形態］
第１の実施形態では、追加項目に応じたオプションを予め追加される数だけ印刷設定定義ファイルに定義しておくことで、選択可能項目の追加を実現した。第１の実施形態のシステムでは、追加されるオプション数の上限を予め知っている必要がある。本実施形態では、任意数のオプションの追加を可能とするシステムについて、第１の実施形態と異なる点について説明する。
【００７４】
本実施形態では、用紙サイズの追加を例にとって説明する。例えば、ＰｒｉｎｔＴｉｃｋｅｔには、用紙サイズに入力用紙サイズ（ＰａｇｅＭｅｄｉａＳｉｚｅ）と出力用紙サイズ（ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅ）が設定されることがある。ＰａｇｅＭｅｄｉａＳｉｚｅは標準のプリントスキーマで定義されている設定であり、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅはベンダが独自で定義している設定である。例えば、入力データを出力用紙に合わせてフィットさせるフィットページ印刷の場合、アプリケーションが生成するデータのサイズは入力用紙サイズで設定し、実際に印刷される用紙サイズは出力用紙サイズで設定される。また、Ｖ３プリンタドライバでは、ユーザは自身で定義した用紙サイズを、ＯＳ提供のＦｏｒｍＤＢ１７０１に登録することで、入力用紙サイズと出力用紙サイズ双方で利用することができる。
【００７５】
しかしながら、Ｖ４プリンタドライバでは、印刷設定の処理をＯＳ提供のコンフィグレーションモジュール２１９が担うため、基本的には印刷設定定義ファイルで定義されていない設定項目を自由に扱うことはできない。コンフィグレーションモジュール２１９は、ＦｏｒｍＤＢ１７０１に登録されたサイズを標準の設定であるＰａｇｅＭｅｄｉａＳｉｚｅでは使用可能とする。一方、独自で定義しているＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅでは、印刷設定定義ファイルで記述した項目だけを使用可能とする。しかしながら、入力用紙サイズと出力用紙サイズには同じ選択項目を設けたいため、ユーザがＦｏｒｍＤＢ１７０１に追加した用紙サイズを、出力用紙サイズに適用することが求められる。
【００７６】
図１７は、用紙サイズに関連する設定を決定するための構成を示す図である。アプリケーション２０１がＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓをプリンタドライバ２０３に対して要求すると、コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３に基づいてＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成を行う。ただし、ＰａｇｅＭｅｄｉａＳｉｚｅについてはＦｏｒｍＤＢ１７０１に登録された用紙サイズもオプションに含まれるため、コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３と併せてＦｏｒｍＤＢ１７０１を参照する。ここで、ＦｏｒｍＤＢ１７０１は、ユーザが任意のサイズを登録できる、ＯＳに備えられているデータベースである。尚、印刷設定定義ファイル２１３に記載された用紙サイズは、プリンタドライバ２０３のインストール時にＦｏｒｍＤＢ１７０１に登録される。図１７の例では、ＦｏｒｍＤＢ１７０１には、印刷設定定義ファイル２１３に記載されたＬｅｔｔｅｒ、Ａ４サイズに加えて、ユーザが登録したＵｓｅｒＦｏｒｍ０００１、ＵｓｅｒＦｏｒｍ０００２の２つのサイズが追加で登録されている。
【００７７】
図１８は、図１７の構成によって生成されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一例を示す図である。印刷設定定義ファイル２１３には、ＰａｇｅＭｅｄｉａＳｉｚｅとＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅ双方に、ＬｅｔｔｅｒサイズとＡ４サイズが記述されている。従って、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにも、Ａ４サイズとＬｅｔｔｅｒサイズのＯｐｔｉｏｎが存在する。加えて、ＰａｇｅＭｅｄｉａＳｉｚｅには、ＦｏｒｍＤＢ１７０１にユーザが登録したサイズ（ＵｓｅｒＦｏｒｍ０００１、ＵｓｅｒＦｏｒｍ０００２）がＯｐｔｉｏｎとして存在する。
【００７８】
従って、ユーザは、自身がＦｏｒｍＤＢ１７０１に登録したサイズを、ＰａｇｅＭｅｄｉａＳｉｚｅでは設定できるが、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅでは設定できない。もし、ユーザがＰａｇｅＭｅｄｉａＳｉｚｅに存在するユーザ登録サイズをＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅに設定したとしても、コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３に存在しないオプションと判断する。その結果、不正な値としてみなされる。不正な値とみなされた設定は、コンフィグレーションモジュール２１９の有効性検証処理においてデフォルト設定に変更されてしまい、印刷に反映することができない。従って、ＰａｇｅＭｅｄｉａＳｉｚｅ以外の機能では、設定するオプションについては、印刷設定定義ファイル２１３に記載しておく必要がある。
【００７９】
図１９は、本実施形態における用紙サイズに関連する設定を決定するための構成を示す図である。印刷設定定義ファイル２１３には、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＯｐｔｉｏｎとして、追加サイズを使用したい場合に設定するＯｐｔｉｏｎ（ＡｄｄＳｉｚｅ）を定義している。また、本実施形態では、コンフィグレーションモジュール２１９が生成したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに対して拡張設定を行う印刷設定編集モジュール２１１が設けられる。印刷設定編集モジュール２１１は、各処理において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓやＰｒｉｎｔＴｉｃｋｅｔに対してベンダ独自の編集を行うことができる。ここで、各処理とは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成、Ｄｅｖｍｏｄｅ構造体とＰｒｉｎｔＴｉｃｋｅｔの変換、ＰｒｉｎｔＴｉｃｅｔの有効性検証処理である。
【００８０】
図２０は、印刷設定編集モジュール２１１における、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの生成処理を示すフローチャートである。この処理は、コンフィグレーションモジュール２１９が印刷設定定義ファイル２１３に基づき生成したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに対して、ベンダ独自の処理を行うものである。図２０の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。なお、図２０は、例えば、アプリケーション２０１がＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの取得をコンフィグレーションモジュール２１９に依頼した際に開始される。
【００８１】
まず、Ｓ２００１では、印刷設定編集モジュール２１１は、編集対象のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する。取得されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、コンフィグレーションモジュール２１９が印刷設定定義ファイル２１３とＦｏｒｍＤＢ１７０１に基づき生成したものである。
【００８２】
Ｓ２００２において、印刷設定編集モジュール２１１は、ＰａｇｅＭｅｄｉａＳｉｚｅとＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定可能項目の差分を確認する。図１９を一例に説明すると、ＦｏｒｍＤＢ１７０１の内容が印刷設定定義ファイル２１３のＰａｇｅＭｅｄｉａＳｉｚｅに反映される。つまり、印刷設定定義ファイル２１３のＰａｇeＭｅｄｉａＳｉｚｅにはＵｓｅｒＦｏｒｍ０００１−０００２が追加されるが、ＰａｇｅＯｕｔｏｕｔＭｅｄｉａＳｉｚｅには追加されない。つまり、このＵｓｅｒＦｏｒｍ０００１−０００２が差分として確認される。なお、ＡｄｄＳｉｚｅは特別な項目であるため差分の確認の対象外となる。Ｓ２００３において、印刷設定編集モジュール２１１は、Ｓ２００２で行った確認に基づき、ユーザ登録サイズが存在するか否かを判定する。印刷設定編集モジュール２１１は、例えば、印刷設定定義ファイル２１３において、ＰａｇｅＭｅｄｉａＳｉｚｅにのみ存在する項目があればユーザ登録サイズが存在すると判定する。ユーザ登録サイズが存在しないと判定された場合はＳ２００４へ進み、ユーザ登録サイズが存在すると判定された場合はＳ２００５へ進む。つまり、図１９の例では、ＰａｇeＭｅｄｉａＳｉｚｅは、ＰａｇｅＯｕｔｏｕｔＭｅｄｉａＳｉｚｅが持たないＵｓｅｒＦｏｒｍ０００１−０００２を備えるため、Ｓ２００３においてＹｅｓと判定される。なお、Ｓ２００２の判定は、印刷設定定義ファイル２１３の特定の機能（例えば、ＰａｇeＭｅｄｉａＳｉｚｅ）の項目と、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの特定の機能特定の機能（例えば、ＰａｇeＭｅｄｉａＳｉｚｅ）の項目の比較でも良い。
【００８３】
Ｓ２００４において、印刷設定編集モジュール２１１は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＡｄｄＳｉｚｅオプションのｃｏｎｓｔｒａｉｎｅｄ属性をＤｅｖｉｃｅＳｅｔｔｉｎｇｓに変更する。これによって、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを参照したアプリケーションは、ＡｄｄＳｉｚｅを設定不可能なオプションと判断することができる。そのため、例えば、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを参照したアプリケーションは、出力用紙サイズの設定値としてＡｄｄＳｉｚｅを非表示にする。または、ＡｄｄＳｉｚｅはグレーアウト表示される。
【００８４】
一方、Ｓ２００５において、印刷設定編集モジュール２１１は、ＰａｒａｍｅｔｅｒＤｅｆとして追加サイズの実態を格納するための設定であるＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅをＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに追加する。なお、追加した後の結果の一例として図２１を示す。なお、ＰａｒａｍｅｔｅｒＤｅｆには、対象の設定項目をどのような形式で設定できるのかのルールが記載される。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにおいてＰａｒａｍｅｔｅｒＤｅｆで定義された設定は、ＰｒｉｎｔＴｉｃｋｅｔにおいて、ＰａｒａｍｅｔｅｒＩｎｉｔとして、ＰａｒａｍｅｔｅｒＤｅｆで定義されたルールに従って設定される。
【００８５】
Ｓ２００６からＳ２００９は、指定された印刷設定情報（ＰｒｉｎｔＴｉｃｋｅｔ）に従って、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを編集する処理である。なお、ＰｒｉｎｔＴｉｃｋｅｔは、図２０の処理の開始要求に関わるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの発行を要求した要求元から取得される。ＰｒｉｎｔＣａｐａｌｉｔｉｅｓのＰａｇｅＭｅｄｉａＳｉｚｅには、用紙サイズの外形を表すＳｃｏｒｅｄＰｒｏｐｅｒｔｙが付加される。この付加は、Ｓ２００１に関わる処理としてコンフィグレーションモジュールにより実行される。これにならって、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅについても、各項目がどのようなサイズであるかが分かるように、同様の情報を付加することが考えられる。その場合、追加サイズに対応した項目であるＡｄｄＳｉｚｅは、実態を表すパラメータであるＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅによって、割り当てられる用紙サイズが変わるため、ＰｒｉｎｔＴｉｃｋｅｔの内容に従った編集が行われる必要がある。
【００８６】
Ｓ２００６において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔを取得する。Ｓ２００７において、印刷設定編集モジュール２０７は、取得されたＰｒｉｎｔＴｉｃｋｅｔにおけるＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値を確認する。そして、設定値に対応した項目がＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのＰａｇｅＭｅｄｉａＳｉｚｅの設定可能項目に存在するか否かを判定する。対応した項目が存在しないと判定された場合はＳ２００８へ進む。対応した項目が存在すると判定された場合はＳ２００９へ進む。
【００８７】
Ｓ２００８において、印刷設定編集モジュール２１１は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのデフォルト設定値となるサイズの幅と高さを、ＡｄｄＳｉｚｅオプションのＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして設定する。ここでは、ＭｅｄｉａＳｉｚｅＷｉｄｔｈ／ＭｅｄｉａＳｉｚｅＨｅｉｇｈｔとして設定される。一方、Ｓ２００９において、印刷設定編集モジュール２１１は、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅで設定された値に対応したサイズの幅と高さを、ＡｄｄＳｉｚｅオプションのＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして設定する。ここで、Ｓ２００６−Ｓ２００９の処理を、図１９を用いて説明する。例えば、Ｓ２００６において取得されたＰｒｉｎｔＴｉｃｋｅｔのＡｄｄＭｅｄｉａＳｉｚｅとして「ＵｓｅｒＦｏｒｍ０００１」が記述されていたとする。この場合、印刷設定編集モジュール２１は、Ｓ２００７においてＵｓｅｒＦｏｒｍ０００１がＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓのＰａｇｅＭｅｄｉａＳｉｚｅに存在するか否かを確認する。例えば、図１８のＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓにはＰａｇｅＭｅｄｉａＳｉｚｅとしてＵｓｅｒＦｏｒｍ０００１が含まれる。そのため、印刷設定編集モジュール２１１は、Ｓ２００７においてＹｅｓと判定し、Ｓ２００９において図１８に基づいて幅「２００００」と高さ「２５００００」を記載する。以上の処理により図２１のようにＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＡｄｄＳｉｚｅに幅と高さが記述される。なお、Ｓ２００６において取得されたＰｒｉｎｔＴｉｃｋｅｔのＡｄｄＭｅｄｉａＳｉｚｅとしてＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに含まれない設定値（例えば、ＵｓｅｒＦｏｒｍ０００３）が記述されていた場合について説明する。印刷設定編集モジュール２１１は、Ｓ２００７においてＮｏと判定し、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＡｄｄＳｉｚｅにデフォルトの値を記述する。
【００８８】
図２０の処理によって、追加サイズが存在する場合に、追加サイズに対応したオプションが選択可能であり、併せて追加サイズの実態を示すパラメータを設定できることが表現されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓが生成される。尚、本実施形態では追加サイズの実態をＰａｒａｍｅｔｅｒＩｎｉｔで設定することを想定している。しかしながら、ＡｄｄＳｉｚｅに付随するＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして定義することや、別項目のＰｒｏｐｅｒｔｙとして定義することも可能であり、その形態は限定されるものではない。
【００８９】
図２１は、図２０の処理によって生成されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一例を示す図である。なお、図２１は、Ｓ２００６において取得したＰｒｉｎｔＴｉｃｋｅｔにＵｓｅｒＦｏｒｍ０００１が記述されていた場合に生成されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓである。ここでは変更が行われるＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅと新規追加項目についてのみ説明する。図１９に示すように、印刷設定定義ファイル２１３には、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＯｐｔｉｏｎとしてＡｄｄＳｉｚｅが追加されている。従って、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓでもＡｄｄＳｉｚｅがＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＯｐｔｉｏｎとして追加される。加えて、ＡｄｄＳｉｚｅ指定時に実際に使用するサイズの情報を示すためのパラメータであるＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅがＰａｒａｍｅｔｅｒＤｅｆとして追加される。
【００９０】
図２１のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにより、印刷設定において出力用紙サイズで追加サイズを使用するために、追加サイズを示す項目（ＡｄｄＳｉｚｅ）と実際に使われるサイズの情報（ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅ）を併せて指定できる。また、追加サイズを示す項目を印刷設定定義ファイル２１３に定義することで、ＰｒｉｎｔＴｉｃｋｅｔの有効性検証においても値を維持することが可能となる。
【００９１】
図２２は、プリンタエクステンション２１５における出力用紙サイズの選択可能項目の決定処理を示すフローチャートである。図２２の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。本実施形態では、対象の機能に対して複数の追加項目に対応した選択項目を１つだけ設けている。そのため、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに従って選択可能項目を表示すると、追加項目を選択項目に含めることができない。そこで、追加項目が存在するかを確認して、存在する場合は他の情報と併せて選択項目を決定する必要がある。
【００９２】
まず、Ｓ２２０１において、プリンタエクステンション２１５は、図２０の処理により作成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する。次に、Ｓ２２０２において、プリンタエクステンション２１５は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅに存在するＡｄｄＳｉｚｅのＣｏｎｓｔｒａｉｎｅｄ属性を取得する。
【００９３】
Ｓ２２０３において、プリンタエクステンション２１５は、Ｓ２２０２で取得した属性値から、ＡｄｄＳｉｚｅが使用可能か否かを判定し、使用できないと判定された場合はＳ２２０４へ進み、使用可能と判定された場合はＳ２２０５へ進む。例えば、ＡｄｄＳｉｚｅのＣｏｎｓｔｒａｉｎｅｄ属性に“Ｎｏｎｅ”が設定されていれば使用可能であると判定し、追加サイズが存在せず、図２０のＳ２００４の処理により“ＤｅｖｉｃｅＳｅｔｔｉｎｇｓ”が設定されていれば使用不可能と判定する。なお、図２０の処理により作成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（図２１）では、ＡｄｄＳｉｚｅのＣｏｎｓｔｒａｉｎｅｄ属性にＮｏｎｅと設定されているので、Ｓ２２０３においてＹｅｓと判定される。
【００９４】
Ｓ２２０４は、追加サイズが存在しないと判定された場合の処理である。追加サイズが存在しないと判定された場合は、印刷設定定義ファイル２１３に記載の項目のみが使用可能となるので、プリンタエクステンション２１５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに基づいて選択項目を決定する。尚、ＡｄｄＳｉｚｅは、Ｃｏｎｓｔｒａｉｎｅｄ属性によって使用不可とされているため、選択項目に加えられることはない。
【００９５】
Ｓ２２０５からＳ２２０６は、追加サイズが存在すると判定された場合の処理である。Ｓ２２０５において、プリンタエクステンション２１５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのＰａｇｅＭｅｄｉａＳｉｚｅの選択可能項目から、印刷設定定義ファイル２１３に記載されていない項目を検出する。図１８、図１９を使って具体的に説明する。プリンタエクステンション２１５は、図１８のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにおけるＰａｇｅＭｅｄｉａＳｉｚｅを参照する。その結果、項目として、“（ＮｏｒｔｈＡｍｅｒｉｃａｎ）Ｌｅｔｔｅｒ”、“ＩＳＯＡ４”、“ＵｓｅｒＦｏｒｍ０００１”、“ＵｓｅｒＦｏｒｍ０００２”が検出される。一方、図１９の印刷設定定義ファイル２１３には、ＰａｇｅＭｅｄｉａＳｉｚｅとして“Ｌｅｔｔｅｒ”と“ＩＳＯＡ４”が記述されている。つまり、Ｓ２２０５において、“ＵｓｅｒＦｏｒｍ０００１”、“ＵｓｅｒＦｏｒｍ０００２”が検出される。
【００９６】
Ｓ２２０６において、プリンタエクステンション２１５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに記載されたＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの選択可能項目と、Ｓ２２０５で検出した項目を併せて、出力用紙サイズの選択可能項目として決定する。そして、決定された選択可能項目に基づきユーザに印刷設定画面を提供する。例えば、プリンタエクステンション２１５は、出力用紙サイズの選択させるためにコンボボックスを設け、上記の決定した選択可能項目をコンボボックスの選択肢として提供する。図１８、図１９、図２１を使って図２２が実行された場合、印刷設定画面の出力用紙サイズの選択肢には、Ｌｅｔｔｅｒ、Ａ４、ＵｓｅｒＦｏｒｍ０００１、ＵｓｅｒＦｏｒｍ０００２が表示される。その際、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに記載されたＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの選択可能項目の内、追加サイズを示すＡｄｄＳｉｚｅについては、単体で意味を成す項目ではないため、選択可能項目から除外する。
【００９７】
図２２の処理によって、プリンタエクステンション２１５は、ユーザが追加項目も含めた印刷設定を実行可能なユーザインタフェースを提供することができる。提供した設定コントロールにおいてユーザが追加項目を選択した場合、プリンタエクステンション２１５は、ＰｒｉｎｔＴｉｃｋｅｔにおいて、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅにＡｄｄＳｉｚｅを設定する。なお、追加項目が選択された場合、プリンタエクステンション２１５は、ＰｒｉｎｔＴｉｃｋｅｔのＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅにＡｄｄＳｉｚｅを設定することが予め決められている。本実施形態では、ＵｓｅｒＦｏｒｍ０００１または０００２が選択された場合、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅにＡｄｄＳｉｚｅが設定される。プリンタエクステンション２１５が、追加項目が選択された場合にＰｒｉｎｔＴｉｃｋｅｔにＡｄｄＳｉｚｅを設定する理由は、ＰｒｉｎｔＴｉｃｋｅｔのＶａｌｉｄａｔｅ処理でユーザが設定した設定値が他の値へ変更されることを防ぐためである。そして、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅに追加サイズの実態を設定する。追加サイズの実態とは、例えば、ＰａｇｅＭｅｄｉａＳｉｚｅに存在するＯｐｔｉｏｎの名称をそのまま記載することが考えられる。その場合、図２１のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに基づき設定すると、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅには、ＵｓｅｒＦｏｒｍ０００１やＵｓｅｒＦｏｒｍ０００２と設定することになる。プリンタドライバ２０３は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅにＡｄｄＳｉｚｅが設定されていることと、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値から、どの追加サイズを使うかを決定する。
【００９８】
図２３は、印刷設定編集モジュール２１１における、ＰｒｉｎｔＴｉｃｋｅｔからＤｅｖｍｏｄｅへの変換処理を示すフローチャートである。図２３の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。印刷設定を保持する形式には、ＤｅｖｍｏｄｅとＰｒｉｎｔＴｉｃｋｅｔという２つの形式が存在する。コンフィグレーションモジュール２１９は、ＤｅｖｍｏｄｅとＰｒｉｎｔＴｉｃｋｅｔの相互変換を行う。ただし、コンフィグレーションモジュール２１９は、印刷設定定義ファイル２１３に基づき変換処理を行う。従って、パラメータなどの印刷設定定義ファイル２１３で定義していない設定の設定値を維持するためには、印刷設定編集モジュール２１１で処理を行う必要がある。
【００９９】
まず、Ｓ２３０１において、印刷設定編集モジュール２１１は、編集対象となるＤｅｖｍｏｄｅを取得する。次に、Ｓ２３０２において、印刷設定編集モジュール２１１は、Ｄｅｖｍｏｄｅに格納する値を設定するためのＰｒｉｎｔＴｉｃｋｅｔを取得する。
【０１００】
Ｓ２３０３からＳ２３０４は、ＰａｒａｍｅｔｅｒＩｎｉｔの設定値をＤｅｖｍｏｄｅに格納する処理である。Ｓ２３０３において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔからＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値を取得する。Ｓ２３０４において、印刷設定編集モジュール２１１は、Ｓ２３０３で取得した設定値を対応したＤｅｖｍｏｄｅの設定に格納する。
【０１０１】
Ｄｅｖｍｏｄｅに値を設定できるようにするには、不図示のＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇに使用する項目とサイズを定義しておく必要がある。この処理によって、Ｖ４プリンタドライバにおいて、独自で追加したパラメータにおける設定値の維持が可能となる。尚、本実施形態では、用紙サイズを対象として説明をしているが、独自で追加したＰａｒａｍｅｔｅｒＩｎｉｔについては、同様の処理を行う必要がある。
【０１０２】
図２４は、印刷設定編集モジュール２１１における、ＤｅｖｍｏｄｅからＰｒｉｎｔＴｉｃｋｅｔへの変換処理を示すフローチャートである。図２４の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。この処理は、ＰａｒａｍｅｔｅｒＩｎｉｔ等の独自で追加した設定をＰｒｉｎｔＴｉｃｋｅｔに設けるために必要である。また、アプリケーション２０１がＰｒｉｎｔＴｉｃｋｅｔを取得する際に行われる処理であり、ＰｒｉｎｔＴｉｃｋｅｔに関するベンダ独自の処理がここで行われる。
【０１０３】
まず、Ｓ２４０１において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔに設けるＰａｒａｍｅｔｅｒＩｎｉｔ等に設定する設定値を取得する対象となるＤｅｖｍｏｄｅを取得する。Ｓ２４０２において、印刷設定編集モジュール２１１は、編集対象となるＰｒｉｎｔＴｉｃｋｅｔを取得する。
【０１０４】
Ｓ２４０３において、印刷設定編集モジュール２１１は、取得したＤｅｖｍｏｄｅから、追加用紙サイズの情報を格納するために設けたＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値を取得する。Ｓ２４０４において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔにＰａｒａｍｅｔｅｒＩｎｉｔとして、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅを追加し、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値として、Ｓ２４０３で取得した値を設定する。
【０１０５】
Ｓ２４０５からＳ２４０９は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして、用紙サイズの幅と高さの情報を追加する処理である。まず、Ｓ２４０５において、印刷設定編集モジュール２１１は、ＰｒｉｎｔＴｉｃｋｅｔにおけるＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定値が追加用紙サイズを表すＡｄｄＳｉｚｅであるか否かを判定する。ＡｄｄＳｉｚｅが設定されていると判定された場合はＳ２４０６へ進み、ＡｄｄＳｉｚｅが設定されていないと判定された場合はＳ２４０７へ進む。
【０１０６】
Ｓ２４０６において、印刷設定編集モジュール２１１は、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値に対応した設定がＰａｇｅＭｅｄｉａＳｉｚｅに存在するか否かを判定する。存在しないと判定された場合はＳ２４０８へ進み、存在すると判定された場合はＳ２４０９へ進む。なお、Ｓ２４０６−Ｓ２４０９は、Ｓ２００７−Ｓ２００９と同じ処理である。
【０１０７】
Ｓ２４０７では、追加サイズ以外が設定されているので、印刷設定編集モジュール２１１は、設定値に対応した幅と高さをＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして追加する。Ｓ２４０８では、存在しない追加サイズが指定されているので、印刷設定編集モジュール２１１は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅのデフォルト設定のＷｉｄｔｈとＨｉｇｈｔをＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして追加する。Ｓ２４０９では、追加サイズが設定されているので、印刷設定編集モジュール２１１は、設定値にＰａｇｅＭｅｄｉａＳｉｚｅの対応した設定値のＳｃｏｒｅｄＰｒｏｐｅｒｔｙから高さと幅を取得して、ＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして追加する。
【０１０８】
アプリケーション２０１やプリンタドライバ２０３は、印刷設定を決定するに当たり、ＰＴＭｅｒｇｅＡｎｄＶａｌｉｄａｔｅ等の処理を通して、ＰｒｉｎｔＴｉｃｋｅｔの有効性検証を行うのが作法である。図２５は、印刷設定編集モジュール２１１における、ＰｒｉｎｔＴｉｃｋｅｔの有効性検証処理を示すフローチャートである。図２５の処理は、例えば、ＣＰＵ１１１がＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行することにより実現される。
【０１０９】
まず、Ｓ２５０１において、印刷設定編集モジュール２１１は、検証対象となるＰｒｉｎｔＴｉｃｋｅｔの取得を行う。尚、取得されるＰｒｉｎｔＴｉｃｋｅｔは、コンフィグレーションモジュール２１９において印刷設定定義ファイル２１３に基づく検証が行われたものである。従って、図２５における処理は、コンフィグレーションモジュール２１９の処理結果に対して印刷設定編集モジュール２１１が追加で行うベンダ独自の処理である。
【０１１０】
Ｓ２５０２において、印刷設定編集モジュール２１１は、取得したＰｒｉｎｔＴｉｃｋｅｔからＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定値を取得する。Ｓ２５０３において、Ｓ２５０２で取得した設定値が追加サイズを示すＡｄｄＳｉｚｅであるか否かを判定する。ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定値がＡｄｄＳｉｚｅであると判定された場合はＳ２５０４へ進む。ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定値がＡｄｄＳｉｚｅでないと判定された場合は、追加で編集を行う必要がないため図２５の処理を終了する。
【０１１１】
Ｓ２５０４において、印刷設定編集モジュール２１１は、追加サイズの実態を示すＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値を確認し、ＰａｇｅＭｅｄｉａＳｉｚｅの選択可能項目に存在するか否かを判定する。ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値がＰａｇｅＭｅｄｉａＳｉｚｅの選択可能項目に存在すると判定された場合は設定が正しいので処理を終了し、存在しないと判定された場合は有効な設定に変更するためにＳ２５０５からＳ２５０６の処理を行う。
【０１１２】
Ｓ２５０５において、印刷設定編集モジュール２１１は、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅの設定値をデフォルト設定に変更する。Ｓ２５０６において、印刷設定編集モジュール２１１は、変更した設定に対応したＷｉｄｔｈとＨｉｇｈｔをＳｃｏｒｅｄＰｒｏｐｅｒｔｙとして追加する。例えばデフォルト値がＡ４であれば、Ｓ２５０５においてＡ４が設定され、Ｓ２５０６においてＡ４の幅に対応するパラメータ、高さに対応するパラメータが設定される。これによって、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅに追加サイズを示す設定が行われているが実態を示す情報が不正な場合において、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅを有効な値に変更することができる。
【０１１３】
以上のように、本実施形態では、追加項目を示す項目を印刷設定定義ファイルに予め定義しておく。そして、追加項目を設定する場合は、上記項目とパラメータを併せて設定することで、Ｖ４プリンタドライバにおいて、印刷設定中の任意の設定に後から選択項目を追加することが可能となる。
【０１１４】
また、任意数の追加項目に対応した項目を印刷設定定義ファイルに予め定義しておく。そして、追加項目を設定したい場合は、上記項目と実態を示すパラメータを併せて設定することで、任意数の項目追加に対応することが可能となる。尚、本実施形態では用紙サイズの追加を例に説明を行ったが、本実施形態は、用紙サイズの追加に限定されるものではなく、任意の設定に対して適用しても良い。
【０１１５】
なお、ここで第２の実施形態の各フローチャートを実際にユーザが使用する形態に合わせながら説明する。
【０１１６】
ユーザが文書を印刷する場合、プリンタエクステンションを使って印刷設定を行う。プリンタエクステンションは、コンフィグレーションモジュールにＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの作成を依頼する。この依頼を受けることで、コンフィグレーションモジュールがＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを作る。さらに、コンフィグレーションモジュールにより作成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを印刷設定編集モジュール２１１に渡すことで図２０の処理が始まる。この段階では、Ｓ２００７においてＮｏと判定されＳ２００８が実行される。
【０１１７】
プリンタエクステンションは、図２０の処理を経て作成されたＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得し（Ｓ２２０１）、図２２のＳ２２０２を実行する。その結果、入力用紙サイズと出力用紙サイズの両者において、Ｌｅｔｔｅｒ、Ａ４、ＵｓｅｒＦｏｒｍ０００１、０００２を選択可能な設定画面がプリンタエクステンションにより表示される。ユーザは、設定画面を使って入力用紙サイズ、出力用紙サイズを選択する。ここでは、入力用紙サイズと出力用紙サイズの両者において、ユーザがＵｓｅｒＦｏｒｍ０００１を設定したケースを想定して説明する。ユーザがＵｓｅｒＦｏｒｍ０００１を設定した場合、プリントチケットの入力用紙サイズに関わる値にはＵｓｅｒＦｏｒｍ０００１が設定される。一方、出力用紙サイズに関わるＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅには、ＵｓｅｒＦｏｒｍ０００１が設定されるが、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅには段落００９７で上述した通りＡｄｄＳｉｚｅが設定される。
【０１１８】
以上のユーザ操作によりプリントチケットが生成された後、再度、プリンタエクステンションはコンフィグレーションモジュールにＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの作成を依頼する。そして、印刷設定編集モジュール２１１による図２０の処理も再度実行される。この場合、プリントチケットのＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅにおけるＵｓｅｒＦｏｒｍ０００１がＰａｇｅＭｅｄｉａＳｉｚｅに存在するので、２００７においてＹｅｓと判定され、Ｓ２００９が実行される。
【０１１９】
続いてユーザが印刷実行を指示した場合、プリンタドライバは、図２３−図２５の処理を実行する。上述したように本実施形態では、ＰａｇｅＯｕｔｐｕｔＭｅｄｉａＳｉｚｅにＡｄｄＳｉｚｅが設定されている。そのため、Ｓ２４０５はＹｅｓと判定される。さらに、ＰａｇｅＡｄｄＭｅｄｉａＳｉｚｅの設定値であるＵｓｅｒＦｏｒｍ０００１はＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのＰａｇｅＭｅｄｉａＳｉｚｅに存在するため、Ｓ２４０６の判定処理においてＹｅｓと判定される。そして、Ｓ２４０９においてＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのＰａｇｅＭｅｄｉａＳｉｚｅの幅、高さが取得され、その幅と高さが、ＰｒｉｎｔＴｉｃｋｅｔのＡｄｄＳｉｚｅのパラメータとして設定される。この処理により、ＡｄｄＳｉｚｅという項目にユーザが所望とするパラメータが設定されることになるため、ユーザが意図した印刷が実行される。なお、上記の処理手順は、一例であり他の順番で実行されても良い。
【０１２０】
［第３の実施形態］
Ｖ４プリンタドライバにおいて、特定機能の選択可能項目を後から追加したいという課題に対して、第１の実施形態及び第２の実施形態で異なる解決方法を提示した。これらはそれぞれ単独でのみ使用可能なものではなく、機能毎に適切な方法を使用することで１つのプリンタドライバ中で併せて使用するようにしても良い。例えば、各実施形態で例示したように、用紙の種類の追加に対しては第１の実施形態の手法を、用紙サイズの追加については第２の実施形態の手法をそれぞれ用いるようにしても良い。
【０１２１】
（その他の実施例）
なお、第１及び第２の実施形態では、一例として用紙に関わる情報を使って説明したが、当然、用紙とは異なる情報に対しても第１及び第２の実施形態を適用することは可能である。
【０１２２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２３】
１０１  情報処理装置：  １０２  印刷装置：  １１１  ＣＰＵ：  １１２  ＲＯＭ：  １１３  ＲＡＭ：  ２０３  プリンタドライバ：  ２１１  印刷設定編集モジュール：  ２１３  印刷設定定義ファイル：  ２１９  コンフィグレーションモジュール
【図１】
2018151690.tif 000003
【図２】
2018151690.tif 000004
【図３】
2018151690.tif 000005
【図４】
2018151690.tif 000006
【図５】
2018151690.tif 000007
【図６】
2018151690.tif 000008
【図７】
2018151690.tif 000009
【図８】
2018151690.tif 000010
【図９】
2018151690.tif 000011
【図１０】
2018151690.tif 000012
【図１１】
2018151690.tif 000013
【図１２】
2018151690.tif 000014
【図１３】
2018151690.tif 000015
【図１４】
2018151690.tif 000016
【図１５】
2018151690.tif 000017
【図１６】
2018151690.tif 000018
【図１７】
2018151690.tif 000019
【図１８】
2018151690.tif 000020
【図１９】
2018151690.tif 000021
【図２０】
2018151690.tif 000022
【図２１】
2018151690.tif 000023
【図２２】
2018151690.tif 000024
【図２３】
2018151690.tif 000025
【図２４】
2018151690.tif 000026
【図２５】
2018151690.tif 000027