(57)【特許請求の範囲】
【請求項１】
印刷の実行を命令する印刷ジョブを記憶するプリンタキューから取り出された前記印刷ジョブを解析する解析部と、
前記解析部により、前記印刷ジョブは、前記プリンタキューから取り出された後に再度前記プリンタキューに投入された再投入ジョブであると判断された場合、前記印刷ジョブを出力装置へ送信する印刷ジョブ送信部と、
前記解析部により、前記印刷ジョブは前記再投入ジョブではないと判断された場合、所定の処理を実行する処理部と、
前記処理部による所定の処理が実行された後、前記再投入ジョブであることを示す再投入情報を前記印刷ジョブに埋め込む印刷ジョブ編集部と、
前記印刷ジョブ編集部により編集された前記印刷ジョブを前記プリンタキューへ戻す印刷ジョブ投入部と、を備える、
情報処理システム。
【請求項２】
前記処理部は、前記所定の処理として、前記印刷ジョブに基づく印刷を実行するか否かを指示するための指示画面を表示し、ユーザの指示を受け付ける処理を行い、
前記印刷ジョブ編集部は、前記指示画面から、前記印刷ジョブに基づく印刷を実行する指示を受け付けた場合、前記再投入情報を該印刷ジョブに埋め込む、
請求項１に記載の情報処理システム。
【請求項３】
前記再投入情報はＰＪＬで表される、
請求項１または２に記載の情報処理システム。
【請求項４】
印刷の実行を命令する印刷ジョブを記憶するプリンタキューから取り出された前記印刷ジョブを解析する解析部と、
前記解析部により、前記印刷ジョブは、前記プリンタキューから取り出された後に再度前記プリンタキューに投入された再投入ジョブであると判断された場合、前記印刷ジョブを出力装置へ送信する印刷ジョブ送信部と、
前記解析部により、前記印刷ジョブは前記再投入ジョブではないと判断された場合、所定の処理を実行する処理部と、
前記処理部による所定の処理が実行された後、前記再投入ジョブであることを示す再投入情報を前記印刷ジョブに埋め込む印刷ジョブ編集部と、
前記印刷ジョブ編集部により編集された前記印刷ジョブを前記プリンタキューへ戻す印刷ジョブ投入部と、を備える、
情報処理装置。
【請求項５】
印刷の実行を命令する印刷ジョブを記憶するプリンタキューから取り出された前記印刷ジョブを解析する解析ステップと、
前記解析ステップにより、前記印刷ジョブは、前記プリンタキューから取り出された後に再度前記プリンタキューに投入された再投入ジョブであると判断された場合、前記印刷ジョブを出力装置へ送信する印刷ジョブ送信ステップと、
前記解析ステップにより、前記印刷ジョブは前記再投入ジョブではないと判断された場合、所定の処理を実行する処理ステップと、
前記処理ステップによる所定の処理が実行された後、前記再投入ジョブであることを示す再投入情報を前記印刷ジョブに埋め込む印刷ジョブ編集ステップと、
前記印刷ジョブ編集ステップにより編集された前記印刷ジョブを前記プリンタキューへ戻す印刷ジョブ投入ステップと、を含む、
情報処理方法。
【請求項６】
コンピュータに、
印刷の実行を命令する印刷ジョブを記憶するプリンタキューから取り出された前記印刷ジョブを解析する解析ステップと、
前記解析ステップにより、前記印刷ジョブは、前記プリンタキューから取り出された後に再度前記プリンタキューに投入された再投入ジョブであると判断された場合、前記印刷ジョブを出力装置へ送信する印刷ジョブ送信ステップと、
前記解析ステップにより、前記印刷ジョブは前記再投入ジョブではないと判断された場合、所定の処理を実行する処理ステップと、
前記処理ステップによる所定の処理が実行された後、前記再投入ジョブであることを示す再投入情報を前記印刷ジョブに埋め込む印刷ジョブ編集ステップと、
前記印刷ジョブ編集ステップにより編集された前記印刷ジョブを前記プリンタキューへ戻す印刷ジョブ投入ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
例えばＷｉｎｄｏｗｓ（登録商標）では、ユーザから印刷の要求を受け付けると、アプリケーションにより生成された画像データは、プリンタドライバによって印刷可能な形式にレンダリングされて、Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒのプリンタキューに溜められる。Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒは、プリンタキューから印刷ジョブ（ジョブ）を取り出し、ポートモニタに渡す。そして、印刷ジョブを受け取ったポートモニタは、設定された出力先プリンタに印刷ジョブを送信する。そして、出力先のプリンタは、印刷ジョブに基づく印刷を実行する。例えば特許文献１には、印刷ジョブごとに、印刷ポートを変更することで、印刷ジョブの出力先を切り替える構成が開示されている。
【０００３】
ここで、ポートモニタは拡張が可能なため、独自のポートモニタを設定することで通常の印刷以外の処理を実行させることができる。そこで、印刷の実行前に指示画面を表示して、ユーザから印刷実行（続行）の指示を受け付けた場合は印刷を実行し、キャンセルの指示を受け付けた場合は印刷を取り止めるという処理を、ポートモニタで実現することを考える。ポートモニタはシステムプロセスで動作しているため、一般的にユーザのセッションにＵＩを表示させることができない。そのため、ユーザのセッションで動作する常駐アプリケーションを用意し、その常駐アプリケーションを介在してＵＩを表示する技術が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来においては、ユーザからの応答（指示）を受け付けることが必要なＵＩを表示した場合、ユーザからの応答を受け付けるまでの間、次のジョブを進めることができないので、処理効率が悪化してしまうという問題がある。
【０００５】
本発明は、複数のジョブが投入されると投入された順にジョブを処理していくシステムにおいて、効率的にジョブが処理されるよう制御すること、を目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、印刷の実行命令と、印刷対象のデータとを含む印刷ジョブを記憶するプリンタキューに記憶された前記印刷ジョブを解析する解析部と、前記解析部により、前記印刷ジョブは、前記プリンタキューから取り出された後に再度前記プリンタキューに投入された前記印刷ジョブを示す再投入ジョブであると判断された場合、前記印刷ジョブを出力装置へ送信する印刷ジョブ送信部と、前記解析部により、前記印刷ジョブは前記再投入ジョブではないと判断された場合、前記印刷ジョブに基づく印刷を実行するか否かを指示するための指示画面を表示する制御を行う指示画面表示部と、前記指示画面から、前記印刷ジョブに基づく印刷を実行する指示を受け付けた場合、前記印刷ジョブに対して、前記再投入ジョブであることを示す再投入情報を埋め込む印刷ジョブ編集部と、前記印刷ジョブ編集部により編集された前記印刷ジョブを前記プリンタキューへ戻す印刷ジョブ投入部と、を備える、情報処理システムである。
【発明の効果】
【０００７】
本発明によれば、処理効率を向上させることが可能な情報処理システム、情報処理装置、情報処理方法およびプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態の情報処理システムの構成の一例を示す図である。
【図２】図２は、クライアント端末のハードウェア構成の一例を示す図である。
【図３】図３は、クライアント端末が有する機能の一例を示す図である。
【図４】図４は、指示画面の一例を示す図である。
【図５】図５は、ジョブ情報の一例を示す図である。
【図６】図６は、第１の実施形態の印刷ジョブの処理の流れを示す図である。
【図７】図７は、第２の実施形態の情報処理システムの構成の一例を示す図である。
【図８】図８は、第２の実施形態のプリントサーバおよびクライアント端末が有する機能の一例を示す図である。
【図９】図９は、第２の実施形態のジョブ情報の一例を示す図である。
【図１０】図１０は、第２の実施形態の印刷ジョブの処理の流れを示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明に係る情報処理システム、情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。以下の例では、出力装置の一例として、画像形成装置の一態様であるプリンタを例に挙げて説明するが、これに限らず、出力装置の種類は任意である。例えば出力装置としてプロジェクタ等を用いてもよい。
【００１０】
（第１の実施形態）
図１は、本実施形態の情報処理システム１００の構成の一例を示す図である。図１に示すように、情報処理システム１００は、クライアント端末１０と、１以上のプリンタ２０と、を備えた印刷システムであり、これらは、有線または無線などで接続される。例えばインターネットなどのネットワークを介して接続される形態であってもよい。この情報処理システム１００では、クライアント端末１０は、ユーザの操作に応じて、印刷の実行を命令する印刷ジョブを生成し、その生成した印刷ジョブを、出力先として設定された何れかのプリンタ２０へ送信する。そして、印刷ジョブを受信したプリンタ２０は、その受信した印刷ジョブに基づく印刷を実行する。
【００１１】
クライアント端末１０は、ユーザが利用するＰＣ（Personal  Computer）等の情報処理装置である。なお、クライアント端末１０は、据置型の形態に限らず、例えば携帯型の形態（例えばスマートフォンやタブレットなどの形態）であってもよい。この例では、クライアント端末１０は、請求項の「情報処理装置」に対応している。
【００１２】
図１の例では、クライアント端末１０のオペレーティングシステム（ＯＳ）上で動作するプログラムとして、ＷｏｒｄやＥｘｃｅｌなどのユーザの操作に応じて印刷ジョブを作成するための印刷アプリケーション１０１、印刷アプリケーション１０１によって作成された印刷ジョブをプリンタ２０が印刷可能な形式に変換するためのプリンタドライバ１０２、プリンタドライバ１０２によって変換された印刷ジョブを一時的に保存し、順次に実行していくためのスプーラ（Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ）１０３、独自の拡張処理をするための印刷制御アプリ１０４、ポートモニタ（Ｐｏｒｔ  Ｍｏｎｉｔｅｒ）１０５、および、ユーザセッションで動作する常駐アプリケーション１０６などが存在する。この例では、印刷制御アプリ１０４およびポートモニタ１０５は、システムプロセスで動作するスプーラ１０３のプロセスにロードされる。なお、上述の印刷ジョブは、出力先のプリンタ２０を指定する情報、印刷条件、ユーザ情報、印刷対象のデータ（描画データ）などを含む。
【００１３】
図２は、クライアント端末１０のハードウェア構成の一例を示す図である。図２に示すように、クライアント端末１０は、ＣＰＵ５０１、ＲＯＭ５０２、ＨＤＤ５０３、ＲＡＭ５０４、入力装置５０５、表示装置５０６、外部Ｉ／Ｆ５０７、通信Ｉ／Ｆ５０８などを備え、それぞれがバスＢで相互に接続されている。
【００１４】
ＣＰＵ５０１は、ＲＯＭ５０２やＨＤＤ５０３などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、クライアント端末１０全体の制御や各種の機能を実現する演算装置である。
【００１５】
ＲＯＭ５０２は、電源を切っても（クライアント端末１０に対する電力供給が遮断されても）プログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）の一例である。ＲＯＭ５０２には、クライアント端末１０の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。
【００１６】
ＨＤＤ５０３は、プログラムやデータを格納する不揮発性の記憶装置の一例である。ＨＤＤ５０３には、クライアント端末１０全体を制御する基本ソフトウェアであるＯＳ、及びＯＳ上において各種機能を提供するアプリケーションソフトウェア（以下、単に「アプリケーション」と称する）などがある。なお、クライアント端末１０は、ＨＤＤ５０３に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００１７】
ＲＡＭ５０４は、プログラムやデータを一時保存する揮発性の記憶装置の一例であり、ＣＰＵ５０１が実行する処理の作業領域（ワークエリア）として機能する。
【００１８】
入力装置５０５は、ユーザが各種の操作信号を入力するのに用いられるデバイスであり、例えばキーボードやマウス、タッチパネルなどで構成され得る。表示装置５０６は、各種の情報（例えばクライアント端末１０による処理の結果等）を表示するデバイスであり、例えば液晶型のディスプレイ装置で構成され得る。なお、例えばタッチパネルなどのように、入力装置５０５と表示装置５０６とが一体で構成される形態であってもよい。また、入力装置５０５および表示装置５０６は必要なときに接続して利用する形態であってもよい。
【００１９】
外部Ｉ／Ｆ５０７は、外部装置とのインタフェースである。図２の例では、外部装置の一例として、記録媒体５１０を挙げているが、これに限られるものではない。クライアント端末１０は、外部Ｉ／Ｆ５０７を介して、記録媒体５１０からのデータの読み出しまたは記録媒体５１０に対するデータの書き込みを行うことができる。記録媒体５１０の一例として、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリなどが挙げられる。
【００２０】
通信Ｉ／Ｆ５０８は、プリンタ２０と通信するためのインタフェースである。例えばクライアント端末１０とプリンタ２０が、インターネットなどのネットワークを介して通信する形態であれば、通信Ｉ／Ｆ５０８は、クライアント端末１０をネットワークに接続するためのインタフェースである。
【００２１】
図３は、クライアント端末１０が有する機能の一例を示す図である。クライアント端末１０は、印刷アプリケーション１０１、プリンタドライバ１０２、スプーラ１０３、および、常駐アプリケーション１０６の各々により提供される機能を有している。
【００２２】
図３に示すように、スプーラ１０３は、プリンタキュー１０７と、印刷制御アプリ１０４と、複数のポートモニタ１０５とを有する。プリンタキュー１０７は、印刷ジョブを記憶する。この例では、プリンタキュー１０７は、先入先出法（ＦＩＦＯ）のバッファであり、プリンタドライバ１０２から供給される印刷ジョブを順次に記憶していく。また、ポートモニタ１０５は、プリンタアイコンごとに（印刷の設定ごとに）設けられている。通常であれば、スプーラ１０３によってプリンタキュー１０７から取り出された印刷ジョブは、対応するポートモニタ１０５へ渡されるが、この例では、プリンタキュー１０７から取り出された印刷ジョブがポートモニタ１０５へ渡される前に、印刷制御アプリ１０４が該印刷ジョブを取得し（横取りし）、後述の処理を実行する。以下、具体的な内容について説明する。
【００２３】
図３に示すように、印刷制御アプリ１０４は、印刷ジョブ解析部１１１、印刷ジョブ出力処理判断部１１２、印刷ジョブ一時保存部１１３、通信部１１４を有する。
【００２４】
印刷ジョブ解析部１１１は、「解析部」の一例であり、プリンタキュー１０７から取り出された印刷ジョブを解析する。より具体的には、印刷ジョブ解析部１１１は、スプーラ１０３によってプリンタキュー１０７から印刷ジョブが取り出されるたびに、その取り出された印刷ジョブを解析し、該印刷ジョブは、プリンタキュー１０７から取り出された後に再度プリンタキュー１０７に投入された（戻された）再投入ジョブであるか否かを判断する。
【００２５】
印刷ジョブ出力処理判断部１１２は、印刷ジョブ解析部１１１による解析の結果に応じて、出力処理を判断する。ここでは、印刷ジョブ出力処理判断部１１２は、印刷ジョブ解析部１１１により、プリンタキュー１０７から取り出された印刷ジョブは再投入ジョブであると判断された場合、該印刷ジョブの設定に対応するポートモニタ１０５へ該印刷ジョブを渡す。例えば印刷ジョブ出力処理判断部１１２は、印刷ジョブ解析部１１１による解析の結果から印刷の設定を把握することができ、その印刷の設定に対応するポートモニタ１０５を特定することができる。
【００２６】
各ポートモニタ１０５は、印刷ジョブ送信部１１５を有しており、印刷ジョブ送信部１１５は、印刷制御アプリ１０４（印刷ジョブ出力処理判断部１１２）から渡された印刷ジョブをプリンタ２０へ送信する。要するに、印刷ジョブ送信部１１５は、印刷ジョブ解析部１１１により、プリンタキュー１０７から取り出された印刷ジョブは再投入ジョブであると判断された場合、該印刷ジョブをプリンタ２０（出力装置の一例）へ送信する機能を有している。
【００２７】
一方、印刷ジョブ出力処理判断部１１２は、印刷ジョブ解析部１１１により、プリンタキュー１０７から取り出された印刷ジョブは再投入ジョブではないと判断された場合、該印刷ジョブを印刷ジョブ一時保存部１１３へ保存するとともに、その判断結果を常駐アプリケーション１０６へ送信することを通信部１１４に指示する。この指示を受けた通信部１１４は、上述の判断結果を常駐アプリケーション１０６へ送信する。また、印刷ジョブ出力処理判断部１１２は、印刷ジョブ一時保存部１１３への印刷ジョブの保存が完了した後に、印刷ジョブ一時保存部１１３のうち該印刷ジョブの格納場所を示す情報（この例ではファイルパス）と、出力先のプリンタ２０を示す情報（この例ではプリンタアイコン名）とを常駐アプリケーション１０６へ送信することを通信部１１４に指示する。この指示を受けた通信部１１４は、上述のファイルパスおよび上述のプリンタアイコン名を常駐アプリケーション１０６へ送信する。
【００２８】
図３に示すように、常駐アプリケーション１０６は、通信部１２１、印刷ジョブ制御部１２２、指示画面表示部１２３、ジョブ情報保管部１２４、印刷ジョブ破棄処理部１２５、印刷ジョブ編集部１２６、印刷ジョブ投入部１２７を有する。
【００２９】
通信部１２１は、印刷制御アプリ１０４と通信する。通信部１２１は、上述の判断結果を受信した場合、その受信した判断結果を印刷ジョブ制御部１２２へ渡す。印刷ジョブ制御部１２２は、指示画面表示部１２３に対して、印刷ジョブに基づく印刷を実行するか否かを指示するための指示画面を表示することを指示する。この指示を受けた指示画面表示部１２３は、図４に示すような指示画面を表示装置５０６に表示する制御を行う。ここでは、指示画面表示部１２３は、「処理部」の一例であり、印刷ジョブ解析部１１１により、プリンタキュー１０７から取り出された印刷ジョブは再投入ジョブではないと判断された場合、所定の処理を実行する機能を有していると考えることができる。より具体的には、指示画面表示部１２３は、上記所定の処理として、印刷ジョブに基づく印刷を実行するか否かを指示するための指示画面を表示し、ユーザの指示を受け付ける処理を行う。
【００３０】
また、通信部１２１は、上述のファイルパスおよび上述のプリンタアイコン名を受信した場合、その受信したファイルパスおよびプリンタアイコン名を印刷ジョブ制御部１２２へ渡す。印刷ジョブ制御部１２２は、印刷ジョブを識別するジョブＩＤと、通信部１２１を介して印刷制御アプリ１０４から受信したファイルパスおよびプリンタアイコン名とを紐付けたジョブ情報を、ジョブ情報保管部１２４へ保管する。図５は、ジョブ情報の一例を示す図である。指示画面の表示が終了した後は該当するレコードを削除する形態であってもよい。
【００３１】
指示画面表示部１２３は、指示画面から、印刷を実行する指示を受け付けた場合（図４に示す「ＯＫ」ボタンの押下を受け付けた場合）、その旨を印刷ジョブ制御部１２２へ通知する。この通知を受けた印刷ジョブ制御部１２２は、印刷制御アプリ１０４から受信したファイルパスを用いて、印刷ジョブ一時保存部１１３に保存された印刷ジョブを取得する。そして、その取得した印刷ジョブに対して、再投入ジョブであることを示す再投入情報を埋め込むことを印刷ジョブ編集部１２６に指示する。この指示を受けた印刷ジョブ編集部１２６は、再投入情報を該印刷ジョブに埋め込む編集処理を行う。例えば印刷ジョブに含まれる属性情報がＰＪＬ（Printer  Job  Language）で記述されている場合は、再投入情報を示すパラメータを追加することができる。つまり、再投入情報はＰＪＬで表される形態であってもよい。また、印刷ジョブに含まれる属性情報が、Ｗｉｎｄｏｗｓ（登録商標）などの標準の形式で定められている場合は、新たなパラメータを追加することはできないので、所定のパラメータの値を変更することで、再投入ジョブであることを識別可能にしてもよい。何れの形態も、「再投入情報を印刷ジョブに埋め込む」という概念に含まれる。要するに、印刷ジョブ編集部１２６は、指示画面表示部１２３による所定の処理（この例では指示画面を表示し、ユーザの指示を受け付ける処理）が実行された後、再投入ジョブであることを示す再投入情報を印刷ジョブに埋め込む機能を有している。
【００３２】
そして、印刷ジョブ編集部１２６は、編集後の印刷ジョブを印刷ジョブ投入部１２７へ渡す。印刷ジョブ投入部１２７は、印刷ジョブ編集部１２６により編集された印刷ジョブをプリンタキュー１０７へ戻す（再投入する）。
【００３３】
一方、指示画面表示部１２３は、上述の指示画面から、印刷を取り止める指示を受け付けた場合（図４に示す「キャンセル」ボタンの押下を受け付けた場合）、その旨を印刷ジョブ制御部１２２へ通知する。この通知を受けた印刷ジョブ制御部１２２は、印刷ジョブ一時保存部１１３のうち、印刷制御アプリ１０４から受信したファイルパスにより特定される格納場所に保存された印刷ジョブを破棄することを印刷ジョブ破棄処理部１２５に指示する。この指示を受けた印刷ジョブ破棄処理部１２５は、該印刷ジョブを破棄する処理を行う。
【００３４】
以上に説明したクライアント端末１０が有する各機能は、ＣＰＵ５０１が、ＲＯＭ５０２やＨＤＤ５０３などの記憶装置に記憶されたプログラムを実行することにより実現される。
【００３５】
図６は、以上に説明した印刷ジョブの処理の流れを示す図である。図６に示すように、まず印刷制御アプリ１０４は、スプーラ１０３から印刷ジョブ（プリンタキュー１０７から取り出された印刷ジョブ）を受信する（ステップＳ１）。次に、印刷制御アプリ１０４は、その受信した印刷ジョブを解析し（ステップＳ２）、再投入ジョブであるか否かを判断する（ステップＳ３）。ステップＳ３の結果が肯定の場合（ステップＳ３：Ｙｅｓ）、ステップＳ１で受信した印刷ジョブを、対応するポートモニタ１０５へ渡す（ステップＳ４）。ステップＳ３の結果が否定の場合（ステップＳ３：Ｎｏ）、印刷制御アプリ１０４は、その判断結果を常駐アプリケーション１０６へ送信する（ステップＳ５）。また、印刷制御アプリ１０４は、ステップＳ１で受信した印刷ジョブを印刷ジョブ一時保存部１１３に保存する（ステップＳ６）。保存完了後、印刷制御アプリ１０４は、印刷ジョブ一時保存部１１３のうち、ステップＳ１で受信した印刷ジョブの格納場所を示すファイルパスと、出力先のプリンタ２０を示すプリンタアイコン名と、を常駐アプリケーション１０６へ送信する（ステップＳ７）。
【００３６】
常駐アプリケーション１０６は、ポートモニタ１０５から上述の判断結果を受信すると、上述の指示画面を表示する制御を行い（ステップＳ８）、ユーザからの応答を受け付ける（ステップＳ９）。また、常駐アプリケーション１０６は、ポートモニタ１０５から上述のファイルパスおよび上述のプリンタアイコン名を受信すると、上述のジョブ情報を登録する（ステップＳ１０）。
【００３７】
いま、上述のステップＳ９において、指示画面から、印刷を実行する指示を受け付けた場合を想定する。この場合、常駐アプリケーション１０６は、ステップＳ１０で登録したジョブ情報に含まれるファイルパスを用いて、印刷ジョブ一時保存部１１３に保存された印刷ジョブを取得し、その取得した印刷ジョブに対して再投入情報を埋め込む編集処理を行う（ステップＳ１１）。そして、編集後の印刷ジョブをプリンタキュー１０７に再投入する（ステップＳ１２）。再投入された印刷ジョブは、プリンタキュー１０７から再度取り出され、ステップＳ１以降の処理が繰り返される。
【００３８】
以上に説明したように、本実施形態では、プリンタ２０へ出力する前に所定の処理（以上の例では指示画面を表示し、ユーザの指示を受け付ける処理）が行われた印刷ジョブに対しては、再投入ジョブであることを示す再投入情報が埋め込まれて、プリンタキュー１０７へ再投入される。したがって、印刷制御アプリ１０４は、プリンタキュー１０７から取り出された印刷ジョブを解析することで、該印刷ジョブが再投入ジョブであるか否かの判断を行うことができ、再投入ジョブである場合は、所定の処理を実行することなくそのまま対応するポートモニタ１０５へ渡してプリンタ２０から出力させることができる。これにより、処理効率を向上させることができる。
【００３９】
（第２の実施形態）
次に、第２の実施形態について説明する。上述の第１の実施形態と共通する部分については適宜に説明を省略する。
【００４０】
図７は、本実施形態の情報処理システム１００の構成の一例を示す図である。図７に示すように、情報処理システム１００は、クライアント端末１０、プリンタ２０に加えて、プリントサーバ３０を含む。プリントサーバ３０は、有線または無線などでクライアント端末１０と接続される。例えばインターネットなどのネットワークを介して接続される形態であってもよい。説明の便宜上、プリントサーバ３０のハードウェア構成は、図２の構成（クライアント端末１０と同様のハードウェア構成）であるとする。
【００４１】
本実施形態では、スプーラ１０３はプリントサーバ３０に搭載される。また、上述の第１の実施形態で説明した常駐アプリケーション１０６の機能のうち、指示画面表示部１２３以外の機能（印刷ジョブ編集部１２６、印刷ジョブ投入部１２７等）が、プリントサービス１０８としてプリントサーバ３０に搭載される。
【００４２】
また、本実施形態では、クライアント端末１０は、印刷アプリケーション１０１、プリンタドライバ１０２、常駐アプリケーション１０６を有する。ここでの常駐アプリケーション１０６の機能は、主に指示画面を表示する機能であり、印刷ジョブを編集する機能（印刷ジョブ編集部１２６）や、編集後の印刷ジョブをプリンタキュー１０７へ戻す機能（印刷ジョブ投入部１２７）などは含まれない。すなわち、本実施形態では、第１の実施形態で説明したスプーラ１０３および常駐アプリケーション１０６の機能のうち、ユーザに対して指示画面を表示する機能以外の機能がプリントサーバ３０に移譲されている。より具体的な内容については後述する。
【００４３】
図８は、クライアント端末１０およびプリントサーバ３０の各々が有する機能の一例を示す図である。図８に示すように、プリントサーバ３０は、スプーラ１０３と、プリントサービス１０８とを有する。スプーラ１０３は、プリンタキュー１０７と、印刷制御アプリ１０４と、複数のポートモニタ１０５とを有する。これらの機能は、上述の第１の実施形態と同様である。
【００４４】
印刷制御アプリ１０４が有する通信部１１６は、プリントサービス１０８と通信する機能である。上述の第１の実施形態と同様に、印刷制御アプリ１０４が有する印刷ジョブ出力処理判断部１１２は、印刷ジョブ解析部１１１により、プリンタキュー１０７から取り出された印刷ジョブは再投入ジョブではないと判断された場合、該印刷ジョブを印刷ジョブ一時保存部１１３へ保存するとともに、その判断結果をプリントサービス１０８へ送信することを通信部１１６に指示する。この指示を受けた通信部１１６は、その判断結果をプリントサービス１０８へ送信する。また、印刷ジョブ出力処理判断部１１２は、印刷ジョブ一時保存部１１３への印刷ジョブの保存が完了した後に、印刷ジョブ一時保存部１１３のうち該印刷ジョブの格納場所を示すファイルパスと、出力先のプリンタ２０を示すプリンタアイコン名と、印刷を要求したクライアント端末１０のＩＰアドレス（印刷ジョブ解析部１１１による解析で得られる）と、をプリントサービス１０８へ送信することを通信部１１６に指示する。この指示を受けた通信部１１６は、上述のファイルパス、上述のプリンタアイコン名、および、上述のＩＰアドレスをプリントサービス１０８へ送信する。
【００４５】
プリントサービス１０８は、通信部１３１と、印刷ジョブ制御部１２２と、ジョブ情報保管部１２４と、印刷ジョブ破棄処理部１２５と、印刷ジョブ編集部１２６と、印刷ジョブ投入部１２７と、通信部１３２とを有する。
【００４６】
通信部１３１は印刷制御アプリ１０４と通信し、通信部１３２はクライアント端末１０と通信する。通信部１３１は、上述の印刷ジョブ出力処理判断部１１２の判断結果（再投入ジョブではないという判断結果）をポートモニタ１０５から受信した場合、その受信した判断結果を印刷ジョブ制御部１２２へ渡す。該判断結果を受け取った印刷ジョブ制御部１２２は、上述の指示画面の表示を要求する表示要求をクライアント端末１０の常駐アプリケーション１０６へ送信することを、通信部１３２に指示する。この指示を受けた通信部１３２は、該表示要求を常駐アプリケーション１０６へ送信する。
【００４７】
また、通信部１３１は、上述のファイルパス、上述のプリンタアイコン名、および、上述のＩＰアドレスを受信した場合、その受信したファイルパス、プリンタアイコン名、および、ＩＰアドレスを印刷ジョブ制御部１２２へ渡す。印刷ジョブ制御部１２２は、ジョブＩＤと、その受信したファイルパス、プリンタアイコン名およびＩＰアドレスとを紐付けたジョブ情報を、ジョブ情報保管部１２４へ保管する。図９は、ジョブ情報の一例を示す図である。指示画面の表示が終了した後は該当するレコードを削除する形態であってもよい。
【００４８】
図８の例では、クライアント端末１０が有する常駐アプリケーション１０６は、通信部１４１と指示画面表示部１２３とを有する。通信部１４１は、プリントサービス１０８と通信する。通信部１４１は、上述の表示要求をプリントサービス１０８から受信した場合、その受信した表示要求を指示画面表示部１２３へ渡す。そして、指示画面表示部１２３は、上述の指示画面を表示装置５０６に表示する制御を行う。指示画面表示部１２３は、指示画面から、印刷を実行する指示を受け付けた場合（図４に示す「ＯＫ」ボタンの押下を受け付けた場合）、印刷を実行する指示を受け付けたことを示す応答結果を、通信部１４１を介してプリントサービス１０８へ送信する。また、指示画面表示部１２３は、指示画面から、印刷を取り止める指示を受け付けた場合（図４に示す「キャンセル」ボタンの押下を受け付けた場合）、印刷を取り止める指示を受け付けたことを示す応答結果を、通信部１４１を介してプリントサービス１０８へ送信する。
【００４９】
プリントサービス１０８の通信部１３２は、クライアント端末１０の常駐アプリケーション１０６から上述の応答結果を受信した場合、その受信した応答結果を印刷ジョブ制御部１２２へ渡す。応答結果が、印刷を実行する指示を受け付けたことを示す場合、印刷ジョブ制御部１２２は、印刷制御アプリ１０４から受信したファイルパスを用いて、印刷ジョブ一時保存部１１３に保存された印刷ジョブを取得する。そして、その取得した印刷ジョブに対して、再投入ジョブであることを示す再投入情報を埋め込むことを印刷ジョブ編集部１２６に指示する。上述の第１の実施形態と同様に、この指示を受けた印刷ジョブ編集部１２６は、再投入情報を該印刷ジョブに埋め込む編集処理を行い、印刷ジョブ投入部１２７は、印刷ジョブ編集部１２６により編集された印刷ジョブをプリンタキュー１０７へ戻す（再投入する）。
【００５０】
一方、応答結果が、印刷を取り止める指示を受け付けたことを示す場合、印刷ジョブ制御部１２２は、印刷ジョブ一時保存部１１３のうち、印刷制御アプリ１０４から受信したファイルパスにより特定される格納場所に保存された印刷ジョブを破棄することを印刷ジョブ破棄処理部１２５に指示する。この指示を受けた印刷ジョブ破棄処理部１２５は、該印刷ジョブを破棄する処理を行う。その他の構成は上述の第１の実施形態と同様である。
【００５１】
以上に説明したクライアント端末１０およびプリントサーバ３０が有する各機能は、ＣＰＵ５０１が、ＲＯＭ５０２やＨＤＤ５０３などの記憶装置に記憶されたプログラムを実行することにより実現される。
【００５２】
図１０は、以上に説明した印刷ジョブの処理の流れを示す図である。ステップＳ２１〜ステップＳ２６の処理内容は、図６に示すステップＳ１〜ステップＳ６の処理内容と同様であるので、詳細な説明は省略する。ステップＳ２６の保存完了後、印刷制御アプリ１０４は、印刷ジョブ一時保存部１１３のうち、ステップＳ２１で受信した印刷ジョブの格納場所を示すファイルパスと、出力先のプリンタ２０を示すプリンタアイコン名と、印刷を要求したクライアント端末１０のＩＰアドレスと、をプリントサービス１０８へ送信する（ステップＳ２７）。プリントサービス１０８は、印刷制御アプリ１０４から上述のファイルパス、上述のプリンタアイコン名、および、上述のＩＰアドレスを受信すると、上述のジョブ情報を登録する（ステップＳ２８）。
【００５３】
また、プリントサービス１０８は、ステップＳ２５で印刷制御アプリ１０４から送られてくる上述の判断結果を受信すると、上述の表示要求を常駐アプリケーション１０６へ送信する（ステップＳ２９）。プリントサービス１０８からの表示要求を受信した常駐アプリケーション１０６は、上述の指示画面を表示する制御を行い（ステップＳ３０）、ユーザからの応答を受け付ける（ステップＳ３１）。いま、ステップＳ３０において、指示画面から、印刷を実行する指示を受け付けた場合を想定する。この場合、常駐アプリケーション１０６は、印刷を実行する指示を受け付けたことを示す応答結果を、プリントサービス１０８へ送信する（ステップＳ３２）。
【００５４】
上記応答結果を受信したプリントサービス１０８は、上述のステップＳ２８で登録したジョブ情報に含まれるファイルパスを用いて、印刷ジョブ一時保存部１１３に保存された印刷ジョブを取得し、その取得した印刷ジョブに対して再投入情報を埋め込む編集処理を行う（ステップＳ３３）。そして、編集後の印刷ジョブをプリンタキュー１０７に再投入する（ステップＳ３４）。再投入された印刷ジョブは、プリンタキュー１０７から再度取り出され、ステップＳ２１以降の処理が繰り返される。
【００５５】
以上に説明した本実施形態でも、プリンタ２０へ出力する前に所定の処理（以上の例では指示画面を表示し、ユーザの指示を受け付ける処理）が行われた印刷ジョブに対しては、再投入ジョブであることを示す再投入情報が埋め込まれて、プリンタキュー１０７へ再投入される。したがって、印刷制御アプリ１０４は、プリンタキュー１０７から取り出された印刷ジョブを解析することで、該印刷ジョブが再投入ジョブであるか否かの判断を行うことができ、再投入ジョブである場合は、所定の処理を実行することなくそのまま対応するポートモニタ１０５へ渡してプリンタ２０から出力させることができる。これにより、処理効率を向上させることができる。
【００５６】
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態および変形例にわたる構成要素を適宜組み合わせてもよい。
【００５７】
また、上述の情報処理システム１００で実行されるプログラム（ＣＰＵ５０１が実行するプログラム）は、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【００５８】
１０    クライアント端末
２０    プリンタ
３０    プリントサーバ
１００  情報処理システム
１０１  印刷アプリケーション
１０２  プリンタドライバ
１０３  スプーラ
１０４  印刷制御アプリ
１０５  ポートモニタ
１０６  常駐アプリケーション
１０７  プリンタキュー
１０８  プリントサービス
１１１  印刷ジョブ解析部
１１２  印刷ジョブ出力処理判断部
１１３  印刷ジョブ一時保存部
１１４  通信部
１１５  印刷ジョブ送信部
１１６  通信部
１２１  通信部
１２２  印刷ジョブ制御部
１２３  指示画面表示部
１２４  ジョブ情報保管部
１２５  印刷ジョブ破棄処理部
１２６  印刷ジョブ編集部
１２７  印刷ジョブ投入部
１３１  通信部
１３２  通信部
１４１  通信部
【先行技術文献】
【特許文献】
【００５９】
【特許文献１】特開２０１１−０４８７６６号公報
【図１】
0006561884.tif 000002
【図２】
0006561884.tif 000003
【図３】
0006561884.tif 000004
【図４】
0006561884.tif 000005
【図５】
0006561884.tif 000006
【図６】
0006561884.tif 000007
【図７】
0006561884.tif 000008
【図８】
0006561884.tif 000009
【図９】
0006561884.tif 000010
【図１０】
0006561884.tif 000011