(57)【要約】【課題】  プリンタドライバは通信モジュールのデータ送信の状態を確認できない場合がある。【解決手段】  通信モジュールへデータを送信するデータ送信工程と、印刷装置のステータス情報を取得するステータス情報取得工程と、通信モジュールの動作情報を取得する動作情報取得工程と、通信モジュールが終了したかを判断する通信モジュール終了判断工程とを備える。【選択図】  図３
2011028558.tif 000002
【特許請求の範囲】
【請求項１】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信工程と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得工程と、前記データ送信工程により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報に基づいて判断する通信モジュール終了判断工程と、前記通信モジュール終了判断工程により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記印刷装置のステータス情報を監視して前記通信モジュールのデータ出力処理が終了するまで待機する待機工程と、
を有することを特徴とする情報処理方法。
【請求項２】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信工程と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得工程と、前記通信モジュールの動作状態を示す動作情報を取得する動作情報取得工程と、前記データ送信工程により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報と前記取得した通信モジュールの動作情報に基づいて判断する通信モジュール終了判断工程と、前記通信モジュール終了判断工程により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記通信モジュールの前記印刷装置へのデータ出力を中止するか否かの判断を行うデータ出力中止判断工程と、前記データ出力中止判断工程によってデータ出力を中止すると判断された場合にデータ出力の中止処理を行うデータ出力中止工程と、
を有することを特徴とする情報処理方法。
【請求項３】
前記動作情報取得工程は、前記通信モジュールへのデータ送信をやり取りするための送信機構を備え、送信機構の終了後も前記通信モジュールが動作中である場合に前記通信モジュールは前記印刷装置へのデータ出力を終了していないと判断すること、を特徴とする請求項２記載の情報処理方法。
【請求項４】
前記データ出力中止工程は、前記通信モジュールに対して出力データをクリアするコマンドを送信することによって前記データ出力を中止すること、を特徴とする請求項２または請求項３に記載の情報処理方法。
【請求項５】
前記データ出力中止判断工程は、前記取得したステータス情報がデータの受信拒否状態を示す情報であった場合に前記データ出力中止工程において送信される前記出力データをクリアするコマンドによって前記データ受信拒否状態が解除されるか否かに基づいて判断すること、を特徴とする請求項２乃至請求項４の何れかに記載の情報処理方法。
【請求項６】
前記データ出力中止判断工程は、印刷キューにおけるジョブの登録状態を監視する印刷キュー監視工程を備え、登録されているジョブの状態情報に基づいてデータ出力を中止可能であると判断すること、を特徴とする請求項２乃至請求項４の何れかに記載の情報処理方法。
【請求項７】
前記ジョブの状態情報は、次のジョブが印刷キューに登録された場合にはデータ出力を中止可能であると判断すること、を特徴とする請求項６記載の情報処理方法。
【請求項８】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信手段と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得手段と、前記データ送信手段により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報に基づいて判断する通信モジュール終了判断手段と、前記通信モジュール終了判断手段により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記印刷装置のステータス情報を監視して前記通信モジュールのデータ出力処理が終了するまで待機する待機手段と、
を有することを特徴とする情報処理装置。
【請求項９】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信手段と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得手段と、前記通信モジュールの動作状態を示す動作情報を取得する動作情報取得手段と、前記データ送信手段により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報と前記取得した通信モジュールの動作情報に基づいて判断する通信モジュール終了判断手段と、前記通信モジュール終了判断手段により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記通信モジュールの前記印刷装置へのデータ出力を中止するか否かの判断を行うデータ出力中止判断手段と、前記データ出力中止判断手段によってデータ出力を中止すると判断された場合にデータ出力の中止処理を行うデータ出力中止手段と、
を有することを特徴とする情報処理装置。
【請求項１０】
前記動作情報取得手段は、前記通信モジュールへのデータ送信をやり取りするための送信機構を備え、送信機構の終了後も前記通信モジュールが動作中である場合に前記通信モジュールは前記印刷装置へのデータ出力を終了していないと判断すること、を特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記データ出力中止手段は、前記通信モジュールに対して出力データをクリアするコマンドを送信することによって前記データ出力を中止すること、を特徴とする請求項９または請求項１０に記載の情報処理装置。
【請求項１２】
前記データ出力中止判断手段は、前記取得したステータス情報がデータの受信拒否状態を示す情報であった場合に前記データ出力中止手段において送信される前記出力データをクリアするコマンドによって前記データ受信拒否状態が解除されるか否かに基づいて判断すること、を特徴とする請求項９乃至請求項１１の何れかに記載の情報処理装置。
【請求項１３】
前記データ出力中止判断手段は、印刷キューにおけるジョブの登録状態を監視する印刷キュー監視手段を備え、登録されているジョブの状態情報に基づいてデータ出力を中止可能であると判断すること、を特徴とする請求項９乃至請求項１１の何れかに記載の情報処理方法。
【請求項１４】
前記ジョブの状態情報は、次のジョブが印刷キューに登録された場合にはデータ出力を中止可能であると判断すること、を特徴とする請求項１３記載の情報処理方法。
【請求項１５】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信手順と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得手順と、前記データ送信手順により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報に基づいて判断する通信モジュール終了判断手順と、前記通信モジュール終了判断手順により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記印刷装置のステータス情報を監視して前記通信モジュールのデータ出力処理が終了するまで待機する待機手順とをコンピュータに実行させるためのプログラム。
【請求項１６】
接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信手順と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得手順と、前記通信モジュールの動作状態を示す動作情報を取得する動作情報取得手順と、前記データ送信手順により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報と前記取得した通信モジュールの動作情報に基づいて判断する通信モジュール終了判断手順と、前記通信モジュール終了判断手順により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記通信モジュールの前記印刷装置へのデータ出力を中止するか否かの判断を行うデータ出力中止判断手順と、前記データ出力中止判断手順によってデータ出力を中止すると判断された場合にデータ出力の中止処理を行うデータ出力中止手順とをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータなどの情報処理装置（外部装置）と記録装置との間でデータの授受を行いながら情報処理装置から送信される記録データに基づいて記録装置で円滑に記録するための記録制御に関する。
【背景技術】
【０００２】
一般に、ホストコンピュータなどの情報処理装置に搭載されるオペレーティングシステム（以後、ＯＳと呼ぶ）には、印刷要求を行うホストコンピュータにプリンタが接続された環境での印刷をサポートするための印刷システムが備えられている。ホストコンピュータには、その印刷システムおよび使用するプリンタの機種に対応したプリンタドライバが搭載され、プリンタドライバは印刷データを生成しプリンタに送信すると共に、印刷処理中のプリンタのステータスを取得してホストコンピュータ上に表示する機能を備える。例えば、プリンタがエラー発生などの要因によりプリンタドライバから送信された印刷データの受信を拒否する状態であった場合には、プリンタドライバはプリンタから取得したステータスに応じて処理を中止するか継続するか否かの判断を行い適切な情報をユーザに通知する（
【特許文献１】参照）。
【０００３】
米国アップル社のＯＳである「Ｍａｃ ＯＳ Ｘ」に導入されている「ＣＵＰＳ（Ｃｏｍｍｏｎ ＵＮＩＸ（登録商標）  Ｐｒｉｎｔｉｎｇ Ｓｙｓｔｅｍ）」と呼ばれる印刷システム（以後、ＣＵＰＳ印刷システムと呼ぶ）では、ホストコンピュータ上で機能する複数のプロセスが連携して順にデータ処理を行うことにより、ホストコンピュータからプリンタへ印刷データが送信される仕組みになっている。そのため、印刷要求に対してプリンタの理解可能な印刷データ形式に変換するプリンタドライバ部と、プリンタに印刷データを出力するバックエンド部が切り離されて設計されている。従って、プリンタドライバでは、バックエンドに生成した印刷データを出力すると共に、ジョブが完了するまでの間、バックエンドを介して印刷処理中のプリンタのステータスを取得してホストコンピュータ上に表示する。（「Ｍａｃ ＯＳ」「ＵＮＩＸ（登録商標）」）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第０４２２７４２８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＵＰＳ印刷システムにおいて、プリンタドライバはバックエンドへ、バックエンドはプリンタへ、各々が非同期にデータ送信を行う。そのため、バックエンド内のデータの送受信状況をプリンタドライバは把握することができず、プリンタドライバはたとえバックエンドに対してデータの送信が完了したとしても、その後バックエンドがプリンタに対してデータの送信が完了したか否かを確認することができない。つまり、プリンタドライバは、バックエンドへのデータの送信が完了すると、バックエンドの処理が完了していないうちにジョブ完了と判断して自身の処理を終了してしまうことがある。そのため、バックエンドのデータ送信が未完了でジョブが完了していないにも関わらずプリンタドライバがジョブ完了と判断して自身を終了してしまうと、プリンタドライバはプリンタのステータスをホストコンピュータ上に表示することができなくなり、ユーザはなぜジョブが完了しないのか原因を知ることができないという問題がある。
【０００６】
そこで、本発明では上記の問題点を鑑み、プリンタがバックエンドからのデータの受信を拒否した状態であるためにバックエンドがデータ送信を完了できない場合において、プリンタドライバがバックエンドの処理状況を検知して確実にジョブの完了を判断することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述のような課題を解決するために本発明は以下のような構成を備える。すなわち、接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信工程と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得工程と、前記データ送信工程により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報に基づいて判断する通信モジュール終了判断工程と、前記通信モジュール終了判断工程により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記印刷装置のステータス情報を監視して前記通信モジュールのデータ出力処理が終了するまで待機する待機工程と、を有することを特徴とする。
【０００８】
また、接続された印刷装置に対して、印刷用データを提供する情報処理装置において、前記印刷装置に応じて処理可能な印刷用データを生成すると共にプリンタのステータス情報の通知を行うプリンタドライバと、前記印刷装置へのデータ出力及び前記印刷装置のステータス情報の取得を行う通信モジュールとが別々に構成される印刷システムであって、前記プリンタドライバは、前記通信モジュールへ生成した印刷用データ及び前記印刷装置を制御するためのコマンドを送信するデータ送信工程と、前記通信モジュールを介して前記印刷装置の状態を示すステータス情報を取得するステータス情報取得工程と、前記通信モジュールの動作状態を示す動作情報を取得する動作情報取得工程と、前記データ送信工程により送信するデータを前記通信モジュールが前記印刷装置へ出力する処理が終了したかを前記取得したステータス情報と前記取得した通信モジュールの動作情報に基づいて判断する通信モジュール終了判断工程と、前記通信モジュール終了判断工程により前記通信モジュールのデータ出力処理が終了していないと判断された場合に前記通信モジュールの前記印刷装置へのデータ出力を中止するか否かの判断を行うデータ出力中止判断工程と、前記データ出力中止判断工程によってデータ出力を中止すると判断された場合にデータ出力の中止処理を行うデータ出力中止工程と、を有することを特徴とする。
【発明の効果】
【０００９】
以上説明したように、本発明の情報処理装置では、通信モジュールの処理が終了していないことによりジョブが完了しない場合でも、プリンタドライバは記録装置の状態を適切にユーザに通知することができ、プリンタドライバは確実にジョブの完了を判断することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の一形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
【図２】本実施形態の一形態に係るＣＵＰＳ印刷システムの構成を示すブロック図である。
【図３】本発明の第１の実施形態を示し、印刷ジョブの終了処理の流れを説明するフローチャートである。
【図４】本発明の第１の実施形態を示し、インク情報要求ジョブの終了処理の流れを説明するフローチャートである。
【図５】本発明の第２の実施形態を示し、印刷ジョブの終了処理の流れを説明するフローチャートである。
【図６】本発明の第２の実施形態を示し、インク情報要求ジョブの終了処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【実施例】
【００１２】
＜実施形態１＞
本発明の第１の実施形態のコンピュータ装置の構成について、図１のブロック図を参照して説明する。ホストコンピュータ1とＥａｔｈｅｒｎｅｔやＵＳＢなどの通信バス１１１を介してプリンタＡ２、プリンタＢ３とが通信可能な印刷システムの例である。ホストコンピュータ１には、ＯＳとして「Ｍａｃ ＯＳ Ｘ」と同等のＯＳがインストールされているものとし、印刷システムとしては「Ｍａｃ ＯＳ Ｘ」に導入されているＣＵＰＳ印刷システムを想定している。図１では、プリンタは２つのみ図示したが、通信バス１１１を介して任意の数のプリンタが接続可能である。
【００１３】
ホストコンピュータ１において、１０１はＲＡＭ１０３及び外部記憶装置１０４に格納されたプログラムに従って各部を制御するＣＰＵである。プリンタＡ２及びプリンタＢ３に対応したプリンタドライバを実行し、アプリケーションプログラムに基づいて作成された出力情報をプリンタに対応する出力コマンドに変換し、プリンタＡ２またはプリンタＢ３に所定のプロトコルで出力する。１０２はＲＯＭで、ＣＰＵ１０１が実行するＢＩＯＳプログラムやフォントデータを格納するＲＯＭである。１０３はＲＡＭで、必要に応じてＣＰＵ１０１がデータの書き込みや読み出しを行ったりするために使用され、プリンタドライバ起動時には、プリンタドライバのプログラムコードがこのＲＡＭ１０３にロードされる。１０４は外部記憶装置で、ＣＰＵ１０１が読み出すプログラムコードが格納されており、本実施形態の機能の一部を実現するデバイスで、例えばＦＤ、ＣＤ−ＲＷ、ＨＤＤなどである。１０５が入力デバイス制御部で、キーボードやマウス等の入力デバイス１０７を制御する。１０６は表示装置制御部で、ＣＲＴ等の表示装置１０８を制御する。１０９は内部バスで、各構成要素間のデータ通信を行うデータバス、システムバスで構成される。１１０は通信Ｉ／Ｆで、通信バス１１１を介してプリンタＡ２及びプリンタＢ３との通信を司り、双方向通信可能である。
【００１４】
なお、シリアルインターフェースとしてはＵＳＢ、ＩＥＥＥ１３９４など、パラレルインターフェースとしてはセントロニクス、ＳＣＳＩなど複数の種類が想定されるが、双方向の通信を実現するものであればどのようなインターフェースでも構わない。
【００１５】
プリンタＡ２において、１１３はプリントコントローラで、通信Ｉ／Ｆ１１２より得られたプリンタコマンドをもとにプリンタエンジン１１４を制御し印刷を行う。１１４はプリンタエンジンで、プリンタヘッドの操作や記録媒体の搬送を行う機構である。
【００１６】
図２は、本発明の実施の形態に係るＣＵＰＳ印刷システムの全体の概略構成を示すブロック図である。ＣＵＰＳ印刷システム２０２は、情報処理装置としてのホストコンピュータ１と、それをＥａｔｈｅｒｎｅｔやＵＳＢなどの通信バスを介して接続されるプリンタ２とから構成される。ホストコンピュータ１は、ＣＵＰＳ印刷システム２０２、ＣＵＰＳ用プリンタドライバ２０６を備え、アプリケーション２０１から受け取った印刷データをＣＵＰＳ印刷システム２０２及びＣＵＰＳ用プリンタドライバ２０６を通じてプリンタ２が処理可能（印刷可能）なプリントデータに変換して出力する。
【００１７】
アプリケーション２０１は、ＣＵＰＳ印刷システム２０２に対して印刷要求を行うものであり、印刷開始時にＰＤＦ形式の印刷データと用紙サイズ、用紙種類、インク情報などが設定された印刷設定情報とをＣＵＰＳ印刷システム２０２に受け渡す。ＣＵＰＳ印刷システム２０２は、プリンタ２に印刷を実行させるための印刷処理全般を管理する処理を行う。このＣＵＰＳ印刷システム２０２は、印刷要求があった場合、アプリケーション２０１からの印刷設定情報をカップスオプション（ＣｕｐｓＯｐｔｉｏｎ）として受け取り、カップスオプションとＰＤＦ形式の印刷データとをＣＵＰＳ用プリンタドライバ２０６に受け渡す。
【００１８】
ＣＵＰＳ用プリンタドライバ２０６は、ＣＵＰＳ印刷システム２０２より取得したカップスオプションをジョブチケットに変換するとともに、ＰＤＦ形式の印刷データをラスタデータに変換する。その後、ＣＵＰＳ用プリンタドライバ２０６は、さらに変換したジョブチケットに基づいてラスタデータを、バックエンド２０９に出力する。これにより、プリンタ２では受信したプリントデータに基づいて印刷媒体への印刷が行われる。以上までの構成がＣＵＰＳ印刷システムの基本構成となる。
【００１９】
ＣＵＰＳ印刷システム２０２は、ファイル取得部２０３と、ファイル登録部２０４とを備えている。ファイル登録部２０４には、プリンタ２のプリンタ名やアイコンに関する情報の他、そのプリンタ２のオプションや機能に関するプリンタ機種固有の情報を記述したＰＰＤ（ＰｏｓｔＳｃｒｉｐｔ Ｐｒｉｎｔｅｒ Ｄｅｓｃｒｉｐｔｉｏｎ）ファイル２０５が登録される。
【００２０】
ここで、ＣＵＰＳ印刷システム２０２において、ＰＰＤファイル２０５はＣＵＰＳ用プリンタドライバ２０６のインストールの際にファイル登録部２０４に登録される。このため、ＣＵＰＳ印刷システム２０２においては、プリンタ２の初回接続時には、ファイル取得部２０３により、ＰＰＤファイル２０５の検索処理のみ行われる。そして、その後、アプリケーション２０１から印刷要求を受け付けた際には、ＰＰＤファイル２０５を参照することで必要なプリンタ情報を読み取り、それをアプリケーション２０１に回答する。これにより、アプリケーション２０１では、ＰＰＤファイル２０５のプリンタ情報に基づいてカップスオプションが生成される。
【００２１】
ＣＵＰＳ用プリンタドライバ２０６は、データ形式変換部２０７と、プリントデータ生成部２０８とを備えている。このうち、プリントデータ形式変換部２０７は、プリントデータ生成部２０８に対する印刷開始に伴う初期化処理や、その後のジョブの開始処理および終了処理などを行う。また、データ形式変換部２０７は、そのジョブ実行時において、アプリケーション２０１から受信した印刷設定情報をカップスオプション形式からジョブチケット形式に変換する処理を行うと共に、ＰＤＦ形式の印刷データを中間データのラスタデータに変換する処理を行う。プリントデータ生成部２０８は、こうしてデータ形式変換部２０７から取得したラスタデータとジョブチケットとに基づいてプリントデータを生成し、このプリントデータをバックエンド２０９へ出力する。
【００２２】
バックエンド２０９は、ＣＵＰＳ用プリンタドライバ２０６によって作成されたプリントデータをプリンタ２へ出力する。また、バックエンド２０９は、プリンタ２からプリンタ２の状態を示すステータス情報を取得しＣＵＰＳ用プリンタドライバ２０６に出力する処理を実行する。
【００２３】
図３は、本発明の実施の形態に係るホストコンピュータ１で実行される印刷ジョブにおける終了処理の流れを表すフローチャートである。図３の処理は、プリンタドライバ２０６及びバックエンド２０９に基づいて、ＣＰＵ１０１がホストコンピュータ１の各部を制御しながら実行するものである。プリンタドライバ２０６は、ホストコンピュータ１で実行されるアプリケーション２０１に基づいてユーザによる印刷操作が行われると（ＳＴＥＰ３０１）、ＳＴＥＰ３０２において印刷命令に対応する印刷情報をアプリケーション２０１から得てプリンタ２で印刷可能なプリントデータを生成し、ＳＴＥＰ３０３においてホストコンピュータ１からバックエンド２０９に対して生成したプリントデータを送信する。その後、プリンタドライバ２０６は、ＳＴＥＰ３０４においてバックエンド２０９を介して印刷処理中のプリンタ２のステータスを取得し、ＳＴＥＰ３０５において取得したプリンタ２のステータスをユーザに通知する。このプリンタのステータス情報に基づいて、プリンタドライバ２０６は、印刷が終了したか否かを判断し（ＳＴＥＰ３０６）、印刷が終了していない間はＳＴＥＰ３０４に戻り、プリンタ２のステータスの情報を取得し、ユーザへステータスを通知し続ける。印刷が終了したと判断すると、プリンタドライバ２０６は、ＳＴＥＰ３０７に進み印刷処理を終了するためにプリンタ２を初期化する初期化コマンドを送信する。その後、プリンタドライバ２０６は、ＳＴＥＰ３０８において再度プリンタ２のステータスを取得し、プリンタ２のステータスがビジー状態か否かの判断を行う（ＳＴＥＰ３０９）。プリンタドライバ２０６は、プリンタ２のステータスがビジー状態であると判断した場合、ＳＴＥＰ３０７で送信した初期化コマンドがバックエンド２０９からプリンタ２に対して送信されていない可能性があるため、ＳＴＥＰ３１０においてプリンタ２のステータスがビジー状態であることをユーザに通知して、ＳＴＥＰ３０８に戻る。その後、プリンタドライバ２０６は、プリンタ２のステータスがビジー状態でないと判断するまでＳＴＥＰ３０８からＳＴＥＰ３１０を繰り返し、プリンタ２のステータス情報を監視する。そして、プリンタ２のステータスがビジー状態でないと判断すると、プリンタドライバ２０６は、プリンタ２へ初期化コマンドが正常に送信されたと判断して、印刷ジョブを終了する（ＳＴＥＰ３１１）。但し、このステータス情報の監視の間にＯＳによるタイムアウトが発生した場合には、プリンタドライバ２０６は、直ちに監視を中止し印刷ジョブを終了する。
【００２４】
一方、バックエンド２０９は、プリンタドライバ２０６からデータが送信されると処理を開始し（ＳＴＥＰ３１２）、ＳＴＥＰ３１３においてプリンタドライバ２０６からプリントデータ及びコマンドデータを受信する。次にバックエンド２０９は、ＳＴＥＰ３１４において自身の送信バッファにデータを格納し、ＳＴＥＰ３１５において送信バッファに格納されたデータを順次プリンタ２へ送信する。その後、バックエンド２０９は、プリンタ２にデータが正常に送信されたか否かを確認し（ＳＴＥＰ３１６）、ＳＴＥＰ３１７においてデータの送信が完了したと判断されなかった場合には、ＳＴＥＰ３１３に戻り全てのデータの送信が完了するまでデータの送信を繰り返し、データの送信が完了したと判断すると処理を終了する（ＳＴＥＰ３１８）。
【００２５】
図４は、本発明の実施の形態に係るホストコンピュータ１で実行されるインク情報要求ジョブにおける終了処理の流れを表すフローチャートである。
【００２６】
インク情報要求ジョブとは、「Ｍａｃ ＯＳ Ｘ」が印刷ダイアログ上や印刷ジョブダイアログ上にプリンタのインク残量レベルを表示する機能を実現するために、ＯＳによって印刷キューに投入されるジョブである。ＯＳは、印刷ダイアログを表示するときなど特定のタイミングでプリンタドライバに対して「インク情報要求ジョブ」という形でインク情報を要求する。プリンタドライバは、インク情報要求ジョブを受け付けると、プリンタからインク情報を含むプリンタの状態を示すステータス情報をバックエンドを介して取得し、ＯＳに対してインク情報として通知する。ＯＳは、プリンタドライバからのインク情報の通知に基づき、印刷ダイアログ上や印刷ジョブダイアログ上にプリンタのインク残量レベルを表示する。
【００２７】
図４の処理は、プリンタドライバ２０６及びバックエンド２０９に基づいて、ＣＰＵ１０１がホストコンピュータ１の各部を制御しながら実行するものである。ＯＳは、ホストコンピュータ１で実行されるアプリケーション２０１に基づいてユーザが印刷操作を行おうと印刷ダイアログを表示するときなどの特定のタイミングで、プリンタドライバ２０６に対してインク情報を要求する（ＳＴＥＰ４０１）。プリンタドライバ２０６は、ＳＴＥＰ４０２においてＯＳからのインク情報要求を受信すると、ＳＴＥＰ４０３においてバックエンド２０９に対して応用ステータス指定コマンドを送信する。その後、プリンタドライバ２０６は、プリンタ２のステータスをバックエンド２０９を介して取得し（ＳＴＥＰ４０４）、ＳＴＥＰ４０５において取得したステータスが有効か否かを判断する。プリンタドライバ２０６は、ステータスの情報が有効でないと判断した場合、ＳＴＥＰ４０３に戻り、再度ステータスの取得を試みる。ステータスの情報が有効であると判断した場合に、プリンタドライバ２０６は、ＳＴＥＰ４０６において取得したステータスの情報から所望のインク残量情報の取得を行い、ＯＳに対してインク残量情報の通知を行う（ＳＴＥＰ４０７）。その後、プリンタドライバ２０６は、ＳＴＥＰ４０８において再度プリンタ２のステータスを取得し、プリンタ２のステータスがビジー状態か否かの判断を行う（ＳＴＥＰ４０９）。プリンタドライバ２０６は、プリンタ２のステータスがビジー状態であると判断した場合、ＳＴＥＰ４０３で送信した応用ステータス指定コマンドがバックエンド２０９の送信バッファに残ったままになっている可能性があるため、ＳＴＥＰ４１０においてプリンタ２のステータスをユーザに通知して、ＳＴＥＰ４０４に戻る。その後、プリンタドライバ２０６は、プリンタ２のステータスがビジー状態でないと判断するまでＳＴＥＰ４０４からＳＴＥＰ４１０を繰り返し、プリンタのステータス情報を監視する。そして、プリンタ２のステータスがビジー状態でないと判断すると、プリンタドライバ２０６は、バックエンド２０９が正常に処理を終了したと判断して、自身の処理を終了する（ＳＴＥＰ４１１）。但し、このステータス情報の監視の間にＯＳによるタイムアウトが発生した場合には、プリンタドライバ２０６は、直ちに監視を中止し処理を終了する。
【００２８】
このように、本実施形態では、プリンタのステータス情報に基づいてバックエンドの処理が終了したか否かを判断しプリンタドライバを終了するか否かを決定することにより、バックエンド処理中のステータス情報を適切にユーザに通知することができ、バックエンドの処理が未完了であるためにジョブが終了しない問題を防ぐことができる。
【００２９】
＜実施形態２＞
次に第２の実施形態について説明する。なお以下の説明では、第１の実施形態と共通する図及びその説明は省略し、異なる点についてのみ説明する。
【００３０】
第１の実施形態では、プリンタドライバにおける終了処理の際に、プリンタのステータス情報に基づいてバックエンドの処理が終了したか否かを判断した。一方、第２の実施形態では、プリンタドライバを終了するか否かの判断の際に、プリンタのステータス情報に加えて、バックエンドのプロセス状態を監視することによりバックエンドの処理の終了を判断するというものである。
【００３１】
図５は、本発明の第２の実施の形態に係るホストコンピュータ１で実行される印刷ジョブにおける終了処理の流れを表すフローチャートである。図５の処理は、プリンタドライバ２０６及びバックエンド２０９に基づいて、ＣＰＵ１０１がホストコンピュータ１の各部を制御しながら実行するものである。プリンタドライバ２０６は、ホストコンピュータ１で実行されるアプリケーション２０１に基づいてユーザによる印刷操作が行われると（ＳＴＥＰ５０１）、ＳＴＥＰ５０２において印刷命令に対応する印刷情報をアプリケーション２０１から得てプリンタ２で印刷可能なプリントデータを生成し、ＳＴＥＰ５０３においてホストコンピュータ１からバックエンド２０９に対して生成したプリントデータを送信する。その後、プリンタドライバ２０６は、ＳＴＥＰ５０４においてバックエンド２０９を介して印刷処理中のプリンタ２のステータスを取得し、ＳＴＥＰ５０５において取得したプリンタ２のステータスをユーザに通知する。このプリンタ２のステータス情報に基づいて、プリンタドライバ２０６は、印刷が終了したか否かを判断し（ＳＴＥＰ５０６）、印刷が終了していない間はＳＴＥＰ５０４に戻り、プリンタ２のステータスの情報を取得し、ユーザへステータスを通知し続ける。印刷が終了したと判断すると、プリンタドライバ２０６は、ＳＴＥＰ５０７に進み印刷処理を終了するためにプリンタ２を初期化する初期化コマンドを送信する。その後、プリンタドライバ２０６は、バックエンド２０９が必要な全てのデータをプリンタに送信したか否かを判断するために、ＳＴＥＰ５０８においてプリンタドライバ２０６からバックエンド２０９へのデータ送信パイプを一旦クローズする。バックエンド２０９は、プリンタドライバ２０６からのデータ送信パイプがクローズされ、かつ、自身の送信バッファに格納されているデータがプリンタ２に対して全て送信された場合に自身の処理を終了することができる。従って、プリンタドライバ２０６は、ＳＴＥＰ５０９においてバックエンド２０９のプロセスが動作しているか否かを確認し、バックエンド２０９のプロセスが動作中でなければ（ＳＴＥＰ５１０／Ｎｏ）、バックエンド２０９はデータの送信を完了したと判断してプリンタドライバ２０６は処理を終了する（ＳＴＥＰ５１４）。データ送信パイプをクローズしたにも関わらず、バックエンドのプロセスが動作中であった場合には（ＳＴＥＰ５１０／Ｙｅｓ）、プリンタドライバ２０６は、バックエンド２０９がデータの送信を完了していないと判断しＳＴＥＰ５１１に進む。次に、プリンタドライバ２０６は、ＳＴＥＰ５１１において再度プリンタ２のステータスを取得し、プリンタ２のステータスがビジー状態か否かの判断を行う（ＳＴＥＰ５１２）。プリンタドライバ２０６は、プリンタ２のステータスがビジー状態であると判断した場合、ＳＴＥＰ５０７で送信した初期化コマンドがバックエンド２０９からプリンタ２に対して送信されていない可能性があるため、ＳＴＥＰ５１３においてプリンタ２のステータスをユーザに通知してＳＴＥＰ５０９に戻り、再びバックエンド２０９のプロセスが動作中か否かを確認する。プリンタドライバ２０６は、プリンタ２のステータスがビジー状態でないと判断すると、プリンタ２へ初期化コマンドが正常に送信されたと判断して、印刷ジョブを終了する（ＳＴＥＰ５１４）。但し、この間にＯＳによるタイムアウトが発生した場合には、プリンタドライバ２０６は、直ちに処理を中止し印刷ジョブを終了する。
【００３２】
図６は、本発明の第２の実施の形態に係るホストコンピュータ１で実行されるインク情報要求ジョブにおける終了処理の流れを表すフローチャートである。図６の処理は、プリンタドライバ２０６及びバックエンド２０９に基づいて、ＣＰＵ１０１がホストコンピュータ１の各部を制御しながら実行するものである。ＯＳは、ホストコンピュータ１で実行されるアプリケーション２０１に基づいてユーザが印刷操作を行おうと印刷ダイアログを表示するときなどの特定のタイミングで、プリンタドライバ２０６に対してインク情報を要求する（ＳＴＥＰ６０１）。プリンタドライバ２０６は、ＳＴＥＰ６０２においてＯＳからのインク情報要求を受信すると、ＳＴＥＰ６０３においてバックエンド２０９に対して応答ステータス指定コマンドを送信する。その後、プリンタドライバ２０６は、プリンタ２のステータスをバックエンド２０９を介して取得し（ＳＴＥＰ６０４）、ＳＴＥＰ６０５において取得したステータスが有効か否かを判断する。プリンタドライバ２０６は、ステータスの情報が有効でないと判断した場合、ＳＴＥＰ６０３に戻り、再度ステータスの取得を試みる。ステータスの情報が有効であると判断した場合に、プリンタドライバ２０６は、ＳＴＥＰ６０６において取得したステータスの情報から所望のインク残量情報の取得を行い、ＯＳに対してインク残量情報の通知を行う（ＳＴＥＰ６０７）。その後、プリンタドライバ２０６は、バックエンド２０９が必要な全てのデータをプリンタ２に送信したか否かを判断するために、ＳＴＥＰ６０８においてプリンタドライバ２０６からバックエンド２０９へのデータ送信パイプを一旦クローズする。バックエンド２０９は、プリンタドライバ２０６からのデータ送信パイプがクローズされ、かつ、自身の送信バッファに格納されているデータがプリンタ２に対して全て送信された場合に自身の処理を終了することができる。従って、プリンタドライバ２０６は、ＳＴＥＰ６０９においてバックエンド２０９のプロセスが動作しているか否かを確認し、バックエンド２０９のプロセスが動作中でなければ（ＳＴＥＰ６１０／Ｎｏ）、バックエンド２０９はデータの送信を完了したと判断してプリンタドライバ２０６は処理を終了する（ＳＴＥＰ６１６）。データ送信パイプをクローズしたにも関わらず、バックエンドのプロセスが動作中であった場合には（ＳＴＥＰ６１０／Ｙｅｓ）、プリンタドライバ２０６は、バックエンド２０９がデータの送信を完了していないと判断しＳＴＥＰ６１１に進む。次に、プリンタドライバ２０６は、ＳＴＥＰ６１１において再度プリンタ２のステータスを取得し、プリンタ２のステータスがビジー状態か否かの判断を行う（ＳＴＥＰ６１２）。プリンタ２のステータスがビジー状態であると判断した場合、プリンタ２へ送信すべきデータがバックエンド２０９の送信バッファに残ったままになっている可能性がある。しかし、インク情報要求ジョブに関して言えば、ＳＴＥＰ６０７において所望のインク残量情報についてはＯＳに対して既に通知済みであるため、バックエンド２０９には不要なデータが残っていることになる。従って、プリンタドライバ２０６は、バックエンド２０９の送信バッファをクリアしてインク情報要求ジョブを終了するために、ＳＴＥＰ６１３においてプリンタ２のステータスの情報を解析し、送信バッファがクリアされることによって解除されるエラーがプリンタ２で発生していないかを判断する。ここで、プリンタドライバ２０６は、送信バッファのクリアによって解除されるエラーがプリンタ２に発生していると判断した場合、ＳＴＥＰ６１４においてプリンタ２のステータスをユーザに通知して、発生しているエラーを解除しないままＳＴＥＰ６０９に戻り、再びバックエンド２０９のプロセスが動作中か否かを確認する。プリンタドライバ２０６は、送信バッファのクリアによって解除されるエラーがプリンタ２に発生していないと判断した場合、ＳＴＥＰ６１５において送信バッファをクリアするコマンドを送信することによって、バックエンド２０９に残った不要なデータをクリアして、処理を終了する（ＳＴＥＰ６１６）。但し、この間にＯＳによるタイムアウトが発生した場合には、プリンタドライバ２０６は、直ちに処理を中止しインク情報要求ジョブを終了する。
【００３３】
このように、本実施形態では、プリンタのステータス情報に加えて、バックエンドのプロセス状態を監視することによりバックエンドの処理が終了したか否かを判断しプリンタドライバを終了するか否かを決定することにより、バックエンド処理中のステータス情報を適切にユーザに通知することができ、バックエンドの処理が未完了であるためにジョブが終了しない問題を防ぐことができる。また、インク情報要求ジョブに関して言えば、バックエンドでのデータ送信の完了を待たずにインク情報要求ジョブを終了することにより、ユーザが意図的に投入したジョブではないインク情報要求ジョブが印刷ジョブダイアログ上に長時間表示されることがなくなる。さらに、ユーザが意図的に投入したジョブでないインク残量要求ジョブの終了に伴うリセット処理によって、プリンタで発生していたエラーが勝手に解除されることがなくなる。
【００３４】
＜その他の実施形態＞
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００３６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００３７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００３８】
１  ホストコンピュータ
２、３  プリンタ
２０１  アプリケーション
２０２  ＣＵＰＳ印刷システム
２０３  ファイル取得部
２０４  ファイル登録部
２０５  ＰＰＤファイル
２０６  プリンタドライバ
２０７  データ形式変換部
２０８  プリントデータ生成部
２０９  バックエンド
【図１】
2011028558.tif 000003
【図２】
2011028558.tif 000004
【図３】
2011028558.tif 000005
【図４】
2011028558.tif 000006
【図５】
2011028558.tif 000007
【図６】
2011028558.tif 000008