情報処理装置及びその制御方法、プログラム
【課題】 Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる情報処理技術を提供する。
【解決手段】 データ転送部が、プリンタからジョブ終了イベントを受信すると、印刷ジョブに関する処理を完了するためのジョブ終了処理を行う。通信制御部が、データ転送部の処理状況を監視し、監視の結果、ジョブ終了処理が完了したと判定した後、ジョブ管理部に印刷ジョブの終了を通知する。
【解決手段】 データ転送部が、プリンタからジョブ終了イベントを受信すると、印刷ジョブに関する処理を完了するためのジョブ終了処理を行う。通信制御部が、データ転送部の処理状況を監視し、監視の結果、ジョブ終了処理が完了したと判定した後、ジョブ管理部に印刷ジョブの終了を通知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタとネットワークを介して接続され、プリンタを制御する情報処理技術に関するものである。
【背景技術】
【0002】
従来、印刷システムは、一般的には、カラー出力を可能とするカラープリンタと、そのプリンタを制御し、印刷データを生成するホストコンピュータと、その双方を接続する通信インタフェースとから構成される。ホストコンピュータでは、オペレーティングシステムが動作しており、各種のソフトウェアがこのオペレーティングシステム上で動作する。アプリケーションソフトウェアで作成した各種ドキュメントを印刷する際には、アプリケーションソフトウェア、プリンタドライバ、オペレーティングシステムが規定の手順で関数呼出等を行う。そして、この手順によって、データをやり取りしてプリンタコマンド(印刷データを含む)を生成する。そして、プリンタドライバが、生成されたプリンタコマンドをプリンタへ転送することで印刷が行われる。プリンタドライバの中には、オペレーティングシステムが提供する通信機能を用いてプリンタと双方向通信を行い、プリンタのステータス情報を画面上に表示する機能を有し、ユーザの利便性を高めるものもある。
【0003】
一般に、オペレーティングシステムの印刷システムは、プリントキューを備え、アプリケーションソフトウェアからの印刷ジョブを一旦スプールし、その後、順次処理する。プリントキューの働きによって、プリンタでの印刷完了を待たずにアプリケーションソフトウェアを印刷処理から開放できる。印刷システムは、スプールされた印刷ジョブを全てプリンタに送信したら印刷を終了する。
【0004】
プリントキューにスプールされた印刷ジョブを印刷終了後に再度印刷したい場合がある。この場合、例えば、米国マイクロソフト社のWindows Vista(登録商標)では、ユーザがプリントキューのUIで「印刷後ドキュメントを残す」設定をONにすることにより、プリントキューに印刷ジョブを残しておくことができる。
【0005】
また、印刷をキャンセルする際には、プリントキューからのキャンセルに加えて、プリンタのキャンセルボタンを押下することで印刷をキャンセルできるプリンタもあり、ユーザの利便性を高めるようになっている(特許文献1参照)。
【0006】
通信インタフェースとしては、USB(Universal Serial Bus)に加えて、近年、Windows Vista(登録商標)では、WSD(Web Services on Devices)が採用されている。WSDによる印刷は、Eventベースで行われ、例えば、プリンタが紙ジャムエラーになった場合は、Eventによりホストコンピュータにその旨が伝えられる。印刷終了時には、プリンタからホストコンピュータへJobEndStateEventが送信され、ホストコンピュータは印刷が何時終了したのかを知ることができる(非特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−200825号公報
【非特許文献】
【0008】
【非特許文献1】印刷およびスキャン用のWeb Services on Devicesの実装(http://www.microsoft.com/japan/whdc/connect/rally/wsdspecs.mspx)
【発明の概要】
【発明が解決しようとする課題】
【0009】
WSDのようなEventベースの印刷の場合、プリンタからホストコンピュータへ送信されるJobEndStateEventにより、オペレーティングシステムのデバイスドライバの1つであるポートモニタが印刷終了処理を行う。
【0010】
しかしながら、このポートモニタの印刷終了処理とオペレーティングシステムの印刷システムの印刷終了が正しい順番で実行されない場合がある。
【0011】
例えば、プリントキューのUIで「印刷後ドキュメントを残す」設定をONにしてWSDによる印刷中に、プリンタのキャンセルボタンを押下して印刷をキャンセルした場合、本来プリントキューに残るべき印刷ジョブが削除されてしまうという問題が発生する。
【0012】
これは、オペレーティングシステムの印刷システムが印刷ジョブの終了処理を完了した後に、プリンタからホストコンピュータへJobEndStateEventが送信されることで、ポートモニタの印刷ジョブ終了処理が発生するからである。つまり、このポートモニタの印刷ジョブ終了処理によって、プリントキューに残っている印刷ジョブがポートモニタによって削除されてしまうためである。
【0013】
本発明は上記の課題を解決するためになされたものであり、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる情報処理技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する。
【0015】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する。
【発明の効果】
【0016】
本発明によれば、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる情報処理技術を提供できる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態1のコンピュータ装置および印刷装置の構成を示すブロック図である。
【図2】本発明の実施形態1の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【図3】本発明の実施形態1の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【図4】本発明の実施形態1の印刷システム上のWSD印刷による印刷中にプリンタのキャンセルボタンが押下され印刷をキャンセルした場合の動作を示す図である。
【図5】本発明の実施形態1のランゲージモニタ304がポートモニタ305を監視する動作を示すフローチャートである。
【図6】本発明の実施形態1のランゲージモニタ304がJobEndStateEventを受信したか否かを判定できない場合の代替処理を示すフローチャートである。
【図7】本発明の実施形態1のJobEndStateEventを説明するための図である。
【図8】本発明の実施形態1のJobEndStateEventを説明するための図である。
【図9】本発明の実施形態1のJobEndStateEventを受信した時にポートモニタ305が実行する終了処理を示すフローチャートである。
【図10】本発明の実施形態1のGetActiveJobsオペレーションにより取得できるジョブ情報を説明するための図である。
【図11】本発明の実施形態2の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【図12】本発明の実施形態2の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明の最適な実施の形態を詳細に説明する。尚、以下の実施形態は、特許請求の範囲に係る本発明を限定するものでなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0019】
<実施形態1>
図1は本発明の実施形態1のコンピュータ装置および印刷装置の構成を示すブロック図である。
【0020】
図1において、100は情報処理装置であり、一般的なPC(パーソナルコンピュータ)で構成される。情報処理装置100には、オペレーティングシステム(OS:Operating System)として、例えば、米国マイクロソフト社のWindows Vista(登録商標)がインストールされている。情報処理装置100は、演算制御用の制御部であるCPU104により制御される。
【0021】
CPU104は、ランダムアクセスメモリ部(RAM101)を一時記憶部として使用し、記憶部であるハードディスクドライブ部(HDD102)からRAM101にロードされたプログラムに従って情報処理装置100を制御する。入力部の一例であるキーボード部(KBD103)は、データ入力あるいは動作指示に使用される。表示部の一例である表示用ディスプレイ(LCD106)は、データ表示や状態報知に使用される。通信制御部の一例であるネットワークボード(NB105)は、ネットワークを介する通信を行い、ネットワーク(Network109)に接続されている。インタフェース部(I/F部108)は、周辺機器との接続を制御する。
【0022】
プリンタ201は、インタフェース部(I/F部)202と、RAM203と、ROM204と、CPU205と、エンジン206とを有する。I/F部202は、ネットワーク(Network109)に接続されている。ROM204には、制御プログラム等の各種プログラムが格納されている。CPU205は、ROM204に格納してある制御プログラムに従ってプリンタ201の各種構成要素を制御する。また、RAM203は、CPU205の主メモリとワークメモリとして用いられ、受信したデータを一旦保存するための受信バッファを有する。エンジン206は、RAM203に保存されたデータに基づき印刷を行う。実施形態1における周辺装置であるプリンタ201のエンジン206としては、インクジェット方式を例に説明を行うが、これに限定されることなく、例えば、電子写真方式、熱転写方式等のエンジン(媒体への記録手段)等を適用することもできる。
【0023】
図2は本発明の実施形態1の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【0024】
情報処理装置100は、上述のオペレーティングシステムに加えて、印刷処理機能を有する任意のアプリケーション301をインストールし、更に、ネットワーク(Network109)を介してプリンタ201を接続する形態が考えられる。アプリケーション301は、OSの印刷コンポーネント302を介して、プリンタ201に対する印刷設定情報を設定することができる。ここで、印刷設定情報とは、プリンタ201においてアプリケーション301が生成したページを印刷する用紙の種類、用紙サイズ、給紙先の給紙口等の印刷するために必要な情報である。
【0025】
ユーザインタフェースドライバ303は、各種印刷設定情報において設定可能な選択肢の一覧を印刷コンポーネント302を介してアプリケーション301に通知する他、各種印刷設定を設定可能なインタフェースを有する。
【0026】
アプリケーション301が印刷要求した描画データは、印刷コンポーネント302を経由して印刷ジョブ(印刷データを含む)としてランゲージモニタ304に渡される。ランゲージモニタ304は、印刷ジョブをポートモニタ305に出力する。ポートモニタ305は、渡された印刷ジョブをプリンタ201に送信する。尚、実施形態1では、ポートモニタ305としてWSD印刷用のポートモニタであるWSDMONを想定しているが、これに限定されることはなくさまざまなポートモニタを適用することができる。
【0027】
尚、ランゲージモニタ304は、プリンタ201と双方向通信を行い、プリンタのステータス情報を取得しつつ、プリンタ201へ印刷ジョブを転送する通信制御部として機能する。また、ポートモニタ305は、ランゲージモニタ304からの印刷ジョブをプリンタ201に送信するデータ転送部として機能する。更に、印刷コンポーネント302は、印刷ジョブを管理するジョブ管理部(後述するSpooler(スプーラ)401に対応)として機能する。
【0028】
また、実施形態1のポートモニタ305は、プリンタ201からのジョブ終了イベントの受信をきっかけに、処理対象のジョブに関する処理を完了するためのジョブ終了処理を実行するジョブ終了処理部として機能する。また、ランゲージモニタ304は、ポートモニタ305の処理状況(ジョブ終了イベントの受信の有無や、ジョブ終了処理の完了の有無)を監視する監視部として機能する。また、ランゲージモニタ304は、ジョブ終了処理の完了後、ジョブ管理部として機能する印刷コンポーネント302に印刷ジョブの終了を通知する通知部として機能する。
【0029】
図3は本発明の実施形態1の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【0030】
Spooler(スプーラ)401は、印刷コンポーネント302の一部である。S405で、Spooler401は、ランゲージモニタ304のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ランゲージモニタ304は、受信した印刷ジョブを、ポートモニタ305のエクスポート関数WritePort()を呼び出し、それを用いて、ポートモニタ305に送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0031】
印刷ジョブを全部送信し終えたら、S406で、Spooler401は、ランゲージモニタ304のエクスポート関数EndDocPort()を呼び出す。ランゲージモニタ304は、確保したメモリの解放等の必要な終了処理を実行し、S407で、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。
【0032】
ランゲージモニタ304は、ポートモニタ305のEndDocPort()がリターン後、S408で、ポートモニタ305の終了処理が完了するまで待機する。
【0033】
一方、S409で、プリンタ201からポートモニタ305に対して、プリンタ201の印刷終了を示すステータス情報としてJobEndStateEventが送信される。S410で、JobEndStateEventを受信したポートモニタ305は、終了処理を実行する。
【0034】
実施形態1では、ポートモニタ305が、JobEndStateEventを受信することを想定しているが、印刷コンポーネント302が受信して、終了処理の完了をポートモニタ305に指示するようにしてもよい。
【0035】
ポートモニタ305の終了処理が完了すると、S411で、ランゲージモニタ304は、EndDocPort()をSpooler401に対してリターンし、印刷システムの印刷が完了する。
【0036】
図4は本発明の実施形態1の印刷システム上のWSD印刷による印刷中にプリンタのキャンセルボタンが押下され印刷をキャンセルした場合の動作を示す図である。
【0037】
S505で、Spooler401は、ランゲージモニタ304のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ランゲージモニタ304は、受信した印刷ジョブを、ポートモニタ305のエクスポート関数WritePort()を呼び出し、それを用いて、ポートモニタ305に送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0038】
S506で、プリンタ201のキャンセルボタンが押下されると、プリンタ201は、S507で、キャンセルボタン押下を示す情報をランゲージモニタ304に通知する。この通知は、プリンタ201からランゲージモニタ304に対して通知を行ってもよいし、ランゲージモニタ304がポーリングにより定期的にプリンタ201に問い合わせるという方法で実現してもよい。
【0039】
キャンセルボタン押下を示す通知を受信すると、S508で、ランゲージモニタ304は、Spooler401による印刷ジョブの送信を中止するためにJOB_CONTROL_DELETEというパラメータをセットする。そして、ランゲージモニタ304は、Windows(登録商標)のAPIであるSetJob()を呼び出す。JOB_CONTROL_DELETEパラメータとともにSetJob()が呼び出されると、Spooler401は印刷ジョブの送信を中止して、S509で、ランゲージモニタ304のエクスポート関数EndDocPort()を呼び出す。
【0040】
ランゲージモニタ304は、確保したメモリの解放や印刷の中止に必要な処理を実行し、S510で、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。ランゲージモニタ304は、ポートモニタ305のEndDocPort()がリターン後、S511で、ポートモニタ305の終了処理が完了するまで待機する。
【0041】
一方、S512で、プリンタ201からポートモニタ305に対して、プリンタ201での印刷終了を示すJobEndStateEventが送信される。S513で、JobEndStateEventを受信したポートモニタ305は、終了処理を実行する。
【0042】
ポートモニタ305の終了処理が完了すると、S514で、ランゲージモニタ304は、EndDocPort()をSpooler401に対してリターンし、印刷のキャンセル処理が完了する。
【0043】
図5は本発明の実施形態1のランゲージモニタ304がポートモニタ305を監視する動作を示すフローチャートである。
【0044】
尚、このポートモニタ305を監視する動作(ポートモニタ305の終了処理の完了を見届ける動作)は、図3のS408及び図4のS511の処理に対応する。
【0045】
ステップS601で、ランゲージモニタ304は、ポートモニタ305を監視し、そのポートモニタ305がプリンタ201からのJobEndStateEventを受信したか否かを判定する。監視の結果、ポートモニタ305がプリンタ201からのJobEndStateEventを受信していない場合(ステップS601でNO)、ポートモニタ305がプリンタ201からのJobEndStateEventを受信するまで待機する。
【0046】
一方、監視の結果、ポートモニタ305がプリンタ201からのJobEndStateEventを受信した場合(ステップS601でYES)、ステップS602で、ランゲージモニタ304は、一定時間Sleep(スリープ)した後に、処理を終了する。つまり、ランゲージモニタ304は、プリンタ201からのジョブ終了イベント(JobEndStateEvent)をポートモニタ305が受信してから一定期間Sleepすることで、ポートモニタ305における終了処理が完了したと判定する。
【0047】
尚、この一定時間は、ポートモニタ305が終了処理を実行してから完了するまでの経過時間よりも長い十分な時間である。これにより、ランゲージモニタ304は、この一定時間分、Sleepすることで、ポートモニタ305の終了処理が確実に完了している時点以降で、Spooler401に対して、EndDocPort()をリターンする。換言すれば、ジョブ終了イベント(JobEndStateEvent)をきっかけとするポートモニタ305の終了処理が完了してから、ランゲージモニタ304は、オペレーティングシステムの印刷システムにジョブ終了を通知する。
【0048】
図5のフローチャートは、ランゲージモニタ304が、ポートモニタ305がJobEndStateEventを受信したか否かを判定できる場合の処理である。ここで、システムの仕様によっては、ポートモニタ305がJobEndStateEventを受信したか否かを判定できない場合がある。その場合は、例えば、図6に示すフローチャートを実行することで、ポートモニタ305がJobEndStateEventを受信したか否かを判定するようにする。
【0049】
図6は本発明の実施形態1のランゲージモニタ304がJobEndStateEventを受信したか否かを判定できない場合の代替処理を示すフローチャートである。
【0050】
尚、このフローチャートは、図5のステップS601の処理の代替処理に対応する。
【0051】
ステップS701で、ランゲージモニタ304は、WSDのコマンドのひとつであるGetActiveJobsオペレーションをプリンタ201に対して実行する。ステップS702で、ランゲージモニタ304は、GetActiveJobsオペレーションでプリンタ201から取得したステータス情報であるJobStateがCompletedになっている否かを判定する。
【0052】
Completedになっていない場合(ステップS702でNO)、ステップS701に戻り、再度、GetActiveJobsオペレーションを実行する。一方、Completedになっている場合(ステップS702でYES)、ステップS703で、ランゲージモニタ304は、JobEndStateEventを受信したと判定し、処理を終了する。
【0053】
図7及び図8は本発明の実施形態1のJobEndStateEventを説明するための図である。
【0054】
JobEndStateEventは、プリンタ201が印刷ジョブの印刷を終了したときに情報処理装置100に対して送信されるイベントであり、印刷ジョブの最終ステータスを表している。JobEndStateEventは、XMLフォーマットで記述されている。
【0055】
図7では、JobCompletedStateエレメント(701)の値が「Completed」になっており、印刷ジョブが正常に終了したことがわかる。
【0056】
図8では、JobCompletedStateエレメント(801)の値が「Canceled」になっており、JobStateReasonエレメント(802)の値がJobCanceledAtDeviceとなっている。このことから、印刷ジョブがプリンタのキャンセルボタン押下によってキャンセルされたことがわかる。JobEndStateEventの他のエレメントの説明については、実施形態1との関連が低いので省略する。
【0057】
図9は本発明の実施形態1のJobEndStateEventを受信した時にポートモニタ305が実行する終了処理を示すフローチャートである。
【0058】
尚、この終了処理は、図4のS513に対応する。
【0059】
ステップS1001で、ポートモニタ305は、JobEndStateEventのJobCompletedStateエレメントの値を確認し、その値が「Canceled」であるか否かを判定する。
【0060】
JobCompletedStateエレメントの値が「Canceled」でない場合(ステップS1001でNO)、ステップS1003に進む。一方、JobCompletedStateエレメントの値が「Canceled」である場合(ステップS1001でYES)、ステップS1002で、ポートモニタ305は、JOB_CONTROL_DELETEパラメータをセットする。そして、ポートモニタ305は、SetJob()を呼び出す。
【0061】
ステップS1003で、ポートモニタ305は、その他の必要な終了処理を行い、終了する。必要な終了処理の内容は、本実施形態とは関連が低いので省略する。
【0062】
図10は本発明の実施形態1のGetActiveJobsオペレーションにより取得できるジョブ情報を説明するための図である。
【0063】
ステータス情報の1つとして得られるジョブ情報は、XML形式で記述され、ジョブに関するサマリー情報が格納されている。JobStateエレメント(1001)は、現在のジョブの状態を表している。JobStateエレメントの値が「Completed」になっていれば、ジョブが終了していることを表す。それ以外にも様々な値が定義されているが本実施形態と関連が低いので説明は省略する。
【0064】
以上説明したように、実施形態1によれば、ジョブ終了イベントをきっかけとするポートモニタの終了処理が完了してから、オペレーティングシステムの印刷システムにジョブ終了を通知する。そのため、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる。
【0065】
<実施形態2>
実施形態2は、実施形態1の図1及び図2の構成に対して、図11に示すように、特に、図2の構成における、ランゲージモニタ304が存在しない場合の構成について説明する。
【0066】
尚、実施形態2の図11の構成の場合、ポートモニタ305は、プリンタ201からのジョブ終了イベントの受信をきっかけに、ジョブ終了処理を実行するジョブ終了処理部として機能する。また、ポートモニタ305は、ジョブ終了処理の完了後、ジョブ管理部として機能する印刷コンポーネント302に印刷ジョブの終了を通知する通知部として機能する。
【0067】
図12は本発明の実施形態2の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【0068】
S804で、Spooler401は、ポートモニタ305のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0069】
印刷ジョブを全部送信し終えたら、S805で、Spooler401は、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。S806で、ポートモニタ305は、プリンタ201からJobEndStateEventが送信されてくるのを待機する。S807で、JobEndStateEventが送信されてきたら、S808で、ポートモニタ305は、図9の終了処理を行う。終了処理が完了したら、S809で、ポートモニタ305は、EndDocPort()をSpooler401に対してリターンし、印刷システムの印刷が完了する。
【0070】
以上説明したように、実施形態2によれば、ランゲージモニタ304が存在しない場合でも、実施形態1と同様の効果を得ることができる。
【0071】
尚、本発明は、上記実施形態1及び2と同等の処理を、コンピュータプログラムでも実現できる。この場合、図1及び2をはじめとする構成要素の各々は関数、もしくはCPUが実行するサブルーチンで機能させれば良い。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取装置(CD−ROMドライブ等)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇にあることは明らかである。
【技術分野】
【0001】
本発明は、プリンタとネットワークを介して接続され、プリンタを制御する情報処理技術に関するものである。
【背景技術】
【0002】
従来、印刷システムは、一般的には、カラー出力を可能とするカラープリンタと、そのプリンタを制御し、印刷データを生成するホストコンピュータと、その双方を接続する通信インタフェースとから構成される。ホストコンピュータでは、オペレーティングシステムが動作しており、各種のソフトウェアがこのオペレーティングシステム上で動作する。アプリケーションソフトウェアで作成した各種ドキュメントを印刷する際には、アプリケーションソフトウェア、プリンタドライバ、オペレーティングシステムが規定の手順で関数呼出等を行う。そして、この手順によって、データをやり取りしてプリンタコマンド(印刷データを含む)を生成する。そして、プリンタドライバが、生成されたプリンタコマンドをプリンタへ転送することで印刷が行われる。プリンタドライバの中には、オペレーティングシステムが提供する通信機能を用いてプリンタと双方向通信を行い、プリンタのステータス情報を画面上に表示する機能を有し、ユーザの利便性を高めるものもある。
【0003】
一般に、オペレーティングシステムの印刷システムは、プリントキューを備え、アプリケーションソフトウェアからの印刷ジョブを一旦スプールし、その後、順次処理する。プリントキューの働きによって、プリンタでの印刷完了を待たずにアプリケーションソフトウェアを印刷処理から開放できる。印刷システムは、スプールされた印刷ジョブを全てプリンタに送信したら印刷を終了する。
【0004】
プリントキューにスプールされた印刷ジョブを印刷終了後に再度印刷したい場合がある。この場合、例えば、米国マイクロソフト社のWindows Vista(登録商標)では、ユーザがプリントキューのUIで「印刷後ドキュメントを残す」設定をONにすることにより、プリントキューに印刷ジョブを残しておくことができる。
【0005】
また、印刷をキャンセルする際には、プリントキューからのキャンセルに加えて、プリンタのキャンセルボタンを押下することで印刷をキャンセルできるプリンタもあり、ユーザの利便性を高めるようになっている(特許文献1参照)。
【0006】
通信インタフェースとしては、USB(Universal Serial Bus)に加えて、近年、Windows Vista(登録商標)では、WSD(Web Services on Devices)が採用されている。WSDによる印刷は、Eventベースで行われ、例えば、プリンタが紙ジャムエラーになった場合は、Eventによりホストコンピュータにその旨が伝えられる。印刷終了時には、プリンタからホストコンピュータへJobEndStateEventが送信され、ホストコンピュータは印刷が何時終了したのかを知ることができる(非特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−200825号公報
【非特許文献】
【0008】
【非特許文献1】印刷およびスキャン用のWeb Services on Devicesの実装(http://www.microsoft.com/japan/whdc/connect/rally/wsdspecs.mspx)
【発明の概要】
【発明が解決しようとする課題】
【0009】
WSDのようなEventベースの印刷の場合、プリンタからホストコンピュータへ送信されるJobEndStateEventにより、オペレーティングシステムのデバイスドライバの1つであるポートモニタが印刷終了処理を行う。
【0010】
しかしながら、このポートモニタの印刷終了処理とオペレーティングシステムの印刷システムの印刷終了が正しい順番で実行されない場合がある。
【0011】
例えば、プリントキューのUIで「印刷後ドキュメントを残す」設定をONにしてWSDによる印刷中に、プリンタのキャンセルボタンを押下して印刷をキャンセルした場合、本来プリントキューに残るべき印刷ジョブが削除されてしまうという問題が発生する。
【0012】
これは、オペレーティングシステムの印刷システムが印刷ジョブの終了処理を完了した後に、プリンタからホストコンピュータへJobEndStateEventが送信されることで、ポートモニタの印刷ジョブ終了処理が発生するからである。つまり、このポートモニタの印刷ジョブ終了処理によって、プリントキューに残っている印刷ジョブがポートモニタによって削除されてしまうためである。
【0013】
本発明は上記の課題を解決するためになされたものであり、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる情報処理技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する。
【0015】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する。
【発明の効果】
【0016】
本発明によれば、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる情報処理技術を提供できる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態1のコンピュータ装置および印刷装置の構成を示すブロック図である。
【図2】本発明の実施形態1の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【図3】本発明の実施形態1の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【図4】本発明の実施形態1の印刷システム上のWSD印刷による印刷中にプリンタのキャンセルボタンが押下され印刷をキャンセルした場合の動作を示す図である。
【図5】本発明の実施形態1のランゲージモニタ304がポートモニタ305を監視する動作を示すフローチャートである。
【図6】本発明の実施形態1のランゲージモニタ304がJobEndStateEventを受信したか否かを判定できない場合の代替処理を示すフローチャートである。
【図7】本発明の実施形態1のJobEndStateEventを説明するための図である。
【図8】本発明の実施形態1のJobEndStateEventを説明するための図である。
【図9】本発明の実施形態1のJobEndStateEventを受信した時にポートモニタ305が実行する終了処理を示すフローチャートである。
【図10】本発明の実施形態1のGetActiveJobsオペレーションにより取得できるジョブ情報を説明するための図である。
【図11】本発明の実施形態2の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【図12】本発明の実施形態2の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明の最適な実施の形態を詳細に説明する。尚、以下の実施形態は、特許請求の範囲に係る本発明を限定するものでなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0019】
<実施形態1>
図1は本発明の実施形態1のコンピュータ装置および印刷装置の構成を示すブロック図である。
【0020】
図1において、100は情報処理装置であり、一般的なPC(パーソナルコンピュータ)で構成される。情報処理装置100には、オペレーティングシステム(OS:Operating System)として、例えば、米国マイクロソフト社のWindows Vista(登録商標)がインストールされている。情報処理装置100は、演算制御用の制御部であるCPU104により制御される。
【0021】
CPU104は、ランダムアクセスメモリ部(RAM101)を一時記憶部として使用し、記憶部であるハードディスクドライブ部(HDD102)からRAM101にロードされたプログラムに従って情報処理装置100を制御する。入力部の一例であるキーボード部(KBD103)は、データ入力あるいは動作指示に使用される。表示部の一例である表示用ディスプレイ(LCD106)は、データ表示や状態報知に使用される。通信制御部の一例であるネットワークボード(NB105)は、ネットワークを介する通信を行い、ネットワーク(Network109)に接続されている。インタフェース部(I/F部108)は、周辺機器との接続を制御する。
【0022】
プリンタ201は、インタフェース部(I/F部)202と、RAM203と、ROM204と、CPU205と、エンジン206とを有する。I/F部202は、ネットワーク(Network109)に接続されている。ROM204には、制御プログラム等の各種プログラムが格納されている。CPU205は、ROM204に格納してある制御プログラムに従ってプリンタ201の各種構成要素を制御する。また、RAM203は、CPU205の主メモリとワークメモリとして用いられ、受信したデータを一旦保存するための受信バッファを有する。エンジン206は、RAM203に保存されたデータに基づき印刷を行う。実施形態1における周辺装置であるプリンタ201のエンジン206としては、インクジェット方式を例に説明を行うが、これに限定されることなく、例えば、電子写真方式、熱転写方式等のエンジン(媒体への記録手段)等を適用することもできる。
【0023】
図2は本発明の実施形態1の図1の情報処理装置に適用可能な印刷システムを示すブロック図である。
【0024】
情報処理装置100は、上述のオペレーティングシステムに加えて、印刷処理機能を有する任意のアプリケーション301をインストールし、更に、ネットワーク(Network109)を介してプリンタ201を接続する形態が考えられる。アプリケーション301は、OSの印刷コンポーネント302を介して、プリンタ201に対する印刷設定情報を設定することができる。ここで、印刷設定情報とは、プリンタ201においてアプリケーション301が生成したページを印刷する用紙の種類、用紙サイズ、給紙先の給紙口等の印刷するために必要な情報である。
【0025】
ユーザインタフェースドライバ303は、各種印刷設定情報において設定可能な選択肢の一覧を印刷コンポーネント302を介してアプリケーション301に通知する他、各種印刷設定を設定可能なインタフェースを有する。
【0026】
アプリケーション301が印刷要求した描画データは、印刷コンポーネント302を経由して印刷ジョブ(印刷データを含む)としてランゲージモニタ304に渡される。ランゲージモニタ304は、印刷ジョブをポートモニタ305に出力する。ポートモニタ305は、渡された印刷ジョブをプリンタ201に送信する。尚、実施形態1では、ポートモニタ305としてWSD印刷用のポートモニタであるWSDMONを想定しているが、これに限定されることはなくさまざまなポートモニタを適用することができる。
【0027】
尚、ランゲージモニタ304は、プリンタ201と双方向通信を行い、プリンタのステータス情報を取得しつつ、プリンタ201へ印刷ジョブを転送する通信制御部として機能する。また、ポートモニタ305は、ランゲージモニタ304からの印刷ジョブをプリンタ201に送信するデータ転送部として機能する。更に、印刷コンポーネント302は、印刷ジョブを管理するジョブ管理部(後述するSpooler(スプーラ)401に対応)として機能する。
【0028】
また、実施形態1のポートモニタ305は、プリンタ201からのジョブ終了イベントの受信をきっかけに、処理対象のジョブに関する処理を完了するためのジョブ終了処理を実行するジョブ終了処理部として機能する。また、ランゲージモニタ304は、ポートモニタ305の処理状況(ジョブ終了イベントの受信の有無や、ジョブ終了処理の完了の有無)を監視する監視部として機能する。また、ランゲージモニタ304は、ジョブ終了処理の完了後、ジョブ管理部として機能する印刷コンポーネント302に印刷ジョブの終了を通知する通知部として機能する。
【0029】
図3は本発明の実施形態1の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【0030】
Spooler(スプーラ)401は、印刷コンポーネント302の一部である。S405で、Spooler401は、ランゲージモニタ304のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ランゲージモニタ304は、受信した印刷ジョブを、ポートモニタ305のエクスポート関数WritePort()を呼び出し、それを用いて、ポートモニタ305に送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0031】
印刷ジョブを全部送信し終えたら、S406で、Spooler401は、ランゲージモニタ304のエクスポート関数EndDocPort()を呼び出す。ランゲージモニタ304は、確保したメモリの解放等の必要な終了処理を実行し、S407で、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。
【0032】
ランゲージモニタ304は、ポートモニタ305のEndDocPort()がリターン後、S408で、ポートモニタ305の終了処理が完了するまで待機する。
【0033】
一方、S409で、プリンタ201からポートモニタ305に対して、プリンタ201の印刷終了を示すステータス情報としてJobEndStateEventが送信される。S410で、JobEndStateEventを受信したポートモニタ305は、終了処理を実行する。
【0034】
実施形態1では、ポートモニタ305が、JobEndStateEventを受信することを想定しているが、印刷コンポーネント302が受信して、終了処理の完了をポートモニタ305に指示するようにしてもよい。
【0035】
ポートモニタ305の終了処理が完了すると、S411で、ランゲージモニタ304は、EndDocPort()をSpooler401に対してリターンし、印刷システムの印刷が完了する。
【0036】
図4は本発明の実施形態1の印刷システム上のWSD印刷による印刷中にプリンタのキャンセルボタンが押下され印刷をキャンセルした場合の動作を示す図である。
【0037】
S505で、Spooler401は、ランゲージモニタ304のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ランゲージモニタ304は、受信した印刷ジョブを、ポートモニタ305のエクスポート関数WritePort()を呼び出し、それを用いて、ポートモニタ305に送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0038】
S506で、プリンタ201のキャンセルボタンが押下されると、プリンタ201は、S507で、キャンセルボタン押下を示す情報をランゲージモニタ304に通知する。この通知は、プリンタ201からランゲージモニタ304に対して通知を行ってもよいし、ランゲージモニタ304がポーリングにより定期的にプリンタ201に問い合わせるという方法で実現してもよい。
【0039】
キャンセルボタン押下を示す通知を受信すると、S508で、ランゲージモニタ304は、Spooler401による印刷ジョブの送信を中止するためにJOB_CONTROL_DELETEというパラメータをセットする。そして、ランゲージモニタ304は、Windows(登録商標)のAPIであるSetJob()を呼び出す。JOB_CONTROL_DELETEパラメータとともにSetJob()が呼び出されると、Spooler401は印刷ジョブの送信を中止して、S509で、ランゲージモニタ304のエクスポート関数EndDocPort()を呼び出す。
【0040】
ランゲージモニタ304は、確保したメモリの解放や印刷の中止に必要な処理を実行し、S510で、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。ランゲージモニタ304は、ポートモニタ305のEndDocPort()がリターン後、S511で、ポートモニタ305の終了処理が完了するまで待機する。
【0041】
一方、S512で、プリンタ201からポートモニタ305に対して、プリンタ201での印刷終了を示すJobEndStateEventが送信される。S513で、JobEndStateEventを受信したポートモニタ305は、終了処理を実行する。
【0042】
ポートモニタ305の終了処理が完了すると、S514で、ランゲージモニタ304は、EndDocPort()をSpooler401に対してリターンし、印刷のキャンセル処理が完了する。
【0043】
図5は本発明の実施形態1のランゲージモニタ304がポートモニタ305を監視する動作を示すフローチャートである。
【0044】
尚、このポートモニタ305を監視する動作(ポートモニタ305の終了処理の完了を見届ける動作)は、図3のS408及び図4のS511の処理に対応する。
【0045】
ステップS601で、ランゲージモニタ304は、ポートモニタ305を監視し、そのポートモニタ305がプリンタ201からのJobEndStateEventを受信したか否かを判定する。監視の結果、ポートモニタ305がプリンタ201からのJobEndStateEventを受信していない場合(ステップS601でNO)、ポートモニタ305がプリンタ201からのJobEndStateEventを受信するまで待機する。
【0046】
一方、監視の結果、ポートモニタ305がプリンタ201からのJobEndStateEventを受信した場合(ステップS601でYES)、ステップS602で、ランゲージモニタ304は、一定時間Sleep(スリープ)した後に、処理を終了する。つまり、ランゲージモニタ304は、プリンタ201からのジョブ終了イベント(JobEndStateEvent)をポートモニタ305が受信してから一定期間Sleepすることで、ポートモニタ305における終了処理が完了したと判定する。
【0047】
尚、この一定時間は、ポートモニタ305が終了処理を実行してから完了するまでの経過時間よりも長い十分な時間である。これにより、ランゲージモニタ304は、この一定時間分、Sleepすることで、ポートモニタ305の終了処理が確実に完了している時点以降で、Spooler401に対して、EndDocPort()をリターンする。換言すれば、ジョブ終了イベント(JobEndStateEvent)をきっかけとするポートモニタ305の終了処理が完了してから、ランゲージモニタ304は、オペレーティングシステムの印刷システムにジョブ終了を通知する。
【0048】
図5のフローチャートは、ランゲージモニタ304が、ポートモニタ305がJobEndStateEventを受信したか否かを判定できる場合の処理である。ここで、システムの仕様によっては、ポートモニタ305がJobEndStateEventを受信したか否かを判定できない場合がある。その場合は、例えば、図6に示すフローチャートを実行することで、ポートモニタ305がJobEndStateEventを受信したか否かを判定するようにする。
【0049】
図6は本発明の実施形態1のランゲージモニタ304がJobEndStateEventを受信したか否かを判定できない場合の代替処理を示すフローチャートである。
【0050】
尚、このフローチャートは、図5のステップS601の処理の代替処理に対応する。
【0051】
ステップS701で、ランゲージモニタ304は、WSDのコマンドのひとつであるGetActiveJobsオペレーションをプリンタ201に対して実行する。ステップS702で、ランゲージモニタ304は、GetActiveJobsオペレーションでプリンタ201から取得したステータス情報であるJobStateがCompletedになっている否かを判定する。
【0052】
Completedになっていない場合(ステップS702でNO)、ステップS701に戻り、再度、GetActiveJobsオペレーションを実行する。一方、Completedになっている場合(ステップS702でYES)、ステップS703で、ランゲージモニタ304は、JobEndStateEventを受信したと判定し、処理を終了する。
【0053】
図7及び図8は本発明の実施形態1のJobEndStateEventを説明するための図である。
【0054】
JobEndStateEventは、プリンタ201が印刷ジョブの印刷を終了したときに情報処理装置100に対して送信されるイベントであり、印刷ジョブの最終ステータスを表している。JobEndStateEventは、XMLフォーマットで記述されている。
【0055】
図7では、JobCompletedStateエレメント(701)の値が「Completed」になっており、印刷ジョブが正常に終了したことがわかる。
【0056】
図8では、JobCompletedStateエレメント(801)の値が「Canceled」になっており、JobStateReasonエレメント(802)の値がJobCanceledAtDeviceとなっている。このことから、印刷ジョブがプリンタのキャンセルボタン押下によってキャンセルされたことがわかる。JobEndStateEventの他のエレメントの説明については、実施形態1との関連が低いので省略する。
【0057】
図9は本発明の実施形態1のJobEndStateEventを受信した時にポートモニタ305が実行する終了処理を示すフローチャートである。
【0058】
尚、この終了処理は、図4のS513に対応する。
【0059】
ステップS1001で、ポートモニタ305は、JobEndStateEventのJobCompletedStateエレメントの値を確認し、その値が「Canceled」であるか否かを判定する。
【0060】
JobCompletedStateエレメントの値が「Canceled」でない場合(ステップS1001でNO)、ステップS1003に進む。一方、JobCompletedStateエレメントの値が「Canceled」である場合(ステップS1001でYES)、ステップS1002で、ポートモニタ305は、JOB_CONTROL_DELETEパラメータをセットする。そして、ポートモニタ305は、SetJob()を呼び出す。
【0061】
ステップS1003で、ポートモニタ305は、その他の必要な終了処理を行い、終了する。必要な終了処理の内容は、本実施形態とは関連が低いので省略する。
【0062】
図10は本発明の実施形態1のGetActiveJobsオペレーションにより取得できるジョブ情報を説明するための図である。
【0063】
ステータス情報の1つとして得られるジョブ情報は、XML形式で記述され、ジョブに関するサマリー情報が格納されている。JobStateエレメント(1001)は、現在のジョブの状態を表している。JobStateエレメントの値が「Completed」になっていれば、ジョブが終了していることを表す。それ以外にも様々な値が定義されているが本実施形態と関連が低いので説明は省略する。
【0064】
以上説明したように、実施形態1によれば、ジョブ終了イベントをきっかけとするポートモニタの終了処理が完了してから、オペレーティングシステムの印刷システムにジョブ終了を通知する。そのため、Eventベースの印刷においても正しい処理順序で印刷終了処理を実行できる。
【0065】
<実施形態2>
実施形態2は、実施形態1の図1及び図2の構成に対して、図11に示すように、特に、図2の構成における、ランゲージモニタ304が存在しない場合の構成について説明する。
【0066】
尚、実施形態2の図11の構成の場合、ポートモニタ305は、プリンタ201からのジョブ終了イベントの受信をきっかけに、ジョブ終了処理を実行するジョブ終了処理部として機能する。また、ポートモニタ305は、ジョブ終了処理の完了後、ジョブ管理部として機能する印刷コンポーネント302に印刷ジョブの終了を通知する通知部として機能する。
【0067】
図12は本発明の実施形態2の印刷システム上のWSD印刷における印刷終了処理を示す図である。
【0068】
S804で、Spooler401は、ポートモニタ305のエクスポート関数WritePort()を呼び出し、印刷ジョブを送信する。ポートモニタ305は、受信した印刷ジョブをプリンタ201に送信する。この処理を、印刷ジョブを全部送信するまで繰り返す。
【0069】
印刷ジョブを全部送信し終えたら、S805で、Spooler401は、ポートモニタ305のエクスポート関数EndDocPort()を呼び出す。S806で、ポートモニタ305は、プリンタ201からJobEndStateEventが送信されてくるのを待機する。S807で、JobEndStateEventが送信されてきたら、S808で、ポートモニタ305は、図9の終了処理を行う。終了処理が完了したら、S809で、ポートモニタ305は、EndDocPort()をSpooler401に対してリターンし、印刷システムの印刷が完了する。
【0070】
以上説明したように、実施形態2によれば、ランゲージモニタ304が存在しない場合でも、実施形態1と同様の効果を得ることができる。
【0071】
尚、本発明は、上記実施形態1及び2と同等の処理を、コンピュータプログラムでも実現できる。この場合、図1及び2をはじめとする構成要素の各々は関数、もしくはCPUが実行するサブルーチンで機能させれば良い。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取装置(CD−ROMドライブ等)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇にあることは明らかである。
【特許請求の範囲】
【請求項1】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とする情報処理装置。
【請求項2】
前記監視手段は、前記プリンタからの前記ジョブ終了イベントを受信してから一定期間Sleepすることで前記ジョブ終了処理が完了したと判定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記監視手段は、前記プリンタからの前記ジョブ終了イベントを前記データ転送手段が受信したか否かを判定できない場合は、前記プリンタに問い合わせを行いステータス情報を取得し、そのステータス情報を参照することで、前記データ転送手段がジョブ終了イベントを受信したか否かを判定する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とする情報処理装置。
【請求項5】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御方法であって、
前記プリンタとの通信を制御する通信制御工程と、
前記通信制御工程による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送工程と、
前記印刷ジョブを記憶媒体に管理するジョブ管理工程とを備え、
前記データ転送工程は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理工程を有し、
前記通信制御工程は、
前記データ転送工程の処理状況を監視する監視工程と、
前記監視工程による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理工程に前記印刷ジョブの終了を通知する通知工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項6】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御方法であって、
印刷ジョブを前記プリンタに送信するデータ転送工程と、
前記印刷ジョブを記憶媒体に管理するジョブ管理工程とを備え、
前記データ転送工程は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理工程と、
前記ジョブ終了処理が完了してから、前記ジョブ管理工程に前記印刷ジョブの終了を通知する通知工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項7】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段として機能させ、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とするプログラム。
【請求項8】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段として機能させ、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とするプログラム。
【請求項1】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とする情報処理装置。
【請求項2】
前記監視手段は、前記プリンタからの前記ジョブ終了イベントを受信してから一定期間Sleepすることで前記ジョブ終了処理が完了したと判定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記監視手段は、前記プリンタからの前記ジョブ終了イベントを前記データ転送手段が受信したか否かを判定できない場合は、前記プリンタに問い合わせを行いステータス情報を取得し、そのステータス情報を参照することで、前記データ転送手段がジョブ終了イベントを受信したか否かを判定する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置であって、
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段とを備え、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とする情報処理装置。
【請求項5】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御方法であって、
前記プリンタとの通信を制御する通信制御工程と、
前記通信制御工程による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送工程と、
前記印刷ジョブを記憶媒体に管理するジョブ管理工程とを備え、
前記データ転送工程は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理工程を有し、
前記通信制御工程は、
前記データ転送工程の処理状況を監視する監視工程と、
前記監視工程による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理工程に前記印刷ジョブの終了を通知する通知工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項6】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御方法であって、
印刷ジョブを前記プリンタに送信するデータ転送工程と、
前記印刷ジョブを記憶媒体に管理するジョブ管理工程とを備え、
前記データ転送工程は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理工程と、
前記ジョブ終了処理が完了してから、前記ジョブ管理工程に前記印刷ジョブの終了を通知する通知工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項7】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを
前記プリンタとの通信を制御する通信制御手段と、
前記通信制御手段による制御に従って、印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段として機能させ、
前記データ転送手段は、
前記プリンタからジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段を有し、
前記通信制御手段は、
前記データ転送手段の処理状況を監視する監視手段と、
前記監視手段による監視の結果、前記ジョブ終了処理が完了したと判定した後、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とするプログラム。
【請求項8】
プリンタとネットワークを介して接続され、前記プリンタを制御する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを
印刷ジョブを前記プリンタに送信するデータ転送手段と、
前記印刷ジョブを管理するジョブ管理手段として機能させ、
前記データ転送手段は、
前記プリンタからのジョブ終了イベントを受信すると、前記印刷ジョブに関する処理を完了するためのジョブ終了処理を行うジョブ終了処理手段と、
前記ジョブ終了処理が完了してから、前記ジョブ管理手段に前記印刷ジョブの終了を通知する通知手段とを有する
ことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−204747(P2010−204747A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−47020(P2009−47020)
【出願日】平成21年2月27日(2009.2.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願日】平成21年2月27日(2009.2.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]