(57)【要約】【課題】  帳票印刷システムで、プリンタ性能を最大限活かして大量ページの帳票データを印刷できるようにすることを目的とする。【解決手段】  帳票印刷システム１は、スプーラサービス部１０１に印刷ジョブ生成を要求し、帳票データ２の１ページ分の描画命令を発行し（１０）、中間形式データ１１０をページ単位で取得して仮印刷データ１２０を生成し（１２１）、現時点までに生成された仮印刷データ１２０の総データサイズである仮サイズと、１ページあたりのデータサイズの最大値であるページ最大サイズを取得し（１２２）、仮サイズに最大サイズを加算して印刷ジョブの印刷データの予測サイズを求め、予測サイズがプリンタ１０５の印刷データの上限サイズを超えるかを判断し（１５）、予測サイズが上限サイズを超える場合に、スプーラサービス部１０１に印刷ジョブのクローズを指示する（１０）処理を実行する。【選択図】  図１
2014052839.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
スプーラサービス部に対して印刷ジョブの生成を要求し、前記印刷ジョブについて帳票データの１ページ分の描画命令を発行し、
前記印刷ジョブで指定されたプリンタを特定し、前記帳票データの描画処理で生成された中間形式データをページ単位で取得して、前記プリンタに対応する仮印刷データを生成し、
前記仮印刷データのデータサイズをもとに、現時点までに生成された仮印刷データの総データサイズである仮サイズを求め、
前記仮印刷データにおいて１ページあたりのデータサイズの最大値であるページ最大サイズを取得し、
前記仮サイズに前記最大サイズを加算して前記印刷ジョブにおける印刷データの予測サイズを求め、前記予測サイズが前記プリンタの印刷データの上限サイズを超えるかを判断し、
前記予測サイズが前記上限サイズを超える場合に、前記スプーラサービス部に対し、前記印刷ジョブのクローズを指示する、処理を実行する
ことを特徴とする帳票データ印刷方法。
【請求項２】
印刷ジョブをスプールするスプーラサービス部を備えたコンピュータに、
前記スプーラサービス部に対して印刷ジョブの生成を要求し、前記印刷ジョブについて帳票データの１ページ分の描画命令を発行し、
前記印刷ジョブで指定されたプリンタを特定し、前記帳票データの描画処理で生成された中間形式データをページ単位で取得して、前記プリンタに対応する仮印刷データを生成し、
前記仮印刷データのデータサイズをもとに、現時点までに生成された仮印刷データの総データサイズである仮サイズを求め、
前記仮印刷データにおいて１ページあたりのデータサイズの最大値であるページ最大サイズを取得し、
前記仮サイズに前記最大サイズを加算して前記印刷ジョブにおける印刷データの予測サイズを求め、前記予測サイズが前記プリンタの印刷データの上限サイズを超えるかを判断し、
前記予測サイズが前記上限サイズを超える場合に、前記スプーラサービス部に対し、前記印刷ジョブのクローズを指示する、処理を実行させる
ことを特徴とする帳票データ印刷プログラム。
【請求項３】
出力プリンタを指定した印刷ジョブを受け、前記印刷ジョブをページ単位で描画して中間データを生成する帳票印刷部と、
ページごとに、前記中間データより、前記出力プリンタに対応した印刷データである仮印刷データを生成し、当該ページに対応する仮印刷データのサイズを取得するサイズカウント部と、
ページごとに、当該ページまでの前記仮印刷データのサイズ累計と、当該ページまでの前記仮印刷データの最大値に基づき、前記出力プリンタへのデータ出力可否を判断するデータサイズ予測部と、
前記出力プリンタへのデータ出力が可能と判断された場合は、前記出力プリンタへ出力する最大ページ数を更新し、前記出力プリンタへのデータ出力が不可と判断した場合は、前記最大ページ数までのジョブを出力する帳票印刷部とを備える
ことを特徴とする帳票印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票データの印刷処理に関し、特に、大量ページの帳票データの印刷処理に関する。
【背景技術】
【０００２】
帳票印刷システムは、印刷対象の帳票データの描画命令を受けて、帳票データをプリンタが解釈可能な印刷データに変換してプリンタへ転送して印刷処理を実行する。処理の一例を示すと、帳票印刷システムを構成する印刷サーバは、処理効率のためにスプーラサービス機能を有し、印刷ジョブ（印刷データ）をスプールし、帳票印刷システムの描画処理機能により、印刷対象の帳票データからプリンタ機種に依存しない中間形式データ（メタファイル、拡張メタファイルなど）を生成する。さらに、出力プリンタに対応するプリンタドライバが、非同期に中間形式データを印刷データに変換し、出力プリンタに対応するポート制御機能が、印刷データを出力プリンタに転送する。上記の描画処理機能、各プリンタのプリンタドライバ、ポート制御機能の動作は、印刷ジョブのスプーラサービスを制御する処理部（プリントスプーラ）により制御される。
【０００３】
住民税納付書、入試問題冊子等の帳票データのような、非常に大きなサイズの帳票データの印刷処理では、出力するページ数が１００万ページを超えるような場合もある。一方で、プリンタには、１回に処理可能なデータサイズに制限があり、例えば、２、４ギガバイト（ＧＢ）のように上限が設定されている。
【０００４】
したがって、印刷対象の帳票データのデータサイズがプリンタの印刷可能なデータサイズの上限を超えるため、プリンタに転送される印刷データを分割する必要がある。
【０００５】
印刷データのサイズを制限する従来手法として、ユーザごとに印刷許可枚数の上限値を設定し、印刷枚数が設定された上限値を超える印刷ジョブの場合に、上限値を超過する分の印刷可否を指定しておき、指定にもとづいて印刷処理を行う手法が知られている。
【０００６】
また別の従来手法として、プリンタが保持する最新のキャリブレーション情報と過去のキャリブレーション情報との変化量をもとにジョブ分割をする印刷量を決定し、分割した印刷ジョブをプリンタへ順次転送する処理が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１６５９５３号公報
【特許文献２】特開２００８−１７６７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大量の帳票を印刷する場合に、プリンタが１回の印刷処理で扱えるデータサイズの上限を超えないように帳票のページ数を指定して印刷処理を指示する必要がある。この場合に、印刷対象の帳票データから変換された印刷データを単純にバイナリ分割しても、プリンタが分割された印刷データを正しく認識することができない。
【０００９】
また、一般的に、高速プリンタは、印刷開始時、すなわち印刷データの先頭のデータ分（帳票データの数十ページ分に相当）の印刷時には、プリンタの機構部の回転速度が高速値に達していないため、プリンタの性能を発揮することができない。印刷データを細かく分割すると、プリンタの回転速度が高速ではない状態が多くなり、プリンタの性能を発揮することができない。
【００１０】
大量データの印刷が要求される業務では、できる限り効率よく印刷を行う必要があり、プリンタが性能を最大限に発揮できる状態で印刷できるように、印刷可能なデータサイズの上限を超えないサイズの印刷データをプリンタに転送する必要がある。
【００１１】
しかし、印刷データのサイズは、ラスター処理過程で印刷対象の帳票データの数十倍〜数百倍のサイズになるが、サイズがどの程度増加するかはデータ内容に依存するため、印刷対象の帳票データのサイズから印刷データのサイズを正確に予測することは困難である。
【００１２】
本発明は、プリンタの印刷性能を最大限に引き出して大量の帳票データを効率的に印刷できる印刷処理を行う帳票印刷方法、帳票印刷プログラム、および帳票印刷システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様として開示する帳票印刷方法は、印刷ジョブをスプールするスプーラサービス部を備えたコンピュータが、前記スプーラサービス部に対して印刷ジョブの生成を要求し、前記印刷ジョブについて帳票データの１ページ分の描画命令を発行し、前記印刷ジョブで指定されたプリンタを特定し、前記帳票データの描画処理で生成された中間形式データをページ単位で取得して、前記プリンタに対応する仮印刷データを生成し、前記仮印刷データのデータサイズをもとに、現時点までに生成された仮印刷データの総データサイズである仮サイズを求め、前記仮印刷データにおいて１ページあたりのデータサイズの最大値であるページ最大サイズを取得し、前記仮サイズに前記最大サイズを加算して前記印刷ジョブにおける印刷データの予測サイズを求め、前記予測サイズが前記プリンタの印刷データの上限サイズを超えるかを判断し、前記予測サイズが前記上限サイズを超える場合に、前記スプーラサービス部に対し、前記印刷ジョブのクローズを指示する、処理を実行するものである。
【００１４】
さらに、本発明の一態様として開示する帳票印刷プログラムは、上記の帳票印刷方法で実現される処理を、コンピュータに実行させるためのものである。さらに、本発明の一態様として開示する帳票印刷システムは、上記の帳票印刷方法での処理を実現する処理部を備えるものである。
【発明の効果】
【００１５】
上記した帳票印刷方法によれば、プリンタ機種に依存することなく、大量の帳票データを、プリンタの性能を最大限活かして効率的に印刷することができる。
【図面の簡単な説明】
【００１６】
【図１】一実施例における帳票印刷システムのブロック構成例を示す図である。
【図２】一実施例におけるデータサイズ情報のデータ構成例を示す図である。
【図３】一実施例における管理情報のデータ構成例を示す図である。
【図４】一実施例における帳票印刷システムの処理の流れを説明するための図である。
【図５】一実施例における、サイズカウント処理でのデータサイズ情報および管理情報の変遷例を示す図である。
【図６】一実施例における、サイズカウント処理でのデータサイズ情報および管理情報の変遷例を示す図である。
【図７】一実施例における、サイズカウント処理でのデータサイズ情報および管理情報の変遷例を示す図である。
【図８】一実施例における、サイズカウント処理でのデータサイズ情報および管理情報の変遷例を示す図である。
【図９】一実施例における帳票印刷部の処理フロー例を示す図である。
【図１０】一実施例における帳票印刷部の処理フロー例を示す図である。
【図１１】一実施例における監視部の処理フロー例を示す図である。
【図１２】一実施例におけるサイズカウント部の処理フロー例を示す図である。
【図１３】帳票印刷システムが実施されるコンピュータ装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一態様として開示する帳票印刷システムについて説明する。
【００１８】
図１は、一実施例における帳票印刷システムのブロック構成例を示す図である。
【００１９】
本実施例において、帳票印刷システム１は、コンピュータで実施される。
【００２０】
帳票印刷システム１は、帳票印刷部１０、監視部１１、サイズカウント部１２、データサイズ情報記憶部１３、管理情報記憶部１４、データサイズ予測部１５、スプーラサービス部１０１、描画処理部１０２、プリンタドライバ１０３、ポート制御部１０４、およびプリンタ１０５を備え、帳票データ２をプリンタ１０５で印刷する。なお、帳票データ２の出力先としてプリンタ１０５が指定されているとする。
【００２１】
帳票データ２は、種々の税納付書や通知書、全国規模の試験問題冊子等の多数のページを含むデータである。帳票データ２は、帳票印刷システム１に接続する外部記憶装置に記憶され、または、ネットワークを介して帳票印刷システム１に転送されるものとする。
【００２２】
スプーラサービス部１０１は、帳票印刷部１０からの描画命令を、ＯＳ（オペレーティングシステム）を介して受け付け、印刷ジョブを生成・スプールし、指定されたプリンタ１０５に印刷ジョブを実行させる。スプーラサービス部１０１は、描画処理部１０２、プリンタドライバ１０３、およびポート制御部１０４を制御する。
【００２３】
描画処理部１０２は、描画命令を受けて印刷対象の帳票データ２からプリンタ機種に依存しない中間形式データ１１０を生成する。中間形式データ１１０は、例えば、ＥＭＦ（Ｅｎｈａｎｃｅｄ  ＭｅｔａＦｉｌｅ）形式のデータファイルである。
【００２４】
プリンタドライバ１０３は、各プリンタに対応して設けられ、中間形式データ１１０を対応するプリンタが解釈可能な印刷データ１１１に変換する。ポート制御部１０４は、各プリンタに対応して設けられ、対応するプリンタへ印刷データ１１１を転送する。
【００２５】
なお、スプーラサービス部１０１、描画処理部１０２、プリンタドライバ１０３、ポート制御部１０４の処理は、既知であるので詳細な説明は省略する。
【００２６】
帳票印刷部１０は、帳票データ２の印刷処理を制御する処理部である。
【００２７】
帳票印刷部１０は、印刷ジョブでの印刷データのデータサイズを予測するため、帳票データ２の１ページ毎の描画命令を発行し、後述するデータサイズ予測部１５の判断結果をもとに、帳票データ２の１ページ分に相当する各中間形式データ１１０のデータサイズの累計から、１回の印刷ジョブの中間形式データ１１０のデータサイズを決定する。その後、帳票印刷部１０は、後述する管理情報記憶部１４に保持された情報（管理情報）を用いて、決定した中間形式データ１１０のデータサイズに対応する帳票データ２のページ数分の印刷要求（描画命令）を発行し、スプーラサービス部１０１に印刷ジョブの生成を依頼する。
【００２８】
監視部１１は、帳票印刷部１０が発行する帳票データ２のページ単位の描画命令を監視し、検出した描画命令に対応させてサイズカウント部１２を起動させる。また、監視部１１は、データサイズ情報記憶部１３に保持されている情報（データサイズ情報）をもとに管理情報記憶部１４に保持されている管理情報を更新する。
【００２９】
監視部１１は、後述するサイズカウント部１２の処理によって、データサイズ情報記憶部１３で、検出した描画命令に基づく中間形式データ１１０に対応して生成された仮印刷データ１２０（帳票データ２の１ページ分）のデータサイズが累計され、累計されたデータサイズ（「仮印刷サイズ」と呼ぶ）がデータサイズ情報記憶部１３に書き込まれる度、検出した描画命令の帳票データ２のページ数、すなわち帳票データ２で描画済みとなったページ数を累計し、累計したページ数（「仮ページ数」と呼ぶ）を管理情報記憶部１４に記録する。
【００３０】
サイズカウント部１２は、帳票データ２の１ページ分の中間形式データ１１０を取り出し、印刷処理する場合に変換されるデータに相当する仮印刷データ１２０を生成し、仮印刷データ１２０（帳票データ２の１ページ分に相当のデータ）のデータサイズを累計し、処理の開始から現処理時点までに生成された仮印刷データ１２０の総データサイズである「仮印刷サイズ」、および、過去に処理された仮印刷データ１２０のデータサイズの最大値（「ページ最大サイズ」と呼ぶ）をデータサイズ情報記憶部１３に記録し、データサイズの計算後に入力した仮印刷データ１２０を破棄する。
【００３１】
この処理のため、サイズカウント部１２は、プリンタ１０５に対応するプリンタドライバ１０３を呼び出し、プリンタドライバ１０３と同等のプリンタドライバ機能を有する印刷データ生成部１２１を生成する。さらに、サイズカウント部１２は、プリンタ１０５に対応するポート制御部１０４を呼び出し、ポート制御部１０４と同等の機能を有してデータ入力を行い、入力したデータのサイズをカウントした後に、入力したデータを破棄する機能を含むカウント部１２２を生成する。
【００３２】
印刷データ生成部１２１は、描画処理部１０２によって生成された帳票データ２の１ページ分の中間形式データ１１０に対して印刷処理を実行し、中間形式データ１１０を仮印刷データ１２０に変換する。仮印刷データ１２０は、プリンタドライバ１０３が中間形式データ１１０から変換する印刷データ１１１と同一である。
【００３３】
カウント部１２２は、印刷データ生成部１２１が変換した仮印刷データ１２０のデータサイズを求め、データサイズ情報記憶部１３の仮印刷サイズに加算する。さらに、カウント部１２２は、求めた仮印刷データ１２０のデータサイズが、データサイズ情報記憶部１３のページ最大サイズより大きい場合に、データサイズ情報記憶部１３のページ最大サイズを求めたデータサイズで更新する。その後に、カウント部１２２は、仮印刷データ１２０を破棄する。
【００３４】
したがって、印刷データ生成部１２１により、帳票データ２の１ページ分に相当する中間形式データ１１０が仮印刷データ１２０に変換される度に、データサイズ情報記憶部１３のデータサイズ情報の「仮印刷サイズ」に、現処理で変換された帳票データの１ページ分の仮印刷データ１２０のデータサイズが加算され、管理情報記憶部１４の管理情報の「仮ページ数」に、帳票データ２で描画済みとなったページ数が１つ加算される。
【００３５】
データサイズ情報記憶部１３は、仮印刷データ１２０のサイズに関するデータサイズ情報を保持する記憶領域である。データサイズ情報は、スプーラジョブ番号、仮印刷サイズ、ページ最大サイズを含む。スプーラジョブ番号は、生成された印刷ジョブに対して採番されたジョブの識別番号である。仮印刷サイズは、ジョブの開始から現処理時点までに変換された仮印刷データ１２０のデータサイズの累計（総データサイズ）である。ページ最大サイズは、過去に処理された仮印刷データ１２０のデータサイズの最大値である。
【００３６】
管理情報記憶部１４は、帳票データ２の印刷処理の管理に用いる管理情報を保持する記憶領域である。管理情報は、スプーラジョブ番号、仮印刷サイズ、ページ最大サイズ、仮ページ数、プリンタ名等を含み、１つの帳票データ２の印刷について、複数の印刷ジョブ（ジョブファイル）が生成された場合には、印刷ジョブ毎に記録される。
【００３７】
データサイズ予測部１５は、描画命令で指定されたプリンタ１０５のプリンタ設定情報をもとに、プリンタ１０５の印刷データのサイズの上限値（「上限サイズ」と呼ぶ）を得て、生成された仮印刷データ１２０のデータサイズの累計（仮印刷サイズ）から、処理時点で帳票データ２の描画済みとなっているページ数分の次の１ページについて描画した場合の仮印刷データ１２０のデータサイズを予測し、予測した仮印刷データ１２０のサイズ（「予測サイズ」と呼ぶ）がプリンタ１０５の上限サイズを超えるかを判断する。
【００３８】
より詳しくは、データサイズ予測部１５は、管理情報を参照して、仮印刷データ１２０の仮印刷サイズにページ最大サイズを加算して予測サイズを算出し、算出した予測サイズがプリンタ１０５の上限サイズを超えるかを、以下の条件で判断する。
【００３９】
条件：予測サイズ  ＜  プリンタの上限サイズ×安全係数（例えば  ０．９）
なお、上記条件の安全係数は、予め設定された定数値であり、０より大きい任意の正の値をとるものである。安全係数は、プリンタ毎またはプリンタ機種毎に定めておいてもよい。
【００４０】
データサイズ予測部１５は、上記条件が成立する場合に、予測サイズが上限サイズを超えないと判断し、上記条件が成立しない場合に、予測サイズが上限サイズを超えると判断し、判断結果を帳票印刷部１０に通知する。
【００４１】
帳票印刷部１０は、データサイズ予測部１５の判断結果をもとに、予測サイズが上限サイズを超えないとの判断結果であれば、帳票データ２の次の１ページの描画命令を発行する。
【００４２】
一方、帳票印刷部１０は、予測サイズが上限サイズを超えるとの判断結果であれば、スプーラサービス部１０１に対し印刷ジョブのクローズを通知する。さらに、帳票印刷部１０は、スプーラサービス部１０１に空の印刷ジョブ（新印刷ジョブ）の生成を要求し、帳票データ２についてクローズした印刷ジョブで描画命令を発行したページ数の次のページを先頭ページとする描画命令を発行する。
【００４３】
スプーラサービス部１０１は、帳票印刷部１０のクローズ通知を受けて、スプール中の中間形式データ１１０をクローズするため、プリンタドライバ１０３が中間形式データ１１０から変換する印刷データ１１１は、プリンタ１０５の上限サイズを超えないサイズであり、仮印刷データ１２０で描画済みとなったページデータを含むデータとなる。
【００４４】
また、スプーラサービス部１０１が帳票印刷部１０からの要求をもとに生成した新規の印刷ジョブの中間形式データ１１０は、クローズした印刷ジョブに含まれる帳票データ２の最終ページ（すなわち仮印刷データ１２０で描画済みとなった最終ページ）の次のページを先頭ページとするデータとなる。
【００４５】
その結果、印刷可能な上限サイズ値を超えたり、サイズ的に余裕があり過ぎたりするような印刷データ１１１をプリンタ１０５に転送するという状態を回避することができ、プリンタ１０５の印刷性能を最大限に活用した印刷を実現することができる。
【００４６】
図２は、データサイズ情報のデータ構成例を示す図である。
【００４７】
データサイズ情報は、スプーラジョブ番号、仮印刷データサイズ、ページ最大サイズのデータ項目を含む。
【００４８】
スプーラジョブ番号は、帳票印刷部１０が生成を要求した印刷ジョブの識別番号であり、スプーラサービス部１０１によって採番、管理される番号である。
【００４９】
仮印刷データサイズは、仮印刷データ１２０の現時点での総データサイズ（仮サイズ）である。ページ最大サイズは、仮印刷データ１２０における、現時点での１ページあたりのデータサイズの最大値である。
【００５０】
図２に示すデータサイズ情報の例では、スプーラジョブ番号“００１”の印刷ジョブでは、現時点までに変換した仮印刷データ１２０の総データサイズが“１０，０００，０００（バイト）”であり、ページ単位のデータサイズの最大値が“１００，０００（バイト）”であることを示している。
【００５１】
図３は、管理情報のデータ構成例を示す図である。
【００５２】
管理情報は、印刷サーバ名、プリンタ名、スプーラジョブ番号、仮ページ数、仮印刷サイズ、ページ最大サイズのデータ項目を含む。
【００５３】
印刷サーバ名は、帳票印刷システムが複数のコンピュータで構成される場合に、印刷処理が割り当てられているコンピュータ（印刷サーバ）の識別情報である。プリンタ名は、出力先として指定されたプリンタの識別情報である。スプーラジョブ番号は、印刷ジョブの識別番号である。仮ページ数は、仮印刷データ１２０として描画済みとなった総ページ数である。仮印刷データサイズ、ページ最大サイズは、データサイズ情報と同一の情報である。
【００５４】
図３に示す管理情報の例では、印刷サーバ名“ｌｏｃａｌｈｏｓｔ”で管理され、プリンタ名“ＢＢＢＢ”を出力先とする印刷処理において、帳票データ２に対して、スプーラジョブ番号００１，００２が採番された２つの印刷ジョブが生成されたことを示している。
【００５５】
スプーラジョブ番号００１の印刷ジョブは、仮印刷データサイズが“２０５，０００（バイト）”、帳票データの２０ページ分（第１ページから第２０ページまで）のデータが印刷対象となっていることを、スプーラジョブ番号００２の印刷ジョブは、仮印刷データサイズが“２００，０００（バイト）”、帳票データの１０ページ分（第２１ページから第３０ページまで）のデータが印刷対象となっていることを、それぞれ示している。２つの印刷ジョブで、印刷される帳票データ２のページ数に相違があるが、印刷データ１１１のデータサイズの予測サイズとなる仮印刷データサイズがプリンタ“ＢＢＢＢ”の印刷データサイズの上限を超えないことが分かる。
【００５６】
帳票印刷システム１では、単純に帳票データ２のページ数で印刷ジョブを分割するのではなく、印刷処理で変換される印刷データを擬似的に生成した仮印刷データ１２０のデータサイズをもとに、１つの印刷ジョブで印刷するデータサイズを決定して、制限に近いデータサイズの印刷データ１１１をプリンタ１０５へ転送できるようにしている。
【００５７】
次に、図４を用いて、帳票印刷システム１における、帳票データの印刷処理の流れを説明する。
【００５８】
（１）  帳票印刷システム１の帳票印刷部１０は、スプーラサービス部１０１に対し、帳票データ２のＮページ目の描画を依頼する。
【００５９】
（２）  描画処理部１０２は、帳票データ２のＮページ目の描画を実行して、Ｎページの中間形式データ１１０を生成する。
【００６０】
（３）  帳票印刷部１０は、帳票データ２のＮページのサイズカウントを依頼する。
【００６１】
（４）  サイズカウント部１２は、プリンタドライバ１０３を呼び出して印刷データ生成部１２１を起動し、Ｎページの中間形式データ１１０から、印刷データに相当するＮページの仮印刷データ１２０を生成する。
【００６２】
（５）  サイズカウント部１２は、カウント部１２２を起動して、Ｎページの仮印刷データ１２０のデータサイズを取得し、取得したＮページのデータサイズを、データサイズ情報記憶部１３の仮印刷サイズに記録されたデータサイズに累計し、ページ最大サイズに書き込む。その後、サイズカウント部１２は、データサイズを取得した仮印刷データ１２０を削除する。
【００６３】
（６）  監視部１１はデータサイズ情報記憶部１３が更新されると、管理情報記憶部１４の仮ページ数をカウントアップし、さらに、データサイズ情報の仮印刷サイズとページ最大サイズとを管理情報に書き込む。
【００６４】
（７）  データサイズ予測部１５は、管理情報記憶部１４の仮印刷サイズに記録されている仮印刷サイズ（スプーラでの印刷済みページのデータサイズの累計）にページ最大サイズを加えた予測サイズが、プリンタ１０５の上限サイズ（安全係数を考慮した値）を超えないかを判定し、予測サイズがプリンタの上限サイズを超える場合に、仮ページ数に記録したページ数でそのスプーラジョブをクローズして、完結させる。
【００６５】
したがって、スプーラサービス部１０１では、１つのジョブスプーラとして、帳票データ２のＮページ分の印刷ジョブが処理されることになり、プリンタ１０５では、上限サイズを超えないデータサイズの印刷が実行される。
【００６６】
図５〜図８は、サイズカウント処理におけるデータサイズ情報および管理情報の変遷例を示す図である。ここで、５ページの帳票データ２を印刷する場合であり、プリンタの上限サイズ＝７００ＫＢ（キロバイト）、安全係数＝０．９であると仮定する。
【００６７】
図５（Ａ）に示すように、帳票印刷部１０が帳票データ２の印刷を要求すると、スプーラサービス部１０１で設定された、印刷処理を制御するサーバ名（ｌｏｃａｌｈｏｓｔ）、プリンタ名（ＡＡＡＡ）、スプーラジョブ番号（００１）が管理情報記憶部１４に記録される。ここで、管理情報は初期状態であり、仮ページ数、仮印刷サイズ、ページ最大サイズは、いずれも“０”である。
【００６８】
帳票データ２の１ページ目について、図４に示す（１）〜（５）の処理が実行され、仮印刷データ１２０のデータサイズ“２００ＫＢ”が取得されると、図５（Ｂ）に示すように、取得したデータサイズが、データサイズ情報記憶部１３の仮印刷サイズ（２００ＫＢ）、ページ最大サイズ（２００ＫＢ）に記録される。
【００６９】
図４に示す（６）の処理で、図５（Ｃ）に示すように、データサイズ情報の仮印刷サイズ（２００ＫＢ）とページ最大サイズ（２００ＫＢ）とが管理情報記憶部１４に書き込まれ、仮ページ数に１が加算されて“１”とされる。
【００７０】
図４に示す（７）の処理で、仮印刷データ１２０が描画済みとなった１ページまでのデータサイズである“２００ＫＢ”に最大ページサイズ（２００ＫＢ）を加えた予測サイズが、プリンタの上限値７００ＫＢに安全係数０．９を掛けた上限サイズ（６３０ＫＢ）を超えないと判定され、次ページ（２ページ目）の描画が要求される。
【００７１】
続いて、帳票データ２の２ページ目について、図４に示す（１）〜（５）の処理が実行され、仮印刷データ１２０のデータサイズ“２５０ＫＢ”が取得され、図６（Ａ）に示すように、データサイズ情報記憶部１３の仮印刷サイズに累計したデータサイズ（４５０ＫＢ）が記録され、ページ最大サイズが２ページ目のデータサイズ（２５０ＫＢ）に更新される。
【００７２】
図４に示す（６）の処理で、図６（Ｂ）に示すように、データサイズ情報の仮印刷サイズとページ最大サイズとが管理情報記憶部１４に書き込まれ、仮ページ数に１が加算されて“２”とされる。
【００７３】
図４に示す（７）の処理で、仮印刷データ１２０が描画済みとなった２ページでの予測サイズ（４５０ＫＢ＋２５０ＫＢ）が、上限サイズ（６３０ＫＢ）を超えないと判定され、次ページの描画が要求される。
【００７４】
帳票データ２の３ページ目について、図４に示す（１）〜（５）の処理が実行され、仮印刷データ１２０のデータサイズ“１５０ＫＢ”が取得され、図６（Ｃ）に示すように、データサイズ情報記憶部１３の仮印刷サイズに累計したデータサイズ（６００ＫＢ）が記録される。ページ最大サイズ（２５０ＫＢ）は、３ページ目のデータサイズより大きいので更新されない。
【００７５】
図４に示す（６）の処理で、図７（Ａ）に示すように、データサイズ情報の仮印刷サイズとページ最大サイズとが管理情報記憶部１４に書き込まれ、仮ページ数が１加算されて“３”とされる。
【００７６】
図４に示す（７）の処理で、仮印刷データ１２０が描画済みとなった３ページでの予測サイズ（６００ＫＢ＋２５０ＫＢ）が、上限サイズ（６３０ＫＢ）を超えると判定されるため、３ページ目でスプーラジョブ（００１）が完結される。
【００７７】
次に、帳票データ２の４ページ目以降の印刷について、図７（Ｂ）に示すように、次のスプーラジョブとして、スプーラサービス部１０１で設定された、印刷処理を制御するサーバ名（ｌｏｃａｌｈｏｓｔ）、プリンタ名（ＡＡＡＡ）、スプーラジョブ番号（００２）が管理情報記憶部１４に記録される。
【００７８】
帳票データ２の４ページ目、スプーラジョブ（００２）での１ページ目について、図４に示す（１）〜（５）の処理が実行され、仮印刷データ１２０のデータサイズ“１００ＫＢ”が取得されると、図７（Ｃ）に示すように、取得したデータサイズが、データサイズ情報記憶部１３の仮印刷サイズ（１００ＫＢ）、ページ最大サイズ（１００ＫＢ）に記録される。
【００７９】
図４に示す（６）の処理で、図８（Ａ）に示すように、データサイズ情報の仮印刷サイズ（１００ＫＢ）とページ最大サイズ（１００ＫＢ）とが管理情報記憶部１４に書き込まれ、仮ページ数に１が加算されて“１”とされる。
【００８０】
図４に示す（７）の処理で、仮印刷データ１２０が描画済みとなった１ページでの予測サイズ（１００ＫＢ＋１００ＫＢ）が、プリンタの上限サイズを超えないと判定され、帳票の５ページ目（スプーラでの２ページ目）の描画が要求される。
【００８１】
帳票データ２の５ページ目について、図４に示す（１）〜（５）の処理が実行され、仮印刷データ１２０のデータサイズ“２５０ＫＢ”が取得され、図８（Ｂ）に示すように、データサイズ情報記憶部１３の仮印刷サイズに累計したデータサイズ（３５０ＫＢ）が記録され、ページ最大サイズが２ページ目のデータサイズ（２５０ＫＢ）に更新される。
【００８２】
図４に示す（６）の処理で、図８（Ｃ）に示すように、データサイズ情報の仮印刷サイズとページ最大サイズとが管理情報記憶部１４に書き込まれ、仮ページ数が１加算されて“２”とされる。
【００８３】
ここで、帳票データ２の全ページの描画要求が完了しているため、図４に示す（７）の判定処理が不要となり、２ページ目でスプーラジョブ（００２）が完結される。
【００８４】
したがって、プリンタ１０５では、５ページ分の帳票データ２が、上限値７００ＫＢ未満のデータサイズである２つのスプーラジョブに分割され、３ページ分（１〜３ページ目）と、２ページ分（４〜５ページ目）との印刷が実行される。
【００８５】
図９および図１０は、帳票印刷部１０の処理フロー例を示す図である。
【００８６】
帳票印刷部１０が帳票データ２の印刷ジョブ生成を要求すると、スプーラサービス部１０１が、要求された印刷ジョブを生成し、印刷ジョブにスプールジョブ番号を採番する（ステップＳ１）。
【００８７】
帳票印刷部１０は、スプーラサービス部１０１から、印刷ジョブに関する印刷サーバ名、プリンタ名、スプーラジョブ番号を取得し、管理情報記憶部１４に記録する（ステップＳ２）。
【００８８】
さらに、帳票印刷部１０が、監視部１１に、印刷サーバ名、プリンタ名およびスプーラジョブ番号を含む監視依頼を通知する（ステップＳ３）。
【００８９】
帳票印刷部１０が、帳票データ２の先頭から順に１ページ分の描画命令を発行すると、スプーラサービス部１０１の制御のもと、描画処理部１０２が、描画命令されたページ分のデータが、印刷ジョブの先頭ページであるかを判断し（ステップＳ４）、印刷ジョブの先頭ページである場合のみ（ステップＳ４のＹ）、帳票データの１ページ分のデータを描画して中間形式データ１１０を生成する（ステップＳ５）。
【００９０】
帳票印刷部１０が、監視部１１に仮印刷データのサイズカウントを依頼すると、サイズカウント部１２によるサイズカウント処理が実行される（ステップＳ６）。
【００９１】
監視部１１は、サイズカウント部１２によるサイズカウント処理の完了通知があると、データサイズ情報記憶部１３から仮印刷データサイズおよびページ最大サイズを取得し、管理情報記憶部１４の管理情報に記録する（ステップＳ７）。
【００９２】
データサイズ予測部１５は、管理情報記憶部１４を参照し、仮印刷データサイズとページ最大サイズとを加算して予測サイズを算出し（ステップＳ８）、予測サイズがプリンタ１０５の上限サイズを超えるかを判断する（ステップＳ９）。予測サイズがプリンタ１０５の上限サイズを超える場合に（ステップＳ９のＹ）、ステップＳ１０の処理が実行され、予測サイズがプリンタ１０５の上限サイズを超えない場合に（ステップＳ９のＮ）、ステップＳ１２の処理が実行される。
【００９３】
ステップＳ１０の処理で、帳票印刷部１０が、印刷ジョブのクローズをスプーラサービス部１０１に指示し、サイズカウント部１２へ処理終了を通知する。さらに、帳票印刷部１０が、帳票データ２に続きのページがあるかを判断する（ステップＳ１１）。帳票データ２に続きのページがあれば（ステップＳ１１のＹ）、ステップＳ１の処理へ戻り、帳票データ２に続きのページがなければ（ステップＳ１１のＮ）、処理を終了する。
【００９４】
ステップＳ１２の処理で、帳票印刷部１０が、帳票データ２の次の１ページ分の描画命令を発行し、描画処理部１０２が、描画命令をもとに帳票データ２の次の１ページ分の中間形式データ１１０を生成する（ステップＳ１２）。帳票印刷部１０が、帳票データ２の描画されたページに続きのページがあるかを判断する（ステップＳ１３）。帳票データ２の描画されたページに続きのページがあれば（ステップＳ１３のＹ）、ステップＳ６の処理へ戻り、帳票データ２の描画されたページに続きのページがなければ（ステップＳ１３のＮ）、ステップＳ１４の処理を実行する。
【００９５】
ステップＳ１４の処理で、帳票印刷部１０が、印刷ジョブのクローズをスプーラサービス部１０１に指示し、サイズカウント部１２へ処理終了を通知し、処理を終了する。
【００９６】
図１１は、監視部１１の処理フロー例を示す図である。
【００９７】
監視部１１は、ステップＳ１４の処理による終了指示が通知されたかを判断し（ステップＳ２１）、終了指示が通知されていなければ（ステップＳ２１のＮ）、ステップＳ２２の処理を実行し、終了指示が通知されていれば（ステップＳ２１のＹ）、処理を終了する。
【００９８】
ステップＳ２２の処理で、監視部１１が、ステップＳ３の処理による監視依頼が通知されたかを判断し、監視依頼が通知されていれば（ステップＳ２２のＹ）、ステップＳ２３の処理を実行し、監視依頼が通知されていなければ（ステップＳ２２のＮ）、ステップＳ２１の処理へ戻る。
【００９９】
ステップＳ２３の処理で、監視部１１が、プリンタ名（プリンタ１０５）を通知して、サイズカウント部１２を起動させる。
【０１００】
図１２は、サイズカウント部１２の処理フロー例を示す図である。
【０１０１】
サイズカウント部１２は、ステップＳ２３の処理により起動すると、通知されたプリンタ名から、帳票印刷システム１に保持されているプリンタドライバの中から利用するプリンタドライバ１０３を選択して、その機能を取得する。そして、サイズカウント部１２は、取得したプリンタドライバ機能を組み込んだ印刷データ生成部１２１を生成する。さらに、サイズカウント部１２は、帳票印刷システム１に保持されているプリンタ１０５へのポート制御機能を取得して、取得したポート制御機能を組み込んだカウント部１２２を生成する（ステップＳ３１）。
【０１０２】
サイズカウント部１２は、ステップＳ１０またはステップＳ１４の処理による終了指示が通知されたかを判断し（ステップＳ３２）、終了指示が通知されてなければ（ステップＳ３２のＮ）、ステップＳ３３の処理を実行し、終了指示が通知されていれば（ステップＳ３２のＹ）、処理を終了する。
【０１０３】
ステップＳ３３の処理で、ステップＳ６の処理によるサイズカウントの依頼があったかを判断し、サイズカウントの依頼があればステップＳ３４の処理を実行し（ステップＳ３３のＹ）、サイズカウントの依頼がなければ（ステップＳ３３のＮ）、ステップＳ３２の処理へ戻る。
【０１０４】
ステップＳ３４の処理で、印刷データ生成部１２１が、該当する印刷ジョブの中間形式データ１１０を参照して、帳票データ２の１ページ分のデータを取得し、プリンタドライバ１０３の機能を用いて、仮印刷データ１２０を生成する。
【０１０５】
続いて、サイズカウント部１２が、生成された仮印刷データ１２０のデータサイズを求め、現時点までに生成された仮印刷データ１２０の総データサイズをデータサイズ情報記憶部１３の「仮印刷データサイズ」に記録し、１ページのデータサイズがデータサイズ情報記憶部１３に記録されたページ最大サイズより大きければ、取得したデータサイズを「ページ最大サイズ」に記録する（ステップＳ３５）。サイズカウント部１２は、サイズカウントの完了を通知する（ステップＳ３６）。
【０１０６】
以上説明した帳票印刷システム１は、図１に示す処理部を備える専用ハードウェアまたは、コンピュータ装置により実施することができる。
【０１０７】
図１３は、帳票印刷システム１が実施されるコンピュータ装置のハードウェア構成例を示す図である。
【０１０８】
帳票印刷システム１が実施されるコンピュータ装置２００は、ＣＰＵ２０１、メモリ２０２、印刷装置２０３が接続された印刷制御部２０４、ハードディスク等の記憶装置２０５、およびネットワーク接続のための通信制御部２０６が、バス２０７に接続されている。
【０１０９】
オペレーティングシステムおよび帳票印刷システム１を実施するプログラムが記憶装置２０５に格納されており、ＣＰＵ２０１により実行される際には記憶装置２０５からメモリ２０２に読み出される。ＣＰＵ２０１は、オペレーティングシステムおよび帳票印刷システム１として実行される、スプーラサービス部１０１、描画処理部１０２、プリンタドライバ１０３、ポート制御部１０４、帳票印刷部１０、監視部１１，サイズカウント部１２，データサイズ予測部１５などの処理内容に応じて印刷制御部２０４、通信制御部２０６を制御して所定の動作を行わせる。
【０１１０】
印刷装置２０３は、プリンタ１０５に相当する。
【０１１１】
帳票印刷システム１の処理対象の帳票データ２は、記憶装置２０５または通信制御部２０６を介してアクセスできる他コンピュータ装置の記憶装置に格納されている。
【０１１２】
帳票印刷システム１の実行時には、処理途中のデータは主としてメモリ２０２に格納されるが、記憶装置２０５に格納されるようにしてもよい。すなわち、帳票データ２，データサイズ情報、管理情報、仮印刷データ１２０、中間形式データ１１０、印刷データ１１１などがメモリ２０２または記憶装置２０５に格納される。
【０１１３】
コンピュータ２００は、上述のＣＰＵ２０１、メモリ２０２などのハードウェアと、オペレーティングシステムおよび帳票印刷システム１の構成要素を実現するプログラムとが有機的に協働することにより、上記実施例において説明したような各種の機能を実現する。
【０１１４】
帳票印刷システム１を実現するプログラムは、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等やフレキシブルディスク等の記録媒体に格納されていてもよい。
【０１１５】
なお、帳票印刷システム１を構成する要素は、任意の組合せで実現されてもよい。複数の構成要素が１つの部材として実現されてもよく、１つの構成要素が複数の部材から構成されてもよい。また、帳票印刷システム１は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において各種の改良および変更を行ってもよいことは当然である。
【０１１６】
以上説明したように、開示した帳票印刷システム１によれば、大量の帳票データの印刷処理において、印刷データのサイズ制限があるプリンタの使用に際し、プリンタに依存することなく以下の点を解決することができる。
【０１１７】
・  プリンタの印刷データの上限サイズに抵触することなく、大量ページとなる帳票データを印刷することができる。
【０１１８】
・  プリンタの性能を損なう帳票データの分割回数を最小限に抑制することができる。
【０１１９】
よって、プリンタ性能を最大限に活かした、帳票データの効率的印刷を実現することができる。
【符号の説明】
【０１２０】
１  帳票印刷システム
１０  帳票印刷部
１１  監視部
１２  サイズカウント部
１２０  仮印刷データ
１２１  印刷データ生成部
１２２  カウント部
１３  データサイズ情報記憶部
１４  管理情報記憶部
１５  データサイズ予測部
１０１  スプーラサービス部
１０２  描画処理部
１０３  プリンタドライバ
１０４  ポート制御部
１０５  プリンタ
１１０  中間形式データ
１１１  印刷データ
２  帳票データ
【図１】
2014052839.tif 000003
【図２】
2014052839.tif 000004
【図３】
2014052839.tif 000005
【図４】
2014052839.tif 000006
【図５】
2014052839.tif 000007
【図６】
2014052839.tif 000008
【図７】
2014052839.tif 000009
【図８】
2014052839.tif 000010
【図９】
2014052839.tif 000011
【図１０】
2014052839.tif 000012
【図１１】
2014052839.tif 000013
【図１２】
2014052839.tif 000014
【図１３】
2014052839.tif 000015