(57)【要約】【課題】  第１の文書ファイルと該第１の文書ファイルを変換した第２の文書ファイルとで、同じ出力結果を得ることができるシステム、装置およびプログラムを提供する。【解決手段】  このシステムは、第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する情報処理システムであり、第１の文書ファイルを、該第１の文書ファイルを含む第２の文書ファイルに変換する変換部３０と、第２の文書ファイルを格納する格納部３２と、出力機器から出力させる文書の取得要求または出力機器への文書の送信要求を受け付ける要求受付部３１と、要求受付部が取得要求または送信要求を受け付けた文書について、格納部３２に格納された第２の文書ファイルから第１の文書ファイルを抽出する抽出部３３と、抽出された第１の文書ファイルから文書の画像を生成する生成部３４と、生成された画像を出力機器へ送信する送信部３５とを含む。【選択図】  図３
2018101325.tif 000002
【特許請求の範囲】
【請求項１】
第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する情報処理システムであって、
前記第１の文書ファイルを、該第１の文書ファイルを含む第２の文書ファイルに変換する変換部と、
前記第２の文書ファイルを格納する格納部と、
出力機器から出力させる前記文書の取得要求または出力機器への前記文書の送信要求を受け付ける要求受付部と、
前記要求受付部が前記取得要求または前記送信要求を受け付けた前記文書について、前記格納部に格納された前記第２の文書ファイルから前記第１の文書ファイルを抽出する抽出部と、
前記抽出部により抽出された前記第１の文書ファイルから前記文書の画像を生成する生成部と、
前記生成部により生成された前記画像を前記出力機器へ送信する送信部とを含む、情報処理システム。
【請求項２】
前記格納部は、前記第２の文書ファイルを格納する第１の格納部と、前記生成部により生成された前記文書の画像を格納する第２の格納部とを含み、
前記情報処理システムは、さらに、前記取得要求または前記送信要求から得られる情報に基づき、前記第２の格納部に格納された前記画像を取得するか、前記生成部に対して前記画像の生成を依頼するかを判断する制御部を含む、請求項１に記載の情報処理システム。
【請求項３】
前記第１の文書ファイルは、１以上のページを有する文書の文書ファイルであり、
前記取得要求または前記送信要求は、前記ページを識別するためのページ識別情報と、前記第１の文書ファイルから算出される値とを含み、
前記制御部は、前記ページ識別情報と前記値とを用いて生成される前記画像を識別するための画像識別情報に基づき、前記第２の格納部に格納された画像を検索し、前記画像識別情報が関連付けられた画像の有無により、前記画像を取得するか、前記画像の生成を依頼するかを判断する、請求項２に記載の情報処理システム。
【請求項４】
前記制御部は、前記生成部から依頼した画像を受け取った場合、前記送信部に対して該依頼した画像を送信するように指示するとともに、該依頼した画像を前記画像識別情報と関連付けて前記第２の格納部に格納する、請求項３に記載の情報処理システム。
【請求項５】
前記格納部は、前記抽出部により抽出された前記第１の文書ファイルを格納する第３の格納部を含み、
前記生成部は、前記制御部からの依頼を受けて、前記第３の格納部に格納された前記第１の文書ファイルから画像を生成するか、前記抽出部に対して前記第１の文書ファイルの抽出を依頼するかを判断する、請求項２〜４のいずれか１項に記載の情報処理システム。
【請求項６】
前記第１の文書ファイルは、１以上のページを有する文書の文書ファイルであり、
前記取得要求または前記送信要求は、前記ページを識別するためのページ識別情報と、前記第１の文書ファイルから算出される値とを含み、
前記抽出部は、前記値を用いて生成される前記第１の文書ファイルを識別するためのファイル識別情報に基づき、前記第３の格納部に格納された第１の文書ファイルを検索し、前記第２のファイル識別情報が関連付けられた第１の文書ファイルの有無により、前記第１の文書ファイルから画像を生成するか、前記第１の文書ファイルの抽出を依頼するかを判断する、請求項５に記載の情報処理システム。
【請求項７】
前記抽出部は、前記生成部からの依頼を受けて、前記第１の格納部に格納された前記第２の文書ファイルから前記第１の文書ファイルを抽出するとともに、抽出した前記第１の文書ファイルを、前記ファイル識別情報を関連付けて前記第３の格納部に格納する、請求項６に記載の情報処理システム。
【請求項８】
前記第１の文書ファイルは、１以上のページを有する文書の文書ファイルであり、前記第２の文書ファイルは、前記文書の１ページ目の画像を含み、
前記制御部は、前記要求受付部が前記文書の１ページ目の取得要求または送信要求を受け付けた場合、前記送信部に対して、前記第２の文書ファイルに含まれる前記１ページ目の画像を送信するように指示する、請求項２〜７のいずれか１項に記載の情報処理システム。
【請求項９】
前記第２の格納部に格納された前記画像は、最後に使用された日時の情報が関連付けられており、
前記情報処理システムは、さらに、設定された条件に従って、前記日時が古い順に前記画像を前記第２の格納部から削除する削除処理部を含む、請求項２〜８のいずれか１項に記載の情報処理システム。
【請求項１０】
前記削除処理部は、前記条件として、前記第２の格納部に格納された前記画像の合計した記憶容量が設定された容量を超えた場合、または設定された日数が経過した画像が存在する場合に、前記画像の削除を実行する、請求項９に記載の情報処理システム。
【請求項１１】
前記格納部は、前記抽出部により抽出された前記第１の文書ファイルを格納する第３の格納部を含み、
前記第３の格納部に格納された前記第１の文書ファイルは、最後に使用された日時の情報が関連付けられており、
前記削除処理部は、前記条件として、前記第３の格納部に格納された前記第１の文書ファイルの合計した記憶容量が設定された容量を超えた場合、または設定された日数が経過した第１の文書ファイルが存在する場合に、前記第１の文書ファイルの削除を実行する、請求項９または１０のいずれか１項に記載の情報処理システム。
【請求項１２】
前記生成部は、前記画像を生成するために使用するメモリにおいて、解放されないメモリ量が設定されたメモリ量以上になった場合に、複数の処理により前記画像を生成する際、実行中の処理を終了し、前記複数の処理のうちの該処理とは異なる処理を開始させる、請求項１〜１１のいずれか１項に記載の情報処理システム。
【請求項１３】
第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する情報処理装置であって、
前記第１の文書ファイルを、該第１の文書ファイルを含む第２の文書ファイルに変換する変換部と、
前記第２の文書ファイルを格納する格納部と、
出力機器から出力させる前記文書の取得要求または出力機器への前記文書の送信要求を受け付ける要求受付部と、
前記取得要求または前記送信要求を受け付けた前記文書について、前記格納部に格納された前記第２の文書ファイルから前記第１の文書ファイルを抽出する抽出部と、
前記抽出部により抽出された前記第１の文書ファイルから前記文書の画像を生成する生成部と、
前記生成部により生成された前記画像を前記出力機器へ送信する送信部とを含む、情報処理装置。
【請求項１４】
第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する処理をコンピュータに実行させるためのプログラムであって、
前記第１の文書ファイルを、該第１の文書ファイルを含む第２の文書ファイルに変換するステップと、
前記第２の文書ファイルを格納部に格納するステップと、
出力機器から出力させる前記文書の取得要求または出力機器への前記文書の送信要求を受け付けるステップと、
前記取得要求または前記送信要求を受け付けた前記文書について、前記格納部に格納された前記第２の文書ファイルから前記第１の文書ファイルを抽出するステップと、
抽出された前記第１の文書ファイルから前記文書の画像を生成するステップと、
生成された前記画像を前記出力機器へ送信するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する情報処理システム、情報処理装置およびその処理をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
金融機関、通信事業者、電力会社、水道事業者、ガス事業者等は、各顧客に対して月単位や期単位等で、利用明細書等の帳票を印刷して発行する。この帳票は、電子データとして保存され、顧客からの問い合わせ等があった場合に、担当者が再発行や応対のための閲覧等に利用される。
【０００３】
帳票は、印刷時に所定のファイル形式（フォーマット）の文書ファイルに変換し、印刷処理することができ、そのフォーマットの文書ファイルとして出力することができる。そして、大量の帳票を電子データとして保存し、データの確認や検索、データ編集等の作業を可能にし、ファイルを安全（セキュア）に管理するため、文書ファイルは、セキュアな独自のフォーマットの電子帳票ファイルに変換される。
【０００４】
ところで、帳票を作成した機器と、その帳票を閲覧する機器とが異なる場合、帳票内の文字の書式（フォント）や文字に変換するための文字コード等が異なることから、その閲覧する機器でその帳票を閲覧することができない。そこで、文字を対応表データに基づき変換し、変換不能文字がある場合、その変換不能文字をイメージデータとして取得して編集を行う技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の電子帳票ファイルで管理する場合、文書ファイル内で埋め込みフォントや外字が使用されていると、文書ファイル内のフォントを、電子帳票ファイルを表示する際に使用することができない。また、電子帳票ファイルは、独自のフォーマットのファイルであるため、上記の技術のように、変換不能文字をイメージデータとして取得し、編集を行うこともできない。
【０００６】
このため、文書ファイル内で使用されているフォント名と、そのフォントが使用されている文字を、電子帳票ファイルで表示する際に使用する代替フォントを指定して表示するしかなく、これでは、文書ファイルとは異なる表示結果になるという問題があった。
【０００７】
また、イメージと文字とが重なっている場合、電子帳票ファイルでの文字とイメージの表示順によっては、文書ファイルとは異なる表示結果となる場合があるという問題もあった。
【０００８】
本発明は、上記の問題に鑑みてなされたものであり、第１の文書ファイルと該第１の文書ファイルを変換した第２の文書ファイルとで、同じ出力結果を得ることができる情報処理システム、情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、発明の一実施形態では、第１の文書ファイルを変換し、変換後の第２の文書ファイルにより文書を管理する情報処理システムであって、第１の文書ファイルを、該第１の文書ファイルを含む第２の文書ファイルに変換する変換部と、第２の文書ファイルを格納する格納部と、出力機器から出力させる文書の取得要求または出力機器への文書の送信要求を受け付ける要求受付部と、要求受付部が受け付けた文書の格納部に格納された第２の文書ファイルから第１の文書ファイルを抽出する抽出部と、抽出部により抽出された第１の文書ファイルから文書の画像を生成する生成部と、生成部により生成された画像を出力機器へ送信する送信部とを含む、情報処理システムを提供する。
【発明の効果】
【００１０】
本発明によれば、第１の文書ファイルと該第１の文書ファイルを変換した第２のファイルとで、同じ出力結果を得ることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】文書管理システムの全体構成を示した図。
【図２】文書管理システムが備える情報処理装置としての管理サーバのハードウェア構成を示した図。
【図３】管理サーバの機能ブロック図。
【図４】第１のフォーマットの電子帳票ファイルの構成を例示した図。
【図５】文書ファイルを第１のフォーマットの電子帳票ファイルに変換する処理について説明する図。
【図６】第１のフォーマットの電子帳票ファイルの取得要求を受け付けた場合に実行される処理について説明する図。
【図７】図６に示す処理の流れを示したフローチャート。
【図８】文書ファイルやイメージを削除する処理について説明する図。
【図９】図８に示す処理の流れを示したフローチャート。
【図１０】プロセスを切り替え、メモリを解放する処理について説明する図。
【発明を実施するための形態】
【００１２】
図１は、文書管理システムの全体構成を示した図である。文書管理システムは、ユーザが利用するクライアント装置１０と、クライアント装置１０と通信を行い、文書を管理する情報処理装置としての管理サーバ１１とを含んで構成される。クライアント装置１０と管理サーバ１１とは、ＬＡＮ(Local Area Network)やインターネット等のネットワーク１２を介して接続される。
【００１３】
なお、ネットワーク１２は、有線ネットワークであってもよいし、無線ネットワークであってもよい。ネットワーク１２は、１つのネットワークに限られるものではなく、ルータやプロキシサーバ等の中継装置により接続された２以上のネットワークから構成されるものであってもよい。
【００１４】
クライアント装置１０は、文書を表示する等して出力する出力機器としても機能し、管理サーバ１１に対して文書の取得を要求し、管理サーバ１１から取得した文書を出力する。
【００１５】
管理サーバ１１は、クライアント装置１０に提供する文書の文書ファイルを管理し、クライアント装置１０からの文書の取得要求を受けて、対応する文書ファイルのページの情報を当該クライアント装置１０へ送信する。ここでは、情報処理装置としての管理サーバ１１を使用するものとして説明するが、管理サーバ１１に代えて、管理サーバ１１の機能を２以上の機器に分けて実装した情報処理システムを使用してもよい。また、管理サーバ１１は、クライアント装置１０に文書ファイルのページの情報を送信するようにしているが、これに限られるものではなく、他の機器、例えばネットワーク１２に接続されるプリンタ、MFP(Multi-Function Peripheral)、プロジェクタ等に送信してもよい。したがって、管理サーバ１１は、プリンタ等への送信要求を受けて、対応する文書ファイルのページの情報を当該プリンタ等へ送信することができる。このように送信要求を受けて送信してもよいが、以下、上記の取得要求を受けてクライアント装置１０へ文書ファイルのページの情報を送信するものとして説明する。
【００１６】
文書管理システムは、クライアント装置１０と管理サーバ１１のみから構成されていてもよいが、図１に示す構成では、データを出力するデータ出力サーバ１３と、アプリケーションサーバ１４とをさらに備えている。データ出力サーバ１３は、データを出力するプリンタ等の出力機器と接続され、作成した文書データをプリンタ等の出力機器や管理サーバ１１に出力する装置である。アプリケーションサーバ１４は、ユーザからの要求を受けて、管理サーバ１１の処理に橋渡しを行う機能をもった装置である。
【００１７】
以降、文書を、出金等を記録として残したり、相手方へ通知するために作成される書類である帳票として説明する。帳票としては、出納帳、仕訳帳、入出金伝票、売上伝票、請求書、領収書、納品書等を挙げることができる。
【００１８】
データ出力サーバ１３は、例えば帳票アプリケーションを実装し、帳票データを出力する。データ出力サーバ１３は、出力先としてプリンタのほか、管理サーバ１１を指定することができ、管理サーバ１１を指定することで、帳票データを保存し、管理させることができる。
【００１９】
アプリケーションサーバ１４は、管理サーバ１１の処理に必要とされる帳票データを任意のフォーマットの文書ファイルとして保持する。アプリケーションサーバ１４は、管理サーバ１１からの要求により文書ファイルを送信してもよいし、ホットフォルダと呼ばれる管理サーバ１１へ転送する機能をもったフォルダ内に文書ファイルを格納し、その機能により管理サーバ１１に転送させるようにしてもよい。文書ファイルは、例えば埋め込みフォントや外字等を使用することができ、多くの表現方法で帳票の内容を表現することができるフォーマットのファイルとすることができる。
【００２０】
管理サーバ１１は、データ出力サーバ１３から出力された帳票データから管理する独自のフォーマットのファイルを作成し、また、アプリケーションサーバ１４からの文書ファイルを独自のフォーマットのファイルに変換し、管理する。ユーザが使用するクライアント装置１０は、この独自のフォーマットのファイルを表示することが可能なアプリケーションを実装しており、このアプリケーションを使用して、帳票の内容を確認したり、検索したり、データを編集することができる。
【００２１】
管理サーバ１１は、作成したファイルや変換したファイルを電子帳票ファイルとして格納し、その電子帳票ファイルを管理する。なお、文書ファイルを全てこのフォーマットの電子帳票ファイルに変換すると、文書ファイル内の埋め込みフォントや外字を、変換された電子帳票ファイルで表示する際に使用することができない。また、イメージと文字が重なっている場合に、電子帳票ファイルでイメージと文字の表示順により、電子帳票ファイルでの表示が文書ファイルの場合と異なる。
【００２２】
そこで、管理サーバ１１は、後述する機能を備え、この機能によりこれらの問題を解消する。機能について説明する前に、管理サーバ１１のハードウェア構成を、図２を参照して説明する。管理サーバ１１は、ハードウェアとして、ＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２、ＨＤＤ２３、通信Ｉ／Ｆ２４、接続Ｉ／Ｆ２５を備える。これらは、バス２６に接続され、バス２６を介して互いに情報のやりとりを行う。
【００２３】
ＣＰＵ２０は、管理サーバ１１全体を制御し、上記の変換等の処理や後述する機能を実行する。ＲＯＭ２１は、管理サーバ１１を起動させるためのブートプログラムや、ＨＤＤ２３や通信Ｉ／Ｆ２４等を制御するためのファームウェア等を格納する。ＲＡＭ２２は、ＣＰＵ２０に対して作業領域を提供する。
【００２４】
ＨＤＤ２３は、ＯＳ、上記の変換等の処理や後述する機能を実行するためのプログラム、管理する電子帳票ファイル等を格納する。プログラムとしては、クライアント装置１０からの帳票の取得要求に応じて帳票に関する処理を実行するプログラム、文書ファイルを電子帳票ファイルに変換するプログラム、帳票データから電子帳票ファイルを作成するプログラム、後述する機能を実現するためのプログラムを実装することができる。
【００２５】
通信Ｉ／Ｆ２４は、図１に示すネットワーク１２と接続し、ネットワーク１２を介してクライアント装置１０と通信を行う。接続Ｉ／Ｆ２５は、ケーブル等によりデータ出力サーバ１３およびアプリケーションサーバ１４と接続する。なお、データ出力サーバ１３およびアプリケーションサーバ１４も、ネットワーク１２に接続され、ネットワーク１２を介して通信を行ってもよい。
【００２６】
管理サーバ１１は、これらのほか、外付けＨＤＤ等の外部記憶装置と接続し、外部記憶装置への情報の格納や読み出しを制御するための外部記憶Ｉ／Ｆ、情報を表示する表示装置、情報を入力するための入力装置等を備えることができる。
【００２７】
図３は、管理サーバ１１の機能ブロック図である。管理サーバ１１は、プログラムを実行することにより各機能を実現するための各機能部を生成し、それらの機能部を備えることができる。管理サーバ１１は、その機能部として、少なくとも変換部３０、要求受付部３１、格納部３２、抽出部３３、生成部３４、送信部３５を含む。図３に示す例では、そのほか、ファイル作成部３６、制御部３７を備えている。なお、その他の機能部をさらに備えることも可能である。
【００２８】
ファイル作成部３６は、データ出力サーバ１３で作成された帳票データから電子帳票ファイルを作成する。電子帳票ファイルの内容については、本発明に直接関係しないので、ここでは詳述しない。作成された電子帳票ファイルは、格納部３２に格納される。
【００２９】
変換部３０は、アプリケーションサーバ１４が保持する文書ファイルを電子帳票ファイルに変換する。変換部３０は、１つのフォーマットの電子帳票ファイルだけではなく、２以上の異なるフォーマットの電子帳票ファイルに変換することができる。ここでは、２つのフォーマットの電子帳票ファイルに変換することができるものとして説明する。
【００３０】
具体的には、変換部３０は、設定によりフォーマットが指定されたホットフォルダに投入され、転送された文書ファイルを、そのフォーマットの電子帳票ファイルに変換する。２つのフォーマットは、例えば異なるバージョンのフォーマットである。２つのフォーマットのうちの第２のフォーマットは、従来から採用されている独自のものであるため、ここではその説明は省略し、もう１つの第１のフォーマットについてのみ、詳述する。
【００３１】
図４は、第１のフォーマットの電子帳票ファイルの構成を例示した図である。変換部３０による変換では、変換元の文書ファイルに含まれる文字に関する情報のみを指定されたフォーマットのファイルＡに変換する。文字に関する情報は、ユーザ情報や変換元の文書ファイルのファイル名等を含むことができる。ユーザ情報としては、ユーザ名やユーザを識別するための識別情報であるユーザＩＤ等を挙げることができる。また、文書ファイルの１ページ目の画像（イメージ）を生成する。第１のフォーマットの電子帳票ファイルは、変換したファイルＡと、生成した１ページ目のイメージと、変換元の文書ファイルの内容とを含んで構成される。変換元の文書ファイルの内容は、変換元の文書ファイルそのままの内容である。
【００３２】
第１のフォーマットの電子帳票ファイルには、その他の情報を含めることができる。その他の情報としては、例えば変換元の文書ファイルから生成したハッシュコード（ハッシュ値）を含めることもできる。ハッシュ値は、変換元の文書ファイルから一定の計算手順により算出される規則性がない固定長の値であり、ハッシュ関数を使用して算出することができる。ハッシュ値は、格納部３２の１つであるキャッシュに格納するイメージ等を識別するためのファイル名等に使用することができる。
【００３３】
また、第１のフォーマットの電子帳票ファイルには、ファイルＡに含まれる先頭ページに対応する文書ファイルのページを示す情報を含めることができる。これは、変換後のファイルＡの最大ページ数が、文書ファイルのページ数よりも小さい場合、文書ファイルの一部がファイルＡとして使用される際に使用するものである。したがって、ファイルＡの最大ページ数と、文書ファイルのページ数が同じ場合は、この情報は含めなくてもよい。
【００３４】
図５を参照して、変換部３０が行う変換処理について詳細に説明する。変換部３０は、各ホットフォルダに設定されたフォーマットに関する情報を含むプロファイル情報を取得し、そのプロファイル情報に基づき変換処理を行う。文書ファイルは、文字に関する情報、図形や画像等を含む。変換部３０は、文書ファイル内の文字に関する情報のみを使用して文字とその属性情報を作成し、同じ文字とその属性情報の繰り返しを省略する等して文字情報を圧縮することにより、文字に関する情報を変換する。これにより、上記のファイルＡを生成する。
【００３５】
また、変換部３０は、文書ファイルの１ページ目のイメージを生成する。なお、１ページがユーザ情報のページである場合は、そのページはページ数にカウントしない。それ以外は、空白（ブランク）のページであっても、ページ数にカウントする。１ページ目のイメージを生成する理由は、ユーザが電子帳票ファイルを要求し、最初に表示するのは１ページ目であり、その１ページ目を迅速に提供するためである。そして、変換部３０は、文書ファイルからハッシュ値を生成し、文書ファイルをそのまま入れ込み、第１のフォーマットの電子帳票ファイルを生成する。
【００３６】
再び図３を参照して、要求受付部３１は、クライアント装置１０から電子帳票ファイルを表示するために、そのファイルを表す帳票の取得要求を受け付ける。この要求は、帳票の１ページ目や２ページ目等の指定したページの取得要求である。制御部３７は、帳票の１ページ目の取得要求を受け付けた場合、この帳票の電子帳票ファイルは、１ページ目のイメージを含むため、送信部３５に対して、そのイメージを送信するように指示する。
【００３７】
２ページ目以降の取得要求を受け付けた場合は、制御部３７は、生成部３４に対して、電子帳票ファイルに含まれる文書ファイルから要求されたページのイメージを生成するように指示する。
【００３８】
格納部３２は、変換部３０により変換された第１のフォーマットの電子帳票ファイルを格納するほか、抽出部３３が抽出した文書ファイルや生成部３４が生成したイメージをファイルキャッシュとして格納し、管理することができる。これにより、制御部３７は、要求されたページのイメージが格納されていれば、そのイメージを取り出し、送信部３５に対して、そのイメージを送信するように指示することができる。また、そのイメージが格納されていない場合でも、要求された電子帳票ファイルから抽出した文書ファイルが格納されていれば、制御部３７は、生成部３４に対して、その文書ファイルを用いて要求されたページのイメージを生成するように指示し、送信部３５に対して、生成されたイメージを送信するように指示することができる。
【００３９】
一度要求されたファイルから抽出した文書ファイルや生成したイメージをファイルキャッシュとして保持しておくことで、迅速にイメージを提供することができ、必要なファイルを表示する際のパフォーマンスを向上させることができる。ちなみに、クライアント装置１０に対して、イメージを送信して提供することで、文書ファイルが表示可能なフォントや様々な図形等の表現をそのままユーザに提供することが可能となる。
【００４０】
したがって、制御部３７は、要求されたページが１ページ目の場合、電子帳票ファイル内の１ページのイメージを送信するように指示し、２ページ目以降の場合、既にそのイメージがファイルキャッシュとして格納されていれば、それを送信するように指示し、格納されていない場合、イメージを生成するように指示することができる。
【００４１】
電子帳票ファイルは、ファイルを識別するための情報として、ファイル名が関連付けられている。しかしながら、ファイルキャッシュとして格納されるイメージやページのファイルには、それらを識別するための情報が存在しない。そこで、要求されるファイルやページ等の情報からイメージやページのファイルを識別するための情報（例えばファイル名）を生成し、イメージやページのファイルに関連付ける。
【００４２】
イメージやページのファイルに関連付けるファイル名としては、ハッシュ値と、ページ番号とを含むものとすることができる。具体的には、「ハッシュ値_ページ番号」とすることができる。なお、イメージについては、さらに解像度の情報を含めることができ、「ハッシュ値_ページ番号_解像度」とすることができる。これらは一例であるので、ファイル名は、これらに限定されるものではない。このようなファイル名は、所定のアルゴリズムを使用して生成することができる。
【００４３】
送信部３５は、制御部３７により指示されたイメージを要求元のクライアント装置１０へ送信する。クライアント装置１０は、送信部３５から受信したイメージを、クライアント装置１０が備える表示部に表示して、そのページの内容をユーザに提示する。
【００４４】
なお、第２のフォーマットの電子帳票ファイルの任意のページが要求される場合は、制御部３７が要求された電子帳票ファイルを格納部３２から取得し、要求されたページを送信するように送信部３５に対して指示する。クライアント装置１０は、そのページを受信して表示することができる。この場合、そのページに埋め込みフォントや外字等があるとき、代替したフォント等として表示され、文書ファイルと同一のフォント等を表示させることはできない。
【００４５】
管理サーバ１１が行う第１のフォーマットの電子帳票ファイルの取得要求を受け付けた場合の処理について、図６および図７を参照して詳細に説明する。図６は、ファイルや要求等の流れを例示した図で、図７は、その処理の流れを示したフローチャートである。図６に示す例では、格納部３２が、電子帳票ファイルを格納する第１の格納部３２ａ、イメージを格納する第２の格納部３２ｂ、文書ファイルを格納する第３の格納部３２ｃとして構成されている。
【００４６】
なお、管理サーバ１１と、該管理サーバ１１とは別の１以上のサーバとから構成される情報処理システムを採用する場合、管理サーバ１１に、要求受付部３１、第２の格納部３２ｂ、送信部３５、制御部３７を備え、別の１以上のサーバに、第１の格納部３２ａ、第３の格納部３２ｃ、抽出部３３、生成部３４を備えることができる。これは一例であるので、これに限られるものではない。
【００４７】
まず、図６を参照して、制御部３７は、要求受付部３１が受け付けた要求から電子帳票ファイルの格納場所を示す情報（フルパス）と、ハッシュ値と、ページ番号と、解像度の情報とを取得する。制御部３７は、ページ番号が１である場合、フルパスに含まれるファイル名に基づき、第１の格納部３２ａから電子帳票ファイルに含まれる１ページ目のイメージを取得し、送信部３５に対して、そのイメージを送信するように指示する。
【００４８】
制御部３７は、ページ番号が１以外の場合、ハッシュ値、ページ番号、解像度の情報からファイル名を生成し、第２の格納部３２ｂ内に、生成したファイル名が関連付けられたイメージが存在するかを確認する。存在する場合は、第２の格納部３２ｂからそのイメージを取得し、送信部３５に対して、取得したイメージを送信するように指示する。
【００４９】
第２の格納部３２ｂ内にそのファイル名のイメージが存在しない場合、制御部３７は、生成部３４に対して、フルパス、ハッシュ値、ページ番号、解像度の情報を渡し、イメージの生成を依頼する。
【００５０】
生成部３４は、受け取ったフルパス、ハッシュ値、ページ番号、解像度の情報からファイル名を生成し、第３の格納部３２ｃ内に、生成したファイル名の文書ファイルが存在するかを確認する。そのファイル名の文書ファイルが存在する場合、生成部３４は、ページ番号に基づき、その文書ファイル内の該当するページのイメージを生成し、制御部３７に返す。生成部３４は、生成したファイル名の文書ファイルが存在しない場合、抽出部３３に対して、フルパスおよびハッシュ値を渡し、文書ファイルの抽出を依頼する。
【００５１】
抽出部３３は、受け取ったフルパスに基づき、第１の格納部３２ａに格納された１以上の電子帳票ファイルの中から該当する電子帳票ファイルを特定し、特定した電子帳票ファイルから文書ファイルを抽出する。電子帳票ファイルは、文書ファイルをそのまま入れ込んだだけのものであるから、文書ファイルをそのまま取り出すことにより抽出することができる。抽出部３３は、抽出した文書ファイルを生成部３４に返すとともに、ハッシュ値を使用してファイル名を生成し、第３の格納部３２ｃに、生成したファイル名を関連付けて、抽出した文書ファイルを格納する。生成部３４は、ページ番号に基づき、抽出部３３から受け取った文書ファイル内の該当するページのイメージを生成し、制御部３７に返す。
【００５２】
制御部３７は、送信部３５に対して、生成部３４から受け取ったイメージを送信するように指示するとともに、ハッシュ値、ページ番号、解像度の情報を使用してファイル名を生成し、生成したファイル名をイメージに関連付けて第２の格納部３２ｂに格納する。
【００５３】
管理サーバ１１が行う第１のフォーマットの電子帳票ファイルの取得要求を受け付けた場合の処理の内容は、以上の通りであるが、この処理の流れをまとめると、図７に示すフローとなる。管理サーバ１１は、クライアント装置１０に対し、取得可能な電子帳票ファイルのフルパス、ハッシュ値、解像度の情報を通知している。このため、クライアント装置１０は、それらの情報に、表示させたいページのページ番号を含めた取得要求を送信することができる。
【００５４】
要求受付部３１がクライアント装置１０から第１のフォーマットの電子帳票ファイルの任意のページの取得要求を受け付けたことにより、ステップ７００から処理を開始する。ステップ７０５では、制御部３７が、受け付けた取得要求から電子帳票ファイルのファイル名を含むフルパス、ハッシュ値、ページ番号、解像度の情報を取得する。
【００５５】
ステップ７１０では、制御部３７が、ページ番号が１であるかを確認し、１である場合、ステップ７１５で、第１の格納部３２ａからそのファイル名の電子帳票ファイルに含まれる１ページ目のイメージを取得し、送信部３５に対してそのイメージの送信を指示する。送信部３５は、１ページ目のイメージをクライアント装置１０に送信する。そして、ステップ７７０へ進み、その要求に対する処理を終了する。
【００５６】
ページ番号が１以外である場合、ステップ７２０へ進み、第２の格納部３２ｂに、要求されたページのイメージが存在するかを確認する。存在する場合、ステップ７２５へ進み、第２の格納部３２ｂから該当するイメージを取得し、送信部３５に対してそのイメージの送信を指示する。送信部３５は、そのイメージをクライアント装置１０に送信する。そして、ステップ７７０へ進み、その要求に対する処理を終了する。
【００５７】
ステップ７２０で要求されたページが存在しない場合、ステップ７３０へ進み、生成部３４に対して、フルパス、ハッシュ値、ページ番号、解像度の情報を渡し、そのページのイメージの生成を依頼する。ステップ７３５では、生成部３４が、ハッシュ値からファイル名を生成し、生成したファイル名の文書ファイルが第３の格納部３２ｃに存在するかを確認する。存在する場合、ステップ７４０へ進み、生成したファイル名に基づき、第３の格納部３２ｃから該当する文書ファイルを取得し、ページ番号および解像度に基づき、そのページのイメージを生成し、制御部３７に返す。
【００５８】
一方、ステップ７３５で第３の格納部３２ｃに存在しない場合、ステップ７４５へ進み、生成部３４は、抽出部３３に対して、フルパス、ハッシュ値を渡し、文書ファイルの抽出を依頼する。ステップ７５０では、抽出部３３が、フルパスを使用して第１の格納部３２ａ内の該当する電子帳票ファイルを特定し、特定した電子帳票ファイルから文書ファイルを抽出する。ステップ７５５で、抽出部３３は、抽出した文書ファイルを生成部３４に返すとともに、ハッシュ値を使用してファイル名を生成し、抽出した文書ファイルに生成したファイル名を関連付けて第３の格納部３２ｃに格納する。
【００５９】
ステップ７６０では、生成部３４が、抽出部３３から文書ファイルを受け取り、解像度の情報を用いてページ番号で指定されたページのイメージを生成する。そして、生成部３４は、制御部３７に対し、生成したイメージを返す。
【００６０】
ステップ７６５で、制御部３７は、送信部３５に対して受け取ったイメージの送信を指示するとともに、ハッシュ値、ページ番号、解像度の情報を用いてファイル名を生成し、そのイメージに生成したファイル名を関連付けて第２の格納部３２ｂに格納する。このようにして、要求されたページのイメージを送信したところで、ステップ７７０でその要求に対する処理を終了する。
【００６１】
ここで、第１の格納部３２ａに格納される電子帳票ファイルは、独自のフォーマットであるため、電子帳票ファイルを開くことができるアプリケーションを実装するクライアント装置１０等でなければ、その内容を表示することはできない。しかしながら、第３の格納部３２ｃに格納される文書ファイルや第２の格納部３２ｂに格納されるイメージは、独自のフォーマットではないため、一般的なツールを使用して表示することができる。このままでは、文書の内容が知られる可能性があり、セキュリティ上の問題が生じる。
【００６２】
そこで、例えばＷｉｎｄｏｗｓ（登録商標）の機能として提供されているキャッシュファイルパスのフォルダを暗号化する機能を利用し、キャッシュしているファイル全体を暗号化することができる。この場合、文書ファイルやイメージを取得する際、復号することができる。これは一例であるため、その他の方法を採用してもよい。
【００６３】
イメージの解像度は、低いと、表示するときに斜線や曲線等のギザギザが目立ち、高いと、イメージ作成時の負荷が高くなる。このため、一定の解像度に設定される。一定の解像度に設定しても、文字とイメージについては上記のギザギザをなくし、滑らかに見せるスムージングと呼ばれる処理を行うほうが、文書ファイルを表示した結果との差分が小さくなる。イメージ作成では、ページ内の文字とイメージの線を作成する際、スムージングを行うかどうかの指定により、処理時間が変わることが知られている。
【００６４】
しかしながら、実際に計測してみると、スムージングを行う場合と行わない場合の処理時間は数％しか違わないことが分かった。品質の差は、イメージを表示したときに、スムージングを行うか否かでその違いが認識される。このように処理時間が数％しか違わず、その違いが認識されることから、スムージングを行うように設定することが望ましい。
【００６５】
第２の格納部３２ｂや第３の格納部３２ｃにイメージや文書ファイルを格納しておくことで、パフォーマンスを向上させている。その一方で、第２の格納部３２ｂおよび第３の格納部３２ｃは、制御部３７がイメージを格納するたびに、抽出部３３が文書ファイルを格納するたびに増えていく。第２の格納部３２ｂおよび第３の格納部３２ｃは、イメージや文書ファイルを格納するための領域が無限大に存在するものではなく、限られた領域しか存在しない。したがって、いずれかの時点で、格納する領域がなくなってしまう。
【００６６】
そこで、文書ファイルやイメージには、最後に使用した日時（最終アクセス日時）の情報を付加し、最終アクセス日時が最も古い順に削除することで、格納する領域がなくなることを防止する。最終アクセス日時が最も古いものは、今後もアクセスされる可能性が低いと考えられるからである。文書ファイルやイメージの削除処理は、別途設けられる削除処理部により実行することができる。
【００６７】
図８を参照して説明すると、第３の格納部３２ｃに既に文書ファイル１〜９９が格納され、文書ファイル１から順に最終アクセス日時が古いものとする。ここで、第３の格納部３２ｃに文書ファイル１００を新しく格納する。この格納により第３の格納部３２ｃに格納された文書ファイルの容量（サイズ）の合計が設定されたサイズを超えた場合、設定されたサイズ未満になるように、最終アクセス日時が最も古い文書ファイル１から順に削除する。図８に示す例では、文書ファイル１を削除している。
【００６８】
例えば、超えた分に相当するサイズが１０ＭＢで、文書ファイル１のサイズが５ＭＢ、文書ファイル２のサイズが６ＭＢであった場合、文書ファイル１のみでは、設定されたサイズ未満にならないので、文書ファイル２も削除する。これにより、設定されたサイズ未満にすることができる。また、超えた分に相当するサイズが同じく１０ＭＢで、文書ファイル１のサイズが５ＭＢ、文書ファイル２のサイズが３ＭＢ、文書ファイル３のサイズが３ＭＢであった場合は、文書ファイル１〜３を削除することで、設定されたサイズ未満にすることができる。
【００６９】
文書ファイルやイメージの削除を開始する条件としては、以下の条件を採用することができる。第１の条件は、上記の、第３の格納部３２ｃに格納された文書ファイルのサイズの合計が設定されたサイズを超えた場合である。開始する条件の基準となるサイズは、５００ＧＢといった具体的なサイズを設定してもよいし、第３の格納部３２ｃの記憶容量の８０％といったパーセントを設定してもよい。
【００７０】
第２の条件は、第２の格納部３２ｂに格納されたイメージのサイズの合計が設定されたサイズを超えた場合である。第３の条件は、１日の中で設定された時刻に、第３の格納部３２ｃに格納された文書ファイルのサイズの合計および第２の格納部３２ｂに格納されたイメージのサイズの合計のいずれかが、設定されたサイズを超えたかどうかを確認し、いずれかが超えた場合である。
【００７１】
第４の条件は、設定された時間間隔で、第３の格納部３２ｃに格納された文書ファイルのサイズの合計および第２の格納部３２ｂに格納されたイメージのサイズの合計のいずれかが、設定されたサイズを超えたかどうかを確認し、いずれかが超えた場合である。第５の条件は、最終アクセス日時から設定された日数が経過した場合である。なお、第５の条件は、設定された時刻になったときや、設定された時間が経過したときに確認を行い、そのときに最終アクセス日時から設定された日数が経過した場合とすることができる。これらの条件は一例であるため、他の条件を採用することも可能である。
【００７２】
図９は、第２の格納部３２ｂおよび第３の格納部３２ｃに格納されるイメージおよび文書ファイルを削除する処理の流れを示したフローチャートである。ステップ９００から開始し、ステップ９０５で、一定の時間が経過するまで待機するため、タイマを起動する。この例では、１分間のタイマを起動している。この時間は一例であるため、２分間や３分間等であってもよい。ステップ９１０で、時刻が設定されているかを判断し、設定されている場合、ステップ９１５で設定された時刻になったかどうかを判断する。なっていない場合、その時刻になるまでステップ９０５〜ステップ９１５の処理を繰り返す。
【００７３】
ステップ９１０で時刻が設定されていない場合、ステップ９２０へ進み、時間間隔が設定されているかを判断する。設定されている場合、ステップ９２５で設定された時間が経過したかを判断する。経過していない場合、経過するまでステップ９０５〜ステップ９２５（ステップ９１５は除く。）の処理を繰り返す。なお、時間間隔が設定されていない場合、時刻、時間間隔のいずれかが設定されるまで、ステップ９０５〜ステップ９２０（ステップ９１５は除く。）の処理を繰り返す。
【００７４】
ステップ９１５で設定された時刻になった場合、またはステップ９２５で設定された時間が経過した場合、ステップ９３０へ進み、最終アクセス日時に基づく削除処理を行う設定になっているかを判断する。例えば、その削除処理を行うことを示す値（１以上の値）になっているかを判断する。その設定になっている場合（その値が１以上の場合）、ステップ９３５へ進み、第３の格納部３２ｃから最終アクセス日時が設定された日数が経過した文書ファイルを削除する。そして、ステップ９４０で、第２の格納部３２ｂから最終アクセス日時が設定された日数が経過したイメージを削除する。削除後、ステップ９０５へ戻る。ここでは、文書ファイルを先に削除し、イメージを後に削除しているが、いずれが先であってもよく、また、同時であってもよい。
【００７５】
ステップ９３０で、最終アクセス日時に基づく削除処理を行う設定になっていない場合（上記の値が０の場合）、ステップ９４５へ進み、第３の格納部３２ｃに格納された文書ファイルの合計のサイズを確認する。ステップ９５０で、合計のサイズが設定されたサイズを超えているかを判断し、超えている場合、ステップ９５５で、第３の格納部３２ｃに格納された文書ファイルを最終アクセス日時が古い順に、合計のサイズが設定されたサイズ未満になるまで、文書ファイルを削除する。超えていない場合、ステップ９６０へ直接進む。
【００７６】
ステップ９６０では、第２の格納部３２ｂに格納されたイメージの合計のサイズを確認する。ステップ９６５で、合計のサイズが設定されたサイズを超えているかを判断し、超えている場合、ステップ９７０で、第２の格納部３２ｂに格納されたイメージを最終アクセス日時が古い順に、合計のサイズが設定されたサイズ未満になるまで、イメージを削除する。削除後、ステップ９０５へ戻る。超えていない場合も、ステップ９０５へ戻る。ステップ９４５〜ステップ９７０の処理も、文書ファイルを先に削除し、イメージを後に削除しているが、いずれが先であってもよく、また、同時であってもよい。
【００７７】
このようにして、削除処理を繰り返し実行することで、第２の格納部３２ｂや第３の格納部３２ｃにイメージや文書ファイルを格納する領域がなくなることを防止することができる。
【００７８】
生成部３４は、第３の格納部３２ｃから取得した、または抽出部３３が抽出した文書ファイルから、ページ番号で指定されたページのイメージを生成する処理を実行するが、その際、ＲＡＭ２２をメモリとして使用し、その処理を実行する。また、生成部３４は、イメージを生成する処理を実行する際、ライブラリと呼ばれる汎用性の高い部品化されたプログラムをひとまとまりにしたものを使用する。メモリは、処理を開始するとき等の必要になった時点で確保され、処理を終了するとき等の不要になった時点で解放される。
【００７９】
しかしながら、生成部３４がライブラリを使用してイメージ生成処理を行うと、正しく終了処理を行っても、解放されないメモリが発生する。この解放されないメモリを完全に解放させるためには、イメージ生成処理を行っているプロセスを終了させることが最も有効である。
【００８０】
そこで、解放されないメモリ量を監視し、設定された量以上のメモリが解放されていないと判断した場合、イメージ生成処理を行う複数の処理（プロセス）のうちの現在実行しているプロセスを他のプロセスに切り替えることで、解放されないメモリを解放させる。プロセスを切り替えるので、イメージ生成処理を行っているプロセスを終了させることができ、他のプロセスを起動させるので、イメージ生成処理の遅延を小さくすることができる。
【００８１】
具体的には、生成部３４は、処理を開始する際、設定された数のプロセスを起動し、そのすべてのイメージ生成処理を行うスレッドに対し、ライブラリの初期化（再構築）を行う。これは、最初のプロセスを終了させた後、他のプロセスを即座に開始させるためである。
【００８２】
図１０に示すように、各プロセスは、複数の、並列して実行可能な処理単位であるスレッドを含む。図１０に示す例では、３つのプロセス（プロセス１〜プロセス３）が起動され、各プロセスは、４つのスレッドを含んでいる。
【００８３】
最初のプロセス、例えば図１０のプロセス１で解放されないメモリ量が、設定された量（サイズ）を超えた場合、次のイメージ生成処理を行うプロセスを他のプロセス、例えば図１０のプロセス２に切り替える処理を行う。すなわち、プロセス１を終了し、プロセス２を開始する。
【００８４】
そして、切り替わったプロセス２で、イメージの生成処理を行っている間に、当該最初のプロセス１を終了させ、新たにプロセスを起動（再起動）する。再起動後、イメージ生成処理を行うスレッドに対し、ライブラリの初期化を実施する。
【００８５】
このように、プロセスを再起動させ、それに伴うスレッドに対するライブラリを初期化することにより、解放されないメモリを解放させることができる。また、再起動およびライブラリの初期化の間に、他のプロセスを開始させ、イメージ生成処理を実施させることで、クライアント装置１０においてページの表示までの時間的な遅延を小さくすることができる。
【００８６】
図１０の矢線で示すように、プロセス１を再起動している間は、プロセス２がイメージ生成処理を行い、そのプロセス２も再起動する場合は、プロセス３がイメージ生成処理を行うことができる。なお、プロセス３も再起動が必要になる可能性があるが、プロセス３の再起動が必要になる前に、プロセス１の再起動が完了するため、プロセス３を再起動している間は、再起動したプロセス１がイメージ生成処理を行うことができる。
【００８７】
以上のように、イメージを提供することで、文書ファイルとその文書ファイルを変換した電子帳票ファイルとで同じ埋め込みフォントや外字等で表示させることができる。また、第２の格納部３２ｂにイメージ、第３の格納部３２ｃに文書ファイルを格納しておくことで、イメージを迅速に提供することができ、表示の遅延を小さくすることができる。さらに、第２の格納部３２ｂに格納されるイメージ、第３の格納部３２ｃに格納される文書ファイルを適宜削除することで、それらを格納する領域がなくなることを防止することができる。
【００８８】
これまで本発明を、情報処理システム、情報処理装置およびプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００８９】
したがって、情報処理システムや情報処理装置が実行する方法、上記プログラムが記録された記録媒体、上記プログラムを提供する外部機器等も提供することができるものである。
【符号の説明】
【００９０】
１０…クライアント装置、１１…管理サーバ、１２…ネットワーク、１３…データ出力サーバ、１４…アプリケーションサーバ、２０…ＣＰＵ、２１…ＲＯＭ、２２…ＲＡＭ、２３…ＨＤＤ、２４…通信I/F、２５…接続Ｉ／Ｆ、２６…バス、３０…変換部、３１…要求受付部、３２…格納部、３２ａ…第１の格納部、３２ｂ…第２の格納部、３２ｃ…第３の格納部、３３…抽出部、３４…生成部、３５…送信部、３６…ファイル作成部、３７…制御部
【先行技術文献】
【特許文献】
【００９１】
【特許文献１】特許第４５３０５７２号公報
【図１】
2018101325.tif 000003
【図２】
2018101325.tif 000004
【図３】
2018101325.tif 000005
【図４】
2018101325.tif 000006
【図５】
2018101325.tif 000007
【図６】
2018101325.tif 000008
【図７】
2018101325.tif 000009
【図８】
2018101325.tif 000010
【図９】
2018101325.tif 000011
【図１０】
2018101325.tif 000012