(57)【要約】【課題】印刷の可否を判断して印刷を進めることに起因して不具合が生じることを抑制することができる技術を提供することを目的とする。【解決手段】印刷が可能であると判断された場合に、消耗品の実際の残量のうちの予想使用量分の消耗品を、印刷ジョブデータの印刷のために予約する。【選択図】図３
2010097521.tif 000002
【特許請求の範囲】
【請求項１】
印刷システムであって、
プリンタと、
前記プリンタに印刷を行わせるために印刷ジョブデータを出力するジョブ制御部と、
前記ジョブ制御部からの判断要求に応じて前記印刷ジョブデータの印刷の可否を判断する判断部と、
を備え、
前記ジョブ制御部は、前記印刷ジョブデータを出力する前に、前記プリンタで使用される消耗品の予想使用量を含む判断情報を生成し、
前記判断部は、前記判断情報と、前記プリンタの状況に関する情報とに応じて、前記印刷ジョブデータの印刷の可否を判断し、
前記ジョブ制御部は、前記印刷が可能であることを前記判断の結果が示す場合に、前記印刷ジョブデータを出力し、
前記判断部は、前記印刷が可能であると判断された場合に、前記消耗品の実際の残量のうちの前記予想使用量分の前記消耗品を、前記印刷ジョブデータの印刷のために予約する、
印刷システム。
【請求項２】
請求項１に記載の印刷システムであって、
前記プリンタの状況に関する情報は、前記プリンタにおける前記消耗品の利用可能な残量を含み、
前記印刷が可能であると判断されるための条件は、前記利用可能な残量が前記予想使用量以上であることを含み、
前記予想使用量の予約は、
（１）印刷が可能であると判断された場合に、前記消耗品の実際の残量から前記予想使用量を引いた残りの量である予想残量を算出することと、
（２）印刷が可能であると判断された印刷ジョブデータの印刷の完了前に別の印刷ジョブデータに関する判断要求を受信したことに応じて、前記利用可能な残量として前記予想残量を利用することによって、前記判断を行うことと、
を含む、印刷システム。
【請求項３】
請求項２に記載の印刷システムであって、
前記予想使用量の予約は、さらに、（３）前記別の印刷ジョブデータの印刷が可能であると判断された場合に、前記予想残量から前記別の印刷ジョブデータの予想使用量を減じること、を含む、印刷システム。
【請求項４】
請求項２または請求項３に記載の印刷システムであって、さらに、
前記ジョブ制御部を含む第１種クライアント装置と、前記ジョブ制御部を含まない第２種クライアント装置と、を含む複数のクライアント装置と、
印刷ジョブデータを受信して、前記受信した印刷ジョブデータを前記プリンタに供給するジョブ転送部と、
を含み、
前記ジョブ転送部は、前記第１種クライアント装置から、印刷が可能であると判断された判断済印刷ジョブデータの印刷要求を受信した場合には、前記判断済印刷ジョブデータを前記プリンタに供給し、
前記ジョブ転送部が、印刷が可能であると判断された印刷ジョブデータの印刷の完了前に、前記第２種クライアント装置から、印刷の可否が判断されていない非判断印刷ジョブデータの印刷要求を受信した場合には、
（Ａ）前記ジョブ転送部が前記非判断印刷ジョブデータの受信を拒絶する処理と、
（Ｂ）前記判断部が、新たな判断要求を受信した場合には前記新たな判断要求に応じて印刷の可否を判断し、前記ジョブ転送部が、前記非判断印刷ジョブデータを受信し、印刷が可能と判断された全ての印刷ジョブデータの印刷が完了したことに応じて、前記非判断印刷ジョブデータを前記プリンタへ供給する処理と、
（Ｃ）前記判断部が、新たな判断要求に応じた印刷の可否の判断を禁止し、前記ジョブ転送部が、前記非判断印刷ジョブデータを受信し、判断済みの印刷ジョブデータの印刷が完了したことに応じて、前記非判断印刷ジョブデータを前記プリンタへ供給する処理と、
のいずれかの処理が実行される、
印刷システム。
【請求項５】
請求項４に記載の印刷システムであって、
前記新たな判断要求に応じた印刷の可否の判断の禁止は、
（Ｉ）前記新たな判断要求を拒絶することと、
（ＩＩ）前記新たな判断要求を受領し、前記非判断ジョブデータの印刷の完了に応じて、前記新たな判断要求に応じた印刷の可否の判断を実行することと、
のいずれかを含む、印刷システム。
【請求項６】
印刷方法であって、
印刷ジョブデータを出力する前に、プリンタで使用される消耗品の予想使用量を含む判断情報を生成し、
前記判断情報と、前記プリンタの状況に関する情報とに応じて、前記印刷ジョブデータの印刷の可否を判断し、
前記印刷が可能であることを前記判断の結果が示す場合に、前記印刷ジョブデータを出力し、
前記印刷が可能であると判断された場合に、前記消耗品の実際の残量のうちの前記予想使用量分の前記消耗品を、前記印刷ジョブデータの印刷のために予約する、
印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムと印刷方法に関するものである。
【背景技術】
【０００２】
複数色の記録剤のそれぞれの将来残量を報知し、処理の指示を促す旨を報知する技術が知られている。また、パーソナルコンピュータが、画像印刷装置に対して自らが送信した印刷ジョブについて、画像印刷装置の資源情報と、既に蓄積された先行する印刷ジョブの印刷条件とに基づいて、その印刷ジョブを実行できるか否かを予測する技術も知られている。
【０００３】
【特許文献１】特許第３３６０７２８号公報
【特許文献２】特開２００７−３２８４９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、印刷の可否を判断して印刷を進める場合には、種々の不具合が生じる場合があった。例えば、印刷が可能と判断された後の、その印刷の完了前には、別の印刷の可否の判断を適切に行うことができない可能性があった。
【０００５】
本発明は、上記の課題の少なくとも一部を解決するためになされたものであり、印刷の可否を判断して印刷を進めることに起因して不具合が生じることを抑制することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］印刷システムであって、プリンタと、前記プリンタに印刷を行わせるために印刷ジョブデータを出力するジョブ制御部と、前記ジョブ制御部からの判断要求に応じて前記印刷ジョブデータの印刷の可否を判断する判断部と、を備え、前記ジョブ制御部は、前記印刷ジョブデータを出力する前に、前記プリンタで使用される消耗品の予想使用量を含む判断情報を生成し、前記判断部は、前記判断情報と、前記プリンタの状況に関する情報とに応じて、前記印刷ジョブデータの印刷の可否を判断し、前記ジョブ制御部は、前記印刷が可能であることを前記判断の結果が示す場合に、前記印刷ジョブデータを出力し、前記判断部は、前記印刷が可能であると判断された場合に、前記消耗品の実際の残量のうちの前記予想使用量分の前記消耗品を、前記印刷ジョブデータの印刷のために予約する、印刷システム。
【０００８】
この構成によれば、印刷が可能であると判断された場合に、消耗品の実際の残量のうちの予想使用量分の消耗品が、印刷ジョブデータの印刷のために予約されるので、印刷の可否を判断して印刷を進めることに起因して不具合が生じることを抑制することができる。
【０００９】
［適用例２］適用例１に記載の印刷システムであって、前記プリンタの状況に関する情報は、前記プリンタにおける前記消耗品の利用可能な残量を含み、前記印刷が可能であると判断されるための条件は、前記利用可能な残量が前記予想使用量以上であることを含み、前記予想使用量の予約は、（１）印刷が可能であると判断された場合に、前記消耗品の実際の残量から前記予想使用量を引いた残りの量である予想残量を算出することと、（２）印刷が可能であると判断された印刷ジョブデータの印刷の完了前に別の印刷ジョブデータに関する判断要求を受信したことに応じて、前記利用可能な残量として前記予想残量を利用することによって、前記判断を行うことと、を含む、印刷システム。
【００１０】
この構成によれば、消耗品の実際の残量から予想使用量を引いた残りの量である予想残量を利用可能な残量として利用することによって、別の印刷ジョブデータに関する判断が行われるので、別の印刷ジョブデータに関する判断と消耗品の予約とを、適切に行うことができる。
【００１１】
［適用例３］適用例２に記載の印刷システムであって、前記予想使用量の予約は、さらに、（３）前記別の印刷ジョブデータの印刷が可能であると判断された場合に、前記予想残量から前記別の印刷ジョブデータの予想使用量を減じること、を含む、印刷システム。
【００１２】
この構成によれば、別の印刷ジョブデータのための消耗品の予約を適切に行うことができる。
【００１３】
［適用例４］適用例２または適用例３に記載の印刷システムであって、さらに、前記ジョブ制御部を含む第１種クライアント装置と、前記ジョブ制御部を含まない第２種クライアント装置と、を含む複数のクライアント装置と、印刷ジョブデータを受信して、前記受信した印刷ジョブデータを前記プリンタに供給するジョブ転送部と、を含み、前記ジョブ転送部は、前記第１種クライアント装置から、印刷が可能であると判断された判断済印刷ジョブデータの印刷要求を受信した場合には、前記判断済印刷ジョブデータを前記プリンタに供給し、前記ジョブ転送部が、印刷が可能であると判断された印刷ジョブデータの印刷の完了前に、前記第２種クライアント装置から、印刷の可否が判断されていない非判断印刷ジョブデータの印刷要求を受信した場合には、（Ａ）前記ジョブ転送部が前記非判断印刷ジョブデータの受信を拒絶する処理と、（Ｂ）前記判断部が、新たな判断要求を受信した場合には前記新たな判断要求に応じて印刷の可否を判断し、前記ジョブ転送部が、前記非判断印刷ジョブデータを受信し、印刷が可能と判断された全ての印刷ジョブデータの印刷が完了したことに応じて、前記非判断印刷ジョブデータを前記プリンタへ供給する処理と、（Ｃ）前記判断部が、新たな判断要求に応じた印刷の可否の判断を禁止し、前記ジョブ転送部が、前記非判断印刷ジョブデータを受信し、判断済みの印刷ジョブデータの印刷が完了したことに応じて、前記非判断印刷ジョブデータを前記プリンタへ供給する処理と、のいずれかの処理が実行される、印刷システム。
【００１４】
この構成によれば、判断済印刷ジョブデータと非判断印刷ジョブデータとの両方が利用される印刷システムにおいて、不具合が生じることを抑制することができる。
【００１５】
［適用例５］適用例４に記載の印刷システムであって、前記新たな判断要求に応じた印刷の可否の判断の禁止は、（Ｉ）前記新たな判断要求を拒絶することと、（ＩＩ）前記新たな判断要求を受領し、前記非判断ジョブデータの印刷の完了に応じて、前記新たな判断要求に応じた印刷の可否の判断を実行することと、のいずれかを含む、印刷システム。
【００１６】
この構成によれば、新たな判断要求に起因して不具合が生じることを抑制することができる。
【００１７】
［適用例６］印刷方法であって、印刷ジョブデータを出力する前に、プリンタで使用される消耗品の予想使用量を含む判断情報を生成し、前記判断情報と、前記プリンタの状況に関する情報とに応じて、前記印刷ジョブデータの印刷の可否を判断し、前記印刷が可能であることを前記判断の結果が示す場合に、前記印刷ジョブデータを出力し、前記印刷が可能であると判断された場合に、前記消耗品の実際の残量のうちの前記予想使用量分の前記消耗品を、前記印刷ジョブデータの印刷のために予約する、印刷方法。
【００１８】
なお、本発明は、種々の形態で実現することが可能であり、例えば、印刷方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００１９】
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．変形例：
【００２０】
Ａ．第１実施例：
図１は、本発明の一実施例としての印刷システム９００を示す説明図である。この印刷システム９００は、パーソナルコンピュータ１００（以下、単に「コンピュータ１００」あるいは「クライアント装置１００」とも呼ぶ）とプリンタ７００とを含んでいる。コンピュータ１００とプリンタ７００とは、ネットワークＮＥＴを介して、互いに通信可能である。
【００２１】
コンピュータ１００は、制御部１１０と、ハードディスクドライブ１２０とを含んでいる。制御部１１０は、ＣＰＵ１１２と、ＲＡＭ１１４と、ＲＯＭ１１６とを含んでいる。ＣＰＵ１１２は、プログラムを実行することによって、種々の機能を実現する。
【００２２】
コンピュータ１００には、表示装置１００ｚが接続されている。表示装置１００ｚは、制御部１１０からの命令に従って、操作メニューや画像を含む種々の情報を表示する。表示装置１００ｚとしては、液晶ディスプレイや有機ＥＬディスプレイ等の種々の表示装置を採用可能である。
【００２３】
なお、図示は省略するが、コンピュータ１００には、ユーザの指示を受ける入力装置も、接続されている。入力装置としては、例えば、キーボードやマウスやタッチパネルを採用可能である。
【００２４】
プリンタ７００は、制御部７１０と、印刷エンジン７２０とを含んでいる。制御部７１０は、印刷エンジン７２０を制御する。制御部７１０は、ＣＰＵ７１２と、ＲＡＭ７１４と、ＲＯＭ７１６とを含むコンピュータである。印刷エンジン７２０は、与えられた印刷データを利用して印刷を実行する印刷機構である。印刷機構としては、インク滴を印刷用紙に吐出して画像を形成する印刷機構や、トナーを印刷用紙上に転写・定着させて画像を形成する印刷機構等の種々の印刷機構を採用可能である。本実施例では、印刷エンジン７２０が、トナーと感光ドラムとを利用して印刷を行うこととする。
【００２５】
図２は、印刷システム９００の機能を示すブロック図である。コンピュータ１００では、データ処理アプリケーション２１０と、プリンタドライバ２２０と、スプーラ２３０と、スプーラ制御アプリケーション２３２と、ポートモニタ２４０と、事前確認アプリケーション２５０とが、動作している（以下、スプーラ制御アプリケーション２３２を「スプーラコントローラ２３２」とも呼ぶ。また、プリンタドライバ２２０を、単に「ドライバ２２０」とも呼ぶ）。
【００２６】
スプーラ２３０は、後述する印刷ジョブデータを一時的に格納するメモリである。図２の実施例では、ハードディスクドライブ１２０（図１）の一部の記憶領域が、スプーラ２３０として利用される。
【００２７】
データ処理アプリケーション２１０とドライバ２２０とスプーラコントローラ２３２とポートモニタ２４０と事前確認アプリケーション２５０とは、ＣＰＵ１１２（図１）によって実行されるプログラム（プログラムモジュール）である。以下、プログラムモジュールに従ってＣＰＵが処理を実行することを、単に、「モジュールが処理を実行する」とも表現する。各モジュール２１０、２２０、２３２、２４０、２５０は、ＲＡＭ１１４を介して、互いにデータの送受信が可能である。
【００２８】
データ処理アプリケーション２１０は、画像処理アプリケーションや文書作成アプリケーションといった種々のデータ処理アプリケーションである。データ処理アプリケーション２１０は、ユーザの指示に従って、データ処理を実行する。また、データ処理アプリケーション２１０は、ユーザの印刷指示に従って、印刷すべき画像を表すデータを、ドライバ２２０に供給する。
【００２９】
ドライバ２２０は、データ処理アプリケーション２１０からのデータに応じて、印刷ジョブを表す印刷ジョブデータを生成する（以下、単に「ジョブデータ」と呼ぶ）。ジョブデータは、印刷画像を表す印刷データである。このようなジョブデータの形式としては、種々の形式を採用可能である。例えば、プリンタ７００に応じて決まるＰＤＬ（Page Description Language：ページ記述言語）で記述されたＰＤＬデータを採用してもよい。また、所定の描画コマンドによって表されたデータを採用してもよい（このようなデータとしては、例えば、いわゆるＥＭＦ（Enhanced Meta File）データを採用可能である）。いずれの場合も、ジョブデータのフォーマットとしては、プリンタ７００（ジョブ処理部８１０）が利用することが可能な任意のフォーマットを採用可能である。
【００３０】
ドライバ２２０は、生成したジョブデータをスプーラ２３０に格納する。スプーラコントローラ２３２は、スプーラ２３０に格納されたジョブデータを、プリンタ７００に送信する。ジョブデータの送信は、ポートモニタ２４０によって制御される。ポートモニタ２４０は、プリンタ７００（ネットワークＮＥＴ（図１））に接続された図示しない接続インタフェースを利用して、ジョブデータをプリンタ７００に送信する。
【００３１】
プリンタ７００では、ジョブ処理部８１０と、通信処理部８２０と、判断部８３０と、印刷エンジン７２０とが、動作している。ジョブ処理部８１０と通信処理部８２０と判断部８３０とは、ＣＰＵ７１２（図１）によって実行されるプログラム（プログラムモジュール）である。各モジュール８１０、８２０、８３０は、ＲＡＭ７１４を介して、互いにデータの送受信が可能である。
【００３２】
ジョブ処理部８１０は、コンピュータ１００から受信したジョブデータに応じて、印刷エンジン７２０を制御する（印刷用のデータを印刷エンジン７２０に供給する）。これにより、ジョブデータによって表される画像が印刷される。なお、本実施例では、ＲＡＭ７１４（図１）のうちの所定の一部の記憶領域は、印刷に利用されるデータを一時的に格納するバッファメモリとして利用される。バッファメモリに格納されるデータは、ジョブデータに限らず、印刷に利用される種々のデータ（例えば、ジョブデータから生成されるドットパターンデータ）を含む。
【００３３】
印刷エンジン７２０は、現状出力部７２２を含んでいる。現状出力部７２２は、プリンタ７００の資源情報ＲＩを、判断部８３０に供給する。資源情報ＲＩは、プリンタ７００で利用可能な資源の現状（現行の状況）を表している。資源情報ＲＩの詳細については、後述する。
【００３４】
また、コンピュータ１００の事前確認アプリケーション２５０は、判断情報ＤＩを、判断部８３０に供給する。判断情報ＤＩは、ジョブデータの印刷に関する情報である。判断情報ＤＩの詳細については、後述する。なお、事前確認アプリケーション２５０は、印刷ジョブの投入を検知する第１機能２５１と、判断情報を収集する第２機能２５２と、スプーラを制御する第３機能２５３と、情報通信を行う第４機能２５４と、判断結果を通知する第５機能２５５と、を有している。
【００３５】
判断部８３０は、資源情報ＲＩと判断情報ＤＩとを利用することによって、印刷の可否を判断する（以下、この判断のことを「印刷判断」とも呼ぶ）。この印刷判断は、コンピュータ１００からプリンタ７００へジョブデータが供給される前に行われる。事前確認アプリケーション２５０は、この印刷判断の結果ＤＲに応じて、ジョブデータをプリンタ７００に供給するか否かを決定する。
【００３６】
なお、本実施例では、後述するように、印刷が可能と判断された場合には、判断部８３０は、その印刷に要する資源（例えば、トナーや印刷用紙）を、その印刷のために予約する。そして、その予約に応じた新たな判断を行うために、判断部８３０は、予想残量ＥＲを利用する。判断の詳細については、後述する。
【００３７】
図３は、事前の判断を利用した印刷処理のシーケンス図である。最初のステップＳ１０ａでは、ドライバ２２０（図２）は、データ処理アプリケーション２１０の要求に応じて、ジョブデータを生成する。次のステップＳ１２ａでは、ドライバ２２０は、生成したジョブデータをスプーラ２３０に格納する。次のステップＳ１４ａでは、ドライバ２２０は、生成したジョブデータを解析することによって、判断情報ＤＩを生成する。
【００３８】
図４は、判断情報ＤＩと資源情報ＲＩと予想残量ＥＲとを利用した印刷判断を示す説明図である。図中には、判断情報ＤＩと資源情報ＲＩと予想残量ＥＲとが示されている。本実施例では、判断情報ＤＩは、以下の情報を含んでいる。
（１）印刷に要する印刷用紙の予想使用量とサイズと種類。
（２）印刷に要するトナーの予想使用量。
（３）印刷に要するメモリの予想使用量。
【００３９】
印刷用紙の予想使用量は、ジョブデータに応じた印刷に要する総数を表している。印刷用紙のサイズと種類とは、それぞれ、データ処理アプリケーション２１０（図２）に対するユーザの指示で指定されている。サイズは、予め準備された複数の選択肢（例えば、「Ａ４」と「Ｂ５」）の中から選択される。種類は、予め準備された複数の選択肢（例えば、「普通紙」と「光沢紙」）の中から選択される。
【００４０】
印刷に要するトナーの予想使用量は、トナーの色毎（すなわち、利用可能なトナーの種類毎）に算出される。トナー量（予想使用量）の算出方法としては、種々の方法を採用可能である。例えば、印刷画像の各画素の色からトナー量を算出してもよい。また、各画素の色に対応付けられたドットカウントを利用してトナー量を算出してもよい。
【００４１】
印刷に要するメモリの予想使用量は、ジョブデータを利用した印刷に要するメモリ量を表している。このようなメモリ量としては、例えば、ジョブデータのサイズを採用可能である。また、プリンタ７００においてジョブデータからドットパターンデータが生成される場合には、ジョブデータのサイズとドットパターンデータのサイズとの和を採用してもよい。このようなメモリ量（データサイズ）は、印刷画像を表すデータ（例えば、色データや描画コマンド）から、推定すればよい。
【００４２】
図３の次のステップＳ１６ａでは、ドライバ２２０（図２）は、判断情報ＤＩを、事前確認アプリケーション２５０に供給する。ここで、ドライバ２２０が、ジョブデータの生成に応じて自動的に判断情報ＤＩを事前確認アプリケーション２５０に供給してもよい。また、事前確認アプリケーション２５０が、印刷ジョブの投入を検知したことに応じて、ドライバ２２０に判断情報ＤＩを要求してもよい（第１機能２５１、第２機能２５２）。
【００４３】
次のステップＳ２０ｂでは、事前確認アプリケーション２５０（図２）は、印刷ジョブの進行を一時停止する。本実施例では、事前確認アプリケーション２５０は、ジョブデータの送信を保留する指示を、スプーラコントローラ２３２に供給する（第３機能２５３）。スプーラコントローラ２３２は、指示に従って、スプーラ２３０に格納されたジョブデータの送信を、保留する。
【００４４】
次のステップＳ２２ｂでは、事前確認アプリケーション２５０（図２）は、印刷ジョブに固有な識別子（以下、単に「ジョブＩＤ」と呼ぶ）を、プリンタ７００に要求する。次のステップＳ２４ｃでは、判断部８３０は、要求に応じて、ジョブＩＤをコンピュータ１００に返す。ジョブＩＤとしては、種々の値を採用可能である。例えば、コンピュータ１００とプリンタ７００との間の通信に利用されるＩＤをジョブＩＤとして利用してもよい。また、判断部８３０は、ジョブＩＤの要求に応じて、予め決められた方法で、ジョブＩＤを決定してもよい。
【００４５】
次のステップＳ２６ｂでは、事前確認アプリケーション２５０（図２）は、印刷判断を、プリンタ７００に要求する。事前確認アプリケーション２５０は、この要求に伴って、判断情報ＤＩとジョブＩＤとをプリンタ７００に送信する。次のステップＳ３０ｃでは、判断部８３０は、受信した要求に応じて、判断を開始する。
【００４６】
判断部８３０（図２）は、判断のために、現状出力部７２２に、現行の資源情報ＲＩを要求する。現状出力部７２２は、要求に応じて、資源情報ＲＩを判断部８３０に供給する。図４には、資源情報ＲＩが示されている。資源情報ＲＩは、以下のデータを含んでいる。
（１）用紙カセット中の印刷用紙の残量。
（２）排紙トレイの許容量。
（３）トナーの残量。
（４）感光ドラムの寿命。
（５）バッファメモリの空き容量
【００４７】
現状出力部７２２が上述の各データを特定する方法としては、任意の方法を採用可能である。例えば、印刷用紙の残量については、印刷用紙の補給時にユーザが印刷用紙の残量をプリンタ７００に入力し、現状出力部７２２は、印刷に利用した印刷用紙の数を残量から減じることによって、印刷用紙の現行の残量を特定してもよい。また、用紙カセット内の紙の高さあるいは重量を、予め決められた１枚当たりの高さ（厚さ）あるいは重量で除することによって、残量を算出してもよい（現状出力部７２２は、高さあるいは重量のセンサを含んでよい）。なお、本実施例では、印刷用紙の残量は、印刷用紙のサイズと種類との組み合わせ毎に、特定される。サイズと種類とは、印刷用紙を格納する図示しない用紙カセット毎に、予め設定されている。
【００４８】
排紙トレイの許容量は、排紙トレイ（図示せず）に出力可能な印刷用紙の枚数を意味している。このような許容量は、排紙トレイの予め決められた最大積載量から、現行の積載量を引くことによって、特定できる。現行の積載量は、例えば、排紙トレイ内の紙の高さあるいは重量を、１枚当たりの高さ（厚さ）あるいは重量で除することによって、算出することができる（現状出力部７２２は、高さあるいは重量のセンサを含んでよい）。
【００４９】
トナーの残量は、例えば、トナーの重量やトナー容器内の電気抵抗を利用して、特定することができる（現状出力部７２２は、重量や電気抵抗のセンサを含んでよい）。また、新しいトナーカートリッジに対応付けられた所定の最大トナー量から、最後にトナーカートリッジを交換してからのトナーの累積使用量を引くことによって、トナーの残量を特定してもよい。なお、本実施例では、トナーの残量は、トナーの色毎に特定される。
【００５０】
感光ドラムの寿命は、本実施例では、印刷可能な印刷用紙の枚数（ページ総数）で表されている。このような寿命は、予め決められた最大数（最大ページ数）から、最後に感光ドラムを交換してからの印刷ページの累積数を引くことによって、特定できる。
【００５１】
バッファメモリの空き容量は、ジョブ処理部８１０に問い合わせることによって、特定できる。本実施例では、バッファメモリは、ジョブ処理部８１０によって管理されている。ただし、空き容量の特定方法としては、他の任意の方法を採用可能である。
【００５２】
判断部８３０（図２）は、取得した判断情報ＤＩと資源情報ＲＩとを利用して、印刷の可否を判断する（図４）。本実施例では、以下の５つの条件の全てが満たされる場合に、印刷が可能であると判断される。少なくとも１つの条件が満たされない場合には、印刷ができないと判断される。
（Ｃ１）印刷用紙の利用可能残量が、印刷に要する印刷用紙の予想使用量以上である。
（Ｃ２）排紙トレイの利用可能許容量が、印刷に要する印刷用紙の予想使用量以上である。
（Ｃ３）トナーの利用可能残量が、印刷に要するトナーの予想使用量以上である。
（Ｃ４）感光ドラムの利用可能寿命が、印刷に要する印刷用紙の予想使用量以上である。
（Ｃ５）バッファメモリの利用可能空き容量が、印刷に要するメモリの予想使用量以上である。
【００５３】
印刷に利用される資源が予約されていない段階では、判断部８３０（図２）は、資源情報ＲＩによって表される現行の量（実残量）を、各条件Ｃ１〜Ｃ５における利用可能な量として用いる。
【００５４】
以上のように、本実施例では、判断部８３０は、印刷用紙、トナー、メモリが不足する場合と、排紙トレイの許容量が少ない場合と、感光ドラムの寿命が尽きる場合に、印刷ができないと判断する。全ての条件Ｃ１〜Ｃ５が満たされる場合には、判断部８３０は、印刷が可能であると判断する。そして、判断部８３０は、印刷判断を完了する（図３：ステップＳ３６ｃ）。
【００５５】
印刷が可能であると判断された場合には、図３の次のステップＳ３８ｃで、判断部８３０（図２）は、資源の予想使用量を予約する。具体的には、判断部８３０は、資源情報ＲＩと判断情報ＤＩとから、予想残量ＥＲを算出する。１つのジョブのための資源が予約された段階では、予想残量ＥＲは、資源情報ＲＩによって表される現行の量（実残量）から、判断情報ＤＩによって表される予想使用量を引いた残りの量を、表している。図４に示す実施例では、予想残量ＥＲは、以下のデータを表している。
（１）用紙カセット中の印刷用紙の予想残量。
（２）排紙トレイの予想許容量。
（３）トナーの予想残量。
（４）感光ドラムの予想寿命。
（５）バッファメモリの予想空き容量
【００５６】
予想残量ＥＲは、資源が予約されている場合の別のジョブデータの印刷判断に利用される。ここで、資源が予約されている場合とは、印刷が可能であると判断されたジョブデータの印刷が完了していない場合を、意味している。この場合には、判断部８３０（図２）は、図４に示す各条件Ｃ１〜Ｃ５における利用可能な量として、予想残量ＥＲによって表される量を用いる。これにより、印刷判断において、プリンタの資源の残量を多重にカウントすることを防止できる。また、その別のジョブデータの印刷が可能であると判断された場合には、判断部８３０は、その別のジョブデータの判断情報ＤＩによって表される予想使用量を予想残量ＥＲから減じることによって、予想残量ＥＲを更新する。資源が予約されている状態で更に別のジョブデータの印刷判断を行う場合には、判断部８３０は、更新された予想残量ＥＲを利用する。これにより、複数の印刷判断と、各判断結果に応じた資源の予約とを、適切に行うことができる。
【００５７】
事前確認アプリケーション２５０（図２）は、印刷判断の要求の後、判断状況の確認をプリンタ７００に要求する（図３：Ｓ３２ｂ、Ｓ４０ｂ）。事前確認アプリケーション２５０は、この要求に伴って、ジョブＩＤをプリンタ７００に送信する。ジョブＩＤによって、印刷判断に対応付けられた印刷ジョブが特定される。
【００５８】
判断状況の確認の要求が、ジョブＩＤに対応付けられた印刷判断の完了前である場合には（ステップＳ３２ｂ）、判断部８３０（図２）は、確認中である旨を返答する（ステップＳ３４ｃ）。判断状況の確認の要求が、印刷判断の完了後である場合には（ステップＳ４０ｂ）、判断部８３０は、印刷判断の結果ＤＲを、コンピュータ１００に返す（ステップＳ４２ｃ）。この判断結果ＤＲは、印刷可能（ＯＫ）あるいは印刷不可（ＮＧ）を表す情報を含んでいる。また、本実施例では、判断結果ＤＲは、上述の各条件Ｃ１〜Ｃ５の成立状況を表す情報を含んでいる。事前確認アプリケーション２５０は、判断結果ＤＲを利用して、満たされなかった条件を特定することができる。
【００５９】
次のステップＳ４４ｂでは、事前確認アプリケーション２５０（図２）は、判断結果ＤＲが「ＯＫ」を表しているか否かを判断する。判断結果ＤＲが「ＯＫ」を表している場合には、次のステップＳ４８ｂで、事前確認アプリケーション２５０は、スプーラコントローラ２３２に、ジョブデータの送信を指示する（第３機能２５３）。スプーラコントローラ２３２は、指示に応じて、ジョブデータをプリンタ７００に送信する。次のステップＳ５０ｃでは、ジョブ処理部８１０は、受信したジョブデータに応じて、印刷を実行する。
【００６０】
判断結果ＤＲが「ＮＧ」を表している場合には、次のステップＳ４６ｂで、事前確認アプリケーション２５０（図２）は、ジョブデータをプリンタ７００に供給せずに、判断結果ＤＲをユーザに通知する（第５機能２５５）。その結果、プリンタ７００での印刷エラーを抑制できる。なお、この場合には、事前確認アプリケーション２５０は、ジョブＩＤを解放してもよい（ジョブＩＤの設定を削除してもよい）。
【００６１】
図５は、判断結果ＤＲをユーザに通知するためのウィンドウを示す説明図である。事前確認アプリケーション２５０は、このウィンドウＲＷを表示装置１００ｚ（図１）に表示する。ウィンドウＲＷには、印刷ができないことを表すメッセージが表示されている。ユーザは、このウィンドウＲＷを観察することによって、印刷処理が止まっていることを、容易に確認することができる。
【００６２】
また、ウィンドウＲＷには、満たされなかった条件（すなわち、印刷ができない原因）が表示されている。図５のウィンドウＲＷは、上述の第１条件Ｃ１が満たされていないことを表している。このように、判断結果ＤＲが「ＮＧ」を表す場合には、事前確認アプリケーション２５０は、原因を表す情報をユーザに通知することが好ましい。例えば、印刷用紙が不足している場合には、その印刷用紙の種類、サイズ、カセット番号を通知することが好ましい。また、トナーが不足している場合には、そのトナーの色とトナーカートリッジの型番とを通知することが好ましい。また、部品（例えば、感光ドラム）の寿命が十分では無い場合には、その部品の名前と型番とを通知することが好ましい。こうすれば、ユーザは、容易に原因を解消することができる。
【００６３】
ウィンドウＲＷは、さらに、印刷中止ボタンＳＢと、印刷再開ボタンＲＳとを含んでいる。ユーザは、印刷中止ボタンＳＢを操作することによって、印刷を中止することができる。印刷中止ボタンＳＢの操作に応じて、事前確認アプリケーション２５０（図２）は、ジョブデータをスプーラ２３０から削除する指示を、スプーラコントローラ２３２に供給する。スプーラコントローラ２３２は、指示に応じて、ジョブデータを送信せずに削除する。その結果、印刷エラーがプリンタ７００に生じることを防止できる。
【００６４】
また、ユーザは、印刷再開ボタンＲＳを操作することによって、印刷を再開することができる。ウィンドウＲＷには、印刷ができないと判断された原因が表示されている。ユーザは、その原因を解消した後に、印刷再開ボタンＲＳを操作すればよい。例えば、図５に示す例では、ユーザは、第１用紙カセットにＡ４サイズの普通紙を補給した後に、印刷再開ボタンＲＳを操作すればよい。
【００６５】
印刷再開ボタンＲＳの操作に応じて、事前確認アプリケーション２５０（図２）は、処理を図３のステップＳ１４ａに戻す。事前確認アプリケーション２５０は、判断情報ＤＩをドライバ２２０に要求する。ドライバ２２０は、要求に応じて、判断情報ＤＩを生成して事前確認アプリケーション２５０に供給する。そして、図３のステップＳ１４ａに続く手順に従って、処理が進行する。原因が解消している場合には、新たな判断結果ＤＲは「ＯＫ」を表している。その結果、印刷が行われる。なお、印刷再開ボタンＲＳの操作に応じた処理のジャンプ先としては、ステップＳ１４ａに限らず、印刷判断（Ｓ３０ｃ）より前の任意のステップを採用可能である。例えば、処理が、ステップＳ２６ｂに戻っても良い。
【００６６】
なお、本実施例では、事前確認アプリケーション２５０（図２）とプリンタ７００との間の通信は、第４機能２５４によって制御される。また、判断部８３０とコンピュータ１００との間の通信は、通信処理部８２０によって制御される。
【００６７】
図６は、印刷システム９００の動作例を示す説明図である。この動作例は、「ＯＫ」を表す判断結果ＤＲが得られる場合を示している。図６には、図３のシーケンス図に従った動作の一部が示されている。
【００６８】
まず、ユーザは、データ処理アプリケーション２１０（図２）を操作することによって、印刷に利用するプリンタを選択し（動作［１０］）、印刷実行を指示する（動作［１２］）。
【００６９】
コンピュータ１００では、事前確認アプリケーション２５０が、ジョブデータの送信を保留する（動作［２２］）。ドライバ２２０は、ジョブデータを生成し、そして、判断情報ＤＩを生成する（動作［２４］）。事前確認アプリケーション２５０は、生成された判断情報ＤＩをプリンタ７００に送信する（動作［２６］）。
【００７０】
プリンタ７００では、判断部８３０が、判断情報ＤＩを受信し（動作［３０］）、資源情報ＲＩを確認する（動作［３２］）。そして、判断部８３０は、印刷判断を行い（動作［３４］）、判断結果ＤＲをコンピュータ１００に送信する（動作［３６］）。図６の例では、判断結果ＤＲは「ＯＫ」を表している。
【００７１】
図６に示す動作例では、判断結果が「ＯＫ」を表しているので、判断部８３０は、判断情報ＤＩによって表される予想使用量を、予約する（動作［３５］）。予約の手順は、図３のステップＳ３８ｃで説明した通りである。なお、この予約は、判断結果ＤＲの送信前に行われる。ただし、判断結果ＤＲの送信後に、予約が行われても良い。
【００７２】
なお、資源が予約されている状態で印刷判断を行う場合には、判断部８３０（図２）は、印刷判断のために、資源情報ＲＩの代わりに予想残量ＥＲを確認する（動作［３２］）。
【００７３】
コンピュータ１００では、事前確認アプリケーション２５０が、判断結果ＤＲを受信する（動作［４０］）。判断結果ＤＲが「ＯＫ」を表しているので、事前確認アプリケーション２５０は、保留を解除する（動作［４２］）。そして、スプーラコントローラ２３２は、ジョブデータをプリンタ７００に送信する。
【００７４】
プリンタ７００は、受信したジョブデータに従って、印刷を行う（動作［５０］）。
【００７５】
図７は、印刷システム９００の別の動作例を示す説明図である。図６に示す動作例との差違は、「ＮＧ」を表す判断結果ＤＲが得られる点である。図７には、図３のシーケンス図に従った動作の一部が示されている。
【００７６】
図７の動作［１０］〜［４０］は、図６の動作と同じである。ただし、判断結果ＤＲは、「ＮＧ」を表している。判断結果ＤＲが「ＮＧ」を表しているので、資源の予約は行われない。また、コンピュータ１００では、事前確認アプリケーション２５０（図２）が、判断結果ＤＲ（ウィンドウＲＷ）を表示装置１００ｚに表示する（動作［４４］、図５）。
【００７７】
ユーザは、ウィンドウＲＷ（図５）を確認し、原因を解消するために資源の補給あるいは交換を行う（動作［６０］）。その後、ユーザは、印刷再開をコンピュータ１００に指示する（動作［７０］）。事前確認アプリケーション２５０は、印刷処理を再開する。原因が解消している場合には、図６の動作［２４］からの一連の動作が行われる。原因が解消していない場合には、図７の動作［２４］からの一連の動作が繰り返される。
【００７８】
また、ユーザは、印刷を再開せずに中止してもよい。こうすれば、印刷エラーがプリンタ７００で生じる等の不具合の発生を防止できる。
【００７９】
以上のように、本実施例では、ジョブデータがプリンタ７００に供給される前に、判断情報に応じて印刷の可否が判断される。その結果、印刷の可否を判断して印刷を進めることに起因して不具合が生じることを抑制することができる。例えば、印刷できない可能性のあるジョブデータのプリンタ７００による受信が抑制されるので、プリンタ７００のメモリの容量を過剰に大きくせずに済む。また、プリンタ７００で印刷エラーが生じることを抑制できる。その結果、印刷システム９００の管理者の負担を軽減することができる。
【００８０】
また、ジョブデータを生成するドライバ２２０（図２）が、判断情報ＤＩも生成するので、印刷システム９００の構成が過剰に複雑になることを抑制できる。なお、ドライバ２２０の代わりに、スプーラコントローラ２３２が、スプーラ２３０に格納されたジョブデータを解析することによって、判断情報ＤＩを生成してもよい。こうすれば、判断情報ＤＩの生成を適切に行うことができる。この場合には、スプーラコントローラ２３２は、特許請求の範囲における「判断情報生成部」に相当する。また、この場合には、スプーラ２３０に格納されたジョブデータを加工することができる。例えば、２つのジョブデータを、結合によって１つのジョブデータに変換してもよい。スプーラコントローラ２３２は、加工されたジョブデータを解析して、判断情報ＤＩを生成すればよい。なお、スプーラコントローラ２３２は、ユーザの指示に応じて、このような加工を実行してよい。
【００８１】
また、判断結果ＤＲが「ＯＫ」を表す場合には、判断部８３０（図２）は、判断情報ＤＩによって表される予想使用量分の資源を予約する。従って、印刷が完了する前に別のジョブデータの印刷判断が行われる場合であっても、プリンタ７００の資源を多重にカウントすることを防止できる。また、資源が予約された状態で別のジョブデータの印刷が可能と判断される場合には、判断部８３０は、予想残量ＥＲを更新し、更新された予想残量ＥＲを利用して別の印刷判断を行う。従って、複数の印刷のための資源の予約が適切に行われる。
【００８２】
なお、本実施例では、ドライバ２２０（図２）と、スプーラ２３０と、スプーラコントローラ２３２と、事前確認アプリケーション２５０との全体が、特許請求の範囲における「ジョブ制御部」に相当する（図２）。そして、コンピュータ１００が、「ジョブ制御装置」に相当する。
【００８３】
また、本実施例において、プリンタ７００が、複数のクライアント装置によって、共通に利用されてもよい。いずれの場合も、判断部８３０（図２）は、印刷判断の要求を受けた順番に、印刷判断と資源の予約とを実行すればよい。
【００８４】
また、プリンタ７００に供給されるジョブデータは、ジョブＩＤを含むことが好ましい。こうすれば、判断部８３０は、印刷が可能と判断されたジョブデータの印刷が完了したか否かを、容易に判断することができる。図２に示す実施例では、事前確認アプリケーション２５０がスプーラコントローラ２３２にジョブＩＤを通知すればよい。なお、判断部８３０が、印刷が可能と判断されたジョブデータの印刷が完了したか否か判断する方法としては、他の任意の方法を採用可能である。例えば、印刷が可能と判断されたジョブデータの総数と、完了した印刷の総数とを比較してもよい。
【００８５】
Ｂ．第２実施例：
図８は、印刷システムの別の実施例を示す説明図である。図１に示す印刷システム９００との差違は、プリンタ７００が、プリントサーバ３００を介して、複数のコンピュータ（１００、１０１）に共通に利用される点である。プリントサーバ３００は、プリンタ７００にジョブデータを供給するジョブ制御装置として動作する。
【００８６】
本実施例のプリンタ７００は、図１のプリンタ７００と同じである。各コンピュータ１００、１０１のハードウェア構成は、図１のコンピュータ１００と同じである。プリントサーバ３００のハードウェア構成は、図１のコンピュータ１００と同様である。プリントサーバ３００は、制御部３１０と、ハードディスクドライブ３２０とを含んでいる。制御部３１０は、ＣＰＵ３１２と、ＲＡＭ３１４と、ＲＯＭ３１６とを含んでいる。
【００８７】
図９は、本実施例の印刷システム９００Ａの機能を示すブロック図である。図２に示す実施例との差違は、スプーラ２３０とポートモニタ２４０とスプーラ制御アプリケーション２３２と事前確認アプリケーション２５０とのそれぞれの機能が、クライアント装置（例えば、コンピュータ１００）の代わりにプリントサーバ３００によって実行される点だけである。なお、図９では、複数のクライアント装置のうちの、コンピュータ１００以外のクライアント装置の図示が省略されている。ただし、各クライアント装置は、同じドライバ２２０Ａを有している。
【００８８】
本実施例においても、印刷処理は、図３〜図５に示す実施例と同様に、行われる。ただし、図３のステップＳ１２ａ〜Ｓ１６ａは、プリントサーバ３００（図９）のスプーラコントローラ２３２によって実行される。まず、クライアント装置１００のドライバ２２０Ａは、図２の実施例と同様に、ジョブデータを生成する（Ｓ１０ａ）。コンピュータ１００の印刷コントローラ（図示せず）は、生成されたジョブデータを、プリントサーバ３００に送信（供給）する（ジョブデータの供給は、印刷要求に相当する）。プリントサーバ３００のスプーラコントローラ２３２は、受信したジョブデータをスプーラ２３０に格納する（Ｓ１２ａ）。また、スプーラコントローラ２３２は、格納されたジョブデータを解析することによって、判断情報ＤＩを生成する（Ｓ１４ａ）。そして、スプーラコントローラ２３２は、生成した判断情報ＤＩを事前確認アプリケーション２５０に供給する（Ｓ１６ａ）。
【００８９】
プリントサーバ３００（図９）の事前確認アプリケーション２５０と、プリンタ７００とによる処理は、図３に示す実施例と同様である。事前確認アプリケーション２５０は、判断情報ＤＩをプリンタ７００に供給し、そして、判断結果ＤＲをプリンタ７００から取得する。また、事前確認アプリケーション２５０は、判断結果ＤＲをユーザに通知する。本実施例では、事前確認アプリケーション２５０は、判断結果ＤＲの通知指示を、ジョブデータの送信元に送信する（図９の実施例では、送信元はコンピュータ１００）。コンピュータ１００では、ドライバ２２０Ａが、受信した指示に応じて、判断結果ＤＲをユーザに通知する。この通知は、図５に示す実施例と同様に、行われる。ドライバ２２０Ａは、この通知に対するユーザの指示を受信し、受信したユーザ指示をプリントサーバ３００に送信する。事前確認アプリケーション２５０は、指示に応じた処理を実行する。なお、コンピュータ１００での判断結果ＤＲの通知は、ドライバ２２０Ａとは異なるプログラムによって実現されてもよい。
【００９０】
図１０は、印刷システム９００Ａの動作例を示す説明図である。図１０の動作例は、図６に示す動作例と同様に、判断結果ＤＲが「ＯＫ」を示す場合を示している。図６に示す動作例との差違は、２点ある。第１の差違は、動作［１４］が追加されている点である。第２の差違は、動作［２２］〜［２６］、［４０］、［４２］が、コンピュータ１００の代わりにプリントサーバ３００によって行われる点である。図１０では、図６中の動作と同じ動作には、図６中の番号と同じ番号が付されている。
【００９１】
動作［１０］、［１２］は、図６に示す動作［１０］、［１２］と同じである。次の動作［１４］では、コンピュータ１００（図９のドライバ２２０Ａ）は、データ処理アプリケーション２１０からの印刷要求に応じて、共有プリントキュー中に、ジョブデータを生成する。共有プリントキューは、共有のプリンタ７００のためのジョブデータを一時的に格納するメモリである（例えば、ハードディスクドライブ３２０（図８）の一部の記憶領域が、共通プリントキューとして利用される）。コンピュータ１００の印刷コントローラ（図示せず）は、プリントキューのジョブデータをプリントサーバ３００に送信する。
【００９２】
続く動作［２２］〜［５０］は、図６に示す動作［２２］〜［５０］と同じである。これにより、プリンタ７００は、ユーザの望む画像を、印刷する。
【００９３】
図１１は、印刷システム９００Ａの別の動作例を示す説明図である。図１１の動作例は、図７に示す動作例と同様に、判断結果ＤＲが「ＮＧ」を示す場合を示している。図７に示す動作例との差違は、３点ある。第１の差違は、動作［１４］が追加されている点である。この動作［１４］は、図１０の動作［１４］と同じである。第２の差違は、動作［２２］〜［２６］、［４０］が、コンピュータ１００の代わりにプリントサーバ３００によって行われる点である。第３の差違は、図７の動作［４４］の代わりに、動作［４６］が行われる点である。図１１では、図７中の動作と同じ動作には、図７中の番号と同じ番号が付されている。
【００９４】
図１１の動作［１０］〜［４０］は、図１０の動作と同じである。ただし、判断結果ＤＲは「ＮＧ」を表している。判断結果ＤＲが「ＮＧ」を表しているので、資源の予約は行われない。また、プリントサーバ３００では、事前確認アプリケーション２５０（図９）が、判断結果ＤＲをコンピュータ１００に表示させる。具体的には、事前確認アプリケーション２５０は、判断結果ＤＲをコンピュータ１００に送信する。コンピュータ１００では、ドライバ２２０Ａが、判断結果ＤＲをユーザに通知する。本実施例では、ドライバ２２０Ａは、図５に示す実施例と同様のウィンドウＲＷを表示装置１００ｚに表示する。
【００９５】
ユーザは、ウィンドウＲＷ（図５）を確認し、原因を解消するために資源の補給あるいは交換を行う（動作［６０］）。その後、ユーザは、印刷再開をコンピュータ１００に指示する（動作［７０］）。コンピュータ１００では、ドライバ２２０Ａ（図９）が、ユーザの指示をプリントサーバ３００に送信する。プリントサーバ３００では、事前確認アプリケーション２５０が、印刷処理を再開する。原因が解消している場合には、図１０の動作［２４］からの一連の動作が行われる。原因が解消していない場合には、図１１の動作［２４］からの一連の動作が繰り返される。また、ユーザは、印刷を再開せずに中止してもよい。
【００９６】
以上のように、本実施例では、判断結果ＤＲに応じてジョブデータをプリンタ７００に供給するプリントサーバ３００が、複数のクライアント装置に共通に利用される。すなわち、プリントサーバ３００は、複数のクライアント装置からの印刷要求のそれぞれに応じて、印刷要求に応じた印刷ジョブデータのための、判断情報ＤＩの生成と、判断結果ＤＲに応じたジョブデータの供給とを、実行する。従って、各クライアント装置の構成が過剰に複雑化することを防止できる。例えば、事前確認アプリケーション２５０を、各クライアント装置にインストールせずに済む。
【００９７】
なお、本実施例では、スプーラ２３０（図９）と、スプーラコントローラ２３２と、事前確認アプリケーション２５０との全体が、特許請求の範囲における「ジョブ制御部」に相当する（図９）。そして、プリントサーバ３００が「ジョブ制御装置」に相当する。
【００９８】
Ｃ．第３実施例：
図１２は、印刷システムの機能の別の実施例を示すブロック図である。この印刷システム９００Ｂは、第１クライアント装置１００Ａと、第２クライアント装置１００Ｂと、プリントサーバ３００Ｂと、プリンタ７００Ｂと、を含んでいる。クライアント装置１００Ａ、１００Ｂと、プリントサーバ３００Ｂと、プリンタ７００Ｂとのそれぞれのハードウェア構成は、図８に示すクライアント装置１００、１０１と、プリントサーバ３００と、プリンタ７００Ｂとのそれぞれの構成と、同じである。
【００９９】
本実施例では、第１クライアント装置１００Ａは、図２に示す実施例のクライアント装置１００と同様に、データ処理アプリケーション２１０と、プリンタドライバ２２０と、事前確認アプリケーション２５０と、を含んでいる。また、第１クライアント装置１００Ａは、ジョブデータを一時的に格納する共有プリントキュー２６０を含んでいる。ドライバ２２０と、共有プリントキュー２６０と、事前確認アプリケーション２５０との全体は、特許請求の範囲における「ジョブ制御部」に相当する。第１クライアント装置１００Ａは、特許請求の範囲における「第１種クライアント装置」に相当する。プリンタドライバ２２０は、ジョブデータを生成して共有プリントキュー２６０に格納する。また、プリンタドライバ２２０は、判断情報ＤＩを生成して事前確認アプリケーション２５０に供給する。事前確認アプリケーション２５０は、ジョブＩＤをプリントサーバ３００Ｂから取得し、そして、印刷判断の要求をプリントサーバ３００Ｂに供給する。この要求は、判断情報ＤＩを含んでいる。そして、事前確認アプリケーション２５０は、判断結果ＤＲをプリントサーバ３００Ｂから受信する。判断結果ＤＲが「ＯＫ」を表している場合には、事前確認アプリケーション２５０は、ジョブデータを共有プリントキュー２６０からプリントサーバ３００Ｂに出力する。なお、事前確認アプリケーション２５０の代わりに他のプログラムが、事前確認アプリケーション２５０に指示に応じて、共有プリントキュー２６０に格納されたジョブデータを制御してもよい。
【０１００】
第２クライアント装置１００Ｂは、データ処理アプリケーション２１０と、プリンタドライバ２２０Ｂと共有プリントキュー２６０とを含んでいる。第２クライアント装置１００Ｂには、事前確認アプリケーション２５０はインストールされていない。第２クライアント装置１００Ｂは、特許請求の範囲における「第２種クライアント装置」に相当する。プリンタドライバ２２０Ｂは、ジョブデータを生成して共有プリントキュー２６０に格納する。図示しない印刷コントローラは、プリントサーバ３００ＢからジョブＩＤを取得し、そして、共有プリントキュー２６０に格納されたジョブデータを、プリントサーバ３００Ｂに出力する。このように、第２クライアント装置１００Ｂは、印刷判断（事前の確認）無しで、ジョブデータをプリントサーバ３００Ｂに出力する。
【０１０１】
ジョブデータの生成と、判断情報ＤＩの生成と、判断結果ＤＲに応じたジョブデータ出力の制御と、予想使用量分の資源（消耗品）の予約とは、上述の各実施例と同様に、行われる。
【０１０２】
プリントサーバ３００Ｂは、スプーラ２３０と、スプーラコントローラ２３２Ｂと、ポートモニタ２４０と、判断部８３０Ｂと、を含んでいる。スプーラ２３０とポートモニタ２４０との構成と動作とは、上述の各実施例と同じである。スプーラコントローラ２３２Ｂは、上述の各実施例のスプーラコントローラ２３２と同様に、スプーラ２３０に格納されたジョブデータを制御する。以下、スプーラコントローラ２３２Ｂのことを、「ジョブ転送部２３２Ｂ」とも呼ぶ。判断部８３０Ｂは、上述の各実施例の判断部８３０と同様に、印刷判断を行う。本実施例では、判断部８３０Ｂは、判断ユニット８３２と通信ユニット８３４とを有している。判断ユニット８３２は、上述した印刷判断を実行する。通信ユニット８３４は、判断情報ＤＩと判断結果ＤＲとの通信を制御する。
【０１０３】
また、図１２には、プリントサーバ３００ＢのワーキングエリアＷＡが示されている。ワーキングエリアＷＡは、ＲＡＭ３１４（図８）の記憶領域の一部であり、ジョブ転送部２３２Ｂや判断部８３０Ｂによって利用されるデータを一時的に格納する。本実施例では、ワーキングエリアＷＡは、判断結果ＤＲと予想残量ＥＲとに加えて、ジョブＩＤテーブルＪＴと、２つのフラグＦ１、Ｆ２とを格納している。
【０１０４】
ジョブＩＤテーブルＪＴは、印刷が可能であると判断された印刷ジョブデータのジョブＩＤのテーブルである。判断部８３０Ｂは、印刷が可能であると判断した場合に、ジョブＩＤをジョブＩＤテーブルＪＴに追加する。また、ジョブ転送部２３２Ｂは、印刷が完了した場合に、その印刷のジョブＩＤをジョブＩＤテーブルＪＴから削除する。これらの結果、ジョブＩＤテーブルＪＴは、印刷が可能と判断されるとともに印刷が完了していないジョブデータのジョブＩＤのリストを表す。なお、ジョブ転送部２３２Ｂが印刷完了を確認する方法としては、任意の方法を採用可能である。例えば、ジョブ転送部２３２Ｂは、プリンタ７００Ｂ（ジョブ処理部８１０）から完了通知を受信してもよい。
【０１０５】
第１フラグＦ１は、判断ユニット８３２による判断の状態（ステータス）を表している。本実施例では、第１フラグＦ１は、以下の３つの状態から選択された１つを表している。
（１）アイドル（Ｉｄｌｅ）
（２）ビジー（Ｂｕｓｙ）
（３）コンプリート（Ｃｏｍｐｌｅｔｅ）
「アイドル」は、判断ユニット８３２が、新たな印刷判断の要求を待っていることを表している。「ビジー」は、判断ユニット８３２が印刷判断の実行中であることを表している。「コンプリート」は、印刷判断が完了し、そして、判断結果ＤＲの読み出しが完了していないことを表している。判断ユニット８３２は、第１フラグＦ１の値を、適宜更新する。
【０１０６】
第２フラグＦ２は、プリンタ７００Ｂが印刷判断（事前の確認）無しのジョブデータの印刷中であるか否かを表している（以下、このような印刷を「事前確認無し印刷」と呼ぶ）。第２フラグＦ２が「Ｔｒｕｅ」であることは、プリンタ７００Ｂが、事前確認無し印刷の実行中であることを表している。第２フラグＦ２が「Ｆａｌｓｅ」であることは、プリンタ７００Ｂが、事前確認無し印刷の実行中ではないことを表している。プリンタ７００Ｂが新たなジョブデータを待っている場合と、プリンタ７００Ｂが、印刷が可能と判断されたジョブデータの印刷の実行中である場合とには、第２フラグＦ２は「Ｆａｌｓｅ」である。ジョブ転送部２３２Ｂは、第２フラグＦ２の値を、適宜更新する。
【０１０７】
判断部８３０Ｂは、クライアント装置（例えば、クライアント装置１００Ａ）から判断情報ＤＩ（印刷判断の要求）を受信したことに応じて、印刷判断を実行する。判断部８３０Ｂは、印刷判断のために、資源情報ＲＩをプリンタ７００Ｂから取得する。印刷判断は、上述した各実施例と同様に行われる。そして、判断部８３０Ｂは、印刷判断の要求元（例えば、第１クライアント装置１００Ａ）に、判断結果ＤＲを送信する。
【０１０８】
ジョブ転送部２３２Ｂは、受信したジョブデータを、プリンタ７００Ｂに供給する。また、本実施例では、ジョブ転送部２３２Ｂは、クライアント装置（例えば、クライアント装置１００Ａ）からの要求に応じて、ジョブＩＤをクライアント装置に供給する。なお、ジョブＩＤの発行は、ジョブ転送部２３２Ｂとは異なるプログラムによって実現されてもよい。
【０１０９】
プリンタ７００Ｂは、ジョブ処理部８１０と、印刷エンジン７２０とを含んでいる。印刷エンジン７２０は、現状出力部７２２を含んでいる。これらの要素８１０、７２０、７２２の構成と動作とは、上述の各実施例と同じである。ジョブ処理部８１０は、受信したジョブデータに応じて、印刷を実行する。また、現状出力部７２２は、プリントサーバ３００Ｂ（判断部８３０Ｂ）の要求に応じて、資源情報ＲＩをプリントサーバ３００Ｂに供給する。
【０１１０】
本実施例では、プリントサーバ３００Ｂは、判断済ジョブデータと非判断ジョブデータとの両方を扱う。ここで、判断済ジョブデータは、印刷が可能であると判断されたジョブデータである。非判断ジョブデータは、印刷判断無しで供給されたジョブデータである。非判断ジョブデータの印刷に使用される資源の量（予想使用量）は、特定されていない。従って、非判断ジョブデータの印刷が一旦開始されると、その印刷が完了するまでは、その印刷の完了後の資源の残量を精度良く予想することが難しい。そこで、本実施例では、プリントサーバ３００Ｂは、印刷判断と、非判断ジョブデータの印刷とを、排他的に実行する。
【０１１１】
図１３は、印刷システム９００Ｂの動作例を示すシーケンス図である。このシーケンス図は、非判断ジョブデータの印刷中に、プリントサーバ３００Ｂ（図１２）が、印刷判断の要求を受信した場合を示している。
【０１１２】
最初のステップＳ１００ａでは、第２クライアント装置１００Ｂ（図１２）のプリンタドライバ２２０Ｂは、データ処理アプリケーション２１０の要求に応じて、ジョブデータを生成する。そして、第２クライアント装置１００Ｂ（図示しない印刷コントローラ）は、印刷要求をプリントサーバ３００Ｂに送信する。
【０１１３】
次のステップＳ１０２ｃでは、プリントサーバ３００Ｂ（図１２）のジョブ転送部２３２Ｂは、印刷要求に応じて、許諾を表す返答を、第２クライアント装置１００Ｂに送信する。ここで、ジョブ転送部２３２Ｂは、ジョブＩＤを決定して第２クライアント装置１００Ｂに送信する。なお、許諾を表す返答の形式としては、任意の形式を採用可能である。例えば、通信プロトコルレベルでの許諾を表すデータを、採用してもよい。
【０１１４】
次のステップＳ１０４ａでは、第２クライアント装置１００Ｂ（図示しない印刷コントローラ）は、ジョブデータとジョブＩＤとをプリントサーバ３００Ｂに送信する。本動作例では、この時点で、未処理の印刷判断要求が無いことと仮定している。この場合、非判断ジョブデータの印刷を開始しても、印刷判断（資源の残量の予想）に不具合は生じない。従って、次のステップＳ１０６ｃでは、ジョブ転送部２３２Ｂは、受信したジョブデータを、プリンタ７００Ｂに送信する。プリンタ７００Ｂ（ジョブ処理部８１０）は、受信したジョブデータに応じて、印刷を開始する。その後、ステップＳ１１２ｃで、プリンタ７００Ｂは、印刷を完了する。
【０１１５】
上述したように、非判断ジョブデータの印刷の開始から完了までの第１期間Ｔ１では、資源の残量の予測が難しい。そこで、本実施例では、判断部８３０Ｂ（図１２）は、この第１期間Ｔ１では、印刷判断を禁止する。例えば、図１３の動作例では、ステップＳ１０８ｂで、第１クライアント装置１００Ａ（事前確認アプリケーション２５０）が、ジョブＩＤを取得し、そして、印刷判断をプリントサーバ３００Ｂに要求している（事前確認アプリケーション２５０は、判断情報とジョブＩＤとを、プリントサーバ３００Ｂに送信する）。この要求は、上述の第１期間Ｔ１内のものであるので、判断部８３０Ｂは、印刷判断を実行しない。そして、判断部８３０Ｂは、判断結果を供給できないことを表す返答を、第１クライアント装置１００Ａに送信する（ステップＳ１１０ｃ）。このような返答としては、任意の返答を採用可能である。例えば、「確認中（判断中）」であることを表す返答を採用してもよい。
【０１１６】
非判断ジョブデータの印刷の完了に応じて、判断部８３０Ｂ（図１２）は、印刷判断の禁止を解除する。図１３の動作例では、第１期間Ｔ１の後のステップＳ１１４ｂで、クライアント装置１００Ａ（事前確認アプリケーション２５０）が、印刷判断をプリントサーバ３００Ｂに要求している。次のステップＳ１１６ｃでは、この要求に応じて、判断部８３０Ｂは印刷判断を行う。図１３の動作例では、判断結果が「ＯＫ」を表していることと仮定している。この場合、判断部８３０Ｂは、資源を予約し、「ＯＫ」を表す判断結果を、クライアント装置１００Ａに送信する。また、判断部８３０Ｂは、ジョブＩＤをジョブＩＤテーブルＪＴに追加する。
【０１１７】
なお、判断部８３０Ｂ（図１２）は、ステップＳ１０８ｂでの要求を受領し、印刷の完了に応じて印刷判断を開始してもよい（すなわち、判断部８３０Ｂは、印刷判断を保留してもよい）。この場合には、ステップＳ１１４ｂでは、事前確認アプリケーション２５０は、判断情報を送信せずに、プリントサーバ３００Ｂに判断結果を問い合わせればよい（図３のステップＳ３２ｂ、Ｓ４０ｂと同様）。この代わりに、判断部８３０Ｂは、ステップＳ１０８ｂでの要求を拒絶してもよい。この場合には、図１３のステップＳ１１４ｂに示すように、事前確認アプリケーション２５０は、再度、判断情報を送信することによって、印刷判断を要求すればよい。
【０１１８】
次のステップＳ１１８ｂでは、事前確認アプリケーション２５０は、受信した判断結果が「ＯＫ」を表しているか否かを確認する。図１３の動作例では、判断結果が「ＯＫ」を表しているので、事前確認アプリケーション２５０は、ジョブデータを共有プリントキュー２６０からプリントサーバ３００Ｂに送信する。また、事前確認アプリケーション２５０は、ジョブＩＤも、プリントサーバ３００Ｂに送信する。次のステップＳ１２０ｃでは、ジョブ転送部２３２Ｂは、受信したジョブデータを、プリンタ７００Ｂに供給する。プリンタ７００Ｂのジョブ処理部８１０は、受信したジョブデータに応じて印刷を開始する。そして、ジョブ処理部８１０は、印刷を完了する（ステップＳ１２２ｃ）。印刷の完了に応じて、ジョブ転送部２３２Ｂは、ジョブＩＤをジョブＩＤテーブルＪＴから削除する。
【０１１９】
図１４は、印刷システム９００Ｂの別の動作例を示すシーケンス図である。このシーケンス図は、印刷判断と、それに続く判断済ジョブデータの印刷とを表している。最初のステップＳ１３０ｂでは、事前確認アプリケーション２５０（図１２）が、印刷判断をプリントサーバ３００Ｂに要求する。この動作例では、この時点で、未処理の印刷判断要求が無いこととしている。次のステップＳ１３２ｃで、判断部８３０Ｂは、要求に応じて印刷判断を開始する。次のステップＳ１３４ｃで、判断部８３０Ｂは、印刷判断を完了する。本動作例では、判断結果が「ＯＫ」を表していることと仮定している。従って、次のステップＳ１３６ｃで、判断部８３０Ｂは、資源を予約する。また、判断部８３０Ｂは、判断結果を第１クライアント装置１００Ａに送信する。次のステップＳ１３８ｂでは、事前確認アプリケーション２５０は、「ＯＫ」を表す判断結果に応じて、ジョブデータをプリントサーバ３００Ｂに送信する。次のステップＳ１４０ｃでは、ジョブ転送部２３２Ｂは、受信したジョブデータをプリンタ７００Ｂに供給する。プリンタ７００Ｂのジョブ処理部８１０は、受信したジョブデータに応じて印刷を開始する。そして、ジョブ処理部８１０は、印刷を完了する（ステップＳ１４２ｃ）。なお、説明を省略したが、ジョブＩＤの発行と、ジョブＩＤテーブルＪＴへのジョブＩＤの追加と、ジョブＩＤテーブルＪＴからのジョブＩＤの削除とが、それぞれ行われる。
【０１２０】
判断部８３０Ｂ（図１２）は、印刷判断の開始から完了までの第２期間Ｔ２（Ｓ１３２ｃ−Ｓ１３４ｃ）では、別の印刷判断を禁止する。本実施例では、この第２期間Ｔ２の間に別の印刷判断の要求を受信した場合には、判断部８３０Ｂは、その要求を受領し、印刷判断の完了（第２期間Ｔ２の終了）に応じて、その別の印刷判断を開始する。これにより、判断部８３０Ｂは、複数の印刷判断を適切に実行することができる。なお、判断部８３０Ｂは、第２期間Ｔ２において、別の印刷判断要求を、受領せずに拒絶してもよい。
【０１２１】
また、ジョブ転送部２３２Ｂ（図１２）は、印刷判断の開始から判断済ジョブデータの印刷の完了までの第３期間Ｔ３（Ｓ１３２ｃ−Ｓ１４２ｃ）では、非判断ジョブデータの印刷を禁止する。本実施例では、この第３期間Ｔ３の間に非判断ジョブデータの印刷要求を受信した場合には、ジョブ転送部２３２Ｂは、その非判断ジョブデータを受信し、全ての判断済ジョブデータの印刷の完了に応じて、その非判断ジョブデータをプリンタ７００Ｂに供給する。
【０１２２】
ここで、判断部８３０Ｂは、非判断ジョブデータの受信の後は、その非判断ジョブデータの印刷が完了するまで、新規の印刷判断を禁止してもよい。例えば、判断部８３０Ｂは、新規の印刷判断の要求を受領し、非判断ジョブデータの印刷の完了に応じて、その新規の印刷判断を開始してよい。この代わりに、判断部８３０Ｂは、非判断ジョブデータの印刷が完了するまで、新規の印刷判断の要求を受領せずに拒絶してもよい。この場合には、クライアント装置は、改めて、印刷判断の要求を行えばよい。
【０１２３】
また、判断部８３０Ｂは、非判断ジョブデータの受信の後、その非判断ジョブデータの印刷の開始前に、新たな判断要求を受信した場合にその要求に応じて印刷判断を実行してもよい。この場合には、ジョブ転送部２３２Ｂは、全ての判断済ジョブデータの印刷が完了したことに応じて、非判断ジョブデータをプリンタ７００Ｂに供給すればよい。すなわち、ジョブ転送部２３２Ｂは、印刷システム９００Ｂの状況が、印刷が完了していない判断済ジョブデータが存在しない状況に変化したことに応じて、非判断ジョブデータをプリンタ７００Ｂに供給すればよい。
【０１２４】
なお、ジョブ転送部２３２Ｂ（図１２）は、ジョブＩＤテーブルＪＴと、ジョブデータに対応付けられたジョブＩＤとを利用して、ジョブデータが判断済ジョブデータと非判断ジョブデータとのいずれであるかを、特定する。
【０１２５】
以上のように、本実施例では、印刷判断と非判断ジョブデータの印刷とが排他的に実行される。その結果、判断済ジョブデータと非判断ジョブデータとが利用される場合であっても、予想使用量に応じた誤った印刷判断を防止できる。そして、印刷判断と、非判断ジョブデータの印刷とを、両立させることができる。
【０１２６】
図１５〜図１８は、本実施例のプリントサーバ３００Ｂ（図１２）に適用可能な処理の手順を示すフローチャートである。図１５は、判断部８３０Ｂの通信ユニット８３４による処理を示している。最初のステップＳ２００では、通信ユニット８３４は、クライアント装置から判断情報ＤＩとジョブＩＤとを受信する。次のステップＳ２０２では、通信ユニット８３４は、第１フラグＦ１（判断ユニット８３２による判断の状態）をチェック（確認）する。状態が「ビジー」とは異なる場合には（すなわち、「アイドル」あるいは「コンプリート」）、通信ユニット８３４は、次のステップＳ２０６に進行する。状態が「ビジー」である場合には、通信ユニット８３４は、状態が「ビジー」以外の状態（本実施例では、「コンプリート」）に変化することを待って（Ｓ２０４）、次のステップＳ２０６に進行する。図１４の第２期間Ｔ２における別の印刷判断の禁止は、これらのステップＳ２０２、Ｓ２０４によって実現される。
【０１２７】
次のステップＳ２０６では、通信ユニット８３４（図１２）は、判断情報とジョブＩＤとを判断ユニット８３２に供給する。この供給に応じて、判断ユニット８３２は、印刷判断を開始する（詳細は後述）。次のステップＳ２０８では、通信ユニット８３４は、第１フラグＦ１をチェック（確認）する。印刷判断の状態が「コンプリート」である場合には、通信ユニット８３４は、次のステップＳ２１４に進行する。状態が「コンプリート」とは異なる場合には（すなわち、「ビジー」）、通信ユニット８３４は、状態が「コンプリート」に変化することを待って（Ｓ２１２）、次のステップＳ２１４に進行する。ステップＳ２１４に進行する前にクライアント装置から判断結果の問い合わせを受けた場合には、通信ユニット８３４は、「確認中（判断中）」であることを表す返答をクライアント装置に送信する（ステップＳ２１０）。図１３のステップＳ１１０ｃの返答として、このステップＳ２１０の返答を採用してよい。
【０１２８】
次のステップＳ２１４では、通信ユニット８３４（図１２）は、メモリ（ワーキングエリアＷＡ）に格納された判断結果ＤＲを読み取る。そして、次のステップＳ２１６で、通信ユニット８３４は、判断結果ＤＲをクライアント装置に送信する。通信ユニット８３４は、クライアント装置からの要求に応じて、判断結果ＤＲをクライアント装置に送信してもよい。この代わりに、通信ユニット８３４は、クライアント装置からの要求無しで、判断結果ＤＲをクライアント装置に送信してもよい。
【０１２９】
通信ユニット８３４（図１２）は、クライアント装置から印刷判断の要求を受けたことに応じて、図１５の処理を実行する。図１５の処理は、複数の要求のそれぞれに応じて、並列に実行されてよい。この場合、通信ユニット８３４は、ジョブＩＤを用いて、複数の要求（ジョブ）を識別すればよい。
【０１３０】
図１６は、判断ユニット８３２（図１２）による処理を示している。判断ユニット８３２は、起動時と、消耗品の補給時と、部品の交換時とに、プリンタ７００Ｂから資源情報ＲＩ（実残量）を取得し、予想残量ＥＲの値を実残量に設定する（ステップＳ３００）。次のステップＳ３０２では、判断ユニット８３２は、第１フラグＦ１（判断の状態）を「アイドル」に設定する。これにより、図１５のステップ２０２、Ｓ２０４では、処理がステップＳ２０６に進行する。図１６の次のステップＳ３０４では、通信ユニット８３４は、第２フラグＦ２（事前確認無し印刷）をチェック（確認）する。第２フラグＦ２が「Ｆａｌｓｅ」を示す場合には（この場合、プリンタ７００Ｂが、事前確認無し印刷の実行中ではない）、判断ユニット８３２は、次のステップＳ３０８に進行する。第２フラグＦ２が「Ｔｒｕｅ」である場合には、判断ユニット８３２は、第２フラグＦ２が「Ｆａｌｓｅ」に変化することを待って（Ｓ３０６）、次のステップＳ３０８に進行する。すなわち、プリンタ７００Ｂが非判断ジョブデータの印刷を実行している場合には、判断ユニット８３２は、その印刷が完了することを待つ。図１３の第１期間Ｔ１における判断の禁止は、これらのステップＳ３０４、Ｓ３０６によって実現される。
【０１３１】
図１６の次のステップ３０８では、判断ユニット８３２（図１２）は、通信ユニット８３４から判断情報ＤＩとジョブＩＤとを受信する。なお、受信した印刷判断要求の全ての判断が完了している場合には、判断ユニット８３２は、ステップＳ３０８で、新たな印刷判断の要求を待つ。次のステップＳ３１０では、判断ユニット８３２は、第１フラグＦ１を「ビジー」に設定する。これにより、図１５のステップＳ２０８、Ｓ２１２では、処理の進行が一時的に停止される。図１６の次のステップＳ３１２では、判断ユニット８３２は、判断情報ＤＩと予想残量ＥＲとを比較して、印刷判断を行う。印刷判断は、上述の各実施例と同様である。
【０１３２】
図１７は、図１６のステップＳ３１２に続く手順を示すフローチャートである。ステップＳ３１４では、判断ユニット８３２（図１２）は、判断結果ＤＲを、ワーキングエリアＷＡに格納する。判断結果ＤＲは、ステップＳ３１０の比較結果に応じて、「ＯＫ」あるいは「ＮＧ」に設定される。
【０１３３】
判断結果ＤＲが「ＯＫ」を示す場合には、次のステップＳ３１８で、判断ユニット８３２（図１２）は、判断情報ＤＩによって表される予想使用量を予想残量ＥＲから減じることによって、予想残量ＥＲを更新する。次のステップＳ３２０で、判断ユニット８３２は、ジョブＩＤをジョブＩＤテーブルＪＴに追加する。そして、判断ユニット８３２は次のステップＳ３２２に進行する。
【０１３４】
判断結果ＤＲが「ＮＧ」を示す場合には、判断ユニット８３２（図１２）は、ステップＳ３１８、Ｓ３２０をスキップして、ステップＳ３２２に進行する。
【０１３５】
ステップＳ３２２では、判断ユニット８３２（図１２）は、第１フラグＦ１を「コンプリート」に設定する。これにより、図１５のステップＳ２０８、Ｓ２１２では、処理がステップＳ２１４に進行する。
【０１３６】
図１７の次のステップＳ３２４では、判断ユニット８３２は、メモリ（ワーキングエリアＷＡ）に格納された判断結果ＤＲが通信ユニット８３４によって読み取られたか否かを判断する。判断結果ＤＲが未読の場合には、判断ユニット８３２は、判断結果ＤＲの読み取りを待つ（Ｓ３２６：Ｙｅｓ）。判断結果ＤＲが読み取られたことに応じて、判断ユニット８３２は、図１６のステップＳ３０２に戻る。読み取りの判断方法としては任意の方法を採用可能である。例えば、通信ユニット８３４と判断ユニット８３２との間で、読み取りの現状に関する情報を交換してもよい。
【０１３７】
図１８は、ジョブ転送部２３２Ｂ（図１２）と判断ユニット８３２とによる処理を示している。最初のステップＳ４００では、ジョブ転送部２３２Ｂは、クライアント装置から、ジョブＩＤと、ジョブデータとを受信する。ジョブデータの全てを受信する前に（ジョブデータの一部を受信した段階で）、ジョブ転送部２３２Ｂは、ジョブＩＤテーブルＪＴからジョブＩＤを検索する（ステップＳ４０２）。
【０１３８】
ジョブデータが判断済ジョブデータである場合には、ジョブＩＤが検索される（Ｓ４０４：ＹＥＳ）。すなわち、ジョブＩＤがジョブＩＤテーブルＪＴに登録されている。この場合、次のステップＳ４１８で、ジョブ転送部２３２Ｂは、ジョブデータの残りを受信し、そして、受信したジョブデータをプリンタ７００Ｂに供給する。なお、ジョブデータの残りの受信は、このステップＳ４１８よりも前に完了していてもよい。プリンタ７００Ｂは、受信したジョブデータに応じて印刷を実行する。印刷が完了したことに応じて、ジョブ転送部２３２Ｂは、ジョブＩＤをジョブＩＤテーブルＪＴから削除する（ステップＳ４２０）。そして、図１８の処理が完了する。
【０１３９】
一方、ジョブデータが非判断ジョブデータである場合には、ジョブＩＤはジョブＩＤテーブルＪＴ（図１２）から検索されない（Ｓ４０４：ＮＯ）。すなわち、ジョブＩＤがジョブＩＤテーブルＪＴに登録されていない。この場合には、次のステップＳ４０６で、ジョブ転送部２３２Ｂは、ジョブＩＤテーブルＪＴが空か否かを判断する。ジョブＩＤテーブルＪＴに少なくとも１つのジョブＩＤが登録されている場合には、ジョブ転送部２３２Ｂは、ジョブＩＤテーブルＪＴが空になるのを待って（Ｓ４０８）。次のステップＳ４１０に進行する。すなわち、判断済ジョブデータのジョブＩＤがジョブＩＤテーブルＪＴに登録されている場合には、ジョブ転送部２３２Ｂは、全ての判断済ジョブデータの印刷が完了することを待つ。図１４の第３期間Ｔ３における非判断ジョブデータの印刷の禁止（保留）は、これらのステップＳ４０６、Ｓ４０８によって実現される。
【０１４０】
全ての判断済ジョブデータの印刷が完了したことに応じて、ジョブ転送部２３２Ｂ（図１２）は、非判断ジョブデータの印刷を開始する。まず、ステップＳ４１０で、ジョブ転送部２３２Ｂは、第２フラグＦ２（事前確認無し印刷）を「Ｔｒｕｅ」に設定する。これにより、図１６のステップＳ３０４、Ｓ３０６では、処理の進行が一時的に停止される。図１８の次のステップＳ４１２では、ジョブ転送部２３２Ｂは、ジョブデータの残りを受信し、そして、受信したジョブデータをプリンタ７００Ｂに供給する。なお、ジョブデータの残りの受信は、このステップＳ４１２よりも前に完了していてもよい。プリンタ７００Ｂは、受信したジョブデータに応じて印刷を実行する。次のステップＳ４１４では、判断ユニット８３２は、非判断ジョブデータの印刷の完了に応じて、プリンタ７００Ｂから資源情報ＲＩ（実残量）を取得し、予想残量ＥＲの値を実残量に設定する。次のステップＳ４１６では、ジョブ転送部２３２Ｂは、第２フラグＦ２（事前確認無し印刷）を「Ｆａｌｓｅ」に設定する。これにより、図１６のステップＳ３０４、３０６では、処理がステップＳ３０８に進行する。そして、図１８の処理が完了する。
【０１４１】
ジョブ転送部２３２Ｂ（図１２）は、クライアント装置から印刷要求を受けたことに応じて、図１８の処理を実行する。図１８の処理は、複数の要求のそれぞれに応じて、並列に実行されてよい。この場合、ジョブ転送部２３２Ｂは、ジョブＩＤを用いて、複数の要求（ジョブ）を識別すればよい。また、ジョブ転送部２３２Ｂは、複数のジョブ（判断済ジョブデータ）を受信した場合には、受信した順番にジョブデータをプリンタ７００Ｂに供給すればよい。これは、複数の非判断ジョブデータについても、同様である。
【０１４２】
なお、図１５〜図１８の実施例では、非判断ジョブデータの印刷が保留されている間に（図１８：Ｓ４０６、Ｓ４０８）、新たな印刷判断が実行され得る（図１５）。この場合には、ジョブ転送部２３２Ｂは、新たに判断された判断済ジョブデータの印刷の完了後に、非判断ジョブデータをプリンタ７００Ｂに供給する（図１８：Ｓ４０６、Ｓ４０８）。すなわち、ジョブ転送部２３２Ｂが、判断済ジョブデータの印刷が完了する前に、非判断ジョブデータを受信した場合には、判断部８３０Ｂは、新たな要求に応じた印刷判断を実行し、ジョブ転送部２３２Ｂは、全ての判断済ジョブデータの印刷が完了したことに応じて、非判断ジョブデータをプリンタ７００Ｂに供給する。これらの結果、判断済ジョブデータを非判断ジョブデータよりも優先させることができる。
【０１４３】
ただし、判断部８３０Ｂ（図１２）は、ジョブ転送部２３２Ｂが非判断ジョブデータを受信した後は、その非判断ジョブデータの印刷が完了するまで、新たな印刷判断を禁止してもよい。例えば、判断部８３０Ｂは、新たな印刷判断の要求を受領し、そして、非判断ジョブデータの印刷が完了したことに応じて、印刷判断を開始してもよい（すなわち、判断部８３０Ｂは、印刷判断を保留してもよい。）。この代わりに、判断部８３０Ｂは、非判断ジョブデータの印刷が完了するまでは、新たな印刷判断の要求を拒絶してもよい。このように、新たな印刷判断を禁止する方法としては、保留と拒絶とのいずれかを採用可能である。
【０１４４】
図１９は、非判断ジョブデータの印刷を禁止する別の動作例を示すシーケンス図である。この動作例においても、印刷判断の開始から判断済ジョブデータの印刷完了までの期間における非判断ジョブデータの印刷が禁止される。上述の動作例との差違は、非判断ジョブデータの印刷の要求が、保留される代わりに、拒絶される点だけである。他の処理は、上述の実施例（図１３〜図１８）と同じである。また、印刷システムの構成は、図１２に示す印刷システム９００Ｂと同じである。
【０１４５】
最初のステップＳ５００ｂでは、事前確認アプリケーション２５０（図１２）が、印刷判断をプリントサーバ３００Ｂに要求する。判断部８３０Ｂは、要求に応じて印刷判断を開始する（Ｓ５０１ｃ）。本動作例では、判断結果が「ＯＫ」を表していることと仮定している。次のステップＳ５０２ｃでは、判断部８３０Ｂは、資源を予約し、判断結果を第１クライアント装置１００Ａに送信する。「ＯＫ」を表す判断結果を受信したことに応じて、事前確認アプリケーション２５０は、ジョブデータをプリントサーバ３００Ｂに送信する（ステップＳ５０８ｂ）。次のステップＳ５１０ｃでは、ジョブ転送部２３２Ｂは、受信したジョブデータをプリンタ７００Ｂに供給する。プリンタ７００Ｂのジョブ処理部８１０は、受信したジョブデータに応じて印刷を開始する。そして、ジョブ処理部８１０は、印刷を完了する（ステップＳ５１２ｃ）。
【０１４６】
一方、第２クライアント装置１００Ｂは、印刷要求をプリントサーバ３００Ｂに送信し、続けて、ジョブＩＤを受信したことに応じてジョブデータの送信要求をプリントサーバ３００Ｂに送信する（ステップＳ５０４ａ）。プリントサーバ３００Ｂは、印刷要求を、印刷判断の開始から判断済ジョブデータの印刷の完了までの第４期間Ｔ４（Ｓ５０１ｃ−Ｓ５１２ｃ）に、受信している。本動作例では、ジョブ転送部２３２Ｂは、この第４期間Ｔ４では、印刷要求に対して、ジョブＩＤを送信する。しかし、ジョブ転送部２３２Ｂは、非判断ジョブデータの送信要求に対しては、拒絶を表す返答を送信する。なお、送信要求は、ジョブＩＤを含んでおり、ジョブ転送部２３２Ｂは、受信したジョブＩＤをジョブＩＤテーブルＪＴから検索する。ジョブＩＤがジョブＩＤテーブルＪＴに登録されていない場合には、ジョブ転送部２３２Ｂは、その送信要求が非判断ジョブデータに関すると判断し、拒絶を表す返答を送信する。なお、拒絶を表す返答の形式としては、任意の形式を採用可能である。例えば、通信プロトコルレベルでのビジーを表すデータを、採用してもよい。
【０１４７】
図１９の動作例では、第２クライアント装置１００Ｂは、改めて、送信要求をプリントサーバ３００Ｂに送信している（ステップＳ５１４ａ）。プリントサーバ３００Ｂは、この要求を、判断済ジョブデータの印刷の完了後に受信している。この場合には、ジョブ転送部２３２Ｂは、許諾を表す返答を、第２クライアント装置１００Ｂに送信する（Ｓ５１６ｃ）。許諾を表す返答の形式としては、任意の形式を採用可能である。例えば、通信プロトコルレベルでの許諾を表すデータを、採用してもよい。ステップＳ５１６ｃに続く３つのステップＳ５１８ａ、Ｓ５２０ｃ、Ｓ５２２ｃは、図１３の３つのステップＳ１０４ａ、Ｓ１０６ｃ、Ｓ１１２ｃと、それぞれ同じである。
【０１４８】
以上のように、ジョブ転送部２３２Ｂ（図１２）は、印刷判断の開始から判断済ジョブデータの印刷完了までの間には、非判断ジョブデータの受信を拒絶してもよい。こうすれば、受信した非判断ジョブデータを管理せずに済むので、印刷システム９００Ｂによって実行される処理を簡素化することができる。
【０１４９】
Ｃ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１５０】
変形例１：
上述の各実施例において、印刷システムの構成としては、種々の構成を採用可能である。例えば、図２に示す実施例において、ドライバ２２０が判断情報ＤＩを生成せずに、スプーラコントローラ２３２が判断情報ＤＩを生成してもよい。また、スプーラコントローラ２３２が判断情報ＤＩを生成せずに、ドライバ２２０が判断情報ＤＩを生成してもよい。また、ドライバ２２０とスプーラコントローラ２３２とのそれぞれが、判断情報ＤＩを生成する機能を有してもよい。この場合には、まず、ドライバ２２０が判断情報ＤＩを生成すればよい。そして、スプーラ２３０に格納されたジョブデータが加工された場合に、スプーラコントローラ２３２が、加工されたジョブデータの判断情報ＤＩを生成すればよい。
【０１５１】
また、図９に示す実施例において、プリントサーバ３００にプリンタドライバを設けてもよい。そして、プリントサーバ３００のプリンタドライバが、クライアント装置（例えば、コンピュータ１００）から受信したデータに応じて、ジョブデータを生成してもよい。この場合、クライアント装置１００からプリントサーバ３００に供給されるデータのフォーマットとしては、プリンタ７００とは独立な任意のフォーマットを採用可能である。例えば、いわゆるＪＰＥＧ画像データを採用してもよい。また、単純なテキストデータを採用してもよい。なお、クライアント装置１００によるプリントサーバ３００へのデータ供給は、印刷要求に相当する。
【０１５２】
また、図９に示す実施例において、判断部８３０をプリントサーバ３００に組み込んでも良い。また、プリントサーバ３００とプリンタ７００とを、１つの装置に組み込んでもよい。
【０１５３】
また、図１２に示す実施例において、プリントサーバ３００Ｂとプリンタ７００Ｂとを、１つの装置に組み込んでも良い。
【０１５４】
変形例２：
上述の各実施例において、印刷判断の条件としては、図４に示す条件に限らず、種々の条件を採用可能である。例えば、図４に示す複数の条件のうちの任意の一部の条件を採用してもよい。また、プリンタが、定期交換部品として紙送りローラを利用する場合には、そのローラの寿命が十分では無い場合に、印刷ができないと判断してもよい。
【０１５５】
一般には、印刷判断の条件としては、プリンタで利用される資源が十分であるか否かを表す任意の条件を採用可能である。ここで、プリンタの資源は、プリンタの部材を意味しており、消耗品と非消耗品とを含んでいる。消耗品としては、例えば、トナーやインクや印刷媒体（例えば、紙）が挙げられる。非消耗品としては、例えば、メモリやＣＰＵや排紙トレイ等の種々のハードウェア資源が挙げられる。
【０１５６】
変形例３：
上述の各実施例において、プリンタの状況（ステータス）に関する情報としては、図４に示す資源情報ＲＩと予想残量ＥＲとに限らず、プリンタで利用可能な資源の状況を表す種々の情報を採用可能である。例えば、図４に示す情報（資源情報ＲＩと予想残量ＥＲ）のうちの任意の一部の情報を採用してもよい。また、プリンタの状況に関する情報としては、プリンタで利用可能な消耗品の残量や、プリンタで利用可能な非消耗品の能力を、採用してよい。消耗品の残量としては、インクやトナーや紙の残量に限らず、他の消耗品の残量を採用可能である。非消耗品の能力としては、メモリの空き容量や排紙トレイの許容量に限らず、他の非消耗品の能力を採用可能である。
【０１５７】
なお、プリンタは、印刷の完了に応じて、メモリからジョブデータを削除する。従って、プリンタのメモリの空き容量の予想残量については、複数のジョブの資源が予約されている場合であっても、実際の空き容量をそのまま利用してもよい。
【０１５８】
変形例４：
上述の各実施例において、判断情報ＤＩとしては、図４に示す情報に限らず、ジョブデータの印刷に関する種々の情報を採用可能である。例えば、図４に示す情報のうちの任意の一部の情報を採用してもよい。一般には、判断情報ＤＩとしては、ジョブデータの印刷に要する資源（プリンタの資源）に関する種々の情報を採用可能である。このような情報としては、非消耗品の能力（印刷に要する能力）に関する情報を採用してよい。このような情報としては、印刷に要するメモリ量（すなわち、データ量）や、排紙トレイへ出力される印刷用紙の枚数に限らず、種々の情報を採用可能である。また、印刷に要する資源（プリンタの資源）に関する情報としては、消耗品の予想使用量（予想消費量）を採用してよい。消耗品の予想使用量としては、トナーやインクや紙の使用量に限らず、他の消耗品の使用量を採用可能である。なお、インクやトナーといった記録材料の量を表す値としては、種々の値を採用可能である。例えば、記録材料の量を表す物理量（例えば、重量や体積）を採用してもよく、また、ドットカウントを採用してもよい。
【０１５９】
変形例５：
上述の各実施例において、印刷処理の手順としては、図３、図１３〜図１９に示す手順に限らず、種々の手順を採用可能である。一般には、ジョブデータをプリンタに供給する前に判断情報を生成し、生成された判断情報と、プリンタの状況に関する情報とに応じて、ジョブデータの印刷の可否を判断し、印刷が可能であることを判断結果が示す場合に、ジョブデータをプリンタに供給するような、任意の手順を採用可能である。例えば、判断部８３０（図２、図９、図１２）は、印刷判断の完了に応じて自動的に判断結果ＤＲを事前確認アプリケーション２５０（コンピュータ１００あるいはプリントサーバ３００）に送信してもよい。
【０１６０】
ここで、判断部は、印刷が可能であると判断された場合に、消耗品の実際の残量のうちの予想使用量分の消耗品を、印刷ジョブデータの印刷のために予約することが好ましい。予約の方法としては、予想残量を利用する方法に限らず、他の種々の方法を採用可能である。また、印刷処理の方法としては、上述の各実施例の方法に限らず、種々の方法を採用可能である。例えば、ジョブＩＤを利用せずに、判断済ジョブデータと非判断ジョブデータとを識別してもよい。例えば、図１２の事前確認アプリケーション２５０は、ジョブＩＤの代わりに、判断済であることを示すフラグを、ジョブデータとともにプリントサーバ３００Ｂに供給してもよい。また、印刷判断と非判断ジョブデータの印刷とを排他的に行うことが好ましい。排他的に行う方法としては、上述の実施例の方法に限らず、種々の方法を採用可能である。また、上述の各実施例では、ジョブＩＤの要求は、印刷要求に相当する。ただし、印刷要求の形式としては、他の種々の形式を採用可能である。例えば、ジョブデータを含む要求が印刷要求として利用されてもよい。
【０１６１】
また、予想残量ＥＲを実残量にリセットするタイミングとしては、種々のタイミングを採用可能である。例えば、プリンタの起動時と、消耗品の補給時と、非判断ジョブデータの印刷が完了した時と、印刷前のジョブデータが存在しない時と、全てのジョブデータの印刷が完了した時と、の中から選択された任意のタイミングを採用可能である。
【０１６２】
また、判断結果ＤＲが「ＮＧ」を表している場合に実行される処理としては、判断結果をユーザに通知する種々の処理を採用可能である。例えば、判断結果ＤＲを表すランプを点灯させる処理を採用してもよい。また、判断結果ＤＲを表示装置に表示する処理を採用してもよい。ここで、判断結果に加えて、印刷ができないと判断された原因を、ユーザに通知することが好ましい（例えば、原因を表すランプを点灯させてもよい）。こうすれば、ユーザは、原因を容易に解消することができる。ただし、原因の通知を省略してもよい。
【０１６３】
いずれの場合も、ジョブ制御部（例えば、図２、図９、図１２の事前確認アプリケーション２５０）は、判断結果をユーザに通知するための処理を実行することが好ましい。判断結果をユーザに通知するための処理としては、通知装置を利用して通知する処理と、通知装置を有する装置に通知の指示を送信する処理と、のうちの少なくとも一方を採用可能である。通知装置としては、例えば、上述のランプや表示装置を採用可能である。
【０１６４】
なお、図５に示す実施例では、ジョブ制御部は、通知後の処理を選択することをユーザに許容している。ここで、選択肢は、「印刷中止」と「印刷再開」とに限らず、他の選択肢を採用してもよい。また、ジョブ制御部は、通知後に所定の処理を実行してもよい。例えば、ジョブ制御部は、印刷を中止してもよい。
【０１６５】
変形例６：
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２の事前確認アプリケーション２５０の機能を、論理回路を有するハードウェア回路によって実現してもよい。
【０１６６】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータプログラム）は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【０１６７】
【図１】本発明の一実施例としての印刷システム９００を示す説明図である。
【図２】印刷システム９００の機能を示すブロック図である。
【図３】事前の判断を利用した印刷処理のシーケンス図である。
【図４】判断情報ＤＩと資源情報ＲＩと予想残量ＥＲとを利用した印刷判断を示す説明図である。
【図５】判断結果ＤＲをユーザに通知するためのウィンドウを示す説明図である。
【図６】印刷システム９００の動作例を示す説明図である。
【図７】印刷システム９００の別の動作例を示す説明図である。
【図８】印刷システムの別の実施例を示す説明図である。
【図９】本実施例の印刷システム９００Ａの機能を示すブロック図である。
【図１０】印刷システム９００Ａの動作例を示す説明図である。
【図１１】印刷システム９００Ａの別の動作例を示す説明図である。
【図１２】印刷システムの機能の別の実施例を示すブロック図である。
【図１３】印刷システム９００Ｂの動作例を示すシーケンス図である。
【図１４】印刷システム９００Ｂの別の動作例を示すシーケンス図である。
【図１５】判断部８３０Ｂの通信ユニット８３４による処理を示している。
【図１６】判断ユニット８３２（図１２）による処理を示している。
【図１７】図１６のステップＳ３１２に続く手順を示すフローチャートである。
【図１８】ジョブ転送部２３２Ｂ（図１２）と判断ユニット８３２とによる処理を示すフローチャートである。
【図１９】非判断ジョブデータの印刷を禁止する別の動作例を示すシーケンス図である。
【符号の説明】
【０１６８】
１００、１００Ａ、１００Ｂ…パーソナルコンピュータ（クライアント装置）
１００ｚ…表示装置
１１０、３１０、７１０…制御部
１１２、３１２、７１２…ＣＰＵ
１１４、３１４、７１４…ＲＡＭ
１１６、３１６、７１６…ＲＯＭ
１２０、３２０…ハードディスクドライブ
２１０…データ処理アプリケーション
２２０、２２０Ａ、２２０Ｂ…プリンタドライバ
２３０…スプーラ
２３２、２３２Ｂ…スプーラ制御アプリケーション（スプーラコントローラ、ジョブ転送部）
２４０…ポートモニタ
２５０…事前確認アプリケーション
２５１…第１機能
２５２…第２機能
２５３…第３機能
２５４…第４機能
２５５…第５機能
２６０…共有プリントキュー
３００、３００Ｂ…プリントサーバ
７００、７００Ｂ…プリンタ
７２０…印刷エンジン
７２２…現状出力部
８１０…ジョブ処理部
８２０…通信処理部
８３０、８３０Ｂ…判断部
８３２…判断ユニット
８３４…通信ユニット
９００、９００Ａ、９００Ｂ…印刷システム
ＳＢ…印刷中止ボタン
ＲＳ…印刷再開ボタン
ＲＩ…資源情報
ＤＩ…判断情報
ＤＲ…判断結果
ＥＲ…予想残量
ＲＷ…ウィンドウ
ＮＥＴ…ネットワーク
Ｆ１…第１フラグ
Ｆ２…第２フラグ
ＷＡ…ワーキングエリア
ＪＴ…ジョブＩＤテーブル
【図１】
2010097521.tif 000003
【図２】
2010097521.tif 000004
【図３】
2010097521.tif 000005
【図４】
2010097521.tif 000006
【図５】
2010097521.tif 000007
【図６】
2010097521.tif 000008
【図７】
2010097521.tif 000009
【図８】
2010097521.tif 000010
【図９】
2010097521.tif 000011
【図１０】
2010097521.tif 000012
【図１１】
2010097521.tif 000013
【図１２】
2010097521.tif 000014
【図１３】
2010097521.tif 000015
【図１４】
2010097521.tif 000016
【図１５】
2010097521.tif 000017
【図１６】
2010097521.tif 000018
【図１７】
2010097521.tif 000019
【図１８】
2010097521.tif 000020
【図１９】
2010097521.tif 000021