(57)【特許請求の範囲】
【請求項１】
複数のレコードを含む可変印刷データを受信する受信手段と、
指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成手段と、
前記画像生成手段が生成した1以上の前記論理ページの画像を記憶する記憶手段と、
前記記憶手段に記憶された論理ページの画像群を用いて、印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御手段と、
前記印刷制御手段が前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成手段で生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶手段に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するエラー処理と、前記画像生成手段に画像生成対象のレコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させるエラー処理を行うエラー処理手段と、
を備える画像処理装置。
【請求項２】
前記画像生成手段は、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、
前記画像処理装置は、更に、前記画像生成手段が前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理手段を備え、
前記エラー処理手段は、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理手段に管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、少なくとも前記解釈処理を前記画像生成手段に実行させ、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成手段に画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
複数のレコードを含む可変印刷データを受信する受信手段と、
指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成手段と、
前記画像生成手段が生成した1以上の前記論理ページの画像を記憶する記憶手段と、
印刷装置と、
前記記憶手段に記憶された論理ページの画像群を用いて、前記印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御手段と、
前記印刷制御手段が前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成手段で生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶手段に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するエラー処理と、前記画像生成手段に画像生成対象のレコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させるエラー処理を行うエラー処理手段と、
を備える印刷システム。
【請求項４】
前記画像生成手段は、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、
前記印刷システムは、更に、前記画像生成手段が前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理手段を備え、
前記エラー処理手段は、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理手段に管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、少なくとも前記解釈処理を前記画像生成手段に実行させ、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成手段に画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、
ことを特徴とする請求項３に記載の印刷システム。
【請求項５】
コンピュータに、
複数のレコードを含む可変印刷データを受信するステップと、
指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成ステップと、
前記生成された論理ページの画像を記憶装置に格納するステップと、
前記記憶装置に格納された論理ページの画像群を用いて、印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御ステップと、
前記印刷制御ステップで前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成ステップで生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶装置に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するとともに、画像生成の対象レコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続するエラー処理ステップと、
を実行させるためのプログラム。
【請求項６】
前記画像生成ステップでは、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、
前記プログラムは、前記画像生成ステップにて前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理ステップ、を更に前記コンピュータに実行させ、
前記エラー処理ステップでは、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理ステップにより管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、前記画像生成ステップにて少なくとも前記解釈処理を実行し、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成ステップに画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、
ことを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、印刷システム及びプログラムに関する。
【背景技術】
【０００２】
データベースと連携することで、対象ごとに内容を差し替えた印刷画像を生成し、それを用いて印刷する可変データ印刷技術が知られている。可変データ印刷は、可変印刷又はバリアブル印刷等とも呼ばれる。近年の可変データ印刷では、宛名などのような単なる文字列の差し替えにとどまらず、データベースのレコードに応じてグラフやその他複雑な画像の差し替えも可能となっている。可変データ印刷は、共通のレイアウトデータに対して個々のレコードを適用することにより、それら各レコードに対応した印刷結果を得る。
【０００３】
また、両面印刷やいわゆるＮ−ｕｐ印刷のように、１枚の用紙に対し複数の論理ページを印刷する印刷処理が知られている。Ｎ−ｕｐ印刷は、１つの物理ページ（すなわち用紙の１つの面）に対してＮ個の論理ページを並べて印刷する処理である（Ｎは一般に２のべき乗の整数）。
【０００４】
印刷画像の生成の際には、例えば、使用する画像やフォーム（書式データ）、フォント、外字フォントなどのソフトリソース（情報資源）に画像処理装置がアクセスできない場合や、そのようなソフトリソースのデータが壊れている場合には、印刷画像が生成できないので、エラーが発生する。また、レコード中の必須のフィールドが空や不正な値である場合、レコードのフィールド数が間違っている場合などにも、エラーが生じる。
【０００５】
通常の印刷では、１つのジョブ（すなわちホストコンピュータやクライアントコンピュータから入力された１つの印刷データ、又はその１つの印刷データに対する印刷処理のこと）の印刷用の画像の生成中にエラーが発生すると、その画像の生成を中断することが一般的である。画像の生成を中断した場合の対応としては、エラーが生じた旨を表示するエラーシートを印刷したり、エラーが生じるまでに生成された画像を印刷したりといったことが行われている。
【０００６】
一方、特許文献１には、印刷データの中の一部に誤りがあっても印刷画像の生成を継続できるようにするための技術が示される。この文献に記載された装置は、印刷データの読み出し時に、印刷データ中の各命令ブロックの位置情報及びサイズを記憶しておき、エラー検出時には、その際に実行されていた命令ブロックの位置情報及びサイズを読み出して、当該命令ブロックの先頭位置からサイズ分のデータを、空白を示すデータで上書きする。そして、このように加工した後の印刷データを再度解釈してビットマップデータ等に展開する。
【０００７】
【特許文献１】特開平１０−３２０１３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、可変データ印刷で複数のレコードに基づき生成した複数の論理ページを１枚の用紙に印刷する場合に、レコードに対応する画像の生成でエラーが生じても、不完全に印刷された用紙を出力せずに処理を継続できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、複数のレコードを含む可変印刷データを受信する受信手段と、指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成手段と、前記画像生成手段が生成した1以上の前記論理ページの画像を記憶する記憶手段と、前記記憶手段に記憶された論理ページの画像群を用いて、印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御手段と、前記印刷制御手段が前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成手段で生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶手段に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するエラー処理と、前記画像生成手段に画像生成対象のレコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させるエラー処理を行うエラー処理手段と、を備える画像処理装置である。
請求項２に記載の発明は、前記画像生成手段は、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、前記画像処理装置は、更に、前記画像生成手段が前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理手段を備え、前記エラー処理手段は、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理手段に管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、少なくとも前記解釈処理を前記画像生成手段に実行させ、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成手段に画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、ことを特徴とする請求項１に記載の画像処理装置である。
【００１０】
請求項３に記載の発明は、複数のレコードを含む可変印刷データを受信する受信手段と、指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成手段と、前記画像生成手段が生成した1以上の前記論理ページの画像を記憶する記憶手段と、印刷装置と、前記記憶手段に記憶された論理ページの画像群を用いて、前記印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御手段と、前記印刷制御手段が前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成手段で生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶手段に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するエラー処理と、前記画像生成手段に画像生成対象のレコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させるエラー処理を行うエラー処理手段と、を備える印刷システムである。
請求項４に記載の発明は、前記画像生成手段は、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、前記印刷システムは、更に、前記画像生成手段が前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理手段を備え、前記エラー処理手段は、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理手段に管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、少なくとも前記解釈処理を前記画像生成手段に実行させ、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成手段に画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、ことを特徴とする請求項３に記載の印刷システムである。
【００１１】
請求項５に記載の発明は、コンピュータに、複数のレコードを含む可変印刷データを受信するステップと、指定された描画プログラムを、前記可変印刷データ中の各レコードについて実行することでレコードに対応する論理ページの画像を生成する画像生成ステップと、前記生成された論理ページの画像を記憶装置に格納するステップと、前記記憶装置に格納された論理ページの画像群を用いて、印刷装置に１枚の用紙に対し複数の論理ページの画像を印刷する印刷処理を実行させる制御を行う印刷制御ステップと、前記印刷制御ステップで前記印刷装置に１枚の用紙に対して複数の論理ページの画像を印刷する印刷処理を実行させるのに用いる論理ページの画像を前記画像生成ステップで生成する際に前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生したことに対応して、前記記憶装置に記憶され当該エラーが発生したレコードに対応する論理ページの画像と同じ用紙に印刷されるべき論理ページの画像群を用いた印刷を禁止するとともに、画像生成の対象レコードを当該用紙の次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続するエラー処理ステップと、を実行させるためのプログラムである。
請求項６に記載の発明は、前記画像生成ステップでは、前記レコードごとについて前記描画プログラムを解釈する解釈処理と、前記解釈処理による前記レコードごとについての前記描画プログラムの解釈結果に基づき当該レコードに対応する論理ページの画像を生成する画像生成処理と、を実行し、前記プログラムは、前記画像生成ステップにて前記１枚の用紙に対して印刷されるべき前記複数の論理ページのうち何ページ目までについて前記解釈処理が完了したかを示す情報を管理するページ数管理ステップ、を更に前記コンピュータに実行させ、前記エラー処理ステップでは、前記1枚の用紙に印刷されるべきレコードのいずれかのレコードについてエラーが発生した場合に、前記ページ数管理ステップにより管理された情報に基づき、前記エラーが発生したレコード以降前記１枚の用紙に印刷されるべき最後の論理ページに対応するレコードまでは、前記画像生成ステップにて少なくとも前記解釈処理を実行し、前記最後の論理ページに対応するレコードの次のレコードを前記次の用紙に印刷されるべきレコードとし、前記画像生成ステップに画像生成対象のレコードを当該次の用紙に印刷されるべきレコードに切り替えて論理ページの画像の生成を継続させる、ことを特徴とする請求項５に記載のプログラムである。
【発明の効果】
【００１２】
請求項１〜６に係る発明によれば、可変データ印刷で複数のレコードに基づき生成した複数の論理ページを１枚の用紙に印刷する場合に、あるレコードについてエラーが発生しても、不完全に印刷された用紙を出力せずに処理を継続できる。
【発明を実施するための最良の形態】
【００１３】
図１を参照して、実施形態の画像形成システムの構成を説明する。このシステムは、プリントサーバ１００と印刷装置２００とを備える。印刷装置２００は、画像を用紙に印刷する。プリントサーバ１００は、クライアント装置３００から入力される印刷データ（例えばページ記述言語で記述される）を、印刷装置２００が取り扱い可能な画像データに変換し、印刷装置２００に提供する。この他、プリントサーバ１００は、クライアント装置３００から入力される印刷データ（「ジョブ」とも呼ばれる）の実行順序の制御などを行う機能を有していてもよい。プリントサーバ１００と印刷装置２００とは、ネットワーク又はケーブル等の通信路で相互接続された別々の装置であってもよいし、一体の装置として構成されてもよい。プリントサーバ１００は、ネットワーク又はケーブル等の通信路を介してクライアント装置３００と通信可能となっている。
【００１４】
ここで、プリントサーバ１００は、可変印刷（バリアブルプリント）データを処理する可変データ印刷機能を備える。可変印刷データは、印刷対象となる１以上のレコードを示す情報と、それらレコード群に適用されるレイアウトプログラムを示す情報とを含む。可変印刷データのデータ内容の一例を図２に示す。この例では、１行目の記述"(layout01) SETLAYOUT"により、この可変印刷データの処理において用いるレイアウトプログラムを指定している。用いられるレイアウトプログラムの識別名は"layout01"であり、"SETLAYOUT"がレイアウトプログラムを指定する命令である。２行目以降が、印刷対象となるレコード群のデータである。すなわち、２行目は、印刷対象のレコード中の各フィールド（項目）のフィールド名を表す。このデータ例は、顧客ごとにそれぞれ個別の画像データを含んだダイレクトメールを印刷するものであり、レコードには、顧客のＩＤ、氏名、及び画像データの識別子（例えばファイル名）が含まれる。３行目以降の各行が、個々のレコードである。なお、印刷される画像データの実体は、リソースリポジトリ１２０（図１ではプリントサーバ１００内に示しているが、これに限らず、プリントサーバ１００からアクセス可能なネットワーク上に存在してもよい）に保存されている。
【００１５】
レイアウトプログラムは、可変印刷データ中のレコードから印刷用の画像を生成するための手順を記述したプログラムであり、ページ記述言語等の言語で記述される。レイアウトプログラムには、レコード中の１以上のフィールドの値に基づき画像を生成するコマンドが含まれる。この種のコマンドは、レコードごとに異なる画像を描画する。また、レイアウトプログラムには、レコードに依存しない固定的なデータを描画するコマンド、描画位置を移動させるコマンドなどが含まれ得る。
【００１６】
図３にレイアウトプログラムの一例を示す。この例は、図２の可変印刷データ内で指定されているレイアウトプログラム"layout01"の内容である。１行目の"SETFORM"はこのレイアウトプログラムの中で使用する背景フォーム画像を指定するコマンドである。同じく１行目の"form01.tif"は、使用する背景フォーム画像の識別子（例えばファイル名）である。２行目は、座標（７２，１４４）から描画を開始する旨のコマンドである。また、３行目は、顧客の名前（NAMEフィールド）をテキストとして描画出力("show")したあと、続けて「様へのお知らせ」という文字列を描画出力するコマンドである。そして、４行目は、IMGフィールドが指し示す顧客に対応する画像を描画出力するコマンドである。なお、レイアウトプログラムやその中で用いられる背景フォーム画像は、それぞれ、識別子に対応づけてリソースリポジトリ１２０に保存されている。
【００１７】
クライアント装置３００は、図２に例示したような可変印刷データを生成し、プリントサーバ１００に送信して印刷を依頼する。なお、以上の例は、リソースリポジトリ１２０にあるレイアウトプログラムや背景フォーム画像を用いるものであったが、レイアウトプログラム又は背景フォーム画像（又はその両方）を可変印刷データと共にクライアント装置３００からプリントサーバ１００に送信してもよい。また、以上の例では、印刷対象とするレコード群は可変印刷データの中に含まれていたが、この代わりに、ネットワーク上のデータベースにあるレコード群を一意に特定する情報を可変印刷データ中に記述し、可変印刷の際にデータベースからそれらレコードを取得するようにしてもよい。
【００１８】
プリントサーバ１００において、ジョブ受信部１１０は、クライアント装置３００からジョブ（この場合は可変印刷データ）を受信する。
【００１９】
リソースリポジトリ１２０には、可変印刷データの処理の際に用いられる各種のリソースが格納されている。例えば、１以上のレイアウトプログラム、１以上のフォームのデータ（例えば背景フォーム画像など）、フォーム以外で複数のレコードに共通して利用される１以上の画像のデータ、外字フォントなどが格納されている。
【００２０】
レイアウト処理部１３０は、可変印刷データを処理して印刷用の画像データを生成する。すなわち、レイアウト処理部１３０は、可変印刷データ中の各レコードについてレイアウトプログラムを実行し、レコードごとの画像データを生成して印刷装置２００に供給する。レイアウト処理部１３０は、例えば、背景フォーム画像の上に、固定的な画像やレコードごとの画像を描画（オーバーレイ）することで、個々のレコードに対応する画像データを生成する。
【００２１】
なお、レイアウト処理部１３０は、レイアウトプログラムを解釈・実行する部分（解釈実行部と呼ぶ）と、その解釈実行の結果得られる中間データ（ディスプレイリストとも呼ばれる）を処理してラスター画像を描画する部分（描画部と呼ぶ）とに分かれていてもよい。また、描画部を動作させずに解釈実行部だけ動作させる機能を備えていてもよい。例えば、エラーが発生した場合に描画部を停止させ、解釈実行部にレイアウトプログラムの解釈・実行を続行させるのである。レコードの通し番号などのように、複数のレコードに渡って利用される制御変数をレイアウトプログラムの中で取り扱う場合がある。そのような場合、あるレコードでエラーが発生した場合でも、レイアウトプログラムの解釈・実行を続行してそのような制御変数を処理することで、後続のレコードが正しく処理できる。エラーの場合に描画部を動作させてもよいが、停止させればその分レイアウト処理部１３０の負荷は減る。
【００２２】
レイアウト処理部１３０が生成した画像データは印刷装置２００に供給される。印刷装置２００は、その画像データを用紙に印刷する。印刷装置２００の後段に、後処理装置２５０を設けてもよい。後処理装置２５０は、例えば、印刷装置２００が出力した印刷結果に対し、ステープル留め、パンチ穴空け、又は製本などの後処理を行う。ここで、後処理装置２５０は、印刷結果をレコードごとに後処理（例えば１レコードの印刷結果ごとに製本するなど）するよう制御してもよい。例えば、クライアント装置３００が、可変印刷データと、レコードごとの後処理（例えば製本）を指示するジョブ制御情報と、を含んだジョブデータを生成してプリントサーバ１００に送信すればよい。この場合、プリントサーバ１００は、そのジョブ制御情報に従い、例えば１レコードの処理結果の画像データ（この画像データは複数ページ分ある場合もある）を出力するごとに、後処理の指示を、印刷装置２００経由で又は直接に、後処理装置２５０に送ればよい。
【００２３】
エラー処理部１３５は、レイアウト処理部１３０による画像データ生成処理の際の、レコードに起因するエラーに関する処理を実行する。エラー処理部１３５の処理については、後で詳しく説明する。
【００２４】
画像記憶部１４０は、レイアウト処理部１３０が生成した各ページの画像データを、印刷の開始まで一時的に記憶するための装置である。画像記憶部１４０に記憶される画像データは、ラスター画像データでも中間データでもよい。
【００２５】
エラーログ記憶部１５０は、レイアウト処理部１３０の処理の中で発生したエラーについてのログ情報を記憶する。ログ情報には、例えば、エラーの発生日時、当該エラーが発生したジョブの識別子、当該エラーの種類、当該エラーの生じたレコードの識別子、が含まれる。
【００２６】
画像記憶部１４０及びエラーログ記憶部１５０は、例えばＲＡＭ（ランダムアクセスメモリ）又はハードディスクドライブなどのハードウエアを用いて構成される。
【００２７】
次に、図４及び図５を参照して、レイアウト処理部１３０及びエラー処理部１３５の処理手順の一例を説明する。レイアウト処理部１３０が正常モードと異常モードという２つの排他的な動作モードを有する。可変印刷データの処理を開始した時点では、レイアウト処理部１３０は正常モードに設定されている。
【００２８】
この手順では、まずレイアウト処理部１３０は、ジョブ受信部１１０から受け取った可変印刷データからレイアウト指定情報を抽出し、そのレイアウト指定情報が示すレイアウトプログラムをリソースリポジトリ１２０から取得する（Ｓ１）。また、レイアウト処理部１３０は、画像記憶部１４０、エラーログ記憶部１５０、及びレコードの番号を示す変数ｉなどの各種の制御変数などを初期化する（例えばｉの初期値は１）。次に、レイアウト処理部１３０は、可変印刷データからｉ番目のレコードを取得する（Ｓ２）。そして、レイアウト処理部１３０は、取得したレコードを対象として、レイアウトプログラムを実行する（Ｓ３）。例えば、レイアウト処理部１３０は、レイアウトプログラムを先頭行から順に実行し、その中でレコードを参照するコマンドがあれば、取得したレコードを用いてそのコマンドを実行する。図４及び図５の手順は、典型的には、ステップＳ３で１つのレコードに対して１ページ（論理ページ）の画像が生成される場合を想定すると理解しやすい。
【００２９】
エラー処理部１３５は、レイアウト処理部１３０におけるレコードに対する論理ページの生成処理において、そのレコードに起因するエラーの発生を監視する（Ｓ４）。
【００３０】
エラー処理部１３５がそのレコードに起因するエラーが発生したことを検知した場合、レイアウト処理部１３０は異常モードに移行し（Ｓ５）、エラー処理部１３５がそのエラーについてのログ情報をエラーログ記憶部１５０に登録する（Ｓ６）。いったん異常モードに移行すると、後に続くレコードにエラーがあるか否かによらず、次の用紙のための画像生成処理に進むまでは正常モードには戻らない。なお、エラーが発生しなかった場合は、ステップＳ５及びＳ６はスキップされる。
【００３１】
次にレイアウト処理部１３０は、ステップＳ３の処理でレコードから作成した画像データが、現在の印刷対象の用紙面における最後の論理ページに該当するか否かを判定する（Ｓ７）。例えば２−ｕｐ（用紙の１つの面に論理ページを２ページ並べて印刷するモード）印刷で１面の最初のページの画像を生成した段階では、この判定の結果はＮｏ（否定）となる。なお、レイアウト処理部１３０は、レイアウトプログラムを実行して画像を生成していく際、現在用紙の表と裏のどちらの画像を生成しているか、Ｎ−ｕｐの場合、用紙面の中で何番目の論理ページの画像を生成しているのかを管理しているので、その情報を利用すればよい。ステップＳ７の判定結果がＮｏの場合、そのレコードが可変印刷データ中の最後のレコードであるか否かを判定し（Ｓ８）、最後でなければレコードの番号ｉを１増加させ（Ｓ９）、ステップＳ２に戻って次のレコードの処理を行う。最後であれば、レイアウト処理部１３０は、図５の手順のステップＳ１２に進み、画像の印刷又はエラー処理を行う。
【００３２】
１面に印刷されるべきすべての論理ページの画像が生成されるまで、又は最後のレコードに達するまで、以上のステップＳ２〜Ｓ９が繰り返される。なお、異常モードでは、ステップＳ３で、レイアウト処理部１３０のうちの描画部を停止させ、解釈実行部のみを動作させるようにしてもよい。
【００３３】
また、ステップＳ７の判定結果がＹｅｓ（肯定）となると、用紙の１つの面の画像が完成したことになる。この場合、レイアウト処理部１３０は、その面が用紙の「おもて」面であるか否かを判定する（Ｓ１０）。この例は両面印刷を行うものなので、現在の面がおもて面である場合には、完成したそのおもて面の画像データを画像記憶部１４０に一時的に格納し（Ｓ１１）、ステップＳ８に進む。
【００３４】
画像が完成した面が「うら」面であった場合、表裏両面の画像生成が完了したので、レイアウト処理部１３０は、図５の手順のステップＳ１２に進み、画像の印刷又はエラー処理を行う。
【００３５】
図５のステップＳ１２では、レイアウト処理部１３０は、現在のモードが正常モードであるか否かを判定する。正常モードであれば、表裏両面の画像の生成においてエラーが生じなかったということなので、それら表裏両面の画像を印刷装置２００に渡して印刷させる。より詳しくは、画像記憶部１４０からおもて面の画像を取り出し（Ｓ１３）、その画像を印刷装置２００に供給しておもて面を印刷させ（Ｓ１４）、更に、今回生成したうら面の画像を印刷装置２００に供給してうら面を印刷させる（Ｓ１５）。なお、おもて面の画像を生成中に最後のレコードに達した場合（Ｓ８の判定結果がＮｏ）には、画像記憶部１４０にはおもて面の画像がない。この場合、ステップＳ１３〜Ｓ１５では、単にそのとき生成されたおもて面の画像を印刷装置２００に送って印刷させる。
【００３６】
一方、ステップＳ１２で現在のモードが異常モードであると判定された場合、エラー時の出力制御（Ｓ１６）を実行する。エラー時の出力制御は、例えば、単にそのレコードについての印刷を取りやめるというものである。また、エラー時の出力制御の別の例としては、レコードについての印刷を行う代わりに、エラーのあったページの場所を示すために色つき用紙等の特別な用紙（合紙）を印刷装置２００に出力させる処理がある。いずれの場合も、エラーの生じたレコードのみならず、そのレコードと同じ用紙に印刷されるレコードのすべてが印刷されない。
【００３７】
以上、エラー時の出力制御の例をいくつか説明したが、プリントサーバ１００は、それらの内の１以上の制御機能を備えている。プリントサーバ１００がそのような制御機能を複数備える場合は、管理者又はユーザが、それら制御機能のうちから使用するものを１つ選択し、プリントサーバ１００に設定しておけばよい。
【００３８】
なお、以上の例において、レコードに起因するエラーには、レコードごとの画像やフォームなどのリソースにアクセスできない場合、そのようなリソースのデータが壊れている場合、レコードの処理で用いる外字フォントのデータが画像形成装置にない場合、レコード中の必須のフィールドが空や不正な値である場合、レコードのフィールド数が間違っている場合などがある。レコード以外に起因するエラーが発生した場合、プリントサーバ１００は従来と同様のエラー処理を行えばよい。
【００３９】
ステップＳ１５又はＳ１６のあと、レイアウト処理部１３０は、画像記憶部１４０内のおもて面画像を消去する（Ｓ１７）。そして、現在のレコードが可変印刷データ中の最後のものであるか否かを判定し（Ｓ１８）、最後のものでなければ、正常モードに移行し（Ｓ１９）、レコード番号ｉを１増加させ（Ｓ９）、ステップＳ２に戻って次のレコードを処理する。現在のレコードが最後のものであれば、エラーログを出力して（Ｓ２０）、処理を終了する。
【００４０】
エラーログの出力は、例えば印刷装置２００から印刷出力するものであってもよいし、ファイルとして書き出すものであってもよい。エラーログのデータ内容の一例を図６に示す。この例では、エラーログがＸＭＬ(eXtensible Markup Language)などのマークアップ言語で記述されている。この例では、１つの可変印刷データ（ジョブ）についてのエラーログは、開始タグ<print_log>から始まり終了タグ</print_log>で終わる１つの要素である。開始タグ<print_log>の中には、ジョブ名（例えば可変印刷データのファイル名）、ジョブＩＤ、ジョブの実行日時などが属性として示される。<print_log>要素の中には<errors>要素が含まれる。<errors>要素は当該ジョブの中で発生したエラー群を表し、この要素の中に個々のエラーのログ情報を示す<error>要素が列挙される。個々の<error>要素には、エラーを識別するＩＤ、エラーが発生したレコードの識別番号（"rec-number"）、エラーの種類を示すエラーコードなどが属性として含まれている。また<error>要素の中には、エラー内容を表す説明文が文字列情報として含まれている。なお、この例は、図２の可変印刷データの２番目のレコードの画像"002.tif"が壊れている等で読み取れなかった場合のログである。ジョブ内で複数のエラーが発生したい場合は、各エラーについて<error>要素が生成され、<errors>要素内に追加される。なお、図６の例は、エラーだけでなくジョブの処理の際に生じた各種のイベントに関するログ情報を含み得るログを示している。エラー以外のログは、<print_log>要素の中に、<errors>要素と並列な要素として組み込まれる。
【００４１】
ユーザは、出力されたエラーログを参照することで、エラーの内容を把握することができ、そのエラーを解消するための処置をとることができる。例えば、レコード内で指定された画像データが壊れている場合は、その画像ファイルの修復を行えばよい。また、レコード内で指定された画像データが印刷装置で印刷できない形式の画像である場合（例えば４色インクを用いる印刷装置に対し６色インクが必要な画像を印刷する場合）には、印刷装置で印刷できる形式の画像を用意し直せばよい。また、レコード内で指定された画像データがリソースリポジトリ１２０内にない場合は、その画像データをリソースリポジトリ１２０に登録するか、或いはレコード内で指定された画像データの識別情報を正しいものに修正すればよい。レコードの印刷のために必要な外字フォントがない場合は、外字フォントをリソースリポジトリ１２０に追加するか、そのレコードで用いるフォントの指定を変更するか、の対応をとればよい。また、レコード中のフィールドの値がなかったり、不正な値であったりする場合は、そのフィールドの値を補ったり修正したりすればよい。
【００４２】
なお、図４及び図５の処理手順は、両面印刷とＮ−ｕｐ印刷とが同時に指定された場合にも対応可能な手順である。片面のＮ−ｕｐ印刷が指定された場合の手順は、図４及び図５の手順からステップＳ１０及びＳ１１を除いたものとなる。
【００４３】
また、図４及び図５の手順は、レイアウトプログラムにより１レコードから複数の論理ページが生成される場合でも、１レコードから生成される論理ページの数が用紙の一面に印刷される論理ページの数以下であり、かつ連続する所定数のレコードから生成された論理ページ群が１枚の用紙の両面を完全に埋め尽くす場合には利用可能である。そのような場合の例としては、例えば、２−ｕｐかつ両面印刷で、１レコードあたり２論理ページが生成される場合がある。
【００４４】
上記のプリントサーバ１００は、可変印刷データを処理する中で、あるレコードについてエラーが発生しても、残りのレコード群についての処理を続行する。
【００４５】
また、上記のプリントサーバ１００は、１レコードに対応する複数のページのいずれかでエラーが発生した場合、それら複数のページはいずれも印刷出力しない。
【００４６】
以上に例示したプリントサーバ１００は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図７に示すように、ＣＰＵ１０００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）１００２およびリードオンリメモリ（ＲＯＭ）１００４等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）１００６を制御するＨＤＤコントローラ１００８、各種Ｉ／Ｏ（入出力）インタフェース１０１０、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース１０１２等が、たとえばバス１０１４を介して接続された回路構成を有する。また、そのバス１０１４に対し、例えばＩ／Ｏインタフェース１０１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ１０１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ１０１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ１００２に読み出されＣＰＵ１０００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００４７】
【図１】画像形成システムの一例の概略構成を示す図である。
【図２】バリアブル印刷データのデータ内容の一例を示す図である。
【図３】レイアウトプログラムの内容の一例を示す図である。
【図４】レイアウト処理部及びエラー処理部の処理手順の一例の一部を示すフローチャートである。
【図５】レイアウト処理部及びエラー処理部の処理手順の一例の残りの部分を示すフローチャートである。
【図６】エラーログのデータ内容の一例を示す図である。
【図７】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００４８】
１００  プリントサーバ、１１０  ジョブ受信部、１２０  リソースリポジトリ、１３０  レイアウト処理部、１３５  エラー処理部、１４０  画像記憶部、１５０  エラーログ記憶部、２００  印刷装置、２５０  後処理装置、３００  クライアント装置。
【図１】
0004586839.tif 000002
【図２】
0004586839.tif 000003
【図３】
0004586839.tif 000004
【図４】
0004586839.tif 000005
【図５】
0004586839.tif 000006
【図６】
0004586839.tif 000007
【図７】
0004586839.tif 000008