(57)【要約】【課題】  印刷データ生成ソフトウェアの拡張アプリケーションとして、より良い機能を提供する。【解決手段】  第１のタイミングで取得される印刷データ生成ソフトウェアと、前記第１のタイミングとは異なる第２のタイミングで取得される前記印刷データ生成ソフトウェアとは異なる拡張アプリケーションとを備える情報処理装置であって、前記拡張アプリケーションにより提供される設定画面において入力された情報に基づき、設定情報を生成する生成手段と、前記生成された設定情報に基づき、前記拡張アプリケーションにより提供される拡張機能を実行する実行手段と、を備え、前記拡張機能に関する情報は、ＯＳによる編集が行われないよう処理され、前記印刷データ生成ソフトウェアにより、前記設定情報に基づき印刷データが生成される。【選択図】  図２
2020009055.tif 000002
【特許請求の範囲】
【請求項１】
第１のタイミングで取得される印刷データ生成ソフトウェアと、前記第１のタイミングとは異なる第２のタイミングで取得される前記印刷データ生成ソフトウェアとは異なる拡張アプリケーションとを備える情報処理装置であって、
前記拡張アプリケーションにより提供される設定画面において入力された情報に基づき、設定情報を生成する生成手段と、
前記生成された設定情報に基づき、前記拡張アプリケーションにより提供される拡張機能を実行する実行手段と、
を備え、
前記拡張機能に関する情報は、ＯＳによる編集が行われないよう処理され、
前記印刷データ生成ソフトウェアにより、前記設定情報に基づき印刷データが生成されることを特徴とする情報処理装置。
【請求項２】
前記拡張機能に関する情報は、前記設定情報中においてＯＳによる編集が行われないよう記述されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記拡張機能に関する情報は、前記設定情報とは別のファイルに保存されることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記印刷データ生成ソフトウェアの提供する機能を示す能力情報に前記拡張機能を示す情報を追加されることにより、前記能力情報が拡張されることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記ＯＳにより、前記印刷データ生成ソフトウェアの提供する機能を示す能力情報と、前記設定情報に記述された機能と、の整合性がチェックされることを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記印刷データ生成ソフトウェアにより、描画アプリケーションにより生成された描画データと、前記設定情報と、を含む中間データに基づき印刷データが生成されることを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記拡張機能に関する情報としてレイアウトに関する拡張機能の情報が保存されている場合、前記拡張アプリケーションにより、前記中間データに対して編集が行われることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記拡張機能に関する情報として印刷プレビューに関する拡張機能の情報が保存されている場合、前記拡張アプリケーションにより、前記印刷データを用いてプレビュー画像が表示されることを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
第１のタイミングで取得される印刷データ生成ソフトウェアとは異なる第２のタイミングで取得される拡張アプリケーションのプログラムであって、
コンピュータに、
設定画面において入力された情報に基づき、設定情報を生成する生成ステップと、
前記生成された設定情報に基づき、拡張機能を実行する実行ステップと、
を実行させ、
前記拡張機能に関する情報は、ＯＳによる編集が行われないよう処理され、
前記印刷データ生成ソフトウェアにより、前記設定情報に基づき印刷データが生成されることを特徴とするプログラム。
【請求項１０】
前記拡張機能に関する情報は、前記設定情報中においてＯＳによる編集が行われないよう記述されることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記拡張機能に関する情報は、前記設定情報とは別のファイルに保存されることを特徴とする請求項９に記載のプログラム。
【請求項１２】
前記印刷データ生成ソフトウェアの提供する機能を示す能力情報に前記拡張機能を示す情報を追加されることにより、前記能力情報が拡張されることを特徴とする請求項９に記載のプログラム。
【請求項１３】
前記ＯＳにより、前記印刷データ生成ソフトウェアの提供する機能を示す能力情報と、前記設定情報に記述された機能と、の整合性がチェックされることを特徴とする請求項９から１２のいずれか１項に記載のプログラム。
【請求項１４】
前記印刷データ生成ソフトウェアにより、描画アプリケーションにより生成された描画データと、前記設定情報と、を含む中間データに基づき印刷データが生成されることを特徴とする請求項９から１３のいずれか１項に記載のプログラム。
【請求項１５】
前記拡張機能に関する情報としてレイアウトに関する拡張機能の情報が保存されている場合、前記拡張アプリケーションにより、前記中間データに対して編集が行われることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記拡張機能に関する情報として印刷プレビューに関する拡張機能の情報が保存されている場合、前記拡張アプリケーションにより、前記印刷データを用いてプレビュー画像が表示されることを特徴とする請求項１４又は１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
標準仕様に則った印刷データ生成ソフトウェアは、ユーザがデバイス固有の印刷データ生成ソフトウェアを導入することなく印刷が実現できるというメリットがある。一方で、デバイスに対して最適なカスタマイズができない。そこで、ベンダ固有の拡張アプリケーションを用いて、印刷データ生成ソフトウェアの機能を拡張する仕組みが存在する。  Ｗｉｎｄｏｗｓ（登録商標）においては、プリンタドライバに不足する機能を拡張するための拡張アプリケーションとして、Ｗｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐ（ＷＳＤＡ）と呼ばれる拡張アプリケーションがある。特許文献１には、印刷装置を提供するベンダが、ＷＳＤＡを提供することで、描画アプリケーションから印刷を実行する際の印刷設定画面をカスタマイズすることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１６４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このＷＳＤＡは依然として提供する機能に制限があった。本発明は、このような課題に鑑み、印刷データ生成ソフトウェアの拡張アプリケーションとして、より良い機能を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一態様の情報処理装置は、第１のタイミングで取得される印刷データ生成ソフトウェアと、前記第１のタイミングとは異なる第２のタイミングで取得される前記印刷データ生成ソフトウェアとは異なる拡張アプリケーションとを備える情報処理装置であって、前記拡張アプリケーションにより提供される設定画面において入力された情報に基づき、設定情報を生成する生成手段と、前記生成された設定情報に基づき、前記拡張アプリケーションにより提供される拡張機能を実行する実行手段と、を備え、前記拡張機能に関する情報は、ＯＳによる編集が行われないよう処理され、前記印刷データ生成ソフトウェアにより、前記設定情報に基づき印刷データが生成される。
【発明の効果】
【０００６】
本発明により、印刷データ生成ソフトウェアの拡張アプリケーションとして、より良い機能を提供することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】印刷システムのハードウェア構成を示すブロック図。
【図２】印刷におけるデータフローを説明するためのブロック図。
【図３】印刷設定を行う画面を説明するための模式図。
【図４】割り付け印刷を説明するための模式図。
【図５】印刷プレビュー機能のユーザインタフェースの模式図。
【図６】拡張機能を含まない能力情報と印刷設定情報の一例を示す図。
【図７】拡張機能を含む能力情報と印刷設定情報の一例を示す図。
【図８】印刷設定の整合性チェック実施後の印刷設定情報を示す図。
【図９】実施形態１における印刷設定情報の記載例を示す図。
【図１０】印刷データ生成ソフトウェアの処理を示すフローチャート。
【図１１】印刷データ生成ソフトウェアの処理を示すフローチャート。
【図１２】印刷データ生成ソフトウェアの処理を示すフローチャート。
【図１３】実施形態２における能力情報の記載例を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【０００９】
＜＜実施形態１＞＞
＜印刷システムのハードウェア構成＞
図１は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ１０１は、情報処理装置の一例であり、入力インタフェース１１０、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、外部記憶装置１１４、出力インタフェース１１５、及び入出力インタフェース１１６を有する。また、入力インタフェース１１０には、キーボード１１８、ポインティングデバイス１１７などの入力デバイスが接続され、出力インタフェース１１５には、表示部１１９などの表示デバイスが接続されている。
【００１０】
ＲＯＭ１１２には、初期化プログラムが格納され、外部記憶装置１１４には、描画アプリケーション等のアプリケーションプログラム群、オペレーティングシステム（ＯＳ）、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。ＲＡＭ１１３は、外部記憶装置１１４にストアされる各種のプログラムの実行の際のワークメモリ等として使用される。
【００１１】
なお、本実施形態では、ＣＰＵ１１１が、ＲＯＭ１１２に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ１０１における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置１０２は、入出力インタフェース１１６を介して、ホストコンピュータ１０１と接続されている。ここでは、ホストコンピュータ１０１と印刷装置１０２が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。また、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法（例えば電子写真方式）で印刷が実行されても良い。ホストコンピュータ１０１は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
【００１２】
＜拡張アプリケーションの必要性＞
ここで、拡張アプリケーションの必要性について説明する。従来、プリンタベンダはデバイス（印刷装置）毎にプリンタドライバを作成し、ユーザはデバイスに適したプリンタドライバを導入する必要あった。それに対して、複数のデバイスで動作可能なプリンタドライバとしてジェネリックドライバというものが存在する。近年では、ＯＳベンダが標準仕様に則ったジェネリックドライバを提供し、印刷装置を提供するプリンタベンダが標準仕様に則ったデバイス（印刷装置）を作ることで、プリンタベンダ独自のプリンタドライバを導入せずに印刷することも可能となっている。また、印刷環境が多様化する中で、プリンタドライバが導入できないような環境（例えば、スマートフォン等）では、標準仕様に則って印刷データを生成する印刷データ生成アプリケーションによって印刷を行うものも存在する。以降、ジェネリックプリンタドライバや印刷データ生成アプリケーションを、「印刷データ生成ソフトウェア」として説明する。
【００１３】
このような印刷データ生成ソフトウェアは、標準仕様に則っているため、ユーザがデバイス固有の印刷データ生成ソフトウェアを導入することなく印刷が実現できるというメリットがある。一方で、デバイスに対して最適なカスタマイズができない。特に、ＯＳと共に提供される印刷データ生成ソフトウェアは、最低限の機能のみ搭載しているため、プリンタベンダの提供する印刷装置を活用するのに十分な機能が利用できない。そこで、本実施形態では、拡張アプリケーションを用いて拡張機能を提供する。本実施形態の拡張アプリケーションは、ユーザによる印刷指示の前に起動して印刷設定画面の表示し、さらに、印刷指示の後に起動し、印刷設定情報や中間データの編集、及びＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）表示を伴う機能を提供することができる。このように、印刷設定画面のカスタマイズと中間データの編集といった複数の機能を持ち、印刷指示前及び印刷指示後といった異なるタイミングで複数回起動される。よって、以降の説明において、本実施形態の拡張アプリケーションを、統合拡張アプリケーションとも呼ぶ。以下、本実施形態の処理フローについて説明する。
【００１４】
＜印刷におけるデータフロー＞
図２は、印刷におけるデータフローを説明するための図である。図２（ａ）は、統合拡張アプリケーション２０３が、描画アプリケーション２０１と、印刷データ生成ソフトウェア２０２と、印刷装置１０２のいずれとも関連付けられていない場合のデータフローを示す図である。なお、描画アプリケーション２０１とは印刷されるコンテンツデータ（紙面上に印刷を形成する元となる画像やテキスト情報等の描画データ）を作成するソフトウェアであり、コンテンツ生成アプリケーションとも呼ぶ。描画アプリケーション２０１は、例えば、文書作成アプリケーション、表計算アプリケーション、プレゼンテーションアプリケーション等が相当する。
【００１５】
印刷を指示する場合、ユーザは、描画アプリケーション２０１の提供する画面を介して表示される、ＯＳ（不図示）もしくは印刷データ生成ソフトウェア２０２が提供する印刷設定画面を用いて、所望の印刷設定を入力する。その後、ユーザは再度、描画アプリケーション２０１の提供する画面に戻り、描画アプリケーション２０１の提供する画面を用いて印刷を指示する。この時、描画アプリケーション２０１は、ユーザによって印刷設定画面が閉じられた際や、印刷指示がされた際に、ＯＳの機能を利用し、印刷設定の整合性チェックを行なわせる。
【００１６】
その後、ＯＳは、ユーザからの印刷指示に基づき、描画アプリケーション２０１が生成した描画データに基づいて中間データ（入力データとも呼ぶ）を生成して、印刷データ生成ソフトウェア２０２に渡す。なお、ここでは中間データの形式は、ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ形式のデータ（ＸＰＳ形式のデータ）とする。ただし、本実施形態の中間データの形式は、Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ形式のデータ（ＧＤＩ形式データ）でもよい。さらには、ＸＰＳ形式でもＧＤＩ形式でもない別の形式のデータでもよい。また、描画アプリケーション２０１の種類によっては、描画アプリケーション２０１自体が中間データを生成してもよい。つまり、描画アプリケーション２０１が、描画データに基づいて中間データを生成し、その中間データがＯＳを介して印刷データ生成ソフトウェア２０２に送られてもよい。さらには、ＯＳは、描画アプリケーション２０１が生成したＸＰＳ形式の中間データに修正を加えて新たにＸＰＳ形式の中間データを生成してもよい。
【００１７】
印刷データ生成ソフトウェア２０２は、中間データに基づき印刷装置が解釈可能な印刷データ（印刷コマンドとも呼ぶ）を生成し、印刷装置１０２に送信する。なお、印刷データソフトウェア２０２は、複数のプリンタベンダの印刷装置に対して使用可能な印刷データを生成する。つまり、ベンダＡの印刷装置であっても、ベンダＢの印刷装置であっても、同一の印刷データソフトウェア２０２により生成される印刷データを使って印刷することができる。印刷装置１０２は、印刷データ生成ソフトウェア２０２から送られた印刷データに基づき紙面への印刷を行う。
【００１８】
次に、図２（ｂ）は、統合拡張アプリケーション２０３が、印刷データ生成ソフトウェア２０２と関連付けられた場合のデータフローを示す図である。なお、本実施形態の印刷データ生成ソフトウェア２０２は、ＯＳに予め含まれるソフトウェアである。つまり、ＯＳがホストコンピュータ１０１にインストールされた段階で印刷データ生成ソフトウェアも使用可能である。一方、統合拡張アプリケーション２０３は、ＯＳに予め含まれないソフトウェアである。つまり、ＯＳがホストコンピュータ１０１にインストールされた段階では、統合拡張アプリケーション２０３は、インストールされていない。そのため、ユーザは、ホストコンピュータ１０１を操作して統合拡張アプリケーション２０３をインターネット等のネットワークを介して所定のサーバからダウンロードして、インストールする必要がある。また、ホストコンピュータ１０１に印刷装置１０２が接続された場合、ＣＰＵ１１１が印刷装置１０２から印刷装置１０２のデバイス識別情報を取得し、この取得されたデバイス識別情報を用いて統合拡張アプリケーション２０３を取得してもよい。つまり、印刷装置１０２から取得されたデバイス識別情報に対応する統合拡張アプリケーション２０３を、インターネット等のネットワークを介して所定のサーバからダウンロードしてインストールしてもよい。
【００１９】
このように、印刷データ生成ソフトウェア２０２と、統合拡張アプリケーション２０３は、互いに異なるタイミングで取得され、別々のファイルとしてホストコンピュータ１０１に保持される。なお、印刷データソフトウェア２０２および統合拡張アプリケーション２０３は、更新されてバージョンアップされることもある。しかしながら、この更新処理も別々のタイミングで行われる。なお、統合拡張アプリケーション２０３がインストールされた場合、ＯＳが、印刷データ生成ソフトウェア２０２と統合拡張アプリケーション２０３を関連付ける（紐付ける）。なお、統合拡張アプリケーション２０３と印刷装置１０２とが紐付いていてもよい。特に、デバイス識別情報を用いて統合拡張アプリケーション２０３がダウンロードされる場合には、統合拡張アプリケーション２０３と印刷装置１０２とはデバイス識別情報により紐付いていると言える。
【００２０】
本実施形態で説明する統合拡張アプリケーション２０３は、印刷設定画面拡張ユニット２０４と、レイアウト拡張ユニット２０５と、プレビューユニット２０６と、を備える。印刷設定画面拡張ユニット２０４は、印刷設定をユーザに入力させるための印刷設定画面を提供する。レイアウト拡張ユニット２０５は、印刷データ生成ソフトウェア２０２が処理する前の中間データに対してレイアウト処理を行う。具体的には、レイアウト拡張ユニット２０５は、描画アプリケーション２０１により生成された複数のページを１枚の用紙の面に配置して印刷するための割り付け印刷機能（Ｎｉｎ１機能またはＮｕｐ機能とも呼ぶ）を提供する。例えば、レイアウト拡張ユニット２０５は、２ページ分のデータを並べて、１ページにレイアウト処理する。プレビューユニット２０６は、印刷データ生成ソフトウェア２０２が生成した印刷データに基づき、表示及び編集の少なくとも一方を実行可能である。
【００２１】
なお、各ユニットの処理が終わるたびに統合拡張アプリケーション２０３の動作が終了しても良い。その場合、各ユニットを使う要求を受ける度にＯＳが統合拡張アプリケーション２０３を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット２０４の処理が終了するとＯＳは拡張アプリケーション２０３の動作を終了させるが、レイアウト拡張ユニット２０５の処理が終了してもＯＳは拡張アプリケーション２０３を起動させたままにしても良い。
【００２２】
また、統合拡張アプリケーション２０３の各ユニットは、ＵＩの表示が可能であるが、ＵＩを表示しなくてもよい。例えば、レイアウト拡張ユニット２０５については、ＵＩを表示せずに中間データの編集のみを行い、編集した中間データを印刷データ生成ソフトウェア２０２に出力してもよい。なお、レイアウト拡張ユニット２０５がＵＩを表示可能である場合は、例えば、中間データに基づいてプレビュー画像および印刷設定を変更するためのコントロールアイテムを含むプレビュー画面を表示してもよい。尚、本発明を実現するための統合拡張アプリケーション２０３の構成は、前述の機能を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよいことは言うまでもない。以上のように、拡張アプリケーション２０３は、設定画面を表示する機能、印刷データ生成ソフトウェアに入力される中間データを編集する機能、および、印刷データを表示する機能の少なくとも１つを備えると言える。
【００２３】
印刷を指示する場合、ユーザは、まず、描画アプリケーション２０１の提供する画面において印刷設定を入力するための指示を行う。この指示に応じて、統合拡張アプリケーション２０３が起動し、印刷設定画面拡張ユニット２０４が提供する印刷設定画面が表示される。ユーザは、この印刷設定画面を用いて所望の印刷設定を入力する。
【００２４】
図３は、統合拡張アプリケーション２０３の印刷設定拡張ユニット２０４が提供する印刷設定画面の一例である。なお、図２（ａ）のように、統合拡張アプリケーション２０３が印刷データ生成ソフトウェア２０２に関連付けられていない場合、ＯＳや印刷データ生成ソフトウェア２０２が提供する標準の印刷設定画面が使用されることが一般的である。この標準の印刷設定画面では、印刷データ生成ソフトウェア２０２が提供する機能のみが設定可能である。それに対して、統合拡張アプリケーション２０３が提供する印刷設定画面では、統合拡張アプリケーション２０３が提供する拡張機能の設定も可能とする。拡張機能とは、印刷データ生成ソフトウェア２０２が備えていない機能であり、統合拡張アプリケーション２０３が提供可能な機能を示す。図３の例では、レイアウト拡張ユニット２０５で提供される、割り付け印刷の設定と、プレビューユニット２０６で提供される印刷プレビュー機能の設定と、を行うことができる。つまり、本実施形態の統合拡張アプリケーション２０３の提供する印刷設定画面は、拡張機能の設定する表示アイテムとして、割り付け印刷を設定可能なコントロールアイテムと、印刷プレビュー画面を表示することを設定可能なコントロールアイテムと、を含む。ただし、本実施形態の統合拡張アプリケーション２０３は、この２つの拡張機能だけに限らず、スタンプ機能等を設定可能になっていてもよい。つまり、印刷設定画面にスタンプ機能等を設定可能なコントロールアイテムを表示してもよい。統合拡張アプリケーション２０３が提供可能な拡張機能については、統合拡張アプリケーション２０３がインストールされた際に、決定されるとよい。その場合、ホストコンピュータ１０１又は接続されている印刷装置１０２の種類に応じて提供可能な拡張機能が決定される。また、統合拡張アプリケーション２０３がインストールされた後に、提供可能な拡張機能が決定されることも考えられる。その場合は、統合拡張アプリケーション２０３が接続されている印刷装置１０２と通信を行い、印刷装置１０２の種類と備えている機能に応じて、提供可能な拡張機能が決定される。具体的には、印刷装置１０２の種類と備えている機能のうち少なくともいずれかに関する情報を取得し、提供可能な拡張機能が決定される。
【００２５】
描画アプリケーション２０１は、ＯＳにより生成されたデフォルトの印刷設定情報（印刷設定を示す情報）を取得し、印刷設定拡張ユニット２０４の起動時に、この印刷設定情報を印刷設定拡張ユニット２０４に渡す。印刷設定拡張ユニット２０４は、ユーザ指示によって印刷設定画面が閉じられた際や、印刷設定画面内で印刷設定の変更が指示された際に、取得した印刷設定情報を編集する。具体的には、印刷設定画面によりユーザ入力された入力情報に基づき、取得した印刷設定情報を編集して新たな印刷設定情報（印刷設定を示す情報）を生成する。印刷設定情報の生成に関する処理の詳細については、図１０を用いて後述する。この印刷設定情報は、ＯＳの定義する書式に基づきＸＭＬ形式で記述された、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるデータ内に含まれるものとする。ただし、本実施形態の印刷設定情報は、ＰｒｉｎｔＴｉｃｋｅｔ（以下、「ＰＴ」と表記する場合もある）に限らず、他の形式であってもよい。また、印刷設定拡張ユニット２０４は、ＯＳにより生成されたデフォルトの印刷設定情報を取得し、そのデフォルトの印刷設定情報に対してユーザによる入力情報を反映し、新たに、印刷設定情報を生成（編集）してもよい。印刷設定拡張ユニット２０４は、生成したＰＴを、描画アプリケーション２０１に返却する。
【００２６】
その後、描画アプリケーション２０１は、ＯＳに対して、ＯＳの機能を利用し、ＰＴの整合性チェックの依頼を行う。つまり、ＯＳは、描画アプリケーション２０１からの指示に基づき、ＰＴの整合性チェックを行う。この整合性チェックについては、図６〜図９を用いて後述する。
【００２７】
整合性チェック後、ＯＳは、描画アプリケーション２０１にＰＴを返却する。そして、描画アプリケーション２０１の提供する画面においてユーザから印刷指示がなされると、ＯＳは、印刷指示に基づき中間データを生成する。また、ＯＳは、統合拡張アプリケーション２０３のレイアウト拡張ユニット２０５を起動する。なお、本実施形態の中間データは、描画アプリケーション２０１により生成された描画データと、印刷設定情報であるＰＴと、を含むものとする。また、中間データの形式は、ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ形式のデータ（ＸＰＳ形式のデータ）とする。ただし、本実施形態の中間データの形式は、Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ形式のデータ（ＧＤＩ形式データ）でもよい。さらには、ＸＰＳ形式でもＧＤＩ形式でもない別の形式のデータでもよい。また、描画アプリケーション２０１の種類によっては、描画アプリケーション２０１自体が中間データを生成してもよい。つまり、描画アプリケーション２０１が、描画データに基づいて中間データを生成し、その中間データがＯＳを介して印刷データ生成ソフトウェア２０２に送られてもよい。さらには、ＯＳは、描画アプリケーション２０１が生成したＸＰＳ形式の中間データに修正を加えて新たにＸＰＳ形式の中間データを生成してもよい。
【００２８】
レイアウト拡張ユニット２０５は、生成された中間データを取得し、中間データ内のＰＴに基づいて、中間データの編集を行う。図４は、統合拡張アプリケーション２０３のレイアウト拡張ユニット２０５が提供する、割り付け印刷機能の概略を示す図である。割り付け印刷では、印刷データ中の複数のページを１枚の用紙の面に配置するようにレイアウトを行う。図４の例では、２ページ印刷が設定されており、レイアウト拡張ユニット２０５は、連続する２つのページ４０１とページ４０２を１つのページに配置したデータ４０３を生成する。本実施形態では簡略化のため、レイアウト拡張ユニット２０５は、割り付け印刷機能として２ページ印刷及び４ページ印刷のレイアウト機能のみを有するものとして以降の説明を行う。しかしながら、実際には１枚の用紙面にさらに多くのページを配置する設定も可能である。レイアウト拡張ユニット２０５における中間データの編集処理の詳細については、図１１を用いて後述する。レイアウト拡張ユニット２０５は、編集を行った中間データを印刷データ生成ソフトウェア２０２に出力する。
【００２９】
印刷データ生成ソフトウェア２０２は、取得した中間データ内のＰＴに基づき、拡張機能以外の機能（印刷データ生成ソフトウェア２０２が提供可能な機能）について処理を実行する。そして、印刷データ生成ソフトウェア２０２は、印刷装置が解釈可能な形式の印刷データ（印刷コマンドとも呼ぶ）を生成する。なお、印刷データソフトウェア２０２は、複数のプリンタベンダの印刷装置に対して使用可能な印刷データを生成する。つまり、ベンダＡの印刷装置であっても、ベンダＢの印刷装置であっても、同一の印刷データソフトウェア２０２により生成される印刷データを使って印刷することができる。
【００３０】
印刷データ生成ソフトウェア２０２は、生成した印刷データと、レイアウト拡張ユニット２０５から取得した中間データ内のＰＴと、を出力する。次に、ＯＳは統合拡張アプリケーション２０３のプレビューユニット２０６を起動する。
【００３１】
プレビューユニット２０６は、印刷データ生成ソフトウェア２０２が生成した印刷データと、ＰＴと、を取得し、印刷プレビューの表示を行う。ユーザは印刷プレビューによって所望の印刷結果になることを確認した後に、印刷プレビューのＵＩ画面を通して印刷開始を指示する。図５は、統合拡張アプリケーション２０３のプレビューユニット２０６が提供する、印刷プレビュー画面の一例である。表示アイテム５０１は、印刷プレビュー上で表示するページを変更するためのコントロールアイテムである。ユーザは、このコントールアイテムを利用して表示ページを変更できる。また、現在の印刷データと印刷設定で発生する印刷の総ページ数を確認することもできる。表示アイテム５０２は、指定されているページの印刷結果のイメージを示す印刷プレビュー画面である。表示アイテム５０３は印刷を開始するためのボタンである。表示アイテム５０４はキャンセルボタンで、ユーザがこのボタンを押下すると、その後の印刷処理はキャンセルされる。なお、図５の画面において、印刷部レビュー画面と共に、印刷設定を変更するためのコントロールアイテムを表示してもよい。例えば、図３で示した各設定（印刷の向き、フチなし印刷設定、両面印刷設定、割り付け印刷設定等）を変更可能なコントロールアイテムを表示してもよい。プレビューユニット２０６の詳細な処理については、図１２を用いて後述する。プレビューユニット２０６は、ユーザからの印刷開始指示を受け、印刷データを出力する。
【００３２】
プレビューユニット２０６から出力された印刷データは、印刷装置１０２に送られる。印刷装置１０２は、印刷データ生成ソフトウェア２０２から送られた印刷データに基づき紙面への印刷を行う。上記の構成によって、ユーザは印刷データ生成ソフトウェア２０２が有していないレイアウト機能や印刷プレビュー機能を、統合拡張アプリケーション２０３によって使用することが可能となる。以上が、本実施形態の印刷処理フロー構成の概略である。以下では、各処理の詳細について説明する。
【００３３】
＜印刷設定画面拡張ユニット２０４の処理＞
図１０を用いて、印刷設定画面拡張ユニット２０４における印刷設定情報の生成処理の詳細について説明する。図１０は、印刷設定画面拡張ユニット２０４が行う処理を示すフローチャートである。以降、印刷設定画面拡張ユニット２０４を、各処理の主体として説明することもあるが、実際には、対応するプログラム（統合拡張アプリケーション２０３）をＣＰＵ１１１が実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで編集アプリケーション２０５の主要な処理を、便宜的にわかりやすく示したフローである。
【００３４】
まず、印刷設定画面拡張ユニット２０４は、描画アプリケーション２０１の提供する画面を介したユーザ指示に応じて、図３で示したような印刷設定画面を表示する。印刷設定画面拡張ユニット２０４が提供する印刷設定画面では、統合拡張アプリケーション２０３が提供する拡張機能の設定も可能とする。
【００３５】
そして、Ｓ１００１において、印刷設定画面拡張ユニット２０４は、印刷設定画面においてユーザ入力された入力情報を取得する。そして、Ｓ１００２において、印刷設定画面拡張ユニット２０４は、統合拡張アプリケーション２０３が、印刷データ生成ソフトウェア２０２が提供する標準機能以外の機能（つまり拡張機能）を提供しているか判定する。拡張機能としては、設定項目の拡張だけでなく、標準の設定項目であってもその設定項目として選択可能な選択肢が、標準より拡張している場合を含む。統合拡張アプリケーション２０３が拡張機能を提供している場合はＳ１００４へ進み、統合拡張アプリケーション２０３が拡張機能を提供していない場合はＳ１００３へ進む。
【００３６】
ここで、拡張機能について説明するため、まず、図６を用いて印刷データ生成ソフトウェア２０２の提供する機能（標準の設定機能）について説明する。図６の能力情報６０１は、印刷データ生成ソフトウェア２０２の備えている機能を示す能力情報の一例である。この能力情報６０１は、印刷データ生成ソフトウェア２０２で設定可能な機能を、ＯＳの定義する書式に基づきＸＭＬ形式で記述したものであり、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ（以下、「ＰＣ」と表記する場合もある）と呼ばれる。印刷設定画面拡張ユニット２０４はこのＰＣに記述された情報に基づき印刷設定画面を提供する。なお、ここでは印刷データ生成ソフトウェア２０２は、標準設定機能の設定項目として、用紙の種類、印刷の向きの機能を備えるものとする。つまり、ＰＣ中に、用紙の種類設定（「Ｆｅａｔｕｒｅ」に「ＭｅｄｉａＴｙｐｅ」が記載された項目に対応）と、印刷の向きの設定（「Ｆｅａｔｕｒｅ」に「Ｏｒｉｅｎｔａｔｉｏｎ」が記載された項目に対応）が含まれている。また、印刷データ生成ソフトウェア２０２は、用紙の種類の設定項目に対応する選択肢として、普通紙（「Ｐｌａｉｎ」が記載された「Ｏｐｔｉｏｎ」）と、写真用紙（「ＰｈｏｔｏＰａｐｅｒ」が記載された「Ｏｐｔｉｏｎ」）を含む。印刷の向きの設定項目に対応する選択肢として、縦（「Ｐｏｒｔｒａｉｔ」と記載された「Ｏｐｔｉｏｎ」）と、横（「Ｌａｎｄｓｃａｐｅ」と記載された「Ｏｐｔｉｏｎ」）を含む。なお、実際には、印刷データ生成ソフトウェア２０２の標準設定機能としては、上記２つ以外の標準設定機能（用紙サイズ設定等）も含まれるが、ここでは説明の簡略化のため、上記２つ以外の標準設定機能は省略している。
【００３７】
Ｓ１００２においてＮＯと判定された場合、統合拡張アプリケーション２０３は拡張機能を提供していない。つまり、図６の能力情報６０１内に記載された機能以外の設定（つまり拡張機能の設定）は存在しないことを意味する。この場合、Ｓ１００３では、印刷設定画面拡張ユニット２０４は、図６の印刷設定情報６０２に示すとおり、通常通りのＰＴを作成する。つまり、標準設定機能である用紙種と印刷の向きについて、それぞれ設定された項目をＰＴに入力する。図６の印刷設定情報６０２では、用紙の種類として「ＰｈｏｔｏＰａｐｅｒ」が設定され、印刷の向きとして「Ｐｏｒｔｒａｉｔ」が設定された場合のＰＴを示す。
【００３８】
一方、Ｓ１００２においてＹＥＳと判定された場合、統合拡張アプリケーション２０３が拡張機能を提供している。つまり、図６の能力情報６０１内に記載された機能以外の設定（つまり拡張機能の設定）が存在することを意味する。この場合、Ｓ１００４では、印刷設定画面拡張ユニット２０４は、図９に示すＰＴを生成する。つまり、“Ｅｘｔｅｎｓｉｏｎ”というＰａｒａｍｅｔｅｒを設け、拡張機能については、このＥｘｔｅｎｓｉｏｎというＰａｒａｍｅｔｅｒ中に記述する。具体的には、図９に示すとおり、拡張機能である、割り付け印刷機能（ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙのＦｅａｔｕｒｅ）の項目及びその選択肢である４ｉｎ１設定（ＰａｇｅｓＰｅｒＳｈｅｅｔ＿４のＯｐｔｉｏｎ）を“Ｅｘｔｅｎｓｉｏｎ”の中に記載する。さらに、同じく拡張機能である印刷プレビュー機能の設定項目（ＪｏｂＰｒｅｖｉｅｗのＦｅａｔｕｒｅ）とその選択肢であるＯＮ設定を“Ｅｘｔｅｎｓｉｏｎ”の中に記載する。拡張機能以外の設定機能（標準設定機能）については、図６と同様に、通常通り記載する。
【００３９】
Ｓ１００５では、印刷設定画面拡張ユニット２０４は、Ｓ１００３又はＳ１００４により生成されたＰＴを描画アプリケーション２０１に出力する。
【００４０】
なお、上述の例では、Ｓ１００２において、印刷設定画面拡張ユニット２０４は、統合拡張アプリケーション２０３が拡張機能を提供しているかを判定したが、本実施形態はこれに限定されない。例えば、印刷設定画面拡張ユニット２０４は、Ｓ１００１にて取得した入力情報の中に拡張機能に関する情報が含まれているかを判定してもよい。この場合、入力情報の中に、いずれかの拡張機能に関する情報が含まれている場合は、Ｓ１００４へ進む。また、Ｓ１００２において、取得した入力情報の中に、いずれかの拡張機能に関する情報が含まれていない場合は、Ｓ１００３へ進むとよい。
【００４１】
＜印刷設定の整合性チェック＞
次に、Ｓ１００５の後に行われる印刷設定の整合性チェックについて説明する。ＰＴを取得した描画アプリケーション２０１は、ＯＳの機能を利用し、印刷データ生成ソフトウェア２０２の能力情報と印刷設定情報とから印刷設定の整合性チェックを行う。具体的には、描画アプリケーション２０１から指示を受けたＯＳは、ＰＴに記載されている情報を参照し、ＰＴの中に、ＰＣ中には存在しない設定機能に関する情報が含まれているかをチェックする。そして、ＯＳは、ＰＣにはない設定機能に関する情報がＰＴ中に記述されていた場合、その設定機能に関する情報をＰＴから削除、若しくは、ＰＣに存在する適切な設定値に変更する。これは、印刷データ生成ソフトウェア２０２の処理可能な機能以外の設定値については、不正な値と見なされてしまうためである。
【００４２】
例えば、印刷データ生成ソフトウェア２０２が、図６の能力情報６０１に示すＰＣを持ち、Ｓ１００３において図６の印刷設定情報６０２に示すＰＴが生成された場合を説明する。この場合、印刷設定情報６０２のＰＴに存在する設定値は、全て能力情報６０１のＰＣ中に存在する。よってこの場合、ＯＳは、印刷設定情報６０１の変更は行わない。
【００４３】
一方で、比較例として、仮に、印刷データ生成ソフトウェア２０２が、図７の能力情報７０１に示すＰＣを持ち、図７の印刷設定情報７０２に示すＰＴが生成された場合を説明する。この場合、印刷設定情報７０２に示すＰＴは、割り付け印刷機能として４ページ分のデータを１ページにレイアウトする４ｉｎ１設定が設定されており、且つ、印刷プレビュー機能が有効（ＯＮ）に設定されている。しかしながら、能力情報７０１に示すＰＣの中には、印刷プレビュー機能の設定項目（ＪｏｂＰｒｅｖｉｅｗのＦｅａｔｕｒｅ）は存在しない。また、能力情報７０１に示すＰＣの中には、割り付け印刷機能（ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙのＦｅａｔｕｒｅ）の設定項目は存在するが、選択肢として、４ｉｎ１設定（ＰａｇｅｓＰｅｒＳｈｅｅｔ＿４のＯｐｔｉｏｎ）は存在しない。このような場合、ＯＳは、ＰＴ中の割り付け印刷機能（ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙのＦｅａｔｕｒｅ）におけるＯｐｔｉｏｎをＮｏｎｅに変更する。さらに、ＯＳは、ＰＴ中の印刷プレビュー機能の設定項目（ＪｏｂＰｒｅｖｉｅｗのＦｅａｔｕｒｅ）を削除する。その結果、整合性チェックにより、印刷設定情報７０２は、図８に示すような印刷設定情報（ＰＴ）に変更される。なお、図８では、ＯＳは、ＰＴ中の割り付け印刷機能（ＪｏｂＮＵｐＡｌｌＤｏｃｕｍｅｎｔｓＣｏｎｔｉｇｕｏｕｓｌｙのＦｅａｔｕｒｅ）におけるＯｐｔｉｏｎをＮｏｎｅに変更したが、本実施形態はこれに限られない。例えば、ＰＣ中に存在する別の設定値（例えば、「ＰａｇｅｓＰｅｒＳｈｅｅｔ＿２」）に変更してもよい。
【００４４】
このように、整合性チェックにおいてＯＳによりＰＴ中の設定値の編集（変更や削除）が行われると、統合拡張アプリケーション２０３によって拡張機能を追加した場合でも、整合性チェックにより印刷設定情報が正しく保持されない。その結果、レイアウト拡張ユニット２０５やプレビューユニット２０６に正しく印刷設定情報が伝わらない可能性がある。
【００４５】
そこで、本実施形態では、図１０のＳ１００４において説明したとおり、印刷設定情報であるＰＴの中に、印刷設定の整合性チェックにおいても設定値が変更されないＰａｒａｍｅｔｅｒを設ける。そして、図９に示すように、印刷設定画面拡張ユニット２０４は、拡張機能については、ＥｘｔｅｎｓｉｏｎというＰａｒａｍｅｔｅｒの中に記載し、その他の設定については通常通り記載し、印刷設定情報であるＰＴを作成する。これにより、印刷設定の整合性チェックを行なわれても、ＯＳは、このＥｘｔｅｎｓｉｏｎのＰａｒａｍｅｔｅｒ内に記載された設定値については変更しないように動作する。
【００４６】
尚、ＥｘｔｅｎｓｉｏｎというＰａｒａｍｅｔｅｒ名は、ＯＳが印刷設定の変更を行わないＰａｒａｍｅｔｅｒ名の一例であり、印刷設定の整合性チェックにおいても設定値が変更されない名称であれば、その他のＰａｒａｍｅｔｅｒ名でも構わない。
【００４７】
整合性チェック後、ＯＳは、描画アプリケーション２０１にＰＴを返却する。そして、描画アプリケーション２０１の提供する画面においてユーザから印刷指示がなされると、ＯＳは、印刷指示に基づき中間データを生成する。また、ＯＳは、統合拡張アプリケーション２０３のレイアウト拡張ユニット２０５を起動する。
【００４８】
＜レイアウト拡張ユニット２０５における処理＞
次に、レイアウト拡張ユニット２０５の処理について、図１１を用いて説明する。図１１は、レイアウト拡張ユニット２０５の処理を示すフローチャートである。以降、レイアウト拡張ユニット２０５を、各処理の主体として説明することもあるが、実際には、対応するプログラム（統合拡張アプリケーション２０３）をＣＰＵ１１１が実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで統合拡張アプリケーション２０３の主要な処理を、便宜的にわかりやすく示したフローである。
【００４９】
まず、Ｓ１１０１において、レイアウト拡張ユニット２０５は、中間データを取得する。次に、Ｓ１１０２において、レイアウト拡張ユニット２０５は、中間データ内のＰＴ中に、“Ｅｘｔｅｎｓｉｏｎ”のＰａｒａｍｅｔｅｒが存在するか判定する。Ｓ１１０２において、“Ｅｘｔｅｎｓｉｏｎ”が存在しない場合は、Ｓ１１０５へ進む。Ｓ１１０２において、“Ｅｘｔｅｎｓｉｏｎ”存在する場合は、Ｓ１１０３へ進む。
【００５０】
Ｓ１１０３では、レイアウト拡張ユニット２０５は、Ｅｘｔｅｎｓｉｏｎ中に記載されている拡張機能が、レイアウト拡張ユニット２０５自身の機能か判定する。図９に示すＰＴの場合、Ｅｘｔｅｎｓｉｏｎ中に、レイアウト拡張ユニット２０５の機能である割り付け印刷設定が記載されている。よって、Ｓ１１０４へ進む。Ｅｘｔｅｎｓｉｏｎ中に、レイアウト拡張ユニット２０５の機能が記載されていない場合は、Ｓ１１０５へ進む。
【００５１】
Ｓ１１０４では、レイアウト拡張ユニット２０５は、記載された拡張機能を実行する。つまり、図９に示すＰＴの場合、４ページ分のデータを用紙の１ページ分の面にレイアウトする処理を実行する。これは、レイアウト拡張ユニット２０５が、中間データ中の描画データを編集することに対応する。そして、Ｓ１１０５では、レイアウト拡張ユニット２０５は、編集済みの中間データ（編集済みの描画データとＰＴとを含む）を、印刷データ生成ソフトウェア２０２に対して出力する。
【００５２】
図１１に示す処理の後、印刷データ生成ソフトウェア２０２は、取得した中間データ内のＰＴに基づき、拡張機能以外の機能（印刷データ生成ソフトウェア２０２が提供可能な機能）について処理を実行する。そして、印刷データ生成ソフトウェア２０２は、印刷装置が解釈可能な形式の印刷データ（印刷コマンドとも呼ぶ）を生成する。そして、印刷データ生成ソフトウェア２０２は、生成した印刷データと、レイアウト拡張ユニット２０５から取得した中間データ内のＰＴと、を出力する。また、ＯＳは統合拡張アプリケーション２０３のプレビューユニット２０６を起動する。
【００５３】
＜プレビューユニット２０６の処理＞
次に、プレビューユニット２０６の処理について、図１２を用いて説明する。図１２は、プレビューユニット２０６の処理を示すフローチャートである。以降、プレビューユニット２０６を、各処理の主体として説明することもあるが、実際には、対応するプログラム（統合拡張アプリケーション２０３）をＣＰＵ１１１が実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度ＯＳ側に処理が移り、再度ＯＳから呼び出されるようなケースもあり得る。あくまで統合拡張アプリケーション２０３主要な処理を、便宜的にわかりやすく示したフローである。
【００５４】
まず、Ｓ１２０１において、プレビューユニット２０６は、印刷データ生成ソフトウェア２０２により生成された印刷データと、ＰＴと、を取得する。
【００５５】
Ｓ１２０２では、取得したＰＴ中に、“Ｅｘｔｅｎｓｉｏｎ”のＰａｒａｍｅｔｅｒが存在するか判定する。Ｓ１２０２において、“Ｅｘｔｅｎｓｉｏｎ”が存在しない場合は、Ｓ１２０５へ進む。Ｓ１２０２において、“Ｅｘｔｅｎｓｉｏｎ”存在する場合は、Ｓ１２０３へ進む。
【００５６】
Ｓ１２０３では、プレビューユニット２０６は、Ｅｘｔｅｎｓｉｏｎ中に記載されている拡張機能が、プレビューユニット２０６自身の機能か判定する。図９に示すＰＴの場合、Ｅｘｔｅｎｓｉｏｎ中に、プレビューユニット２０６の機能である印刷プレビューが記載されている。よって、Ｓ１２０４へ進む。Ｅｘｔｅｎｓｉｏｎ中に、プレビューユニット２０６の機能が記載されていない場合は、Ｓ１２０５へ進む。
【００５７】
Ｓ１２０４では、プレビューユニット２０６は、記載された拡張機能を実行する。つまり、図９に示すＰＴの場合、印刷プレビュー処理を実行する。印刷プレビュー処理は、取得した印刷データに基づくプレビュー画像を含む印刷プレビュー画面を表示することであり、例えば、図５に示すような印刷プレビュー画面を表示する。なお、印刷プレビュー画面には、プレビュー画像と共に、印刷設定を変更可能なコントロールアイテムを表示してもよい。
【００５８】
そして、印刷プレビュー画面に設けられたＰｒｉｎｔボタン等により印刷指示がなされると、Ｓ１２０５において、プレビューユニット２０６は、印刷データを出力する。出力された印刷データは、印刷装置１０２へ送信される。
【００５９】
なお、プレビュー画像と共に表示される、印刷設定を変更可能なコントロールアイテムを用いたユーザ操作によって、印刷設定が変更された場合、プレビューユニット２０６は、変更に基づいて印刷データを編集するとよい。そして、プレビューユニット２０６は、編集した印刷データに基づき、再度、印刷プレビュー処理を行うとよい。
【００６０】
以上説明したとおり、本実施形態の統合拡張アプリケーション２０１は、印刷設定画面を提供することができ、この印刷設定画面における入力に基づいて印刷設定情報を生成する。この印刷設定情報の生成の際、拡張機能に関する設定情報に関しては、ＯＳによる整合性チェックにより編集（変更もしくは削除）が行われないよう記述する。このような処理により、異なるタイミングで複数回起動される統合拡張アプリケーション２０３は、印刷ジョブ毎に設定される拡張機能に関する設定情報を、後続の起動タイミングにおいても適切に取得可能となる。
【００６１】
尚、上述の例では、拡張機能に関する設定情報を印刷設定情報の中に、編集されないＰａｒａｍｅｔｅｒを追加して記載したが、本実施形態はこれに限定されない。拡張機能に関する設定情報の保存方法は他にも考えられる。例えば、印刷設定画面拡張ユニット２０４は、印刷設定情報中に印刷ジョブを識別するための、固有の識別子のみを記載しておく。そして、印刷設定画面拡張ユニット２０４は、実際の印刷設定を示す情報を、印刷設定情報とは別の外部ファイルに前述の識別子と共に保存する。そして、その後に起動する、レイアウト拡張ユニット２０５やプレビューユニット２０６は、印刷設定情報内に識別子があった場合には、識別子が一致する外部ファイルを参照し、印刷設定に関する情報を読み込むといった構成も考えられる。なお、外部ファイルとは、統合拡張アプリケーション２０１の各ユニットがそれぞれアクセス可能なファイルであり、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇと呼ばれるファイルやＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇと呼ばれるファイルであってもよい。また、テキストファイル等に記載して、通常のユーザがアクセスしない保存場所に保存してもよい。
【００６２】
さらに、印刷設定画面拡張ユニット２０４は印刷設定を、外部ファイルではなく、レジストリ（ＯＳの提供する設定情報のデータベース）に保存し、外部ファイル使用時と同様の処理を実現することも可能である。このように、外部ファイルやレジストリを用いた場合も、印刷設定情報の整合性チェックがあったとしても、このような保存場所に保存された印刷設定に関する情報はＯＳによる編集が行われない。よって、統合拡張アプリケーション２０３は、拡張機能に関する設定情報を、後続の起動タイミングにおいても適切に取得可能となる。
【００６３】
＜＜実施形態２＞＞
実施形態１では、印刷設定画面拡張ユニット２０４が、印刷設定情報を適切に拡張することにより、後に起動する拡張アプリケーションに設定を伝えることを可能とした。しかしながら、実施形態１の構成では、印刷データ生成ソフトウェア２０２の能力情報には、統合拡張アプリケーション２０３で実現可能な機能が含まれていない。そのため、実際には印刷データ生成ソフトウェア２０２で実現可能な機能が、描画アプリケーション２０１からは実現不可能に見えることになる。
【００６４】
アプリケーションによっては、自身のＵＩ上に印刷設定の一部を表示し、ユーザに選択可能にさせるものもあり、こういったアプリケーションにおいては、実施形態１の構成は好ましくない。なぜなら、前述のようなアプリケーションでは、印刷データ生成ソフトウェアの能力情報として記載されている機能のみ、ＵＩ上に表示するように制御するのが一般的である。そのため、実際には動作可能な機能について、ユーザに提供することが出来ないといったことが起こってしまう。そのため、本実施形態では、描画アプリケーション２０１に対して、印刷データ生成ソフトウェア２０２の正しい能力情報を返却しつつ、本提案の課題を解決することを目的とする。
【００６５】
本実施形態では、統合拡張アプリケーション２０３がインストールされている場合に、印刷データ生成ソフトウェア２０２の能力情報（ＰＣ）を拡張する。具体的には、通常、図７の７０１のような能力情報を持つ、印刷データ生成ソフトウェア２０２に対応付けて、実施形態１に記載の統合拡張アプリケーション２０３がインストールされた場合、図１３に示すように能力情報が拡張される。能力情報の拡張はＯＳが行う。具体的には、描画アプリケーション２０１等から、能力情報の取得要求があった場合に、ＯＳは、印刷データ生成ソフトウェア２０２が持つ機能を示す能力情報に対して、統合拡張アプリケーション２０３が持つ機能を示す能力情報を追加して、送信する。例えば、描画アプリケーション２０１等が、印刷設定のためのＵＩを表示する場合に、能力情報を把握する必要がある。よって、このような場合に、描画アプリケーション２０１等は、能力情報の取得要求を行い、ＯＳは、要求元に能力情報を送信する。
【００６６】
図１３に示す能力情報では、印刷データ生成ソフトウェア２０２が持つ能力情報に対して、ＯＳは、統合拡張アプリケーション２０３が持つ、４ページの割り付け印刷機能と、印刷プレビュー機能の能力情報を追加している。能力情報が拡張されるため、アプリケーション２０１が、印刷設定の整合性チェックを行った場合でも、拡張機能に関する印刷設定が削除されない。そのため、尚、ＯＳは統合拡張アプリケーション２０３がインストールされている場合には、能力情報の追加処理を行い、インストールされていない場合には、能力情報の追加処理を行わないように動作する。統合拡張アプリケーション２０３が能力情報をＯＳに伝える手段としては、専用のＡＰＩを設ける、または、レジストリや外部ファイルに記載することが考えられる。
【００６７】
以上の処理により、アプリケーション２０１に対して、印刷データ生成ソフトウェア２０２の正しい能力情報を返却しつつ、印刷ジョブ毎に設定した拡張機能に関する設定情報を、後のタイミングで起動する拡張アプリケーションでも取得可能となる。
【００６８】
なお、本実施形態の場合、統合拡張アプリケーション２０３の印刷設定画面拡張ユニット２０４としては、拡張機能が存在しないものとして動作する。つまり、図１０のＳ１００２の判定処理において、常にＮＯと判定する。そして、Ｓ１００３において、通常通りＰＴを生成するとよい。また、本実施形態の場合、統合拡張アプリケーション２０３のレイアウト拡張ユニット２０５及びプレビューユニット２０６は、ＰＴ中における“Ｅｘｔｅｎｓｉｏｎ”が記述されているかを確認する必要はない。つまり、図１１のＳ１１０２及び図１２のＳ１２０２のステップを実行する必要はない。レイアウト拡張ユニット２０５は、Ｓ１１０２をスキップしてＳ１１０３に進み、自身の機能がＰＴ中に記述されているかの判定を行う。また、プレビューユニット２０６は、Ｓ１２０２のステップをスキップしてＳ１２０３のステップに進み、自身の機能がＰＴ中に記述されているかの判定を行う。以降の処理は実施形態１と同じである。
【００６９】
＜＜実施形態３＞＞
上述した実施形態は、以下の処理を実行することによっても実行される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。これによって、上述した目的を達成することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００７１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【００７２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【００７３】
１０２  印刷装置
２０２  印刷データ生成ソフトウェア
２０３  統合拡張アプリケーション
２０４  印刷設定拡張ユニット
２０５  レイアウト拡張ユニット
２０６  プレビューユニット
【図１】
2020009055.tif 000003
【図２】
2020009055.tif 000004
【図３】
2020009055.tif 000005
【図４】
2020009055.tif 000006
【図５】
2020009055.tif 000007
【図６】
2020009055.tif 000008
【図７】
2020009055.tif 000009
【図８】
2020009055.tif 000010
【図９】
2020009055.tif 000011
【図１０】
2020009055.tif 000012
【図１１】
2020009055.tif 000013
【図１２】
2020009055.tif 000014
【図１３】
2020009055.tif 000015