(57)【特許請求の範囲】
【請求項１】
フォントファイルをクライアントコンピュータにおいて動作する文書ビューアに提供するための、コンピュータに実装される方法であって、
第１のファイルフォーマットにおける文書に対応する、第２のファイルフォーマットにおけるレンダリング済み文書を求める要求を受信し、
前記第１のファイルフォーマットにおける前記文書を記憶デバイスから検索し、
前記第１のファイルフォーマットにおける前記文書を前記第２のファイルフォーマットにおける前記レンダリング済み文書に変換し、
前記レンダリング済み文書を表示するための１またはそれより多くのサーバフォントファイルを生成し、前記第２のファイルフォーマットにおける前記レンダリング済み文書は前記第１のファイルフォーマットにおける前記文書と同一のレイアウトおよび同一の解像度を有し、前記レンダリング済み文書内に完全に配置されたテキストであるテキストを含有し、前記サーバフォントファイルは複数の文書に亘って最も一般的に使用されるフォント及び文字を含有するフォントファイルを含む共通のフォントサブセットを含み、文書ごとのフォントサブセットは前記共通のフォントサブセットに含まれないフォントを含有す
るフォントファイルを含み、完全に配置されたテキストであることによって、フォントレイアウト情報が不要となり、当該フォントレイアウト情報が、文字の位置、文字のサイズ、文字の間のスペースを示すものであり、それにより、前記共通のフォントサブセット及び前記文書ごとのフォントサブセットの中に、文字の位置、文字のサイズ及び文字の間のスペースを含むフォントレイアウト情報が不要となり、
前記レンダリング済み文書および前記サーバフォントファイルを格納する
のための動作を含むことを特徴とする方法。
【請求項２】
前記レンダリング済み文書および前記サーバフォントファイルを前記文書ビューアに転送するためのコンピュータに実装される動作であって、前記文書ビューアは前記サーバフォントファイルを利用して前記レンダリング済み文書を表示する動作をさらに含むことを特徴とする請求項１に記載のコンピュータに実装される方法。
【請求項３】
前記第２のファイルフォーマットにおける前記レンダリング済み文書が前記第１のファイルフォーマットにおける前記文書の完全に忠実な表現を含むことを特徴とする請求項１に記載のコンピュータに実装される方法。
【請求項４】
前記第１のファイルフォーマットにおける文書を第２のファイルフォーマットにおける前記レンダリング済み文書に変換することは、
前記第１のファイルフォーマットにおける前記文書のページまたはスライドを前記第２のファイルフォーマットにおける前記レンダリング済み文書のページまたはスライドに変換することと、
前記レンダリング済み文書のページまたはスライドを表示のために前記文書ビューアに提供することと、
前記レンダリング済み文書のページまたはスライドを表示のために前記文書ビューアに提供することにおいて、第１のファイルフォーマットにおける前記文書の次のページまたはスライドを前記第２のファイルフォーマットにおける前記レンダリング済み文書の次のページまたはスライドに変換することと
を含むことを特徴とする請求項１に記載のコンピュータに実装される方法。
【請求項５】
前記第２のファイルフォーマットにおける前記レンダリング済み文書を表示するための１またはそれより多くのサーバフォントファイルを生成することは、
前記レンダリング済み文書において利用されるフォントがローカルフォントリストに含有されるかどうかを判定することであって、前記ローカルフォントリストはクライアントコンピュータ上に格納されることが予測されるフォントファイルのリストを含有することと、
前記レンダリング済み文書において利用される前記フォントがローカルフォントリストに含有されると判定されたことに応答して、ローカルフォントリスト上に含有されるローカルフォント情報を前記レンダリング済み文書に挿入することと
を含むことを特徴とする請求項１に記載のコンピュータに実装される方法。
【請求項６】
前記レンダリング済み文書を表示するための１またはそれより多くのサーバフォントファイルを生成することは、
前記レンダリング済み文書において利用される前記フォントが共通のフォントサブセットに含有されるかどうかを判定することと、
前記レンダリング済み文書において利用される前記フォントが前記共通のフォントサブセットに含有されると判定されたことに応答して、前記レンダリング済み文書および前記共通のフォントサブセットを前記文書ビューアに転送することと
をさらに含むことを特徴とする請求項５に記載のコンピュータに実装される方法。
【請求項７】
前記レンダリング済み文書を表示するための１またはそれより多くのサーバフォントファイルを生成することは、
前記レンダリング済み文書において利用される前記フォントが前記共通のフォントサブセットに含有されないと判定されたことに応答して、文書ごとのフォントサブセットを生成すること
をさらに含むことを特徴とする請求項６に記載のコンピュータに実装される方法。
【請求項８】
前記サーバフォントファイルからフォントレイアウト情報が除去されることを特徴とする請求項１に記載のコンピュータに実装される方法。
【請求項９】
コンピュータ実行可能命令を格納するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピュータにより実行される時に、請求項１に記載のコンピュータに実装される方法を前記コンピュータに実行させることを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ上の文書を閲覧するためのフォントの取扱いに関する。
【背景技術】
【０００２】
ワードプロセシングおよび他のオーサリングソフトウェアアプリケーションには、文書をオーサリング可能な充実したフォントのライブラリを含むことができる。所与の文書には、１またはそれより多くの異なるフォントにおいて書式設定されるテキストを含むことができる。これらのフォントを、グリフ、文字、記号、およびいくつかの方法でテキストを表示するための様々な他の情報を含有するファイルに格納することができる。文書のテキストを正しく表示するために、文書閲覧のアプリケーションは、適切なフォントファイルへのアクセスを必要とすることがある。
【０００３】
ウェブブラウザは、ワールドワイドウェブ（「ｗｅｂ」）全体で共有される文書を閲覧するための一般的なツールである。従来のウェブブラウザでは、ＨＴＭＬ（HyperText Markup Language）でオーサリングされた文書を表示する。しかし、ＨＴＭＬでは、従来のオーサリングアプリケーションに比べて、限定された文書の書式設定の能力のみが提供されるため、ネイティブの書式からＨＴＭＬに変換された文書では、一般的にレイアウトおよび他の視覚的情報が失われる。従って、ウェブブラウザ上に表示されるＨＴＭＬに変換された文書は、オーサリングソフトウェアアプリケーション上に表示される元々の文書とは著しく異なるものに見えることがある。ウェブブラウザはまた、ＡＤＯＢＥ（登録商標）社のＦＲＡＳＨ（登録商標）および本件出願人の販売するＳＩＬＶＥＲＬＩＧＨＴ（商標）等の追加の文書形式を表示する能力がある。
【０００４】
ウェブブラウザには典型的には、フォントファイルが含まれない。従って、ウェブブラウザでは、所与の文書を表示する前に１またはそれより多くのフォントファイルを取得することが必要とされる可能性がある。しかし、これらのフォントファイルは、ラテン系の言語のものなどは大きく、及び、東アジア系の言語のものは極めて大きなものになってしまう。大きなフォントをダウンロードすることは、ウェブブラウザが、文書を表示する前に必要なフォントファイルがダウンロードされるまで待たされることになるため、文書のロード時間に悪影響を与えることになりかねない。ダウンロード時間の増加は、文書のオンデマンド閲覧を所望するユーザに対して多大なフラストレーションを与えることになる。
【０００５】
これらの考察およびその他に対して、本明細書においてなされる開示が提示される。
【発明の概要】
【０００６】
ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための技術が、本明細書において説明される。文書を表示するために、大きなフォントファイルがウェブブラウザまたは他の適切な文書ビューアに転送される従来の手法とは異なり、本明細書に説明される実施形態では、サーバが文書ビューアに転送するフォントデータの量を減少する。フォントデータの量を、ローカルフォントファイル、共通のフォントサブセット、および文書ごとのフォントサブセット、を介して減少できる。
【０００７】
ローカルフォントファイルは、文書ビューアを実行するコンピュータにおいて既に存在するフォントファイルである。文書ビューアが、ローカルフォントファイルのみで文書により表示できる場合、サーバが追加のフォントデータをウェブブラウザに転送する必要はない。共通のフォントサブセットは、最も共通して使用されるフォントおよび文字を含有するフォントファイルである。共通のフォントサブセットは、複数のファイルで利用可能なサイズが縮小されたファイルである。共通のフォントサブセットはまた、文書ビューアのキャッシュに格納させることができる。このようにして、共通のフォントサブセットを利用して、サーバが共通のフォントサブセットを再転送することを必要とせずに、複数の文書を表示することができる。文書ごとのフォントサブセットは、共通のフォントサブセットに含まれないフォントを文書が含有する時に、生成されて文書ビューアに提供される、文書に特有のフォントファイルである。共通のフォントサブセットに含まれないフォントを、文書ごとのフォントサブセットに含むことができる。
【０００８】
一実施形態に従うと、本明細書において、クライアントコンピュータ上で動作する文書ビューアにフォントファイルを提供するための方法が提供される。文書に対応するレンダリング済み文書を求める要求が受信される。文書は記憶デバイスから検索される。文書は、レンダリング済み文書に変換される。レンダリング済み文書に関連する１またはそれより多くのサーバフォントファイルが生成される。レンダリング済み文書およびサーバフォントファイルが格納される。
【０００９】
上述の主題を、コンピュータ制御の装置、コンピュータ処理、コンピュータシステムとして、または、コンピュータ可読記憶媒体等の製造品としても、実装することができることは理解すべきである。これらおよび種々の他の特徴は、以下の発明を実施するための形態を読むことにより、および、関連する図面をレビューすることにより明らかにされるであろう。
【００１０】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供される。この要約は、特許請求の範囲の主題の重要な特徴または主要な特徴を確認することを意図しておらず、この要約を使用して、請求される主題の範囲を制限することを意図してもいない。さらに、特許請求の範囲の主題は、本開示の任意の部分に示される、任意または全ての不利を解決するための実装に制限されない。
【図面の簡単な説明】
【００１１】
【図１】実施形態に従って、ウェブを介して文書をレンダリングおよび表示するよう動作する、例示のシステムアーキテクチャを示すブロック図である。
【図２】実施形態に従って、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための例示の処理を示すフロー図である。
【図３Ａ】実施形態に従って、図１のレンダリングモジュールの例示される動作を示すフロー図である。
【図３Ｂ】実施形態に従って、図１のレンダリングモジュールの例示される動作を示すフロー図である。
【図３Ｃ】実施形態に従って、図１のレンダリングモジュールの例示される動作を示すフロー図である。
【図４】実施形態に従って、図１のウェブブラウザの例示の動作を示すフロー図である。
【図５】本明細書に提示される実施形態を実装する能力があるコンピュータシステムのための例示のコンピュータハードウェアアーキテクチャを示す、コンピュータアーキテクチャの図である。
【発明を実施するための形態】
【００１２】
以下の発明を実施するための形態は、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための技術に向けられる。本明細書に提示される技術および概念の利用を通じて、従来のウェブ文書閲覧のシナリオの場合のような、フォントファイルおよびパッケージの全体をダウンロードする必要を排除することにより、文書のロード時間を減少させることができる。特に、本明細書に記載される実施形態では、ローカルフォントファイル、共通のフォントサブセット、および文書ごとのフォントサブセットの使用を通じて、文書のロード時間を減少させることができる。
【００１３】
本明細書に記載される実施形態は主に、ウェブブラウザに対して文書のロード時間を向上させることに言及するが、そのように限定されるわけではない。しかし、本明細書に説明される実施形態を、ネットワーク上を転送される文書をロードおよび表示する能力がある任意の適切な文書ビューアに適用することができることは理解すべきである。そのような文書ビューアの別の例には、ＰＤＦ（Portable Document Format）リーダがある。
【００１４】
本明細書に記載される主題が、コンピュータシステム上におけるオペレーティングシステムおよびアプリケーションプログラムの実行に連動して実行されるプログラムモジュールの一般的なコンテキストで提示される一方、当業者は、他のタイプのプログラムモジュールと組み合わせて他の実装を実行することができることを、認識するであろう。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造、および、特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造、が含まれる。さらに、当業者は、本明細書に説明される主題を、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、などを含む他のコンピュータシステム構成と共に実現することができることは理解するであろう。
【００１５】
以下の発明を実施するための形態において、この一部を形成する添付の図面に対する参照がなされ、図面は例示、特定の実施形態、または例として示される。ここで図面を参照すると、いくつかの図面を通して同様の数字で同様の要素が表わされ、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための概念および技術が説明される。特に、図１は、ウェブを介して文書をレンダリングおよび表示するよう動作するシステムアーキテクチャ１００を示すブロック図である。アーキテクチャ１００には、フロントエンドサーバ１０２、バックエンドサーバ１０４、記憶デバイス１０６、および、クライアントコンピュータ１０８を含む。フロントエンドサーバ１０２は、インターネット等のネットワーク１１０を介してクライアントコンピュータ１０８と通信することができる。
【００１６】
実施形態に従うと、フロントエンドサーバ１０２には、文書マネージャ１１２を含み、文書マネージャ１１２はウェブブラウザ１１４から文書要求を受信するよう動作する。例えば、文書マネージャ１１２は、文書１１６Ａまたは文書１１６Ａの一部を求める要求を受信することができる。文書１１６Ａは、ワープロ文書、スプレッドシート、プレゼンテーション、または他のタイプの文書とすることができる。文書要求は、ＨＴＴＰ（HyperText Transfer Protocol）メッセージとすることができる。
【００１７】
ウェブブラウザ１１４から文書要求を受信することにおいて、文書マネージャ１１２は、レンダリングモジュール１１８から、要求された文書１１６Ａのレンダリングされた表現を要求することができる。図１に例示するように、文書１１６Ａのレンダリングされた表現は、レンダリング済み文書１１６Ｂであり、これは、対応する文書１１６Ａの完全に忠実な表現である。完全に忠実な表現は、元々の表現においてみられる同一の特徴（例えば、レイアウト、解像度、コンテンツ等）を含有する。従って、ユーザは、生産性アプリケーションプログラムを介して閲覧しようと、または、ウェブブラウザ１１４等のウェブブラウザを介して閲覧しようと、所与の文書について、同一の閲覧経験を期待することができる。完全に忠実な表現は、例えば、レイアウトが変更されている、または、解像度およびコンテンツが減少しているなど、低い忠実性の表現に対して対比させることができる。
【００１８】
文書１１６Ａのレンダリングされた表現を求める要求を受信することにおいて、レンダリングモジュール１１８は、記憶デバイス１０６から文書１１６Ａを取り出す。次に、レンダリングモジュール１１８は、文書１１６Ａを、テキスト、画像、および他のマルチメディアを含むレンダリング済み文書１１６Ｂにレンダリングする。そして、レンダリングモジュール１１８は、レンダリング済み文書１１６Ｂを文書マネージャ１１２に転送し、レンダリング済み文書１１６Ｂを記憶デバイス１０６に格納することができる。このように、文書マネージャ１１２は、レンダリングモジュール１１８にアクセスするのではなく、記憶デバイス１０６からレンダリング済み文書１１６Ｂを取り出すことにより、文書１１６Ａのレンダリングされた表現に対して続く要求を行うことができる。
【００１９】
実施形態に従うと、レンダリングモジュール１１８はまた、必要に応じて、文書ごとのフォントサブセット１２２等のサーバ生成のフォントファイルを生成することができる。レンダリングモジュール１１８は、文書ごとのフォントサブセット１２２を記憶デバイス１０６に格納することができる。サーバ生成のフォントファイルに加えて、バックエンドサーバ１０４が、共通のフォントサブセット１２０等の予め生成されるフォントファイルを含むことができる。実施形態に従うと、共通のフォントサブセット１２０は、文書ごとのフォントサブセット１２２のようにランタイムの代わりにビルドタイムに生成しても良い。サーバ生成のフォントファイルおよび予め生成されるフォントファイルは、まとめて、本明細書においてはサーバフォントファイルと呼ぶことができる。図１の例において例示されるように、バックエンドサーバ１０４はまた、ローカルフォントリスト１２４を保持することができる。共通のフォントサブセット１２０、文書ごとのフォントサブセット１２２、およびローカルフォントリスト１２４の作成、内容、および適用については、以下において図２から４との関係において下でより詳細に説明する。
【００２０】
レンダリング済み文書１１６Ｂおよびサーバ生成のフォントファイルが生成され記憶デバイス１０６に格納された後、文書マネージャ１１２は、レンダリング済み文書１１６Ｂをウェブブラウザ１１４に提供することができ、ウェブブラウザ１１４は、レンダリング済み文書１１６Ｂを表示するよう動作する。文書１１６Ａを求める最初の要求が受信されると、文書マネージャ１１２は、レンダリング済み文書１１６Ｂを、レンダリングモジュール１１８により生成されるのと同様に、ウェブブラウザ１１４に転送することができる。レンダリング済み文書１１６Ｂはまた、記憶デバイス１０６に格納される。従って、文書１１６Ａのレンダリングされた表現を求めて続く要求が受信されると、文書マネージャ１１２は、バックエンドサーバ１０４上のレンダリングモジュール１１８にアクセスする必要がなく、レンダリング済み文書１１６Ｂを記憶デバイス１０６から検取り出すことができる。
【００２１】
ウェブブラウザ１１４がレンダリング済み文書１１６Ｂにおいて利用されるフォントを表示するために、文書マネージャ１１２は、ウェブブラウザ１１４にサーバフォントファイルをさらに提供することができる。加えて、ウェブブラウザ１１４は、必要に応じて、文書マネージャ１１２からサーバフォントファイルを要求することができる。いくつかの実施形態において、ウェブブラウザ１１４は、文書マネージャ１１２により提供されるサーバフォントファイルを利用して、レンダリング済み文書１１６Ｂを表示することができる。他の実施形態において、ウェブブラウザ１１４は、ローカルフォントファイル１２６等のローカルフォントファイルを利用して、レンダリング済み文書１１６Ｂを表示することができる。ローカルフォントファイル１２６の作成、内容、および適用については、以下において図２から４との関係においてより詳細に説明する。
【００２２】
ここで図２から４を参照すると、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための本明細書に提示される実施形態に関して、追加の詳細が提供される。特に、図２は、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための例示の処理を示すフロー図である。図３は、レンダリングモジュール１１８の例示される動作を示すフロー図である。図４は、ウェブブラウザ１１４の例示の動作を示すフロー図である。
【００２３】
本明細書に記載される論理演算が、（１）コンピュータシステム上で実行するコンピュータ実装の動作またはプログラムモジュールのシーケンスとして、および／または、（２）コンピュータシステム内の相互に接続されるマシンの論理回路または回路モジュールとして実装される、ことは理解すべきである。実装は、コンピュータシステムの性能および他の要件に依存して選択される事項である。従って、本明細書に記載される論理演算は、種々に、状態動作、構造的デバイス、行動、またはモジュールと称される。これらの動作、構造的デバイス、行動およびモジュールを、ソフトウェア、ファームウェア、専用のデジタル論理、および、それらの任意の組み合わせにおいて実装することができる。図面で示されるものおよび本明細書に記載されるものより、多くのまたは少ない動作を実行することができることは理解すべきである。これらの動作も、本明細書に記載されるものとは異なる順番で実行することができる。
【００２４】
ここで図２を参照すると、ルーチン２００が動作２０２にて開始され、文書マネージャ１１２が、ウェブブラウザ１１４から、文書１１６Ａ等の文書を求める要求を受信する。ルーチン２００は次に、動作２０４に進み、文書マネージャ１１２が、要求された文書１１６Ａに対応するレンダリング済み文書を求める要求を転送する。この場合、レンダリング済み文書１１６Ｂは文書１１６Ａに対応する。文書マネージャ１１２が、レンダリング済み文書１１６Ｂを求める要求をレンダリングモジュール１１８に転送すると、ルーチン２００は動作２０６に進む。
【００２５】
動作２０６にて、レンダリングモジュール１１８は、文書マネージャ１１２から、レンダリング済み文書１１６Ｂを求める要求を受信する。ルーチン２００は次に、動作２０８および２１０に進み、レンダリング済み文書１１６Ｂを求める要求を受け取ると、レンダリングモジュール１１８が、記憶デバイス１０６から文書１１６Ａを取り出し、文書１１６Ａをレンダリング済み文書１１６Ｂにレンダリング（すなわち、コンバート、変換）する。文書１１６Ａをレンダリング済み文書１１６Ｂにレンダリングすることにより、レンダリングモジュール１１８は、テキスト、画像、および文書１１６Ａ内に含有される他のマルチメディアを、第１の形式から文書１１６Ａの完全に忠実な表現である第２の形式にコンバートすることができる。いくつかの実施形態において、テキスト、画像、および／または他のマルチメディアを、単一の文書の一部であるが、別個のファイルに格納することができる。
【００２６】
例示の例において、第１の形式は、ワードプロセシングアプリケーション、プレゼンテーションアプリケーション、スプレッドシートアプリケーションなどのオーサリングソフトウェアアプリケーションと互換性を有することができる。第２の形式は、ウェブブラウザ１１４と互換性を有することができる。ウェブブラウザ１１４と互換性を有する例の形式には、画像形式（例えば、ＰＮＧ（Portable Network Graphics）、ＪＰＥＧ（Joint Photographic Experts Group）等）、本件出願人のＳＩＬＶＥＲＬＩＧＨＴ（商標）、ＡＤＯＢＥ（登録商標）社のＦＬＡＳＨ（登録商標）、などを含む。いくつかの実施形態に従って、レンダリング済み文書１１６Ｂに含有されるテキストを、ＸＡＭＬ（Extensible Application Markup Language）コードで書式設定することができる。ＸＡＭＬコードはまた、以下においてより詳細に説明するように、ローカルフォント情報を含むことができる。レンダリングモジュール１１８が文書１１６Ａをレンダリング済み文書１１６Ｂにレンダリングすると、ルーチン２００は動作２１２に進む。
【００２７】
動作２１２にて、レンダリングモジュール１１８は、必要に応じて、文書ごとのフォントサブセット１２２等のサーバ生成のフォントファイルを生成する。文書ごとのフォントサブセット１２２は、少なくとも、共通のフォントサブセット１２０には無いフォントおよび文字を含む文書特定のフォントファイルである。共通のフォントサブセット１２０は、最も一般的に使用されるフォントおよび文字を含有するフォントファイルである。共通のフォントサブセット１２０は、文書とは独立しており、また、複数の文書に亘って利用され得る。実施形態に従うと、共通のフォントサブセット１２０は、ビルドタイム時に事前に生成され、一方、文書ごとのフォントサブセット１２２は、ランタイム時にレンダリング済み文書１１６Ｂ全体を分析することにより、生成される。
【００２８】
共通のフォントサブセット１２０および文書ごとのフォントサブセット１２２において、任意のフォントレイアウト情報を削除することができ、それにより、共通のフォントサブセット１２０および文書ごとのフォントサブセット１２２のサイズをさらに減少することができる。特に、従来のフォントファイルには、文字の位置、各文字の大きさ、文字間の間隔などを示すレイアウト情報が含まれる。アーキテクチャ１００において、レンダリング済み文書１１６Ｂに含有されるテキストは、レンダリングの処理の性質により絶対的に位置決めされたテキストである。テキストがレンダリング済み文書１１６Ｂ内で絶対的に位置決めされるため、従来のフォントファイル内のレイアウト情報が不必要となる。レンダリングモジュール１１８が、必要に応じて、サーバ生成のフォントファイルを生成すると、ルーチン２００は動作２１４に進む。
【００２９】
動作２１４にて、レンダリングモジュール１１８は、レンダリング済み文書１１６Ｂを文書マネージャ１１２に転送する。次にルーチン２００は、動作２１６および２１８に進む。動作２１６にて、レンダリングモジュール１１８は、レンダリング済み文書１１６Ｂおよび任意のサーバ生成のフォントファイルを記憶デバイス１０６に格納する。このように、文書マネージャ１１２は、レンダリングモジュール１１８にアクセスするのではなく、対応するレンダリング済み文書１１６Ｂを記憶デバイス１０６から検索することにより、文書１１６Ａを求める追加の要求を行うことができる。動作２１８にて、文書マネージャ１１２は、少なくともレンダリング済み文書１１６Ｂをウェブブラウザ１１４に転送する。次にウェブブラウザ１１４は、レンダリング済み文書１１６Ｂを表示することができる。
【００３０】
いくつかの実施形態において、文書マネージャ１１２はまた、共通のフォントサブセット１２０および文書ごとのフォントサブセット１２２等の１またはそれより多くのサーバフォントファイルを、レンダリング済み文書１１６Ｂと共にウェブブラウザ１１４に転送する。他の実施形態において、文書マネージャ１１２は、ウェブブラウザ１１４からの要求に応じて１またはそれより多くのサーバフォントファイルをウェブブラウザ１１４に転送することができる。
【００３１】
ここで図３を参照すると、レンダリングモジュール１１８の動作に関して追加の詳細が実施形態に従って説明されるであろう。特に、ルーチン３００は、レンダリングモジュール１１８が、文書１１６Ａを徐々にレンダリングする（すなわち、個々のページまたはスライドごとにレンダリングする）、レンダリングモジュール１１８の例示の動作を示す。図３に例示されるように、ルーチン３００が動作３０２にて開始され、レンダリングモジュール１１８は、文書１１６Ａ内の次のページまたはスライドをレンダリング済み文書１１６Ｂ内の対応するページまたはスライドにレンダリングする。レンダリング済み文書１１６Ｂ内のこの対応するページまたはスライドは、本明細書においてはレンダリング済みのページまたはスライドと呼ぶことができる。レンダリングモジュール１１８は、文書１１６Ａ内の第１のページまたはスライド上のレンダリング処理を開始する。しかし、レンダリングモジュール１１８はまた、ページおよびスライドを他の適切な順番で横断することができる。レンダリングモジュール１１８が文書１１６Ａ内のページまたはスライドをレンダリング済みのページまたはスライドにレンダリングすると、ルーチン３００は動作３０４に進む。
【００３２】
動作３０４にて、レンダリングモジュール１１８は、レンダリング済みのページまたはスライドにおいて利用されるフォントがローカルフォントリスト１２４上に含有されるかどうかを判定する。実施形態に従うと、ローカルフォントリスト１２４は、クライアントコンピュータ１０８上にあると予測されるまたはあり得るローカルフォントのリストを含有する。例えば、ローカルフォントリスト１２４は、少なくもTimes New RomanおよびArialのフォントに加えて、文字ＡからＺ、および数字０から９、を含むことができる。ローカルフォントリスト１２４は、同一のフォントの異なるバージョンに適合するために文字範囲をさらに含むことができる（例えば、あるオペレーティングシステムにおけるArialフォントは、別のオペレーティングシステムにおけるArialフォントとは異なることがある）。これらのローカルフォントは、クライアントコンピュータ１０８上にインストールされる、ワードプロセシングアプリケーション、スプレッドシートアプリケーション、プレゼンテーションアプリケーションなどのオーサリングソフトウェアアプリケーション内に含有させることができる。クライアントコンピュータ１０８上にインストールされるソフトウェアアプリケーションを識別することにより、および、典型的には識別されたソフトウェアアプリケーション内に含まれるフォントにローカルフォントリスト１２４を投入することにより、ローカルフォントリスト１２４を判定することができる。ウェブブラウザおよび他のソフトウェアアプリケーションにより文書が要求されるランタイムより前に、ローカルフォントリスト１２４が予め生成されることを理解すべきである。
【００３３】
レンダリングモジュール１１８が、レンダリング済みのページまたはスライドにおいて利用されるフォントがローカルフォントリスト１２４上に含有される、と判定する場合は、ルーチン３００は動作３０５に進み、レンダリングモジュール１１８が、ローカルフォントリスト１２４上に含有される情報等のローカルフォント情報を、レンダリング済みのページまたはスライドに挿入する。例えば、ローカルフォント情報を、ＸＡＭＬコード内に挿入させることができる。ルーチンは次に動作３０６に進む。レンダリングモジュール１１８が、レンダリング済みのページまたはスライドにおいて利用されるフォントがローカルフォントリスト１２４に含有されない、と判定する場合は、ルーチン３００はまた、動作３０６に進む。
【００３４】
動作３０６にて、レンダリングモジュール１１８が、レンダリング済みのページまたはスライドにおいて利用されるフォントが共通のフォントサブセット１２０内に含有されるかどうか、を判定する。上記で説明したように、共通のフォントサブセット１２０は、最も一般的に使用されるフォントおよび文字を含有するフォントファイルである。これらの一般的に使用されるフォントおよび文字は、どのフォントおよび文字が複数の文書に亘って最も高い頻度で現れるかを判定するために、既存の文書を分析することにより判定され得る。例えば、共通のフォントサブセット１２０は、少なくともTimes New RomanおよびArialのフォントに加えて、文字ＡからＺ、および数字０から９、を含むことができる。共通のフォントサブセット１２０は、同一のフォントの異なるバージョンに適合するために文字範囲をさらに含むことができる。一般的に使用されるフォントおよび文字を判定するための他の適切な技術を、同様に利用することができる。
【００３５】
レンダリングモジュール１１８が、レンダリング済みのページまたはスライドにおいて利用されるフォントが共通のフォントサブセット１２０に含有されない（すなわち、そこから失われている）、と判定する場合、ルーチン３００は動作３０７に進み、レンダリングモジュール１１８が文書ごとのフォント情報を収集し、文書ごとのフォント情報は後でレンダリングモジュール１１８により利用されて文書ごとのフォントサブセット１２２が生成される。例えば、レンダリングモジュール１１８は、レンダリング済み文書１１６Ｂ全体（すなわち、レンダリング済み文書１１６Ｂの全てのページまたはスライド）を分析して、ウェブブラウザ１１４がレンダリング済み文書１１６Ｂを表示するのにどのフォントが必要であるかを判定することができる。これらのフォントは、文書ごとのフォント情報内に含むことができる。レンダリングモジュール１１８が文書ごとのフォント情報を収集すると、ルーチン３００は動作３１２に進む。さらに、レンダリングモジュール１１８が、レンダリング済みのページまたはスライドにおいて利用されるフォントが共通のフォントサブセット１２０に含有される、と判定する場合、ルーチン３００はまた、動作３１２に進む。
【００３６】
動作３１２にて、レンダリングモジュール１１８はレンダリング済みのページまたはスライドを生成し、レンダリング済みのページまたはスライドは後で文書マネージャ１１２に転送することができる。次に文書マネージャ１１２は、レンダリング済みのページまたはスライドを表示するためにウェブブラウザ１１４に提供することが可能である。この時点で、文書マネージャ１１２はまた、共通のフォントサブセット１２０を、レンダリング済みのページまたはスライドと共にウェブブラウザ１１４に提供することもできる。代替えとして、文書マネージャ１１２は、ウェブブラウザ１１４から要求を受信したことに応答して、共通のフォントサブセット１２０をウェブブラウザ１１４に転送することができる。例えば、ウェブブラウザ１１４は、共通のフォントサブセット１２０がウェブブラウザのキャッシュに転送されていない場合に、共通のフォントサブセット１２０を求める要求を文書マネージャ１１２転送することができる。
【００３７】
レンダリングモジュール１１８がレンダリング済みのページまたはスライドを生成すると、ルーチン３００は動作３１４に進み、レンダリングモジュール１１８が、レンダリング済み文書１１６Ｂの対応するページまたはスライドにレンダリングすべき、任意の追加のページまたはスライドが文書１１６Ａ内にあるかどうかを判定する。レンダリングモジュール１１８が、レンダリングすべき追加のページまたはスライドが文書１１６Ａ内にあると判定する場合、ルーチン３００は動作３０２に進み、レンダリングモジュール１１８は文書１１６Ａ内の次のページまたはスライドをレンダリングする。そして、ルーチン３００は、上記で説明したように継続される。レンダリングモジュール１１８が、レンダリングすべき追加のページまたはスライドが文書１１６Ａ内に無いと判定する場合、ルーチン３００は動作３１６に進む。
【００３８】
動作３１６にて、レンダリングモジュール１１８は、動作３０７にて収集された文書ごとのフォント情報に基づき文書ごとのフォントサブセット１２２を生成する。特に、文書ごとのフォントサブセット１２２には、少なくともウェブブラウザ１１４がレンダリング済み文書１１６Ｂを表示するのに必要なフォントを含むことができる。従って、文書ごとのフォントサブセット１２２には、レンダリング済み文書１１６Ｂに特有のフォントを含むことができる。文書ごとのフォントサブセット１２２は、共通のフォントサブセット１２０およびローカルフォントファイル１２６に含まれるフォントを含んでも含まなくても良い。文書ごとのフォントサブセット１２２を、ルーチン３００内の種々の他の時点において生成することができることは理解すべきである。レンダリングモジュール１１８が文書ごとのフォントサブセット１２２を生成すると、ルーチン３００は動作３１８に進む。
【００３９】
動作３１８にて、レンダリングモジュール１１８は、レンダリング済みのページまたはスライドを文書マネージャ１１２に転送する。文書マネージャ１１２は次に、レンダリング済み文書１１６Ｂを表示するためにウェブブラウザ１１４に提供することが可能である。この場合、ウェブブラウザ１１４は、ローカルフォントファイル１２６等のローカルフォントファイルを利用して、レンダリング済み文書１１６Ｂを表示することを試みることができる。例えば、ウェブブラウザ１１４は、レンダリング済みのページまたはスライドに挿入されたローカルフォント情報により特定されるようなローカルフォントファイルを利用することを試みることができる。ウェブブラウザ１１４が、ローカルフォントファイルを利用してレンダリング済み文書１１６Ｂを表示することができない場合、ルーチン３００は動作３２０に進み、文書マネージャ１１２は、ウェブブラウザ１１４から、文書ごとのフォントサブセット１２２を求める要求を受信することができる。文書ごとのフォントサブセット１２２を求める要求を受信したことに応答して、ルーチン３００は動作３２２に進み、文書マネージャ１１２が、レンダリング済み文書１１６Ｂを表示するために、文書ごとのフォントサブセット１２２をウェブブラウザ１１４に転送する。
【００４０】
実施形態に従うと、ローカルフォントファイル１２６等のローカルフォントファイルが利用可能でない場合は、文書ごとのフォントサブセット１２２または共通のフォントサブセット１２０を、ウェブブラウザ１１４に転送することができる。例えば、クライアントコンピュータ１０８は、ローカルフォントファイル１２６を利用するとレンダリング済み文書１１６Ｂを表示することが可能であるかどうか、を判定するよう動作するクライアント側の処理（図示せず）を実行することができる。クライアント側の処理が、ローカルフォントファイル１２６を利用するとレンダリング済み文書１１６Ｂを表示することは可能ではない、と判定する場合、ウェブブラウザ１１４は、文書ごとのフォントサブセット１２２または共通のフォントサブセット１２０を求める追加の要求を文書マネージャ１１２に転送することができる。文書ごとのフォントサブセット１２２または共通のフォントサブセット１２０を求める、又はウェブブラウザ１１４から要求を受信したことに応答して、文書マネージャ１１２は、文書ごとのフォントサブセット１２２または共通のフォントサブセット１２０をウェブブラウザ１１４に転送することができる。この場合、ウェブブラウザ１１４は、文書ごとのフォントサブセット１２２または共通のフォントサブセット１２０を利用して、レンダリング済み文書１１６Ｂを表示することができる。
【００４１】
ここで図４を参照すると、ウェブブラウザ１１４の動作に関して、追加の詳細が実施形態に従って説明される。特に、ルーチン４００は、少なくともレンダリング済み文書１１６Ｂの一部を受信する時のウェブブラウザ１１４の例示の動作を示す。図４に例示するように、ルーチン４００は動作４０２にて開始され、ウェブブラウザ１１４が、少なくともレンダリング済み文書１１６Ｂの一部を文書マネージャ１１２から受信する。特に、ウェブブラウザ１１４は、レンダリング済み文書１１６Ｂ全体、または、特定のページまたはスライドをレンダリング済み文書１１６Ｂから受信することができる。レンダリング済み文書１１６Ｂがレンダリング済み文書１１６Ｂを受信すると、ルーチン４００は動作４０４に進む。
【００４２】
動作４０４にて、ウェブブラウザ１１４は、ローカルフォントファイル１２６等のローカルフォントファイルが、レンダリング済み文書１１６Ｂを完全に忠実に表示するために必要なフォントを含有するかどうか、を判定する。ローカルフォントファイル１２６に加えて共通のフォントサブセット１２０および文書ごとのフォントサブセット１２２を検索して利用するようウェブブラウザ１１４を導く命令は、レンダリング済み文書１１６Ｂ内のＸＡＭＬコードに含有される。ローカルフォントファイル１２６は、クライアントコンピュータ１０８上にインストールされるオーサリングソフトウェアアプリケーションの一部とすることができる。ローカルフォントファイル１２６がレンダリング済み文書１１６Ｂを完全に忠実に表示するために必要なフォントを含有すると、ウェブブラウザが、判定する場合、ルーチン４００は動作４１２に進み、ウェブブラウザ１１４がローカルフォントファイル１２６を利用してレンダリング済み文書１１６Ｂを表示する。
【００４３】
ローカルフォントファイル１２６が、レンダリング済み文書１１６Ｂを完全に忠実に表示するために必要なフォントを含有しないと、ウェブブラウザ１１４が、判定する場合、ルーチン４００は動作４０６に進み、ウェブブラウザ１１４が、共通のフォントサブセット１２０および文書ごとのフォントサブセット１２２等の１またはそれより多くの適切なサーバフォントファイルを求める要求を文書マネージャ１１２に転送する。文書マネージャ１１２は次に、適切なサーバフォントファイルを検索し、サーバフォントファイルをウェブブラウザ１１４に転送することができる。ウェブブラウザ１１４が、適切なサーバフォントファイルを求める要求を文書マネージャ１１２に転送すると、ルーチン４００は動作４０８に進む。動作４０８にて、ウェブブラウザ１１４は、適切なサーバフォントファイルを文書マネージャ１１２から受信する。そして、ルーチン４００は動作４１０に進み、ウェブブラウザ１１４が、サーバフォントファイルを利用してレンダリング済み文書１１６Ｂを表示する。
【００４４】
ここで図５を参照すると、コンピュータ５００を示す例示のコンピュータアーキテクチャの図が例示される。コンピュータ５００には、プロセスユニット５０２（「ＣＰＵ」）、システムメモリ５０４、およびメモリ５０４をＣＰＵ５０２に連結させるシステムバス５０６が含まれる。コンピュータ５００には、レンダリングモジュール１１８等の１またはそれより多くのプログラムモジュール５１４を格納するための大容量記憶デバイス５１２と、記憶デバイス１０６等の１またはそれより多くのデータベース５１６と、がさらに含まれる。他のプログラムモジュール５１４には、ウェブブラウザ１１４および文書マネージャ１１２を含むことができる。大容量記憶デバイス５１２は、バス５０６に接続される大容量コントローラ（図示せず）を通してＣＰＵ５０２に接続される。大容量記憶デバイス５１２およびその関連するコンピュータ可読媒体は、コンピュータ５００のための不揮発性記憶装置を提供する。本明細書において包含されるコンピュータ可読媒体についての記載は、ハードディスクまたはＣＤ−ＲＯＭドライブ等の大容量記憶デバイスを参照するが、コンピュータ可読媒体をコンピュータ５００によるアクセスが可能な任意の利用可能なコンピュータ記憶媒体とすることができることは、当業者により理解されるべきである。
【００４５】
限定ではなく例として、コンピュータ可読媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報を格納するための任意の方法または技術で実装される、揮発性および不揮発性、着脱可能および着脱不可能な媒体を含むことができる。例えば、コンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disk）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹもしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を格納するために使用することが可能な、及び、コンピュータ５００によりアクセス可能な、任意の他の媒体、が含まれるがこれに限定されない。
【００４６】
種々の実施形態に従って、コンピュータ５００は、ネットワーク１１０等のネットワークを通してリモートコンピュータへの論理接続を使用するネットワーク環境において動作することができる。コンピュータ５００は、バス５０６に対して接続されるネットワークインターフェースユニット５１０を介してネットワーク１１０に接続することができる。ネットワークインターフェースユニット５１０を利用して、他のタイプのネットワークおよびリモートコンピュータシステムに対して接続することもできることは理解すべきである。コンピュータ５００にはまた、キーボード、マウス、マイク、およびゲームコントローラを含む多数の入力デバイス（図示せず）からの入力を受信および処理するための入力／出力コントローラ５０８を含むことができる。同様に、入力／出力コントローラ５０８は、ディスプレイまたは他のタイプの出力デバイス（図示せず）に出力を提供することができる。
【００４７】
上記に基づき、ウェブ上の文書を閲覧するための向上したフォントの取扱いを提供するための技術が本明細書において提示されることを理解すべきである。本明細書に提示される主題が、コンピュータ構造的特徴、方法論的動作およびコンピュータ可読媒体に特有の言語で記載されたが、添付の特許請求の範囲に定義される発明が、必ずしも本明細書に記載される特有の特徴、動作、または媒体に限定されないことは理解すべきである。むしろ、特有の特徴、動作、および媒体は、特許請求の範囲を実装する例示の形式として開示される。
【００４８】
上記に記載される主題は、例示のみの目的で提供されるのであり、制限するものとして解釈されるべきではない。例示され記載される例示の実施形態および用途に追随することなく、かつ、以下の請求項に記載される、本発明の真の趣旨および範囲から逸脱することなく、種々の修正および変更が、本明細書に記載される主題に対してなされ得る。
【図１】
0005911304.tif 000002
【図２】
0005911304.tif 000003
【図３Ａ】
0005911304.tif 000004
【図３Ｂ】
0005911304.tif 000005
【図３Ｃ】
0005911304.tif 000006
【図４】
0005911304.tif 000007
【図５】
0005911304.tif 000008