(57)【要約】【課題】  利用されるドライバに応じて、適切な機能を提供すること目的とする。【解決手段】  ＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、描画アプリケーションにより生成された描画データを取得するステップと、所定のデバイスにより前記描画データに基づく所定の処理が行われる際の設定を示す情報を含むデータと、前記ドライバの能力を示す情報を含むデータと、のうち少なくともいずれかを取得するステップと、前記設定を示す情報を含むデータと前記ドライバの能力を示す情報を含むデータとのうち少なくともいずれかにおいて、第１情報が含まれているか判定するステップと、第１表示アイテムを提供するステップと、をコンピュータに実行させ、前記第１情報が含まれているか否かに応じて、前記第１表示アイテムを提供するか否かが変わる。【選択図】  図６
2019074906.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する機能を有していないドライバが選択された場合にＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、
描画アプリケーションにより生成された描画データを取得するステップと、
所定のデバイスにより前記描画データに基づく所定の処理が行われる際の設定を示す情報を含むデータと、前記ドライバの能力を示す情報を含むデータと、のうち少なくともいずれかを取得するステップと、
前記設定を示す情報を含むデータと前記ドライバの能力を示す情報を含むデータとのうち少なくともいずれかにおいて、第１情報が含まれているか判定するステップと、
第１表示アイテムを提供するステップと、
をコンピュータに実行させ、
前記第１情報が含まれているか否かに応じて、前記第１表示アイテムを提供するか否かが変わることを特徴とするプログラム。
【請求項２】
前記設定を示す情報を含むデータと前記ドライバの能力を示す情報を含むデータとのうち少なくともいずれか一方に、前記第１情報として前記ドライバがＦａｘドライバであることを示す情報が含まれている場合は、前記第１表示アイテムとしてＦａｘ送信に必要な送信先情報をユーザに入力させるための入力画面を提供し、
前記設定を示す情報を含むデータと前記ドライバの能力を示す情報を含むデータとのうち少なくともいずれか一方に、前記Ｆａｘドライバであることを示す情報が含まれていない場合は、前記入力画面を提供しないことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記設定を示す情報を含むデータは、前記描画アプリケーションから前記描画データと共に出力されるデータであり、
前記入力画面において入力された送信先情報に基づき、前記設定を示す情報を含むデータを編集するステップをさらに実行させることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記ドライバの能力を示す情報を含むデータ内に、前記第１情報として前記ＧＵＩアプリケーションが提供できる所定の機能に関する情報が含まれていない場合、前記第１表示アイテムとして前記所定の機能を指定可能な表示アイテムを提供し、
前記ドライバの能力を示す情報を含むデータ内に、前記所定の機能に関する情報が含まれている場合は、前記表示アイテムを提供しないことを特徴とする請求項１に記載のプログラム。
【請求項５】
前記表示アイテムにおいて指定された情報に基づき、前記描画データを編集するステップをさらに実行させることを特徴とする請求項４に記載のプログラム。
【請求項６】
前記設定を示す情報を含むデータに、前記第１情報として印刷プレビュー画面を表示することを示す情報が含まれている場合は、前記第１表示アイテムとして前記描画データに基づく印刷プレビュー画面を提供し、
前記設定を示す情報を含むデータに、前記印刷プレビュー画面を表示することを示す情報が含まれていない場合は、前記印刷プレビュー画面を提供しないことを特徴とする請求項１に記載のプログラム。
【請求項７】
前記印刷プレビュー画面において指示された情報に基づき、前記設定を示す情報を含むデータを編集するステップをさらに実行させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記設定を示す情報を含むデータは、ＰｒｉｎｔＴｉｃｋｅｔであることを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記設定を示す情報を含むデータは、ＰｒｏｐｅｒｔｙＢａｇ内に含まれるデータであることを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項１０】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する機能を有していないドライバが選択された場合にＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、
前記ドライバの種類に関する情報を取得するステップと、
前記ドライバの種類に関する情報に基づき、前記ドライバがＦａｘドライバである場合に、Ｆａｘ送信に必要な送信先情報をユーザに入力させるための入力画面を提供するステップと、
をコンピュータに実行させるためのプログラム。
【請求項１１】
設定を示す情報を含むデータと、前記ドライバの能力を示す情報を含むデータと、のうち少なくともいずれか一方から前記ドライバの種類に関する情報を取得し、
前記取得された前記ドライバの種類に関する情報に基づき、前記ドライバがＦａｘドライバか判定するステップをさらに実行させることを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記入力画面において入力された送信先情報に基づき、前記設定を示す情報を含むデータを編集するステップをさらに実行させることを特徴とする請求項１０又は１１に記載のプログラム。
【請求項１３】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する機能を有していないプリンタドライバが選択された場合にＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、
描画アプリケーションにより生成された描画データを取得するステップと、
前記ドライバの能力を示す情報を含むデータを取得するステップと、
前記ドライバの能力を示す情報を含むデータに基づき、前記ドライバの能力を示す情報に含まれていない機能であり且つ前記ＧＵＩアプリケーションが提供可能な機能である所定の機能の指定が可能な表示アイテムを提供するステップと、
をコンピュータに実行させるためのプログラム。
【請求項１４】
前記ドライバの能力を示す情報を含むデータと、設定を示す情報を含むデータと、に基づき、前記設定を示す情報に、前記所定の機能が含まれているかを判定するステップをさらに備え、
前記設定を示す情報に、前記所定の機能が含まれている場合、前記表示アイテムを提供することを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記表示アイテムにおいて指定された情報に基づき、前記描画データを編集するステップをさらに実行させるための請求項１３又は１４に記載のプログラム。
【請求項１６】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する機能を有していないプリンタドライバが選択された場合にＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、
描画アプリケーションにより生成された描画データを取得するステップと、
印刷プレビュー画面を表示することが設定されているかを判定するステップと、
前記印刷プレビュー画面を表示することが設定されている場合に、前記描画データに基づく印刷プレビュー画面を提供するステップと、
をコンピュータに実行させるためのプログラム。
【請求項１７】
前記印刷プレビュー画面において指示された情報に基づき、前記アプリケーションから前記描画データと共に出力される、設定を示す情報を含むデータを編集するステップをさらに実行させることを特徴とする請求項１５に記載のプログラム。
【請求項１８】
印刷要求に応じて前記描画アプリケーションから前記描画データが出力される前に表示される設定画面において、前記印刷プレビュー画面を表示することが指示され、
印刷要求に応じて前記描画アプリケーションから前記描画データが出力された後に、前記印刷プレビュー画面が提供されることを特徴とする請求項１６又は１７に記載のプログラム。
【請求項１９】
前記ＧＵＩアプリケーションは、前記ドライバより前に描画データを取得することを特徴とする請求項１乃至１８のいずれか１項に記載のプログラム。
【請求項２０】
前記ドライバのインストールに応じて、インターネットを介してＯＳによりＭｅｔａｄａｔａが取得され、
前記ＧＵＩアプリケーションは、前記取得されたＭｅｔａｄａｔａ内の記述に基づき、インターネットを介してアプリケーション配布システムから取得されることを特徴とする請求項１乃至１９のいずれか１項に記載のプログラム。
【請求項２１】
前記ＧＵＩアプリケーションは、前記Ｍｅｔａｄａｔａ内に記述されたデバイスと関連付けられることを特徴とする請求項２０に記載のプログラム。
【請求項２２】
前記ＧＵＩアプリケーションがインストールされた情報処理装置には、前記Ｍｅｔａｄａｔａに記載されたデバイスに対応する複数のドライバのうち、少なくとも１つのドライバがインストールされていることを特徴とする請求項２０又は２１に記載のプログラム。
【請求項２３】
前記ＧＵＩを提供する機能を有していないドライバが選択された場合は、ＯＳの指示に基づき前記ＧＵＩアプリケーションはＧＵＩを提供し、前記ＧＵＩを提供する機能を有するドライバが選択された場合は、前記ＧＵＩアプリケーションは起動されないことを特徴とする請求項１乃至２２のいずれか１項に記載のプログラム。
【請求項２４】
前記所定の機能は、前記スタンプ機能とページ割り付け機能のうち少なくともいずれかであることを特徴とする請求項４又は１３に記載のプログラム。
【請求項２５】
前記ＧＵＩを提供する機能を有していないドライバは、Ｖ４プリンタドライバであることを特徴とする請求項１乃至２４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムに関する。特に、ＧＵＩを提供するアプリケーションのプログラムに関する。
【背景技術】
【０００２】
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷を行う構成が一般に知られる。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム（ＯＳ）がインストールされており、プリンタドライバはそのＯＳの規定する仕様に従って構成され、ＯＳから呼び出されて動作する。印刷装置を提供するベンダは、ＯＳの仕様に適合するプリンタドライバを提供することにより、そのＯＳを用いてプリンタに印刷を指示する手段を提供することができる。ＯＳとしてＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８より前のバージョンを利用する場合、プリンタドライバは、Ｖ３プリンタドライバと呼ばれるアーキテクチャで構成される。Ｖ３プリンタドライバは、ユーザからの印刷要求が発生したタイミングでグラフィカルユーザインタフェース（以下、「ユーザインタフェース」又は「ＧＵＩ」とも呼ぶ）を表示し、何らかの操作をユーザに促すような機能を提供することができる。例えば、印刷要求が発生すると、Ｖ３プリンタドライバの構成物であるコンフィグレーションモジュールの規定のイベントが呼び出されるため、コンフィグレーションモジュールは、そのイベント処理の中でユーザインタフェースを表示することが可能である。
【０００３】
近年、Ｗｉｎｄｏｗｓ（登録商標）において、Ｖ４プリンタドライバと呼ばれる新しいアーキテクチャが登場した。Ｖ４プリンタドライバは、セキュリティ性が重視されているため、プリンタドライバそのもののカスタマイズ性は低下している。例えば、前述のコンフィグレーションモジュールはＯＳにより提供され、ベンダは、その動作をカスタマイズする設定ファイルやスクリプトファイルのみを提供可能である。このようなカスタマイズ性の低下を補うため、印刷装置を提供するベンダは、プリンタドライバの機能を補助するための専用のアプリケーションを提供することができる。このアプリケーションはＷｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐ（ＷＳＤＡ）と呼ばれる。印刷装置を提供するベンダは、ＷＳＤＡを提供することで、特定のアプリケーションから印刷する際の印刷設定画面をカスタマイズすることができる（特許文献１）。
【０００４】
また、Ｖ４プリンタドライバは、１つのプリンタドライバで複数の印刷装置をサポートするクラスドライバとして構成可能である。近年、ＯＳが複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバを提供している。このような標準ドライバは、ＯＳのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続するだけで利用可能である。よって、印刷装置に適したプリンタドライバを別途インストールする必要が無く、利便性が高い。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−３３０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、Ｖ４プリンタドライバは、セキュリティ性や利便性が向上している一方で、ＧＵＩを提供する機能を有していない等、プリンタドライバそのもののカスタマイズ性は低下している。よって、特許文献１のように、ＷＳＤＡを用いることにより、Ｖ４プリンタドライバのようにＧＵＩを提供する機能を有していないドライバが用いられる場合でも、印刷設定画面等のＧＵＩを提供することができる。しかしながら、従来のＷＳＤＡには、依然として機能制限があった。本発明は、このような課題に鑑み、利用されるドライバに応じて、適切な機能を提供すること目的とする。
【課題を解決するための手段】
【０００７】
上述のような課題を解決するため、本発明のプログラムの一態様は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する機能を有していないドライバが選択された場合にＧＵＩを提供することが可能なＧＵＩアプリケーションのプログラムであって、描画アプリケーションにより生成された描画データを取得するステップと、所定のデバイスにより前記描画データに基づく所定の処理が行われる際の設定を示す情報を含むデータと、前記ドライバの能力を示す情報を含むデータと、のうち少なくともいずれかを取得するステップと、前記設定を示す情報を含むデータと前記ドライバの能力を示す情報を含むデータとのうち少なくともいずれかにおいて、第１情報が含まれているか判定するステップと、第１表示アイテムを提供するステップと、をコンピュータに実行させ、前記第１情報が含まれているか否かに応じて、前記第１表示アイテムを提供するか否かが変わる。
【発明の効果】
【０００８】
本発明により、利用されるドライバに応じて、適切な機能を提供することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】印刷システムのハードウェア構成を示すブロック図。
【図２】ドライバ印刷システムのブロック構成図。
【図３】Ｍｅｔａｄａｔａの対応デバイス情報の記述例。
【図４】Ｍｅｔａｄａｔａの印刷時起動アプリケーションの関連付け情報の記述例。
【図５】本印刷システムで構築される印刷環境を説明するためのブロック図。
【図６】印刷時起動アプリケーションのセットアップ処理のフローチャート。
【図７】印刷時起動アプリケーションのＵＩ処理のフローチャート。
【図８】印刷時起動アプリケーションの編集及び終了処理のフローチャート。
【図９】ＦａｘドライバのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例。
【図１０】機種別プリンタドライバのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例。
【図１１】共通ドライバのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例。
【図１２】標準ドライバのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例。
【図１３】機種別プリンタドライバのＰｒｉｎｔＴｉｃｋｅｔの例。
【図１４】ＦａｘドライバのＰｒｉｎｔＴｉｃｋｅｔの例。
【図１５】印刷時起動アプリケーションのサポートする拡張機能の例。
【図１６】Ｌｏｃａｌ  Ｓｔｏｒａｇｅに格納される情報の例。
【図１７】機種別プリンタドライバ接続時のＷＳＤＡのユーザインタフェースの模式図。
【図１８】標準プリンタドライバ接続時のＷＳＤＡのユーザインタフェースの模式図。
【図１９】Ｆａｘドライバ接続時の印刷時起動アプリケーションのユーザインタフェースの模式図。
【図２０】標準プリンタドライバ接続時の印刷時起動アプリケーションのユーザインタフェースの模式図。
【図２１】印機種別プリンタドライバ接続時の刷時起動アプリケーションのユーザインタフェースの模式図。
【図２２】印刷指示を行う場合の画面を説明するための模式図。
【発明を実施するための形態】
【００１０】
本発明の実施形態では、ＧＵＩアプリケーションにより、ドライバに応じた適切な機能を提供するための例を説明する。このＧＵＩアプリケーションは、Ｖ４プリンタドライバのようにＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（以下、「ユーザインタフェース」又は「ＧＵＩ」とも呼ぶ）を提供する機能を有していないドライバが用いられる場合に起動し、ＧＵＩを提供する。
【００１１】
なお、Ｖ４プリンタドライバを拡張する従来のＷｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐ（ＷＳＤＡ）も、ＧＵＩを提供できたが、以下の機能制限があった。具体的には、ユーザ指示によって任意に起動されるものであるため、印刷等の要求時に常にユーザインタフェースを表示したいユースケースには不適合である。さらに、従来のＷＳＤＡは印刷設定を変更することを目的に構成されたアプリケーションであるため、印刷要求を発行した描画アプリケーションが生成する描画データ（紙面上に印刷を形成する元となる画像やテキスト情報等）にアクセスすることができない。よって、描画データを表示したり編集したりすることはできない。従って、従来のＷＳＤＡは、Ｖ４プリンタドライバでは、ユーザからの印刷要求が発生したタイミングで、ユーザインタフェースを表示し、ユーザ操作を受け付けて、それを印刷処理に反映させるような機能の提供は困難であった。
【００１２】
また、従来のＷＳＤＡは、接続されたプリンタドライバの能力を示す情報に従って、それを指定するためのユーザインタフェースを提供する。仮にＷＳＤＡがプリンタドライバの能力情報に含まれない機能指示を印刷設定に含めたとしても、プリンタドライバにとっては未知の情報であるため有効に機能しない。さらに、前述の通り、従来のＷＳＤＡは描画データにアクセスできないため、ＷＳＤＡ自身が機能指示を受けて描画データを編集することもできない。従って、前述のようなＯＳと共に提供されるクラスドライバに対して印刷装置を提供するベンダがＷＳＤＡを提供したとしても、ベンダが独自に機能を拡張することはできなかった。
【００１３】
本発明では、上記した機能制限を受けないアプリケーションを用い、ドライバに応じた適切な機能を提供することができる。以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１４】
＜＜実施形態１＞＞
＜印刷システムのハードウェア構成＞
図１は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ１０１は、情報処理装置の一例であり、入力インタフェース１１０、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、外部記憶装置１１４、出力インタフェース１１５、及び入出力インタフェース１１６を有する。また、入力インタフェース１１０には、キーボード１１８、ポインティングデバイス１１７などの入力デバイスが接続され、出力インタフェース１１５には、表示部１１９などの表示デバイスが接続されている。
【００１５】
ＲＯＭ１１２には、初期化プログラムが格納され、外部記憶装置１１４には、アプリケーションプログラム群、オペレーティングシステム（ＯＳ）、プリンタドライバ、その他の各種のデータが格納されている。ＲＡＭ１１３は、外部記憶装置１１４にストアされる各種のプログラムの実行の際のワークメモリ等として使用される。
【００１６】
なお、本実施形態では、ＣＰＵ１１１が、ＲＯＭ１１２に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ１０１における後述の機能及び後述するフローチャートに係る処理が実現される。デバイスである印刷装置１０２は、入出力インタフェース１１６を介して、ホストコンピュータ１０１と接続されている。ここでは、ホストコンピュータ１０１と印刷装置１０２が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。
【００１７】
＜ドライバ印刷システムのブロック構成＞
図２は、ドライバ印刷システムのブロック構成図である。ここでは、ＯＳとしてＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８以降のＯＳを搭載したホストコンピュータ１０１を用い、Ｖ４プリンタドライバと呼ばれるアーキテクチャで動作する印刷システムを前提として説明する。
【００１８】
ユーザがＵＷＰ（Ｕｎｉｖｅｒｓａｌ  Ｗｉｎｄｏｗｓ  Ｐｌａｔｆｏｒｍ）アプリケーション２０２から印刷を指示すると、ＯＳの機能である不図示のＭＰＤ（Ｍｏｄｅｒｎ  Ｐｒｉｎｔ  Ｄｉａｌｏｇ）により所定の画面が表示される。ＵＷＰアプリケーション２０２は、描画アプリケーションである。ＭＰＤにより提供される画面は、印刷結果を画面上で確認できる印刷プレビュー機能と、基本的な印刷設定をユーザが選択可能な機能と、を有する。図２２に具体的な例を示す。図２２（Ａ）では、描画アプリケーションであるＵＷＰアプリケーションが提供する画面２２０１において、印刷の指示がなされると、ＯＳのＭＰＤにより図２２（Ｂ）に示す設定画面２２０２が表示される。この設定画面２２０２において、ユーザは、使用するドライバの選択を行うことができる。さらに、設定画面２２０２において、基本的な印刷設定を指示することもできる。
【００１９】
さらに、ＭＰＤは、ユーザからの指示を受け、詳細な印刷設定をユーザが選択可能なＷｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ（以後、ＷＳＤＡ）２０７を起動する。具体的には、図２２（Ｂ）の設定画面２２０２において「その他の設定」ボタン２２０３が指定されると、図２２（Ｃ）に示すＷＳＤＡが提供する詳細設定画面２２０４が表示される。この詳細設定画面２２０４でユーザは更に詳細な印刷設定を指示することができる。ＷＳＤＡ２０７は印刷装置を提供するベンダ（以後、プリンタベンダ）が提供するプリンタドライバ２０１の機能を拡張するためのアプリケーションである。なお、ＷＳＤＡが提供する詳細設定画面２２０４内に表示されている原稿画像のように見える画像は、ＷＳＤＡが元々備えているサンプル画像である。よって、ＵＷＰアプリケーションにより生成された描画データに基づくプレビュー画像ではなく、描画データが変わっても変化しないサンプル画像である。ＷＳＤＡ２０７は、ＭＰＤから印刷設定を示す情報を受け取り、ユーザ操作に応じてその設定情報を変更し、ＭＰＤに返却する。ここで、印刷設定を示す情報は、ＯＳの定義する書式に基づきＸＭＬ形式で記述されたものであり、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるデータ内に含まれる。ＷＳＤＡ２０７はＰｒｉｎｔＴｉｃｋｅｔを参照及び変更することができるが、描画データ（紙面上に印刷を形成する元となる画像やテキスト情報等）を参照することはできない。また、ＷＳＤＡ２０７は、ＭＰＤが提供する印刷設定画面２２０２上でユーザがボタン２２０３を指示した場合にのみ起動されるものであって、印刷設定時に必ず起動されるわけではない。
【００２０】
なお、ＰｒｉｎｔＴｉｃｋｅｔは、選択されたプリンタドライバ２０１のコンフィグレーションモジュール２０８によって生成される。ＷＳＤＡ２０７は、コンフィグレーションモジュール２０８を呼び出すことで、ユーザの指定を反映したＰｒｉｎｔＴｉｃｋｅｔを生成する。また、コンフィグレーションモジュール２０８は、選択されたプリンタドライバ２０１で設定可能な機能と選択項目をＯＳの定義する書式に基づきＸＭＬ形式で記述したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを生成する機能も有する。ＷＳＤＡ２０７や後述するＰＥＸ２０９は、このＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに記述された情報に基づきユーザインタフェースを提供する。また、後述する印刷時起動アプリケーション２０５は、ＯＳの機能を介して、コンフィグレーションモジュール２０８が生成したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得することができる。
【００２１】
なお、図２では、コンフィギュレーションモジュール２０８をプリンタドライバ２０１の機能として記載しているが、コンフィギュレーションモジュール２０８は元々ＯＳの構成物である。ただし、Ｖ４プリンタドライバにおいては、ドライバ自体がコンフィグレーションモジュールを備えていないためＯＳの構成物であるコンフィグレーションモジュール２０８をドライバのコンフィグレーションモジュールとして利用する。プリンタベンダは、プリンタドライバ２０１に含まれる不図示のＧＰＤやＪａｖａ（登録商標）ｓｃｒｉｐｔ  Ｃｏｎｓｔｒａｉｎｔによって、コンフィグレーションモジュール２０８の動作をカスタマイズできる。
【００２２】
図２２で示した印刷設定の後に、ＯＳのＭＰＤが提供する設定画面２２０２において、「印刷」ボタンが指示されると、印刷要求がなされる。ＭＰＤ上でユーザにより印刷が指示されると、ＭＰＤから要求を受け、ＵＷＰアプリケーション２０２は印刷に必要な印刷データを生成する。この印刷データは、ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以後、ＸＰＳ）という書式で記述されたＸＰＳ文書である。本実施形態の印刷データは、前述のＰｒｉｎｔＴｉｃｋｅｔと、描画アプリケーションにより生成された描画データと、を有する。
【００２３】
ＵＷＰアプリケーション２０２が生成したＸＰＳ文書は、ＯＳのコンポーネントである印刷時起動アプリランチャー２０４に渡される。印刷時起動アプリランチャー２０４は、プリンタドライバ２０１に関連付けられた印刷時起動アプリケーション２０５が存在し、かつ起動するように構成されていると判断した場合、印刷時起動アプリケーション２０５を起動する。なお、該当する印刷時起動アプリケーション２０５が存在しない場合は、印刷時起動アプリランチャー２０４はＸＰＳ文書をスプールファイル２０６として格納する。
【００２４】
印刷時起動アプリケーション２０５は、ＷＳＤＡ２０７と同様、プリンタベンダが提供するプリンタドライバ２０１の機能を拡張するためのアプリケーションである。つまり、Ｖ４ドライバのようにＧＵＩを提供する機能を有していないドライバが選択された場合に、ＯＳの指示に基づき、ＧＵＩを提供することができるＧＵＩアプリケーションである。なお、ＧＵＩを提供する機能を有しているＶ３ドライバが選択された場合は、ＯＳは印刷時起動アプリランチャー２０４を起動せず、描画アプリケーションが生成したＸＰＳ文書をスプールファイル２０６として格納する。つまり、Ｖ３ドライバが選択された場合は、印刷時起動アプリケーション２０５は起動せず、ＧＵＩを提供することもない。。
【００２５】
なお、ＷＳＤＡ２０７と印刷時起動アプリケーション２０５は、どちらも、プリンタドライバ２０１の構成物の１つとして提供されるものではなく、単独のアプリケーションである。また、ＷＳＤＡ２０７と印刷時起動アプリケーション２０５とは、合わせて１つのアプリケーションとして構成可能であるが、便宜上、ここでは、従来のＷＳＤＡとの差異を説明するため、別々のアプリケーションとして説明する。
【００２６】
ＷＳＤＡ２０７と印刷時起動アプリケーション２０５は、通常、ＯＳが、不図示のアプリケーション配布システム（Ｍｉｃｒｏｓｏｆｔ（登録商標）が管理するサーバ）からインターネットを経由して取得する。さらに、プリンタベンダが、事前にＭｉｃｒｏｓｏｆｔ（登録商標）が管理するＭｅｔａｄａｔａ用サーバに、後述のＭｅｔａｄａｔａを提供することで、適切なＷＳＤＡ２０７及び印刷時起動アプリケーション２０５が自動的にインストールされる。具体的には、デバイスである印刷装置１０２が入出力インタフェース１１６に接続されると、Ｍｅｔａｄａｔａに基づき、印刷装置１０２に関連付けられたＷＳＤＡ２０７及び印刷時起動アプリケーション２０５が自動的にインストールされる。
【００２７】
印刷時起動アプリケーション２０５は、ユーザから操作指示を受け付けるユーザインタフェースを表示することができる。また、印刷データであるＸＰＳ文書を受け取り、ＸＰＳ文書内のＰｒｉｎｔＴｉｃｋｅｔ及び描画データを編集することができる。印刷時起動アプリケーション２０５が必要に応じて編集したＸＰＳ文書を出力すると、ＯＳはそれをスプールファイル２０６として格納する。スプールファイル２０６が格納されると、フィルタパイプラインマネージャ２１０に処理が渡される。フィルタパイプラインマネージャ２１０は、複数のフィルタを通すことで印刷が行われる仕組みで、不図示のコンフィグレーションファイルでフィルタの数や順番が制御される。本実施形態におけるフィルタ群は、レイアウト処理部であるレイアウトフィルタ２１１と、印刷コマンド変換部である印刷コマンドフィルタ２１２とを含んで構成される。
【００２８】
レイアウトフィルタ２１１は、ＸＰＳスプールファイル２０６に格納されたＸＰＳ文書を入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳ文書を出力する機能を有する。レイアウト処理とは、例えば複数のページを一つの用紙面に印刷する割り付け印刷や、一つのページを複数の用紙面に印刷するポスター印刷を含む。
【００２９】
印刷コマンドフィルタ２１２は、レイアウトフィルタ２１１の出力を入力とし、印刷設定情報に従い、ＸＰＳ文書を印刷装置１０２が解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ２１２が入力のＸＰＳ文書を一度イメージデータに変換する場合、印刷コマンドフィルタ２１２は一般的にレンダフィルタと呼ばれる。レンダフィルタは、インクジェットプリンタに代表される廉価なラスタプリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルタ２１２がレンダフィルタとして動作する場合は、入力のＸＰＳ文書を一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタプリンタが解釈可能な印刷コマンドに変換される。
【００３０】
ページプリンタに代表される高機能なプリンタにおいて、印刷装置１０２が解釈できる印刷コマンドの種類にＸＰＳが含まれる場合、印刷コマンドフィルタ２１２は、入力のＸＰＳ文書を編集してＸＰＳ文書を出力する。印刷コマンドフィルタ２１２にて処理する必要がなければ、入力のＸＰＳ文書をそのまま出力しても良いし、若しくは、印刷コマンドフィルタ２１２はプリンタドライバ２０１に含められなくても良い。以上が、ＵＷＰアプリケーション２０２からの印刷の基本処理である。
【００３１】
Ｗｉｎ３２アプリケーション等の描画アプリケーションであるＬｅｇａｃｙアプリケーション２０３は、印刷設定を設定するためにＰｒｉｎｔｅｒ  Ｅｘｔｅｎｓｉｏｎｓ２０９（以後、ＰＥＸ）を起動することができる。ＰＥＸは、コンフィグレーションモジュール２０８を経由して起動され、ユーザが印刷設定を指定可能なユーザインタフェースを提供することができる。ＰＥＸ２０９は、プリンタドライバ２０１と共にドライバパッケージ内の構成物として提供しても良いし、別で配布しても良い。ＷＳＤＡ２０７同様、ＰＥＸ２０９はＰｒｉｎｔＴｉｃｋｅｔを参照及び変更することができるが、描画データ（紙面上に印刷を形成する元となる画像やテキスト情報等）を参照することはできない。また、ＰＥＸ２０９は、Ｌｅｇａｃｙアプリケーション２０３上でユーザが指示した場合にのみ起動されるものであって、印刷時に必ず起動されるわけではない。Ｌｅｇａｃｙアプリケーション２０３で印刷が指示されると、Ｌｅｇａｃｙアプリケーション２０３は印刷データとしてＸＰＳ文書を生成する。以後の流れは、ＵＷＰアプリケーション２０２からの印刷時と同等であるため省略する。
【００３２】
なお、本構成におけるプリンタドライバ２０１は、Ｆａｘドライバとして機能しても良い。この場合、プリンタドライバ２０１は、印刷装置が解釈可能な印刷コマンドではなく、印刷装置にＦａｘ送信を要求するためのＦａｘコマンドを生成する。以降の説明においても、便宜上、Ｆａｘドライバの場合であっても、プリンタドライバ２０１として記載し、Ｆａｘ指示の場合であっても、印刷指示として記載する場合もある。
【００３３】
＜印刷装置と印刷時起動アプリケーションを関連付けるＭｅｔａｄａｔａ＞
図３は、印刷装置１０２と印刷時起動アプリケーション２０５を関連付けるＭｅｔａｄａｔａ３０１において、対応デバイス情報を示す記述の一例である。Ｍｅｔａｄａｔａ３０１には、Ｍｅｔａｄａｔａ３０１を利用する印刷装置１０２の一覧を示すＨａｒｄｗａｒｅＩＤＬｉｓｔタグ３０２が記述される。項目３０３は、ＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤを持つ印刷装置１０２がこのＭｅｔａｄａｔａを利用することを示している。同様に、項目３０４は、ＭＦＰ２＿ｉｊｋｌというＨａｒｄｗａｒｅ  ＩＤを持つ印刷装置１０２がＭｅｔａｄａｔａ３０１を利用することを示している。このように、１つのＭｅｔａｄａｔａに、そのＭｅｔａｄａｔａを利用するデバイスを複数列挙することができる。Ｍｅｔａｄａｔａ３０１には、デバイスとして２つの印刷装置が指定されているが、１つであっても、３つ以上であっても構わない。なお、Ｈａｒｄｗａｒｅ  ＩＤとは、印刷装置１０２から返却される、印刷装置１０２を一意に特定するための識別情報である。
【００３４】
図４は、デバイスである印刷装置１０２と、ＧＵＩアプリケーションである印刷時起動アプリケーション２０５と、を関連付けるＭｅｔａｄａｔａ３０１において、関連付ける印刷時起動アプリケーション２０５を示す記述の一例である。図４のＭｅｔａｄａｔａ内には、Ｍｅｔａｄａｔａ３０１が関連付ける印刷時起動アプリケーション２０５を示すＤｅｖｉｃｅＣｏｍｐａｎｉｏｎＡｐｐｌｉｃａｔｉｏｎｓタグ４０１が記述されている。項目４０２は、１２３４５６７８−ａｂｃｄ−ｅｆｇｈ−ｉｊｋｌ−１２３４５６７８９０１２というプリンタベンダが提供する、１２３４ａｂｃｄ．ＭＦＰＵｔｉｌｉｔｙという印刷時起動アプリケーション２０５を、ＨａｒｄｗａｒｅＩＤＬｉｓｔタグ３０２に列挙された印刷装置１０２に関連付けることを示す。
【００３５】
ホストコンピュータ１０１に印刷装置１０２が接続されると、ＯＳは所定のサーバ（Ｍｉｃｒｏｓｏｆｔ（登録商標）が管理するＭｅｔａｄａｔａ用サーバ）に登録されているＭｅｔａｄａｔａを検索する。そして、ＨａｒｄｗａｒｅＩＤＬｉｓｔに、接続された印刷装置１０２の返却するＨａｒｄｗａｒｅ  ＩＤが記述されたＭｅｔａｄａｔａを見つけると、それを印刷装置１０２の外部記憶装置１１４に保存する。さらに、ＯＳは、保存したＭｅｔａｄａｔａのＤｅｖｉｃｅＣｏｍｐａｎｉｏｎＡｐｐｌｉｃａｔｉｏｎタグ４０１に記述された印刷時起動アプリケーション２０５を不図示のアプリケーション配布システムから取得する。そして、外部記憶装置１１４に印刷時起動アプリケーション２０５をインストールし、印刷装置１０２と関連付ける。これにより、印刷装置１０２に対してプリンタドライバ２０１を経由して印刷要求が発生した際に、関連付けられている印刷時起動アプリケーション２０５が起動される。
【００３６】
このＭｅｔａｄａｔａはプリンタベンダにより提供されるものである。プリンタベンダは、このＭｅｔａｄａｔａを事前にＭｉｃｒｏｓｏｆｔ（登録商標）が管理するＭｅｔａｄａｔａ用サーバに提供することにより、ユーザ環境にプリンタドライバ２０１がインストールされた際に、接続されたデバイスに最適な印刷時起動アプリケーション２０５を自動的にインストールするように制御することができる。なお、ユーザの指示により、１つのデバイスに対して複数のプリンタドライバ２０１がインストールされることもあり得る。
【００３７】
＜Ｍｅｔａｄａｔａ３０１で構築される印刷環境＞
図５は、Ｍｅｔａｄａｔａ３０１で構築される印刷環境の一例を示す図である。印刷装置１０２であるＭＦＰ５０１は、１つの装置中に、印刷機能部５０４と、受け付けた印刷要求をＦａｘとして送信するＦａｘ機能部５０５を有する。印刷装置部５０４は、ＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤを有する。Ｆａｘ機能部５０５は、ＭＦＰ１＿ｅｆｇｈというＨａｒｄｗａｒｅ  ＩＤを有する。Ｆａｘ機能部５０５のＨａｒｄｗａｒｅ  ＩＤは、印刷装置部５０４と同じＨａｒｄｗａｒｅ  ＩＤとして、コマンドによって処理を切り替えるよう構成することもできる。
【００３８】
ＭＦＰ５０１をホストコンピュータに接続すると、ＯＳは、ＨａｒｄｗａｒｅＩＤＬｉｓｔタグにＭＦＰ１＿ａｂｃｄというＨａｒｄｗａｒｅ  ＩＤが記述されているＭｅｔａｄａｔａ３０１を取得する。
【００３９】
さらに、Ｍｅｔａｄａｔａ３０１に記述されているＭＦＰＵｔｉｌｉｔｙ５０６という印刷時起動アプリケーション２０５を取得し、ＭＦＰ５０１と関連付ける。なお、Ｆａｘ機能部５０５は印刷装置部５０４と異なるＨａｒｄｗａｒｅ  ＩＤを有しているが、ＯＳは、印刷装置１０２から取得した情報を元に、これら２つの処理部を同一のデバイス（コンポジットデバイス）として判断する。従って、Ｆａｘ機能部５０５についても、印刷装置部５０４と同一のＭｅｔａｄａｔａ３０１並びにＭＦＰＵｔｉｌｉｔｙ５０６が関連付けられる。なお、Ｍｅｔａｄａｔａ３０１のＨａｒｄｗａｒｅＩＤＬｉｓｔ３０２に、Ｆａｘ機能部５０５のＨａｒｄｗａｒｅ  ＩＤであるＭＦＰ１＿ｅｆｇｈを記述するよう構成しても良い。
【００４０】
ＭＦＰ５０１の印刷装置部５０４用にインストールされるプリンタドライバ２０１は複数種類存在しうる。つまり、１つのデバイスであるＭＦＰ５０１に対応するドライバとして、複数のドライバが存在しうる。機種別プリンタドライバ５０８は、プリンタベンダにより提供されるＭＦＰ５０１の印刷装置部５０４の専用プリンタドライバである。共通プリンタドライバ５０９は、プリンタベンダにより提供される、該プリンタベンダの複数種類の印刷装置１０２を処理可能な、共通プリンタドライバである。そして、複数ベンダにより提供される印刷装置に共通して利用可能なクラスドライバである標準プリンタドライバ５１０は、ＯＳと共にＯＳのパッケージ内の機能の１つとして提供されるプリンタドライバである。標準プリンタドライバ５１０は、標準化された印刷方法を利用することで、幅広い印刷装置１０２を処理可能なプリンタドライバである。
【００４１】
このように、ある印刷装置１０２用に利用可能なプリンタドライバ２０１は複数存在し、利用されるプリンタドライバ２０１は、インターネット接続状態やＯＳの種類、利用環境等に応じて異なる。通常、ＯＳは、プリンタドライバのバージョン情報等を参照して、利用可能なプリンタドライバ２０１のうち、もっとも機能が高く新しいプリンタドライバ２０１を自動的に選定しインストールする。なお、プリンタドライバ２０１には、Ｈａｒｄｗａｒｅ  ＩＤや、Ｃｏｍｐａｔｉｂｌｅ  ＩＤと呼ばれる装置を特定するための情報が含まれている。ホストコンピュータ１０１に印刷装置１０２が接続されると、ＯＳは印刷装置１０２からこれらのＩＤ情報を取得し、該当するＩＤを有するプリンタドライバ２０１を探索し、インストールする。
【００４２】
ＭＦＰ５０１のＦＡＸ機能部５０５用には、ＭＦＰ１＿ｅｆｇｈというＨａｒｄｗａｒｅ  ＩＤを含むＦａｘドライバ５１１がインストールされる。また、ホストコンピュータ１０１に、ＭＦＰ２＿ｉｊｋｌというＨａｒｄｗａｒｅ  ＩＤを持つＭＦＰ５０２が接続された場合、このＭＦＰ５０２にはＭＦＰＵｔｉｌｉｔｙ５０６が関連付けられる。これは、図３の３０４に示されるように、Ｍｅｔａｄａｔａ３０１の対象とするＨａｒｄｗａｒｅＩＤＬｉｓｔに、ＭＦＰ２＿ｉｊｋｌが含まれているためである。ＭＦＰ３＿ｍｎｏｐというＨａｒｄｗａｒｅ  ＩＤを持つＭＦＰ５０３に対しては、Ｍｅｔａｄａｔａ３０１とは異なる不図示のＭｅｔａｄａｔａの指定に伴って、ＭＦＰＵｔｉｌｉｔｙ５０６とは異なる、ＭＦＰＵｔｉｌｉｔｙ５０７が関連付けられる。
【００４３】
以上のように、印刷装置１０２を提供するプリンタベンダは、Ｍｅｔａｄａｔａを提供することで、それぞれの印刷装置１０２に対してどの印刷時起動アプリケーション２０５を提供するかを制御することができる。例えば、プリンタベンダは、複数の印刷装置１０２で共通して一つの印刷時起動アプリケーション２０５を提供することもできるし、それぞれ異なる印刷時起動アプリケーション２０５を提供することもできる。しかしながら、印刷装置１０２に関連付けられたプリンタドライバ２０１の種類に応じて、印刷時起動アプリケーション２０５を提供し分けることはできない。図５においては、ＭＦＰ５０１で利用されるプリンタドライバ２０１はドライバ５０８からドライバ５１１の４種類存在するが、関連付けられる印刷時起動アプリケーション２０５は常に１種類である。
【００４４】
なお、ＷＳＤＡ２０７についても、印刷時起動アプリケーション２０５と同等の仕組みで印刷装置１０２やプリンタドライバ２０１と関連付けられる。従って、関連付けに関する制約等については、印刷時起動アプリケーション２０５と同等である。
【００４５】
＜印刷時起動アプリケーションのセットアップ処理＞
図６は、本印刷システムにおける印刷時起動アプリケーション２０５のセットアップ処理のうち主要な処理フローを示した図である。本処理フローは、例えば図５のＭＦＰＵｔｉｌｉｔｙ５０６のような構成下にある印刷時起動アプリケーション２０５の処理の一例である。以降、印刷時起動アプリケーション２０５を、各処理の主体として説明することもあるが、実際には、対応するプログラムをＣＰＵ１１１が実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで印刷時起動アプリケーション２０５の主要な処理を、便宜的にわかりやすく示したフローである。
【００４６】
印刷時起動アプリランチャー２０４は、印刷要求元の描画アプリケーションからＸＰＳ文書を受け取ると、印刷装置１０２に関連付けられた印刷時起動アプリケーション２０５の初期化処理を呼び出す。なお、前述の図２２にて説明した印刷設定の後、ＯＳが提供する設定画面２２０２において「印刷」ボタンが指示されると、印刷要求がなされ、描画アプリケーションからＸＰＳ文書が出力される。
【００４７】
印刷時起動アプリケーション２０５は、初期化処理において、図６に示されるセットアップ処理と、後述する図８に示される編集及び終了処理を、ＯＳの規定するイベントハンドラとして登録する。印刷時起動アプリケーション２０５が初期化処理を終了すると、ＯＳは、規定のイベントハンドラとして登録された印刷時起動アプリケーション２０５のセットアップ処理を実行する。図６はそのセットアップ処理を示すものである。
【００４８】
まず、印刷時起動アプリケーション２０５は、ＸＰＳ文書中に格納されたＰｒｉｎｔＴｉｃｋｅｔを取得する（Ｓ６０１）。ＰｒｉｎｔＴｉｃｋｅｔは、図２で説明したとおり、印刷設定を示す情報を含むデータであり、ユーザにより指示された印刷設定に基づき、コンフィグレーションモジュール２０８によって生成される。ＰｒｉｎｔＴｉｃｋｅｔは、ＯＳの所定のＡＰＩを呼び出すことでＸＰＳ文書中から取得することができる。
【００４９】
次に、印刷時起動アプリケーション２０５は、プリンタドライバ２０１の能力を示す情報を含むデータであるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する。そして、その中の名前空間を確認することで、アプリケーションから印刷要求を受けたプリンタドライバ２０１の種別を判定する（Ｓ６０２）。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの名前空間と判定方法の詳細については後述する。
【００５０】
なお、通常であれば、ＰｒｉｎｔＴｉｃｋｅｔにもＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓと同等の名前空間情報が格納されているため、Ｓ６０２の判定はＰｒｉｎｔＴｉｃｋｅｔを利用しても良い。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの取得は時間を要するため、構成によってはＰｒｉｎｔＴｉｃｋｅｔを利用することにより処理時間を短縮することができる。また、プリンタドライバ２０１が、不図示のＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ等に判定のための情報を格納してもよい。印刷時起動アプリケーション２０５は、そのＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇに格納した情報を取得し判定に用いるよう構成しても良い。
【００５１】
Ｓ６０２の判定の結果、アプリケーションから印刷要求を受けたプリンタドライバ２０１がＦａｘドライバであった場合、印刷時起動アプリケーション２０５は、動作モードがＦａｘドライバモードであることを保存する（Ｓ６０３）。Ｓ６０３の処理、及び以降で説明する印刷時起動アプリケーション２０５の情報の保持は、一例として、ＯＳにより提供されるＬｏｃａｌ  Ｓｔｏｒａｇｅを利用する。Ｌｏｃａｌ  Ｓｔｏｒａｇｅに格納する情報の全体構成は後述する。同様に、印刷時起動アプリケーション２０５は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに、ＵＩ表示が有効であることを保存する（Ｓ６０４）。
【００５２】
その後、ＯＳの提供する規定のＡＰＩを呼び出して、今回の印刷時起動アプリケーション２０５の実行に於いて、ユーザインタフェースを表示することを指示する（Ｓ６０５）。このＡＰＩを実行することで、後述の図７で示す印刷時起動アプリケーション２０５のＵＩ処理が呼び出され、印刷時起動アプリケーション２０５はユーザインタフェースを表示する。Ｆａｘドライバモード時の印刷時起動アプリケーション２０５のセットアップ処理は以上で終了である。
【００５３】
Ｓ６０２の判定の結果、アプリケーションから印刷要求を受けたプリンタドライバ２０１がＦａｘドライバではなかった場合、印刷時起動アプリケーション２０５は、動作モードがプリンタドライバモードであることを保存する（Ｓ６０６）。
【００５４】
次に、ＰｒｉｎｔＴｉｃｋｅｔを参照し、印刷プレビュー起動指示が存在するかを確認する（Ｓ６０７）。ＰｒｉｎｔＴｉｃｋｅｔの具体的な確認方法は、図１３を用いて後述する。また、印刷プレビューの起動指示は、ＷＳＤＡ２０７及びＰＥＸ２０９から指定可能で、かつ印刷時起動アプリケーション２０５から参照可能な手段であれば、ＰｒｉｎｔＴｉｃｋｅｔ以外の方法により実現しても良い。例えば、プリンタドライバ２０１の設定情報の格納場所としてＯＳにより提供される、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ、あるいはＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇを利用するよう構成しても良い。なお、印刷プレビューとは、印刷設定とアプリケーションが生成した印刷データとを元に、紙面上に生成されることになる印刷結果のイメージを表示部１１９に表示することを指す。つまり、「印刷プレビュー起動指示がＰｒｉｎｔＴｉｃｋｅｔに存在する」ことは、印刷プレビュー画面の表示がユーザにより指示されたことを示す。ユーザは、印刷プレビュー画面を見ることで、所望の印刷結果が得られるかを印刷前に確認し、必要に応じて印刷設定の修正や特定ページの削除、印刷処理の中止を指示することができる。
【００５５】
Ｓ６０７で印刷プレビュー起動指示が存在しないと判断した場合、印刷時起動アプリケーション２０５は、Ｓ６０９に進む。Ｓ６０７で印刷プレビュー起動指示が存在すると判断した場合、印刷時起動アプリケーション２０５は、印刷プレビューが有効であることを保存する（Ｓ６０８）。
【００５６】
次に、Ｓ６０９で、印刷時起動アプリケーション２０５は、ＰｒｏｐｅｒｔｙＢａｇに機能拡張指示が存在するか否かを確認する。ＰｒｏｐｅｒｔｙＢａｇは、前述の通り、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇあるいはＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇを指す。この機能拡張は、例えばプリンタドライバが標準プリンタドライバ５１０のような基本的な機能しか有さない場合に、印刷時に指定可能な機能をプリンタベンダが拡張するためのものである。なお、標準プリンタドライバ５１０に対し、機能拡張を指示するような指定を含むＰｒｉｎｔＴｉｃｋｅｔを渡すと、その指定は標準プリンタドライバ５１０にとって未知の情報であるため、不正な指定として削除されてしまう。このようなケースに於いては、機能拡張指示をＰｒｏｐｅｒｔｙＢａｇに格納することで、削除されずに維持される。一方、ＰｒｉｎｔＴｉｃｋｅｔは、印刷データであるＸＰＳ文書に含まれ、印刷データ単位で保持される情報である。よって、複数の印刷要求が連続して生じた場合にも、印刷要求毎に印刷プレビューや機能拡張の有効、無効を、正確に切り替える事ができるというメリットがある。なお、印刷時起動アプリケーション２０５は、Ｓ６０９の処理をスキップし、拡張可能である場合は、常に機能拡張を有効化するように構成しても良い。
【００５７】
Ｓ６０９でＰｒｏｐｅｒｔｙＢａｇ内に機能拡張指示が存在しないと判断した場合、印刷時起動アプリケーション２０５は、Ｓ６１３に進む。Ｓ６０９でＰｒｏｐｅｒｔｙＢａｇに機能拡張指示が存在すると判断した場合、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する（Ｓ６１０）。Ｓ６０２で既にＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得している場合は、Ｓ６１０の処理はスキップする。
【００５８】
次に、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓでサポートされていない所定機能が存在するか否かを判定する（Ｓ６１１）。所定機能とは、印刷時起動アプリケーション２０５が自身で編集能力を有し、拡張機能として印刷時起動アプリケーション２０５が提供可能な機能を指す。すなわち、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ内に記載されていない機能であり、印刷時起動アプリケーション２０５が提供可能な機能が存在するかを判定する。これにより、プリンタドライバ２０１がサポートしておらず、自身が提供可能な機能が存在するか否かを判定する。この判定処理については図１５を用いて詳細を後述する。
【００５９】
Ｓ６１１で該当機能が存在しないと判断した場合、印刷時起動アプリケーション２０５はＳ６１３に進む。Ｓ６１１で該当機能が存在すると判断した場合、印刷時起動アプリケーション２０５は、該当機能を拡張機能としてＬｏｃａｌ  Ｓｔｏｒａｇｅに保存する（Ｓ６１２）。
【００６０】
次に印刷時起動アプリケーション２０５は、印刷プレビューが有効、あるいは提供する拡張機能が存在するかを判断する（Ｓ６１３）。Ｓ６１３がＹｅｓの場合、印刷時起動アプリケーション２０５はＳ６０４に進み、ユーザインタフェースの表示を指示する。Ｓ６１４がＮｏの場合、印刷時起動アプリケーション２０５はセットアップ処理を終了する。
【００６１】
以上のように、印刷時起動アプリケーション２０５のセットアップ処理では、ユーザインタフェースの起動が必要か否かを判断し、必要な場合はそれを指示すると共に、その後の処理に必要な情報の格納を行う。
【００６２】
＜ＰｒｉｎｔＴｉｃｋｅｔ、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの構成例と関連処理＞
図９から図１２は、それぞれ異なる構成のプリンタドライバおよびＦａｘドライバのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例である。なお、これらのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、説明に必要な部分を中心に記述したものであり、一部省略されている。
【００６３】
図９は、Ｆａｘドライバ５１１のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの例である。ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの先頭には、ｐｓｆ：ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ要素があり、その属性として、そのＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓで利用する名前空間が定義されている。通常、ここには、ＰｒｉｎｔＳｃｈｅｍａと呼ばれるＯＳ標準の定義を示す名前空間に加え、このプリンタドライバ２０１を提供するプリンタベンダが独自に定義した名前空間が列挙される。図９で示されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓには、プリンタベンダが独自に定義した名前空間９０１が含まれる。
【００６４】
一方、図１０は、機種別プリンタドライバ５０８のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一例である。図１０で示されるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓには、プリンタベンダが独自で定義した名前空間１００１が含まれる。また、図１１は、共通ドライバ５０９のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの一例を示し、図１２は標準プリンタドライバ５１０のＰｒｉｎｎｔＣａｐａｂｉｌｉｔｉｅｓの一例を示している。
【００６５】
名前空間は、選択可能な機能や選択項目、その定義を一意に定めるためのものであり、同じプリンタベンダが提供するプリンタドライバ２０１であっても、プリンタとＦａｘ等、機能集合が大きく異なる場合は、異なる値とすることが一般的である。これを利用して、Ｓ６０２は、名前空間に、図９の名前空間９０１内に示されるような、ｈｔｔｐ：／／ｗｗｗ．ｍｆｐｖｅｎｄｏｒ．ｃｏｍ／ｎｓ／ｐｒｉｎｔｓｃｈｅｍａ／ｆａｘ／ｖ１００というＵＲＬが含まれるか否か、という判定を行えばよい。
【００６６】
図１３は、図１０に示した機種別プリンタドライバ５０８のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１０００を元に生成される、ＰｒｉｎｔＴｉｃｋｅｔの一例である。図１３に示されるように、ＰｒｉｎｔＴｉｃｋｅｔには、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓで定義された各機能の設定値が格納される。例えば、ｐｓｋ：ＰａｇｅＭｅｄｉａＴｙｐｅというＦｅａｔｕｒｅは、印刷に利用する用紙種類を示しており、図１３のＰｒｉｎｔＴｉｃｋｅｔでは、ｐｓｋ：Ｐｌａｉｎ、つまり普通紙が指定されている。Ｓ６０７の印刷プレビューの起動指示有無の判定処理は、ｎｓ００００：ＪｏｂＰｒｅｖｉｅｗというＦｅａｔｕｒｅの指定値が、ｎｓ００００：ＯＮになっているか否かを判定する事になる。
【００６７】
次に、Ｓ６１１の判定処理について、図１０から図１２のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓと、図１５を用いて詳細に説明する。図１５は、印刷時起動アプリケーション２０５が拡張機能として提供可能な所定機能と、その選択項目の一覧を示す。ここでは、印刷時起動アプリケーション２０５は、複数ページを１ページに割り付けて印刷するページ割り付け機能と、印刷結果に指定されたスタンプを重ね合わせるスタンプ機能を有する。
【００６８】
印刷時起動アプリケーション２０５は、Ｓ６１１の判定処理において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを解析して、図１５の“機能名”で示される機能が存在しているか否かを確認する。印刷対象が機種別プリンタドライバ５０８のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１０００であった場合、ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙというＦｅａｔｕｒｅとＰａｇｅＳｔａｍｐというＦｅａｔｕｒｅが存在する。よって、Ｓ６１１の判定結果はＮｏとなる。
【００６９】
印刷対象が共通プリンタドライバ５０９のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１１００であった場合、ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙというＦｅａｔｕｒｅは存在するが、ＰａｇｅＳｔａｍｐというＦｅａｔｕｒｅは存在しない。よって、Ｓ６１１の判定結果はＹｅｓとなる。その時に印刷時起動アプリケーション２０５が拡張機能として提供するのは、ＰａｇｅＳｔａｍｐ、つまりスタンプ機能となる。印刷対象が標準プリンタドライバ５１０のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１２００であった場合、ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙというＦｅａｔｕｒｅもＰａｇｅＳｔａｍｐというＦｅａｔｕｒｅも存在しない。よって、Ｓ６１１の判定結果はＹｅｓとなる。その時に印刷時起動アプリケーション２０５が拡張機能として提供するのは、ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙとＰａｇｅＳｔａｍｐ、つまり割り付け機能とスタンプ機能となる。
【００７０】
＜ＷＳＤＡの処理及びユーザインタフェース構成例＞
図１７は、ユーザにより機種別プリンタドライバ５０８が選択された場合にＷＳＤＡ２０７により提供されるユーザインタフェースの一例を示す図である。この図１７の画面は、ＷＳＤＡ２０７が提供する設定画面の一例であり、描画アプリケーションから印刷要求が行なわれる前に提供される画面である。機種別プリンタドライバ５０８は、１００２に示されるように、ＪｏｂＰｒｅｖｉｅｗというＦｅａｔｕｒｅをサポートしており、これは印刷プレビュー機能を示している。ＷＳＤＡ２０７は、プリンタドライバ２０１から取得したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを元にユーザインタフェースを構成するため、１００２に基づいて、印刷プレビューの有効無効を切り替えるためのコントロールアイテム１７０１を表示する。ＷＳＤＡ２０７は、ユーザの指定に応じて、ＪｏｂＰｒｅｖｉｅｗというＦｅａｔｕｒｅのＯＮ、ＯＦＦをＰｒｉｎｔＴｉｃｋｅｔに格納する。印刷時起動アプリケーション２０５は、Ｓ６０７の処理でこの情報を参照して、印刷プレビューの起動指示があるか否かを判断する。
【００７１】
図１８は、印刷先として標準プリンタドライバ５１０が選択されたときのＷＳＤＡ２０７のユーザインタフェースの一例を示す図である。この図１８の画面も、ＷＳＤＡ２０７が提供する設定画面の一例であり、描画アプリケーションから印刷要求が行なわれる前に提供される画面である。標準プリンタドライバ５１０は、ＪｏｂＰｒｅｖｉｅｗというＦｅａｔｕｒｅをサポートしていない。このような場合、ＷＳＤＡ２０７は、拡張機能を有効にするか否かを選択するためのコントロールアイテム１８０１を表示する。ＷＳＤＡ２０７は、ユーザがＯＫボタン１８０２を押下したタイミングで、コントロール１８０１に指定された値をＰｒｏｐｅｒｔｙＢａｇに格納する。なお、ＷＳＤＡ２０７は、拡張機能に加えて、印刷プレビューの起動を指示するよう構成しても良い。この場合、拡張機能と印刷プレビューは、それぞれ異なるコントロールで指定可能であっても、一つのコントロールで同時に指定可能であっても良い。
【００７２】
なお、ＰＥＸ２０９についても、ＷＳＤＡ２０７の上記処理と同等の処理によって、印刷時起動アプリケーション２０５の起動をコントロールするための手段を提供することができる。
【００７３】
＜印刷時起動アプリケーションのＵＩ処理＞
Ｓ６０５のＵＩの表示指定が実行された場合、ＯＳは、印刷時起動アプリケーション２０５のセットアップ処理が終了した後、印刷時起動アプリケーション２０５のＵＩ処理を呼び出す。図７は、本印刷システムにおける印刷時起動アプリケーション２０５のＵＩ処理のうち主要な処理フローを示した図である。本処理フローは、例えば図５のＭＦＰＵｔｉｌｉｔｙ５０６のような構成下にある印刷時起動アプリケーション２０５の処理の一例である。以降、印刷時起動アプリケーション２０５を、各処理の主体として説明することもあるが、実際には、対応するプログラムをＣＰＵ１１１が実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで印刷時起動アプリケーション２０５の主要な処理を、便宜的にわかりやすく示したフローである。なお、Ｓ６０５のＵＩの表示指定が実行されなかった場合、ＯＳは、図７に示されるＵＩ処理をスキップし、後述の編集及び終了処理を呼び出す。
【００７４】
まず、印刷時起動アプリケーション２０５は、Ｓ６０３やＳ６０６で保存した動作モードをＬｏｃａｌ  Ｓｔｏｒａｇｅから読み出し（Ｓ７０１）、Ｆａｘドライバモードであるか、プリンタドライバモードであるかを判断する（Ｓ７０２）。
【００７５】
動作モードがＦａｘドライバモードであった場合、印刷時起動アプリケーション２０５は、Ｆａｘドライバ用のユーザインタフェースを構成する（Ｓ７０３）。Ｆａｘドライバ用のユーザインタフェースは、送信先とＦａｘ番号をユーザが指定可能なコントロールアイテムを有する。Ｆａｘドライバ用のユーザインタフェースの詳細は図１９を用いて後述する。
【００７６】
印刷時起動アプリケーション２０５は、ユーザから入力を受け付け（Ｓ７０４）、ユーザインタフェース上でＦａｘ送信が指示されると、ユーザの指定した送信先とＦａｘ番号をＬｏｃａｌ  Ｓｔｏｒａｇｅに保存する（Ｓ７０５）。
【００７７】
以上で印刷時起動アプリケーション２０５のＦａｘドライバモードの処理は終了である。このように、印刷時起動アプリケーション２０５は、Ｆａｘドライバモードでは、常に送信先とＦａｘ番号を指定可能な入力画面としてのユーザインタフェースを表示する（後述の図１９参照）。Ｆａｘドライバにおいて、送信先とＦａｘ番号は、Ｆａｘを送信する上で必須の送信先情報である。仮にＷＳＤＡ２０７やＰＥＸ２０９でユーザが送信先とＦａｘ番号を指定可能なように構成していても、これらのユーザインタフェースは、印刷時に必ず開かれるとは限らない。印刷時起動アプリケーション２０５で送信先とＦａｘ番号を指定可能にすることで、ユーザは、現在のＦａｘ送信処理の宛先を確実に入力することができる。また、ユーザの指示があった場合にのみ表示されるＷＳＤＡ２０７やＰＥＸ２０９の画面でも、送信先とＦａｘ番号を指定可能に構成しても良い。こうすることで、何らかの理由で印刷時起動アプリケーション２０５が起動しないケースにおいても、送信先とＦａｘ番号を指定する手段を提供することができる。なお、ＷＳＤＡ２０７やＰＥＸ２０９でユーザが送信先とＦａｘ番号を指定可能なように構成した場合、印刷時起動アプリケーション２０５は、所定の場合のみＵＩ表示指示を実行するようにしてもよい。すなわち、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＴｉｃｋｅｔに送信先とＦａｘ番号が含まれる場合はＳ６０５のＵＩ表示指示を実行し、ＰｒｉｎｔＴｉｃｋｅｔに送信先とＦａｘ番号が含まれない場合はＳ６０５のＵＩ表示指示を実行しない。こうすることで、ユーザがＷＳＤＡ２０７やＰＥＸ２０９で送信先とＦａｘ番号を指定し忘れた場合にのみ、印刷時起動アプリケーションが起動するよう構成することができる。
【００７８】
Ｓ７０２の判定で、動作モードがＦａｘドライバモードではなかった場合、印刷時起動アプリケーション２０５は、Ｓ６１２で保存した拡張機能を読み込む（Ｓ７０６）。
【００７９】
次に、印刷時起動アプリケーション２０５は、Ｓ６０８で保存した情報を参照し、印刷プレビューが有効か否かを判断する（Ｓ７０７）。印刷プレビューが有効でない場合、印刷時起動アプリケーション２０５は、Ｓ７１３のユーザインタフェース構成処理に進む。印刷プレビューが有効である場合、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＴｉｃｋｅｔを取得する（Ｓ７０８）。
【００８０】
さらに、印刷時起動アプリケーション２０５は、そのＰｒｉｎｔＴｉｃｋｅｔを元に、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得する（Ｓ７０９）。なお、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの取得には時間を要するため、図６のＳｅｔｕｐ処理で必要な情報をＬｏｃａｌ  Ｓｔｏｒａｇｅに保存しておき、Ｓ７０９ではそれを利用するように構成しても良い。
【００８１】
次に、印刷時起動アプリケーション２０５は、取得したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを解析し、特定機能がサポートされているかを探索する。そして、見つかった機能とＰｒｉｎＴｉｃｋｅｔに指定されている設定値をドライバ機能としてＬｏｃａｌ  Ｓｔｏｒａｇｅに保存する（Ｓ７１０）。ここでは、一例として、印刷時起動アプリケーション２０５は、割り付け機能と用紙種類設定の２つを特定機能として探索する。探索処理は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに、規定の名前を持つＦｅａｔｕｒｅが存在するか否かを判断することで実行される。なお、Ｓ６１２で保存した拡張機能が、ドライバが有していない機能を示していたのに対して、Ｓ７１０で保存するドライバ機能は、ドライバが有している機能である。従って、ＰｒｉｎｔＴｉｃｋｅｔでこれらドライバ機能が有効化された場合、プリンタドライバ２０１は、その指定に応じた処理を正しく実行することができる。
【００８２】
次に、印刷時起動アプリケーション２０５は、ＯＳの所定のＡＰＩを利用してＸＰＳ文書を取得する（Ｓ７１１）。さらに、印刷時起動アプリケーション２０５は、そのＸＰＳ文書の内容を解析し、表示部１１９に表示する（Ｓ７１２）。この時、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＴｉｃｋｅｔに設定された設定値を印刷結果に反映することで、より正確な印刷プレビューを実現することができる。
【００８３】
印刷時起動アプリケーション２０５が受け取るＸＰＳ文書は、印刷要求元のアプリケーションが生成したものであって、プリンタドライバ２０１が処理する前のデータである。従って、例えばＸＰＳ文書中のＰｒｉｎｔＴｉｃｋｅｔで割り付け印刷が指定されていたとしても、印刷時起動アプリケーション２０５が受け取るＸＰＳ文書には、割り付け処理が施されていない。このようなケースを考慮し、印刷時起動アプリケーション２０５は、その後のドライバで実施されるのと同等のロジックで印刷設定を反映した印刷イメージを表示部１１９に表示する。印刷時起動アプリケーション２０５の表示するユーザインタフェース上で印刷設定が変更された場合、印刷時起動アプリケーション２０５は、変更を反映した印刷イメージを表示部１１９に再表示する。なお、標準プリンタドライバ５１０のように、プリンタベンダが提供していないプリンタドライバにおいては、どのようなロジックで印刷設定がＸＰＳ文書に反映されるかわからない。その場合は、印刷時起動アプリケーション２０５は、指定された機能の反映をスキップするか、独自のロジックで反映した上で、異なる可能性がある旨を合わせて表示部１１９に表示する。また、印刷時起動アプリケーション２０５がＸＰＳ文書の編集も含めて機能を提供する拡張機能に関しては、印刷時起動アプリケーション２０５は実際の編集と同じロジックで印刷設定を反映した印刷イメージを表示部１１９に表示すればよい。
【００８４】
次に、印刷時起動アプリケーション２０５は、Ｓ６１２で保存した拡張機能、及びＳ７１０で保存したドライバ機能を指定可能なコントロールを持つユーザインタフェースを構成する（Ｓ７１３）。Ｓ６１２で保存した拡張機能の選択肢として表示する項目は、図１５の“オプション”の情報、つまり印刷時起動アプリケーション２０５がサポートする項目である。Ｓ７１０で保存したドライバ機能の選択肢として表示する項目は、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの該当機能のＯｐｔｉｏｎの一覧である。例えば、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１０００の情報を元に用紙種類を指定可能にする場合、ｐｓｋ：ＰａｇｅＭｅｄｉａＴｙｐｅのサポートＯｐｔｉｏｎ（ｐｓｋ：Ｐｌａｉｎ、ｎｓ００００：ＰｈｏｔｏＰａｐｅｒ等）を全て選択肢として列挙する。なお、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１０００では省略されているが、各ＦｅａｔｕｒｅやＯｐｔｉｏｎには、通常ＤｉｓｐｌａｙＮａｍｅという要素が存在する。ＤｉｓｐｌａｙＮａｍｅには、ローカライズ実施済みの適切な名称情報が格納されているので、印刷時起動アプリケーション２０５は、各ドライバ機能の選択肢として、ＤｉｓｐｌａｙＮａｍｅの名称を表示する。
【００８５】
印刷時起動アプリケーション２０５は、ユーザから入力を受け付け（Ｓ７１４）、ユーザインタフェース上で印刷が指示されると、ユーザの指定した各機能の設定値をＬｏｃａｌ  Ｓｔｏｒａｇｅに保存する（Ｓ７１５）。以上で印刷時起動アプリケーション２０５のプリンタドライバモードの処理は終了である。
【００８６】
なお、Ｓ７０８からＳ７１０までの処理は、Ｓ７０７の判定で印刷プレビューが有効でなかった場合にも実行するように構成しても良い。これにより、印刷前に必ず確認が必要な重要な印刷設定について、印刷時起動アプリケーション２０５で再度確認を促し、必要であれば変更可能な手段をユーザに提供することができる。
【００８７】
図１９は、印刷時起動アプリケーション２０５がＦａｘドライバモードで動作した場合に表示される入力画面としてのユーザインタフェースの一例を示す図である。表示アイテム１９０１は、ユーザが送信先を指定するためのコントロールアイテムである。表示アイテム１９０２は、ユーザがＦａｘ番号を入力するためのコントロールアイテムである。表示アイテム１９０３は、アドレス帳を起動するためのボタンである。このボタンを押下するとアドレス帳が起動され、アドレス帳上で宛先を選択することで、送信先とＦａｘ番号が自動入力される。表示アイテム１９０５はＦａｘ送信を開始するためのボタンである。送信先とＦａｘ番号が未入力の状態では、ユーザはこのボタンを押下することはできない。表示アイテム１９０６はキャンセルボタンで、ユーザがこのボタンを押下すると、その後のＦａｘ送信処理はキャンセルされる。
【００８８】
本構成により、印刷時起動アプリケーション２０５は、Ｆａｘドライバモードでは、常に送信先とＦａｘ番号を指定可能な入力画面としてのユーザインタフェースを表示することが可能となる。Ｆａｘドライバにおいて、送信先とＦａｘ番号は、Ｆａｘを送信する上で必須の情報である。印刷時起動アプリケーション２０５で送信先とＦａｘ番号を指定可能にすることで、ユーザは、現在のＦａｘ送信処理の宛先を確実に入力することができる。
【００８９】
図２０は、標準プリンタドライバ５１０動作時に、印刷時起動アプリケーション２０５がプリンタドライバモードで動作した場合に表示される拡張機能を指定するためのユーザインタフェースの一例である。なお、図２０では印刷プレビュー機能は有効にされていないものとする。標準プリンタドライバ５１０のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１２００では、割り付け印刷機能もスタンプ機能もサポートされていない。従って、印刷時起動アプリケーション２０５は、Ｓ６１１及びＳ６１２の処理で、拡張機能として、割り付け印刷機能、及びスタンプ機能の２つを保存する。その結果、これら２つの機能が拡張機能として提供される。表示アイテム２００１は、割り付け印刷機能の設定を指定するためのコントロールアイテムである。表示アイテム２００２は、スタンプ機能の設定を指定するためのコントロールアイテムである。表示アイテム２００３は印刷を開始するためのボタンである。表示アイテム２００４はキャンセルボタンで、ユーザがこのボタンを押下すると、その後の印刷処理はキャンセルされる。なお、動作ドライバが共通プリンタドライバ５０９であった場合は、拡張機能として、スタンプ機能のみが表示される。これは共通プリンタドライバ５０９のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ１１００において、割り付け機能はサポートされているためである。
【００９０】
本構成により、標準プリンタドライバ５１０のように、ＯＳと同様にＭｉｃｒｏｓｏｆｔ（登録商標）によって提供されプリンタベンダが機能拡張できないドライバにおいて、印刷時起動アプリケーション２０５を利用することで、印刷機能の拡張を実現できる。また、動作するドライバの能力を示す情報を判断し、不足している機能のみが拡張機能として提供される。これにより、利用可能なプリンタドライバ２０１が複数種類存在するようなケースにおいて、それぞれのプリンタドライバ２０１に最適な拡張機能を提供することができる。また、印刷時にユーザインタフェースを表示して機能拡張するか否かはユーザがコントロールすることができる。これにより、都度ユーザインタフェースが表示されることが好ましくないユースケースにも対応することができる。
【００９１】
図２１は、機種別プリンタドライバ５０８動作時に、印刷時起動アプリケーション２０５がプリンタドライバモードで動作した場合のユーザインタフェースの一例である。なお、印刷プレビュー機能は有効にされているものとする。表示アイテム２１０１は、印刷プレビュー上で表示するページを変更するためのコントロールアイテムである。ユーザは、このコントールアイテムを利用して表示ページを変更できるし、また、現在の印刷データと印刷設定で発生する印刷の総ページ数を確認することもできる。表示アイテム２１０２は、指定されているページの印刷結果のイメージを示す印刷プレビュー画面である。表示アイテム２１０３は、割り付け印刷機能を指定するためのコントロールアイテムである。表示アイテム２１０４は、用紙種類を指定するためのコントロールアイテムである。表示アイテム２０１３、２０１４で表示されているのは拡張機能ではなくドライバ機能なので、前述の通り、選択項目はプリンタドライバ２０１の機能に準ずる。表示アイテム２１０５は印刷を開始するためのボタンである。表示アイテム２１０６はキャンセルボタンで、ユーザがこのボタンを押下すると、その後の印刷処理はキャンセルされる。なお、図２１では、ドライバ機能のみが表示されているが、図６と図７の処理の結果、ドライバ機能と拡張機能が共に有効化された場合、印刷時起動アプリケーション２０５は、その全ての機能について指定可能なコントロールを表示する。
【００９２】
本構成により、描画アプリケーションの生成したＸＰＳ文書とユーザにより指定された印刷設定を元に、印刷結果に近い印刷イメージを印刷前に表示する印刷プレビュー機能を実現できる。また、印刷結果や印刷ページ数を確認しながら、印刷設定を最終調整するための変更も可能となる。これらの機能により、ミスプリントを防ぐと共に、所望のページ数に印刷を収める等の最終調整手段を提供することが可能となる。
【００９３】
＜印刷時起動アプリケーションの編集及び終了処理＞
図７の印刷時起動アプリケーション２０５のＵＩ処理が終了した後、ＯＳは、図８の印刷時起動アプリケーション２０５の編集及び終了処理を呼び出す。なお、Ｓ６０５のＵＩの表示指定処理が実行されなかった場合は、ＯＳは、図７の印刷時起動アプリケーション２０５のＵＩ処理を呼び出すことなく、本処理を呼び出す。本処理フローは、例えば図５のＭＦＰＵｔｉｌｉｔｙ５０６のような構成下にある印刷時起動アプリケーション２０５の処理の一例である。以降、印刷時起動アプリケーション２０５を、各処理の主体として説明することもあるが、実際には、対応するプログラムをＣＰＵ１１１が実行することで、対応する機能が実現されることになる。また、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで印刷時起動アプリケーション２０５の主要な処理を、便宜的にわかりやすく示したフローである。
【００９４】
印刷時起動アプリケーション２０５は、Ｌｏｃａｌ  ＳｔｏｒａｇｅよりＳ６０３及びＳ６０６で保存した動作モード、及びＳ６０４で保存されたＵＩ表示情報を読み込む（Ｓ８０１）。Ｓ８０２でＵＩ表示がなかったと判断した場合、印刷時起動アプリケーション２０５は、ＯＳのＡＰＩを利用してＸＰＳ文書を取得し（Ｓ８０６）、そのまま何も改変することなく、ＸＰＳ文書を出力する（Ｓ８０７）。このように、印刷時起動アプリケーション２０５は、ＸＰＳ文書を変更しない場合も、ＸＰＳ文書を一度全て取得し、出力する必要がある。ユーザインタフェースを表示しなかった場合の印刷時起動アプリケーション２０５の処理は、以上で終了である。このように、印刷時起動アプリケーション２０５は、ユーザインタフェースの表示が不要と判断した場合は、ユーザインタフェースを表示することなく処理を終了する。
【００９５】
Ｓ８０２でＵＩ表示があったと判断した場合、印刷時起動アプリケーション２０５は、Ｓ８０１で読み込んだ情報を元に、動作モードがＦａｘドライバモードであったか否かを判断する（Ｓ８０８）。Ｆａｘドライバモードであると判断した場合、印刷時起動アプリケーション２０５は、Ｓ７０５で保存された送信先とＦａｘ番号をＬｏｃａｌ  Ｓｔｏｒａｇｅから取得する（Ｓ８０３）。次に、印刷時起動アプリケーション２０５は、ＯＳのＡＰＩを利用してＰｒｉｎｔＴｉｃｋｅｔを取得する（Ｓ８０４）。さらに、印刷時起動アプリケーション２０５は、Ｓ８０３で取得した送信先とＦａｘ番号をＰｒｉｎｔＴｉｃｋｅｔに格納する（Ｓ８０５）。
【００９６】
これらの情報を格納したＰｒｉｎｔＴｉｃｋｅｔの一例を図１４に示す。ここでは、送信先はＪｏｂＲｅｃｉｐｉｅｎｔＮａｍｅとして、Ｆａｘ番号はＪｏｂＦａｘＮｕｍｂｅｒとして格納されている。ＰｒｉｎｔＴｉｃｋｅｔを編集後、印刷時起動アプリケーション２０５は、必要に応じてそのＰｒｉｎｔＴｉｃｋｅｔをＸＰＳ文書に格納した上で、ＸＰＳ文書を出力し、処理を終了する。Ｆａｘドライバ５１１は、ＰｒｉｎｔＴｉｃｋｅｔを参照して送信先とＦａｘ番号を取得し、指定されたＦａｘ番号にＦａｘ送信するためのジョブを印刷装置１０２に送信する。
【００９７】
Ｓ８０８で、動作モードがＦａｘドライバモードではないと判定した場合、印刷時起動アプリケーション２０５は、Ｓ７１０で提供する機能が決定される。そして、２１０４等でユーザに指定されたドライバ機能の設定値をＬｏｃａｌ  Ｓｔｏｒａｇｅから読み込む（Ｓ８０９）。次に、印刷時起動アプリケーション２０５は、ドライバ機能の設定値が初期状態から変更されたか否かを判断する（Ｓ８１０）。
【００９８】
Ｓ８１０でドライバ機能の設定値の変更が無いと判断した場合、印刷時起動アプリケーション２０５は、Ｓ８１３の処理に進む。Ｓ８１０でドライバ機能の設定値が変更されたと判断した場合、印刷時起動アプリケーション２０５は、ＰｒｉｎｔＴｉｃｋｅｔを取得し（Ｓ８１１）、Ｓ８０９で取得したドライバ機能の設定値をＰｒｉｎｔＴｉｃｋｅｔに反映する（Ｓ８１２）。これらの処理を実現するための、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに格納する情報の構成や、ＰｒｉｎｔＴｉｃｋｅｔへの反映方法については後述する。設定値が変更されたドライバ機能が複数存在する場合は、印刷時起動アプリケーション２０５は、全てのドライバ機能についてＰｒｉｎｔＴｉｃｋｅｔへの反映処理を行う。ＰｒｉｎｔＴｉｃｋｅｔへの反映後、印刷時起動アプリケーション２０５は、ＸＰＳ文書を取得する（Ｓ８１３）。
【００９９】
次に、印刷時起動アプリケーション２０５は、Ｓ６１２で提供機能が決定され、２００２等からユーザにより指定された拡張機能の設定値をＬｏｃａｌ  Ｓｔｏｒａｇｅから読み込む（Ｓ８１４）。次に、印刷時起動アプリケーション２０５は、拡張機能の設定値が指定されたか否かを判断する（Ｓ８１５）。Ｓ８１５で拡張機能の設定値が指定されていない判断した場合、印刷時起動アプリケーション２０５は、ＸＰＳ文書を出力し（Ｓ８０７）、処理を終了する。
【０１００】
Ｓ８１５で拡張機能の設定値が指定されたと判断した場合、印刷時起動アプリケーション２０５は、ユーザの指定した拡張機能とその設定値に従い、ＸＰＳ文書内の描画データを編集する。例えば、２ページを１ページに割り付ける割り付け印刷機能が指定されていた場合を説明する。この場合、印刷時起動アプリケーション２０５は、ＸＰＳ文書内の描画データにおけるページの概念であるＦｉｘｅｄＰａｇｅを２ページ分取得し、１ページのＦｉｘｅｄＰａｇｅ上に縮小配置する。その上で、印刷時起動アプリケーション２０５は、元の２ページ分のＦｉｘｅｄＰａｇｅを描画データ内から削除し、新たに作成したＦｉｘｅｄＰａｇｅを描画データに追加する。このような処理を全てのページに対して繰り返し実行する。指定された拡張機能が複数存在する場合は、それらの指定全てを反映した描画データを生成する。最後に、印刷時起動アプリケーション２０５は、編集した描画データを含むＸＰＳ文書を出力し、処理を終了する。
【０１０１】
以上のように、本構成における印刷時起動アプリケーション２０５は、プリンタドライバ２０１がサポートするドライバ機能の設定値が変更された場合は、その変更をＰｒｉｎｔＴｉｃｋｅｔに反映する。そして、ＸＰＳ文書内の描画データの編集処理は、プリンタドライバ２０１に任せる。これにより、印刷時起動アプリケーション２０５は不要なＸＰＳ文書の編集処理を実施する必要が無く、高速な処理が可能である。加えて、プリンタドライバ２０１の機能を利用するため、ＷＳＤＡ２０７等から機能が指定された場合と、印刷時起動アプリケーション２０５から機能が指定された場合とで、完全に同一の結果を得ることができる。
【０１０２】
一方、本構成における印刷時起動アプリケーション２０５は、プリンタドライバ２０１がサポートしない拡張機能については、印刷時起動アプリケーション２０５自身が、ＸＰＳ文書内の描画データの編集を実行する。これにより、プリンタドライバ２０１がサポートしない機能をユーザに提供することができる。
【０１０３】
図１６は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに格納される情報の一例を示した図である。格納情報は名称と値で構成される。この例では、印刷時起動アプリケーション２０５はプリンタドライバモードで動作し、拡張機能としてスタンプ機能を、ドライバ機能として割り付け印刷機能を、それぞれ提供したことを示している。Ｓ６１２の処理では、Ｌｏｃａｌ  Ｓｔｏｒａｇｅには、拡張機能＿ＰａｇｅＳｔａｍｐという名称で、値が空の情報が追加される。
【０１０４】
印刷時起動アプリケーション２０５のユーザインタフェース上でスタンプ機能が指定された場合、Ｓ７１５の処理によって、指定された値が拡張機能＿ＰａｇｅＳｔａｍｐの値として格納される。ここでは、ユーザによって  “Ｃｏｎｆｉｄｅｎｔｉａｌ”という設定値に変更されている。ドライバ機能である割り付け印刷機能は、Ｓ７１０の処理によって、ドライバ機能＿ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙという名称で、値がＰｒｉｎｔＴｉｃｋｅｔに設定されている初期値の情報が追加される。印刷時起動アプリケーション２０５のユーザインタフェース上で割り付け印刷機能の指定値が変更された場合、Ｓ７１５の処理によって、変更された値が格納される。ここでは、ユーザによって  “ｎｓ００００：ＰａｇｅｓＰｅｒＳｈｅｅｔ＿２”という設定値に変更されている。この名称は、プリンタドライバ２０１のＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに定義されているＯｐｔｉｏｎ名である。以上ように、拡張機能かドライバ機能かは、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに格納されている情報の接頭辞によって判断することができる。
【０１０５】
Ｓ８１０の処理では、印刷時起動アプリケーション２０５は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに“ドライバ機能＿”という接頭辞で始まるドライバ機能が存在するかを判定する。Ｓ８１２の処理では、印刷時起動アプリケーション２０５は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに値として格納されたＯｐｔｉｏｎ名を、そのままＰｒｉｎｔＴｉｃｋｅｔのＯｐｔｉｏｎ名として反映する。Ｓ８１５の処理では、印刷時起動アプリケーション２０５は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅに“拡張機能＿”という接頭辞で始まる拡張機能が存在するかを判定する。
【０１０６】
以上のように、本実施形態では、ユーザの印刷指示後（つまり描画アプリケーションからＸＰＳ文書が出力された後）、印刷装置１０２による印刷動作の前に、印刷時起動アプリケーション２０５のユーザインタフェースを表示するよう構成することができる。さらに、印刷時起動アプリケーション２０５が、プリンタドライバ２０１の種類に関わらず、印刷装置１０２に対して一意に割り当てられるようなケースにおいて、プリンタドライバ２０１の種類に応じた最適な機能拡張を実現することができる。Ｆａｘドライバが接続されている場合、Ｆａｘ送信に必須である送信先とＦａｘ番号を入力するための入力画面としてのユーザインタフェースを表示する。
【０１０７】
プリンタドライバが接続されている場合は、ユーザの指定に応じて、印刷結果を事前に表示部１１９上で確認するための印刷プレビュー機能を実現することができる。さらに、接続されているプリンタドライバ２０１の能力を示す情報を基に機能を判定し、不足している機能を拡張機能として提供することができる。これによって、接続されたドライバが、ＯＳと共にＭｉｃｒｏｓｏｆｔ（登録商標）の提供する標準プリンタドライバであり、プリンタベンダが機能拡張できないようなケースでも、印刷時起動アプリケーション２０５を利用することで、プリンタベンダが独自の機能を拡張することができる。
【０１０８】
なお、本実施形態では、Ｆａｘドライバモード、プリンタドライバモードの印刷プレビュー、及び機能拡張を１つのＧＵＩアプリケーションである印刷時起動アプリケーション２０５で実現している。しかしながら、これら３つの機能は必ずしも組み合わせて実施する必要があるものではなく、３つの機能のうち１つ乃至は２つを有するよう印刷時起動アプリケーション２０５を構成することが可能であることは言うまでもない。
【０１０９】
＜実施形態２＞
上述した実施形態は、以下の処理を実行することによっても実行される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。これによって、上述した目的を達成することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１１１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【０１１２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【０１１３】
１０２    印刷装置
１１９    表示部
２０１    プリンタドライバ
２０２    ＵＷＰアプリケーション
２０３    Ｌｅｇａｃｙアプリケーション
２０３    印刷時起動アプリランチャー
２０５    印刷時起動アプリケーション
２０６    スプールファイル
２０７    ＷＳＤＡ
２０８    コンフィグレーションモジュール
２０９    ＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎｓ（ＰＥＸ）
５０６    ＭＦＰＵｔｉｌｉｔｙ
５０８    機種別プリンタドライバ
５０９    共通プリンタドライバ
５１０    標準プリンタドライバ
５１１    Ｆａｘドライバ
【図１】
2019074906.tif 000003
【図２】
2019074906.tif 000004
【図３】
2019074906.tif 000005
【図４】
2019074906.tif 000006
【図５】
2019074906.tif 000007
【図６】
2019074906.tif 000008
【図７】
2019074906.tif 000009
【図８】
2019074906.tif 000010
【図９】
2019074906.tif 000011
【図１０】
2019074906.tif 000012
【図１１】
2019074906.tif 000013
【図１２】
2019074906.tif 000014
【図１３】
2019074906.tif 000015
【図１４】
2019074906.tif 000016
【図１５】
2019074906.tif 000017
【図１６】
2019074906.tif 000018
【図１７】
2019074906.tif 000019
【図１８】
2019074906.tif 000020
【図１９】
2019074906.tif 000021
【図２０】
2019074906.tif 000022
【図２１】
2019074906.tif 000023
【図２２】
2019074906.tif 000024