(57)【特許請求の範囲】
【請求項１】
各フィールドのフィールド名の情報を示すフィールド名情報と、それぞれ前記各フィールドの値を有する複数のレコードと、前記複数のレコードに適用する描画プログラムを指定する描画プログラム指定情報と、を含む第１の可変印刷データを受信する受信手段と、
前記描画プログラムを前記第１の可変印刷データ中の各レコードについて実行することで各レコードに対応する出力画像を生成する画像生成手段であって、レコードに対応する出力画像の生成の際に当該レコードに起因するエラーが生じるごとに、当該エラーが生じたレコードを保存しておくと共に前記出力画像の生成を当該レコードから当該レコードよりも処理順が後のレコードに切り替えて続行し、前記複数のレコードのうちの最後のレコードまで前記出力画像の生成又はエラーの生じたレコードの保存を繰り返す画像生成手段と、
前記第１の可変印刷データから抽出された前記描画プログラム指定情報及び前記フィールド名情報と、前記保存されたレコードとに基づき、第２の可変印刷データを生成する可変印刷データ生成手段と、
を備える画像処理装置。
【請求項２】
前記画像生成手段は、
前記生成された出力画像を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）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００６９】
【図１】画像形成システムの一例の概略構成を示す図である。
【図２】バリアブル印刷データのデータ内容の一例を示す図である。
【図３】レイアウトプログラムの内容の一例を示す図である。
【図４】レイアウト処理部及びエラー処理部の処理手順の一例を示すフローチャートである。
【図５】エラーログのデータ内容の一例を示す図である。
【図６】エラーが生じたレコードの再印刷のために生成された可変印刷データの一例を示す図である。
【図７】変形例の画像形成システムの概略構成を示す図である。
【図８】第１変形例におけるレイアウト処理部及びエラー処理部の処理手順の一例を示すフローチャートである。
【図９】第２変形例におけるレイアウト処理部及びエラー処理部の処理手順の一例の一部を示すフローチャートである。
【図１０】第２変形例におけるレイアウト処理部及びエラー処理部の処理手順の一例の残りの部分を示すフローチャートである。
【図１１】参考例の画像形成システムの概略構成を示す図である。
【図１２】参考例におけるレイアウト処理部及びエラー処理部の処理手順の一例を示すフローチャートである。
【図１３】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００７０】
１００  プリントサーバ、１１０  ジョブ受信部、１２０  レイアウト指定情報抽出部、１３０  レイアウト指定記憶部、１４０  リソースリポジトリ、１５０  レイアウト処理部、１５５  エラー処理部、１６０  レコードバッファ、１７０  エラーログ記憶部、１８０  エラーレコード記憶部、２００  印刷装置、２５０  後処理装置、３００  クライアント装置。
【図１】
0004530012.tif 000002
【図２】
0004530012.tif 000003
【図３】
0004530012.tif 000004
【図４】
0004530012.tif 000005
【図５】
0004530012.tif 000006
【図６】
0004530012.tif 000007
【図７】
0004530012.tif 000008
【図８】
0004530012.tif 000009
【図９】
0004530012.tif 000010
【図１０】
0004530012.tif 000011
【図１１】
0004530012.tif 000012
【図１２】
0004530012.tif 000013
【図１３】
0004530012.tif 000014