図面 (/)

技術 情報処理装置、制御方法及びプログラム

出願人 キヤノン株式会社
発明者 守本弘明
出願日 2016年2月29日 (4年10ヶ月経過) 出願番号 2016-038346
公開日 2017年9月7日 (3年3ヶ月経過) 公開番号 2017-156899
状態 特許登録済
技術分野 ファクシミリ一般 タイプライター等へのデジタル出力
主要キーワード 制御コマ キャンセル判定 キャンセル状態 インタフェース関数 通知領域 処理分担 初回起動 ジョブ終了情報
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年9月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

ジョブの送信が完了するまでにかかる時間を短縮しつつ、ジョブ保持処理を実現する情報処理装置制御方法及びプログラムを提供することを目的とする。

解決手段

第2通知手段は、前記第1通知手段による通知により、前記送信手段による前記複数のデータの送信が完了したことを前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了していない場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行しないことを特徴とする情報処理装置を提供することによって課題を解決する。

概要

背景

ジョブを処理可能な通信装置プリンタ等)と、ジョブを送信可能な情報処理装置パーソナルコンピュータ(以下、PC)等)とで構成される通信ステムが知られている。このような通信システムにおいて、情報処理装置は、情報処理装置が備えるジョブキュー内に格納されているジョブの状態を、ジョブキューから当該ジョブが削除されるまで認識することが出来る。

特許文献1には、通信装置によってジョブの処理が終了するまでジョブキューにジョブを保持し続ける処理(以下、ジョブ保持処理)を実行することで、通信装置によってジョブの処理が終了するまでジョブの状態を認識できるようにする技術が開示されている。

概要

ジョブの送信が完了するまでにかかる時間を短縮しつつ、ジョブ保持処理を実現する情報処理装置、制御方法及びプログラムを提供することを目的とする。 第2通知手段は、前記第1通知手段による通知により、前記送信手段による前記複数のデータの送信が完了したことを前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了していない場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行しないことを特徴とする情報処理装置を提供することによって課題を解決する。

目的

本発明は上記要望を鑑みてなされたもので、ジョブの送信が完了するまでにかかる時間を短縮しつつ、ジョブ保持処理を実現することを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置であって、1つのジョブが分割されることで得られる複数のデータを通信装置に送信する送信手段と、前記送信手段が送信するデータのデータサイズを、前記送信手段がデータを送信する毎にスプーラに通知する第1通知手段と、前記送信手段により送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了している場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行し、前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了していない場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行しない第2通知手段と、を有することを特徴とする情報処理装置。

請求項2

前記取得手段が取得した前記情報に基づいて、前記ジョブの処理が前記通信装置によって終了したか否かを判定する終了判定手段をさらに有し、前記第2通知手段は、前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記終了判定手段によって前記ジョブの処理が前記通信装置によって終了したと判定された場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行し、前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記終了判定手段によって前記ジョブの処理が前記通信装置によって終了していないと判定された場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対して実行しないことを特徴とする請求項1に記載の情報処理装置。

請求項3

前記取得手段が取得した前記情報に基づいて、前記ジョブの処理がユーザによってキャンセルされたか否かを判定するキャンセル判定手段をさらに有し、前記第2通知手段は、前記キャンセル判定手段により、前記ジョブの処理がユーザによってキャンセルされたと判定された場合、前記ジョブをジョブキューから削除するための通知を前記スプーラに対し実行することを特徴とする請求項1又は請求項2に記載の情報処理装置。

請求項4

前記取得手段が取得した前記情報に基づいて、前記通信装置が処理しているジョブが前記送信手段により送信された前記複数のデータに対応するジョブか否かを判定するジョブ判定手段と、前記ジョブ判定手段により、前記通信装置が処理しているジョブが前記送信手段により送信された前記複数のデータに対応するジョブでないと判定された場合、前記通信装置が処理を終了したジョブに関する情報の一覧を前記通信装置から取得する一覧取得手段と、をさらに有し、前記第2通知手段は、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに関する情報が含まれる場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行し、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに関する情報が含まれない場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行しないことを特徴とする請求項1乃至請求項3のいずれか1項に記載の情報処理装置。

請求項5

前記送信手段により送信される前記複数のデータに対応するジョブに識別情報を付加する付加手段をさらに有し、前記ジョブ判定手段は、前記取得手段が取得した前記情報に、前記付加手段が付加した識別情報が含まれるか否かを判定することによって、前記通信装置が処理しているジョブが前記送信手段により送信された前記複数のデータに対応するジョブか否かを判定することを特徴とする請求項4に記載の情報処理装置。

請求項6

前記一覧取得手段は、前記通信装置が処理を終了したジョブに付加された識別情報の一覧を前記通信装置から取得し、前記第2通知手段は、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに付加された識別情報が含まれる場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行し、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに付加された識別情報が含まれない場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行しないことを特徴とする請求項5に記載の情報処理装置。

請求項7

前記取得手段が取得した前記情報に基づいて、前記送信手段により送信された前記複数のデータに対応するジョブの状態又は前記通信装置の状態を、前記情報処理装置が備える表示部に表示させる表示制御手段をさらに有することを特徴とする請求項1乃至請求項6のいずれか1項に記載の情報処理装置。

請求項8

前記取得手段が取得した前記情報に基づいて、前記通信装置にエラーが発生しているか否かを判定するエラー判定手段をさらに有し、前記表示制御手段は、前記エラー判定手段により前記通信装置にエラーが発生していると判定された場合、前記通信装置にエラーが発生している旨を通知するための画面を前記表示部に表示させることを特徴とする請求項7に記載の情報処理装置。

請求項9

前記表示制御手段は、前記送信手段により送信された前記複数のデータに対応するジョブの状態又は前記通信装置の状態を通知するための通知領域を、ポップアップにより前記表示部に表示させることを特徴とする請求項8に記載の情報処理装置。

請求項10

前記送信手段により送信された前記複数のデータに対応するジョブは、前記通信装置に印刷を実行させるための印刷ジョブ、又は前記通信装置にスキャンを実行させるためのスキャンジョブであることを特徴とする請求項1乃至請求項9のいずれか1項に記載の情報処理装置。

請求項11

前記情報処理装置にインストールされているプリンタドライバは、Version4ドライバであることを特徴とする請求項1乃至請求項10のいずれか1項に記載の情報処理装置。

請求項12

前記送信手段は、送信するデータが前記複数のデータのうち最後に送信するデータか否かを解析する処理を実行せず、前記複数のデータを通信装置に送信することを特徴とする請求項1乃至請求項11のいずれか1項に記載の情報処理装置。

請求項13

ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置であって、ジョブに識別情報を付加する付加手段と、前記付加手段により識別情報が付加されたジョブが分割されることで得られる複数のデータを通信装置に送信する送信手段と、前記送信手段が送信するデータのデータサイズを、前記送信手段がデータを送信する毎にスプーラに通知する第1通知手段と、前記送信手段により送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行する第2通知手段と、を有し、前記第2通知手段は、前記第1通知手段による通知により、前記送信手段による前記複数のデータの送信が完了したことを前記スプーラが特定した後で、かつ、前記取得手段が取得した前記情報に、前記ジョブに付加された識別情報が含まれているか否かに基づいて、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行するか否かを決定することを特徴とする情報処理装置。

請求項14

前記取得手段が取得した前記情報に、前記送信手段により送信された前記複数のデータに対応するジョブに付加された識別情報が含まれていない場合、前記通信装置が処理を終了したジョブに付加された識別情報の一覧を前記通信装置から取得する一覧取得手段と、をさらに有し、前記第2通知手段は、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに付加された識別情報が含まれる場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行し、前記一覧取得手段により取得された前記一覧に、前記送信手段により送信された前記複数のデータに対応するジョブに付加された識別情報が含まれない場合、当該ジョブをジョブキューから削除するための通知を前記スプーラに対し実行しないことを特徴とする請求項13に記載の情報処理装置。

請求項15

ジョブを格納するジョブキューを有する情報処理装置であって、ジョブを送信するための初期化処理を行う初期化処理手段と、前記初期化処理手段による初期化処理が終了した場合、前記ジョブが分割されることで得られる複数のデータを通信装置に送信する送信手段と、前記送信手段による前記複数のデータの送信が完了した場合、前記ジョブキューから前記ジョブを削除するための終了処理を行う終了処理手段と、前記送信手段により送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、を有し、前記終了処理手段は、前記ジョブの処理が前記通信装置によって終了している場合、前記終了処理を終了し、前記ジョブの処理が前記通信装置によって終了していない場合、前記終了処理をリトライし、前記終了処理手段による前記終了処理が終了した場合、前記ジョブが前記ジョブキューから削除されることを特徴とする情報処理装置。

請求項16

ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置の制御方法であって、1つのジョブが分割されることで得られる複数のデータを通信装置に送信する送信ステップと、前記送信されるデータのデータサイズを、データが送信される毎にスプーラに通知する第1通知ステップと、前記送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得ステップと、前記送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、前記複数のデータの送信が完了されたことを、前記送信されるデータのデータサイズの通知により、前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了している場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行し、前記複数のデータの送信が完了されたことを、前記送信されるデータのデータサイズの通知により、前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了していない場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行しない第2通知ステップを有することを特徴とする制御方法。

請求項17

ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置の制御方法であって、ジョブに識別情報を付加する付加ステップと、識別情報が付加されたジョブが分割されることで得られる複数のデータを通信装置に送信する送信ステップと、前記送信されるデータのデータサイズを、データを送信する毎にスプーラに通知する第1通知ステップと、前記送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得ステップと、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行する第2通知ステップと、を有し、前記複数のデータの送信が完了したことを、前記送信されるデータのデータサイズの通知により、前記スプーラが特定した後で、かつ、前記取得された前記情報に、前記ジョブに付加された識別情報が含まれているか否かに基づいて、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行するか否かが決定されることを特徴とする制御方法。

請求項18

ジョブを格納するジョブキューを有する情報処理装置の制御方法であって、ジョブを送信するための初期化処理を行う初期化処理ステップと、前記初期化処理が終了した場合、前記ジョブが分割されることで得られる複数のデータを通信装置に送信する送信ステップと、前記複数のデータの送信が完了した場合、前記ジョブキューから前記ジョブを削除するための終了処理を行う終了処理ステップと、前記送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得ステップと、を有し、前記ジョブの処理が前記通信装置によって終了している場合、前記終了処理が終了され、前記ジョブの処理が前記通信装置によって終了していない場合、前記終了処理がリトライされ、前記終了処理が終了した場合、前記ジョブが前記ジョブキューから削除されることを特徴とする制御方法。

請求項19

請求項1乃至請求項15のいずれか一項に記載の情報処理装置の各手段をコンピュータにより実現することを特徴とするプログラム

請求項20

プリンタドライバであることを特徴とする請求項19に記載のプログラム。

請求項21

Version4ドライバであることを特徴とする請求項20に記載のプログラム。

技術分野

0001

本発明は、情報処理装置制御方法及びプログラムに関する。

背景技術

0002

ジョブを処理可能な通信装置プリンタ等)と、ジョブを送信可能な情報処理装置(パーソナルコンピュータ(以下、PC)等)とで構成される通信ステムが知られている。このような通信システムにおいて、情報処理装置は、情報処理装置が備えるジョブキュー内に格納されているジョブの状態を、ジョブキューから当該ジョブが削除されるまで認識することが出来る。

0003

特許文献1には、通信装置によってジョブの処理が終了するまでジョブキューにジョブを保持し続ける処理(以下、ジョブ保持処理)を実行することで、通信装置によってジョブの処理が終了するまでジョブの状態を認識できるようにする技術が開示されている。

先行技術

0004

特開2007−11469号公報

発明が解決しようとする課題

0005

上述したように、特許文献1に記載の技術によって、ジョブ保持処理を実現し、通信装置によってジョブの処理が終了するまでジョブの状態を認識できるようにすることが可能である。一方で、ジョブ保持処理の実現において、ジョブの送信が完了するまでにかかる時間の更なる短縮化要望されている。本発明は上記要望を鑑みてなされたもので、ジョブの送信が完了するまでにかかる時間を短縮しつつ、ジョブ保持処理を実現することを目的とする。

課題を解決するための手段

0006

上述のような課題を解決するための本発明の情報処理装置は、
ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置であって、
1つのジョブが分割されることで得られる複数のデータを通信装置に送信する送信手段と、
前記送信手段が送信するデータのデータサイズを、前記送信手段がデータを送信する毎にスプーラに通知する第1通知手段と、
前記送信手段により送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、
前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了している場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行し、前記送信手段による前記複数のデータの送信が完了したことを前記第1通知手段による通知により前記スプーラが特定した後で、かつ、前記ジョブの処理が前記通信装置によって終了していない場合、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行しない第2通知手段と、を有することを特徴とする。

0007

また、本発明の情報処理装置は、
ジョブを格納するジョブキューを管理するスプーラを有する情報処理装置であって、
ジョブに識別情報を付加する付加手段と、
前記付加手段により識別情報が付加されたジョブが分割されることで得られる複数のデータを送信する送信手段と、
前記送信手段が送信するデータのデータサイズを、前記送信手段がデータを送信する毎にスプーラに通知する第1通知手段と、
前記送信手段により送信された前記複数のデータに対応するジョブが前記ジョブキューに格納されている場合、前記ジョブに関する情報を前記通信装置から取得する取得手段と、
前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行する第2通知手段と、を有し、
前記第2通知手段は、前記第1通知手段による通知により、前記送信手段による前記複数のデータの送信が完了したことを前記スプーラが特定した後で、かつ、前記取得手段が取得した前記情報に、前記ジョブに付加された識別情報が含まれているか否かに基づいて、前記ジョブを前記ジョブキューから削除するための通知を前記スプーラに対し実行するか否かを決定することを特徴とする。

発明の効果

0008

本発明によれば、ジョブの送信が完了するまでにかかる時間を短縮しつつ、ジョブ保持処理を実現することが可能になる。

図面の簡単な説明

0009

通信装置と情報処理装置によって構成される印刷システムを示すブロック図
情報処理装置が備えるソフトウェアの構成を示す図
第1実施形態における印刷開始処理を示すフローチャート
第1実施形態における印刷ジョブ送信処理を示すフローチャート
第1実施形態における印刷終了処理を示すフローチャート
印刷ジョブ生成処理を示すフローチャート
印刷データに付加される識別情報の一例
コマンド生成フィルタにより生成される印刷ジョブを示す概略図
第2実施形態における印刷ジョブ送信処理を示すフローチャート
エラー報知処理を示すフローチャート
第2実施形態における印刷終了処理を示すフローチャート
処理が終了した印刷ジョブの一覧を示す情報の一例

実施例

0010

以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。

0011

<実施形態1>
本発明を適用した通信装置について説明する。通信装置は、情報処理装置からジョブを受信可能な装置である。本実施形態においては、通信装置としてインクジェット方式複合機MFP)を例示している。MFPとは、プリントスキャナコピーファックス等の複数の機能を有する装置である。なお、通信装置は、例えば、複写機ファクシミリ装置、スキャナ、パーソナルコンピュータ(PC)、スマートホンタブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ音楽再生デバイス等であっても良い。また、通信装置がプリンタである場合は、利用する印刷方式はインクジェット方式に限定されず、例えば電子写真方式であっても良い。さらに、通信装置は、MFPではなく、単機能の装置(SFP)であっても良い。情報処理装置は、通信装置にジョブを送信可能な装置である。本実施形態においては、情報処理装置として、携帯端末を例示している。なお、情報処理装置は、例えば、PCやスマートホン、タブレット端末、PDA(Personal Digital Assistant)、カメラ等であっても良い。また、以下の説明においては、情報処理装置及び通信装置間で扱われるジョブとして、通信装置が印刷を実行するための印刷ジョブを例示しているが、この形態に限定されず、例えば、通信装置がスキャンを実行するためのスキャンジョブ等であっても良い。

0012

図1は情報処理装置110と情報処理装置110に接続された通信装置120により構成される通信システムの全体構成を示すブロック図の一例である。情報処理装置110は入力I/F111、CPU112、ROM113、出力I/F114、外部記憶装置115、RAM116、入力装置117、出力装置118(表示部)、入出力I/F119を有する。CPU112はROM113等に保存されている制御命令に従い情報処理装置110を制御する。ROM113は初期化プログラムを記憶し、外部記憶装置115は、CPU112が実行する制御プログラムや組込オペレーティングシステム(以下、OS)、プリンタドライバやその他各種のデータを記憶している。本実施形態では、外部記憶装置115に格納されている制御プログラムは、外部記憶装置115に格納されている組込OSの管理下で、スケジューリングタスクスイッチ等のソフトウェア制御を行う。RAM116は外部記憶装置115に保存される各種プログラムがワークメモリーとして使用する。入力装置117はデータ入力動作指示に使用され入力I/F111に接続されている。出力装置118はデータ表示や状態の通知に使用され出力I/F114に接続されている。

0013

通信装置120はRAM121、ROM122、プリントエンジン123、CPU124、入出力I/F125から構成される。情報処理装置110と通信装置120はUSB(商標ケーブル130により接続されている。RAM121はCPU124のワークメモリーとして使用され、受信したデータの一時保存用バッファとしても利用される。ROM122は制御命令を保存している。プリントエンジン123はRAM121に保存されたデータに基づき印刷を行う。CPU124はROM122等に保存されている制御命令に従い通信装置120を制御する。なお、本実施形態においては情報処理装置110および通信装置120の処理分担を前記のように示したが、処理の分担形態はこれに依らない。

0014

情報処理装置110が備えるソフトウェアの構成について、図2のブロック図を参照して説明する。図2に示す構成のうち、構成202、203、205、208、210がOSのモジュール、構成207、209がプリンタドライバのモジュールとしているが、それぞれの構成は、OSとプリンタドライバのうちいずれのモジュールであっても良い。なお、本実施形態では、情報処理装置110が備えるプリンタドライバは、Microsoft社のWindows(登録商標)で採用される、Version4ドライバ(以下、V4ドライバ)であるものとする。それぞれの構成が実行する処理は、実際には、CPU112が、それぞれの構成に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。アプリケーション201は、外部記憶装置115に保存されており、印刷する有償コンテンツ等の画像情報文字情報を含む描画情報、用紙サイズやレイアウト等の印刷設定情報等を含む印刷データを作成する。アプリケーション201が作成した印刷データは、OSの印刷サポート機能202を介しUIモジュール203から返却される印刷設定情報が付加され、スプールデータ206としてスプーラ204のジョブキュー205に一時的に蓄積される。スプーラ204は、ジョブ管理機能を有し、渡されたスプールデータ206を、スプールデータ206に対応する印刷ジョブの送信が完了したと認識するまで保持し管理する。具体的には、スプーラ204は、例えば、プリンタ毎に、印刷ジョブのサイズ、ジョブ名、送信するジョブ順番等を管理し、管理している情報をステータス表示アプリケーションに伝達することで、当該情報を出力装置118等に表示する。また、紙ジャムなどのエラー発生時に備え、印刷データを含む印刷ジョブそのものをジョブ終了まで保持するようにしても良い。なお、ジョブキュー205に保存されているスプールデータ206の情報は、例えば、UIモジュール203、アプリケーション201などを介して所定のインタフェース関数を用いて参照することできる。コマンド生成フィルタ207は、蓄積されたスプールデータ206の入力を受け付け、通信装置120が解釈可能な印刷コマンドに変換することで、印刷ジョブを生成する。なお、コマンド生成フィルタ207への印刷データの入力処理や、コマンド生成フィルタ207による印刷データの変換処理は、不図示のOSのコマンド生成フィルタ制御機能により制御される。その後、コマンド生成フィルタ207は、生成した印刷ジョブを、情報処理装置110のRAM116、及び外部記憶装置115に順次出力する。また、RAM116及び外部記憶装置115へ出力された印刷ジョブは、スプーラ204により読み出され、USBポートモニタ208を経由し通信装置120へ送信される。またプリンタドライバのベンダーは、ポートモニタ拡張ファイル209に所望の印刷ジョブ制御処理を記載することで、USBポートモニタ208にベンダー固有の処理を追加することが可能である。例えば、ジョブ毎に用意される専用の情報格納領域である、JobPropertyBag210が管理する記憶領域を参照する処理を、ポートモニタ拡張ファイル209に記載するとする。このようにすることで、USBポートモニタ208は、任意の情報をJobPropertyBag210が管理する記憶領域へ格納することが可能となる。なお、以下の説明におけるUSBポートモニタ208とスプーラ204間のデータの受け渡し及び通知は、コマンド生成フィルタ207を介して行われても介さずに行われても良い。

0015

続いて、図3から図5を用いて、本実施形態において情報処理装置110がUSBポートモニタ208によって実行する印刷制御処理について説明する。なお、印刷制御処理は、印刷開始処理、印刷ジョブ送信処理、印刷終了処理の3つの処理によって構成されている。

0016

図3は、本実施形態において情報処理装置110がUSBポートモニタ208によって実行する印刷開始処理のフローを示す。なお、印刷開始処理は、CPU112が、ROM113や外部記憶装置115等に記憶されている制御プログラムをRAM116にロードし、その制御プログラムを実行することで実現される。ここでは、CPU112は、ポートモニタ拡張ファイル209に対応するプログラムに従って、USBポートモニタ208に対応するプログラムを実行することで印刷開始処理を実現する。印刷開始処理は、ユーザが、アプリケーション201を用いて印刷データを作成し、当該印刷データに基づく画像の印刷を入力装置117等により指示した場合に開始される。

0017

まず、S301にて、USBポートモニタ208は、スプーラ204からの指示により、ポートモニタ拡張ファイル209に対応するプログラムの記載に従ってStartPrintJob関数を呼び出し、印刷開始処理を開始する。その後、USBポートモニタ208は、S302にて、JobPropertyBag210が管理する記憶領域を初期化し、以降の印刷制御処理を行うために必要な記憶領域の確保、及び印刷制御処理中に参照する各種パラメータ初期化処理を行う。その後USBポートモニタ208は、S303にて印刷開始処理を終了する。その後、USBポートモニタ208は、以下に示す印刷ジョブ送信処理を開始する。

0018

図4は、本実施形態において情報処理装置110がUSBポートモニタ208によって実行する印刷ジョブ送信処理のフローを示す。なお、印刷ジョブ送信処理は、CPU112が、ROM113や外部記憶装置115等に記憶されている制御プログラムをRAM116にロードし、その制御プログラムを実行することで実現される。ここでは、CPU112は、ポートモニタ拡張ファイル209に対応するプログラムに従って、USBポートモニタ208に対応するプログラムを実行することで印刷ジョブ送信処理を実現する。

0019

まず、USBポートモニタ208は、スプーラ204からの指示により、ポートモニタ拡張ファイル209に対応するプログラムの記載に従ってwritePrintData関数を呼び出し、印刷ジョブ送信処理を開始する(S401)。なお、スプーラ204は、コマンド生成フィルタ207により出力された印刷ジョブを、所定のサイズに分割する。以後、分割されたそれぞれの印刷ジョブを分割ジョブという。そして、分割ジョブのうち未入力の分割ジョブをwritePrintData関数の引数の1つとして入力する。
次に、USBポートモニタ208は、S402にてエラー報知処理を行う。

0020

ここで、図10を用いてS402におけるエラー報知処理の詳細について説明する。USBポートモニタ208は、S1001にてエラー報知処理を開始する。続いて、USBポートモニタ208は、S1002に進み通信装置120から情報を読み出して取得する。なお、このとき通信装置120から取得する情報は、例えば、通信装置120のステータスを示す情報(ステータス情報)、通信装置120の能力情報等である。その後、USBポートモニタ208は、S1002にて取得した情報の種別解析処理を行う。

0021

次に、USBポートモニタ208は、解析結果を参照して、S1002にて取得した情報がステータス情報か否かを判定する(S1003)。USBポートモニタ208は、S1002にて取得した情報がステータス情報でないと判定した場合は、S1007に進みエラー報知処理を終了する。一方、USBポートモニタ208は、S1002にて取得した情報がステータス情報であると判定した場合は、S1004に進む。

0022

S1004では、USBポートモニタ208は、取得したステータス情報を参照して、通信装置120のステータスを解析する処理(ステータス解析処理)を行う。なお、ステータス情報には、通信装置120にエラーが発生しているか否か等の情報が格納される。

0023

そして、USBポートモニタ208は、S1004における解析の結果から通信装置120に印刷処理を継続できないエラーが発生しているか否かを判定する(S1005)。USBポートモニタ208は、エラーが発生していないと判定した場合は、S1007に進みエラー報知処理を終了する。一方、USBポートモニタ208は、エラーが発生していると判定した場合は、スプーラ204に対し通信装置120にエラーが発生していることを通知する(S1006)。これによりスプーラ204は、OSに標準搭載されているエラー通知機能を用いて、通信装置120にエラーが発生していることをユーザに通知する。具体的には、スプーラ204は、出力装置118に、通信装置120にエラーが発生していることを通知する画面を表示させる。このとき、OSが、トースト機能に対応している場合は、スプーラ204は、出力装置118にトースト(通知領域)をポップアップ表示させることによって通信装置120にエラーが発生していることを通知する。一方、OSがトースト機能に対応していない場合は、スプーラ204は、ジョブキューの状態をユーザに表示させる画面やウィンドウを介して、通信装置120にエラーが発生していることを通知する。なお、トースト機能とは、Microsoft社のWindows(登録商標)に導入されている機能であり、OS標準のユーザへの情報通知機能である。なお、トーストではなく、例えばバルーン機能を用いて通知を行っても良い。

0024

USBポートモニタ208は、エラー報知処理を終了すると、S403にてスプーラ204より入力された分割ジョブを受信する。次に、USBポートモニタ208はスプーラ204より受信した分割ジョブを通信装置120へ送信する(S404)。その後、USBポートモニタ208はS404にて送信に成功した分割ジョブのデータサイズをスプーラ204へ通知する(S405)。これにより、スプーラ204は、印刷ジョブのうちどれだけのデータが送信されたかを判断することが可能となる。最後にUSBポートモニタ208はS406にて、印刷ジョブ送信処理を終了する。なお、USBポートモニタ208は、スプーラ204からの指示により、全ての分割ジョブを送信するまで、印刷ジョブ送信処理を繰り返す。すなわち、USBポートモニタ208は、分割ジョブ数と同じ回数、印刷ジョブ送信処理を繰り返す。なお、1つの分割ジョブを一度の印刷ジョブ送信処理で送信しきれない場合は、送信しきれないデータを次の印刷ジョブ送信処理で送信するため、分割ジョブ数以上の数、印刷ジョブ送信処理が繰り返えされる場合もある。また、全ての分割ジョブ(1つの印刷ジョブ)の送信が完了したか否かは、スプーラ204が管理している。スプーラ204は、USBポートモニタ208がこれまでに送信に成功した分割ジョブのデータサイズが、印刷ジョブのデータサイズに相当するか否かを、S405において通知される情報により判定することで、印刷ジョブの送信が完了したか否かを特定する。そして、USBポートモニタ208が全ての分割ジョブの送信を完了し(1つの印刷ジョブの送信が完了し)、スプーラ204がそれを特定した場合には、USBポートモニタ208は、スプーラ204から通知を受けて、以下の印刷終了処理を実行する。

0025

図5は、本実施系におけるUSBポートモニタ208が実行する印刷終了処理のフローを示す。なお、印刷終了処理は、CPU112が、ROM113や外部記憶装置115等に記憶されている制御プログラムをRAM116にロードし、その制御プログラムを実行することで実現される。ここでは、CPU112は、ポートモニタ拡張ファイル209に対応するプログラムに従って、USBポートモニタ208に対応するプログラムを実行することで印刷終了処理を実現する。

0026

図4に示す処理を繰り返して、印刷ジョブの送信が完了すると、USBポートモニタ208は、ポートモニタ拡張ファイル209に対応するプログラムに記載のendPrintJob関数を呼び出して、印刷終了処理を開始する(S501)。

0027

次に、USBポートモニタ208は、S502において、JobPropertyBag210が管理する記憶領域の、初回起動時刻情報を参照する。そして、USBポートモニタ208は、S503において、処理対象の印刷ジョブにおける印刷終了処理の実行において、今回の印刷終了処理の実行が初回であるか否かを判定する。具体的には、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に時刻情報が記録されているか否かを判定し、記録されていない場合に初回であると判定し、記録されている場合に初回でないと判定する。USBポートモニタ208は、初回であると判定した場合は、S504にて、現在の時刻情報を取得し、取得した時刻情報をJobPropertyBag210が管理する記憶領域に格納する。一方、USBポートモニタ208は、初回でないと判定した場合はS505に進む。

0028

次にS505において、USBポートモニタ208は、スプーラ204から印刷終了処理の対象となっている印刷ジョブの状態情報を取得する。本実施形態では、スプーラ204は、USBポートモニタ208から印刷ジョブの状態情報の取得要求があると、当該要求に対応する印刷ジョブの状態情報を通知するものとする。なお、印刷ジョブの状態情報は、例えば、印刷ジョブが処理中であることを示す情報、印刷ジョブがキャンセルされた状態(キャンセル状態)であることを示す情報、印刷ジョブの処理が停止された状態であることを示す情報である
その後、S506にて、USBポートモニタ208は、S505で取得した印刷ジョブ状態情報から印刷ジョブがキャンセル状態であることを検知できたか否かを判定する。USBポートモニタ208は、S506において印刷ジョブがキャンセル状態であることを検知できたと判定した場合は、S522に進む。

0029

なお、ユーザやOSの指示により印刷ジョブがキャンセルされた(印刷ジョブがキャンセル状態となった)場合は、スプーラ204は、ジョブキュー205に保持されている次の印刷ジョブの処理を速やかに開始することが好ましい。そこで、S522では、USBポートモニタ208は、スプーラ204に対し印刷終了処理が完了したことを通知し、S524にて、印刷終了処理を終了する。なお、スプーラ204は、印刷終了処理が完了したことをUSBポートモニタ208から通知された場合、ジョブキュー205に保持されている、印刷終了処理が完了した印刷ジョブを削除する。これにより、スプーラ204は、キャンセルされた印刷ジョブをジョブキュー205から削除し、次の印刷ジョブの処理を開始することができる。

0030

USBポートモニタ208は、S506において印刷ジョブがキャンセル状態であることを検知できなかったと判定した場合は、S507に進み通信装置120から情報を読み出して取得する。なお、このとき通信装置120から取得する情報は、例えば、印刷ジョブの処理が完了したことを示す情報(ジョブ完了情報)、や通信装置120のステータスを示す情報(ステータス情報)、通信装置120の能力情報等である。また、本実施形態においては、印刷ジョブの処理の完了後であればジョブ完了情報が、印刷ジョブの処理中であればステータス情報が通信装置120から取得される。なお、例えば通信装置120との通信経路において通信障害が生じていたり、通信装置120がオフラインになっている場合は、いずれの情報も取得されない。

0031

その後、USBポートモニタ208は、S508において通信装置120からの情報を取得したか否かを判定し、取得したと判定した場合はS509にて、通信装置120から取得した情報の種別解析処理を行う。

0032

USBポートモニタ208は、S509にて、通信装置120から取得した情報がジョブ完了情報であると解析した場合は、S522に進み、印刷終了処理を終了する。

0033

USBポートモニタ208は、S509にて、通信装置120から取得した情報が、通信装置120のステータス情報及びジョブ完了情報のいずれでもないことを解析した場合は、S523に進む。S523では、USBポートモニタ208は、スプーラ204に対し印刷終了処理を再度実行(リトライ)することを通知する。スプーラ204は、リトライが通知された場合、USBポートモニタ208に、印刷終了処理を再度実行させる。またスプーラ204はリトライを通知された場合は、印刷終了処理の対象の印刷ジョブを削除せずにジョブキュー内に保持しておく。そして、USBポートモニタ208は、印刷終了処理を再度実行する場合は、再度S501からの処理を行う。

0034

USBポートモニタ208は、S509における解析によって、通信装置120から取得した情報が通信装置120のステータス情報であると判定した場合は、S510に進む。S510では、USBポートモニタ208は、取得したステータス情報を参照して、通信装置120のステータスを解析する処理(ステータス解析処理)を行う。なお、ステータス情報には、通信装置120に対する本体操作(例えば印刷中止ボタンの押下)により、印刷処理が中止されたか否かや、通信装置120にエラーが発生しているか否か、印刷ジョブを処理中か否か等の情報が格納される。以下、印刷処理が中止されたか否か、及び通信装置120にエラーが発生しているか否かの情報を印刷中止情報という。なお、ステータス情報や印刷中止情報として他の情報が含まれても良く、以下の印刷中止判定において、当該他の情報に基づく他の判定が行われても良い。

0035

そして、S511では、USBポートモニタ208は、S510のステータス解析の結果から、印刷処理が中止(キャンセル)されたか否かを判定する。なお、印刷処理の中止は、通信装置120に対してユーザによる操作(例えば印刷中止ボタンの押下)が行われたこと等により生じる。USBポートモニタ208は、印刷処理が中止されたと判定した場合は、S522に進み、印刷終了処理を終了させる。これは前述した通り、ジョブキューに保持されている次の印刷ジョブの印刷処理を速やかに開始するためである。

0036

USBポートモニタ208は、S511にて印刷処理が中止されていないと判定した場合は、S512に進み、通信装置120に、印刷処理を継続できないエラーが発生しているか否かを判定する。通信装置120にエラーが発生している場合は、USBポートモニタ208は、S513にて、スプーラ204に対し通信装置120にエラーが発生していることを通知する。これによりスプーラ204は、OSに標準搭載されているエラー通知機能を用いて、通信装置120にエラーが発生していることをユーザに通知する。具体的には、スプーラ204は、出力装置118に、通信装置120にエラーが発生していることを通知する画面を表示させる。このとき、OSが、トースト(情報通知用のウィンドウ)機能に対応している場合は、スプーラ204は、出力装置118にトーストをポップアップ表示させることによって通信装置120にエラーが発生していることを通知する。一方、OSがトースト機能に対応していない場合は、スプーラ204は、ジョブキューの状態をユーザに表示させる画面やウィンドウを介して、通信装置120にエラーが発生していることを通知する。

0037

USBポートモニタ208は、S512にて通信装置120にエラーが発生していないと判定した場合、又はS513の処理の後に、S514にて現在時刻の情報を取得する。

0038

USBポートモニタ208は、S515にて、S514で取得した現在時刻とS504でJobPropertyBag210に保存した印刷終了処理の初回開始時刻とを比較し、所定の時間以上の差があるか否か(タイムアウトしたか否か)を判定する。タイムアウトしている場合、USBポートモニタ208は、S522に進み印刷終了処理を終了させる。これにより、取得されたステータス情報に印刷中止情報が含まれず、且つジョブ終了情報が取得されない状態が、予期しない理由で長時間続いた場合でも、ジョブキュー205内の次のジョブを開始することが可能になる。一方、タイムアウトしていない場合、USBポートモニタ208は、S524に進み一定時間処理を停止させた後に、S523に進み印刷終了処理のリトライをスプーラ204に通知する。なお、スプーラ204は、印刷終了処理のリトライ通知を受信した場合、即座にUSBポートモニタ208に印刷終了処理の実行を指示してしまう。そこで、S524にて一定時間USBポートモニタ208の処理を停止することで、通信装置120に対する極小間隔でのアクセス(S507)の繰り返しによる過剰な負荷発生を防止することができる。

0039

続いて、S508にてUSBポートモニタ208が通信装置120からの情報の取得に失敗した場合は、S516に進み、ステータス情報を要求するためのコマンド(リクエストコマンド)を通信装置120に対し送信する。これは、S507における情報の読み出しが失敗した原因が、通信装置120が通信不能状態に陥っていることであるか否かを検知するためである。そのため、ここでは、通信装置120に対して情報を送信可能か否かを検知できれば良いため、送信する情報は、ステータス情報のリクエストコマンドに限定されない。

0040

その後、USBポートモニタ208は、S517にて、S516におけるリクエストコマンド送信処理が成功したか否かを判定する。具体的には、USBポートモニタ208は、送信に成功したデータサイズの情報を取得できたか否かを判定する。USBポートモニタ208は、取得できたと判定した場合、リクエストコマンド送信処理が成功したと判定し、取得できなかったと判定した場合、リクエストコマンド送信処理が失敗したと判定する。なお、リクエストコマンド送信処理が成功した場合、USBポートモニタ208は、次にS507の処理を行う際に、通信装置120からステータス情報を読み出して取得することができるようになる。

0041

USBポートモニタ208は、リクエストコマンドの送信に失敗したと判定した場合は、S519に進みリクエストコマンドの送信に失敗した合計回数の情報を更新する。なお、リクエストコマンドの送信に失敗した合計回数の情報は、JobPropertyBag210に保存されている。その後、USBポートモニタ208は、S520にて、リクエストコマンドの送信に失敗した合計回数が規定の回数を超えているか否かを判定する。USBポートモニタ208は、リクエストコマンドの送信に失敗した合計回数が規定の回数を超えていないと判定した場合は、S523に進み、endPrintJob関数のリトライをスプーラ204に通知する。一方、USBポートモニタ208は、リクエストコマンドの送信に失敗した合計回数が規定の回数を超えていると判定した場合は、S521に進み、通信装置120が通信不能状態に陥っていることをスプーラ204に対し通知する。通知を受けたスプーラ204は、OSに標準搭載されているエラー通知機能を用いて、ユーザに通信装置120が通信不能状態に陥っていることを通知する。具体的には、スプーラ204は、出力装置118に、通信装置120が通信不能状態に陥っていることを通知する画面を表示させる。このとき、OSが、トースト機能に対応している場合は、スプーラ204は、出力装置118にトーストをポップアップ表示させることによって通信装置120にエラーが発生していることを通知する。一方、OSがトースト機能に対応していない場合は、スプーラ204は、ジョブキューの状態をユーザに表示させる画面やウィンドウを介して、通信装置120にエラーが発生していることを通知する。

0042

その後、USBポートモニタ208は、S522に進み、印刷終了処理を終了させる。

0043

USBポートモニタ208は、リクエストコマンドの送信に成功したとS517で判定した場合は、S518にて、リクエストコマンドの送信に失敗した合計回数を0回に更新する。その後、USBポートモニタ208は、S523に進み印刷終了処理のリトライをスプーラ204に通知する。以上の処理により、USBポートモニタ208は、印刷終了処理を実行している間に、通信装置120がオフライン状態(通信不能状態)に遷移してしまった場合でも、適切にジョブの処理を完了させることが可能となる。このため、通信装置120が再度オンライン状態(通信可能状態)に復帰した場合は、ジョブキュー内の次の印刷ジョブの処理を速やかに開始することが可能である。

0044

上述のように、本実施形態では、印刷終了処理においてジョブ完了情報を取得できるまで、スプーラ204は、ジョブキュー205から印刷ジョブを削除しない。また、USBポートモニタ208は、印刷終了処理においてジョブ完了情報を取得できるまで、当該印刷ジョブに関する情報を通信装置120から取得し続ける。そのため、本実施形態のように、通信装置120が印刷処理を完了するタイミングとジョブキュー205から印刷ジョブが削除されるタイミングを同期させることで、スプーラ204は、処理が完了するまで印刷ジョブの状態を把握することができる。

0045

また、従来の形態では、通信装置120が印刷処理を完了するまで印刷ジョブ送信処理を繰り返すことでジョブ保持処理を実現していた。印刷ジョブ送信処理を繰り返すためには、送信する分割ジョブが最後の分割ジョブである場合に、送信に成功した分割ジョブのデータサイズとして正確でない情報をスプーラ204に対して送信する必要がある。そのため、従来の形態では、正確な送信データサイズを送信しないタイミングを判定するために、送信する分割ジョブが最後の分割ジョブであるか否かを解析(送信データ解析処理を実行)していた。一方、本実施形態では、通信装置120が印刷処理を完了するまで、印刷ジョブ送信処理を繰り返すのではなく、印刷終了処理(すなわち、印刷ジョブ送信処理後の処理)を繰り返すことでジョブ保持処理を実現する。印刷終了処理を繰り返すためには、送信する分割ジョブが最後の分割ジョブである場合にスプーラ204に正確でない送信データサイズを送信するという処理は必要ない。そのため、本実施形態では、送信データ解析処理を行わずにジョブ保持処理を実現でき、ジョブ保持処理にかかる負担を軽減することができる。引いては、印刷ジョブの送信が完了するのにかかる時間を短縮し、印刷ジョブの送信にかかるスループットの向上を図ることができる。

0046

なお、V4ドライバには、OSが備えるトースト機能を利用できる機能が備わっている。トースト機能とは、例えば通信装置120の状態やジョブの処理状態を、ユーザに効果的に通知できる機能であるため、トースト機能を有効に活用するためには、ジョブ保持処理によってジョブの状態を監視できるようにすることが好ましい。しかしながら、V4ドライバのようなランゲージモニタを構成要素として含まないプリンタドライバには、プログラム言語の違い等により、Version3ドライバのようなランゲージモニタを構成要素として含むプリンタドライバよりも処理速度が遅い。なお、Version3ドライバとは、Microsoft社のWindows(登録商標)で採用されるドライバであり、V4ドライバより前のバージョンのドライバである。また、従来のジョブ保持処理で行われていた送信データ解析処理には、多くのリソースが必要とされるため、V4ドライバが、従来のようにジョブ保持処理を実行する場合、送信データ解析処理に非常に多くの時間がかかってしまう。その結果、例えば印刷速度が低下してしまう等の課題が生じる。本実施形態では、印刷データの解析処理を実行せずにジョブ保持処理を実現できるため、V4ドライバのような処理速度が遅いドライバを用いる形態においても、印刷速度の低下を抑制しつつジョブ保持処理を実現できる。すなわち、本実施形態は、V4ドライバのような処理速度が遅いドライバを用いる形態において特に有効である。

0047

<実施形態2>
実施形態1では、通信装置120からジョブの終了情報を取得するまで印刷終了処理を繰り返すことで、ジョブ保持処理を実現する形態について説明した。しかしながら、通信装置120や情報処理装置110にインストールされるOSの種類によっては、通信装置120からジョブの終了情報を取得できない場合がある。そこで、本実施形態では、ジョブの終了情報を取得せずにジョブ保持処理を実現する形態について説明する。本実施形態では、情報処理装置110は印刷ジョブ毎一意の識別情報を付加して通信装置120に送信する。また、通信装置120は処理中の印刷ジョブに付された識別情報や処理が完了した印刷ジョブに付された識別情報の一覧を、リクエストに応じてホストに返却する。情報処理装置110は、実施形態1と同様に処理の完了を検知するまで処理対象のジョブを保持し続けるが、本実施形態では、通信装置120から返却された識別情報に基づいて処理の完了を検知する。本実施形態では、このようにしてジョブ保持処理を実現することにより、課題を解決する。なお、以後、本実施形態において特に言及が無い点は、実施形態1と同等の構成であるものとする。

0048

図6は、本実施形態におけるコマンド生成フィルタ207が実行する印刷ジョブ生成処理のフローを示す。なお、印刷開始処理は、CPU112が、ROM113や外部記憶装置115等に記憶されている制御プログラムをRAM116にロードし、その制御プログラムを実行することで実現される。ここでは、CPU112は、コマンド生成フィルタ207に対応するプログラムを実行することで印刷ジョブ生成処理を実現する。

0049

始めにコマンド生成フィルタ207は、OSが備えるコマンド生成フィルタ制御機能により起動され処理を開始する(S601)。次に、コマンド生成フィルタ207は、アプリケーション201が作成した印刷データをOSのコマンド生成フィルタ制御機能から受信する(S602)。次に、コマンド生成フィルタ207は、受信した印刷データに対し、該印刷データを一意に識別するための識別情報を付加する(S603)。図7は印刷データに付加される識別情報の例を示す。図7に示す識別情報は数値ハイフネーションおよびアルファベットにより表現されているが、識別情報の構成はこの例に限定されるものではない。次に、コマンド生成フィルタ207は、受信した印刷データに付加された印刷設定情報に従って、印刷データに対し変換を施し、通信装置120が解釈可能な印刷コマンドに変換することで、識別情報を含む印刷ジョブを生成する(S604)。なお、コマンド生成フィルタ207はS604の処理に先立ち、受信した印刷データに付加された印刷設定情報に従って、印刷データのページ順序の変更や、複数ページを1ページとして再構成するページ構成処理を追加してもよい。また、コマンド生成フィルタ207は、印刷データに対し変換を施し、印刷ジョブを生成してから識別情報を付加しても良い。

0050

図8はコマンド生成フィルタ207により生成される印刷ジョブを示す概略図である。コマンド生成フィルタ207により生成される印刷ジョブは、識別情報格納部801と制御コマンド格納部802から成る。識別情報格納部には、S603にて付加される識別情報が格納される。印刷コマンド格納部には、コマンド生成フィルタ207が受信した印刷データに対し所定の変換を施すことで得られる、当該印刷データに基づく画像を通信装置120に印刷させるための制御を実行するコマンドが格納される。すなわち、通信装置120は、制御コマンド格納部に格納されるコマンドに基づいて動作することで、画像を印刷することができる。

0051

続いて、コマンド生成フィルタ207は、識別情報を含む印刷ジョブを外部記憶装置115やRAM116等の記憶領域に一旦出力し(S605)、S606にて処理を終了する。その後、コマンド生成フィルタ207により出力された印刷ジョブは、スプーラ204の印刷ジョブ送信処理により通信装置120へ送信される。

0052

図9は本実施形態においてUSBポートモニタ208が実行する印刷ジョブ送信処理のフローを示す。

0053

まず、USBポートモニタ208は、スプーラ204からの指示により、ポートモニタ拡張ファイル209に対応するプログラムの記載に従ってwritePrintData関数を呼び出し、印刷ジョブ送信処理を開始する(S901)。なお、スプーラ204は、実施形態1と同様に、コマンド生成フィルタ207により出力された印刷ジョブを、所定のサイズに分割する。そして、分割した印刷ジョブのうち未入力の印刷ジョブをwritePrintData関数の引数の1つとして入力する。

0054

次に、USBポートモニタ208は、S902にてエラー報知処理を行う。なお、エラー報知処理は、第1実施形態において説明した処理と同様であるため、詳細の説明を省略する。

0055

USBポートモニタ208は、エラー報知処理が終了すると、S903にて、スプーラ204から、分割ジョブを受信する。なお、本実施形態では、上述したように、印刷ジョブには識別情報が含まれ、さらに、その印刷ジョブはスプーラ204によって分割される。ここで、スプーラ204は、印刷ジョブと識別情報を区別せずに分割するため、例えば、識別情報が含まれない分割ジョブや、一部しか識別情報が含まれない分割ジョブ等が生じる。

0056

USBポートモニタ208は、S904にて、処理対象の印刷ジョブの印刷ジョブ送信処理において、後述のS906の処理で既に識別情報を検知したか否かを判定する。具体的には、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域内に、既に識別情報を検知したことを示す情報が含まれているか否かを判定する。なお、処理対象の印刷ジョブの印刷ジョブ送信処理における最初のS904の処理においては、当然、JobPropertyBag210が管理する記憶領域内に、既に識別情報を検知したことを示す情報は含まれていない。そのため、USBポートモニタ208は、既に識別情報を検知していないと判定する。また、既に識別情報を検知したことを示す情報は、識別情報そのものであっても良いし、識別情報を検知したことを示すフラグ等であっても良い。

0057

USBポートモニタ208は、S904の判定にて、既に識別情報を検知したと判定した場合はS908に進み、JobPropertyBag210が管理する記憶領域に未送信の分割ジョブが保存されているか否かを判定する。JobPropertyBag210が管理する記憶領域に未送信の分割ジョブが保存されている場合は、USBポートモニタ208は、S909にて当該分割ジョブを通信装置120へ送信する。JobPropertyBag210が管理する記憶領域に未送信の分割ジョブが保存されていない場合は、USBポートモニタ208は、S910にて、S903でスプーラ204から受信した分割ジョブを通信装置120に送信する。その後、USBポートモニタ208は、送信に成功した分割ジョブのサイズ情報をスプーラ204に通知する(S911)。S911により、スプーラ204は、印刷ジョブのうちどれだけのデータが送信されたかを判断することが可能となる。その後、USBポートモニタ208は、S914にて処理を終了する。

0058

一方、USBポートモニタ208は、S904の判定にて、既に識別情報を検知していないと判定した場合は、S905に進む。

0059

S905では、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に格納されている分割ジョブとS903でスプーラ204から受信した分割ジョブを結合する。これは、以前の印刷ジョブ送信処理において、一部しか識別情報が含まれない分割ジョブを受信していた場合には、JobPropertyBag210が管理する記憶領域に、一部しか識別情報が含まれない分割ジョブが格納されているためである。USBポートモニタ208は、S905にて、以前受信した分割ジョブと今回受信した分割ジョブとを結合することで、分割された複数の識別情報を、1つの完全な識別情報に復元することができる。なお、処理対象の印刷ジョブの印刷ジョブ送信処理における最初のS905の処理においては、当然、JobPropertyBag210が管理する記憶領域内に、分割ジョブは含まれていない。そのため、USBポートモニタ208は、処理対象の印刷ジョブの印刷ジョブ送信処理における最初のS905の処理においては、分割ジョブを結合することなく次の処理に進む。

0060

その後、USBポートモニタ208は、S905で結合した、又はS903で受信した分割ジョブに識別情報が含まれているか否かを判定する(S906)。USBポートモニタ208は、識別情報が含まれている(識別情報を復元できた)と判定した場合は、S907にて、分割ジョブに含まれる識別情報及び既に識別情報を検知したことを示す情報をJobPropertyBag210が管理する記憶領域へ格納する。

0061

その後、USBポートモニタ208は、S908以降の処理を実行する。

0062

USBポートモニタ208は、S906にて、識別情報が含まれていないと判定した場合は、S912にて、S905で結合した、又はS903で受信した分割ジョブをJobPropertyBag210が管理する記憶領域へ格納する。その後、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に格納した分割ジョブのサイズをスプーラ204へ通知する(S913)。その後、USBポートモニタ208は、S914にて印刷ジョブ送信処理を終了する。なお、USBポートモニタ208は、スプーラ204からの指示により、全ての分割ジョブを送信するまで、印刷ジョブ送信処理を繰り返す。すなわち、USBポートモニタ208は、分割ジョブ数と同じ回数、印刷ジョブ送信処理を繰り返す。また、全ての分割ジョブの送信が完了したか否かは、スプーラ204が管理している。USBポートモニタ208は、全ての分割ジョブ(1つの印刷ジョブ)の送信が完了した場合には、スプーラ204から通知されることで、以下の印刷終了処理を実行する。

0063

図11は、本実施系におけるUSBポートモニタ208が実行する印刷終了処理のフローを示す。なお、S1101〜S1106、S1115〜S1128の処理は実施形態1にて説明したS501〜S506、S511〜S524と同様の処理であるため、説明を省略する。

0064

USBポートモニタ208は、S1107にて、通信装置120から情報を読み取って取得する。なお、このとき通信装置120から取得する情報は、例えば、通信装置120のステータスを示す情報(ステータス情報)、通信装置120の能力情報等である。また、本実施形態においては、印刷ジョブの処理の完了後及び、印刷ジョブの処理中であればステータス情報が通信装置120から取得される。なお、例えば通信装置120との通信経路において通信障害が生じていたり、通信装置120がオフラインになっている場合は、いずれの情報も取得されない。

0065

その後、USBポートモニタ208は、S1108にて、通信装置120からの情報を取得したか否かを判定し、取得したと判定した場合はS1109にて、通信装置120から取得した情報の種別解析処理を行う。

0066

USBポートモニタ208は、S1109における種別解析処理によって、通信装置120から取得した情報が、通信装置120のステータス情報でないと解析した場合は、S1127に進む。S1127では、USBポートモニタ208は、スプーラ204に対し印刷終了処理を再度実行(リトライ)することを通知する。スプーラ204は、リトライが通知された場合、USBポートモニタ208に、印刷終了処理を再度実行させる。またスプーラ204はリトライを通知された場合は、印刷終了処理の対象のジョブを削除せずにジョブキュー205内に保持しておく。そして、USBポートモニタ208は、印刷終了処理を再度実行する場合は、再度S1101からの処理を行う。

0067

USBポートモニタ208は、S1109における種別解析処理によって、通信装置120から取得した情報が通信装置120のステータス情報であると解析した場合は、S1110に進む。S1110では、USBポートモニタ208は、取得したステータス情報を参照して、通信装置120のステータスを解析する処理(ステータス解析処理)を行う。USBポートモニタ208は、S1110において、ステータス情報を解析し、通信装置120にて通信装置120が処理中の印刷ジョブに付加されている識別情報を取得する。なお、例えば、印刷ジョブの処理がまだ開始されていなかったり、印刷ジョブの処理が既に終了している場合は、通信装置120が印刷ジョブの処理を実行中でない場合がある。この場合には、ステータス情報に識別情報は含まれないため、USBポートモニタ208は、識別情報を取得できない。

0068

その後、USBポートモニタ208は、S1111にて、JobPropertyBag210が管理する記憶領域に印刷ジョブ送信処理時に保存した識別情報が、取得したステータス情報に含まれていたか否かを判定する。具体的には、USBポートモニタ208は、印刷ジョブ送信処理時に保存した識別情報とS1110にて取得した識別情報を比較し、両者が一致しているか否かを判定する。なお、USBポートモニタ208が印刷ジョブ送信処理にて送信した印刷ジョブを、通信装置120が処理中であれば、両者が一致する。USBポートモニタ208は、両者の識別情報が一致していると判定した場合は、S1115に進む。一方、USBポートモニタ208が印刷ジョブ送信処理にて送信した印刷ジョブの処理を、通信装置120が完了しており、且つ他の情報処理装置から送信された印刷ジョブの処理を、通信装置120が処理しているのであれば、両者は一致しない。USBポートモニタ208は、両者の識別情報が一致していないと判定した場合、印刷ジョブの履歴情報取得のためのリクエストコマンドを通信装置120に対し送信する(S1112)。なお、上述したように、取得したステータス情報にいずれの識別情報も含まれていない場合がある。その場合も、USBポートモニタ208は、S1112に進み、印刷ジョブの履歴情報取得のためのリクエストコマンドを通信装置120に対し送信する。

0069

S1112の処理の後、USBポートモニタ208は、通信装置120から印刷ジョブの履歴情報を読み出して取得する(S1113)。図12は印刷ジョブの履歴情報の一例を示す。印刷ジョブの履歴情報は、通信装置120にて処理が終了した各印刷ジョブが、どのような状態で終了したかを、印刷ジョブに付加された識別情報と共に一覧で示すものである。

0070

そして、S1114にて、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に保存した識別情報に対応する印刷ジョブが、取得した履歴情報に含まれているか否かを判定する。なお、JobPropertyBag210が管理する記憶領域に保存した識別情報に対応する印刷ジョブの処理が既に終了していた場合は、履歴情報に当該印刷ジョブの情報が含まれる。そのため、USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に保存した識別情報に対応する印刷ジョブが、取得した履歴情報に含まれていると判定した場合はS1126に進む。そして、USBポートモニタ208は、S1126にて、スプーラ204に対し印刷終了処理が完了したことを通知する。その後、USBポートモニタ208は、S1128にて、印刷終了処理を終了することを決定する。一方、JobPropertyBag210が管理する記憶領域に保存した識別情報に対応する印刷ジョブの処理がまだ通信装置120にて開始されていない場合は、履歴情報に当該印刷ジョブの情報が含まれない。USBポートモニタ208は、JobPropertyBag210が管理する記憶領域に保存した識別情報に対応する印刷ジョブが、取得した履歴情報に含まれていない場合は、S1115に進み印刷処理の中止判定処理を行う。なお、印刷ジョブの履歴情報には、例えば、ジョブ名やジョブの送信日時等の情報が含まれていても良く、USBポートモニタ208は、それらの情報によって、印刷ジョブ送信処理において送信した印刷ジョブが履歴情報に含まれているか否かを判定しても良い。

0071

以上のように、本実施形態では、通信装置120が処理中の印刷ジョブに付された識別情報を取得し、取得した識別情報の解析結果又は識別情報を取得できたか否かによって、情報処理装置110が送信した印刷ジョブが終了したか否かを判定する。このような形態とすることで、通信装置120からジョブの終了情報を取得できない形態においても、情報処理装置110が送信した印刷ジョブが終了したか否かを判定することができる。すなわち、通信装置120からジョブの終了情報を取得できない形態においても、送信データ解析処理を回避した効率的な印刷ジョブの制御方法を実現することが可能となる。

0072

<実施形態3>
本発明は、前述の実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のCPU等が記録媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。

0073

プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスクハードディスクSSD、光ディスク光磁気ディスクCD−ROM、CD−R、磁気テープ不揮発性メモリカード、ROM、DVDなどを用いることができる。

0074

また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される。しかしそれだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ