【文献】
成瀬 博之 他,帳票における枠罫線構造の記述と認識,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,1991年03月20日,Vol.90 No.491
【文献】
S. Shimotsuji et al,Form identification based on cell structure,Proceedings of 13th International Conference on Pattern Recognition,米国,IEEE,1996年08月29日,https://ieeexplore.ieee.org/document/547277
(58)【調査した分野】(Int.Cl.,DB名)
帳票の画像データから、矩形領域からなる情報記入欄が第1の所定方向に複数配置された繰返領域が、第2の所定方向に繰り返し並んだ明細領域を検出する明細領域検出手段と、
前記検出された明細領域における各情報記入欄に対応するデータ入力の設定をするための明細領域入力設定情報を作成する第1の作成手段と、
前記帳票の画像データから、各矩形領域の並びが前記繰返領域に類似する領域であって、少なくとも1つの矩形領域が項目名称欄である類似領域を検出する類似領域検出手段と、
前記検出された類似領域における各情報記入欄に対応するデータ入力の設定をするための類似領域入力設定情報を作成する第2の作成手段と、を備える帳票管理装置。
前記第1の作成手段は、前記繰返領域において前記第1の所定方向に並んだ複数の情報記入欄が同じ第1の項目名に対応する場合に、当該複数の情報記入欄のそれぞれに、当該第1の項目名を含みかつ互いに識別可能な第4の項目名を設定して前記明細領域入力設定情報を作成し、
前記第2の作成手段は、前記繰返領域の前記第4の項目名が設定された情報記入欄に対応する前記類似領域の情報記入欄に当該第4の項目名を含む項目名を設定して前記類似領域入力設定情報を作成する請求項1又は2に記載の帳票管理装置。
前記第1の作成手段は、前記繰返領域において前記第1の所定方向に同じ幅の複数の情報記入欄が連続して並ぶ場合に、当該複数の情報記入欄を1つの情報記入欄に統合して前記明細領域入力設定情報を作成し、
前記第2の作成手段は、前記繰返領域の統合された情報記入欄に対応する前記類似領域の複数の情報記入欄を1つの情報記入欄に統合して前記類似領域入力設定情報を作成する請求項1から4のいずれか一項に記載の帳票管理装置。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
【0012】
図1を参照して、本実施の形態の装置構成を説明する。
図1は、帳票管理装置10の機能構成を示すブロック図である。
【0013】
図1に示す帳票管理装置10は、個人商店などの店舗に設置された情報処理装置であり、店舗の顧客などに発行する帳票の情報を管理する。帳票管理装置10は、専用機としてもよく、汎用のPC(Personal Computer)などにより実現する構成としてもよい。
【0014】
帳票管理装置10は、明細領域検出手段、第1の作成手段、類似領域検出手段、第2の作成手段としてのCPU(Central Processing Unit)11と、操作部12と、RAM(Random Access Memory)13と、表示部14と、記憶部15と、通信部16と、スキャナ部17と、印刷部18と、を備える。帳票管理装置10の各部は、バス19を介して接続されている。
【0015】
CPU11は、帳票管理装置10の各部を制御する。CPU11は、記憶部15に記憶されているシステムプログラム及びアプリケーションプログラムのうち、指定されたプログラムを読み出してRAM13に展開し、当該プログラムとの協働で、各種処理を実行する。
【0016】
操作部12は、キーボードなどのキー入力部と、マウスなどのポインティングデバイスとを有し、キー入力及び位置入力を受け付け、その操作情報をCPU11に出力する。
【0017】
RAM13は、揮発性のメモリであり、各種のデータやプログラムを一時的に格納するワークエリアを形成する。表示部14は、LCD(Liquid Crystal Display)、EL(ElectroLuminescent)ディスプレイなどで構成され、CPU11から指示された表示情報に従い各種表示を行う。
【0018】
記憶部15は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などにより構成され、データ及びプログラムを書き込み及び読み出し可能な記憶部である。特に、記憶部15は、帳票管理に関する、帳票管理データベースD、帳票管理制御プログラムPを記憶している。
【0019】
帳票管理データベースDは、後述する矩形領域テーブル20、直線テーブル30、矩形項目情報40、帳票フォーム情報50、文字抽出テーブル60を含む。帳票管理制御プログラムPは、複数のプログラムモジュールからなり、後述する矩形情報追加処理、項目情報作成処理、帳票フォーム情報作成処理が実現されるプログラムである。
【0020】
通信部16は、ネットワークカードなどにより構成され、通信ネットワークに通信接続されて、当該通信ネットワーク上の機器との通信を行う。
【0021】
スキャナ部17は、CPU11の指示により、セットされた帳票などの原稿を光学的に読み取り、当該原稿の画像データを生成してCPU11に出力する読取部である。
【0022】
印刷部18は、CPU11の指示により、文字などの印刷情報を用紙に印刷するプリンタである。例えば、後述する
図3に示すように、帳票の背景画像F1が印刷された用紙がセットされ、印刷部18は、具体的な入力データを当該帳票の用紙に印刷して、入力データを含む帳票を作成する。
【0023】
次に、
図2〜
図8を参照して、記憶部15に記憶される情報を説明する。
図2(a)は、矩形領域テーブル20を示す図である。
図2(b)は、直線テーブル30を示す図である。
図3は、帳票の背景画像F1を示す図である。
図4は、帳票における矩形領域R1〜R118及び直線L1〜L5を示す図である。
図5は、矩形項目情報40を示す図である。
図6は、帳票フォーム情報50を示す図である。
図7は、帳票から得られた帳票フォームの領域を示す図である。
図8は、文字抽出テーブル60を示す図である。
【0024】
図2(a)に示す矩形領域テーブルは、帳票に印刷された情報記入欄を含む帳票フォームの背景画像の矩形領域に関する情報のテーブルである。ここで、本実施の形態では、主として、店舗で使用され、具体的な文字列、数値などの情報が未記入の帳票がスキャンされ、例えば、
図3に示す帳票の背景画像F1が取得される例を説明する。この帳票は、納品書(控)の帳票であり、上端、下端、左端、右端の4辺に囲まれた矩形と、左右に延在した直線と、を複数含む。
【0025】
帳票の背景画像F1は、左上端を原点として、第1の所定方向としての右方向のX軸と、第2の所定方向としての下方向のY軸と、の2次元座標の点からなるものとする。本実施の形態では、背景画像F1から帳票の具体的な情報を入力するための帳票フォーム画面情報を表示するための帳票フォーム情報50を作成することを目的とする。
【0026】
より具体的には、
図4に示すように、帳票の背景画像F1は、矩形領域R1〜R118及び直線L1〜L5を含む。
【0027】
矩形領域テーブル20は、名称21と、領域22と、のカラムを有する。名称21は、帳票の背景画像内の矩形領域の名称である。領域22は、名称21の矩形領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0028】
図2(b)に示すように、直線テーブル30は、帳票の背景画像内の直線に関する情報のテーブルである。直線テーブル30は、名称31と、領域32と、のカラムを有する。名称31は、帳票の背景画像内の直線の名称である。領域32は、名称31の直線を矩形として表した左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0029】
図5に示すように、矩形項目情報40は、帳票の背景画像から取得された矩形領域と直線に対応して設定された矩形領域とに含まれる項目の情報(項目詳細情報)を項目グループ別に有する情報群である。項目グループとは、帳票の背景画像において、Y座標が同じ矩形領域の項目詳細情報をまとめた集合である。例えば、帳票の背景画像F1において、矩形領域R1〜R5は、1つの項目グループG1に含まれる。
【0030】
矩形項目情報40は、
図5上の矢印により関連付けられた項目グループ情報アドレス41、項目詳細情報アドレス42、項目詳細情報43の情報を有する。項目グループ情報アドレス41は、帳票の背景画像内の項目グループ情報のアドレス情報である。項目詳細情報アドレス42は、項目グループ情報アドレス41の項目グループに含まれる矩形領域の項目詳細情報43のアドレス情報である。例えば、項目グループ情報アドレス41は、含まれる先頭の項目詳細情報アドレス42のアドレスである。また、例えば、項目詳細情報アドレス42は、含まれる項目詳細情報43のアドレスである。
【0031】
項目詳細情報43は、項目詳細情報アドレス42の矩形領域に含まれる項目の詳細情報である。項目詳細情報43は、文字列431、項目区分432、領域433の情報を有する。文字列431は、項目詳細情報アドレス42の矩形領域に含まれる項目詳細情報の文字列である。項目区分432は、項目詳細情報アドレス42の矩形領域に含まれる項目詳細情報の区分である。項目区分432は、帳票フォームにおいて文字の入力を受け付ける出力項目と、帳票フォームにおいて文字列の表示のみを行う名称項目と、のいずれか1つである。領域433は、項目詳細情報アドレス42の矩形領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0032】
図6に示すように、帳票フォーム情報50は、スキャンされた帳票について具体的な文字の入力を受け付ける帳票フォーム(画面)を設定するための情報である。帳票フォーム情報50は、項目情報50Aと、明細情報50Bと、を有する。
【0033】
図7に示すように、帳票の背景画像F1から得られた帳票フォーム情報50は、具体的な文字の入力を受け付ける情報記入欄の領域として、明細領域SP1と、繰返領域RP1と、出力項目T1〜T19と、に関する情報(項目詳細情報)を有する。明細情報50Bは、帳票において、X軸方向の同じ並びパターン(形状(幅)及び位置)の複数の矩形領域からなる繰返領域(例えば繰返領域PR1)がY軸方向に連続的に繰り返された明細領域(例えば明細領域SP1)の情報である。繰返領域RP1は、明細領域SP1のうちY軸方向に繰り返される項目グループ情報単位の領域である。繰返領域PR1には、出力項目T6〜T11が含まれる。項目情報50Aとは、帳票において、明細領域以外の情報記入欄の各矩形領域(例えば出力項目T1〜T5,T12〜T19)の情報である。
【0034】
また、繰返領域PR1において、出力項目T9は、X軸方向に同じ幅の8個の矩形領域(R9〜R16)を1つに統合した矩形領域としている。また、繰返領域PR1と同じ並びパターン(形状(幅)及び位置)の矩形領域(R97〜R109)を有し、項目区分が異なる矩形領域(R97)を少なくとも1つ有する領域を、繰返領域PR1の類似領域AN1とする。類似領域AN1には、出力項目T12〜T16が含まれる。類似領域AN1においても、出力項目T14は、X軸方向に同じ幅の8個の矩形領域(R100〜R108)を1つに統合した矩形領域としている。
【0035】
帳票フォーム情報50は、
図6の矢印で関連付けられるように、明細領域以外の領域の項目情報50Aとして、項目情報アドレス51、項目詳細情報アドレス52、項目詳細情報53と、明細領域の明細情報50Bとして、明細情報アドレス54、明細情報55、項目詳細情報アドレス56、項目詳細情報57と、の情報を有する。項目情報アドレス51は、項目情報50Aのアドレス情報である。項目詳細情報アドレス52は、項目情報アドレス51の項目情報に含まれる項目詳細情報53のアドレス情報である。項目情報アドレス51は、例えば、含まれる先頭の項目詳細情報アドレス52で表される。
【0036】
項目詳細情報53は、項目情報50Aの項目詳細情報である。項目詳細情報53は、項目名531と、項目種532と、領域533と、の情報を有する。項目名531は、項目詳細情報アドレス52の項目詳細情報の出力項目の名称である。項目種532は、項目詳細情報アドレス52の項目詳細情報の出力項目の種類であり、例えば文字である。領域533は、項目詳細情報アドレス52の項目詳細情報の出力項目の矩形領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0037】
明細情報アドレス54は、明細情報50Bのアドレス情報である。明細情報55は、明細情報アドレス54の繰返領域の項目詳細情報以外の明細領域に関する情報を有する。明細情報55は、明細領域551と、繰返領域552と、移動量553と、項目情報アドレス554と、の情報を有する。明細領域551は、明細情報アドレス54の明細領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。繰返領域552は、明細情報アドレス54の明細領域の繰返領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。移動量553は、明細情報アドレス54の明細領域の繰返領域のY軸方向の繰り返しの幅の値である。項目情報アドレス554は、明細情報アドレス54の明細領域の繰返領域の項目詳細情報アドレス56のアドレス情報である。項目詳細情報アドレス56は、明細情報アドレス54の明細領域の繰返領域の項目詳細情報57のアドレス情報である。項目情報アドレス554は、例えば、含まれる先頭の項目詳細情報アドレス56とされる。
【0038】
項目詳細情報57は、明細情報アドレス54の明細領域の繰返領域の項目詳細情報である。項目詳細情報57は、項目名571と、項目種572と、領域573と、の情報を有する。項目名571は、項目詳細情報アドレス56の項目詳細情報の出力項目の名称である。項目種572は、項目詳細情報アドレス56の項目詳細情報の出力項目の種類であり、例えば文字である。領域573は、項目詳細情報アドレス56の項目詳細情報の出力項目の矩形領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0039】
図8に示すように、文字抽出テーブル60は、帳票の背景画像のうちの文字を含む項目情報50Aの矩形領域から抽出された各文字部分の矩形領域の情報を有するテーブルである。文字抽出テーブル60は、文字61と、領域62と、のカラムを有する。文字61は、項目情報の矩形領域に含まれる各文字である。領域62は、文字61の文字のみの矩形領域の左端(X軸)、上端(Y軸)、右端(X軸)、下端(Y軸)の各辺の座標の値である。
【0040】
次に、
図9〜
図18を参照して、帳票管理装置10の動作を説明する。
図9は、矩形情報追加処理を示すフローチャートである。
図10は、矩形項目情報作成処理を示すフローチャートである。
図11は、帳票フォーム情報作成処理を示すフローチャートである。
図12は、同一項目グループ検出処理を示すフローチャートである。
図13は、項目情報追加処理を示すフローチャートである。
図14は、領域分割処理を示すフローチャートである。
図15は、明細情報追加処理を示すフローチャートである。
図16は、明細項目追加処理を示すフローチャートである。
図17は、類似項目グループ検出処理を示すフローチャートである。
図18は、類似項目追加処理を示すフローチャートである。
【0041】
先ず、
図9を参照して、矩形情報追加処理を説明する。矩形情報追加処理は、帳票フォーム情報50を作成する対象の帳票をスキャンし、背景画像から矩形領域及び直線の情報を抽出し、直線に出力項目のための矩形領域を設定してその矩形領域の情報を追加する処理である。予め、ユーザにより、対象の帳票がスキャナ部17にセットされているものとする。
【0042】
そして、帳票管理装置10において、例えば、操作部12を介してユーザから矩形情報追加処理の実行指示が入力されたことをトリガとして、CPU11は、記憶部15から読み出されて適宜RAM13に展開された帳票管理制御プログラムPの一部との協働により、矩形情報追加処理を実行する。
【0043】
図9に示すように、先ず、CPU11は、スキャナ部17により、セットされた帳票をスキャンし、その背景画像データを記憶部15に記憶する(ステップS11)。ステップS11では、例えば、
図3の帳票の背景画像F1の背景画像データが記憶される。
【0044】
そして、CPU11は、ステップS11で取得された帳票の背景画像データを画像解析して矩形領域及び直線を抽出し、抽出した矩形領域及び直線の情報を取得して矩形領域テーブル20及び直線テーブル30を作成して記憶部15に記憶する(ステップS12)。ステップS12では、例えば、
図4の矩形領域R1〜R115及び直線L1〜L5が取得される。ステップS12では、抽出された矩形領域にユニークな名称が付与されて名称21とされ、当該矩形領域の左端、上端、右端、下端の各辺の座標の値が領域22とされて矩形領域テーブル20が作成される。また、抽出された直線にユニークな名称が付与されて名称31とされ、当該直線の左端、上端、右端、下端の各辺の座標の値が領域32とされて直線テーブル30が作成される。
【0045】
そして、CPU11は、直線テーブル30の先頭レコードを直線情報として取得する(ステップS13)。そして、CPU11は、ステップS13又はS18で取得された直線情報があるか否かを判別する(ステップS14)。直線情報がない場合(ステップS14;NO)、矩形情報追加処理が終了する。
【0046】
直線情報がある場合(ステップS14;YES)、CPU11は、取得中の直線情報の領域32の上端及び下端が同じ(つまり左右方向の直線)であるか否かを判別する(ステップS15)。
【0047】
上端及び下端が同じ場合(ステップS15;YES)、CPU11は、取得中の直線情報の領域32の下端が所定値としての50以上であるか否かを判別する(ステップS16)。ステップS16の所定値は、少なくとも出力項目(帳票フォームにおいて具体的な文字を入力する矩形領域)の高さを確保するための値である。
【0048】
下端が50以上である場合(ステップS16;YES)、CPU11は、取得中の直線情報の領域32の左端、右端、下端を同じとし、かつ上端−50(出力項目用の所定値)を上端とした矩形領域を設定し、当該矩形領域の情報を矩形領域テーブル20に追加する(ステップS17)。ステップS17では、例えば、
図4の直線L3〜L5上に矩形領域R116〜R118が設定される。ステップS17では、設定された矩形領域にユニークな名称が付与されて名称21とされ、当該矩形領域の左端、上端、右端、下端の各辺の座標の値が領域22とされて矩形領域テーブル20にレコードが追加される。そして、CPU11は、直線テーブル30において、取得中の直線情報の次のレコードを直線情報として取得し(ステップS18)、ステップS14に移行する。上端及び下端が異なる場合(ステップS15;NO)、ステップS18に移行される。下端が50未満である場合(ステップS16;NO)、ステップS18に移行される。
【0049】
次いで、
図10を参照して、矩形項目情報作成処理を説明する。矩形項目情報作成処理は、矩形情報追加処理で作成された矩形領域テーブル20から、矩形領域ごとの項目詳細情報を有する矩形項目情報40を作成する処理である。予め、矩形情報追加処理が実行され、帳票フォームを作成する対象の帳票の矩形領域テーブル20が記憶部15に記憶されているものとする。
【0050】
帳票管理装置10において、例えば、操作部12を介してユーザから矩形項目情報作成処理の実行指示が入力されたことをトリガとして、CPU11は、記憶部15から読み出されて適宜RAM13に展開された帳票管理制御プログラムPの一部との協働により、矩形項目情報作成処理を実行する。
【0051】
図10に示すように、先ず、CPU11は、記憶部15に記憶された矩形領域テーブル20から先頭のレコードを矩形領域情報として取得する(ステップS21)。そして、CPU11は、ステップS21又はS39で取得された矩形領域情報があるか否かを判別する(ステップS22)。矩形領域情報がない場合(ステップS22;NO)、矩形項目情報作成処理が終了する。
【0052】
矩形領域情報がある場合(ステップS22;YES)、CPU11は、取得中の矩形領域情報に対応する空の項目詳細情報43を生成して記憶部15に記憶する(ステップS23)。
【0053】
そして、CPU11は、記憶部15に記憶された帳票の背景画像データを用いて、取得中の矩形領域情報の領域22の矩形領域内をOCR(Optical Character Recognition:光学文字認識)などにより文字認識し、当該矩形領域に認識された文字があるか否かを判別する(ステップS24)。矩形領域に文字がある場合(ステップS24;YES)、CPU11は、ステップS23で作成された項目詳細情報43の文字列431に、ステップS24で取得された文字列を設定する(ステップS25)。矩形領域に文字がない場合(ステップS24;NO)、CPU11は、ステップS23で作成された項目詳細情報43の文字列431に、空の情報を設定する(ステップS26)。
【0054】
そして、CPU11は、ステップS24で認識された文字列(文字)が矩形領域の左右方向の中央を跨ぐ位置に配置されているか否かを判別する(ステップS27)。文字列が矩形領域の中央を跨ぐ場合(ステップS27;YES)、CPU11は、ステップS24で認識された文字列(文字)が「年月」又は「年月日」であるか否かを判別する(ステップS28)。文字列が「年月」又は「年月日」である場合(ステップS28;YES)、CPU11は、ステップS23で作成された項目詳細情報43の項目区分432に「出力項目」を設定する(ステップS29)。ステップS29では、例えば、
図4の背景画像F1において、「年月日」を含む矩形領域R11、文字「%」が右端に存在する矩形領域R111が、出力項目に設定される。なお、ここでは、番号が左端に存在する矩形領域R6,R19,R32,R45,R58,R71,R84は、左端の番号が小さく読み取られていないものとして出力項目に設定されるものとするが、仮に左端の番号が文字として扱われるとした場合にも出力項目に設定される。文字列が矩形領域の中央を跨がない場合(ステップS27;NO)、ステップS29に移行される。文字列が「年月」又は「年月日」でない場合(ステップS28;NO)、CPU11は、ステップS23で作成された項目詳細情報43の項目区分432に「名称項目」を設定する(ステップS30)。
【0055】
ステップS29又はS30の後、CPU11は、取得中の矩形領域情報の領域22の左端、上端、右端、下端の値を、ステップS23で作成された項目詳細情報43の領域433に設定する(ステップS31)。そして、CPU11は、ステップS31で設定された領域433の上端及び下端が、後述するステップS38でRAMに記憶された一つ前に取得された矩形領域情報の上端及び下端と一致するか否かを判別する(ステップS32)。初めてステップS32が実行される場合には、RAM13に一つ前に取得された矩形領域情報が記憶されていない。
【0056】
上端及び下端が一致しない場合(ステップS32;NO)、取得中及び一つ前に取得された矩形領域情報が異なる項目グループであり、又は取得中の矩形領域情報が新規な項目グループであり、CPU11は、新規の項目グループ情報を作成し、当該項目グループ情報の項目詳細情報アドレス42を設定し、ステップS23で作成された項目詳細情報43に関連付けて記憶部15に記憶する(ステップS33)。
【0057】
そして、CPU11は、矩形項目情報40がないか否かを判別する(ステップS34)。矩形項目情報40がない場合(ステップS34;YES)、CPU11は、矩形項目情報40を作成し、作成した矩形項目情報40に、ステップS33で作成された項目グループ情報の項目グループ情報アドレス41を設定し、ステップS33で作成された項目詳細情報アドレス42に関連付けて記憶部15に記憶する(ステップS35)。
【0058】
矩形項目情報40がある場合(ステップS34;NO)、CPU11は、既存の矩形項目情報40を拡張して、ステップS33で作成された項目グループ情報の項目グループ情報アドレス41を設定し、ステップS33で作成された項目詳細情報アドレス42に関連付けて記憶部15に記憶する(ステップS36)。
【0059】
上端及び下端が一致する場合(ステップS32;YES)、取得中及び一つ前に取得された矩形領域情報が同じ項目グループであり、CPU11は、ステップS33で作成された既存の項目グループ情報を拡張し、当該項目グループ情報の項目詳細情報アドレス42を設定し、ステップS23で作成された項目詳細情報43と、ステップS35又はS36で設定された項目グループ情報アドレス41と、に関連付けて記憶部15に記憶する(ステップS37)。
【0060】
ステップS35,S36又はS37の実行後、CPU11は、ステップS31で設定された取得中の矩形領域情報に対応する項目詳細情報43の領域433をRAM13に記憶する(ステップS38)。そして、CPU11は、矩形領域テーブル20から次のレコードを矩形領域情報として取得し(ステップS39)、ステップS22に移行する。
【0061】
次に、
図11〜
図18を参照して、帳票フォーム情報作成処理を説明する。帳票フォーム情報作成処理は、矩形項目情報作成処理で作成された矩形項目情報40から、帳票の帳票フォーム情報50を作成する処理である。予め、矩形項目情報作成処理が実行され、帳票フォーム情報50を作成する対象の帳票の矩形項目情報40が記憶部15に記憶されているものとする。
【0062】
帳票管理装置10において、例えば、操作部12を介してユーザから帳票フォーム情報作成処理の実行指示が入力されたことをトリガとして、CPU11は、記憶部15から読み出されて適宜RAM13に展開された帳票管理制御プログラムPの一部との協働により、帳票フォーム情報作成処理を実行する。
【0063】
図11に示すように、先ず、CPU11は、記憶部15に記憶された矩形項目情報40から先頭の項目グループ情報アドレス41に対応する情報を項目グループ情報g1として取得する(ステップS41)。そして、CPU11は、ステップS41,S48又はS50で取得された項目グループ情報g1があるか否かを判別する(ステップS42)。項目グループ情報g1がない場合(ステップS42;NO)、帳票フォーム情報作成処理が終了する。
【0064】
項目グループ情報g1がある場合(ステップS42;YES)、CPU11は、矩形項目情報40から項目グループ情報g1の次の項目グループ情報アドレス41に対応する情報を項目グループ情報g2として取得する(ステップS43)。そして、CPU11は、ステップS43で取得された項目グループ情報g2があるか否かを判別する(ステップS44)。項目グループ情報g2がある場合(ステップS44;YES)、CPU11は、同一項目グループ検出処理を実行する(ステップS45)。
【0065】
ここで、
図12を参照して、ステップS45の同一項目グループ検出処理を説明する。先ず、CPU11は、取得中の項目グループ情報g1,g2が同一の構成(項目区分、領域(X軸方向の左端、右端の各辺の座標))であるか否かを示す同一構成フラグを「真(同一構成である)」に設定する(ステップS61)。そして、CPU11は、取得中の項目グループ情報g1の先頭の項目詳細情報43を項目詳細情報d1として取得する(ステップS62)。そして、CPU11は、取得中の項目グループ情報g2の先頭の項目詳細情報43を項目詳細情報d2として取得する(ステップS63)。
【0066】
そして、CPU11は、ステップS62又はS67で取得された項目詳細情報d1と、ステップS63又はS68で取得された項目詳細情報d2と、の両方があるか否かを判別する(ステップS64)。項目詳細情報d1,d2がない場合(ステップS64;NO)、同一項目グループ検出処理が終了する。項目詳細情報d1,d2がある場合(ステップS64;YES)、CPU11は、取得中の項目詳細情報d1,d2の項目区分432が同じであるか否かを判別する(ステップS65)。
【0067】
項目区分432が同じである場合(ステップS65;YES)、CPU11は、取得中の項目詳細情報d1,d2の領域433の左端及び右端が同じであるか否かを判別する(ステップS66)。左端及び右端が同じである場合(ステップS66;YES)、CPU11は、取得中の項目グループ情報g1の次の項目詳細情報43を項目詳細情報d1として取得する(ステップS67)。そして、CPU11は、取得中の項目グループ情報g2の次の項目詳細情報43を項目詳細情報d2として取得し(ステップS68)、ステップS64に移行する。
【0068】
項目区分432が異なる場合(ステップS65;NO)、又は左端及び右端が同じでない場合(ステップS66;NO)、CPU11は、項目グループ情報g1,g2の同一構成フラグを「偽(同一構成でない)」に設定し(ステップS69)、同一項目グループ検出処理を終了する。
【0069】
同一項目グループ検出処理により、例えば、
図7の帳票の背景画像F1における繰返領域RP1と同一の項目区分、形状及び位置の矩形領域からなる領域(矩形領域R19〜R31)の項目グループ情報の同一構成フラグが「真」に設定される。
【0070】
図11に戻り、ステップS45の実行後、CPU11は、ステップS45で設定された同一構成フラグが「真」であるか否かを判別する(ステップS46)。同一構成フラグが「偽」である場合(ステップS46;NO)、CPU11は、項目情報追加処理を実行する(ステップS47)。
【0071】
ここで、
図13を参照して、ステップS47の項目情報追加処理を説明する。
図13に示すように、先ず、CPU11は、取得中の項目グループ情報g1の先頭の項目詳細情報43を項目詳細情報d3として取得する(ステップS71)。そして、CPU11は、ステップS71又はS75で取得された項目詳細情報d3があるか否かを判別する(ステップS72)。項目詳細情報d3がない場合(ステップS72;NO)、項目情報追加処理が終了する。
【0072】
項目詳細情報d3がある場合(ステップS72;YES)、CPU11は、項目詳細情報d3の項目区分432を判別する(ステップS73)。項目区分432が「名称項目」である場合(ステップS73;名称項目)、CPU11は、名称項目の文字列をRAM13に記憶する(ステップS74)。そして、CPU11は、取得中の項目グループ情報g1の次の項目詳細情報43を項目詳細情報d3として取得し(ステップS75)、ステップS72に移行する。
【0073】
項目区分432が「出力項目」である場合(ステップS73;出力項目)、CPU11は、項目詳細情報53としての項目詳細情報e1を作成し、取得中の項目詳細情報d3の領域433の左端、上端及び下端を項目詳細情報e1の領域533の左端、上端及び下端に設定する(ステップS76)。
【0074】
そして、CPU11は、取得中の項目詳細情報d3の文字列431に文字列があるか否かを判別する(ステップS77)。文字列431に文字列がない場合(ステップS77;NO)、CPU11は、取得中の項目詳細情報d3の領域433の右端を、ステップS76で作成された項目詳細情報e1の領域533の右端に設定する(ステップS78)。
【0075】
そして、CPU11は、項目情報アドレス51及び項目詳細情報アドレス52を設定し、項目情報アドレス51、項目詳細情報アドレス52、項目詳細情報e1を関連付けて帳票フォーム情報50の項目情報50Aとして記憶部15に記憶する(ステップS79)。ステップS79において、例えば、項目情報アドレス51は、項目詳細情報アドレス52の先頭レコードのアドレスに設定される。ステップS79において、帳票フォーム情報50(及び項目情報アドレス51)が既に記憶部15に記憶されている場合に、記憶されている帳票フォーム情報50(及び項目情報アドレス51)に、項目詳細情報アドレス52及び項目詳細情報e1が追加される。
【0076】
そして、CPU11は、ステップS74でRAM13に名称項目の文字列が記憶されているか否かを判別する(ステップS80)。名称項目の文字列が記憶されていない場合(ステップS80;YES)、CPU11は、RAM13に記憶されている名称項目の文字列を、記憶部15の帳票フォーム情報50の項目詳細情報e1の項目名531に設定し、項目種532に「文字」を設定する(ステップS81)。
【0077】
そして、CPU11は、RAM13に記憶されている名称項目の文字列を削除し(ステップS82)、ステップS75に移行する。名称項目の文字列が記憶されていない場合(ステップS80;NO)、ステップS82に移行される。文字列431に文字列がある場合(ステップS77;YES)、CPU11は、領域分割処理を実行し(ステップS83)、ステップS82に移行する。
【0078】
ここで、
図14を参照して、ステップS83の領域分割処理を説明する。
図14に示すように、先ず、CPU11は、取得中の詳細項目情報d3の文字列431、領域433を用いて、記憶部15に記憶された帳票の背景画像データを画像解析し、文字列431の各文字のみの矩形領域を文字抽出情報として取得して文字抽出テーブル60を作成して記憶部15に記憶する(ステップS91)。ステップS91において、画像解析により取得された文字列431の各文字が文字61に設定され、各文字の矩形領域の左端、上端、右端、下端の各辺の座標の値が領域62に設定される。例えば、
図8の文字抽出テーブル60は、
図4の帳票の背景画像F1の矩形領域R116が画像解析されて作成されたものである。
【0079】
そして、CPU11は、文字抽出テーブル60から先頭のレコードを文字抽出情報として取得する(ステップS92)。そして、CPU11は、ステップS92又はS101で取得された文字抽出情報があるか否かを判別する(ステップS93)。文字抽出情報がある場合(ステップS93;YES)、CPU11は、ステップS76で作成された項目詳細情報e1の領域533の右端に、取得中の文字抽出情報の領域62の左端を設定する(ステップS94)。
【0080】
そして、CPU11は、ステップS74でRAM13に名称項目の文字列が記憶されているか否かを判別する(ステップS95)。名称項目の文字列が記憶されている場合(ステップS95;YES)、CPU11は、RAM13に記憶されている名称項目の文字列を項目詳細情報e1の項目名531に設定し、項目種532に「文字」を設定する(ステップS96)。名称項目の文字列が記憶されていない場合(ステップS95;NO)、CPU11は、取得中の文字抽出情報の文字61を項目詳細情報e1の項目名531に設定し、項目種532に「文字」を設定する(ステップS97)。
【0081】
ステップS96又はS97の実行後、CPU11は、RAM13に記憶されている名称項目の文字列を削除する(ステップS98)。そして、ステップS79と同様に、CPU11は、項目情報アドレス51及び項目詳細情報アドレス52を設定し、項目情報アドレス51、項目詳細情報アドレス52、項目詳細情報e1を関連付けて帳票フォーム情報50の項目情報50Aとして記憶部15に記憶する(ステップS99)。
【0082】
そして、CPU11は、項目詳細情報53としての次の項目詳細情報e1を作成し、取得中の文字抽出情報の右端を項目詳細情報e1の領域533の左端に設定し、取得中の項目詳細情報d3の領域433の上端及び下端を項目詳細情報e1の領域533の上端及び下端に設定する(ステップS100)。そして、CPU11は、文字抽出テーブル60から次のレコードを文字抽出情報として取得し(ステップS101)、ステップS93に移行する。
【0083】
文字抽出情報がない場合(ステップS93;NO)、CPU11は、ステップS76又はS100で作成された項目詳細情報e1を削除し(ステップS102)、領域分割処理を終了する。
【0084】
領域分割処理により、例えば、
図4の帳票の背景画像F1における矩形領域R116が、
図7の帳票の背景画像F1の帳票フォームにおける「年」「月」「日」を除く出力項目T1〜T3の矩形領域に分割される。また、文字「%」が右端に存在する矩形領域R111は、帳票の背景画像F1の帳票フォームにおける「%」を除く出力項目T17の矩形領域に設定される。
【0085】
また、項目情報追加処理により、例えば、
図7の帳票の背景画像F1の帳票フォームにおける出力項目T1〜T5,T17〜T19に対応する項目情報(項目情報アドレス51、項目詳細情報アドレス52(項目詳細情報D1アドレス〜項目詳細情報D5アドレス、項目詳細情報D17アドレス〜項目詳細情報D19アドレス)、項目詳細情報53)が帳票フォーム情報50に追加される。
【0086】
図11に戻り、ステップS47の実行後、CPU11は、矩形項目情報40から次の項目グループ情報アドレス41に対応する情報を項目グループ情報g1として取得し(ステップS48)、ステップS42に移行する。同一構成フラグが「真」である場合(ステップS46;YES)、CPU11は、明細情報追加処理を実行する(ステップS49)。
【0087】
ここで、
図15を参照して、ステップS49の明細情報追加処理を説明する。
図15に示すように、先ず、CPU11は、矩形項目情報40から取得中の項目グループ情報g1の1つ前の項目グループ情報アドレス41に対応する情報を項目グループ情報g3として取得する(ステップS111)。
【0088】
そして、CPU11は、項目グループ情報g3から先頭の項目詳細情報43を項目詳細情報d4として取得する(ステップS112)。そして、CPU11は、ステップS112で取得した項目詳細情報d4の項目区分432が「名称項目」であるか否かを判別する(ステップS113)。項目区分432が「名称項目」である場合(ステップS113;YES)、CPU11は、項目グループ情報g3を明細名称項目グループ情報として設定する(ステップS114)。
【0089】
そして、CPU11は、帳票フォーム情報50の明細情報アドレス54を設定し、空の明細情報55を設定し、明細情報55を明細情報アドレス54に関連付けて記憶部15に記憶する(ステップS115)。そして、CPU11は、取得中の項目グループ情報g1の先頭の項目詳細情報43を項目詳細情報d5として取得する(ステップS116)。
【0090】
そして、CPU11は、ステップS115で作成された明細情報55の繰返領域552の左端、上端、下端に、取得中の項目詳細情報d5の左端、上端、下端を設定する(ステップS117)。そして、CPU11は、取得中の項目グループ情報g1の最後の項目詳細情報43を項目詳細情報d6として取得する(ステップS118)。そして、CPU11は、ステップS115で作成された明細情報55の繰返領域552の右端に、取得中の項目詳細情報d6の右端を設定する(ステップS119)。
【0091】
そして、CPU11は、ステップS115で作成された明細情報55の明細領域551の左端、上端、右端に、ステップS117,S119で設定された繰返領域552の左端、上端、右端を設定する(ステップS120)。そして、CPU11は、ステップS115で作成された明細情報55の移動量553に、取得中の項目詳細情報d6の下端−上端を算出して設定する(ステップS121)。そして、CPU11は、明細項目追加処理を実行する(ステップS122)。
【0092】
ここで、
図16を参照して、ステップS122の明細項目追加処理を説明する。
図16に示すように、先ず、CPU11は、ステップS114で設定された明細名称項目グループ情報があるか否かを判別する(ステップS131)。明細名称項目グループ情報がない場合(ステップS131;NO)、CPU11は、記憶部15に記憶されている帳票フォーム情報50の明細情報50Bの項目詳細情報57としての項目詳細情報e2を作成し、取得中の項目グループ情報g1の項目詳細情報43の全内容を、項目詳細情報e2の項目詳細情報57に設定し、項目詳細情報アドレス56を設定し、項目情報アドレス554、項目詳細情報アドレス56、項目詳細情報e2を関連付けて記憶部15の帳票フォーム情報50の明細情報50Bに記憶し(ステップS132)、明細項目追加処理を終了する。
【0093】
明細名称項目グループ情報がある場合(ステップS131;YES)、CPU11は、明細名称項目グループ情報の先頭の項目詳細情報43を項目詳細情報d7として取得する(ステップS133)。そして、CPU11は、取得中の項目グループ情報g1の先頭の項目詳細情報43を項目詳細情報d8として取得する(ステップS134)。
【0094】
そして、CPU11は、ステップS133又はS153で取得された項目詳細情報d7と、ステップS134又はS154で取得された項目詳細情報d8と、の両方があるか否かを判別する(ステップS135)。項目詳細情報d7,d8がない場合(ステップS135;NO)、明細項目追加処理が終了する。項目詳細情報d7,d8がある場合(ステップS135;YES)、CPU11は、記憶部15に記憶されている帳票フォーム情報50の明細情報50Bの項目詳細情報57としての項目詳細情報e2を作成し、取得中の項目詳細情報d8の領域433の左端、上端、下端を、項目詳細情報e2の領域573の左端、上端、下端に設定し、項目詳細情報アドレス56を設定し、項目情報アドレス554、項目詳細情報アドレス56、項目詳細情報e2を関連付けて記憶部15の帳票フォーム情報50の明細情報50Bに記憶する(ステップS136)。
【0095】
そして、CPU11は、変数countに1を設定する(ステップS137)。そして、CPU11は、項目詳細情報d7の領域433の右端が、項目詳細情報d8の領域433の右端よりも大きいか否かを判別する(ステップS138)。項目詳細情報d7の右端が項目詳細情報d8の右端よりも大きい場合(ステップS138;YES)、CPU11は、ステップS140でRAM13に項目詳細情報d8の領域433の幅が記憶されていない、又はRAM13に記憶されている幅と取得中の項目詳細情報d8の領域433のX軸方向の幅とが同じか否かを判別する(ステップS139)。
【0096】
RAM13に幅が記憶されていない又は幅が同じである場合(ステップS139;YES)、CPU11は、取得中の項目詳細情報d8の領域433の右端−左端を算出してRAM13に記憶する(ステップS140)。そして、CPU11は、取得中の項目グループ情報g1の次の項目詳細情報43を項目詳細情報d8として取得し(ステップS141)、ステップS138に移行する。
【0097】
RAM13に幅が記憶されており幅が同じでない場合(ステップS139;YES)、CPU11は、ステップS136又はS145で作成された項目詳細情報e2の領域573の右端に、取得中の項目詳細情報d8の領域433の左端を設定する(ステップS142)。そして、CPU11は、ステップS142で右端が設定された項目詳細情報e2の項目名571に、取得中の項目詳細情報d7の文字列431に変数countを付加した情報を設定する(ステップS143)。
【0098】
そして、CPU11は、変数countを1増加する(ステップS144)。そして、CPU11は、記憶部15に記憶されている帳票フォーム情報50の明細情報50Bの項目詳細情報57としての項目詳細情報e2を作成し、取得中の項目詳細情報d8の領域433の左端、上端、下端を、項目詳細情報e2の領域573の左端、上端、下端に設定し、項目詳細情報アドレス56を設定し、項目情報アドレス554、項目詳細情報アドレス56、項目詳細情報e2を関連付けて記憶部15の帳票フォーム情報50の明細情報50Bに記憶する(ステップS145)。そして、CPU11は、取得中の項目グループ情報g1の次の項目詳細情報43を項目詳細情報d8として取得し(ステップS146)、ステップS138に移行する。
【0099】
項目詳細情報d7の右端が項目詳細情報d8の右端以下の場合(ステップS138;NO)、CPU11は、ステップS140でRAM13に項目詳細情報d8の領域433の幅が記憶されているか否かを判別する(ステップS147)。RAM13に幅が記憶されている場合(ステップS147;YES)、CPU11は、ステップS136又はS145で作成された項目詳細情報e2の領域573の右端に、取得中の項目詳細情報d8の領域433の左端を設定する(ステップS148)。
【0100】
そして、CPU11は、ステップS148で右端が設定された項目詳細情報e2の項目名571に、取得中の項目詳細情報d7の文字列431に変数countを付加した情報を設定する(ステップS149)。そして、CPU11は、変数countを1増加する(ステップS150)。
【0101】
そして、CPU11は、記憶部15に記憶されている帳票フォーム情報50の項目情報の項目詳細情報57としての項目詳細情報e2を作成し、取得中の項目詳細情報d8の領域433を、項目詳細情報e2の領域573に設定し、項目詳細情報アドレス56を設定し、項目情報アドレス554、項目詳細情報アドレス56、項目詳細情報e2を関連付けて記憶部15の帳票フォーム情報50の明細情報50Bに記憶する(ステップS151)。そして、CPU11は、ステップS151で領域573が設定された項目詳細情報e2の項目名571に、取得中の項目詳細情報d7の文字列431に変数countを付加した情報を設定する(ステップS152)。
【0102】
そして、CPU11は、明細名称項目グループ情報の次の項目詳細情報43を項目詳細情報d7として取得する(ステップS153)。そして、CPU11は、取得中の項目グループ情報g1の次の項目詳細情報43を項目詳細情報d8として取得し(ステップS154)、ステップS138に移行する。
【0103】
RAM13に幅が記憶されていない場合(ステップS147;NO)、CPU11は、ステップS136で作成された項目詳細情報e2の領域573の右端に、取得中の項目詳細情報d8の領域433の右端を設定する(ステップS155)。そして、CPU11は、ステップS155で領域573の右端が設定された項目詳細情報e2の項目名571に、取得中の項目詳細情報d7の文字列431を設定し(ステップS156)、ステップS153に移行する。
【0104】
明細情報追加処理により、例えば、
図7の帳票の背景画像F1の帳票フォームにおける明細領域SP1及び繰返領域RP1(出力項目T6〜T11)に対応する明細情報50B(明細情報アドレス54、明細情報55、項目詳細情報アドレス56(項目詳細情報D6アドレス〜項目詳細情報D11アドレス)、項目詳細情報57)が帳票フォーム情報50に追加される。また、明細情報追加処理により、矩形領域R9〜R16は、出力項目T9に統合される。
【0105】
図15に戻り、ステップS122の実行後、CPU11は、ステップS45と同様の同一項目グループ検出処理を実行する(ステップS123)。そして、CPU11は、ステップS123で設定された同一構成フラグが「真」であるか否かを判別する(ステップS124)。同一構成フラグが「真」である場合(ステップS124;YES)、CPU11は、ステップS115で作成された明細情報55の明細領域551の下端に、取得中の項目グループ情報g2の項目詳細情報43の領域433の下端を設定する(ステップS125)。
【0106】
そして、CPU11は、矩形項目情報40の取得中の項目グループ情報g2の次の項目グループ情報アドレス41に対応する情報を項目グループ情報g2として取得し(ステップS126)、ステップS123に移行する。同一構成フラグが「真」である場合(ステップS124;YES)、CPU11は、類似項目グループ検出処理を実行する(ステップS127)。
【0107】
ここで、
図17を参照して、ステップS127の類似項目グループ検出処理を説明する。
図17に示すように、先ず、CPU11は、取得中の項目グループ情報g1,g2の類似項目フラグを「真(類似である)」に設定する(ステップS161)。そして、CPU11は、取得中の項目グループ情報g1の先頭の項目詳細情報43を項目詳細情報d9として取得する(ステップS162)。そして、CPU11は、取得中の項目グループ情報g2の先頭の項目詳細情報43を項目詳細情報d10として取得する(ステップS163)。
【0108】
そして、CPU11は、ステップS162又はS166で取得された項目詳細情報d9と、ステップS163又はS167で取得された項目詳細情報d10と、の両方があるか否かを判別する(ステップS164)。項目詳細情報d9,d10がない場合(ステップS164;NO)、類似項目グループ検出処理が終了する。項目詳細情報d9,d10がある場合(ステップS164;YES)、CPU11は、取得中の項目詳細情報d9,d10の領域433の左端及び右端が同じであるか否かを判別する(ステップS165)。
【0109】
左端及び右端が同じである場合(ステップS165;YES)、CPU11は、項目グループ情報g1の次の項目詳細情報43を項目詳細情報d9として取得する(ステップS166)。そして、CPU11は、項目グループ情報g2の次の項目詳細情報43を項目詳細情報d10として取得し(ステップS167)、ステップS164に移行する。
【0110】
左端及び右端が異なる場合(ステップS165;NO)、CPU11は、取得中の項目グループ情報g1,g2の類似項目フラグを「偽(類似である)」に設定し(ステップS168)、類似項目グループ検出処理を終了する。
【0111】
類似項目グループ検出処理により、例えば、
図7の帳票の背景画像F1における繰返領域RP1と同一の形状及び位置の矩形領域(R98〜R109)からなり異なる項目区分(名称項目)の矩形領域(R97)を含む類似領域AN1の項目グループ情報の同一構成フラグが「真」に設定される。
【0112】
図15に戻り、ステップS127の実行後、CPU11は、ステップS127で設定された類似項目フラグが「真」であるか否かを判別する(ステップS128)。類似項目フラグが「偽」である場合(ステップS128;NO)、類似項目グループ検出処理が終了する。類似項目フラグが「真」である場合(ステップS128;YES)、CPU11は、類似項目追加処理を実行し(ステップS129)、明細情報追加処理を終了する。
【0113】
ここで、
図18を参照して、ステップS171の類似項目追加処理を説明する。
図17に示すように、先ず、CPU11は、記憶部15に記憶されている帳票フォーム情報50の明細情報55の先頭の項目詳細情報57を項目詳細情報d11として取得する(ステップS171)。
【0114】
そして、CPU11は、取得中の項目グループ情報g2の先頭の項目詳細情報43を項目詳細情報d12として取得する(ステップS172)。そして、CPU11は、ステップS171又はS176で取得された項目詳細情報d11と、ステップS172又はS177で取得された項目詳細情報d12と、の両方があるか否かを判別する(ステップS173)。項目詳細情報d11,d12がない場合(ステップS173;NO)、類似項目追加処理が終了する。
【0115】
項目詳細情報d11,d12がある場合(ステップS173;YES)、CPU11は、取得中の項目詳細情報d12の項目区分432が「出力項目」か否かを判別する(ステップS174)。項目区分432が「名称項目」である場合(ステップS174;NO)、CPU11は、取得中の項目詳細情報d12の文字列431をRAM13に記憶する(ステップS175)。
【0116】
そして、CPU11は、記憶部15に記憶されている帳票フォーム情報50の明細情報55の次の項目詳細情報57を項目詳細情報d11として取得する(ステップS176)。そして、CPU11は、取得中の項目グループ情報g2の次の項目詳細情報43を項目詳細情報d12として取得し(ステップS177)、ステップS173に移行する。
【0117】
項目区分432が「出力項目」である場合(ステップS174;YES)、CPU11は、記憶部15に記憶されている帳票フォーム情報50の項目情報50Aの項目詳細情報53としての項目詳細情報e3を作成し、取得中の項目詳細情報d12の領域433の左端、上端及び下端を、項目詳細情報e3の領域533の左端、上端及び下端に設定する(ステップS178)。
【0118】
そして、CPU11は、取得中の項目詳細情報d12の領域433の右端が、取得中の項目詳細情報d11の領域573の右端より小さいか否かを判別する(ステップS179)。項目詳細情報d12の右端が項目詳細情報d11の右端よりも小さい場合(ステップS179;YES)、CPU11は、取得中の項目グループ情報g2の次の項目詳細情報43を項目詳細情報d12として取得し(ステップS180)、ステップS179に移行する。
【0119】
項目詳細情報d12の右端が項目詳細情報d11の右端以上の場合(ステップS179;NO)、CPU11は、取得中の項目詳細情報d12の領域433の右端を項目詳細情報e3の領域533の右端に設定する(ステップS181)。そして、CPU11は、ステップS175でRAM13に名称項目の文字列が記憶されているか否かを判別する(ステップS182)。
【0120】
名称項目の文字列が記憶されている場合(ステップS182;YES)、CPU11は、(取得中の項目詳細情報d11の項目名571)+(RAM13に記憶されている名称項目の文字列)を項目詳細情報e3の項目名531に設定し、項目種532に「文字」を設定する(ステップS183)。
【0121】
名称項目の文字列が記憶されていない場合(ステップS182;NO)、CPU11は、取得中の項目詳細情報d11の項目名571を項目詳細情報e3の項目名531に設定し、項目種532に「文字」を設定する(ステップS184)。そして、CPU11は、項目詳細情報アドレス52を設定し、項目情報アドレス51、項目詳細情報アドレス52、項目詳細情報e3を関連付けて記憶部15の帳票フォーム情報50に記憶し(ステップS185)、ステップS176に移行する。
【0122】
類似項目追加処理により、例えば、
図7の帳票の背景画像F1の帳票フォームにおける類似領域AN1(出力項目T12〜T16)に対応する項目情報50A(項目情報アドレス51、項目詳細情報アドレス52(項目詳細情報D12アドレス〜項目詳細情報D16アドレス)、項目詳細情報53)が帳票フォーム情報50に追加される。また、類似項目追加処理により、矩形領域R100〜R107は、出力項目T14に統合されている。
【0123】
図11に戻り、ステップS49の実行後、CPU11は、矩形項目情報40から明細情報追加処理で最後に取得(参照)した項目グループ情報g2の次の項目グループ情報アドレス41に対応する情報を項目グループ情報g2として取得し(ステップS50)、ステップS42に移行する。項目グループ情報g2がない場合(ステップS44;NO)、CPU11は、ステップS47と同様に項目情報追加処理を実行し(ステップS51)、帳票フォーム作成処理を終了する。
【0124】
帳票フォーム情報50が作成されて記憶部15に記憶された後、帳票管理装置10は、帳票フォーム情報50を用いて、帳票のデータ入力を受け付ける。例えば、帳票管理装置10のCPU11は、帳票フォーム情報50を用いて、
図7に示すような帳票の背景画像F1上に、出力項目、明細領域及び繰返領域を情報記入欄として配置して表示部14に表示し、操作部12を介して、ユーザからの、出力項目のデータと、明細領域における繰り返し数分の繰返領域のデータとの入力を受け付け、当該入力されたデータを帳票データとして記憶部15に記憶する。
【0125】
あるいは、出力項目、明細領域及び繰返領域に対応するデータが予め記憶部15に記憶又は通信部16を介して通信接続された外部機器(データベースサーバなど)に記憶されている場合に、帳票管理装置10のCPU11は、当該データを記憶部15又は外部機器から取得し、帳票フォーム情報50を用いて、帳票の出力項目のデータと、明細領域の繰り返し数分の繰返領域のデータとに変換し、当該変換されたデータを帳票データとして記憶部15に記憶する。そして、帳票管理装置10のCPU11は、印刷部18により、入力された帳票データを、背景画像が印刷された帳票の用紙の各情報記入欄に印刷して、帳票データが印刷された帳票を作成する。
【0126】
以上、本実施の形態によれば、帳票管理装置10のCPU11は、帳票の画像データから、矩形領域からなる情報記入欄がX軸方向に複数配置された繰返領域RP1が、Y軸方向に繰り返し並んだ明細領域SP1を検出し、検出された明細領域SP1における各情報記入欄に対応するデータ入力の設定をするための明細情報50Bを作成する。また、CPU11は、帳票の画像データから、各矩形領域の並びが繰返領域RP1に類似する領域であって、少なくとも1つの矩形領域が名称項目である類似領域AN1を検出し、検出された類似領域における各情報記入欄に対応するデータ入力の設定をするための項目情報50Aを作成する。
【0127】
このため、帳票の情報記入欄に対応するデータを入力するための入力設定情報としての帳票フォーム情報50(明細情報50B及び項目情報50A)を容易に作成できる。
【0128】
また、CPU11は、繰返領域RP1の情報記入欄(矩形領域)ごとの第1の項目名を有する明細情報50Bを作成する。CPU11は、類似領域AR1において出力項目の情報記入欄ごとに、類似領域AR1の名称項目の第2の項目名と、第1の項目名と、を含む第3の項目名を設定して項目情報50Aを作成する。このため、類似領域AR1の第3の項目名により、類似領域AR1に対応する繰返領域RP1の第1の項目名と、類似領域AR1の名称項目の第2の項目名と、の関連付けを表すことができる。
【0129】
また、CPU11は、繰返領域RP1においてX軸方向に並んだ複数の情報記入欄(出力項目T9,T10)が同じ第1の項目名に対応する場合に、複数の情報記入欄のそれぞれに、第1の項目名を含みかつ互いに識別可能な識別番号(1,2)を付した第4の項目名を設定して明細情報50Bを作成する。CPU11は、繰返領域RP1の第4の項目名が設定された情報記入欄に対応する類似領域AR1の情報記入欄(出力項目T14,T15)に第4の項目名を含む項目名を設定して項目情報50Aを作成する。このため、繰返領域RP1(明細領域SP1)及び類似領域AR1の第4の項目名により、同じ第1の項目名に対応する異なる情報記入欄(出力項目)を互いに識別可能に設定できる。
【0130】
また、CPU11は、明細領域SP1の上に位置する名称項目の矩形領域(R1〜R5)から第1の項目名を取得する。このため、繰返領域RP1(明細領域SP1)の各情報記入欄の第1の項目名を容易に取得できる。
【0131】
また、CPU11は、繰返領域RP1においてX軸方向に同じ幅の複数の情報記入欄が連続して並ぶ場合に、当該複数の情報記入欄(矩形領域R1〜R16)を1つの情報記入欄(出力項目T9)に統合して明細情報50Bを作成する。CPU11は、繰返領域RP1の統合された情報記入欄に対応する類似領域AN1の複数の情報記入欄(矩形領域R100〜R107)を1つの情報記入欄(出力項目T14)に統合して項目情報50Aを作成する。このため、金額の複数の桁などの情報記入欄において、金額などのデータ入力を容易にできる。
【0132】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として記憶部15のHDD、SSDを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリや、CD−ROMなどの可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【0133】
なお、上記実施の形態における記述は、本発明に係る帳票管理装置及びプログラムの一例であり、これに限定されるものではない。
【0134】
例えば、上記実施の形態では、矩形情報追加処理、矩形項目情報作成処理、帳票フォーム情報作成処理などの処理を帳票管理装置10で実行する構成としたが、これに限定されるものではない。例えば、帳票管理装置10などの端末装置が通信部16を介してサーバに接続され、端末装置でスキャナ部17によりスキャンされた帳票の背景画像データがサーバに送信され、サーバが、矩形情報追加処理、矩形項目情報作成処理、帳票フォーム情報作成処理などの処理を実行し、作成した帳票フォーム情報を端末装置に提供する構成としてもよい。
【0135】
また、上記実施の形態における帳票管理装置10の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【0136】
本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
〔付記〕
<請求項1>
帳票の画像データから、矩形領域からなる情報記入欄が第1の所定方向に複数配置された繰返領域が、第2の所定方向に繰り返し並んだ明細領域を検出する明細領域検出手段と、
前記検出された明細領域における各情報記入欄に対応するデータ入力の設定をするための明細領域入力設定情報を作成する第1の作成手段と、
前記帳票の画像データから、各矩形領域の並びが前記繰返領域に類似する領域であって、少なくとも1つの矩形領域が項目名称欄である類似領域を検出する類似領域検出手段と、
前記検出された類似領域における各情報記入欄に対応するデータ入力の設定をするための類似領域入力設定情報を作成する第2の作成手段と、を備える帳票管理装置。
<請求項2>
前記第1の作成手段は、前記繰返領域の情報記入欄ごとの第1の項目名を有する明細領域入力設定情報を作成し、
前記第2の作成手段は、前記類似領域において情報記入欄ごとに、当該類似領域の項目名称欄の第2の項目名と、前記第1の項目名と、を含む第3の項目名を設定して前記類似領域入力設定情報を作成する請求項1に記載の帳票管理装置。
<請求項3>
前記第1の作成手段は、前記繰返領域において前記第1の所定方向に並んだ複数の情報記入欄が同じ第1の項目名に対応する場合に、当該複数の情報記入欄のそれぞれに、当該第1の項目名を含みかつ互いに識別可能な第4の項目名を設定して前記明細領域入力設定情報を作成し、
前記第2の作成手段は、前記繰返領域の前記第4の項目名が設定された情報記入欄に対応する前記類似領域の情報記入欄に当該第4の項目名を含む項目名を設定して前記類似領域入力設定情報を作成する請求項1又は2に記載の帳票管理装置。
<請求項4>
前記第1の作成手段は、前記明細領域の上に位置する項目名称欄の矩形領域から前記第1の項目名を取得する請求項3に記載の帳票管理装置。
<請求項5>
前記第1の作成手段は、前記繰返領域において前記第1の所定方向に同じ幅の複数の情報記入欄が連続して並ぶ場合に、当該複数の情報記入欄を1つの情報記入欄に統合して前記明細領域入力設定情報を作成し、
前記第2の作成手段は、前記繰返領域の統合された情報記入欄に対応する前記類似領域の複数の情報記入欄を1つの情報記入欄に統合して前記類似領域入力設定情報を作成する請求項1から4のいずれか一項に記載の帳票管理装置。
<請求項6>
コンピュータを、
帳票の画像データから、矩形領域からなる情報記入欄が第1の所定方向に複数配置された繰返領域が、第2の所定方向に繰り返し並んだ明細領域を検出する明細領域検出手段、
前記検出された明細領域における各情報記入欄に対応するデータ入力の設定をするための明細領域入力設定情報を作成する第1の作成手段、
前記帳票の画像データから、各矩形領域の並びが前記繰返領域に類似する領域であって、少なくとも1つの矩形領域が項目名称欄である類似領域を検出する類似領域検出手段、
前記検出された類似領域における各情報記入欄に対応するデータ入力の設定をするための類似領域入力設定情報を作成する第2の作成手段、
として機能させるためのプログラム。