(57)【要約】【課題】Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を追加することを容易にする。【解決手段】情報処理装置は、印刷を制御するプログラムを実行する情報処理装置であって、印刷を制御するプログラムが利用可能な記憶領域であって、印刷に用いる印刷情報を記憶する印刷情報記憶部を有し、印刷を制御するプログラムは、印刷の対象となるデータを画像形成装置で印刷可能な印刷データに変換する印刷データ生成部と、印刷情報記憶部に記憶された印刷情報に、印刷データ生成部が生成する印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて所定の処理を実行する処理実行部と、として情報処理装置を機能させる。【選択図】図６
2018049581.tif 000002
【特許請求の範囲】
【請求項１】
印刷を制御するプログラムを実行する情報処理装置であって、
前記印刷を制御するプログラムが利用可能な記憶領域であって、前記印刷に用いる印刷情報を記憶する印刷情報記憶部を有し、
前記印刷を制御するプログラムは、
前記印刷の対象となるデータを画像形成装置で印刷可能な印刷データに変換する印刷データ生成部と、
前記印刷情報記憶部に記憶された前記印刷情報に、前記印刷データ生成部が生成する前記印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて前記所定の処理を実行する処理実行部と、
として前記情報処理装置を機能させる情報処理装置。
【請求項２】
前記印刷情報記憶部に記憶された前記印刷情報は、
前記所定の処理の実行情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定の処理の実行情報は、
前記所定の処理を実現するためのスクリプトを含む請求項１又は２に記載の情報処理装置。
【請求項４】
前記所定の処理の実行情報は、
前記所定の処理を実現するためのスクリプトの取得先を示す参照情報を含み、
前記処理実行部は、
前記所定の処理を実現するためのスクリプトを実行する請求項３に記載の情報処理装置。
【請求項５】
前記所定の処理の実行情報は、
前記所定の処理を実行する実行ファイルを取得するための参照情報を含み、
前記処理実行部は、前記実行ファイルを実行する請求項１に記載の情報処理装置。
【請求項６】
前記処理実行部は、
前記所定の処理を実行する機能を予め有し、
前記所定の処理の実行情報は、
前記処理実行部が前記所定の処理を実行するための設定情報を含む請求項１又は２に記載の情報処理装置。
【請求項７】
前記印刷情報記憶部は、
論理プリンタ毎に、前記印刷を制御するプログラムの設定情報を記憶する記憶領域である請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記印刷を制御するプログラムは、プリンタドライバである請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記プリンタドライバは、１つ以上のフィルタを含むＶ４プリンタドライバであり、
前記印刷データ生成部、及び処理実行部は、１つのフィルタの範囲内で提供される請求項８に記載の情報処理装置。
【請求項１０】
前記所定の処理は、
前記印刷データ生成部が生成する前記印刷データを、所定の外部装置に送信する処理を含む請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記所定の処理の実行情報は、
前記外部装置の宛先情報を含む請求項１０に記載の情報処理装置。
【請求項１２】
前記所定の処理は、
前記印刷データ生成部が生成する前記印刷データのプレビューを表示させる処理を含む請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記処理実行部は、
前記所定の処理の実行情報に基づいて、前記印刷を制御するプログラムの外部に記憶された１つ以上の拡張プラグインに前記所定の処理を実行させる実行制御部を含む請求項１乃至１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記所定の実行情報は、
前記１つ以上の拡張プラグインを呼出するためのパス情報を含む請求項１３に記載の情報処理装置。
【請求項１５】
前記処理実行部は、
前記１つ以上の拡張プラグインからの要求に応じて、画像形成装置に印刷データを出力させる出力制御部を含む請求項１３又は１４に記載の情報処理装置。
【請求項１６】
前記情報処理装置は、
所定のユーザインタフェースを表示し、ユーザによる入力データを受付するＵＩ部を有し、
前記処理実行部は、
前記１つ以上の拡張プラグインからの前記所定のユーザインタフェースの表示要求を受付し、前記ＵＩ部に前記所定のユーザインタフェースを表示させるＵＩ制御部を含む請求項１４乃至１５のいずれか一項に記載の情報処理装置。
【請求項１７】
印刷を実行する画像形成装置と、前記画像形成装置による前記印刷を制御するプログラムを実行する情報処理装置とを含む情報処理システムであって、
前記情報処理装置は、
前記印刷を制御するプログラムが利用可能な記憶領域であって、前記印刷に用いる印刷情報を記憶する印刷情報記憶部を有し、
前記印刷を制御するプログラムは、
前記印刷の対象となるデータを前記画像形成装置で印刷可能な印刷データに変換する印刷データ生成部と、
前記印刷情報記憶部に記憶された前記印刷情報に、前記印刷データ生成部が生成する前記印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて前記所定の処理を実行する処理実行部と、
として前記情報処理装置を機能させる情報処理システム。
【請求項１８】
印刷を制御するプログラムであって、
前記印刷を制御するプログラムから利用可能な記憶領域であって、前記印刷に用いる印刷情報を記憶する印刷情報記憶部と、
前記印刷の対象となるデータを画像形成装置で印刷可能な印刷データに変換する印刷データ生成部と、
前記印刷情報記憶部に記憶された前記印刷情報に、前記印刷データ生成部が生成する前記印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて前記所定の処理を実行する処理実行部と、
としてコンピュータを機能させるためのプログラム。
【請求項１９】
印刷を制御するプログラムを実行する情報処理装置による情報処理方法であって、
前記印刷を制御するプログラムから利用可能な記憶領域であって、前記印刷に用いる印刷情報を記憶する印刷情報記憶部に前記印刷情報を記憶し、
前記印刷の対象となるデータを画像形成装置で印刷可能な印刷データに変換して、印刷データを生成するステップと、
前記印刷情報記憶部に記憶された前記印刷情報に、前記生成するステップで生成する前記印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて前記所定の処理を実行するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ７までのＷｉｎｄｏｗｓＯＳ（Operating System）では、Ｖｅｒｓｉｏｎ３（以降「Ｖ３」と称する）プリンタドライバと呼ばれるプリンタドライバのアーキテクチャが採用されている。また、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｖ３プリンタドライバに加え、Ｖｅｒｓｉｏｎ４（以降「Ｖ４」と称する）プリンタドライバと呼ばれる新しいプリンタドライバのアーキテクチャが採用されている。
【０００３】
Ｖ４プリンタドライバは、フィルタパイプライン方式を採用しており、例えば、サードパーティを含むベンダが、プリンタドライバに独自のフィルタモジュールを追加することにより、独自の拡張機能を提供可能な技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フィルタを含むプリンタドライバにおいて、フィルタが実行する処理に変更を加えたいとき、フィルタに大幅な変更を加える必要がないような処理の変更であっても、フィルタをインストールし直す必要があり、利用者の利便性が損なわれていた。
【０００５】
また、Ｖ３プリンタドライバでは、例えば、独自のポートモニタ等を用意することにより、プリンタドライバに独自のフィルタモジュールを追加することなく、拡張機能を実現することができる。しかし、Ｖ４プリンタドライバでは、独自のポートモニタの利用が制限されており、ベンダが独自のポートモニタを用意して、独自の機能を追加することは困難である。
【０００６】
このように、従来の技術では、Ｖ４プリンタドライバ、又は同様の制限を持つプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を追加することには困難を伴っていた。
【０００７】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を追加することを容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、印刷を制御するプログラムを実行する情報処理装置であって、前記印刷を制御するプログラムが利用可能な記憶領域であって、前記印刷に用いる印刷情報を記憶する印刷情報記憶部を有し、前記印刷を制御するプログラムは、前記印刷の対象となるデータを画像形成装置で印刷可能な印刷データに変換する印刷データ生成部と、前記印刷情報記憶部に記憶された前記印刷情報に、前記印刷データ生成部が生成する前記印刷データに関する所定の処理の実行情報が含まれている場合、該実行情報に基づいて前記所定の処理を実行する処理実行部と、として前記情報処理装置を機能させる。
【発明の効果】
【０００９】
本発明の一実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を追加することが容易になる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】一実施形態に係るクライアント装置及びサーバ装置の一例のハードウェア構成を示す図である。
【図３】一実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【図４】クライアント装置の一例のソフトウェア構成を示す図である。
【図５】Ｖ４プリンタドライバ及びストアデバイスアプリがアクセス可能な記憶領域について説明するための図である。
【図６】一実施形態に係るクライアント装置の機能構成の例を示す図である。
【図７】一実施形態に係るプリンタドライバの描画処理の概要を示すフローチャートである。
【図８】一実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。
【図９】一実施形態に係る情報処理システムの処理の別の一例を示すシーケンス図である。
【図１０】第１の実施形態に係るクライアント装置の機能構成の一例を示す図である。
【図１１】第１の実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。
【図１２】第１の実施形態に係る実行情報のイメージを示す図である。
【図１３】第１の実施形態に係るクライアント装置の機能構成の別の一例を示す図である。
【図１４】第１の実施形態に係るアプリケーションの印刷要求処理の一例を示すフローチャートである。
【図１５】第２の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図１６】第２の実施形態に係る実行情報のイメージを示す図（１）である。
【図１７】第２の実施形態に係る実行情報のイメージを示す図（２）である。
【図１８】第３の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図１９】第４の実施形態に係る印刷データの生成処理の例を示すフローチャートである。
【図２０】第５の実施形態に係るクライアント装置の機能構成図である。
【図２１】第５の実施形態に係るプラグイン実行部、及び拡張プラグインの機能構成図である。
【図２２】第５の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図２３】第５の実施形態に係る実行情報の一例のイメージを示す図である。
【図２４】第６の実施形態に係るクライアント装置の機能構成図である。
【図２５】第６の実施形態に係るプラグイン実行部、及び拡張プラグインの機能構成図である。
【図２６】第６の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図２７】第７の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図２８】第７の実施形態に係る実行情報の一例のイメージを示す図である。
【図２９】第８の実施形態に係る情報処理システムの機能構成図である。
【図３０】第８の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図３１】第９の実施形態に係る情報処理システムの機能構成図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１２】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を用いて説明する。図１は、一実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００１３】
図１に示すように、本実施形態に係る情報処理システム１は、１台以上のクライアント装置１０と、１台以上の画像形成装置２０と、サーバ装置３０とを含み、これら装置はＬＡＮ（Local Area Network）等のネットワークＮを介して互いに通信可能に接続されている。
【００１４】
クライアント装置１０は、例えばＰＣ（パーソナルコンピュータ）、スマートフォン、タブレット端末等である。クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データを画像形成装置２０に送信する。又は、クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データをサーバ装置３０に送信する。
【００１５】
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、例えば、印刷対象データを、画像形成装置２０が印刷可能なＰＤＬ（Page Description Language）形式に変換した電子データである。
【００１６】
画像形成装置２０は、例えばプリンタ、印刷機能を備えたＭＦＰ（Multifunction Peripheral）等である。画像形成装置２０は、クライアント装置１０又はサーバ装置３０から受信した印刷データを印刷する。
【００１７】
サーバ装置３０は、例えばＰＣ等である。サーバ装置３０は、例えば、クライアント装置１０から受信した印刷対象データから印刷データを作成して、作成した印刷データを画像形成装置２０に送信する。
【００１８】
また、サーバ装置３０は、ファイルサーバとして機能しても良い。すなわち、サーバ装置３０は、例えば、クライアント装置１０から受信した印刷データを記憶しておき、画像形成装置２０からの要求に応じて、記憶した印刷データを要求元の画像形成装置２０に送信しても良い。
【００１９】
なお、以降では、１台以上のクライアント装置１０について、各々を区別するときは、「クライアント装置１０−１」、「クライアント装置１０−２」等と表す。同様に、１台以上の画像形成装置２０について、各々を区別するときは、「画像形成装置２０−１」、「画像形成装置２０−２」等と表す。
【００２０】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるクライアント装置１０、画像形成装置２０、及びサーバ装置３０のハードウェア構成について、図２及び図３を用いて説明する。
【００２１】
≪クライアント装置１０及びサーバ装置３０≫
図２は、一実施形態に係るクライアント装置１０及びサーバ装置３０の一例のハードウェア構成を示す図である。なお、クライアント装置１０及びサーバ装置３０は、同様のハードウェア構成を有しているため、以降では、クライアント装置１０のハードウェア構成について説明する。
【００２２】
図２に示すように、本実施形態に係るクライアント装置１０は、入力装置１０１と、表示装置１０２と、外部Ｉ／Ｆ１０３と、ＲＡＭ（Random Access Memory）１０４とを有する。また、クライアント装置１０は、ＲＯＭ（Read Only Memory）１０５と、ＣＰＵ（Central Processing Unit）１０６と、通信Ｉ／Ｆ１０７と、ＨＤＤ（Hard Disk Drive）１０８とを有する。これらのハードウェアは、バスＢで互いに接続されている。
【００２３】
入力装置１０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイ等を含み、クライアント装置１０による処理結果を表示する。なお、入力装置１０１及び表示装置１０２の少なくとも一方は、必要なときにクライアント装置１０に接続して利用する形態であっても良い。
【００２４】
通信Ｉ／Ｆ１０７は、クライアント装置１０をネットワークＮに接続するインタフェースである。クライアント装置１０は、通信Ｉ／Ｆ１０７を介して通信を行うことができる。
【００２５】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８に格納されるプログラムやデータには、クライアント装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２６】
なお、クライアント装置１０は、ＨＤＤ１０８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を有して良い。また、ＨＤＤ１０８は、格納しているプログラムやデータを所定のファイルシステムやＤＢにより管理している。
【００２７】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａ等がある。クライアント装置１０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取りや書き込みを行うことができる。記録媒体１０３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２８】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０５には、ＯＳ設定、ネットワーク設定等のプログラムやデータ、及びクライアント装置１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）が格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２９】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８等の記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、当該プログラムやデータに基づく処理を実行することで、クライアント装置１０全体の制御やその他の機能を実現する演算装置である。
【００３０】
本実施形態に係るクライアント装置１０及びサーバ装置３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３１】
≪画像形成装置２０≫
図３は、一実施形態に係る画像形成装置２０の一例のハードウェア構成を示す図である。
【００３２】
図３に示すように、本実施形態に係る画像形成装置２０は、コントローラ２０１と、操作パネル２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、プロッタ２０５を有する。また、コントローラ２０１は、ＣＰＵ２１１と、ＲＡＭ２２１と、ＲＯＭ２３１と、ＮＶＲＡＭ２４１と、ＨＤＤ２５１とを有する。
【００３３】
ＲＯＭ２３１は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ２２１は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ２４１は、例えば設定情報等を格納している。また、ＨＤＤ２５１は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３４】
ＣＰＵ２１１は、ＲＯＭ２３１やＮＶＲＡＭ２４１、ＨＤＤ２５１等からプログラムやデータ、設定情報等をＲＡＭ２２１上に読み出し、当該プログラムやデータに基づく処理を実行することで、画像形成装置２０全体の制御やその他の機能を実現する演算装置である。
【００３５】
操作パネル２０２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。画像形成装置２０は、外部Ｉ／Ｆ２０３を介して記録媒体２０３ａの読み取りや書き込みを行うことができる。なお、記録媒体２０３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３６】
通信Ｉ／Ｆ２０４は、画像形成装置２０をネットワークＮに接続するインタフェースである。画像形成装置２０は、通信Ｉ／Ｆ２０４を介して通信を行うことができる。プロッタ２０５は、印刷データを印刷する印刷装置である。
【００３７】
本実施形態に係る画像形成装置２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３８】
＜クライアント装置１０のソフトウェア構成＞
次に、本実施形態に係るクライアント装置１０のソフトウェア構成について、図４を用いて説明する。図４は、クライアント装置１０の一例のソフトウェア構成を示す図である。
【００３９】
図４に示すように、本実施形態に係るクライアント装置１０は、アプリケーション３０１と、ＯＳ３０２と、プリンタドライバ３０３と、ストアデバイスアプリ３０４とを有する。
【００４０】
アプリケーション３０１は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、ＯＳ３０２に印刷の指示（要求）を行うことができるアプリケーションソフトである。アプリケーション３０１には、ストアアプリ３１１と、デスクトップアプリ３２１とが含まれる。
【００４１】
ストアアプリ３１１は、例えば、Ｗｉｎｄｏｗｓ（登録商標）８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳにアプリケーションを提供する「Ｗｉｎｄｏｗｓストア」から、入手可能なアプリケーションである。ストアアプリ３１１では、「ストアアプリ  ＵＩ」が用いられる。なお、Ｗｉｎｄｏｗｓ８及びＷｉｎｄｏｗｓ８．１では、ＯＳ３０２によって提供される「Ｍｏｄｅｒｎ  ＵＩ」又は「Ｍｅｔｒｏ  ＵＩ」とも称されるＵＩからストアアプリ３１１が呼び出される。
【００４２】
一方、デスクトップアプリ３２１は、例えば、Ｗｉｎｄｏｗｓ７以前のバージョンのＷｉｎｄｏｗｓＯＳにおいても使用可能なアプリケーションである。
【００４３】
ＯＳ３０２は、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳである。
【００４４】
プリンタドライバ３０３は、例えば、Ｖｅｒｓｉｏｎ４プリンタドライバ（以降では、「Ｖ４プリンタドライバ」と表す。）である。Ｖ４プリンタドライバとは、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴから採用されたアーキテクチャに基づくプリンタドライバである。以降では、プリンタドライバ３０３を「Ｖ４プリンタドライバ３０３」とも表す。
【００４５】
なお、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｗｉｎｄｏｗｓ２０００からＷｉｎｄｏｗｓ７で使用されていたＶｅｒｓｉｏｎ３プリンタドライバ（以降では、「Ｖ３プリンタドライバ」と表す。）に加えて、Ｖ４プリンタドライバも使用可能である。
【００４６】
プリンタドライバ３０３は、拡張設定部３１３と、設定制御部３２３と、描画部３３３とを含む。
【００４７】
拡張設定部３１３は、プリンタ拡張とも称され、デスクトップアプリ３２１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。
【００４８】
設定制御部３２３は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部３１３は、例えば、設定制御部３２３により正当でないと検証された印刷設定の組み合わせを非表示にすること等ができる。
【００４９】
また、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３が設定可能な機能の情報を示すＰｒｉｎｔＣａｐａｂｉｌｉｔｙを返信する。更に、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３に設定されている各種機能の設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇから取得し、取得した設定値を示すＰｒｉｎｔＴｉｃｋｅｔを返信する。また、ＰｒｉｎｔＴｉｃｋｅｔで示された設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇに保存する。
【００５０】
なお、ＯＳ３０２に返信されたＰｒｉｎｔＣａｐａｂｉｌｉｔｙやＰｒｉｎｔＴｉｃｋｅｔは、例えば、拡張設定部３１３が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
【００５１】
描画部３３３は、アプリケーション３０１において印刷指示が行われた印刷対象データから印刷データを作成する。
【００５２】
ストアデバイスアプリ３０４は、ストアアプリ３１１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。なお、ストアデバイスアプリ３０４は、ストアアプリ３１１と同様に、「Ｗｉｎｄｏｗｓストア」から入手可能なアプリケーションである。
【００５３】
デスクトップアプリ３２１から印刷を行う場合、プリンタドライバ３０３は、拡張設定部３１３により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ３１１から印刷を行う場合、プリンタドライバ３０３は、ストアデバイスアプリ３０４により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
【００５４】
拡張設定部３１３及びストアデバイスアプリ３０４は、ベンダ独自の印刷設定画面を表示するＵＩ部３０５を構成する。
【００５５】
＜Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域＞
次に、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について、図５を用いて説明する。図５は、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について説明するための図である。
【００５６】
図５に示すように、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＰｒｏｐｅｒｔｙＢａｇ４００と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、ＯＳ３０２によって提供されるＡＰＩ（Application Programming Interface）を用いて行うことができる。
【００５７】
図５に示すように、ＰｒｏｐｅｒｔｙＢａｇ４００には、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０と、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０と、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０とが含まれる。
【００５８】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０は、Ｖ４プリンタドライバ３０３を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０から各種情報の読み出しが可能である。一方で、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０に対して、情報の書き込みを行うことはできない。
【００５９】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０は、論理プリンタ（プリンタアイコン）毎の設定情報等を記憶する記憶領域である。拡張設定部３１３及びストアデバイスアプリ３０４は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部３２３及び描画部３３３は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出しが可能である。
【００６０】
なお、論理プリンタとは、例えば、ＯＳ３０２のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、クライアント装置１０の利用者は、１つの画像形成装置２０に対して、設定情報（例えば、用紙サイズや向き、印刷品質等）が異なる複数の論理プリンタを作成することができる。
【００６１】
ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、及びストアデバイスアプリ３０４は、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０に対して、各種情報の読み出し及び書き込みが可能である。
【００６２】
また、拡張設定部３１３及び描画部３３３は、更に、独自記憶領域５００に対して、各種情報の読み出し及び書き込みが可能である。
【００６３】
独自記憶領域５００は、例えばレジストリやファイル等を用いて実現され、ＰｒｏｐｅｒｔｙＢａｇ４００とは異なる記憶領域である。独自記憶領域５００は、Ｖ４プリンタドライバ３０３を提供するベンダ等によって定義される。
【００６４】
ストアデバイスアプリ３０４は、ＯＳ３０２の課す制約により、ＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。また、設定制御部３２３は、上述したＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇ及びＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ３０４及び設定制御部３２３は、独自記憶領域５００に対して、各種情報の読み出しや書き込み等を行うことができない。
【００６５】
このことは、ストアアプリ３１１に課されている制約と同様であり、例えば、ストアデバイスアプリ３０４及び設定制御部３２３が、ＯＳ３０２が使用するレジストリ等を変更し、ＯＳ３０２の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
【００６６】
＜機能構成＞
図６は、一実施形態に係るクライアント装置１０の機能構成の例を示す図である。
【００６７】
クライアント装置（情報処理装置）１０は、画像形成装置２０、サーバ装置３０等とネットワークＮを介して接続され、プリンタドライバ（印刷を制御するプログラム）を実行する情報処理装置である。
【００６８】
図６において、クライアント装置１０は、アプリケーション（アプリケーションプログラム）３０１、ＯＳ３０２、プリンタドライバ３０３、印刷情報記憶部６１０、及び通信部６２０等を含む。このうち、アプリケーション３０１、ＯＳ３０２、及びプリンタドライバ３０３は、図４に示すアプリケーション３０１、ＯＳ３０２、及びプリンタドライバ３０３に対応している。
【００６９】
印刷情報記憶部６１０は、プリンタドライバ３０３から利用可能な記憶領域であり、プリンタドライバ３０３が印刷に用いる情報である印刷情報６１１を記憶する。印刷情報記憶部６１０は、例えば、ＰｒｉｎｔＴｉｃｋｅｔ、レジストリ、又は図５で説明したＰｒｏｐｅｒｔｙＢａｇ４００、独自記憶領域５００等で実現可能である。
【００７０】
好ましくは、印刷情報記憶部６１０は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０、又はＰｒｉｎｔＴｉｃｋｅｔ等で実現される。なお、ＰｒｉｎｔＴｉｃｋｅｔは、アプリケーション３０１が、印刷（ジョブ）毎に作成し、プリンタドライバ３０３が印刷に用いる情報である印刷情報６１１を記憶する記憶領域である。
【００７１】
この印刷情報６１１には、例えば、アプリケーション３０１によって設定された印刷の設定情報、プリンタドライバ３０３が保持している既定（デフォルト）の設定情報、及び画像形成装置２０の情報等が含まれる。
【００７２】
また、本実施形態に係る印刷情報６１１には、描画部３３３で生成する印刷データに関する所定の処理の実行情報６１２が含まれる。
【００７３】
この所定の処理には、例えば、印刷データをサーバ装置３０にアップロードする処理、印刷データのプレビューを表示する処理、表示したプレビューに対して印刷設定の変更を受け付ける処理等の様々な処理が含まれる。
【００７４】
また、実行情報６１２は、例えば、プラグイン実行部６０３で実行する所定の処理の設定情報、プラグイン実行部６０３で実行するプラグイン、又はプラグインの取得先を示す参照情報等が含まれる。
【００７５】
通信部６２０は、クライアント装置１０が、ネットワークＮを介して、画像形成装置２０、又はサーバ装置３０等と通信するための手段であり、例えば、クライアント装置１０で実行されるＯＳ３０２、及び図２の通信Ｉ／Ｆ１０７等によって実現される。
【００７６】
プリンタドライバ３０３は、印刷を制御するプログラムであり、図４の説明で前述したように、拡張設定部３１３、設定制御部３２３、及び描画部３３３を含む。なお、本実施形態では、拡張設定部３１３、及び設定制御部３２３は、一般的なプリンタドライバの構成と同様で良いので、ここでは説明を省略する。
【００７７】
描画部３３３は、アプリケーション３０１において印刷指示が行われた印刷対象データから印刷データを作成する手段であり、例えば、描画制御部６０１、印刷情報取得部６０２、プラグイン実行部６０３、印刷データ生成部６０４等を含む。なお、描画部３３３は、例えば、フィルタパイプライン方式を採用するＶ４プリンタドライバの１つのフィルタモジュール等で実現される。
【００７８】
描画制御部６０１は、印刷を要求するアプリケーションが印刷を開始させたときに、ＯＳ３０２から送られてくる印刷要求（描画命令）に応じて、描画部３３３の描画処理を制御する。
【００７９】
印刷情報取得部６０２は、例えば、描画制御部６０１、又は印刷データ生成部６０４等の要求に応じて印刷情報記憶部６１０から、描画部３３３が印刷に用いる印刷情報６１１を取得する。
【００８０】
プラグイン実行部（処理実行部）６０３は、印刷情報記憶部６１０が記憶する印刷情報６１１に、描画部３３３で生成する印刷データに関する所定の処理の情報である実行情報６１２が含まれる場合、実行情報６１２に基づいて所定の処理を実行する。
【００８１】
一例として、プラグイン実行部６０３は、例えば、印刷データをサーバ装置３０にアップロードする処理等の所定の処理を実行する機能を予め有している。また、実行情報６１２には、例えば、アップロード先のパス情報（宛先情報の一例）等、所定の処理を実行するために必要な設定情報等が含まれる。
【００８２】
別の一例として、実行情報６１２には、例えば、印刷データをサーバ装置３０にアップロードする処理等の所定の処理を実現するためのスクリプト（又は実行ファイル等）や、スクリプトの取得先を示す参照情報等が含まれる。また、プラグイン実行部６０３は、所定の処理を実現するためのスクリプト（又は実行ファイル等）を実行する。
【００８３】
印刷データ生成部６０４は、印刷情報記憶部６１０が記憶する印刷情報６１１に基づいて、印刷対象データを、画像形成装置２０で印刷可能な印刷データに変換する。
【００８４】
上記の構成により、プリンタドライバ３０３の描画部３３３は、印刷情報記憶部６１０に記憶する印刷情報６１１に所定の処理の実行情報６１２が含まれている場合、印刷データの生成処理に加えて、所定の処理を実行することができるようになる。
【００８５】
また、描画制御部６０１、印刷情報取得部６０２、プラグイン実行部６０３、及び印刷データ生成部６０４は、１つ以上のフィルタ（描画部３３３）を含むＶ４プリンタドライバにおける１つのフィルタの範囲内で提供される。
【００８６】
＜処理の概要＞
続いて、本実施形態に係るクライアント装置１０、及び情報処理システム１による情報処理方法の処理の流れについて説明する。
【００８７】
（プリンタドライバの描画処理の概要）
図７は、一実施形態に係るプリンタドライバ３０３の描画処理の概要を示すフローチャートである。
【００８８】
ステップＳ７０１において、プリンタドライバ３０３の描画制御部６０１は、印刷を要求するアプリケーション３０１からの印刷要求に応じて、ＯＳ３０２から通知される印刷（描画）を要求する描画命令を受け付ける。
【００８９】
ステップＳ７０２において、描画制御部６０１は、印刷情報取得部６０２を用いて、印刷情報記憶部６１０から、印刷に用いる情報である印刷情報６１１を取得する。この印刷情報６１１には、例えば、アプリケーション３０１によって設定された印刷の設定情報、プリンタドライバ３０３が保持している既定の設定情報、画像形成装置２０の情報、及び所定の処理の実行情報６１２等が含まれ得る。
【００９０】
ステップ７０３において、描画制御部６０１は、例えば、印刷データ生成部６０４に印刷データの生成を指示し、印刷データ生成部６０４は、印刷情報６１１に基づいて、印刷対象データを印刷データに変換する（印刷データを生成する）。
【００９１】
ステップＳ７０４において、描画制御部６０１（又は印刷データ生成部６０４）は、印刷情報記憶部６１０に記憶された印刷情報６１１に、所定の処理の実行情報６１２が含まれるか否かを判断する。
【００９２】
印刷情報記憶部６１０に記憶された印刷情報６１１に所定の処理の実行情報６１２が含まれない場合、描画制御部６０１（又は印刷データ生成部６０４）は、処理をステップＳ７０７に移行させる。一方、印刷情報記憶部６１０に記憶された印刷情報６１１に、所定の処理の実行情報６１２が含まれる場合、描画制御部６０１（又は印刷データ生成部６０４）は、処理をステップＳ７０５に移行させる。
【００９３】
ステップＳ７０５に移行すると、プラグイン実行部６０３は、所定の処理の実行情報６１２に基づいて、処理の処理（例えば、生成した印刷データをサーバ装置３０にアップロードする処理等）を実行する。
【００９４】
ステップＳ７０６において、描画制御部６０１は、印刷を実行する印刷データがあるかを判断する。これは、例えば、ステップＳ７０５の実行した所定の処理が、印刷データをサーバ装置３０にアップロードする処理である場合等、印刷データを印刷しなくても良い場合があるためである。
【００９５】
印刷を実行する印刷データがない場合、描画制御部６０１は、描画処理を終了させる。一方、印刷を実行する印刷データがある場合、描画制御部６０１は、処理をステップＳ７０７に移行させる。
【００９６】
ステップＳ７０７に移行すると、描画制御部６０１は、印刷データ生成部６０４が生成した印刷データを、ＯＳ３０２のスプーラ等に出力する。印刷データは、ＯＳ３０２により、通信部６２０を介して、画像形成装置２０に送信される。
【００９７】
なお、図７に示す処理の流れは一例である。例えば、図７のステップＳ７０４、Ｓ７０５の処理は、ステップＳ７０３の前で行われるものであっても良い。
【００９８】
また、図７のステップＳ７０６の処理は省略可能である。例えば、印刷データがない場合、ステップＳ７０７において、印刷データは出力されないので、ステップＳ７０６の判断を行わずに、ステップＳ７０７の処理を実行するものであっても良い。
【００９９】
（情報処理システムの処理の例）
続いて、シーケンス図を用いて、本実施形態に係る情報処理システム１による情報処理方法の基本的な処理の流れについて、さらに詳しく説明する。
【０１００】
図８は、一実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。
【０１０１】
ステップＳ８０１において、アプリケーション３０１は、利用者による印刷操作を受け付けると、ステップＳ８０２において、ＯＳ３０２に印刷を要求する印刷要求を通知する。
【０１０２】
ステップＳ８０３において、ＯＳ３０２は、アプリケーション３０１からの印刷要求を受け付けると、プリンタドライバ３０３に、印刷対象データの描画（印刷データの生成）を指示する描画命令を通知する。なお、プリンタドライバ３０３に通知された描画命令は、描画部３３３の描画制御部６０１によって受け付けられる。
【０１０３】
ステップＳ８０４において、描画制御部６０１は、ＯＳ３０２から通知される描画命令を受け付けると、印刷情報取得部６０２に、印刷情報の取得を指示する。
【０１０４】
ステップＳ８０５において、印刷情報取得部６０２は、印刷情報記憶部６１０に記憶された印刷情報を読み出す。ここでは、一例として、印刷情報取得部６０２は、印刷情報記憶部６１０に記憶された印刷情報６１１のうち、例えば、アプリケーション３０１によって保存された印刷の設定情報、プリンタドライバ３０３の既定の設定情報、及び画像形成装置２０の情報等を読み出すものとする。
【０１０５】
ステップＳ８０６において、印刷情報取得部６０２は、取得した印刷情報を、描画制御部６０１に出力する。
【０１０６】
ステップＳ８０７において、描画制御部６０１は、印刷データ生成部６０４に、印刷データの生成を指示する。この指示には、例えば、ステップＳ８０６で取得した印刷情報等が含まれる。
【０１０７】
ステップＳ８０８、Ｓ８０９において、印刷データ生成部６０４は、印刷対象データを記憶するＯＳ３０２のスプーラから印刷対象データを取得する。
【０１０８】
ステップＳ８１０において、印刷データ生成部６０４は、描画制御部６０１から通知された印刷情報に基づいて、印刷対象データを、画像形成装置２０で印刷可能な印刷データに変換することにより、印刷データを生成する。
【０１０９】
ステップＳ８１１、Ｓ８１２において、印刷データ生成部６０４は、印刷情報取得部６０２を用いて、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２を取得する。ここでは、印刷情報６１１に、所定の処理の実行情報６１２が含まれているものとして、以下の説明を行う。
【０１１０】
ステップＳ８１３において、印刷データ生成部６０４は、取得した実行情報６１２を用いて、プラグイン実行部６０３に、所定の処理（プラグイン）の実行を指示する。なお、実行情報６１２、及び所定の処理の具体的な例については、第１〜４の実施形態で後述する。
【０１１１】
ステップＳ８１４において、プラグイン実行部６０３は、印刷データ生成部６０４から指示された所定の処理を実行し、所定の処理を終えると、ステップＳ８１５において、所定の処理の実行結果を通知する。
【０１１２】
ステップＳ８１６、Ｓ６１７において、印刷データ生成部６０４は、印刷を実行する印刷データがある場合、生成した印刷データを、描画制御部６０１を介して、ＯＳ３０２のスプーラに出力する。
【０１１３】
ステップＳ８１８において、ＯＳ３０２は、プリンタドライバ３０３から受け付けた印刷データを、通信部６２０を用いて、画像形成装置２０に送信する。
【０１１４】
ステップＳ８１９において、画像形成装置２０は、クライアント装置１０のＯＳ３０２から受け付けた印刷データを印刷し、ステップＳ８２０において、印刷を完了したことを示す完了通知を、クライアント装置１０のＯＳ３０２に通知する。
【０１１５】
ステップＳ８２１、Ｓ８２２、Ｓ８２３において、ＯＳ３０２が受け付けた完了通知は、プリンタドライバ３０３（描画制御部６０１）、及びアプリケーション３０１に通知される。
【０１１６】
なお、図８に示す処理では、印刷データ生成部６０４が、プラグイン実行部６０３による所定の処理の実行を制御しているが、この制御は、描画制御部６０１が行うものであっても良い。
【０１１７】
（別の一例）
図９は、一実施形態に係るシステムの処理の別の一例を示すシーケンス図である。なお、図９のステップＳ８０１〜Ｓ８０３、及びＳ８０７〜Ｓ８１０の処理は、図８に示す処理と同様なので、ここでは、図８に示す処理との相違点を中心に説明を行う。
【０１１８】
ステップＳ９０１において、描画制御部６０１は、ＯＳ３０２から通知される描画命令を受け付けると、印刷情報取得部６０２に、印刷情報記憶部６１０に記憶された、所定の処理の実行情報６１２を含む印刷情報６１１の取得を指示する。
【０１１９】
ステップＳ９０２において、印刷情報取得部６０２は、印刷情報記憶部６１０に記憶された、所定の処理の実行情報６１２を含む印刷情報６１１を読み出す。この印刷情報６１１には、例えば、アプリケーション３０１によって保存された印刷の設定情報、プリンタドライバ３０３の既定の設定情報、画像形成装置２０の情報、及び所定の処理の実行情報６１２等が含まれる。
【０１２０】
ステップＳ９０３において、印刷情報取得部６０２は、取得した印刷情報６１１を、描画制御部６０１に出力する。
【０１２１】
ステップＳ９０４において、描画制御部６０１は、取得した印刷情報６１１に含まれる実行情報６１２を用いて、プラグイン実行部６０３に、所定の処理の実行を指示する。
【０１２２】
ステップＳ９０５において、プラグイン実行部６０３は、描画制御部６０１から指示された所定の処理を実行し、所定の処理を終えると、ステップＳ９０６において、所定の処理の実行結果を通知する。
【０１２３】
このように、描画制御部６０１が、プラグイン実行部６０３による所定の処理の実行を制御することにより、印刷データ生成部６０４が印刷データを生成した後とは異なるタイミングで、プラグイン実行部６０３に所定の処理を実行させることができるようになる。
【０１２４】
ステップＳ８０７〜Ｓ８１０において、描画制御部６０１は、印刷データ生成部６０４に印刷データの生成を実行させて、ステップＳ９０７において、印刷データ生成部６０４から、生成された印刷データを取得する。
【０１２５】
ステップＳ９０８において、例えば、図８のステップＳ８１７〜Ｓ８２３に示す印刷データの送信処理が実行される。
【０１２６】
＜処理の詳細＞
続いて、具体的な実施形態を例示して、本実施形態に係るクライアント装置１０、及び情報処理システム１による情報処理方法の処理の流れについて、詳細に説明する。
【０１２７】
［第１の実施形態］
＜機能構成＞
図１０は、第１の実施形態に係るクライアント装置１０の機能構成の一例を示す図である。図１０に示すクライアント装置１０は、図６に示すクライアント装置１０に示す印刷情報記憶部６１０として、図５で説明したＰｒｏｐｅｒｔｙＢａｇ４００を利用する。なお、他の機能構成は、図６に示すクライアント装置１０と同様である。
【０１２８】
第１の実施形態では、プラグイン実行部６０３は、所定の処理の一例として、印刷データ生成部６０４が生成した印刷データを、ロケーションフリー印刷のファイルサーバであるサーバ装置３０の所定のパスに送信する機能を、予め有しているものとする。
【０１２９】
また、プラグイン実行部６０３が、印刷データを送信する宛先のパス情報は、印刷情報６１１に含まれる実行情報６１２によって、指定されるものとする。
【０１３０】
さらに、印刷情報６１１は、ＰｒｏｐｅｒｔｙＢａｇ４００のＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に記憶されているものとする。
【０１３１】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０は、ＯＳ３０２が提供する機能（例えば、ポイントアンドプリント機能等）を利用して、プリンタドライバ３０３をクライアント環境に移行させるとき、設定情報等が引き継がれる。したがって、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０は、印刷情報６１１を記憶する印刷情報記憶部６１０として、好適である。
【０１３２】
＜処理の詳細＞
図１１は、第１の実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。なお、図１１のステップＳ８０１〜Ｓ８１０の処理は、図８に示す処理と同様なので、ここでは、図８に示す処理との相違点を中心に説明を行う。
【０１３３】
ステップＳ１１０１、Ｓ１１０２において、印刷データ生成部６０４は、印刷情報取得部６０２を用いて、ＰｒｏｐｅｒｔｙＢａｇ４００に記憶された印刷情報６１１に含まれる実行情報６１２を取得する。本実施形態では、実行情報６１２には、プラグイン実行部６０３が、印刷データを送信するファイル保存先のパスを示す情報が含まれているものとする。図１２（ａ）に、第１の実施形態に係る印刷情報６１１に含まれる実行情報６１２の一例のイメージを示す。
【０１３４】
図１２（ａ）の例では、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に記憶された印刷情報６１１に、ファイルの保存先のパスを示す文字列１２０１が定義された実行情報６１２が含まれている。
【０１３５】
このように、実行情報６１２は、実行情報６１２としてのキー１２０２と、実行情報である文字列とを組合せて、印刷情報６１１に記憶されている。
【０１３６】
図１１に戻り、シーケンス図の説明を続ける。
【０１３７】
ステップＳ１１０３において、印刷データ生成部６０４は、取得した実行情報６１２に基づいて、プラグイン実行部６０３に、所定の処理の実行を指示する。この指示には、例えば、印刷データ、及び実行情報６１２等が含まれる。
【０１３８】
ステップＳ１１０４、Ｓ１１０５において、プラグイン実行部６０３は、所定の処理１０００の一例として、印刷データ生成部６０４が生成した印刷データを、サーバ装置３０の所定のパスに送信する処理１０００を実行する。
【０１３９】
例えば、ステップＳ１１０４、Ｓ１００５において、プラグイン実行部６０３は、ＯＳ３０２を介して、実行情報６１２に含まれるサーバ装置３０のパス情報に従って、サーバ装置３０に印刷データを送信する。
【０１４０】
なお、図１１に示す処理１０００は、プラグイン実行部６０３が実行する所定の処理の一例である。プラグイン実行部６０３は、予め定められた処理を、実行情報６１２に含まれる設定情報に従って実行するものであれば良い。
【０１４１】
ステップＳ１１０６、Ｓ１１０７において、プラグイン実行部６０３は、所定の処理１０００の実行が完了すると、所定の処理が完了したことを示す完了通知を、印刷データ生成部６０４、描画制御部６０１等に通知する。
【０１４２】
（別の一例）
図１１に示す処理では、印刷情報記憶部６１０が、ＰｒｏｐｅｒｔｙＢａｇ４００のＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０である場合の例について説明を行った。
【０１４３】
ここでは、別の一例として、印刷情報記憶部６１０が、アプリケーション３０１が、印刷（ジョブ）毎に作成し、印刷情報６１１を記憶する記憶領域であるＰｒｉｎｔＴｉｃｋｅｔである場合の例について説明する。
【０１４４】
＜機能構成＞
図１３は、第１の実施形態に係るクライアント装置の機能構成の別の一例を示す図である。図１３に示すクライアント装置１０は、図６に示すクライアント装置１０に示す印刷情報記憶部６１０として、ＰｒｉｎｔＴｉｃｋｅｔ１３２０を利用する。
【０１４５】
この場合、例えば、図５で前述したプリンタドライバ３０３がアクセス可能な独自記憶領域５００等に、既定（デフォルト）のＰｒｉｎｔＴｉｃｋｅｔ１３１０を予め記憶しておく。この既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０には、実行情報６１２を含む既定の印刷情報１３１１が含まれる。
【０１４６】
アプリケーション３０１は、印刷を要求する際に、独自記憶領域５００に記憶された既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０を用いて、印刷対象データのＰｒｉｎｔＴｉｃｋｅｔ１３２０を作成する。この処理により、アプリケーション３０１が、印刷毎に生成するＰｒｉｎｔＴｉｃｋｅｔ１３２０に、独自記憶領域５００に記憶した実行情報６１２が含まれるようになる。
【０１４７】
＜処理の流れ＞
図１４は、第１の実施形態に係るアプリケーションの印刷要求処理の一例を示すフローチャートである。
【０１４８】
ステップＳ１４０１において、アプリケーション３０１は、例えば、利用者による印刷処理を受け付ける。
【０１４９】
ステップＳ１４０２において、アプリケーション３０１は、所定の記憶領域（例えば、独自記憶領域５００）に、既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０が記憶されているか否かを判断する。
【０１５０】
所定の記憶領域に、既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０が記憶されていない場合、アプリケーション３０１は、ステップＳ１４０３において、通常通り、印刷の設定情報を含む、印刷対象データの印刷に用いるＰｒｉｎｔＴｉｃｋｅｔを作成する。
【０１５１】
一方、所定の記憶領域に、既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０が記憶されている場合、アプリケーション３０１は、処理をステップＳ１４０４に移行させる。
【０１５２】
ステップＳ１４０４に移行すると、アプリケーション３０１は、所定の記憶領域から、既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０を取得する。
【０１５３】
ステップＳ１４０５において、アプリケーション３０１は、既定のＰｒｉｎｔＴｉｃｋｅｔ１３１０に、印刷の設定情報を反映し、印刷対象データの印刷に用いるＰｒｉｎｔＴｉｃｋｅｔ１３２０を作成する。
【０１５４】
ステップＳ１４０６において、アプリケーション３０１は、印刷対象データと、作成したＰｒｉｎｔＴｉｃｋｅｔ１３２０とを用いて、ＯＳ３０２に印刷を要求する。
【０１５５】
この例では、図１１に示すシーケンス図のステップＳ１１０１、Ｓ１１０２において、印刷情報取得部６０２は、ＰｒｉｎｔＴｉｃｋｅｔ１３２０に記憶された印刷情報６１１に含まれる実行情報６１２を取得すれば良い。他の処理は、前述した図１１の処理と同様である。図１２（ｂ）に、第１の実施形態に係る印刷情報６１１に含まれる実行情報６１２の別の一例のイメージを示す。
【０１５６】
図１２（ｂ）の例では、ＰｒｉｎｔＴｉｃｋｅｔ１３２０に記憶された印刷情報６１１に、ファイルの保存先のパスを示す文字列１２０１が定義された実行情報６１２が含まれている。
【０１５７】
以上、本実施形態によれば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０、又はＰｒｉｎｔＴｉｃｋｅｔ１３２０に記憶された印刷情報６１１に含まれる実行情報６１２を用いて、プラグイン実行部６０３によるファイルの送信先を変更することができるようになる。
【０１５８】
［第２の実施形態］
第１の実施形態では、プラグイン実行部６０３が、所定の処理を実行する機能を、予め有している場合の例について説明を行った。
【０１５９】
第２の実施形態では、プラグイン実行部６０３は、実行情報６１２に含まれるスクリプト言語に従って処理を実行する場合の例について説明する。
【０１６０】
スクリプト言語は、比較的単純なプログラムを記述するための、簡易的なプログラミング言語全般を示す。スクリプト言語は、一般的にインタプリタ方式を採用しており、言語を逐次に解釈して実行することができる。
【０１６１】
本実施形態では、プラグイン実行部６０３は、スクリプト言語で作成されたプログラム（以下、スクリプトと呼ぶ）を実行する機能を有しているものとする。
【０１６２】
また、本実施形態では、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２には、スクリプト言語で記述されたスクリプトが記憶されているものとする。
【０１６３】
＜処理の流れ＞
図１５は、第２の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、図１５のステップＳ８０１〜Ｓ８１０の処理は、図８に示す処理と同様なので、ここでは、図８に示す処理との相違点を中心に説明を行う。
【０１６４】
ステップＳ１５０１、Ｓ１５０２において、印刷データ生成部６０４は、印刷情報取得部６０２を用いて、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２を取得する。なお、印刷情報記憶部６１０は、前述したように、ＰｒｏｐｅｒｔｙＢａｇ４００（例えば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０）、又はＰｒｉｎｔＴｉｃｋｅｔ１３２０等を用いることができる。
【０１６５】
図１６、１７は、第２の実施形態に係る実行情報のイメージを示す図である。
【０１６６】
図１６（ａ）は、第２の実施形態に係る印刷情報６１１に含まれる実行情報６１２の例１を示している。図１６（ａ）の例では、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０（印刷情報記憶部６１０の一例）に記憶された印刷情報６１１には、プラグイン実行部６０３で実行するスクリプト１６１１が記述された実行情報６１２が含まれている。このように、印刷情報６１１に含まれる実行情報６１２には、例えば、プラグイン実行部６０３で実行するスクリプト１６１１が記述されている。
【０１６７】
図１６（ｂ）は、第２の実施形態に係る印刷情報６１１に含まれる実行情報６１２の例２を示している。図１６（ｂ）の例では、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０（印刷情報記憶部６１０の一例）に記憶された印刷情報６１１には、プラグイン実行部６０３で実行するスクリプト１６１１の取得先を示す参照情報（リンク情報）１６２２が記述されている。このように、印刷情報６１１に含まれる実行情報６１２には、プラグイン実行部６０３で実行するスクリプトの取得先を示す参照情報が含まれているものであっても良い。
【０１６８】
図１７（ａ）は、第２の実施形態に係る印刷情報６１１に含まれる実行情報６１２の例３を示している。図１７（ａ）に示すように、実行情報６１２を含む印刷情報６１１を記憶する印刷情報記憶部６１０は、ＰｒｉｎｔＴｉｃｋｅｔ１３２０であっても良い。この場合も同様に、実行情報６１２には、プラグイン実行部６０３で実行するスクリプト、又はプラグイン実行部６０３で実行するスクリプトの取得先を示す参照情報等が含まれる。
【０１６９】
ここでは、一例として、実行情報６１２に、印刷データ生成部６０４が生成した印刷データを、サーバ装置３０の所定のパスに送信する処理を実行させるスクリプトが保存されているものとする。ただし、この処理は、所定の処理の一例であり、本実施形態では、実行情報６１２に保存するスクリプトを変更することにより、プラグイン実行部６０３に、様々な処理を実行させることができる。
【０１７０】
図１５に戻り、シーケンス図の説明を続ける。
【０１７１】
ステップＳ１５０３において、印刷データ生成部６０４は、取得した実行情報６１２に基づいて、プラグイン実行部６０３に、所定の処理の実行を指示する。この指示には、例えば、印刷データ、及び実行情報６１２（スクリプト）等が含まれる。
【０１７２】
ステップＳ１５０４、Ｓ１５０５において、プラグイン実行部６０３は、印刷データ生成部６０４から通知された実行情報６１２に含まれる、所定の処理１５００を実現するためのスクリプトを実行する。ここでは、プラグイン実行部６０３は、所定の処理１５００の一例として、印刷データ生成部６０４が生成した印刷データを、サーバ装置３０の所定のパスに送信する処理を実行する。
【０１７３】
例えば、ステップＳ１５０４、Ｓ１５０５において、プラグイン実行部６０３は、スクリプトを実行することにより、ＯＳ３０２を介して、サーバ装置３０に印刷データを送信する。なお、サーバ装置３０のパス情報は、例えば、スクリプトに記述されているものとする。
【０１７４】
なお、図１５に示す所定の処理１５００はあくまで一例である。プラグイン実行部６０３は、実行情報６１２に記述されたスクリプト、又は実行情報６１２に示されるリンク先から取得したスクリプトを、を実行するものであれば良い。
【０１７５】
ステップＳ１１０６、Ｓ１１０７において、プラグイン実行部６０３は、所定の処理１５００の実行が完了すると、例えば、所定の処理が完了したことを示す完了通知を、印刷データ生成部６０４、描画制御部６０１等に通知する。
【０１７６】
上記の処理により、プリンタドライバ３０３の描画部３３３は、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２に基づいて、様々な処理の実行することができるようになる。
【０１７７】
なお、上記の説明では、プラグイン実行部６０３は、スクリプトを実行するものとして説明を行ったが、変形例として、プラグイン実行部６０３は、実行情報６１２に記述された参照情報に基づいて、ＥＸＥ（Executable）ファイル等の実行ファイルを取得して実行するものであっても良い。
【０１７８】
図１７（ｂ）は、第２の実施形態に係る実行情報の例４を示している。図１７（ｂ）の例では、印刷情報記憶部６１０に記憶された印刷情報６１１には、プラグイン実行部６０３が実行する実行ファイルの取得先のパスを示す参照情報１７１１が記述されている。
【０１７９】
プラグイン実行部６０３は、参照情報１７１１に示されるパスから実行ファイルを取得し、実行する。
【０１８０】
以上、本実施形態によれば、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２に、所定の処理を実現するためのスクリプトや、参照情報等を記憶し、プリンタドライバ３０３に様々な処理を実行させることができる。
【０１８１】
［第３の実施形態］
第１、２の実施形態では、プラグイン実行部６０３が実行する処理の一例として、印刷データをサーバ装置３０に送信する処理について説明を行った。第３の実施形態では、プラグイン実行部６０３が実行する処理の別一例として、印刷データのプレビュー処理を行う場合の例について説明する。
【０１８２】
なお、本実施形態では、プラグイン実行部６０３は、第２の実施形態と同様に、スクリプト言語で作成されたスクリプトを実行する機能を有しているものとする。
【０１８３】
また、実行情報６１２には、印刷データ生成部６０４が生成した印刷データのプレビュー処理を行うスクリプトが記述されているものとして、以下の説明を行う。
【０１８４】
＜処理の流れ＞
（情報処理システムの処理）
図１８は、第３の実施形態に係る情報処理システムの処理の例を示す図である。なお、図１８のステップＳ８０１〜Ｓ８１０の処理は、図８に示す処理と同様なので、ここでは、図８に示す処理との相違点を中心に説明を行う。
【０１８５】
また、実行情報６１２に記述された、プラグイン実行部６０３で実行するスクリプト１６１１の記述内容以外の処理は、第２の実施形態と同様なので、詳細な説明は省略する。
【０１８６】
ステップＳ１８０１、Ｓ１８０２において、印刷データ生成部６０４は、印刷情報取得部６０２を用いて、印刷情報記憶部６１０に記憶された印刷情報６１１に含まれる実行情報６１２を取得する。なお、本実施形態では、実行情報６１２には、プラグイン実行部６０３で実行するスクリプト１６１１として、印刷データのプレビュー用のスクリプトが記述されている。
【０１８７】
ステップＳ１８０３において、印刷データ生成部６０４は、取得した実行情報６１２に基づいて、プラグイン実行部６０３に、所定の処理の実行を指示する。この指示には、例えば、印刷データ、及び実行情報６１２（プレビュー用のスクリプト）等が含まれる。
【０１８８】
続いて、プラグイン実行部６０３は、印刷データ生成部６０４から通知された実行情報６１２に含まれる、プレビュー用のスクリプトを実行することにより、印刷データのプレビュー処理１８００を実行する。
【０１８９】
例えば、ステップＳ１８０４において、プラグイン実行部６０３は、拡張設定部３１３、設定制御部３２３、又はＯＳ３０２のＡＰＩ等を利用して、印刷データを表示装置１０２にプレビュー表示させる。
【０１９０】
ステップＳ１８０５において、プラグイン実行部６０３は、利用者の確認操作を受け付けると、ステップＳ１８０６において、実行結果（ＯＫ）を印刷データ生成部６０４に通知する。
【０１９１】
ステップＳ１８０７において、印刷データ生成部６０４は、プラグイン実行部６０３から、実行結果（ＯＫ）を受け付けると、生成した印刷データを、描画制御部６０１に出力する。
【０１９２】
ステップＳ１８０８において、例えば、図８のステップＳ８１７〜Ｓ８２３に示すような印刷データの送信処理が実行される。
【０１９３】
（印刷データの生成処理）
図１９は、第４の実施形態に係る印刷データ生成処理の例を示すフローチャートである。この処理は、例えば、図１８のステップＳ８０７〜Ｓ８０９、Ｓ１８０１〜Ｓ１８０７で実行される印刷データの生成処理において、プレビュー表示の後に、印刷設定の変更を行う場合の処理の一例を示している。
【０１９４】
ステップＳ１９０１において、印刷データ生成部６０４は、印刷対象データを取得する。この処理は、例えば、図１８のステップＳ８０８、Ｓ８０９の処理に対応している。
【０１９５】
ステップＳ１９０２において、印刷データ生成部６０４は、印刷対象データを画像形成装置２０で印刷可能な印刷データに変換することにより、印刷データを生成する。この処理は、例えば、図１８のステップＳ８１０の処理に対応している。
【０１９６】
ステップＳ１９０３において、プラグイン実行部６０３は、生成された印刷データの印刷後のイメージを示す印刷プレビュー画面を、表示装置１０２等に表示させる。
【０１９７】
ステップＳ１９０４において、表示させた印刷プレビュー画面に対して、利用者から受け付けた確認結果が「ＯＫ」である場合、プラグイン実行部６０３は、処理をステップＳ１９０７に移行させる。一方、利用者から受け付けた確認結果が「ＯＫ」でない場合、プラグイン実行部６０３は、処理をステップＳ１９０５に移行させる。
【０１９８】
ステップＳ１９０５に移行すると、プラグイン実行部６０３は、印刷設定の変更画面を、表示装置１０２等に表示させる。
【０１９９】
ステップＳ１９０６において、プラグイン実行部６０３は、利用者による印刷設定の変更操作を受け付けると、受け付けた変更を印刷の設定情報に反映し、処理をステップＳ１９０２に戻す。
【０２００】
なお、上記のステップＳ１９０３〜Ｓ１９０５の処理は、例えば、図１８の印刷データのプレビュー処理１８００に対応している。
【０２０１】
ステップＳ１９０７に移行すると、印刷データ生成部６０４は、生成した印刷データを、例えば、描画制御部６０１等に出力する。
【０２０２】
上記の処理により、クライアント装置１０の利用者は、印刷データのプレビュー画面を確認し、必要に応じて、印刷の設定情報を変更することができるようになる。
【０２０３】
このように、本実施形態に係るプリンタドライバ３０３は、印刷情報記憶部６１０に記憶されたスクリプトや、参照情報等に応じて、様々な処理を実行することができる。
【０２０４】
以上、本発明の各実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を容易に追加することができるようになる。
【０２０５】
［第５の実施形態］
＜機能構成＞
（クライアント装置の機能構成）
図２０は、第５の実施形態に係るクライアント装置の機能構成図である。図２０に示す第５の実施形態に係るクライアント装置１０は、図６に示す一実施形態に係るクライアント装置１０の機能構成に加えて、１つ以上の拡張プラグイン２００１、及び連携アプリ２００２を含む。
【０２０６】
拡張プラグイン２００１は、例えば、図２のＣＰＵ１０６で実行されるプログラム、例えば、ＤＬＬ（Dynamic Link Library）、又は実行ファイル等によって実現される。拡張プラグイン２００１は、描画部３３３のプラグイン実行部６０３からの制御に従って、例えば、印刷データの変更処理、読出処理、又は転送処理等の様々な拡張機能を実行する。
【０２０７】
連携アプリ２００２は、例えば、図２のＣＰＵ１０６等で実行され、拡張プラグイン２００１を用いて拡張機能を実行するための情報を、実行情報６１２として印刷情報記憶部６１０に記憶する。例えば、連携アプリ２００２は、クライアント装置１０にインストールされると、クライアント装置１０のプログラム領域（例えば、"C:\ProgramFiles\"等）に、１つ以上の拡張プラグイン２００１を配置（コピー）する。また、連携アプリ２００２は、プログラム領域に配置した１つ以上の拡張プラグイン２００１を配置した場所を示すパス情報、プラグイン名等を含む実行情報６１２を、印刷情報記憶部６１０に記憶する。
【０２０８】
印刷情報記憶部６１０は、例えば、図５の独自記憶領域５００や、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等によって実現され、１つ以上の拡張プラグイン２００１に関する実行情報６１２を記憶する。例えば、独自記憶領域５００の一例として、通常のＷｉｎｄｏｗｓアプリケーションで使用されるレジストリＨＫＬＭ（HKEY_LOCAL_MACHINE）等を用いることができる。なお、独自記憶領域５００以外に、ＯＳ３０２のポイントアンドプリント機能で情報が引き継がれる他の論理プリンタ毎の記憶領域（例えば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等）であっても良い。
【０２０９】
本実施形態に係るプラグイン実行部（処理実行部）６０３は、印刷情報記憶部６１０に記憶された印刷情報６１１に実行情報６１２が含まれている場合、実行情報６１２に従って１つ以上の拡張プラグイン２００１を呼び出すことにより、所定の処理を実行する。
【０２１０】
なお、上記以外の機能構成については、例えば、図６に示す一実施形態に係るクライアント装置１０の機能構成と同様で良い。
【０２１１】
図２１は、第５の実施形態に係るプラグイン実行部、及び拡張プラグインの機能構成図である。
【０２１２】
（プラグイン実行部の機能構成）
プラグイン実行部（処理実行部）６０３は、実行制御部２１０１を有する。また、好ましくは、プラグイン実行部６０３は、出力制御部２１０２を有する。
【０２１３】
実行制御部２１０１は、印刷情報記憶部６１０に実行情報６１２が記憶されている場合、実行情報６１２に従って、１つ以上の拡張プラグイン２００１を呼出して、拡張プラグイン２００１による拡張機能の実行を制御する。
【０２１４】
出力制御部２１０２は、１つ以上の拡張プラグイン２００１から、印刷データを含む出力要求（印刷要求）を受け付けると、印刷データを画像形成装置２０等に出力する制御を行う。例えば、出力制御部２１０２は、受付した印刷データを、ＯＳ３０２のスプーラ等に出力する。
【０２１５】
このように、プラグイン実行部６０３は、拡張プラグイン２００１に対して、印刷データの出力要求を受付するためのインタフェース（出力制御部２１０２）を備えることができる。
【０２１６】
（拡張プラグインの機能構成）
拡張プラグイン２００１は、例えば、処理制御部２１０３、及び処理部２１０４を有する。また、好ましくは、拡張プラグイン２００１は、出力要求部２１０５等を有する。
【０２１７】
処理部２１０４は、処理制御部２１０３からの制御に従って、予め定められた処理（拡張機能）を実行する。なお、予め定められた処理には、例えば、印刷データに変更を加える変更処理、印刷データから情報を読出する読出処理、印刷データを転送する転送処理、又は認証処理等が含まれる。
【０２１８】
処理制御部２１０３は、描画部３３３のプラグイン実行部６０３からの処理要求を受付し、受付した処理要求に従って、処理部２１０４に処理を実行させる。
【０２１９】
出力要求部２１０５は、処理制御部２１０３が処理（例えば変更処理）を実行した印刷データを、画像形成装置２０等に出力する場合、プラグイン実行部６０３の出力制御部２１０２に、印刷データの出力を要求する。
【０２２０】
このように、拡張プラグイン２００１は、描画部３３３に対して、印刷データの出力を要求することができる。
【０２２１】
なお、例えば、拡張プラグイン２００１にて印刷データの転送処理を行った場合等、クライアント装置１０から画像形成装置２０へ印刷データを出力することが不要である場合、拡張プラグイン２００１は、出力要求を行わずに処理の終了の通知のみを行う。
【０２２２】
＜処理の流れ＞
図２２は、第５の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、ＯＳ３０２、描画制御部６０１、印刷データ生成部６０４、印刷情報取得部６０２等の処理は、第１〜４の実施形態と同様なので、ここでは詳細な説明は省略する。
【０２２３】
ステップＳ２２０１において、ＯＳ３０２は、例えば、デスクトップアプリ３２１等からの印刷要求に応じて、プリンタドライバ３０３に、印刷対象データの描画（印刷データの生成）を指示する描画命令を通知する。なお、プリンタドライバ３０３に通知された描画命令は、描画部３３３の描画制御部６０１によって受け付けられる。
【０２２４】
ステップＳ２２０２において、描画制御部６０１は、ＯＳ３０２から通知される描画命令を受け付けると、印刷情報取得部６０２に、印刷情報６１１の取得を指示する。
【０２２５】
ステップＳ２２０３において、印刷情報取得部６０２は、印刷情報記憶部６１０に記憶された印刷情報６１１を読み出す。なお、ここでは、印刷情報６１１には、連携アプリ２００２等によって記憶された１つ以上の拡張プラグイン２００１が実行する処理に関する実行情報６１２が含まれているものとする。
【０２２６】
ステップＳ２２０４において、印刷情報取得部６０２は、取得した印刷情報６１１を、描画制御部６０１に通知する。
【０２２７】
ステップＳ２２０５において、描画制御部６０１は、印刷データ生成部６０４に、印刷データの生成を指示する。
【０２２８】
ステップＳ２２０６、Ｓ２２０７において、印刷データ生成部６０４は、印刷対象データを記憶するＯＳ３０２のスプーラ等から印刷対象データを取得する。
【０２２９】
ステップＳ２２０８において、印刷データ生成部６０４は、印刷対象データを、画像形成装置２０で印刷可能な印刷データに変換することにより、印刷データ１を生成する。
【０２３０】
ステップＳ２２０９において、印刷データ生成部６０４は、生成した印刷データ１を描画制御部６０１に通知する。
【０２３１】
ステップＳ２２１０において、描画制御部６０１は、ステップＳ２２０９で取得した印刷データ１と、ステップＳ２２０４で取得した印刷情報６１１に含まれる実行情報６１２とを含む実行指示をプラグイン実行部６０３に通知する。
【０２３２】
ステップＳ２２１１〜Ｓ２２１６において、プラグイン実行部６０３は、実行指示に含まれる実行情報６１２に従って、１つ以上の拡張プラグイン２００１を呼出して、処理を実行させる。
【０２３３】
ここで、実行情報６１２の一例のイメージを図２３に示す。図２３の例では、実行情報２３００は、第１の拡張プラグイン２３０２と、第２の拡張プラグイン２３０３とを含む配列２３０１で定義されている。各プラグインは、例えば、「ｎａｍｅ」、「ｐａｔｈ」、「ＲｅａｄＯｎｌｙ」等の情報要素を含む。
【０２３４】
「ｎａｍｅ」は、各プラグインの名前（プラグイン名）を示す情報である。「ｐａｔｈ」は、各プラグインにアクセスするためのパス情報である。「ＲｅａｄＯｎｌｙ」は、各プラグインが、読出し専用の属性を有している（ｔｒｕｅ）か、読出し専用の属性を有していないか（ｆａｌｓｅ）を示す情報である。
【０２３５】
なお、図２３に示す実行情報２３００は、印刷情報記憶部６１０に記憶される実行情報６１２の一例である。実行情報６１２は、１つ以上の拡張プラグイン２００１を呼出するための情報が含まれていれば良い。
【０２３６】
プラグイン実行部６０３は、実行情報６１２に含まれるパス情報に従って、例えば、順次に拡張プラグイン２００１を呼出することにより、各拡張プラグイン２００１に処理を実行させる。
【０２３７】
例えば、図２２のステップＳ２２１１において、プラグイン実行部６０３の実行制御部２１０１は、第１の拡張プラグインであるプラグイン１を呼出し、プラグイン１に印刷データ１を通知する。このとき、プラグイン実行部６０３は、処理の要求元を特定するための情報である論理プリンタ名や、ジョブＩＤ等の情報も、拡張プラグイン２００１（プラグイン１）に通知する。
【０２３８】
ステップＳ２２１２において、プラグイン１の処理制御部２１０３は、予め定められた処理（例えば、印刷データ１をカラーからモノクロに変換する変更処理等）を、処理部２１０４に実行させる。
【０２３９】
ステップＳ２２１３において、プラグイン１の処理制御部２１０３は、変更処理が実行された印刷データ２を含む完了通知を、プラグイン実行部６０３に通知する。
【０２４０】
ステップＳ２２１４において、プラグイン実行部６０３の実行制御部２１０１は、第２の拡張プラグインであるプラグイン２を呼出し、プラグイン２に印刷データ２を通知する。
【０２４１】
ステップＳ２２１５、Ｓ２２１６において、プラグイン２の処理制御部２１０３は、予め定められた処理（例えば、印刷データ２をサーバ装置３０に転送し、印刷データ２を画像形成装置２０に出力する処理等）を、処理部２１０４、及び出力要求部２１０５に実行させる。
【０２４２】
これにより、例えば、ステップＳ２２１５において、プラグイン２の処理部２１０４は、印刷データ２をサーバ装置３０に転送する処理を実行する。また、ステップＳ２２１６において、プラグイン２の出力要求部２１０５は、印刷データ２の出力（印刷）を描画部３３３に要求する。
【０２４３】
ステップＳ２２１７において、プラグイン実行部６０３の出力制御部２１０２は、拡張プラグイン２００１から、印刷データ２の出力要求を受付すると、印刷データ２の出力要求を描画制御部６０１に通知する。
【０２４４】
ステップＳ２２１８、Ｓ２２１９において、描画部３３３の描画制御部６０１は、ＯＳ３０２を介して、画像形成装置２０に印刷データ２を送信する。
【０２４５】
ステップＳ２２２０において、画像形成装置２０は、受信した印刷データ２の印刷を実行する。
【０２４６】
上記の処理により、プリンタドライバ３０３は、プリンタドライバ３０３の外部にある１つ以上の拡張プラグイン２００１を呼出して、拡張機能を実行させることができるようになる。また、プリンタドライバ３０３は、拡張プラグイン２００１からの印刷データの出力を受付するインタフェースを有しているので、印刷データの出力を要する拡張機能を、拡張プラグイン２００１に実行させることができるようになる。
【０２４７】
［第６の実施形態］
＜機能構成＞
（クライアント装置の機能構成）
図２４は、第６の実施形態に係るクライアント装置の機能構成図である。図２４に示す第６の実施形態に係るクライアント装置１０は、図２０に示す第５の実施形態に係るクライアント装置１０の機能構成に加えて、ＵＩ部３０５が図示されている。このＵＩ部３０５は、図４に示すＵＩ部３０５に対応しており、拡張設定部３１３、ストアデバイスアプリ３０４等が含まれる。
【０２４８】
本実施形態に係るＵＩ部３０５は、プラグイン実行部６０３からのＵＩ表示要求に従って、設定画面や認証画面等の表示画面（ＵＩ）を表示装置１０２等に表示させて、ユーザの入力操作を受け付ける。なお、ＵＩ部３０５は、拡張設定部３１３、ストアデバイスアプリ３０４とは異なるアプリ（実行ファイル）等によって実現されるものであっても良い。
【０２４９】
図２５は、第６の実施形態に係るプラグイン実行部、及び拡張プラグインの機能構成図である。
【０２５０】
（プラグイン実行部の機能構成）
図２５に示す第６の実施形態に係るプラグイン実行部６０３は、図２０に示す第５の実施形態に係るプラグイン実行部６０３の機能構成に加えて、ＵＩ制御部２５０１を含む。
【０２５１】
ＵＩ制御部２５０１は、拡張プラグイン２００１から、ＵＩ（ユーザインタフェース）の表示を要求するＵＩ表示要求を受け付けると、ＵＩ表示要求に含まれるＵＩ情報を用いて、例えば、設定画面や認証画面等の表示画面（ＵＩ）をＵＩ部３０５に表示させる。また、ＵＩ制御部２５０１は、ＵＩ部３０５が受け付けた入力データを、要求元の拡張プラグイン２００１に通知する。
【０２５２】
このように、プラグイン実行部６０３は、拡張プラグイン２００１に対して、ＵＩの表示要求を受付するためのインタフェース（ＵＩ制御部２５０１）を有していることが望ましい。これにより、拡張プラグイン２００１の各々でＵＩを表示させるためのＵＩ表示機能を用意する必要がなくなると共に、１つの印刷処理の中で、複数の表示プロセスが実行されることを低減させることができる。ここで、ＵＩ表示機能とは、ＵＩの画面を立ち上げるための実行ファイルである。
【０２５３】
（拡張プラグインの機能構成）
図２５に示す第６の実施形態に係る拡張プラグイン２００１は、図２０に示す第５の実施形態に係る拡張プラグイン２００１の機能構成に加えて、ＵＩ呼出部２５０２を含む。
【０２５４】
ＵＩ呼出部２５０２は、拡張プラグイン２００１から、ＵＩを表示する必要がある場合、プラグイン実行部６０３のＵＩ制御部２５０１に、ＵＩの表示を要求する。これにより、拡張プラグイン２００１は、プラグイン実行部６０３のＵＩ制御部２５０１を利用して、ＵＩの表示を要求することができる。
【０２５５】
＜処理の流れ＞
図２６は、第６の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、図２６のステップＳ２２０１〜Ｓ２２１０の処理は、図２２に示す第５の実施形態に係る処理と同様なので、ここでは、第５の実施形態との相違点を中心に説明を行う。
【０２５６】
ステップＳ２６０１〜Ｓ２６０８において、プラグイン実行部６０３は、実行指示に含まれる実行情報６１２に従って、１つ以上の拡張プラグイン２００１を呼出して、処理を実行させる。ここでは、実行情報６１２に、ＵＩを表示させる処理を含むプラグイン３の情報が含まれているものとして以下の説明を行う。
【０２５７】
ステップＳ２６０１において、プラグイン実行部６０３の実行制御部２１０１は、プラグイン３を呼出し、プラグイン３に印刷データ１を通知する。これにより、プラグイン３の処理制御部２１０３は、予め定められた処理（例えば、ＵＩを表示させて、入力された入力データを用いて印刷データを変更する変更処理等）を、処理部２１０４に実行させる。
【０２５８】
ステップＳ２６０２において、プラグイン３の処理部２１０４は、ＵＩ呼出部２５０２を用いて、プラグイン実行部６０３にＵＩの表示を要求するＵＩ表示要求を通知する。このＵＩ表示要求には、例えば、ＵＩを表示するためのＵＩ情報が含まれる。なお、このＵＩ情報には、例えば、画面のサイズやタイトル、画面に表示させる内容に関する情報等が含まれる。
【０２５９】
ステップＳ２６０３において、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ表示要求を受付すると、ＵＩ部３０５にＵＩの起動を要求し、ＵＩ情報を通知する。
【０２６０】
ステップＳ２６０４において、ＵＩ部３０５は、受付したＵＩ情報を用いてＵＩを表示し、ユーザによって入力される入力データを受付する。つまり、このＵＩで表示する表示内容は、拡張プラグイン２００１において生成され、ＵＩの表示はＵＩ部３０５のプロセスにおいて行われる。
【０２６１】
ステップＳ２６０５において、ＵＩ部３０５は、受付した入力データをプラグイン実行部６０３に通知する。
【０２６２】
ステップＳ２６０６において、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ部３０５から受付した入力データを、要求元のプラグイン３のＵＩ呼出部２５０２に通知する。
【０２６３】
ステップＳ２６０７において、プラグイン３の処理部２１０４は、ＵＩ呼出部２５０２が受付した入力データを用いて印刷データを変更する変更処理を実行し、印刷データ３を生成する。
【０２６４】
ステップＳ２６０８において、プラグイン３の処理部２１０４は、出力要求部２１０５を用いて、印刷データ３の出力（印刷）を描画部３３３に要求する。
【０２６５】
なお、上記に示すような変更処理を行う拡張プラグイン２００１以外に、サーバ装置３０等に印刷データの転送処理を行う拡張プラグイン２００１にて、ＵＩを表示することが考えられる。
【０２６６】
この場合、ＵＩ部３０５は、ステップＳ２６０４において、転送処理を行うか否かの選択を表示したＵＩを表示し、ユーザによる選択操作を受付する。
【０２６７】
ＵＩ部３０５が、転送処理を行うという選択を受付した場合、拡張プラグイン２００１は、ステップＳ２６０７において、印刷データ３をサーバ装置３０等に転送し、ステップＳ２６０８において、描画部３３３に、処理の終了の通知を行う。このとき、拡張プラグイン２００１は、描画部３３３に印刷データ３の出力要求は行わない。
【０２６８】
一方、ＵＩ部３０５が、転送処理を行わないという選択を受付した場合、拡張プラグイン２００１は、ステップＳ２６０７において、特に処理を行わずに、ステップＳ２６０８において、印刷データ３の出力を描画部３３３に要求する。
【０２６９】
このように、本実施形態によれば、プラグイン実行部６０３は、拡張プラグイン２００１からのＵＩ表示要求に応じて、ＵＩ部３０５にＵＩを表示させるＵＩ制御部２５０１を有している。これにより、プリンタドライバ３０３は、拡張プラグイン２００１に、ＵＩを用いて入力された入力データを利用する様々な拡張処理を実行させることができるようになる。
【０２７０】
また、本実施形態では、拡張プラグイン２００１は、プラグイン実行部６０３のＵＩ制御部２５０１を利用してＵＩを表示することができる。したがって、クライアント装置１０に複数の拡張プラグイン２００１を組み込む場合であっても、ＵＩ表示をするためのアプリケーション（実行ファイル）を、拡張プラグイン２００１毎に配置することが不要となる。これにより、本実施形態に係るクライアント装置１０によれば、印刷実行時において１回の印刷処理で、複数の表示プロセスが実行されることを低減させることができる。
【０２７１】
［第７の実施形態］
第５、６の実施形態では、プラグイン実行部６０３は、印刷データが生成された後に、拡張プラグイン２００１を用いて、拡張機能を実行させていた。しかし、これは一例であり、プラグイン実行部６０３は、他のタイミング、例えば、印刷処理の開始時や、終了時等に、拡張プラグイン２００１を用いて、拡張機能を実行させるものであっても良い。
【０２７２】
＜処理の流れ＞
図２７は、第７の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。この処理は、印刷処理の開始時に、拡張プラグイン２００１を用いて拡張機能を実行する処理の一例を示している。なお、図２７のステップＳ２２０１〜Ｓ２２０４、及びステップＳ２２０５〜Ｓ２２１０の処理は、図２２に示す第５の実施形態の処理と同様なので、ここでは、第５の実施形態との相違点を中心に説明を行う。
【０２７３】
また、ここでは、ステップＳ２２０４で取得する印刷情報に、例えば、図２８に示すような実行情報２８００が含まれているものとする。
【０２７４】
図２８に示す実行情報２８００において、プラグインＡの実行情報２８０１、及びプラグインＢの実行情報２８０３には、図２３で説明した「ｎａｍｅ」、「ｐａｔｈ」、及び「ＲｅａｄＯｎｌｙ」の情報要素に加えて、「Ｔｉｍｉｎｇ」の情報要素が含まれている。
【０２７５】
「Ｔｉｍｉｎｇ」は、各プラグインの実行タイミングを示す情報の一例であり、例えば、「Ｓｔａｒｔ」は、印刷処理の開始したときに拡張プラグイン２００１を呼出することを示している。また「Ｐａｇｅ」は、印刷データを生成したときに拡張プラグイン２００１を呼出することを示している。
【０２７６】
例えば、図２８のプラグインＡの実行情報２８０１において、情報要素「Ｔｉｍｉｎｇ」２８０２には、「Ｓｔａｒｔ」が設定されているので、プラグインＡは、印刷処理の開始時に呼出される。また、図２９のプラグインＢの実行情報２８０３において、情報要素「Ｔｉｍｉｎｇ」２８０４には、「Ｐａｇｅ」が設定されているので、プラグインＢは、印刷データの生成時に呼出される。
【０２７７】
図２７のステップＳ２７０１において、描画制御部６０１は、印刷処理の開始時に呼出するプラグインの実行情報（実行情報Ａ）をプラグイン実行部６０３に通知する。図２８に示す実行情報２８００の例では、プラグインＡの実行情報２８０１が、プラグイン実行部６０３に通知される。
【０２７８】
ステップＳ２７０２〜Ｓ２７１０において、プラグイン実行部６０３は、実行指示に含まれる実行情報Ａに従って、プラグインＡを呼出して処理を実行させる。ここでは、プラグインＡが、ＵＩを用いてユーザの認証処理を行うプラグインであるものとして、以下の説明を行う。
【０２７９】
ステップＳ２７０２において、プラグイン実行部６０３の実行制御部２１０１は、プラグインＡを呼出し、プラグインＡに処理の実行を開始させる。
【０２８０】
ステップＳ２７０３において、プラグインＡの処理部２１０４は、ＵＩ呼出部２５０２を用いて、プラグイン実行部６０３にＵＩの表示を要求するＵＩ表示要求を通知する。このＵＩ表示要求には、例えば、認証画面を表示するためのＵＩ情報が含まれる。
【０２８１】
ステップＳ２７０４において、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ表示要求を受付すると、ＵＩ部３０５にＵＩの起動を要求し、ＵＩ情報を通知する。
【０２８２】
ステップＳ２７０５において、ＵＩ部３０５は、受付したＵＩ情報を用いて認証画面のＵＩを表示し、ユーザによって入力される認証データ（例えばパスワード等）を受付する。
【０２８３】
ステップＳ２７０６において、ＵＩ部３０５は、受付した認証データをプラグイン実行部６０３に通知する。
【０２８４】
ステップＳ２７０７において、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ部３０５から受付した認証データを、要求元のプラグインＡのＵＩ呼出部２５０２に通知する。
【０２８５】
ステップＳ２７０８において、プラグインＡの処理部２１０４は、ＵＩ呼出部２５０２が受付した認証データを用いて認証処理を実行する。
【０２８６】
ステップＳ２７０９において、プラグインＡの処理部２１０４は、描画部２２２のプラグイン実行部６０３に認証結果（図２７の例では認証ＯＫ）を通知する。
【０２８７】
ステップＳ２７１０において、プラグイン実行部６０３は、描画制御部６０１に認証結果を含む完了通知を通知する。
【０２８８】
描画制御部６０１は、認証結果がＯＫである場合、ステップＳ２２０５以降の処理を実行させる。一方、描画制御部６０１は、認証結果がＯＫでない場合、例えば、印刷処理を終了させる。
【０２８９】
このように、描画部３３３のプラグイン実行部６０３は、例えば、印刷処理の開始時に拡張プラグイン２００１を呼出して、拡張機能を実行させることができる。
【０２９０】
同様に、プラグイン実行部６０３は、印刷処理の終了時等に拡張プラグイン２００１を呼出して、拡張機能を実行させるものであっても良い。この場合、例えば、図２８に示す実行情報２８００において、「Ｔｉｍｉｎｇ」の情報要素を「Ｅｎｄ」に設定する。
【０２９１】
［第８の実施形態］
第１〜７の実施形態では、プリンタドライバ３０３の各機能がクライアント装置１０に含まれるものとして説明を行った。
【０２９２】
しかし、例えば、ＯＳ３０２のポイントアンドプリント機能を用いて印刷を行う場合等、プリンタドライバ３０３に含まれる機能構成は、クライアント装置１０とサーバ装置３０とに分散されて配置されるものであっても良い。本実施形態では、サーバ装置３０で印刷データを生成するサーバサイドレンダリングを行う場合の処理の例について説明する。
【０２９３】
＜機能構成＞
図２９は、第８の実施形態に係る情報処理システムの機能構成図である。
【０２９４】
本実施形態に係るクライアント装置１０は、例えば、図２４に示す第６の実施形態に係るクライアント装置１０に含まれる機能構成のうち、デスクトップアプリ３２１、ＯＳ３０２（ＯＳ３０２−１）、プリンタドライバ３０３、ＵＩ部３０５等を含む。また、クライアント装置１０側では、プリンタドライバ３０３に含まれる機能構成のうち、設定制御部３２３、及び拡張設定部３１３等を用いる。
【０２９５】
一方、本実施形態に係るサーバ装置３０は、例えば、図２４に示す第６の実施形態に係るクライアント装置１０に含まれる機能構成のうち、連携アプリ２００２、ＯＳ３０２（ＯＳ３０２−２）、印刷情報記憶部６１０、プリンタドライバ３０３、及び１つ以上の拡張プラグイン２００１等を含む。また、サーバ装置３０側では、プリンタドライバ３０３に含まれる機能構成のうち、描画部３３３等を用いる。
【０２９６】
なお、各部の機能は、例えば、図２４に示す第６の実施形態に示す機能構成と同様である。
【０２９７】
＜処理の流れ＞
図３０は、第８の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。本実施形態では、クライアント装置１０でユーザによる印刷操作が行われ、サーバ装置３０側で描画処理が行われる。この場合、サーバ装置３０にインストールされたプリンタドライバ３０３の描画部３３３による描画処理は、基本的に第５〜７の実施形態と同様である。
【０２９８】
ただし、サーバ装置３０側の拡張プラグイン２００１が、ＵＩを表示させる処理を実行する場合、クライアント装置１０側でＵＩを表示させる必要がある。ここでは、サーバ装置３０側の拡張プラグイン２００１が、クライアント装置１０側でＵＩを表示させる場合の処理を中心に説明する。
【０２９９】
ステップＳ３００１において、クライアント装置１０のＯＳ３０２−１は、デスクトップアプリ３２１から印刷要求を受付する。この印刷要求には、例えば、印刷の設定情報であるＰｒｉｎｔＴｉｃｋｅｔが含まれる。また、ＰｒｉｎｔＴｉｃｋｅｔには、例えば、クライアント装置１０のＩＰアドレス、及び印刷要求に対応するＵＩ部３０５のプロセスＩＤ等が含まれるものとする。なお、このＰｒｉｎｔＴｉｃｋｅｔは、例えば、デスクトップアプリ３２１が、ＯＳ３０２を介して、プリンタドライバ３０３にＰｒｉｎｔＴｉｃｋｅｔの取得を要求したときに、設定制御部３２３によって生成される。
【０３００】
ステップＳ３００２、Ｓ３００３において、ＯＳ３０２−１は、印刷データの生成を要求する描画命令を、サーバ装置３０のＯＳ３０２−２を介して、サーバ装置３０の描画部３３３の描画制御部６０１に送信する。
【０３０１】
ステップＳ３００４において、描画制御部６０１は、描画命令を受け付けると、印刷情報取得部６０２に、印刷情報６１１の取得を指示する。
【０３０２】
ステップＳ３００５において、印刷情報取得部６０２は、印刷情報記憶部６１０に記憶された印刷情報６１１を読み出す。なお、ここでは、印刷情報６１１には、連携アプリ２００２等によって記憶された１つ以上の拡張プラグイン２００１が実行する処理に関する実行情報６１２が含まれているものとする。
【０３０３】
ステップＳ３００６において、印刷情報取得部６０２は、取得した印刷情報６１１を、描画制御部６０１に通知する。
【０３０４】
ステップＳ３００７において、描画制御部６０１は、印刷データ生成部６０４に、印刷データの生成を指示する。
【０３０５】
ステップＳ３００８、Ｓ３００９において、印刷データ生成部６０４は、印刷対象データを記憶するＯＳ３０２−２のスプーラ等から印刷対象データを取得する。
【０３０６】
ステップＳ３０１０において、印刷データ生成部６０４は、印刷対象データを、画像形成装置２０で印刷可能な印刷データに変換することにより、印刷データ１を生成する。
【０３０７】
ステップＳ３０１１において、印刷データ生成部６０４は、生成した印刷データ１を描画制御部６０１に通知する。
【０３０８】
ステップＳ３０１２において、描画制御部６０１は、印刷データ１、実行情報６１２、クライアント装置１０のＩＰアドレス、プロセスＩＤ等を含む実行指示をプラグイン実行部６０３に通知する。
【０３０９】
ステップＳ３０１３〜Ｓ３０２６において、プラグイン実行部６０３は、実行指示に含まれる実行情報６１２に従って、１つ以上の拡張プラグイン２００１を呼出して、処理を実行させる。ここでは、実行情報６１２に、ＵＩを表示させる処理を含むプラグイン３の情報が含まれているものとして以下の説明を行う。
【０３１０】
ステップＳ３０１３において、プラグイン実行部６０３の実行制御部２１０１は、拡張プラグイン２００１（プラグイン３）を呼出し、拡張プラグイン２００１に印刷データ１を通知する。これにより、拡張プラグイン２００１の処理制御部２１０３は、予め定められた処理（例えば、ＵＩを表示させて、入力された入力データを用いて印刷データを変更する変更処理等）を、処理部２１０４に実行させる。
【０３１１】
ステップＳ３０１４において、拡張プラグイン２００１の処理部２１０４は、ＵＩ呼出部２５０２を用いて、プラグイン実行部６０３にＵＩの表示を要求するＵＩ表示要求を通知する。このＵＩ表示要求には、例えば、ＵＩを表示するためのＵＩ情報が含まれる。
【０３１２】
ステップＳ３０１５において、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ表示要求を受付すると、ＯＳ３０２−２を介して、クライアント装置１０にＵＩの起動を要求するＵＩ起動要求を送信する。このＵＩ起動要求には、例えば、クライアント装置１０のＩＰアドレス、プロセスＩＤ、及びＵＩ情報等が含まれる。
【０３１３】
別の一例として、プラグイン実行部６０３のＵＩ制御部２５０１は、ＵＩ情報を含むＵＩ起動要求を描画制御部６０１に通知するものであっても良い。この場合、描画制御部６０１は、クライアント装置１０のＩＰアドレス、プロセスＩＤをＵＩ起動要求に付加し、ＵＩ起動要求を、ＯＳ３０２−２を介して、クライアント装置１０に送信する。
【０３１４】
ステップＳ３０１６において、クライアント装置１０のＵＩ部３０５は、受付したＵＩ情報を用いてＵＩを表示し、ユーザによって入力される入力データを受付する。
【０３１５】
ステップＳ３０１７において、クライアント装置１０のＵＩ部３０５は、入力データを要求元のプラグイン実行部６０３に通知する。
【０３１６】
ステップＳ３０１８において、プラグイン実行部６０３のＵＩ制御部２５０１は、受付した入力データを、要求元の拡張プラグイン２００１のＵＩ呼出部２５０２に通知する。
【０３１７】
ステップＳ３０１９において、拡張プラグイン２００１の処理部２１０４は、ＵＩ呼出部２５０２が受付した入力データを用いて印刷データを変更する変更処理を実行し、印刷データ３を生成する。
【０３１８】
ステップＳ３０２０において、拡張プラグイン２００１の処理部２１０４は、出力要求部２１０５を用いて、印刷データ３の出力（印刷）を描画部３３３に要求する。
【０３１９】
ステップＳ３０２１において、プラグイン実行部６０３の出力制御部２１０２は、受付した印刷データ３を含む出力要求を描画制御部６０１に通知する。
【０３２０】
ステップＳ３０２２において、描画制御部６０１は、ＯＳ３０２−２に印刷データ３を通知することにより、例えば、図２９の画像形成装置２０により印刷が行われる。
【０３２１】
このように、プリンタドライバ３０３の各機能構成は、クライアント装置１０とサーバ装置３０とに分散して配置されていても、クライアント装置１０に配置されているときと同様に処理を実行することができる。
【０３２２】
［第９の実施形態］
図３１は、第９の実施形態に係る情報処理システムの機能構成図である。本実施形態では、ＯＳ３０２のポイントアンドプリント機能を用いて印刷を行う場合であって、クライアント装置１０側で印刷データを生成するクライアントサイドレンダリングを行う場合の例について説明する。
【０３２３】
この場合、クライアント装置１０の機能構成は、例えば、図２４に示す第６の実施形態に係るクライアント装置１０と同様で良い。図３１の例では、クライアント装置１０は、サーバ装置３０に接続された画像形成装置２０を用いて、印刷を実行することができる。この場合、プリンタドライバ３０３の描画部３３３の処理は、図２６に示す第６の実施形態の処理と同様である。
【０３２４】
また、図３１において、ＯＳ３０２のポイントアンドプリント機能を用いて、サーバ装置３０からクライアント装置１０にプリンタドライバ３０３をインストールすることができる。この場合、サーバ装置３０の印刷情報記憶部６１０に記憶された印刷情報６１１、及び実行情報６１２は、クライアント装置１０の印刷情報記憶部６１０に引き継がれる。
【０３２５】
したがって、例えば、第１〜４の実施形態に示すように、プラグイン実行部６０３が、実行情報６１２（例えばスクリプト、宛先情報等）に従って処理を実行する場合、クライアント装置１０は、そのまま拡張機能を利用することができる。
【符号の説明】
【０３２６】
１          情報処理システム
１０        クライアント装置（情報処理装置）
２０        画像形成装置
３０        サーバ装置（外部装置）
３０１      アプリケーション（アプリケーションプログラム）
３０２      ＯＳ
３０３      プリンタドライバ（印刷を制御するプログラム）
３０４      ストアデバイスアプリ
３０５      ＵＩ部
３１１      ストアアプリ
３１３      拡張設定部
３２１      デスクトップアプリ
３２３      設定制御部
３３３      描画部
４００      ＰｒｏｐｅｒｔｙＢａｇ
４２０      ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ
６０３      プラグイン実行部（処理実行部）
６０４      印刷データ生成部
６１０      印刷情報記憶部
６１１      印刷情報
６１２      実行情報
１３２０    ＰｒｉｎｔＴｉｃｋｅｔ
２００１    拡張プラグイン
２１０１    実行制御部
２１０２    出力制御部
２５０１    ＵＩ制御部
【先行技術文献】
【特許文献】
【０３２７】
【特許文献１】特開２０１２−２２６５８２号公報
【図１】
2018049581.tif 000003
【図２】
2018049581.tif 000004
【図３】
2018049581.tif 000005
【図４】
2018049581.tif 000006
【図５】
2018049581.tif 000007
【図６】
2018049581.tif 000008
【図７】
2018049581.tif 000009
【図８】
2018049581.tif 000010
【図９】
2018049581.tif 000011
【図１０】
2018049581.tif 000012
【図１１】
2018049581.tif 000013
【図１２】
2018049581.tif 000014
【図１３】
2018049581.tif 000015
【図１４】
2018049581.tif 000016
【図１５】
2018049581.tif 000017
【図１６】
2018049581.tif 000018
【図１７】
2018049581.tif 000019
【図１８】
2018049581.tif 000020
【図１９】
2018049581.tif 000021
【図２０】
2018049581.tif 000022
【図２１】
2018049581.tif 000023
【図２２】
2018049581.tif 000024
【図２３】
2018049581.tif 000025
【図２４】
2018049581.tif 000026
【図２５】
2018049581.tif 000027
【図２６】
2018049581.tif 000028
【図２７】
2018049581.tif 000029
【図２８】
2018049581.tif 000030
【図２９】
2018049581.tif 000031
【図３０】
2018049581.tif 000032
【図３１】
2018049581.tif 000033