(57)【要約】【課題】  従来の印刷システムにおいて、システムの再起動等で印刷が完了と認識できないとユーザに再印刷をさせていた。そのため同じ印刷をすることになったりして、不便であった。そこで印刷が完了したか判断し、印刷が完了していない場合はジョブを保持しておき、一定時間後に再印刷する方法が提案されている。ところが、システムのダウンが長期にわたる場合、別手段により印刷しているなどの理由で、再印刷が無駄に終わることがあった。【解決手段】  保持されているジョブに有効期限を設定し、再印刷処理の前に有効期限を確認する手段を設け、有効期限が切れている場合は再印刷しないようにした。【選択図】  図１１
2005174174.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と通信可能な情報処理装置であって、
再印刷のために保持手段に保持された印刷ジョブのデータを、印刷完了が確認に応じて開放する保持制御手段と、
印刷制御プログラムの起動時に保持手段に保持された印刷ジョブのデータを調査する調査手段と、
前記調査手段により見つけられた印刷ジョブのデータに関連付けられた再印刷設定に応じて前記保持手段に保持された印刷ジョブのデータの再印刷を促す手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記再印刷設定の設定内容は変更可能であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記再印刷設定には、前記促す手段により再印刷を促す期限が含まれており、前記期限を超過しているか否かを判定する判定手段を有し、前記促す手段は、前記判定手段により期限を超過していると判定された場合には再印刷を促すことなく、期限内と判定されれば再印刷を促す表示を行なうことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記保持手段に保持される印刷ジョブのデータは中間形式ファイルのデータであり、前記中間形式ファイルのデータに基づくメンバジョブの印刷処理を行なう印刷処理手段を有し、前記保持制御手段は、前記メンバジョブの完了に基づき前記中間形式ファイルのデータを開放することを特徴とする請求項１から３の何れかに記載の情報処理装置。
【請求項５】
前記再印刷設定に前記促す手段による再印刷の促しが無効に設定されている場合には、前記保持制御手段により保持された印刷ジョブのデータに基づく再印刷を促さないことを特徴とする請求項１から４の何れかに記載の情報処理装置。
【請求項６】
印刷装置と通信可能な情報処理装置における印刷処理方法であって、
印刷制御プログラムの起動時に、再印刷のために印刷ジョブのデータを印刷完了が確認されるまで保持された印刷ジョブのデータを調査する調査手段と、
前記調査手段により見つけられた印刷ジョブのデータに関連付けられた再印刷設定に応じて前記保持制御手段に保持された印刷ジョブのデータの再印刷を促す手段と、
を有することを特徴とする印刷処理方法。
【請求項７】
請求項６に記載の印刷処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムをコンピュータ可読の形態で格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再印刷におけるセキュリティーの仕組みに関する。
【背景技術】
【０００２】
印刷システムにおいて、システムの中核をなすホストやサービスの再起動などにより印刷実行できなくなった場合や、ジョブの終了が確認できなかった場合、ジョブを復元ジョブとして保存しておき、再起動後にユーザに再実行・キャンセルを選択させる方法が提案されている。
【０００３】
プリンタ装置は、受信した外部データを不揮発性記憶部４に保存すると、操作パネル及びホストコンピュータに当該外部データの有効期限の入力を促すメッセージを送信して、何れかから入力された有効期限情報を上記外部データに関連付けて不揮発性記憶部し、タイマーにより、有効期限の経過した外部データがあると、不揮発性記憶部から削除して、記憶容量の制限のある不揮発性記憶部に記憶される外部データを適切に管理するという技術が開示されている（例えば特許文献１参照）。
【特許文献１】特開２００２−１７８５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方、ホストコンピュータをベースに印刷データを再印刷等の為に保持し、プリンタにおいて印刷出力が完了し、保持しておく必要がなくなったら印刷データを開放する印刷形態が知られているが、特許文献１に開示される内容では、プリンタ装置における印刷データの保持の仕組みに関するものであり、ホストコンピュータをベースに印刷データを保持する形態においては改善の余地があった。
【０００５】
つまり、ホストやサービスの停止が長期間に渡った場合、別のホストから同ジョブを印刷をしたり、紙なし等の障害回避により印刷終了している可能性があり、印刷再実行が無駄になることが考えられる。また、セキュリティの観点からジョブをいつまでも保存しておくことには問題があった。
【０００６】
本発明は、印刷が正常終了を確認できなかった場合でも印刷を保証できる印刷制御方法
及び情報処理装置並びに制御プログラム及び記録媒体において、保存されている
ジョブを一定時間後に無効化することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、印刷装置と通信可能な情報処理装置であって、再印刷のために保持手段に保持された印刷ジョブのデータを、印刷完了が確認に応じて開放する保持制御手段と、印刷制御プログラムの起動時に保持手段に保持された印刷ジョブのデータを調査する調査手段と、前記調査手段により見つけられた印刷ジョブのデータに関連付けられた再印刷設定に応じて前記保持手段に保持された印刷ジョブのデータの再印刷を促す手段と、を有することを特徴とする仕組みを提供する。
【発明の効果】
【０００８】
以上、詳細に説明したように、本発明によれば、ジョブを送信した後にプリンタから印刷終了の通知を受信しないまま印刷制御プログラムがコンピュータの再起動と共に起動された場合には、調査された印刷ジョブのデータが有効期間以内なら、以前にプリンタに出力した印刷ジョブを復元するので、最初から印刷設定を全て行なうことなく、再度印刷ジョブのデータの出力を効率的行なうことができ、印刷を保証できる。一方、有効期間を過ぎている場合、ユーザにキャンセル処理を選択させることなくジョブの無効化を行えるので、利便性が上がると同時にセキュリティも向上する。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら本発明の実施の形態に係る印刷システムについて説明する。
【００１０】
図１は、本発明の実施の形態にかかる印刷システムの構成を示すブロック図である。情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続されており、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。また、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えている。
【００１１】
プリンタドライバは複数のプリンタドライバをサポートするものである。また、プリンタ（入出力装置）は、電子写真方式を採用したレーザービームプリンタ、インクジェット方式を採用したインクジェットプリンタ、熱転写方式を利用したプリンタ等の様々な方式のもののうち何れであってもよい。
【００１２】
１０１はホストコンピュータであるサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置である。プリントサーバ１０１はネットワークケーブルによってネットワーク１０６に接続されており、ネットワーク１０６で使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。また、プリ出力方法指定部７０１ントサーバ１０１は、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えており、複数のプリンタの管理も行っている。
【００１３】
クライアント１０２〜１０４及びプリントサーバ１０１は一般的な情報処理装置である。プリントサーバ１０１は、クライアント１０２〜１０４としての機能を併せて持つこともできる。クライアント及びプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００１４】
プリントサーバ１０１は、さらにクライアント１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、または、クライアント１０２、１０３、１０４から印字データを含まないジョブ情報のみを受け取ってクライアント１０２、１０３、１０４の印刷順序を管理し、印刷の順番が来たクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得してクライアント１０２、１０３、１０４に通知したりする機能を揃えている。
【００１５】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインタフェースを介してネットワーク１０６に接続されており、クライアント１０２、１０３、１０４から送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して、１ページ毎に印刷する。ネットワーク１０６にはクライント１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等が接続されている。
【００１６】
図２は、図１におけるクライアントの構成を示すブロック図である。サーバ１０１も同様あるいは同等のハードウエア構成を有している。従って、以下にクライアントの構成についてだけ説明し、サーバ１００の構成についての説明は省略する。
【００１７】
図２において、２００はクライアント１０２、１０３、１０４の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１８】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００１９】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブである。後述する図５に示すように、このＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２０】
ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。
【００２１】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等が格納されている。さらにスプーラがここに確保される。スプーラは、クライアントにおいてはクライアントスプーラであり、プリントサーバではサーバスプーラである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２２】
２０６はキーボード（指示入力手段）であり、ユーザがクライアントに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力するものである。
【００２３】
２０７はディスプレイ（表示手段）であり、キーボード２０６から入力されたコマンドや、プリンタの状態等を表示するものである。
【００２４】
２０８はシステムバスであり、クライアントであるコンピュータ内のデータの流れを司るものである。
【００２５】
２０９はインタフェース（入出力手段）であり、該インタフェース２０９を介してクライアントは外部装置とのデータのやり取りを行う。
【００２６】
図３は、図２におけるＲＡＭ２０２のメモリマップの一例を示す図である。これは、上記のネットワークプリンタ制御プログラムがＦＤ２０４からＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２７】
本実施の形態では、ＦＤ２０４からネットワークプリンタ制御プログラム及び関連データを直接にＲＡＭ２０２にロードして実行する例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にＨＤ２０５にインストールされているネットワークプリンタ制御プログラムをＲＡＭ２０２にロードするようにしてもよい。
【００２８】
なお、ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接にＣＰＵ２００で実行することも可能である。
【００２９】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３０】
また、ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序の変更を指示したりするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能したりするものでもよい。あるいは一台のコンピュータに、クライアントとして機能するモジュールと、プリントサーバとして機能するモジュールとをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成であってもよい。
【００３１】
３０１は基本Ｉ／Ｏプログラムであり、制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００３２】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データであり、これもＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアであり、ＣＰＵ２００がプリンタ制御プログラムを実行する領域が確保されている。
【００３３】
図４は、図２におけるＦＤ２０４のメモリマップの一例を示す図である。図４において、４００はＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報、４０２はディレクトリ情報、４０３は後述する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。
【００３４】
４０３のネットワークプリンタ制御プログラムは、後述するフローチャートに基づいてプログラム化したものであり、クライアント及びサーバ双方ともに同様の構成をとっている。
【００３５】
図５は、図２におけるＦＤドライブ２０３、及びこれに挿入されるＦＤ２０４を示す図である。図２と同一のものには同一の符号を付してある。
【００３６】
図５において、ＦＤ２０４にはネットワークプリンタ制御プログラム及び関連データが格納されている。
【００３７】
なお、本実施の形態では、複数のプリンタデバイスの夫々に対応する個々のプリンタドライバに対して一元的な印刷設定の指示が可能であり、且つ、後述するＤｅ−Ｓｐｏｏｌｅｒが各プリンタドライバに描画命令を通知する為の中間形式ファイルを生成する為の基データ（中間形式データ）を生成するドライバをグループプリンタドライバと呼ぶ。また、プリンタデバイスに依存した個々のプリンタドライバをメンバプリンタドライバと呼ぶ。
【００３８】
図６は、クライアントから発行された印刷ジョブが印刷ジョブ制御システムにおいてどのように処理されるかを示す図である。図６において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
【００３９】
通常、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）などの一般的なアプリケーションから印刷が指示されると、アプリケーションプログラムはＯＳのグラフィック機能を介して一連の描画命令を生成させ、この描画命令をプリンタドライバ経由でＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ６０４に渡す。Ｗｉｎｄｏｗｓ（登録商標）  Ｓｐｏｏｌｅｒ６０４は、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイス６５０に送信させる手順をとる。
【００４０】
ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、ジョブ制御ポートモニタ）を指定して印刷を指示する。アプリケーションプログラム６０１は一連のＯＳを介して描画命令を生成する。
【００４１】
描画命令を受け取ったグループプリンタドライバ６０３は中間形式ファイルを生成する為の中間形式データを生成し、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータを印刷ジョブ制御システム用プリントサービス６２２（以降、ジョブ制御プリントサービス）に送信する。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の管理するジョブ／デバイスの状態を管理する機能を備える。更に、デバイスとクライアントとがピアツーピア接続環境で互いに動作するような場合には、ジョブ制御プリントサービス６２２はデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令を出したりする機能も備える。これは、複数のプリンタデバイス６５０のデバイス情報やジョブ情報を管理する機能に相当する。
【００４２】
印刷ジョブ制御システム用のプリントマネージャ６２３（以降、ジョブ制御プリントマネージャ）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェース（ＵＩ）を提供するプログラムである。
【００４３】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報の送受信を実行し、主に、ジョブ制御プリントサービス６２２が管理する外部のプリンタデバイスの状態の情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなったことの警告、クライアントとデバイスとの間の通信障害、メモリ不足、排紙トレー満載等のエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００４４】
印刷ジョブ制御システム用サーバ６３０（以降、ジョブ制御サーバ）は、個々のクライアント６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。また、ジョブ制御サーバ６３０はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスを監視し、ジョブ制御プリントサービス６２２にイベントを通知する機能を備える。ここで、プリンタステータスの状態変化の監視について、ジョブ制御プリントサービス６２２は直接に状態の変化の通知（イベント）をプリンタデバイスから取得することもできる。
【００４５】
印刷ジョブ制御システム用のマネージメントコンソール６３３（以降、ジョブ制御マネージメントコンソール）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００４６】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００４７】
次に本実施の形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００４８】
グループプリンタドライバ６０３はアプリケーションプログラムが生成した一連の描画コマンドを、上に説明した中間形式データを生成する。この中間形式データはジョブ制御プリントサービス６２２によってプリンタデバイスの種類に依存しない中間フォーマットのファイルである中間形式ファイルに変換される。この中間形式ファイルの構成については後述する。
【００４９】
この中間形式ファイルは前述したようにＷｉｎｄｏｗｓ（登録商標）  Ｓｐｏｏｌｅｒ６０４からジョブ制御ポートモニタ６２１を経て（ａ）、ジョブ制御プリントサービス６２２に導かれる（ｂ）。ジョブ制御プリントサービス６２２はこのプリントジョブに対して行うジョブ制御の種類に応じて、中間形式ファイルをもとに描画コマンドを生成し（ｃ）、続いてＰＤＬドライバ６０２がその描画コマンドをＰＤＬファイルにして、プリンタデバイス６５０が解釈可能にする。図６に示す例では、ジョブ制御プリントサービス６２２がこのプリントジョブに対してプリントジョブを２つに分けるジョブ制御を行っており、２つのメンバジョブが生成されたことを２つの矢印（ｃ）で示している。
【００５０】
本実施の形態においては、上に説明したようにジョブ制御サービス６２２を介して分散印刷処理が行なわれ中間形式ファイルを元に生成された２つのメンバジョブを「子ジョブ１」、「子ジョブ２」と呼ぶ。また、「子ジョブ１」、「子ジョブ２」の基になる中間形式ファイルに対応させた仮想ジョブのことを「親ジョブ」と呼ぶ。
【００５１】
ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される（ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００５２】
ジョブ制御プリントサービス６２２は、中間形式ファイル中の印刷指示書の指示にしたがって、一つの中間形式ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図６中の（ｃ）、（ｄ）、（ｅ）、（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００５３】
図７は、中間形式ファイルの構成の一例を示す図である。
【００５４】
本実施の形態で使用される中間形式ファイルは、印刷指示部７ａと、ドキュメントデータ部７ｂとからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００５５】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部７０１、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名７０２及び７０３、メンバプリンタドライバ設定情報部などから構成されている。
【００５６】
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
【００５７】
ページ情報部は、ドキュメントデータ部７ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００５８】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００５９】
出力方法指定部７０１は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
【００６０】
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【００６１】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
【００６２】
メンバプリンタドライバ名７０２及び７０３は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名は、出力方法指定部７０１で設定された出力方法を実現する為の、メンバプリンタを構成する情報であり、ここで指定されたメンバプリンタが実際のプリンタに転送する印刷データを生成する。
【００６３】
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
【００６４】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００６５】
尚、中間形式ファイルは、印刷指示部８ａとドキュメントデータ部８ｂが分離可能な形態として処理することができるファイルであってもかまわない。その場合、印刷指示部は印刷指示書ファイルとして、ドキュメントデータ部はドキュメントデータファイルとしてそれぞれ存在し、これらを一つのアーカイブ形式でまとめて同様に一つのファイルのように扱うことも可能である。
【００６６】
上述の図６で説明したグループプリンタドライバ６０３では、中間形式ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部７ａへ記録する。さらに、グループプリンタドライバ６０３はＧＤＩで受け取ったデータを汎用的なデータに変換しドキュメントデータとして、中間形式ファイルのドキュメントデータ部に記録することとなる。
【００６７】
図８は、印刷システムと印刷ジョブ制御システムにおける印刷ジョブの関係及び処理の概要を示す図である。
【００６８】
図８において印刷システムはＷｉｎｄｏｗｓ（登録商標）によって提供されるＰｒｉｎｔＳｙｓｔｅｍである。
【００６９】
図８中で印刷ジョブ制御システム７００は、サーバ及びクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１Ａ，Ｂは、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２Ａ，Ｂと関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。プリントジョブデータはおのおののクライアントのプロキシ出力ポート７１２Ａ，Ｂに保持される。
【００７０】
ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００７１】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００７２】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、上述のようにユーザまたはアプリケーション６０１は、グループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを属性情報とともに発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して中間形式ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのジョブを受け取り、Ｄｅ−Ｓｐｏｏｌｅｒ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。
【００７３】
この時、Ｄｅ−Ｓｐｏｏｌｅｒ７０１は上述の図７で説明した中間形式ファイルの印刷指示部７ａを解釈し、ドキュメントデータ部７ｂのドキュメントデータを加工して、Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部７ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。また、上に説明したＤｅ−ｓｐｏｏｌｅｒとは別のモジュールに印各メンバプリンタドライバに対応する指示情報を刷指示部７ａから抽出させ、該抽出された各メンバプリンタドライバに対する印刷指示をＤｅ−ｓｐｏｏｌｅｒに解釈させるような形態も想定される。
【００７４】
また、Ｄｅ−ｓｐｏｏｌｅｒ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００７５】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【００７６】
プリントサーバ１０１（ホスト側）、或いは、クライアントコンピュータが本印刷制御プログラムに対して図１〜図８に示されるようなシステムを介して印刷先設定をした場合に、図７における出力方法指定部７０１に分散印刷が指定された場合には、複数のメンバプリンタドライバ名７０２、７０３に基づく図６において説明した仕組みで分散印刷処理を行なう。また、出力方法指定部７０１に代行印刷が指定された場合には、第１に利用するように設定されたメンバプリンタドライバ名に基づくメンバプリンタにメンバジョブを発行するよう指示が行なわれ、代行印刷処理が実行される。また、カラーモノクロ分散印刷印刷、同報印刷においても同様にメンバプリンタ名の設定に基づくメンバプリンタによりメンバジョブが発行され、各々の機能を実現する。以下では、分散印刷を例に説明を行なうが、無論これに限定されるものではなく、様々な出力方法指定部において指定された印刷方法に本発明が適用可能であることはいうまでもない。
【００７７】
分散印刷システムはジョブ制御プリントサービス６２２の指示に従いＰＤＬドライバ６０２にてジョブの分割処理を行い、印刷ジョブ作成モジュールを実行することにより、設定された分散割合にて子ジョブを作成し（ステップＳ１００１）、ジョブ印刷モジュールを実行することにより、各々を分散印刷を実行する（ステップＳ１００２）。
【００７８】
ジョブ印刷モジュールとしては、上に説明した図７の印刷ジョブ制御システム７００やジョブ制御プリントサービス６２２を相当させることができる。
【００７９】
以下では、分散ジョブとして「子ジョブ１」、「子ジョブ２」、及び「子ジョブ３」の３つの画像形成装置（夫々プリンタＡ、プリンタＢ、プリンタＣ）を利用した分散印刷処理を説明する。また上にも説明したように、「子ジョブ１」、「子ジョブ２」、「子ジョブ３」の基になる中間形式ファイルに対応させた仮想ジョブのことを「親ジョブ」と呼ぶこととする。先に説明した図９の「親ジョブ」、「子ジョブ１」、「子ジョブ２」の表示は、ステップＳ１００１で生成される各子ジョブに夫々対応するものとなる。
【００８０】
分散印刷先では印刷ジョブの属性情報（印刷続行不能と考えられる障害が発生していないかなど）を判断し、印刷が正常に実行できる状態であることの確認処理を経てから必要に応じて分散先情報の転送が行われる。
【００８１】
転送においては、ジョブ制御プリントサービス６２２は印刷ジョブを追跡管理する為に中間形式ファイル識別子（親ジョブの識別子）をキーにして分散先情報を保持する。この分散先情報には分散された頁記述言語の印刷ジョブ識別子（子ジョブの識別子）も含まれ、これらはメモリ上に保持される他に、作成された中間形式ファイルに付属して補助記憶装置などにも併せて保持（付属情報）される。
【００８２】
子ジョブの識別子および親ジョブの識別子には夫々付属情報としてのステータス（スプール中、稼動中、印刷中止、印刷正常終了等、図６のジョブプリント制御サービス６２２とジョブ制御サーバ６３０の間のステータスの送受信）が割り当てられており、該ステータスはプリンタデバイスから通知されてくるイベントの監視によって更新される。
【００８３】
ステップＳ１００４では、ＨＤ２０５に保持される印刷ジョブのデータとしての中間形式ファイルのデータが、この中間形式ファイルのデータに基づくメンバジョブのプリンタにおける印刷出力完了が確認されたことに応じて、保持を制御する手段により開放される。
【００８４】
具体的には、分散印刷において発行されたメンバジョブである子ジョブの各々のステータスが印刷正常終了になり印刷完了が確認された場合に親ジョブのステータスが正常終了となる。親ジョブのステータスが終了となることに応じて親ジョブのデータ（中間形式ファイル）の開放処理（削除処理）が実行される（ステップＳ１００４に対応）。ここで、子ジョブのステータスの取得方法としては、例えば、印刷データ発行側（クライアント或いはサーバ）によるポーリングでも良いし、プリンタからの印刷出力完了を監視するような形態でも良い。
【００８５】
さらに、付属情報には分散印刷の際の各分散ジョブの頁範囲の情報や、何頁まで印刷が正常に終了したかの情報および、ファイル作成日時情報などが含まれている。この親ジョブ及び子ジョブの状態やプリンタデバイスの状態の監視及び管理は、例えば、上に説明したジョブ制御プリントサービス６２２により行なわれる。本実施形態における仕組みには、この付属情報を管理する仕組みを備えることにより、ステップＳ１００４や、後述する図１１の処理や、図９のＵＩの提示を可能としている。
【００８６】
複数の子ジョブのステータスに基づき親ジョブの終了が認識されると（ステップＳ１００３）、中間形式ファイル及びそれに関連する付属情報（親ジョブ及び子ジョブの付属情報を含む）は解放される（ステップＳ１００４）。ステップＳ１００４における親ジョブの開放処理は複数の子ジョブ（分散ジョブ）がすべて正常に終了したことに対応する。
【００８７】
ステップＳ１００３にて親ジョブの終了が印刷システムによって認識されないままの段階で、なんらかの不具合によりホスト側が電源ＯＦＦなどに陥った場合は、次回ホスト起動時に伴い印刷制御プログラムが起動した際に復元印刷処理が起動する（図１１）。
【００８８】
復元印刷処理が起動される場合としては、印刷制御プログラムがメンバジョブの印刷出力の完了を認識しないまま、印刷制御プログラムが終了し、再度起動する場合に対応するが、このような事態が発生するケースとしては、印刷制御プログラムが仮想するコンピュータの突然の電源ＯＦＦの他に、オペレーティングシステムのフリーズ、印刷制御プログラムが強制終了する場合などが想定される。
【００８９】
以下、印刷制御プログラムがメンバジョブの印刷出力の完了を認識しないまま、印刷制御プログラムが終了し、再度起動する場合に実行される、復元処理並びに復元ジョブの有効確認処理について説明する。
【００９０】
図１１は、復元ジョブの有効確認処理のフローである。
【００９１】
図１２は、保持手段（ＨＤ２０５）に保持される印刷ジョブのデータに関連付けられ、ジョブ制御プリントサービス６２２が起動時に読み込む再印刷設定の一例である。
【００９２】
まず、図１２について説明を行なうと、キー“ＳｈｏｗＬｉｓｔ”の値が０の場合は、復元ジョブを表示しない。また、キー“ＳａｖｅＤａｙｓ”の値が−１の場合は、ジョブを無効化しない。０以上の場合は経過日数によりジョブを無効化するか判断する。これらの情報は管理者によって各種の情報を記載され、ファイルとしてＨＤ２０５に保存、または、メモリ上に保存、または、外部記録装置に保存される。
【００９３】
次に復元印刷処理を、図１１のフローチャートに基づき説明する。
【００９４】
まず、ステップＳ１１０１では、例えばＰＣの再起動等で、スタートメニューに登録されたジョブ制御プリントサービス６２２が再起動すると、図１２に例示したジョブ制御プリントサービス情報設定ファイルを読み込み、各種初期化を行う。
【００９５】
そしてステップＳ１１０２では、キー“ＳｈｏｗＬｉｓｔ”の値を読み込み、復元ジョブを表示するかしないか判断する。
【００９６】
ここでは、ＳｈｏｗＬｉｓｔ＝０の場合は、復元ジョブの表示を行わない。０以外の場合は復元ジョブ表示するために、中間形式ファイルを検索する。尚、ＳｈｏｗＬｉｓｔ＝０の場合に復元ジョブの表示を行なわないように説明をしたが、ＳｈｏｗＬｉｓｔの値としては「０」に限定されるものではなく、復元ジョブの表示、或いは、復元上に係る処理を行なわないということを本印刷制御プログラムが認識可能なものであれば、適宜任意の値を採用することができる。
【００９７】
また、親ジョブの終了がなされないまま、即ち印刷未終了の子ジョブが存在するか否かの判断は、付属情報を参照することによりなされる。印刷未終了の子ジョブが存在するということは、中間形式ファイルが残っていることに対応し、印刷未終了の子ジョブに対応する中間形式ファイル（親ジョブ）の探索を実行し（ステップＳ１１０３）、終了通知を受信せずに障害にあった可能性がある子ジョブを中間形式ファイルから再生成して復元ジョブとして管理する。
【００９８】
尚、印刷終了についてはデバイスからの印刷完了通知に基づくものであってもよいが、印刷ジョブをホストコンピュータからデバイスに転送終了したことに基づくものであることが実際には想定される。
【００９９】
ステップＳ１１０４では、復元ジョブが見つかった場合、情報設定ファイルからキー“ＳａｖｅＤａｙｓ”の値を読み込み、現在時刻と比較しジョブが有効か判断する。例えば、ＳａｖｅＤａｙｓ＝２の場合、現時刻とファイル作成日を秒単位で比較し、差が１７２８００秒（２日）を越えていた場合、有効期間を超えていると判断する。
【０１００】
ステップＳ１１４０４でＹＥＳと判断され、有効期間内の場合は、ステップＳ１１０５で、図９のＵＩを表示する。
【０１０１】
図９は、印刷システムの部分印刷機能のページ指定を示すＧＵＩを例示する図であり、既に説明したプリントマネジャー６２３により実現される。図９においては「子ジョブ１」、「子ジョブ２」が未終了のままでホストコンピュータの電源が遮断されるなど、印刷が完了したか否かが不明であることを示している。また、「子ジョブ３」がリストに無いことは子ジョブ３に対応する印刷完了通知がなされ「子ジョブ３」が正常に印刷終了したことを示している。そして、ドキュメント名から指定されたジョブの再印刷が再印刷ボタン９０１への指示に応じて実行される。またドキュメント名から指定されたジョブの削除がジョブの削除ボタン９０２への指示に応じて実行される。
【０１０２】
また、リスト中には子ジョブに対応する親ジョブの表示制御もなされている。これにより未終了な可能性のある子ジョブが、どの親ジョブに対応するかを容易に知ることができる。このように図９の表示がなされることにより、ユーザは、未完了の可能性があるジョブを一覧でき、再印刷及び削除を自由に行なうことができる。
【０１０３】
リスト表示された復元ジョブは個別の子ジョブ（メンバジョブ）又は親ジョブを選択して全てのメンバジョブの再印刷を指示することが可能である。
【０１０４】
ステップＳ１１０６では再印刷の指示が有るか否かを判別する。ステップＳ１１０６では再印刷の指示が所定の子ジョブについて行なわれたのか、或いは、親ジョブに対して行なわれたのかを判定し、指示が行なわれたジョブの出力をする処理が図６〜８に基づく仕組みにより実行される。
【０１０５】
再印刷の指示が所定の子ジョブである場合は、中間形式ファイルから指示のあった所定の子ジョブの付属情報に含まれる子ジョブの印刷頁範囲に対応する再度印刷ジョブ作成の再生成を行印刷処理（Ｓ１１０７）を再実行する。一方、親ジョブに対して際いい再印刷の指示があった場合には、親ジョブに基づく各メンバジョブの再印刷の処理が行われる。
【０１０６】
図９のような一覧リストの表示をジョブ制御プリントサービス６２２の指示によりプリントマネージャー６２３に行わせるので子ジョブ毎に再印刷指示を選択的に実行させることができるようになり、例えば、分散印刷の複数の子ジョブのうち印刷が終了したと認識されていないもののみを再印刷候補に提示することが可能となる。これは、付属情報に含まれる、子ジョブ毎の印刷終了に関わるステータスをクライアントマシーン（情報処理装置）に保持しておき、該保持された付属情報を参照することにより、実現される。
【０１０７】
一方、終了通知を受けていないが、終了しているとユーザが判断もしくは再印刷が不要であるとする場合は中間形式ファイルを無効化（例えばジョブの削除や、）して（ステップＳ１１０８）、印刷処理を中止することも可能である。
【０１０８】
ステップＳ１１０２で、復元ジョブを表示しないと判断した場合は、復元ジョブ検索処理を行わないで、復元印刷処理を終了する。
【０１０９】
ステップＳ１１０４で、見つかった復元ジョブが有効期間を越えていたと判断した場合は、ステップＳ１１０８でジョブを無効化する。
【０１１０】
以上説明したように、本実施の形態に係る印刷システムによれば、転送されたジョブの終了が認識されないまま再起動された場合に、再印刷を促すリストを提示するので、例えば突然の停電によりホストコンピュータの電源が遮断されたような場合にでも、ユーザに無駄の無い再印刷の機会を提供することができる。また、ジョブの有効期間を設けているので再印刷が必要となくなったジョブを、ユーザにキャンセルを選択させることなく、自動で無効化（例えば削除）が可能となる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施の形態にかかる印刷システムの構成を示すブロック図である。
【図２】図１におけるクライアントの構成を示すブロック図である。
【図３】図２におけるＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２におけるＦＤ２０４のメモリマップの一例を示す図である。
【図５】図２におけるＦＤドライブ２０３、及びこれに挿入されるＦＤ２０４を示す図である。
【図６】クライアントから発行された印刷ジョブが印刷ジョブ制御システムにおいてどのように処理されるかを示す図である。
【図７】中間形式ファイルの構成の一例を示す図である。
【図８】印刷システムと印刷ジョブ制御システムにおける印刷ジョブの関係及び処理の概要を示す図である。
【図９】印刷システムの部分印刷機能のページ指定を示すＧＵＩを例示する図である。
【図１０】復元ジョブの確認全般の処理を示すフローである。
【図１１】復元ジョブの有効確認処理のフローである。
【図１２】プリントサービス情報設定ファイルの一例である。
【図１】
2005174174.tif 000003
【図２】
2005174174.tif 000004
【図３】
2005174174.tif 000005
【図４】
2005174174.tif 000006
【図５】
2005174174.tif 000007
【図６】
2005174174.tif 000008
【図７】
2005174174.tif 000009
【図８】
2005174174.tif 000010
【図９】
2005174174.tif 000011
【図１０】
2005174174.tif 000012
【図１１】
2005174174.tif 000013
【図１２】
2005174174.tif 000014