(57)【特許請求の範囲】
【請求項１】
入力された文書データを、本文領域と、キャプション領域と、該キャプション領域が付随するオブジェクト領域とに分割する領域分割手段と、
前記領域分割手段により分割された前記本文領域と前記キャプション領域とのそれぞれに含まれる文字情報を取得する文字情報取得手段と、
前記本文領域における文字情報から所定の文字列で構成されるアンカー表現を検索し、前記キャプション領域における文字情報から所定の文字列で構成されるアンカー表現を抽出して、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域の部分との間で双方向のリンクを生成するリンク処理手段と、
前記入力された文書データを、前記リンク処理手段で生成したリンクに基づいて、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域に対応する部分との間を双方向にリンクさせた電子文書データに変換する変換手段と
を備え、
前記リンク処理手段により生成されるリンクは、前記本文領域内から同一のアンカー表現が複数検索された場合は、前記オブジェクト領域に対応する部分がユーザにより指定されたときに、前記本文領域内の複数の同一アンカー表現に対応する部分のうちの１つを強調表示し、且つ、前記本文領域内の複数の同一アンカー表現のうちの別のアンカー表現に対応する部分を表示させるためのボタンを表示するように制御する制御情報を含むことを特徴とする画像処理装置。
【請求項２】
前記ボタンは、前記本文領域内の複数の同一アンカー表現における次のアンカー表現に対応する部分を表示させるための第１のボタンと前のアンカー表現に対応する部分を表示させるための第２のボタンとから構成されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ボタンは、更に、前記キャプション領域が付随するオブジェクト領域に対応する部分を表示させるための第３のボタンを含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記リンク処理手段は、
前記本文領域における文字情報から、所定の文字列で構成されるアンカー表現を検索する本文内アンカー表現検索手段と、
前記本文内アンカー表現検索手段で検索されたアンカー表現に対応する部分を特定するための第１のフィールドを生成する第１のフィールド生成手段と、
前記本文内アンカー表現検索手段で同一のアンカー表現が複数検索された場合に、当該複数のアンカー表現のうちの別のアンカー表現に対応する部分を表示させるためのボタンに対応する第２のフィールドを生成する第２のフィールド生成手段と、
前記キャプション領域における文字情報から、所定の文字列で構成されるアンカー表現を抽出するキャプション内アンカー表現抽出手段と、
前記キャプション領域が付随するオブジェクト領域に対応する部分を特定するための第３のフィールドを生成する第３のフィールド生成手段と、
前記本文内アンカー表現検索手段で検索されたアンカー表現と前記キャプション領域で抽出されたアンカー表現とに基づいて、前記第１のフィールドと前記第３のフィールドとをリンクさせるためのリンク構成情報を生成するリンク構成情報生成手段と、
前記リンク構成情報に基づいて、前記第１のフィールドがユーザにより指定された場合のアクションと、前記第２のフィールドがユーザにより指定された場合のアクションと、前記第３のフィールドがユーザにより指定された場合のアクションとを定義するアクション定義生成手段と
を備え、
前記変換手段は、前記リンク処理手段で生成された前記第１のフィールドと前記第２のフィールドと前記第３のフィールドと前記定義された各アクションとに基づいて、前記入力された文書データを前記電子文書データに変換することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記アクション定義生成手段は、
前記本文内アンカー表現検索手段で同一のアンカー表現が複数検索された場合は、前記第３のフィールドがユーザにより指定された場合のアクションとして、当該第３のフィールドに対応する前記第１のフィールドを強調表示し、且つ前記第２のフィールドに対応する前記本文領域内の複数の同一アンカー表現のうちの別のアンカー表現に対応する部分を表示させるためのボタンを表示するアクションを定義し、
前記本文内アンカー表現検索手段で同一のアンカー表現が１つ検索された場合は、前記第３のフィールドがユーザにより指定された場合のアクションとして、当該第３のフィールドに対応する前記第１のフィールドを強調表示し、且つ前記ボタンは表示させないアクションを定義することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記アクション定義生成手段は、
前記本文内アンカー表現検索手段で同一のアンカー表現が複数検索された場合は、前記第１のフィールドがユーザにより指定された場合のアクションとして、当該第１のフィールドに対応する前記第３のフィールドを強調表示するとともに、指定された当該第１のフィールドに付随する前記第２のフィールドに対応するボタンを無効化するアクションを定義し、
前記本文内アンカー表現検索手段で同一のアンカー表現が１つ検索された場合は、前記第１のフィールドがユーザにより指定された場合のアクションとして、当該第１のフィールドに対応する前記第３のフィールドを強調表示するアクションを定義することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記アクション定義生成手段は、前記本文内アンカー表現検索手段で同一のアンカー表現が複数検索された場合は、前記第２のフィールドに対応するボタンがユーザにより指定された場合のアクションとして、前記本文領域内の複数の同一アンカー表現のうちの別のアンカー表現に対応する第１のフィールドを強調表示するアクションを定義することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記リンク処理手段は、同一のアンカー表現が複数検索された場合、当該検索された複数の同一アンカー表現に対応する部分を所定の順番で順位付けした巡回リストを生成し、当該巡回リストに基づいて前記リンクを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記巡回リストは、当該検索された複数の同一アンカー表現に対応する部分に含まれる文章の重要度により順位付けが定義されることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記変換手段は、前記巡回リストにおける順位を、前記文書データを表示するソフトウェアにおける操作履歴に基づき入れ替えるための記述を含む前記電子文書データに変換することを特徴とする請求項８に記載の画像処理装置。
【請求項１１】
前記オブジェクトは、図、図面、写真、イラストのうちの少なくとも一つである領域であることを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記アンカー表現は、「図番号」「図」「Ｆｉｇ」の文字列のうちのいずれかを含むことを特徴とする請求項１乃至１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記電子文書データのページ記述言語のフォーマットは、ＳＶＧ、ＸＰＳ、ＰＤＦ、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬのいずれかであることを特徴とする請求項１乃至１２のいずれか一項に記載の画像処理装置。
【請求項１４】
領域分割手段が、入力された文書データを、本文領域と、キャプション領域と、該キャプション領域が付随するオブジェクト領域とに分割する領域分割工程と、
文字情報取得手段が、前記領域分割工程にて分割された前記本文領域と前記キャプション領域とのそれぞれに含まれる文字情報を取得する文字情報取得工程と、
リンク処理手段が、前記本文領域における文字情報から所定の文字列で構成されるアンカー表現を検索し、前記キャプション領域における文字情報から所定の文字列で構成されるアンカー表現を抽出して、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域の部分との間で双方向のリンクを生成するリンク処理工程と、
変換手段が、前記入力された文書データを、前記リンク処理工程にて生成したリンクに基づいて、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域に対応する部分との間を双方向にリンクさせた電子文書データに変換する変換工程と
を有し、
前記リンク処理工程で生成されるリンクは、前記本文領域内から同一のアンカー表現が複数検索された場合は、前記オブジェクト領域に対応する部分がユーザにより指定されたときに、前記本文領域内の複数の同一アンカー表現に対応する部分のうちの１つを強調表示し、且つ、前記本文領域内の複数の同一アンカー表現のうちの別のアンカー表現に対応する部分を表示させるためのボタンを表示するように制御する制御情報を含むことを特徴とする画像処理方法。
【請求項１５】
コンピュータを、請求項１乃至１３のいずれか一項の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、紙文書、または電子文書データからリンク情報付きの電子文書データを生成する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、「オブジェクト」と「オブジェクトを参照する文」を含む紙文書、または電子文書が広く利用されている。ここで、「オブジェクト」とは、文書に含まれる「図」、「図面」、「写真」、「イラスト」等の領域を意味している。「オブジェクトを参照する文」とは、前述の「オブジェクト」を説明・解説したり、対比のために引用したりする文章を意味している。以下、「オブジェクトを参照する文章」を「オブジェクト参照文」で表現する。ここで「オブジェクト」と「オブジェクト参照文」の対応が取りづらい文書の場合、文書を読むのに手間がかかり、また、文書の内容を理解するのに余計に時間を要する。
【０００３】
上記の「オブジェクト」と「オブジェクト参照文」の対応が取りづらい文書とは、次のような例が挙げられる。（１）複数ページの文書において、「オブジェクト」があるページと「オブジェクト参照文」があるページが異なる場合。（２）「オブジェクト」があるページと「オブジェクト参照文」があるページは同一であるが、位置的に離れている場合。（３）「オブジェクト」または、「オブジェクト参照文」の少なくとも一つが小さく記述されている場合。
【０００４】
以上のように、「オブジェクト」と「オブジェクト参照文」の対応が取りづらい紙文書、または電子文書において、文書の閲覧者は、文書を読むのに手間がかかり、また、文書の内容を理解するのに余計に時間を要する課題があった。上記課題に対して、特許文献１では、紙文書を光学的に読み取って電子文書化する際に、本文中の図番号記述と図の記述の間にリンクを生成してハイパーテキスト化していた。この技術で作成された電子文書の閲覧時に、例えば、本文中の「図番号」をマウス等でクリックすると、「図番号」に該当する図を画面表示させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−０６６１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１によれば、「オブジェクト参照文」中の図番号すなわちアンカー表現から「オブジェクト」へのリンク情報の生成を行っているが、反対方向である「オブジェクト」から「オブジェクト参照文」へのリンク情報の生成を行っていない。このため、「オブジェクト」から「オブジェクト参照文」を探す手間がかかる。仮に同技術を用いて逆向きのリンク情報を作成したとしても、ひとつの「オブジェクト」に対応する「オブジェクト参照文」が多数ある場合に課題がある。例えば、前述したように、ユーザが「オブジェクト」に対応する「オブジェクト参照文」のひとつを閲覧した際に、所望の説明を得られる場合と得られない場合がある。その際に、説明を得られた場合は「オブジェクト」のページに戻り、得られない場合は引き続き別の「オブジェクト参照文」を閲覧する、といった動作をリンク情報によって提供することは困難だった。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、以下の構成を有する。すなわち、画像処理装置であって、入力された文書データを、本文領域と、キャプション領域と、該キャプション領域が付随するオブジェクト領域とに分割する領域分割手段と、前記領域分割手段により分割された前記本文領域と前記キャプション領域とのそれぞれに含まれる文字情報を取得する文字情報取得手段と、前記本文領域における文字情報から所定の文字列で構成されるアンカー表現を検索し、前記キャプション領域における文字情報から所定の文字列で構成されるアンカー表現を抽出して、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域の部分との間で双方向のリンクを生成するリンク処理手段と、前記入力された文書データを、前記リンク処理手段で生成したリンクに基づいて、前記本文領域におけるアンカー表現に対応する部分と前記キャプション領域が付随するオブジェクト領域に対応する部分との間を双方向にリンクさせた電子文書データに変換する変換手段とを備え、前記リンク処理手段により生成されるリンクは、前記本文領域内から同一のアンカー表現が複数検索された場合は、前記オブジェクト領域に対応する部分がユーザにより指定されたときに、前記本文領域内の複数の同一アンカー表現に対応する部分のうちの１つを強調表示し、且つ、前記本文領域内の複数の同一アンカー表現のうちの別のアンカー表現に対応する部分を表示させるためのボタンを表示するように制御する制御情報を含む。
【発明の効果】
【０００８】
本発明により、生成された電子文書データに対し、ユーザの参照部分に対する確認の利便性が向上する。また、ユーザが文書をより効率的に読み進めることができるという効果を有する。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る画像処理システムを示すブロック図。
【図２】図１におけるＭＦＰ１００を示すブロック図。
【図３】図２のデータ処理部２１８の構成例を示すブロック図。
【図４】図３のリンク処理部３０４の構成例を示すブロック図。
【図５】入力イメージデータ３００に対して領域分割を行った結果の説明図。
【図６】本発明で出力される入力イメージデータ５００に対する電子文書データの例。
【図７】第一の実施形態に係る処理全体のフローチャートの図。
【図８】第一の実施形態に係るページ単位のリンク処理のフローチャートの図。
【図９】第一の実施形態に係るリンク構成管理テーブル作成処理のフローチャートの図。
【図１０】第一の実施形態に係る複数ページの画像の一例、および処理結果の説明図。
【図１１】第一の実施形態に係るフィールド定義の一例。
【図１２】第一の実施形態に係る受信側のフローチャートの図。
【図１３】第一の実施形態に係るアプリケーションの説明図。
【図１４】第一の実施形態に係るフィールドの外観を定義するグラフィックデータの例図。
【図１５】第一の実施形態に係るリンク構成管理テーブルの一例。
【図１６】第一の実施形態に係るアクション定義生成処理のフローチャートの図。
【図１７】第一の実施形態に係るアクション定義設定の例図。
【図１８】第一の実施形態に係る電子文書データ構成の説明図。
【図１９】第二の実施形態に係るON_CLICK関数のフローチャートの図。
【図２０】第二の実施形態に係るアクション定義テーブルの例図。
【図２１】第二の実施形態に係る電子文書データ構成の説明図。
【図２２】第二の実施形態に係る処理全体のフローチャートの図。
【図２３】第二の実施形態に係るアクション関数の引数設定の例図。
【図２４】第三の実施形態に係る複数ページの画像の例および処理結果の説明図。
【図２５】第一の実施形態に係るアプリケーションの説明図。
【図２６】第四の実施形態に係るアクション定義における関数のフローチャートの図。
【図２７】第四の実施形態に係る電子文書データ構成の説明図。
【発明を実施するための形態】
【００１０】
＜第一の実施形態＞
［システム構成］
以下、本発明を実施するための形態について図面を用いて説明する。図１は本実施形態の画像処理システムの構成を示すブロック図である。図１において、オフィスＡ内に構築されたＬＡＮ１０２には、複数種類の機能（複写機能、印刷機能、送信機能等）を実現する複合機であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００が接続されている。ＬＡＮ１０２は、プロキシサーバ１０３を介してネットワーク１０４にも接続されている。情報処理装置であるクライアントＰＣ１０１はＬＡＮ１０２を介してＭＦＰ１００からの送信データを受信したり、ＭＦＰ１００が有する機能を利用したりする。
【００１１】
例えば、クライアントＰＣ１０１は、印刷データをＭＦＰ１００へ送信することで、その印刷データに基づく印刷物をＭＦＰ１００で印刷することもできる。尚、図１の構成は一例であり、オフィスＡと同様の構成要素を有する複数のオフィスがネットワーク１０４上に接続されていても良い。また、ネットワーク１０４は、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等で実現される通信ネットワークである。これは、データの送受信が可能なものであれば、何でも良い。また、クライアントＰＣ１０１、プロキシサーバ１０３の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素を有している。例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、外部記憶装置、ネットワークインタフェース、ディスプレイ、キーボード、マウス等である。
【００１２】
［ＭＦＰの詳細構成］
図２は本実施形態の画像処理装置であるＭＦＰ１００の詳細構成を示す図である。図２中、ＭＦＰ１００は、画像入力デバイスであるスキャナ部２０１と、画像出力デバイスであるプリンタ部２０２と、ＣＰＵ２０５等で構成される制御ユニット２０４と、ユーザインタフェースである操作部２０３等を有する。制御ユニット２０４は、スキャナ部２０１、プリンタ部２０２、操作部２０３と接続し、一方では、ＬＡＮ２１９や一般の電話回線網である公衆回線（ＷＡＮ）２２０と接続することで、画像情報やデバイス情報の入出力を行うコントローラである。
【００１３】
ＣＰＵ２０５は、制御ユニット２０４に含まれる各ユニットを制御する。ＲＡＭ２０６はＣＰＵ２０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２１０は、ブートＲＯＭであり、システムのブートプログラム等のプログラムが格納されている。記憶部２１１は、ハードディスクドライブで、システム制御ソフトウェア、画像データを格納する。操作部Ｉ／Ｆ２０７は、操作部（ＵＩ）２０３とのインターフェース部であり、操作部２０３に表示するための画像データを操作部２０３に対して出力する。また、操作部Ｉ／Ｆ２０７は、操作部２０３から本画像処理装置の使用者が入力した情報を、ＣＰＵ２０５に伝える役割を有する。ネットワークＩ／Ｆ２０８は、本画像処理装置をＬＡＮ２１９に接続し、パケット形式の情報の入出力を行う。モデム２０９は、本画像処理装置をＷＡＮ２２０に接続し、データの復調・変調を行うことにより情報の入出力を行う。以上のデバイスがシステムバス２２１上に配置される。
【００１４】
イメージバスＩ／Ｆ２１２は、システムバス２２１と画像データを高速で転送する画像バス２２２とを接続し、データ構造を変換するバスブリッジである。画像バス２２２は、例えば、ＰＣＩバスやＩＥＥＥ１３９４で構成される。画像バス２２２上には以下のデバイスが配置される。ラスターイメージプロセッサ（ＲＩＰ）２１３は、ＰＤＬ（ページ記述言語）コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。この展開する際には、各画素単位あるいは領域単位で属性情報が付加されることになる。これを像域判定処理と呼ぶ。像域判定処理により、画素毎にあるいは領域毎に、文字（テキスト）や線（ライン）、グラフィクス、イメージ等といったオブジェクトの種類を示す属性情報が付与される。
【００１５】
例えば、ＰＤＬコード内におけるＰＤＬ記述のオブジェクトの種類に応じて、ＲＩＰ２１３から像域信号が出力され、その信号値で示される属性に応じた属性情報が、オブジェクトに対応する画素や領域に関連づけて保存される。したがって画像データには、関連づけられた属性情報が付属している。デバイスＩ／Ｆ２１４は、信号線２２３を介して画像入力デバイスであるスキャナ部２０１を、信号線２２４を介して画像出力デバイスであるプリンタ部２０２、をそれぞれ制御ユニット２０４に接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１５は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部２１６は、プリンタ部２０２に出力すべきプリント出力画像データに対して、プリンタ部２０２に応じた補正、解像度変換等を行う。画像回転部２１７は、入力された画像データが正立するように回転を行い出力する。データ処理部２１８については後述する。
【００１６】
［データ処理部の詳細構成］
次に、図３を用いて、図２のデータ処理部２１８の詳細説明を行う。データ処理部２１８は、領域分割部３０１、属性情報付加部３０２、文字認識部３０３、リンク処理部３０４、フォーマット変換部３０５から構成される。データ処理部２１８は、スキャナ部２０１でスキャンしたイメージデータ３００が入力されてくると、各処理部３０１〜３０５で処理を行うことにより、電子文書データ３１０を生成して出力する。図３において、図２で示した記憶部２１１内部にて、データ処理部２１８の各部が記憶・管理に利用するデータの構成を示している。ここでは、イメージデータ３００、領域情報３０６、文字情報３０７、リンク情報３０８により構成されている。領域分割部３０１には、図２のスキャナ部２０１でスキャンされたイメージデータ、あるいは記憶部２１１に保存されているイメージデータ（文書画像データ）が入力される。そして、ページ内に配置された文字、写真、図、表、イラストなどの領域を抽出する。
【００１７】
この際の領域抽出方法（領域分割方法）としては公知の方法を用いればよい。一例を説明すると、まず、入力画像を２値化して２値画像を生成し、２値画像を低解像度化して間引き画像（縮小画像）を作成する。例えば、１／（Ｍ×Ｎ）の間引き画像を作成する際には、２値画像をＭ×Ｎ画素毎に分割し、Ｍ×Ｎ画素内に黒画素が存在すれば縮小後の対応する画素を黒画素とし、存在しなければ白画素とすることにより、間引き画像を作成する。次に、間引き画像において黒画素が連結する部分（連結黒画素）を抽出して当該連結黒画素に外接する矩形を作成していく。文字画像サイズに近い矩形（１文字の矩形）が並んでいる場合や、縦横のどちらかが文字画像サイズに近い矩形（数文字が繋がった連結黒画素の矩形）で短辺の近くに同様の矩形が並んでいる場合は、１つの文字行を構成している文字画像である可能性が高い。この場合は矩形同士を結合して、１つの文字行を表す矩形を得る。
【００１８】
そして、１つの文字行を表す矩形の短辺の長さがほぼ同じで、列方向にほぼ等間隔に並んでいる矩形の集合は、本文部である可能性が高いので、それらの文字行の矩形を結合して本文領域を抽出する。また、写真領域や図領域や表領域は、文字画像よりも大きいサイズの連結黒画素により抽出される。その結果、例えば、図５（ａ）のイメージデータ５００からは、領域５０１〜５０６に示す領域が抽出される。なお、各領域の属性は、後述するように、そのサイズや縦横比や黒画素密度や、連結黒画素内部に含まれる白画素の輪郭追跡結果等に基づいて判断される。
【００１９】
属性情報付加部３０２は、領域分割部３０１で分割された領域毎に属性を付加する。図５（ａ）を入力されるイメージデータ３００の例として処理動作を説明する。領域５０６は、そのページ内で文字数や行数を複数含み、文字数、行数、段落等の形態を保有する点から、総合的に判定して、『本文』の属性を付加する。残りの領域については、まず、文字画像サイズに近い矩形が含まれている領域か否かを判断する。特に、文字画像が含まれている領域は、領域内で文字画像の矩形が周期的に現れるので、領域内に文字が含まれている領域であるか否かを判断することができる。その結果、領域５０１、領域５０４、領域５０５は文字が含まれる領域として『文字領域』の属性を付加する。ただし、これらの領域は、文字数、行数、段落等の形態を持たない点から、『本文』の属性は付加されないことになる。
【００２０】
一方、それ以外の領域については、領域の大きさが非常に小さければ『ノイズ』と判定する。また、画素密度が小さい連結黒画素について、その内部の白画素輪郭追跡を行ったときに、その白画素輪郭の外接矩形が整然と並んでいる場合は当該領域を『表』と判断し、整然と並んでいない場合は『線画』と判断する。それ以外の画素密度の高いものは絵や写真であるとして『写真』の属性を付加する。更に、本文でない（『本文』の属性が付与されていない）と判断された文字領域（『文字領域』の属性を有する領域）については、『表』、『線画』、『写真』が付加された領域の近傍（領域の上または下）に存在する場合、当該『表』、『線画』、『写真』の領域を説明するための付随情報である文字領域であると判断し、『キャプション』の属性を付加する。つまり、『文字領域』と『表』、『線画』、『写真』等の領域との予め定義された位置関係に基づいて、『キャプション』の属性を有する領域を判定する。尚、『キャプション』の属性を付加する領域は、その『キャプション』が付随する領域（『表』、『線画』、『写真』）を特定できるように、『キャプション』を付加する領域と『キャプション』が付随する領域と関連付けて保存する。
【００２１】
また、『文字領域』と判定された領域のうち、『本文』属性の領域の文字画像より大きく、『本文』属性の領域における段組とは異なる位置にあれば『見出し』の属性を付加する。また、『本文』属性の領域における文字画像より大きく、『本文』属性の領域における段組の上部に存在すれば、属性を『小見出し』とする。更に、『本文』属性の領域における文字画像のサイズ以下の文字画像で、原稿の下端部や上端部に存在すれば『ページ』（もしくは、「ページヘッダ」、「ページフッタ」）の属性を付加する。また、『文字領域』として判断されたが、『本文』、『見出し』、『小見出し』、『キャプション』、『ページ』のどれにも当てはまらなかった場合、『文字』の属性を付加する。『文字領域』属性を有する領域に対して、更に詳細な属性を付与する判定は、上記に限定されるものではない。例えば、『文字領域』の属性を有する領域において、アンカー表現を有する領域を『キャプション』と判定しても良い。また、判定する順序を変更しても良いし、属性を付与する優先順位を定義しても良い。
【００２２】
以上のような属性情報付加処理を行うと、図５（ａ）の例では、領域５０１は『見出し』、領域５０２は『表』、領域５０３は『写真』、領域５０４は『文字』、領域５０５は『キャプション』、領域５０６は『本文』の属性が付加される。なお、領域５０５は、『キャプション』が付加されているため、『キャプション』が付随する領域として領域５０３が関連付けられている。
【００２３】
文字認識部３０３は、文字画像を含む領域（『文字』、『本文』、『見出し』、『小見出し』、『キャプション』の属性を有する領域）について、公知の文字認識処理を実行する。そして、その結果の文字コード列を文字情報として格納するとともに対象領域に関連付けを行う。
【００２４】
このように、領域分割部３０１、属性情報付加部３０２、文字認識部３０３において抽出された、領域の位置や大きさや領域属性の情報、ページの情報、文字認識結果の文字情報（文字コード情報）等は、記憶部２１１に保存される。図５（ｂ）は、図５（ａ）のイメージデータ５００を例に処理した場合、記憶部２１１に保存される情報の例を示す。なお、図５（ａ）および（ｂ）では詳細な説明を省略しているが、表内の文字画像の領域に関しては、『表内文字』の属性を付与して文字認識処理を行い、図５（ｂ）の「文字情報」の項目のように情報を保存しておくのが望ましい。領域５０４については、これが、写真や図の内部にある文字画像の領域なので、『領域５０３の写真内』の属性が追加されており、これは図５（ｂ）の領域５０４に対する「属性」の項目で示されているとおりである。
【００２５】
リンク処理部３０４は、属性情報付加部３０２で検出された『キャプション』属性の領域が付随する領域（以下、キャプション付随領域）と、『本文』属性の領域に存在するアンカー表現との間にリンクを構成する為の情報を生成する。そして、その情報を記憶部２１１のリンク情報３０８として保存する。アンカー表現とは、『写真』、『線画』、『表』等の「オブジェクト」領域に付随するキャプションに含まれる、同「オブジェクト」を特定可能な文字列（例えば、「図１」、「Ｆｉｇ１」等）である。『本文』属性の領域中にこのアンカー表現の文字列が存在することは、近辺の文章が対象の「オブジェクト」を説明・解説したり、引用したりしている「オブジェクト参照文」であることを意味する。従って、両者を関連付けたリンク情報は、文書の閲覧を効率良く行うために用いることができる。
【００２６】
なお、１のオブジェクトを示す『本文』属性の領域中の文字列は１つとは限られない。従って、１の「オブジェクト」に対する複数の「文字領域」（アンカー表現）が抽出される場合があり、その場合には単数対複数の対応を有するリンク情報となる。この場合、複数側の領域は「文字領域」となり、単数側の領域として「オブジェクト」となる。具体的な対応関係については、図１５を用いて後述する。
【００２７】
リンク処理部３０４によって生成されるリンク情報は、任意個数のフィールド定義によって構成される。ここで「フィールド」とは、出力電子文書のページ内で任意領域に配置可能なリンク元／リンク先となるリンク対象の領域である。フィールドの定義は、フィールドを一意に区別する為のフィールド識別子、形状および位置座標からなる外観定義、およびフィールドの表示方法や対話的操作に対する制御指示からなるアクション情報定義により構成される。アプリケーションは、本リンク情報を含む電子文書データを利用する際に、フィールド外観定義に従って指定位置を強調するための表示を行ったり、アクション情報定義によって対応位置をマウスでクリックしたときのページ移動等の制御を行ったりすることができる。ここでのアクションとは、ユーザの動作（例えば、対象領域のクリック）に基づいて、定義された処理を行うことを指す。リンク処理部３０４の処理内容詳細については後述する。
【００２８】
フォーマット変換部３０５は、入力されたイメージデータ３００、領域分割部３０１、属性情報付加部３０２、文字認識部３０３、リンク処理部３０４から得られた情報を用いて、電子文書データ３１０へ変換する。電子文書データ３１０の例としては、ＳＶＧ、ＸＰＳ、ＰＤＦ、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ等が挙げられる。変換された電子文書データ３１０は、記憶部２１１に保存されるか、または、ＬＡＮ１０２を介して、クライアントＰＣ１０１へ送信される。文書の利用者は、電子文書データ３１０をクライアントＰＣ１０１にインストールされているアプリケーション（例えば、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ａｄｏｂｅ  Ｒｅａｄｅｒ、ＭＳ  Ｏｆｆｉｃｅ等）で閲覧する。電子文書データ３１０をアプリケーションで閲覧する際の詳細については後述する。
【００２９】
電子文書データ３１０は、グラフィックス等によるページ表示情報（表示用画像等）と、文字等の意味記述による内容情報（リンク情報等）を含む。したがって、フォーマット変換部３０５の処理は、大きく２つある。１つは、画像領域（『表』、『線画』、『写真』等の属性を有する領域）に対して、平坦化やスムージング、エッジ強調、色量子化、２値化等のフィルタ処理を施す。そして、画像データ（例えば、『線画』属性が付与された領域に対応する部分の画像）をページ表示情報として電子文書データ３１０に格納できるものにすることである。実際には、画像データを、ベクトルパス記述のグラフィックスデータ（ベクトルデータ）や、ビットマップ記述のグラフィックスデータ（例えばＪＰＥＧデータ）にすることである。ベクトルデータへ変換する技術は公知のベクトル化技術を用いることが可能である。もう１つは、内容情報の生成である。具体的には、図２の記憶部２１１に保存されている領域情報（位置、大きさ、属性）、領域内の文字情報、リンク情報等を前述のページ表示情報に対応づけながら、電子文書データ３１０へ変換する。
【００３０】
さらに、このフォーマット変換部３０５では、各領域に施すべき変換処理方法は、領域の属性によって異なることが多い。例えば、ベクトル変換処理は、文字や線画のように白黒あるいは数色で構成された図形に対しては好適であるが、写真のように階調性のある画像領域には不適である。このように、各領域の属性に従った適切な変換を行うためには、図５（ｃ）のような対応テーブルをあらかじめ設定しておけばよい。例えば、図５（ｃ）の設定に従えば、『文字』、『線画』および『表』属性の領域に対してはベクトル変換処理が、『写真』属性の領域に対しては画像切り出し処理が行われる。
【００３１】
さらに、図５（ｃ）の対応テーブルにおいて、該当領域の画素情報をイメージデータ３００から消去する処理の有無が併せて記載されている。例えば、図５（ｃ）の設定に従って『文字』属性の領域をベクトルパス記述データに変換する場合、消去処理ありと指示されている。そこで、イメージデータ３００上において、当該変換されたベクトルパスに覆われる部分に対応する画素をその周辺色で塗りつぶす処理を行う。同様に、『写真』属性の領域を矩形の画像パーツとして切り出す際には、イメージデータ３００上において、当該切り出された領域に対応する領域範囲内を、その周辺色等で塗りつぶす処理を行う。
【００３２】
このような消去処理を行う目的としては、各領域に対する処理が終了した後（塗りつぶし処理終了後）のイメージデータ３００を『背景』の画像パーツデータとして利用できることである。この背景用の画像データ（背景画像）には、領域分割処理で抽出された領域以外の部分（例えばイメージデータ３００中の下地に対応するような画素）が残っている。電子文書データ３１０を記述の際には、フォーマット変換部３０５によって行われるベクトル変換処理や画像切り出し処理で得られたグラフィックスデータ（前景画像）を背景画像パーツデータ（背景画像）の上に重畳して表示するような記述を行う。これにより、背景画素（下地の色）の情報欠落がなくなり、かつ冗長性のないグラフィックスデータを構成することが可能となる。
【００３３】
そこで、『文字』領域部分に対しては、２値による画像切り出し処理と、イメージデータ３００からの画素消去処理が行われるが、それ以外の属性の領域に対しては、ベクトル化処理や画像切り出し処理は行わないとすることも可能である。すなわち、処理対象外の画素（『写真』や『線画』や『表』属性の領域内の画素情報）は、背景画像パーツデータ内に残っており、この背景画像上に『文字』の画像パーツを重畳するように記述される。
【００３４】
さらに、図５（ｃ）のような対応テーブルを予め複数用意しておき、出力する電子文書データ３１０の用途（使用目的）や電子文書データの内容に応じて選択するようにしても良い。例えば、図５（ｃ）の対応テーブルに基づいた出力は、オブジェクトの大半がベクトルパス記述へと変換されているため、拡大縮小時の画質に優れているので、グラフィックエディタ等の再利用の用途に好適である。また、他の対応テーブルの作成例としては、文字画像を文字色ごとに個別の２値画像を生成して可逆圧縮することで、文字画像部分は高品位に再生することができ、それ以外を背景画像としてＪＰＥＧ圧縮することでデータサイズの圧縮率を高くすることができる。この場合、圧縮率を高くしつつ文字画像が読みやすいデータを作成したい場合に適している。このように使い分けることで作成する電子文書データを適切なものにすることが可能となる。
【００３５】
［生成される電子文書データの構成例］
ここで生成される電子文書データ３１０の例を図６に示す。図６の例では、図５（ａ）のイメージデータ５００の例を処理した場合に、記憶部２１１に保存された図５（ｂ）のようなデータに基づいて、ＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）形式で記述を行った場合の例を示す。尚、ここではＳＶＧ形式を記述形式の例として説明するが、ＳＶＧに限定されるものではない。その他の記述形式として、例えばＰＤＦ、ＸＰＳ、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ、その他のＰＤＬ系のデータ形式等が挙げられる。
【００３６】
図５のイメージデータ５００に対する電子文書データの記述６００において、記述６０１〜６０６は、それぞれ図５（ａ）の領域５０１〜５０６に対するグラフィックス記述である。ここで、記述６０１、記述６０４〜６０６は文字コードによる文字描画記述の例であり、記述６０２はベクトル変換された表の枠のベクトルパス記述、記述６０３は切り出し処理された写真画像を貼り付ける記述の例である。なお、図５（ｂ）と図６の例で、座標値Ｘ１、Ｙ１等記号で記述されている部分は実際には対応する値を示す数値である。また、記述６０７はリンク情報の記述例である。記述６０７内において、記述６０８はキャプション付随領域に対するフィールド定義であり、「ｉｍａｇｅ＿０１」が付与されたフィールド識別子６１０、フィールドの外観定義６１１およびアクション定義６１２から構成されている。同様に記述６０９は、本文内のアンカー表現領域に対するフィールド定義であり、「ｔｅｘｔ＿０１」が付与されたフィールド識別子６１３、外観定義６１４およびアクション定義６１５によって構成されている。
【００３７】
図６に例示される電子文書データ３１０をユーザが閲覧する際のアプリケーションの動作例を説明する。ユーザがキャプション付随領域、つまり外観定義６１１の矩形範囲をクリックすると、アプリケーションはアクション定義６１２に定義された内容に従った動作を行う。すなわち、フィールド識別子「ｔｅｘｔ＿０１」を有するフィールドを取得し、このフィールドの外観である矩形Ｘ７，Ｙ７，Ｗ７，Ｈ７を赤で強調描画した状態でフォーカスを設定する。フォーカスが設定されることで、アプリケーションは該当フィールドを有するページに移動し、かつ該当部分が表示画面中心にくるよう表示する等の制御を行う。従って、ユーザはリンク先のアンカー表現領域を含む文章部分へワンクリックの動作で直接遷移することが出来、かつ同部分が強調されているので発見も容易となる。同様にユーザが本文内のアンカー表現領域をクリックした場合も、アプリケーションはアクション定義６１５に従ってキャプション付随領域の矩形を強調描画した状態でフォーカスを設定する。このようにユーザは、閲覧アプリケーション内でリンクされたキャプション付随領域とアンカー表現領域の間を容易に移動しながらの閲覧が可能となる。なお、フィールドの外観（表示）は例のように矩形のほか、円や任意パス、ボタンのビットマップイメージなどを指定することも可能である。
【００３８】
なお、本説明では、領域分割部３０１、属性情報付加部３０２、文字認識部３０３は、入力されるイメージデータにより領域情報３０６や文字情報３０７を抽出している。入力が電子文書データの場合も、一度各ページをイメージデータに変換することで同じ処理を行うことが出来る。一方で、入力される電子文書フォーマットをそのまま解釈し、前述した領域や属性を抽出するようにしてもよい。ここでいう電子文書フォーマットには、ＰＤＬなどのプリントデータ、ＳＶＧ、ＸＰＳ、ＰＤＦ、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬなどのアプリケーションデータ、さらにＨＴＭＬなどのＷｅｂ表示用データなどが含まれる。同時に、フォーマット変換部３０５は入力電子文書フォーマットからグラフィック情報を抽出し、出力される電子文書データ３１０のフォーマットに合わせた形に変換して出力する。ただし、これら個々の電子文書フォーマットからの領域情報・文字情報抽出処理、およびグラフィック情報抽出・フォーマット変換処理の内容については本発明の本質とは関係ないので説明は省略する。
【００３９】
［リンク処理部］
図４はリンク処理部３０４の構成例を示すブロック図である。以下、リンク処理部３０４に含まれる各構成要素の処理内容について説明する。リンク対象選択部４０１は入力されたイメージデータに対して、リンク対象となる領域を選択する。リンク対象となる領域とは具体的に、キャプションが付随する『写真』、『線画』、『表』のなどのオブジェクト領域（すなわちキャプション付随領域）と、アンカー表現の文字列を含む『本文』などの文字領域である。
【００４０】
キャプション内アンカー表現抽出部４０２は、リンク対象選択部４０１で選択されたキャプション付随領域に関係するアンカー表現を抽出する。具体的には、付随するキャプション領域の文字情報を解析し、その中からアンカー表現（例えば、「図１」、「Ｆｉｇ１」等）を検索する。そして、アンカー表現が見つかった場合には、その該当部分をキャプション内アンカー表現、それ以外の部分をキャプション表現として抽出する。また、文字コードの特性や辞書などを含むことで、有意でない文字列（無意味な記号列など）を排除する機能も有する。これは、文書のテキスト部分の境界に現れる飾りや、分割線、画像を文字として解釈するような文字認識の誤認識等に対応するためである。
【００４１】
また、アンカー表現を抽出するために、図番号などの多言語の文字列パターンや、それに対する文字認識の誤認識パターンを保有することで、アンカー表現の抽出精度と、アンカー表現の文字補正を行うことが可能である。また、キャプション表現に対しても、同様である。すなわち、自然言語処理での解析や、文字認識の誤認識補正などを行うことが可能で、アンカー表現との境目や、先頭・末尾に現れる記号や文字飾りなどを補正して排除したりする機能を有することも可能である。
【００４２】
本文内アンカー表現検索部４０３は、キャプション内アンカー表現抽出部４０２のアンカー表現抽出処理で用いられるアンカー表現である全ての特定文字列（「図」、「Ｆｉｇ」など）を、『本文』領域等の文字領域中から検索する。そして、オブジェクトに対応するアンカー表現の候補として検出する。また、アンカー表現を含みキャプション付随領域の説明・解説、引用などを行っている『本文』領域中の参照表現候補も併せて検出する。ここでは、検索を高速化するための、検索用インデックス（インデックス作成とそれを利用した高速検索の技術は公知のインデックス作成・検索技術を用いることが可能である）を作成することも可能である。また、複数のアンカー表現の特定文字列で一括検索をすることで、高速化を実現することも可能である。
【００４３】
また、『本文』領域中の参照表現に対しても、図番号などの多言語の文字列パターンや、それに対する文字認識の誤認識パターンを保有することで、検索精度の向上、および、補正を行う機能の提供が可能である。なお、本文内アンカー表現検索部４０３により抽出されるのは、アンカー表現の候補である。この本文内アンカー表現候補は、キャプション内アンカー表現抽出部４０２で抽出されたアンカー表現と後述の処理で対応付けされることで、実際のアンカー表現として確定される。ただし、以下記述簡略化の為、本文内アンカー表現の候補も本文内アンカー表現と記述する。
【００４４】
フィールド生成部４０４は、リンク対象となる領域のフィールド定義の記述を生成する。ここでリンク対象になる領域は、リンク対象選択部４０１で選択されたキャプション付随領域や、本文内アンカー表現検索部４０３で検索・抽出された本文内アンカー表現の文字列が存在する領域である。なお、生成時点でのフィールド定義は、フィールド識別子と外観のみが定義され、フィールド間のリンクを定めるアクション定義が確定していない不完全なものである。そして、後述のリンク構成情報を基に、全ページ処理後に各フィールドのアクション情報が関連づけられて定義されることで、「キャプション付随領域（オブジェクト）」と「本文中のオブジェクトの参照表現（アンカー表現）」との間の双方向のリンクが完成される。
【００４５】
さらにフィールド生成部４０４では、リンク対象領域の付近に複数のフィールドを生成し、それぞれに別のリンク先を定めるようにすることもできる。このようなフィールドは、他フィールドとの区別のために位置を変え、かつアイコンやラベル文字列によって機能がユーザに判るようボタン状の外観を有するように構成することができる。このようなボタンによるフィールドの具体例は後で説明する。フィールド生成部４０４が生成するフィールド定義４０８は、図３のリンク情報３０８を構成する情報の一つとして記憶・管理される。
【００４６】
リンク構成情報生成部４０５は、上述したフィールド生成部４０４でリンク対象のフィールドを生成した際に、各フィールドのフィールド識別子、出現累計回数、リンク先情報などのリンク構成情報を集計するためのリンク構成管理テーブル４０９を生成・更新する。リンク構成管理テーブル４０９もリンク情報３０８の一つとして記憶・管理される。リンク構成管理テーブル４０９の内容詳細については後述する。アクション定義生成部４０６は、リンク構成情報生成部４０５で生成されたリンク構成管理テーブル４０９を利用して、各フィールドに対応するアクション定義を生成し、フィールド定義４０８内の各フィールドに付与する。
【００４７】
リンク処理制御部４０７は、リンク処理部３０４全体の制御を行う。主に、図２の記憶部２１１に保存されている領域情報３０６（位置、大きさ、属性）、領域内の文字情報３０７に基づいて、イメージデータ３００中の各領域を適切な各処理部４０１〜４０６へと配分する。また、各処理部４０１〜４０６から出力される情報を適切な処理部へ渡す制御を行う。
【００４８】
リンク処理部３０４の各部分（図４で示した各処理部４０１〜４０７）の動作については、後述の実際に処理を行う例を扱う中で、再度取り上げられ詳細に説明する。
【００４９】
［処理フロー（概要）］
次に、本実施形態の画像処理システムで実行する処理全体の概要を、図７のフローチャートを用いて説明する。図７に示すフローチャートは、図２のデータ処理部２１８（図３で示した各処理部３０１〜３０５）によって実行されるものとする。なお、本実施形態では、ＣＰＵ２０５が記憶部２１１に格納されたコンピュータプログラムを読み取り実行することによって、データ処理部２１８（図３の各処理部３０１〜３０５）として機能するものとする。しかし、これに限るものではなく、例えば、データ処理部２１８を、電子回路等のハードウェアで実現するように構成してもよい。
【００５０】
図７は、図１のスキャナ部２０１で入力された複数ページのイメージデータを、１ページ毎に処理を行い、複数ページからなる電子文書データに変換する処理のフローチャートである。尚、複数ページのイメージデータとして、ここでは、図１０（ａ）に示した各ページ画像が入力されるものとする。以下、図７のフローチャートの各説明を行う。
【００５１】
Ｓ７０１において、データ処理部２１８はリンク情報３０８、すなわちリンク対象領域に関するフィールド定義４０８と、フィールド間のリンク関係を管理しているリンク構成管理テーブル４０９を初期化する。リンク情報３０８の内容に関する具体的な説明は後述する。
【００５２】
Ｓ７０２において、領域分割部３０１は、入力された１ページ分のイメージデータから領域を抽出する。例えば、図１０（ａ）のイメージデータ１００１（１ページ目）に対しては領域１００８を抽出する。Ｓ７０２において図１０（ｂ）に示す「座標Ｘ」「座標Ｙ」「幅Ｗ」「高さＨ」および「ページ」の情報が記憶部２１１に保存される。
【００５３】
Ｓ７０３において、属性情報付加部３０２は、Ｓ７０２で分割された各領域に属性を付加する。図１０（ａ）のイメージデータ１００２（２ページ目）の例では、領域１０１０には『線画』の属性、領域１０１１には『キャプション』の属性を付加する。尚、この領域１０１１には、付随する領域が領域１０１０であるという情報も併せて付加する。即ち、領域１０１０はキャプション付随領域となる。Ｓ７０３において、図１０（ｂ）に示す「属性」および「キャプションが付随する領域」の情報が記憶部２１１に保存される。
【００５４】
Ｓ７０４において、文字認識部３０３は、Ｓ７０３で『文字領域』の属性（『本文』、『キャプション』、『見出し』、『小見出し』等）を付加した領域（以下、文字領域）に対して文字認識処理を実行し、その結果を文字情報として対象領域に関連付けて保持する。Ｓ７０４において図１０（ｂ）に示す「文字情報」が記憶部２１１に保存される。
【００５５】
Ｓ７０５において、リンク処理部３０４は、図８のフローチャートで説明されるリンク処理を行う。この処理が終わると、Ｓ７０６へ進む。以下に、図１０の入力データを入力例として、図１０（ａ）中の各ページが入力された場合のＳ７０５およびＳ７０６の処理詳細について順に説明する。
【００５６】
［リンク処理（１ページ目（イメージデータ１００１）を入力した場合）］
まず、Ｓ７０５の処理詳細について、図１０（ａ）に示したイメージデータ１００１が入力された場合を例にとり、図８のフローチャートを用いて説明する。本処理フローは、本実施形態において、ＣＰＵ２０５によって、ＲＯＭ２１０、記憶部２１１等に記憶されたプログラムが読み出され、実行されるものとする。図８のＳ８０１において、リンク処理部３０４内のリンク対象選択部４０１は、記憶部２１１に保存された領域情報３０６より、文字領域の内、リンク情報生成処理が行われていない領域を一つ選出する。そして、未処理の文字領域があれば、当該文字領域を処理対象として選択し、Ｓ８０２に進む。文字領域が存在しないか、全て処理済みであった場合にはＳ８０７に進む。イメージデータ１００１は文字領域のうちの『本文』領域１００８を含んでいるため、Ｓ８０２へ進む。
【００５７】
Ｓ８０２において、本文内アンカー表現検索部４０３は、リンク対象選択部４０１によって選択された文字領域の文字情報３０７から、アンカー表現である全ての特定文字列（「図」、「Ｆｉｇ」など）を検索する。この特定文字列は、後述するＳ８０８においてキャプション内アンカー表現抽出部４０２が検索に用いる文字列と一致する。本文内アンカー表現が検出された場合はＳ８０３へ進む。本文内アンカー表現が検出されなかった場合には、当該領域内にリンク情報を付与する該当箇所がないと判定し、Ｓ８０１に戻る。そして、次の未処理文字領域を選択する。イメージデータ１００１の場合、領域１００８から文字列「図１」を含む領域１００９が、アンカー表現の文字列が存在する領域（以下、本文内アンカー表現領域）として検出される。
【００５８】
Ｓ８０３において、フィールド生成部４０４は、Ｓ８０２で検出された本文内アンカー表現領域をリンク対象としてフィールドを生成し、フィールド識別子およびフィールド外観を定義するグラフィックデータを関連付ける。生成されたフィールドの情報は、記憶部２１１のフィールド定義４０８に追加される。
【００５９】
ここで「フィールド識別子」とは、後の処理でフィールド間にリンク関係を付与するために、フィールド自体の性質を表わすよう付けられるフィールドの識別情報である。本実施形態では、文字列「Ａ＿Ｂ−Ｃ［−Ｄ］」をフィールド識別子の構成体系として用いている。ここで、「Ａ」はフィールドの種類、すなわち“キャプション付随領域”か“本文内アンカー表現領域”かを示す文字列である。本実施形態ではキャプション付随領域は「ｉｍａｇｅ」、本文内アンカー表現領域を「ｔｅｘｔ」で表わすものとする。「Ｂ」はそのフィールドに用いられているアンカー表現の文字列、例えば「図１」、「図２」などなどである。「Ｃ」は同一のアンカー表現を有する複数の領域に対し、出現順に割り宛てられる序数である。
【００６０】
なお、本実施形態の以下説明においては、同一アンカー表現を有す複数の本文内アンカー表現領域が出現する場合を想定しており、同一アンカー表現を有す複数のキャプション付随領域が出現する場合を想定しない。これはひとつの文書に同じ図番号等を有するオブジェクトは複数存在しないという一般的事実に沿うものであるが、主な理由は説明を簡単にする為である。よって、そのような例外に対応するために、キャプション付随領域と本文内アンカー表現を対等に扱うようにしてもよい。「［−Ｄ］」の部分はあるフィールドに付随するボタンフィールドを識別する為の任意文字列で、ボタン以外のフィールドでは省略される。ボタンフィールドの具体例については後述する。上記規則に従って、領域１００８内に存在する本文内アンカー表現の領域１００９に対しては、文字列「ｔｅｘｔ＿図１−１」がフィールド識別子として関連付けられる。この場合、「［−Ｄ］」の部分は省略される。
【００６１】
また、フィールド外観を定義するグラフィックデータは、本実施形態により生成される電子文書データ３１０をアプリケーションで閲覧する際、フィールドに対応して表示される描画情報である。フィールドの外観を定義するグラフィックデータの一例を模式的に示す図１４（ａ）に示す。グラフィックデータ１４０１は、イメージデータ１００１（の一部）に対応する電子文書データの１ページ目のグラフィックデータを示している。これはグラフィックデータ１４０２（すなわち、同表示に重畳されてアンカー表現「図１」が存在する領域１００９）を囲むように描画される矩形情報である。
【００６２】
グラフィックデータ１４０２は、『本文』領域中の説明表現におけるアンカー表現の位置を分かりやすくするための強調表示に用いられる。すなわち、閲覧者がキャプション付随領域を有するページからアンカー表現を含む『本文』領域のあるページに移動した場合に、ユーザがどの位置（何段落目、何行目）を見ればよいのかを容易に把握するための描画情報としても利用する。図１４（ｂ）に、アンカー表現のグラフィックデータ１４０４が強調表示されている例を示す。尚、ここで生成するグラフィックデータは、アンカー表現の文字列の位置ではなく、『本文』領域中の説明表現の位置を分かりやすくするために表示する描画情報として、例えば文章全体を囲むように生成してもよい。また、本実施形態においてグラフィックデータを矩形として説明しているが、矩形に限ることなく閲覧者に分かりやすくするために強調表示する描画情報であれば任意の形、線、ビットマップ等でも構わない。
【００６３】
図１１のフィールド１１２０に、図１０（ａ）のイメージデータ１００１から生成されるフィールドの例を示す。フィールド１１２０はイメージデータ１００１中のアンカー表現領域１００９に対応するフィールドで、フィールド識別子１１０１として「ｔｅｘｔ＿図１−１」が関連付けられている。また外観定義グラフィックデータ１１０２として、矩形（「座標Ｘ」、「座標Ｙ」、「幅Ｗ」、「高さＨ」）＝（「Ｘ２０」、「Ｙ２０」、「Ｗ２０」、「Ｈ２０」）を描画するグラフィックデータが関連付けされる。なお、フィールド定義のうちアクション定義１１０３は未決定であるため、この段階では内容は空である。
【００６４】
Ｓ８０４において、リンク構成情報生成部４０５は、フィールド間の対応関係を構築するため、記憶部２１１に保持されるリンク構成管理テーブル４０９を更新する。リンク構成管理テーブル４０９の目的は、入力文書データ全体から得られた情報よりフィールド定義４０８の各フィールドに対するアクション定義を定め、アプリケーション上でのリンク機能を実現することである。
【００６５】
ここで図１５にリンク構成管理テーブルの一例を示す。図１５に示した（ａ）から（ｆ）には、処理が進むにつれてリンク構成管理テーブルが更新されている例を示している。リンク構成テーブルは、キャプション付随領域関連情報の欄と、本文内アンカー表現領域関連情報の欄を対にして管理する。キャプション付随領域関連の情報としては、キャプション内アンカー表現の欄、後述のＳ８０９にてキャプション付随領域に対して生成されるフィールドの識別子の欄がある。本文内アンカー表現領域関連の情報としては、本文内アンカー表現欄と本文内アンカー表現出現回数欄、および本文内アンカー表現に対して生成されたフィールドの識別子の欄がある。これらの情報は記憶部２１１のリンク構成管理テーブル４０９に保存され、Ｓ８０４およびＳ８１０で随時更新される。
【００６６】
［リンク構成情報の更新処理］
Ｓ８０４におけるリンク構成情報の更新に係る処理詳細について、図１１のフィールド１１２０をリンク対象として処理する場合を図９（ａ）のフローチャートに沿って説明する。
【００６７】
Ｓ９０１において、リンク構成情報生成部４０５は、リンク構成管理テーブル内に、「本文内アンカー表現」の項目の内容が処理中のフィールドのアンカー表現と一致するデータ行が存在するか否かを判定する。存在する場合はそのデータ行を処理対象にしてＳ９０５に進む。存在しない場合はＳ９０２に進む。イメージデータ１００１入力時点では、リンク構成管理テーブルは空なのでＳ９０２に進む。
【００６８】
Ｓ９０２において、リンク構成情報生成部４０５はリンク構成管理テーブル内に、「キャプション内アンカー表現」の項目の内容が処理中フィールドのアンカー表現と一致するデータ行が存在するか否かを判定する。具体的には、処理中のフィールド識別子の文字列から、アンカー表現を示す部分の文字列を抽出し、その文字列とデータ行の内容を比較する。存在する場合はそのデータ行を処理対象にしてＳ９０４に進む。存在しない場合はＳ９０３に進む。イメージデータ１００１入力時点では、フィールド１１２０の識別子「ｔｅｘｔ＿図１−１」中のアンカー表現「図１」に対し、リンク構成管理テーブルは空なのでＳ９０３に進む。
【００６９】
Ｓ９０３では、空内容のデータ行をリンク構成管理テーブルに新規追加する。以降の処理はこの新規データ行を対象に行われる。Ｓ９０４では、対象データ行の「本文内アンカー表現」の項目に処理中のフィールドにおけるアンカー表現の文字列を記述する。本例ではフィールド１１２０のアンカー表現「図１」が記述される。Ｓ９０５では、対象データ行の本文アンカー表現出現回数を＋１する。本例では、この段階でこのアンカー表現は初出の為、出現回数は０から１に更新される。
【００７０】
Ｓ９０６では、対象データ行の「本文内アンカー表現領域フィールド識別子」の項目に、処理中のフィールドのフィールド識別子を追加する。本例では、上述した規則に従って、「ｔｅｘｔ＿図１−１」が追加される。Ｓ９０６終了後は図８Ｓ８０４に戻る。フィールド１１２０に対するＳ８０４終了後のリンク構成管理テーブルの内容例を１５（ａ）に示す。
【００７１】
図８に戻り、Ｓ８０５において、フィールド生成部４０４は、Ｓ８０３で生成したアンカー表現を有する領域のフィールドの近傍に、ボタンの外観を有するフィールド（以下、ボタンフィールド）を追加生成する。ここで追加されるボタンフィールドは、本文内アンカー表現の領域に対して複数のアクションを定義する目的で用いられる。本例では、以下の３つのアクションを定義する為のボタンフィールドを３つ生成するものとする。
【００７２】
（１）前の本文内アンカー表現領域を強調表示し、フォーカス設定するアクション
（２）次の本文内アンカー表現領域を強調表示し、フォーカス設定するアクション
（３）キャプション付随領域を強調表示し、フォーカス設定する設定アクション
（１）および（２）は、文書データ中には同じキャプション付随領域（オブジェクト）を参照する本文内アンカー表現領域が複数存在していることを想定している。これにより、アプリケーション閲覧時に複数アンカー表現を有する領域間で相互に表示箇所を移動することを目的としている。（３）の目的は、Ｓ８０３で生成したフィールドと同じで、対応するキャプション付随領域に表示箇所を移動することであるが、（１）、（２）によるアンカー表現間の移動と明示的に区別する為に用いられる。
【００７３】
フィールド１１２０に対するＳ８０５の処理の例では、（１）〜（３）を目的として、それぞれフィールド識別子「ｔｅｘｔ＿図１−１−Ｐｒｅｖ」、「ｔｅｘｔ＿図１−１−Ｎｅｘｔ」、「ｔｅｘｔ＿図１−１−Ｂａｃｋ」のボタンフィールドが生成される。また、各フィールドの外観定義の例を図１４（ｃ）に示す。上記（１）（２）（３）はそれぞれボタン１４０５、１４０６、１４０７に示すようなビットマップを有するボタンとして、グラフィックデータ１４０４の下端に並ぶよう配置されている。これらの外観はあくまで一例であり、ユーザが指示用の表示として認識できれば、どのようなものでも良い。例えば「前へ」「次へ」「戻る」等のテキストラベルによるボタンであってもよい。またボタンの位置、大きさ、色彩などを変えることで本文の文字列が隠れないようにしてもよい。図１１のフィールド１１２１〜１１２３にこれらボタンフィールドに対するフィールド定義の例を示す。なおフィールド１１２０同様、この時点でアクション定義の内容は空である。
【００７４】
Ｓ８０６では、Ｓ８０２で文字領域において、複数のアンカー表現検出された場合、未処理のアンカー表現が存在する場合はＳ８０３に戻り、Ｓ８０３以降の処理を繰り返す。未処理のアンカー表現が無い場合はＳ８０１に戻り、次の未処理の文字領域の処理に移る。
【００７５】
Ｓ８０７において、リンク対象選択部４０１は、記憶部２１１に保存された領域情報３０６において、キャプション付随領域の内、フィールド生成処理が行われていない領域（オブジェクト）を一つ選択する。すなわち、未処理のキャプション付随領域があれば、当該キャプション付随領域を処理対象として選択し、Ｓ８０８に進む。全てのキャプション付随領域が処理済みであった場合には処理を終了し、図７のＳ７０５へ戻る。イメージデータ１００１には、キャプション付随領域が存在しないため、処理を終了し、図７のＳ７０５へ戻ることになる。
【００７６】
［フォーマット変換処理］
続いて、イメージデータ１００１が入力された場合の図７中のＳ７０６のフォーマット変換処理詳細について説明する。Ｓ７０６において、フォーマット変換部３０５は、イメージデータ３００および、図１０（ｂ）に示す記憶部２１１に保存された各種情報に基づいて、電子文書データ３１０への変換を行う。尚、図４で説明したように、フォーマット変換部３０５は、領域１００８に施すべき変換処理方法を記した変換対応テーブルに従って、イメージデータ３００内の領域に変換処理を実行する。ここでは、図５（ｃ）の変換対応テーブルを用いて変換を行う。すなわち、文字属性の『本文』領域に対してベクトル変換を行ったデータと、イメージデータから文字部分の画素を消去した背景画像データをページのグラフィック記述とする。
【００７７】
また、リンク情報としては図１１のフィールド１１２０〜１１２３を各々のフィールド記述子、外観定義グラフィックデータを含めて記述する。ただし、現段階では前述のとおりアクション定義は未定義であるため、各フィールドのアクション内容は電子文書データ３１０の別部分を参照するように記述しておく。実際のアクション内容は、後述するＳ７０９において送信されて電子文書データ３１０へと追加されることになる。
【００７８】
図１８（ａ）に、イメージデータ１００１に対してフォーマット変換部３０５が生成する電子文書データ３１０の１ページ目のデータ記述の例を示す。記述１８０１は背景画像のグラフィックデータ、記述１８０２は文字部分のパス記述、記述１８０３はリンク情報であるフィールドの記述例である。記述１８０３中の記述１８０４は、図１１のフィールド１１２０に対応する記述例であり、記述１８０５にはフィールド識別子、記述１８０６には外観定義、そして記述１８０７にはアクション定義が定義されている。この記述１８０７は、クリック時のアクション（ｏｎｃｌｉｃｋ）として、“ｔｅｘｔ＿図１−１．ｏｎｃｌｉｃｋ”というｉｄを有する要素を参照するように記述してある。実際にアクション内容が記述されるその要素は、後述する全ページ送信終了後のアクション定義送信（Ｓ７０９）において電子文書データに追加されることとなる。同様に記述１８０８は図１１のフィールド１１２１に対応する記述例であり、記述１８０９にはフィールド識別子、記述１８１０には概観定義、そして記述１８１１にはアクション定義が定義されている。
【００７９】
［リンク処理（２ページ目（イメージデータ１００２）を入力した場合）］
次に、２ページ目のイメージデータ１００２が入力された場合における図７のＳ７０５の処理詳細について、図８のフローチャートを用いて説明する。
【００８０】
Ｓ８０１において、リンク対象選択部４０１は、文字領域が存在しないと判定し、Ｓ８０７へ進む。Ｓ８０７において、リンク対象選択部４０１は、未処理のキャプション付随領域を選択し、Ｓ８０８へ進む。本例では、「キャプションが付随する領域」の項目を参照して、処理対象となるキャプション付随領域である領域１０１０、１０１２のうちから、先ず領域１０１０を選択する。そして、Ｓ８０８へ進む。
【００８１】
Ｓ８０８において、キャプション内アンカー表現抽出部４０２は、リンク対象選択部４０１によって選択されたキャプション付随領域に付随するキャプション領域の文字情報から、アンカー表現およびキャプション表現を抽出する。アンカー表現が抽出された場合はＳ８０９に進み、抽出されなかった場合はＳ８０７に戻る。イメージデータ１００２では、キャプション付随領域１０１０が抽出されるため、Ｓ８０９へ進む。Ｓ８０８で抽出される「アンカー表現」とは、前述のようにキャプション付随領域を識別するための文字情報（文字列）である。一方、「キャプション表現」とはキャプション付随領域を説明するための文字情報（文字列）である。
【００８２】
キャプション付随領域に付随するキャプションには、その構成として、（１）アンカー表現のみが記載される場合、（２）キャプション表現のみが記載される場合、（３）両方が記載される場合、（４）上記いずれでもない場合、の４つが考えられる。例えば、アンカー表現は「図」や「Ｆｉｇ」等、特定の文字列と、番号や記号との組み合わせ表現される場合（上記（３）に相当）が多い。そこで、それら特定の文字列を登録したアンカー文字列用辞書を予め用意しておき、キャプション表現を該辞書と比較してアンカー部分（アンカー文字列＋数記号）を特定すればよい。そして、キャプション領域の文字列のうち、アンカー表現以外の文字列をキャプション表現として判断すればよい。イメージデータ１００２において、キャプション付随領域１０１０に付随するキャプション領域１０１１の文字情報は、「図１  ＡＡＡ」である。従って、アンカー表現は「図１」、キャプション表現は「ＡＡＡ」となる。
【００８３】
Ｓ８０９では、フィールド生成部４０４は、Ｓ８０８でアンカー表現が抽出されたキャプション付随領域をリンク対象としてフィールドを生成し、フィールド識別子およびフィールド外観を定義するグラフィックデータを関連付ける。図１０（ａ）のキャプション付随領域１０１０に対しては、図１1に示すフィールド１１２４が生成される。フィールド１１２４にはフィールド識別子１１０１として「ｉｍａｇｅ＿図１−１」が関連付けられる。また、外観定義グラフィックデータ１１０２として、矩形のグラフィックデータ（座標Ｘ，座標Ｙ，幅Ｗ，高さＨ）＝（Ｘ２４，Ｙ２４，Ｗ２４，Ｈ２４）が関連付けされる。図１４（ｄ）の領域１４０６は、この矩形のグラフィックデータを模式的に示した図である。このデータは、図１４（ｅ）示すように、アプリケーションが２ページ目のイメージデータ１４０７を表示するときに、キャプション付随領域部分を表示１４０８のように強調表示する際に用いられる。なお、この矩形のグラフィックデータの座標は、キャプション付随領域の外接矩形と同一であってもよいし、見やすいように外接矩形よりも多少大きい値であっても良い。また、表示方法は、矩形に限らず、閲覧者が認識しやすいように強調表示する描画情報であれば任意の形、線、ビットマップ等でも構わない。以上生成されたフィールドの情報は記憶部２１１のフィールド定義４０８に追加される。
【００８４】
Ｓ８１０では、リンク構成情報生成部４０５は、フィールド間の対応関係を構築するためのリンク構成管理テーブル４０９を更新する。Ｓ８１０の処理詳細について、図１１のフィールド１１２４をリンク対象として処理する場合の例を図９（ｂ）のフローチャートに沿って説明する。なお、処理直前のリンク構成テーブルは図１５（ａ）である。
【００８５】
Ｓ９１１において、リンク構成情報生成部４０５は、リンク構成管理テーブルにおける「本文内アンカー表現」の項目の内容が処理中フィールドのアンカー表現と一致するデータ行が存在するか否かを判定する。存在する場合は、そのデータ行を処理対象にしてＳ９１３に進む。存在しない場合は、Ｓ９１２に進む。本例の場合、図１５（ａ）におけるリンク情報１５０１の本文内アンカー表現「図１」と処理中フィールドのアンカー表現が一致するのでＳ９１３に進む。Ｓ９１３では、対象データ行の「キャプション内アンカー表現」の項目に処理中フィールドのアンカー表現文字を記述する。本例ではアンカー表現「図１」が記述される。
【００８６】
Ｓ９１４では、対象データ行の「キャプション付随領域フィールド識別子」の項目に、処理中フィールドに対応するフィールドの識別子を記述する。本例ではフィールド１１２４のフィールド識別子「ｉｍａｇｅ＿図１−１」が追加される。Ｓ９１４が終了後は、図８Ｓ８０７に戻る。図１１に示すフィールド１１２４に対するＳ８１０終了後のリンク構成管理テーブルの内容例を図１５（ｂ）に示す。
【００８７】
本例におけるイメージデータ１００２の入力に対しては、続けてキャプション付随領域１０１２がＳ８０７で検出され、同様にＳ８０８〜Ｓ８１０の処理が行われる。以下、簡単に説明するが、Ｓ８０８ではキャプション付随領域１０１２に付随するキャプションからアンカー表現「図２」が抽出され、Ｓ８０９では図１１に示すフィールド１１２５が生成される。Ｓ８１０ではフィールド１１２５に対して図９（ｂ）のフローチャートに従って処理が行われる。Ｓ９１１ではアンカー表現「図２」を含むデータ行が存在しないので、Ｓ９１２に進み新規データ行が生成される。このデータ行に対してＳ９１３でキャプション内アンカー表現、Ｓ９１４でキャプション付随領域フィールド識別子の各欄が記述される。フィールド１１２５に対するＳ８１０終了後のリンク構成管理テーブルの内容例を１５（ｃ）に示す。
【００８８】
続いて、イメージデータ１００２が入力された場合の図７に示すＳ７０６のフォーマット変換の処理詳細について説明する。Ｓ７０６において、１ページ目のイメージデータ１００１と同様に、フォーマット変換部３０５は、イメージデータ１００２に対応する電子文書ページの生成を行う。具体的には図１０（ａ）の領域１０１０〜１０１３を図５（ｃ）のテーブルに従って変換したグラフィックデータの生成と、図１１のフィールド１１２４、１１２５に対応するリンク情報が生成される。
【００８９】
図１８（ｂ）に、イメージデータ１００２に対してフォーマット変換部３０５が生成する電子文書データ３１０の２ページ目のデータ記述の例を示す。記述１８２１は背景画像のグラフィックデータ、記述１８２２は２つの線画領域に対するパス記述、記述１８２３はリンク情報であるフィールドを定義している。
【００９０】
記述１８２３に含まれる記述１８２４は、図１１のフィールド１１２４に対応する記述例であり、記述１８２５にはフィールド識別子、記述１８２６には外観定義、そして記述１８２７にはアクション定義が定義されている。記述１８２８は、図１１のフィールド１１２８に対応する記述例であり、記述１８２９にはフィールド識別子、記述１８３０には外観定義、そして記述１８３１にはアクション定義が定義されている。なお、これらアクション情報は１ページ目のイメージデータと同様に、電子文書データ３１０に後で追加されるアクション定義の要素を参照するように記述されている。
【００９１】
［リンク処理（３ページ目（イメージデータ１００３）を入力した場合）］
次に、３ページ目のイメージデータ１００３が入力された場合のＳ７０５の処理詳細について、図８のフローチャートを用いて説明する。図８のＳ８０１において、リンク対象選択部４０１は、記憶部２１１に保存された領域情報３０６より、未処理の文字領域を一つ選択して、Ｓ８０２に進む。イメージデータ１００３の場合、『本文』領域１０１４が選択されてＳ８０２へ進む。
【００９２】
Ｓ８０２において、本文内アンカー表現検索部４０３は、『本文』領域１０１４の文字情報からアンカー表現「図１」が存在する領域１０１５を抽出する。Ｓ８０３において、フィールド生成部４０４は、領域１０１５をリンク対象とするフィールドを生成する。フィールド識別子は、アンカー表現「図１」を２番目に参照するフィールドという意味で、前述の規則に従い、「ｔｅｘｔ＿図１−２」として付与される。１ページ目のイメージデータと同様に、さらに、領域１０１５を囲む矩形のグラフィックデータが外観定義として関連付けられる。生成されたフィールドは記憶部２１１のフィールド定義４０８に追加される。領域１０１５に対するフィールド定義の例を図１１のフィールド１１２６に示す。
【００９３】
Ｓ８０４において、リンク構成情報生成部４０５は、リンク構成管理テーブルを更新する。既に説明したため詳細な内容は省略するが、フィールド１１２６を対象に図９（ａ）のフローチャートに沿った処理を行うことにより、リンク構成管理テーブルは図１５（ｃ）から図１５（ｄ）に更新される。Ｓ８０５において、本文内アンカー表現領域１０１５に付随するボタンのフィールドが生成される。本処理に関する説明は、１ページ目のイメージデータの処理に対する同処理の説明と全く同じなので省略する。本例では、図１１のフィールド１１２７〜１１２９が生成される。
【００９４】
続くＳ８０６では、未処理のアンカー表現が無いのでＳ８０７に進み、更に、イメージデータ１００３にはキャプション付随領域が存在しないため、Ｓ８０１に戻る。Ｓ８０１では今度は文字領域１０１６が選出される。しかし、Ｓ８０２でアンカー文字が検出されないため、Ｓ８０３以降の処理は行われず、全領域終了として図８の処理を終了して図７Ｓ７０５に戻る。
【００９５】
図７のＳ７０６において、フォーマット変換部３０５は、イメージデータ１００３に対応する電子文書ページの生成を行う。具体的には図１０（ａ）の領域１０１４、１０１６を図５（ｃ）のテーブルに従って変換したグラフィックデータと、図１１のフィールド１１２６〜１１２９に対応するリンク情報とが生成される。図１８（ｃ）に電子文書データ３１０の３ページ目のデータ記述例を示す。内容説明は１ページ目のデータ記述例と大きな差が無いため省略する。
【００９６】
［リンク処理（４ページ目（イメージデータ１００４）を入力した場合）］
４ページ目のイメージデータ１００４が入力された場合のＳ７０５の処理詳細について、図８のフローチャートを用いて説明する。
【００９７】
図８のＳ８０１において、リンク対象選択部４０１は、記憶部２１１に保存された領域情報３０６より、未処理の文字領域を一つ選択して、Ｓ８０２に進む。イメージデータ１００４の場合、本文領域１０１７が選択されてＳ８０２へ進む。
【００９８】
Ｓ８０２において、本文内アンカー表現検索部４０３は、本文領域１０１７の文字情報からアンカー表現「図１」が存在する領域１０１８および「図２」が存在する領域１０１９を抽出する。
【００９９】
Ｓ８０３において、フィールド生成部４０４はまず領域１０１８をリンク対象とするフィールドを生成する。フィールド識別子は、アンカー表現「図１」を３番目に参照するフィールドという意味で、前述の規則に従い、「ｔｅｘｔ＿図１−３」として付与される。また、領域１０１８を囲む矩形のグラフィックデータが外観定義として関連付けられる。生成されたフィールドは、記憶部２１１のフィールド定義４０８に追加される。領域１０１８に対するフィールド定義の例を図１１のフィールド１１３０に示す。
【０１００】
Ｓ８０４において、リンク構成情報生成部４０５は、リンク構成管理テーブルを更新する。既に説明したので詳細な内容は省略するが、フィールド１１３０を対象に図９（ａ）のフローチャートに沿った処理を行うと、リンク構成テーブルは、図１５（ｄ）から図１５（ｅ）に更新される。Ｓ８０５において、本文内のアンカー表現の領域１０１５に付随するボタンのフィールドが生成される。本処理に関する説明は１ページ目のイメージデータへの処理の説明と同じなので省略する。本例では、図１１に示すフィールド１１３１〜１１３３が生成される。
【０１０１】
Ｓ８０６では、未処理のアンカー表現「図２」の領域１０１９が存在するため、Ｓ８０３に戻る。Ｓ８０３〜Ｓ８０５の処理では、領域１０１９に対して前述の説明と同様に図１１のフィールド１１３４〜１１３７が生成され、リンク構成管理更新テーブルは図１５（ｆ）へ更新される。再びＳ８０６では、未処理のアンカー表現がないのでＳ８０７に進み、更にイメージデータ１００７にはキャプション付随領域が存在せず、未処理の文字領域も無いので、図８に示す処理を終了して図７のＳ７０６に進む。
【０１０２】
図７のＳ７０６において、フォーマット変換部３０５は、イメージデータ１００４に対応する電子文書データ３１０の生成を行う。具体的には図１０（ａ）に示す領域１０１７を図５（ｃ）のテーブルに従って変換したグラフィックデータと、図１１のフィールド１１３０〜１１３７に対応するリンク情報とが生成される。図１８（ｄ）に電子文書データ３１０の４ページ目のデータ記述例を示す。内容説明は１、３ページ目のデータ記述例と大きな差が無いため省略する。
【０１０３】
以上、図７のＳ７０５、Ｓ７０６の処理について、図１０（ａ）の入力されたイメージデータの例（４ページ）に従って個別の処理例を説明した。以降はＳ７０７、Ｓ７０８は各ページ共通の処理として説明する。
【０１０４】
Ｓ７０７において、データ処理部２１８は、Ｓ７０６でフォーマット変換した電子文書データをページ単位でクライアントＰＣ１０１へ送信する。Ｓ７０８において、データ処理部２１８は、Ｓ７０２〜Ｓ７０７の処理を全てのページに対して行い、全ページの処理が終了したか否かを判定する。全てのページの処理を終了していればＳ７０９へ進む。未処理のページがあればＳ７０２から繰り返す。このように図１０（ａ）に示した４ページ分のイメージデータ１００１〜１００４に対して、Ｓ７０２〜Ｓ７０７の処理を行う。
【０１０５】
Ｓ７０９において、アクション定義生成部４０６は、Ｓ７０５にて作成されたリンク構成管理テーブル４０９を利用して、Ｓ７０６で生成されたリンク情報の各フィールドに対応するアクション定義の情報を生成する。フォーマット変換部３０５はこの情報を電子文書データ３１０に付与する。ただし、電子文書データ３１０はＳ７０７にて送信済みのため、電子文書データ３１０に付与する形で送信する。
【０１０６】
［アクション定義生成部による処理］
以下に、図１１に示される各フィールド定義および図１５（ｆ）のリンク構成管理テーブルを処理対象例として、アクション定義生成部４０６の処理過程を、図１６のフローチャートを使って説明する。
【０１０７】
Ｓ１６０１において、アクション定義生成部４０６は、記憶部２１１のフィールド定義４０８内にアクション定義が未処理のフィールドがあるか否かを判定する。未処理フィールドがあれば処理対象としてＳ１６０２に進む。無い場合はアクション定義処理を終了する。
【０１０８】
Ｓ１６０２において、アクション定義生成部４０６は、処理対象フィールドに関連するデータ行を、記憶部２１１のリンク構成管理テーブル４０９から読み出す。具体的には、リンク構成管理テーブルにおいて、処理対象フィールドのフィールド識別子の文字列中にアンカー表現部分（「図１」、「図２」など）と同一の文字列をキャプション付随領域のアンカー表現もしくは本文内アンカー表現の項目に有するデータを読み出す。
【０１０９】
Ｓ１６０３において、アクション定義生成部４０６は、フィールド識別子を参照して処理対象のフィールド種別が、キャプション付随領域か、本文内アンカー表現領域か、本文内アンカー表現領域に付随するボタンフィールドかを判別する。具体的にはフィールド識別子に文字列「ｉｍａｇｅ」が含まれればキャプション付随領域のフィールドと判定し、Ｓ１６０４へ進む。文字列「ｔｅｘｔ」を含みかつ末尾に「−Ｐｒｅｖ」「−Ｎｅｘｔ」「−Ｂａｃｋ」のいずれかの文字列が含まればボタンフィールドと判定してＳ１６０５へ進む。文字列「ｔｅｘｔ」を含むそれ以外の場合は本文内アンカー表現領域のフィールドと判断してＳ１６０６に進む。
【０１１０】
キャプション付随領域のフィールドに対して、Ｓ１６０４では、アクション定義生成部４０６は予め定義された図１７（ａ）の表を利用してアクションを決定する。具体的には、Ｓ１６０２で読み出したリンク構成管理テーブルのリンク情報から本文内アンカー表現出現回数の項目の値を読み出す。そして、値が１ならばアクション１７０１、２以上ならばアクション１７０２、０ならばアクション１７０３に決定する。
【０１１１】
本例では、図１１のフィールド１１２４とフィールド１１２５がＳ１６０４の処理対象となる。フィールド１１２４に対しては、図１５（ｆ）に示したリンク構成管理テーブルのリンク情報１５０１から読み出される本文内アンカー表現出現回数は“３”であり、アクション１７０２が決定される。また、アクション中のリンク先は、リンク情報１５０１における本文内アンカー表現フィールド識別子の項目の一番上に位置するフィールド識別子「ｔｅｘｔ＿図１−１」を有するフィールドとなる。また、同一のアンカー表現を有する本文内アンカー表現が複数存在していることから、それらを相互に移動する為にフィールドに付随するボタンフィールドを有効化するアクションがアクション１７０２には含まれる。ここでは「ｔｅｘｔ＿図１−１−Ｐｒｅｖ」、「ｔｅｘｔ＿図１−１−Ｎｅｘｔ」、「ｔｅｘｔ＿図１−１−Ｂａｃｋ」を有効化するようアクションが記述される。
【０１１２】
一方、フィールド１１２５に対しては、対応するリンク構成管理テーブル図１５（ｆ）のリンク情報１５０２の本文内アンカー表現出現回数は“１”であるため、アクション１７０２が決定される。また、アクションにおけるリンク先は、リンク情報１５０２の本文内アンカー表現領域フィールド識別子の項目にあるフィールド識別子「ｔｅｘｔ＿図２−１」を有するフィールドとなる。なお、同一アンカー表現を有する本文内アンカー表現領域は唯一つであるため、複数の本文内アンカー表現領域間を移動する機会はない。従って、フィールドに付随するボタンの有効化はアクションに含まれない。また、図１１および図１５（ｆ）の例には無いが、本文内アンカー表現出現回数が“０”の場合は、リンク先が無いことをユーザに告げるメッセージを生成するアクション１７０３に決定される。
【０１１３】
本文内アンカー表現領域のフィールドに対して、Ｓ１６０５では、アクション定義生成部４０６は図１７（ｂ）の表を利用してアクションを決定する。Ｓ１６０２で読み出したリンク構成管理テーブルにおけるデータ行のキャプション付随領域フィールド識別子の項目に記載があり、更に本文内アンカー表現出現回数が１ならばアクション１７０４に、２以上ならばアクション１７０５に決定する。キャプション付随領域フィールド識別子欄に記載が無い場合は、本文内アンカー表現出現回数にかかわらずアクション１７０６に決定する。
【０１１４】
本例では、図１１のフィールド１１２０、１１２６、１１３０および１１３４がＳ１６０５の処理対象となる。一例としてフィールド１１２０に対しては、図１５（ｆ）に示すリンク構成管理テーブルのリンク情報１５０１内においてキャプション付随領域フィールド識別子の項目に記載がある。この項目において、本文内アンカー表現出現回数は“３”であるため、アクション１７０５が決定される。また、アクションのリンク先は前述した項目の記載によりキャプション付随領域のフィールド識別子「ｉｍａｇｅ＿図１−１」を有するフィールドとなる。また、同一のアンカー表現を有する本文内アンカー表現領域が複数存在していることから、アプリケーションによって自フィールドに付随するボタンが有効化されている可能性がある。それらのボタンは、リンク先へと表示が切り替わる際には無効化されるべきである。そのためのアクションがアクション１７０５に含まれる。
【０１１５】
ここでは「ｔｅｘｔ＿図１−１−Ｐｒｅｖ」、「ｔｅｘｔ＿図１−１−Ｎｅｘｔ」、「ｔｅｘｔ＿図１−１−Ｂａｃｋ」を無効化するようアクションが記述される。フィールド１１２６、１１３０に対する処理はフィールド１１２０と同様であるので説明は省略する。フィールド１１３４に対しては、対応データ行中のキャプション付随領域フィールド識別子欄に記載があり、本文内アンカー表現出現回数は“１”であるため、アクション１７０４が決定される。本説明の図１１および図１５（ｆ）の例には無いが、キャプション付随領域フィールド識別子の項目に記載が無い場合は、リンク先が無いことをユーザに告げるメッセージを生成するアクション１７０６に決定されることになる。
【０１１６】
ボタンフィールドに対して、Ｓ１６０６では、アクション定義生成部４０６は予め定義された図１７（ｃ）に示す表を利用してアクションを決定する。Ｓ１６０２で読み出したリンク構成管理テーブルのリンク情報にキャプション付随領域フィールド識別子の項目の記載があり、かつ本文内アンカー表現出現回数の項目の値が２以上ならば、処理対象フィールドのボタン種別に従ってアクション１７０７〜１７０９に決定する。すなわち、フィールド識別子の末尾文字列が「Ｐｒｅｖ」ならばアクション１７０７、種別が「Ｎｅｘｔ」ならばアクション１７０８、種別が「Ｂａｃｋ」ならばアクション１７０９に決定する。また、上記の条件以外の場合はアクション１７１０に決定する。
【０１１７】
本例では、図１１のフィールド１１２１〜１１２３、１１２７〜１１２９、１１３１〜１１３３、１１３５〜１１３７がＳ１６０６の処理対象となる。例えばフィールド１１２１に対しては、図１５（ｆ）に示したリンク構成管理テーブルにおいて対応するリンク情報１５０１にキャプション付随領域フィールド識別子の項目に記載があり、本文内アンカー表現出現回数の項目の値は“３”である。従って、フィールド１１２１自身のボタン種別「ｐｒｅｖ」に従ってアクション１７０７に決定する。アクションのリンク先は、リンク情報１５０１の本文内アンカー表現フィールド識別子の項目に記載されており、処理対象フィールドの次に位置するフィールド識別子「ｔｅｘｔ＿図１−２」を有するフィールドとなる。ここで処理対象のフィールドが項目の最後に記載されたフィールド識別子の場合には、次のフィールド識別子として、項目の最初に記載されたフィールド識別子を選べばよい。
【０１１８】
アクション１７０７には、リンク先のフィールドにて付随するボタンフィールドを有効化するアクションが記述される。加えて自らが付随しているフィールドに付随する全ボタンを無効化するアクションも記述される。フィールド１１２２に対しては同様に自身のボタン種別「Ｎｅｘｔ」に従ってアクション１７０８が決定される。アクションのリンク先は、本文内アンカー表現領域フィールド識別子の項目における処理対象フィールドの前のフィールド識別子である。ここで、処理対象は項目に記載された中で先頭であるため、項目中の先頭の識別子である「ｔｅｘｔ＿図１−１」を有するフィールドとなる。フィールド１１２３に対しては、同様に自身のボタン種別「Ｂａｃｋ」に従ってアクション１７００が決定される。アクションのリンク先はキャプション付随領域フィールドのフィールド識別子「ｉｍａｇｅ＿図１−１」を有するフィールドである。
【０１１９】
フィールド１１２７〜１１２９、１１３１〜１１３３に対する処理はフィールド１１２１〜１１２３と同等のため説明は省略する。フィールド１１３５〜１１３７に対しては、図１５（ｆ）の対応するリンク情報１５０２から、キャプション付随領域の項目に記載はあるが、本文内アンカー表現出現回数は“１”であるため、すべてのボタンで条件外となり、アクション１７１０が決定される。アクション１７１０の内容は、なにもしない、すなわち“空”である。そもそも、これらのボタンは、アクション１７０２、１７０７、および１７０８の有効化対象になっておらず、従ってアプリケーションから有効化されることがない。ゆえに利用されることの無いアクションであるためデータ記述量の観点から空にされる。
【０１２０】
Ｓ１６０７では、Ｓ１６０４〜Ｓ１６０６のいずれかで決定されたアクションを、記憶部２１１のフィールド定義４０８における、処理対象フィールドのアクション定義として追記する。その後Ｓ１６０１に戻って未処理のフィールドが無くなるまで処理を繰り返す。未処理フィールドが無くなった時点でアクション定義生成部４０６の処理は終了する。図１１のアクション定義１１０３の項目に、全フィールドに対するアクション定義を追記後の状態を示す。
【０１２１】
なお上記説明では、ユーザが本発明で作成した電子文書をアプリケーションで閲覧時する際に、該当フィールドがマウス等でクリックされた場合の挙動のみをアクション定義とした。しかし、他の場合のアクションを定義してもよい。例えば、マウスポインタがフィールド領域内に入った場合、出た場合、フィールドにフォーカスが設定された場合、解除された場合などである。これらをすべて定義しても、選択的に定義するようにしてもよい。
【０１２２】
アクション定義生成部４０６の処理終了後、フォーマット変換部３０５は記憶部２１１のフィールド定義４０８に定義されたアクション情報を電子文書データ３１０のフォーマットに変換し、電子文書データに付与する形で送信する。図１８（ｅ）に電子文書データ３１０に追加されるアクション情報の記述例を示す。図１８（ｅ）には、図１８（ａ）〜（ｄ）で示した出力済みの電子文書データに対する各ページ内で記述されたリンク情報から、各々のｉｄで参照されるアクションが列挙されるように記述されている。
【０１２３】
例えば、記述１８５１は、図１１のフィールド１０２０、すなわち図１８（ａ）の記述１８０４内から参照されるアクション記述例である。記述１８５２は参照を可能にするためのｉｄ記述、記述１８５３はアクション内容の記述である。同様に記述１８５４は、図１１のフィールド１０２１、すなわち図１８（ｂ）の記述１８０８内から参照されるアクション記述例である。記述１８５５はｉｄ記述、記述１８５６はアクション内容の記述である。
【０１２４】
以下同様に、記述１８５７は図１１のフィールド１０２４、すなわち図１８（ｂ）の記述１８２４内から、記述１８６０は図１１のフィールド１０２５、すなわち図１８（ｂ）の記述１０２８内から参照されるアクション記述例である。また、記述１８６３は、アプリケーションが電子文書データ３１０を最初に開いたときに実行すべき初期化アクションの記述例である。ここではすべてのボタンフィールドを初期状態では無効化するように記述されている。以上で、図７の説明を終了する。
【０１２５】
［受信側フロー］
以下、図１２の受信側のフローチャートについて説明を行う。受信側であるクライアントＰＣ１０１は、送信側であるＭＦＰ１００から送信された電子文書データ３１０を１ページずつ受信し、最後にアクション定義情報を受信する。本処理は、例えばクライアントＰＣ１０１に備えられたＣＰＵ（不図示）が実行することとなる。
【０１２６】
まず、Ｓ１２０１は、イメージデータ１００１（１ページ）において図７のＳ７０７にて送信された電子文書データ（１ページ）を受信する。次に、Ｓ１２０２は、全てのページが送信終了したか否かを判定する。そして、全てのページを受信していればＳ１２０３へ進む。受信していなければＳ１２０１へ戻る。以降、Ｓ１２０１を繰り返し、イメージデータ１００２〜イメージデータ１００４（２〜４ページ）に対応する電子文書データ（２〜４ページ）を受信する。
【０１２７】
次に、Ｓ１２０３は、図７のＳ７０９にて送信されたアクション定義情報を受信する。次に、Ｓ１２０４は、Ｓ１２０１で受信した電子文書ページデータ（１〜４ページ）とＳ１２０３で受信したアクション情報のデータを合わせて、クライアントＰＣ１０１の記憶領域（不図示）に保存する。本実施形態では、１つのマルチページの電子文書ファイルとして保存する。
【０１２８】
［閲覧時動作］
次に、文書の閲覧者が本実施形態における電子文書データをアプリケーションで閲覧する際の動作について図１３を用いて説明を行う。本処理は、例えばクライアントＰＣ１０１に備えられたＣＰＵ（不図示）が実行することとなる。
【０１２９】
図１３は、リンク情報を含む電子文書データを閲覧するためのアプリケーションとして図１のクライアントＰＣ１０１や、その他のクライアントＰＣ等で実行される仮想ＧＵＩソフトウェア表示画面の一例である。このようなアプリケーションの具体例としては、Ａｄｏｂｅ  Ｒｅａｄｅｒ（ＴＭ）が挙げられる。さらには、ＭＦＰ１００の操作部２０３で表示動作できるアプリケーションでも構わない。尚、アプリケーションがＡｄｏｂｅ  Ｒｅａｄｅｒ（ＴＭ）である場合、前述の図６のデータ形式は、ＰＤＦとなる。
【０１３０】
図１３（ａ）の画面１３０１は、前述のような電子文書データを閲覧するためのアプリケーション画面の例である。メニューバー１３０２は、アプリケーションに入力された電子文書ファイル名を指定したり、検索操作を行わせたりする。表示画面１３０３は入力された電子文書ページの表示画面であり、ここでは入力例として、図１０（ａ）の１ページ目が表示されている様子を示している。ページスクロールボタン１３０４は、閲覧者は、前ページ、または次ページを表示させる場合にマウス等を用いてこれらボタンを押下（クリック）する。ステータスバー１３０５は、現在表示されているページのページ番号等を示す。同様に、図１３（ｂ）は、表示画面１３０３に図１０（ａ）の２ページ目が表示されている様子を示している。
【０１３１】
ここで、ユーザは図１３（ｂ）の表示画面１３０３を見て、電子文書データの中から「図１  ＡＡＡ」のキャプションが付随する図の説明文や引用など、図を参照する文章を探すとする。従来の電子文書データを閲覧する場合は、アプリケーションの文字検索機能を用いて「図１」あるいは「ＡＡＡ」をキーワードに、該当文字がある部分を表示させる。もし電子文書データの文字部に文字コードが書かれていない場合、文字による検索は出来ないため、ページスクロールボタン１３０４を使ってページを前後させ、目視で「図１」という記述を探す必要がある。文字部に文字コードが書かれていない電子文書データとは、例えばページが画像データあるいはパス記述のみで描画されている文書データがある。そして、所望の説明文や、参照文が見つかった後に再度図を確認する場合は、ページスクロールボタン１３０４を押下して２ページ目を表示する。
【０１３２】
次に、本実施形態で生成した電子文書データを閲覧する場合について説明する。ユーザは図１３（ｂ）の領域１３０６で示す図を参照する文章を読むために、同領域（すなわちキャプション付随領域のフィールドである図１１のフィールド１１２４が配置された範囲）内をマウス等のポインティングデバイス（不図示）でクリックする。クリックが実行されると、フィールド１１２４のアクション定義に従い、リンク先フィールドｔｅｘｔ＿図１−１、すなわちフィールド１１２０を強調表示してフォーカスを設定する。フォーカスが設定されることにより、アプリケーションは同フォーカス領域を含むページを表示する。同時に、フィールド１１２０に付随するボタンのフィールド１１２１、１１２２、１１２３が有効化される。
【０１３３】
その結果を、図１３（ｃ）に示す。リンク先となるアンカー表現領域に含まれる文字列「図１」の領域１３０８が赤色の矩形で表示され、ページは１ページへ移動している様子が示されている。また、領域１３０８に付随して、ボタン１３０９、１３１０、１３１１が表示されている。すなわち、ユーザは図（ここでは領域１３０６）をワンクリックするだけで、図を参照する文章を含むページの表示を容易に得られる。かつ、同図を参照する文章が他にもあることを、ボタン群の表示によって知ることが出来る。
【０１３４】
ここでユーザは、領域１３０８近辺の文章が領域１３０６の図を参照する文章として所望のもので無ければ、同じアンカー表現「図１」を含む次の文章を見るために、「Ｎｅｘｔ」のボタン１３１１をクリックする。すると、同ボタンに対応する図１１のフィールド１１２２に定義されたアクションが実行される。アプリケーションはリンク先となるフィールド１１２６を強調表示してフォーカス設定する。かつフィールド１１２６に付随するボタン１１２７〜１１２９を有効化し、クリックされたフィールド１１２２に付随するボタン１１２１〜１１２３を無効化する。その結果を図１３（ｄ）に示す。すなわち、ユーザはボタンをクリックするだけで、図を参照する次の文章を含むページの表示を容易に得られることになる。
【０１３５】
さらにユーザが別の文章を見る場合は「Ｎｅｘｔ」のボタン１３１５をクリックし、図１３（ｅ）の表示結果を得る。一方、前の文章を見たい場合は「Ｐｒｅｖ」のボタン１３１３をクリックし図１３（ｄ）の表示結果を得る。このように、ひとつの図を参照する文章が複数ある場合に、ユーザはこれら複数の文章間を簡易な操作で移動することが可能である。
【０１３６】
また、ユーザが図１３（ｃ）〜（ｅ）で所望の文章を発見し、再度図の内容を確認したい場合は、「Ｂａｃｋ」のボタン、例えば図１３（ｄ）ではボタン１３１４をクリックする。するとフィールド１１２９に定義されたアクションに従ってフィールド１１２４が強調表示されフォーカス設定されることで、図１３（ｆ）の表示を得る。図１３（ｃ）、図１３（ｅ）の場合も同様である。このように、図を参照する文章間を移動中にも、ワンクリックで再び元の図の表示を得ることが可能である。
【０１３７】
次に、ページ２のもう一つの図に対する例を説明する。ユーザが図１３（ｂ）の画面において、今度は領域１３０７の図を参照する文章を読むために、領域１３０７に配置されたフィールド１１２５の範囲をクリックする。するとフィールド１１２５の定義に従ったアクションが実行され、アプリケーションはリンク先となるフィールド１１３４を強調表示してフォーカス設定する。その結果、図１３（ｇ）のように４ページ目の表示を得る。
【０１３８】
先の例とは異なり、ボタンを有効化するアクションは定義されていないので、定義図１３（ｇ）の領域１３１６に付随するボタンは表示されない。よって、ユーザは領域１３０７の図を参照する文章が電子文書中でこの一箇所しか存在しないことを知ることができる。ユーザが再び図を確認する場合には、領域１３１６をクリックすることで、図１３（ｈ）のように２ページ目の表示に戻る。
【０１３９】
このように、第一の実施形態で生成された電子文書は、ユーザがアプリケーション表示上で図の部分をクリックすることで、図を参照する文章部分を強調表示する機能を有す。その際、図を参照する文章が複数ある場合には、同図を参照する他の文章部分を表示させるためのボタンが提示されるので、ユーザはボタンを使って次々に対象文章を確認することが可能である。また、図の表示に戻る為のボタンも提示されるので、ユーザは即座に図の表示に戻ることも可能である。一方、図を参照する文章が一箇所しかない場合は、前記ボタンが提示されないので、ユーザは他の文章を探す必要が無いことを知ることが可能である。
【０１４０】
以上のように、第一の実施形態では、入力された文書から図等「オブジェクト」の領域を抽出し、かつ「オブジェクト」に関連するアンカー表現の領域を本文等から抽出する。これにより、「オブジェクト」と「オブジェクトを参照する文章」との相互なリンク関係を抽出する。そして電子文書を生成する際に、オブジェクトの領域と本文内のアンカー表現の領域に、アプリケーションで利用可能なフィールドを作成する。
【０１４１】
かつ前記リンク関係に従って、リンク元のフィールドをアプリケーションでクリックしたときにリンク先のフィールドを強調して表示するアクションを定義する。加えて、前記リンク関係において１つのリンク元に対し複数のリンク先がある場合には、リンク先のフィールドに付随して、同複数リンク先フィールドを順次表示させる為のボタンと、リンク元に戻る為のボタンを発生させるアクションを追加する。
【０１４２】
このようにして作成された電子文書は、ユーザがアプリケーション表示上で図等の「オブジェクト」部分をクリックすることで、「オブジェクト参照文」の部分を強調して表示する機能を有す。その際、「オブジェクト参照文」が複数ある場合は、他の「オブジェクト参照文」部分を表示させるためのボタンが提示されるので、ユーザはボタンを使って次々に対象部分を確認することが可能である。
【０１４３】
また、「オブジェクト」の表示に戻る為のボタンも提示されるので、ユーザは即座に「オブジェクト」の表示に戻ることも可能である。一方、「オブジェクト参照文」が一箇所しかない場合は、前記ボタンが提示されないので、ユーザは他の部分を探す必要が無いことを知ることが可能である。以上の機能により、ユーザは文書をより効率的に読み進めることができるという効果がある。
【０１４４】
＜第二の実施形態＞
第一の実施形態では、電子文書データへの変換処理におけるアクション定義を、図１１における項目１１０３のように各フィールドに対して個別に定義する例を示した。その結果、出力される電子文書データ３１０において各フィールドのアクション内容が図１８（ｅ）のように一つ一つ記述された。第二の実施形態では、アクション定義を関数化し、各フィールドにはこのアクション関数の入力引数を個々にパラメータとして付与する例を示す。
【０１４５】
図１９は、第二の実施形態における前記アクション関数の例「ＯＮ＿ＣＬＩＣＫ」の処理内容を説明するためのフローチャートである。関数「ＯＮ＿ＣＬＩＣＫ」は４つの引数「ｓｒｃＩｄ」、「ｓｒｃＢｔｎｓ」、「ｄｓｔＩｄ」、「ｄｓｔＮｕｍ」を受けとって処理を開始する。ここで、引数「ｓｒｃＩｄ」は、アプリケーションにてユーザがクリックしたフィールド、すなわちアクション定義対象のフィールド識別子を指定する文字列である。
【０１４６】
ただし、ユーザがボタンフィールドをクリックした場合は、そのボタンフィールドのフィールド識別子ではなく、ボタンが付随する本文内アンカー表現領域のフィールド識別子を指定するものとする。引数「ｓｒｃＢｔｎｓ」には、引数「ｓｒｃＩｄ」のフィールド識別子を持つフィールドに付随するボタンの数を指定する。ただしアプリケーションの動作上、有効化する必要がないボタンの数は含まない。
【０１４７】
引数「ｄｓｔＩｄ」はリンク先、すなわちアプリーションでユーザがアクション定義対象のフィールドをクリックした結果、強調表示かつフォーカス設定されるフィールドの識別子を指定する。引数「ｄｓｔＮｕｍ」はリンク先のフィールドの数である。リンク先が本文内アンカー表現領域でかつ複数ある場合にはその個数を指定する。それ以外の場合はリンク先が有れば１、無ければ０を指定する。
【０１４８】
［アクション関数における処理フロー］
以下、図１９のフローチャート処理内容を説明する。なお、アクション関数を実際に実行するのは、クライアントＰＣ１０１上で、ユーザの指示により電子文書データ３１０を入力・表示中のアプリケーションである。
【０１４９】
上記入力引数を受けとった関数「ＯＮ＿ＣＬＩＣＫ」は、まずＳ１９０１にて、引数「ｄｓｔＮｕｍ」が“０”であるか否かを調べる。“０”の場合はＳ１９０２に進み、「リンク先がない」ことをユーザに警告するメッセージを表示し、関数を終了する。それ以外の場合はＳ１９０３に進む。Ｓ１９０３では、引数「ｄｓｔＩｄ」のフィールド識別子を有するフィールドを強調表示する。強調表示の例は、第一の実施形態と同様である。
【０１５０】
Ｓ１９０４では、引数「ｄｓｔＩｄ」のフィールド識別子を有するフィールドにフォーカスを設定する。その結果、アプリケーションは同フィールドが存在するページを表示する。Ｓ１９０５では、引数「ｄｓｔＮｕｍ」が“１”より大きいかか否かを調べる。大きい場合はＳ１９０６に進み、それ以外の場合はＳ１９０７に進む。Ｓ１９０６では、引数「ｄｓｔＩｄ」のフィールド識別子を有するフィールドに付随するボタンを有効化する。
【０１５１】
Ｓ１９０５では、引数「ｓｒｃＢｔｎｓ」が“０”より大きいか否かを調べる。“０”より大きい場合はＳ１９０８に進み、それ以外の場合は関数を終了する。Ｓ１９０８では、引数「ｓｒｃＩｄ」のフィールド識別子を有するフィールドに付随するボタンを無効化する。その後、本関数における処理を終了する。
【０１５２】
［画像処理装置の動作］
次に、第二の実施形態における画像処理装置の動作について説明する。なお装置構成に関しては第一の実施形態にて述べた図１〜図４と同様であるものとする。
【０１５３】
図２２に第二の実施形態の処理フローを示す。図２２におけるＳ７０１〜Ｓ７０８は第一の実施形態にて述べた図７の各ステップと同じ内容であるため説明は省略する。したがって、図１０（ａ）の４ページを入力として図２２のＳ７０１〜Ｓ７０８を処理すると、電子文書データ３１０の各ページに相当する記述として、第一の実施形態と同様の図１８（ａ）〜（ｄ）が生成される。また同処理により、リンク情報３０８として図１１のフィールド定義４０８と図１５（ｆ）のリンク構成管理テーブル４０９が作成される。なおＳ７０８で全ページ終了しＳ２２０９に進む時点では、図１１の各フィールド定義におけるアクション定義１１０３はすべて未定義である。
【０１５４】
Ｓ２２０９において、図４のアクション定義生成部４０６は、まず図１９で説明されたアクション関数「ＯＮ＿ＣＬＩＣＫ」を定義する。そしてこのアクション関数を用いて、フィールド定義４０８の各フィールドに対するアクション定義の情報を生成する。具体的には、各フィールドのアクション定義で呼び出すアクション関数の入力引数を、リンク構成管理テーブル４０９を利用して設定する。フォーマット変換部３０５は、これらアクション関数定義およびアクション定義の情報を電子文書データ３１０に付与する。ただし、電子文書データ３１０は図２２のＳ７０７にて各ページ送信済みのため、電子文書データ３１０に付与する形で送信する。
【０１５５】
［アクション定義生成処理］  以下、Ｓ２２０９におけるアクション定義生成処理の詳細について説明する。アクション定義生成部４０６は、記憶部２１１のフィールド定義４０８からアクション定義が未処理のフィールドを抽出し処理対象とする。未処理のフィールドが無ければ処理を終了する。次にリンク構成管理テーブル４０９から処理対象フィールドに対応するリンク情報を読み出す。そしてデータ行各欄の内容と、図２３の表からアクション関数の各引数を設定し、アクション定義を生成する。
【０１５６】
図２３の表を用いてアクション関数の引数設定について具体的に説明する。図１１のフィールド１１２０の場合、自フィールド、すなわち処理対象のフィールドの種別は本文内アンカー表現領域である。図２３に従って引数「ｓｒｃＩｄ」には自フィールドのフィールド識別子“ｔｅｘｔ＿図１−１”を設定する。「ｓｒｃＢｔｎｓ」以降の引数は、リンク構成管理テーブルで処理対象のフィールドに対応するリンク情報の内容により決定される。リンク構成管理テーブル図１５（ｆ）では、フィールド１１２０に対応するのはリンク情報１５０１である。図２３に従い、引数「ｓｒｃＢｔｎｓ」にはリンク情報１５０１の本文内アンカー表現領域数が２以上であるので“３”を設定する。引数「ｄｓｔＩｄ」には、リンク情報１５０１のキャプション付随領域のフィールド識別子“ｉｍａｇｅ＿図１−１”を設定する。引数「ｄｓｔＮｕｍ」には“１”を設定する。
【０１５７】
図１１のフィールド１１２１の場合、フィールド種別はボタンである。図２３に従い、引数「ｓｒｃＩｄ」にはボタンが付随するフィールドのフィールド識別子“ｔｅｘｔ＿図１−１”を設定する。このフィールド識別子は、ボタンフィールドのフィールド識別子における文字列“ｔｅｘｔ＿図１−１−Ｐｒｅｖ”からボタン種別の文字列“−Ｐｒｅｖ”を除くことでも得られる。フィールド１１２１に対応するのはフィールド１１２０同様にリンク情報１５０１である。引数「ｓｒｃＢｔｎｓ」には前述のフィールド１１２０同様に“３”を設定する。引数「ｄｓｔＩｄ」以降はボタン種別によって異なる。フィールド１１２１のボタン種別は“Ｐｒｅｖ”なので、引数「ｄｓｔＩｄ」には本文内アンカー表現領域フィールド識別子の項目において、「ｓｒｃＩｄ」に設定したフィールド識別子の一つ前のフィールド識別子を設定する。本例では“ｔｅｘｔ＿図１−１”が項目の先頭にあるため、当該項目の最後にある“ｔｅｘｔ＿図１−３”を設定する。引数「ｄｓｔＮｕｍ」には本文内アンカー表現出現回数である“３”を設定する。
【０１５８】
図１１のフィールド１１２２の場合、フィールド種別はボタンであり、引数「ｓｒｃＩｄ」「ｓｒｃＢｔｎｓ」「ｄｓｔＮｕｍ」はフィールド１１２１と同様に設定する。ボタン種別が“Ｎｅｘｔ”であるため、引数「ｄｓｔＩｄ」は本文内アンカー表現領域フィールド識別子の項目で、ｓｒｃＩｄに設定したフィールド識別子の一つ後のフィールド識別子“ｔｅｘｔ＿図１−２”を設定する。
【０１５９】
図１１のフィールド１１２３の場合、フィールド種別はボタンであり、引数「ｓｒｃＩｄ」「ｓｒｃＢｔｎｓ」はフィールド１１２１、１１２２同様に設定する。ボタン種別が“Ｂａｃｋ”であるため、引数「ｄｓｔＩｄ」にはキャプション付随領域のフィールド識別子“ｉｍａｇｅ＿図１−１”を設定する。引数「ｄｓｔＮｕｍ」には“１”を設定する。
【０１６０】
図１１のフィールド１１２４の場合、フィールドの種別はキャプション付随領域である。図２３に従い、引数「ｓｒｃＩｄ」には自フィールドのフィールド識別子“ｉｍａｇｅ＿図１−１”を設定する。引数「ｓｒｃＢｔｎｓ」には“０”を設定する。「ｓｒｃＢｔｎｓ」以降の引数は、リンク構成管理テーブルで処理対象フィールドに対応するデータ行の内容により決定される。図１５（ｆ）に示したリンク構成管理テーブルでは、フィールド１１２４に対応するのはリンク情報１５０１である。図２３に従い、引数「ｄｓｔＩｄ」には、リンク情報１５０１における本文内アンカー表現フィールド識別子の項目の先頭にあるフィールド識別子、“ｔｅｘｔ＿図１−１”を設定する。引数「ｄｓｔＮｕｍ」にはリンク情報１５０１の本文内アンカー表現出現回数である“３”を設定する。
【０１６１】
以降、図１１のフィールド１１２５〜１１３７に対しても同様に図２３の表に従い、アクション関数の引数を設定する。未処理のフィールドが無くなった時点でアクション定義処理を終了する。なお、本例で用いたリンク構成管理テーブルの例である図１５（ｆ）には存在しないが、リンク構成管理テーブルのリンク情報に引数「ｄｓｔＩｄ」に該当するフィールド識別子の記載がない場合には、引数「ｄｓｔＩｄ」には空の文字列を、引数「ｄｓｔＮｕｍ」には“０”を設定する。第二の実施形態のＳ２２０９処理後に、各フィールドに定義されたアクション定義の例を図２０の項目２００３に示す。
【０１６２】
［アクション関数処理］
続いて、図１９の処理内容に相当するアクション関数の定義、および図２０のアクション定義情報２００３を電子文書フォーマットに変換した例を図２１に示す。図２１のアクション情報は、図１８（ａ）〜（ｄ）に示した送信済みの電子文書ページ記述例に伴って、電子文書データ３１０を完成させるように記述される。
【０１６３】
図２１の記述２１０１は、図１９の処理内容に相当するアクション関数「ＯＮ＿ＣＬＩＣＫ」を定義する記述の例である。記述２１０２〜２１０５はそれぞれ図１８（ａ）〜（ｄ）の出力済みの電子文書データにおける各ページ内で記述されたリンク情報から、各々のｉｄで参照されるアクション記述の列挙の一部である。各アクションは、記述２１０１で定義されたアクション関数を各々フィールド個別の引数で呼び出すように記述されている。記述２１０６は、アプリケーションが電子文書データ３１０を最初に開いたときに実行すべき初期化アクションの記述例である。第一の実施形態と同様に、すべてのボタンフィールドを初期状態では無効化するように記述されている。
【０１６４】
第二の実施形態の受信側処理も第一の実施形態と同一である。すなわち図１２のフローチャートに従って電子文書データとアクション関数定義を含むアクション定義情報を受信する。
【０１６５】
［電子文書データ閲覧動作］
次に、文書の閲覧者が第二の実施形態により生成された電子文書データをアプリケーションで閲覧する際の動作について、第一の実施形態と同様に図１３を用いて説明する。
【０１６６】
ユーザが、２ページ目として表示された図１３（ｂ）の領域１３０６が示す図に対し、図を参照する文章を読むために同領域をクリックする。すなわちキャプション付随領域のフィールドである、図２０のフィールド１１２４が配置された範囲内をマウス等のポインティングデバイスでクリックする。するとアプリケーションは図２０におけるフィールド１１２４のアクション定義に従って「ＯＮ＿ＣＬＩＣＫ（“ｉｍａｇｅ＿図１−１”，０，“ｔｅｘｔ＿図１−１”，３）」を実行する。アプリケーションは図１９のフローチャートに従ってアクションを実行する。すなわちｄｓｔＩｄである“ｔｅｘｔ＿図１−１”のフィールドを強調表示し、フォーカスを設定し、“ｔｅｘｔ＿図１−１”のフィールドに付随するボタンを有効化する。結果的に図１３（ｃ）のような表示がされる。
【０１６７】
図１３（ｃ）においてさらにユーザがボタン１３１１をクリックすると、アプリケーションは図２０のフィールド１１２２に対応するアクション「ＯＮ＿ＣＬＩＣＫ（“ｔｅｘｔ＿図１−１”，３，“ｔｅｘｔ＿図１−２”，３）」を実行する。その結果図１３（ｄ）の表示を得る。さらにボタン１３１５のクリックで図１３（ｅ）の表示を、ボタン１３１４のクリックで図１３（ｆ）の表示を得る。
【０１６８】
ユーザが図１３（ｂ）の領域１３０７をクリックした場合、アプリケーションは図２０におけるフィールド１１２５のアクション定義に従って「ＯＮ＿ＣＬＩＣＫ（“ｉｍａｇｅ＿図２−１”，０，“ｔｅｘｔ＿図２−１”，１）」を実行する。すなわちｄｓｔＩｄである“ｔｅｘｔ＿図２−１”のフィールドを強調表示し、フォーカスを設定するが、引数「ｄｓｔＮｕｍ」が“１”であるため“ｔｅｘｔ＿図２−１”のフィールドに付随するボタンは有効化されない。結果的に図１３（ｇ）の表示を得る。そこで領域１３１６をクリックすると図１３（ｈ）の表示を得る。
【０１６９】
以上説明したように、第一の実施形態により生成された電子文書データと、第二の実施形態により生成された電子文書データは、アプリケーション上でのユーザ閲覧時の操作に対して同一の動作を提供する。すなわち、第二の実施形態においても第一の実施形態と同一の効果を提供する。
【０１７０】
すなわち、第二の実施形態で作成された電子文書データは、ユーザがアプリケーション表示上で図等の「オブジェクト」部分をクリックすることで、「オブジェクト参照文」の部分を強調して表示する機能を有す。その際、「オブジェクト参照文」が複数ある場合は、他の「オブジェクト参照文」部分を表示させるためのボタンが提示されるので、ユーザはボタンを使って次々に対象部分を確認することが可能である。
【０１７１】
また、「オブジェクト」の表示に戻る為のボタンも提示されるので、ユーザは即座に「オブジェクト」の表示に戻ることも可能である。一方、「オブジェクト参照文」が一箇所しかない場合は、前記ボタンが提示されないので、ユーザは他の部分を探す必要が無いことを知ることが可能である。以上の機能により、ユーザは文書をより効率的に読み進めることができるという効果がある。
【０１７２】
＜第三の実施形態＞
第一の実施形態および第二の実施形態の説明では、図１５のリンク構成管理テーブルは、同一リンク情報が有する複数の本文内アンカー表現のフィールド識別子を出現順で管理していた。この順番はアクション定義生成部４０６の処理結果に影響する。つまり、キャプション付随領域をクリックしたときに最初に強調される本文内アンカー表現の領域、およびボタンフィールド「Ｐｒｅｖ」、「Ｎｅｘｔ」で順次強調される本文内アンカー表現領域の表示順序に影響する。第三の実施形態では、図７に示すＳ７０９や図２０に示すＳ２００９のアクション定義生成部４０６のアクション定義処理の直前に、リンク構成管理テーブルの本文内アンカー表現フィールド識別子の項目にあるフィールド識別子を並び替える。並び替えの基準については後述する。
【０１７３】
図２４に第三の実施形態の処理例を示す。図２４（ａ）は入力画像の例で、５ページ分のイメージデータ２４０１〜２４０５で構成される。第三の実施形態の処理中、２ページ目のイメージデータ２４０２に含まれる領域２４０６に付随する領域２４０７からアンカー表現「図４」が抽出され、３〜５ページ目の本文からそれぞれ本文内アンカー表現である領域２４０８、２４０９、２４１０が抽出される。その結果、キャプション付随領域である領域２４０６と本文内アンカー表現領域である領域２４０８、２４０９、２４１０に対するフィールド定義が生成される。これらのフィールド識別子をそれぞれ順に“ｉｍａｇｅ＿図４−１”、“ｔｅｘｔ＿図４−１”、“ｔｅｘｔ＿図４−２”、“ｔｅｘｔ＿図４−３”とする。更にフィールド間の関係を記録するリンク構成管理テーブルが、図２４（ｂ）のように生成される。
【０１７４】
第三の実施形態では、アクション定義を生成する前に、リンク構成管理テーブルの本文内アンカー表現領域フィールド識別子の項目における情報の並び替えを行う。並び替えの基準は、各アンカー表現を含む文章が、アンカー表現の対象を説明している可能性の高い文章は重要度が高いとして先に来るようにする。逆に、単にアンカー表現の対象を引用している場合は重要度が低いとして後ろに来るようにする。具体的には、公知の形態素解析を行い、アンカー表現が文章の主語に含まれるものは重要度が最も高く、目的語に含まれるもの、それ以外、の順に低い重要度を与えることとする。また、同一文章内に注目アンカー表現以外のアンカー表現（「図４」に対する「図１」など）がある場合、重要度を減点するものとする。これらの基準を用いると、本文内アンカー表現である領域２４１０の周辺文章の重要度が最も高く、以下、領域２４０９、２４０８の順になる。その結果、図２４（ｃ）のように並び替えられたリンク構成管理テーブルをもとにアクションが定義され、電子文書データ３１０が完成される。
【０１７５】
なお、上記の並び替え基準は一例であり、他の基準を用いても良い。例えばオブジェクト（キャプション付随領域）との距離が近い順に並べてもよい。または文章の長さ、文章の種類（平文、見出し、箇条書きなど）を用いても良い。さらに文章内のアンカー表現の出現回数、関連キャプション文字列が近傍に出現する回数、等を基準にしてもよい。
【０１７６】
第三の実施形態で生成された電子文書データを、ユーザがアプリケーションで閲覧する場合の画面例を図２５に示す。図２５（ａ）は電子文書データの２ページ目を表示しているアプリケーション画面の例である。ここで、ユーザが「図４」に該当する領域２５０１をクリックすると、図２５（ｂ）のように５ページ目が表示され、アンカー表現「図４」の領域２５０２が強調表示される。ユーザが別の本文内アンカー表現領域部分を参照したい場合に、「Ｎｅｘｔ」ボタン２５０３をクリックすると、図２５（ｃ）のように４ページ目が表示され、本文内アンカー表現領域２５０４が強調表示される。さらに「Ｎｅｘｔ」ボタン２５０５をクリックすると、図２５（ｃ）のように３ページ目が表示され、本文内アンカー表現領域２５０６が強調表示される。このように、オブジェクトの説明をしている可能性の高い文章から順番に、かつ簡易な操作で確認できるので、ユーザの閲覧効率は向上する。
【０１７７】
このように、第三の実施形態により作成された電子文書データは、ユーザがクリックしたフィールドが複数のリンク先を有する場合に、ユーザにとって閲覧価値が高いとみなされる順番で複数リンク先を順次、強調し表示する機能を有す。従って、第一および第二の実施形態で説明した効果に加え、ユーザが所望の情報に短時間で辿りつける可能性が上がり、ユーザの閲覧効率をさらに向上する効果がある。
【０１７８】
＜第四の実施形態＞
第一〜第三の実施形態では、リンク構成管理テーブルにおける複数の本文内アンカー表現領域の並び順を送信時に確定していた。従って、キャプション付随領域をクリックしたときに最初に強調される本文内アンカー表現の領域、およびボタンフィールド「Ｐｒｅｖ」、「Ｎｅｘｔ」で順次強調される本文内アンカー表現領域の順序は常に一定だった。これらを、アプリケーション動作中に、ユーザ操作等に応じて変更できるようにしてもよい。具体的には、前記並び順をリスト化し、アプリケーションが実行するアクションの中で、同リスト内容を必要に応じて並び替え、異なる順序で本文内アンカー表現領域の表示が可能となる。
【０１７９】
図２６（ａ）〜（ｄ）は、第四の実施形態においてアクション定義に用いられる４つのアクション関数、「ｉｎｉｔ」「ｏｎ＿ｃｌｉｃｋ２」「ｍａｋｅ＿ｌｉｓｔ」「ｊｕｍｐ＿ｔｏ」の処理内容例を示すフローチャートである。以下各関数の処理内容を説明する。なお、下記処理を実際に実行するのはユーザの指示により電子文書データ３１０の入力／表示中のアプリケーションである。これらのアプリケーションは例えばクライアントＰＣ１０１に備えられたＣＰＵ（不図示）によって処理される。
【０１８０】
図２６（ａ）のＳ２６０１〜Ｓ２６０４は、アプリケーションが電子文書データを読み込んだ際に実行される初期化関数「ｉｎｉｔ」のフローチャートである。Ｓ２６０１は、グローバル変数の宣言である。グローバル変数は図２６の４つの関数から共通にアクセス可能な変数である。ここでは、「ｌｉｎｋ」「ｌｉｓｔ」「ｌｉｓｔＩｄｘ」「ｐｒｅｖＩｄ」の４つの変数を宣言する。各変数の内容や目的は、実際に変数を使用する際の説明にて後述する。
【０１８１】
なお、本説明ではグローバル変数の宣言を便宜上、初期化関数に付随するように記述したが、別の場所で宣言してもよい。Ｓ２６０２は関数「ｉｎｉｔ」の開始ステップであり、引数は取らない。Ｓ２６０３では、リンク構成情報を作成し、前述のグローバル変数「ｌｉｎｋ」に格納する。リンク構成情報とは、リンク構成管理テーブル４０９における各リンク情報の内容のうち、キャプション付随領域フィールド識別子の項目と本文内アンカー表現領域フィールド識別子の項目との関係をリンク元とリンク先の関係として、相互に配列化したものである。その構成を以下に示す。
【０１８２】
ｌｉｎｋ［  リンク元のリンクＩＤ  ］  ＝  リンク先のフィールド識別子または配列
ここで、リンクＩＤとは、フィールド識別子から出現順を表す部分以降を除いた文字列である。例えば、図１５（ｆ）のリンク管理構成テーブルから作成されるリンク構成情報は、以下４要素からなる配列になる。
【０１８３】
［リンク構成情報］
ｌｉｎｋ［“ｔｅｘｔ＿図１”］    ＝      “ｉｍａｇｅ＿図１−１”
ｌｉｎｋ［“ｉｍａｇｅ＿図１”］  ＝  ｛  “ｔｅｘｔ＿図１−１”，  
“ｔｅｘｔ＿図１−２”，  
“ｔｅｘｔ＿図１−３”  ｝
ｌｉｎｋ［“ｔｅｘｔ＿図２”］    ＝      “ｉｍａｇｅ＿図２−１”；
ｌｉｎｋ［“ｉｍａｇｅ＿図２”］  ＝  ｛  “ｔｅｘｔ＿図２−１”  ｝
上記リンク構成情報は、リンク元が本文内アンカー表現領域である場合、リンク先の数は１個以下であるためフィールド識別子を直接指定する。図１５（ｆ）の例にはないが、リンク先が無い場合は空文字列を指定するものとする。リンク元がキャプション付随領域の場合は、１または複数からなるリンク先フィールド識別子の配列で指定する。リンク先が無い場合は要素数がゼロの配列を指定する。なお、これらはあくまで一例であって、その他のデータ構造を用いてもよい。リンク構成情報作成後、本処理を終了する。
【０１８４】
図２６（ｂ）のＳ２６１１〜Ｓ２６２０は、ユーザがアプリケーションで電子文書データのフィールド領域をクリックしたときに実行される「ｏｎ＿ｃｌｉｃｋ２」関数の処理内容である。Ｓ２６１１は、リンク元のフィールド識別子を引数「ｓｒｃＩｄ」に設定して関数「ｏｎ＿ｃｌｉｃｋ２」を開始する。実際には、各フィールドのアクション定義において、自らのフィールド識別子を引数として本関数が呼び出されるように定義される。
【０１８５】
なお、第二の実施形態と異なり、引数「ｓｒｃＩｄ」にはボタンフィールドを含むフィールド識別子の文字列をそのまま指定する。Ｓ２６１２では、引数「ｓｒｃＩｄ」で与えられたフィールド識別子の文字列を、文字列操作によって、リンクＩＤ、出現順、ボタン種に分解する。Ｓ２６１３では、リンク元がキャプション付随領域であるか否かを調べる。具体的にはリンクＩＤの文字列が“ｉｍａｇｅ＿”で始まるか否かを調べる。“ｉｍａｇｅ＿”で始まる場合はキャプション付随領域であるとしてＳ２６１４に進む。それ以外の場合はＳ２６２１に進む。
【０１８６】
ここではまず、リンク元がキャプション付随領域であるとしてＳ２６１４に進む。Ｓ２６１４では、巡回リストを作成する為に関数「ｍａｋｅ＿ｌｉｓｔ」を呼び出し、結果をグローバル変数「ｌｉｓｔ」に設定する。ここで巡回リストとは、同一アンカー表現を有する複数の文章をユーザが順々に表示するための順番を表わすリストである。具体的には、リンク構成情報「ｌｉｎｋ」において、複数リンク先を示すフィールド識別子のリストを、よりユーザに適切な順位付けを行い、フィールド識別子を順番に並び替えたものである。
【０１８７】
ここで、関数「ｍａｋｅ＿ｌｉｓｔ」の処理内容である図２６（ｃ）に示すＳ２６３１〜Ｓ２６３４を説明する。Ｓ２６３１では、引数「ｏｒｇＬｉｓｔ」にフィールド識別子の配列を、引数「ｅｘｐＩｄ」にフィールド識別子を設定して関数を開始する。Ｓ２６３２では、引数「ｏｒｇＬｉｓｔ」と同じ要素数の配列ｍｌｉｓｔを確保する。Ｓ２６３３では、配列ｍｌｉｓｔに引数「ｏｒｇＬｉｓｔ」の内容をコピーする。ただし、引数「ｏｒｇＬｉｓｔ」内に引数「ｅｘｐＩｄ」と同一のフィールド識別子があった場合は、その配列ｍｌｉｓｔのその順番には、引数「ｏｒｇＬｉｓｔ」の次の要素をコピーする。
【０１８８】
そして、ｍｌｉｓｔの最後の要素を「ｅｘｐＩｄ」と同内容にする。すなわち配列ｍｌｉｓｔには「ｏｒｇＬｉｓｔ」中に「ｅｘｐＩｄ」と同じフィールド識別子が無ければそのままのコピー配列が、あればそのフィールド識別子だけ末尾に移動した配列が生成される。Ｓ２６３４では関数「ｍａｋｅ＿ｌｉｓｔ」を終了し、生成されたｍｌｉｓｔを戻り値として返却する。
【０１８９】
図２６（ｂ）のＳ２６１４の説明に戻ると、ここでは関数「ｍａｋｅ＿ｌｉｓｔ」呼び出し時の引数「ｏｒｇＬｉｓｔ」に、現リンクＩＤに対応するリンク先である、「ｌｉｎｋ［リンクＩＤ］」が設定される。なお、キャプション付随領域がリンク元なので、上記変数が示すリンク先は前述のとおりフィールド識別子の配列である。また、引数「ｅｘｐＩｄ」には、フィールドのクリック履歴を表すグローバル変数「ｐｒｅｖＩｄ」が設定される。
【０１９０】
この「ｐｒｅｖＩｄ」は、関数「ｏｎ＿ｃｌｉｃｋ２」の実行毎に後述のＳ２６１９処理で設定されるフィールド識別子の値である。現在実行中の関数「ｏｎ＿ｃｌｉｃｋ２」に対しては、ひとつ前の関数「ｏｎ＿ｃｌｉｃｋ２」呼び出しの際にリンク元であったフィールド識別子が記憶されている。なお、現在実行中の関数「ｏｎ＿ｃｌｉｃｋ２」が初回である場合、「ｐｒｅｖＩｄ」は未定義となる。従って、関数「ｍａｋｅ＿ｌｉｓｔ」の戻り値は、現リンクＩＤのリンク先の配列に対しｐｒｅｖＩｄに一致するフィールド識別子を末尾に移動した配列となる。この配列を巡回リストであるグローバル変数「ｌｉｓｔ」に設定する。
【０１９１】
Ｓ２６１５ではリンク先、すなわちユーザがクリックした結果、強調表示かつフォーカス設定されるフィールドのフィールド識別子をローカル変数「ｄｓｔＩｄ」に指定する。ここでは前述した巡回リストの先頭、すなわちグローバル変数「ｌｉｓｔ［０］」のフィールド識別子を設定する。加えて、グローバル変数「ｌｉｓｔＩｄｘ」に“０”を設定する。これは巡回リストの参照位置が現在先頭にあることを示すための処理である。なお、巡回リストの配列個数が０の場合、すなわちリンク先が無い場合は、「ｄｓｔＩｄ」にはヌル文字列を設定する。
【０１９２】
Ｓ２６１６では、現在の巡回リストの配列に含まれるフィールド識別子の個数が１より大きいか否かを調べる。１より大きい場合はＳ２６１７に進む。それ以外の場合はＳ２６１８に進む。Ｓ２６１７では、リンク先にジャンプする、すなわちリンク先のフィールドを強調表示かつフォーカス設定するアクション関数「ｊｕｍｐ＿ｔｏ」を呼び出す。
【０１９３】
ここで、関数「ｊｕｍｐ＿ｔｏ」の処理内容である、図２６（ｄ）に示すＳ２６４１〜Ｓ２６４７を説明する。Ｓ２６４１では、引数「ｆｌｄＩｄ」にジャンプ先のフィールド識別子を、引数「ｂｔｎ」にジャンプ先のフィールド識別子に付随するボタンを有効化するか否かをブール値で設定して関数を開始する。Ｓ２６４２では、引数「ｆｌｄＩｄ」が空文字列であるか否かを判定する。空文字列の場合はＳ２６４３に進み、ユーザにリンク先が無い旨を警告するメッセージを表示してＳ２６４７に進む。
【０１９４】
空文字ではない場合はＳ２６４４に進む。Ｓ２６４４では、引数「ｆｌｄＩｄ」のフィールド識別子を有するフィールドを強調表示し、同フィールドにフォーカスを設定する。強調表示およびフォーカス設定の例は第一の実施形態の場合と同様であるため説明は省略する。Ｓ２６４５では、引数「ｂｔｎ」が“ｔｒｕｅ”であるか“ｆａｌｓｅ”であるかを判定する。“ｔｒｕｅ”の場合はＳ２６４６に進み、“ｆａｌｓｅ”の場合はＳ２６４７に進む。Ｓ２６４６では、リンク先すなわち「ｆｌｄＩｄ」のフィールドに付随するボタンを有効化する。本例では、リンク先のフィールド識別子の文字列に各々「−Ｐｒｅｖ」、「−Ｎｅｘｔ」、「−Ｂａｃｋ」を付加したフィールド識別子を有するフィールドが有効化される。Ｓ２６４７では関数「ｊｕｍｐ＿ｔｏ」を終了する。
【０１９５】
Ｓ２６１７の説明に戻ると、ここでは関数「ｊｕｍｐ＿ｔｏ」の呼び出し時の引数「ｆｌｄＩｄ」には、Ｓ２６１５で設定されたローカル変数「ｄｓｔＩｄ」の値が、引数「ｂｔｎ」には“ｔｒｕｅ”が設定される。すなわち、現巡回リストの先頭にあるリンク先フィールドへとジャンプし、かつリンク先に付随するボタンを有効化するアクションが実行されて、Ｓ２６１９に進む。
【０１９６】
一方、Ｓ２６１７で巡回リスト個数が１または０の場合に進んだＳ２６１８では、関数「ｊｕｍｐ＿ｔｏ」を、引数「ｆｌｄＩｄ」にローカル変数「ｄｓｔＩｄ」の値を、引数「ｂｔｎ」にｆａｌｓｅを設定して呼び出す。つまり以下のアクションが実行されることとなる。巡回リストにリンク先が有る場合は、同リンク先にジャンプするが、巡回対象となる別のリンク先は存在しないのでリンク先に付随するボタンは有効化しない。もしくは巡回リストが空、すなわちリンク先が無い場合はその旨を警告するアクションを実行する。その後にＳ２６１９に進む。
【０１９７】
Ｓ２６１９では、グローバル変数「ｐｒｅｖＩｄ」に関数の引数「ｓｒｃＩｄ」の内容を設定する。これは次回の関数「ｏｎ＿ｃｌｉｃｋ２」呼び出し時に、一つ前のリンク元のフィールド識別子を伝達することで、ユーザ操作履歴に応じた処理を可能にする目的で設定される。
【０１９８】
Ｓ２６２０では、関数「ｏｎ＿ｃｌｉｃｋ２」を終了する。フィールドクリック時のアクション関数が終了することで、アプリケーションは再びユーザ操作を受けつける状態へと遷移する。
【０１９９】
次に、Ｓ２６１３に戻り、リンクＩＤが“ｉｍａｇｅ＿”では始まらずＳ２６２１に進む場合の例について説明する。
【０２００】
Ｓ２６２１では、クリック対象のフィールドがボタンか否かを判定する。具体的にはＳ２６１２で引数「ｓｒｃＩｄ」の文字列を分解したときにボタン種を示す部分が得られたか否かで判定できる。ボタンの場合（Ｓ２６２１にてＹＥＳ）はＳ２６２３に進む。ボタンではない場合（Ｓ２６２１にてＮＯ）はＳ２６２２に進む。
【０２０１】
まず、クリック対象のフィールドがボタンでは無く（Ｓ２６２１にてＮＯ）、Ｓ２６２２に進んだ場合について説明する。すなわち、クリック対象が本文内アンカー表現領域のフィールドであった場合に相当する。
【０２０２】
Ｓ２６２２では、リンク元に対応するリンク先をリンク構成情報のグローバル変数「ｌｉｎｋ」より決定し、ローカル変数「ｄｓｔＩｄ」に設定する。具体的には、Ｓ２６０３により構成されたリンク構成情報の変数「ｌｉｎｋ」から、「ｌｉｎｋ［リンクＩＤ］」でリンク先を取得する。取得されるのは前述のとおり、キャプション付随領域のフィールド識別子の文字列、もしくはリンク無しの場合の空文字列である。
【０２０３】
続けてＳ２６１８に進み、引数「ｆｌｄＩｄ」はＳ２６２２で設定された「ｄｓｔＩｄ」の値に、引数「ｂｔｎ」は“ｆａｌｓｅ”に設定して関数「ｊｕｍｐ＿ｔｏ」を呼び出す。つまり、リンク先のキャプション付随領域のフィールドへとジャンプするアクションが実行される。キャプション付随領域にボタンのフィールドは付随しないため、当然ボタン有効化の指定はされない。
【０２０４】
その後はＳ２６１９、Ｓ２６２０と進み、上述した説明同様に関数「ｏｎ＿ｃｌｉｃｋ２」を終了する。フィールドクリック時のアクション関数が終了することで、アプリケーションは再びユーザ操作を受けつける状態へと遷移する。
【０２０５】
続いて、クリック対象フィールドがボタンであり（Ｓ２６２１にてＹＥＳ）、Ｓ２６２３に進んだ場合について説明する。
【０２０６】
Ｓ２６２３では、クリック対象フィールドのボタン種を調べ、「Ｐｒｅｖ」ならＳ２６２４に、「Ｎｅｘｔ」ならＳ２６２５に、「Ｂａｃｋ」ならＳ２６２２に進む。ここではまず、Ｓ２６２４もしくはＳ２６２５に進む場合について説明する。Ｓ２６２４では、グローバル変数「ｌｉｓｔＩｄｘ」の値をマイナス１する。ただし「ｌｉｓｔＩｄｘ」が“０”だった場合は、「ｌｉｓｔＩｄｘ」の値をグローバル変数「ｌｉｓｔ」の配列要素数−１にする。一方、Ｓ２６２５では、グローバル変数「ｌｉｓｔＩｄｘ」の値をプラス１する。ただし「ｌｉｓｔＩｄｘ」がグローバル変数「ｌｉｓｔ」の配列要素数−１だった場合は、「ｌｉｓｔＩｄｘ」の値を０にする。
【０２０７】
Ｓ２６２４もしくはＳ２６２５の後に、Ｓ２６２６では、巡回リストの「ｌｉｓｔＩｄｘ」番目要素の内容をリンク先として、ローカル変数「ｄｓｔＩｄ」に設定する。すなわちグローバル変数「ｌｉｎｋ［ｌｉｓｔＩｄｘ］」の値を設定する。そしてＳ２６１７に進む。
【０２０８】
Ｓ２６１７以降は前述同様である。すなわちＳ２６１７でリンク先へとジャンプし、リンク先に付随するボタンが有効化される。そしてＳ２６１９、Ｓ２６２０と実行されて関数「ｏｎ＿ｃｌｉｃｋ２」を終了し、アプリケーションは再びユーザ操作を受けつける状態へと遷移する。Ｓ２６２３で、ボタン種が「Ｂａｃｋ」だった場合は、Ｓ２６２２に進み、以降本文内アンカー表現領域のフィールドに対する処理内容と全く同様となるので、説明は省略する。
【０２０９】
以上で図２６の説明を終了する。図２７に、図２６のアクション関数群を含むアクション情報を、第四の実施形態で生成する電子文書フォーマットにて記述した例を示す。なお図２７には、図２６には無い、フィールドに付随するボタンを無効化するアクション関数も記述されている。電子文書内でボタンが付随する、本文内アンカー表現領域のフィールドに対しては、フォーカスが外れたときのアクションに本関数が定義さているものとする。
【０２１０】
また初期化の際にすべてのボタンを無効化するのにも本関数が使用される。この方式はあくまで一例であって、たとえば実施例２と同様にクリック時のアクション関数内で必要に応じて必要なボタン無効化をおこなってもよい。また、ユーザの多種な操作に対し、必要に応じてクリック履歴や巡回リスト等のグローバル変数をリセットして意図外の動作を回避するコードを追加してもよい。
【０２１１】
［電子文書データ閲覧動作］
次に、第四の実施形態で生成された電子文書データを、ユーザがアプリケーションで閲覧する場合の動作について説明する。本説明では図１３のアプリケーション画面例を再び使用する。まず、ユーザが電子文書データの２ページ目である図１３（ｂ）の画面を閲覧し、領域１３０６をクリックしたとする。するとフィールド“ｉｍａｇｅ＿図１−１”をリンク元として、図２７に示す例のように記述されたアクション関数「ｏｎ＿ｃｌｉｃｋ２」が呼び出されてアクションが実行される。その内容は図２６で説明したように、クリック対象であるリンク元がキャプション付随領域であるため巡回リストが生成され、その先頭をリンク先とするジャンプ動作を行う。
【０２１２】
ここで巡回リストは、クリック履歴が無いので図２７の「ｉｎｉｔ」関数内で定められるリスト｛“ｔｅｘｔ＿図１−１”，“ｔｅｘｔ＿図１−２”，“ｔｅｘｔ＿図１−３”｝のままとなる。従って先頭のフィールド識別子“ｔｅｘｔ＿図１−１”のフィールドにジャンプし、図１３（ｃ）の表示を得る。次にユーザが図１３（ｃ）で「Ｂａｃｋ」ボタン１３１０をクリックすると、リンク元のリンクＩＤ“ｔｅｘｔ＿図１”からリンク先は“ｉｍａｇｅ＿図１−１”に定まり、同フィールドにジャンプして図１３（ｆ）の表示を得る。
【０２１３】
ここまでは第一の実施形態の動作と同等である。ここで更にユーザが図１３（ｆ）の領域１３１７をクリックすると、再び“ｉｍａｇｅ＿図１−１”をリンク元として関数「ｏｎ＿ｃｌｉｃｋ２」が実行される。しかし直前の関数「ｏｎ＿ｃｌｉｃｋ２」呼び出しで、グローバル変数「ｐｒｅｖＩｄ」には一つ前のクリック対象フィールド識別子「ｔｅｘｔ＿図１−１」が設定された状態にある。よって関数「ｏｎ＿ｃｌｉｃｋ２」は当該フィールド識別子を末尾に並び替えた｛“ｔｅｘｔ＿図１−２”，“ｔｅｘｔ＿図１−３”，“ｔｅｘｔ＿図１−１”｝という巡回リストを作成し、その先頭へとジャンプする。その結果、図１３（ｄ）の表示を得る。つまり第四の実施形態では、ユーザが図１３（ｃ）とは異なる説明を見ようとして前記の操作を行った場合に、再度図１３（ｃ）が表示されることなく図１３（ｄ）が表示されるので、無駄なく効率良い閲覧操作が可能となる。
【０２１４】
なお、図２６で説明したアクション関数「ｍａｋｅ＿ｌｉｓｔ」は、一つ前のクリック対象が巡回の末尾に来るよう並び替えて巡回リストを作成したが、これはあくまで一例であり、他の並び替えを行ってもよい。例えば、逆に一つ前のクリック対象が巡回の先頭に来るよう並び替えてもよい。さらに、より過去のクリック対象まで考慮し、起点が本文内アンカー表現の場合は先頭になるように並び替え、起点がキャプション付随領域の場合は末尾になるように制御してもよい。
【０２１５】
このように、第四の実施形態で作成された電子文書データは、ユーザが複数リンク先を有するフィールドをクリックした時点でリンク先の巡回リストを作成し、以降巡回リストに沿った順番で複数リンク先の表示やフォーカス設定を行う機能を有す。ゆえに、ユーザが対象フィールドをクリックした時点での操作履歴等により巡回リストをより適切な順序に並べ替えることが可能である。その結果、第一、第二の実施形態で説明した効果に加え、ユーザの操作状況等に応じて適切な情報な優先的に提示することが可能となり、ユーザの閲覧効率をさらに向上する効果がある。
【０２１６】
また、第三の実施形態で説明した、アンカー表現近辺の文章から算出した重要度等による並び替えを、前述の関数「ｍａｋｅ＿ｌｉｓｔ」内で行うようにしても良い。その場合には、リンク構成情報に対し各リンク先リストに対応する重要度スコアリストを添付し、必要であれば関数「ｍａｋｅ＿ｌｉｓｔ」内で再計算をおこなうなどして並び替えに利用することが可能である。このようにして作成された電子文書データは、第三の実施形態で説明した効果に加えて、ユーザの操作状況等に応じて適切な情報な優先的に提示することが可能になり、ユーザの閲覧効率をさらに向上する効果がある。
【０２１７】
＜第五の実施形態＞
生成される電子文書データにおいて、複数のリンク先を有する領域に対するフィールドをアプリケーションでクリックしたきのアクションとして、リンク先に関するサムネイル・要約等を列挙する。そして、その中でユーザが選択したリンク先の領域に遷移するようにしてもよい。例えば、キャプション付随領域をリンク元としてクリックしたときのアクションとして、リンク先である本文内アンカー表現領域を含む複数文章を抜粋・要約して一覧表示する。その中からユーザが選んだ文章に含まれるアンカー表現領域へとジャンプするようにしてもよい。
【０２１８】
さらにこのジャンプ先のフィールドに付随して、第一〜第四の実施形態のように別のリンク先を順次表示するためボタンを表示させてもよい。また、そのような一覧表示を行う、もしくは、第一〜第四の実施形態のようにリンク先の一つにジャンプするかをユーザが選択するためのボタン等を提供してもよい。その結果、ユーザは「オブジェクト」に対する複数の「オブジェクト参照文」を、まず要約等の一覧表示で見当をつけた上で、詳細な内容を得るために実際の文章がある部分を表示することができる。よって、ユーザの閲覧効率をさらに向上させる効果がある。
【０２１９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005676942.tif 000002
【図２】
0005676942.tif 000003
【図３】
0005676942.tif 000004
【図４】
0005676942.tif 000005
【図５】
0005676942.tif 000006
【図６】
0005676942.tif 000007
【図７】
0005676942.tif 000008
【図８】
0005676942.tif 000009
【図９】
0005676942.tif 000010
【図１０】
0005676942.tif 000011
【図１１】
0005676942.tif 000012
【図１２】
0005676942.tif 000013
【図１３】
0005676942.tif 000014
【図１４】
0005676942.tif 000015
【図１５】
0005676942.tif 000016
【図１６】
0005676942.tif 000017
【図１７】
0005676942.tif 000018
【図１８】
0005676942.tif 000019
【図１９】
0005676942.tif 000020
【図２０】
0005676942.tif 000021
【図２１】
0005676942.tif 000022
【図２２】
0005676942.tif 000023
【図２３】
0005676942.tif 000024
【図２４】
0005676942.tif 000025
【図２５】
0005676942.tif 000026
【図２６】
0005676942.tif 000027
【図２７】
0005676942.tif 000028