(57)【特許請求の範囲】
【請求項１】
対応するプリンタが認識可能な描画データを生成する印刷制御プログラムと、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付手段と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得手段と、
前記要求受付手段によって受け付けた前記印刷要求に応じ、前記情報取得手段によって取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知手段と、
前記機能通知手段で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成手段と、を有し、
前記印刷制御プログラムは、
前記中間データに基づいて前記描画データを生成する
情報処理装置。
【請求項２】
前記機能情報には、前記プリンタの印字領域、用紙サイズ又は解像度の情報が含まれる、
請求項１に記載の情報処理装置。
【請求項３】
前記拡張機能情報には、前記印刷制御プログラムが有していない機能に関する情報であって、用紙サイズ又は解像度の条件を設定するための情報が含まれる、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記アプリケーションのユーザが前記拡張機能を設定する拡張機能設定手段を有する、
請求項１乃至３何れか一項に記載の情報処理装置。
【請求項５】
前記アプリケーションのユーザが、前記中間データを用いて生成された前記描画データを印刷するプリンタを選択するためのプリンタ選択手段を有する、
請求項１乃至４何れか一項に記載の情報処理装置。
【請求項６】
前記中間データに対する処理を行う再印刷アプリケーションを実行する再印刷アプリケーション実行手段を有する、
請求項１乃至５何れか一項に記載の情報処理装置。
【請求項７】
前記拡張機能によって設定可能となった用紙サイズが設定されると、
設定された前記用紙サイズに最も近い前記プリンタの用紙サイズに合わせて前記中間データを拡大又は縮小する用紙サイズ変更手段を更に有し、
前記印刷制御プログラムは、
前記用紙サイズ変更手段によって変更された前記中間データに基づいて前記描画データを生成する
請求項１乃至６何れか一項に記載の情報処理装置。
【請求項８】
前記拡張機能によって設定可能となった解像度が設定されると、
前記プリンタの対応する解像度に合わせて、前記中間データの解像度を変倍する解像度変更手段を更に有し、
前記印刷制御プログラムは、
前記解像度変更手段によって変更された前記中間データに基づいて前記描画データを生成する
請求項１乃至７何れか一項に記載の情報処理装置。
【請求項９】
対応するプリンタが認識可能な描画データを生成する印刷制御プログラムと通信するプログラムであって、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付段階と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得段階と、
前記要求受付段階で受け付けた前記印刷要求に応じ、前記情報取得段階で取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知段階と、
前記機能通知段階で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成段階と、を有し、
前記印刷制御プログラムに、
前記中間データに基づいて前記描画データを生成させる
をコンピュータに実行させるためのプログラム。
【請求項１０】
対応するプリンタが認識可能な描画データを生成する印刷制御プログラムと通信するプログラムであって、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付段階と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得段階と、
前記要求受付段階で受け付けた前記印刷要求に応じ、前記情報取得段階で取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知段階と、
前記機能通知段階で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成段階と、を有し、
前記印刷制御プログラムに、
前記中間データに基づいて前記描画データを生成させる
をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ユーザアプリケーションからの印刷要求を受けると、ユーザアプリケーションから出力されたデータを中間データとして出力し、何らかの処理を行った上で、プリンタに印刷させることのできる、仮想プリンタが知られている（以下、ハードウェアによる印字装置を有するプリンタと、仮想プリンタとを区別するため、前者を物理プリンタと呼ぶ。）。
【０００３】
仮想プリンタは、ユーザアプリケーションから出力された印刷データを処理する機能を有するソフトウェアであり、物理プリンタ又は物理プリンタドライバによって提供されない機能を提供することができる。
【０００４】
特許文献１には、ユーザが、情報処理装置のプリンタの出力設定に関わらず、予めユーザに関連付けられた物理プリンタからの出力を可能とする情報処理装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１を含む既存の方法においては、仮想プリンタからアプリケーションに通知される印刷機能（仕様）の情報が、実際の印刷を行う物理プリンタの印刷機能と異なる独自の情報である。その結果、物理プリンタのハードウェアの仕様と異なる描画データがアプリケーションから出力され、期待とは異なる印刷結果となる可能性があった。例えば、仮想プリンタからアプリケーションに通知された印字領域を表す数値が、実際に印刷が行われる物理プリンタの印刷領域よりも大きい場合に、印刷結果の一部が正常に印刷されない可能性があった。
【０００６】
本発明は、このような問題に鑑みてなされたものであり、仮想プリンタを通じて印刷する場合であっても、ユーザアプリケーションが期待する印刷結果を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し目的を達成するため、本発明の一実施形態における情報処理装置は、
対応するプリンタが認識可能な描画データを生成する印刷制御プログラムと、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付手段と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得手段と、
前記要求受付手段によって受け付けた前記印刷要求に応じ、前記情報取得手段によって取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知手段と、
前記機能通知手段で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成手段と、を有し、
前記印刷制御プログラムは、
前記中間データに基づいて前記描画データを生成する。
【０００８】
また、本発明の一実施形態におけるプログラムは、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付段階と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得段階と、
前記要求受付段階で受け付けた前記印刷要求に応じ、前記情報取得段階で取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知段階と、
前記機能通知段階で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成段階と、を有し、
前記印刷制御プログラムに、
前記中間データに基づいて前記描画データを生成させる
をコンピュータに実行させる。
【０００９】
また、本発明の一実施形態における記録媒体は、
対応するプリンタが認識可能な描画データを生成する印刷制御プログラムと通信するプログラムであって、
アプリケーションから前記プリンタへの印刷要求を受け付ける要求受付段階と、
前記印刷制御プログラムから、前記プリンタの機能を表す機能情報を取得する情報取得段階と、
前記要求受付段階で受け付けた前記印刷要求に応じ、前記情報取得段階で取得した前記機能情報と、用紙又は解像度の条件を設定するための情報が含まれる前記印刷制御プログラムが有していない拡張機能に関する拡張機能情報を前記アプリケーションに通知する機能通知段階と、
前記機能通知段階で通知した前記機能情報と前記拡張機能情報に基づく前記アプリケーションからの描画命令から、前記印刷要求を行う印刷装置が対応する用紙サイズに応じた中間データ、又は該印刷装置が対応する解像度に応じた中間データを生成する中間データ生成段階と、を有し、
前記印刷制御プログラムに、
前記中間データに基づいて前記描画データを生成させる
をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１０】
本発明によれば、仮想プリンタを通じて印刷する場合であっても、ユーザアプリケーションが期待する印刷結果を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態における情報処理装置の概要を表す図。
【図２】本発明の一実施形態における情報処理装置のハードウェア構成の例を表す図。
【図３】本発明の一実施形態における情報処理装置の機能ブロックの例を表す図。
【図４Ａ】本発明の一実施形態における再印刷アプリケーションの構成の例を表す図。
【図４Ｂ】本発明の一実施形態における中間データの構成の例を表す図。
【図５】本発明の一実施形態における情報処理装置の印刷処理の概要を表す図。
【図６Ａ】本発明の一実施形態における仮想プリンタドライバの設定画面の例を表す図。
【図６Ｂ】本発明の一実施形態における仮想プリンタドライバの設定画面の例を表す図。
【図７】本発明の一実施形態における、物理プリンタを選択する処理を説明する図。
【図８】本発明の一実施形態における、物理プリンタの機能情報に基づく情報をユーザアプリケーションに通知する処理を説明する図。
【図９】本発明の一実施形態における、拡張機能の設定を行うＧＵＩの表示処理を説明する図。
【図１０Ａ】本発明の一実施形態における情報処理装置の印刷処理を説明する図。
【図１０Ｂ】本発明の一実施形態における情報処理装置の印刷処理を説明する図。
【図１１Ａ】本発明の一実施形態における再印刷アプリケーションの選択画面の例を表す図。
【図１１Ｂ】本発明の一実施形態における再印刷アプリケーションの設定画面の例を表す図。
【図１２】本発明の一実施形態における拡張機能情報の例を表す図。
【図１３】本発明の一実施形態における再印刷アプリケーション情報の例を表す図。
【図１４】本発明の一実施形態における再印刷アプリケーションの設定ファイルの例を表す図。
【図１５】本発明の一実施形態における中間データの設定ファイルの例を表す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
１．概要
２．ハードウェア構成
３．機能ブロック
４．処理フロー
４．１  概要
４．２  物理プリンタの選択処理
４．３  機能通知処理
４．４  ＧＵＩの表示処理
４．５  印刷処理
【００１４】
（１．概要）
最初に、図１を用いて、本発明の一実施形態における情報処理装置の概要を説明する。図１は、本発明の一実施形態における情報処理装置１００のソフトウェア構成を表している。
【００１５】
ユーザアプリケーションは、ユーザが、文書や画像のような印刷対象となるデータを作成するために用いられる。ユーザは、ユーザアプリケーションのＧＵＩ（Graphical  User  Interface）を通じて、印刷を行うプリンタ（又はプリンタドライバ）を選択する。そして、選択したプリンタのプリンタドライバが提供するＧＵＩを通じて、用紙サイズのような各種設定を行い、印刷を指示する。ここで、ユーザは、印刷に使用するためのプリンタドライバとして、以下に述べる物理プリンタドライバ又は仮想プリンタドライバから選択することができる。また、ユーザアプリケーションは、ＯＳを介して、プリンタドライバの機能情報（印字領域のようなハードウェア仕様に関する情報、及び、プリンタドライバがサポートする用紙サイズや解像度等の機能に関する情報を含む）を取得することができる。ユーザアプリケーションは、前記機能情報に基づいて印刷データを出力し、プリンタドライバを介して印刷を行う。
【００１６】
ＯＳは、情報処理装置１００で実行される情報処理を制御する。ＯＳは、ユーザアプリケーションが利用可能なプリンタのリストを保持する。また、ユーザアプリケーションから印刷の指示を受け、プリンタドライバを介して印刷処理を実行する。
【００１７】
物理プリンタドライバは、ユーザアプリケーションから出力された印刷データを受け取り、対応する物理プリンタ１１０が認識可能な描画データを生成するための、印刷制御プログラムである。そして、物理プリンタ１１０に対して印刷処理を実行させることができる。物理プリンタドライバは、物理プリンタそのもののハードウェア仕様に関する情報に加えて、物理プリンタドライバがサポートする用紙サイズや解像度等の機能に関する情報を有する。
【００１８】
仮想プリンタドライバは、物理プリンタドライバと異なり、特定の物理プリンタ１１０のみが読み取り可能な描画データを生成する代わりに、ハードウェアに依存しない汎用的な形式の中間データを生成する。例えば、中間データには、ＥＭＦ、ＸＰＳ、ＰＤＦ（登録商標）のような形式がある。ユーザは、仮想プリンタドライバを用いて印刷処理を実行するのに先立って、実際に印刷を行うプリンタ１１０（又は対応する物理プリンタドライバ）を予め指定する。これにより、仮想プリンタドライバは、実際に印刷処理が行われるプリンタ１１０の機能を予め知ることができる。従って、仮想プリンタドライバは、ユーザアプリケーションに対して、物理プリンタ１１０の機能に基づいた情報を通知することができる。また、仮想プリンタドライバは、生成した中間データに対して所定の処理を施すことのできる再印刷アプリケーションについて、ユーザに選択させ、さらに設定させるＧＵＩを表示することができる。また、仮想プリンタドライバは、使用する再印刷アプリケーションの選択及びその設定を行うためのＧＵＩを提供する機能も有する。
【００１９】
再印刷アプリケーションは、仮想プリンタドライバが生成した中間データを読み込み、データの加工や表示処理を行った後、物理プリンタドライバを通じて印刷する。再印刷アプリケーションの例として、中間データを画面上に表示してユーザに編集をさせた後に印刷を実行できるプレビューアプリケーションや、中間データに対して特定の描画オブジェクト（特定の文字列など）を追加又は削除して印刷するアプリケーションが含まれる。
【００２０】
上記の通り、本発明の一実施形態における情報処理装置は、仮想プリンタドライバが、物理プリンタドライバの機能に基づく機能情報をユーザアプリケーションに通知することにより、ユーザアプリケーションが出力した通りの印刷結果を得ることができる。特に、ユーザアプリケーションは、物理プリンタドライバの印字領域に適合した印刷データを出力することができる。
【００２１】
一方で、本発明の一実施形態における情報処理装置は、物理プリンタドライバが有していない機能を仮想プリンタドライバにより実現することもできる。特に、仮想プリンタドライバが、物理プリンタドライバのサポートする解像度より低い解像度にも対応し、その旨をユーザアプリケーションに通知することで、より多くの解像度での印刷が可能となる。
【００２２】
（２．ハードウェア構成）
次に、図２を用いて、本発明の一実施形態における情報処理装置１００のハードウェア構成について説明する。図２の情報処理装置１００は、ＣＰＵ２００、ＲＡＭ２０２、ＲＯＭ２０４、ＨＤＤ２０６、通信制御部２０８、通信装置２１０、表示制御部２１２、表示装置２１４、入力制御部２１６、入力装置２１８、出力制御部２２０、出力装置２２２及びバス２２４を有する。
【００２３】
ＣＰＵ２００は、当該情報処理装置１００の動作制御を行うプログラムを実行する。ＲＡＭ２０２は、ＣＰＵ２００のワークエリアを構成する。ＲＯＭ２０４は、ＣＰＵ２００が実行するプログラムやプログラムが使用するデータを記憶する。ＨＤＤ（又はＳＳＤ）２０６は、当該情報処理装置１００で用いられるユーザアプリケーション、再印刷アプリケーション、中間データ、物理プリンタドライバ、仮想プリンタドライバ及び設定ファイル等を記憶する。通信制御部２０８は、通信装置２１０を介して通信処理を実行する。通信装置２１０は、例えばイーサネット（登録商標）のネットワークインターフェースを有する装置である。表示制御部２１２は、当該情報処理装置１００上で実行される、ＯＳ、ユーザアプリケーション、再印刷アプリケーション、物理プリンタドライバ又は仮想プリンタドライバの処理内容に合わせて、表示装置２１４に表示される内容を制御する。表示装置２１４は、例えば液晶ディスプレイやＣＲＴディスプレイのようなディスプレイが含まれる。入力制御部２１６は、ユーザからの入力を受け付ける、例えばキーボード、マウスのような入力装置２１８からの信号を処理する。出力制御部２１８は、物理プリンタ１１０のような出力装置２２２への信号を処理する。バス２２４は、上記装置を電気的に接続する。
【００２４】
上記構成により、本発明の一実施形態における情報処理装置は、仮想プリンタドライバを通じて、ユーザ又はユーザアプリケーションが期待する印刷結果を得ることができる。
【００２５】
なお、ＨＤＤ２０６は、テープドライブ又は光学ドライブを含むあらゆる記憶装置であってもよく、あるいは、ネットワークを介してアクセス可能なストレージ領域であってもよい。
【００２６】
また、プリンタは、必ずしも出力装置２２２として当該情報処理１００と接続されている必要はなく、通信制御部２０８又は通信装置２１０を介して、ネットワーク上でアクセス可能なように構成されてもよい。
【００２７】
（３．機能ブロック）
次に、図３を用いて、本発明の一実施形態における情報処理装置１００の機能ブロックについて説明する。図３の情報処理装置１００は、要求受付手段３００、物理プリンタ選択手段３０２、情報取得手段３０４、機能通知手段３０６、拡張機能設定手段３０８、拡張機能提供手段３１０、中間データ生成手段３２０、再印刷アプリケーション実行手段３２２、記憶手段３２４、再印刷アプリケーション３３４、通信手段３４２、表示手段３４４、入力手段３４６及び制御手段３４８を有する。ここで、図３に示される点線は、仮想プリンタドライバ３５０として提供される機能の例を表す。
【００２８】
要求受付手段３００は、ユーザアプリケーションからの印刷要求を、ＯＳを介して受け付ける。印刷要求が受け付けられると、中間データのためのメモリ領域が確保され、後述する中間データ生成手段３２０によって描画データが出力される。そして、再印刷アプリケーションによる処理が施された後、物理プリンタドライバを介して印刷処理がなされる。
【００２９】
物理プリンタ選択手段３０２は、実際の印刷処理を行う物理プリンタ１１０を選択するためのＧＵＩをユーザに提供する。このため、物理プリンタ選択手段３０２は、ＯＳからプリンタ一覧を取得し、ＧＵＩを通じてユーザに提示する。ユーザは、例えば、図６Ａに示されるようなＧＵＩを用いて、プリンタを選択することができる。このユーザによる物理プリンタの選択は、ユーザがユーザアプリケーションに対して印刷を指示する前に、予めなされている必要がある。
【００３０】
情報取得手段３０４は、物理プリンタ選択手段３０２で選択されたプリンタに対応する物理プリンタドライバから、機能情報を取得する。取得される機能情報には、物理プリンタのハードウェア仕様（例えば、物理プリンタの印字領域等）と物理プリンタドライバが提供する機能（例えば、用紙サイズ又は解像度等）が含まれる。
【００３１】
機能通知手段３０６は、ＯＳを介してユーザアプリケーションから要求に応じて、情報取得手段３０４により物理プリンタドライバから取得した機能情報を通知する。あるいは、機能通知手段３０６は、物理プリンタドライバから取得した機能情報に、後述する拡張機能提供手段３１０によって提供される拡張機能の情報を加えた情報を通知する。ユーザアプリケーションからの要求に対して、何れの情報を通知するかは、機能情報の種類に依存して決定される。機能情報のうち、物理プリンタのハードウェア仕様に関する情報（以下、「ハードウェア仕様情報」とする。）については、物理プリンタドライバから取得した機能情報をそのまま通知する必要がある。この機能情報がユーザアプリケーションに正しく通知されなければ、ユーザアプリケーションが物理プリンタに適合した印刷データを出力できない可能性があるためである。一方、物理プリンタドライバが提供する機能情報（以下、「物理プリンタドライバの機能情報」とする。）は、拡張機能提供手段３１０によって提供される拡張機能と組み合わせて通知され得る。物理プリンタドライバが提供する機能が、物理プリンタのハードウェア仕様に依存せず、画像処理によるものであれば、拡張機能提供手段３１０の拡張機能によって拡張することができるためである。
【００３２】
拡張機能設定手段３０８は、後述する拡張機能提供手段３１０によって提供される拡張機能を設定するためのＧＵＩをユーザに提供する。当該ＧＵＩの例を図６Ｂに示す。図６Ｂは、図６Ａにおける物理プリンタを選択する画面内に、物理プリンタドライバの機能を拡張する拡張機能を表示した例である。図６Ｂの例では、用紙サイズと解像度に関する拡張機能の設定項目が表示されている。用紙サイズの拡張機能とは、選択した物理プリンタドライバが対応していない用紙サイズを指定可能にするものであり、ユーザは、ドロップダウンリストから、所望の用紙サイズを選択できる。また、解像度の拡張機能とは、物理プリンタドライバが対応していない解像度を指定可能にするものであり、ユーザは、ドロップダウンリストから、所望の解像度を選択することができる。例えば、物理プリンタドライバがサポートする解像度が、「300x300」、「600x600」及び「1200x1200」であって、後述する解像度変更手段３１４がさらに「72x72」及び「150x150」の解像度をサポートする場合に、当該拡張機能設定手段３０８は、「72x72」、「150x150」、「300x300」、「600x600」、「1200x1200」の機能を設定可能とする。
【００３３】
拡張機能提供手段３１０は、用紙サイズ変更手段３１２、解像度変更手段３１４及び色数変更手段３１６のような、物理プリンタドライバが提供する機能を拡張する拡張機能をユーザアプリケーションに提供する。
【００３４】
用紙サイズ変更手段３１２は、物理プリンタドライバが対応しない用紙サイズの指定を可能にする。用紙サイズ変更手段３１２は、指定された用紙サイズに最も近い物理プリンタの用紙サイズに合わせて、印刷データの拡大又は縮小を行い、印刷処理を行う。
【００３５】
解像度変更手段３１４は、物理プリンタドライバが対応していない解像度による印刷を可能にする。解像度変更手段３１４は、物理プリンタの対応する解像度に合わせて、印刷データの解像度の変倍処理を行う。変倍率は、例えば、物理プリンタドライバがサポートする解像度の中から、元画像の整数倍で、なおかつ最も近い値の解像度に変倍するように決定され得る。あるいは、そのような解像度が存在しない場合には、最も近い解像度に変倍するように変倍率を決定してもよい。
【００３６】
色数変更手段３１６は、物理プリンタドライバが対応していない色数による印刷を可能にする。解像度変更手段３１４は、物理プリンタの対応する色数に合わせて、印刷データの解像度の増色又は減色処理を行う。
【００３７】
中間データ生成手段３２０は、設定された拡張機能に基づいて、ユーザアプリケーションから出力された印刷データを中間データとして生成する。中間データには、ＥＭＦ（Enhanced  Metafile）、ＸＰＳ（XML  Paper  Specification）、ＰＤＦ（登録商標）のような形式がある。
【００３８】
再印刷アプリケーション実行手段３２２は、ユーザによって指定され、設定された再印刷アプリケーションを実行する。ユーザによる再印刷アプリケーションの指定は、例えば図１１Ａに示されるＧＵＩを通じて、予め行われる。また、再印刷アプリケーションの設定は、例えば図１１Ｂに示されるＧＵＩを通じて、予め行われる。ただし、再印刷アプリケーションの種類によっては、設定を有さないものもある。再印刷アプリケーション実行手段３２２は、処理すべき中間データと上記設定とを指定して、再印刷アプリケーションを起動する。
【００３９】
記憶手段３２４は、物理プリンタ情報３２６、拡張機能情報３２８、再印刷アプリケーション情報３３０、中間データ３３２を記憶し、当該情報処理装置１００で用いられる設定ファイルやデータを記憶する。なお、記憶手段３２４の大部分は、仮想プリンタドライバ３５０内に含まれるように図示されているが、必ずしも仮想プリンタドライバ３５０に関わるデータのみを記憶するものではなく、当該情報処理装置１００に係るデータ全てを記憶し得る。
【００４０】
物理プリンタ情報３２６は、機能取得手段３０４によって取得された、特定の物理プリンタの機能情報を含む。
【００４１】
拡張機能情報３２８は、拡張機能提供手段３１０によって提供される拡張機能の情報を含む。図１２は、解像度変更手段３１４による拡張機能を定義した例であり、JSON形式で記述されている。この拡張機能情報においては、仮想プリンタドライバは、物理プリンタドライバの解像度に加えて、「72x72」と「150x150」の解像度（ＤＰＩ）が利用可能であることを示す。
【００４２】
再印刷アプリケーション情報３３０は、当該情報処理装置１００で利用可能な再印刷アプリケーションのリストと各再印刷アプリケーションの設定情報を含む。図１３は、再印刷アプリケーション情報３３０の例を表す。図１３において、「ReplayApp」が一つの再印刷アプリケーションを表し、「AppName」が再印刷アプリケーションの名前を、「ExePath」が再印刷アプリケーションの実行可能ファイルのパスを、「ConfPath」が再印刷アプリケーションの設定ファイルのパスを示している。ここでは、再印刷アプリケーション情報３３０が、ＩＮＩファイルとして提供される例を示したが、これに限定されない。例えば仮想ドライバのパッケージに含まれるテキストファイルによって提供されてもよいし、所定の位置のレジストリに登録されて提供されてもよい。再印刷アプリケーション情報３３０で指定された内容は、再印刷アプリケーション実行手段３２２によって読み込まれ、図１１Ａのような再印刷アプリケーション選択画面を表示するために使用される。
【００４３】
中間データ３３２は、要求受付手段３００がユーザアプリケーションからの印刷要求を受付けることによって初期化され、中間データ生成手段３２０によって出力される、物理プリンタが読み取り可能な描画データを含む。中間データの描画データのフォーマットは、上述したように、例えばＥＭＦ、ＸＰＳ、ＰＤＦ（登録商標）のような形式であるが、これに限定されない。また、中間データ３３２は、再印刷アプリケーションによって施されるべき処理内容を記述した設定ファイルを含み得る。図４Ｂは、中間データの構成例を表す。
【００４４】
再印刷アプリケーション３３０は、プレビューアプリケーション３３６、不要データ削除アプリケーション３３８及びラベル付加アプリケーション３４０を含み、生成された中間データ３３２に対する処理を行い、物理プリンタドライバを介して印刷処理を実行する。再印刷アプリケーション３３０は、再印刷アプリケーション実行手段３２２によって、処理すべき中間データと、処理内容を記述した設定ファイルとを指定されて、起動される。図４Ａは、再印刷アプリケーション３３０の構成の例を表す。再印刷アプリケーション３３０は、実行可能ファイルと設定ファイルから構成される。実行可能ファイルと設定ファイルのパス情報は、上述した再印刷アプリケーション３３０に保管される。
【００４５】
ここで、再印刷アプリケーション３３０の設定ファイルについて説明する。図１４は、再印刷アプリケーション３３０の設定ファイルの一例であり、JSONフォーマットで記述されたテキストファイルである。再印刷アプリケーション３３０の設定ファイルには、再印刷アプリケーション実行手段３２２が、再印刷アプリケーション３３０を実行するために必要な情報が記述される。この例では、再印刷アプリケーション３３０の起動モードを指定する「mode」と、ＧＵＩを通じたユーザによる設定を必要とする項目である「gui」が記述される。「mode」には、「sync」又は「async」を指定することができる。これによって、再印刷アプリケーション３３０が、同期モードで起動するか、非同期モードで起動するかを指定することができる。これらのモードの動作については後述する。「gui」には、ＧＵＩを通じて設定が必要な項目が記述される。「name」には、その設定の名前を示す文字列が記述される。「type」には、その設定の種類を示す文字列が記述され、例えば「text」(文字列型)、「pickone」（選択肢型）、「boolean」（論理値型）等が記述される。「caption」には、設定項目に関する説明文が記述される。ユーザによって設定された値は、中間データ３３２の設定ファイルとして記録される（図４Ｂ）。そして、該設定ファイルは、再印刷アプリケーション３３０が起動する際に読み込まれる。図１４の例は、図１３における「不要データ削除」（再印刷）アプリケーションの設定ファイル（「config.json」）の内容を示している。「不要データ削除」アプリケーションは、同期モードで動作し、ＧＵＩによる設定画面上で、「trimmed_text」という名前の、文字列型の設定を受付ける設定項目を有している。前記設定ファイルに対応するＧＵＩの例を図１１Ｂに示す。また、設定項目「trimmed_text」に対する「あいうえお」というユーザの設定がなされた場合に生成される、中間データ３３２の設定ファイルの例を図１５に示す。なお、「gui」の設定項目を持たない再印刷アプリケーション３３０については、設定画面に関する上記ＧＵＩを生成しない。
【００４６】
プレビューアプリケーション３３６は、中間データを表示装置２１４に表示し、ユーザに所定の編集をさせた上で、物理プリンタからの印刷を実行する。所定の編集とは、文字列の追加や削除、画像又は図形に対する画像処理を含む。
【００４７】
不要データ削除アプリケーション３３８は、ユーザによって指定された所定の文字列を、中間データから削除する。所定の文字列の指定方法の例を図１１Ｂに示す。
【００４８】
ラベル付加アプリケーション３４０は、当該情報処理装置１００の管理者によって予め指定された所定の文字列又は画像（ラベル）を、中間データの所定の位置に付加する。所定のラベルとは、例えば「機密情報」や「Confidential」のようなラベルを含む。一般的に、このようなラベルの付加は、一般のユーザの意図と関係なく付加されるため、ＧＵＩを通じた設定は不要である。
【００４９】
通信手段３４２は、当該情報処理装置１００が有線ＬＡＮ又は無線ＬＡＮのようなネットワークを通じて、外部の装置又は物理プリンタと通信するために用いられる。
【００５０】
表示手段３４４は、上述したＧＵＩに加えて、当該情報処理装置１００で動作するユーザアプリケーション、再印刷アプリケーション又はＯＳのＧＵＩを表示装置２１４上に表示するために用いられる。
【００５１】
入力手段３４６は、上述したＧＵＩを通じて入力されたユーザからの入力情報を処理するために用いられる。
【００５２】
制御手段３４８は、当該情報処理装置１００における処理を制御するために用いられる。
【００５３】
上記構成により、本発明の一実施形態における情報処理装置は、物理プリンタドライバのハードウェア仕様情報をユーザアプリケーションに通知することで、ユーザアプリケーションが出力した通りの印刷結果を得ることができる。
【００５４】
一方で、物理プリンタドライバによって提供されない機能に、仮想プリンタドライバの拡張機能を加えた機能を、ユーザアプリケーションに提供することができる。
【００５５】
（４．処理フロー）
次に、本発明の一実施形態における情報処理装置１００の処理フローについて説明する。
【００５６】
（４．１  概要）
図５は、本発明の一実施形態における情報処理装置１００の処理フローの概要を表す。
ユーザは、予め、物理プリンタ選択手段３０２を通じて、実際に印刷を行う物理プリンタを選択しておく（４．２節）。  
ユーザアプリケーションは、ＯＳを通じて、当該仮想プリンタドライバ３５０の機能情報を取得する。そこで、情報取得手段３０４は、予め選択された物理プリンタに対応する物理プリンタドライバから機能情報を取得する。そして、情報通知手段３０６は、取得した機能情報（ハードウェア仕様情報）又は物理プリンタドライバが提供する機能情報に拡張機能の情報を加えた情報をユーザアプリケーションに返す（４．３節）。  
また、ユーザは、仮想プリンタドライバの拡張機能設定手段３０８及び再印刷アプリケーション実行手段３２２によって表示されたＧＵＩを通じて、使用する機能及び再印刷アプリケーションの設定を行う（４．４節）。  
ユーザアプリケーションは、通知された機能情報に基づいて、印刷データを出力する。仮想プリンタドライバの中間データ生成手段３２０は、ユーザにより設定された拡張機能の設定に基づいて、前記印刷データから中間データを生成する。そして、仮想プリンタドライバの再印刷アプリケーション実行手段３２２が、ユーザによって指定された再印刷アプリケーション３３４を起動する。再印刷アプリケーション３３４は、中間データ及び中間データの設定ファイルを読み込み、中間データに対して所定の処理を施した後、ＯＳを通じて物理プリンタドライバに印刷を指示する（４．５節）。
【００５７】
（４．２  物理プリンタの選択処理）
図６Ａは、物理プリンタ選択手段３０２によって表示されるＧＵＩの例である。この例では、情報処理装置１００で利用可能な物理プリンタのリストが、ドロップダウンリストによって表示されている。ユーザは、リストの中から、印刷に使用する物理プリンタを選択することができる。
【００５８】
図７は、図６Ａに表示される物理プリンタのリストの取得処理と、ユーザによる物理プリンタの選択がなされた場合の処理を説明する図である。
【００５９】
物理プリンタ選択手段３０２は、ユーザアプリケーションからＯＳを通じてＧＵＩの表示指示を受けると（ステップＳ７００、Ｓ７０２）、ＯＳから物理プリンタのリストを取得し（ステップＳ７０４）、物理プリンタのリストを「出力するプリンタ」として表示する（ステップＳ７０６）。また、ユーザが「出力するプリンタ」から物理プリンタ名を選択すると、ＯＳ経由でその情報が仮想プリンタドライバ３５０に送られる（ステップＳ７５０）。選択された物理プリンタ名は、記憶手段３２４に記憶される（ステップＳ７５２）。
【００６０】
以上の処理により、本発明の一実施形態における情報処理装置の仮想プリンタドライバは、ユーザ又はユーザアプリケーションがどの物理プリンタで印刷を行うかを、予め知ることが可能になる。
【００６１】
（４．３  機能通知処理）
図８は、ユーザアプリケーションから仮想プリンタドライバ３５０の機能情報要求がなされた場合の処理フローを表す。ユーザアプリケーションは、ＯＳを介して、仮想プリンタドライバ３５０に機能情報を要求する（ステップＳ８００〜Ｓ８０２）。これに対して、仮想プリンタドライバ３５０の情報取得手段３０４は、予め選択された物理プリンタに対応する物理プリンタドライバから、機能情報を取得する（ステップＳ８０４、Ｓ８０６）。ここで、既に述べたように、機能情報には、ハードウェア仕様情報と物理プリンタドライバの機能情報が含まれる点に留意する。情報取得手段３０４は、さらに、拡張機能提供手段３１０によって提供される拡張機能のリストである拡張機能情報３２８を読み込む（ステップＳ８０８）。そして、機能通知手段３０６は、ハードウェア仕様情報又は物理プリンタドライバの機能情報に拡張機能の情報を含めた情報を、ユーザアプリケーションに通知する（ステップＳ８１０−８１４）。
【００６２】
ここで、ステップＳ８００に対応する処理は、例えばWindows（登録商標）では、ユーザアプリケーションがGetDeviceCaps又はDeviceCapabilities  APIを呼び出すことに対応する。前者は、印字領域の情報を含む、物理プリンタドライバから物理プリンタのハードウェア仕様情報を取得するためのAPIであり、後者は、物理プリンタドライバの機能情報を取得するためのAPIである。従って、情報通知手段３０６は、前者のAPIによる呼び出しに対しては、ハードウェア仕様情報をそのまま通知することが望ましい。一方、情報通知手段３０６は、後者のAPIによる呼び出しに対しては、物理プリンタドライバの機能情報と拡張機能提供手段３１０によって提供される拡張機能を組み合わせて通知し得る。
【００６３】
以上の処理により、本発明の一実施形態における情報処理装置の仮想プリンタドライバは、物理プリンタのハードウェア仕様情報又は物理プリンタドライバの機能を拡張した機能の情報をユーザアプリケーションに通知することができる。
【００６４】
（４．４  機能設定処理）
図９を用いて、図１１Ａ、１１Ｂに示される、再印刷アプリケーションの選択と設定を行うためのＧＵＩを表示するための処理について説明する。ここで、図６Ａ、１１Ａ、１１Ｂに示されるように、物理プリンタの選択画面、再印刷アプリケーションの選択画面及び設定画面は、同一のウィンドウ内の異なるタブとして実装され得る。
【００６５】
まず、ユーザは、ユーザアプリケーションに対して、印刷設定のＧＵＩ表示を指示する（ステップＳ９００）。次に、ユーザアプリケーションは、ＯＳを経由して、印刷設定のＧＵＩ表示指示を仮想プリンタドライバ３５０に送る（ステップＳ９０２及び／又はステップＳ９５０）。これを受けて、再印刷アプリケーション実行手段３２２は、再印刷アプリケーション情報３３０を読み込み、利用可能な再印刷アプリケーションの一覧を作成し、再印刷アプリケーションの選択画面を生成する（ステップＳ９０４、Ｓ９０６）。また、再印刷アプリケーション実行手段３２２は、それぞれの再印刷アプリケーションの設定画面を生成するために、それぞれの再印刷アプリケーションの設定ファイルを読み込む（ステップＳ９０８、Ｓ９１０）。ここで、前述したように、それぞれの再印刷アプリケーションの設定ファイルに「gui」の設定項目が含まれる場合にのみ、設定画面が表示される点に留意する。再印刷アプリケーション情報３３０の一例は図１３に、再印刷アプリケーション設定ファイルの一例は図１４にそれぞれ示されている。
【００６６】
また、ユーザアプリケーションから、印刷設定のＧＵＩ表示指示を受けて、情報取得手段３０４は、物理プリンタドライバから機能情報を取得する（ステップＳ９５０〜Ｓ９５４）。また、情報取得手段３０４は、拡張機能情報３２８を読み込み、拡張機能提供手段３２８が提供する拡張機能の情報を取得する（ステップＳ９５６）。そして、拡張機能設定手段３０８は、物理プリンタドライバから取得した機能情報に前記拡張機能の情報を追加し、設定画面であるＧＵＩを表示する（ステップ９５８、９６０、図６Ｂ）。ここで、当該設定画面には、物理プリンタドライバの機能情報に拡張機能の情報を加えたもののみを表示してもよい。これは、ユーザが設定可能な設定項目として、ハードウェア仕様情報に関する項目を含むことは適切でない可能性があるためである。
【００６７】
以上の処理により、本発明の一実施形態における情報処理装置の仮想プリンタドライバは、再配布アプリケーション又は当該仮想プリンタドライバの拡張機能の設定を行うことができる。
【００６８】
（４．５  印刷処理）
図１０Ａ、１０Ｂは、ユーザによる拡張機能の設定並びに再配布アプリケーションの選択及び設定後に、ユーザアプリケーションが、仮想プリンタドライバ３５０を通じて印刷を実行する処理を表す。ここで、図１０Ａは、同期モードで動作する再配布アプリケーション３３４についての実行処理を表し、図１０Ｂは、非同期モードで動作する再配布アプリケーション３３４についての実行処理を表す。上で述べたように、再印刷アプリケーション設定ファイルにおいて、「mode」の値が「sync」であれば同期モードを表し、「async」であれば非同期モードを表す。同期モードでは、中間データ生成手段３２０が、中間データの描画データを全ページ出力してから、再印刷アプリケーション３３４を起動する。一方、非同期モードでは、中間データ生成手段３２０が、中間データの描画データの出力を開始した時点で、再印刷アプリケーション３３４を起動する。非同期モードでは、再印刷アプリケーション３３４は、中間データの描画データをポーリングしながら、データを読み込むことになる。
【００６９】
まず、図１０Ａを用いて、同期モードでの動作について説明する。まず、ユーザが、ユーザアプリケーションに対して印刷の指示を行うと、ユーザアプリケーションは、ＯＳ経由で印刷開始通知を要求受付手段３００に送る（ステップＳ１０００、Ｓ１００２）。次に、要求受付手段３００は、中間データの描画データを格納するファイルを、一時ファイルとして生成する（ステップＳ１００４）。次に、ユーザアプリケーションは、描画命令をＯＳ経由で仮想プリンタドライバ３５０に送る（ステップＳ１０１０、Ｓ１０１２）。中間データ生成手段３２０は、ステップＳ１００４で生成した一時ファイルに対して、描画データを変換して書き込む（ステップＳ１０１４、Ｓ１０１６）。ここで、ユーザにより設定された拡張機能の設定に基づいた、拡張機能提供手段３１０による処理も行われる。そして、ユーザアプリケーションによる描画が完了するまで、ステップＳ１０１０〜Ｓ１０１６に対応する処理を繰り返す（ステップＳ１０２０〜Ｓ１０２６）。ユーザアプリケーションによる描画が完了すると、ユーザアプリケーションは、ＯＳ経由で、印刷終了通知を仮想プリンタドライバ３５０に送る。印刷終了通知を受け取ると、再印刷アプリケーション実行手段１０３４は、中間データの描画データ及び設定ファイルをパラメータとして、再印刷アプリケーション３３４を起動する（ステップＳ１０３４〜１０３６）。再印刷アプリケーション３３４は、パラメータで指定された中間データの設定ファイルを読み込み、以後、その設定に従って動作する（ステップＳ１０３８、Ｓ１０４０）。例えば、図１１Ｂ、図１５で示した不要データ削除アプリケーション３３８の例では、中間データの描画データから、「あいうえお」の文字列を削除し、物理プリンタドライバに送信する。再印刷アプリケーション３３４による処理が完了すると、中間データ設定ファイルを削除する（ステップＳ１０４２）。そして、再印刷アプリケーション３３４に対するユーザの印刷指示により、処理された描画データをＯＳ経由で物理プリンタドライバに送信し、その後物理プリンタより印刷が開始される（ステップＳ１０４４、１０４６）。物理プリンタドライバへ描画データが送信されると、再印刷アプリケーション３３４は、中間データの描画データを削除する（ステップＳ１０４８）。
【００７０】
以上の処理により、ユーザアプリケーションは、物理プリンタドライバのハードウェア仕様情報と仮想プリンタドライバの拡張機能の情報に基づいて描画データを出力することができる。また、再印刷アプリケーションにより、描画データに対する追加の処理を施した後に、物理プリンタから印刷を実行することができる。
【００７１】
次に、図１０Ｂを用いて、非同期モードでの動作について説明する。同期モードと同様に、ユーザは、ユーザアプリケーションに対して印刷の指示を行う。ステップＳ１０５０〜Ｓ１０５４は、図１０ＡにおけるステップＳ１０００〜Ｓ１００４と同様である。次に、再印刷アプリケーション実行手段３２２は、中間データの描画データと設定ファイルとをパラメータとして、再印刷アプリケーション３３４を起動する（ステップＳ１０５６、１０５８）。再印刷アプリケーション３３４は、パラメータで指定された中間データの設定ファイルを読み込み、以後、その設定に従った動作をする。次に、再印刷アプリケーション３３４は、中間データ設定ファイルを削除する（ステップＳ１０６０）。その後、再印刷アプリケーション３３４は、一定間隔毎に中間データの描画データをポーリングし、前回との差分を読み込み、処理を行う（ステップＳ１０７８、Ｓ１０８６）。一方、ユーザアプリケーションは、描画命令をＯＳ経由で仮想プリンタドライバ３５０に送る（Ｓ１０７０）。中間データ生成手段３２０による描画処理であるステップＳ１０７２〜１０７６は、図１０ＡにおけるステップＳ１０１２〜Ｓ１０１６と同様である。そして、中間データ生成手段３２０は、図１０ＡにおけるステップＳ１０２０〜Ｓ１０２６と同様に、描画が完了するまで処理を繰り返す（ステップＳ１０８０〜Ｓ１０８４）。ユーザアプリケーションによる描画が完了すると、ユーザアプリケーションは、ＯＳ経由で、印刷終了通知を送る（ステップＳ１０９０、Ｓ１０９２）。その後、要求受付手段３００は、中間データの出力が完了したことを再印刷アプリケーション３３４に通知する（ステップ１０９４）。該通知を受けた再印刷アプリケーション３３４は、残りの中間データを読み込み、所定の処理を行った後、ＯＳを介して物理プリンタドライバに対して印刷を指示する（ステップＳ１０９６〜Ｓ１１００）。最後に、中間データの描画データの一時ファイルを削除する（ステップＳ１１０２）。
【００７２】
以上の処理により、ユーザアプリケーションは、物理プリンタドライバのハードウェア仕様情報と仮想プリンタドライバの拡張機能の情報に基づいて描画データを出力することができる。また、中間データの描画処理と非同期に動作する再印刷アプリケーションにより、描画データに対して追加の処理を逐次施した後に、物理プリンタから印刷を実行することができる。
【符号の説明】
【００７３】
１００  情報処理装置
１１０  プリンタ
３００  要求受付手段
３０２  物理プリンタ選択手段
３０４  情報取得手段
３０６  機能通知手段
３０８  拡張機能設定手段
３１０  拡張機能提供手段
３２０  中間データ生成手段
３２２  再印刷アプリケーション実行手段
３２４  記憶手段
３３４  再印刷アプリケーション
３４２  通信手段
３４４  表示手段
３４６  入力手段
３４８  制御手段
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２０１０−１５７２０８号公報
【図１】
0006047892.tif 000002
【図２】
0006047892.tif 000003
【図３】
0006047892.tif 000004
【図４Ａ】
0006047892.tif 000005
【図４Ｂ】
0006047892.tif 000006
【図５】
0006047892.tif 000007
【図６Ａ】
0006047892.tif 000008
【図６Ｂ】
0006047892.tif 000009
【図７】
0006047892.tif 000010
【図８】
0006047892.tif 000011
【図９】
0006047892.tif 000012
【図１０Ａ】
0006047892.tif 000013
【図１０Ｂ】
0006047892.tif 000014
【図１１Ａ】
0006047892.tif 000015
【図１１Ｂ】
0006047892.tif 000016
【図１２】
0006047892.tif 000017
【図１３】
0006047892.tif 000018
【図１４】
0006047892.tif 000019
【図１５】
0006047892.tif 000020