(57)【要約】【課題】管理の柔軟性に富むジョブアカウンティングを実現する。【解決手段】クライアントコンピュータ１０１は、利用するプリンタのジョブカウンティング機能の有無を判定する。従来プリンタ１０３を利用する場合には、ジョブアカウンティングに必要な用紙サイズやページ数等の印刷情報をサーバコンピュータ１００１に送信する。サーバ１００では、ジョブアカウンティングサーバアプリケーション１００によりアカウンティング処理を行われる。ジョブアカウンティング機能付プリンタ１０４を利用する場合には、印刷ジョブを発行すれば、プリンタ１０４によりジョブアカウンティングが行われる。【選択図】図１
2006065889.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバが部門管理機能を有しているか否かを特定する特定手段と、
前記特定手段により前記プリンタドライバが部門管理機能を有していると特定された場合に、前記プリンタドライバからジョブアカウンティングに用いるための印刷情報を取得する取得手段と、
前記ジョブアカウンティングを用いるための印刷情報をサーバ装置に通知する処理を制御する制御手段と
を有するジョブアカウンティングアプリケーションを実行することを特徴とする情報処理装置。
【請求項２】
複数の排紙コマンドを含む印刷ジョブを処理するのに応じて、ジョブに含まれる印刷データの印刷枚数を判定する判定手段と、
印刷ジョブを送信する処理を制御する送信制御手段と、
ジョブアカウンティング機能が有効か否かを特定する特定手段と、
ジョブアカウンティング機能が有効であると前記特定手段により特定された場合に、前記判定手段により判定された印刷枚数をアカウンティング処理するアカウンティング処理手段と
を有するプリンタドライバを備えることを特徴とする印刷制御装置。
【請求項３】
前記アカウンティング処理手段は、ジョブアカウンティングサーバに対して、印刷枚数を示す印刷枚数情報を通知する処理を制御することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記プリンタドライバは、両面、片面、用紙タイプ、用紙サイズ、カラー情報、１枚辺りのページ数、部数のうち少なくともひとつを含む条件を設定するための設定手段をさらに有し、前記印刷枚数は、前記設定手段により設定された条件を用いて特定されることを特徴とする請求項２または３に記載の印刷制御装置。
【請求項５】
プリンタドライバが部門管理機能を有しているか否かを特定する特定工程と、
前記特定工程により前記プリンタドライバが部門管理機能を有していると特定された場合に、前記プリンタドライバからジョブアカウンティングに用いるための印刷情報を取得する取得工程と、
前記ジョブアカウンティングを用いるための印刷情報をサーバ装置に通知する処理を制御する制御工程と
を備えることを特徴とする印刷制御方法。
【請求項６】
プリンタドライバにより遂行される印刷制御方法であって、
複数の排紙コマンドを含む印刷ジョブを処理するのに応じて、ジョブに含まれる印刷データの印刷枚数を判定する判定工程と、
印刷ジョブを送信する処理を制御する送信制御工程と、
ジョブアカウンティング機能が有効か否かを特定する特定工程と、
ジョブアカウンティング機能が有効であると前記特定工程により特定された場合に、前記判定工程により判定された印刷枚数をアカウンティング処理するアカウンティング処理工程と
を備えることを特徴とする印刷制御方法。
【請求項７】
前記アカウンティング処理工程では、ジョブアカウンティングサーバに対して、印刷枚数を示す印刷枚数情報を通知する処理を制御することを特徴とする請求項６に記載の印刷制御方法。
【請求項８】
両面、片面、用紙タイプ、用紙サイズ、カラー情報、１枚辺りのページ数、部数のうち少なくともひとつを含む条件を設定するための設定工程をさらに備え、前記印刷枚数は、前記設定工程により設定された条件を用いて特定されることを特徴とする請求項６または７に記載の印刷制御方法。
【請求項９】
プリンタドライバが部門管理機能を有しているか否かを特定する特定手段と、
前記特定手段により前記プリンタドライバが部門管理機能を有していると特定された場合に、前記プリンタドライバからジョブアカウンティングに用いるための印刷情報を取得する取得手段と、
前記ジョブアカウンティングを用いるための印刷情報をサーバ装置に通知する処理を制御する制御手段と
してコンピュータを機能させるコンピュータプログラムを格納したことを特徴とするコンピュータ読出し可能な記録媒体。
【請求項１０】
複数の排紙コマンドを含む印刷ジョブを処理するのに応じて、ジョブに含まれる印刷データの印刷枚数を判定する判定手段と、
印刷ジョブを送信する処理を制御する送信制御手段と、
ジョブアカウンティング機能が有効か否かを特定する特定手段と、
ジョブアカウンティング機能が有効であると前記特定手段により特定された場合に、前記判定手段により判定された印刷枚数をアカウンティング処理するアカウンティング処理手段と
してコンピュータを機能させるコンピュータプログラムを格納したことを特徴とするコンピュータ読出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパーソナルコンピュータ等の情報処理とプリンタとを含むシステムにおける印刷制御方法および装置および媒体に関するものである。
【背景技術】
【０００２】
近年、ネットワークに接続されたプリンタに対して、使用された用紙枚数を使用したユーザごとに計数し、そのデータをもとに課金などを行うジョブアカウンティングシステムが製品化されている。
【０００３】
ジョブアカウンティングシステムにおいては、ユーザ毎に印刷枚数等の課金情報が管理される。そのため、ユーザがジョブアカウンティングシステムに属するプリンタを使用する際には、システムにより認証されて初めて使用可能になるという仕組みが通常である。ユーザはＩＤやパスワードなどの認証情報を印刷ジョブの実行前にシステムに入力し、認証を受ける。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このジョブアカウンティングシステムをコンピュータにより実現する場合には、オペレーティングシステム（ＯＳ）の環境下で実現される。この際、ＯＳの種類によっては、複数の権限レベルを定義できるが、ジョブアカウンティングの設定方法は単一の方法しか提供されていない。たとえば認証情報を保存可能にするかしないかを変更できる機能など、管理者に柔軟な運用方法を提供できていない。
【０００５】
また、たとえば複数の端末が属するネットワーク環境においてジョブアカウンティングを実現する場合には、各ユーザのジョブアカウンティングを集中的に管理することが望ましい。さらに、ジョブアカウンティング用のプログラムを有する端末と、有さない端末とが混在するシステムでは、端末によってはジョブアカウンティングの管理を行うことができない。
【０００６】
本発明は上記従来例に鑑みてなされたもので、サーバ装置の有するジョブアカウンティング機能を用いてジョブアカウンティングを実現することで、柔軟で一元的に管理できるジョブアカウンティング処理を実現する情報処理装置と印刷制御装置及び印刷制御方法を提供することを目的とする。また、プリンタ装置の有するジョブアカウンティング機能を用いてジョブアカウンティングを実現することで、柔軟で一元的に管理できることに加えて、クライアント端末にジョブアカウンティング処理用のプログラムが備えられていなくともジョブアカウンティング処理を実現できる情報処理装置と印刷制御装置及び印刷制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は次のような構成からなる。すなわち、プリンタドライバが部門管理機能を有しているか否かを特定する特定手段と、
前記特定手段により前記プリンタドライバが部門管理機能を有していると特定された場合に、前記プリンタドライバからジョブアカウンティングに用いるための印刷情報を取得する取得手段と、
前記ジョブアカウンティングを用いるための印刷情報をサーバ装置に通知する処理を制御する制御手段とを有するジョブアカウンティングアプリケーションを実行することを特徴とする情報処理装置。
【０００８】
あるいは、複数の排紙コマンドを含む印刷ジョブを処理するのに応じて、ジョブに含まれる印刷データの印刷枚数を判定する判定手段と、
印刷ジョブを送信する処理を制御する送信制御手段と、
ジョブアカウンティング機能が有効か否かを特定する特定手段と、
ジョブアカウンティング機能が有効であると前記特定手段により特定された場合に、前記判定手段により判定された印刷枚数をアカウンティング処理するアカウンティング処理手段とを有するプリンタドライバを備えることを特徴とする印刷制御装置。
【発明の効果】
【０００９】
本発明によれば、サーバ装置の有するジョブアカウンティング機能を用いてジョブアカウンティングを実現することで、柔軟で一元的に管理できるジョブアカウンティング処理を実現できるという効果を奏する。また、プリンタ装置の有するジョブアカウンティング機能を用いてジョブアカウンティングを実現することで、柔軟で一元的な管理が可能であることに加えて、クライアント端末にジョブアカウンティング処理用のプログラムが備えられていなくともジョブアカウンティング処理を実現できるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
［第１の実施の形態］
以下、本発明を適用するのに好適であるジョブアカウンティングシステムについて説明を行う。
【００１１】
＜ジョブアカウンティングシステムの構成要素の概要＞
図１は、ジョブアカウンティングシステムの一例を示す図である。このシステムは、クライアントとなるコンピュータ１０１，１０２と、ジョブアカウンティングサーバとなるコンピュータ１００１と、従来のプリンタ１０３と、ジョブアカウンティング機能を有するプリンタ１０４とを含む。コンピュータ１０１，１０２では種々のアプリケーションプログラムが実行され、そのアプリケーションプログラムによる出力がプリンタ１０３あるいはプリンタ１０４により印刷される。このシステム全体を説明する前に、そのハードウエアあるいはソフトウエアの構成要素であるジョブアカウンティングサーバアプリケーション,ジョブアカウンティングクライアントアプリケーション，ジョブアカウンティング機能付きプリンタなどについて説明する。
【００１２】
（ジョブアカウンティング機能付きプリンタ）
ジョブアカウンティング機能付きプリンタは、通常の（従来の）プリンタとしての機能に加えて、印刷したページ数や用紙サイズ、両面・片面印刷の別、カラー・モノクローム印刷の別などをユーザ毎に蓄積・管理するジョブアカウンティング機能と、ユーザの認証を行う認証機能とを有する。ユーザの認証は、後述するジョブアカウンティングクライアントアプリケーションから送られてくる認証情報を、予め格納されているユーザ固有の情報と照合し、正式なユーザであることを認証するか否かを応答する機能である。
【００１３】
（従来のプリンタ）
従来のプリンタは、ジョブアカウンティング機能を持たず、受信した印刷データを基に印刷を遂行する。
【００１４】
（ジョブアカウンティングサーバアプリケーション）
ジョブアカウンティングサーバアプリケーションは、ジョブアカウンティング機能を持たない従来のプリンタに対して、ジョブアカウンティング機能つきプリンタが有するジョブアカウンティング機能と同様の機能を提供する。ジョブアカウンティングサーバアプリケーションはジョブアカウンティングサーバとして機能するサーバコンピュータ上で実行され、その機能はジョブアカウンティング機能付きプリンタから印刷機能を取り除いたものに相当する。
【００１５】
この機能は２つに大別できる。第１は、ユーザの認証機能、第２はジョブアカウンティング機能である。ユーザの認証機能はジョブアカウンティング機能付きプリンタと同様である。しかしながら、ジョブアカウンティングサーバアプリケーションは印刷機能を持たないため、ジョブアカウンティング情報を印刷しながら生成できない。そこで、ジョブアカウンティング機能については、ジョブアカウンティングクライアントアプリケーションから送信されるジョブアカウンティング情報を蓄積・管理するというものとなっている。
【００１６】
（ジョブアカウンティングクライアントアプリケーション）
ジョブアカウンティングクライアントアプリケーションは大別して２つの機能を有する。第１にユーザの認証機能である。ジョブアカウンティングクライアントアプリケーションはプリンタドライバから認証を要求されると、その要求とともに受信した認証情報をジョブアカウンティングサーバアプリケーション、あるいは、ジョブアカウンティング機能付きプリンタに送信し、認証結果を受信してプリンタドライバに返す。
【００１７】
第２は、ジョブアカウンティング情報の生成機能である。この機能は、使用するプリンタがジョブアカウンティング機能付きプリンタでない従来のプリンタである場合に限って遂行される。ジョブアカウンティングクライアントアプリケーションは、後述するようにして印刷に関する情報を取得し、その情報から印刷ページ数やサイズ等のジョブアカウンティング情報を生成する。そして、生成したジョブアカウンティング情報をジョブアカウンティングサーバアプリケーションに送信する。この第２の機能は、ネットワーク上にジョブアカウンティングサーバアプリケーションを有するコンピュータが存在する場合に限って機能する。なお、本実施形態ではこれらの認証機能、ジョブアカウンティング機能を単一モジュール内で実現しているが、機能別のモジュールであっても良い。
【００１８】
（プリンタドライバ）
プリンタドライバは、本実施形態においては２種類に分類できる。第１は、ジョブアカウンティング機能に対応したプリンタドライバである。このプリンタドライバは、印刷に先立って、ユーザの認証要求のためのＵＩをコンピュータの画面上に実現し、認証要求をジョブアカウンティングクライアントアプリケーションに対して発行する認証機能を有している。さらに、アプリケーションから受信した印刷要求に応じて生成した印刷データに基づいて、印刷ページ数やサイズといったジョブアカウンティング情報の基となる情報をジョブアカウンティングクライアントアプリケーションに渡す機能を有する。ただし、使用されるプリンタ自体は、ジョブアカウンティング機能つきプリンタと、その機能のない従来のプリンタとがある。ジョブアカウンティング機能付きプリンタを使用する場合には、ジョブアカウンティング情報あるいはその基となる情報をジョブアカウンティングクライアントアプリケーションに渡さなくてもよいので、その場合には後者の機能は備えていなくとも良い。第２は、従来のプリンタのプリンタドライバであって、ジョブアカウンティング機能に対応していないプリンタドライバである。これは、上述した２つの機能をともに有していない。
【００１９】
＜ジョブアカウンティングシステムの詳細＞
次に、図１の構成における各部の動作を説明する。特にジョブアカウンティングクライアントアプリケーション１０１の動作に関しては、図１３のフローチャートを参照して説明する。印刷ネットワーク上に接続されたコンピュータ１００１にはジョブアカウンティングサーバアプリケーション１００が存在する。サーバコンピュータ１００１，クライアントコンピュータ１０１，クライアントコンピュータ１０２では、オペレーションシステム（ＯＳ）が動作しており、それぞれのクライアントコンピュータ１０１，１０２で動作しているＯＳをそれぞれＯＳ１、ＯＳ２とする。
【００２０】
クライアントコンピュータ１０１において、アプリケーション１０１ａは、ＯＳのＧＤＩ１０１ｂ（グラフィックデバイスインターフェース：ＯＳ１の中でグラフィック描画を行うシステム）に対して、ＡＰＩ（アプリケーションプログラミングインターフェース）を呼び出す。
【００２１】
ジョブアカウンティングクライアントアプリケーション１０１ｅは、そのＡＰＩを監視（フック）する（図１３ステップＳ１３０１）。これにより、改ページや排紙を指示するＡＰＩを何度呼び出したかをカウントして、アプリケーションが発行したジョブの排紙枚数やページ枚数を取得する。ただし、ＡＰＩのフックにより得た情報は、プリンタドライバ１０１ｃが印刷ジョブの情報を通知する機能をもたない場合に使用される。この機能は、プリンタドライバがジョブアカウンティング機能をサポートする場合には備えられているので、ジョブアカウンティングクライアントアプリケーション１０１ｅは、プリンタドライバ１０１ｃがジョブアカウンティング機能を有するか否か判定する（ステップＳ１３０２）。
【００２２】
プリンタドライバ１０１ｃがジョブアカウンティング機能を有しており、印刷情報をジョブアカウンティングクライアントアプリケーション１０１ｅに対して通知できる場合、フックして取得した情報は破棄し（ステップＳ１３０４）、プリンタドライバ１０１ｃで取得した情報をジョブアカウンティングサーバアプリケーション１００に通知する（ステップＳ１３０５）。一方プリンタドライバ１０１ｃがジョブアカウンティング機能をサポートしていない場合には、ジョブアカウンティングサーバアプリケーション１００に、ＡＰＩのフックにより得た情報を送信する。
【００２３】
ＧＤＩ１０１ｂは、アプリケーションからの印刷要求に基づいて生成した印刷データをスプーラ１０１ｄに転送して蓄積させる。スプーラ１０１ｄは、プリンタ１０３の状態を監視しながら、印刷データをプリンタ１０３に送信する。
【００２４】
クライアントコンピュータ１０２においては、アプリケーション１０２ａがＧＤＩ１０２ｂに対してＡＰＩを呼び出して印刷ジョブを発行すると、アプリケーションが呼び出したＡＰＩをプリンタドライバ１０２ｃが印刷データに変換して、その印刷データをシステムスプーラ１０２ｄに転送して蓄積させる。システムスプーラ１０２ｄは、プリンタ１０３の状態を監視して、プリンタ１０３がレディー状態であれば印刷データをプリンタ１０３に送信する。
【００２５】
ジョブアカウンティングクライアントアプリケーション１０２ｅは、プリンタドライバ１０２ｃからのＡＰＩ通知をもとに、システムスプーラ１０２ｄを監視して、印刷データとジョブアカウンティング情報を関連付けて管理を行い、その印刷ジョブの排紙枚数或いはページ数などの情報を取得する。情報取得の方法については後述する。ジョブアカウンティングクライアントアプリケーション１０２ｅは、ジョブアカウンティングクライアントアプリケーション１０１ｅと同様に、ＡＰＩをフックして得た情報あるいはプリンタドライバ１０２ｃから取得したジョブアカウンティング情報をジョブアカウンティングサーバアプリケーション１００に通知する前述のとおり、本実施例では、ネットワーク上に接続されたコンピュータにジョブアカウンティングサーバアプリケーション１００が存在し、ジョブアカウンティングクライアントアプリケーション１０２で取得したジョブアカウンティング情報をジョブアカウンティングサーバアプリケーション１００で蓄積・管理するものとしているが、印刷ジョブの情報を計数や管理などの機能は、ジョブアカウンティング機能つきプリンタ１０４に対して印刷データを送出する場合においては、ジョブアカウンティング機能つきプリンタ１０４自身により実現される。また、ユーザの認証については、認証作業自体はプリンタ１０４で行われるが、その際のユーザインターフェース（ＵＩ）はジョブアカウンティング機能つきプリンタ１０４のプリンタドライバにより実現される。
【００２６】
すなわち、ユーザがプリンタ１０４を用いて印刷を行う場合には、従来のプリンタを使用する場合と同様、アプリケーションがＧＤＩにデータを渡すと、そのデータに基づいてプリンタ１０４のプリンタドライバが印刷データを生成する。その印刷データは、システムスプーラに一時蓄積された後に、プリンタ１０４に送信される。プリンタ１０４は受信データに基づいて印刷を遂行するとともに、ページ数や用紙サイズ、両面印刷あるいはカラー印刷の別といった印刷種類に応じて、ユーザ毎のジョブアカウンティング情報を生成し、蓄積・管理する。
【００２７】
なお、図１に示したシステムには、ジョブアカウンティング機能付きプリンタ１０４と、ジョブアカウンティング機能を有さない従来のプリンタ１０３とが共存している。このようなシステムでは、クライアントコンピュータからジョブアカウンティング機能つきプリンタ１０４を用いて印刷を行う場合にも、ジョブアカウンティングクライアントアプリケーション１０２ｅによってアプリケーションからのＡＰＩの呼び出しをフックすることにより、あるいは、プリンタドライバからデータを提供されることにより、その印刷ジョブの排紙枚数或いはページ数といったジョブアカウンティング情報を取得し、それをジョブアカウンティングサーバアプリケーションに送付することで、ジョブアカウンティング情報をジョブアカウンティングサーバアプリケーションによって一元的に管理することが可能である。この場合には、プリンタ１０４におけるジョブアカウンティング情報の管理が実行されてもかまわない。すなわち、ネットワーク上に複数のジョブアカウンティングシステムが存在してもよい。
【００２８】
＜コンピュータの構成＞
ここで、図１のクライアントコンピュータ１０１，１０１及びサーバコンピュータ１００１のハードウエア構成を、図３を参照して簡単に説明しておく。図３において、コンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が統括的に制御する。ＣＰＵ１はまた、アプリケーションやＧＤＩを含むＯＳ，後述するフローチャートの手順も含めたプリンタドライバプログラム，システムスプーラ，ジョブアカウンティングクライアントアプリケーションなどのプログラムを実行して、前述した機能を実現する。
【００２９】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。ＬＡＮインターフェース（ＬＡＮＩ／Ｆ）８は、ローカルエリアネットワークに接続されて、プリンタ１０３やプリンタ１０４、他のコンピュータ等のネットワーク上の機器との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭヘのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧ（表示内容と印刷内容とを一致させる機能）を可能としている。また、ＣＰＵ１はＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【００３０】
なお、図１ではプリンタはすべてネットワークプリンタであるのでＬＡＮインターフェース８を介してコンピュータはプリンタに接続されるが、パラレルインターフェースやＵＳＢなどといったインターフェースを有し、プリンタとローカルに接続されるような構成であっても本発明を適用できる。
【００３１】
＜ジョブアカウンティング処理の流れ＞
図２は、図１におけるホストコンピュータからジョブアカウンティング機能つきプリンタ１０４への印刷データ送出の流れについて説明した図である。図２においては、コンピュータ２００は図１のコンピュータ１０１あるいは１０２に相当し、プリンタ１０４とはネットワーク経由で接続されていても、直接接続されていてもよい。また、ここではジョブアカウンティングサーバアプリケーション１００が存在していないことを想定している。また、プリンタドライバはジョブアカウンティング機能に対応したものである。なおここではＯＳとしてマイクロソフト社のウインドウズ（登録商標）を用いるものとしているので、グラフィックエンジンとしてグラフィックデバイスインターフェース（ＧＤＩ）を用いているが、他のＯＳを用いるのであれば、そのＯＳに用意されたグラフィックエンジンを利用すればよい。
【００３２】
アプリケーション２０１、グラフィックエンジン（ＧＤＩ）２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、ホストコンピュータ上の外部メモリ１１などに保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってホストコンピュータ内の内部メモリ２にロードされ実行されるプログラムモジュールである。
【００３３】
グラフィックエンジン（ＧＤＩ）２０２は、印刷装置ごとに用意されたプリンタドライバ２０３をコンピュータの内部メモリにロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。アプリケーション２０１から受け取る印刷データを、プリンタドライバによって読み取ることが可能な形式に変換し、プリンタドライバ２０３へ出力する。
【００３４】
プリンタドライバ２０３は、印刷開始時にジョブアカウンティングクライアントアプリケーション２０５に対して認証要求を行う。ジョブアカウンティングクライアントアプリケーション２０５はジョブアカウンティング機能つきプリンタ１０４に認証を問い合わせ、結果を取得し、さらにプリンタドライバ２０３に結果を通知する。認証が成功したならば、グラフィックエンジン（ＧＤＩ）２０２から受け取った描画データに基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、ＯＳによってシステムスプーラ２０４を経て印刷データとして出力される。ジョブアカウンティング機能つきプリンタ１０４に印刷データが送出される場合、印刷データ内に後述する認証情報が付加されて送出される。なお、後述するように、この認証要求先はジョブアカウンティングサーバアプリケーションの場合もある。
【００３５】
図４および図５は、プリンタドライバ２０３からジョブアカウンティングクライアントアプリケーション２０５に対して渡される情報の一例を示した図である。図４の情報は印刷の開始時に認証要求のために渡される。図５の情報は、印刷終了時にジョブアカウンティング情報として渡される。ジョブアカウンティングクライアントアプリケーション１０２ｅは、この通知をトリガーとして、前述のとおり定期的にシステムスプーラ１０２ｄを監視して、印刷データとジョブアカウンティング情報を関連付けて管理を行う。
【００３６】
図４において、ジョブ情報４０１には、このジョブがジョブアカウンティング機能つきプリンタに送付されるのか、それともジョブアカウンティング機能のないプリンタに送付されるかを識別するための情報や、後述するユーザＩＤやパスワードといった認証情報が含まれる。これは図５においても同様である。
【００３７】
ジョブ識別子４０２は、ジョブアカウンティングクライアントアプリケーション２０５がスプーラに投入される印刷ジョブとの関連付けを行うための識別子を含む。
【００３８】
図５においては、ＡＰＩの戻り値４０３は、印刷開始時にプリンタドライバからＡＰＩによりジョブアカウンティングクライアントアプリケーション２０５に図４の情報を通知した際に、それに対してジョブアカウンティングクライアントアプリケーション２０５から渡された引数を含む。
【００３９】
総用紙枚数４０４は、このジョブ排紙する総用紙枚数を含む。この情報を元に課金などを代表するジョブアカウンティングが実現可能となる。
【００４０】
ブロック化情報４０５は、１印刷ジョブ内で、用紙サイズや用紙タイプ、あるいはＮアップ印刷（１枚の中にＮページ印刷する機能）の指定など、詳細情報４０６の項目のうちのいずれかが変わる場合に、それら項目が共通する用紙ごとに分割されたブロックを示す情報を含む。１ジョブ中で上記項目が変わらなければ１ジョブが１ブロックとなる。
【００４１】
詳細情報４０６には、各ブロックに対して、両面片面の別、用紙タイプ、用紙サイズ、カラー情報、１枚あたりのページ数、部数、ブロックの総用紙枚数の各詳細情報が含まれる。これら情報により、より詳細なジョブアカウンティング機能が提供可能となる。
【００４２】
前述のとおり、図４、図５に示すジョブアカウンティング情報は、プリンタドライバからジョブアカウンティングクライアントアプリケーション２０５に渡されるが、ジョブアカウンティング機能つきプリンタ１０４では使用されない。
【００４３】
＜ジョブアカウンティングのユーザインターフェース＞
図６以降、プリンタドライバ２０３におけるジョブアカウンティングシステムにおける処理の流れについて説明する。なお、ここで、プリンタドライバ２０３はジョブアカウンティング機能に対応した、ジョブアカウンティング機能つきのプリンタ１０４であるものとする。しかしながら、プリンタドライバがジョブアカウンティング機能に対応していれば、プリンタそのものは従来プリンタ１０３であってもよい。
【００４４】
図６はジョブアカウンティングシステムにおけるプリンタドライバ２０３の機能を設定するためのグラフィックユーザインターフェース（ＧＵＩ）の画面である。これを単にプリンタ設定とも呼ぶ。図中のチェックボックス６０１がチェックＯＮの場合、プリンタドライバ２０３はジョブアカウンティングシステムの一部として動作する。一方チェックボックス６０１がチェックＯＦＦの場合、プリンタドライバ２０３はジョブアカウンティングシステムとは無関係に印刷データのみを送信する。
【００４５】
左側のアイコン６０２はチェックボックス６０１と連動して表示される。本アイコンはプリンタドライバが所有するシート（ＧＵＩとして表示される種々の画面）すべてに表示されるもので、ジョブアカウンティングの設定状況がユーザに一目でわかるように設計されている。
【００４６】
チェックボックス６０３は、ログインユーザごとに異なる権限をもつことを許すＯＳにおいて、コンピュータの環境設定などが許可された管理者権限をもつユーザがプリンタの設定を行う場合に表示される。このチェックボックスのＯＮ／ＯＦＦにより、このプリンタドライバを用いるユーザに対して、ジョブアカウンティングで必要となるパスワード情報を保持できるか否かを決定する。
【００４７】
具体的には、チェックボックス６０３がチェックＯＮの場合とＯＦＦの場合で、認証情報入力ボタン６０４を押下した際に表示されるダイアログが異なる。チェックＯＮの場合には、図７のダイアログが表示される。この場合、ユーザは、認証情報として部門あるいはユーザを特定するＩＤ７０１と、ＩＤ７０１に対するパスワード７０２を入力可能となる。
【００４８】
一方、チェックボックス６０３がＯＦＦの場合には、図８のダイアログが表示される。すなわち、ユーザは、認証情報として部門あるいはユーザを特定するＩＤ７０１のみ入力可能となる。このように、ユーザごとに異なる権限を設定できるＯＳにおいては、管理者によるセキュリティ管理のバリエーションを提供可能である。
【００４９】
図７の認証情報の入力画面におけるボタン７０３は、入力されたＩＤ７０１およびパスワード７０２がジョブアカウンティングの情報として正しいかどうかを問い合わせるためのボタンである。ＩＤ７０１とパスワード７０２が入力されている場合に押下か可能となる。ボタン７０３が押下されると、プリンタドライバ２０３はジョブアカウンティングクライアントアプリケーション２０５に認証情報の照合を要求する。ジョブアカウンティングクライアントアプリケーション２０５は、ジョブアカウンティングサーバアプリケーション１００あるいはジョブアカウンティング機能つきプリンタ１０４に認証情報を送信して認証を要求する。
【００５０】
（ケース１）
ジョブアカウンティングサーバアプリケーション１００がシステム内に存在する場合、認証情報をジョブアカウンティングサーバアプリケーション１００に送信して認証を要求する。
【００５１】
（ケース２）
プリンタドライバ２０３がジョブアカウンティング機能つきプリンタ１０４用のプリンタドライバである場合、プリンタ１０４に認証情報を送信して認証を要求する。
【００５２】
（ケース３）
プリンタドライバ２０３がジョブアカウンティング機能つきプリンタ１０４用のプリンタドライバであり、かつジョブアカウンティングサーバアプリケーション１００がシステム内に存在する場合、つまり、ジョブアカウンティングシステムがひとつの印刷システムに２つ存在する場合、プリンタ１０４に認証情報を送信して認証を要求するとともに、認証情報をジョブアカウンティングサーバアプリケーション１００に送信して認証を要求する。
【００５３】
ここで、後述する設定に応じて入力された認証情報を保存（キャッシュ）しておき、保存されている認証情報を送信して認証要求を行うこともできる。このように、認証情報をキャッシュすることによって、認証情報の問い合わせ時間を短縮することができる。
【００５４】
問い合わせによって認証情報が正しいと判断された場合、図９に示すメッセージが表示される。一方、誤っていると判断された場合、図１０に示すメッセージが表示される。
【００５５】
チェックボックス７０４は、印刷時に認証情報を確認するかどうかを選択可能にするボタンである。チェックボックス７０４がチェックＯＮの場合、アプリケーションから印刷命令がなされ、プリンタドライバ２０３による印刷が開始され、印刷データが送出される直前に図１１に示すダイアログ１１０１を表示する。一方、チェックボックス７０４がチェックＯＦＦの場合、ダイアログ１１０１は表示されず、保存された認証情報を用いて印刷が行われる。
【００５６】
ただし、チェックボックス７０４がチェックＯＦＦの場合においても、認証情報が保存されていない場合は、認証情報の入力を要求するために、たとえば図１２のように、パスワード７０２が空白状態で表示されるなどして、ダイアログ１１０１が表示されることになる。
【００５７】
このように、チェックボックス６０３の指定によって入力された認証情報を保持しておくことができ、入力の手間を省き、認証時間を短縮することができる。また、ボタン７０３の押下によって、保存する認証情報が正しいかどうかをあらかじめ確認することができ、ユーザに対して正しい認証情報を保存できるための方法を提供することができる。
【００５８】
補足として説明するならば、チェックボックス６０３においてジョブアカウンティングで必要となるパスワード情報を保持しないように設定されている場合は、パスワード７０２は保持されないので、チェックボックス７０４は表示される意味がなく、ダイアログ１１０１が必ず表示されることになる。なお、保存するかしないか指定できる認証情報は本実施形態ではパスワードに限られており、ＩＤは無条件に保存されるものとする。しかし、パスワードとＩＤとをともに保存するか否かの指定を行えるようにしても良い。
【００５９】
図７のチェックボックス７０４をオンにしておけば、ダイアログ１１０１は印刷ジョブ毎に表示されるので、ユーザは認証情報を編集でき、印刷ごとに異なるＩＤを用いた印刷が可能となる。たとえば、複数ＩＤを用いて印刷を行うような環境においてプリンタドライバ２０３が使用される場合、印刷ジョブの処理開始時に認証情報を確認させ、入力し直させることで、ＩＤごとに確実に認証を行わせることが可能となる。一方、単一の認証情報しか使用しないような環境においてプリンタドライバ２０３が使用される場合、印刷開始時の認証情報の確認を省略すれば、操作ステップを少なくすることが可能となる。
【００６０】
このように、チェックボックス７０４を設けることによって、印刷時の認証情報の確認するしないを設定可能となり、ジョブアカウンティングにおける操作ステップの減少が図れる。また、印刷ジョブごとに認証情報を変更しやすくなり、利便性が向上する。
【００６１】
印刷開始時にダイアログ１１０１が表示された場合、ＯＫボタン１１０２押下によって、印刷データ送出直前に認証情報が送出される。これによって、認証情報が正しければ印刷可と判断され、印刷データを送出する。認証情報が正しくなければ、図１０のメッセージが表示され、ＯＫボタン１００１押下により、ダイアログ１１０１が表示される。ユーザは再度認証情報を入力し、ＯＫボタン１１０２を押下することにより認証情報を送出する。
【００６２】
一方、保存している認証情報を送出する場合にはダイアログ１１０１は表示されない。認証情報が正しくなければ、図１０のメッセージが表示され、ＯＫボタン１００１押下により、ダイアログ１１０１が表示される。ユーザは再度認証情報を入力し、再度ＯＫボタン１１０２を押下することにより認証情報を送出する。キャンセルボタン１１０３押下により、印刷を中止することができる。この場合、プリンタドライバアプリケーションはプリンタドライバ２０３より印刷の失敗が通知され、以降の印刷データの送出を行わない。
【００６３】
＜プリンタ設定の処理手順＞
図１７は、図６のＵＩ画面を表示し、設定を行う際の処理手順のフローチャートである。この画面は、所定のプリンタ設定のための操作を行うことで表示され、ここではプリンタドライバにより実行される。
【００６４】
まず、ステップＳ１７０１で図６のＵＩ画面をディスプレイモニタ、例えば図３のＣＲＴ１０上に表示する。次にステップＳ１７０２でその操作を行っているユーザが、プリントの環境設定が許可された管理者ユーザであるか判定する。環境設定が許可されていないユーザの場合には、ステップＳ１７０３で、図６のチェックボックス６０３（認証情報保存のための設定）を消去あるいはグレイアウトするとともに、このチェックボックスに対する入力を行えない状態とする。もちろんこの逆に、管理者ユーザであればチェックボックス６０３を表示するようにしてもよい。
【００６５】
このようにしてＵＩ画面を表示したなら、ステップＳ１７０４でユーザによる入力を待ち、入力があればステップＳ１７０５でその内容を判定する。入力が「ＯＫ」ならばステップＳ１７０６で入力されたプリント設定を保存し、処理を終了する。ここでは認証情報を保存する設定がされており、認証情報が入力されているならその情報も保存される。入力がキャンセルボタンであれば、入力されたプリント設定を破棄して処理を終える。
【００６６】
また、押されたボタンが、プリンタ設定画面の設定ボタン６０４を押した際に開かれる図７の画面における「ベリファイ」ボタン７０３であれば、後述する図１４のステップＳ１４０８と同様にして、入力されている認証情報をジョブアカウンティングクライアントアプリケーションに渡し、認証を求める。認証結果がジョブアカウンティングクライアントアプリケーションから返されたなら、その結果を判定して、前述したように成功なら図９の画面を、失敗なら図１０の画面を表示して、ユーザに認証情報が正しく設定されているか否かを知らせる。また、その他の入力であれば、入力に応じて表示画面を更新し、ステップＳ１７０４で入力を待つ。
【００６７】
このようにして、管理者に限って認証情報の保存の設定を変更させることができ、また、認証情報を印刷に先立って確認しておくことができる。
【００６８】
＜プリンタドライバによるジョブアカウンティング処理手順＞
図１４は、上述したプリンタドライバによるジョブアカウンティングの処理の流れを示したフローチャートである。
【００６９】
ステップＳ１４０１において、アプリケーションより印刷命令を受ける。ステップＳ１４０２において、ジョブアカウンティング（図７のチェックボタン６０１）がＯＮであるか判定し、ＯＮならステップＳ１４０３へ進み、ＯＦＦならステップＳ１４１１へ進む。
【００７０】
ステップＳ１４０３において、チェックボタン７０４によって、印刷時に図１１の認証情報の確認ダイアログを表示するかどうか判定し、表示する場合はステップＳ１４０５へ進み、表示しない場合はステップＳ１４０４へ進む。
【００７１】
ステップＳ１４０４において、認証情報を保持しているか判定し、保持していればステップＳ１４１３へ進み、保持していなけれステップＳ１４０５へ進む。ステップＳ１４０４における判定は、例えば図５のチェックボタン６０３をチェックし、オンであれば認証情報は保持されているものと判定する。また、さらに認証情報の格納領域を調べ、ヌルデータなど特定のデータ以外のデータが格納されていれば認証情報が保持されていると判定しても良い。
【００７２】
ステップＳ１４０５においては、認証情報を印刷開始前に確認する設定がされているか、あるいは、認証情報が保存されていないので、認証情報確認ダイアログ１１０１を表示し、ユーザからの入力を待つ。
【００７３】
ステップＳ１４０６においては、ユーザのイベント入力が印刷実行要求（ＯＫボタン１１０２押下）であればステップＳ１４０７へ進み、そうでなければステップＳ１４１０へ進む。ステップＳ１４０７において、保持している認証情報によって印刷を開始する。このとき、認証情報の保存の設定がされている場合には、その情報を不揮発性媒体の所定の領域に保存する。
【００７４】
ステップＳ１４０８においては認証処理を実行する。具体的にはジョブアカウンティングクライアントアプリケーション２０５に対して、図４に示す情報を通知する。ジョブアカウンティングクライアントアプリケーション２０５は取得した情報をジョブアカウンティングサーバアプリケーション１００あるいはジョブアカウンティング機能つきプリンタ１０４へ送信し、認証結果を得る。
【００７５】
プリンタドライバはこの認証結果をジョブアカウンティングクライアントアプリケーションから受け取り、認証が成功したならステップＳ１４１１へ進み、失敗すればステップＳ１４０９へ進む。ステップＳ１４０９においては認証失敗メッセージを表示し、ユーザの入力を待ち、ＯＫボタン１００１押下によりステップＳ１４０５に戻る。
【００７６】
ステップＳ１４１０において、ユーザのイベント入力が印刷中止要求（キャンセルボタン１１０３押下）であるか判定し、そうである場合、ステップＳ１４１２へ進み、そうでなければ次のイベントを待つ。
【００７７】
ステップＳ１４１１において、システムスプーラに対してデータの送信が開始される。送信を終えたなら、ステップＳ１４１４でジョブアカウンティングがオンであるか判定し、ジョブアカウンティングがＯＮの場合は、印刷終了時にステップＳ１４１５で、図５に示す情報をジョブアカウンティングクライアントアプリケーション２０５に対して通知する。ジョブアカウンティングサーバアプリケーション１００はジョブアカウンティングクライアントアプリケーション２０５からこの情報を受信し、これに基づいてジョブアカウンティングを行う。なお、ジョブアカウンティングサーバアプリケーションがネットワークシステム内に存在しない場合には、この情報は送信しなくて良い。
【００７８】
一方、ジョブアカウンティング機能つきプリンタ１０４は、印刷処理にともなってプリンタ内部で計数する。
【００７９】
ステップＳ１４１２においては、アプリケーションに対して印刷の中止が通知される。
【００８０】
ステップＳ１４０４において認証情報を保持していると判定された場合には、ステップＳ１４１３において保存されている認証情報を保存領域からＲＡＭ上の認証情報の領域に読込み、ステップＳ１４０８に進んで、その認証情報を用いて認証処理を遂行する。
【００８１】
図１５は、ステップＳ１４１１における印刷処理をさらに詳しく示したフローチャートである。
【００８２】
ステップＳ１５０１では、グラフィックエンジンから渡されたグラフィックデータ（印刷しようとする画像や文書等のデータ）を取り込み、ステップＳ１５０２で新たなブロックを設ける必要があるか判定する。ここでは、新たに印刷データの生成を開始する場合や、図５の詳細情報４０６に含まれる、両面片面の別、用紙タイプ、用紙サイズ、カラー情報、１枚あたりのページ数、部数の各条件のうち、いずれかが変更される場合に、新たなブロックを生成するものとする。
【００８３】
ステップＳ１５０３では、新たなブロックを生成する。新たに生成するブロックが新たな印刷ジョブの先頭である場合には、まず図５のプリンタ名からブロック化情報４０５までの領域をメモリに確保し、その時点で確定している情報を該当する領域に書き込む。
【００８４】
そして、ステップＳ１５０４では、新たなブロックの詳細情報のための領域を図５のフォーマットで確保し、両面片面の別、用紙タイプ、用紙サイズ、カラー情報、１枚あたりのページ数、部数など、その時点で画定している情報を書き込む。
【００８５】
次にステップＳ１５０５では、グラフィックデータからプリンタに送信する例えばＰＤＬコマンドを生成する。ステップＳ１５０６で生成したコマンドが排紙コマンドであるか判定し、排紙コマンドであれば、ステップＳ１５０７で、該当ブロックの詳細情報における用紙枚数を計数する。
【００８６】
そして、ステップＳ１５０８で印刷ジョブ終了であるか判定し、終了であれば印刷データをＯＳによりプリンタに送信させて、処理を終了する。
【００８７】
以上のようにして、プリンタドライバは、印刷データを生成しつつ詳細なジョブアカウンティング情報を生成する。
【００８８】
＜ジョブアカウンティング機能付きプリンタによる認証処理＞
図１６はジョブアカウンティング機能付きプリンタによる認証処理手順である。ジョブアカウンティングサーバアプリケーションによる認証処理も同様の手順となる。
【００８９】
プリンタドライバからジョブアカウンティングクライアントアプリケーションにステップＳ１４０８で認証情報が送られると、認証情報はジョブアカウンティングクライアントアプリケーションからジョブアカウンティング機能付きプリンタへと送られる。図１５はその時点から開始される。ステップＳ１６０１で、受信した認証情報を、あらかじめ格納された、正しい認証情報のデータベースと照合する。ステップＳ１６０２でその結果を判定し、照合が成功すれば、ステップＳ１６０３で認証成功をジョブアカウンティングクライアントアプリケーションへと応答し、失敗すれば、ステップＳ１６０４で認証失敗をジョブアカウンティングクライアントアプリケーションへ応答する。こうして、本実施形態のジョブアカウンティングシステムでは次のような特徴的機能が実現される。
【００９０】
（１）印刷に先立ってユーザの認証を行えるために、印刷時に認証を行った際に認証情報が誤りであったことが判明するといった事態を防止できる。
【００９１】
（２）管理者ユーザにより、認証情報を保存するか否かの設定を行うことができる。このために、管理者は、プリンタの使用状況や、プリンタの接続されたネットワークシステム全体の状況に応じて、この設定を変えられる。例えば、印刷単価が比較的高価なカラープリンタについて、認証情報をかならず使用する都度入力させて管理を厳格にし、比較的安価で使用する頻度も高いモノクロームのプリンタについては、認証情報を保存させて操作を容易にすることができる。また、アカウントの管理単位が異なる複数の部署で共有されているプリンタについては、部署毎のアカウント情報を正確に把握するために、認証情報を印刷の都度入力させる、といったことが可能となる。
【００９２】
（３）認証情報の保存が設定されている場合には、保存した認証情報を用いることでユーザによる認証情報の入力の手間を省き、印刷に要する時間を短縮できる。
【００９３】
（４）認証情報を印刷ジョブ毎に入力させる設定を選択できるために、複数のユーザが使用する端末においては認証情報の保存の有無にかかわらず印刷ジョブ毎に認証情報を入力させ、単独のユーザが占有する端末においては、認証情報の保存が設定されていれば、保存された認証情報を用いて印刷を遂行させることができる。このため、単独ユーザの端末に対しては効率的な処理を、複数のユーザにより共有される端末については正確なアカウント管理を行うことができる。
【００９４】
（５）プリンタドライバにより、単に枚数のみならず、両面・片面の別や用紙タイプ、用紙サイズ、カラー情報、１枚あたりのページ数などに応じてジョブアカウンティング情報を生成できるために、正確なアカウント管理が可能である。
【００９５】
［第２の実施形態］
本実施形態の印刷システムは、図２で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に図１８に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成をとってもよい。
【００９６】
図１８は、図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのは、プリンタドライバ２０３がグラフィックエンジン２０２からのすべての印刷命令をプリンタの制御コマンドヘ変換し終った時点である。これに対して、図１８のシステムでは、アプリケーション２０１が印刷処理から開放されるのは、プリンタドライバ内のスプーラ（以下スプーラ）３０２がすべての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図１８で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、多彩なページハンドリング機能を実現することができる。また、後述するが、ジョブの結合、ページ入れ替えなどの編集、データのプレビューも可能である。さらに、データを解析してカラー・白黒判定などにより、プリンタの機能加味した省資源印刷、パフォーマンスの向上を実現できる。
【００９７】
これらの目的のために、図２のシステムに対し、図１８の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウィンドウから設定を行う。
【００９８】
以下、図１８における拡張方式の基本的な処理を説明する。まず、グラフィックエンジン２０２からの印刷命令をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令を送付する。
【００９９】
スプーラ３０２は受け取った印刷命令を中間コードに変換してスプールファイル３０３に出力する。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定をプリンタドライバ２０３から取得してスプールファイル３０３に保存する。なお、スプールファイル３０３は外部メモリ上にファイルとして生成するが、内部メモリ生成されても構わない。更にスプーラ３０２は、外部メモリに格納されているスプールファイルマネージャ３０４をロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【０１００】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリに格納されているデスプーラ３０５をロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードの印刷処理を行うように指示する。
【０１０１】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、もう一度グラフィックエンジン２０２経由で出力する。
【０１０２】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。
【０１０３】
プリンタドライバ２０３はプリンタ制御コマンドを生成し、システムスプーラ２０４に送出する。
【０１０４】
＜印刷ジョブのスプール処理＞
更に、図１８では、これまで説明した拡張システムに加えて、プレビューア３０６、設定変更エディタ３０７を配し、プレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。
【０１０５】
印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、図１９の１９０１に示すように、プリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにおいて、“Edit and Preview”を指定する。
【０１０６】
このように、プリンタドライバのプロパティで設定されている内容は、設定ファイルとしてＯＳが提供する構造体（Ｗｉｎｄｏｗｓ（登録商標） ＯＳでは、DEVMODEと呼ばれる）に格納される。その構造体には、例えばスプールファイル３０３に含まれる加工設定中にスプールファイルマネージャ３０４にストアを行うかどうかの設定が含まれている。この設定をスプールファイルマネージャ３０４がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル３０３にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図２０のようにスプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル３０３にスプールされたジョブがリスト表示される。図２０には、４つのジョブがスプールされている例を示しており、メニューバーもしくは、そのすぐ下のメニューアイコンを押下することにより、ジョブの操作を行うことができる。
【０１０７】
メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」(Print)、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」(Proof Print)、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」(Print Preview)、中間コードのスプールファイルを削除する「削除」(Delete)、中間コードのスプールファイルのコピーを生成する「複製」(Duplicate)、複数の中間コードのスプールファイルのジョブを結合して１つのジョブにする「結合」(Combine)、結合ジョブを元の複数のジョブに分割する「分割」(Separate)、単体ジョブもしくは結合ジョブの印刷設定（レイアウト設定やフィニッシング設定等）を変更する「ジョブ編集」(Change Print Settings)、あるジョブの印刷順序を最初にする「先頭に移動」(Move to-Top)、あるジョブの印刷順序を１つ早くする「１つ上に移動」(Move to-Previous)、あるジョブの印刷順序を１つ遅くする「１つ下に移動」(Move to-Next)、あるジョブの印刷順序を最後にする「最後に移動」(Move to-Last)の以上１１個の操作がある。
【０１０８】
スプールファイルマネージャのウィンドウ画面（図２０）上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、プレビューア３０６をロードし、プレビューア３０６に対して、スプールファイル３０３に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【０１０９】
プレビューア３０６はスプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工し、グラフィックエンジン２０２に対してＧＤＩ関数を出力し、グラフィックエンジン２０２が自身のクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
【０１１０】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５同様に、スプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を利用して出力する方法で実現可能となる。このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルとしてスプールファイル３０３に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Ｎアップ（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理）指定されている場合、両面印刷されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
【０１１１】
上記のようにプレビュー処理を行うことにより、図２１のようにスプールファイル３０３に含まれる印刷の加工設定の大プレビューがプレビューア３０６によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア３０６がクローズされ、制御がスプールファイルマネージャのウィンドウ画面（図２０）に移行する。
【０１１２】
そして、ユーザがプレビューア３０６によって表示された内容に従って、印刷を行うならば、スプールファイルマネージャ３０４上で、「印刷」(Print)もしくは「セーブして印刷」(Proof Print)を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ３０５によりジョブ設定ファイルに基づいてページ描画ファイルを加工してＧＤＩ関数を生成し、グラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【０１１３】
このように、"Edit and Preview"の設定においてスプールが指定されると、生成された印刷データはジョブ単位でスプーラに格納される。スプールされた印刷ジョブが複数選択され、選択されたジョブに関して「結合」が指定されると、スプーラは選択された印刷ジョブを結合してひとつのジョブにする。
【０１１４】
＜スプールされた印刷ジョブのジョブアカウンティング処理＞
このようなスプールシステムにおいてジョブアカウンティングを行う場合において、印刷データがスプールされた後の処理について図２２を用いて説明する。
【０１１５】
ステップＳ２２０１において、スプールファイルマネージャ３０４はイベント入力をうける。
【０１１６】
ステップＳ２２０２において、イベントが印刷命令ならばステップＳ２２０３へ進み、そうでなければステップＳ２２０４へ進む。
【０１１７】
ステップＳ２２０３において、スプールファイルマネージャ３０４はデスプーラ３０５を起動し、印刷指令を発行する。デスプーラ３０５はこの場合図２１におけるアプリケーションと同様の働きを行う。よって、印刷時の認証情報の問い合わせは、再度ディスパッチャ３０１経由でプリンタドライバ２０３に印刷要求がなされた時に行われる。この後は、図１４のステップＳ１４０２以降のよりと同様となる。
【０１１８】
ステップＳ２２０４において、イベントがジョブ結合要求ならばステップＳ２２０５へ進み、そうでなければステップＳ２２０６へ進む。
【０１１９】
ステップＳ２２０５において、選択された複数ジョブを結合ジョブとして扱う。具体的には、これら複数ジョブのスプールファイル３０３を単一のデスプーラ３０５によって一度に印刷要求（ステップＳ２２０３の処理）がなされる。
【０１２０】
なお、アプリケーションからの印刷データはディスパッチャ３０１によってスプーラ２０４に印刷データが渡されるため、この時点ではプリンタドライバ２０３にはデータは送出されていない。
【０１２１】
すなわち、図２０に示すような、複数ジョブが結合されて印刷される場合においても、結合前の各ジョブに対して認証要求が行われるのではなく、結合されて１ジョブになった後に認証処理が行われる仕組みになっている。
【０１２２】
また、第１の実施形態で説明した操作と同様に、図１１に示した認証情報入力画面において、キャンセルボタン１１０３が押下された場合のスプールシステムの処理方法について図２３を用いて説明する。なお、この処理手順は図１４とほとんど同一であるので、図２３には、図１４と異なる部分に限って示す。具体的には、図１４のステップＳ１４１２以降の処理が異なる。まず、ステップＳ１４１０でステップＳ２３０１の印刷中止の命令がアプリケーションではなくデスプーラ３０５に通知される。
【０１２３】
ステップＳ２３０２において、デスプーラ３０５は、印刷中止をスプールファイルマネージャ３０４に通知し、内部メモリからアンロードされる。
【０１２４】
そして、ステップＳ２３０３において、スプールファイルマネージャ３０４はスプーラ３０２によって生成されたスプールファイル３０３を消去して、内部メモリからアンロードされる。これにより、ジョブアカウンティングシステムにスプールシステムが拡張構成された場合もスプールファイルが外部メモリ内に保持されることなくジョブアカウンティングが行われることとなる。以上の手順により、本実施形態のジョブアカウンティングシステムでは次のような特徴的機能が実現される。
【０１２５】
（６）結合操作により、複数の印刷ジョブをひとつに結合した印刷ジョブについては、単一の印刷ジョブとして、結合されたジョブ全体に対して１回の認証処理が行われる。これにより、ユーザによる操作の簡略化と印刷の迅速化が実現できる。
【０１２６】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーグ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０１２７】
また、本発明の目的は、前述した実施形態の機能を実現する、図１３乃至図１７あるいは図２２，２３の手順を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１２９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１３１】
【図１】ジョブアカウンティングシステムの一例を示す図である。
【図２】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図３】コンピュータの構成を示すブロック図である。
【図４】プリンタドライバからジョブアカウンティングクライアントアプリケーションに対して渡される情報の一例を示す図である。
【図５】プリンタドライバからジョブアカウンティングクライアントアプリケーションに対して渡される情報の一例を示す図である。
【図６】プリンタドライバによるプリント設定のＵＩ画面の一例を示す図である。
【図７】チェックボックス６０３がチェックＯＮの場合、ボタン６０４を押下した際に表示されるダイアログの一例を示す図である。
【図８】チェックボックス６０３がチェックＯＦＦの場合、ボタン６０４を押下した際に表示されるダイアログの一例を示す図である。
【図９】認証情報が正しいと判断された場合表示されるメッセージボックスの一例を示す図である。
【図１０】認証情報が不正であると判断された場合表示されるメッセージボックスの一例を示す図である。
【図１１】認証情報確認ダイアログの一例を示す図である。
【図１２】認証情報確認ダイアログの一例を示す図である。
【図１３】ジョブアカウンティングクライアントアプリケーションの処理を示すフローチャートである。
【図１４】第１の実施形態におけるクライアント端末による印刷処理手順のフローチャートである。
【図１５】第１の実施形態におけるクライアント端末による印刷処理手順のフローチャートである。
【図１６】第１の実施形態におけるサーバあるいはジョブアカウンティング機能つきプリンタによる認証処理手順のフローチャートである。
【図１７】プリンタドライバによるプリント設定の手順を示すフローチャートである。
【図１８】アプリケーションからの印刷命令を中間コードスプールするプリントシステムの構成を示すブロック図である。
【図１９】スプールを行わせる際のプリンタドライバＧＵＩの一例を示す図である。
【図２０】印刷設定変更、プレビューを行う際に表示されるＧＵＩの一例を示す図である。
【図２１】プレビュー画面の一例を示す図である。
【図２２】第２の実施形態における印刷処理を示すフローチャートである。
【図２３】第２の実施形態における印刷処理を示すフローチャートである。
【符号の説明】
【０１３２】
１００ ジョブアカウンティングサーバアプリケーション
１０１ クライアントコンピュータ１
１０１ａ アプリケーション
１０１ｂ ＧＤＩ
１０１ｃ プリンタドライバ
１０１ｄ システムスプーラ
１０１ｅ ジョブアカウンティングクライアントアプリケーション
１０２ クライアントコンピュータ２
１０２ａ アプリケーション
１０２ｂ ＧＤＩ
１０２ｃ プリンタドライバ
１０２ｄ スプーラ
１０２ｅ ジョブアカウンティングクライアントアプリケーション
１０３ 従来プリンタ
１０４ ジョブアカウンティング機能つきプリンタ
【図１】
2006065889.tif 000003
【図２】
2006065889.tif 000004
【図３】
2006065889.tif 000005
【図４】
2006065889.tif 000006
【図５】
2006065889.tif 000007
【図６】
2006065889.tif 000008
【図７】
2006065889.tif 000009
【図８】
2006065889.tif 000010
【図９】
2006065889.tif 000011
【図１０】
2006065889.tif 000012
【図１１】
2006065889.tif 000013
【図１２】
2006065889.tif 000014
【図１３】
2006065889.tif 000015
【図１４】
2006065889.tif 000016
【図１５】
2006065889.tif 000017
【図１６】
2006065889.tif 000018
【図１７】
2006065889.tif 000019
【図１８】
2006065889.tif 000020
【図１９】
2006065889.tif 000021
【図２０】
2006065889.tif 000022
【図２１】
2006065889.tif 000023
【図２２】
2006065889.tif 000024
【図２３】
2006065889.tif 000025