(57)【要約】      （修正有）【課題】結合後のデジタル文書のファイルサイズの無駄な増加を抑える。【解決手段】ＭＦＰは、それぞれが少なくとも１つのリソースデータを含む第１文書ファイルおよび第２文書ファイルを取得するファイル受付部Ｓ０２と、第１文書ファイルと第２文書ファイルとに同一のリソースデータが含まれているか否かを調査する調査部Ｓ０８と、同一のリソースデータが含まれている場合、第２文書ファイルに含まれる同一のリソースデータを削除し、第１文書ファイルに含まれる同一のリソースデータを含むように第２文書ファイルを再構成する再構成部Ｓ１１と、同一のリソースデータと、第１文書ファイルおよび第２文書ファイルにそれぞれ含まれる個別リソースデータと、第１文書ファイルに含まれる他部分のデータと、第２文書ファイルに含まれる他部分のデータとを結合する結合部Ｓ１４と、を備える。【選択図】図７
2008271098.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得する取得手段と、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するリソースデータ調査手段と、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれている場合、前記第２のデジタル文書に含まれる前記同一のリソースデータを削除し、前記第１のデジタル文書に含まれる前記同一のリソースデータを含むように前記第２のデジタル文書を再構成するリソースデータ再構成手段と、
前記同一のリソースデータと、前記第１のデジタル文書および前記第２のデジタル文書にそれぞれ含まれる前記同一のリソースデータ以外の個別リソースデータと、前記第１のデジタル文書に含まれる前記同一および前記個別リソースデータ以外の他の文書データと、前記第２のデジタル文書に含まれる前記個別リソースデータ以外の他の文書データとを結合する文書結合手段と、を備えた文書結合装置。
【請求項２】
前記第１のデジタル文書および前記第２のデジタル文書それぞれは、少なくとも１つのリソースデータを独立したファイルとして含み、前記少なくとも１つのリソースデータを階層構造で管理し、最上位階層が圧縮された単独のファイルである、請求項１に記載の文書結合装置。
【請求項３】
前記リソースデータ調査手段は、前記第１のデジタル文書および前記第２のデジタル文書の前記階層構造の所定の階層にそれぞれ含まれる複数の前記リソースデータを比較する、請求項２に記載の文書結合装置。
【請求項４】
前記リソースデータ調査手段は、複数の前記リソースデータを同一のハッシュ関数でそれぞれ算出して得られるハッシュ値を比較する、請求項１に記載の文書結合装置。
【請求項５】
前記リソースデータ調査手段は、前記第１のデジタル文書および前記第２のデジタル文書が同一の証明書で電子署名されている場合は、前記第１のデジタル文書および前記第２のデジタル文書それぞれの所定の階層に存在する全リソースデータに対するハッシュ値を用いて、リソースデータが同一か否かを判別する、請求項４記載の文書結合装置。
【請求項６】
前記電子署名はＸＭＬ署名である、請求項５に記載の文書結合装置。
【請求項７】
前記ハッシュ関数で算出して得られるハッシュ値を所定の形式で記録する記録部をさらに備えた、請求項５に記載の文書結合装置。
【請求項８】
前記ハッシュ関数は、ＭＤ（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ）およびＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）のいずれかである、請求項４に記載の文書結合装置。
【請求項９】
前記リソースデータは、フォントと、画像と、プリントチケットと、ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）プロファイルのいずれかである、請求項１に記載の文書結合装置。
【請求項１０】
それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得するステップと、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するステップと、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれている場合、前記第２のデジタル文書に含まれる前記同一のリソースデータを削除し、前記第１のデジタル文書に含まれる前記同一のリソースデータを含むように前記第２のデジタル文書を再構成するステップと、
前記同一のリソースデータと、前記第１のデジタル文書および前記第２のデジタル文書にそれぞれ含まれる前記同一のリソースデータ以外の個別リソースデータと、前記第１のデジタル文書に含まれる前記同一および前記個別リソースデータ以外の他の文書データと、前記第２のデジタル文書に含まれる前記個別リソースデータ以外の他の文書データとを結合するステップと、を含む文書結合方法。
【請求項１１】
それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得するステップと、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するステップと、
前記第１のデジタル文書と前記第２のデジタル文書とに同一のリソースデータが含まれている場合、前記第２のデジタル文書に含まれる前記同一のリソースデータを削除し、前記第１のデジタル文書に含まれる前記同一のリソースデータを含むように前記第２のデジタル文書を再構成するステップと、
前記同一のリソースデータと、前記第１のデジタル文書および前記第２のデジタル文書にそれぞれ含まれる前記同一のリソースデータ以外の個別リソースデータと、前記第１のデジタル文書に含まれる前記同一および前記個別リソースデータ以外の他の文書データと、前記第２のデジタル文書に含まれる前記個別リソースデータ以外の他の文書データとを結合するステップと、をコンピュータに実行させる文書結合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は文書結合装置、文書結合方法および文書結合プログラムに関し、特に複数の文書データを１つの文書データにまとめる文書結合装置、文書結合方法および文書結合プログラムに関する。
【背景技術】
【０００２】
従来、パッケージ化された構成の文書ファイルが知られている。パッケージ化とは、ファイル内で使用しているイメージデータ等のリソースデータを階層構造で管理し、最上位階層を圧縮処理した１つのファイルとして扱うことのできるファイル形式を言う。パッケージ化された構成の文書ファイルの一例として、マイクロソフト社が提唱しているＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（以下「ＸＰＳ」という）が挙げられる。
【０００３】
また、複数のファイルを１つに結合する技術が知られている（例えば、特許文献１または特許文献２）。しかしながら、ＸＰＳなどのパッケージ化された文書ファイルの複数を従来の結合技術で結合すると、ファイルサイズが増加してしまう場合があるといった問題がある。具体的には、ＸＰＳの文書ファイルは、独自にリソースファイルを参照しているため、結合対象の複数の文書ファイル間で同じリソースデータを含んでいる場合、結合後のパッケージ化された文書ファイルにリソースデータが重複して存在することになる。
【０００４】
また、特開平１０−２７０７６号公報（特許文献３）には、複数の印刷ジョブ間で共通の印刷データを共有させる印刷制御方法が記載されている。しかしながら、特開平１０−２７０７６号公報における印刷制御方法は、複数の印刷ジョブそれぞれが、それに含まれる印刷データを特定するためのＩＤを含んでおり、ＩＤに基づいて印刷データの同一性を判断している。このため、印刷ジョブ間で、ＩＤを整合させなければならず、不便であるといった問題がある。
【特許文献１】特開２００１−１５４９３２号公報
【特許文献２】特開２００６−２５２５１１号公報
【特許文献３】特開平１０−２７０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、結合後のデジタル文書のファイルサイズの無駄な増加を抑えることが可能な文書結合装置を提供することである。
【０００６】
この発明の他の目的は、結合後のデジタル文書のファイルサイズの無駄な増加を抑えることが可能な文書結合方法および文書結合プログラムを提供することである。
【課題を解決するための手段】
【０００７】
上述した目的を達成するためにこの発明のある局面によれば、文書結合装置は、それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得する取得手段と、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するリソースデータ調査手段と、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれている場合、第２のデジタル文書に含まれる同一のリソースデータを削除し、第１のデジタル文書に含まれる同一のリソースデータを含むように第２のデジタル文書を再構成するリソースデータ再構成手段と、同一のリソースデータと、第１のデジタル文書および第２のデジタル文書にそれぞれ含まれる同一のリソースデータ以外の個別リソースデータと、第１のデジタル文書に含まれる同一および個別リソースデータ以外の他の文書データと、第２のデジタル文書に含まれる個別リソースデータ以外の他の文書データとを結合する文書結合手段と、を備える。
【０００８】
この局面に従えば、それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書が取得され、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれている場合、第２のデジタル文書に含まれる同一のリソースデータを削除し、第１のデジタル文書に含まれる同一のリソースデータを含むように第２のデジタル文書が再構成され、結合される。このため、同一のリソースデータが重複しないので、結合後のデジタル文書のファイルサイズの無駄な増加を抑えることが可能な文書結合装置を提供することができる。
【０００９】
好ましくは、第１のデジタル文書および第２のデジタル文書それぞれは、少なくとも１つのリソースデータを独立したファイルとして含み、少なくとも１つのリソースデータを階層構造で管理し、最上位階層が圧縮された単独のファイルである。
【００１０】
好ましくは、リソースデータ調査手段は、第１のデジタル文書および第２のデジタル文書の階層構造の所定の階層にそれぞれ含まれる複数のリソースデータを比較する。
【００１１】
好ましくは、リソースデータ調査手段は、複数のリソースデータを同一のハッシュ関数でそれぞれ算出して得られるハッシュ値を比較する。
【００１２】
この局面に従えば、ハッシュ値を比較することによりリソースデータが同一か否かを判断するので、リソースデータの同一性を正確かつ容易に判断することができる。
【００１３】
好ましくは、リソースデータ調査手段は、第１のデジタル文書および第２のデジタル文書が同一の証明書で電子署名されている場合は、第１のデジタル文書および第２のデジタル文書それぞれの所定の階層に存在する全リソースデータに対するハッシュ値を用いて、リソースデータが同一か否かを判別する。
【００１４】
好ましくは、電子署名はＸＭＬ署名である。
【００１５】
好ましくは、ハッシュ関数で算出して得られるハッシュ値を所定の形式で記録する記録部をさらに備える。
【００１６】
好ましくは、ハッシュ関数は、ＭＤ（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ）およびＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）のいずれかである。
【００１７】
ＭＤは、ＭＤ２、ＭＤ４およびＭＤ５を含む。ＳＨＡは、ＳＨＡ−０、ＳＨＡ−１、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４およびＳＨＡ−５１２を含む。
【００１８】
好ましくは、リソースデータは、フォントと、画像と、プリントチケットと、ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）プロファイルのいずれかである。
【００１９】
この発明の他の局面に従えば、文書結合方法は、それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得するステップと、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するステップと、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれている場合、第２のデジタル文書に含まれる同一のリソースデータを削除し、第１のデジタル文書に含まれる同一のリソースデータを含むように第２のデジタル文書を再構成するステップと、同一のリソースデータと、第１のデジタル文書および第２のデジタル文書にそれぞれ含まれる同一のリソースデータ以外の個別リソースデータと、第１のデジタル文書に含まれる同一および個別リソースデータ以外の他の文書データと、第２のデジタル文書に含まれる個別リソースデータ以外の他の文書データとを結合するステップと、を含む。
【００２０】
この局面に従えば、結合後のデジタル文書のファイルサイズの無駄な増加を抑えることが可能な文書結合方法を提供することができる。
【００２１】
この発明のさらに他の局面に従えば、文書結合プログラムは、それぞれが少なくとも１つのリソースデータを含む第１のデジタル文書および第２のデジタル文書を取得するステップと、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれているか否かを調査するステップと、第１のデジタル文書と第２のデジタル文書とに同一のリソースデータが含まれている場合、第２のデジタル文書に含まれる同一のリソースデータを削除し、第１のデジタル文書に含まれる同一のリソースデータを含むように第２のデジタル文書を再構成するステップと、同一のリソースデータと、第１のデジタル文書および第２のデジタル文書にそれぞれ含まれる同一のリソースデータ以外の個別リソースデータと、第１のデジタル文書に含まれる同一および個別リソースデータ以外の他の文書データと、第２のデジタル文書に含まれる個別リソースデータ以外の他の文書データとを結合するステップと、をコンピュータに実行させる。
【００２２】
この局面に従えば、結合後のデジタル文書のファイルサイズの無駄な増加を抑えることが可能な文書結合プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２４】
図１は、本発明の実施の形態の一つにおけるデータ処理システムの全体概要を示す図である。図１を参照して、データ処理システム１は、ネットワーク２にそれぞれ接続された複合機（以下、「ＭＦＰ」という）１００，１００Ａ，１００Ｂ，１００Ｃと、パーソナルコンピュータ（以下「ＰＣという」）２００と、を含む。ＰＣ２００は、一般的なコンピュータである。その構成及び機能は周知なのでここでは説明を繰り返さない。ＭＦＰ１００，１００Ａ，１００Ｂ，１００Ｃは、その構成および機能は同じなので、ここでは特に言及しない限りＭＦＰ１００を例に説明する。
【００２５】
ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００は、原稿を読取るためのスキャナ、画像データに基づいて紙などの記録媒体に画像を形成するための画像形成部、ファクシミリを含み、画像読取機能、複写機能、ファクシミリ送受信機能を備えている。なお、本実施の形態においてはＭＦＰ１００を文書結合装置の一例として説明するが、ＭＦＰ１００に代えて、データを処理する機能を備えた装置であれば、たとえば、データを生成するパーソナルコンピュータ等であってもよい。
【００２６】
ネットワーク２は、ローカルエリアネットワーク（ＬＡＮ）であり、有線または無線を問わない。またネットワーク２は、ＬＡＮに限らず、インターネット、ワイドエリアネットワーク（ＷＡＮ）、一般公衆回線を用いたネットワーク等であってもよい。
【００２７】
図２は、本実施の形態におけるＭＦＰ１００のハード構成を示すブロック図である。なお、ＭＦＰ１００Ａ、ＭＦＰ１００ＢおよびＭＦＰ１００Ｃは、ＭＦＰ１００と同じハード構成を有するため、説明を繰り返さない。図２を参照して、ＭＦＰ１００は、それぞれがバス１２０に接続された中央演算装置（ＣＰＵ）１０１と、ＣＰＵ１０１が実行するためのプログラムなどを記録したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３と、実行されるプログラムをロードするための、およびプログラム実行中のデータを記憶するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５と、データを不揮発的に記憶するためのハードディスクドライブ（ＨＤＤ）１０７と、フラッシュＲＯＭ１０８が装着されるカードインターフェース（Ｉ／Ｆ）１０９と、ＭＦＰ１００をネットワーク２に接続するための通信Ｉ／Ｆ１１１と、スキャナ１１３と、画像形成部１１５と、ファクシミリ（ＦＡＸ）１１７と、ユーザとのインターフェイスとなるオペレーションパネル１１９とを含む。
【００２８】
ＣＰＵ１０１は、カードＩ／Ｆ１０９に装着されたフラッシュＲＯＭ１０８に記録された文書結合プログラムをＲＡＭ１０５にロードして実行する。なお、ＣＰＵ１０１で実行するプログラムは、フラッシュＲＯＭ１０８に記録された文書結合プログラムに限られず、ＣＰＵ１０１に別に接続されたＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍａｂｌｅ  ＲＯＭ）に記憶されたプログラムをＲＡＭ１０５にロードして実行するようにしてもよい。ＥＥＰＲＯＭを用いれば、文書結合プログラムを書き換えるまたは追加して書き込みすることが可能となる。このため、ネットワーク２に接続されたＰＣ２００が、ＭＦＰ１００のＥＥＰＲＯＭに記憶されたデータ処理プログラムを書換える、または、新たなデータ処理プログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、インターネットに接続された他のコンピュータから文書結合プログラムをダウンロードして、その文書結合プログラムをＥＥＰＲＯＭに記憶するようにしてもよい。さらに、ＣＰＵ１０１は、ＨＤＤ１０７に保存された文書結合プログラムをＲＡＭ１０５にロードして実行するようにしてもよい。
【００２９】
ここでいうプログラムは、ＣＰＵ１０１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３０】
なお、文書結合プログラムを記憶する記録媒体としては、フラッシュＲＯＭ１０８に限らず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【００３１】
画像形成部１１５は、レーザプリンタ、または、インクジェットプリンタ等であり、画像データに基づいて画像を形成し、紙などの記録媒体に画像データを可視化する。スキャナ１１３は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等の光電変換素子を含み、原稿を光学的に読取って画像データとしての電子データを出力する。ＦＡＸ１１７は、画像データをファクシミリ規格に従って一般電話回線を介して送受信する。
【００３２】
オペレーションパネル１１９は、入力部１１９Ａと表示部１１９Ｂとを含む。入力部１１９Ａは、ＭＦＰ１００のユーザによる操作の入力を受付けるためのタッチパネル、キーボードまたはマウス等の入力装置である。表示部１１９Ｂは、液晶表示装置または有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイパネル等である。入力部１１９Ａに透明な部材からなるタッチパネルを用いる場合には、表示部１１９Ｂ上にタッチパネルを重ねて設置することで、表示部１１９Ｂに表示されたボタンの指示を検出することができる。これにより、種々の操作の入力が可能となる。
【００３３】
通信Ｉ／Ｆ１１１は、ＭＦＰ１００をネットワーク２と接続するための通信インターフェイスである。これにより、ＭＦＰ１００は、他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃ、ＰＣ２００との間で通信することが可能となる。ＭＦＰ１００と、他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃ、ＰＣ２００とは、ネットワーク２を介して接続されるが、シリアルインターフェイスまたはパラレルインターフェイスを用いて直接接続されてもよい。通信Ｉ／Ｆ１１１は、ＭＦＰ１００と他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃとの接続形態に応じたインターフェイスが用いられる。
【００３４】
ＭＦＰ１００は、文書ファイルが入力される。ＭＦＰ１００に文書ファイルが入力される場合は、（１）通信Ｉ／Ｆを介してネットワーク２に接続された他のコンピュータ、または他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃから文書ファイルが受信される場合、（２）フラッシュＲＯＭ１０８に記憶された文書ファイルがカードＩ／Ｆを介して読み出される場合がある。ＭＦＰ１００に入力された文書ファイルは、ファイル名が付されて、一時的にＨＤＤ１０７の所定の領域に記憶される。
【００３５】
ＭＦＰ１００は、ＣＰＵ１０１が結合プログラムを実行することにより、複数の文書ファイルを１つに結合して出力する。文書ファイルを、ＸＰＳのファイル形式とする例を説明する。ＭＦＰ１００が文書ファイルを出力する場合は、ＲＡＭ１０５またはＨＤＤ１０７に記憶された文書ファイルが、（１）画像形成部１１５により紙などの記録媒体に可視化される場合、（２）通信Ｉ／Ｆ１１１を介してネットワークに接続された他のコンピュータ、または他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃに送信される場合、（３）フラッシュＲＯＭ１０８に記憶される場合、（４）ＦＡＸ１１７によりファクシミリデータとして出力される場合、（５）表示部１１９Ｂに表示される場合がある。
【００３６】
図３は、ＭＦＰが備えるＣＰＵの機能の概要を示す機能ブロック図である。図３を参照して、ＣＰＵ１０１は、文書ファイルを取得するためのファイル取得部５１と、文書ファイルが入力され、リソースデータの存在を調査するための調査部５３と、リソースデータのハッシュ値を算出するハッシュ値算出部５５と、複数の文書ファイル間でリソースデータの同一性を判別する判別部５７と、複数の文書ファイル間で同一のリソースデータを１つにするために文書ファイルを再構成する再構成部５９と、複数の文書ファイルを結合する結合部６１と、を含む。
【００３７】
ファイル取得部５１は、ＭＦＰ１００に入力される文書ファイルを取得し、取得した文書ファイルを調査部５３に出力する。文書ファイルは、パッケージ化された構成の文書ファイルであり、ファイル内で使用しているイメージデータ等のリソースデータを階層構造で管理し、最上位階層を圧縮処理した形式のファイルである。ここでは、パッケージ化された構成の文書のうちリソースデータ以外の部分を、その他部分という。ファイル取得部５１は、複数の文書ファイルを受け付ける場合、複数の文書ファイルを調査部５３に出力する。ここでは、第１文書ファイル３０１と第２文書ファイル３０３との２つの文書ファイルが入力される例を説明する。
【００３８】
ファイル取得部５１は、ユーザがＭＦＰ１００に文書結合指示を入力すると、その文書結合指示に含まれるファイル名で特定される文書ファイルを取得する。例えば、ファイル取得部５１は、文書結合指示に含まれるファイル名で特定される文書ファイルをＨＤＤ１０７またはフラッシュＲＯＭ１０８から読み出す、または、通信Ｉ／Ｆ１１１を介して受信する。文書結合指示は、ユーザがオペレーションパネル１１９を操作することにより入力部１１９Ａから入力される。また、文書結合指示は、ＭＦＰ１００がＰＣ２００またはＭＦＰ１００Ａ，１００Ｂ，１００Ｃにより遠隔操作される場合、通信Ｉ／Ｆ１１１により受信される。また、ＨＤＤ１０７に所定の記憶領域（ＢＯＸ）を定めておき、その記憶領域に複数の文書ファイルが記憶されると、ファイル取得部５１が文書結合指示を受け付け、所定の記憶領域に記憶された複数の文書ファイルを読み出すようにしてもよい。
【００３９】
図４は、第１文書ファイルが表示された状態の一例を示す図である。図４を参照して、第１文書ファイル３０１は、リソースデータとして、画像を表すイメージデータ３１１およびイメージデータ３１３を含む。図５は、第２文書ファイルの表示された状態の一例を示す図である。図５を参照して、第２文書ファイル３０３は、第１文書ファイル３０３が含むのと同じイメージデータ３１１と、第１文書ファイル３０３が含むのとは異なるイメージデータ３１５と、を含む。
【００４０】
第１文書ファイルと第２文書ファイルとは、それぞれ表示される状態において、１ページ分のデータを含む。ここで、第１文書ファイルと第２文書ファイルとを結合し、１つの結合文書ファイルを生成する場合を考える。結合文書ファイルは、第１文書ファイルを第１ページとし、第２文書ファイル３０３を第２ページとする。この場合、結合文書ファイルでは、第１ページと第２ページとに、同じイメージデータ３１１を含む。この場合、それぞれのページにイメージデータ３１１が含まれるため、結合文書ファイルのデータ量が多くなってしまう。本実施の形態におけるＭＦＰ１００は、この無駄を排除して、結合文書ファイルのデータ量を少なくする。
【００４１】
図３に戻って、調査部５３は、ファイル取得部５１から入力される文書ファイル３０１，３０３それぞれに含まれるリソースデータを調査する。リソースデータは、例えば、フォントと、イメージと、プリントチケットと、ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）プロファイルを含む。調査部５３は、ファイル取得部５１により取得された文書ファイルのすべてについて、それらがリソースデータを含んでいるか否かを判断し、リソースデータを含んでいる場合には、それを特定してハッシュ値算出部５５および判別部５７に出力する。ここでは、調査部５３は、文書ファイル３０１，３０３それぞれがリソースデータを含んでいるか否かを判断する。そして、調査部５３は、第１文書ファイル３０１からイメージデータ３１１およびイメージデータ３１３を特定し、第２文書ファイル３０３からイメージデータ３１１およびイメージデータ３１５を特定し、それらをハッシュ値算出部５５および判別部５７に出力する。また、調査部５３は、判別部５７に、第１文書ファイル３０１および第２文書ファイル３０３をさらに出力する。
【００４２】
ハッシュ値算出部５５は、調査部５３から入力されるリソースデータごとにハッシュ値を算出する。ハッシュ値算出部５５は、予め定められたハッシュ関数を用いて、ハッシュ値を算出する。リソースデータが複数ある場合には、すべてのリソースデータに対して同一のハッシュ関数を用いる。ハッシュ関数は、規定されたＭＤ５、ＳＨＡ−１、ＳＨＡ−２５６およびＳＨＡ−５１２のいずれかを用いればよい。なお、ハッシュ関数は、規定されたこれらの関数に限らず、任意に定めた関数であってもよい。
【００４３】
ハッシュ値算出部５５は、算出したハッシュ値と、そのハッシュ値を算出する基になったリソースデータを識別する情報とを関連付けたハッシュ値レコードを含むハッシュ値一覧テーブルを、ＲＡＭ１０５に記憶する。具体的には、ハッシュ値算出部５５は、第１文書ファイル３０１に含まれるイメージデータ３１１のハッシュ値と、イメージデータ３１３のハッシュ値と、第２文書ファイル３０３に含まれるイメージデータ３１１のハッシュ値と、イメージデータ３１５のハッシュ値と、を算出し、それらとハッシュ値を算出する基になったリソースデータを識別するＩＤとを関連付けたハッシュ値レコードを含むハッシュ値一覧テーブルを生成する。ハッシュ値算出部５５は、ハッシュ値一覧テーブルをＲＡＭ１０５に記憶する。
【００４４】
図６は、ハッシュ値一覧テーブルの一例を示す図である。図６を参照して、第１文書ファイル３０１に含まれるイメージデータ３１１のＩＤ「イメージデータＡ」に対応するハッシュ値３１１Ａと、第２文書ファイル３０３に含まれるイメージデータ３１１のＩＤ「イメージデータＣ」に対応するハッシュ値３１１Ｂと、が同じである。また、第１文書ファイル３０１に含まれるイメージデータ３１３のＩＤ「イメージデータＢ」に対応するハッシュ値３１１Ａと、第２文書ファイル３０３に含まれるイメージデータ３１５のＩＤ「イメージデータＤ」に対応するハッシュ値３１５Ａと、は他のハッシュ値のいずれとも異なる。
【００４５】
図３に戻って、判別部５７は、第１文書ファイル３０１に含まれるリソースデータが、第２文書ファイル３０３に含まれるリソースデータと同一か否かを判別する。具体的には、判別部５７は、ハッシュ値算出部５５が生成したハッシュ値一覧テーブルを参照し、ハッシュ値が同一のリソースデータを同一と判断する。換言すれば、第１文書ファイルに含まれるリソースデータに対応するハッシュ値と、第２文書ファイルに含まれるリソースデータに対応するハッシュ値とが同一であれば、２つのリソースデータが同一と判断する。ここでは、第１文書ファイルに含まれるイメージデータ３１１と、第２文書ファイル３０３に含まれるイメージデータ３１１とを同一と判断する。
【００４６】
判別部５７は、同一と判断されたリソースデータを、共通リソースデータとして、再構成部５９に出力し、共通リソースデータを除く残りのリソースデータを個別リソースデータとして結合部に出力し、その他部分のデータを結合部６１に出力する。具体的には、イメージデータ３１１を共通リソースデータとして、再構成部５９に出力し、イメージデータ３１３を第１文書ファイル３０１の個別リソースデータとして結合部６１に出力し、イメージデータ３１５を第２文書ファイル３０３の個別リソースデータとして結合部６１に出力し、第１文書ファイル３０１のその他部分のデータを結合部６１に出力し、第２文書ファイル３０３のその他部分のデータを結合部６１に出力する。
【００４７】
再構成部５９は、共通リソースデータを含む複数の文書ファイルのうちから１つを選択し、他の文書ファイルから共通リソースデータを削除するように複数の文書ファイルを再構成する。具体的には、第１文書ファイル３０１に含まれるイメージデータ３１１を選択した場合、第２文書ファイル３０３に含まれるイメージデータ３１１を削除するとともに、第２文書ファイルが第１文書ファイル３０１に含まれるイメージデータを参照するように第２文書ファイルのその他部分を変更する。そして、再構成部５９は、再構成された第１文書ファイル３０１および第２文書ファイル３０３それぞれのその他部分と、共通リソースデータであるイメージデータ３１１とを結合部６１に出力する。
【００４８】
結合部６１は、共通リソースデータと、複数の文書ファイルにそれぞれ含まれる個別リソースデータと、複数の文書ファイルにそれぞれ含まれるその他部分とを結合し、１つのパッケージ化された構成の文書ファイルを結合文書ファイルとして生成し、結合文書ファイルを出力する。出力方法は、ＨＤＤ１０７またはフラッシュＲＯＭ１０８への記憶、通信Ｉ／Ｆ１１１を介してネットワークに接続された他のコンピュータ、または他のＭＦＰ１００Ａ，１００Ｂ，１００Ｃへのデータ送信、画像形成部１１５による紙などの記録媒体への画像形成、ＦＡＸ１１７によるファクシミリ送信、表示部１１９Ｂへの表示のいずれであってもよい。
【００４９】
図７は、文書結合処理の流れの一例を示すフローチャートである。文書結合処理は、ＣＰＵ１０１が、文書結合プログラムを実行することにより、ＣＰＵ１０１により実行される処理である。図７を参照して、ＣＰＵ１０１は、文書結合指示を受け付けたか否かを判断する。文書結合指示を受け付けるまで待機状態となり（ステップＳ０１でＮＯ）、文書結合指示を受け付けると処理をステップＳ０２に進める。すなわち、文書結合処理は、文書結合指示を受け付けることを条件に実行される処理である。
【００５０】
ステップＳ０２においては、文書結合指示により特定されるすべての文書ファイルを取得する。ここでは、第１文書ファイル３０１と第２文書ファイル３０３とが取得される。そして、第１文書ファイル３０１および第２文書ファイル３０３に含まれるリソースデータを確認し（ステップＳ０３）、第１文書ファイル３０１および第２文書ファイル３０３の双方にリソースデータが含まれているか否かを判断する（ステップＳ０４）。双方にリソースデータが含まれていれば処理をステップＳ０５に進めるが、そうでなければ処理をステップＳ１４に進める。双方にリソースデータが含まれていなければ、共通リソースデータが存在しないからである。
【００５１】
ステップＳ０５においては、第１文書ファイル３０１および第２文書ファイル３０３それぞれに含まれるすべてのリソースデータに対してハッシュ値を算出する。そして、算出した全てのハッシュ値それぞれを、そのハッシュ値を算出する基になったリソースデータを特定するＩＤと関連付けてＲＡＭ１０５に記憶する（ステップＳ０６）。具体的には、図６に示したハッシュ値一覧テーブルを生成し、ＲＡＭ１０５に記憶する。
【００５２】
そして、ハッシュ値一覧テーブルを参照して、１つのハッシュ値を処理対象として選択し、他の全てのハッシュ値と比較する（ステップＳ０７）。他のハッシュ値に一致するものが存在するか否かを判断する（ステップＳ０８）。一致するハッシュ値が存在すれば処理をステップＳ０９に進め、一致するハッシュ値が１つも存在しなければ処理をステップＳ１０に進める。
【００５３】
ステップＳ０９においては、ハッシュ値が一致するとされた２以上のハッシュ値にそれぞれ対応する２以上のリソースデータを共通リソースデータと判別し、処理をステップＳ１１に進める。ここでは、第１文書ファイル３０１のイメージデータ３１１と、第２文書ファイル３０３のイメージデータ３１１とが共通リソースデータと判別される。ステップＳ１１においては、２以上の共通リソースデータのうち１つを選択し、選択されなかった他の共通リソースデータを削除する。その後、処理をステップＳ１２に進める。具体的には、第１文書ファイル３０１のイメージデータ３１１を選択した場合、第２文書ファイル３０３のイメージデータ３１１を削除する。
【００５４】
一方、ステップＳ１０においては、他のいずれとも一致しないハッシュ値に対応するリソースデータを個別リソースデータと判別し、処理をステップＳ１２に進める。ここでは、第１文書ファイル３０１のイメージデータ３１３と、第２文書ファイル３０３のイメージデータ３１５とが個別リソースデータと判別される。
【００５５】
ステップＳ１２においては、すべてのハッシュ値について他のハッシュ値との比較が終了したか否かを判断する。全てのハッシュ値について終了したならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ０７に戻す。
【００５６】
ステップＳ１３においては、共通リソースデータと個別リソースデータとを１ついにまとめる。ここでは、共通リソースデータとしての第１文書ファイル３０１のイメージデータ３１１と、個別リソースデータとしての第１文書ファイル３０１のイメージデータ３１３および第２文書ファイル３０３のイメージデータ３１５とを１つにまとめる。
【００５７】
そして、次のステップＳ１４においては、ステップＳ０２で受け付けた複数の文書ファイルを再構成し、１つの結合文書ファイルにまとめる。具体的には、ステップＳ１１において、共通リソースデータが削除された文書ファイルを、選択された共通リソースデータを参照するように変更する。そして、複数の文書ファイルそれぞれのリソースデータ以外のその他部分と、ステップＳ１３において、共通リソースデータおよび個別リソースデータを１つにまとめたデータとを結合する。ここでは、第１文書ファイル３０１のその他部分と、第２文書ファイル３０３のその他部分と、１つにまとめられたイメージデータ３１１，３１３，３１５とを結合する。
【００５８】
以上説明したように、本実施の形態におけるＭＦＰ１００は、複数の文書ファイル間で、それらに含まれるリソースデータのハッシュ値を比較することにより、２つのリソースデータが同一か否かを判断するので、２つのリソースデータが同一か否かを容易に判断することができる。
【００５９】
また、複数の文書ファイルを１つに結合する際に、複数の文書ファイル間で同一のリソースデータを削除した後に結合するので、結合後の文書ファイルのデータサイズを小さくすることができる。
【００６０】
＜変形例＞
上述した実施の形態においては、リソースデータからそれに対応するハッシュ値を算出するようにしたが、署名されている複数の文書ファイルを結合する場合について説明する。ＸＰＳのファイル形式のＸＰＳファイルは、電子署名されると、その文書ファイルに含まれる全てのリソースデータに対して個々に電子署名される。このため、その文書ファイルの所定の階層に、リソースデータに対応するハッシュ値が記載されたファイルが保存される。変形例におけるＭＦＰ１００は、このファイルに記憶されたリソースデータに対応するハッシュ値を利用する。ここでは、同一の証明書を用いて電子署名された第１文書ファイル３０１Ａと第２文書ファイル３０３ＡとがＭＦＰ１００に入力される場合を説明する。
【００６１】
図８は、変形例におけるＭＦＰに入力される第１文書ファイルの一例を示す図である。図８を参照して、変形例における第１文書ファイル３０１Ａは、図４に示した第１文書ファイル３０１と比較して、電子署名３２１が付加されている。図９は、変形例におけるＭＦＰに入力される第２文書ファイルの一例を示す図である。図９を参照して、変形例における第２文書ファイル３０３Ａは、図５に示した第２文書ファイル３０３と比較して、電子署名３２１が付加されている。第１文書ファイル３０１Ａに含まれるイメージデータ３１１と、第２文書ファイル３０３Ａに含まれるイメージデータ３１１とは、第１文書ファイル３０１と第２文書ファイルとが同一の証明書を用いて電子署名されているので、ハッシュ値は同一である。
【００６２】
図１０は、変形例におけるＭＦＰが備えるＣＰＵの機能の概要を示す機能ブロック図である。図１０を参照して、図３に示した機能ブロック図と異なる点は、ハッシュ値算出部５５が削除された点、および判別部５７Ａを変更した点である。以下、図３に示した機能ブロック部と異なる点を説明する。
【００６３】
判別部５７Ａは、調査部５３から入力される第１文書ファイル３０１および第２文書ファイル３０３それぞれの所定の階層に保存されたファイルを読出し、第１文書ファイル３０１Ａおよび第２文書ファイル３０３Ａにそれぞれ含まれるすべてのリソースデータのハッシュ値を取得する。そして、取得したハッシュ値を相互に比較し、互いに一致するハッシュ値に対応するリソースデータを、共通リソースデータとして再構成部５９に出力し、共通リソースデータを除く残りのリソースデータを個別リソースデータとして結合部６１に出力し、その他部分のデータを結合部６１に出力する。具体的には、イメージデータ３１１を共通リソースデータとして、再構成部５９に出力し、イメージデータ３１３を第１文書ファイル３０１の個別リソースデータとして結合部６１に出力し、イメージデータ３１５を第２文書ファイル３０３の個別リソースデータとして結合部６１に出力し、第１文書ファイル３０１のその他部分のデータを結合部６１に出力し、第２文書ファイル３０３のその他部分のデータを結合部６１に出力する。図１１に、結合ファイルの一例を部分的に示す。
【００６４】
図１２は、変形例における文書結合処理の流れを示す第２のフローチャートである。図１２を参照して、図７に示した文書結合処理と異なる点は、ステップＳ０５およびステップＳ０６を削除した点である。図１２を参照して、ステップＳ０４において、第１文書ファイル３０１Ａおよび第２文書ファイル３０３Ａの双方にリソースデータが含まれていると判断されたならば処理をステップＳ０７に進めるが、そうでなければ処理をステップＳ１４に進める。
【００６５】
ステップＳ０７Ａにおいては、第１文書ファイル３０１Ａおよび第２文書ファイル３０３Ａそれぞれのパッケージ内に保存されているハッシュ値が記載されているファイルを参照し、第１文書ファイル３０１Ａおよび第２文書ファイル３０３Ａそれぞれに含まれる全てのリソースデータに対するハッシュ値を取得する。そして、取得したハッシュ値のいずれか１つを処理対象に設定し、他のハッシュ値と比較する。
【００６６】
以上説明したように、変形例におけるＭＦＰ１００は、同一の証明書で電子署名が付加されている第１文書ファイル３０１および第２文書ファイル３０３を結合する場合、それらに含まれるリソースデータのハッシュ値を算出することなく、同一のリソースデータが存在するか否かを判断することができる。このため、ハッシュ値を算出する処理を省略することができるので、ＣＰＵ１０１の負荷を軽減し、スループットを短くすることができる。
【００６７】
なお、上述した実施の形態においては、文書結合装置の一例としてＭＦＰ１００について説明したが、図７または図１２に示した文書結合処理をコンピュータに実行させるための文書結合方法または文書結合プログラムとして発明を捉えることができるのは言うまでもない。
【００６８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態の一つにおけるデータ処理システムの全体概要を示す図である。
【図２】本実施の形態におけるＭＦＰのハード構成を示すブロック図である。
【図３】ＭＦＰが備えるＣＰＵの機能の概要を示す機能ブロック図である。
【図４】第１文書ファイルが表示された状態の一例を示す図である。
【図５】第２文書ファイルの表示された状態の一例を示す図である。
【図６】ハッシュ値一覧テーブルの一例を示す図である。
【図７】文書結合処理の流れの一例を示すフローチャートである。
【図８】変形例におけるＭＦＰに入力される第１文書ファイルの一例を示す図である。
【図９】変形例におけるＭＦＰに入力される第２文書ファイルの一例を示す図である。
【図１０】変形例におけるＭＦＰが備えるＣＰＵの機能の概要を示す機能ブロック図である。
【図１１】結合ファイルの一部の一例を示す図である。
【図１２】変形例における文書結合処理の流れを示す第２のフローチャートである。
【符号の説明】
【００７０】
１  データ処理システム、２  ネットワーク、５１  ファイル取得部、５３  調査部、５５  ハッシュ値算出部、５７，５７Ａ  判別部、５９  再構成部、６１  結合部、１０１  ＣＰＵ、１０３  ＲＯＭ、１０５  ＲＡＭ、１０７  ＨＤＤ、１０８  フラッシュＲＯＭ、１０９  カードＩ／Ｆ、１１１  通信Ｉ／Ｆ、１１３  スキャナ、１１５  画像形成部、１１７  ＦＡＸ、１１９  オペレーションパネル、１１９Ａ  入力部、１１９Ｂ  表示部、３０１，３０３，３０１Ａ，３０３Ａ  文書ファイル、３１１，３１３，３１５  イメージデータ、３１１Ａ，３１３Ａ，３１１Ｂ，３１５Ａ  ハッシュ値、３２１  電子署名。
【図１】
2008271098.tif 000003
【図２】
2008271098.tif 000004
【図３】
2008271098.tif 000005
【図４】
2008271098.tif 000006
【図５】
2008271098.tif 000007
【図６】
2008271098.tif 000008
【図７】
2008271098.tif 000009
【図８】
2008271098.tif 000010
【図９】
2008271098.tif 000011
【図１０】
2008271098.tif 000012
【図１１】
2008271098.tif 000013
【図１２】
2008271098.tif 000014