(57)【要約】【課題】取り込み対象とする帳票のフォーマット変換を高速に行うことが可能な情報処理装置、制御方法、及びプログラムを提供する【解決手段】処理対象となる複数ページからなるＰＤＦファイルがＰＤＦ監視フォルダへ格納されると、所定のページ数単位で、ＰＤＦファイルをＳＶＧファイル（中間ファイル）へ変換するモジュールを起動して、ＰＤＦファイルからＳＶＧファイルへの変換を行う。ＳＶＧファイルは、ＰＤＦファイルに対するフォームに関する情報を有するＦｏｒｍＳＶＧファイルと、データに関する情報を有するＤａｔａＳＶＧファイルと、を含む構成をとり、全てのページに対してＳＶＧファイルを作成した後、重複しないようにＦｏｒｍＳＶＧファイルを用いて、ＤａｔａＳＶＧファイルとマージする。【選択図】図５
2018106538.tif 000002
【特許請求の範囲】
【請求項１】
電子帳票を参照するための情報処理装置であって、
フォームに対してデータが入力されたファイルを受付ける受付手段と、
前記受付手段によって受付けたファイルを分割する分割手段と、
前記分割手段によって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換手段と、
前記第一の変換手段で変換されたフォームファイルを重複することなく抽出するフォーム抽出手段と、
前記フォーム抽出手段で抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記受付手段によって受付けたファイルは複数のページから構成され、
前記分割手段は、任意のページ数単位で前記ファイルを分割することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出手段は、前記第一の変換手段で変換されたフォームファイルに関してハッシュ関数を適用して求められたハッシュ値に基づいて重複するフォームファイルを取得することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
第一の変換手段は、前記分割単位でフォルダを生成し、それぞれのフォルダにおいて、フォームファイルに対してファイル名称を付与するとともに、当該フォームファイルに対応するデータファイルの対応付けを行い、
全ての前記フォルダにおいて、重複するフォームファイルのファイル名称を変更しつつ、対応するデータファイルの対応付けの変更を行うことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
電子帳票を参照するための情報処理装置の制御方法であって、
前記情報処理装置は、
フォームに対してデータが入力されたファイルを受付ける受付ステップと、
前記受付ステップによって受付けたファイルを分割する分割ステップと、
前記分割ステップによって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換ステップと、
前記第一の変換ステップで変換されたフォームファイルを重複することなく抽出するフォーム抽出ステップと、
前記フォーム抽出ステップで抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換ステップと、
を備えることを特徴とする情報処理装置。
【請求項６】
電子帳票を参照するための情報処理装置で読取実行可能なプログラムであって、
前記情報処理装置を、
フォームに対してデータが入力されたファイルを受付ける受付手段と、
前記受付手段によって受付けたファイルを分割する分割手段と、
前記分割手段によって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換手段と、
前記第一の変換手段で変換されたフォームファイルを重複することなく抽出するフォーム抽出手段と、
前記フォーム抽出手段で抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換手段と、
して機能させるためのプログラム。
【請求項７】
クライアント端末とサーバとが接続された電子帳票を参照するための情報処理システムであって、
前記サーバは、
フォームに対してデータが入力されたファイルを受付ける受付手段と、
前記受付手段によって受付けたファイルを分割する分割手段と、
前記分割手段によって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換手段と、
前記第一の変換手段で変換されたフォームファイルを重複することなく抽出するフォーム抽出手段と、
前記フォーム抽出手段で抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換手段と、
を備え、
前記クライアント端末は、
前記第二の変換手段の変換によって得られた電子帳票を表示する表示手段と、
を備えることを特徴とする情報処理システム。
【請求項８】
クライアント端末とサーバとが接続された電子帳票を参照するための情報処理システムでの制御方法であって、
前記サーバは、
フォームに対してデータが入力されたファイルを受付ける受付ステップと、
前記受付ステップによって受付けたファイルを分割する分割ステップと、
前記分割ステップによって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換ステップと、
前記第一の変換ステップで変換されたフォームファイルを重複することなく抽出するフォーム抽出ステップと、
前記フォーム抽出ステップで抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換ステップと、
実行し、
前記クライアント端末は、
前記第二の変換ステップの変換によって得られた電子帳票を表示する表示ステップと、
を実行することを特徴とする情報処理システムの制御方法。
【請求項９】
クライアント端末とサーバとが接続された電子帳票を参照するための情報処理システムで読取実行可能なプログラムであって、
前記サーバを、
フォームに対してデータが入力されたファイルを受付ける受付手段と、
前記受付手段によって受付けたファイルを分割する分割手段と、
前記分割手段によって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換手段と、
前記第一の変換手段で変換されたフォームファイルを重複することなく抽出するフォーム抽出手段と、
前記フォーム抽出手段で抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換手段と、
して機能させ、
前記クライアント端末を、
前記第二の変換手段の変換によって得られた電子帳票を表示する表示手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取り込み対象とするファイルのフォーマットを高速に変換する電子帳票システムに関する。
【背景技術】
【０００２】
従来より、紙媒体である帳票を基に、あるいはホスト（上位システム）からデータを受信して、電子帳票（帳票データ）に変換して、保存・管理する電子帳票システムがある。
【０００３】
このような電子帳票システムは、独自のファイル形式にデータを変換して、システム上で電子帳票を閲覧、検索できるようになっているが、近年では電子帳票システムに取り込むデータはメインフレームなどのデータに限らず、汎用的なコンピュータで生成されるＰＤＦ形式などのファイルを取り込むことが望まれている。
【０００４】
ＰＤＦファイルなどのテキストデータとテキストデータの属性情報と罫線情報とを１ファイルに含む文書データを、電子帳票システムで容易に扱えるファイルに変換する仕組みについて開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−９１１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のＰＤＦ帳票取り込み方法では、後述する図４のように、ＰＤＦファイルを一旦ＳＶＧ形式の中間ファイル（ＳＶＧファイル）として出力するため、従来のホスト帳票と比べて、電子帳票システムへの取り込み速度が遅くなる。
【０００７】
また、ＰＤＦの構造上、この中間ファイル作成処理をマルチスレッド処理にすることは難しいため、ＣＰＵなどのハードウェアリソースを増強しても処理速度を大幅に改善するのは難しい。
【０００８】
ところで、会計システム等の上位システムから転送されるデータを用いて日次のＰＤＦ帳票データを生成し、電子帳票システムに登録する電子帳票システムがある。
【０００９】
ＰＤＦ帳票を電子帳票システムへ登録するには、夜間バッチ処理で行われることが多いが、ページ数が多いＰＤＦ帳票では、業務開始前に登録を完了させるためにＰＤＦファイルを分割してから登録するなどの運用で回避しているケースもある。
【００１０】
しかしながら、この回避方法では日次の帳票が別の世代として登録されてしまうという課題がある。
【００１１】
そこで本発明の目的は、取り込み対象とする帳票のフォーマット変換を高速に行うことが可能な情報処理装置、情報処理システム、制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するための本発明は、電子帳票を参照するための情報処理装置であって、フォームに対してデータが入力されたファイルを受付ける受付手段と、前記受付手段によって受付けたファイルを分割する分割手段と、前記分割手段によって分割したファイルをフォームに関するフォームファイルとデータに関するデータファイルとを含む中間ファイルへ分割単位で変換する第一の変換手段と、前記第一の変換手段で変換されたフォームファイルを重複することなく抽出するフォーム抽出手段と、前記フォーム抽出手段で抽出したフォームファイルに対して前記データファイルの当該データを入力して、前記電子帳票の形式にあわせるように変換を行う第二の変換手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、取り込み対象とする帳票のフォーマット変換を高速に行うことができる、という効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】電子帳票システムのシステム構成の一例を示す図である。
【図２】帳票サーバ及びクライアントＰＣのハードウェア構成の一例を示すブロック図である。
【図３】帳票サーバ及びクライアントＰＣの機能構成の一例の一例を示す図である。
【図４】従来のＰＤＦ変換処理の一例を示す図である。
【図５】本発明におけるＰＤＦ変換処理の一例を示す図である。
【図６】電子帳票システムのディレクトリ構成の一例を示す図である。
【図７】起動時処理の流れを示すフローチャートである。
【図８】ＰＤＦ変換メイン処理の流れを示すフローチャートである。
【図９】ＰＤＦ変換高速化処理の流れを示すフローチャートである。
【図１０】各ＰＤＦｔｏＳＶＧ変換モジュールプロセスが出力したファイルのマージ処理の流れを示すフローチャートである。
【図１１】マージ処理の後処理の流れを示すフローチャートである。
【図１２】ＰＤＦ変換設定テーブルの一例を示す構成図である。
【図１３】ＦｏｒｍＳＶＧテーブルの一例を示す構成図である。
【図１４】ＦｏｒｍＳＶＧテーブルの一例を示す構成図である。
【図１５】ＰＤＦ構成情報テーブルの一例を示す構成図である。
【図１６】ＦｏｒｍＳＶＧファイルマップの一例を示す構成図である。
【図１７】ＰＤＦ構成情報ファイルリストの一例を示す構成図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１６】
図１は、本発明の実施形態における電子帳票システム（情報処理システム）のシステム構成の一例を示す図である。
【００１７】
本実施形態における電子帳票システムは、帳票サーバ１００及びクライアントＰＣ１０１を含み、これらがＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）またはインターネット等のネットワーク１０２を介して、相互にデータ通信可能に接続されている。
【００１８】
尚、図１のネットワーク上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例がある。
【００１９】
帳票サーバ１００（情報処理装置）は、サーバ装置である。帳票サーバ１００の外部メモリには帳票データが記憶されており、クライアントＰＣ１０１のウェブブラウザから帳票データの参照要求を受け付けると、ネットワーク１０２を通じてクライアントＰＣ１０１に帳票データを送信する。
【００２０】
また、クライアントＰＣ１０１から操作を受け付けるためのウェブページや、帳票データを閲覧するためウェブページを生成する。
【００２１】
本実施形態において帳票データとは、例えば、会計システム等の上位システムから転送されるデータを用いて生成される、電子的な帳票である。
【００２２】
帳票データは、罫線や固定の文字列から構成されるテンプレートのデータに、上位システムから取得したデータを挿入して生成する。
【００２３】
また帳票サーバ１００は、電子帳票管理装置として、複数種類の電子帳票（以下、単に「帳票」と称す）のデータ（以下、「帳票データ」または「帳票ファイル」と称す）を記憶、管理し、ネットワーク１０２を介してクライアントＰＣ１０１に対して、帳票ファイルの閲覧や検索等のサービスを提供する。また帳票サーバ１００はＰＤＦファイルを受け付け、ＰＤＦファイルを帳票データに変換する。
【００２４】
帳票データは帳票サーバ１００の外部メモリ２１１に記憶されている。
【００２５】
クライアントＰＣ１０１は、パーソナルコンピュータである。クライアントＰＣ１０１は、ウェブブラウザを介して帳票サーバ１００が記憶する帳票データを表示することができる。
【００２６】
図２は、本発明の実施形態における帳票サーバ１００及びクライアントＰＣ１０１のハードウェア構成の一例を示すブロック図である。
【００２７】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２８】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳという。）が記憶されている。
【００２９】
また外部メモリ２１１には、帳票サーバ１００及びクライアントＰＣ１０１の実行する機能を実現するために必要な各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００３０】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００３１】
また、入力コントローラ２０５は、キーボードやマウス等のポインティングデバイスといった入力デバイス２０９からの入力を制御する。
【００３２】
ビデオコントローラ２０６は、ディスプレイ２１０等の表示器への表示を制御する。表示器はＣＲＴや液晶ディスプレイでも構わない。
【００３３】
メモリコントローラ２０７は、ハードディスクやフレキシブルディスク或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３４】
外部メモリ２１１（記憶手段）は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する。
【００３５】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３６】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３７】
本発明の帳票サーバ１００及びクライアントＰＣ１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３８】
さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３９】
図３は、本発明の実施形態における帳票サーバ１００及びクライアントＰＣ１０１の機能構成の一例を示す図である。
【００４０】
尚、図３に示す帳票サーバ１００及びクライアントＰＣ１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００４１】
帳票サーバ１００は機能部として、ＰＤＦ受信モジュール１００１、ＰＤＦ登録モジュール１００２、及びＲＶ帳票保管モジュール１００５を備え、クライアントＰＣ１０１は機能部として、ウェブブラウザ１０１１を備える。
【００４２】
尚、各機能の詳細については、後述するフローチャートにおいて説明する。
【００４３】
図４は、従来のＰＤＦ変換処理の一例を示す図である。このＰＤＦ変換処理では、ＰＤＦｔｏＳＶＧ変換モジュールが単独で実行され、ＰＤＦファイルの全ページをＳＶＧファイルに変換する。
【００４４】
図５は、本発明の実施形態におけるＰＤＦ変換処理の一例を示す図である。このＰＤＦ変換処理では、ＰＤＦｔｏＳＶＧ変換モジュールが複数プロセス起動し、それぞれのプロセスがＰＤＦファイルの指定ページをＳＶＧファイルに変換し、ＳＶＧｔｏＲＶ変換モジュール１０２０の実行に必要となる情報のみが残るように、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスの出力結果をマージする。
【００４５】
図６は、本発明の実施形態におけるディレクトリ構成の一例を示す図である。この図６はＰＤＦｔｏＳＶＧ変換モジュールが２つ並列に動作する場合の例である。
【００４６】
Ｓｐｏｏｌフォルダ３０１は、処理対象となるＰＤＦファイルが格納されるフォルダであり、格納されたか否かを常時監視している。
【００４７】
Ｗｏｒｋフォルダ３０２は、ＰＤＦｔｏＳＶＧ変換モジュールの実行結果を格納するフォルダであり、プロセスフォルダ３０３（プロセスフォルダ０）、プロセスフォルダ３０４（プロセスフォルダ１）、プロセスフォルダ３０５（プロセスフォルダ２）を含んで構成しているが、プロセスフォルダ１以降については、ＰＤＦｔｏＳＶＧ変換モジュールの並列実行数分作成される。
【００４８】
プロセスフォルダ３０３（プロセスフォルダ０）については、ＰＤＦｔｏＳＶＧ変換モジュールでＰＤＦファイルを変換する前段のプレ変換の処理結果を格納するフォルダであり、ＰＤＦファイルの１ページ目の処理結果を格納する。
【００４９】
ＰＤＦファイルの１ページ目には、ＰＤＦファイルの構成情報が含まれ、例えば、総ページ数に関する情報が含まれることから、この構成情報を取得するための処理結果を格納している。
【００５０】
次に図７〜図１１に示すフローチャートを用いて、本発明の実施形態におけるＰＤＦ変換処理について説明する。
【００５１】
図７に示すフローチャートは、電子帳票システムの起動時処理を示すフローチャートである。
【００５２】
ステップＳ１０１では、帳票サーバ１００のＣＰＵ２０１は、帳票サーバ１００に予め登録されているＰＤＦ変換設定ファイル（不図示）から読み込んだ変換プラグイン名をＰＤＦ変換設定テーブル５００の変換プラグイン名５０１に格納する。
【００５３】
ステップＳ１０２では、帳票サーバ１００のＣＰＵ２０１は、ＰＤＦ変換設定ファイルから読み込んだ並列プロセス数をＰＤＦ変換設定テーブル５００の並列プロセス数５０２に格納する。
【００５４】
図１２に示すＰＤＦ変換設定テーブル５００は、変換プラグイン名５０１、及び並列プロセス数５０２の項目からなる。
【００５５】
変換プラグイン名５０１には、帳票サーバ１００のＰＤＦ変換設定ファイルから読み込んだ、ＰＤＦ→ＳＶＧ変換部１００３におけるプラグイン名が登録される。
【００５６】
並列プロセス数５０２には、帳票サーバのＰＤＦ変換設定ファイルから読み込んだ、ＰＤＦｔｏＳＶＧ変換モジュールを並列で実行する数が登録される。
【００５７】
図８に示すフローチャートは、本発明の実施形態におけるＰＤＦ変換処理の一連の流れを示すフローチャートである。
【００５８】
ステップＳ２０１では、上位システム等で作成されたＰＤＦファイルをファイル転送ソフトウェア等で帳票サーバのＳｐｏｏｌフォルダ３０１に格納する。
【００５９】
ステップＳ２０２では、帳票サーバ１００は、ＰＤＦ受信モジュール１００１によりＰＤＦファイルをＷｏｒｋフォルダ３０２に転送する。
【００６０】
ステップＳ２０３では、帳票サーバ１００は、ステップＳ１０１において取得した変換プラグイン名５０１を参照し、ＰＤＦ変換処理を行うプラグインの種類がＰＤＦ変換高速化プラグインであるか否かを判定する。
【００６１】
ＰＤＦ変換高速化プラグインであると判定した場合には、ステップＳ２０５に処理を進め、ＰＤＦ変換高速化プラグインでないと判定した場合には、ステップＳ２０４に処理を進める。
【００６２】
ステップＳ２０５は、本発明であるＰＤＦ変換の高速化処理、ステップＳ２０４は、既存のＰＤＦ変換の通常処理を示す。このＰＤＦ変換高速化処理の詳細は、後述する図９で説明する。
【００６３】
ステップＳ２０５またはステップＳ２０４の処理が終了したら、本一連の処理を完了する。
【００６４】
図９に示すフローチャートは、ＰＤＦ変換高速化処理の一連の流れを示すフローチャートである。
【００６５】
ステップＳ３０１では、帳票サーバ１００は、各種変数の定義を実行する。本実施形態で使用する変数について説明する。ＰＤＦ総ページ数として変数Ｔｏｔａｌを定義する。ＰＤＦｔｏＳＶＧ変換モジュール１プロセスごとに処理するページ数（プロセスごとの処理ページ数）として変数Ｎを定義する。以上が、本実施形態で使用する変数についての説明である。
【００６６】
ステップＳ３０２では、帳票サーバ１００は、各種変数の定義及び初期化を実行する。本実施形態で使用する変数とその初期値について説明する。
【００６７】
ステップＳ３０３のループ１カウンタとして変数ｉを定義し、初期値として０を格納する。ステップＳ３０９のループ２カウンタとして変数ｊを定義し、初期値として１を格納する。
【００６８】
ＰＤＦｔｏＳＶＧ変換モジュール実行時に引数として渡す処理開始ページ（ＰＤＦ変換処理開始ページ）として変数ｓｔａｒｔを定義し、初期値として０を格納する。
【００６９】
ＰＤＦｔｏＳＶＧ変換モジュール実行時に引数として渡す処理終了ページ（ＰＤＦ変換処理終了ページ）として変数ｅｎｄを定義し、初期値として０を格納する。
【００７０】
以上が、本実施形態で使用する変数とその初期値についての説明である。
【００７１】
ステップＳ３０３では、帳票サーバ１００は、Ｗｏｒｋフォルダ配下へのプロセスフォルダの作成を並列プロセス数＋１分繰り返すループ処理の開始である。
【００７２】
ステップＳ３０４では、帳票サーバ１００は、ＰＤＦｔｏＳＶＧ変換モジュールのｉ番目のプロセスが使用するフォルダ（プロセスフォルダ）を作成する。
【００７３】
ステップＳ３０５では、帳票サーバ１００は、並列プロセス数＋１の数だけステップＳ３０４が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ３０６に処理を進める。そうでない場合には、ステップＳ３０３に処理を戻す。こうすることで、並列プロセス数＋１分のプロセスフォルダを作成する。
【００７４】
ステップＳ３０６では、帳票サーバ１００は、ＰＤＦ変換処理開始ページ（変数ｓｔａｒｔ）に１を代入し、ＰＤＦ変換処理終了ページ（変数ｅｎｄ）に１を代入し、ＰＤＦｔｏＳＶＧ変換モジュールの実行結果ファイルの出力先（出力先）にプロセスフォルダ０のパスを代入する。
【００７５】
そして、ＰＤＦ変換処理開始ページと、ＰＤＦ変換処理終了ページと、出力先を、ＰＤＦｔｏＳＶＧ変換モジュール実行時の引数として与え、ＰＤＦｔｏＳＶＧ変換モジュールを実行する。
【００７６】
ＰＤＦｔｏＳＶＧ変換モジュールは、ＦｏｒｍＳＶＧテーブル５１０（図１３参照）で構成されるＦｏｒｍＳＶＧファイルと、ＤａｔａＳＶＧテーブル５２０（図１４参照）で構成されるＤａｔａＳＶＧファイルと、ＰＤＦ構成情報テーブル５３０（図１５参照）で構成されるＰＤＦ構成情報ファイルをプロセスフォルダ０に出力する。
【００７７】
図１３には、ＦｏｒｍＳＶＧテーブル５１０の構成が示されており、ＦｏｒｍＳＶＧテーブル５１０は、フォーム情報５１１の項目からなる。
【００７８】
フォーム情報５１１には、ＰＤＦｔｏＳＶＧ変換モジュールが出力した、ＦｏｒｍＳＶＧファイルの情報（帳票のフォームに関する情報）が登録される。
【００７９】
図１４には、ＤａｔａＳＶＧテーブル５２０の構成が示されており、データ情報５２１の項目からなる。
【００８０】
データ情報５２１には、ＰＤＦｔｏＳＶＧ変換モジュールが出力した、ＤａｔａＳＶＧファイルの情報（帳票のデータに関する情報）が登録される。
【００８１】
図１５には、ＰＤＦ構成情報テーブル５３０の構成が示されており、ＰＤＦ属性情報５３１、ＰＤＦページ情報データ５３２の項目からなる。
【００８２】
ＰＤＦページ情報データ５３２はＰＤＦページ番号５３３、ＦｏｒｍＳＶＧファイル名５３４を子データとして保持する。
【００８３】
ＰＤＦ属性情報５３１には、ＰＤＦの総ページ数や作成者などの情報が登録されるが、本発明ではＰＤＦの総ページ数以外の情報は使用しない。
【００８４】
ＰＤＦページ情報データ５３２には、ＰＤＦページ番号５３３とＦｏｒｍＳＶＧファイル名の対が登録される。この対により、ＰＤＦの任意のページがどのフォームを使用しているかを判別することが可能となる。
【００８５】
ステップＳ３０７では、帳票サーバ１００は、ステップＳ３０６で作成されたＰＤＦ構成情報テーブル５３０のＰＤＦ属性情報５３１に含まれるＰＤＦページ数を、ＰＤＦ総ページ数（変数Ｔｏｔａｌ）に代入する。
【００８６】
ステップＳ３０８では、帳票サーバ１００は、ＰＤＦ総ページ数（変数Ｔｏｔａｌ）を並列プロセス数５０２で除算した値（小数点以下は切り上げ）を、プロセスごとの処理ページ数（変数Ｎ）に代入する。
【００８７】
ステップＳ３０９では、帳票サーバ１００は、ＰＤＦｔｏＳＶＧ変換モジュールを並列プロセス数分繰り返すループ処理の開始である。
【００８８】
ステップＳ３１０では、帳票サーバ１００は、ＰＤＦ変換処理開始ページ（変数ｓｔａｒｔ）に前回のＰＤＦ変換実行時の終了ページ＋１（変数ｅｎｄ＋１）を代入し、ＰＤＦ変換処理終了ページ（変数ｅｎｄ）に今回のＰＤＦ変換処理開始ページ＋プロセスごとの処理ページ数−１（変数ｓｔａｒｔ＋Ｎ−１）を代入し、ＰＤＦｔｏＳＶＧ変換モジュールの実行結果ファイルの出力先（出力先）にプロセスフォルダｊのパスを代入する。
【００８９】
そして、ＰＤＦ変換処理開始ページと、ＰＤＦ変換処理終了ページと、出力先を、ＰＤＦｔｏＳＶＧ変換モジュール実行時の引数として与え、ＰＤＦｔｏＳＶＧ変換モジュールを実行する。
【００９０】
ＰＤＦｔｏＳＶＧ変換モジュールは、ＦｏｒｍＳＶＧテーブル５１０で構成されるＦｏｒｍＳＶＧファイルと、ＤａｔａＳＶＧテーブル５２０で構成されるＤａｔａＳＶＧファイルと、ＰＤＦ構成情報テーブル５３０で構成されるＰＤＦ構成情報ファイルをプロセスフォルダｊに出力する。
【００９１】
なお、ステップＳ３１０はスレッド処理として実行されるため、ＰＤＦｔｏＳＶＧ変換モジュールの終了を待つことなく、ステップＳ３１１の処理に進むため、ＰＤＦｔｏＳＶＧ変換モジュールの並列実行が可能となる。
【００９２】
ステップＳ３１１では、帳票サーバ１００のＣＰＵ２０１は、並列プロセス数の数だけステップＳ３０４が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ３１２に処理を進める。そうでない場合には、ステップＳ３０９に処理を戻す。こうすることで、並列プロセス数分のプロセスが実行される。
【００９３】
ステップＳ３１２では、各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが出力したファイルのマージ処理を示す。この各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが出力したファイルのマージ処理の詳細は、後述する図１０で説明する。
【００９４】
ステップＳ３１３では、帳票サーバ１００は、各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが使用したプロセスフォルダを全て削除する。
【００９５】
ステップＳ３１４では、帳票サーバ１００は、既存のＳＶＧファイルからシステムで閲覧可能なフォーマットへ変換するＲＶ実績変換処理を実行する。
【００９６】
図１０に示すフローチャートは、各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが出力したファイルのマージ処理の流れを示すフローチャートである。
【００９７】
ステップＳ４０１では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００（図１６参照）をＲＡＭ２０３に作成する。
【００９８】
このＦｏｒｍＳＶＧファイルマップ６００は、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスが出力したＦｏｒｍＳＶＧファイルの中に同じものがあれば集約し、ＦｏｒｍＳＶＧファイル名を連番でリネームしなおすための用途で使用する。
【００９９】
図１６に示すＦｏｒｍＳＶＧファイルマップ６００は、マップＩＤ６０１をキーとして、ＦｏｒｍＳＶＧファイル名６０２、並列プロセス番号６０３、ハッシュ値６０４、同ハッシュ値マップＩＤ６０５、及びファイル名変更フラグ６０６の項目からなる。
【０１００】
マップＩＤ６０１には、ＦｏｒｍＳＶＧファイルの通し番号が登録され、ＦｏｒｍＳＶＧファイル名６０２には、並列プロセス番号６０３のＰＤＦｔｏＳＶＧ変換モジュールが出力したＦｏｒｍＳＶＧファイル名が登録される。
【０１０１】
並列プロセス番号６０３には、ＰＤＦｔｏＳＶＧ変換モジュールのプロセス番号が登録され、ハッシュ値６０４には、ＦｏｒｍＳＶＧファイル名６０２から特定されるＦｏｒｍＳＶＧファイルに対してハッシュ関数を適用して得られた値が登録される。
【０１０２】
同ハッシュ値マップＩＤ６０５には、同じハッシュ値６０４を持つマップＩＤがあれば、そのマップＩＤが登録され、ファイル名変更フラグ６０６には、ＦｏｒｍＳＶＧファイルのリネームなどでファイル名の変更が必要となるかどうかのフラグが登録される。
【０１０３】
ステップＳ４０２では、帳票サーバ１００は、ＰＤＦ構成情報ファイルリスト７００をＲＡＭ２０３に作成する。
【０１０４】
このＰＤＦ構成情報ファイルリスト７００は、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスが出力したＰＤＦ構成情報テーブル５３０のＦｏｒｍＳＶＧファイル名５３４を、リネーム後のＦｏｒｍＳＶＧファイル名で更新するための用途で使用する。
【０１０５】
図１７に示すＰＤＦ構成情報ファイルリスト７００は、ＰＤＦページ番号７０１、ＦｏｒｍＳＶＧファイル名７０２、並列プロセス番号７０３、及びＦｏｒｍＳＶＧファイルマップＩＤ７０４の項目からなる。
【０１０６】
ＰＤＦページ番号７０１には、ＰＤＦのページ番号が登録され、ＦｏｒｍＳＶＧファイル名７０２には、ＰＤＦの任意のページが使用する一意のＦｏｒｍＳＶＧファイル名が登録される。
【０１０７】
並列プロセス番号７０３には、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスを一意に識別する番号が登録され、ＦｏｒｍＳＶＧファイルマップＩＤ７０４には、同じハッシュ値６０４を持つマップＩＤがあれば、そのマップＩＤ６０１が登録される。
【０１０８】
ステップＳ４０３では、帳票サーバ１００は、各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが出力した情報を、ＦｏｒｍＳＶＧファイルマップ６００ならびにＰＤＦ構成情報ファイルリスト７００に設定するループ処理の開始である。なおループ１カウンタ（変数ｉ）の処理値は０を代入しておく。
【０１０９】
ステップＳ４０４では、帳票サーバ１００は、ＰＤＦｔｏＳＶＧ変換モジュールのプロセスｉが出力したＦｏｒｍＳＶＧファイルの数だけ、ＦｏｒｍＳＶＧファイルマップに情報をセットする。
【０１１０】
具体的には、ＦｏｒｍＳＶＧファイルの通し番号をマップＩＤ６０１にキーとしてセットし、ＦｏｒｍＳＶＧファイル名をＦｏｒｍＳＶＧファイル名６０２にセットし、ＰＤＦｔｏＳＶＧ変換モジュールのプロセス番号（変数ｉ）を並列プロセス番号６０３にセットし、ＦｏｒｍＳＶＧファイルに対してハッシュ関数を適用して生成したハッシュ値をハッシュ値６０４にセットし、ＦｏｒｍＳＶＧファイルマップ６００に追加する。
【０１１１】
ステップＳ４０５では、帳票サーバ１００は、ＰＤＦｔｏＳＶＧ変換モジュールのプロセスｉが出力したＰＤＦ構成情報テーブル５３０などから、ＰＤＦ構成情報ファイルリストに情報をセットする。
【０１１２】
具体的には、ＰＤＦ構成情報テーブル５３０のＰＤＦページ番号５３３をＰＤＦページ番号７０１にセットし、ＰＤＦ構成情報ファイルのＦｏｒｍＳＶＧファイル名５３４をＦｏｒｍＳＶＧファイル名７０２にセットし、ＰＤＦｔｏＳＶＧ変換モジュールのプロセス番号（変数ｉ）を並列プロセス番号７０３にセットし、ステップＳ４０４でセットしたマップＩＤ６０１をＦｏｒｍＳＶＧファイルマップＩＤ７０４にセットし、ＰＤＦ構成情報ファイルリスト７００に追加する。
【０１１３】
ステップＳ４０６では、帳票サーバ１００は、並列プロセス数＋１の数だけステップＳ４０４が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ４０７に処理を進める。そうでない場合には、ステップＳ４０３に処理を戻す。
【０１１４】
こうすることで、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスの実行結果が、ＦｏｒｍＳＶＧファイルマップ６００ならびにＰＤＦ構成情報ファイルリスト７００に格納される。
【０１１５】
ステップＳ４０７では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００中に上位要素のマップＩＤと同じハッシュ値を持つ要素は、同ハッシュ値マップＩＤ６０５に上位要素のマップＩＤをセットする。
【０１１６】
こうすることで、ＰＤＦｔｏＳＶＧ変換モジュールの各プロセスが出力したＦｏｒｍＳＶＧファイルの中に同じものがあっても、最初に出現したＦｏｒｍＳＶＧファイルのみを残すことが可能となる。（ＦｏｒｍＳＶＧファイルの集約）
【０１１７】
ステップＳ４０８では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００において、各マップＩＤに対応するＦｏｒｍＳＶＧファイル名の変更が必要か否かを判定するループ処理の開始である。
【０１１８】
ステップＳ４０８では、ＦｏｒｍＳＶＧファイルマップ６００に格納されているマップＩＤの数だけ実行される。
【０１１９】
ステップＳ４０９では、帳票サーバ１００は、該当マップＩＤの同ハッシュ値マップＩＤ６０５を参照し、値に何か設定されているか否かを判定する。値に何も設定されていない場合には、ステップＳ４１０に処理を進める。値に何か設定されていると判定した場合には、ステップＳ４０１１に処理を進める。
【０１２０】
ステップＳ４１０では、帳票サーバ１００は、上位のマップＩＤから連番になるように該当のマップＩＤのＦｏｒｍＳＶＧファイル名６０２を変更し、ファイル名変更フラグ６０６にＴＲＵＥをセットする。こうすることで、このユニークなＦｏｒｍＳＶＧファイルの番号を連番で振り直すことが可能となる。
【０１２１】
ステップＳ４１１では、帳票サーバ１００は、該当マップＩＤのＦｏｒｍＳＶＧファイル名６０２が示す実ファイルの末尾に「ｘ」を付与する。こうすることで、後続処理でのＦｏｒｍＳＶＧファイル名をリネームする際の重複を回避することが可能となる。
【０１２２】
ステップＳ４１２では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００の数だけステップＳ４０９が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ４１３に処理を進める。そうでない場合には、ステップＳ４０８に処理を戻す。こうすることで、最初に出現したＦｏｒｍＳＶＧファイルのみを連番で残すことが可能となる。
【０１２３】
ステップＳ４１３では、帳票サーバ１００は、ステップＳ４０８からＳ４１２の処理において変更されたＦｏｒｍＳＶＧファイル名で、ＰＤＦ構成情報ファイルリスト７００のＦｏｒｍＳＶＧファイル名７０２を更新するループ処理の開始である。ステップＳ４１３はＦｏｒｍＳＶＧファイルマップ６００に格納されているマップＩＤの数だけ実行される。
【０１２４】
ステップＳ４１４では、帳票サーバ１００のＣＰＵ２０１は、該当マップＩＤの同ハッシュ値マップＩＤ６０５を参照し、値に何か設定されているか否かを判定する。値に何か設定されている場合には、ステップＳ４１５に処理を進める。値に何も設定されていないと判定した場合には、ステップＳ４１７に処理を進める。
【０１２５】
ステップＳ４１５では、帳票サーバ１００は、該当マップＩＤと、ＰＤＦ構成情報ファイルリスト７００のＦｏｒｍＳＶＧファイルマップＩＤ７０４が等しいか否かを判定する。等しい場合には、ステップＳ４１５に処理を進める。等しくないと判定した場合には、ステップＳ４１７に処理を進める。
【０１２６】
ステップＳ４１６では、帳票サーバ１００は、該当マップＩＤのＦｏｒｍＳＶＧファイル名６０２で、ＰＤＦ構成情報ファイルリスト７００のＦｏｒｍＳＶＧファイル名７０２を更新する。
【０１２７】
ステップＳ４１７では、帳票サーバ１００は、該当マップＩＤのファイル名変更フラグ６０６を参照し、ＴＲＵＥが設定されているか否かを判定する。ＴＲＵＥが設定されている場合には、ステップＳ４１８に処理を進める。ＦＡＬＳＥが設定されている場合には、ステップＳ４１９に処理を進める。
【０１２８】
ステップＳ４１８では、帳票サーバ１００は、該当マップＩＤと、ＰＤＦ構成情報ファイルリスト７００のＦｏｒｍＳＶＧファイルマップＩＤ７０４が等しいか否かを判定する。等しい場合には、ステップＳ４１９に処理を進める。等しくないと判定した場合には、ステップＳ４２０に処理を進める。
【０１２９】
ステップＳ４１９では、帳票サーバ１００は、該当マップＩＤのＦｏｒｍＳＶＧファイル名６０２で、ＰＤＦ構成情報ファイルリスト７００のＦｏｒｍＳＶＧファイル名７０２を更新する。
【０１３０】
ステップＳ４２０では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００の数だけステップＳ４１４からステップＳ４１９が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ４２１に処理を進める。そうでない場合には、ステップＳ４１３に処理を戻す。こうすることで、ＰＤＦ構成情報ファイルのＦｏｒｍＳＶＧファイル名５３４を正しい情報で書き換えることが可能となる。
【０１３１】
図１１に示すフローチャートは、各ＰＤＦｔｏＳＶＧ変換モジュールのプロセスが出力したファイルのマージ処理の後処理の流れを示すフローチャートである。
【０１３２】
ステップＳ５０１では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００において、出力されたＦｏｒｍＳＶＧファイルのうち、ユニークなものか否かを判定するループ処理の開始である。ステップＳ５０１はＦｏｒｍＳＶＧファイルマップ６００に格納されているマップＩＤの数だけ実行される。
【０１３３】
ステップＳ５０２では、帳票サーバ１００は、該当マップＩＤの同ハッシュ値マップＩＤ６０５を参照し、値に何も設定されていないか否かを判定する。値に何も設定されていない場合には、ステップＳ５０３に処理を進める。値に何か設定されていると判定した場合には、ステップＳ５０４に処理を進める。
【０１３４】
ステップＳ５０３では、帳票サーバ１００は、該当のマップＩＤの並列プロセス番号６０３とＦｏｒｍＳＶＧファイル名６０２を参照し、並列プロセス番号６０３と紐づいているプロセスフォルダの実際のＦｏｒｍＳＶＧファイルをＷｏｒｋフォルダ３０２に移動する。
【０１３５】
ステップＳ５０４では、帳票サーバ１００は、ＦｏｒｍＳＶＧファイルマップ６００の数だけステップＳ５０２が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ５０５に処理を進める。そうでない場合には、ステップＳ５０１に処理を戻す。こうすることで、必要なＦｏｒｍＳＶＧファイルのみＷｏｒｋフォルダに集めることが可能となる。
【０１３６】
ステップＳ５０５では、帳票サーバ１００は、各プロセスフォルダ配下のＤａｔａＳＶＧファイルの移動を並列プロセス数＋１分繰り返すループ処理の開始である。
【０１３７】
ステップＳ５０６では、帳票サーバ１００は、ＰＤＦｔｏＳＶＧ変換モジュールのｉ番目のプロセスが使用するフォルダ（プロセスフォルダ）配下のＤａｔａＳＶＧファイルをＷｏｒｋフォルダ３０２に移動する。
【０１３８】
ステップＳ５０７では、帳票サーバ１００は、並列プロセス数＋１の数だけステップＳ５０６が実行されたか否かを判定し、これが実行されたと判定した場合には、ループ処理を抜けてステップＳ５０８に処理を進める。そうでない場合には、ステップＳ５０５に処理を戻す。こうすることで、全てのＤａｔａＳＶＧファイルをＷｏｒｋフォルダに集めることが可能となる。
【０１３９】
ステップＳ５０８では、帳票サーバ１００は、ＰＤＦ構成情報ファイルリスト７００の内容に従って、プロセスフォルダ３０３（プロセスフォルダ０）配下のＰＤＦ構成情報ファイルを書き換える。
【０１４０】
ステップＳ５０９では、帳票サーバ１００のＣＰＵ２０１は、ステップ５０９で書き換えたプロセスフォルダ３０３（プロセスフォルダ０）配下のＰＤＦ構成情報ファイルを、Ｗｏｒｋフォルダ３０２に移動する。
【０１４１】
以上説明したように、本実施形態によれば、取り込み対象とする帳票のフォーマット変換を高速に行うことができる。
【０１４２】
以上、実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４３】
また、本発明におけるプログラムは、図７から図１１に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図７から図１１の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図７から図１１の各装置の処理方法ごとのプログラムであってもよい。
【０１４４】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１４５】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１４６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１４７】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４９】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５０】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１５１】
１００    帳票サーバ
１０１    クライアントＰＣ
１０２    ネットワーク
【図１】
2018106538.tif 000003
【図２】
2018106538.tif 000004
【図３】
2018106538.tif 000005
【図４】
2018106538.tif 000006
【図５】
2018106538.tif 000007
【図６】
2018106538.tif 000008
【図７】
2018106538.tif 000009
【図８】
2018106538.tif 000010
【図９】
2018106538.tif 000011
【図１０】
2018106538.tif 000012
【図１１】
2018106538.tif 000013
【図１２】
2018106538.tif 000014
【図１３】
2018106538.tif 000015
【図１４】
2018106538.tif 000016
【図１５】
2018106538.tif 000017
【図１６】
2018106538.tif 000018
【図１７】
2018106538.tif 000019