(57)【要約】【課題】複数の印刷装置を接続する画像処理装置において、印刷エラーによりいずれかの印刷装置が停止すると印刷未完了のため、印刷データをスプーラから削除できない。そのため、後続ジョブの印刷データを格納可能な領域が減少し印刷効率の低下が生じる。【解決手段】外部装置から受信した印刷ジョブに基づいて印刷データを生成し、接続された印刷装置のいずれかにより生成された印刷データに基づく印刷を行わせる画像処理装置において、以下の処理を行う。即ち、印刷ジョブを解析し、その印刷ジョブに基づいて印刷データを生成し、該生成された印刷データをスプーラに出力する。その際、前記解析の結果に基づいて、前記印刷データに基づいて印刷を行う装置として指定された印刷装置の状態を示す情報を取得する。そして、その取得情報に基づいて、前記指定された印刷装置が稼働中ではないと判断された場合、処理待ちの印刷ジョブの数と再稼働までの見込み時間とに基づいて、印刷ジョブに基づく印刷データの生成を制御する。【選択図】  図４
2018081594.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から受信した印刷ジョブに基づいて印刷データを生成し、接続された複数の印刷装置のいずれかにより前記生成された印刷データに基づく印刷を行わせる画像処理装置であって、
前記印刷ジョブに基づいて前記印刷データを生成し、該生成された印刷データを記憶手段に出力する生成手段と、
前記印刷ジョブを解析する解析手段と、
前記解析手段による解析の結果に基づいて、前記複数の印刷装置のうち、前記印刷データに基づいて印刷を行う装置として指定された印刷装置の状態を示す情報を取得する取得手段と、
前記取得手段により取得された情報に基づいて、前記指定された印刷装置が稼働中ではないと判断された場合、処理待ちの印刷ジョブの数と再稼働までの見込み時間とに基づいて、前記印刷ジョブに基づく前記生成手段による前記印刷データの生成を制御する制御手段とを有することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、処理待ちとなっている待機ジョブキューの最後尾に前記印刷ジョブをキューイングすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記処理待ちの印刷ジョブの数と前記再稼働までの見込み時間とに基づいて、一定時間の間に、前記指定された印刷装置が復旧すると判断される場合、前記印刷ジョブに基づく前記印刷データの生成を前記生成手段に行わせるよう制御することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記取得手段により取得された情報が、前記指定された印刷装置による印刷中に印刷エラーが発生したことを示す場合、前記指定された印刷装置とは別の印刷装置により印刷を行うかどうかを判断する判断手段と、
前記判断手段により前記別の印刷装置で印刷を行うと判断された場合、前記生成手段により生成され、前記記憶手段に格納された印刷データを削除する削除手段と、
前記判断手段により前記別の印刷装置で印刷を行わないと判断された場合、前記印刷ジョブを前記指定された印刷装置により印刷するよう再登録する再登録手段とをさらに有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記制御手段は、前記削除手段により削除された前記印刷データに対応する印刷ジョブを前記別の印刷装置の処理待ちとなっている待機ジョブキューの最後尾にキューイングすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記再登録手段は、
前記生成手段による前記印刷ジョブに基づく前記印刷データの生成時間が予め定められた閾値、以下であれば、前記生成手段により印刷データの生成を再び行わせ、既に生成された印刷データは削除し、
前記印刷データの生成時間が予め定められた閾値をこえる場合には、前記記憶手段の空き容量と前記記憶手段への格納が待ちとなっている印刷データの存在と前記印刷エラーとなった前記印刷データのデータサイズと基づいて、前記既に生成された印刷データを再利用すると判断することを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記再登録手段による再登録により、前記生成手段により印刷データを再び生成する場合、前記記憶手段に格納され、処理待ちとなっている印刷ジョブの内容に基づいて、前記生成手段により印刷データを再び生成することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記印刷ジョブは、画像データと、前記生成による印刷データの生成に係る情報と前記印刷データの出力先となる印刷装置を指定する情報とを含む印刷設定ファイルとからなることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記画像データは、レンダリング処理が必要な画像データと前記レンダリング処理の必要がないビットマップデータを含み、
前記生成手段は、レンダリング処理が必要な画像データに対してレンダリング処理を実行して印刷データを生成し、前記ビットマップデータは前記レンダリング処理を実行せずそのまま印刷データとして出力することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記制御手段は、前記印刷ジョブが前記レンダリング処理の必要がないビットマップデータを画像データとして含むかどうか、前記印刷エラーが発生した印刷装置の待機ジョブキューにあるかどうかに従って、該待機ジョブキューの先頭に前記印刷ジョブをキューイングすることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記制御手段は、前記印刷エラーが発生した印刷装置の再稼働までの見込み時間の近くに処理が実行されると推定される前記待機ジョブキューの部分に前記印刷ジョブを割り込ませることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記記憶手段をさらに有し、
前記記憶手段は、前記印刷ジョブを格納するインプットスプーラと、前記印刷データを格納するアウトプットスプーラとを含むことを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記印刷ジョブに基づいて前記インプットスプーラの空き容量を、前記印刷データに基づいて前記アウトプットスプーラの空き容量を管理する管理手段をさらに有することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
請求項１乃至１３のいずれか１項に記載の画像処理装置と、前記画像処理装置に接続され、前記画像処理装置から出力された印刷データに基づいて印刷を行う複数の印刷装置とを有する印刷システムであって、
前記複数の印刷装置それぞれは、
前記画像処理装置に対して、装置の状態が稼働中であるかどうかと、印刷エラーが発生したかどうかを通知する通知手段を有することを特徴とする印刷システム。
【請求項１５】
外部装置から受信した印刷ジョブに基づいて印刷データを生成し、接続された複数の印刷装置のいずれかにより前記生成された印刷データに基づく印刷を行わせる画像処理装置の画像処理方法であって、
前記印刷ジョブを解析する解析工程と、
前記印刷ジョブに基づいて前記印刷データを生成し、該生成された印刷データをスプーラに出力する生成工程と、
前記解析工程における解析の結果に基づいて、前記複数の印刷装置のうち、前記印刷データに基づいて印刷を行う装置として指定された印刷装置の状態を示す情報を取得する取得工程と、
前記取得工程において取得された情報に基づいて、前記指定された印刷装置が稼働中ではないと判断された場合、処理待ちの印刷ジョブの数と再稼働までの見込み時間とに基づいて、前記印刷ジョブに基づく前記生成工程における前記印刷データの生成を制御する制御工程とを有することを特徴とする画像処理方法。
【請求項１６】
請求項１５に記載の画像処理方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、印刷システム、及び画像処理方法に関する。
【背景技術】
【０００２】
印刷ジョブは、例えば、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）などのＰＤＬ形式のファイルで構成され、画像処理に時間がかかる。印刷は、画像処理された結果を利用して実行される。そのため、用紙ジャム等により印刷エラーが発生した場合に、初めから処理をやり直すと印刷が開始されるまで時間がかかり、エラー復旧後に速やかな印刷が行われない。
【０００３】
特に写真印刷では、出力する印刷装置の特性に合わせた色調整を施す画像処理を行っているので、印刷エラーが発生した場合、エラーが発生した装置に代わって別の装置で出力しようとすると、その印刷装置に合わせた色調整が再度必要となる。このため、速やかな印刷を行うことができない。この課題を解決するため、１つの印刷ジョブに属する全てのページの印刷が完了するまで画像処理後のデータをスプールしておき、印刷エラーからの復旧後には、そのスプールデータを利用して速やかに印刷を開始する方法が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９２６７２公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さて、特許文献１によれば、画像処理装置は一定の速度で印刷データを生成することでスプール領域を増加させ、印刷装置は一定の速度で印刷することでスプール領域を解放する。特許文献１によれば、印刷エラーの発生した印刷装置で利用されるデータは、印刷エラーから復旧し、印刷が完了するまでスプールを継続する。
【０００６】
しかしながら特許文献１が提案する技術では、画像処理を実行する画像処理装置と印刷を行う印刷装置との台数の関係が１対ｎ（ｎ＞１）となる場合が考慮されていない。そのため、印刷エラーが発生すると、印刷も削除もできないデータがスプール領域を占有し、スプール領域を圧迫してしまう。その結果、稼働中の他の印刷装置で印刷する画像処理後のデータをスプールできず、他の印刷装置の印刷効率の低下させたり、もしくは印刷停止を引き起こすことがあった。
【０００７】
本発明は上記従来例に鑑みてなされたもので、印刷装置が複数存在する場合でも、スプールの枯渇を防止するとともに、効率的な印刷処理を実現する画像処理装置、印刷システム、画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の画像処理装置は次のような構成を有する。
【０００９】
即ち、外部装置から受信した印刷ジョブに基づいて印刷データを生成し、接続された複数の印刷装置のいずれかにより前記生成された印刷データに基づく印刷を行わせる画像処理装置であって、前記印刷ジョブに基づいて前記印刷データを生成し、該生成された印刷データを記憶手段に出力する生成手段と、前記印刷ジョブを解析する解析手段と、前記解析手段による解析の結果に基づいて、前記複数の印刷装置のうち、前記印刷データに基づいて印刷を行う装置として指定された印刷装置の状態を示す情報を取得する取得手段と、前記取得手段により取得された情報に基づいて、前記指定された印刷装置が稼働中ではないと判断された場合、処理待ちの印刷ジョブの数と再稼働までの見込み時間とに基づいて、前記印刷ジョブに基づく前記生成手段による前記印刷データの生成を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、出力先として指定された印刷装置が稼働中でない場合も、印刷ジョブに基づく印刷データの生成が制御され、印刷ジョブや印刷データを格納する記憶手段の格納領域の使用を最適化することが可能になるという効果がある。
【００１１】
これにより、例えば、記憶手段に構成される、例えば、スプールの領域が枯渇することが防止され、効率的な印刷処理が実現される。
【図面の簡単な説明】
【００１２】
【図１】本発明の代表的な実施例である印刷システムの全体構成を示すブロック図である。
【図２】図１に示す制御ユニットの詳細な構成を示すブロック図である。
【図３】図１に示した画像処理装置における基本的な処理の一例を示すフローチャートである。
【図４】図１に示す制御ユニットにより実現されるＲＩＰに関する機能構成の一例を示すブロック図である。
【図５】図１に示すスプーラに実現される構成の一例を示すブロック図である。
【図６】図４に示す印刷設定ファイルの構成の一例を示す図である。
【図７】印刷ジョブの一例を示す図である。
【図８】図４に示すジョブ管理テーブルの一例を示す図である。
【図９】図４に示すスプーラ管理テーブルの一例を示す図である。
【図１０】図４に示す出力装置情報テーブルの一例を示す図である。
【図１１】印刷装置を２台使用して印刷する場合におけるスプーラの状態を示す図である。
【図１２】ジョブ制御部が実行する印刷設定ファイルに基づく印刷データ生成部へのＲＩＰ指示に係る処理を示すフローチャートである。
【図１３】印刷エラーが発生した際に印刷データをどのように印刷ジョブとして再登録するかを示すフローチャートである。
【図１４】ステップＳ１３１２で実行する生成した印刷データを利用したジョブ再登録処理の詳細を示すフローチャートである。
【図１５】図１３のフローチャートに示すジョブ再登録後の印刷データの生成処理を示すフローチャートである。
【図１６】他の実施例に従う印刷ジョブの処理順序の変更処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下添付図面を参照して本発明の好適な実施例について、さらに具体的かつ詳細に説明する。なお、以下の説明では、図面全体を通して、同じ構成要素に対して同じ参照番号を付して言及する。そのため、一度説明した構成要素に対しては同じ参照番号を用いて言及し、その説明を繰り返すことはしない。
【００１４】
なお、この明細書において、「記録」（「プリント」又は「印刷」という場合もある）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。さらに人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【００１５】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１６】
図１は、本発明の代表的な実施例である印刷システムの全体構成を示すブロック図である。この実施例では、図１に示すように、画像処理装置が複数の印刷装置を接続して印刷システムを構成する例について説明する。
【００１７】
印刷システム１００は、ホスト装置１０１から印刷ジョブを受信し、その印刷ジョブをビットマップデータに展開する画像処理装置１０２と、そのビットマップデータを印刷する複数の印刷装置１０３とを含む。画像処理装置１０２は、画像処理装置全体の各種制御を司る制御ユニット１０４と、印刷に係るデータを格納するスプーラ１０５とで構成される。
【００１８】
制御ユニット１０４は、ＣＰＵ（またはＭＰＵ）、ユーザインタフェース情報の出力器（表示情報や音響情報などの発生器）、各種Ｉ／Ｏインタフェースを備えた制御部を内蔵する。スプーラ１０５は、ホスト装置１０１から入力される印刷ジョブや、画像処理装置１０２で展開するビットマップデータを格納する。印刷装置１０３は、例えば、インクジェット記録装置などである。インクジェット記録装置は、各色のインクを吐出する記録ヘッドを備え、さらに画像処理装置１０２から指示に従って、インクの吐出タイミング、各種ローラ（例えば、給紙ローラ、搬送ローラ等）の駆動を制御する制御部を内蔵し、記録媒体に画像を印刷する。
【００１９】
この実施例では、印刷装置としてインクジェット記録装置を用いるが、本発明はこれによって限定されるものではなく、例えば、電子写真方式に従って画像を印刷するレーザビームプリンタなどの記録装置を用いても良い。
【００２０】
図２は、図１に示す制御ユニット１０４の詳細な構成を示すブロック図である。
【００２１】
図２に示すように、制御ユニット１０４は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、外部Ｉ／Ｆ２０５、画像処理部２０６、エンジン制御部２０７、表示部２０８、操作部２０９を有し、それぞれがシステムバス２１０を介して接続される。
【００２２】
マイクロプロセッサ形態のＣＰＵ２０１は、制御プログラムを実行して各構成要素を駆動して印刷システム１００全体の動作を制御する。ＲＯＭ２０２は、ＣＰＵ２０１が実行するための制御プログラムや印刷システム１００の各種動作に必要な固定データを格納する。ＲＡＭ２０３は、ＣＰＵ２０１が制御プログラムを実行する際に作業領域、種々の受信データの一時格納領域、各種設定データを記憶領域、印刷ジョブのリストや作業用データの記憶領域として用いられる。
【００２３】
ＨＤＤ２０４は、印刷ジョブに基づき展開されたビットマップデータ等を一時的に格納する。また、ＨＤＤ２０４は、ＣＰＵ２０１が実行する制御プログラム、印刷データ、印刷装置の各種動作に必要な設定情報を格納したり、読出したりすることが可能である。なお、ＨＤＤ２０４に加え（又は、代えて）、ＳＳＤ（半導体記憶装置）などの他の大容量記憶装置を用いてもよい。外部Ｉ／Ｆ（インタフェース）２０５は、印刷ジョブやその他のコマンド、ステータス信号等をホスト装置１０１との間で送受信する。例えば、ホスト装置１０１から送信された印刷ジョブの情報は外部Ｉ／Ｆ２０５を介してＲＡＭ２０３に格納される。
【００２４】
画像処理部２０６は、印刷ジョブに基づいてレンダリング処理（ＲＩＰ（ラスタ画像処理））を実行することで、ページ単位でビットマップデータを生成する。具体的には、ＰＤＬ（ページ記述言語）で記述された文字、線画、図形等のベクトル情報、或いは、パターン、写真等の画像情報を、印刷や表示が可能なビットマップデータに展開する。また、画像処理部２０６では、例えば、色空間の変換処理（例えば、ＹＣｂＣｒをｓＲＧＢへ変換）、有効な（印刷装置が印刷処理可能な）画素数への解像度変換処理、画像解析処理、画像補正等、様々な画像処理が必要に応じて実行される。画像処理部２０６による画像処理によって得られたビットマップデータ（ＲＩＰ済みデータ）は、例えば、ＨＤＤ２０４等に格納される。
【００２５】
エンジン制御部２０７は、印刷装置に対して生成されたビットマップデータの印刷開始を要求する。各色インクに対応した記録ヘッドや各種ローラ（搬送ローラや給送ローラなど）の駆動制御については印刷装置で適切に行われる。なお、エンジン制御部２０７は、印刷装置に対して印刷開始を要求しても良いし、印刷可能になったことを通知するだけでもよい。
【００２６】
表示部２０８は、ユーザインタフェース情報の出力器（例えば、ＬＣＤやＬＥＤ）を制御し、印刷ジョブのリストや印刷ジョブの各種処理状況、印刷ジョブに含まれる画像のプレビュー等を表示する。表示部２０８は、例えば、ＲＡＭ２０３に格納された印刷ジョブリストを用いて表示を行う。操作部２０９は、ユーザにユーザインタフェース情報に基づいた設定や指示を入力させる。例えば、画像処理部２０６へ印刷データ生成中の印刷ジョブに対するキャンセル指示や表示部２０８へプレビュー表示の指示をユーザに行わせる。
【００２７】
図３は、図１に示した画像処理装置１０２における基本的な処理の一例を示すフローチャートである。この処理は、ＣＰＵ２０１が、ＲＯＭ２０２またはＨＤＤ２０４に格納されている制御プログラムをＲＡＭ２０３にロードし、それを実行することにより実行される。ここでは、記録用紙のような記録媒体に片面印刷を行う際の処理の流れについて説明する。
【００２８】
まず、ステップＳ３０１では、画像処理装置１０２が外部Ｉ／Ｆ２０５を介して、ホスト装置１０１から印刷ジョブを受信し、ステップＳ３０２では、受信した印刷ジョブをスプーラ１０５に格納する。次に、ステップＳ３０３では、画像処理装置１０２はスプーラ１０５から印刷ジョブを取得し、画像処理部２０６において、当該受信した印刷ジョブをＲＩＰ（ラスタ画像処理）する。
【００２９】
ステップＳ３０４では、ＲＩＰされたデータはＲＩＰ済みデータとして一時的にＲＡＭ２０３又はＨＤＤ２０４に格納し、その後、出力設定に合わせた回転や拡大縮小の処理を行い、ビットマップデータとしてスプーラ１０５に格納する。ステップＳ３０５では、画像処理装置１０２のエンジン制御部２０７は、印刷装置１０３に対し、そのビットマップデータを用いた印刷開始を要求する。
【００３０】
ステップＳ３０６では、画像処理装置１０２は印刷装置１０３から印刷終了の通知を受信すると、スプーラ１０５に格納されているビットマップデータを削除し、さらにステップＳ３０７では、スプーラ１０５に格納した印刷ジョブを削除する。
【００３１】
以上のようにして印刷処理を終了する。
【００３２】
なお、図３に示した処理では片面印刷の場合について説明したが、２ｉｎ１印刷や両面印刷の場合、ステップＳ３０３で必要なページ分のＲＩＰを行い、ステップＳ３０４で面付けや回転、拡大縮小等の必要な処理を行った後、スプーラ１０５に格納すればよい。
【００３３】
図４は、図１に示す制御ユニット１０４により実現されるＲＩＰに関する機能構成の一例を示すブロック図である。
【００３４】
制御ユニット１０４はＣＰＵ２０１がＲＯＭ２０２等に格納された制御プログラムを実行して、ジョブ制御部４０１、印刷ジョブ受信部４０２、印刷データ生成部４０３、印刷データ送信部４０４、スプーラ管理部４０５、ＵＩ制御部４０６の各機能を実現する。
【００３５】
ジョブ制御部４０１は、印刷ジョブに係る処理を統括制御する。具体的には、ジョブ制御部４０１は、印刷データ生成部４０３に印刷ジョブに基づくＲＩＰ開始の指示や、印刷データ送信部４０４へＲＩＰ完了、印刷開始要求を通知する。さらに、ジョブ制御部４０１は、印刷ジョブ受信部４０２や印刷データ生成部４０３、スプーラ管理部４０５からＲＩＰや印刷に必要なパラメータ情報を取得し、ジョブ管理テーブル４０７を生成する。
【００３６】
印刷ジョブ受信部４０２はホスト装置１０１から送られてきた印刷ジョブを受信する。印刷ジョブ受信部４０２により受信された印刷ジョブは、印刷ジョブ格納用に設けられたスプーラ１０５に一旦格納される。なお、印刷ジョブはＰＤＦ形式やＪＰＥＧ形式などの画像データ４０８と、印刷時に指定される各種パラメータ情報が記載された印刷設定ファイル４０９で構成されるものとする。
【００３７】
この実施例では、印刷ジョブ受信部４０２は、印刷設定ファイル４０９をスプーラ１０５から一時的に取得し、印刷設定ファイル４０９に記述される情報を解析する。印刷設定ファイル４０９はジョブ制御部４０１や印刷データ生成部４０３において参照され、設定情報に応じて画像データ４０８が処理される。
【００３８】
印刷データ生成部４０３は、ジョブ制御部４０１からの指示に基づいて、印刷ジョブをＲＩＰし、ビットマップデータを生成してスプーラ１０５に格納する。また、印刷データ生成部４０３はそのデータ生成に要した時間と印刷データのサイズをジョブ制御部４０１に通知する。
【００３９】
印刷データ送信部４０４は、ジョブ制御部４０１からの指示に基づいて、ＲＩＰにより得られたデータについて、印刷装置１０３へ印刷を要求する。
【００４０】
スプーラ管理部４０５は、スプーラ１０５に格納された印刷ジョブやビットマップデータ（印刷データ）を監視し、スプーラ全体の管理を行う。スプーラ管理部４０５は、スプール領域の基本情報と、印刷データなどスプーラに格納されたデータとを参照し、スプーラ管理テーブル４１０を生成する。また、画像処理装置１０２に接続される複数の印刷装置１０３について、印刷装置毎に稼働状態や復旧時間などの情報を取得し、出力装置情報テーブル４１１を生成する。
【００４１】
ＵＩ制御部４０６は、表示部２０８への各種情報の表示を制御する。また、ＵＩ制御部４０６は、操作部２０９を介してユーザからの指示を受付け、これをジョブ制御部４０１に転送する。ユーザからの指示としては、例えば、通常よりも早く印刷を行いたい場合に印刷ジョブの優先度を変更する指示、投入した印刷ジョブをキャンセルする指示等が挙げられる。
【００４２】
図５は、図１に示すスプーラ１０５に実現される構成の一例を示すブロック図である。
【００４３】
スプーラ１０５は、図５（ａ）に示すように、ホスト装置１０１から受信した印刷ジョブを格納するインプットスプーラ５０１と、印刷データ生成部４０３で生成した印刷データを格納するアウトプットスプーラ５０２で構成される。
【００４４】
スプーラ１０５は、図５（ｂ）に示すように、ファイルサーバ５０３のような、アクセス制御を行うＣＰＵ５０４と複数のＨＤＤ５０５をネットワーク５０６で接続した構成で実現する。ファイルサーバ５０３の構成は一般的にＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）と呼ばれる。スプーラ１０５は制御ユニット１０４とネットワークを介した通信を行う。この実施例では、インプットスプーラ５０１とアウトプットスプーラ５０２は同一のファイルサーバ５０３において、論理的に構成するものとする。なお、インプットスプーラ５０１とアウトプットスプーラ５０２は、異なるファイルサーバとして夫々構成してもよいし、制御ユニット１０４における構成要素の１つとして、例えば、ＨＤＤ２０４に論理的に構成してもよい。
【００４５】
インプットスプーラ５０１は、印刷ジョブを構成要素の画像データ４０８と印刷設定ファイル４０９に分けて格納する。
【００４６】
図６は、図４に示す印刷設定ファイル４０９の構成の一例を示す図である。
【００４７】
印刷設定ファイル４０９は、印刷データの生成に係るパラメータを記述したジョブ情報部６０１と、ＲＩＰ実行に係る情報を記述したＲＩＰ情報部６０２と、出力先に係る情報を記述した出力情報部６０３とで構成される。
【００４８】
ジョブ情報部６０１は、ジョブＩＤ、ジョブ種別、ジョブサイズ、ページ数、レイアウト、出力サイズといった印刷データ生成に係る情報が記述される。ジョブ情報部６０１の記述は、印刷データ生成部４０３で参照される。
【００４９】
ＲＩＰ情報部６０２は、ＲＩＰを実行するか、スキップするかといったＲＩＰ実行に係るモード情報が記述される。ＲＩＰ情報部６０２の記述は、ジョブ制御部４０１が、印刷データ生成部４０３に指示を出すかスキップするかを決定する際に参照される。
【００５０】
出力情報部６０３は、どの印刷装置で出力するかといった出力先の装置情報が記述される。出力情報部６０３の記述は、印刷データ送信部４０４が印刷装置１０３に対して印刷要求を行う際に参照される。
【００５１】
図７は印刷ジョブの一例を示す図である。
【００５２】
印刷ジョブは、図４を参照して説明したように、印刷設定ファイル４０９と画像データ４０８により構成される。
【００５３】
画像データ４０８は、印刷ジョブの種別に応じて、複数ファイルまたは単一ファイルで構成する。例えば、「ＪＰＥＧ」形式の画像データならば、印刷設定ファイル４０９に記述されたページ数分の画像ファイルを含み、「ＰＤＦ」形式の画像データならば印刷設定ファイル４０９に記述されたページ数を持つファイルを１つ含む。
【００５４】
図７（ａ）に示すように、印刷ジョブ７０１は、画像データ４０８として「ＪＰＥＧ」画像を「５枚」含む。印刷ジョブ７０１が入力されると、印刷データ生成部４０３は印刷設定ファイル４０９を参照して、ジョブＩＤ「１００１」の「ＪＰＥＧ」画像を「５ページ」分で「４ｘ６」の大きさに相当する印刷データを生成する。そして、印刷データ送信部４０４は、印刷設定ファイル４０９を参照して、装置ＩＤ「００１」の印刷装置１０３に印刷データを送信して印刷を行わせる。
【００５５】
画像データ４０８として「ＰＤＦ」画像を１枚含む印刷ジョブ７０２や、画像データ４０８として「ＴＩＦＦ」画像を３枚含む印刷ジョブ７０３に対しても同様の処理がなされる。
【００５６】
図８は図４に示すジョブ管理テーブル４０７の一例を示す図である。
【００５７】
図８に示すように、ジョブ管理テーブル４０７はテーブル情報として、ジョブＩＤ８０１、ジョブ種別８０２、ジョブサイズ８０３、ＲＩＰ設定８０４、出力装置８０５、処理速度８０６、生成サイズ８０７、生成状況８０８を含む。ジョブ管理テーブル４０７に含まれるテーブル情報のうち、ジョブＩＤ８０１、ジョブ種別８０２、ジョブサイズ８０３、ＲＩＰ設定８０４、出力装置８０５は、印刷設定ファイル４０９から取得される。
【００５８】
ここで、図７に示した印刷ジョブ７０１を用いて具体的に説明する。印刷ジョブ７０１の場合、印刷設定ファイル４０９からジョブＩＤ８０１、ジョブ種別８０２、ジョブサイズ８０３として、それぞれ「１００１」、「ＪＰＥＧ」、「１０２４」を取得する。同様に印刷設定ファイル４０９からＲＩＰ設定８０４、出力装置８０５としてそれぞれ、「Ｓｔａｒｔ」、「００１」を取得する。処理速度８０６、生成サイズ８０７、生成状況８０８として、印刷データ生成部４０３から通知されるパラメータの値を取得する。
【００５９】
図９は図４に示すスプーラ管理テーブル４１０の一例を示す図である。スプーラ管理テーブル４１０は、図５に示すスプーラ１０５を管理するためのテーブルである。
【００６０】
図９に示すように、スプーラ管理テーブル４１０は、スプーラＩＤ９０１、最大容量９０２、使用量９０３、保持閾値９０４、リージョン９０５、転送速度９０６を含む。使用量９０３を除くテーブル情報はシステム構成時に設定される。この実施例では、図５で示したインプットスプーラ５０１とアウトプットスプーラ５０２はそれぞれ、「０００１」「１００１」のスプーラＩＤ９０１で管理される。
【００６１】
使用量９０３は、スプーラ１０５に格納されたジョブサイズ８０３と生成サイズ８０７の総和に基づいて設定される。具体的には、スプーラＩＤ９０１が「０００１」はインプットスプーラ５０１であり、ジョブサイズ８０３に基づいて、格納中の印刷ジョブの総和を算出して使用量９０３を設定する。同様に、スプーラＩＤ９０１が「１００１」はアウトプットスプーラ５０２であり、生成サイズ８０７に基づいて使用量９０３を設定する。
【００６２】
保持閾値９０４は、印刷ジョブと印刷データを格納する際に参照する基準値となる。保持閾値９０４に基づき、印刷エラーが発生した際に格納された印刷ジョブと印刷データの保持または削除を決定する。この実施例では、最大容量の５％の値を起動時に設定する。なお、保持閾値９０４としてＵＩ制御部４０６から指示される値を設定するようにしてもよい。
【００６３】
リージョン９０５は、スプーラ構成される領域を示す値である。リージョン９０５により、例えば、同じファイルサーバ上に構成されたかどうかが判定可能となる。転送速度９０６は、スプーラ間における転送速度が設定される。この実施例では、転送速度は起動時に通信を行った値を設定する。なお、転送速度は、定期的な通信による実測値で値を更新してもよい。
【００６４】
図１０は、図４に示す出力装置情報テーブル４１１の一例を示す図である。
【００６５】
図１０に示すように、出力装置情報テーブル４１１は、装置ＩＤ１００１、稼働状態１００２、エラー要因１００３、平均エラー復旧時間（ＭＴＴＲ）１００４〜１００６、停止後経過時間１００７を含む。
【００６６】
装置ＩＤ１００１と平均エラー復旧時間（ＭＴＴＲ）１００４〜１００６はシステム起動時に各印刷装置１０３と通信して情報を取得し設定する。稼働状態１００２は、装置ＩＤ１００１が示す印刷装置が稼働中であるかまたは停止中かの状態を示す。稼働状態１００２は定期的に印刷装置１０３と通信し設定する。エラー要因１００３は、印刷エラー発生時に印刷装置１０３から通知される原因を取得し設定する。
【００６７】
エラー復旧時間（ＭＴＴＲ）１００４〜１００６は、故障発生から復旧するまでの平均処理時間（ＭＴＴＲ（Ｍｅａｎ  Ｔｉｍｅ  Ｔｏ  Ｒｅｐａｉｒ））をエラー要因毎に設定する。なお、エラー復旧時間（ＭＴＴＲ）１００４〜１００６は、実際に印刷エラーが発生し復旧した際に、復旧までに要した時間へと値を更新してもよい。
【００６８】
停止後経過時間１００７は、印刷エラーが発生してからどの程度の時間が経過しているかを示す。停止後経過時間１００７は、装置ＩＤ＝１００３の印刷装置から印刷エラーが通知されるとカウントがスタートし、復旧するとカウントがリセットされる。停止後経過時間１００７は、印刷エラー発生時に印刷ジョブを再設定する際に参照される。
【００６９】
図１１は印刷装置１０３を２台使用して印刷する場合におけるスプーラ１０５の状態を示す図である。
【００７０】
図１１（ａ）は印刷開始直前のアウトプットスプーラ５０２の状態を示す図である。アウトプットスプーラ５０２は、図７で示した印刷ジョブ７０１〜７０３を印刷データ生成部４０３で処理した印刷データ１１０１〜１１０３と空き容量１１０４を含む。また、図７で示す印刷設定ファイル４０９が示唆するように、印刷データ１１０１（ジョブＩＤ：１００１）と印刷データ１１０３（ジョブＩＤ：１００３）は印刷装置１１０５（Ｄｅｖｉｃｅ：００１）で印刷される。一方、印刷データ１１０２（ジョブＩＤ：２００１）は印刷装置１１０６（Ｄｅｖｉｃｅ：００２）で印刷される。
【００７１】
図１１（ｂ）は印刷装置１１０５と印刷装置１１０６で正常に印刷された場合におけるアウトプットスプーラ５０２の状態を示す図である。図１１（ｂ）が示すように、印刷データ１１０１は印刷装置１１０５で５ページ印刷され、印刷データ１１０２は、印刷装置１１０６で５ページ印刷される。印刷が正常に実行されたことで印刷データ１１０１〜１１０２がアウトプットスプーラ５０２から解放される。これにより、２つの印刷データを解放された分の空き容量（Ｓｐａｃｅ）がアウトプットスプーラ５０２に生じる。このため、印刷データを格納する容量ができるため、後続ジョブの印刷データ生成も順次行われる。一方、印刷データ１１０３は、同じ出力装置を使用する印刷データ１１０１の印刷完了まで印刷開始を待機するため、アウトプットスプーラ５０２に残ったままとなる。
【００７２】
図１１（ｃ）は印刷装置１１０６でエラーが発生した場合におけるアウトプットスプーラ５０２の状態を示す図である。図１１（ｃ）によれば、印刷データ１１０１は、印刷装置１１０５で正常に印刷されるためアウトプットスプーラ５０２から解放される。一方、印刷データ１１０２は印刷装置１１０６にエラーが発生したため、印刷を完了できず、アウトプットスプーラ５０２を解放できない。その結果、アウトプットスプーラ５０２に生じる空き容量は、印刷データ１１０１の印刷完了によって生じる空き容量分だけとなり、後続ジョブの印刷データをスプールできる容量が減少する。
【００７３】
次に、以上の構成の印刷システムにおいて実行する印刷ジョブに基づく印刷処理の詳細についてフローチャートを参照して説明する。なお、以下に説明する図１２〜図１５に示すフローチャートの処理は、ＲＯＭ２０２などに格納された制御プログラムをＣＰＵ２０１が実行することにより実現される。
【００７４】
図１２は、ジョブ制御部４０１が実行する印刷設定ファイル４０９に基づく印刷データ生成部４０３へのＲＩＰ指示に係る処理を示すフローチャートである。
【００７５】
ジョブ制御部４０１は処理が開始されると、ステップＳ１２０１では印刷ジョブを解析して印刷設定ファイル４０９の出力情報部６０３に記述される情報を取得する。次に、ステップＳ１２０２では、スプーラ管理テーブル４１０を参照して、取得した出力先の印刷装置が稼働中であるか停止中であるかの状態を取得する。ステップＳ１２０３では、取得した状態に基づいて、出力先の印刷装置が稼働中であるか停止中であるかを調べる。
【００７６】
ここで、出力先の印刷装置が稼働中である（ステップＳ１２０３でＹｅｓ）の場合、処理はステップＳ１２０４に進み、印刷設定ファイル４０９のＲＩＰ情報部６０２のＲＩＰモード情報を取得する。ステップＳ１２０５では、ＲＩＰモード情報がＲＩＰスルージョブを示しているがどうかを調べる。
【００７７】
ここで、ＲＩＰモード情報がスキップ（即ち、印刷ジョブはＲＩＰスルージョブ）を示している（ステップＳ１２０５でＹｅｓ）の場合、処理はステップＳ１２０６に進む。ステップＳ１２０６では、印刷データ生成部４０３にＲＩＰ開始指示を行わず、印刷ジョブに含まれる画像データを印刷データとしてアウトプットスプーラ５０２に格納し、その後、処理を終了する。これに対して、ＲＩＰモード情報がスキップでない（即ち、印刷ジョブはＲＩＰスルージョブではない）ことを示している（ステップＳ１２０５でＮｏ）の場合、処理はステップＳ１２０７に進む。そして、ステップＳ１２０７では、印刷データ生成部４０３にＲＩＰ開始を指示し、通常通りＲＩＰを行い、印刷データを生成する。その後、処理はステップＳ１２０６に進み、生成された印刷データをアウトプットスプーラ５０２に格納し、その後、処理を終了する。
【００７８】
さて、ステップＳ１２０３において、出力先の印刷装置が停止中である（ステップＳ１２０３でＮｏ）の場合、処理はステップＳ１２０８に進み、ジョブの処理順を決定するため、ジョブ管理テーブル４０７を参照し処理開始待機中のジョブ数Ｗを取得する。続いて、ステップＳ１２０９では、出力装置情報テーブル４１１を参照し、処理中の印刷ジョブを出力する印刷装置がどの程度で復旧するかどうかを示す情報を取得する。さらに、ステップＳ１２１０では、取得した情報が当該印刷装置が一定時間（Ｎ時間）以内に復旧することを示しているかどうかを調べる。
【００７９】
ここで、取得した情報がＮ時間以内に復旧し印刷可能であることを示している（ステップＳ１２１０でＹｅｓ）場合、処理はステップＳ１２０４に進み、前述した処理を実行する。これに対して、取得した情報がＮ時間以内に復旧できないことを示している（ステップＳ１２１０でＮｏ）場合、処理はステップＳ１２１１に進む。ステップＳ１２１１では稼働中の印刷装置１０３でその印刷ジョブを処理するため、処理開始待機中のジョブキューの最後になるよう処理順序を変更する。その後、処理はステップＳ１２０１に戻り、前述した処理を実行する。
【００８０】
この実施例では、復旧許容時間Ｎは、停止後経過時間１００７が該当する平均エラー復旧時間（ＭＴＴＲ）１００４〜１００６の２０％以下とする。なお、復旧許容時間Ｎは、ＵＩ制御部４０６を介して任意の値を設定してもよいし、１０分など固定値でもよい。
【００８１】
図１３は印刷エラーが発生した際に印刷データをどのように印刷ジョブとして再登録するかを示すフローチャートである。この実施例では、印刷を正常完了した場合のみ、その印刷に係るデータをその後使用することが無いものとして削除する。この処理は、ジョブ制御部４０１により、印刷装置からの通知によって開始される。印刷装置は印刷が完了した場合と印刷中に印刷エラーが発生した場合にこの通知を行う。
【００８２】
まず、ステップＳ１３０１では、印刷装置からの通知により、印刷装置の処理状態を取得する。ステップＳ１３０２では、その処理状態が印刷エラーの発生を示しているかどうかを調べる。ここで、その処理状態が印刷エラーの発生を示していない（ステップＳ１３０２でＮｏ）場合、印刷が正しく行われたと判断し、処理はステップＳ１３０３に進み、アウトプットスプーラ５０２から印刷データを削除する。続けて、ステップＳ１３０４では、インプットスプーラ５０１から印刷ジョブを削除し、処理を終了する。
【００８３】
これに対して、その処理状態が印刷エラーの発生を示している（ステップＳ１３０２でＹｅｓ）場合、処理はステップＳ１３０５に進み、印刷エラーが発生した印刷ジョブの情報をジョブ管理テーブル４０７から取得する。次に、ステップＳ１３０６では、出力装置情報テーブル４１１から印刷エラーが発生した印刷装置のエラー要因を取得する。さらに、ステップＳ１３０７では、取得した印刷装置のエラー要因に基づき、印刷エラーからの復旧に必要となる復旧目安時間を出力装置情報テーブル４１１から取得する。
【００８４】
次に、ステップＳ１３０８では、エラーが発生した印刷データを稼働中の他の印刷装置で出力するかどうかを判断する。ここでは、画像の有無によって別の印刷装置で出力するかどうかを判断する。印刷データを生成する際に、印刷ジョブを解析するため、画像が含まれているかは判別可能である。また、別の方法として、例えば、出力可能な用紙サイズで判断しても良い。なお、データの内容によらず、ＵＩ制御部４０６を介して変更先を指定しても良い。
【００８５】
いずれにせよ、別の印刷装置で印刷すると判断された場合（ステップＳ１３０８でＹｅｓ）、処理はステップＳ１３０９に進む。ステップＳ１３０９では、例えば、印刷装置の固有の特性が示す色味の差により、元々生成した印刷データをそのまま使用できないため、生成した印刷データを削除する。そして、ステップＳ１３１０では、出力先を稼働中の印刷装置に変更し、さらに、ステップＳ１３１１では、再びＲＩＰ処理するように印刷ジョブを再登録する。この再登録により、新たに出力先となった印刷装置のジョブキューの最後尾にその印刷ジョブはキューイングされる。これに対して、別の印刷装置で印刷できないと判断された場合（ステップＳ１３０８でＮｏ）、処理はステップＳ１３１２に進み、生成した印刷データを利用したジョブ再登録処理を実行する。再登録処理の詳細については、後述する。
【００８６】
図１４は、ステップＳ１３１２で実行する生成した印刷データを利用したジョブ再登録処理の詳細を示すフローチャートである。
【００８７】
まず、ステップＳ１５０１では、印刷データ生成が十分に速いかどうかを判断する。印刷データ生成が十分に速いと判断された場合、再度処理を行っても印刷開始に十分間に合うため、再度画像処理を行うことが可能である。この実施例では、ジョブ管理テーブル４０７を参照し、印刷エラーが発生した印刷ジョブの生成時間がＮ秒以下である場合（ステップＳ１５０１でＹｅｓ）、処理はステップＳ１５０２に進み、再処理するように印刷ジョブを再登録する。そして、ステップＳ１５０３では、印刷データを削除し、処理を終了する。
【００８８】
この実施例では、再ＲＩＰ判定時間Ｎは５秒とする。なお、再ＲＩＰ判定時間Ｎは、ＵＩ制御部４０６を介して任意の値を設定してもよいし、印刷速度を基準として自動的に判断してもよい。
【００８９】
また、印刷ジョブ生成時間がＮ秒よりかかる場合（ステップＳ１５０１でＮｏ）、印刷データ生成に時間を必要とするため、既に生成された印刷データの再利用を考慮する。この場合、処理はステップＳ１５０４に進み、スプーラ管理テーブル４１０を参照し、各スプーラの状況を取得する。さらに、ステップＳ１５０５では、インプットスプーラ５０１の空き容量ＩＳＰを参照したスプーラ管理テーブル４１０の最大容量と使用量から取得する。同様に、アウトプットスプーラ５０２についても、ステップＳ１５０６において、その空き容量ＯＳＰを取得する。次に、ステップＳ１５０７では、ジョブ管理テーブル４０７を参照し、スプール待機ジョブの印刷データサイズを取得する。スプール待機ジョブとは、生成した印刷データをスプーラへの格納できず待機しているジョブのことである。
【００９０】
ステップＳ１５０８では、スプール待機ジョブがあるかどうかを調べる。ここで、スプール待機ジョブがない場合（ステップＳ１５０８でＮｏ）、処理はステップＳ１５０９に進み、アウトプットスプーラ５０２の空き容量ＯＳＰが保持閾値９０４より大きいかどうかを調べる。ここで、空き容量ＯＳＰ≧保持閾値９０４である（ステップＳ１５０９でＮｏ）場合、アウトプットスプーラ５０２に十分な空き容量があるため、印刷データをそのまま保持できると判断し、処理はそのまま終了する。
【００９１】
これに対して、空き容量ＯＳＰ＜保持閾値９０４である（ステップＳ１５０９でＹＥＳ）場合、処理はステップＳ１５１０に進む。また、スプール待機ジョブがある場合にも処理はステップＳ１５１０に進む。これらの場合には、印刷ジョブが投入され印刷データが生成された場合にこれを格納できない恐れがあるため、アウトプットスプーラ５０２を解放する処理を実行する必要がある。まず、ステップＳ１５１０では、印刷エラーが発生した印刷ジョブの印刷データサイズＰＤＳを取得する。
【００９２】
次に、ステップＳ１５１１では、印刷データを印刷ジョブとして再登録できるかどうか判断するため、再登録後のインプットスプーラ５０１の空き容量ＲＩＳを計算する。そして、ステップＳ１５１２では、計算された空き容量ＲＩＳとスプーラ管理テーブル４１０の保持閾値９０４を比較し、再登録可否を判断する。
【００９３】
ここで、空き容量ＲＩＳ＞保持閾値９０４である場合、処理はステップＳ１５１４に進み、再登録しても外部装置から投入される印刷ジョブの印刷データを格納できると判断し、スプーラ間の転送速度を取得する。そして、ステップＳ１５１５では、取得した転送速度と印刷データサイズに基づき、スプーラ間での転送時間を計算する。さらに、ステップＳ１５１６では、ステップＳ１３０７で取得した復旧目安時間とステップＳ１５１５で計算した転送時間を比較し、復旧までに転送が間に合うかどうか判断する。ここで、転送が間に合う場合（ステップＳ１５１６でＹｅｓ）、処理はステップＳ１５１８に進み、ＲＩＰ処理をスキップする印刷ジョブとして再登録し、その後、処理を終了する。
【００９４】
これに対して、空き容量ＲＩＳ≦保持閾値９０４である場合、処理はステップＳ１５１３に進み、予め設定された値に基づき、リトライするかどうかを判断する。ここで、リトライすると判断された場合（ステップＳ１５１３でＹｅｓ）、処理はステップＳ１５０５に戻り、設定値に従ってインプットスプーラの空き容量を再確認する。
【００９５】
この実施例では、画像処理装置１０２と印刷装置１０３の台数が１対Ｎ（Ｎ＞１）の関係のため、他の印刷装置が稼働することでスプーラに空きができ、再登録可能な場合がある。そのため、ステップＳ１５１３でのリトライ判断を行うことが可能となる。画像処理装置１０２と印刷装置が１対１接続の場合、印刷装置が停止中ではインプットスプーラ５０１の空き容量ができないため、ステップＳ１５１３の確認は行わなくてもよい。
【００９６】
一方、ステップＳ１５１３においてリトライしないと判断した場合、処理はステップＳ１５０２に進み、再処理するように印刷ジョブを登録し、さらにステップＳ１５０３では印刷データを削除し、処理を終了する。この実施例では、ステップＳ１５１３で実行するリトライ判断に用いるリトライ閾値（回数及び間隔）は、印刷設定ファイル４０９のＲＩＰ情報部６０２の属性として印刷ジョブ毎に設定する。リトライ閾値は印刷システム起動時に設定され、印刷ジョブにその設定値を付加する。なお、印刷設定ファイル４０９の属性として設定せず、ステップＳ１５１２において空き容量ＲＩＳ≦保持閾値９０４であり、印刷データを転送できない場合、ＵＩ制御部４０６を介してユーザに設定を要求してもよい。
【００９７】
また、ステップＳ１５１６において、復旧までに転送が間に合わないと判断され（ステップＳ１５１６でＮｏ）、エラー復旧までに印刷ジョブを再登録できない場合、処理はステップＳ１５１７に進み、印刷ジョブの再登録を強制的に行うかどうかを判断する。ここで、強制登録すると判断した場合、処理はステップＳ１５１８に進み、ＲＩＰ処理をスキップする印刷ジョブ（ＲＩＰスルージョブ）として再登録し、その後、処理を終了する。強制再登録を行うことで印刷エラーとなった印刷ジョブについて自動再開が可能となる。これに対して、強制再登録しないと判断した場合、処理はステップＳ１５０２に進み、再処理するように印刷ジョブを登録し、ステップＳ１５０３では印刷データを削除し、処理を終了する。
【００９８】
なお、外部装置から投入される印刷ジョブの印刷データをスプールに格納できなくなる場合を回避するため、復旧までに転送が完了しない場合、ユーザに判断を要求するようにしても良い。また、ステップＳ１５１７における強制再登録の判断は、ステップＳ１５１３におけるリトライ判断のように印刷設定ファイル４０９のＲＩＰ情報部６０２の属性として、印刷ジョブ毎に設定してもよい。
【００９９】
図１５は、図１３のフローチャートに示すジョブ再登録後の印刷データの生成処理を示すフローチャートである。この処理は、インプットスプーラ５０１に格納された印刷ジョブが存在する場合に開始する。
【０１００】
まず、ステップＳ１６０１では、印刷ジョブを取得、解析し、出力装置情報など印刷に係る情報を取得する。ステップＳ１６０２では、取得した情報に基づき、出力先の印刷装置の状態を取得する。
【０１０１】
次に、ステップＳ１６０３では、解析した情報により、印刷ジョブが通常通り処理するジョブか、ＲＩＰを行わないジョブ（ＲＩＰスルージョブ）かを判断する。ここで、ＲＩＰを行わないＲＩＰスルージョブの場合、処理はステップＳ１６１０に進み、そのままＲＩＰを行わずアウトプットスプーラ５０２に画像データを印刷データして格納し、処理を終了する。これに対して、ＲＩＰスルージョブではなく印刷ジョブが通常ジョブの場合、処理はステップＳ１６０４では、現在処理中以外のインプットスプーラ５０１に格納された処理待ち印刷ジョブを解析する。
【０１０２】
ステップＳ１６０５では、その解析結果に基づいて、処理待ち印刷ジョブにＲＩＰスルージョブが存在するかどうかを調べる。ここで、ＲＩＰスルージョブが存在すると判断された場合、処理はステップＳ１６０６に進み、処理中の印刷ジョブと関係があるか判断する。その関係性についてはＲＩＰスルージョブが、処理中の印刷ジョブに基づき生成されたものかどうかで判断する。具体的にはＲＩＰスルージョブを登録する際に元々のジョブＩＤも保持しておき、処理中の印刷ジョブのジョブＩＤを持つかどうかを探索する。図１４で説明したように、ＲＩＰスルージョブが登録される場合は出力先の印刷装置は変更しないため、ジョブＩＤの関連付けで十分である。ここで、処理中の印刷ジョブとＲＩＰスルージョブとが関係すると判断された場合、処理はステップＳ１６０７に進み、既に処理が開始されている処理中ジョブの処理をいったん中止する。そして、ステップＳ１６０８では、関係ありと判断されたＲＩＰスルージョブを割込み処理する。その後、ステップＳ１６１０では、処理中ジョブは通常ジョブからＲＩＰスルージョブに変更し、その画像データを印刷データとしてアウトプットスプーラ５０２に格納し、その後、処理を終了する。
【０１０３】
さて、ステップＳ１６０５において、ＲＩＰスルージョブが存在しないと判断された場合、また、ステップＳ１６０６において、ＲＩＰスルージョブが存在するものの処理中ジョブと関係がないと判断された場合、処理はステップＳ１６０９に進む。そして、ステップＳ１６０９では、通常通りＲＩＰを実行し、印刷データを生成する。そして、ステップＳ１６１０では、生成した印刷データをアウトプットスプーラ５０２に格納し、その後、処理を終了する。
【０１０４】
従って以上説明した実施例に従えば、印刷エラーが発生した際に印刷データ生成に係る処理時間とスプーラの状態、転送速度、復旧目安時間を考慮して、生成した印刷データを再利用することで、再処理する場合の印刷データ生成時間が不要とすることができる。
【０１０５】
また、印刷ジョブと生成した印刷データを利用した再登録ジョブの両方が存在する場合に、再登録ジョブを優先的に処理することで、印刷までの処理時間を大幅に短縮できる。さらにスプーラの空き容量に基づいた制御が行われるため、スプーラを必要以上に圧迫せず、他の出力装置への印刷データ転送を妨げることがなくなり、印刷効率を維持できる。
【０１０６】
＜他の実施例＞
前述の実施例では、再登録ジョブをその時点で投入された印刷ジョブの最後尾に登録するようにしていた（図１２のステップＳ１２１１）。また、印刷エラーが発生した印刷ジョブの出力先となる印刷装置を指定していた印刷ジョブも同様に処理順を遅らせていた（図１３のステップＳ１３１１）。しかしながら、印刷ジョブが大量に投入されている場合や、優先度の高い割込みジョブが次々と投入された場合には、処理の実行が待たされる恐れがあった。また、出力先となる印刷装置の特性に合わせた色調整を特に必要としないテキストや図形のようなデータは、より速く印刷を開始するために稼働中の印刷装置に出力先を変更することも可能である。
【０１０７】
図１６はジョブ制御部４０１における印刷ジョブの処理順序の変更処理を示すフローチャートである。なお、図１６に示すフローチャートの処理は、ＲＯＭ２０２などに格納された制御プログラムをＣＰＵ２０１が実行することにより実現される。
【０１０８】
まず、ステップＳ１４０１ではジョブを印刷受信すると印刷設定ファイル４０９を解析し、ＲＩＰモードを取得する。続いてステップＳ１４０２では印刷設定ファイル４０９に記述されたジョブ種別、レイアウト、出力用紙サイズから処理時間Ｔｐを推定する。同様にステップＳ１４０３では印刷設定ファイル４０９から出力先の情報を取得する。
【０１０９】
次に、ステップＳ１４０４では、出力装置情報テーブル４１１を参照しステップＳ１４０３で取得した出力先の印刷装置の状態を取得する。ステップＳ１４０５では、取得した出力先の印刷装置の状態が稼働中を示しているかどうかを調べる。ここで、取得した出力先の印刷装置の状態が稼働中を示していれば、印刷データ生成後に印刷を実行できるため、処理はステップＳ１４０６に進み、ＲＩＰモードを確認する。ここで、ＲＩＰモードがＲＩＰスルージョブである場合、処理はステップＳ１４０７に進み、印刷ジョブの画像データ４０８の部分をアウトプットスプーラ５０２に格納し、その後、処理を終了する。これに対して、ＲＩＰモードがＲＩＰスルージョブでない場合、処理はステップＳ１４０８に進み、印刷データ生成部４０３で印刷データを生成する。その後、処理はステップＳ１４０７に進み、生成された印刷データを格納し、その後、処理を終了する。
【０１１０】
ステップＳ１４０５において、出力先の印刷装置の状態が稼働中を示していない場合、処理順を変更するため、処理はステップＳ１４０９に進み、ＲＩＰモードを確認する。ここで、ＲＩＰモードがＲＩＰスルージョブである場合、処理はステップＳ１４１０に進み、待機ジョブの内、印刷エラーが発生した印刷装置を指定している印刷ジョブがあるかどうかを確認する。ここで、そのような印刷ジョブが存在しないことが確認された場合、処理はステップＳ１４１１に進み、当該印刷ジョブを印刷エラーが発生した印刷装置を指定する待機ジョブの先頭に割込み登録する。その後、処理はステップＳ１４０４に戻る。
【０１１１】
一方、ＲＩＰモードがＲＩＰスルージョブでない場合、処理はステップＳ１４１２に進み、出力先を変更するか判断する。ここで、出力先変更が有効であると判断された場合、処理はステップＳ１４１３に進み、接続された稼働中の印刷装置の内、その時点で最も待機ジョブ数が少ない装置を選択する。その後、処理はステップＳ１４０８、Ｓ１４０７を実行して、印刷データ生成し、これをアウトプットスプーラ５０２に格納する。
【０１１２】
さて、ステップＳ１４１０において、印刷エラーが発生した印刷装置を指定する待機中の印刷ジョブがない場合、また、ステップＳ１４１２において出力先を変更しないと判断した場合、処理はステップＳ１４１４に進み、処理順の変更方法を確認する。処理順の変更方法は、復旧後にすぐ印刷できるようタイミングを推定して処理順の登録をするか（推定登録）、または、待機ジョブの最後尾に印刷ジョブをキューイングするよう変更するかのいずれを選択するのかを確認する。
【０１１３】
ここで、推定登録する場合、処理はステップＳ１４１５に進み、経過時間とエラー要因毎の復旧時間から、再稼働するまでの見込み時間Ｔｒを推定する。さらにステップＳ１４１６では、処理対象となる印刷ジョブの処理時間Ｔｐに待機中の印刷ジョブの処理時間ＷＴｐを加算し、その値がＴｒに近くなるジョブ数を推定し、その部分に当該印刷ジョブを割込み登録する。その後、処理はステップＳ１４０４に戻る。これに対して、推定登録しない場合、処理はステップＳ１４１７に進み、その時点の処理待ちジョブ数Ｎを取得する。さらに、ステップＳ１４１８では、当該印刷ジョブを待機ジョブキューの最後尾となるようＮ＋１番目に登録する。その後、処理はステップＳ１４０４に戻る。
【０１１４】
従って以上説明した実施例に従えば、印刷エラーが発生した印刷装置を指定した印刷ジョブについて、処理順序を考慮することで、可能な限り早く印刷を再開できる。また、稼働中の印刷装置に対して印刷データ生成が適切に行われるようになり、不要な印刷データの生成処理を抑制できる。
【０１１５】
いずれの実施例においても、スプールの使用が最適化され、スプール領域の追加拡張などは必要ではないという利点がある。また、写真印刷など特定の印刷装置を使用する場合に一度展開した印刷データを再利用することで印刷データ生成に係る時間を短縮でき、複数の印刷装置における出力効率を低下させない高速な画像処理を実現することができる。
【０１１６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１７】
１００  印刷システム、１０１  ホスト装置、１０２  画像処理装置、
１０３  印刷装置、１０４  制御ユニット、１０５  スプーラ、２０１  ＣＰＵ、
２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  外部Ｉ／Ｆ、
２０６  画像処理部、２０７  エンジン制御部、２０８  表示部、２０９  操作部、
５０１  インプットスプーラ、５０２  アウトプットスプーラ
【図１】
2018081594.tif 000003
【図２】
2018081594.tif 000004
【図３】
2018081594.tif 000005
【図４】
2018081594.tif 000006
【図５】
2018081594.tif 000007
【図６】
2018081594.tif 000008
【図７】
2018081594.tif 000009
【図８】
2018081594.tif 000010
【図９】
2018081594.tif 000011
【図１０】
2018081594.tif 000012
【図１１】
2018081594.tif 000013
【図１２】
2018081594.tif 000014
【図１３】
2018081594.tif 000015
【図１４】
2018081594.tif 000016
【図１５】
2018081594.tif 000017
【図１６】
2018081594.tif 000018