(57)【要約】【課題】可変データ印刷において、可変データに起因する言語エラーが発生した場合の作業効率を向上する。【解決手段】可変データ処理部１３０は、可変データ中のレコードを代入した後のフォームを解釈する中で言語エラーの発生を検知すると、言語エラーを示すエラーコードと言語エラーが発生したレコードの番号ｉとを出力する。可変データ再構成部１６０は、その可変データの中から、（ｉ＋１）番目から末尾までのレコード群を取り出し、それらレコード群を、その可変データのフォーム指定及びフィールド名のリスト後に付け加えることで、再印刷用の可変データ１６２を再構成する。再印刷指示部１７０は、その可変データ１６２の印刷を可変データ処理部１３０に指示する。【選択図】図１
2009104471.tif 000002
【特許請求の範囲】
【請求項１】
複数のレコードを含む可変データを取得する取得手段と、
前記可変データ中のレコードごとに、描画プログラム中の変数に当該レコードを代入し、代入後の描画プログラムを実行することで、当該レコードに対応する出力画像を生成する画像生成手段と、
前記可変データ中のレコードごとに、当該レコードを代入後の描画プログラムを前記画像生成手段が実行する際に発生した言語エラーを検知するエラー検知手段と、
前記エラー検知手段が言語エラーを検知した場合に、前記可変データ中のレコード群のうち前記画像生成手段による対応出力画像の生成順が当該言語エラーの発生したレコードより後のレコード群を含む再印刷用の可変データを生成する再印刷データ生成手段と、
を備える画像処理装置。
【請求項２】
前記レコードを代入後の描画プログラムの実行が開始してから完了するまでの間、前記画像生成手段が生成した１以上の出力画像を一時記憶する一時記憶手段と、
前記レコードを代入後の描画プログラムに基づき当該レコードに対応するすべての出力画像の生成が完了した後に、前記一時記憶手段に一時記憶された前記1以上の出力画像を出力する出力手段と、
前記エラー検知手段が言語エラーを検知した場合に、前記一時記憶手段に一時記憶された当該エラーが検知されたレコードに対応するすべての出力画像を出力せずに破棄する破棄手段と、  
を更に備える請求項１記載の画像処理装置。
【請求項３】
前記画像生成手段に対し、前記再印刷データ生成手段が生成した再印刷用の可変データの処理を実行させる再処理手段、
を更に備える請求項１記載の画像処理装置。
【請求項４】
前記エラー検知手段が言語エラーを検知した場合に、当該言語エラーが発生したレコードを特定する情報を表示したエラー画像を生成して出力するエラー出力手段、
を更に備える請求項１記載の画像処理装置。
【請求項５】
コンピュータに、
複数のレコードを含む可変データを取得するステップ、
前記可変データ中のレコードごとに、描画プログラム中の変数に当該レコードを代入し、代入後の描画プログラムを実行することで、当該レコードに対応する出力画像を生成するステップ、
前記可変データ中のレコードごとに、当該レコードを代入後の描画プログラムが実行される際に発生した言語エラーを検知するステップ、
言語エラーが検知された場合に、前記可変データ中のレコード群のうち対応出力画像の生成順が当該言語エラーの発生したレコードより後のレコード群を含む再印刷用の可変データを生成するステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
印刷の際に生じるエラーの一つに、印刷データの言語エラーがある。プリンタは、印刷データを構成するページ記述言語（ＰＤＬ）の記述を先頭から順に解釈することで、印刷のための画像データを生成するが、その解釈の際に文法エラーその他で解釈できない記述が現れると言語エラーが発生する。プリンタは、言語エラーの発生箇所をどのように修正すれば正しい記述になるかは分からないので、それ以降の記述の解釈を正しく続行することはできないため、停止することとなる。
【０００３】
一方、対象ごとに内容を差し替えて印刷する可変データ印刷が知られている。可変データ印刷は、可変印刷又はバリアブル印刷等とも呼ばれる。近年の可変データ印刷では、宛名などのような単なる文字列の差し替えにとどまらず、データベースのレコードに応じてグラフやその他複雑な画像の差し替えも可能となっている。可変データ印刷では、ＰＤＬで記述された共通のレイアウトプログラム（フォームと呼ばれることもある）中の変数部分に対して個々のレコードの値を代入し、実行することにより、それら各レコードに対応した画像を描画する。
【０００４】
可変データ印刷では、レイアウトプログラム自体が文法的に正しくても、代入されるレコードの値との組み合わせにより言語エラーが発生する場合がある。例えば、レイアウトプログラムが、コマンドの引数を開き括弧"("と閉じ括弧")"で囲んで表すＰＤＬで記述されている場合を考える。その引数に代入されるレコードの値が例えば"Smith)"などのように終了括弧を含む場合、代入後のコマンド行の文字列は例えば"(Smith)) SHP"（ここで"SHP"は引数の文字列を描画するコマンド）となる。そのコマンド行が先頭から解釈されていった場合、７文字目の閉じ括弧までを引数の記述と解釈され、その次の閉じ括弧移行は単なる文字列と解釈される。この結果、"SHP"がコマンドと解釈されなくなり、コマンドが存在しないという言語エラーが発生する。
【０００５】
また、例えば、ＰｏｓｔＳｃｒｉｐｔ（登録商標）というＰＤＬでは、シフトＪＩＳコードの２バイト文字「表」や「十」の２バイト目がバックスラッシュ（１バイトのシフトＪＩＳコード"x5H"）と解されてしまう。その結果、その後に続く文字がエスケープシーケンスと解されてしまい、異常な解釈が行われて言語エラーとなる。
【０００６】
可変データ印刷においてこのような言語エラーが発生した場合、言語エラーの原因となった箇所の削除などを行った後、再印刷を行うといった対応が取られることが多い。
【０００７】
しかし、上述のように最初から再印刷を行ったのでは、作業の効率がよくない。
【０００８】
特許文献１には、単一のページを表現するページ情報が複数のファイルから構成されている場合に、どのファイルに言語解釈不能な異常があるかを判定する方法が示される。この方法は、（ａ）複数のファイルを順次読み出す工程と、（ｂ）順次読み出されたファイルに含まれる複数のスクリプトを順次解釈する工程と、（ｃ）前記工程（ｂ）におけるスクリプト解釈中にスクリプトが解釈不能かどうか判定する工程と、（ｄ）前記工程（ｃ）によりスクリプト解釈不能と判断された場合、解釈不能のスクリプトが含まれるファイルを異常ファイルとして特定する工程と、を備える。
【０００９】
可変データ印刷に関するものではないが、エラー発生時の処理の一例として、特許文献２に記載された処理がある。この処理では、情報処理装置において、プリンタドライバで生成した印刷データをページ毎に管理してスプールしておき、ホストベースプリンタでエラーが生じた場合に、前記ホストベースプリンタからネットワークを介して通知される前記ページ識別情報に基づいて、スプールしてある該当ページ以降の印刷データとデータ破棄コマンドとを前記ホストベースプリンタにネットワークを介して再送する。
【００１０】
【特許文献１】特開２０００−２５９３８２号公報
【特許文献２】特開２００１−０９２６０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、可変データ印刷において、可変データに起因する言語エラーが発生した場合の再印刷において印刷の重複を回避するための作業量を減らすことを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、複数のレコードを含む可変データを取得する取得手段と、前記可変データ中のレコードごとに、描画プログラム中の変数に当該レコードを代入し、代入後の描画プログラムを実行することで、当該レコードに対応する出力画像を生成する画像生成手段と、前記可変データ中のレコードごとに、当該レコードを代入後の描画プログラムを前記画像生成手段が実行する際に発生した言語エラーを検知するエラー検知手段と、前記エラー検知手段が言語エラーを検知した場合に、前記可変データ中のレコード群のうち前記画像生成手段による対応出力画像の生成順が当該言語エラーの発生したレコードより後のレコード群を含む再印刷用の可変データを生成する再印刷データ生成手段と、を備える画像処理装置である。
【００１３】
請求項２に係る発明は、請求項１に係る発明において、前記レコードを代入後の描画プログラムの実行が開始してから完了するまでの間、前記画像生成手段が生成した１以上の出力画像を一時記憶する一時記憶手段と、前記レコードを代入後の描画プログラムに基づき当該レコードに対応するすべての出力画像の生成が完了した後に、前記一時記憶手段に一時記憶された前記1以上の出力画像を出力する出力手段と、前記エラー検知手段が言語エラーを検知した場合に、前記一時記憶手段に一時記憶された当該エラーが検知されたレコードに対応するすべての出力画像を出力せずに破棄する破棄手段と、を更に備える。
【００１４】
請求項３に係る発明は、請求項１に係る発明において、前記画像生成手段に対し、前記再印刷データ生成手段が生成した再印刷用の可変データの処理を実行させる再処理手段、を更に備える。
【００１５】
請求項４に係る発明は、請求項１に係る発明において、前記エラー検知手段が言語エラーを検知した場合に、当該言語エラーが発生したレコードを特定する情報を表示したエラー画像を生成して出力するエラー出力手段、を更に備える。
【００１６】
請求項５に係る発明は、コンピュータに、複数のレコードを含む可変データを取得するステップ、前記可変データ中のレコードごとに、描画プログラム中の変数に当該レコードを代入し、代入後の描画プログラムを実行することで、当該レコードに対応する出力画像を生成するステップ、前記可変データ中のレコードごとに、当該レコードを代入後の描画プログラムが実行される際に発生した言語エラーを検知するステップ、言語エラーが検知された場合に、前記可変データ中のレコード群のうち対応出力画像の生成順が当該言語エラーの発生したレコードより後のレコード群を含む再印刷用の可変データを生成するステップ、を実行させるためのプログラムである。
【発明の効果】
【００１７】
請求項１又は５に係る発明によれば、言語エラーが発生した場合の再印刷において、本構成を採用しない場合と比較して、より少ない作業量で印刷の重複を回避することができる。
【００１８】
請求項２に係る発明によれば、１つのレコードから複数ページの出力画像が生成される場合に、あるレコードについて言語エラーが生じても、そのレコードに対応する出力画像は、既に生成済みのものも含めて、出力されないようにすることができる。
【００１９】
請求項３に係る発明によれば、言語エラーが発生したレコードより後のレコードについての印刷を、自動的に実行させることができる。
【００２０】
請求項４に係る発明によれば、言語エラーが生じたレコードを特定するユーザの作業を助けることができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施形態を説明する。まず、図１を参照して、実施形態の可変印刷システムの一例の構成を説明する。
【００２２】
実施形態の可変印刷システムは、プリントサーバ１００と印刷装置２００とを備える。印刷装置２００は、画像を用紙に印刷する。プリントサーバ１００は、クライアントから入力される印刷データ（例えばページ記述言語で記述される）を、印刷装置２００が取り扱い可能な画像データに変換し、印刷装置２００に提供する。この他、プリントサーバ１００は、クライアントから入力される印刷データ（「ジョブ」とも呼ばれる）の実行順序の制御などを行う機能を有していてもよい。プリントサーバ１００と印刷装置２００とは、ネットワーク又はケーブル等の通信路で相互接続された別々の装置であってもよいし、一体の装置として構成されてもよい。プリントサーバ１００は、ネットワーク又はケーブル等の通信路を介してクライアント３００及び４００と通信可能となっている。
【００２３】
ここで、プリントサーバ１００は、可変データ印刷機能を備える。可変データ印刷のために用いられるリソースには、例えば、複数のレコードを含んだ可変データ、それら各レコードに適用されるレイアウトプログラム、それらレコードの印刷画像に組み込まれる画像や表などのデータ、等がある。レイアウトプログラムは、可変データ中のレコードから印刷用の画像を生成するための手順を記述したプログラムであり、ＰＤＬで記述される。レイアウトプログラムには、レコード中の１以上のフィールドの値に基づき画像を生成するコマンドが含まれる。この種のコマンドは、レコードごとに異なる画像を描画する。また、レイアウトプログラムには、レコードに依存しない固定的なデータを描画するコマンド、描画位置を移動させるコマンド、など様々なコマンドが含まれ得る。以下では、レイアウトプログラムのことを「フォーム」と呼ぶ。
【００２４】
図２にフォーム５００の一例を示す。例えば、行５０２は描画を開始する座標を指定するコマンドである。また、行５０４は、レコード中のフィールド"NAME"内の文字列の描画を指示するコマンドである。その後に、フィールド"ZIPCODE"内の文字列の描画を指示するコマンド、フィールド"ADDRESS"内の識別情報が示す画像の描画を指示するコマンドが続く。
【００２５】
図３に、可変データ６００のデータ内容の一例を示す。この例では、行６０２の記述"(form.dbm) SETFORM"により、この可変データの処理において用いるフォーム（レイアウトプログラム）を指定している。用いられるフォームの識別名は" form.dbm"であり、" SETFORM "がフォームを指定するコマンドである。行６０４の記述"(errform.dbm) SETERRORFORM"は、言語エラーが発生した場合に用いるエラーフォームを指定するコマンド行である。この例は、言語エラー発生時にエラーシートを印刷出力するため、エラーフォームを指定している。エラーシートを出力しない場合は、エラーフォームの指定は不要である。行６０６は、印刷対象のレコード中の各フィールド（項目）のフィールド名を表す。"ADDRESS"フィールドは当該レコードの主体である個人の住所を、"NAME"フィールドは当該個人の名前を、"ZIPCODE"フィールドは郵便番号を、それぞれ示す。行６０８以降には、印刷の対象となるレコードが順に並ぶ。１行が１つのレコードを表す。レコード群は例えばＣＳＶ(Comma Separated Values)形式で記述されている。
【００２６】
プリントサーバ１００において、通信部１１０は、ＬＡＮ（ローカルエリアネットワーク）等のデータ通信ネットワークを介してクライアント３００及び４００とデータ通信を行うためのモジュールである。
【００２７】
フォーム管理部１２０は、クライアント３００から入力されたフォーム１２２を保存し、管理する。エラーフォーム管理部１２５は、クライアント３００から入力されたエラーフォーム１２７を保存し、管理する。エラーフォームは、フォーム同様ＰＤＬで記述される。エラーフォームは、例えば、「Ｘ番目のレコードで言語エラーが発生しました。」などのように、言語エラーが発生したレコードの番号を示すメッセージを印刷するためのフォームである。
【００２８】
可変データ処理部１３０は、ＰＤＬを解釈して印刷画像データを生成するインタプリタ機能を備える。可変データ処理部１３０は、クライアント４００から入力された可変データを処理して、その可変データ中の各レコードに対応する印刷画像データを生成する。印刷画像データは、ラスタ形式など、印刷装置２００が取り扱い可能な画像データ形式を持つ。
【００２９】
すなわち、可変データ処理部１３０は、まず、可変データ中に指定されたフォームをフォーム管理部１２０から取り出す。そして、可変データ中のレコードごとに、そのレコードの各フィールドの値をフォームのＰＤＬ記述の変数に代入し、代入後のフォームを解釈して画像を生成する。
【００３０】
可変データ管理部１４０は、クライアント４００から入力された可変データ１４２を保存し、管理する。可変データ管理部１４０が管理している可変データ１４２は、言語エラー発生時に再印刷用の可変データを再構成する際に利用される。
【００３１】
ページ画像一時記憶部１４５は、可変データ処理部１３０が生成したページ画像を一時的に記憶する記憶部である。ページ画像は、ページ単位の印刷画像データである。ページ画像一時記憶部１４５は、例えば、１レコードから複数ページの印刷画像データが生成される場合の変形例（後述）に利用される。
【００３２】
エラー検知部１５０は、可変データ処理部１３０におけるＰＤＬ解釈の際の言語エラーの発生を検知する。そして、言語エラーの発生を検知した場合、可変データ再構成部１６０及びエラーシート印刷指示部１８０を制御して、エラー対応処理を実行させる。より具体的には、可変データ処理部１３０のインタプリタ機能は、レコード代入後のフォームのＰＤＬ記述を解釈している際に言語エラーが生じると、その旨を示すエラーコードを出力し、エラー検知部１５０がそのエラーコードにより言語エラーの発生を検知する。
【００３３】
可変データ再構成部１６０は、言語エラー発生時に、可変データの中のそのエラーが発生したレコード以降のレコード群から、再印刷用の可変データ１６２を再構成する。再印刷指示部１７０は、再構成された再印刷用の可変データ１６２の処理を可変データ処理部１３０に指示する。
【００３４】
エラーシート印刷指示部１８０は、言語エラー発生時に、エラーフォーム管理部１２５に管理されたエラーフォームに、エラーが発生したレコード番号等の所定のデータを代入し、代入後のエラーフォームの処理を可変データ処理部１３０に指示する。
【００３５】
クライアント３００は、フォーム作成部３１０と通信部３２０を備える。フォーム作成部３１０は、フォーム作成用のＵＩなどといったフォームを作成するための環境をユーザに提供し、ユーザの操作に応じてフォームを作成する。通信部３２０は、作成されたフォームのデータを、ネットワークを介してプリントサーバ１００に送信する。
【００３６】
クライアント４００は、出力指示部４２０と通信部４３０を有する。出力指示部４２０は、プリンタドライバであり、フォーム指定とレコード群とを含む可変データ４１０を印刷ジョブデータとして出力する。出力された可変データ４１０は、通信部４３０により、ネットワークを介してプリントサーバ１００に送信される。
【００３７】
フォームを作成するクライアントと可変データを出力するクライアントとは、同一であってもよい。
【００３８】
次に、図４を参照して、可変データ処理部１３０の処理手順を説明する。  可変データ処理部１３０は、処理対象の可変データが入力されると、その可変データ中に指定された識別名を持つフォームをフォーム管理部１２０から取得する（Ｓ１）。また、可変データ処理部１３０は、レコードの番号を示すカウンタ値ｉなどの制御変数などを初期化する（例えばｉの初期値は１）。次に、可変データ処理部１３０は、可変データからｉ番目のレコードを取得し（Ｓ２）、取得したレコードをフォームに代入し、代入後のフォームを解釈して画像を生成する（Ｓ３）。例えば、可変データ処理部１３０はフォームのＰＤＬ記述を先頭行から順に１行ずつ解釈し、その中でレコード中のフィールドを示す変数があれば、その変数にそのフィールドの値を代入した上でその行を解釈する。そして、その解釈において、その解釈における言語エラーの発生を監視する（Ｓ４）。言語エラーは、例えば、解釈がフォームの末尾まで達してもコマンドが見つからなかったり、現れるはずのない文字列（例えばエスケープシーケンス）が解釈の過程で見つかったりした場合などに発生する。
【００３９】
なお、フォームの解釈の際には、このような言語エラーの他に、レコードのフィールドで指定された画像等の情報リソースが取得できない場合や、レコードのフィールド数が本来の数より少ない場合などにもエラーが生じる。しかし、言語エラー以外のエラーの場合、インタプリタはエラーの原因箇所（代入すべきリソースが取得できない変数など）を把握できる。したがって、解釈処理を停止せずに、その原因箇所を飛ばして解釈を進めることも可能である。これに対し、言語エラーの場合は、インタプリタは正しい解釈がどのようなものであるかを把握できないので、停止するほかはない。ステップＳ４では、言語エラーを対象とし、エラー原因箇所が特定できるエラーは対象としない。
【００４０】
従来、インタプリタは、言語エラーを検出し、言語エラーを知らせるエラーコードを出力する機能を備えている。ステップＳ４では、そのような従来のインタプリタが持つ機能と同等の機能を用いればよい。
【００４１】
ステップＳ４で言語エラーの発生を検知した場合（Ｓ４の判定結果がＹｅｓ）、可変データ処理部１３０は、言語エラーを表すエラーコードと、そのとき処理しているレコードを特定する番号ｉの値とを出力する（Ｓ５）。この場合、可変データに対する処理は異常終了する。
【００４２】
言語エラーが発生しなかった場合、可変データ処理部１３０はフォームの解釈により生成した画像データを、出力部１９０を介して印刷装置２００に送信し、印刷を実行させる。そして、可変データ処理部１３０は、今回処理したレコードが可変レコード中の最後のレコードであるか否かを判定し（Ｓ６）、最後でなければカウンタ値ｉを１増加させ（Ｓ７）、ステップＳ２に戻って次のレコードの処理を行う。最後のレコードに達した場合は、処理は正常終了する。
【００４３】
次に、図５を参照して、言語エラーが検知された場合のプリントサーバ１００の処理手順を説明する。この手順では、エラー検知部１５０が、可変データ処理部１３０から言語エラーを示すエラーコードと、エラーが生じたレコードの番号ｉとを取得する（Ｓ１１）。これに応じ、エラーシート印刷指示部１８０は、それまで処理されていた可変データのエラーフォーム指定の記述から、エラーフォームの識別名を求め、その識別名に対応するエラーフォームのデータをエラーフォーム管理部１２５から取得する。そして、そのエラーフォームとレコード番号ｉとを、言語エラーの発生により停止している可変データ処理部１３０に入力して印刷を指示する（Ｓ１２）。この指示に応じ、可変データ処理部１３０は、言語エラーが発生したレコード番号を表示したエラーシートの画像を生成し、その画像を出力部１９０経由で印刷装置２００に送信する。なお、この指示の前に、エラーシート印刷指示部１８０は、可変データ処理部１３０のエラー状態を解除する指示を行ってもよい。
【００４４】
また、可変データ再構成部１６０は、それまで処理されていた可変データの中から、（ｉ＋１）番目（即ち言語エラーが発生したレコードの次）から末尾までのレコード群を取り出す。次に、その可変データのフォーム指定（図３の行６０２参照）、エラーフォーム指定（行６０４参照）、フィールド名のリスト（行６０６参照）の後に、取り出したレコード群を付け加えることで、再印刷用の可変データ１６２を再構成する（Ｓ１３）。そして、再印刷指示部１７０が、その再印刷用の可変データを可変データ処理部１３０に渡し、処理の実行を指示する（Ｓ１４）。これに応じ、可変データ処理部１３０は言語エラーが生じたレコードの次のレコードからの画像の生成を行い、それら各レコードの画像が印刷装置２００から印刷出力される。
【００４５】
以上の手順によれば、印刷装置２００からは、まず、正常に処理されたレコードの印刷結果が出力され、次に言語エラーが発生したレコードを示すエラーシートが出力され、更にその後に言語エラーが発生したレコードの次以降のレコードの印刷結果が出力される。
【００４６】
以上の手順では、再印刷用の可変データを再構成したあと、自動的に即座にその可変データの印刷を行ったが、この代わりに、再構成した再印刷用の可変データを保存しておき、ユーザから印刷再開指示を受けてからその可変データの印刷を行うようにしてもよい。
【００４７】
次に、図６を参照して変形例を説明する。この変形例は、１つのレコードに対して複数の物理ページの印刷画像が生成される場合についてのものである。ここで、物理ページとは、用紙の１つの面のことである。図６は、可変データ処理部１３０の処理手順を示す。
【００４８】
この手順では、可変データ処理部１３０は、処理対象の可変データ中に指定されたフォームをフォーム管理部１２０から取得する（Ｓ３１）。次に、可変データからｉ番目のレコードを取得し（Ｓ３２）、取得したレコードをフォームに代入し、代入後のフォームの解釈を開始する（Ｓ３３）。解釈は、１コマンドずつ進める（Ｓ３４）。すなわち、コマンドと、解釈がそのコマンドに達するまでに見つかった引数とを用いて、そのコマンドを解釈する。そして、その解釈において、その解釈における言語エラーの発生を監視する（Ｓ３５）。そのコマンドの解釈の際に言語エラーが発生しなかった場合、可変データ処理部１３０は、そのコマンドの解釈に応じた描画により物理ページ１ページ分の印刷画像が完成したか否かを判定する（Ｓ３６）。完成していなければ、ステップＳ３４に戻って次のコマンドを解釈する。
【００４９】
ステップＳ３６の判定で、１物理ページ分の画像が完成したことが分かった場合、可変データ処理部１３０は、そのページの印刷画像をページ画像一時記憶部１４５に記憶する（Ｓ３７）。そして、フォームの末尾まで解釈が完了したか否かを判定し（Ｓ３８）、完了していなければ、ステップＳ３４に戻って次のコマンドを解釈する。ステップＳ３４〜Ｓ３８の処理ループにより、１つのレコードから生成される複数ページの印刷画像が順にページ画像一時記憶部１４５に記憶されることになる。
【００５０】
ステップＳ３８の判定で、フォームの末尾まで解釈が完了したと判定された場合、可変データ処理部１３０は、ページ画像一時記憶部１４５に一時記憶された各ページの印刷画像を、記憶された時刻の古いものから順に、出力部１９０を介して印刷装置２００に送信し、印刷を実行させる（Ｓ３９）。送信した印刷画像は、ページ画像一時記憶部１４５から削除される。
【００５１】
そして、可変データ処理部１３０は、今回処理したレコードが可変レコード中の最後のレコードであるか否かを判定し（Ｓ４０）、最後でなければカウンタ値ｉを１増加させ（Ｓ４１）、ステップＳ３２に戻って次のレコードの処理を行う。
【００５２】
ステップＳ３５で言語エラーの発生を検知した場合、可変データ処理部１３０は、言語エラーを表すエラーコードと、そのとき処理しているレコードを特定する番号ｉの値とを出力する（Ｓ４２）。そして、ページ画像一時記憶部１４５から、一時記憶された当該レコードについての既に生成された印刷画像を削除し（Ｓ４３）、可変データについての処理を異常終了させる。
【００５３】
なお、この変形例におけるエラー検知部１５０、可変データ再構成部１６０及びエラーシート印刷指示部１８０の処理手順は、図５に例示したものと同様でよい。
【００５４】
この変形例では、１つのレコードについてのフォームの解釈が最後まで完了するまで、そのレコードについての印刷画像は出力されない。そして、言語エラーが生じた場合には、当該言語エラーが生じたレコードについての印刷画像は、出力されないまま破棄される。したがって、個人情報等の機密情報の保護が徹底される。
【００５５】
以上説明したように、上記実施形態及びその変形例では、可変データについての印刷画像の生成の際に言語エラーが発生した場合、既に処理済みのレコードとエラーが発生したレコードとを除いた再印刷用の可変データを自動生成する。再印刷用の可変データを可変データ処理部１３０に供給すれば、エラーが発生したレコードの次のレコードからの印刷を実行することができる。したがって、言語エラーが発生した場合に、元の可変データを再度処理していた従来と比べて、処理効率が向上する。
【００５６】
また、上記実施形態では、言語エラーが発生したレコードを特定する情報（例えばレコード番号）を示すエラーシートを出力するので、ユーザにとってエラー箇所の特定が容易になる。また、上記実施形態では、言語エラーが発生するまでの印刷結果の後にエラーシートを出力し、その後に再印刷用の可変データの印刷結果を出力するので、言語エラー原因を解消したレコードの印刷結果を挿入すべき位置をユーザに示すことができる。
【００５７】
なお、以上の実施形態では、エラーシートには、言語エラーが発生したレコードを特定する情報を表示したが、更に言語エラーが発生したフィールドまで特定できる情報を表示してもよい。可変データ処理部１３０は、フォームを解釈する際に、レコード中のどのフィールドを読み出してフォーム中の変数に代入したかを把握している。あるフィールドの値を読み出した後に言語エラーが発生した場合、そのフィールドが言語エラーの原因箇所と考えられる。したがって、言語エラーが発生した場合、可変データ処理部１３０はそのフィールドを特定する情報（フィールド名など）をレコード番号ｉとあわせて出力し、エラーシート印刷指示部１８０がそれらの情報を表示するエラーフォームを可変データ処理部１３０に処理させればよい。なお、エラーシートに表示する、言語エラーを発生したフィールドを特定する情報は、フィールド名に限らない。例えば、言語エラーが発生したフィールドの値を表示してもよいし、言語エラーが発生したレコード中の、そのフィールド以外の各フィールドの値を列挙して表示してもよい。
【００５８】
以上に例示したプリントサーバ１００又はクライアントコンピュータ３００は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図７に示すように、ＣＰＵ１０００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）１００２およびリードオンリメモリ（ＲＯＭ）１００４等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）１００６を制御するＨＤＤコントローラ１００８、各種Ｉ／Ｏ（入出力）インタフェース１０１０、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース１０１２等が、たとえばバス１０１４を介して接続された回路構成を有する。また、そのバス１０１４に対し、例えばＩ／Ｏインタフェース１０１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ１０１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ１０１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ１００２に読み出されＣＰＵ１０００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００５９】
【図１】実施形態の可変印刷システムの一例を示す機能ブロック図である。
【図２】フォーム（レイアウトプログラム）の一例を示す図である。
【図３】可変データの例を示す図である。
【図４】可変データ処理部の処理手順の一例を示すフローチャートである。
【図５】言語エラーが検知された場合のプリントサーバの処理手順を示すフローチャートである。
【図６】１つのレコードに対して複数ページの印刷画像が生成される場合の可変データ処理部の手順の一例を示すフローチャートである。
【図７】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００６０】
１００  プリントサーバ、１１０  通信部、１２０  フォーム管理部、１２５  エラーフォーム管理部、１３０  可変データ処理部、１４０  可変データ管理部、１５０  エラー検知部、１６０  可変データ再構成部、１７０  再印刷指示部、１８０  エラーシート印刷指示部、１９０  出力部。
【図１】
2009104471.tif 000003
【図２】
2009104471.tif 000004
【図３】
2009104471.tif 000005
【図４】
2009104471.tif 000006
【図５】
2009104471.tif 000007
【図６】
2009104471.tif 000008
【図７】
2009104471.tif 000009