(57)【特許請求の範囲】
【請求項１】
ネットワークを介して情報処理装置から印刷すべき印刷ジョブを受信可能なプリントサーバ装置であって、
前記情報処理装置から、印刷出力先の印刷装置に対応するプリンタドライバによって生成されたデバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを受信し、受信した前記デバイス依存形式データと前記デバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応づけて管理する保存ジョブ管理手段と、
前記情報処理装置からの前記保存ジョブ管理手段により管理される保存ジョブデータと再印刷出力先の印刷装置とを指定した再印刷要求に応じて、前記再印刷出力先の印刷装置と、前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置とで、属性が異なるか判断する判断手段と、
前記判断手段により属性が異なると判断された場合に、前記情報処理装置が前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成できるように前記デバイス非依存形式データを出力し、一方、前記判断手段により属性が同じであると判断された場合に、前記デバイス依存形式データを出力する出力制御手段と
を有することを特徴とするプリントサーバ装置。
【請求項２】
前記保存ジョブ管理手段は、前記情報処理装置から送信された保存ジョブデータを指定された期間だけ保存し、該指定された期間経過後、前記メモリから削除することを特徴とする請求項１記載のプリントサーバ装置。
【請求項３】
前記情報処理装置からの保存要求に応じて、前記保存ジョブ管理手段による前記保存ジョブデータの管理が可能であるかを判断する管理可否判断手段を更に有し、
前記管理可否判断手段により前記保存ジョブデータの管理が可能であると判断された場合に、前記保存ジョブ管理手段は、前記保存ジョブデータの保存及び管理を行うことを特徴とする請求項１または２記載のプリントサーバ装置。
【請求項４】
前記判断手段により前記保存ファイルの管理が不可能と判断された場合に、前記保存ジョブ管理手段は、保存要求のあった印刷ジョブＩＤと保存ジョブサイズとを保存待ちリストに登録管理することを特徴とする請求項３記載のプリントサーバ装置。
【請求項５】
前記メモリの空き容量と前記保存待ちリストに登録された保存ジョブサイズとを比較して登録可能な印刷ジョブＩＤを検出する検出手段を更に有することを特徴とする請求項４記載のプリントサーバ装置。
【請求項６】
前記デバイス非依存形式データは、ＥＭＦデータであり、前記デバイス依存形式データは、ＲＡＷデータであることを特徴とする請求項１乃至５のいずれか１項に記載のプリントサーバ装置。
【請求項７】
ネットワークを介して印刷装置で印刷されるべき印刷ジョブを生成する情報処理装置であって、
印刷出力先の印刷装置に対応するプリンタドライバによってデバイス依存形式データを生成する印刷データ生成手段と、
印刷ジョブ管理装置が、前記印刷データ生成手段によって生成される前記デバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応付けて管理できるように、前記デバイス依存形式データと前記デバイス非依存形式データとをネットワークを介して前記印刷ジョブ管理装置に送信する送信制御手段と、
前記デバイス依存形式データが前記印刷出力先の印刷装置に出力された後に、前記印刷ジョブ管理装置により管理される保存ジョブデータのリストを表示する表示手段と、
前記リストの中から、再印刷すべき保存ジョブデータと、該保存ジョブデータの再印刷出力先の印刷装置を判断する判断手段を有し、
前記判断された前記再印刷出力先の印刷装置の属性と前記判断された保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが異なる場合に、前記デバイス非依存形式データを前記印刷ジョブ管理装置から受け取り、前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成して前記再印刷出力先の印刷装置へ出力し、一方、前記再印刷出力先の印刷装置の属性と前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが同じ場合に、前記印刷ジョブ管理装置から前記デバイス依存形式データを受け取り前記再印刷出力先の印刷装置へ出力することを特徴とする情報処理装置。
【請求項８】
前記印刷ジョブ管理装置において保存ジョブデータを保存させる保存条件を指定する条件指定手段を更に有することを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記保存条件は、保存期間であることを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記保存条件は、印刷耐久回数であることを特徴とする請求項８または９記載の情報処理装置。
【請求項１１】
ネットワークを介して情報処理装置から印刷すべき印刷ジョブを受信可能なプリントサーバ装置における印刷ジョブ管理方法であって、
前記情報処理装置から、印刷出力先の印刷装置に対応するプリンタドライバによって生成されたデバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを受信し、受信した前記デバイス依存形式データと前記デバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応づけて管理する保存ジョブ管理工程と、
前記情報処理装置からの前記保存ジョブ管理工程により管理される保存ジョブデータと再印刷出力先の印刷装置とを指定した再印刷要求に応じて、前記再印刷出力先の印刷装置と、前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置とで、属性が異なるか判断する判断工程と、
前記判断工程で属性が異なると判断された場合に、前記情報処理装置が前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成できるように前記デバイス非依存形式データを出力し、一方、前記判断工程で属性が同じであると判断された場合に、前記デバイス依存形式データを出力する出力制御工程と、
を含むことを特徴とする印刷ジョブ保存方法。
【請求項１２】
ネットワークを介して印刷装置で印刷されるべき印刷ジョブを生成する情報処理装置における保存ジョブ生成方法であって、
印刷出力先の印刷装置に対応するプリンタドライバによってデバイス依存形式データを生成する印刷データ生成工程と、
印刷ジョブ管理装置が、前記印刷データ生成工程によって生成される前記デバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応付けて管理できるように、前記デバイス依存形式データと前記デバイス非依存形式データとを、ネットワークを介して前記印刷ジョブ管理装置に送信する送信制御工程と、
前記デバイス依存形式データが前記印刷出力先の印刷装置に出力された後に、前記印刷ジョブ管理装置により管理される保存ジョブデータのリストを表示する表示工程と、
前記リストの中から、再印刷すべき保存ジョブデータと、該保存ジョブデータの再印刷出力先の印刷装置を判断する判断工程とを含み、
前記判断された前記再印刷出力先の印刷装置の属性と前記判断された保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが異なる場合に、前記デバイス非依存形式データを前記印刷ジョブ管理装置から受け取り、前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成して前記再印刷出力先の印刷装置へ出力し、一方、前記再印刷出力先の印刷装置の属性と前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが同じ場合に、前記印刷ジョブ管理装置から前記デバイス依存形式データを受け取り前記再印刷出力先の印刷装置へ出力することを特徴とする保存ジョブ生成方法。
【請求項１３】
ネットワークを介して情報処理装置から印刷すべき印刷ジョブを受信可能なプリントサーバ装置で読み取り実行可能なプログラムが格納された記憶媒体であって、
前記情報処理装置から、印刷出力先の印刷装置に対応するプリンタドライバによって生成されたデバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを受信し、受信した前記デバイス依存形式データと前記デバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応づけて管理する保存ジョブ管理工程と、
前記情報処理装置からの前記保存ジョブ管理工程により管理される保存ジョブデータと再印刷出力先の印刷装置とを指定した再印刷要求に応じて、前記再印刷出力先の印刷装置と、前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置とで、属性が異なるか判断する判断工程と、
前記判断工程で属性が異なると判断された場合に、前記情報処理装置が前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成できるように前記デバイス非依存形式データを出力し、一方、前記判断工程でり属性が同じであると判断された場合に、前記デバイス依存形式データを出力する出力制御工程と、
を含むことを特徴とするプログラムが格納された記憶媒体。
【請求項１４】
ネットワークを介して印刷装置で印刷されるべき印刷ジョブを生成する情報処理装置で読み取り実行可能なプログラムが格納された記憶媒体であって、
印刷出力先の印刷装置に対応するプリンタドライバによってデバイス依存形式データを生成する印刷データ生成工程と、
印刷ジョブ管理装置が、前記印刷データ生成工程によって生成される前記デバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応付けて管理できるように、前記デバイス依存形式データと前記デバイス非依存形式データとを、ネットワークを介して前記印刷ジョブ管理装置に送信する送信制御工程と、
前記デバイス依存形式データが前記印刷出力先の印刷装置に出力された後に、前記印刷ジョブ管理装置により管理される保存ジョブデータのリストを表示する表示工程と、
前記リストの中から、再印刷すべき保存ジョブデータと、該保存ジョブデータの再印刷出力先の印刷装置を判断する判断工程とを含み、
前記判断された前記再印刷出力先の印刷装置の属性と前記判断された保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが異なる場合に、前記デバイス非依存形式データを前記印刷ジョブ管理装置から受け取り、前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成して前記再印刷出力先の印刷装置へ出力し、一方、前記再印刷出力先の印刷装置の属性と前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが同じ場合に、前記印刷ジョブ管理装置から前記デバイス依存形式データを受け取り前記再印刷出力先の印刷装置へ出力することを特徴とするプログラムが格納された記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続された複数のクライアントから、同ネットワークに接続されたネットワークプリンタに対して出力された印刷データと印刷ジョブ情報を管理するサーバ装置およびクライアント装置および印刷ジョブ管理システムおよびその方法および記憶媒体に関するものである。
【０００２】
【従来の技術】
従来、ネットワークプリンタを利用する環境としては、ネットワーク上の複数のクライアントが直接ネットワークプリンタに印刷データを送信することはあまり行われていない。それは、ネットワークプリンタが複数のクライアント装置から複数の印刷データを受けると順序制御や受信処理に負荷が増大してしまい、それに対応するためにはネットワークプリンタのコストが上がってしまうためである。
【０００３】
そのため、ネットワークＯＳを利用し、ネットワーク上にプリントサーバを設定して使用する場合が多かった。こうしたプリントサーバを使った印刷ジョブ保存システムでは、クライアントからプリントサーバに印刷データが転送され、この印刷データをプリントサーバの特定の場所に保存し、同時にプリントサーバがその印刷データの出力先に指定されているネットワークプリンタの印刷順序を管理し、印刷順序になったら保存されている印刷データを読み出して該ネットワークプリンタに印刷データを送信し印刷を実行していた。
【０００４】
この場合、プリントサーバは、管理下のネットワークプリンタに対する印刷データをネットワーク上の複数のクライアントから受け付けなければならず、クライアント数やネットワークプリンタ数が増える毎にプリントサーバの負荷が増えてきている。
【０００５】
そのため、プリントサーバにおける印刷データの保存媒体（例えば、ハードディスクなど）が容量不足などのエラーにより利用不可能になったときには、各クライアント装置から受け付ける印刷データの保存ばかりか、ネットワークプリンタに対する印刷データの送信処理ですら実行できなくなってしまう。
【０００６】
【発明が解決しようとする課題】
そのため、最近は、プリントサーバは印刷ジョブの印刷要求だけを受け付け、実際に印刷すべき印刷データはクライアントが保持しておき、プリントサーバから印刷データの送信許可を受け付けてからクライアント装置がネットワークプリンタに直接印刷データを送信する仕組みが考えられるようになってきた。
【０００７】
プリントサーバの障害により印刷処理が実行できないことを解決するために、“特開平１０−２４０４６９ネットワークプリントシステムおよび情報処理装置”が考えられた。しかしながらこのシステムでは、印刷が完了した時点でクライアントに保持された印刷データを削除していたため、正常終了した印刷データをサーバコンピュータ上に保存することができなかった。
【０００８】
そこで、印刷完了を通知する前にサーバコンピュータ上の保存媒体（ここでは、説明を簡略化するためにコンピュータ上のハードディスクを用いて説明するが、ＭＯなどの脱着可能な記憶媒体でも可能である）の書き込み許容量を判断し保存可能な場合に限り、クライアントコンピュータに印刷完了を通知し、保存できない印刷ジョブは保存待ち状態とする印刷完了通知手段を有するサーバコンピュータと、該サーバコンピュータから印刷完了通知を受けた時点で印刷データを削除せず、印刷データと印刷ジョブ情報をまとめて保存ジョブとしてサーバコンピュータに送信し、送信が完了した時点で保存ジョブを削除する保存ジョブ送信手段を有するクライアントコンピュータと、該クライアントコンピュータから送信された該保存ジョブを指定されたディレクトリに保存し、また、指定された保存期間を過ぎた保存ジョブを定期的に削除し、保存許容量が増加したことを前記印刷完了通知手段に通知することで、該サーバコンピュータ上に保存できなかった保存ジョブに対し、非同期で印刷完了を通知することができる保存ジョブ管理手段を有する印刷ジョブ保存管理システムが考えられる。
【０００９】
これによると、印刷完了を通知した印刷ジョブに関しては、サーバコンピュータ上の指定されたディレクトリに指定期間保持され、サーバコンピュータ上に保存できなかった印刷ジョブに関しては、印刷をかけたクライアントコンピュータ上で保存待ち状態で保存されることになる。ただし、保存待ちジョブに関しても、サーバコンピュータ上の保存容量に空き次第、非同期で印刷完了が通知されるので、その時点でサーバコンピュータ上の指定ディレクトリ上に保存されることになる。その結果、サーバコンピュータ上の保存容量不足により、印刷完了ジョブがサーバコンピュータ上に保存できない状態を防ぐことができる。
【００１０】
更に、該サーバコンピュータに保存された保存ジョブを再印刷する場合、デバイス情報が格納されたＲＡＷデータのみが保存されていると、出力先のプリンタは全く同じ仕様のプリンタに限定されてしまい、別のプリンタに再印刷することができなかった。
【００１１】
そこで、保存ジョブファイルにＲＡＷデータとＥＭＦデータを合わせて保存することにより、出力先プリンタに応じた保存ジョブの再印刷が可能な印刷ジョブ保存管理システムが考えられる。
【００１２】
また、保存ジョブファイルに格納される印刷データがＲＡＷデータの場合、再印刷するときに、同じプリンタにしか印刷できないという制限があった。
【００１３】
本発明の第１の目的は、印刷ジョブデータのサイズと、サーバコンピュータ上の保存ディレクトリの許容量を判断し、保存可能な場合に限り、印刷完了を通知できることである。
【００１４】
また、本発明の第２の目的は、サーバコンピュータからの印刷完了通知に応じて、印刷データと印刷ジョブ情報をまとめて保存ジョブとして、サーバコンピュータに送信し、送信が完了した時点で保存ジョブを削除することである。
また、本発明の第３の目的は、クライアントコンピュータから送信された保存ジョブを受信し、別途指定されたサーバコンピュータ上のディレクトリに保存し、また定期的に、別途指定された保存期間を過ぎた保存ジョブを削除することである。
【００１５】
また、本発明の第４の目的は、保存ジョブファイルにＲＡＷデータとＥＭＦデータを同時に格納することで、出力先を限定しない再印刷が可能とすることである。
【００１６】
また、本発明の第５の目的は、サーバコンピュータに保存された任意の保存ジョブファイルを選択し、サーバから送信された印刷データ（ＲＡＷ、ＥＭＦ）に応じて、印刷データをスプーラに直接送って印刷したり、または、ＧＤＩを経由してプリンタドライバで印刷データを生成する通常のアプリケーションレベルの印刷を可能とすることである。
【００１７】
また、本発明の第６の発明は、再印刷した際に生成されたＲＡＷデータを新しい保存ジョブファイルとして、再保存することである。
【００１８】
【課題を解決するための手段】
本発明のプリントサーバ装置は、ネットワークを介して情報処理装置から印刷すべき印刷ジョブを受信可能なプリントサーバ装置であって、前記情報処理装置から、印刷出力先の印刷装置に対応するプリンタドライバによって生成されたデバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを受信し、受信した前記デバイス依存形式データと前記デバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応づけて管理する保存ジョブ管理手段と、前記情報処理装置からの前記保存ジョブ管理手段により管理される保存ジョブデータと再印刷出力先の印刷装置とを指定した再印刷要求に応じて、前記再印刷出力先の印刷装置と、前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置とで、属性が異なるか判断する判断手段と、前記判断手段により属性が異なると判断された場合に、前記情報処理装置が前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成できるように前記デバイス非依存形式データを出力し、一方、前記判断手段により属性が同じであると判断された場合に、前記デバイス依存形式データを出力する出力制御手段とを有することを特徴とする。
【００１９】
本発明に係る第２の発明は、前記保存ジョブ管理手段は、前記情報処理装置から送信された保存ジョブデータを指定された期間だけ保存し、該指定された期間経過後、前記メモリから削除するものである。
【００２０】
本発明に係る第３の発明は、前記情報処理装置からの保存要求に応じて、前記保存ジョブ管理手段による前記保存ジョブデータの管理が可能であるかを判断する判断手段を更に有し、前記判断手段により前記保存ジョブデータの管理が可能であると判断された場合に、前記保存ジョブ管理手段は、前記保存ジョブデータの保存及び管理を行うものである。
【００２１】
本発明に係る第４の発明は、前記判断手段により前記保存ファイルの管理が不可能と判断された場合に、前記保存ジョブ管理手段は、保存要求あった印刷ジョブＩＤと保存ジョブサイズとを保存待ちリストに登録管理するものである。
【００２２】
本発明に係る第５の発明は、前記メモリの空き容量と前記保存待ちリストに登録された保存ジョブサイズとを比較して登録可能な印刷ジョブＩＤを検出する検出手段を更に有するものである。
【００２５】
本発明の情報処理装置は、ネットワークを介して印刷装置で印刷されるべき印刷ジョブを生成する情報処理装置であって、印刷出力先の印刷装置に対応するプリンタドライバによってデバイス依存形式データを生成する印刷データ生成手段と、印刷ジョブ管理装置が、前記印刷データ生成手段によって生成される前記デバイス依存形式データと、前記デバイス依存形式データの生成中に中間データとして生成されるデバイス非依存形式データとを保存ジョブデータとして保存し、前記印刷出力先の印刷装置による印刷処理後も前記保存ジョブデータを前記印刷出力先の印刷装置の属性に対応付けて管理できるように、前記デバイス依存形式データと前記デバイス非依存形式データとをネットワークを介して前記印刷ジョブ管理装置に送信する送信制御手段と、前記デバイス依存形式データが前記印刷出力先の印刷装置に出力された後に、前記印刷ジョブ管理装置により管理される保存ジョブデータのリストを表示する表示手段と、前記リストの中から、再印刷すべき保存ジョブデータと、該保存ジョブデータの再印刷出力先の印刷装置を判断する判断手段を有し、前記判断された前記再印刷出力先の印刷装置の属性と前記判断された保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが異なる場合に、前記デバイス非依存形式データを前記印刷ジョブ管理装置から受け取り、前記デバイス非依存形式データに基づいて前記再印刷出力先の印刷装置に対応するプリンタドライバを用いて前記再印刷出力先の印刷装置に依存するデバイス依存形式データを生成して前記再印刷出力先の印刷装置へ出力し、一方、前記再印刷出力先の印刷装置の属性と前記指定される保存ジョブデータのデバイス依存形式データが依存する印刷装置の属性とが同じ場合に、前記印刷ジョブ管理装置から前記デバイス依存形式データを受け取り前記再印刷出力先の印刷装置へ出力することを特徴とする。
【００２６】
本発明に係る第９の発明は、前記印刷ジョブ管理装置において保存ジョブデータを保存させる保存条件を指定する条件指定手段を更に有するものである。
【００２７】
本発明に係る第１０の発明は、前記保存条件は、保存期間である。
【００２８】
本発明に係る第１１の発明は、前記保存条件は、印刷耐久回数である。
【００３３】
【発明の実施の形態】
図１は、本発明に係る印刷制御装置を適用可能な印刷システムの構成を説明するブロック図であり、特に、印刷ジョブの保存管理を行うシステムに対応する。また、本実施形態では、クライアントコンピュータは、ｎ台接続されていることを仮定している。
【００３４】
図において、１０２、１０３、１０４はクライアントコンピュータであり、ネットワークケーブルによりネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データを作成するプリンタドライバを搭載している。
【００３５】
１０１はサーバであり、ネットワークケーブルによってネットワーク１０６接続されている。本実施例のサーバ１０１は、クライアントコンピュータ１０２、１０３、１０４からの印刷ジョブ情報を集計ファイルとして格納する機能を備えている。
【００３６】
１０５はネットワークプリンタであり、ネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信される印字データを印刷する。１０６はネットワークであり、クライアントコンピュータ、サーバ、ネットワークプリンタ等と接続している。
【００３７】
図２は、図１に示したクライアントコンピュータ１０２の概略構成を示すブロック図である。なお、クライアントコンピュータ１０３、１０４も同じ構成である。
【００３８】
図２において、ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや印刷ジョブ保存管理プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３９】
ＲＯＭ２０１には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３はＦＤ（フロッピーディスク）ドライブであり、図５に示すようにＦＤドライブ２０３を通じてＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。
【００４０】
２０４はＦＤであり、本実施例で説明する印刷ジョブ保存管理プログラムおよび関連データを格納しており、その記憶されている内容の構成を図４に示す。
図４において、４００はＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施例で説明する印刷ジョブ保存管理プログラム、４０４はその関連データである。
【００４１】
４０３の印刷ジョブ保存管理プログラムは、図１５〜２０に示されるネットワークプリンタ制御手順のフローチャートに基づいてプログラムコード化されたものである。
【００４２】
２０５はＨＤであり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷ジョブ保存管理プログラム、関連プログラム等を格納している。２０６はキーボードであり、ユーザがクライアントコンピュータに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７はディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。２０８はシステムバスであり、クライアントコンピュータ内のデータの流れを司るものである。
【００４３】
図３は、本ネットワークプリンタ制御プログラムがＲＡＭ２０２にロードされ実行可能となった状態のメモリマップを表すものである。
本実施例では、ＦＤ２０４から印刷ジョブ保存管理プログラム及び関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、この以外にも  、ＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００４４】
また、本印刷ジョブ保存管理プログラムを記録する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＩＣメモリーカード等であっても良い。更に、本印刷ジョブ保存管理プログラムをＲＯＭ２０１に記録しておき、これをメモリマッップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００４５】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローティング）機能等を有しているプログラムが入っている領域である。３０２はＯＳであり、３０３には印刷ジョブ保存管理プログラム、３０４には関連データがそれぞれ展開され、３０５にはＣＰＵ２００が本ネットワークプリンタ制御プログラムを実行するワークエリアがとられている。
【００４６】
図６は、本発明の一実施形態を示すクライアントコンピュータおよびサーバを適用可能な印刷システムのソフトモジュール構成を表した図である。これらは、例えば、ＦＤから供給されるものである。
【００４７】
図において、５０１はクライアントコンピュータのソフトモジュール構成、５０２はサーバのソフトモジュール構成、５０３はネットワークプリンタである。５０４は本発明の印刷ジョブ保存管理システムで保存される印刷データを作成するアプリケーションモジュールである。アプリケーション５０４は文書データを作成し、印刷をする際にはＯＳＳの描画手段であるＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）５０８に対して描画データ（ＧＤＩ関数と呼ぶ）として出力する。５０５は、米国マイクロソフト社製のＯＳ（Ｗｉｎｄｏｗｓ（登録商標））内に組み込まれて動作するプリンタドライバである。
【００４８】
５０６はＷｉｎｄｏｗｓ内のプリンタスプーラ、５０７はネットワークプリンタ用制御モニタである。５０９は印刷保存ジョブ送信部であり、５１０の印刷データ（本発明では後述するようにＲＡＷ＋ＥＭＦ）と印刷ジョブ情報をまとめた保存ジョブデータをサーバに送信するモジュールである。５１１はＷｉｎｄｏｗｓシステムに登録されるレジストリであり、送信先となるサーバ名、あるいは保存ジョブデータを保持するディレクトリが設定されている。
【００４９】
アプリケーション５０４で印刷を行う場合は、文書データを描画データであるＧＤＩ関数としてＧＤＩ５０８に出力し、ＧＤＩ５０８は、ＤＤＩ関数（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるドライバで実行可能な形式の描画コマンドに変換する。ＤＤＩ関数を受け取ったプリンタドライバ５０５は、印刷出力先のネットワーク５０３で解釈可能なプリンタ言語（ページ記述言語）に変換する。また、ＷｉｎｄｏｗｓＯＳでは、ＥＭＦ（ＥｎｈａｎｃｅｄＭｅｔａ  Ｆｉｌｅ）と呼ばれるデバイスに依存しない中間データ形式のファイルでスプールすることが可能となっている。このＥＭＦデータとは、アプリケーションが発行したＧＤＩ関数に基づいて描画内容をバイナリー形式で保存するものである。そして、スプールが終了すると、ＥＭＦデータで図示省略したＥＭＦスプーラで一時保存された描画内容は、ＧＤＩ関数としてＧＤＩ５０８に出力される。また、プリンタドライバ５０５が生成するページ記述言語形式の印刷データのことをＲＡＷデータと呼ぶ。
【００５０】
５１２は本発明の保存ジョブ管理処理部であり、クライアントコンピュータ上の５０９印刷保存ジョブ送信部からＲＰＣ（ＲｅｍｏｔｅＰｒｏｃｅｄｕｒｅＣａｌｌ）を使って送られてきた保存ジョブデータを受け取り、または、指定された印刷データを送信するモジュールである。
【００５１】
５１３はＷｉｎｄｏｗｓシステムに登録されるサーバレジストリであり、保存ジョブファイルの保存先、保存期間など設定された情報によって、５１２の印刷保存ジョブ管理処理部の動作を制御できるものである。
【００５２】
５１４は印刷完了通知処理部であり、クライアント１０２のモニタ５０７から送信された印刷データに対する印刷完了イベントを、ネットワークプリンタ５０３から受け取り、保存可能かどうかを判断した後、５０９印刷保存ジョブ送信処理部にＲＰＣを使って印刷完了通知を通知する。
【００５３】
５１５は保存ジョブがファイルとして格納されるファイルを示し、５１６はジョブリスト、５１７は保存ジョブリスト、５１８は保存待ちジョブリストに使われるリスト構造体を示す。５１９は再印刷ＧＵＩ（再印刷ＧＵＩ提供モジュール）であり、クライアントから任意の保存ジョブを再印刷するためのユーザインターフェイスを提供する。これらのモジュールは本発明である印刷ジョブ保存管理システムを構成するものであり、記憶媒体、本実施例ではＦＤ２０４から供給される。
【００５４】
図７は、図６に示したクライアント１０２のレジストリ５１１のデータ構造を説明する図であり、例えばサーバの動作情報、サーバ名、サーバのＩＰアドレス等から構成される場合を示す。
【００５５】
図８は、図６に示したサーバ１０１のレジストリ５１１のデータ構造を説明する図であり、例えばログ保存先、エラー情報、ログ保存期間等から構成される場合を示す。
【００５６】
図９は、図６に示したサーバ１０１のリスト構造体のデータ構造を説明する図であり、例えばインデックス、ジョブＩＤ、保存ジョブファイル名、保存ジョブサイズ、ログ保存期間、ユーザ名、ドキュメント名、プリンタ名、ドライバ名、次のリストのアドレス等から構成される場合を示す。
【００５７】
以下、上記のように構成された印刷システムにおいて、クライアントＰＣ１０２からネットワークプリンタ１０５に印刷を行ったときの印刷ジョブ保存管理処理を説明する。
【００５８】
本実施形態においては、仮想プリントサーバシステムの印刷システムに基づいて説明を行う。図６にような構成を持つ仮想プリントサーバシステムでは、以下のように処理を行う。クライアントＰＣ５０１（１０２）上で、アプリケーション５０４から印刷を開始したならば、本印刷制御プログラムは、アプリケーション５０４から発行された描画内容をスプールしているＥＭＦデータにアクセスし、そのコピーを保存ジョブデータ５１０に生成する。そして、ＧＤＩ５０８からの印刷命令に基づいてプリンタドライバ５０５が生成するプリンタ制御言語であるＲＡＷデータも、先に保存してあるＥＭＦデータと同じ印刷ジョブであることを識別子を用いて関連づけて保存しておく。印刷ジョブ（ＥＭＦデータ+ＲＡＷデータ）の保存が終了すると、クライアント１０２は、印刷データの名称、ホスト名、印刷依頼時間、印刷出力先のプリンタ名等からなる印刷要求情報（印刷データは含まれない）をプリントサーバ１０１（サーバ５０２）に送信する。プリントサーバ１０１は、出力先のプリンタ毎に印刷要求の順序管理を行い、ネットワークプリンタで印刷待ち、つまり印刷中の印刷ジョブがなくなった場合に次の印刷順序の印刷要求情報を依頼したクライアントに印刷許可を通知する。この印刷許可には印刷すべき印刷データ名称、依頼時間等から構成されている。
【００５９】
そして、サーバ５０２からの印刷指示を受けると、クライアントは、印刷許可内の除法から印刷許可された印刷ジョブを保存ジョブデータ５１０（もしくはスプーラ５０６）から検索する。そして、保存ジョブデータ５１０に保存されているＲＡＷデータである印刷データが読み出され、モニタ５０７は、読み出された印刷データを出力先のネットワークプリンタ５０３にＬＰＲを用いて送信し、印刷が実行される。このように、プリントサーバは印刷順序の管理を行い、クライアントが印刷データをスプールしておき、印刷順序が来たらクライアント自身がネットワークプリンタに対して印刷データを送信することにより、ネットワーク上を印刷データが通信される回数が減るため、ネットワークの負荷が減り、また、プリントサーバは印刷順序の管理だけを行うので、大きなスプーラを用意する必要もなく処理が軽くなるのでネットワーク（ＬＡＮ）上にプリントサーバ専用機を設置しなくともクライアントのどれか１つを仮想的にプリントサーバとして用いることも可能となる。
【００６０】
印刷完了通知処理部５１４では、ネットワークプリンタ５０３からの出力完了イベントを待ち受け、出力完了イベントを受け取ったならば、レジストリ５１３に設定されている保存ジョブ格納ディレクトリの残り容量を判断し、保存可能ならば保存ジョブ送信処理部５０９に印刷完了通知を通知する。
【００６１】
この通知を受け取った保存ジョブ送信処理部では、印刷データ（ＥＭＦデータとＲＡＷデータの両方を含む）と印刷ジョブ情報をまとめた保存ジョブを作成し、保存ジョブ管理処理部５１２に保存ジョブを送信する。保存ジョブを受け取った保存ジョブ管理処理部では、レジストリ５１３で設定された指定ディレクトリに、保存ジョブファイルとして格納する。
【００６２】
また、印刷完了通知処理部５１４で、保存ジョブを格納できないと判断した場合には、このジョブに対する完了通知が出されない保存待ち状態のままで保持される。保存待ち状態のジョブに関しては、保存ジョブ管理処理部５１２が保存期間を超えた保存ジョブを定期的に削除するタイミングで、印刷完了通知処理部５１４に保存ディレクトリの残り容量が増加したことが通知され、保存待ち状態となっているジョブの中から保存可能なジョブを見つけ出し、保存ジョブ送信処理部５０９に印刷完了通知が通知される。その結果、保存待ち状態となっていたジョブに関しても、印刷が完了したジョブと同様に保存ジョブファイルとして格納される。
【００６３】
更に、保存ジョブファイルを再印刷するときは、クライアント５０１は、保存ジョブ管理処理部５１２に対して、現在格納されている保存ジョブリストを要求する。要求に対して保存ジョブ管理処理部５１２は、保存ジョブリスト受５１７の内容を返す。
【００６４】
これを受け取った保存ジョブ送信処理部５０９は、再印刷ＧＵＩ５１９上で保存されている印刷ジョブのリストを表示部に一覧表示するよう制御する。そして、ユーザに対して任意の保存ジョブと出力先プリンタの選択を促す。本印刷制御プログラムは、ユーザにより選択されたジョブのＩＤと出力先プリンタを指定して、再度、保存ジョブ管理処理部５１２に対して、保存ジョブファイルに格納されている印刷データを要求する。
【００６５】
この要求に対し、保存ジョブ管理処理部５１２は、指定された保存ジョブファイルから指定されたプリンタに応じた印刷データを返す。保存ジョブ送信処理部５０９を経由して、印刷データを受け取った再印刷ＧＵＩ５１９は、印刷データの種別（ＲＡＷ、ＥＭＦ）に応じて、ＧＤＩを経由した印刷をするか、直接スプーラに印刷データを送り、印刷を実行する。また、印刷の結果、生成された印刷データは、保存ジョブ送信処理部５０９によって、ＲＡＷデータ＋ＥＭＦデータで構成される新しい保存ジョブファイル５１０となり、前述した手順にてサーバに保存される。
【００６６】
このようにして、印刷ジョブ保存管理システムでは、複数のクライアント１０２〜１０４から印刷した印刷ジョブをサーバ上の指定された場所（図６の保存ジョブファイル５１５）に保存ジョブとして保存することができる。
【００６７】
なお、印刷ジョブを保存する処理は、すべての印刷ジョブについて行う必要はない。そこで、クライアントでユーザが印刷指示を行う際に、印刷ジョブを印刷後に保存するか、印刷後には保存せずに削除するかを指定させるようにしている。図１０を用いて、クライアントに表示されるプリンタドライバのプロパティ画面を説明する。クライアントにインストールされているプリンタドライバでは、図１０に示す画面を用いて印刷設定をユーザが設定することができる。このユーザインタフェースで、ユーザは印刷解像度、階調、グラフィックモード、用紙サイズ、印刷レイアウト、用紙向き、スタンプ等の設定が行える。
【００６８】
さらに、１４０１の「印刷ジョブ保存」チェックボックスは、チェックすることにより、印刷終了後にクライアントがサーバに対して印刷ジョブを保存する処理を行うことになり、チェックボックス１４０１にチェックされないで印刷された場合は、プリンタで印刷終了した後はクライアントに保存していた印刷データをサーバにアップロードすることなく削除する。
【００６９】
また、１４０２の「保存設定」ボタンを押すことにより、印刷ジョブのサーバに保存する際の詳細な設定を行うことができる。保存設定では、印刷ジョブをサーバに保存する期間である保存期間及び印刷耐久回数の設定ができる。印刷耐久回数とは、サーバに保存された印刷ジョブをある回数印刷した場合にジョブを削除するというものであり、その回数が印刷されるまでは印刷ジョブをサーバに保存しておくものである。
【００７０】
また、デバイスに依存しない形式（ＥＭＦ）のデータとデバイスに依存する形式（ＲＡＷ）のデータとを保存し、再印刷時に出力先のプリンタに出力するために都合のよい方が選択されるため、保存したジョブを、元とは異なる出力先に出力することが可能となり、また同一の出力先に出力する場合は印刷スループットが向上する効果のある再印刷処理を提供することができる。
【００７１】
また、本実施例はＷｉｎｄｏｗｓを用いた場合であるが、これに限られるものではなく、ＯＳ／２等の他のＯＳでも構築可能である。
【００７２】
図１１は、本発明に係る印刷システムにおける第１のデータ処理手順の一例を示すフローチャートである。図６に示す印刷完了通知処理部５１４による印刷完了通知処理手順に対応する。
【００７３】
本処理の概要は、ネットワークプリンタ５０３からの出力完了イベントを待ち、保存ジョブとして保存できるかどうかを判断した後、保存ジョブ送信処理部５０９に対して印刷完了を通知する処理を示す。印刷完了通知処理部は、本発明の各モジュールあるいはネットワークプリンタ、ＯＳからの各種のイベントによって処理が実行されるイベント駆動型の常駐サービスとして提供される。
【００７４】
まず、ステップ６０１において、ネットワークプリンタからの出力完了イベント、保存容量の変更イベント、あるいは本発明の終了イベントを待ち受ける。イベントが発生したならば、ステップ６０２において、終了イベントかどうかを判断する。判断の結果、ＯＳからの終了イベントならば、内部メモリを開放した後終了する。
【００７５】
判断の結果、終了イベントでなかったならば、ステップ６０３において、保存先ディレクトリの残量変化のイベントであるかどうかを判断する。判断の結果、残量変化のイベントであったならば、ステップ６０４において、レジストリ５１３で指定された保存先ディレクトリに格納できる容量を取得する。
【００７６】
そして、ステップ６０５において、保存待ちリスト５１８の先頭から保存ジョブのサイズと格納先容量を比較し、保存できるジョブを検索する。次に、ステップ６０６において、検索の結果、保存可能な保存ジョブが見つかったかどうかを判定し、見つかれなかったと安定した場合は、ステップ６０１のイベント待ち処理において、次のイベントを待つ。
【００７７】
一方、ステップ６０６で見つかったと判定した場合は、ステップ６０７において、そのジョブに対する印刷完了通知をＲＰＣを使って、保存ジョブ送信処理部５０９に通知する。その後、ステップ６０８において、保存待ちリスト５１８から削除し、保存ジョブリスト５１７に追加する。その後、ステップ６０１のイベント待ち処理において、次のイベントを待つ。
【００７８】
一方、ステップ６０３の判断の結果、残量変化のイベントでなかったと判断された場合は、ステップ６０９において、印刷完了イベントかどうかを判断する。判断の結果、印刷完了イベントでないと判断されたならば、ステップ６０１のイベント待ち処理において、次のイベントを待つ。
【００７９】
一方、ステップ６０９でネットワークプリンタからの印刷完了イベントであったと判断された場合は、ステップ６１０において、レジストリ５１３で指定された保存先ディレクトリに格納できる容量を取得する。
【００８０】
次に、ステップ６１１において、保存ジョブのサイズと残量を比較し、保存可能であったならば、ステップ６１２において、そのジョブに対する印刷完了通知をＲＰＣを使って、保存ジョブ送信処理部５０９に通知する。
【００８１】
その後、ステップ６１３において、印刷ジョブリスト５１６から削除し、保存ジョブリスト５１７に追加する。その後、ステップ６０１のイベント待ち処理において、次のイベントを待つ。
【００８２】
一方、ステップ６１１の判断の結果、保存できないと判断したならば、ステップ６１４において、印刷ジョブリスト５１６から削除し、保存待ちリスト５１８に追加する。その後、ステップ６０１のイベント待ち処理において、次のイベントを待つ。
【００８３】
以上の処理を繰り返すことで、保存ジョブとして保存可能なジョブに関してのみ印刷完了を通知することができる。
【００８４】
図１２は、本発明に係る印刷システムにおける第２のデータ処理手順の一例を示すフローチャートであり、図６に示した保存ジョブ送信処理部５０９による保存ジョブ送信書Ｒ位手順に対応する。
【００８５】
本処理の概要はクライアントＰＣ１０２上のアプリケーション５０４の印刷処理で作成された印刷ジョブデータ（ＲＡＷデータ）と印刷ジョブ情報から保存ジョブを作成する。このとき、システムのスプーラとして、メタファイルスプール機能を有効に設定しておくことで、印刷データがドライバでＲＡＷデータに解釈される前の、デバイスに依存しないＥＭＦデータを取得することができる。ＥＭＦデータは前述したＥＭＦスプーラ（図示省略）で生成されたものをモニタ５０７でジョブＩＤをファイル名とする別ファイル（拡張子はＥＭＦ）にコピーしておく。そして、ＥＭＦデータを含む印刷ジョブデータと印刷ジョブ情報とからなる保存ジョブを、サーバ５０２の正常動作を確認して、サーバの保存ジョブ管理処理部に送信する。サーバに何らかの障害があり正常に通信できない場合には、クライアント５０１内に保存ジョブファイルとして保持される。その後、サーバが復旧、あるいは保存先の容量が確保された時点で、保持された保存ジョブファイルをサーバに転送する処理を表したフローチャートである。保存ジョブ送信処理部は、本発明の各モジュール、あるいはＯＳからの各種イベントによって処理が実行されるイベント駆動型の常駐サービスとして提供されるものとする。
【００８６】
まず、ステップ７０１において、印刷完了イベント、あるいは終了イベントを待ち受け、イベント通知が発生したならば、ステップ７０２において、終了イベントかどうかを判断し、ＯＳからの終了イベントであると判断した場合は、内部メモリを開放した後、処理を終了する。
【００８７】
一方、ステップ７０２で、終了イベントでなかったと判断した場合は、ステップ７０３において、印刷完了の通知イベントであるかどうかを判断し、印刷完了通知イベントでなかったと判断した場合は、ステップ７０１のイベント待ち処理において、次のイベントを待つ。
【００８８】
一方、ステップ７０３で、印刷完了の通知イベントであったと判断した場合は、ステップ７０４において、モニタ５０７で保存しておいたジョブＩＤをファイル名とするＥＭＦデータと、ＲＡＷデータとを合わせた印刷データと印刷ジョブ情報を１つの保存ジョブファイルとして作成する。このとき、ファイル名にはジョブＩＤを文字列に変更したファイル名（拡張子はＳＰＬ）で作成する。
【００８９】
次に、ステップ７０５において、作成された保存ジョブファイルをレジストリ５１１で指定されたサーバ５１１に対して、ファイル転送する。その後、ステップ７０６において、正常に送信できたかどうかを判断する。判断の結果、エラー終了したと判断した場合には、再度、ステップ７０５において、ファイル転送する。これを成功するまで繰り返す。
【００９０】
一方、ステップ７０６で、正常に送信できたと判断した場合は、ステップ７０７において、送信元となる保存ジョブファイル、あるいは保存ジョブファイルを作成するときの印刷データ、印刷ジョブ情報を内部メモリ、ローカル上のディスクから削除する。その後、ステップ７０１のイベント待ち処理において、次のイベントを待つ。
【００９１】
以上の処理を繰り返すことで、印刷が完了したジョブの印刷ジョブデータと印刷ジョブ情報とを合わせた保存ジョブファイルをサーバ１０１に送信することが出来る。
【００９２】
図１３は、本発明の印刷システムにおける第３のデータ処理手順の一例を示すフローチャートであり、図６に示した保存ジョブ管理処理部５１２による保存ジョブ管理処理手順に対応する。
【００９３】
本処理の概要は、クライアント５０１の保存ジョブ送信処理部５１２から送信されてきた保存ジョブを、保存ジョブファイルとして指定されたディレクトリに保存する処理である。なお、保存ジョブ管理処理部は、本発明の各モジュール、あるいはＯＳからの各種イベントによって処理が実行されるイベント駆動型の常駐サービスとして提供される。
【００９４】
まず、ステップ８０１において、保存ジョブ受信イベント、タイマーイベント、あるいは終了イベントを待ち受け、イベント通知が発生したならば、ステップ８０２において、終了イベントかどうかを判断し、ＯＳからの終了イベントであると判断した場合は、内部メモリを開放した後、処理を終了する。
【００９５】
一方、ステップ８０２で終了イベントでなかったと判断した場合は、ステップ８０３において、一定間隔で通知されるタイマイベントであるかどうかを判断し、タイマーイベントであったと判断した場合は、ステップ８０４において、レジストリ５１３で指定された保存期間を超えた保存ジョブファイルを検索する。
【００９６】
そして、ステップ８０５において、検索の結果、保存期間を超えた保存ジョブファイルが見つかったかどうかを判断し、見つからなかったと判断した場合には、ステップ８０１のイベント待ち処理において、次のイベントを待つ。
【００９７】
一方、ステップ８０５で、保存期間を超えた保存ジョブファイルが見つかったと判断した場合は、ステップ８０６において、保存ジョブファイルを削除する。次に、ステップ８０７において、保存ジョブを格納しているディレクトリの残量が増加したことを、印刷完了通知処理部５１４に通知する。
【００９８】
この通知を受けた印刷完了通知処理部５１４では、先の述べたように保存待ちジョブリスト５１８から適切な保存ジョブを見つけ出し、クライアント１０２の保存ジョブ送信処理部５０９に対して、印刷完了を通知する。その結果、保存ジョブが転送され、ステップ８０１において、受信イベントが送られることになる。この処理を、ステップ８０４の検索処理で見つかった保存ジョブファイル分繰り返す。その後、ステップ８０１のイベント待ち処理において、次のイベントを待つ。
【００９９】
一方、ステップ８０３でタイマイベントでなかったと判断した場合は、ステップ８０８において、受信イベントかどうかを判断し、受信イベントでなかったと判断した場合は、ステップ８０１のイベント待ち処理において、次のイベントを待つ。
【０１００】
一方、ステップ８０８で、受信イベントであったと判断した場合は、ステップ８０９において、レジストリ５１３で指定された保存先ディレクトリ名を取得する。次に、ステップ８１０において、保存先ディレクトリに保存ジョブファイルと同名のファイルを作成し、これに書き込む。
【０１０１】
次に、ステップ８１１において、次の送信データを受信し、ステップ８１２において、受信データが終了したかどうかを判断し、ＮＯすなわち、送信が継続すると判断した場合は、ステップ８１０に戻り、受信したデータを先に作成した保存ジョブファイルに書き込む。
【０１０２】
一方、ステップ８１２で、受信データが終了したと判断した場合は、ステップ８１３において、書き込まれていない最後の受信データをファイルに書き込む。その後、ステップ８０１のイベント待ち処理において、次のイベントを待つ。
【０１０３】
以上の処理を繰り返すことで、保存ジョブ管理処理部５１２で受信したクライアント１０２からの保存ジョブを指定された場所に格納することができる。
【０１０４】
以上の処理を繰り返すことで、保存ジョブ管理処理部で受信したクライアントからの保存ジョブを指定された場所に格納することができる。
【０１０５】
上記実施形態によれば、印刷が完了したジョブのみを保存ジョブとしてサーバ装置で一括管理でき、サーバ障害時においても印刷ジョブの保存をクライアント装置が肩代わりすることが可能である。
【０１０６】
また、サーバ装置上の保存容量が増加した時点で、自動的にクライアント装置から保存ジョブをアップロードすることができ、クライアント装置におけるユーザによるデータ転送処理負担をも軽減することができる。
【０１０７】
図１４は、本発明の保存ジョブ送信処理部から提供され、起動される再印刷ＧＵＩ（グラフィカルユーザインタフェース）でありる。
【０１０８】
再印刷ＧＵＩは、図で示したような入力コントロール、あるいは選択コントロール、チェックコントロールで構成される。保存サーバ名には、保存ジョブの保存先であるサーバコンピュータの名称を入力し、保存ジョブ一覧には、保存サーバに格納された保存リストの内容が表示される。また、出力先プリンタ名には、クライアントコンピュータで利用できるプリンタが列挙され、前記保存ジョブ一覧で選択したジョブと同じ属性を持つプリンタが自動的にカレント表示される。同じ属性を持つプリンタがないときには、自動調整されずカレント表示は変更されない。
【０１０９】
保存先を更新するがチェックされたときには、後述する保存ジョブ管理処理部にチェック内容が渡され、印刷データを抽出後に現在の保存ジョブファイルが削除され、再印刷後に保存された保存ジョブファイルで更新される。
【０１１０】
図１５は、本発明に係る印刷システムにおける第４のデータ処理手順の一例を示すフローチャートであり、図６に示した再印刷ＧＵＩ提供モジュール５１９（以下、再印刷ＧＵＩモジュールと呼ぶ）により提供されるＧＵＩを介して、ユーザに再印刷の設定を促す処理を示すフローチャートである。
【０１１１】
ステップ９０１で再印刷ＧＵＩモジュール５１９は、図１４に示した再印刷ＧＵＩを起動する。そして、ステップ９０２において、保存ジョブ送信処理部５０９は、クライアントコンピュータ上で利用できるプリンタ一覧を取得し（ＥｎｕｍＰｒｉｎｔｅｒｓ（））、出力先プリンタ名のリストコントロールに追加する。
【０１１２】
ステップ９０３において、再印刷ＧＵＩモジュール５１９は、キャンセルボタン１４０６が押されたかどうかを判断し、判断の結果、キャンセルが指示されたならば再印刷ＧＵＩを終了する。キャンセルが指示されなければ処理を継続する。
【０１１３】
ステップ９０４において、再印刷ＧＵＩモジュール５１９は、図１４のＧＵＩでユーザにより指定された保存先サーバ１４０１に対して、ＲＰＣ（ＲｅｍｏｔｅＰｒｏｃｅｄｕｒｅＣａｌｌ）を使って、サーバコンピュータ上の保存ジョブ管理処理部に保存ジョブリストを要求する。ここで取得した保存ジョブリストを保存ジョブ一覧リストコントロールに追加・表示する。
【０１１４】
ステップ９０５において、再印刷ＧＵＩモジュール５１９は、保存ジョブ一覧１４０２に表示された保存ジョブから、ユーザにより選択された再印刷するジョブを判断する。続いて、ステップ９０６において、再印刷ＧＵＩモジュール５１９は、プルダウン形式のウインドウである出力先プリンタ一覧１４０３から、ユーザにより選択された実際に出力されるプリンタを判断する。それらの判断は、ユーザによるマウス等のポインティングデバイスの操作によりどの候補領域がクリックされたかを判断すればよい。
【０１１５】
また、ステップ９０７において、再印刷ＧＵＩモジュール５１９は、ユーザにより保存先を更新するかどうかを示すチェックボックス１４０４のチェックが選択されたかを判断する。保存先を更新するが選択された場合、選択された保存ジョブは削除され、再印刷後に保存された新しい保存ジョブに置き換わる。
【０１１６】
そして、ステップ９０８において、再印刷ＧＵＩモジュール５１９は、再印刷ボタン１４０５が押下されたかを判断する。ユーザにより再印刷ボタン１４０５が押下されたと判断した場合には、ステップ９０９において、前記処理で選択された保存ジョブＩＤ、出力先プリンタのプリンタドライバ名、保存ジョブを更新を元に、図１５で示された再印刷処理が実行される。再印刷ボタン１４０５が押されるか、キャンセルボタンが押されるかのいずれかの処理が行われると処理は終了する。
【０１１７】
以上の処理により、再印刷ＧＵＩから任意の保存ジョブの再印刷処理が起動されることになる。
【０１１８】
図１６は、本発明に係る印刷システムにおける第５のデータ処理手順の一例を示すフローチャートであり、再印刷が実行されたときの保存ジョブ管理処理部５１２の処理を表したフローチャートである。
【０１１９】
ステップ１００１において、保存ジョブ管理処理部５１２は、再印刷ＧＵＩ５１９を経由して保存ジョブ送信処理部からＲＰＣを使った印刷データの取り出し要求（印刷データを受ける共有ファイル名、ジョブＩＤ、プリンタドライバ名、更新フラグ）を受ける。
【０１２０】
ステップ１００２において、保存ジョブ管理処理部５１２は、ステップ１００１で受け取ったジョブＩＤを元に、保存ジョブリストから保存ジョブ情報を検索する。ステップ１００３において、検索の結果、指定された保存ジョブがリストに登録されていなければ、呼び出し元に対してエラーを返す。
【０１２１】
検索の結果、登録されていたならば、ステップ１００４において、保存ジョブ管理処理部５１２は、保存ジョブリストに格納されたプリンタドライバ名と、出力先プリンタドライバ名を比較する。比較の結果、違うモデル、つまり違う属性と判断された場合は、ステップ１０１０において、保存ジョブ管理処理部５１２は、保存ジョブファイルからＥＭＦデータだけを抽出する。
【０１２２】
一方、ステップ１００４において、同じモデル、つまり同じ属性と判断された場合は、ステップ１００５において、保存ジョブ管理処理部５１２は、ＲＡＷデータだけを抽出する。これにより、無駄なデータ転送を回避することができる。ステップ１００６において、保存ジョブ管理処理部５１２は、ステップ１００１にて渡された、印刷データ書込み用の共有ファイルに抽出した印刷データを書き込む。続いて、ステップ１００７において、保存ジョブ管理処理部５１２は、呼び出し元に返すリターン値に印刷データの種別を書き込む。この時点で、クライアントに渡す印刷データの書込みは完了する。
【０１２３】
ステップ１００８において、保存ジョブ管理処理部５１２は、更新フラグが設定されているかどうかを判断し、判断の結果、更新フラグが設定されていなければ、そのまま終了し、更新フラグが設定されているなら、ステップ１００９において、再印刷の元となる保存ジョブファイルを削除する。削除することで、オリジナルの保存ジョブファイルは削除されるが、再印刷にすることで保存ジョブファイルが新しく生成されるため、結果として保存ジョブファイルが更新されることになる。
【０１２４】
図１７は、本発明に係る印刷システムにおける第６のデータ処理手順の一例を示すフローチャートであり、再印刷が実行されたの処理を表したフローチャートである。
【０１２５】
ステップ１１０１において、再印刷ＧＵＩ５１９で指定された項目をＲＰＣのパラメータとして設定する。ステップ１１０２において、印刷データを受け取るための共有ファイルを作成する。ＲＰＣによる印刷データ要求の結果として、この共有ファイルに印刷データが書き込まれることになる。
【０１２６】
ステップ１１０３において、前記図１５のフローチャートで示した処理が実行され、保存ジョブ送信処理部５０９が印刷データを受け取ることになる。ステップ１１０４において、リターン値に格納されている印刷データの属性を判断し、判断の結果、受け取った印刷データがＥＭＦデータであったなら、ステップ１１０５において、通常のアプリケーションから印刷する時の手順に従って、印刷するデバイス（ここでは、プリンタ）のデバイスコンテキストを作成する。デバイスコンテキストは、描画する用紙の属性、プリンタの能力、属性が書き込まれた一種のファイルであり、このデバイスコンテキスもとに作成したメタファイルハンドルに描画することで印刷が実現できる。
【０１２７】
ステップ１１０６において、取得したＥＭＦデータと、前記デバイスコンテキストからメタファイルハンドルを取得する。ステップ１１０７において、ＥＭＦファイルを描画する。ＥＭＦを描画する時は、専用のＧＤＩ関数（ＰｌａｙＭｅｔａＦｉｌｅ（））を呼び出すことで、ＧＤＩ５０８がプリンタドライバと連動して印刷データを生成する。
【０１２８】
ステップ１１０８において、メタファイルハンドルを削除する。ステップ１１０９において、デバイスコンテキストを削除することで、印刷処理の終了をＧＤＩに告げる。この時点で、生成された印刷データは、スプーラに送られ通常の印刷が実行される。ステップ１１０４の判断の結果、ＲＡＷデータであったならば、ステップ１１１１において、印刷先プリンタをオープンし、直接スプーラに印刷データを送るようにする。
【０１２９】
ステップ１１１２において、サーバから受け取った印刷データをそのままプリンタに書き込むことで、保存時の印刷イメージがそのままプリンタに送られることになる。ステップ１１１３において、すべての印刷データが送り終えたなら、プリンタをクローズする。そして、ステップ１１１０において、印刷データを受け取った共有ファイルを削除する。
【０１３０】
以上の処置により、保存サーバに保存されている保存ジョブから印刷データを取り出し、指定されたプリンタに再出力することができる。
【０１３１】
以下、図１８に示すメモリマップを参照して本発明に係るサーバ装置、クライアント装置を適用可能な印刷システムで読み出し可能なデータ処理プログラムの構成について説明する。
【０１３２】
図１８は、本発明に係るサーバ装置、クライアント装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１３３】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１３４】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１３５】
本実施形態における図１１〜図１３、図１５〜図１７に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１３６】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１３７】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【０１３９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４１】
以上説明したように、本実施例によれば、印刷が完了したジョブのみを保存ジョブとしてサーバで一括管理でき、サーバ障害時においても印刷ジョブの保存をクライアントが肩代わりすることが可能である。
【０１４２】
また、サーバ上の保存容量が増加した時点で、自動的にクライアントから保存ジョブをアップロードすることができる。
【０１４３】
【発明の効果】
以上説明したように、本発明によれば、プリントサーバに保存された保存ジョブデータをクライアント装置が取り出し、再印刷先が同じ属性のプリンタであれば、デバイス依存形式データを用いて印刷処理を行うため、全く同じ印刷イメージが再現でき、また再印刷先が違う属性のプリンタである場合は、デバイス非依存形式データから再度デバイス依存形式データを生成して印刷処理を行うため、オリジナルの印刷イメージに近い出力が可能となる。
【図面の簡単な説明】
【図１】本実施の印刷ジョブ保存管理システムを適用するネットワークシステムのシステム構成図である。
【図２】図１におけるクライアントコンピュータの概略構成を示すブロック図である。
【図３】図２におけるＲＡＭに、図４に示すＦＤからプログラムを展開したときのメモリマップである。
【図４】図２におけるＦＤ内部のデータを表すメモリマップである。
【図５】図１におけるクライアントコンピュータと図２におけるＦＤとの関係を表した図である。
【図６】本実施の形態に係るクライアントコンピュータおよびサーバのソフトモジュール構成を表す図である。
【図７】クライアントのレジストリ構成を表す図である。
【図８】サーバのレジストリ構成を表す図である。
【図９】リストの構成を表す図である。
【図１０】図１に示すクライアント装置の表示装置に表示される印刷設定画面の一例を示す図である。
【図１１】本発明の印刷完了通知処理部の流れを表したフローチャートである。
【図１２】本発明の保存ジョブ送信処理部の流れを表したフローチャートである。
【図１３】本発明の保存ジョブ管理処理部の流れを表したフローチャートである。
【図１４】本発明の再印刷ＧＵＩを表す図である。
【図１５】本発明の再印刷ＧＵＩの流れを表したフローチャートである。
【図１６】本発明の保存ジョブ送信処理部の再印刷処理の流れを表したフローチャートである。
【図１７】本発明の保存ジョブ管理処理部の印刷データ抽出処理の流れを表したフローチャートである。
【図１８】本発明に係るサーバ装置，クライアント装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図１】
0004776763.tif 000002
【図２】
0004776763.tif 000003
【図３】
0004776763.tif 000004
【図４】
0004776763.tif 000005
【図５】
0004776763.tif 000006
【図６】
0004776763.tif 000007
【図７】
0004776763.tif 000008
【図８】
0004776763.tif 000009
【図９】
0004776763.tif 000010
【図１０】
0004776763.tif 000011
【図１１】
0004776763.tif 000012
【図１２】
0004776763.tif 000013
【図１３】
0004776763.tif 000014
【図１４】
0004776763.tif 000015
【図１５】
0004776763.tif 000016
【図１６】
0004776763.tif 000017
【図１７】
0004776763.tif 000018
【図１８】
0004776763.tif 000019