(57)【要約】【課題】同一レイアウトの複数の帳票ファイルを用いて可変の文字領域を特定すること。【解決手段】情報処理装置１０１は、ユーザから指示された同一レイアウトの複数の帳票ファイルを読み込む。そして読み込んだ複数の帳票ファイルが持つ共通の領域を比較し、同一の文字列が格納されているか否かを判定する。同一の文字列が格納されている場合には、当該領域を固定領域として決定し、そうでない場合、つまり異なる文字列が格納されている場合には、当該領域を可変領域として決定する。【選択図】図１
2016004394.tif 000002
【特許請求の範囲】
【請求項１】
同一のレイアウトを持ち、異なるデータが挿入される複数の帳票ファイルを取得する帳票ファイル取得手段と、
前記帳票ファイル取得手段で取得した複数の帳票ファイル同士を比較する帳票ファイル比較手段と、
前記帳票ファイル比較手段で比較した結果、複数の帳票ファイルに共通する領域にそれぞれ異なる文字列が存在する場合には当該文字列を含む領域を可変領域として決定し、複数の帳票ファイルに共通する領域にそれぞれ同じ文字列が存在する場合には当該文字列を含む領域を固定領域として決定する決定手段と、
前記決定手段で決定された結果を用いて帳票ファイルを生成するためのフォームファイルを生成するフォームファイル生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記フォームファイル生成手段は、前記決定手段で可変領域として決定された領域の文字列のうち、最も文字数の多い文字列を用いてフォームファイルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記フォームファイル生成手段は、所定の帳票作成アプリケーションで利用可能なフォームファイルであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記帳票ファイルは、ＰＤＦ形式のファイルであることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
情報処理装置の帳票ファイル取得手段が、同一のレイアウトを持ち、異なるデータが挿入される複数の帳票ファイルを取得する帳票ファイル取得ステップと、
情報処理装置の帳票ファイル比較手段が、前記帳票ファイル取得ステップで取得した複数の帳票ファイル同士を比較する帳票ファイル比較ステップと、
情報処理装置の決定手段が、前記帳票ファイル比較ステップで比較した結果、複数の帳票ファイルに共通する領域にそれぞれ異なる文字列が存在する場合には当該文字列を含む領域を可変領域として決定し、複数の帳票ファイルに共通する領域にそれぞれ同じ文字列が存在する場合には当該文字列を含む領域を固定領域として決定する決定ステップと、
情報処理装置のフォームファイル生成手段が、前記決定ステップで決定された結果を用いて帳票ファイルを生成するためのフォームファイルを生成するフォームファイル生成ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項６】
情報処理装置の制御方法を実行可能なプログラムであって、
前記情報処理装置を、
同一のレイアウトを持ち、異なるデータが挿入される複数の帳票ファイルを取得する帳票ファイル取得手段と、
前記帳票ファイル取得手段で取得した複数の帳票ファイル同士を比較する帳票ファイル比較手段と、
前記帳票ファイル比較手段で比較した結果、複数の帳票ファイルに共通する領域にそれぞれ異なる文字列が存在する場合には当該文字列を含む領域を可変領域として決定し、複数の帳票ファイルに共通する領域にそれぞれ同じ文字列が存在する場合には当該文字列を含む領域を固定領域として決定する決定手段と、
前記決定手段で決定された結果を用いて帳票ファイルを生成するためのフォームファイルを生成するフォームファイル生成手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一レイアウトの複数の帳票ファイルを用いて可変の文字領域を特定することの可能な情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、見積書や請求書といった紙の帳票を印刷するための元となるデータを作成する帳票作成アプリケーションが存在する。帳票作成アプリケーションでは、フォームファイルと呼ばれる、データの挿入位置や固定文字列の表示位置を定めた定義ファイルを作成し、このフォームファイルに各種データを流し込むことで、帳票ファイルを作成している。
【０００３】
つまり、このフォームファイルを作成しなければ帳票ファイルは生成できない。そのため、従来は紙の帳票を扱っていた企業がこの帳票作成アプリケーションを作成する場合には、紙の帳票を見ながらフォームファイルを作成しなければならない。
【０００４】
また、企業によってはある帳票作成アプリケーションＡから別の帳票作成アプリケーションＢに乗り換える場合がある。この場合、帳票作成アプリケーションＡが生成するフォームファイルを帳票作成アプリケーションＢが認識可能なファイル形式であればよいが、そうでない場合には一からフォームファイルを作成し直さなくてはならない。
【０００５】
そこで下記の特許文献１では、データの流し込まれていない帳票ファイルのイメージデータとデータの流し込まれている帳票ファイルのイメージデータとを従前の帳票作成アプリケーションから出力しておき、このイメージデータの差分を取ることでデータを流し込む位置を特定し、新しい帳票作成アプリケーションのフォームファイルとして保存する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１８２４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、すでに従前の帳票アプリケーションＡのライセンスが切れており、特許文献１のようなデータの流し込まれていない帳票ファイルが出力できない場合には、前述した特許文献１の仕組みを採用することができないという問題がある。
【０００８】
通常、出力した紙の帳票や帳票ファイルとして生成したものがいくつか残っているはずなので、これらを利用して前述したフォームファイルを生成することが望まれている。
【０００９】
そこで本発明の目的は、同一レイアウトの複数の帳票ファイルを用いて可変の文字領域を特定することの可能な仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明の情報処理装置は、同一のレイアウトを持ち、異なるデータが挿入される複数の帳票ファイルを取得する帳票ファイル取得手段と、前記帳票ファイル取得手段で取得した複数の帳票ファイル同士を比較する帳票ファイル比較手段と、前記帳票ファイル比較手段で比較した結果、複数の帳票ファイルに共通する領域にそれぞれ異なる文字列が存在する場合には当該文字列を含む領域を可変領域として決定し、複数の帳票ファイルに共通する領域にそれぞれ同じ文字列が存在する場合には当該文字列を含む領域を固定領域として決定する決定手段と、前記決定手段で決定された結果を用いて帳票ファイルを生成するためのフォームファイルを生成するフォームファイル生成手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、同一レイアウトの複数の帳票ファイルを用いて可変の文字領域を特定することの可能な効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明における情報処理システムのシステム構成の一例を示す図である。
【図２】情報処理装置１０１、帳票作成アプリケーションサーバＡ１０２、帳票作成アプリケーションサーバＢ１０３のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０１の機能構成の一例を示す図である。
【図４】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図５】ステップＳ４０１の詳細な処理を示すフローチャートである。
【図６】帳票作成アプリケーションサーバＡ１０２で生成された１つ目の帳票ファイル６００の概要を示す図である。
【図７】ステップＳ５０７の詳細な処理を示すフローチャートである。
【図８】マスタテーブル８００のテーブル構成の一例を示す図である。
【図９】ステップＳ４０３の詳細な処理を示すフローチャートである。
【図１０】帳票作成アプリケーションサーバＡ１０２で生成された２つ目の帳票ファイル１０００の概要を示す図である。
【図１１】ステップＳ９０７の詳細な処理を示すフローチャートである。
【図１２】ワークテーブル１２００の詳細な処理を示すフローチャートである。
【図１３】ステップＳ４０４の詳細な処理を示すフローチャートである。
【図１４】マスタテーブル格納例８１０とワークテーブル格納例１２１０を用いて可変領域を特定した結果を示す実行結果１４１０の概要を示す図である。
【図１５】ステップＳ４０５の詳細な処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１４】
図１は、本発明の情報処理システムのシステム構成の一例を示す図である。情報処理装置１０１と、帳票作成アプリケーションサーバＡ１０２と、帳票作成アプリケーションサーバＢ１０３とがＬＡＮ１０４（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して、相互にデータ通信可能に接続されている。尚、図１のネットワーク上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１５】
情報処理装置１０１は、パーソナルコンピュータ等の汎用のコンピュータ装置である。本実施形態における情報処理装置１０１は、帳票作成アプリケーションサーバＢ１０３で利用可能なフォームファイルを生成するために、帳票作成アプリケーションサーバＡ１０２で生成された帳票ファイルを複数読み込む。そして、読み込んだ複数の帳票ファイルを用いて帳票作成アプリケーションサーバＢ１０３で利用可能なフォームファイルを生成する。フォームファイルとは、帳票ファイルを作成するためのレイアウトや文字列の配置位置等が定義されたファイルである。このフォームファイルに顧客名や価格等を流し込むことにより、帳票ファイルが生成される。
【００１６】
帳票作成アプリケーションサーバＡ１０２と帳票作成アプリケーションサーバＢ１０３とは、いわゆるサーバ装置である。この２つのサーバは、それぞれ異なる帳票作成アプリケーションがインストールされており、それぞれ異なるフォームファイルを用いて帳票ファイルを生成する。本実施形態では、ユーザが帳票作成アプリケーションサーバＡ１０２から帳票作成アプリケーションサーバＢ１０３に乗り換える場合を想定している。
【００１７】
図２は、本発明の実施形態における情報処理装置１０１、帳票作成アプリケーションサーバＡ１０２、帳票作成アプリケーションサーバＢ１０３のハードウェア構成の一例を示す図である。
【００１８】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１９】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２０】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２１】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイスといった入力デバイス２０９からの入力を制御する。
【００２２】
ビデオコントローラ（ＶＣ）２０６は、ディスプレイ２１０等の表示器への表示を制御する。表示器はＣＲＴや液晶ディスプレイでも構わない。
【００２３】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２４】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２５】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２６】
本発明の各種装置及びサーバが後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２７】
次に、情報処理装置１０１のモジュール構成を示す機能構成図について、図３を用いて説明する。尚、図３の情報処理装置１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００２８】
情報処理装置１０１は機能部として、ＰＤＦファイル取込部３０１、ＰＤＦファイル解析部３０２、テーブル記憶部３０３、テーブル比較部３０４、テーブル更新部３０５、フォームファイル生成部３０６を備える。
【００２９】
ＰＤＦファイル取込部３０１は、帳票作成アプリケーションサーバＡ１０２で生成された同一レイアウトの帳票ファイルを複数取り込むための機能部である。本実施形態の帳票ファイルはＰＤＦファイル形式であるものとして説明するが、これに限らない。画像ファイルであってもよいし、文書ファイルや表計算ファイルであってもよい。
【００３０】
ＰＤＦファイル解析部３０２は、ＰＤＦファイル取込部３０１で取り込んだ帳票ファイルの文字やその位置、大きさ等を解析するための機能部である。ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）や画像認識といった技術を用いて、これらを解析する。
【００３１】
テーブル記憶部３０３は、後述するマスタテーブル８００とワークテーブル１２００を記憶するための機能部である。そして、テーブル比較部３０４は、文字列が可変になっている領域と固定になっている領域とを特定するべく、マスタテーブル８００とワークテーブル１２００とに格納されたデータを比較する機能部である。テーブル更新部３０５は、その結果をマスタテーブル８００に格納するための機能部である。
【００３２】
フォームファイル生成部３０６は、取り込んだ複数の帳票ファイルに対して処理が完了した後に、マスタテーブル８００に格納されている情報を用いて、帳票作成アプリケーションサーバＢ１０３で利用可能なフォームファイルを生成するための機能部である。
【００３３】
次に、本実施形態における一連の処理の流れについて、図４に示すフローチャートを用いて説明する。尚、ステップＳ４０１乃至ステップＳ４０６の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００３４】
まず、ステップＳ４０１では、ユーザから取り込みが指示された複数のＰＤＦファイルのうち、１ファイル目のＰＤＦファイルの文字オブジェクトを取得し、取得した情報をマスタテーブル８００にセットする処理を実行する（帳票ファイル取得手段）。ステップＳ４０１の処理の詳細は、後述する図５に示す。
【００３５】
ステップＳ４０２では、取り込んだすべてのＰＤＦファイルに対してステップＳ４０３乃至ステップＳ４０５の処理を行うまで、当該ステップＳ４０３乃至ステップＳ４０５を繰り返し実行する。すべてのＰＤＦファイルに対して処理が実行できたら、ステップＳ４０６に処理を進める。
【００３６】
ステップＳ４０３では、未処理のＰＤＦファイルの文字オブジェクトを取得し、取得した情報をワークテーブルにセットする処理を実行する（帳票ファイル取得手段）。ステップＳ４０３の処理の詳細は、後述する図９に示す。
【００３７】
ステップＳ４０４では、マスタテーブル８００とワークテーブル１２００の各レコードを比較し、相違点を記録していく処理を実行する（帳票ファイル比較手段）。ステップＳ４０４の処理の詳細は、後述する図１３に示す。
【００３８】
ステップＳ４０５では、マスタテーブル８００の各レコードにある比較フラグ８０６を基に、マスタテーブル８００の値を更新する処理を実行する。ステップＳ４０５の処理の詳細は、後述する図１５に示す。また、比較フラグ８０６の説明は後述する。
【００３９】
ステップＳ４０６では、マスタテーブル８００に格納された情報を用いて帳票作成アプリケーションサーバＢ１０３で利用可能なフォームファイルを生成する（フォームファイル生成手段）。前述したステップＳ４０３乃至ステップＳ４０５の各処理を実行することにより、どの領域の文字列が可変になり、どの領域の文字列が固定であるのかがわかる。そのため、この情報を用いて帳票作成アプリケーションサーバＢ１０３で利用可能なフォームファイルを生成する。フォームファイルの生成方法は帳票作成アプリケーションの種類に応じて異なるが、従来技術であるので説明は省略する。
【００４０】
次に、ステップＳ４０１の詳細な処理について、図５に示すフローチャートを用いて説明する。尚、ステップＳ５０１乃至ステップＳ５０８の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００４１】
まず、ステップＳ５０１では、複数個の指示されたＰＤＦファイルのうち１番目のＰＤＦファイルをオープンする。オープンするＰＤＦファイルの順番は特に問わない。
【００４２】
ステップＳ５０２では、ＰＤＦファイルに含まれる、文字を示す文字オブジェクトすべてに対して後述するステップＳ５０３乃至ステップＳ５０７が実行されるまで、当該ステップＳ５０３乃至ステップＳ５０７の処理を繰り返す。
【００４３】
ステップＳ５０３では、オープンしたＰＤＦファイルのある文字オブジェクトの左上Ｘ座標、左上Ｙ座標を取得し、ＲＡＭ２０３に記憶する。文字オブジェクトの左上の座標の取得は、ＯＣＲ処理によって特定した文字オブジェクトの位置を解析してもよいし、ＰＤＦファイルに含まれている座標を用いてもよい。
【００４４】
ステップＳ５０４では、ステップＳ５０３で座標値を取得した文字オブジェクトを構成する文字列を取得する。すなわち、ＰＤＦファイル上で表示されている文字列を特定し、これを取得し、ＲＡＭ２０３に記憶する。
【００４５】
ステップＳ５０５では、ステップＳ５０４で取得した文字列の文字列長（文字数）を算出し、ＲＡＭ２０３に記憶する。
【００４６】
ステップＳ５０６では、ステップＳ５０４で取得した文字列のフォントサイズを特定し、これをＲＡＭ２０３に記憶する。フォントサイズの特定方法は従来技術を用いるものとする。
【００４７】
ステップＳ５０７では、ステップＳ５０３乃至ステップＳ５０６で取得した各種情報をマスタテーブル８００に格納するための処理を実行する。ステップＳ５０７の処理の詳細は、後述する図７に示す。
【００４８】
ステップＳ５０８では、すべての文字オブジェクトに対してステップＳ５０３乃至ステップＳ５０７の処理を実行したので、ステップＳ５０１でオープンしたＰＤＦファイルをクローズする。
【００４９】
次に、ステップＳ５０７の詳細な処理について、図７に示すフローチャートを用いて説明する。尚、ステップＳ７０１乃至ステップＳ７０６の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００５０】
ステップＳ７０１では、マスタテーブル８００に新たにレコードを作成し、固定／可変８０５に「０」を格納し、更にＲＡＭ２０３に記憶された、文字オブジェクトの左上座標のＸ座標値をマスタテーブル８００の左上Ｘ座標８０１に格納する。
【００５１】
ここでマスタテーブル８００の説明を行う。マスタテーブル８００のテーブル構成例を図８に示す。マスタテーブル８００は、情報処理装置１０１の外部メモリ２１１に記憶されているデータテーブルである。マスタテーブル８００は、左上Ｘ座標８０１、左上Ｙ座標８０２、文字列８０３、文字列長８０４、固定／可変８０５、比較フラグ８０６、フォントサイズ８０７から構成される。尚、図８に示すマスタテーブル８００のテーブル構成はあくまで一例であり、他の構成例であってもよい。
【００５２】
左上Ｘ座標８０１と左上Ｙ座標８０２は、文字オブジェクトを矩形で特定したときの左上の座標を構成するＸ座標とＹ座標とをそれぞれ格納する。文字列８０３は、文字オブジェクトが示す文字列を格納する。文字列長８０４は、文字オブジェクトが示す文字列の文字数を格納する。固定／可変８０５は、当該文字オブジェクトが固定の文字列なのか、可変の文字列なのかを格納する。可変の文字列とは、流し込むデータによって文字列や文字数が変わる領域のことである。比較フラグ８０６は、他のＰＤＦファイルと同等の位置にある文字オブジェクトとの比較が行われたか否かを示すフラグである。フォントサイズ８０７は、文字オブジェクトが示す文字列のフォントのサイズを示す。
【００５３】
ステップＳ７０２では、ＲＡＭ２０３に記憶された、文字オブジェクトの左上座標のＹ座標値をマスタテーブル８００の左上Ｘ座標８０１に格納する。続いて、ステップＳ７０３では、ＲＡＭ２０３に記憶された、文字オブジェクトの文字列をマスタテーブル８００の文字列８０３に格納し、ステップＳ７０４では、文字列長をマスタテーブル８００の文字列長８０４に格納する。ステップＳ７０５では、マスタテーブル８００の固定／可変８０５に「固定」を格納する。そして、ステップＳ７０６では、ＲＡＭ２０３に記憶された、文字オブジェクトのフォントサイズをマスタテーブル８００のフォントサイズ８０７に格納する。
【００５４】
例えば、図６に示すような帳票作成アプリケーションサーバＡ１０２で生成された１つ目の帳票ファイル６００が存在したとする。この帳票ファイル６００には、文字オブジェクトが８つ（文字オブジェクト６０１〜文字オブジェクト６０８）存在する。そのため、この８つについてそれぞれ解析を行う。例えば、文字オブジェクト６０１であれば、左上座標が（１０，１０）であり、文字列は「請求書」、文字列長は「３」、フォントサイズは「２４」であるので、これらをそれぞれ図８のマスタテーブル格納例８１０の１レコード目に示すような形態で格納する。そして、固定／可変８０５には、「固定」と格納する。比較フラグ８０６には「０」を格納しておく。文字オブジェクト６０１〜文字オブジェクト６０８に対してそれぞれ処理を行うと、図８のマスタテーブル格納例８１０のようになる。
【００５５】
次に、ステップＳ４０３の詳細な処理について、図９に示すフローチャートを用いて説明する。尚、ステップＳ９０１乃至ステップＳ９０８の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００５６】
まず、ステップＳ９０１では、ステップＳ５０１でオープンしたＰＤＦファイルとは別のＰＤＦファイルであって、複数個の指示されたＰＤＦファイルのうち１番目のＰＤＦファイルをオープンする。オープンするＰＤＦファイルの順番は特に問わない。
【００５７】
ステップＳ９０２では、ＰＤＦファイルに含まれる、文字を示す文字オブジェクトすべてに対して後述するステップＳ９０３乃至ステップＳ９０７が実行されるまで、当該ステップＳ９０３乃至ステップＳ９０７の処理を繰り返す。
【００５８】
ステップＳ９０３では、オープンしたＰＤＦファイルのある文字オブジェクトの左上Ｘ座標、左上Ｙ座標を取得し、ＲＡＭ２０３に記憶する。文字オブジェクトの左上の座標の取得は、ＯＣＲ処理によって特定した文字オブジェクトの位置を解析してもよいし、ＰＤＦファイルに含まれている座標を用いてもよい。
【００５９】
ステップＳ９０４では、ステップＳ９０３で座標値を取得した文字オブジェクトを構成する文字列を取得する。すなわち、ＰＤＦファイル上で表示されている文字列を特定し、これを取得し、ＲＡＭ２０３に記憶する。
【００６０】
ステップＳ９０５では、ステップＳ９０４で取得した文字列の文字列長（文字数）を算出し、ＲＡＭ２０３に記憶する。
【００６１】
ステップＳ９０６では、ステップＳ９０４で取得した文字列のフォントサイズを特定し、これをＲＡＭ２０３に記憶する。フォントサイズの特定方法は従来技術を用いるものとする。
【００６２】
ステップＳ９０７では、ステップＳ９０３乃至ステップＳ９０６で取得した各種情報をワークテーブル１２００に格納するための処理を実行する。ステップＳ９０７の処理の詳細は、後述する図１１に示す。
【００６３】
ステップＳ９０８では、すべての文字オブジェクトに対してステップＳ９０３乃至ステップＳ９０７の処理を実行したので、ステップＳ９０１でオープンしたＰＤＦファイルをクローズする。
【００６４】
次に、ステップＳ９０７の詳細な処理について、図７に示すフローチャートを用いて説明する。尚、ステップＳ１１０１乃至ステップＳ１１０６の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００６５】
ステップＳ１１０１では、ワークテーブル１２００に新たにレコードを作成し、固定／可変８０５に「０」を格納し、更にＲＡＭ２０３に記憶された、文字オブジェクトの左上座標のＸ座標値をワークテーブル１２００の左上Ｘ座標８０１に格納する。
【００６６】
ここでワークテーブル１２００の説明を行う。ワークテーブル１２００のテーブル構成例を図１２に示す。ワークテーブル１２００は、情報処理装置１０１の外部メモリ２１１に記憶されているデータテーブルである。ワークテーブル１２００は、左上Ｘ座標１２０１、左上Ｙ座標１２０２、文字列１２０３、文字列長１２０４、フォントサイズ１２０５から構成される。尚、図１２に示すワークテーブル１２００のテーブル構成はあくまで一例であり、他の構成例であってもよい。
【００６７】
左上Ｘ座標１２０１と左上Ｙ座標１２０２は、文字オブジェクトを矩形で特定したときの左上の座標を構成するＸ座標とＹ座標とをそれぞれ格納する。文字列１２０３は、文字オブジェクトが示す文字列を格納する。文字列長１２０４は、文字オブジェクトが示す文字列の文字数を格納する。フォントサイズ１２０５は、文字オブジェクトが示す文字列のフォントのサイズを示す。
【００６８】
ステップＳ１１０２では、ＲＡＭ２０３に記憶された、文字オブジェクトの左上座標のＹ座標値をワークテーブル１２００の左上Ｘ座標１２０１に格納する。続いて、ステップＳ１１０３では、ＲＡＭ２０３に記憶された、文字オブジェクトの文字列をワークテーブル１２００の文字列１２０３に格納し、ステップＳ１１０４では、ＲＡＭ２０３に記憶された文字列長をワークテーブル１２００の文字列長１２０４に格納する。そして、ステップＳ１１０５では、ＲＡＭ２０３に記憶された、文字オブジェクトのフォントサイズをワークテーブル１２００のフォントサイズ１２０５に格納する。
【００６９】
例えば、図１０に示すような帳票作成アプリケーションサーバＡ１０２で生成された１つ目の帳票ファイル６００とは別の帳票ファイル１０００が存在したとする。この帳票ファイル１０００には、文字オブジェクトが８つ（文字オブジェクト１００１〜文字オブジェクト１００８）存在する。そのため、この８つについてそれぞれ解析を行う。例えば、文字オブジェクト１００１であれば、左上座標が（１０，１０）であり、文字列は「請求書」、文字列長は「３」、フォントサイズは「２４」であるので、これらをそれぞれ図１２のワークテーブル格納例１２１０の１レコード目に示すような形態で格納する。文字オブジェクト１００１〜文字オブジェクト１００８に対してそれぞれ処理を行うと、図１２のワークテーブル格納例１２１０のようになる。
【００７０】
次に、ステップＳ４０４の詳細な処理について、図１３に示すフローチャートを用いて説明する。尚、ステップＳ１３０１乃至ステップＳ１３１７の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００７１】
まず、ステップＳ１３０１では、ワークテーブル１２００に格納されているレコードそれぞれに対して、後述するステップＳ１３０２乃至ステップＳ１３１７の処理を実行するまで、当該ステップＳ１３０２乃至ステップＳ１３１７の処理を繰り返す。
【００７２】
ステップＳ１３０２では、ワークテーブル１２００に格納されたレコードのうち、まだステップＳ１３０３以下を未実行のレコードを１つ読み込む。
【００７３】
ステップＳ１３０３では、読み込んだワークテーブルの左上Ｘ座標１２０１と左上Ｙ座標１２０２をキーとして、マスタテーブル８００を検索する。マスタテーブル８００の左上Ｘ座標８０１と左上Ｙ座標８０２との組み合わせが一致するレコードを検索すればよい。
【００７４】
ステップＳ１３０４では、ステップＳ１３０３における検索の結果、同一の左上座標を持つレコードが存在するか否かを判定する。同一の左上座標を持つレコードが存在すると判定した場合には、ステップＳ１３１１に処理を進める。同一の左上座標を持つレコードが存在しないと判定した場合には、ステップＳ１３０５に処理を進める。
【００７５】
ステップＳ１３０５では、比較元の帳票ファイルには存在しない文字列が存在するので、可変領域として新たにマスタテーブル８００に登録するべく、レコードを生成する。そして、ワークテーブル１２００で読み込んだレコードの左上Ｘ座標１２０１をマスタテーブル８００の左上Ｘ座標８０１に格納する。ステップＳ１３０６では、ワークテーブル１２００で読み込んだレコードの左上Ｙ座標１２０２をマスタテーブル８００の左上Ｙ座標８０２に格納する。ステップＳ１３０７では、ワークテーブル１２００で読み込んだレコードの文字列１２０３をマスタテーブル８００の文字列８０３に格納する。ステップＳ１３０８では、ワークテーブル１２００で読み込んだレコードの文字列長１２０４をマスタテーブル８００の文字列長８０４に格納する。
【００７６】
ステップＳ１３０９では、新たに作成したレコードの固定／可変８０５に「可変」を格納し、ステップＳ１３１０では、ワークテーブル１２００で読み込んだレコードのフォントサイズ１２０５をマスタテーブル８００のフォントサイズ８０７に格納する。
【００７７】
一方、ステップＳ１３１１では、ステップＳ１３１０で一致すると判定されたマスタテーブル８００のレコードの文字列８０３と、読み込んだワークテーブル１２００のレコードの文字列１２０３とを比較する。そして、ステップＳ１３１２では、その比較の結果、文字列が一致するか否かを判定する。つまり、座標が一致した領域が固定の文字列が格納される領域なのか、可変の文字列が格納される領域なのかを判定する。文字列が一致すると判定した場合には、固定の領域である可能性が高いので、そのままステップＳ１３１７に処理を進める。文字列が一致しないと判定した場合には、可変の領域である可能性が高いので、ステップＳ１３１３に処理を進める。
【００７８】
ステップＳ１３１３では、検索した結果一致すると判定されたマスタテーブル８００のレコードの固定／可変８０５を「可変」に変更する（決定手段）。
【００７９】
そして、ステップＳ１３１４では、ステップＳ１３１０で一致すると判定されたマスタテーブル８００のレコードの文字列長８０４と、読み込んだワークテーブル１２００のレコードの文字列長１２０４とを比較する。ステップＳ１３１５では、比較した結果、ワークテーブル１２００のレコードの文字列長１２０４の方が大きいか否かを判定する。ワークテーブル１２００のレコードの文字列長１２０４の方が大きいと判定した場合には、ステップＳ１３１６に処理を進める。ワークテーブル１２００のレコードの文字列長１２０４の方が大きくない、すなわち同じまたは小さいと判定した場合には、ステップＳ１３１７に処理を進める。
【００８０】
ステップＳ１３１６では、マスタテーブル８００の文字列８０３、文字列長８０４を、読み込んだワークテーブルのレコードの文字列１２０３、文字列長１２０４に置き換える。こうすることで、最大の文字列長を持つものを保存していく。
【００８１】
ステップＳ１３１７では、ステップＳ１３１０とステップＳ１３１６の処理が終了したら、ステップＳ１３１０から処理が流れてきた場合には新しくステップＳ１３０５で生成したマスタテーブル８００のレコードの比較フラグ８０６に、ステップＳ１３１６から処理が流れてきた場合には一致すると判定されたマスタテーブル８００のレコードの比較フラグ８０６にそれぞれ「１」を格納する。こうすることで、一度は比較されたレコードであることを残す。
【００８２】
図８と図１２でそれぞれ説明したマスタテーブル格納例８１０とワークテーブル格納例１２１０とを用いて、図１３の処理を実行すると、図１４の実行結果１４１０に示すような形態となる。すなわち、マスタテーブル格納例８１０とワークテーブル格納例１２１０との差は、それぞれ２レコード目に格納されている会社名である。マスタテーブル格納例８１０は、「株式会社○○○」であり、ワークテーブル格納例１２１０は、「□□□□株式会社」となっている。これにより、文字列と文字列長がそれぞれ異なるので、マスタテーブル８００を更新することになる。その実行結果が実行結果１４１０であり、破線で囲んである２レコード目の部分が更新された部分である。このようにして、各領域の最大文字数やその文字列を収集していく。
【００８３】
次に、ステップＳ４０５の詳細な処理について、図１５に示すフローチャートを用いて説明する。尚、ステップＳ１５０１乃至ステップＳ１５０５の各ステップは、情報処理装置１０１のＣＰＵ２０１が処理を実行するものとして説明する。
【００８４】
ステップＳ１５０１では、マスタテーブル８００に格納された各レコードそれぞれに対してステップＳ１５０２乃至ステップＳ１５０５の処理が実行されるまで、当該ステップＳ１５０２乃至ステップＳ１５０５の処理を繰り返す。
【００８５】
ステップＳ１５０２では、マスタテーブル８００のレコードのうち、ステップＳ１５０２乃至ステップＳ１５０５の処理を未実行なレコードを読み込む。そして、ステップＳ１５０３では、読み込んだレコードの比較フラグ８０６が「１」であるか否かを判定する。「１」であると判定した場合には、ステップＳ１５０５に処理を進める。「１」でないと判定した場合には、ステップＳ１５０４に処理を進める。
【００８６】
ステップＳ１５０４では、比較フラグ８０６が「０」であるので、どの帳票ファイルにもない領域であったことがわかる。すなわち、可変領域である可能性があるので、読み込んでいるマスタテーブル８００のレコードの固定／可変８０５に「可変」を格納する。一方、ステップＳ１５０５では、比較フラグ８０６を一旦リセットするべく、読み込んでいるマスタテーブル８００のレコードの比較フラグ８０６を「０」にする。
【００８７】
このようにして処理を繰り返すことで、どの文字オブジェクトが固定領域／可変領域なのかがわかる。尚、本実施形態では左上の座標を比較することにより一致の判定を行ったが、これに限らない。画像解析によりセンタリングされているようなら文字列の中心の座標を比較し、右寄せなら右上の座標を比較するようにすればよい。
【００８８】
以上説明したように、本実施形態によれば、同一レイアウトの複数の帳票ファイルを用いて可変の文字領域を特定することのできる効果を奏する。
【００８９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９０】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００９９】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１００】
１０１  情報処理装置
１０２  帳票作成アプリケーションサーバＡ
１０３  帳票作成アプリケーションサーバＢ
１０４  ＬＡＮ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  入力デバイス
２１０  ディスプレイ
２１１  外部メモリ
【図１】
2016004394.tif 000003
【図２】
2016004394.tif 000004
【図３】
2016004394.tif 000005
【図４】
2016004394.tif 000006
【図５】
2016004394.tif 000007
【図６】
2016004394.tif 000008
【図７】
2016004394.tif 000009
【図８】
2016004394.tif 000010
【図９】
2016004394.tif 000011
【図１０】
2016004394.tif 000012
【図１１】
2016004394.tif 000013
【図１２】
2016004394.tif 000014
【図１３】
2016004394.tif 000015
【図１４】
2016004394.tif 000016
【図１５】
2016004394.tif 000017