(57)【要約】【課題】  オンデマンド方式おいても適切なタイミングで印刷装置の監視を開始させることを課題とする。【解決手段】スプーラＱ３が新たに印刷データを入力したことをきっかけとして、ステータス監視プログラムＱ５が当該印刷データの監視を開始している。サーバＰＣ１０にて生成された印刷データであっても必ずスプーラＱ３に入力されるため、スプーラ監視プログラムＱ４がスプーラＱ３に対する印刷データの投入状態を監視することにより、予めプリンタ３０における印刷タイミングを予測することができる。すなわち、必要なときだけステータス監視プログラムＱ５を起動すればよく、クライアントＰＣ２０における処理負担を軽減させることができる。【選択図】  図７
2007072711.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置が接続されたクライアント端末と、同クライアント端末と通信可能に接続され同クライアント端末にて受け付けられた要求に応じて各種アプリケーションを実行するサーバとを具備するオンデマンド印刷監視システムにおいて、
上記サーバは、
上記クライアント端末の要求に応じて、上記印刷装置にて出力可能な印刷データを生成する印刷データ生成手段と、
上記印刷データを上記クライアント端末に送信する送信手段とを具備するとともに、  上記クライアント端末は、
受信した上記印刷データを記憶するとともに、上記印刷装置に順次出力するスプール手段と、
上記スプール手段における状態変化を検出するスプーラ監視手段と、
上記スプール手段における状態変化が検出されたとき上記印刷装置の状態を監視するステータス監視手段とを具備することを特徴とするオンデマンド印刷監視システム。
【請求項２】
上記スプーラ監視手段は、上記スプール手段において新たな上記印刷データが記憶されたとき、状態変化があると検出することを特徴とする請求項１に記載のオンデマンド印刷監視システム。
【請求項３】
上記スプーラ監視手段は、上記スプール手段に記憶された上記印刷データの識別ＩＤを取得するとともに、当該識別ＩＤが新たなものであるとき、状態変化があると検出することを特徴とする請求項１または請求項２のいずれかに記載のオンデマンド印刷監視システム。
【請求項４】
上記ステータス監視手段は、上記スプール手段が記憶した上記印刷データに対応づけられた印刷条件を取得するとともに、当該印刷条件に応じた監視を行うことを特徴とする請求項１から請求項３のいずれかに記載のオンデマンド印刷監視システム。
【請求項５】
上記ステータス監視手段は、上記スプール手段が記憶した上記印刷データに対応づけられた印刷条件から当該印刷データの有効性を取得するとともに、当該印刷データが有効であれば当該印刷データについての監視を行うことを特徴とする請求項４に記載のオンデマンド印刷監視システム。
【請求項６】
上記ステータス監視手段は、上記スプール手段が記憶した上記印刷データに対応づけられた印刷条件から当該印刷データを印刷する用紙を特定するとともに、上記印刷装置における当該用紙の残量を監視することを特徴とする請求項４または請求項５のいずれかに記載のオンデマンド印刷監視システム。
【請求項７】
上記ステータス監視手段は、上記スプール手段が記憶した上記印刷データに対応づけられた印刷条件から当該印刷データの印刷に使用する色材を特定するとともに、上記印刷装置における当該色材の残量を監視することを特徴とする請求項４から請求項６のいずれかに記載のオンデマンド印刷監視システム。
【請求項８】
印刷装置が接続されたクライアント端末と、同クライアント端末と通信可能に接続され同クライアント端末にて受け付けられた要求に応じて各種アプリケーションを実行するサーバとを利用して行うオンデマンド印刷監視方法において、
上記サーバに備えられた印刷データ生成手段にて、上記クライアント端末の要求に応じて、上記印刷装置にて出力可能な印刷データを生成する印刷データ生成工程と、
上記サーバに備えられた送信手段にて、上記印刷データを上記クライアント端末に送信する送信工程と、
上記クライアント端末に備えられたスプール手段にて、上記サーバから受信した上記印刷データを記憶するとともに、上記印刷装置に順次出力するスプール工程と、
上記クライアント端末に備えられたスプーラ監視手段にて、上記スプール手段における状態変化を検出するスプーラ監視工程と、
上記クライアント端末に備えられたステータス監視手段にて、上記印刷装置の状態変化が検出されたとき上記印刷装置の状態を監視するステータス監視工程とを具備することを特徴とするオンデマンド印刷監視方法。
【請求項９】
印刷装置が接続されたクライアント端末と、同クライアント端末と通信可能に接続され同クライアント端末にて受け付けられた要求に応じて各種アプリケーションを実行するサーバ上にて各機能を実行させるオンデマンド印刷監視プログラムにおいて、
上記クライアント端末の要求に応じて、上記印刷装置にて出力可能な印刷データを生成する印刷データ生成機能と、上記印刷データを上記クライアント端末に送信する送信機能とを上記サーバにて実行させるとともに、
上記サーバから受信した上記印刷データを記憶するとともに、上記印刷装置に順次出力するスプール機能と、上記スプール機能における状態変化を検出するスプーラ監視機能と、上記印刷装置の状態変化が検出されたとき上記印刷装置の状態を監視するステータス監視機能とを上記クライアント端末にて実行させることを特徴とするオンデマンド印刷監視プログラム。
【請求項１０】
通信可能に接続されたサーバに対して各種アプリケーションの実行を要求するオンデマンド印刷装置において、
上記サーバが生成した印刷データを受信し、同印刷データを記憶するとともに、同印刷データを順次出力するスプール手段と、
上記スプール手段における状態変化を検出するスプーラ監視手段と、
上記スプール手段における状態変化が検出されたとき上記印刷装置の状態を監視するステータス監視手段とを具備することを特徴とするオンデマンド印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンデマンド印刷監視システム、オンデマンド印刷監視方法、オンデマンド印刷監視プログラムおよびオンデマンド印刷装置に関し、特に印刷装置が接続されたクライアント端末と、同クライアント端末と通信可能に接続されたサーバとを具備するオンデマンド印刷監視システム、オンデマンド印刷監視方法、オンデマンド印刷監視プログラムおよびオンデマンド印刷装置に関する。
【背景技術】
【０００２】
従来、ネットワークを利用したオンデマンド印刷監視システムとして、スプーラを備えたプリンタサーバＰＣに対して、クライアントＰＣがアプリケーションやプリンタドライバにて生成した印刷データを送信することにより同プリンタサーバＰＣが制御するプリンタにて印刷を実行させるものが知られている（例えば、特許文献１、参照。）。同文献においては、プリンタサーバＰＣが印刷の開始と、印刷の終了とをクライアントに通知することが提案されている。かかる構成によれば、ユーザーが印刷の指示を行った印刷データについて印刷の開始と、印刷の終了とをクライアントＰＣにて知ることができ、プリンタサーバＰＣやプリンタまで行って確認しなくてもよかった。
一方、従来より印刷を実行する際にプリンタの状態を監視することが行われている。例えば、インク等の消耗品の残量管理や印刷用紙の給紙状態等の監視を行っている。上記文献のようにクライアントＰＣにプリンタドライバが備えられる場合では、同プリンタドライバが印刷データをプリンタサーバＰＣに送信したタイミングで、クライアントＰＣにて監視プログラムを起動させ、プリンタサーバＰＣを介してプリンタの監視開始することが可能であった。
【特許文献１】特開２００３−３３０６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、クライアントＰＣの要求に応じてサーバＰＣが各種サービスを提供するオンデマンド方式が普及している。例えば、オンデマンド方式を実現させるソフトウェアとして、メタフレーム[Meta Frame]やリモートデスクトップ[remote desktop]やＶＮＣ[Virtual Network Computing]等が広く知られている。このようなオンデマンド方式にてクライアントＰＣが印刷を行おうとした場合、従来クライアントＰＣにて実行していたアプリケーションやプリンタドライバがサーバＰＣにて実行されることとなる。従って、クライアントＰＣにてユーザーが印刷を実行するための要求をしたにもかかわらず、同クライアントＰＣではプリンタドライバが実行されないため、どのタイミングで監視プログラムを実行させてよいかが分からないという問題があった。むろん、サーバＰＣとクライアントＰＣとの間で印刷データの出力タイミング等を通知するシステムを構築することも可能であるが、双方に手を加える必要があり、適用が困難であった。
本発明は、上記課題にかんがみてなされたもので、オンデマンド方式おいても適切なタイミングで印刷装置の監視を開始することができるオンデマンド印刷監視システム、オンデマンド印刷監視方法、オンデマンド印刷監視プログラムおよびオンデマンド印刷装置の提供を目的とする。
【課題を解決するための手段および発明の効果】
【０００４】
上記課題を解決するため請求項１にかかる発明では、クライアント端末とサーバとが相互に通信可能に接続され、クライアント端末には印刷装置が接続される。上記クライアント端末はユーザーから操作入力を受け付けることが可能であり、同クライアント端末にて受け付けた要求に応じて上記サーバが各種アプリケーションを実行させる。上記サーバには印刷データ生成手段と送信手段が備えられる。この印刷データ生成手段では、上記クライアント端末の要求に応じて上記印刷装置にて出力可能な印刷データを生成することができる。すなわち、上記印刷データ生成手段は上記サーバＰＣに備えられるが、同印刷データ生成手段は上記クライアント端末の要求に応じて印刷データを生成することができる。例えば、上記印刷データを作成可能なアプリケーションプログラムやプリンタドライバが上記サーバＰＣにて実行され、同アプリケーションプログラムやプリンタドライバが上記クライアント端末から遠隔操作可能な状態とされる。上記クライアント端末では上記印刷データ生成手段が操作可能なＧＵＩ等が提供され、実際の作業は上記サーバにて実行されることとなる。一方、上記送信手段は、上記印刷データ生成手段が生成した印刷データを上記クライアント端末に送信する。上記クライアント端末には上記印刷装置が接続されているため、同クライアント端末に上記印刷データを送信しておく。
【０００５】
上記クライアント端末には、スプール手段とスプーラ監視手段とステータス監視手段とが備えられる。上記スプール手段は上記サーバＰＣから受信した上記印刷データを順次上記印刷装置に出力する。また、上記印刷装置に対して一度に大量の上記印刷データが出力されないように、上記スプール手段は上記印刷データを一時的に記憶する。これにより、上記印刷装置が印刷可能な状態になったときに、記憶しておいた上記印刷データを順次出力することができる。上記スプーラ監視手段は、上記スプール手段における状態変化を検出する。そして、ステータス監視手段は、上記スプール手段における状態変化を上記スプーラ監視手段が検出したとき、上記印刷装置の状態を監視する。すなわち、上記スプール手段の状態に何らかの変動があったことをきっかけとして、上記ステータス監視手段が上記印刷装置の監視を開始させる。上記ステータス監視手段は、例えば上記印刷装置における消耗品の残量監視やエラー監視などを行う。
【０００６】
上記クライアント端末に上記印刷装置が接続されるため、同クライアント端末に備えられた上記ステータス監視手段が上記印刷装置の状態を監視することができる。しかしながら、上記印刷データ生成手段が上記サーバＰＣに備えられるため、どのようなタイミングで上記印刷データが生成されたかを上記クライアント端末に備えられた上記ステータス監視手段が直接的に認識することができない。従って、どのようなタイミングで上記ステータス監視手段が上記印刷装置の状態を監視すべきかを判別することができない。そこで、上記印刷データが一時的に記憶される上記スプール手段が上記クライアント端末に備えられることを利用することとした。具体的には、上記スプール手段では上記印刷データの受信と出力が行われるため、上記印刷データの入出力に関連して何らかの状態変化が起こることとなる。
そのため、上記印刷データの入出力に関連した状態変化をきっかけとして、適切なタイミングで上記ステータス監視手段が上記印刷装置の状態を監視を行うことができる。これにより、上記ステータス監視手段が必要なときだけ上記印刷装置の状態を監視することができるため、上記クライアント端末における処理負担を軽減させることができる。また、上記クライアント端末に備えられた上記スプール手段と上記スプーラ監視手段だけで、上記ステータス監視手段が上記印刷装置の状態を監視すべきタイミングを知ることができるため、上記サーバ端末に対して手を加える必要がなくて済む。さらに、上記印刷装置の状態を監視すべきタイミングを上記サーバ端末が上記クライアント端末に送信する必要がないため、情報漏洩の可能性が増大することもない。さらに、上記サーバ端末から上記クライアント端末までの伝送遅延を考慮する必要がないため、正確なタイミングを上記クライアント端末が検知することができる。
【０００７】
さらに、上記ステータス監視手段が上記印刷装置の監視をする好適なタイミングの一例として、請求項２にかかる発明では、上記スプール手段において新たな上記印刷データが記憶されたとき、上記スプーラ監視手段は状態変化があると検出する。すなわち、上記スプール手段において新たな上記印刷データが記憶されたことをきっかけとして、上記ステータス監視手段が上記印刷装置の監視を開始させる。上記スプール手段において新たな上記印刷データが記憶されれば、近い将来、当該印刷データは上記印刷装置にて印刷されることとなるため、同印刷装置の監視を行う必要性があると判断することができる。
【０００８】
また、上記ステータス監視手段が上記印刷装置の監視をする好適なタイミングの一例として、請求項３にかかる発明では、上記スプール手段において記憶された上記印刷データの識別ＩＤを取得し、その識別ＩＤが新たなものである場合に、上記スプーラ監視手段は状態変化があると検出する。上記スプール手段においては、各印刷データを区別するために各印刷データに対して固有の識別ＩＤが付与される。そして、上記スプール手段に記憶された上記印刷データの識別ＩＤが新たなものである場合に限り、上記ステータス監視手段が上記印刷装置の監視を開始させる。上記識別ＩＤは各印刷データに固有であるため、新たな上記識別ＩＤが取得されたことをもって、新たな上記印刷データが記憶されたことを認知することができる。このように、新たな上記印刷データに限り、上記ステータス監視手段が上記印刷装置を監視することにより、すでに監視を行っている上記印刷データに対して重複して監視が行われることが防止できる。
【０００９】
さらに、上記ステータス監視手段が行う監視の具体的な一例として、請求項４にかかる発明では、上記印刷データには同印刷データに関する印刷条件が対応づけられる。これにより、上記印刷データが出力された上記印刷装置では適切な条件で印刷を実行することができる。例えば、印刷色や印刷用紙や印刷解像度や印枚数の指定が上記印刷条件として取得される。このような印刷条件を上記ステータス監視手段が取得することにより、同印刷条件に応じた適切な監視を行うことができる。例えば、上記印刷データを出力する印刷用紙についての情報を取得しておけば、残量を監視すべき印刷用紙トレイを特定することができる。
【００１０】
また、請求項５にかかる発明では、上記印刷データに対応づけられた上記印刷条件から当該印刷データの有効性を取得する。その結果、当該印刷データが有効であれば当該印刷データについての監視を行うため、例えば印刷中止の指示がされている等の無効な上記印刷データについて無駄な監視が継続されることが防止できる。
【００１１】
さらに、上記ステータス監視手段が行う監視の具体的な一例として、請求項６にかかる発明では、上記印刷データに対応づけられた上記印刷条件から当該印刷データを印刷する用紙を特定する。そして、特定した用紙の残量が上記印刷装置においてどのような状況であるかを監視する。これにより、印刷指定された印刷用紙についての用紙切れを検知することが可能となり、ユーザーに印刷用紙の補充を促すことができる。
【００１２】
さらに、上記ステータス監視手段が行う監視の具体的な一例として、請求項７にかかる発明では、上記印刷データに対応づけられた上記印刷条件から当該印刷データの印刷に使用する色材を特定する。そして、特定した色材の状態が上記印刷装置においてどのようになっているかを監視する。これにより、インク切れやトナー切れ等を検知することが可能となり、ユーザーに必要なインクやトナーの補充を促すことができる。
【００１３】
むろん、以上の発明は、装置のみならず、請求項８のようなオンデマンド印刷監視方法によって実現することも可能であるし、請求項９のように上記方法に従った処理を実行するオンデマンド印刷監視プログラムによって実現することも可能である。また、本発明にかかる装置、方法、プログラムは単独で実施される場合もあるし、ある機器に組み込まれた状態で他の装置、方法、プログラムとともに実施されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものであり、適宜、変更可能である。さらに、請求項１０のようにオンデマンド印刷監視システムの一部を構成する印刷装置においても本発明を実現することが可能である。
【００１４】
さらに、本発明のプログラムを記録した記録媒体として提供することも可能である。このプログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。また、必ずしも全部の機能を単独のプログラムで実現するのではなく、複数のプログラムにて実現させるようなものであっても良い。この場合、各機能を複数のコンピュータに実現させるものであればよい。
【発明を実施するための最良の形態】
【００１５】
ここでは、下記の順序に従って本発明の実施形態について説明する。
（１）オンデマンド印刷監視システムの構成：
（２）印刷処理の流れ：
（３）印刷監視処理の流れ：
（４）まとめ：
【００１６】
（１）オンデマンド印刷監視システムの構成：
図１は、本発明の一実施形態にかかるオンデマンド印刷監視システムの全体構成を示している。同図において、オンデマンド印刷監視システム１はサーバコンピュータ（サーバＰＣ）１０とクライアントコンピュータ（クライアントＰＣ）２０とから構成されており、クライアントＰＣ２０にはローカルでプリンタ３０が接続されている。サーバＰＣ１０とクライアントＰＣ２０は相互にＬＡＮ[Local Area Network]接続されており、所定のプロトコルにしたがった双方向通信を行うことが可能となっている。ただし、サーバＰＣ１０とクライアントＰＣ２０はＬＡＮ接続されているものに限られず、インターネットを経由していても本発明を適用することは可能である。また、オンデマンド印刷監視システム１の一部を構成するクライアントＰＣ２０とプリンタ３０が請求項１０にかかる発明のオンデマンド印刷装置に相当する。なお、図の簡略化のためサーバＰＣ１０とクライアントＰＣ２０のみを図示したが、ネットワークを構成する端末はサーバＰＣ１０とクライアントＰＣ２０だけに限られるものではなく、他のコンピュータが接続されていてもよい。
【００１７】
サーバＰＣ１０には、内部バス１０ａによって接続されたＣＰＵ１１とＲＡＭ１２とＨＤＤ１３とＬＡＮインターフェイス（Ｉ／Ｆ）１４が備えられており、ＨＤＤ１３には各種プログラムデータが記憶されている。ＣＰＵ１１は、このプログラムデータを読み出して、同プログラムデータに基づいた処理をＲＡＭ１２をワークエリアとして利用しながら実行する。そして、必要な場合にはＬＡＮＩ／Ｆ１４を介して、ＬＡＮに対するデータの授受を行っている。
【００１８】
一方、クライアントＰＣ２０には、内部バス２０ａによって接続されたＣＰＵ２１とＲＡＭ２２とＨＤＤ２３とＬＡＮＩ／Ｆ２４と、各インターフェイス（Ｉ／Ｆ）２５，２６を介してディスプレイ２７とマウスとキーボードからなる入力機器２８とが接続されている。ＨＤＤ２４には各種プログラムデータが記憶されており、ＣＰＵ２１は、このプログラムデータを読み出して、同プログラムデータに基づいた処理をＲＡＭ１２をワークエリアとして利用しながら実行する。さらに、クライアントＰＣ２０の内部バス２０ａにはＵＳＢインターフェイス（Ｉ／Ｆ）２９が接続されており、同ＵＳＢＩ／Ｆ２９を介してプリンタ３０が接続されている。
【００１９】
図２は、オンデマンド印刷監視システム１のソフトウェア構成を示している。同図において、サーバＰＣ１０にて実行されるソフトウェアが示されている。サーバＰＣ１０においてはオペレーティングシステム（Ｏ／Ｓ）Ｐ１が実行されており、同Ｏ／Ｓ Ｐ１上にてアプリケーションＰ２と、プリンタドライバＰ３が実行されている。Ｏ／Ｓ Ｐ１は、例えばターミナルサービスやリモートデスクトップ等の遠隔制御機能を備えており、クライアントＰＣ２０の要求に応じてサーバＰＣ１０にてアプリケーションＰ２やプリンタドライバＰ３を実行するとともに、クライアントＰＣ２０に対してはアプリケーションＰ２やプリンタドライバＰ３の実行要求を具体的に行わせるためのＧＵＩ[Graphical User Interface ]を提供する。これにより、クライアントＰＣ２０では、あたかも自身がアプリケーションＰ２やプリンタドライバＰ３を実行しているような画面をディスプレイ２７にて表示させることができるとともに、入力機器２８を操作してアプリケーションＰ２やプリンタドライバＰ３に対する入力指示を行うことができる。
【００２０】
アプリケーションＰ２は、クライアントＰＣ２０の要求に応じて印刷データを生成するプログラムであり、例えばワープロソフトやＣＡＤソフト等が相当する。プリンタドライバＰ３は、アプリケーションＰ２が生成した印刷データを取得し、同印刷データをプリンタ３０が取り扱うことが可能な形式に加工する。具体的には、印刷サイズや印刷用紙や印刷枚数や印刷モード（解像度）などの印刷条件を指定するためのＧＵＩをクライアントＰＣ２０に送信し、各印刷条件の指定をクライアントＰＣ２０から取得する。そして、クライアントＰＣ２０にて指定された印刷条件に基づいて、アプリケーションＰ２が生成した印刷データのレンダリング処理や色変換処理やハーフトーン処理やラスター処理等をプリンタドライバＰ３が実行する。以上のように加工された印刷データは、印刷する画像データ自体が格納されたボディと、プリンタ３０に対して印刷用紙等の印刷条件を指定するための記述が格納されたヘッダとから構成される。また、ヘッダには、印刷条件のほかに当該印刷データを識別するための固有番号である識別ＩＤが格納される。
【００２１】
なお、以上はプリンタドライバＰ３がレンダリング処理等を行うものを例示したが、プリンタ３０がレンダリング処理を行うものであってもよい。この場合、プリンタドライバＰ３は、所定のページ記述言語によって印刷画像の内容が表現されたボディに、上述した印刷条件を格納したヘッダが付加された印刷データを生成することとなる。いずれにしても、プリンタ３０が取り扱うことができる形式に加工された印刷データがプリンタドライバＰ３にて生成されることには相違ない。プリンタドライバＰ３にて加工された印刷データはＬＡＮを経由してクライアントＰＣ２０に出力される。
【００２２】
一方、クライアントＰＣ２０においてもＯ／Ｓ Ｑ１が実行されている。そして、Ｏ／Ｓ Ｑ１上において、遠隔制御プログラムＱ２とスプーラＱ３とスプーラ監視プログラムＱ４とステータス監視プログラムＱ５とが実行されている。遠隔制御プログラムＱ２とスプーラＱ３とスプーラ監視プログラムＱ４とステータス監視プログラムＱ５はそれぞれ独立したプログラムであるが、Ｏ／Ｓ Ｑ１が提供するＡＰＩ[Application Program Interface]により連携した機能を実現することが可能となっている。遠隔制御プログラムＱ２は、サーバＰＣ１０にてアプリケーションＰ２やプリンタドライバＰ３の実行を要求するための処理や、サーバＰＣ１０から受信したＧＵＩをディスプレイ２７にて表示させるとともに、同ＧＵＩ上にて入力機器２８からの入力を受け付ける処理を行っている。例えば、サーバＰＣ１０のＯ／Ｓ Ｐ１が遠隔制御機能としてターミナルサービスを採用する場合には、クライアントＰＣ２０においてはターミナルサービスに対応可能な遠隔制御プログラムＱ２としてメタフレームが適用される。
【００２３】
スプーラＱ３は、サーバＰＣ１０から送信された印刷データを順次受信し、同印刷データを順次記憶する。各印刷データには固有の識別ＩＤが添付されているため、印刷データが複数記憶された場合でも混同することはない。また、印刷データの記憶と並行してプリンタ３０のアイドル状態を検出し、アイドル状態であれば記憶された印刷データを順次プリンタ３０に出力する処理を行っている。これにより、プリンタ３０における印刷データの一時的な混雑を解消することができる。
【００２４】
スプーラ監視プログラムＱ４は、ＡＰＩを介してスプーラＱ３の状態を常時監視している。具体的には、スプーラＱ３が新たに印刷データを記憶したことを検出する。そして、新たに記憶されている印刷データについての印刷条件と識別ＩＤをＡＰＩを介してスプーラＱ３に問い合わせ、同印刷条件と識別ＩＤを取得する。そして、識別ＩＤが新たなものであり、その印刷条件が有効なものである場合には、ＡＰＩを介して、ステータス監視プログラムＱ５を起動させる。ステータス監視プログラムＱ５はスプーラ監視プログラムＱ４が検出した新たな印刷データの印刷が終了するまでプリンタ３０の監視を行い、その印刷の終了とともに監視を終了させる。具体的には、プリンタ３０のエラー検出や、印刷データに対応づけられた印刷条件を取得し、印刷を行う印刷用紙の残量等の監視を行う。ステータス監視プログラムＱ５が行っている監視の状況はディスプレイ２７に表示される。
【００２５】
プリンタ３０は、スプーラＱ３から印刷データを受け取ると、同印刷データから印刷条件を取得し、同印刷条件に応じた自己の設定を行う。そして、印刷データを構成する画像データを取得し、同画像データを印刷用紙に出力する。また、印刷画像がページ記述言語によって構成されている場合には、同ページ記述言語に基づいてプリンタ３０がレンダリング処理を行い、その後の色変換処理やハーフトーン処理やラスター処理等を実行し、印刷用紙に出力する。プリンタ３０の印刷方式はどのようなものであってもよいし、カラープリンタでもモノクロプリンタであってもよい。むろん、本発明の印刷装置としての構成を一部に含んでいればよく、スキャナ等を併合させた複合機であってもよい。
【００２６】
（２）印刷処理の流れ：
図３は、印刷処理の流れを示している。同図において、サーバＰＣ１０においてはアプリケーションＰ２が実行されている。クライアントＰＣ２０では遠隔制御プログラムＱ２が実行されており、同遠隔制御プログラムＱ２がサーバＰＣ１０のアプリケーションＰ２が提供するＧＵＩをディスプレイ２７にて表示させるとともに、同ＧＵＩ上にて入力機器２８からの入力を受け付ける処理を行っている。ステップＳ１００において、クライアントＰＣ２０における入力機器２８の操作にしたがってアプリケーションＰ２が文書データの作成を行う。ステップＳ１１０では、クライアントＰＣ２０における印刷実行の指示を受け付け、プリケーションＰ２が文書データをプリンタドライバＰ３に出力する。
【００２７】
ステップＳ１２０では、プリンタドライバＰ３が印刷条件を指定するためのＧＵＩを生成し、クライアントＰＣ２０にて印刷条件の入力が受け付けられる。クライアントＰＣ２０にて印刷条件が確定されると、ステップＳ１３０にてレンダリング処理を行う。具体的には、印刷条件として指定された解像度や印刷サイズ等に基づく大きさで、印刷する画像の画像データを印刷ページごとに生成する。ステップＳ１４０においては、プリンタドライバＰ３がステップＳ１３０にて生成した各ページの画像データに対して色変換処理やハーフトーン処理やラスター処理等を実行する。そして、加工された画像データに印刷条件が格納されたヘッダを添付することにより、印刷データを生成する。さらに、ステップＳ１５０においてはクライアントＰＣ２０に対して生成した印刷データを送信する。これを受けクライアントＰＣ２０にて実行されているスプーラＱ３は、印刷データをステップＣ１１０にて受信する。
【００２８】
図４は、クライアントＰＣ２０にて実行されるスプーラＱ３が行う蓄積処理の流れを示している。同図において、ステップＢ１００においてはサーバＰＣ１０からの印刷データの受信を待ち受けている。ステップＢ１１０にて受信があることが確認されるまで、ステップＢ１００にて受信待ちが継続される。ステップＢ１１０にて印刷データの受信があると、ステップＢ１２０にて受信した印刷データをＨＤＤ２３に記憶させる。ＨＤＤ２３には印刷データを記憶する領域が確保されており、印刷データが受信されるごとに順次印刷データを記憶することが可能となっている。
【００２９】
図５は、ＨＤＤ２３に記憶された印刷データを管理するジョブ管理テーブルを示している。スプーラＱ３はジョブ管理テーブルＴ１を作成することにより、記憶した印刷データを管理する。印刷データにはそれぞれ固有の識別ＩＤが付されているため、同識別ＩＤを取得することにより各印刷データを混同することなく管理することができる。新たな印刷データが受信されるとジョブ管理テーブルＴ１が一行追加され、新たな印刷データに対応づけられた識別ＩＤが追記されることとなる。
【００３０】
図６は、スプーラＱ３が上述した蓄積処理と並行して実行させる出力処理の流れを示している。同図において、ステップＤ１００においてはジョブ管理テーブルＴ１にて有効な印刷データを検索する。例えば、印刷中止の指示がされた印刷データについては有効な印刷データとして検出しない。ステップＤ１１０にて有効な印刷データが検出されない場合には、ステップＤ１００に戻り再度、印刷データの検索を行う。一方、有効な印刷データが検出されたとき、ステップＤ１２０にてプリンタ３０がアイドル状態となっているかどうかを判定する。そして、アイドル状態となっていない場合には、ステップＤ１５０にてプリンタ３０がアイドル状態となるまで待機する。
【００３１】
ステップＤ１２０にてプリンタ３０がアイドル状態となっていることが確認されると、ステップＤ１３０では、ステップＤ１１０にて検索された印刷データをプリンタ３０に出力する。印刷データが出力されたプリンタ３０は当該印刷データに基づいて印刷を実行させる。そして、ステップＤ１４０では、スプーラＱ３はステップＤ１３０にて出力した印刷データを削除する。これにより、ジョブ管理テーブルＴ１における当該印刷データにつての識別ＩＤも削除されることとなる。以上説明した蓄積処理と、出力処理をスプーラＱ３がそれぞれ繰り返して実行することにより、プリンタ３０がビジー状態のときには印刷データを一時的にバッファし、アイドル状態となったときにバッファした印刷データを順次印刷していくことができる。
【００３２】
（３）印刷監視処理の流れ：
図７は、印刷監視処理の流れを示している。同図において、ステップＥ１００では、スプーラ監視プログラムＱ４がスプーラＱ３の状態変化をＡＰＩを介して監視する。具体的には、スプーラＱ３が新たな印刷データを記憶したという状態変化を検出する。なお、スプーラ監視プログラムＱ４とスプーラＱ３は、常駐プログラムであり、クライアントＰＣ２０の起動時には常時起動させられている。むろん、Ｏ／Ｓ Ｐ１は常時起動されているため、スプーラ監視プログラムＱ４とスプーラＱ３との仲介をなすＡＰＩも常時機能させられている。上述したようにスプーラＱ３が蓄積処理のステップＢ１２０にて印刷データを新たに記憶したことをＡＰＩの関数を使用して、スプーラ監視プログラムＱ４が検出する。ステップＥ１２０においては、スプーラ監視プログラムＱ４がスプーラＱ３から現在記憶されている印刷データの識別ＩＤを取得する。図５のジョブ管理テーブルＴ１に示すように、スプーラＱ３は記憶している印刷データの識別ＩＤを管理しているため、スプーラ監視プログラムＱ４はＡＰＩ関数を利用して、同識別ＩＤの一覧を取得することができる。
【００３３】
ステップＥ１３０においては、取得した識別ＩＤに新たなものが含まれているかどうかを判定する。印刷データが一つも記憶されていない状態から初めてスプーラＱ３が印刷データを記憶させたときには、その印刷データの識別ＩＤが新たなものとして判定されることとなる。一方、予めいくつかの印刷データを記憶している状態において、さらに新たな印刷データが記憶された場合には、前回取得した識別ＩＤの一覧と、今回取得した識別ＩＤの一覧とを比較し、今回の一覧にのみ含まれている識別ＩＤが新たなものであると判定する。識別ＩＤは各印刷データに対して固有に付されるため、以上のような判断手法によって、新規な印刷データが記憶されたことを判定することができ、すでに記憶されている印刷データについて重複して監視が行われることが防止できる。
【００３４】
ステップＥ１４０においては、新たな印刷データに関する印刷条件を取得する。具体的には、印刷許可情報や印刷枚数や印刷用紙や印刷モード等の情報を取得する。ステップＥ１５０においては、ステップＥ１３０にて新たなものであると判定した印刷データが有効なものであるかどうかを判定する。例えば、新たな印刷データに対して印刷中止の指示がされている場合や、新たな印刷データがエラーデータである場合には、当該印刷データが有効なものでないと判定する。ステップＥ１４０にて新たな印刷データに関する印刷条件を取得しているため、同印刷条件に基づいて有効／無効を判定することができる。
【００３５】
そして、新たな印刷データが有効なものである場合には、ステップＥ１６０において、ステータス監視プログラムＱ５を起動させる。そして、検出した新たな印刷データについての識別ＩＤと印刷条件をステータス監視プログラムＱ５にＡＰＩを介して受け渡す。すなわち、ステータス監視プログラムＱ５を起動させるとともに、監視対象の印刷データ、および、具体的な監視方法を特定するためのデータをステータス監視プログラムＱ５に受け渡す。
【００３６】
ただし、ステップＥ１６０を実行する時点で、すでにステータス監視プログラムＱ５が起動されている場合もある。スプーラＱ３が印刷未実行の印刷データを記憶している状態で、新たな印刷データが追加記憶された場合には、すでにステータス監視プログラムＱ５が起動されていることとなる。このような場合には、ステータス監視プログラムＱ５が起動された状態を維持しつつ、ステータス監視プログラムＱ５が監視対象とする印刷データに今回検出された新たな印刷データを追加する。すなわち、今回検出された新たな印刷データの識別ＩＤと印刷条件を起動されているステータス監視プログラムＱ５に対して受け渡すことにより、監視対象の印刷データを追加する。
【００３７】
このようにすることにより、スプーラＱ３が印刷データを一つも記憶していない状態にて新たな印刷データが記憶された場合には、ステータス監視プログラムＱ５を起動させた上で当該新たな印刷データを監視対象として指定することとができるとともに、スプーラＱ３が印刷データを記憶している状態にて新たな印刷データが記憶された場合には、すでに起動しているステータス監視プログラムＱ５に対して当該新たな印刷データを監視対象として追加指定することができる。従って、スプーラＱ３が複数の印刷データを記憶している場合には、起動しているステータス監視プログラムＱ５に対して複数の印刷データが監視対象として指定されていることとなる。
【００３８】
図８は、ステータス監視プログラムＱ５が実行するステータス監視処理の流れを示している。ステータス監視プログラムＱ５が起動すると、ステップＦ１００にて監視対象の印刷データの印刷が開始されたかどうかを検出する。上述した出力処理のステップＤ１３０でスプーラＱ３が印刷データをプリンタ３０に出力したことと、出力された印刷データの識別ＩＤを、ステータス監視プログラムＱ５がＡＰＩを介してスプーラＱ３から検出する。むろん、実際に印刷を行っているプリンタ３０からステータス監視プログラムＱ５が印刷中の印刷データの識別ＩＤを取得するようにしてもよい。ステップＦ１１０においてはステータス監視プログラムＱ５がプリンタ３０とＵＳＢＩ／Ｆ２９を介して通信し、プリンタ３０に関する種々の情報を取得する。
【００３９】
ステップＦ１２０においては、現在印刷を行っている印刷データの印刷に使用するインクのインク残量に問題がないかどうかを判定する。スプーラ監視処理のステップＥ１６０にてステータス監視プログラムＱ５が監視対象の印刷データについての印刷条件を取得しているため、どのインクについて残量を監視すべきかを特定することができる。そして、使用インクの残量に問題がある場合には、ステップＦ１５０にて警告表示を行う。プリンタ３０は、インクジェット方式を採用しており、ＣＭＹＫ等の複数のインクカートリッジが備えられている。従って、印刷データの内容によって、使用するインクの種類が変動する。例えば、モノクロを指定して印刷を行った場合には、Ｋインクのみが印刷に使用されることとなる。
【００４０】
そのため、どのようなインクを使用するかを印刷データから取得することにより、適切なインク残量の監視を実現させることができる。なお、プリンタ３０はインクカートリッジに備えられたＩＣから各インクのインク残量を取得可能とされており、ステータス監視プログラムＱ５はプリンタ３０から各インクの残量を取得することができる。警告においては、クライアントＰＣ２０に接続されているディスプレイ２７において警告を示すウィンドウを表示させる。クライアントＰＣ２０を操作することによりユーザーが印刷実行をしているため、クライアントＰＣ２０のディスプレイ２７において警告することによって、ユーザーに確実に警告することができる。なお、プリンタ３０がレーザープリンタであれば、色材としてのトナー残量について監視を行えばよい。
【００４１】
一方、インク残量に問題がなければ、ステップＦ１３０にて、現在印刷を行っている印刷データの印刷に使用する印刷用紙の残量に問題がないかどうかを判定する。スプーラ監視処理のステップＥ１６０にてステータス監視プログラムＱ５が監視対象の印刷データについての印刷条件を取得しているため、どの印刷用紙の残量を監視すべきかを特定することができる。そして、印刷用紙の残量に問題がある場合には、上記と同様にステップＦ１５０にて警告表示を行う。具体的には、プリンタ３０は用紙フィーダや用紙トレイにセンサを有しており、同センサの検知状況によって用紙切れを認知することが可能となっている。
【００４２】
さらに、インク残量も印刷用紙の残量とも問題がない場合には、ステップＦ１４０にてプリンタ３０にエラーが発生していないかどうかを検出する。例えば、動作異常や温度異常等を監視することができる。そして、プリンタ３０にてエラーが発生している場合には、上記と同様にステップＦ１５０にて警告表示を行う。ステップＦ１６０においては、当該印刷データについての印刷がプリンタ３０にて終了したかどうかを判定し、終了していないのであれば、ステップＦ１１０〜Ｆ１６０を継続的に行う。すなわち、印刷中においては常に消耗品やエラーの監視が継続されることとなる。
【００４３】
一方、当該印刷データについての印刷がプリンタ３０にて終了した場合には、ステップＦ１８０にて当該印刷データについては監視を行う必要がないとして、監視対象から除外する。これにより、スプーラＱ３が記憶した印刷データであって、印刷が未実行であるもののみを監視対象の印刷データとすることができる。ステップＦ１８０においては、監視対象の印刷データがあるかどうかが判断され、ある場合には、ステップＦ１００に戻り、次の印刷データについて印刷開始を監視する。そして、次の印刷データの印刷が開始された場合には、当該印刷データについての監視を当該印刷データについての印刷条件に応じて実行する。一方、監視対象の印刷データがない場合には、そのままステータス監視プログラムＱ５を終了させる。従って、次に新たな印刷データが記憶されない限り、ステータス監視プログラムＱ５が起動しないこととなる。
【００４４】
（４）まとめ：
以上説明したように、本発明ではスプーラＱ３が新たに印刷データを入力したことをきっかけとして、ステータス監視プログラムＱ５が当該印刷データの監視を開始している。サーバＰＣ１０にて生成された印刷データであっても必ずスプーラＱ３に入力されるため、スプーラ監視プログラムＱ４がスプーラＱ３に対する印刷データの投入状態を監視することにより、予めプリンタ３０における印刷タイミングを予測することができる。すなわち、必要なときだけステータス監視プログラムＱ５を起動すればよく、クライアントＰＣ２０における処理負担を軽減させることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態にかかるオンデマンド印刷監視システムのハードウェア構成図である。
【図２】オンデマンド印刷監視システムのソフトウェア構成図である。
【図３】印刷処理のフローチャートである。
【図４】蓄積処理のフローチャートである。
【図５】ジョブ管理テーブルを示す表である。
【図６】出力処理のフローチャートである。
【図７】スプーラ監視処理のフローチャートである。
【図８】ステータス監視処理のフローチャートである。
【符号の説明】
【００４６】
１…オンデマンド印刷監視システム，１０…サーバＰＣ，２０…クライアントＰＣ，１１，２１…ＣＰＵ，１２，２２…ＲＡＭ，１３，２３…ＨＤＤ，１４，２４…ＬＡＮＩ／Ｆ，２７…ディスプレイ，２８…入力機器，２９…ＵＳＢＩ／Ｆ，３０…プリンタ，Ｐ１，Ｑ１…Ｏ／Ｓ，Ｐ２…アプリケーション，Ｐ３…プリンタドライバ，Ｑ２…遠隔制御プログラム，Ｑ３…スプーラ，Ｑ４…スプーラ監視プログラム，Ｑ５…ステータス監視プログラム，Ｔ１…ジョブ管理テーブル
【図１】
2007072711.tif 000003
【図２】
2007072711.tif 000004
【図３】
2007072711.tif 000005
【図４】
2007072711.tif 000006
【図５】
2007072711.tif 000007
【図６】
2007072711.tif 000008
【図７】
2007072711.tif 000009
【図８】
2007072711.tif 000010