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