(57)【要約】【課題】  双方向通信制御モジュールを構成要素として含まないプリンタドライバが使用される場合、印刷ジョブを適切にプリントキューから削除できないおそれがあった。【解決手段】  識別情報と関連付けて印刷ジョブを管理するスプーラーが動作可能な情報処理装置は、スプーラーから前記印刷ジョブに関連付けられている前記識別情報を取得し、その識別情報に基づく印刷コマンドを生成する。【選択図】  図３
2018073196.tif 000002
【特許請求の範囲】
【請求項１】
識別情報と関連付けて印刷ジョブを管理するスプーラーが動作可能な情報処理装置であって、
前記スプーラーから前記印刷ジョブに関連付けられている前記識別情報を取得する取得手段と、
前記印刷ジョブと前記識別情報に基づく印刷コマンドを印刷装置に送信する送信手段と、
前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブを前記スプーラーに削除させる削除手段を備え、
前記スプーラーは、前記情報処理装置で動作するオペレーティングシステムにより提供されることを特徴とする情報処理装置。
【請求項２】
前記印刷コマンドは、前記スプーラーから取得した識別情報または前記スプーラーから取得した所定の識別情報に基づいて生成されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記印刷装置から取得する情報に含まれる識別情報が前記スプーラーにより管理されている印刷ジョブに関連付けられている識別情報に対応すると判定された場合、前記印刷ジョブが前記スプーラーによって削除されることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブが前記スプーラーにより管理されていないと判定された場合、前記スプーラーにより管理される印刷ジョブの中でステータスが印刷中である印刷ジョブを特定する特定手段を更に有し、
前記特定された印刷ジョブが前記スプーラーにより削除されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記印刷コマンドを送信するために使用されるポートが所定のポートであるか否かを判定するポート判定手段を更に有し、
前記所定のポートであると判定され、かつ、前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブが前記スプーラーにより削除され、
前記所定のポートが使用されて、かつ、前記印刷コマンドの送信処理が完了した場合、前記スプーラーは、前記送信処理が完了した印刷コマンドに対応する印刷ジョブを削除することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記印刷装置と双方向通信を実行するランゲージモニタをプリンタドライバが備えることが制限されていることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記プリンタドライバは、Ｖｅｒｓｉｏｎ４プリンタドライバであることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
識別情報と関連付けて印刷ジョブを管理するスプーラーが動作可能な情報処理装置において実行される制御方法であって、
前記スプーラーから前記印刷ジョブに関連付けられている前記識別情報を取得する取得工程と、
前記印刷ジョブと前記識別情報に基づく印刷コマンドを印刷装置に送信する送信工程と、
前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブを前記スプーラーに削除させる削除工程を備え、
前記スプーラーは、前記情報処理装置で動作するオペレーティングシステムにより提供されることを特徴とする制御方法。
【請求項９】
コンピュータに、
識別情報と関連付けて印刷ジョブを管理するスプーラーから前記印刷ジョブに関連付けられている前記識別情報を取得する取得工程と、
前記印刷ジョブと前記識別情報に基づく印刷コマンドを印刷装置に送信する送信工程と、
前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブを前記スプーラーに削除させる削除工程を実行させ、
前記スプーラーは、前記コンピュータにより実行されるオペレーティングシステムにより提供されることを特徴とするプログラム。
【請求項１０】
前記印刷コマンドは、前記スプーラーから取得した識別情報または前記スプーラーから取得した所定の識別情報に基づいて生成されることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記印刷装置から取得する情報に含まれる識別情報が前記スプーラーにより管理されている印刷ジョブに関連付けられている識別情報に対応すると判定された場合、前記印刷ジョブが前記スプーラーによって削除されることを特徴とする請求項９または１０に記載のプログラム。
【請求項１２】
前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブが前記スプーラーにより管理されていないと判定された場合、前記スプーラーにより管理される印刷ジョブの中でステータスが印刷中である印刷ジョブを特定する特定工程を更に前記コンピュータに実行させ、
前記特定された印刷ジョブが前記スプーラーにより削除されることを特徴とする請求項９乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記印刷コマンドを送信するために使用されるポートが所定のポートであるか否かを判定するポート判定工程を更に前記コンピュータに実行させ、
前記所定のポートであると判定され、かつ、前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブが前記スプーラーにより削除され、
前記所定のポートが使用されて、かつ、前記印刷コマンドの送信処理が完了した場合、前記スプーラーは、前記送信処理が完了した印刷コマンドに対応する印刷ジョブを削除することを特徴とする請求項９乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
前記印刷装置と双方向通信を実行するランゲージモニタを備えることが制限されていることを特徴とする請求項９乃至１３のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
プリンタドライバの中には、情報処理装置と印刷装置間の通信処理を制御する通信制御モジュール（以後ランゲージモニタとも称す）を含むプリンタドライバが存在する。このランゲージモニタを含むプリンタドライバはＶｅｒｓｉｏｎ３ドライバ（以後Ｖ３ドライバとも称す）と称されている。ランゲージモニタは、プリンタドライバのコマンド生成フィルタにより生成された印刷コマンドを、オペレーティングシステム（ＯＳ）を介して、受信し、印刷装置へ送信する。またランゲージモニタは、印刷装置にて印刷コマンドに基づく印刷処理がキャンセルされたことを検知できる。ランゲージモニタにより印刷コマンドに基づく印刷処理のキャンセルが検知された場合、ＯＳの構成モジュールであるプリントキューから当該印刷コマンドに対応する印刷ジョブが削除される。
【０００３】
一方、Ｍｉｃｒｏｓｏｆｔ社により導入されたＷｉｎｄｏｗｓ（商標）８およびＷｉｎｄｏｗｓ（商標）ＲＴからは、ランゲージモニタを含まないプリンタドライバが動作可能である。この構成によるプリンタドライバは、Ｖｅｒｓｉｏｎ４プリンタドライバ（以後Ｖ４ドライバとも称す）と称される。
【０００４】
特許文献１には、印刷の中止が指示された場合、ランゲージモニタを用いて対象となる印刷データを削除することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−８１９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、ランゲージモニタが存在しない状況下について考慮していない。そのため、ランゲージモニタが存在しない環境において印刷がキャンセルされた場合に、特許文献１の技術では、ユーザーが所望としないキャンセル処理が実行されるおそれがあった。
【課題を解決するための手段】
【０００７】
上述のような課題を解決するための本発明は、識別情報と関連付けて印刷ジョブを管理するスプーラーが動作可能な情報処理装置であって、前記スプーラーから前記印刷ジョブに関連付けられている前記識別情報を取得する取得手段と、前記印刷ジョブと前記識別情報に基づく印刷コマンドを印刷装置に送信する送信手段と、前記印刷コマンドに基づく印刷処理が前記印刷装置においてキャンセルされたことを検知した場合、前記印刷装置から取得する情報に対応する識別情報が関連付けられた印刷ジョブを前記スプーラーに削除させる削除手段を備え、前記スプーラーは、前記情報処理装置で動作するオペレーティングシステムにより提供されることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザーが所望としないキャンセル処理が実行されるおそれを軽減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】印刷装置と情報処理装置によって構成される印刷システムを示すブロック図
【図２】Ｖ４プリンタドライバの構成を示す概念図
【図３】実施形態１における本発明のプリントシステムの構成を示すブロック図
【図４】印刷ジョブに付加する識別子の例を示す図
【図５】ステータス管理プログラム３３１の画面表示例
【図６】プリンタドライバが印刷コマンドを送信する処理を示すフローチャート
【図７】プリンタドライバにより生成される印刷コマンドの全体像を示す概略図
【図８】プリントキューからジョブを削除する処理を示すフローチャート
【図９】実施形態２における本発明のプリントシステムの構成を示すブロック図
【図１０】実施形態２におけるプリントキュー、および印刷装置の状態図
【図１１】プリントキューから処理途中ジョブを削除する処理を示すフローチャート
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
＜実施形態１＞
図１は情報処理装置１１０と情報処理装置１１０に接続可能な印刷装置１２０により構成される印刷システムの全体構成を示すブロック図の一例である。情報処理装置１１０は入力Ｉ／Ｆ１１１、ＣＰＵ１１２、ＲＯＭ１１３、出力Ｉ／Ｆ１１４、外部記憶装置１１５、ＲＡＭ１１６、入力装置１１７、出力装置１１８、入出力Ｉ／Ｆ１１９を有する。ＲＯＭ１１３は初期化プログラムを保存し、外部記憶装置１１５はＯＳ、プリンタドライバやその他各種のデータが保存されている。外部記憶装置１１５に保存される各種プログラムは、ＲＡＭ１１６をワークメモリーとして使用する。入力装置１１７はデータ入力や動作指示に使用され入力Ｉ／Ｆ１１１に接続されている。出力装置１１８はデータ表示や状態の通知に使用され、出力Ｉ／Ｆ１１４に接続されている。本実施形態では、ＣＰＵ１１２やＲＯＭ１１３、ＲＡＭ１１６等によりコンピュータが形成される。
【００１２】
印刷装置１２０は、ＲＡＭ１２１、ＲＯＭ１２２、プリントエンジン１２３、ＣＰＵ１２４、入出力Ｉ／Ｆ１２５から構成される。情報処理装置１１０と印刷装置１２０はＵＳＢ（商標）ケーブル１３０により接続されている。なお、接続形態は、他の接続形態であっても良く、例えば無線接続であっても構わない。ＲＡＭ１２１はＣＰＵ１２４のワークメモリーとして使用され、受信したデータの一時保存用バッファとしても利用される。ＲＯＭ１２２は制御命令を保存している。プリントエンジン１２３は情報処理装置１１０から送信された印刷コマンドに基づき印刷を行う。ＣＰＵ１２４はＲＯＭ１２２に保存されている制御命令に従い印刷装置１２０を制御する。なお、本実施形態においては情報処理装置１１０および印刷装置１２０の処理分担を前記のように示したが、処理の分担形態はこれに依らない。
【００１３】
図２は本実施形態におけるＶ４プリンタドライバを含むＶ４プリントシステムの構成を概念的に表した図の一例である。なお、図２のＶ４プリントシステムは、情報処理装置１１０において構成される。上述したようにＶ４プリンタドライバには、印刷装置と双方向通信を実行するランゲージモニタは含まれない。つまり、情報処理装置に構成されるプリントアーキテクチャーは、印刷装置と双方向通信を実行するランゲージモニタをプリンタドライバが備えることを制限している。アプリケーション２０１が作成した印刷データは、ＯＳの印刷サポート機能２０２を介しスプールデータ２０５としてスプーラー２０３のプリントキュー２０４に一時的に蓄積される。なお、スプールデータ２０５は、印刷ジョブと呼ばれることもある。蓄積されたスプールデータ２０５は、Ｖ４プリンタドライバを構成するフィルタの１つであるコマンド生成フィルタ２０６により印刷装置１２０が解釈可能な印刷コマンドに変換された後に、印刷装置１２０に送信される。アプリケーション２０１は、印刷指示を行う際にＯＳの印刷サポート機能２０２を介して、ＯＳのユーザーインターフェースモジュール２０７から返却された印刷設定情報を印刷データに付加する。印刷設定情報は、アプリケーション２０１からの印刷開始指示に先立って設定された情報である。コマンド生成フィルタ２０６は、受信した印刷データに付加された印刷設定情報に従って、印刷データに変換を施し印刷装置１２０が解釈可能な印刷コマンドを生成する。その後、コマンド生成フィルタ２０６は生成した印刷コマンドを、スプーラー２０３、ＵＳＢポートモニタ２０８を経由して、印刷装置１２０へ送信する。なお、スプーラー２０３は、印刷ジョブに対応する印刷コマンドの送信処理が完了したことを検知した場合、印刷ジョブをプリントキューから削除する。
【００１４】
図３は本発明の実施形態１における印刷システムの構成を示すブロック図であり、ＰＣ３１０と、ネットワーク３２０と、印刷装置１２０から構成される。なお、ＰＣ３１０は、上述した情報処理装置１１０に相当する。ＰＣ３１０には、プリンタドライバ３２１、印刷ジョブ識別子設定モジュール３２２、ステータス管理プログラム３３１、ＯＳの構成モジュールであるスプーラー２０３、およびプリントキュー２０４が用意されている。プリンタドライバ３２１は、印刷装置１２０に印刷コマンドを送信して印刷装置１２０に印刷コマンドに基づく印刷処理を実行させる。また、その他の処理として、プリンタドライバ３２１は、印刷装置１２０の状態（ステータス）を取得してユーザーに印刷装置に関わる情報を提供する。印刷ジョブ識別子設定モジュール３２２は、プリンタドライバ３２１が発行する印刷コマンドに対し、識別子を付加する。図４は、印刷ジョブ識別子設定モジュール３２２にて設定される、印刷コマンドに付加される識別子の一例を示す。図４に示す識別子は数値、ハイフネーションおよびアルファベットにより表現されているが、識別子の構成はこの例に限定されるものではない。
【００１５】
図３に戻る。印刷装置１２０には、プリント動作を制御するためのプリント部１２６と、印刷装置１２０のステータスを保持する管理情報保持部１２７、印刷コマンドをキャンセルするためのジョブキャンセル手段１２８が用意されている。ステータス管理プログラム３３１は、ジョブＩＤ取得モジュール３３２と、管理情報取得モジュール３３３と、管理情報表示モジュール３３４と、ジョブキャンセル検知モジュール３３５と、ジョブ削除モジュール３３６で構成される。なお、ステータス管理プログラム３３１は、スタートアッププログラムとして登録されており、ＯＳ起動時に自動的に起動し、常駐プログラムとして動作する。ジョブＩＤ取得モジュール３３２は、ジョブＩＤをスプーラー２０３から取得する。なお、ジョブＩＤは、スプーラー２０３により発行される。管理情報取得モジュール３３３は印刷装置１２０にアクセスし、印刷装置１２０のステータス情報を管理情報保持部１２７から取得する。管理情報表示モジュール３３４は、管理情報取得モジュール３３３が取得したステータス情報に基づいて、ユーザーに必要な情報をＵＩ表示する。図５は、ステータス管理プログラム３３１によるＵＩ表示の一例である。タイトルバー３０１はアプリケーションや印刷装置の名称等を表示する。メッセージ表示部３０２は、管理情報取得モジュール３３３で取得した情報に基づいて、印刷装置１２０の状況をユーザーに報知する。ジョブ情報表示部３０３は、管理情報取得モジュール３３３で取得した情報に基づいて、プリント動作の進捗状況を表示する。インク情報表示部３０４は、管理情報取得モジュール３３３で取得した情報に基づいて、印刷装置１２０で使用するインクの消費状況を表示する。このような情報を確認することにより、ユーザーは、印刷コマンドの進捗状況を把握したり、インクを交換する時期や種類を確認したり、エラー発生の有無を認識したりすることができる。そして、このような情報は特に印刷装置の動作中において有用である。
【００１６】
図３に戻る。ジョブキャンセル検知モジュール３３５は、管理情報取得モジュール３３３が印刷装置１２０から取得したステータス情報を解析し、ジョブキャンセル手段１２８にてジョブキャンセルが行われたかどうかを検知する。ジョブ削除モジュール３３６は、ジョブキャンセル検知モジュール３３５が印刷処理のキャンセルを検知した場合に、印刷装置１２０でキャンセルされた印刷処理に対応する印刷ジョブがプリントキュー２０４に存在するかどうかを確認する。キャンセルされた印刷処理に対応する印刷ジョブがプリントキュー２０４に存在する場合は、ジョブ削除モジュール３３６は、この印刷ジョブをプリントキューから削除するようスプーラーに指示する。図６は、プリンタドライバ３２１が、印刷装置１２０に印刷コマンドを送信する処理を示すフローチャートである。なお、本願のフローチャートは、ＣＰＵ１１２がフローチャートに関わるプログラムを読み出して実行することで実行される。
【００１７】
アプリケーションにおいて印刷が指示されるとスプーラー２０３がプリントキュー２０４を用いて印刷ジョブを管理する。スプーラー２０３は、プリントキュー２０４を用いて印刷ジョブを管理する場合、当該印刷ジョブに関連付けられたジョブＩＤを発行する。ジョブＩＤ取得モジュール３３２は、スプーラー２０３が発行したジョブＩＤを取得する（Ｓ６０１）。続くＳ６０２にて、印刷ジョブ識別子設定モジュール３２２は、印刷ジョブを一意に識別可能とするためのジョブＩＤに対応するジョブ識別子を印刷コマンドに設定する。図７は、プリンタドライバ３２１により生成される印刷コマンドの全体像を示す概略図である。プリンタドライバ３２１により生成される印刷コマンドは、識別情報格納部７０１と制御コマンド格納部７０２から成る。識別情報格納部７０１には、Ｓ６０２にて設定されるジョブ識別子が格納される。制御コマンド格納部には、印刷装置１２０の動作を制御するコマンドが格納される。なお、ジョブ識別子は、Ｓ６０２にて取得したスプーラー２０３が発行したジョブＩＤそのものでもよい。あるいは、他のＰＣから発行されたジョブとの重複を避けるため、図４に示したようにジョブＩＤとその他の情報、例えばＧｌｏｂａｌｌｙ  Ｕｎｉｐｕｅ  Ｉｄｅｎｔｉｆｉｅｒ（以後ＧＵＩＤとも称す）とを組み合わせたものでもよい。続くＳ６０３において、プリンタドライバ３２１は印刷コマンドを印刷装置１２０へ送信するための処理を実行し、本処理は終了する。
【００１８】
図８は、印刷装置１２０にて印刷コマンドに対応する印刷処理がキャンセルされた場合におけるプリンタドライバ３２１の処理について説明するためのフローチャートである。なお、本実施形態では、印刷装置１２０は、受信した印刷コマンドを印刷実行ジョブとして管理する。
【００１９】
管理情報取得モジュール３３３は、Ｓ８０１で印刷装置１２０にアクセスし、印刷装置１２０のステータス情報を取得する。さらにＳ８０２にてジョブキャンセル検知モジュール３３５は、上記取得したステータス情報を解析し、印刷装置１２０のジョブキャンセル手段１２８により印刷コマンドに基づく印刷処理がキャンセルされたか否かを判定する。印刷コマンドに基づく印刷処理のキャンセルが行われていない場合は、本処理を終了する。印刷コマンドに基づく印刷処理がキャンセルされたと判定された場合、Ｓ８０３にて、ジョブ削除モジュール３３６は、Ｓ８０１で取得したステータス情報に含まれるジョブ識別子を取得する。管理情報取得モジュール３３３は、例えば、ジョブ識別子として「１１１」が設定された印刷コマンドの印刷処理がキャンセルされた場合、ジョブ識別子「１１１」に対応する印刷処理がキャンセルされたことを示すステータス情報を印刷装置１２０から取得する。つまり、Ｓ８０１にて取得されるステータス情報は、ジョブ識別子を含む。ジョブ削除モジュール３３６は、Ｓ８０３において取得したジョブ識別子に対応する識別情報が関連付られた印刷ジョブがプリントキュー２０４に存在するかどうかを確認する（Ｓ８０４）。ジョブ識別子に対応する識別情報が関連付られた印刷ジョブがない場合は、本処理を終了する。ジョブ識別子に対応する識別情報が関連付られた印刷ジョブがプリントキュー２０４に存在する場合、ジョブ削除モジュール３３６は、Ｓ８０５にて当該印刷ジョブをプリントキュー２０４から削除するようスプーラー２０３に指示する。
【００２０】
なお、上記ではジョブキャンセル手段１２８によって印刷処理のキャンセルが行われる例を示したが、印刷装置１２０の電源をＯＦＦすることによるキャンセルでもよい。印刷装置１２０が印刷処理中に電源ＯＦＦされた場合、処理中の印刷実行ジョブはキャンセルされるため、プリントキュー２０４からもキャンセルされた印刷実行ジョブに対応する印刷ジョブを削除する。その他、情報処理装置や携帯端末から印刷装置１２０をリモートにて操作することで、印刷実行ジョブのキャンセルが行われても良い。
【００２１】
以上説明した本実施形態によれば、スプーラーが発行するジョブＩＤに対応するジョブ識別子に基づく印刷コマンドを生成する。この処理により、印刷装置２１０でキャンセルされた印刷処理と、プリントキュー２０４に存在する印刷ジョブとを紐づけることができる。その結果、印刷装置２１０で印刷処理がキャンセルされた場合、プリントキュー２０４から当該印刷処理に関わる印刷ジョブを適切に削除することができる。
【００２２】
例えば、印刷ジョブ１に対応する印刷コマンドの送信処理が完了してから印刷装置１２０において印刷コマンドに対応する印刷処理が完了するまでの間に、印刷装置１２０において印刷処理がキャンセルされることも考えられる。スプーラー２０３は、印刷ジョブの送信処理が完了した時点でプリントキュー２０４から印刷ジョブ１を削除しているため、プリントキューには印刷ジョブ２のみが管理される。この状況において、上述したように印刷ジョブ１に対応する印刷コマンドの印刷処理がキャンセルされたことをステータス管理プログラム３３１が検知したとしても、印刷装置１２０から取得されたステータス情報には印刷ジョブ１に対応する識別子が含まれる。そのため、印刷ジョブ１に対応する識別子とプリントキューで管理されている印刷ジョブ２の識別情報は対応しないため、誤って印刷ジョブ２がプリントキューから削除されることにより、ユーザーの意図しない削除処理が行われる可能性を軽減できる。
【００２３】
また、例えば、印刷ジョブ１と印刷ジョブ２がスプーラー２０３にて管理されているケースを想定する。このケースにおいて、印刷ジョブ１に対応する印刷コマンドが印刷装置１２０に送信されて印刷装置１２０にてキャンセルされた場合に、本実施形態を実施しないと、印刷ジョブ１に対応する印刷コマンドが、キャンセル後も、無駄に印刷装置に送信されることになる。また、印刷ジョブ１に対応する印刷コマンドの送信処理が完了するまで印刷ジョブ２の処理が始まらない。一方、本実施形態は、このような点についても解決することが可能となる。
【００２４】
＜実施形態２＞
図９は、本実施形態におけるネットワーク環境を示す図である。第１の実施形態と異なる点は、ネットワーク上に複数のＰＣが接続されていること、およびステータス管理プログラム９３１に処理途中ジョブ検知モジュール９３７が備えられていることである。なお、本実施形態においても、図１で説明した情報処理装置１１０と印刷装置１２０を使用するものとする。また、実施形態１と同一の処理については、説明を割愛する。
【００２５】
第１の実施形態では、図８のＳ８０３にて取得したスプーラーが発行したジョブＩＤを利用してプリントキューから印刷ジョブを削除していた。本実施形態では、第１の実施形態には記載されていない処理を実行することで、ユーザーの意図にあった印刷ジョブの削除処理を実現する。
【００２６】
実施形態２の印刷装置が、印刷コマンドを処理中であっても別の印刷コマンドの一部を受信して当該印刷コマンドを予約状態とすることで、印刷順序の予約を可能とする機能をサポートしている場合がある。なお、この機能を、マルチセッションジョブキューイングと称す。
【００２７】
図１０は、マルチセッションジョブキューイングをサポートしている印刷装置９２０に対して、ＰＣ９１０およびＰＣ１０１０から印刷コマンドを発行した際の印刷装置１２０の状態、およびＰＣ９１０、ＰＣ１０１０のプリントキューの状態を示した図である。印刷装置９２０は、ＰＣ９１０から発行された印刷コマンドを受信して、印刷実行ジョブ９１１として管理している。なお、この印刷実行ジョブ９１１が印刷処理対象である。その後、ＰＣ１０１０からの印刷コマンドの一部を受信し、印刷実行ジョブ１０１１として印刷装置９２０のキュー９２９にて管理する。具体的には、印刷コマンドの一部であるＳｔａｒｔジョブコマンドが、印刷実行ジョブとして印刷装置のキューに格納される。なお、Ｓｔａｒｔジョブコマンドには、送信元の情報処理装置のコンピュータ名等が含まれる。ここで、印刷装置９２０の電源がＯＦＦされた場合、印刷装置９２０は自身のキュー９２９に格納されている印刷実行ジョブ１、および印刷実行ジョブ２のキャンセル処理を行う。このとき、図９における管理情報取得モジュール９３３にて取得可能なステータス情報は、処理中であった印刷実行ジョブ１がキャンセルされたことを示す情報、および印刷装置９２０が電源ＯＦＦされたことを示す情報を含む。なお、ステータス情報には、処理待ち状態の印刷実行ジョブ２がキャンセルされたことを示す情報は含まれない。管理情報取得モジュール９３３がステータス情報を取得することで、図９におけるＰＣ９１０のジョブキャンセル検知モジュール９３５は、印刷実行ジョブ１がキャンセルされたことを検知する。そして、実施形態１に示した処理により、印刷装置９２０にてキャンセルされた印刷実行ジョブ１に対応する印刷ジョブ１がプリントキュー９１２に存在する場合、ジョブ削除モジュール９３６はプリントキュー９２１にから印刷ジョブ１を削除する。しかし、ＰＣ１０１０においては、管理情報取得モジュール９３３にて取得したステータス情報に自身が発行した印刷コマンドに関わる情報が含まれていない。そのため、途中まで送信した印刷コマンドに対応する印刷ジョブをプリントキュー１０１２から削除することができない。
【００２８】
このようなマルチセッションジョブキューイングにより予約されている印刷実行ジョブに対応する印刷ジョブに対する処理を実行するため、本実施形態では、処理途中ジョブ検知モジュール９３７を用意する。そして、処理途中ジョブ検知モジュール９３７を使って、処理途中の印刷ジョブがプリントキューに存在する場合は、これを削除する。
【００２９】
図１１は、本実施形態において、ＰＣ１０１０のＣＰＵ１１２が実行するジョブ削除処理を示すフローチャートである。本処理が開始されると、管理情報取得モジュール９３３は、Ｓ１１０１で印刷装置９２０からステータス情報を取得する。さらにＳ１１０２にてジョブキャンセル検知モジュール９３５は、上記取得したステータス情報を解析し、ジョブのキャンセルが行われたかどうかを判定する。なお、ジョブキャンセル検知モジュール９３５は、ジョブキャンセル手段９２８によってジョブがキャンセルされたことをステータス情報から検知した場合、Ｓ１１０２にてＹｅｓと判定する。その他、ジョブキャンセル検知モジュール９３５は、印刷装置９２０の電源がＯＦＦになったことをステータス情報から検知した場合、Ｓ１１０２にてＹｅｓと判定する。
【００３０】
印刷処理がキャンセルされていない場合は、本処理を終了する。印刷処理がキャンセルされている場合は、Ｓ１１０３にて、ジョブ削除モジュール９３６は、ステータス情報からジョブ識別子を取得する。さらに、ジョブ削除モジュール９３６は、Ｓ１１０３で取得したジョブ識別子に対応する識別情報の印刷ジョブがプリントキュー９０５に存在するかどうかを確認する（Ｓ１１０４）。取得したジョブ識別子に対応する識別情報の印刷ジョブがプリントキュー９０５に存在する場合、ジョブ削除モジュール９３６は、Ｓ１１０６にて当該印刷ジョブをプリントキュー９０５から削除するようスプーラー９０４に指示する。取得したジョブ識別子に対応する識別情報の印刷ジョブがプリントキュー９０５にない場合、図１１の処理はＳ１１０５へと進む。処理途中ジョブ検知モジュール９３７は、マルチセッションジョブキューイングによって印刷コマンドの一部を印刷装置９２０へ送信済みとなっている印刷ジョブがプリントキュー９０５に存在するかどうかを確認する（Ｓ１１０５）。具体的に、処理途中ジョブ検知モジュール９３７は、プリントキュー９０５に存在する印刷ジョブの中に、「印刷中」を示すステータスの印刷ジョブが存在するか否かを判定する。印刷コマンドの一部を印刷装置９２０へ送信済みとなっている印刷ジョブが存在しない場合は、本処理を終了する。印刷コマンドの一部を印刷装置９２０へ送信済みとなっている印刷ジョブが特定された場合、ジョブ削除モジュール９３６は、Ｓ１１０６にて当該印刷ジョブをプリントキュー９０５から削除するようスプーラー９０４へ指示する。なお、上記では印刷コマンドの一部が送信済みとなっているかどうかの判定方法としてプリントキューの印刷ジョブのステータスを用いる例を示したが、本発明はこれに限定されるものではない。例えば、マルチセッションジョブキューイングが使用された印刷ジョブであることを示すフラグの有無によって判定しても良い。
【００３１】
以上、本実施形態によれば、マルチセッションジョブキューイングをサポートしている印刷装置の電源がＯＦＦされた場合でも、ジョブ発行元のそれぞれのＰＣにおけるプリントキューから適切に印刷ジョブを削除することができる。結果、プリントキューに削除すべき印刷ジョブが残ってしまうことにより次の印刷ジョブの印刷開始処理が遅延してしまうという問題を回避することが可能となる。また、一部の印刷コマンドが送信済みの印刷ジョブがプリントキューに残っている状況で、当該印刷ジョブに対応する印刷コマンドが印刷装置に送信されることにより印刷装置でエラーが発生する可能性を軽減できる。
【００３２】
＜その他の実施形態＞
その他の実施形態として、印刷ジョブを一意に識別するための識別子の設定処理や、印刷装置にてキャンセルされた印刷実行ジョブに対応する印刷ジョブをプリントキューから削除する処理は、使用する通信ポートによって実施の有無を切り替えてもよい。すなわち、ＵＳＢポートやＷＳＤポートが使用される場合、印刷装置での印刷処理が完了するまでプリントキューに印刷ジョブを残しておくことができる。このようなポートが使用されている場合は、上記処理を実施せず、Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰポートが使用されている場合のみ上記処理を実施することも可能である。つまり、ＵＳＢポートやＷＳＤポートが使用されている場合、情報処理装置は、印刷装置で印刷処理がキャンセルされたことを検知することに応じてプリントキューの先頭で管理されている印刷ジョブを削除すれば良い。一方、Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰポートが使用されている場合、情報処理装置が印刷装置への印刷コマンド１の送信を完了した時点でプリントキューから印刷コマンド１に対応する印刷ジョブ１が削除されてしまう。そのため、仮に上述した処理を実行しない場合、印刷コマンド１の送信が完了した時点で、プリントキューの先頭にて管理される印刷ジョブは、次の印刷ジョブ２となる。この状況で、印刷装置において印刷コマンド１に対応するジョブがキャンセルされたことを情報処理装置が検知して、プリントキューの先頭にて管理されている印刷ジョブ２を削除してしまうと、ユーザーの意図しない削除処理が実行されることになる。そのため、Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰポートが使用されている場合は、上述した処理を実行することでユーザーの意図した削除処理を実行できる。なお、このようにポートによって処理を切り替える場合、情報処理装置は、印刷に使用されるポートを判定するポート判定モジュールを備える。このポート判定モジュールにより、使用されているポートがＵＳＢポートまたはＷＳＤポートであると判定された場合、図８、図１１の処理は実行されない。一方、ポート判定モジュールにより、使用されているポートが所定のポートであると判定された場合、図８または図１１の処理が実行される。なお、所定のポート（例えば、Ｓｔａｎｄａｒｄ  ＴＣＰ／ＩＰポート）が使用されている場合、印刷装置への印刷コマンドの送信処理が完了した時点でプリントキューから印刷コマンドに対応する印刷ジョブが削除される。
【００３３】
さらに、ジョブ削除モジュール３３６（９３６）は、印刷ジョブをプリントキューから削除する前に、印刷装置にてキャンセルされた印刷処理に対応する印刷コマンドが自ＰＣにて発行したものかどうかを判定する。そして、自ＰＣにて発行した印刷コマンドに対応する印刷処理であったときのみ、ジョブ削除モジュール３３６（９３６）はプリントキューから印刷ジョブを削除するスプーラーに指示してもよい。
【００３４】
また、図３および図９において、ステータス管理プログラム３３１（９３１）をプリンタドライバ３２１（９２１）の構成物として図示しているが、プリンタドライバから独立した別モジュールとし、プリンタドライバと連携する構成としてもよい。
【００３５】
また、上述した実施形態では、ステータス情報には、処理待ち状態の印刷実行ジョブが印刷装置にてキャンセルされたことを示す情報は含まれないものとして説明した。しかし、印刷装置が、処理待ち状態の印刷実行ジョブがキャンセルされたことを示す情報を含むステータス情報を生成しても良い。このケースでは、管理情報取得モジュール９３３にて印刷装置から取得したステータス情報を解析して、印刷装置において処理待ち状態の印刷実行ジョブに対応する印刷ジョブをプリントキューから削除させても良い。
【００３６】
さらにまた、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【図１】
2018073196.tif 000003
【図２】
2018073196.tif 000004
【図３】
2018073196.tif 000005
【図４】
2018073196.tif 000006
【図５】
2018073196.tif 000007
【図６】
2018073196.tif 000008
【図７】
2018073196.tif 000009
【図８】
2018073196.tif 000010
【図９】
2018073196.tif 000011
【図１０】
2018073196.tif 000012
【図１１】
2018073196.tif 000013