(57)【要約】      （修正有）【課題】最適化させた頁をベースとした電子文書ファイルを与え且つ該最適化させたファイルをダウンロードする方法。【解決手段】最適化されてない電子文書を最適化したファイルを作成し、頁内容を該最適化させたファイル内に連続的に書込み且つ頁オフセット情報を使用して該文書の個々の頁及びオブジェクトを探し出す。最適化したファイルをホストからダウンロードする場合、頁オフセット情報を早期に読取り且つ該文書内のその他の頁のダウンロードを行うことなしに、要求された特定の頁をダウンロードさせる。ビュアが要求された頁の第一部分をダウンロードすることが可能であり、一方該要求された頁の全ての残りの部分は、頁オフセットテーブルを使用して探し出される。一つの頁全体に対する全てのオブジェクトは一度に要求することが可能であり、要求された頁はホストに対する一つの接続のみでダウンロードさせることが可能である。【選択図】  図４
2006114012.tif 000002
【特許請求の範囲】
【請求項１】
頁オフセット情報を有するマルチ頁電子文書の一つの頁を読み取る方法において、
前記文書の読み取り期間中の初期に、動作を最適化させるために前記文書に付加されているオプション情報である前記頁オフセット情報を読み取り、
特定の頁の様相を画定する様相画定要素であって非連続的な態様で前記文書内に格納されている様相画定要素を有している前記文書の前記特定の頁を読み取るための要求を受け取り、
前記文書の読み取り期間中の初期に読み取られた頁オフセット情報を使用して前記文書における前記特定の頁の前記非連続的な要素を見つけ出し、
前記特定の頁の様相を画定する前記様相画定要素を読み取る、
ことを包含していることを特徴とする方法。
【請求項２】
請求項１において、
前記文書の一つの頁を越えて読み取りが完了される前に前記頁オフセット情報が読み取られ、
前記文書の一つの頁を表示するために必要な各様相画定要素の開始及び終了オフセットを前記頁オフセット情報から派生させることが可能である、
ことを特徴とする方法。
【請求項３】
請求項１において、前記頁オフセット情報が前記文書内の所定の位置に位置されていることを特徴とする方法。
【請求項４】
請求項１において、前記頁オフセット情報を読み取る前に、オフセット値が前記文書から読み取られ且つ前記文書内の前記頁オフセット情報を探し出すための前記文書内へのインデックスとして使用されることを特徴とする方法。
【請求項５】
請求項１において、前記特定の頁が頁内容及び共用オブジェクトを包含しており、且つ前記共用オブジェクトが前記頁内容の部分間でインターリーブされて読み取られることを特徴とする方法。
【請求項６】
請求項１において、
前記頁オフセット情報の読み取りが、前記文書に対する共用オブジェクトヒントであって、読み取りプロセスが前記文書内の共用オブジェクトを探し出すことを可能とさせる情報を与える共用オブジェクトヒントの読み取りを包含しており、
前記頁オフセット情報の読み取りが、前記文書に対するブックマークヒントであって、読み取りプロセスが前記文書内のブックマークを探し出すことを可能とさせる情報を与えるブックマークヒントの読み取りを包含しており、
前記頁オフセット情報の読み取りが、前記文書に対するサムネールヒントであって、読み取りプロセスが前記文書内のサムネールを探し出すことを可能とさせる情報を与えるサムネールヒントの読み取りを包含している、
ことを特徴とする方法。
【請求項７】
請求項１において、
前記頁オフセット情報の読み取りが、前記文書に対するアーティクルスレッドヒントであって、読み取りプロセスが前記文書内のアーティクルスレッド及びビーズを探し出すことを可能とさせる情報を与えるアーティクルスレッドヒントの読み取りを包含していることを特徴とする方法。
【請求項８】
請求項１において、
前記文書が一組のオブジェクトを包含しており、各オブジェクトは一組のクラスのうちの一つに属しており、且つ前記文書は、又、前記一組のクラスにおける各クラスに対するヒントテーブルを包含しており、各ヒントテーブルは対応するクラスにおけるオブジェクトの位置を識別する情報を包含しており、且つ
前記頁オフセット情報の読み取りが、前記読み取りプロセス期間中の初期における前記ヒントテーブルの読み取りを包含しており、且つ
本方法が、更に、
対応するクラスのオブジェクトの前記文書内の位置を識別するためにヒントテーブルを使用し、且つ
対応するクラスの全ての又は特定したサブセットのオブジェクトを読み取るためのトランズアクションを作成するために前記識別した位置を使用する、
ことを有しており、その際にユーザにより所望される情報のクラスに関連する前記文書の任意の側面を、前記文書の他の側面に関連するオブジェクトを読み取る必要性無しに、読み取ることが可能であることを特徴とする方法。
【請求項９】
請求項８において、
前記一組のクラスが頁オブジェクトに対するクラスを包含していることを特徴とする方法。
【請求項１０】
請求項８において、
前記一組のクラスがサムネールオブジェクトに対するクラスを包含していることを特徴とする方法。
【請求項１１】
請求項８において、
前記一組のクラスがアーティクルオブジェクトに対するクラスを包含していることを特徴とする方法。
【請求項１２】
請求項８において、前記一組のクラスがブックマークオブジェクトに対するクラスを包含していることを特徴とする方法。
【請求項１３】
請求項８において、前記一組のクラスが対応するヒントテーブルを有するアプリケーションプラグインによって画定されるクラスを包含していることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大略、コンピュータシステム用のデータの格納及び検索に関するものであって、更に詳細には、ネットワークを介しての高速検索用の頁をベースとしたデータ文書を最適化させる方法及び装置、及びこのような最適化した文書へアクセスする方法及び装置に関するものである。本発明は、更に、電子文書の処理及び表示用の方法及び装置に関するものであって、更に詳細には、ネットワークを介して検索された場合にこのような文書を処理し且つ表示することに関するものである。
【背景技術】
【０００２】
電子形態で文書を作成し、送信し且つ表示することが益々一般的なこととなっている。電子文書は、紙文書と比較して多数の利点を有しており、例えば、送信が容易であり、格納する上で小型であり、且つ編集することが可能であり及び／又は電子的に操作することが可能であることが挙げられる。電子文書は、典型的に、情報内容（例えば、テキスト、グラフィックス、絵）及びその内容がどのようにして表示されるべきかを指示するフォーマット情報を有している。最近のマルチメディア技術の進展と共に、文書は、今や、サウンド（音）、完全な動画ビデオ、及びその他のマルチメディアコンテンツを包含することが可能である。
【０００３】
電子文書は著作者、卸売業者又は出版業者（本明細書においては、「パブリシャー（ｐｕｂｌｉｓｈｅｒ）」として言及する）であって、その文書が作成された様相で観察されることをしばしば所望するパブリシャーによって供給される。然しながら、これは、電子文書は、典型的に、広範囲に配布され、従って、多様なハードウエア及びソフトウエアのプラットホーム上で観察することが可能であるという点において問題を発生する。例えば、その文書を観察するために使用されるビデオモニタは寸法、分解能等が変化することが可能である。更に、例えばＤＯＳ、マイクロソフトウインドウズ（商標）、及びマッキントッシュ（商標）等の種々のソフトウエアプラットホームは、全て、それら自身の表示特性を有している。又、各ユーザ又はその電子文書の「読者」は、彼又は彼女自身の個人的な観察上の好みを有しており、そのことも、可能である場合には、考慮されるべきである。
【０００４】
この問題に対する一つの解決方法は、多種類の異なるプラットホーム上で観察し且つ操作することが可能であり且つ読者によって観察されるその文書の様相がパブリシャーによって意図されたものと同一である所定のフォーマットで提供することが可能な「ポータブル電子文書」を提供することである。このような一つの所定のフォーマットはカリフォルニア州マウンテンビューの−アドビシステムズ、インコーポレイテッドによって開発されたＰｏｒｔａｂｌｅＤｏｃｕｍｅｎｔＦｏｒｍａｔ（商標）（ＰＤＦ（商標））である。ＰＤＦ文書を作成し、読取り且つ表示するための頁をベースとしたソフトウエアの一例はアドビシステムズ、インコーポレイテッドのアクロバット、即ちＡｃｒｏｂａｔ（商標）ソフトウエアである。アドビ社のアクロバットソフトウエアは、アドビ社のポストスクリプト（ＰｏｓｔＳｃｒｉｐｔ（商標））技術に基づいており、それは装置独立性の態様で文書のフォーマット化した頁を記述するものである。一つのプラットホーム上のアクロバットプログラムは、使用するコンピュータプラットホームのタイプに拘らずに、異なるプラットホーム上で稼動する別のアクロバットプログラムによって作成されたＰＤＦ文書を作成し、表示し、編集し、印刷し、注釈を加える等の動作を行うことが可能である。あるフォーマット又は言語における一つの文書は、アクロバットを使用してＰＤＦ文書へ翻訳することが可能である。ＰＤＦ文書はパブリシャーによって意図された様相を有する状態で任意のコンピュータプラットホーム上で迅速に表示させることが可能であり、パブリシャーが該文書の最終的な様相を制御することを可能とする。
【０００５】
ポータブル電子文書に対する一つの比較的新しいアプリケーション（応用）は、このような文書を「インターネット」、即ちユーザに対して大量且つ多様の情報を集合的に供給する世界的にアクセス可能なコンピュータのネットワークからこのような文書を検索することである。ワールドワイドウエブ（ＷｏｒｌｄＷｉｄｅＷｅｂ）等のインターネットのサービスから、ユーザはインターネットネットワークサイドからデータを検索するか又は「ダウンロード」することが可能であり且つパブリシャーによって意図された様相を有する種々のフォントにおけるテキスト、グラフィックス、画像等として提供される情報を包含するデータを表示することが可能である。任意のプラットホームがパブリシャーによって意図された様相を有する文書を観察することを可能とするＰＤＦ等のファイルフォーマットは、インターネットのようなこのように広くアクセス可能であり且つプラットホームが独立的なネットワーク資源からファイルをダウンロードする場合に価値の高いものである。
【０００６】
従来の頁をベースとしたデータダウンロードプロセスの場合の一つの問題は、文書のデータの全てが、典型的に、その文書のいずれかの部分がユーザに対して表示される前に、ダウンロードされるということである。従って、ユーザはディスプレイスクリーン上でその文書の１頁又はその他の部分を見る前に、文書全体がダウンロードすることを待機せねばならない。このことは、ユーザがその文書の一部のみを使用すること、即ち一つの文書の特定数の連続した頁又は特定の頁のみを観察することを希望する場合に不便な場合がある。あるサーチプロセスは一つの文書において一つの単語をサーチすることを可能とし且つそのサーチした単語を包含する文書の部分のみをダウンロードする。然しながら、その文書のこの部分は孤立した別個の部分であって、その文書の残部と関係を有するものではない。ユーザがダウンロードした部分の次の頁を見たい場合には、彼又は彼女は文書全体をダウンロードするか又は該文書の次の頁上でサーチ用の用語を特定せねばならないという不便がある。
【０００７】
アクロバット及び例えばＰＤＦ文書等のポータブル電子文書を表示するための同様のプログラムは、しばしば、頁をベースとしており、そのことは、該プログラムが、典型的に、該文書の所望の頁を一度に組織化し且つ表示することを意味している。典型的に、文書全体が、一度にダウンロードされ、次いで所望の頁が表示されていた。然しながら、アクロバットは一つの文書ファイルから一度に一つの文書の一つの頁をダウンロードすることが可能であり、一方ユーザが該文書のその他の頁を都合よく選択することを可能とする。然しながら、このような頁をベースとしたフォーマットの場合には、文書データは、通常、一つのファイル、データ構造、又はその他の文書データの集まり（本明細書においては「文書ファイル」として言及する）内において頁順に連続して格納されるものではない。例えば、ＰＤＦフォーマットにおける文書ファイルは、頁内容オブジェクト（テキスト、グラフィックス形状、表示命令等を包含する）等のオブジェクト及び画像オブジェクトを有する頁を格納することが可能である。然しながら、該オブジェクトは散らばった態様即ちばらばらの態様で該文書内に格納される場合がある。例えば、頁内容オブジェクトの部分は一つの文書ファイルにおいて異なる箇所に散らばることが可能であり、且つ例えばフォント等の共用オブジェクトは該ファイル内の任意の箇所に格納することが可能である。フォント等の共用オブジェクトは、更に、該文書ファイルとは別のファイル内に格納することが可能であり、且つ別のコンピュータ上に格納することさえ可能であり、又フォントサーバー等の資源サービスを介して使用可能とすることが可能である。出力ディスプレイ装置は関連するオブジェクトに対するポインターに基づいて頁内容及び共用オブジェクトを表示するので、オブジェクトは文書ファイル内において逐次的に又は連続的に格納されることは必要ではなく、且つ、典型的に、ばらばらの態様で格納される。
【０００８】
この頁に対するばらばらのデータ格納は、ユーザによって所望される文書の特定の頁をダウンロードしようとする場合に問題に遭遇する場合がる。一つの主要な問題は、データをダウンロードする場合に複数回の接続（即ち複数回の要求・応答処理）を行うことによって発生される時間遅延である。例えば、クライエントコンピュータにおいて頁をベースとしたデータを表示するためのビューイング（観察）プログラムは遠隔ホストコンピュータからＰＤＦ（又は同様のフォーマットの）ファイルのダウンロードを開始する。該ビューイングプログラムは、該ホストに対して一つの接続を行い（又は該ホストとの一つのトランズアクションを開始し）且つその頁の第一部分からのデータをダウンロードし、次いで該頁の次のばらばらの即ち解体された部分を検索するために該ホストに対して別の接続（即ちトランズアクション）をせねばならない。このことは該頁のダウンロードを低速化する効果を有している。何故ならば、各接続（及び各トランズアクション）は時間遅延を有しており且つそれと関連するオーバーヘッドを有しているからである。従って、該頁を要求するユーザは、ビュアが該頁に対する全てのデータを受取り且つその頁を表示するまでに数秒待機せねばならない場合がある。この問題は、フォント又はその他のこのような参照オブジェクトが該頁上に包含されている場合に複雑なものとされる。何故ならば、該頁を表示することが可能となる前に、これらのオブジェクトを検索するためにホストに対して更に別の接続（即ちトランズアクション）をせねばならないからである。
【０００９】
１頁をダウンロードするための時間遅延は、ランダムにアクセスされる頁がユーザによって観察することが所望される場合に、更に一層長いものとなる場合がある。ＰＤＦファイルにおいては、オブジェクトは「頁ツリー」の形態で与えられ、それは、ビュアが、その文書ファイルのどこにランダムにアクセスされた頁のルートが位置されているかを決定するために使用する。頁ツリーは該ツリー内の全てのチルドレンオブジェクトを決定するために全てのノードが訪問されねばならないデータ構造である。従って、多くの頁ノードが頁ルートオブジェクトが該文書ファイル内の何処に位置しているかを決定するために訪問されねばならない必要性がある場合がある。従って、頁ツリーは極めて大きなものである場合があり、且つそれを文書からダウンロードすることはダウンロードプロセスを低速化させる。更に、頁ツリーは、しばしば、それをダウンロードするためにはホストへの複数回の接続（即ちトランズアクション）が必要とされる程度に大きなもの又はばらばらなものである場合がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従って、一つの頁を表示するか又は一つの頁の一部をユーザに対して表示する前に、過剰な遅延を発生することなしに、最適化した頁をベースとする文書を供給し且つこのような文書から所望の頁をダウンロードするための方法及び装置に対する必要性が存在している。
【課題を解決するための手段】
【００１１】
本発明は、頁をベースとした電子文書を最適化し且つ過剰な時間遅延なしで最適化した文書から所望の頁又は一つの頁の一部をダウンロードし且つ表示する方法及び装置を提供している。
【００１２】
本発明方法は、一つ又はそれ以上の頁を有する最適化されていない電子文書から最適化された文書ファイルを提供する。該文書の個々の頁を記述する頁内容情報は最適化された文書ファイル内に書込まれる。頁内容情報は連続的に書くことが可能である。該文書の個々の頁を探すために使用される頁オフセット情報も、最適化させた文書ファイル内に与えることが可能である。複数個の頁によって共用されるオブジェクトも、頁内容情報の全ての後に連続的に位置されて最適化された文書ファイル内に与えられ、且つ該頁オフセット情報はこれらの共用オブジェクトに対するオフセット（位置）を包含している。該頁内容情報は、テキスト及びグラフィックスを包含しており、且つ該共用オブジェクトはフォントオブジェクト及び画像オブジェクトを包含することが可能である。頁内容及び共用オブジェクトを該ファイルにおいて連続的に与えるために、該文書ファイル内の非共用オブジェクト及び共用オブジェクトの内部リストが作成される。オブジェクトを共用する頁のリストも作成され、それは各共用頁によって使用される共用オブジェクトを包含し、且つ、各このような共用オブジェクトに対して、該共用オブジェクトが参照される頁内容の一部を包含する。更に、一つの側面においては、第一頁オフセット情報が最適化した文書ファイルの第一頁に対するレンジテーブル内に設けることが可能である。このような第一頁オフセット情報は、該文書ファイル内の第一頁の全ての部分の位置を記述する。この頁のための頁内容に対するオフセットが、第一頁に対する頁内容によって参照される共用オブジェクトに対するオフセットと共にレンジテーブル内においてインターリーブさせることが可能である。
【００１３】
本発明の別の方法は、上述した如くに作成された頁をベースとした最適化された文書を効率的にダウンロードする。頁オフセット情報はダウンロードプロセス期間中の始めに読取られる。該文書の各頁の開始オフセット及び終了オフセットが頁オフセット情報から派生することが可能である。頁オフセット情報を使用して、ユーザによって要求される特定の頁がダウンロードされ、且つユーザによって所望される任意の頁を、該文書内のその他の頁をダウンロードする必要性なしに容易にダウンロードすることが可能である。この方法の一つの側面においては、頁オフセット情報を、該文書の一つを超える頁のダウンロードを完了する前に読むことが可能である。一つの側面においては、該文書ファイルは頁オフセット情報の位置に対してポイントするポインターを有しており、そのポインターは該文書の第一頁の読取りの前又はその期間中に読取られる。
【００１４】
別の側面においては、ユーザが最適化した文書の特定の頁を要求する場合に、その特定の頁が該最適化された文書ファイルを格納するホストとの一つの接続のみでクライエントコンピュータシステムへダウンロードされる。別の側面においては、その特定の頁がホストとの一つのトランズアクションのみでダウンロードされる。その要求された頁は、ダウンロードされている間に、例えばディスプレイスクリーン、モニタ又はプリンタ等の出力ディスプレイ装置上においてユーザに対して表示することが可能である。ダウンロード動作はクライエントコンピュータシステム上のビュア（ｖｉｅｗｅｒ）プログラムによって達成することが可能である。接続及びダウンロードする場合に、要求された頁の全ての残りの部分が頁オフセットテーブルを使用するクライエントコンピュータ上でのファインダー（ｆｉｎｄｅｒ）プロセスによって探し出し且つ要求されている間に、該ビュアプログラムは要求された頁の第一部分をダウンロードすることが可能である。これらの付加的な部分は、クライエントコンピュータのホストとの一つの接続期間中にダウンロードされ、従って複数回のトランズアクション又は接続を回避することにより時間及びオーバーヘッドを節約している。該特定の頁の付加的な部分は、該特定の頁の頁内容によって参照される共用オブジェクトを包含することが可能である。共用オブジェクトは、該共用オブジェクトを参照する頁内容の部分の間でインターリーブ順にダウンロードされる。別の側面においては、要求された頁は、最適化された文書ファイルを格納するホストとのただ一度のトランズアクションでクライエントコンピュータシステムへダウンロードされ、そのトランズアクションは頁オフセットヒントテーブル及び該文書内において使用可能なその他のヒントテーブル（ｈｉｎｔｔａｂｌｅ）を使用するプロセスによって構成される。
【００１５】
共用オブジェクトがインターリーブ順にダウンロードされる場合には、そのインターリーブプロセスは、要求された頁からの頁内容の第一の部分をダウンロードすることを包含しており、その場合に該頁内容の第一の部分は共用オブジェクトに対する参照を包含している。該第一の部分は、共用オブジェクトに対する参照の（近似）点まで、該文書の全ての隣接する頁内容を包含することが可能である。次いで、該頁の第一の部分によって参照される共用オブジェクトがダウンロードされる。例えば、該共用オブジェクトは、頁内容の第一の部分を表示するのに必要なフォント又は同様の参照されるオブジェクトである。要求された頁からの頁内容の第二の部分が、次いで、ダウンロードされ、その場合に、該第二の部分は頁内容の第一の部分と隣接している。頁をベースとした文書における共用オブジェクト及び頁内容の第一及び第二の部分の位置は、頁オフセットテーブルを使用して派生される。一方、頁内容の第一の部分を表示するために例えば置換フォント等の代用物を使用し、その際に該プロセスが参照されたオブジェクトのダウンロードを繰延べさせ且つその際に頁内容の第二の部分をより迅速にダウンロードし且つ表示することを可能とする。
【００１６】
本発明の別の方法は、コンピュータのディスプレイ装置上に、例えばビットマップ画像等の大きなオブジェクトの上に表示されるべきテキストを有する例えばポータブル電子文書等の電子文書の表示を与える。一般的に、一つの側面においては、この方法は、上側に存在するテキストの表示を行うことを優先させて大きなオブジェクトの表示を行い、ディスプレイ装置上に上側に存在するテキストを表示し、且つ少なくとも上側に存在するテキストの下側に表われる大きなオブジェクトの部分に関して、その下側の部分をオフスクリーンバッファ内に描画し、該上側に存在するテキストを該オフスクリーンバッファ内のオブジェクト上に描画し、且つディスプレイ装置上に表示されるべき該オフスクリーンバッファをコピーすることを包含している。別の側面においては、オブジェクトを表示する動作及びテキストを表示する動作が、ピクセル当たりの少なくとも一つのビットのビットマップをランダムアクセスメモリからなるディスプレイバッファ内へレンダリングさせることを包含している。別の側面においては、ディスプレイバッファ及びオフスクリーンバッファは同一のピクセル深さ及びカラー定義を有している。別の側面においては、本発明はテキストの表示された様相に対応するブロック用マスクを作成し、次いで該オブジェクトを表示することが表示されるテキストを上書きすることがないように、ブロック用マスクの制御下において該テキストの下側にあたかも描画される如くに表われるように特定されたオブジェクトの部分を表示させる。
【００１７】
本発明の別の方法は、ユーザの入力に対して応答する対話的要素を包含する例えばポータブル電子文書等の電子文書をユーザに対して表示するビューイングプログラムの形態で実現される。一つの側面においては、本方法は、対話的要素が表示される位置に位置されていることを表わすためにビューイングプログラムのグラフィカルユーザインターフェースのカーソルの様相を変化させ、且つ対話的要素が表示されることを待機することなしに、対話的要素をユーザからの入力に対して応答させることを包含している。別の側面においては、該対話的要素はハイパーテキストリンクである。別の側面においては、該対話的要素はＰＤＦフォーマット電子文書におけるアノテーション即ち注釈である。
【００１８】
本発明の別の方法は所望のフォントが使用可能となることを待機することなしに、所望のフォントでのテキストを有する例えばポータブル電子文書等の電子文書の表示をコンピュータディスプレイ装置上に与える。一つの側面においては、この方法は、初期的に、ディスプレイ装置上に該所望のフォントとは異なる置換フォントで少なくともテキストの一部を描画し、該ディスプレイ装置を有するコンピュータ上で使用するための所望のフォントとを獲得し、且つ該置換フォントが初期的に使用された表示区域を該所望のフォントで再描画することを包含している。別の側面においては、この方法は、該所望のフォントに対するフォント記述メトリックスを読取り且つそれらを使用して置換フォントを作成する。別の側面においては、この方法は、更に、置換フォントとして使用可能なフォント資源から一つのフォントを採用することを包含している。別の側面においては、該所望のフォントは該文書内に埋込まれているフォントとして包含されているフォントである。別の側面においては、該所望のフォントはフォントサーバーから獲得される。
【００１９】
本発明の装置は、上述した如く、ホスト上に格納されている頁をベースとした文書を効率的にダウンロードさせる。本装置は、デジタルプロセサと、メモリ装置と、ディスプレイスクリーンとを包含している。更に、ディスプレイスクリーン上に頁をベースとした文書を表示するためのメカニズムが包含されており、それはホストと接続して頁オフセット情報をダウンロードし及び／又は該文書内のその他の頁をダウンロードすることなしに、ユーザによって要求された文書の特定の頁をダウンロードする。ダウンロードされた頁はディスプレイスクリーン上に表示させることが可能である。ファインダー（ｆｉｎｄｅｒ）が頁オフセット情報を使用して、該表示メカニズムに対して該文書内の特定の頁の位置を与える頁オフセット情報を使用し、従って該特定の頁をダウンロードすることが可能である。ファインダーは一つの接続期間中に該特定の頁の付加的な部分を要求することが可能であり、且つ頁内容の部分と共用オブジェクトのダウンロード動作をインターリーブさせることが可能である。別の側面においては、ファインダーは一つのトランズアクション期間中に該特定の頁の全ての部分を要求することが可能であり、該トランズアクションは頁オフセットヒントテーブル及び該文書内において使用可能なその他の任意のヒントテーブルを使用するプロセスによって構成される。
【００２０】
一般的に、一つの側面においては、本発明は頁内容要素及び一組のヒントテーブルを包含する電子文書のユーザが要求した頁を読取る方法を提供しており、その場合に、該一組のヒントテーブルの内の一つ（一つの頁オフセットヒントテーブル）が該文書の頁に対する頁オフセット情報を与える。本方法は、該文書の読取り期間中速くに頁オフセットヒントテーブルを読取り、且つ該頁オフセットヒントテーブルを使用してユーザが要求した頁の内容を探し出すことを包含している。このように、ユーザが要求した頁は、該文書内のその他の頁を読取る必要性なしに、容易に読取ることが可能である。別の側面においては、頁オフセット情報は、該文書の一つを超える頁の読取りが完了する前に読取られ、且つ該文書の頁の開始オフセット及び終了オフセットは、頁オフセット情報から派生させることが可能である。別の側面においては、該頁オフセット情報は、該文書の第二頁の読取りが開始される前に読取られる。別の側面においては、該一組のヒントテーブルは、該文書の第二頁の読取りが開始される前に読取られる共用オブジェクトヒントテーブルを包含している。別の側面においては、該一組のヒントテーブルは、該文書の第二頁の読取りが開始される前に読取られるブックマークヒントテーブルを包含している。別の側面においては、該一組のヒントテーブルは、該文書の第二頁の読取りが開始される前に読取られるアーティクルスレッド（記事の繋がり）ヒントテーブルを包含している。別の側面においては、該一組のヒントテーブルは、該文書の第二頁の読取りが開始される前に開始されるサムネイル（簡略）ヒントテーブルを包含している。別の側面においては、該文書はユーザコンピュータ上で稼動しているビュアプログラムによってホストコンピュータから読取られ、且つ本発明はユーザコンピュータへ結合しているディスプレイ装置上にユーザによって要求された特定の頁を表示させることを包含している。別の側面においては、全体として該文書と関連しているオブジェクトの各カテゴリーは対応するヒントテーブルを有している。
【００２１】
別の側面においては、ユーザが要求した頁はホストコンピュータとの一つのトランズアクションでダウンロードされる。別の側面においては、その文書全体がホストコンピュータとの最初のトランズアクションで要求され、且つ該文書のホストコンピュータからの読取りは、ユーザが該文書の特定の頁を要求されるまで中断されることはない。別の側面においては、共用オブジェクトが、それらが読取られた後に、キャッシュされる。
【００２２】
一般的には、一つの側面において、本発明は、二つ又はそれ以上の頁を有する最適化した電子文書を供給する方法を提供している。この方法は、該文書の各頁の様相を特定する頁内容情報を包含する最適化した電子文書における文書情報を供給し、指定した第一頁に対する頁内容情報の性質又は量に拘らずに最適化した電子文書の開始において該文書の指定した第一頁の様相の何等かの側面を特定する頁内容情報を供給し、且つ該文書の実質的に全ての頁の各々に対する夫々の頁内容情報を見つけ出すために充分な情報を有する最適化した電子文書における頁オフセットヒントテーブルを供給することを包含している。別の側面においては、この方法は、テキストと、少なくとも一つのグラフィックと、少なくとも一つの画像と、少なくとも一つのフォントとを包含する頁内容情報を供給することを包含している。別の側面においては、この方法は、最適化した電子文書の開始において一組のヒントテーブルを供給することを包含している。別の側面においては、この方法は、該文書の指定した第一頁の様相の何等かの側面を特定する頁内容情報以外の頁内容情報の前に最適化した電子文書において一組のヒントテーブルを供給することを包含している。
【００２３】
一般的に、一つの側面においては、本発明は、各オブジェクトが一組のクラスの内の一つに属する一組のオブジェクトを包含する電子文書を読取る方法を提供しており、該文書は、更に、該一組のクラスにおける各クラスに対し１個のヒントテーブルを包含しており、各ヒントテーブルは対応するクラスにおけるオブジェクトの位置を識別する情報を包含している。この方法は、読取りプロセス期間中速くにヒントテーブルを読取り、ヒントテーブルを使用して対応するクラスのオブジェクトの文書内の位置を識別し、且つ該識別した位置を使用して対応するクラスのオブジェクトの全て又は特定したサブセットのものを読取ることを包含している。このように、ユーザによって所望されるあるクラスの情報に関連する文書の任意の側面を、該文書の他の側面に関するオブジェクトを読取ることの必要性なしに、読取ることが可能である。別の側面においては、該一組のクラスが頁オブジェクトに対する一つのクラスを包含している。別の側面においては、該一組のクラスがサムネイルオブジェクトに対する一つのクラスを包含している。
【００２４】
別の側面においては、該一組のクラスがアーチクル（記事）オブジェクトに対する一つのクラスを包含している。別の側面においては、該一組のクラスがブックマークオブジェクトに対する一つのクラスを包含している。別の側面においては、該一組のクラスが対応するヒントテーブルを有するアプリケーションプラグインによって定義される一つのクラスを包含している。
【００２５】
本発明の一つの利点は、ダウンロードを遠隔ホスト上に位置している文書の特定の所望の頁のみに制限することが可能であり、その結果、これらの頁に対し表示時間が高速化される。何故ならば、文書全体をダウンロードすることは必要ではないからである。更に、頁をベースとした電子文書ファイルは、連続して格納されている頁内容及び頁オフセットテーブルを包含すべく最適化されている。最適化されたファイルから個々の頁をダウンロードする速度は、頁オフセットテーブルから最適化されたファイル内の頁の位置を決定することによって増加される。一つの頁に対する全ての頁内容及び共用オブジェクトは、ホストに対する一つの接続でダウンロードすることが可能であり、従って複数回の接続による時間遅延を回避している。
【００２６】
本発明の別の利点は、頁内容の部分を、該頁内容のこれらの部分を表示するために必要とされるフォント等の共用オブジェクトと共にインターリーブさせた順番でダウンロードさせることが可能である。このことは、参照した共用オブジェクトがダウンロードされることを待機する必要性なしに、該頁のダウンロードした部分をより迅速に表示させることを可能とする。
【００２７】
本発明の別の利点は、テキストを表示する場合の不所望の遅延が減少されており且つ所望の頁の有用な側面がユーザに対してより迅速に使用可能とされるという点である。
【００２８】
本発明のこれら及びその他の利点は、本発明の以下の明細書を読み且つ図面の内のいくつかの図を検討することにより当業者にとって明らかなものとなる。
【発明を実施するための最良の形態】
【００２９】
本発明はホストコンピュータからポータブル電子文書のデータからなる頁をダウンロードし、且つそれらを最適な増分的表示を行うのに適したものである。より詳細には、ポータブルドキュメントフォーマット（ＰＤＦ）及び同様のフォーマットにおけるポータブル電子文書は、本発明によって最適化させることが可能である。本発明は、頁をベースとしたファイルの頁をダウンロードし且つ表示するための時間が最少となるように該ファイルを組織化し且つダウンロードするのに適している。
【００３０】
図１において、ポータブル電子文書をダウンロードするためのコンピュータシステム１０は、デジタルコンピュータ１１、ディスプレイスクリーン２２、プリンタ２４、フロピーディスクドライブ２６、ハードディスクドライブ２８、ネットワークインターフェイス３０、キーボード３４を包含することが可能である。
【００３１】
例えば、ＣＤ−ＲＯＭドライブ、入力タブレット又はその他のインターフェイス装置等のその他のタイプの周辺装置を包含させることも可能である。デジタルコンピュータ１１は、典型的に、マイクロプロセサー１２、メモリバス１４、ランダムアクセスメモリ（ＲＡＭ）１６、リードオンリーメモリ（ＲＯＭ）１８、ペリフェラルバス２０、キーボードコントローラー３２を包含している。デジタルコンピュータ１１は、パソコン（例えば、ＩＢＭ−ＰＣＡＴコンパチ又はマッキントッシュパソコン）、ワークステーション（例えば、サン又はヒューレットパッカードワークステーション）等とすることが可能である。
【００３２】
マイクロプロセサー１２はコンピュータシステム１０の動作を制御する汎用デジタルプロセサーである。マイクロプロセサー１２は、単一チッププロセサーか又は複数個のコンポーネントで実現されるものとすることが可能である。メモリから検索された命令を使用して、マイクロプロセサー１２は入力データの受取り及び処理及び出力装置上でのデータの出力及び表示を制御する。図示例においては、マイクロプロセサー１２の機能は、電子文書の頁からのデータを読取り且つ処理することである。
【００３３】
メモリバス１４は、ＲＡＭ１６及びＲＯＭ１８へアクセスするためにマイクロプロセサー１２によって使用される。ＲＡＭ１６は、一般的な格納区域として及びスクラッチパッドメモリとしてマイクロプロセサー１２によって使用され、且つ、表示中の（又は、表示されていない）ダウンロードしたデータを格納するために使用することも可能である。ＲＯＭ１８は、マイクロプロセサー１２によって処理される命令及びその他の永久的なデータを格納するために使用することが可能である。
【００３４】
ぺリフェラルバス２０は、デジタルコンピュータ１１によって使用される入力、出力及び格納装置へアクセスするために使用される。図示例においては、これらの装置は、ディスプレイスクリーン２２、プリンタ装置２４、フロピーディスクドライブ２６、ハードディスクドライブ２８、ネットワークインターフェイス３０を包含している。キーボードコントローラー３２は、キーボード３４から入力を受取り且つバス３３を介して各押圧されたキーに対するデコードした記号をマイクロプロセサー１２へ送給するために使用される。
【００３５】
ディスプレイスクリーン２２は、ペリフェラルバス２０を介してマイクロプロセサー１２によって供給されるか又はコンピュータシステム内のその他のコンポーネントによって供給されるデータの画像を表示する出力装置である。図示例においては、ディスプレイスクリーン２２はラスター装置であって、それは当業者にとって公知の如く、ピクセルの行及び列におけるビットマップのビットに対応してスクリーン上に画像を表示する。即ち、ビットマップをディスプレイスクリーン２２へ入力することが可能であり、且つ該ビットマップのビットはピクセルとして表示することが可能である。入力したビットマップはディスプレイスクリーン上で直接的に表示することが可能であり、又はコンピュータシステム１０のコンポーネントが、最初に、頁記述ファイルからのコード又はその他の画像技術をビットマップへレンダリングし且つこれらのディスプレイスクリーン２４上で表示されるべきビットマップを、公知の如くに、送給することが可能である。例えばＣＲＴ、ＬＣＤディスプレイ等のラスターディスプレイスクリーンは、本発明にとって適切なものである。
【００３６】
プリンタ装置２４は用紙又は同様の表面上にビットマップの画像を供給する。プリンタ２４はレイザープリンタとすることが可能であり、それは、ディスプレイスクリーン２２のように、ビットマップから派生されたピクセルを表示するラスター装置である。プリンタ装置２４はポータブル電子文書において見出されるようなデータから派生される画像をプリントすることが可能である。その他の出力装置を、例えば、プロッター、タイプセッター等のプリンタ装置２４として使用することが可能である。コンピュータシステム１０は、メモリ、格納装置からのデータ、又はネットワークインターフェイス３０によって接続されているネットワークを介して、別の供給源又はホストからのデータを使用して、例えばディスプレイスクリーン２２又はプリンタ装置２４等のディスプレイ出力装置上で画像を表示することが可能である。
【００３７】
フロピーディスクドライブ２６及びハードディスクドライブ２８は、本発明の最適化したフォーマットでダウンロードされるか又は作成された文書としてデータを格納するために使用することが可能である。フロピーディスクドライブ２６は、このようなデータを他のコンピュータシステムへ搬送することを容易としており、且つハードディスクドライブ２８は大量の格納したデータへの高速のアクセスを可能とする。例えば非揮発性メモリ（例えば、フラッシュメモリ）、ＰＣデータカード等のその他の大量ユニットも、コンピュータシステム１０によって使用されるデータを格納するために使用することが可能である。この場合に、「コンピュータ（又はマシン）読取り可能な格納媒体」とは、例えばディスクドライブ２６及び２８のみならずＲＡＭ１６及びＲＯＭ１８等のメモリ又はデータを格納するためのその他の任意のタイプの装置の両方のことを意味することが可能である。
【００３８】
ネットワークインターフェイス３０は、例えばコンピュータ装置３１等の一つ又はそれ以上のその他のコンピュータシステムへ接続されているネットワークを介してデータを送給し且つ受取るために使用される。インターフェースカード、モデム又は同様の装置及びマイクロプロセサー１２によって実行される適宜のソフトウエアを使用して、コンピュータシステム１０を既存のネットワークへ接続し且つスタンダードのプロトコルに従ってデータを転送することが可能である。
【００３９】
本発明においては、ネットワークインターフェイス３０は、ネットワークを介してホストコンピュータシステムからポータブル電子文書を検索又は「ダウンロード」し、又はホスト又はクライエントコンピュータシステムへ該文書を送給「（アップロード）」するために使用することが可能である。該ネットワークは、当業者にとって公知の如く、多様なハードウエア及びソフトウエアを使用して実現することが可能である。
【００４０】
キーボード３４は、コンピュータシステム１０へコマンド及びその他の命令を入力するためにユーザによって使用される。ディスプレイスクリーン２２上に表示されるか又はコンピュータシステム１０に対してアクセス可能な画像は、キーボード３４上で命令を入力することによって、ユーザによって編集され、サーチされ、又はその他の態様で処理することが可能である。その他のタイプのユーザ入力装置も、本発明に関連して使用することが可能である。例えば、コンピュータマウス、トラックボール、スタイラス、及び／又はタブレット等のポインティング装置を、汎用コンピュータのスクリーン上で例えばカーソル等のポインターを動作させるために使用することが可能である。
【００４１】
コンピュータシステム１０は、又、最適化した文書をダウンロードする「クライエント」（受信）コンピュータシステムへ本発明の最適化した文書を作成及び／又は供給するためのホスト又は供給源コンピュータとして使用することも可能である。一方、該ホストコンピュータはファイルサーバー又はその他のタイプの大量格納装置とすることが可能である。
【００４２】
図２ａはポータブル電子文書からの表示された視覚的表現を示したディスプレイスクリーン２２の模式的概略図である。本発明は、主に、ポータブル電子文書の頁を作成し且つダウンロードすることに関連している。「ポータブル電子文書」とは、ポータブル電子文書言語で格納されているオブジェクトを包含するデータの集まりのことである。該文書は、例えばファイル、データ構造等の格納単位とすることが可能な「文書ファイル」で組織化され且つ格納される。ポータブル電子文書は、多様な異なる言語及びフォーマットで格納することが可能である。
【００４３】
ここでは、ポータブル電子文書はカリフォルニア州マウンテンビューのアドビシステムズ、インコーポレッドによるポータブルドキュメントフォーマット（ＰＤＦ）又は同様のタイプのフォーマットを参照して説明する。ＰＤＦは「頁をベースとした」フォーマットであり、即ち、一つの文書は多数の頁を包含しており且つ、典型的に、頁毎にユーザへ提供され、即ち、ユーザは、典型的に、ディスプレイスクリーン上に一度に一つの頁（又は、一つの頁の一部）を観察する。同様の文書構造を有するその他の頁をベースとした文書フォーマットも、本発明と共に使用すべく適合させることが可能である。
【００４４】
例えばＰＤＦ等のポータブル電子文書言語は、典型的に、データをオブジェクトとして格納する。本明細書において使用されるように「オブジェクト」とは、能力と属性とを与えるデータ及びプロセスを有する論理的ソフトウエア単位である。例えば、オブジェクトはそのタイプに関して質問される場合があり、且つこのようなデータをそれが有する単語数、座標におけるその位置（例えば、オブジェクトの取囲みボックス（ＢＢＯＸ）の位置）等としてこのようなデータをリターンさせることが可能である。オブジェクトは、同一の又は異なるタイプのその他のオブジェクトを包含するか又は参照することが可能である。オブジェクトは、又、そのオブジェクトタイプに従ってスクリーン上に画像を投影するために使用することが可能である。オブジェクト指向型プログラミングを記述する多数の公知の参考書が存在している。典型的なＰＤＦファイルにおいて使用されるオブジェクトタイプの例は、頁オブジェクト、頁内容オブジェクト（テキストキャラクタ、ワード、等及び／又は多角形形状等のグラフィックオブジェクト、コマンド等を包含する）、画像オブジェクト（例えば、ビットマップ）、フォントオブジェクト、及びユーザ特定オブジェクト等がある。幾つかのオブジェクトは、他のオブジェクトに対する直接的な参照、及び／又はそのオブジェクトを表示するために使用される情報を包含する場合がある。例えば、ＰＤＦ文書においては、頁オブジェクトはコマンド及びテキストキャラクタを包含する頁内容オブジェクトを参照することが可能であり、その場合に該テキストキャラクタは該テキストキャラクタの同一性即ちＩＤを表わすキャラクタコードとして供給される。頁内容オブジェクトは、テキストの周りの取囲みボックスを表示するために使用される座標のようなテキストを表示するための位置、及び例えばキャラクタの寸法及び配向状態等のその他の情報を包含することが可能である。頁内容オブジェクトは、更に、例えばフォント等の「共用オブジェクト」を参照することも可能である（後述する）。本明細書において定義するように、ポータブル電子文書は、通常のＡＳＣＩＩテキストファイルとは異なっている。何故ならば、ＡＳＣＩＩテキスト文書又はファイルは、ＡＳＣＩＩコードのキャラクタを包含するに過ぎずその他の表示情報を包含するものではないからである。本明細書においては、オブジェクトは、頁オブジェクトによって記述される頁の「上」に存在することが可能であり、それはオブジェクトが頁オブジェクトによって「参照」されることと等価である。
【００４５】
図２ａにおいて、ディスプレイスクリーン２２はポータブル電子文書から受取ったデータから派生された表示された頁表現４０を示している。頁表現４０は、ポータブル電子文書内に格納されているオブジェクトからビュアプログラムによってビューウインドウ３９においてスクリーン上に表示され、且つ、典型的に、当業者にとって公知の如くレンダリングされたビットマップから派生される。コンピュータシステム１０上で稼動するビュアアプリケーションプログラム（「ビュア」）は、典型的に、ポータブル電子文書の頁全体、又は１頁の一部を表示することが可能である。該頁に対するデータはビュアによって要求され且つ格納装置又はその他のコンピュータから受取られる。頁４０に対するデータは、ホストコンピュータからダウンロードし且つ表示させることが可能である。ビュアは、更に、メニューヘッディング４１、選択ボタン４３、目次、又は「ブックマーク」ビュー４５のような特徴を提供することが可能である。これらの特徴は、ユーザが受取ったデータを処理し且つユーザの好みに従って頁データを観察することを可能とする。例えば、メニューヘッディングはユーザがダウンロードした頁を観察し、コピーし、ロードし、保存し、サーチし、又は同様の処理を行うことを可能とする。選択ボタン４３は、同様に、ユーザがポータブル電子文書等の次の頁をズームし、選択することによって異なる態様で該文書を観察し又は処理することを可能とする。ブックマーク４５は、ユーザが（又は異なるユーザが、特にマーク付を行い且つテキスト（又は、グラフィックス）でラベル付をした文書の特定の部分をユーザが選択し且つ表示することを可能とする。例えば、異なるチャプターヘッディング即ち章の見出しはブックマーク４５におけるラベルとして表示させることが可能であり、従って、ユーザが一つの章を選択すると、その章の第一頁がビューウインドウ３９内に表示される。本発明と共に使用するのに適したビュアアプリケーションプログラムは、アドビシステムズから入手可能なアクロバットリーダー（Ａｃｒｏｂａｔ（商標）Ｒｅａｄｅｒ）又はアクロバットエクスチェンジ（Ａｃｒｏｂａｔ（商標）Ｅｘｃｈａｎｇｅ）であり、それは、文書ファイルからＰＤＦフォーマットで格納した頁データを読取り、書込み又は処理することが可能であり且つそのデータを頁をベースとしたフォーマットで表示することが可能である。その他のビュア及びファイルフォーマットはその他の実施例において使用することが可能である。
【００４６】
頁表現４０は、幾つかの異なるタイプの視覚的表現を包含することが可能であり、例えば、テキスト４２、グラフィックス４４、画像及びリンク４６などがある。テキスト４２は、文書ファイル内に格納されているキャラクタコード及びフォントオブジェクトから派生される。テキスト４２は、当業者にとって公知の如く、スクリーン２２上で表示するためにビットマップへレンダリングさせることが可能である。グラフィックス４４も、例えば線及び矩形などのコード化された形状のプリミティブ即ち原始要素からレンダリングさせ且つ表示させることが可能である。画像（不図示）は、典型的に、例えば走査又はデジタル化した絵などのビットマップ画像であり、且つ当業者にとって公知の方法によってスクリーン２２上に表示させることが可能である。リンク４６はユーザによってアクセスすることの可能なトピック又はアイディアを描写し、且つ、例えば、通常のオブジェクトから区別するために特別のテキスト、グラフィックス、又は画像で取囲むことが可能である。リンク４６はそのリンクによって描写されるトピック又はアイディアに関連しているポータブル電子文書の異なる部分を表示するためにユーザによって選択することが可能である。又、リンク４６は他の文書へのアクセスを与えるために該リンクによって表現されるトピックを包含するこれらの他の電子文書へリンクさせることが可能である。例えば、多数の既存のネットワークサービス上において、該ネットワーク上に与えられている多数の異なる文書へのリンクが電子文書内に包含される。頁表現４０は、更に、プリンタ２４によって出力される用紙上に表示させることも可能である。コンピュータが関連するフォントオブジェクト、カラーマップ、寸法及びＰＤＦ文書内のその他の情報を検査することによって、表示されるべき各オブジェクトに対するフォント、寸法、カラー又はその他の適宜の情報を決定する。
【００４７】
図２ｂは図２ａに示したスクリーンに類似したディスプレイスクリーンの模式的概略図を示している。図２ｂにおいて、ブックマークレビュー４５は、ユーザの好みによって、「サムネイル」ウインド４８によって置換されている。サムネイルウインド４８は頁アイコン５０（即ち、「サムネイル」）を表示し、その各々は観察されるポータブル電子文書における別個の頁を表わしている。アイコン５０は該文書の何れかの頁へのランダムなアクセスを可能とし、即ち、ユーザはビューウインド３９において対応する頁４０を表示するためにアイコン４０を選択することが可能である。現在表示されている頁は、例えばアイコン５１などのハイライトしたラベルを有することが可能である。
【００４８】
図３ａは最適化していない文書ファイル５４の模式的概略図である。図示例においては、ＰＤＦ言語で格納しているデータを有する文書ファイルが主要な例として参照される。その他の実施例においては、該文書ファイルは異なる頁をベースとしたフォーマットを有することが可能である。ポータブル電子文書は、典型的に、従来技術の通常のプロセスを使用してファイル又はメモリへ書込まれる場合に、図３ａに示したように、最適化されていない文書ファイル５４として格納される。最適化されていない文書ファイルは、ファイル５４内において通常ばらばらの態様で格納される頁内容データ５６を包含している。該頁内容データはテキスト４２に対するデータ及び単一の頁に対するグラフィックス４４を包含している。更に、該頁内容データは、又、例えば参照される（共用されない）フォント、画像、プロクセット（ｐｒｏｃｓｅｔｓ）などのその他の頁によって共用されることのないその他の関連するデータも包含している。例えば、特定の頁Ｐはファイル５４の始めに位置されるテキスト／グラフィックス頁内容５６ａと、内容５６ａから不連続なファイル内の後の位置に配置される共用されない画像頁内容５６ｂと、内容５６ｂから不連続な資源辞書内容５６ｃと、ファイルの終わり近くに配置される共用されないフォントオブジェクト内容５６ｄとを有している。これらの内容の全ては、頁Ｐ全体を表示するためにはビュアによって読取ることが必要である。
【００４９】
該文書のその他の頁は、同様のばらばらの態様でファイル５４内に格納されている頁内容データ５６を有している。更に、文書ファイル５４は相互参照テーブル５８を包含することが可能であり、それは、そのオブジェクトが位置しているファイル内の位置（オフセット）に対してインデックスされている文書ファイル５４内の各オブジェクトのテーブルを与える。「ポータブル文書フォーマット参照マニュアル（ＰｏｒｔａｂｌｅＤｏｃｕｍｅｎｔＦｏｒｍａｔＲｅｆｅｒｅｎｃｅＭａｎｕａｌ）」、アドビシステムズインコーポレイテッド、アジソン・ウィズリー出版社、ニューヨーク、１９９３年の文献は、相互参照テーブル、頁ツリー、及びその他のＰＤＦファイルフォーマットの特徴を記載しており、且つそれを引用によって本明細書に取込む。相互参照テーブル５８は該ファイル内の任意の箇所に配置させることが可能であり、例えば、ファイルの終わりに配置させることが可能であり、又は、相互参照テーブルの一部はファイルの異なる部分に位置させることが可能である。最後に、最適化されていない文書ファイル５４は、典型的に、共用オブジェクト６０及び特別オブジェクト６１（後述する）を包含しており、それらは、典型的に、ばらばらの態様でファイル５４全体に位置されている。共用オブジェクトはファイル内の複数個の頁内容オブジェクトによって参照することが可能であり、且つ、フォントオブジェクト、カラーマップ（又は「カラー空間」）、及び表示された場合にオブジェクトの様相に必然的に影響を与えるために参照されるその他のオブジェクトを包含することが可能である。共用オブジェクトは、更に、複数個の頁上に表われる任意のオブジェクト及びユーザが定義した共用オブジェクトを包含することも可能である。本明細書において言及する「共用オブジェクト」は、特定の場合に実際に共用されるものでないものであるかもしれないが、これらのオブジェクトは潜在的に共用することが可能なものである。例えば、あるフォントは一つの頁によって使用されているに過ぎず且つ特定の文書内においてはその他の頁によって共用されるものではないかもしれないが、それは潜在的にその他の頁によって共用することが可能なものである。当該技術において公知の如く、ＰＤＦファイルは、典型的に、「頁ツリー」構造にあるオブジェクトを関連付け、その場合に、一つのオブジェクトは一つのチャイルド（子供）又は子孫オブジェクトに対して参照することが可能である。例えば、頁オブジェクトは頁内容５６（チャイルド）オブジェクトへ参照することが可能であり、一方該頁内容オブジェクトは、更に、（チャイルド）共用オブジェクト６０に対して参照することが可能である。
【００５０】
文書ファイル５４の１頁を表示するプロセスにおいて、文書ファイル５４は別個のホストコンピュータ上に位置させることが可能である。ユーザが、図２ａ及び２ｂに示したビュアがディスプレイスクリーン２２上に文書ファイルの特定の頁Ｐを表示することを要求する場合には、ビュアは、最初に、その所望の文書ファイルへアクセスするためにホストコンピュータへの接続を確立する。その頁内容が図３ａに示したように組織化されている場合には、ビュアは、最初に、指定された量の頁内容５６ａをダウンロードする。ダウンロード内容５６ａに対して幾つかの可能な接続を行った後に、典型的に、内容５６ｂに対してアクセスするためにビュアによって別の接続がなされねばならず、以下同様である。更に、頁Ｐの内容が例えばフォントなどのオブジェクトを参照する場合には、そのフォントは、そのフォントを必要とする頁内容を表示する前に、ダウンロードされねばならない場合がある。このことは、全ての頁の何れかの部分がビュアによって表示される前に、ユーザに対する長い遅延に貢献するものである。
【００５１】
図３ｂは本発明の最適化した文書ファイル６２の模式的概略図である。ファイル６２におけるデータはホストコンピュータから１頁をダウンロードし且つその頁を図２ａ及び２ｂに示したようにビュアによって表示させるための時間の量を最小とさせるべく組織化されている。文書ファイル６２は該ファイルの始めに格納されているレンジテーブル６６を包含しており、且つ同様に該ファイルの始め近くに格納されている相互参照テーブルの第一頁部分６４を包含している。頁内容５６はグループ化され且つ連続的に即ち隣接して格納され、従って連続した量の第一頁の内容５６が格納され、次いで連続した量の頁２の内容５６が格納され、以下、頁Ｎの連続した内容５６の終わりまで同様に行われ、尚Ｎは該文書における最後の頁番号である。全ての共用オブジェクト６０は頁内容データの後に格納することが可能である。頁を表示するために必要とされるものではない特別のオブジェクト６１は、共用オブジェクト６０の後に格納することが可能である。図示例においては、特別オブジェクトは頁アイコン（サムネイル）オブジェクト、ブックマークオブジェクト、頁ツリーオブジェクトなどを包含している。相互参照テーブル５８は、該特別オブジェクトの後に格納することが可能であり、且つ本発明の頁オフセットテーブル６８は該ファイルの終わりに格納することが可能である。該頁オフセットテーブルは後に説明するように、ビュアに対して文書ファイル６２における頁の位置及び共用オブジェクト情報を与える。別の実施例においては、該頁オフセットテーブルは該ファイルのその他の区域内に格納することが可能である。一つのこの様な別の実施例を図１４に示してあり且つそれを参照して説明する。図３ｂに示したようなデータの組織化の機能について後に説明する。図２ａ及び２ｂに示したビュアのようなアプリケーションプログラムは、図３ｂに示したような最適化した文書ファイルとして観察した文書（又は特定した格納装置上の文書）を保存するためのオプションを有することが可能である。その場合には、ユーザは、文書を最適化したフォーマットで又は最適化していないフォーマットで保存するかの何れかを選択することが可能である。
【００５２】
別の実施例においては、文書データを最適化した文書ファイル６２の異なる位置に書込むことが可能である。例えば、レンジテーブル６６、相互参照テーブル５８又は６４、又は頁オフセットテーブル６４はファイル６２内の特定の位置に配置させることが可能であり、且つビュアは、特定のデータがダウンロードされることを必要とする場合に、これらの特定の位置を読取ることが可能である。
【００５３】
最適化した文書ファイルの作成
図４は最適化されていない文書から本発明の最適化されている文書ファイル６２を作成するための本発明のプロセス７０を示したフローチャートである。「最適化されていない文書ファイル」は格納装置上に一つのファイルとして格納することが可能であり、又は図２ａ及び２ｂに示したようなビューイング即ち観察プロセス期間中などに、コンピュータシステム１０のメモリ（例えばＲＡＭ１６）内に部分的に又は全体的に格納することが可能である。本実施例における最適化されていない文書は「通常の」ＰＤＦフォーマットにある。プロセス７０は、その最適化されていない文書を本発明の最適化されている文書ファイルとして保存することを希望するユーザによって開始させることが可能である。例えば、最適化されていない文書をコンピュータシステムのＲＡＭ内にロードさせ、次いで、最適化された文書ファイル６２としてハードディスク又はその他のコンピュータによって読取り可能な格納媒体へ保存させることが可能である。例えば、アドビシステムズからのＰＤＦライター（ＰＤＦＷｒｉｔｅｒ）又はアクロバットディスティラ（ＡｃｒｏｂａｔＤｉｓｔｉｌｌｅｒ）を使用してアプリケーションプログラムからＰＤＦファイルを書き、且つプロセス７０を実行するために使用することが可能である。
【００５４】
保存した最適化されているファイル６２は、例えば、その文書をダウンロードすることを要求する可能性のあるクライエントコンピュータシステムに対してホストコンピュータ又はサーバ（「ホスト」又は「ホストコンピュータ」）上で入手可能なものとさせることが可能である。最適化された文書ファイル６２をダウンロードするための本発明のプロセスについて図１０を参照してより詳細に説明する。このプロセスは７２において開始する。ステップ７４において、オブジェクトの内部リスト及び共用オブジェクトのリストが最適化されていない文書ファイルから作成される。これらのリストは該プロセスが、オブジェクトを本発明のより最適化された形態へグループ化するために該文書のオブジェクトを組織化することを助ける。共用オブジェクトのリストは、頁内容オブジェクトの後に該文書内に共用オブジェクトを配置させるために使用される。ステップ７４を図５を参照してより詳細に説明する。次のステップ７６において、頁内容情報５６、共用オブジェクト６０、特別オブジェクト６１を包含する文書情報が、ステップ７４において組織化された内部リストに従って最適化された文書ファイルへ書込まれる。このプロセスは、基本的に、内部リストにおける各相次ぐオブジェクト名称又は（ＩＤ）を検索し且つそのオブジェクトを同一の順番で最適化させたファイルへ書込む。このことは、図３ｂに示したように、該文書の全ての頁に対して、頁内容５６、共用オブジェクト６０及び特別オブジェクト６１を組織化させる効果を有している。更に、以下に説明する相互参照テーブル部分６４及びレンジテーブル６６を格納するために、最適化させたファイルの始めに空間を割当てることが可能である。又、該ファイル内のオブジェクトの位置を記述する相互参照テーブル５８に対する情報が、該オブジェクトがこのステップにおいて書込まれる場合に、メモリ内に格納される。
【００５５】
別の実施例においては、頁内容及び共用オブジェクトをインターリーブさせた順番で最適化させた文書ファイル６２内に格納することが可能であり、その場合に、頁内容の部分の後にこれらの部分によって参照される共用オブジェクトが続くこととなる。一実施例においては、データがインターリーブさせた順番で読取られ又はダウンロードされるが、インターリーブさせた順番で格納するものではない。インターリーブは図９及び１２を参照してより詳細に説明する。別の実施例においては、第一頁の内容を最適化させたファイル内にインターリーブさせた順番で物理的に格納し、従ってレンジテーブル６６はダウンロードさせることは必要ではなく、そのことはホストコンピュータへの接続（又はそれとのトランズアクション）を節約し且つ該ファイルの初期的なダウンロード時間を減少させることが可能である。
【００５６】
次のステップ７８において、相互参照テーブル５８（又はその他のファイルフォーマットを使用する等価な構造）が該ファイルへ書込まれ、且つ一実施例においては、図３ｂに示したように、特別のオブジェクト６１の後のファイルの終わりに書込まれる。相互参照テーブル５８は該文書におけるオブジェクト及び各オブジェクトのスタートに対するファイルの始めからのオフセット（例えば、バイト単位）のリストであり、且つ該文書内のオブジェクトに対しランダムアクセスを可能とする（しかしながら、相互参照テーブルはオブジェクト又はオブジェクトが位置されている頁のタイプを与えるものではない）。ＰＤＦファイルに対する「トレーラ（ｔｒａｉｌｅｒ）」もこのステップにおいて書込むことも可能である。相互参照テーブルに対する情報は、各オブジェクトが上述した如くステップ７６において最適化されるファイルへ書込まれる場合に決定される。ＰＤＦファイルにおいて相互参照テーブルの形成は当業者にとって公知である。
【００５７】
ステップ８０において、相互参照テーブル５８の頁１部分６４が最適化された文書ファイル６２へ書込まれ、且つ一実施例においては、それは該ファイルの始め近くに書込まれる（レンジテーブル６６を格納するための余裕が残される）。相互参照テーブル５８のこの部分６４は電子文書の第一頁上のオブジェクトを参照し且つ頁１情報をダウンロードプロセスにおいて可及的速やかに検索することが可能であるように、該ファイルの始め近くに配置される。従って、第一頁の内容は、文書ファイル６２をダウンロードする場合にこれらの内容を受取るや否やすぐに表示させることが可能である（図１０における如く）。
【００５８】
ステップ８２において、本発明の頁オフセットテーブル６８が作成され且つ最適化されたファイル内に配置される。一実施例においては、それは相互参照テーブル５８の後の最適化されたファイル６２の終わり近くに配置される。該頁オフセットテーブルにおける情報は電子文書の任意の頁を迅速にアクセスし且つダウンロードすることを可能とする。該頁オフセットテーブルは、別のオフセットテーブルファイルをダウンロードし、処理し、アップデートし又は頁内容ファイルと関連させる必要性がないように、最適化させたファイル６２内に包含させることが可能である。しかしながら、別の実施例においては、頁オフセットテーブル及び、オプションとして、その他のインデックステーブルをオプションとして別のホストコンピュータ上に存在する一つ又は複数個の二次ファイル内に格納することが可能である。一実施例においては、頁オフセットテーブルに対するポインタがファイル６２の始め近くのレンジテーブル６６（後述する）内に包含され、従って該頁オフセットテーブルは、第一頁１情報がダウンロードプロセスにおいてダウンロードされた後にアクセスすることが可能である。該頁オフセットテーブルは該文書の頁１を表示するためには必要なものではないので、それは該ファイルの始めに配置されるものではない。一方、該頁オフセットテーブルは、始めの部分を包含する最適化させたファイル６２におけるその他の場所に与えることが可能である。該頁オフセットテーブルは図８を参照してより詳細に説明する。
【００５９】
ステップ８４において、レンジテーブル６６（及び、オプションとして、ヘッダ）を最適化させたファイル６２を真先に書込む。該レンジテーブルは該文書の第一頁の頁内容及び共用オブジェクトに対するオフセット及び長さを与え、従って、頁オフセットテーブル６８のような機能を行う。該レンジテーブルを書込むプロセスは図９を参照してより詳細に説明する。その他の必要な情報もこのステップにおいて書込むことが可能であり、例えば、ＰＤＦファイルは「トレーラ」後のファイルの終わりにおいて文書ファイルの内容に対するポインタを格納する。次いで、プロセス７０は８６において完了する。
【００６０】
図５は図４のステップ７４を例示するフローチャートであり、その場合に、オブジェクトの内部リスト及び共用オブジェクトのリストが最適化されていないポータブル電子文書から作成される。該プロセスは８８において開始する。ステップ８９において、ペアレント（親）オブジェクトからの任意の継承データが適宜頁ツリー下方のチルドレン（子供）オブジェクト内にコピーされる。このステップは、ＰＤＦファイルにおけるように、幾つかのチルドレン（子供）オブジェクトがある必要とされるデータを包含するものではなく且つ、その代わりに、例えば表示コマンド、配向コマンドなどをペアレント（親）オブジェクトからこの必要とされるデータを参照し且つ「継承」する場合に実行される。本発明はオブジェクトデータを記録し且つペアレントオブジェクトを容易に参照することが可能でない場合があるので、ペアレントオブジェクトからの任意の継承データはステップ８９においてこの様なデータを必要とするチルドレンオブジェクト内にコピーされる。
【００６１】
ステップ９１において、第一頁に対する頁ツリーオブジェクトを除いて、別の頁ツリー内部リストへ頁ツリーオブジェクトが付加される。第一頁の頁ツリーオブジェクトのみがダウンロードプロセスにおいて最初にダウンロードされることが必要であるに過ぎず、従ってその他の頁ツリーオブジェクトはステップ９１において別個のリスト内に組織化することが可能であり、且つ、後に該ファイルの終わり近くに書込むことが可能である（後述する）。ステップ９２において、変数Ｐが１へ初期化され且つそれが該文書内の頁数未満であるか又はそれに等しいか否かがチェックされる。そうである場合には、ステップ９４において、頁Ｐに対する頁オブジェクトが最適化されていない文書ファイル（又はメモリ内に格納されている最適化されていない文書）から検索され且つ内部リストへ書込まれる。典型的にＰＤＦファイル又は同様のフォーマットで定義される頁オブジェクトはその頁上に包含され且つ集団的に表示されるその他のオブジェクトを参照する一つのオブジェクトである。従って、頁Ｐに対する頁オブジェクトを検索することによって、本プロセスは、又、頁Ｐの頁内容オブジェクト及び任意のその他の参照されるオブジェクトに対する参照（ポインタ）を間接的に検索する。ステップ９４は最適化されていないファイル（それはビュアによって使用することが可能である）からの相互参照テーブルを使用することにより最適化されていないファイルにおける頁Ｐに対する頁オブジェクトを見つけ出す。頁Ｐオブジェクトの同定又は識別（ＩＤ）が内部リストへ書込まれ、ＲＡＭ１６又はその他の格納部内に格納される。
【００６２】
ＰＤＦ及びその他のタイプのファイルにおいて、オブジェクトは、典型的に、オブジェクトＩＤを有しており、それは該文書ファイル内の該オブジェクトを固有的に識別する番号又はその他の識別子である。頁Ｐオブジェクトに対する番号識別子が本実施例における内部リストへ書込まれる。ステップ９６において、頁アイコン５０（「サムネイル」）が図２ｂに示したようにビュア実施例において実現される場合には、最初に表示されたビューが頁アイコンを包含するものでない場合には、現在の頁Ｐに対する頁アイコンオブジェクトが、典型的に、別の頁アイコンリストへ付加される。しかしながら、アクロバット（Ａｃｒｏｂａｔ）などのビュアにおいては、ユーザは最初にダウンロードし且つ表示される場合に、図２ｂに示したように、頁アイコンビューと共に表示されるべき文書を指定するファイルを保存することが可能である。現在の最適化されていない文書がその様に指定されている場合には、頁アイコンオブジェクトは第一頁を表示するために必要である。従って、一実施例においては、ステップ９６はスキップすることが可能であり且つ該頁アイコンオブジェクトを、全ての第一頁オブジェクトを付加した後に該内部リストへ付加させることが可能である（即ち、第一頁（例えば、Ｐ＝１）に対するステップ１０８の負の判別）。一方、特定の頁に対する頁アイコンをその頁内容の後に格納することが可能である。該文書を表示するために必要ではないその他の特別のオブジェクトもステップ９６において特別化された内部リストへ付加させることが可能であり、従ってこれらのオブジェクトは文書ファイルの終わりに書込むことが可能である。本明細書においては、「特別のオブジェクト」とは頁アイコンオブジェクト、ブックマークオブジェクト、頁ツリーオブジェクト、及び頁を表示するために通常必要なものではなく且つ最適化させた文書ファイルの終わり近くに与えることの可能な同様の任意のタイプのオブジェクトのことを意味している。
【００６３】
次のステップ９８において、頁Ｏの「上」の次のオブジェクトが指定された順番、即ち、オブジェクトの指定された順番における頁Ｐオブジェクトによって参照される次のオブジェクトが検索される。オブジェクトの「指定された順番」とは、該ファイルから一つの頁へアクセスする場合に、最適化されたファイルのプロバイダ（又はプロセス７４のインプリメンタ即ち実行するもの）がダウンロードされ且つ表示されることを所望する場合のオブジェクトの順番である。従って、最適化されたファイル６２をダウンロードする場合には、他のタイプのオブジェクトが未だダウンロード中に、あるタイプのオブジェクトを最初に表示させることが可能である。例えば、その頁をダウンロードするユーザが画像が未だダウンロードしている間にテキストを読取ることが可能となるので、その頁がダウンロードされる場合に、その頁の画像より前にその頁のテキスト（即ち、頁内容オブジェクト）を表示することが望ましい。テキスト内容から、ユーザは、画像がダウンロードされ且つ表示されるのを彼又は彼女が待機するのに値するか否か、又はその頁のダウンロードを中断し且つ新しい頁をダウンロードするか否かを迅速に判別することが可能だからである。
【００６４】
一実施例においては、オブジェクトの指定した順番はリンク、非画像「資源オブジェクト」（即ち、資源辞書における非画像オブジェクト）、頁内容オブジェクト、画像オブジェクト、ブックマークオブジェクト、ユーザが定義したオブジェクト、及びその他のオブジェクトである。この順番はリンクを最初にダウンロードし且つアクティブとさせることを可能とする。リンクは、典型的に、テキスト、グラフィックス、画像又はその他のオブジェクトを取囲む矩形状の（又はその他の形状の）「取囲みボックス」として典型的に実現されるので、該リンクは好適には指定された順番における最初のものであり、従って、リンクの取囲まれているオブジェクトは後に表示され、該リンクは既にユーザの入力を受付けることが可能である。ビュアによって文書へ付加することの可能なその他のタイプのオブジェクトは指定した順番でリンクと共に順番付けされる。非画像「資源オブジェクト」は次の順番とされ、それは例えばフォントオブジェクト、カラーマップオブジェクトなどの共用オブジェクトを包含している。フォントオブジェクトはテキストがどの様にして表われるかを決定するデータを与え、且つカラーマップオブジェクトは当業者にとって公知の如く異なるディスプレイ出力装置に対するカラーをマッピングする。フォント及びカラーマップオブジェクトはテキスト及びグラフィックスを表示するために必要とされ、従ってそれらを参照する頁内容オブジェクトに対し時間的に近接してダウンロードされるべきである。ＰＤＦファイルにおいては、これらのタイプのオブジェクトは、典型的に、「資源辞書」内に位置され、それは文書ファイルの頁内容オブジェクト５６内に位置され（又は別のオブジェクトとして）且つオブジェクト参照でオブジェクトをマッピングするために頁内容をデコーディングするために使用される。画像オブジェクトは、又、典型的なＰＤＦファイルにおける資源辞書において参照することが可能であるが、それらは指定した順番の後において順番付けされる。頁内容オブジェクト（テキスト及びグラフィックス）は該指定された順番において次の順番とされ、それはユーザがテキスト／グラフィックスを迅速にダウンロードし且つ観察し且つ該頁の主題内容を決定することを可能とする。画像オブジェクトは、次の該指定された順番の終わり近くの順番とされている。なぜならば、それらは、通常、最も大きな寸法のオブジェクトであり且つ最も大きなダウンロード時間を必要とするからである。図２ａに示したように、ブックマークオブジェクトによって参照されるオブジェクトが次の順番である。これらのオブジェクトはブックマークによってアクセスすることが可能であるようにダウンロードすべきであり、且つ以下に説明するように特別の場合である。ユーザが定義したオブジェクト及び任意のその他のタイプのオブジェクトは最後の順番である。
【００６５】
オブジェクトのその他の指定した順番をその他の実施例において実現することが可能である。例えば、リンクをテキスト及びグラフィックスオブジェクトの後にダウンロードすることが可能である。一方、最適化させたファイル６２を作成するユーザがオブジェクトの所望の指定順を入力するオプションが提供されるようにすることが可能である。従って、オブジェクトの指定順における次のオブジェクトがステップ９８において検索される。即ち、これが、ステップ９８が実行される最初の時である場合には、リンクオブジェクトが検索される。全てのリンクオブジェクトが検索され且つ現在のプロセスのステップ１０２におけるリストへ付加されると、指定順における次のオブジェクト（例えば、資源オブジェクト）がステップ９８において検索され、以下同様である。
【００６６】
ステップ１００において、本プロセスは、検索されたオブジェクトが異なる頁に対して既に検査されているか否か又は検索されたオブジェクトが強制された共用オブジェクトであるか否かを決定する。その検索されたオブジェクトが異なる頁に対して既に検査されている場合には、このオブジェクトは共用オブジェクトとして指定され、即ち、該オブジェクトは先に検査した頁／頁内容オブジェクト又は現在の頁／頁内容オブジェクトによって参照され且つ既に検索され且つ処理されたものである。何れのオブジェクトも潜在的に共用オブジェクトとなることが可能であり、例えば、文書ファイルにおける頁内容オブジェクト又は画像オブジェクトは二つ又はそれ以上の異なる頁によって参照されることが可能である。本プロセスは、現在のプロセスにおいてこれまで作成された内部リストを検査することによって、一つのオブジェクトが共用されるか否かをチェックすることが可能である。オブジェクトＩＤが現在のオブジェクトのＩＤと一致するものであることが判別する場合には、そのオブジェクトは共用オブジェクトであると考えられる。
【００６７】
又、一実施例においては、ステップ１００において、検索されたオブジェクトが強制された共用オブジェクトである場合には、そのオブジェクトは、実際に複数個の頁によって参照されたか否かに拘らずに、そのオブジェクトは共用オブジェクトへ自動的に強制される（指定される）。本明細書においては、「強制された」共用オブジェクトは、フォントオブジェクト及びカラーマップオブジェクトのような資源オブジェクトを包含するものであるが、例えば画像オブジェクト又はプロクセット（ｐｒｏｃｓｅｔ）オブジェクトなどの資源オブジェクトを包含するものではない。フォントオブジェクト及びカラーマップオブジェクトは、頁内容をデコーディングする場合に必要とされるのでそれらは共用オブジェクトへ強制され且つ、特定の実施例においては、効果的に、以下に説明するダウンロードプロセスにおいてインターリーブさせることが可能である。「プロクセット（ｐｒｏｃｓｅｔ）」は、当業者にとって公知の如くプリントプロセスに対して使用され且つ自動的に共用オブジェクトへ強制されることは必要でないものである（画像及びプロクセット（ｐｒｏｃｓｅｔ）は、複数個の頁によって参照される場合に、共用オブジェクトとなることが可能である）。
【００６８】
更に、ユーザは、複数個の頁上で参照することの可能な彼又は彼女自身の標準的でない共用オブジェクトを与えることが可能である。例えば、ユーザは複数個の頁によって参照される文書内のディクショナリ即ち辞書テーブルオブジェクトを与えることが可能である。この様なユーザが定義した共用オブジェクトは必ずしも参照されるものではなく且つテキストのような頁内容を表示するために必要とされるものでもなく、且つ従って、本明細書においては「非内容共用オブジェクト」として言及する。
【００６９】
検索されたオブジェクトが共用オブジェクトではない場合には、ステップ１０２が実行され、その場合に、検索されたオブジェクトのオブジェクトＩＤが内部リストの終わりに付加される。従って、内部リストは頁オブジェクトと、それに続くその頁によって参照される全てのオブジェクト（指定順）とを包含するオブジェクトの順番を有している。
【００７０】
ステップ１０３において、所定の条件が充足される場合には特別オブジェクトが処理される。例えば、図示例においては、ブックマーク４５オブジェクトは、現在の頁が第一頁（Ｐ＝１）であり、且つ現在の頁上の画像オブジェクトが全て処理されている場合には（即ち、ブックマークオブジェクトが指定順において画像オブジェクトの後である）、ステップ１０３において処理される特別タイプのオブジェクトである。これらの条件が満足される場合には、本プロセスは、該文書が最初に開かれる場合にブックマークビュー４５が表示されるべきか否か、即ち図２ａのブックマークビューがデフォルト初期ビューであるか否かをチェックする。そうである場合には、所定数のブックマークオブジェクト（例えば、６０）のＩＤが内部リストへ付加される。この数は、図２ａに示したように、初期的にブックマークビュー４５内に示されるブックマークオブジェクトの数である。次いで、ブックマークオブジェクトの残部が、上述した別個の頁アイコンリストと同様に、別個のブックマーク内部リストへ付加される。図２ａのブックマークビューがデフォルトの初期的なビューでない場合には、ブックマークオブジェクトの全てがステップ１０３において別個のブックマークリストへ付加される。このステップは、ブックマークビュー内に表示されているオブジェクトが第一頁の内容データと共にグループ化させることを可能とし、従ってブックマークオブジェクトをダウンロードし且つダウンロードプロセスにおいて最初の頁データを迅速に表示させることが可能である（初期の文書表示がブックマークビューを包含している場合）。次いで、本プロセスは以下に説明するようにステップ１０８へ進行する。
【００７１】
検索したオブジェクトがステップ１００における共用オブジェクトである場合には、ステップ１０４が実行され、その場合に共用オブジェクトが処理され且つ共用頁リストが作成される。このステップについては図６を参照して詳細に説明する。次のステップ１０６において、共用オブジェクトのオブジェクトＩＤが共用オブジェクトリストへ付加され、それは、プロセス７４によって検査されたオブジェクトの共用オブジェクトＩＤのみを包含するという点を除いて、内部リストに類似している。
【００７２】
図５ａは図５のステップ１０６において処理されるような共用オブジェクトリスト１４８の模式的概略図である。共用オブジェクトリスト１４８は、図５のプロセスにおいて見つけられた各共用オブジェクトに対するノード１５０を有している。各ノード１５０は、後に詳細に説明するように、オブジェクトのオブジェクトＩＤを格納するためのオブジェクトＩＤフィールド１５２、及び内容フラッグを格納するための内容フラッグフィールド１５４を有している。
【００７３】
ステップ１０２又はステップ１０６の後に、ステップ１０８が実行され、その場合に、本プロセスは、検査されていない頁Ｐ上に付加的なオブジェクトが存在するか否かをチェックする。存在する場合には、本プロセスはステップ９８へ復帰して、オブジェクトの指定した順番で次のオブジェクトを検索する。付加的なオブジェクトが存在しない場合には、ステップ１１０が実行され、その場合に、頁Ｐ上のオブジェクト数がメモリ内に格納される。この数は、内部リストにおける新たに付加されたオブジェクトＩＤ全てをカウントすることによって決定することが可能である。次いで、本プロセスはステップ９２へ復帰し、変数Ｐをインクリメントさせ、且つ、再度、Ｐが該文書内の頁数より小さいか又は等しいかのチェックを行う。
【００７４】
最適化されていない文書の全ての頁が前述したステップによって処理されると、本プロセスはステップ１１２へ進行し、その場合に、共用頁リストが完成され且つ全ての共用オブジェクト及びその他のオブジェクトが内部リスト内に組込まれる。共用頁リストはステップ１０４の共用オブジェクトの処理において作成される。共用オブジェクト及びその他のオブジェクトが内部リスト内に組込まれた後に、該内部リストは図４のステップ７６において最適化された順番で該オブジェクトの全てを書込むために使用する準備がなされる。ステップ１１２は図７を参照してより詳細に説明する。次いで、このプロセスは１１４において完了する。
【００７５】
図６は図５のステップ１０４を示したフローチャートであり、その場合に、検索された共用オブジェクトが処理される。処理１０４は１１６において開始し、且つ、ステップ１１８において、本プロセスは、検索されたオブジェクトが頁Ｐ上の第一共用オブジェクトであるか否かをチェックする。このことは、頁Ｐが既に共用頁リスト内に存在するか否かをチェックすることによって決定される。頁Ｐが共用頁リスト内に既に存在する場合には、共用オブジェクトは、既に、頁Ｐによって参照されており、且つステップ１２２が実行される。頁Ｐが共用頁リスト内に存在しない場合には、ステップ１２０において、頁Ｐが共用頁リストへ付加される。
【００７６】
図６ａは図示例の共用頁リスト１３６の模式的概略図である。このリストは図６のプロセス１０４期間中に作成され且つ参照される。前述したように、このリストはリンクされたリストとして与えられ、その具体例は当業者にとって公知である。該リストのその他の具体例を与えることも可能である。一つの頁は頁ノード１３８によって表わされ、その場合に、各頁ノードは、例えば、ソーティングした頁の数字順で、別の頁ノードへリンクされている。頁ノードがリスト１３６内に存在する場合には、その頁は、図６のステップ１１８及び１２０によって決定されるように、共用オブジェクトを包含している。
【００７７】
再度図６を参照すると、該オブジェクトが頁Ｐによって参照された第一共用頁ではない場合には、又はステップ１２０の後に、ステップ１２２が実行される。ステップ１２２において、本プロセスは、検索されたオブジェクトが頁Ｐのオブジェクトリスト内に存在するか否かをチェックする。図６ａに示したように、オブジェクトリスト１４０は、その頁が共用オブジェクトを参照する場合には、頁ノード１３８によって参照される。オブジェクトリスト１４０は多数のオブジェクトノード１４２を包含しており、その各々は対応する頁ノードの頁によって参照される共用オブジェクトを表わす。ステップ１２２において、本プロセスは、検索された共用オブジェクトが既に頁Ｐのオブジェクトリスト１４０内に存在するか否かをチェックする。この様な条件が存在する場合には、それは、該共用オブジェクトに対する複数回の参照が頁Ｐ上に存在していることを表わす。
【００７８】
一つの頁上の共用オブジェクトの第一インスタンス（例）のみが本発明にとって必要であるに過ぎないので、以下に説明するように、次いでステップ１２６が実行される。しかしながら、検索されたオブジェクトが頁Ｐのオブジェクトリスト１４０内に存在しない場合には、ステップ１２４において、オブジェクトノード１４２がオブジェクトリスト１４０へ付加され、且つ共用ＩＤがオブジェクトノードのＩＤフィールド１４４へ付加される（オブジェクトノード１４２も、以下に詳細に説明するように、フラクション（小数）フィールド１４６を有している）。「共用ＩＤ」は、共用頁リスト内のオブジェクトを固有的に識別するオブジェクトに対する識別子である。共用ＩＤは、数字ｎとすることが可能であり、それは共用オブジェクトが該文書内において見つかったｎ番目の共用オブジェクトであることを表わしている。例えば、「０」の共用ＩＤは、あるオブジェクトが該文書内において見つかった第一共用オブジェクトであることを表わし、「１」は見つけられた第二共用オブジェクトであり、以下同様である。共用ＩＤはオブジェクトＩＤと同一ではない。なぜならば、逐次的なオブジェクトＩＤであるｍは、そのオブジェクトが該文書におけるｍ番目（共用か又は非共用）オブジェクトであることを表わすからである。オブジェクトノード１４２及び共用ＩＤは、当然に、共用ＩＤに従うソーティングした数字順でオブジェクトリスト１４０へ付加される。
【００７９】
次いで、ステップ１２６が実行され、その場合に、本プロセスは、検索されたオブジェクトが元の頁上の第一共用オブジェクトであるか否か、即ち該元の頁が既に共用頁リスト１３６内に存在するか否かをチェックする。「元の頁」はそれも該共用オブジェクトを参照するその他の前の頁である。例えば、検索された共用オブジェクトが強制された共用オブジェクト（例えば、フォント）である場合には、元の頁が存在しない場合がある。
【００８０】
本プロセスは、例えば、各オブジェクト及び各オブジェクトが位置している頁を記録するテーブルをチェックすることによって元の頁を決定する。検索されたオブジェクトが元の頁上の第一共用オブジェクトではない場合には、ステップ１３０が実行され、それについては後に詳細に説明する。検索されたオブジェクトが元の頁上の第一共用オブジェクトである場合には、ステップ１２８において、元の頁に対応する頁ノード１３８が共用頁リストへ付加される。頁番号による数字的にソーティングした順番で新たなノードをリスト１３６へ付加させることが可能である。例えば、ノード１４２ａによって指定された共用オブジェクトが頁９上で見つけられ、且つ「１」の共用ＩＤが割当てられる。頁１も同一のオブジェクトを有しており、従って、ノード１４２ｂが頁１に対する頁ノードのオブジェクトリスト１４０へ付加される。次いで、このプロセスはステップ１３０へ進行する。
【００８１】
ステップ１２６における判別が否定である場合、又はステップ１２８の後に、ステップ１３０が実行され、その場合に、本プロセスは、検索されたオブジェクトが元の頁のオブジェクトリスト１４０内に存在するか否かをチェックする。このステップは、上述したステップ１２２と実質的に同様である。そのオブジェクトが既に元の頁のリスト１４０内に存在する場合には、本プロセスは以下に説明するステップ１３３へ進行する。そのオブジェクトが元の頁のリスト１４０内に存在しない場合には、ステップ１３２において、検索されたオブジェクトに対するオブジェクトノード及び共用ＩＤが元の頁のオブジェクトリスト１４０へ付加される。本プロセスは、次いで、ステップ１３３へ進行する。
【００８２】
ステップ１３３において、本プロセスは、検索されたオブジェクトが強制された共用オブジェクトであるか否か、又はそのオブジェクトが頁Ｐのオブジェクトリスト内に存在しないか否かをチェックする。何れかの条件が成立する場合には、ステップ１３１が実行され、その場合に、図５のステップ１０４及び１０６が、検索されたオブジェクトによって参照されるチルドレンオブジェクトの全て（存在する場合）であってその他のチルドレンのチルドレンオブジェクトなどを包含するチルドレンオブジェクトの全てに対して反復的に実行される。このステップは、ペアレントを共用するオブジェクトのチルドレンオブジェクトを強制的に共用させる。この様なチルドレンオブジェクトは、例えば、カスタムフォントなどに対するキャラクタの幅を包含することが可能である。ステップ１３１の後に、又はステップ１３３の何れの条件も成立しない場合には、本プロセスはステップ１３４において完了する。
【００８３】
ステップ１１８−１２４は、ファンクションコールを介してファンクションへパスされるオブジェクトを検査するファンクションとして実現することが可能である。この同一のファンクションは、２番目のコールを介して元の頁を該ファンクションへパスすることによってステップ１２６，１２８，１３０，１３２を実行することが可能である。図７は図５のステップ１１２を例示したフローチャートであり、その場合に、共用頁リストが完了され且つ共用され且つその他のオブジェクトが内部リストへ付加される。プロセス１１２は１５６において開始する。ステップ１５８において、共用頁リスト１３６における次の頁ノード１３８が検索される。これがステップ１５８を実行する最初である場合には、リスト１３６内の第一頁ノードが検索される。次のステップ１６０において、本プロセスは、全ての頁ノードが検査されたことを表わすためにヌル又はリストの終わり記号がステップ１５８において検索されたかなどを検査するために、リスト１３６内にさらなる頁ノードが存在するか否かを決定する。検査すべきさらなる頁ノードが存在しない場合には、ステップ１７０が実行され、それを以下に詳細に説明する。新たな検査されていない頁ノードがステップ１５８において検索された場合には、ステップ１６２において、選択された頁に対する共用オブジェクトでもある資源オブジェクトの名称が共用オブジェクトリスト１４８を使用して資源ディクショナリ（辞書）から検索される（資源辞書は、典型的に、各頁オブジェクトと関連している）。ダウンロードプロセスにおいてインターリーブされることを所望するあるタイプの資源オブジェクトのみが検索される。図示例においては、これらの所望の資源オブジェクトはフォントオブジェクト、カラーマップオブジェクト、及び（共用）画像オブジェクトを包含している。各資源オブジェクトは、典型的に、「名称（ｎａｍｅ）」を有しており、それは該オブジェクトに対する識別子であり、従って、それは実際のオブジェクトデータに対して参照することが可能である。例えば、フォントオブジェクトは例えば「ｆ１」又は「ｆ２」のような名称を有することが可能であり、それは「ヘルベチカ（Ｈｅｌｖｅｔｉｃａ）」、「タイムズ（Ｔｉｍｅｓ）」などのフォントに対する特定のフォントオブジェクトを参照する。
【００８４】
次のステップ１６４において、本プロセスは選択した頁の頁内容部分における検索した共用資源オブジェクト名称に対するサーチを行う。例えば、頁９が選択された頁である場合には、本プロセスは頁９の頁内容へアクセスし且つステップ１６２において見つけられた資源辞書から名称（例えば「ｆ１」）をサーチする。ステップ１６６において、各見つけられた資源オブジェクトに対して、これが該頁上の資源オブジェクトの最初に見つかった事象である場合には、その見つかった資源オブジェクトを包含する頁内容のフラクション（ｆｒａｃｔｉｏｎ）番号がオブジェクトリスト内に書込まれる。例えば、一つのフラクションが頁内容の寸法の１／８であるようにフラクションを１／８を基礎とした寸法に指定することが可能であり、且つ第一フラクションに対するフラクション番号は０（ゼロ）であり、該頁の頁内容データの０／８乃至１／８を表わしている。より大きな又はより小さなフラクションをその他の実施例において指定することが可能である。フラクション寸法は、インターリーブする場合に使用され、且つ後に説明するように、その内容データによって参照される共用データがダウンロードされる前に、ダウンロードされるべき所望の量の頁内容データに依存する。資源オブジェクトの名称が頁内容内に見つけ出される場合には、本プロセスは該資源オブジェクトに対する参照又はポインタを見つけ出す。例えば、頁内容におけるテキストは、フォントオブジェクトを参照する識別子を包含する場合がある。次いで、該資源オブジェクトが指名された頁内容の特定のフラクションが現在の頁ノードのオブジェクトリスト１４０へ書込まれる。このフラクション（小数又は分数）番号はオブジェクトノード１４２のフラクションフィールド１４６内に書込まれ且つ該フラクション即ち分数の分子であり、その分母は文書ファイルヘッダ内において見つけ出すことの可能な所定の数である。例えば、図６ａにおけるリスト１３６のオブジェクトノード１４２ｃの場合には、「７」のフラクション番号（分子）は、この共用オブジェクトが頁２２の頁内容データの７／８乃至８／８部分において発生したことを表わしており、即ち、頁内容が八つの部分に分割された場合には、該オブジェクトは最後の８番目に発生し、その場合に「８」が所定の分母である。フラクション番号は、同様に、サーチした各資源名称に対して同様に書込まれ且つ該頁上に見つけ出される。又、ペアレント共用オブジェクト内に書込まれたフラクション番号は、更に、これらのペアレント共用オブジェクトの任意のチルドレンオブジェクト内に書込まれ（チルドレンオブジェクトは図６のステップ１３１において説明している）、従ってこれらのチルドレンはペアレントオブジェクトとインターリーブさせることが可能である。一実施例においては、画像資源オブジェクトが自動的に高いフラクション番号が割当てられ、従って以下に説明するように、画像はインターリーブされたダウンロードプロセスにおける後の方にダウンロードされる。図１３ａを参照して説明するフォントの段階的レンダリングの方法を使用する実施例においては、フォント記述子オブジェクトが正しいフラクション番号が与えられ、従って、それらはインターリーブされたダウンロードプロセスにおけるフォント参照近くでダウンロードされ、一方フォントデータオブジェクトは高いフラクション番号が与えられ、従ってそれらは頁の終わりに向かってダウンロードされる。
【００８５】
更に、ステップ１６６において、各オブジェクトリスト１４０のノードを再度順番付けすることが可能であり、従って共用オブジェクトは該頁上において最初の事象から最後の事象への順番で与えられる。選択した頁上の他の共用オブジェクトから別個に第一事象から最後の事象へ画像オブジェクトが順番付けされている実施例においては、これらは該頁に対するオブジェクトリストの終わりに付加させることが可能である。
【００８６】
ステップ１６８において、各見つけられた資源オブジェクトと関連する内容フラッグが共用オブジェクトリスト１４８内にセットされる。図５ａに示したように、フラッグフィールド１５４は各共用オブジェクトに対して内容フラッグを保持する。このフラッグは、該共用オブジェクトがステップ１６６において見つけられた場合に、「１」に設定される。コンテンツフラッグは後に説明するように、最適化したファイルがダウンロードされる場合に、どの共用オブジェクトが頁内容とインターリーブされるべきであるかを表わす。内容フラッグをセットしていない共用オブジェクトは、図１０のダウンロードプロセスにおいてインターリーブされることはない。（例えばユーザが定義したオブジェクト、プロクセット（ｐｒｏｃｓｅｔ）、及び資源辞書などの非内容オブジェクトは、共用されている場合でも、内容フラッグをセットすることはない。）ステップ１６８の後に、本プロセスはステップ１５８へ復帰し、共用頁リスト１３６から別の頁ノード１３８を検索する。全ての頁ノードを検査すると、本プロセスはステップ１６０からステップ１７０へ進行し、そこで共用オブジェクトリスト１４８からの共用オブジェクトＩＤが内部リストの終わりにアテンド即ち付けられる。ステップ１７１において、ブックマーク内部リスト上のブックマークオブジェクト、頁アイコン内部リスト上の頁アイコン、頁ツリー内部リスト上の頁ツリーオブジェクト、及び任意のその他の必要とされるオブジェクトが主内部リストの終わりに付加される。次のステップ１７２において、内部リストの前部部分（即ち、共用オブジェクト部分の前の部分）における二重の共用オブジェクトＩＤが内部リストから取除かれる。共用オブジェクトリスト１４８における共用オブジェクトＩＤが内部リストの前部部分におけるオブジェクトＩＤと比較され、且つ内部リストから一致するものが取除かれる。更に、ステップ１７２において、一つの頁に対するオブジェクトの総数が、その様にして取除かれた一致したオブジェクトの量だけ減少される。ステップ１７４において、共用オブジェクトＩＤをステップ１６８においてセットした内容フラッグを使用して再度順番付けすることが可能であり、従って頁内容によって参照される共用オブジェクトが最初の順番とされる。この順番は、内容共用オブジェクトをグループ化することを可能とし、且つ頁オフセットテーブルが、共用オブジェクトが再度順番付けされなかった場合よりも必要とする格納空間をより小さいものとすることを可能とする。次いで、本プロセスは１７６において完了する。
【００８７】
図８は図４のステップ８２を示したフローチャートであり、その場合に、本発明の頁オフセットテーブルが展開され且つ最適化された文書ファイル内に格納される。図８のプロセスは頁オフセットテーブルの一例を発生し、それは別の実施例においてはその他のフォーマット及びフォームを有することが可能である。本プロセスは１８０において開始し、且つステップ１８２において、本プロセスはバイト又は同様の内容の大きさにおいて各頁の長さを決定する。このことは、一つの頁上のオブジェクトの数を検査し且つ該頁上の第一オブジェクトと次の頁の第一オブジェクトとの間のバイトオフセット量を決定することによって決定することが可能である。ステップ１８４において、ハウスキーピング情報が頁オフセットテーブル６８内に書込まれる。プロセス８２によって参照されるように頁オフセットテーブル６８の一例を図８ａに示してある。ハウスキーピング情報は、電子文書における頁数、単一の頁上のオブジェクトの最後の番号、相互参照テーブルの位置（例えば、ファイルの始めからバイトにおけるオフセット）、及び該文書内の共用オブジェクトの数などを包含することが可能である。このハウスキーピング情報は、図１０のダウンロードプロセスにおいて詳細に示されるように、該文書の部分部分をダウンロードすることを助けるために頁情報を作成するために使用される。
【００８８】
該ファイル内に共用オブジェクトが存在する場合には、共用オブジェクトハウスキーピング情報がステップ１８４において頁オフセットテーブルへ書込まれる。共用オブジェクトハウスキーピング情報は、該文書内の非内容共用オブジェクトの数、共用オブジェクトの最小寸法、及びフラクション寸法（例えば、３ビット）に対する被除数の大きさなどを包含している。
【００８９】
ステップ１８８において、ステップ１８０において決定されるような頁長さ情報及び図７のステップ１７０及び図５のステップ１１０において決定されるような各頁上のオブジェクトの数は、図８ａにおける情報１８９のように、圧縮され且つ頁オフセットテーブルへ書込まれる。ステップ１９０において、該文書内の各共用オブジェクトに対して、共用オブジェクトの長さ（例えば、オフセット比較によって決定されるバイトにおいて）且つ共用オブジェクトに対するシグナチャ（署名）（適用可能な場合）が頁オフセットテーブル内に格納される。シグナチャ即ち署名は、ダウンロードプロセスにおいて共用オブジェクトのキャッシングを安全に使用することを可能とする識別子である。シグナチャは異なるものであるが同一の名称で存在する可能性のある誤った資源（例えばフォント）を回避するために使用される。シグナチャは、異なる資源に対して異なる値を与える十分に高い蓋然性で任意の方法によって該資源自身から計算することが可能である。従って、共用オブジェクトは、同一か又はたとえ異なる文書ファイルにおける頁内容によってアクセスされるか又は参照される場合には、それが最初に使用するためにダウンロードされた後にディスクキャッシュにおいて格納させることが可能である。
【００９０】
次に、ステップ１９２において、該文書の各頁Ｐに対して、共用オブジェクトフラッグ、頁Ｐ上の共用オブジェクトの数、共用ＩＤ、近似的な頁内容フラクション情報、及びフラクション寸法のために使用される除数値などの付加的な情報が頁Ｐに対する圧縮のために決定され且つ回収される。共用オブジェクトフラッグは、頁Ｐが共用オブジェクトを参照することを表わす。共用オブジェクトＩＤはその頁によって使用されている共用オブジェクトに対して格納される。近似的内容フラクション情報は、頁長さのフラクション即ち一部として頁内容オブジェクトの寸法から推定され、例えば、この近似的なフラクションは「１／８」として指定される。除数値は、例えば、該フラクション寸法が１／８を基礎とするものとして決定される場合には「８」である。ステップ１９２における情報が該文書の各頁に対して決定された後に、本プロセスはステップ１９４へ進行し、そこで全ての頁に対する情報を公知の技術によって圧縮し且つ最適化した文書ファイル６２における頁オフセットテーブルへ書込むことが可能である。次いで、本プロセスは１９６において完了する。
【００９１】
頁オフセットテーブル６８は、意図的に寸法が小さく且つコンパクトなものとされており、その場合に、データは可能である場合には圧縮される。頁オフセットテーブルは最適化されていない文書において通常ダウンロードされることのない付加的なデータであるので、該付加的なデータが可及的に小さなものであり、従ってユーザが何らエキストラな時間の長さに亘って待機する必要性がないものであることが望ましい。更に、頁オフセットテーブルはコンパクトなものであるから、それは例えばＰＤＦ文書内に通常含まれている「頁ツリー」のような他のより長い構造のものよりもダウンロードプロセスにおいて「気が付く可能性」（時間遅延を介して）はより少ない。
【００９２】
別の実施例においては、頁オフセットテーブルは異なる又は付加的なデータを包含することが可能であり、又は該データは異なるフォーマットで格納することが可能である。例えば、共用頁リスト１３６、内部リスト及び発生されたその他のリストを幾つかの実施例において頁オフセットテーブルにおいて直接的に（且つ非効率的に）格納することが可能である。
【００９３】
図９は図４のステップ８４を示したフローチャートであり、その場合に、電子文書の頁１に対するレンジテーブル６６が最適化させた文書ファイルの始めに書込まれる。該レンジテーブルは情報を供給し、従って該電子文書の頁１データは最適化させたファイル内に位置させることが可能であり且つ迅速にダウンロードし且つ表示させることが可能である。頁１が「第一頁」であるものと仮定しており、即ち頁をベースとした電子文書のダウンロードを開始する場合に、デフォルトとして最初に表示されることが所望されるものである。その他の実施例においては、異なる頁を表示されるデフォルトの最初の頁とすることが可能である。
【００９４】
本プロセスは２００において開始する。ステップ２０２において、ハウスキーピング情報がレンジテーブルへ書込まれる。このハウスキーピング情報は、上述した頁オフセットテーブルを参照して説明したハウスキーピング情報と類似している。図９ａは本発明のレンジテーブルの模式的概略図を示している。該ハウスキーピング情報は第一頁に対してダウンロードされるデータのレンジ（範囲）の数を包含している。これらのレンジは、頁内容及び共用オブジェクトのインターリーブされる部分を包含することが可能である（後述する）。共用頁リスト１３６は、オブジェクトノード１４２におけるフラクション番号を検査し且つ適宜共用オブジェクトを頁内容とインターリーブさせることによって、どの様にして共用オブジェクトが頁内容とインターリーブされるべきかを決定するために参照することが可能である。別法として、インターリーブ動作が適用されず、且つ第一レンジは全体的な頁内容オブジェクト５６であり、一方任意の付加的なレンジは頁内容によって参照される共用オブジェクトである。現在のファイルにおけるレンジテーブル／頁オフセットテーブルに対するバージョン番号もハウスキーピング情報として格納することが可能である。更に、各レンジに対するシグナチャフラッグは、該レンジ（オブジェクト）がシグナチャを有しているか否かを表わすことが可能であり、該シグナチャはレンジテーブル内にリストすることも可能である。シグナチャは上述したように、共用オブジェクトをキャッシングするために使用することが可能である。
【００９５】
ステップ２０４において、頁オフセットテーブル６８に対するポインタがレンジテーブル内に書込まれる。このポインタは頁オフセットテーブルを最適化したファイル内に位置させ且つレンジテーブル及び第一頁がダウンロードされた後にダウンロードさせることを可能とする。次のステップ２０６において、本プロセスは、全体的な第一頁寸法が所定の最小寸法未満であるか否かをチェックする。該頁が最小寸法より小さい場合には、頁内容及び共用オブジェクトのインターリーブ処理は望ましいものではない。なぜならば、頁内容は小さすぎ、インターリーブ処理によってダウンロード速度における利点が得られるものではなく、実際に、ダウンロード速度は、その頁が最小寸法より小さい場合により遅い場合があり、且つインターリーブ処理が与えられると、ディスプレイスクリーン上でその頁をユーザが観察するのにより長い待機時間を発生させる。頁内容及び共用オブジェクトのインターリーブ処理は図１２を参照して詳細に説明する。例えば、最小寸法の４キロバイトを特定することが可能である。
【００９６】
その頁が最小寸法を超えるものである場合には、ステップ２０８において、頁内容のオフセット及び長さが、共用オブジェクトのオフセット及び長さとインターリーブされるレンジテーブル内に書込まれる。即ち、該頁内容のフラクション即ち一部が一つの共用オブジェクトに対する参照を包含する場合には、参照される共用オブジェクトは、レンジテーブルにおける該頁内容のそのフラクションの後の順番とされる。ステップ２０２におけるハウスキーピング情報において決定されるインターリーブされるレンジを使用することが可能である。次いで、本プロセスは２１０において完了する。
【００９７】
該頁がステップ２０６において最小寸法より小さい場合には（又は、異なる理由によりインターリーブが望ましくない場合には）、ステップ２１２において、その全体的な頁内容に対するオフセット及び長さがレンジテーブルへ書込まれ、従って一つのオフセット及び一つのレンジが頁内容を記述する。ステップ２１４において、共用オブジェクトに対するオフセット及び長さ、及び、一実施例においては、これらの共用オブジェクトに対して必要とされる相互参照テーブルエントリに対するオフセット／長さがレンジテーブルへ書込まれる。それらは、例えば、それらがオブジェクトリスト１４０内に格納された順番で書込むことが可能である。次いで、本プロセスは２１０において完了する。
【００９８】
一方、レンジテーブルにおける共用オブジェクトオフセット及び頁内容の配列を調節するためにその他の条件をチェックすることも可能である。例えば、頁内容オブジェクトが寸法において３キロバイト未満である場合には、共用オブジェクトオフセットを、インターリーブなしで、頁内容データの後に配置させることが可能である。
【００９９】
最適化させた文書ファイルのダウンロード
図１０はホストコンピュータからクライエントコンピュータシステム１０への本発明の最適化させた頁をベースとした文書をダウンロードさせるプロセス２２０を示したフローチャートである。ユーザが、一つの頁又は該文書の一つの頁の一部を表示することの可能なビュアにおいて該文書を観察することを所望するものと仮定する。現在のプロセスにおいて記述した「ファインダ（ｆｉｎｄｅｒ）」を該ビュア内に、又はコンピュータシステム１０上で該ビュアと同時的に稼動する別の手順又はプログラム命令として実現することが可能である。
【０１００】
本プロセスは２２２において開始する。ステップ２２４において、本プロセスは、ユーザがホスト（供給源）サーバ又はコンピュータ上で本発明にとって適宜位置されている文書を観察することを要求したか否かをチェックする。文書に対する要求がなされていない場合には、本プロセスはこの様な要求を待機する（コンピュータシステム１０又はビュアは、例えば局所的な文書を観察するなどのその間ユーザに対してその他のタスクを実施することが可能である）。ユーザがダウンロードされた文書を観察することを要求する場合には、該ビュアはステップ２２６においてホストコンピュータへ接続して、最適化させた文書ファイルに対するヘッダ及びレンジテーブル６６をダウンロードさせる。該ヘッダは、特定のフォーマット（又はＰＤＦ）で該ファイルを指定する情報を有しており、且つレンジテーブルが存在することは、そのファイルが最適化されたファイルであることを表わすために使用することが可能である。ヘッダ及びレンジテーブルは、該ファイルの始めに位置させることが可能であり、従ってそれらは最初にダウンロードさせることが可能である。その他の必要とされる情報もこの時にダウンロードされ、例えば、ＰＤＦビュアは該ファイルの終わりに位置しているファイルの内容に対するポインタを必要とする場合がある。第一頁の内容が最適化されているファイルにおけるインターリーブされた順番で格納されている別の実施例においては、レンジテーブルをダウンロードすることは必要ではなく、且つステップ２２６を省略することが可能である。
【０１０１】
ステップ２２７において、本プロセスは、該文書の第一頁がステップ２２４においてユーザによって観察すべく要求されたか否かをチェックする。本発明の一実施例においては、ユーザが最初に文書を観察することを要求する場合には、該第一頁はデフォルトとして自動的にダウンロードされ且つ表示される。次いで、ユーザは以下に詳細に説明するように、第一頁をダウンロードした後に所望の頁を要求する。しかしながら、その他のビュア実施例においては、ユーザは、該文書の何れかの部分がダウンロードされる前に、新たな文書の特定の頁を観察することを最初に要求することが可能である。この様な別の実施例においては、ステップ２３１が実現され、それは後に説明する。第一頁が常に最初に表示されるか、又はユーザが第一頁を要求する場合には、ステップ２２８が完了する。
【０１０２】
ステップ２２８において、第一頁データ及び頁オフセットテーブルがレンジテーブルを使用して別の接続（又は別のトランズアクション）においてビュアによってソースファイルからダウンロードされ、且つ第一頁が表示される。この第一頁データは頁内容及び該第一頁の共用オブジェクトを包含している。第一頁に対する相互参照テーブルの部分もこの時にダウンロードされる。第一頁の共用オブジェクト及び頁内容は、図９を参照して説明したように、レンジテーブルにおけるオフセットを使用して既にインターリーブされている場合がある。従って、１実施例においては、頁内容の一部がダウンロードされ、その後にその部分によって参照される任意の共用オブジェクトが続き（且つこれらの共用オブジェクトに対する相互参照データ）、そのことはその部分をすぐさまユーザに対して表示させることを可能とする。従って、ユーザは第一頁の内容の少なくとも幾らかを観察するために殆ど待機時間を経験することはない。頁オフセットテーブル６８は、第一頁がダウンロードされた後にレンジテーブル６６におけるポインタを使用してこの接続（又はトランズアクション）期間中にダウンロードさせることが可能である。従って、頁オフセットテーブルは、例えば、該文書内のその他の頁をランダムにアクセスし且つ観察することが可能であるように、第一頁のダウンロードの後に（又は、別法としては、前に）すぐにダウンロードプロセスにおける早期にダウンロードさせることが可能である。幾つかの実施例においては、文書をダウンロードする場合に第一頁を表示させないようにビュアを選択することが可能である。
【０１０３】
次のステップ２３０において、頁オフセットテーブルを検査して頁情報を決定する。頁オフセットテーブルを検査し且つ処理するためにファインダーがその責務を担うことが可能であり、その場合に、ファインダーは頁オフセットテーブルにおける情報を使用して頁情報を決定する。この頁情報を決定するプロセスについては図１１を参照してより詳細に説明する。次いで、本プロセスはステップ２３４へ進行する。
【０１０４】
ステップ２３４において、本プロセスは、ユーザがビュア内の文書の特定の頁を観察することを要求しているか否かをチェックする。ユーザは、ステップ２２６，２２８，２３０（又はステップ２２６，２３１，２３２）において部分的にダウンロードされた現在の文書又は異なる文書（後述する）の頁を要求することが可能である。例えば、現在の文書の頁を要求するためには、ユーザは現在の文書の異なる頁を表示するために図２ｂに示したように頁アイコン５１を選択することが可能である。又は、ユーザは現在の文書内の別の頁へのリンクを選択するか、又は図２ａに示したように、ブックマークビュー４５においてリストしたブックマークオブジェクトを選択することが可能である。文書の異なる頁を表示するための要求がなされない場合には、本プロセスはステップ２３４において継続してこのような要求を待機する（ステップ２３４の期間中に、その他のビュア又はコンピュータ機能を実行することが可能である）。現在の文書の要求がなされる場合には、本プロセスは後述するステップ２３６へ進行する。
【０１０５】
ステップ２３４において、ユーザは、未だにダウンロードされていない異なる文書の頁を要求することも可能である。例えば、ビュア内のリンク又はその他の制御を選択して、同一又は異なるホストコンピュータシステム上で使用可能な異なる文書ファイルへのアクセスを与えることが可能である。ユーザがステップ２３４において異なる文書の頁を要求する場合には、本プロセスはステップ２２６へ復帰して、異なる文書の最初の部分をダウンロードさせる。
【０１０６】
プロセス２２０の特定の実施例が、ユーザが新しい文書の特定の頁を選択してダウンロードし且つ観察することを可能とする場合には、ステップ２２７の後にステップ２３１が実行され、尚その文書のどの部分も以前にダウンロードされていない。該文書のヘッダー及びレンジテーブルはステップ２２６においてダウンロードされている。ステップ２３１において、ビュアがホストコンピュータへ接続し（新たな接続が必要である場合）且つ最適化させた文書ファイルから頁オフセットテーブルをダウンロードする。頁オフセットテーブルは文書ファイル内の要求された頁の位置を決定するために必要とされる。ステップ２３２において、上述したステップ２３０（及び図１１を参照して説明した）ものと同様に、頁情報が該文書に対して決定される。次いで、本プロセスは、以下に説明するように、ステップ２３６へ進行する。
【０１０７】
ステップ２３６において、ビュアがファインダーから頁オフセットを要求し、従ってビュアは適宜のデータをダウンロードすることが可能である。ステップ２３８において、ファインダーがステップ２３０又はステップ２３２（図１１に示したように）において作成された頁情報の頁開始オフセットテーブルを検討して、ユーザによって要求された頁に対する第一オフセットを決定する。一方、ビュアは頁ではなく特定のオブジェクトを要求することが可能であり、且つファインダーは頁上の第一オブジェクトのテーブル（これもステップ２３０又は２３２において作成されている）を検討し、どのオフセットにおいて該オブジェクトが文書ファイル内に位置されるかを決定することが可能である。該頁に対して見つかった第一オフセットはこのステップにおいてビュアへ返される。
【０１０８】
ステップ２４０において、ファインダーは例えば付加的な頁内容及び該頁内容に対する共用オブジェクト等の要求された頁を完全にダウンロードし且つ表示するために必要とされるデータの付加的なレンジを決定する。ファインダーはステップ２３０又は２３２において発生される頁情報からこれらの付加的なレンジを決定する。付加的なレンジのデータが必要とされる場合には（典型的な場合のように）、頁情報は適宜のレンジが最適化された文書ファイル内のどこに位置しているかを表わす。ステップ２４２において、ビュアはホストコンピュータへ接続し（新たな接続が必要とされる場合）、ファインダーによって返された第一オフセットに位置されている要求された頁のデータをダウンロードする。１実施例においては、ビュアは１つの接続において、例えば１キロバイト（１Ｋ）等の所定量のデータをダウンロードする。
【０１０９】
ステップ２４４において、ファインダーは、ビュア接続期間中に、要求された頁に対する付加的なレンジのデータを要求する。ファインダーは、この要求における頁内容データの部分部分における特定の共用オブジェクトをインターリーブさせてユーザに対して頁データのより高速の表示を与えることが可能である。ステップ２４４は図１２を参照してより詳細に説明する。更に、且つオプションとして、ファインダーは、図１３ａ，１３ｂ，１３ｃを参照してより詳細に説明するように、例えばフォント及び画像等のある種の大きなオブジェクトを要求することを遅延させることが可能である。
【０１１０】
ステップ２４６において、ファインダーによって要求された付加的なレンジのダウンロードは、「バックグラウンド」プロセスとして進行し、一方ビュアは既に受取ったデータを処理する。少なくとも幾らかの頁データを表示するのに充分なデータがビュアによって受取られた場合には、そのデータが表示される。付加的なオフセットレンジは、ビュアによって要求される前に、例えばＲＡＭ及び／又はディスク等のローカルなバッファ内に格納することが可能である。ビュアが第一ブロックの後のデータを要求する場合には、それはソースファイルからではなくローカルキャッシュからデータを受取る。
【０１１１】
文書ファイル内のその他のオブジェクトは適当である場合には後の時間にダウンロードさせることが可能である。例えば、頁アイコン又はブックマークオブジェクト等の特別オブジェクトは、ユーザがビュア内の適宜のビューへ変更し、ブックマークビュー内の更なるブックマークオブジェクトを見るためにスクロールする等した場合に、ダウンロードさせることが可能である。ビュアがこのようなオブジェクトへアクセスすることを所望する場合には、頁ツリーオブジェクトをダウンロードさせることが可能である。
【０１１２】
ステップ２４７において、本プロセスは、例えば、ＲＡＭ１６等のローカルメモリ又はハードディスク又はその他の格納装置上で実現されている頁キャッシュにおける要求された頁を配置させる。このことは、ユーザが後の時間にその頁を観察することを所望する場合には、前にダウンロードした頁をキャッシュから迅速に検索し且つ表示させることを可能とする。又、ステップ２４７において、本プロセスは、ダウンロードされている適宜の共用オブジェクト（存在する場合には、それらのシグナチャと共に）を、例えば、ＲＡＭ１６等のローカルメモリ又はハードディスクにおいて実現されている「共用オブジェクトキャッシュ」内へ配置させることが可能である。これらのキャッシュされた共用オブジェクトは、これらの共用オブジェクトを参照する現在の文書のその他の頁と共に他の文書の頁内容をダウンロードし且つ表示する場合に使用することが可能である。従って、文書ファイルからのキャッシュした共用オブジェクトの冗長コピーのダウンロードは回避され、ダウンロードプロセスを高速化させることが可能である。
【０１１３】
１実施例においては、共用オブジェクトを複数回のダウンロードにわたり又はコンピュータシステム１０がパワーダウンされている場合であっても（バッテリバックアップＲＡＭ又はその他の非揮発性格納装置を使用して）共用オブジェクトをキャッシュ内に格納することが可能である。次いで、本プロセスは２４８において完了する。
【０１１４】
本発明のダウンロードプロセスは、ユーザによって所望される特定の頁を、該文書内のその他の頁をダウンロードすることなしに、ダウンロードさせることを可能とする。このことは、より高速なダウンロードを可能とする。何故ならば、その頁に対するデータのみがダウンロードされ、文書ファイル全体がダウンロードされるわけではないからである。更に、頁オフセットテーブルを使用して、該文書の新たに所望されランダムにアクセス可能な頁を容易にダウンロードすることが可能であり、そのことは、例えば「次の頁を表示」又は「頁番号Ｘを表示」等の簡単なコマンドによって文書全体が容易に入手可能であり且つアクセス可能であることの幻想をユーザに与える。
【０１１５】
従来のプロセスにおいては、最初の１Ｋ部分（又はどのような大きさの部分が使用される場合であっても）を超える頁に対する付加的なデータがダウンロードされるべき場合には、付加的な接続が各付加的な１Ｋ部分に対してなされねばならず、そのことは頁データを表示する場合に遅延を発生する場合がある。ネットワークを介してホストコンピュータへ接続することは時間のかかるプロセスとなる場合がある。何故ならば、ホストをネットワーク上で探さねばならず且つ適宜のハンドシェーク信号が典型的に送られ且つ受取られねばならず、且つホストコピュータ（サーバー）がビジーである場合があるからである。然しながら、本発明においては、ファインダーが、ビュアが第一レンジを要求しているのと同一の接続期間中に付加的なレンジを要求し、該付加的なレンジをバックグラウンドプロセスとしてダウンロードし、且つ該付加的なレンジをローカルバッファ内に格納する。これらの付加的なレンジは、ビュアが付加的な１Ｋレンジを要求する場合に、ビュアに対してバッファから直接的に供給することが可能である。従って、頁に対する更なるデータをダウンロードするために、後の時間において、ホストに対する付加的な接続が必要とされることはない。本発明におけるホストへの複数回の接続を回避することにより、頁データがユーザに対してより迅速にダウンロードされ且つ表示される。
【０１１６】
類推として、この単一接続ダウンロードプロセスは、食糧雑貨品目を購入するために食糧雑貨店へ出向き、且つ第一回の買い物で購入しなかった品目を購入するために複数回の買い物に出向く必要性なしに、１回の買い物で必要な品目全てを購入することと比較することが可能である。複数回の買い物は、単一の買い物の場合より時間的に著しく効率が悪い。図１４を参照して説明する別の実施例においては、頁に対する１つのトランズアクションで複数個のレンジのデータをファインダーによって要求することが可能であり、複数回のトランズアクションのオーバーヘッドを回避している。
【０１１７】
図１１は図１０のステップ２３０を示したフローチャートであり、その場合に、ファインダーが頁オフセットテーブルから頁情報を発生する。該頁情報は、ビュアが頁データをダウンロードする場合に、頁データの付加的なレンジを要求するためにファインダーによって使用されるべきものである。本プロセスは２５０において開始し、且つ、ステップ２５２において、頁開始オフセットテーブルが頁オフセットテーブルにおけるデータから発生される。該頁開始オフセットテーブルは、電子文書における各頁の頁内容に対して、例えばバイト単位において、開始オフセットを包含している。より詳細に説明すると、例えば文書内の頁数、１頁上のオブジェクト数、１頁の長さ等の頁オフセットテーブル内の情報は、頁開始オフセットテーブルを作成するために使用される。図１１ａを参照すると、頁開始オフセットテーブル２６４が示されており、その場合には、各エントリ２６６は各頁の内容に対する開始オフセットである。頁内容（及び共用オブジェクト）の長さは、頁開始オフセットと次の頁の開始オフセットとの間の差をとることによって決定することが可能である。何故ならば、頁の全ての内容は図４の最適化したファイル作成プロセスにおいて連続的に配列されているからである。
【０１１８】
次のステップ２５４において、各頁上の第一オブジェクトのオブジェクトＩＤを包含するテーブルが頁オフセットテーブルにおける情報から発生される。このテーブルは頁オフセットテーブルにおける各頁上のオブジェクト数から発生される。この情報は、当業者にとって公知の如く、頁オフセットテーブルにおける４番目のエントリである頁上のオブジェクト数を表わすビット単位での寸法を使用して頁オフセットテーブルから脱圧縮即ち伸張させることが可能である。頁オフセットテーブルにおけるその他の情報は同様に脱圧縮させることが可能である。
【０１１９】
図１１ａに示したように、各頁上の第一オブジェクトのテーブル２６８は、各頁に対するエントリ２７０を有しており、その場合に、該頁上の第一オブジェクトのオブジェクトＩＤが格納される。テーブル２６８のエントリ２７０はテーブル２６４における開始オフセットエントリ２６６の順番及び数に対応しており、従って１つの頁はテーブル２６４又は２６８のいずれかにおけるのと同様にインデックスさせることが可能である。テーブル２６８は、ビュアが頁番号ではなくオブジェクトＩＤに基づいて頁の開始オフセットを要求する場合に、オブジェクトを参照するために使用することが可能である。１つのオブジェクトに対する頁番号はテーブル２６８内において見つけ出すことが可能であり、且つその頁の開始オフセットはテーブル２６４において参照することが可能である。
【０１２０】
ステップ２５６において、共用オブジェクトオフセットテーブルが頁オフセットテーブルから発生される。該共用オブジェクトオフセットテーブルは、文書内の各共用オブジェクトに対して、例えばバイト単位で、開始オフセットを包含している。該共用オブジェクトオフセットは、文書ファイル内に格納されているように共用オブジェクトの順番でこのテーブル内に格納させることが可能である。
【０１２１】
図１１ａに示したように、共用オブジェクトオフセットテーブル２７２は、文書ファイルにおける共用オブジェクト開始オフセットを格納するためのエントリ２７４を有している。該共用オブジェクトオフセットテーブルは、例えば共用オブジェクトの長さ、共用オブジェクトの数、共用オブジェクトの最小寸法、共用オブジェクトが開始する位置（それは、最後の頁オフセット（テーブル２７０から）＋頁オフセットテーブルにおける最後の頁長さから計算することが可能である）等の頁オフセットテーブルにおける情報から発生させることが可能である。
【０１２２】
次のステップ２５８において、共用頁リスト１３６が頁オフセットテーブル情報から発生される。このリスト１３６は、クライエントコンピュータシステム１０の例えばＲＡＭ１６等のメモリ内に格納され、且つ図６ａに示したように実質的に同一のノードを有している。リスト１３６から、ファインダーは、どの頁がどの共用オブジェクトを参照するか、共用オブジェクトが参照される頁内容のフラクション（部分）、及び共用オブジェクトの共用ＩＤを決定することが可能であり、従って共用オブジェクトに対する開始オフセットは共用オブジェクトオフセットテーブル２７２において参照することが可能である。リスト１３６は頁オフセットテーブルにおける共用オブジェクトフラグ、フラクション、及び共用ＩＤから発生させることが可能である。次いで、本プロセスは２６０において示したように完了する。その他の実施例においては、頁情報は異なる態様で組織化することが可能であり、又は頁オフセットテーブルから直接的に使用することが可能である。
【０１２３】
図１２は図１０のステップ２４４に示したフローチャートであり、その場合に、ファインダーはビュアのホストコンピュータとの接続期間中に、要求された頁に対する頁データの付加的なレンジを要求する。本プロセスは２８０において開始する。ステップ２８２において、ファインダーは要求された頁に対してホストコンピュータにおける文書ファイルから頁内容オブジェクトに対する相互参照テーブルデータを要求する。該相互参照データは、要求された頁上の一番目のオブジェクト以外のオブジェクトに対するオフセットをビュアが決定することを可能とする。次のステップ２８４において、本プロセスは、ダウンロードした頁データに関してインターリーブを実施すべきか否かをチェックする。上述した如く、インターリーブは、これらの共用オブジェクトを参照する頁内容データの部分（即ち、「フラクション」）の後にある共用オブジェクトを挿入することである。このことは、頁の部分の表示を高速化させる。何故ならば、頁内容の一部を表示するために必要とされる共用オブジェクトがその部分がダウンロードされた直後にダウンロードされるからである。一方、図１３ａ，１３ｂ，１３ｃを参照して詳細に説明するように、例えば埋め込まれているフォント及び画像等のある大きなオブジェクトの要求は、その他のより小さな頁内容データに対する要求がなされた後になるまで遅延させることが可能である。
【０１２４】
頁データのインターリーブが所望されない場合には、本プロセスは以下に説明するステップ３００へ進行する。頁データのインターリーブが所望される場合には、本プロセスはステップ２８６へ進行し、そこで、ファインダーは、共用頁リスト１３６をチェックすることによって文書ファイル内の頁内容オブジェクトの残存するフラクション（部分）によって参照される更なる共用オブジェクトが存在するか否かをチェックする。存在する場合には、本プロセスはステップ２８８へ進行し、そこで、次の共用オブジェクトが共用頁リスト１３６内の適宜のオブジェクトリスト１４０から検査される。キャッシュが実現される場合には、ステップ２９０が実行され、その場合に、本プロセスは、検査された共用オブジェクトがキャッシュであるか否かをチェックする。例えば、シグナチャ（署名）が使用される場合には、ファインダーはキャッシュ内のオブジェクトのシグナチャを検査した共用オブジェクトのシグナチャと比較する。検査した共用オブジェクトが既にキャッシュ内にある場合には、このオブジェクトは現在のプロセス期間中にダウンロードされることが必要なものではない。
【０１２５】
従って、本プロセスはステップ２８６及び２８８へ復帰して、オブジェクトリスト１４０内の次の共用オブジェクトを検査する。検査した共用オブジェクトがキャッシュ内に存在しない場合には、ステップ２９２が実行され、その場合に、ファインダーは、頁内容の残存部分のスタート（開始）から検査した共用オブジェクトを参照する頁内容のフラクションの終りまでの頁内容データのレンジを要求する。本プロセスは、オブジェクトリスト１４０における検査した共用オブジェクトのフラクションフィールド１４６を検査することによってそのフラクションを決定する（それは、該フラクションの被除数である）。該フラクションの除数は頁オフセットテーブル６８から既知である。頁内容の実際のフラクション寸法（バイト単位）は、頁長さ及び適宜の頁内容フラクション（頁オフセットテーブル内）から適宜の頁内容を派生させ、且つ該適宜の頁内容寸法を該除数で割算することによって計算することが可能である。例えば、フラクション除数として８が使用される場合には、頁内容の次の８番目のものは、検査した共用オブジェクトがこの８番目のものによって参照される場合に、ステップ２９２においてファインダーによって要求される。検査した共用オブジェクトが頁内容の６番目８番目によって参照される場合には、６番目８番目を包含し且つそれまでの全ての頁内容データ（頁内容オブジェクト内）がファインダーによって要求される。従って、オブジェクトリスト内の共用オブジェクトを参照することのない頁内容のフラクションは、オブジェクトリスト内において共用オブジェクトが見つかるまで結合され、その時に、結合したフラクションの全てのレンジに対する要求がホストコンピュータへ送られる。
【０１２６】
オブジェクトリスト１４０における共用オブジェクトは、オブジェクトリスト内のどの共用オブジェクトも単一の頁に関する複数回の参照によって複製されることがないように供給される（図５のプロセス）。従って、１つの共用オブジェクトは１つの頁に対して一度のみダウンロードされる。
【０１２７】
別の実施例においては、ステップ２９０を省略し且つ頁内容の次のフラクションのみを、その次のフラクションがオブジェクトリスト１４０内の共用オブジェクトを参照するか否かに拘らずに、ステップ２９２において要求されることが可能である。その次の要求されたフラクションが「新たな」共用オブジェクト（即ち、以前にダウンロードされたことのない共用オブジェクト）に対する参照を包含するものではない場合には、ステップ２９４（後述する）をスキップすることが可能である。実効的に、このことは、新たな共用オブジェクトが見つかり且つステップ２９４が実行されるまで、ステップ２９２を複数回継続して実行することを可能とする。
【０１２８】
次のステップ２９４において、ファインダーは、ステップ２９２において要求された頁内容データのレンジによって参照されるキャッシュされない共用オブジェクトに対してホストコンピュータから文書ファイルのレンジを要求する（ファインダーは、更に、これらの共用オブジェクトに対して適宜の相互参照テーブル情報を要求する）。ファインダーはステップ２９０において検査した共用オブジェクトに対するデータのレンジを要求し、且つ共用オブジェクトキャッシュ内に存在しておらず且つ要求された頁内容によって参照される付加的な共用オブジェクトに対するレンジも要求する（ファインダーは、このような各付加的な共用オブジェクトに対しキャッシュ内のオブジェクトを比較することが可能である）。
【０１２９】
ファインダーは、共用頁リスト１３６を検査することによって、どの共用オブジェクトがどのフラクションにおいて参照されかを決定することが可能であり、且つ共用オブジェクトに対するオフセットは共用オブジェクトオフセットテーブル２７２から既知である。例えば、図示例においては、ファインダーは、オブジェクトリスト１４０におけるノードのフラクションフィールド１４６を検査し且つ検査した共用オブジェクトと同一のフラクション番号を有する全ての共用オブジェクトに対するレンジを要求することが可能である。ファインダーは、更に、これらの共用オブジェクトを参照する相互参照テーブル５８からの相互参照テーブル情報を要求する。本プロセスは、次いで、ステップ２８６へ進行する。
【０１３０】
注意すべきことであるが、共用画像オブジェクトが共用頁リスト１３６における各オブジェクトリスト１４０の終りに配置されており且つ頁内容の最後のフラクション内に強制される場合には、画像オブジェクトを、全ての頁内容及びその他のインターリーブした共用オブジェクトの後に強制的にダウンロードされる。
【０１３１】
画像オブジェクトの表示に対する別の実施例は、図１３ｃを参照してより詳細に説明する。ステップ２８６において、頁内容オブジェクトの残存フラクションによって更なる共用オブジェクトが参照されない場合には、本プロセスはステップ２９６へ進行し、そこで、ファインダーは、全ての残存する頁内容データを包含するレンジを要求する（要求されていない頁内容が未だに文書ファイル内に残存している場合）。次のステップ２９８において、ファインダーは、その頁に対する内容でない共用オブジェクト及びこれらの共用オブジェクトに対する適宜の相互参照テーブル情報を要求する。上述したように、内容でない共用オブジェクトは、例えばユーザが特定したオブジェクト、共用されることを強制されることのない資源オブジェクト（例えばｐｒｏｃｓｅｔｓ）等及び共用されるオブジェクトを包含することが可能である。これらの内容でない共用オブジェクトは共用頁リスト１３６のオブジェクトリスト１４０において見つけることが可能である。次いで、本プロセスは３０２に示したように完了する。
【０１３２】
ある条件下において、インターリーブが望ましくない場合がある。例えば、頁内容が例えば４キロバイト未満であるような非常に小さい場合には、インターリーブは図９を参照して説明したように、顕著な表示速度の増加を与えるものではない場合がある。インターリーブが所望されない場合には、本プロセスは、ステップ２８４からステップ３００へ移行し、その場合に、ファインダーはインターリーブすることなしに連続する頁内容データの残部を要求し、且つ頁内容オブジェクトの表示のために必要とされる頁内容オブジェクトの後に格納されているその他のオブジェクトも要求する。該「その他のオブジェクト」は、共用オブジェクト、任意の適宜の特別オブジェクト、及び該オブジェクトに対して必要とされる付加的な相互参照情報を包含している。例えば、共用オブジェクトはそれらが頁上で参照される順番に要求されることが可能である。別の実施例においては、共用オブジェクトを最初に要求し、それに頁内容が続くことが可能である。本プロセスは、次いで、３０２において完了する。
【０１３３】
図１３ａを参照すると、ビュアプログラムはオプションとして所望したフォント（例えば、電子文書において特定したエンベディド（ｅｍｂｅｄｄｅｄ）即ち埋め込まれているフォント）がすぐには使用可能でない場合には、置換（代用）フォントを使用してテキストを表示するためにフォントを段階的にレンダリングする方法を使用することが可能である。フォントの段階的レンダリング方法は、例えば、図１０に示したステップ２４２，２４４，２４６に関連して喚起させることが可能である。この方法を使用することは、例えば、ネットワークを介してダウンロードされる電子文書におけるエンベディド即ち埋込み型フォントに関連して有益的なものである。埋込み型フォントは文書の主要部分と同一のファイル内に存在することが必要ではないが、文書は埋込み型フォントを間接的に参照することが可能であり、従ってそれらは別のファイルから又は共用フォント資源又はサーバーから得ることが可能である。フォント参照に遭遇すると、ステップ４００において、ソフトウエアは、所望されているフォントが既に使用可能であるか否かをステップ４０２において決定せねばならない。このことは、例えば、フォントが既にキャッシュ内に格納されているか（例えば、ステップ２４７において、図１０に示してある）又は例えばハードディスクドライブ２８（図１に示してある）等のローカルデータ格納部に格納されている場合である。そのフォントがステップ４０４において使用可能である場合には、当然に、ソフトウエアはそれを使用する。
【０１３４】
一方、ステップ４０６において、所望されたフォントが使用可能でない場合には、ソフトウエアは置換フォントを獲得する。置換フォントはそれが所望されたフォントの寸法に近い寸法を有する範囲において適切なものであり、従って置換フォントを使用して描画されたテキストはステップ４２０乃至４２８において行なわれる所望のフォントを使用して描画されるテキストと実質的に同一の場所及び形態に表われる。１実施例においては、置換フォントは所望されたフォントに特定的な完全な１組のフォント寸法に基づいて作成される。ＰＤＦフォーマットドキュメントにおいては、例えば、フォント記述子オブジェクトが例えばアセント、デセント、境界ブロック、大文字の高さ、イタリックス角度、垂直ステムの幅等の寸法情報を包含し、且つ、更に、例えばこれがセリフか又はサンセリフフォントであるか否か、それが固定した幅のフォントであるか否か、それが全て大文字のフォントであるか否か、及びそれが混合した高さの全て大文字のフォントであるか否か等のその他の記述的情報を包含するメトリックスを供給する。第二ＰＤＦオブジェクト、幅アレイオブジェクトは、フォントメトリックスの記述を完成し、それは該フォントにおける各文字に対する幅情報を与える。文書内に含まれるこのようなメトリックス又はデータベース又はコンピュータシステム１０上のデータファイルか又はネットワーク上のサーバー上のデータファイルから得られたメトリックスか又は、より良い情報が存在しない場合には、デフォルトメトリックスを使用することにより、適宜の置換フォントを、例えばカリフォルニア州フォスターシティのアレス（Ａｒｅｓ）ソフトウエアコーポレイションから入手可能なフォントカメレオン（ＦｏｎｔＣｈａｍｅｌｅｏｎ）製品又はワシントン州シアトルのエルスウエア（ＥｌｓｅＷａｒｅ）コーポレイションから入手可能なインフィニフォント（Ｉｎｆｉｎｉｆｏｎｔ）製品を使用することによって形成することが可能である。アクロバットリーダー製品は置換フォントを作成するためにアドビマルチプルマスターフォント技術を使用する。一方、所望されたフォントに対して使用可能なフォントメトリックスが存在する場合には、コンピュータシステム１０上で使用可能であるか又はそれに対して容易に使用可能なものとされるフォント資源の中からフォントを採用するために使用することが可能である。作成するか又は採用することのいずれかにより置換フォントが得られた場合には、それは、ステップ４０８において使用されて、対応するテキストをレンダリングし、且つ本ソフトウエアはステップ４１０において文書の処理を継続して行なう。
【０１３５】
所望のフォントが例えば合字ファイキャラクタ等のフォントで一般的に使用可能でないキャラクタを有するか、又は所望されたフォントが例えばチェスの駒又はアイコンのような１組のグラフィックスである場合には、置換フォントは複数個の場所保持用記号を有するか、又は、使用可能なフォントメトリックスに従って表示される単に１つの場所保持用記号（空のボックス等）から完全に構成される場合もある。
【０１３６】
ステップ４２０において、例えば、電子文書における埋込み型フォントとしてダウンロードされたので、所望されたフォントが使用可能である場合には、表示の影響される部分がステップ４２２乃至４２８において再度描画される（１つを超える所望されたフォントが置換フォントによって置換されている場合には、所望されたフォントの全てをこれらのステップにおいて共に処理することが可能である）。最初に、置換フォントを使用してレンダリングしたテキストの取囲み矩形又は複数個の矩形をステップ４２２において決定する。これらの矩形は、置換フォントで描画する場合に使用した区域及び所望のフォントで描画する場合に使用すべき区域を取囲む。次に、ステップ４２４において、頁の見える部分に制限された取囲み矩形又は複数個の矩形の交差に対応する境界でオフスクリーンビットマップバッファが形成される。オフスクリーンバッファは、ディスプレイと同一のピクセル深さ及びカラー特性を有するように形成される。次いで、ステップ４２６において、オフスクリーンビットマップバッファと交差する頁の入手可能な部分を、現在使用可能な所望のフォント又は複数個のフォントを使用して、そのバッファ内に再描写する（例えば、大きな画像等の頁の幾つかの部分が入手可能でない場合があり、本プロセスは図１３ｃを参照して説明するように、それらなしで進行する）。オフスクリーンビットマップバッファが完了すると、それはステップ４２８においてディスプレイ上に描写される。ディスプレイバッファから従来技術のように表示が発生されると、それはオフスクリーンビットマップバッファをディスプレイバッファの対応する区域内にコピーすることによって行なわれる。別の実施例においては、表示の単位は１つの頁のある倍数（又はフラクション即ち一部）であり、且つ埋込み型フォントの処理は、表示の単位全体が描写されるまで遅延され、電子文書のユーザ（読者）が可及的に見ることの可能な領域の全てに関するテキスト及びグラフィックスを見ることを可能とする。更に別の実施例においては、オフスクリーンビットマップバッファ内への描写は、全ての所望されたフォントが使用可能となるまで遅延され、そのことはオフスクリーンでレンダリングするのに費やされる時間を減少させることが可能である。更に別の実施例においては、複数個の小さな矩形を合体させてオフスクリーンビットマップバッファを形成する場合に１つ又はそれ以上のより大きな矩形を形成し、そのこともオフスクリーンビットマップバッファの処理を簡単化させることを可能とする。更に別の実施例においては、本方法を可能な所望されたフォントの全体のうちの一部に対してのみ適用し、従って例えば外国語のフォントを排除する。例えば、アクロバットリーダー製品は、所望されたフォントがアドビ社のスタンダードのキャラクタセット内に見つからないキャラクタを有する場合には、段階的レンダリングを適用することはなく、フォントに特定的なフォントメトリックスが存在しない場合にも段階的レンダリングを適用することはない。
【０１３７】
注意すべきことであるが、フォントの段階的レンダリング方法の最大の利点を得るために、文書をダウンロード又は読むプロセスにおいて埋込み型フォントの位置を制御すべきであり、従って置換されるべき埋込み型フォントは、主要なテキスト及びグラフィックスの後で読まれるか又はダウンロードされる。然しながら、埋込み型フォントの抽出が時間がかかる場合には、埋込み型フォントがテキスト及びグラフィックスの前に位置されているか又はそれと混ざり合っている場合であっても、本方法を使用することが有益的な場合がある。この方法に関連して、文書の初期的な表示期間中にユーザインターフェースを維持しながら、埋込み型フォントをバックグラウンドプロセスと共にダウンロードすることが可能であることも有益的である。最後に、詳細且つ完全なフォントメトリックスが使用可能である場合には、所望されたフォントは、置換フォントによって非常に近似的にエミュレートすることが可能であり且つディスプレイ上のテキストのレイアウトを保存することが可能であり且つディスプレイがアップデートされる場合にユーザの気が散ることが最小とさせることが可能であることが理解される。ユーザの気が散ることが最小とされる理由は、ディスプレイのアップデートが文書におけるテキストの流れに対するより顕著な変化ではなく繊細なキャラクタ形状の変化のリップルだからである。記述的情報の完全性又は特定性がより低いか又はデフォルトフォントメトリックスを使用せねばならない場合には、文書のより顕著な再フォーマット化が行なわれ、多分、最終的な表示におけるテキストの顕著な再配置を包含する。フォント置換の技術に関する更なる情報は、フォント置換及びキャラクタ表示方法という名称の発明者がＷａｒｎｏｃｋである米国特許第５，１８５，８１８号であって本願出願人に譲渡されている米国特許において見出すことが可能であり、その特許の開示内容は引用によって本明細書に取込む。
【０１３８】
図１３ｂを参照すると、オンライン環境において電子文書とのユーザのインタラクション即ち相互作用を最適化する別の側面は、ハイパーテキストリンク等の対話文書要素が可及的にユーザインターフェースにおいてアクティブなものとなることを確保することである。本明細書においては、「アノテーション」という用語は、それがＰＤＦ文書の文脈において有する意味において使用され、「アノテーション」という用語は例えばキーボード及びマウス等のデバイスからのユーザ入力に応答する、ハイパーテキストリンク、マルチメディアプレゼンテーションを喚起するために選択可能なアイコン等のプリントした頁自身の一部ではないが頁と関連している対話的要素を包含している。アノテーションがレンダリングされる前にユーザ入力に対して応答させることは、オンラインで同一の文書をしばしば訪ねるユーザに対して有用である。このようなユーザは、ディスプレイの特定の領域がアノテーションを有していることを知っている場合があり且つ該アノテーションに対するグラフィックスが描写される前にそこをクリックするために選択する場合がある。従って、アクティブな要素の早期の活性化のためのオプションとしての方法において、表示されるべきアクティブ（活性）要素がステップ４４０において表示用の文書を処理する間に遭遇した場合には、本ソフトウエアは、最初に（又はフォアグラウンドにおいて）ステップ４４２において該活性要素の選択可能な境界を識別し、カーソルがステップ４４４において選択境界内に表示される場合には、カーソルの様相を適宜変化させるためにカーソル表示プロセスに命令を与え、且つステップ４４６においてクリック又はキーボードコマンドのエントリ等のユーザによる選択動作に対する応答を可能とさせる。第二に（即ち、文書の通常の表示過程におけるバックグラウンドプロセス又はその他において）、アクティブ要素と関連する表示がステップ４４８においてレンダリングされる。
【０１３９】
図１３ｃを参照すると、ビュアプログラムは、オプションとして、大きなオブジェクトを繰り延べる（そのダウンロード及び／又は表示を遅滞化させる）ための方法を使用することが可能である。この方法はビットマップ画像等の大きな及び／又は複雑なオブジェクトをダウンロードし且つレンダリングする前に、情報及びテキスト、グラフィックス、アノテーション、その他の迅速に表示された要素を表示することによって、特にオンライン環境において、電子文書の表示の有用な最適化を与える。ＰＤＦ等のフォーマットを有する電子文書はテキスト、グラフィックス、画像及びアノテーションの間の複雑な関係を表わすことが可能である。頁内容はオーバーラップすることが可能であり且つ特定の表示順を有するように電子文書において特定することが可能である。大きなオブジェクトを繰り延べする方法においては、電子文書が例えばテキストの１つのセグメントが例えば画像の上部に表われるべきであることを特定する場合には、そのテキストは最初に描写され、電子文書の一部が使用可能となるや否やユーザがそれと対話することを可能とする。従って、ステップ４６０において大きなオブジェクトに遭遇する場合には、該オブジェクトのレンダリングはステップ４６２において繰り延べられ、且つテキスト及びグラフィックス等の迅速に表示される要素がステップ４６４において使用可能な状態となるや否や描写される。頁上の全てのオブジェクトの正確な位置を精密に記述するＰＤＦ等の電子文書フォーマットにおいては、幾つかのオブジェクトの遅延させたレンダリングは他のオブジェクトをしてその位置をシフトさせるものではなく、頁要素が段階的に表示される場合にユーザに対する影響を最小とさせる。
【０１４０】
該例を継続して使用して、既に描写されているテキストが未だに描写されていない画像の上部に表われるように特定される場合には、オフスクリーンバッファがステップ４６６において形成され、その中に繰り延べさせたオブジェクト及びその他の全ての描写要素をそれらがステップ４６８においてオフスクリーンバッファの境界内に表われるような範囲であるが、その時に使用可能でないオブジェクト（例えば、これからダウンロードすべき画像）を待機することの必要性なしにレンダリングさせる。オフスクリーンビットマップバッファの境界矩形は頁の見える部分に制限されている大きなオブジェクトの境界に対応している。オフスクリーンビットマップバッファは、ディスプレイと同一のピクセル深さ及びカラー特性を有するように形成される。オフスクリーンバッファが完成されると、それはステップ４７０においてディスプレイ上に描写される。別の実施例においては、頁指向型ビュアの場合には、１つを超える頁が一度に見ることが可能である場合には、大きなオブジェクトのレンダリングは、全ての見ることの可能な頁が描写されるまで繰り延べされ、該文書の読者が可及的速やかに見ることの可能な頁の全てに関して迅速に表示された内容を見ることを可能とする。更に別の実施例においては、画像の一部が、使用可能となるや否や、画像のオフスクリーンバッファ内にレンダリングされ、次いで、画像全体がダウンロードされることを待機することなしに、表示される。このことは、例えば、画像情報をバンドで組織化する画像オブジェクトフォーマットにおいて容易に実施することが可能である。更に別の実施例においては、幾つかの大きなオブジェクトの処理がそれらの境界の結合によって定義されるオフスクリーンバッファにおいて結合され、そのことはオフスクリーンでレンダリングするのに費やされる時間を減少させることを可能とする。
【０１４１】
線形化最適化文書レイアウト
次に、図１４を参照すると、線形化させた文書レイアウトは既に説明した最適なフォーマットの洗練化したものである。線形化レイアウト（又はフォーマット）は、ワールドワイドウエブサイトへの低速接続の特性を有する環境においてビューが効率的な増分的アクセスを達成することを可能とする。線形化フォーマットの利点としては、電子文書が開かれた場合に、第一頁の表示が迅速に行なわれるということである。
【０１４２】
観察すべき第一頁は文書の任意の頁とすることが可能であり、それは、頁０が最も一般的な選択であろうが、必ずしもそうであるわけではない。その他の利点は既に説明した最適化させた電子文書フォーマットのその他の別の実施例と共有されており、例えば、要求された後の頁の迅速な表示、最も有用なデータが最初に表示される頁内容のインクリメンタル即ち増分的表示（特に、低速のチャンネルを介して送給される頁の場合）、及び頁全体が受取られ且つ表示される前にハイパーテキストリンクの追従等のユーザのインタラクション即ち相互作用を可能とすること等がある。線形フォーマットを包含する最適化されたフォーマットは、任意の寸法の電子文書に対してこれらの利点を達成し、文書内の頁の総数はいずれか特定の頁を観察する場合のユーザ知覚性能に殆ど又は何ら影響を有するものではない。
【０１４３】
ワールドワイドウエブ環境は、電子文書をクライエントが読取り且つサーバーが供給する性能に影響を与える特性を有している。アクセスプロトコル（ＨＴＴＰ）は要求と応答とからなるトランズアクションである。トランズアクションが完了した後に、更なるデータを得ることは新たな要求−応答トランズアクションを必要とし、且つクライエント（ビュア）とサーバーとの間の接続は、ある具体例では同一のサーバーとのその後のトランズアクションを迅速化させるためにオープン接続をキャッシュする試みをする場合があるが、通常、１つのトランズアクションの終了を超えて持続するものではない。ラウンドトリップ遅延が顕著な場合があり、トランズアクションは、要求されたデータの量とは独立的に、数秒かかる場合がある。最後に、データレートが制限される場合があり、典型的なボトルネックはクライエントとインターネットサービスプロバイダーとの間において１４．４キロボー又は２８．８キロボーモデムリンクである。その他の広域ネットワークアーキテクチュアは、通常、これらの特性を共有している。ＣＤ−ＲＯＭでさえもこれらの特性の幾つかを供給している。何故ならば、ＣＤ−ＲＯＭは比較的低速のシーク時間を有すると共に磁気媒体と比較してデータレートが制限されているからである。
【０１４４】
やがてサポートされるべきＨＴＴＰプロトコルに対する拡張においては、クライエントはトランズアクション要求の一部として（即ち、ＵＲＬの一部として）１つ又はそれ以上のオフセット長バイトレンジを特定することによって１つの文書の一部の検索を要求することが可能である。各レンジはファイルの始め又は終りのいずれかに対するものとすることが可能である。クライエントはその要求において任意の数のレンジを特定することが可能であり、且つその応答は複数個のブロックから構成され、各ブロックは適切にタグが付けられる。あるワールドワイドウエブ環境を包含するある環境においては、クライエントは並列的に複数個の応答を得ようとして複数個の同時的なトランズアクションを開始することが可能である。このことは、例えば、ＨＴＭＬ文書から参照されるインライン画像を検索するために一般的に行なわれる。然しながら、複数個の同時的なトランズアクションはある重要な環境におけるＰＤＦフォーマット文書に対しては最適なものとは言えない場合があるようであるから、一度に１つのトランズアクションのみがアクティブ即ち活性状態であるという拘束条件下において良好な性能を達成するように線形化したフォーマットがデザインされている。その理由により、線形化したフォーマットは与えられた頁を表示するのに必要な全てのオブジェクトに対するバイトレンジを決定するためにクライエントに対して充分な情報を供給し、従ってクライエントは単一の要求において適宜のバイトレンジを特定することが可能である。
【０１４５】
次に、ＰＤＦフォーマット文書における実現例を参照すると、線形化したレイアウトは従来のＰＤＦヘッダー４８０とトレイラー５０４とで開始する。該ヘッダーの後に線形化パラメータを含むオブジェクト４８２が続き、該パラメータは、フォーマットバージョン識別子、ファイル全体の長さ、主要なヒント（ｈｉｎｔ）テーブルストリームオブジェクト４８６（後述する）に対するオフセット長ポインタ、存在する場合には、オプションとしてのオーバーフローヒントテーブルストリームオブジェクト５００に対するオプションとしてのオフセット長ポインタ、第一頁の頁オブジェクトのオブジェクト番号、及び、オプションとしての、デフォルトの場合には頁０である表示されるべき第一頁の頁番号を包含している。
【０１４６】
第一頁相互参照テーブル４８４は全ての第一頁のオブジェクト及び該第一頁の前に表われる全ての文書レベルオブジェクトに対する相互参照テーブルである（図３ａ及び３ｂにおけるテーブル５８を参照して説明したようなテーブル）。これは第一頁に対するペアレント頁オブジェクトを包含し、その他の頁の頁オブジェクトから継承した属性を有することのない文書の第一頁を表示するのに必要な全てのオブジェクトに対する相互参照テーブルである。テーブル４８４において表の形とされたオブジェクトは、それらが該頁の表示に影響を与える場合には、任意の深さへペアレント頁オブジェクトが参照する全てのオブジェクトを包含している。それは、更に、主要なヒントテーブルストリームオブジェクト４８６の始めにおけるヒントテーブルの辞書に対するエントリも包含している。第一頁相互参照テーブル４８４は、その文書ファイルにおける位置が従来のものと異なるが、ＰＤＦ仕様に従った有効な相互参照テーブルである。そのトレーラー部分は文書を表示するのに必要とされる任意の相互参照テーブル属性のみならず、ファイルの終り近くの主要な相互参照テーブル５０２に対するオフセットを与えている。
【０１４７】
主要ヒントテーブルストリームオブジェクト４８６は、第一頁オブジェクト４９２より先行するか又はそれに追従することが可能である。別の実施例においては、主要ヒントテーブルストリームオブジェクト４８６のデータ内容はオプションとして別のホストコンピュータ上に存在する１つ又は複数個の二次ファイル内に格納されている。ストリームオブジェクトはＰＤＦフォーマットによって定義された１つのタイプのオブジェクトであり、それはそれと関連する圧縮を有することが可能な二進ビットのシーケンスである。各ヒントテーブルは該ディクショナリ即ち辞書によって示されるストリームにおける位置で開始するストリームオブジェクト４８６の一部から構成されている。各テーブルは可及的にコンパクトに所要の情報をエンコードするものと期待される。何故ならば、該文書内のテーブルはランダムアクセスのために構成されることが必要ではないからである。更に、クライエントは該テーブルを一度読取り且つデコードし且つその文書が開いている限り該情報を維持するものと期待される。ヒントテーブルストリームオブジェクト４８６は、オブジェクト内のヒントテーブルの位置を示すディクショナリ（辞書）を包含している。これらの位置はストリームデータの開始と相対的なものである。
【０１４８】
ヒントテーブルは文書ファイル内の一群の又は１つのクラスのオブジェクトの位置をエンコードする。その表現は明示的なもの、即ちファイルの開始からのオフセットであるか、又は暗示的、即ち先行するオブジェクトの累積的長さからのもののいずれかである。いずれの場合においても、結果的に得られる位置はヒントテーブルストリームオブジェクト自身が存在しなかったかのように解釈される。その理由は、ヒントテーブルストリームオブジェクトの長さは、一般的に、それが発生されるまで不知であり、且つヒントテーブルにおける情報は前もってその長さを知ることに依存すべきものではないからである。オーバーフローヒントテーブルストリームオブジェクト５００が存在する場合には、それを獲得することは付加的なトランズアクションを発生することを必要とする。然しながら、オーバーフローオブジェクトを与えることは、線形化プログラムが推定した寸法の主要ヒントテーブルストリームオブジェクト４８６に対して予約した空間で線形化したファイルを書き、次いで、ヒントテーブルに書込むために戻ることを可能とする。その推定値が小さすぎる場合には、該線形化プログラムは残りのヒントテーブルデータを含むオーバーフローオブジェクトをアペンド即ち取付けることを可能とし、そのことは該ファイルを１つのパスで書込むことを可能とし、そのことはある条件下においては有益的なものである場合がある。オプションとしてのオーバーフローヒントテーブルストリームオブジェクトが存在している場合には、２つのストリームオブジェクトの内容が連結され且つあたかもそれらが単一の連続したストリームオブジェクトであるかのように取扱われる。
【０１４９】
ヒントテーブルは第一頁のオブジェクトを処理する場合には使用されることはなく、従ってそれらの第一頁と相対的な位置は選択的事項である。ヒントテーブルが第一頁オブジェクトの前に来る場合には、クライエントは表示されるべき第一頁の文書の選択がクライエントの選択と同一でない場合に、初期的なトランズアクションを迅速にアボート即ち中止させることが可能である。一方、ヒントテーブルが第一頁オブジェクトに続く場合には、第一頁の文書の選択を表示することは、より迅速に行なわれ、一方任意の頁を開くことは文書の第一頁を受取るのに必要な時間だけ遅延される。電子文書ファイルが線形化されると、線形化プロセスは、ユーザのオプションとして、第一頁において開くか又は任意の頁において開くかのいずれを好むかの決定を受付けることが可能である。
【０１５０】
図１５ａ及び１５ｂを参照すると、オブジェクト４８６のヒントテーブルは、頁オフセットヒントテーブル４８８及び共用オブジェクトテーブル４９０を包含しており、これら２つのテーブルは図３ｂに示してあり且つそれに関連して説明したレンジテーブル６４と同一の機能を達成する。頁オフセットテーブル４８８は、各頁に対して、その頁を探し出すのに必要な情報を与える。更に、第一頁を除く各頁に対して、それはその頁が直接的に又は間接的に参照する全ての共用オブジェクトを列挙する。共用オブジェクトテーブル４９０は共用オブジェクトを探し出すために必要な情報を与える。線形化したフォーマットにおいては、共用オブジェクトは物理的に２つの場所のうちのいずれかに位置させることが可能である。第一頁から参照されるオブジェクトは第一頁オブジェクトと共に共同的に位置されている。その他の全ての共用オブジェクトは共用オブジェクトセクション４９８内に位置されている。共用オブジェクトテーブル４９０における単一のエントリは、そのグループにおける第一オブジェクトのみがグループ外側から参照される場合に、隣接するオブジェクトからなるグループを記述することが可能である。頁オフセットテーブル４８８は該テーブルにおけるその逐次的な位置である簡単なインデックスによって、共用オブジェクトテーブル４９０において１つのエントリを参照する。
【０１５１】
その他のヒントテーブルは文書全体に関連する文書要素に対する情報を与える。例えば、ブックマークヒントテーブルは、クライエントがブックマークを見つけることを可能とし、且つスレッドヒントテーブルは、クライエントがある記事を定義する複数個のビーズからなるスレッド即ち繋りにおける全てのビーズを見つけ出すことを可能とする。新聞におけるように、ある記事が幾つかの頁にわたって延在している場合には、ここにおける「記事」は複数個の「ビーズ」からなるリストであり、その場合に、各ビードは特定の頁上における矩形であり、その矩形の中に該記事のテキスト又はイラストの一部を見つけることが可能である。スレッドヒント（ｔｈｒｅａｄｈｉｎｔ）テーブルの場合には、クライエント（ビュア）が１つのトランズアクションで記事全体を表示するのに必要な全てのオブジェクトを要求する場合がある。従って、ヒントテーブルは文書の任意の頁を表示させるため又はあるその他の情報を効率的に検索するために必要とされるオブジェクトの全てに対する単一の要求をクライエントが構築することを可能とするインデックス情報を提供する。
【０１５２】
ヒントテーブルは、更に、プラグインによりアプリケーション特定情報へのアクセスを最適化するための情報を有することも可能である。
【０１５３】
ヒントテーブルは、論理的には、文書の情報内容の一部ではなく、それは文書から派生させることが可能なものである。文書が再度発生されると、ヒントテーブルストリームオブジェクト４８６及び５００は、それらが特別に発生されたものでない限り、文書の一部となるものではない。文書を変更させる何らかのアクション、例えば増分的なアップデートをアペンドすること、は、ヒントテーブルの幾つか又は全てを無効なものとさせる場合がある。結果的に得られる文書ファイルは、ＰＤＦファイルとしては未だに有効であるが、線形化したファイルとしては必ずしもそうではない。
【０１５４】
図１５ａを参照すると、頁オフセットヒントテーブル４８８のエレメントの幾つかについて更に説明することが必要である。「頁におけるオブジェクト数」とは、ヘッダーにおいて与えられる「頁におけるオブジェクトの最小数」に対して付加された場合には、該頁におけるオブジェクトの実際の数を与える値である。第一頁の第一オブジェクトは、線形パラメータオブジェクト４８２において与えられるオブジェクト番号を有している。第二頁の第一オブジェクトは１のオブジェクト番号を有している。その後の頁に対するオブジェクト番号は、全ての前の頁におけるオブジェクトの数を蓄積することにより決定することが可能である。
【０１５５】
「バイト単位での頁長さ」は、ヘッダーに与えられる「バイト単位での頁の最小長さ」に付加された場合に、バイト単位での頁の全長を与える値である。第一頁の第一オブジェクトの位置は、そのオブジェクトに対する相互参照テーブルエントリから決定することが可能である。後の頁の位置は、前の全ての頁の長さを蓄積することにより決定することが可能である。「頁のスタート即ち始めから内容ストリームのスタート即ち始めまでのバイト数」は、ヘッダーに与えられる「オフセットされている内容の最小スタート（開始）」に付加された場合に、頁の始めと相対的に内容ストリームオブジェクトのオフセット及びバイトを与える値である。「バイト単位での内容の長さ」とは、ヘッダーに与えられる「最小内容長さ」へ付加された場合に、オブジェクトオーバーヘッドを包含するバイト単位での内容ストリームオブジェクトの長さである値である。
【０１５６】
頁オフセットヒントテーブル４８８は、各頁から参照された各共用オブジェクトに対して、「共用オブジェクト識別子」及び「第一参照の内容において位置を与えるフラクション」を包含している。前者は共用オブジェクトヒントテーブル４９０内へのインデックスである。該後者は、頁の内容データにおけるどこが、共用オブジェクトが最初に参照されたかを表わす。説明したように、これはフラクション即ち分数の分子として解釈され、その分母は頁オフセットヒントテーブルヘッダー内において特定される。該分子は付加的な値をとることが可能であり、公称的に、内容データの終りを超えたフラクションを表わし、共用オブジェクトが該内容から参照されたものではなく、該内容の後に描かれたアノテーション又はその他のオブジェクトによって必要とされるものであることを表わす。共用オブジェクトが頁の終りにおける共用されていないオブジェクトのタイプに関して共用オブジェクトが必要とされる場合を指定するために異なる値を使用することが可能である。
【０１５７】
共用オブジェクトヒントテーブル４９０を図１５ｂに示してある。頁オフセットヒントテーブル４８８は、該テーブルにおけるエントリのシーケンスである簡単なインデックスによって共用オブジェクトヒントテーブル４９０における１つのエントリを参照する。自明なヘッダー情報に続いて、共用オブジェクトグループエントリの２つのシーケンスが存在しており、即ち第一頁に位置されているオブジェクト４９２に対する１に対して共用オブジェクトセクション４９８に位置しているオブジェクトに対する１が続いている。これらのエントリは両方の場合に同一のフォーマットを有している。表現の便宜上、第一頁（４９２オブジェクト）は、それが完全に共用オブジェクトから構成されているかのように取扱うことが可能である。即ち、共用オブジェクトテーブルの第一エントリは第一頁の開始を参照し且つ初期の共用されていないオブジェクトの全てに跨がるオブジェクトカウント及び長さを有している。次のエントリは第一頁オブジェクト４９２における共用オブジェクトからなるグループを参照する。その後のエントリは、第一頁における全ての共用オブジェクトが列挙されるまで、共用されるか又は共用されないオブジェクトのいずれかの付加的なグループに連続的に跨がる。
【０１５８】
各共用オブジェクトグループに対して表われる情報において、「グループ内のオブジェクト数」はそのグループにおけるオブジェクトの実際の数よりも１だけ少ない値である。第一頁の第一オブジェクトのオブジェクト数は文書の始めにおける線形化パラメータオブジェクト４８２において与えられる。後のエントリに対するオブジェクト番号は第一頁における全ての共用オブジェクトが列挙されるまで、全ての前のエントリにおけるオブジェクト数を蓄積することによって決定することが可能である。それに続いて、共用オブジェクトセクション４９８における第一オブジェクトは、共用オブジェクトテーブルヘッダーから得ることの可能な数、即ち「共用オブジェクトセクションにおける第一オブジェクトのオブジェクト数」を有している。「バイト単位でのオブジェクトの全長」は、ヘッダーに与えられている「バイト単位での共用オブジェクトグループの最小長さ」へ付加される場合に、バイト単位でのオブジェクトグループの全長を与える値である。第一頁の第一オブジェクトの位置は、頁オフセットテーブルヘッダー情報において与えられている。その後のオブジェクトグループの位置は、第一頁における全ての共用オブジェクトが列挙されるまで、全ての前のオブジェクトグループの長さを蓄積することによって決定することが可能である。それに続いて、共用オブジェクトセクション４９８における第一オブジェクトの位置は、ヘッダーから得ることが可能である。「シグナチャ存在フラグ」はシグナチャ（署名）の有無を表わす。「オプショナルシグナチャ（ｏｐｔｉｏｎａｌｓｉｇｎａｔｕｒｅ）」は、存在する場合には、１実施例において、オブジェクトのグループを表わす資源を個別的に識別することが意図された１６バイトのＭＤ５ハッシュ（ｈａｓｈ）である。このことは、クライエントが、それを文書から読む代わりに、局所的にキャッシュした資源のコピーを置換させることを可能とする。
【０１５９】
図１５ｃを参照すると、サムネイルヒントテーブル５０６における各エントリは、単一の頁に対するサムネイル（ｔｈｕｍｂｎａｉｌ）を記述する。頁は頁番号順に考慮され、頁０が表示されるべき第一頁でない場合であっても、頁０から開始する。サムネイルは全ての頁ではなく幾つかの頁に対して存在する場合がある。このテーブルに対するヘッダーは自明である。エントリにおいて、「サムネイルを欠如する頁に先行するカウント」は、この１つにおける前のエントリの頁間にサムネイルのない幾つの頁が存在しているかを表わす。全ての頁がサムネイルを有している場合には、このフィールドの値は常に０であり、且つヘッダにおける「サムネイルのない頁のカウントを表わすために必要なビット」の値は０とすることが可能である。「バイト単位でのサムネイルオブジェクトの長さ」は、ヘッダにおいて与えられる「バイト単位でのサムネイルオブジェクトの最小長さ」へ付加された場合に、サムネイルオブジェクトの全長を与える値である。「各共用オブジェクトに対して、共用オブジェクト識別子」は共用オブジェクトヒントテーブル４９０内へのインデックスである。
【０１６０】
図１５ｄを参照すると、包括的ヒントテーブル５０８に対するフォーマットが例示されている。あるカテゴリのオブジェクトは個々の頁ではなく文書全体と関連している。この様なオブジェクトへアクセスするためのヒントを与えることが効率的であることが時折有用である。ヒントテーブルでサポートされる各カテゴリのヒントに対して、ストリーム内の対応するヒントテーブルの開始位置を与えるヒントテーブルストリームオブジェクト４８６におけるエントリが存在している。包括的ヒントテーブル５０８の例示したフォーマットはこの様なヒントに対する包括的な表現を与える。この表現は、アウトライン、スレッド及び命名した宛先などのスタンダードのオブジェクトのカテゴリに対して有用である。それは、更に、プラグインによってアクセスされる応用特定オブジェクトに対しても有用な場合がある。包括的ヒントテーブル５０８は、文書内において一緒に位置している一つ又はそれ以上のグループのオブジェクトを記述する。各グループに対して、ヒントは、クライエント（文書読取りプロセス）がそのグループにおけるオブジェクトが参照する可能性のある任意の共用オブジェクトを包含するそのグループ内の全てのオブジェクトに対する要求を構築することを可能とするのに十分な情報を有している。単一のグループが存在する場合には、該ヒントテーブルは同時にアクセスされるべき該カテゴリ内の全てのオブジェクトに対して参照を行う。複数個のグループが存在する場合には、各グループは０からカウントする該テーブル内のその逐次的な位置である簡単なインデックスによって識別される。オブジェクトグループが意味するものはオブジェクトカテゴリに依存する。
【０１６１】
包括的ヒントテーブル５０８に対するヘッダ情報は自明である。各オブジェクトグループに対するエントリにおいて、「バイト単位でのオブジェクトの全長」は、ヘッダに与えられている「バイト単位でのオブジェクトグループの最小長さ」に対して付加された場合に、オブジェクトグループの全長を与える値である。「グループから参照される各共用オブジェクトに対して、共用オブジェクト識別子」は、共用オブジェクトヒントテーブル４９０内へのインデックスである。この識別子を表現するのに必要なビット数は、頁オフセットヒントテーブル４８８のヘッダ内に与えられている。
【０１６２】
第一頁オブジェクトセクション４９２において、共用オブジェクトを包含する全てのオブジェクトは、文書の第一頁を表示することが必要とされる。以下のオブジェクトの順番付けは、早期のユーザインタラクションに、第一頁データが到着する場合にその増分的表示を与えるために有用である。第一に、アノテーションを活性化させることを可能とするのに十分な深さへのアノテーションオブジェクト、アノテーションを引出すのに必要な情報は繰延べることが可能である。なぜならば、アノテーションは、常に、他の内容の上に（従って、後に）描かれるからである。
【０１６３】
第一頁オブジェクトセクション４９２の後は、順番に、次の頁に対する共用されていないオブジェクト４９４乃至最後の頁に対する共用されていないオブジェクト４９６を含むセクションである。表示されるべき第一頁以外の各頁に対して、該頁を表示するのに必要とされるオブジェクトは、他の頁と共用される資源及びその他のオブジェクトを除いて、一緒にグループ化される。共用オブジェクトは共用オブジェクトセクション４９８内に位置される。任意の頁の開始ファイルオフセット及び長さはヒントテーブルから決定することが可能である。第一頁における順番のように、１番目でない頁におけるオブジェクトの順番は、早期ユーザインタラクション及びそれが到着する場合の頁データの増分的な表示を簡単化すべきである。一般的に、線形化したフォーマットにおいては、内容を資源とインターリーブさせることから得られる利点はほとんどない。なぜならば、画像以外のほとんどの資源、特に、フォントにおいては、全ての頁の間で共用されており、従って、共用オブジェクトセクション４９８内に存在しているからである。画像オブジェクトは、通常、共用されておらず、それらは、他の頁オブジェクトの後に表われるべきである。なぜならば、図１３ｃを参照して説明したように、画像のレンダリングは繰延べることが可能だからである。
【０１６４】
共用オブジェクトセクション４９８は一つを超える頁から参照され且つ第一頁から（直接的に又は間接的に）参照されることのないオブジェクトを包含している。共用オブジェクトテーブル４９０はこれらのオブジェクトのインデックスを有している。共用オブジェクトセクション４９８におけるオブジェクトの順番は基本的に任意である。しかしながら、資源がマルチレベルの構造から構成されている場合には、該構造の全ての構成要素が一緒にグループされることが望ましい。従って、トップレベルのオブジェクトのみがグループの外部から参照される場合には、そのグループは共用オブジェクトテーブル４９０における単一のエントリによって記述することが可能であり、そのテーブルの寸法を最小なものとさせる。
【０１６５】
主要相互参照テーブル５０２は、第一頁相互参照テーブル４８４においてリストされているもの以外のファイル内の全てのオブジェクトに対する相互参照テーブルである。
【０１６６】
電子文書は、更に、頁を表示するためには必要とされるものではないが文書の一部であるその他のオブジェクト（不図示）を有している場合がある。この様なオブジェクトは機能的なカテゴリに分割され、且つ各カテゴリ内のオブジェクトは一緒にグループ化されるべきであり、従って各々は、クライエントによる効率的なアクセスに対して必要とされる情報を与えるための対応するヒントテーブルを有することが可能である。線形化されたフォーマットは、プラグインによりアクセスされる応用特定データに対する付加的なヒントテーブルを可能とする。この様な付加的なヒントテーブルは、包括的なフォーマットを有することが可能であり、又は該ヒントテーブルのフォーマットはアプリケーションに対して専用のものとすることが可能である。
【０１６７】
前述したことから、線形化したフォーマットは、電子文書の効率的な検索及び表示を可能とすることが理解される。従って、文書が最初にアクセスされる場合には、クライエントは最初から開始するファイル全体を検索するための要求を発生することが可能である。従って、表示されるべき第一頁に対するデータは迅速に表われ且つ使用可能となる。第一頁に対するオブジェクトのように、主要ヒントテーブルストリームオブジェクトも、検索され且つファイルの初期的逐次的読取りの一部が検索される。クライエントはヒントテーブル内の情報の全てを解釈し且つ維持することが推測される。ヒントテーブル及び第一頁オブジェクトが読取られると、クライエントは逐次的に該文書の残りを継続して読むことの決定をするか、又はクライエントはバイトレンジを要求する別のトランズアクションを使用して該初期的なトランズアクション及びその後の頁へのアクセスをアボート即ち中止する決定をすることが可能である。ヒントテーブルが受取られると、クライエントはその頁番号が与えられる文書の任意の頁の検索を要求するための十分な情報を有することとなる。
【０１６８】
オブジェクト及び頁の順番付け及び線形化したフォーマットでのヒントテーブルの使用は、表示の段階的アップデート即ち更新及びデータがゆっくりと到着する場合のユーザインタラクションに対する早期の機会を与えることを可能とする。その目的のために、クライエント（ビュア）は、頁上で参照されているオブジェクトが到着したか否かを認識し、且つ、可能である場合には、オブジェクトの性質及び利用可能性に対してオブジェクトに関して動作する順番を適合させるべきである。この様な動作の順番の一つは以下のようなものであり、その要素については図１３ａ，１３ｂ，１３ｃを参照して説明しており、第一に、描写することなしにアノテーションを活性化させ、次いで、内容を描写するが使用不可能な画像を繰延べし且つ使用不可能なフォントに対しては置換フォントを使用し、次いでアノテーションを描写し、次いでオーバーラップするものと共に画像を描写し、次いでテキストとオーバーラップするものと共に、所望のフォントを使用してテキストを再描写する。説明したように、画像の後描写及びテキストの再描写はオフスクリーンバッファを使用して行うことが可能であるが、これらは、又、表示が発生されるバッファ内に直接的に描写することが可能である。
【０１６９】
要求された頁のダウンロードの例
図１０及び１２のプロセスの例においては、電子文書の第一頁が本発明の最適化させた文書ファイルからダウンロードされ且つ図１０のステップ２２４，２２６，２２８，２３０において表示されている。次いで、ユーザは図１０のステップ２３４においてビュアにおいて頁９を表示することを要求する。この例においては、頁９を表示するのに必要なデータは最適化された文書ファイルにおける２５０００−２９０００，１１２０００−１１３０００，２０００００−２０２０００のバイトレンジにおいて発生し、その場合に、第一レンジは頁内容データであり、且つ２番目の二つのレンジは頁内容によって参照される共用オブジェクトである。ファインダは相互参照テーブルを見つけ出し且つステップ２３８において頁９に対し２５０００をオフセットし且つそのオフセットをビュアへ与える。ファインダはステップ２４０において付加的なレンジを決定する。ステップ２４２において、ビュアはソースコンピュータへ接続し且つ例えば１Ｋなどの所定量のデータをダウンロードする。一方、ファインダは、頁内容が実際にバイト２９０００へ進行することを決定する。インターリーブが所望されない場合には、ファインダは、付加的に、図１２のステップ３００においてバイトレンジ２６０００−２９０００がダウンロードされることを要求する。又、ファインダは、頁９が共用ＩＤ１及び２を具備する二つの共用オブジェクトを有していることを共用頁リスト１３６を検査することによって決定する。従って、ファインダは共用オブジェクトオフセットテーブル２７２をチェックし且つ図１２のステップ３００における同一の接続において対応する共用オブジェクトバイトレンジ１１２０００−１１３０００および２０００００−２０２０００がダウンロードされることを要求する。一方、図１４に示した線形化した最適化したフォーマットを参照して説明したように、バイトレンジの全てを一つのトランズアクションで要求することが可能であり、従って、図１０のステップ２３８，２４０，２４２，２４４，２４６は一つのステップとして動作する。
【０１７０】
インターリーブが実施される場合には、図１２のステップ２８８において、ファインダは共用ＩＤ１及びフラクション番号１を有するオブジェクトリスト内の次の共用オブジェクトを検査する。ステップ２９２において、ファインダは該頁の最初から第一フラクションへの頁内容を要求する。従って、該フラクション即ち分数が０／８であることを仮定すると、各フラクションは４０００／８＝５００バイトである。第一フラクションは検査された共用オブジェクトを参照するので、ファインダは２５０００−２５５００のレンジを要求する。ステップ２９４において、ファインダは第一フラクションにおける任意の共用オブジェクトに対するレンジを要求し、オブジェクトリスト内には唯一つ存在するに過ぎない。従って、ファインダは共用オブジェクトオフセットテーブル２７２から決定されるように、この共用オブジェクトに対して１１２０００−１１３０００のレンジを要求する。その頁の内容の５／８は該頁上の他の共用オブジェクトのみに対する参照を有しているので（共用ＩＤ２）、本プロセスはステップ２９４の後ステップ２８６へ復帰する。次の反復において、ファインダは共用ＩＤ２を有しており且つフラクション番号５であるオブジェクトリスト内の次の共用オブジェクトを検査する。従って、頁内容の次の４／８がステップ２９２において検索され、それは検査された共用オブジェクトを包含する５／８までであり且つそれを包含するものである（一方、ステップ２９２はループを介して各階毎に一つのフラクションを要求し且つ共用オブジェクト参照が見つかるまでステップ２９４をスキップすることによって、複数回（５）実行することが可能である）。従って、文書ファイルのバイト２５５０１−２７５００からの頁内容のレンジが要求される（四つのフラクション＝２０００バイト）。次いで、ステップ２９４において、レンジ２０００００−２０２０００における５番目のフラクションによって参照される共用オブジェクト（及び、その相互参照情報）が要求される。さらなる共用オブジェクトは頁内容において参照されないので、ファインダは２７５０１−２９０００のバイトレンジ（及びその相互参照情報）を有するステップ２９６における頁内容の残りの部分を要求する。これら全てのバイト要求はホストコンピュータに対する単一の接続期間中に実行される。一方、図１４に例示した線形化した最適化フォーマットを参照して説明したように、バイトレンジの全ては一つのトランズアクションで要求することが可能である。
【０１７１】
従って、本発明のプロセスは、第一頁又は最初の組のテーブルがダウンロードされた後に、ソース即ち供給源に対しての一つの接続（又は、一つのトランズアクション）のみでソースコンピュータから要求した頁全体に対するデータを読取ることを可能とする。従って、頁データは、ユーザに対してより少ない待機時間で、より迅速にダウンロードし且つ表示させることが可能である。インターリーブプロセスにおいては、これらの共用オブジェクトを参照する頁内容の部分のすぐ後に、共用オブジェクトをダウンロードさせることが可能である。このことは、共用オブジェクトがダウンロードされることを待機する必要性なしに、頁の一部をすぐさまユーザに対して表示させることを可能とする。
【０１７２】
本発明を幾つかの特定の実施例について説明したが、本明細書を読み且つ図面を検討することにより、当業者にとってその変形例、修正例及び交換例が明らかになるものと思料する。例えば、本発明を例えばＰＤＦ文書などのポータブル電子文書に対して使用するものとして説明している。しかしながら、例えば、ばらばらにしたオブジェクト／データ、及び／又は共用オブジェクト／データなどのその他のファイル又はデータの集まりは、本発明によって最適化し且つダウンロードするのに適したものである。更に、説明した本発明の共用オブジェクトインターリーブは、より高速のダウンロードのために最適化したファイルを提供するために必ずしも必要なものではない。更に、説明した実施例において記載した多くのステップ又はプロセスは記載した実施例に対して特定的なものであり、その他の実施例において変更したり省略したりすることが可能である。例えば、図１０のダウンロードプロセスにおいてファインダ及びビュアの使用は特定の実施例に適合すべく変更することが可能である。更に、説明を簡潔的なものとする目的のためにある用語を使用しているが、本発明を制限するものではない。例えば、「テーブル」という用語は、従来のテーブル即ち表形式の構造を有するデータ構造のみを包含するものとして狭く読まれることを意図しているものではなく、その用語は必要とされる情報を担持する全ての形態のデータ構造を包含すべきものである。従って、以下の添付の請求の範囲はこれら全ての変形例、修正例及び交換例が本発明の真の精神及び範囲内に入るものであることを意図している。
【図面の簡単な説明】
【０１７３】
【図１】本発明に基づいて最適化した文書を供給し及び／又は最適化したファイルからデータをダウンロードするコンピュータシステムのブロック図。
【図２ａ】ポータブル電子文書からの一つの頁及びブックマークビューを表示するビュアのディスプレイスクリーンの模式的概略図。
【図２ｂ】ポータブル電子文書からの一つの頁及び「サムネイル（ｔｈｕｍｂｎａｉｌ）」ウインドウを表示するビュアの表示スクリーンの模式的概略図。
【図３ａ】最適化していない文書ファイルの一例の模式的概略図。
【図３ｂ】本発明の最適化した文書ファイルの模式的概略図。
【図４】電子文書から最適化した文書ファイルを作成するための本発明のプロセスを例示したフローチャート。
【図５】オブジェクトの内部リスト及び共用オブジェクトのリストを作成する図４のステップを例示したフローチャート。
【図５ａ】図５のプロセスにおいて作成される共用オブジェクトリストの模式的概略図。
【図６】共用オブジェクトが処理される図５のステップを例示したフローチャート。
【図６ａ】図６のプロセスにおいて作成される共用頁リストの模式的概略図。
【図７】完成され且つ共用されるオブジェクトにおける共用頁リストが内部リスト内に組込まれる図５のステップを例示したフローチャート。
【図８】本発明の頁オフセットテーブルが最適化されたファイル内に配置される図４のステップを例示したフローチャート。
【図８ａ】図８のプロセスにおいて作成される頁オフセットテーブルの模式的概略図。
【図９】レンジテーブルが最適化されたファイル内に書込まれる図４のステップを例示したフローチャート。
【図９ａ】図９のプロセスにおいて作成されるレンジテーブルの模式的概略図。
【図１０】最適化した文書ファイルから頁をダウンロードするための本発明のプロセスを例示するフローチャート。
【図１１】ファインダーが文書からの頁オフセットテーブルを検索し且つ頁情報を決定する図１０のステップを例示したフローチャート。
【図１１ａ】図１１のプロセスにおいて展開される頁情報テーブルの模式的概略図。
【図１２】ビュアのホストとの接続期間中に要求された頁に対してファインダーが頁データの付加的なレンジを要求する場合の図１０のステップを例示したフローチャート。
【図１３ａ】異なるフォントを使用してテキストが段階的にレンダリングされる図１０のステップにおける本発明のオプションとしてのプロセスを例示したフローチャート。
【図１３ｂ】文書の活性要素が早期にイネーブルされる図１０のステップにおいて本発明のオプションとしてのプロセスを例示したフローチャート。
【図１３ｃ】テキストが下側に存在するオブジェクトが表示される前に表示される図１０のステップにおける本発明のオプションとしてのプロセスを例示したフローチャート。
【図１４】本発明の線形化した文書ファイルを例示したブロック図。
【図１５ａ】頁オフセットヒントテーブルの模式的概略図。
【図１５ｂ】共用オブジェクトヒントテーブルの模式的概略図。
【図１５ｃ】サムネイルヒントテーブルの模式的概略図。
【図１５ｄ】包括的オブジェクトヒントテーブルの模式的概略図。
【図１】
2006114012.tif 000003
【図２ａ】
2006114012.tif 000004
【図２ｂ】
2006114012.tif 000005
【図３ａ】
2006114012.tif 000006
【図３ｂ】
2006114012.tif 000007
【図４】
2006114012.tif 000008
【図５】
2006114012.tif 000009
【図５ａ】
2006114012.tif 000010
【図６】
2006114012.tif 000011
【図６ａ】
2006114012.tif 000012
【図７】
2006114012.tif 000013
【図８】
2006114012.tif 000014
【図８ａ】
2006114012.tif 000015
【図９】
2006114012.tif 000016
【図９ａ】
2006114012.tif 000017
【図１０】
2006114012.tif 000018
【図１１】
2006114012.tif 000019
【図１１ａ】
2006114012.tif 000020
【図１２】
2006114012.tif 000021
【図１３ａ】
2006114012.tif 000022
【図１３ｂ】
2006114012.tif 000023
【図１３ｃ】
2006114012.tif 000024
【図１４】
2006114012.tif 000025
【図１５ａ】
2006114012.tif 000026
【図１５ｂ】
2006114012.tif 000027
【図１５ｃ】
2006114012.tif 000028
【図１５ｄ】
2006114012.tif 000029