JP5385373B2 - ビューアクライアントにおける文書の高忠実度レンダリング - Google Patents

ビューアクライアントにおける文書の高忠実度レンダリング Download PDF

Info

Publication number
JP5385373B2
JP5385373B2 JP2011507517A JP2011507517A JP5385373B2 JP 5385373 B2 JP5385373 B2 JP 5385373B2 JP 2011507517 A JP2011507517 A JP 2011507517A JP 2011507517 A JP2011507517 A JP 2011507517A JP 5385373 B2 JP5385373 B2 JP 5385373B2
Authority
JP
Japan
Prior art keywords
document
client system
rendering
viewer
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011507517A
Other languages
English (en)
Other versions
JP2011525001A (ja
JP2011525001A5 (ja
Inventor
スデッシュクマール カプール スガンダー
アブド ラルフ
ツー ジェンジュン
ゴットウェイズ ユライ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011525001A publication Critical patent/JP2011525001A/ja
Publication of JP2011525001A5 publication Critical patent/JP2011525001A5/ja
Application granted granted Critical
Publication of JP5385373B2 publication Critical patent/JP5385373B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Description

本発明は、ビューアクライアントにおける文書の高忠実度レンダリングに関する。
様々な異なる環境において働いているユーザは、異なるアプリケーションに関連付けられているだろうあらゆる文書にアクセスしたいと願うだろう。従来の技術においては、ユーザが所定の文書を開きたいと願う場合、ユーザはクライアントシステムにその文書のためのアプリケーションをインストールして、その後に適切なアプリケーション内で当該所定の文書を開いていた。さらに最近の技術においては、ビューアクライアント(例えばブラウザ)がクライアントシステムにインストールされており、このクライアントはオンラインで文書を見ることをユーザに可能とするだろう。しかし、これらのビューアクライアントは、オンライン文書の比較的低い忠実度の表示を提供し得、このビューアクライアントを用いて仕事をする際に、総合的ユーザ経験は、全機能を有するアプリケーションを使用して仕事をする場合と比較して劇的に異なるだろう。例えば、完全なアプリケーションによってサポートされているいくつかのフォーマットは、ビューアクライアントでは維持されず、ビューアクライアントにおいてレンダリングされたコンテンツは、完全なアプリケーションによってレンダリングされたコンテンツと異なって表示されるだろう。
ツール及び技術はビューアクライアントにおける文書の高忠実度レンダリングに関して説明される。これらのツール及び技術によって提供される方法は、クライアントシステムが高忠実度のコンテンツをレンダリングするためにインストールされているプラグインを有しているかを検出し得る。所定のクライアントシステムにレンダリングプラグインがインストールされていることの検出に応答して、これらの方法は、クライアントシステムにおけるコンテンツのレンダリングのためのプラグインと互換性のある第1の高忠実度フォーマットを選択し得る。一方、所定のクライアントシステムにレンダリングプラグインがインストールされていないことの検出に応答して、これらの方法は、クライアントシステムにプラグインをインストールせずに、クライアントシステムにおけるコンテンツのレンダリングのための第2の高忠実度フォーマットを選択し得る。これらの方法は、クライアントシステムにおいて選択されたフォーマットでレンダリングするために、文書のページを要求し、当該選択されたフォーマットで文書のページの少なくとも1つのサブセットを要求し得る。
上述の本発明は、方法、コンピュータ制御装置、コンピュータ処理、コンピュータシステム、またはコンピュータ可読媒体等の製品として実施される。これらおよび様々な特徴は、以下の発明を実施するための形態及び添付の図面から明らかになるだろう。
この発明の概要は、発明を実施するための形態において以下でさらに説明される概念の1つを単純な形式で紹介するために提供されている。この発明の概要は、本発明の重要な特徴または本質的な特徴を特定することは意図されておらず、この発明の概要が本発明の範囲を限定するために使用されることも意図されていない。さらに、本発明は、本開示の全ての部分に記載されているいくつかまたは全ての欠点を解決する実施例に限定されない。
ビューアクライアントにおける文書の高忠実度レンダリングを可能とするシステムまたは動作環境を示す結合ブロック図及びフロー図である。 クライアントシステムまたはシステムがこのようなデバイスにおける高忠実度表示のために特定の文書を要求するプロセスを示すフロー図である。 図2に示されたプロセスに続く処理を示すフロー図である。 図2及び図3に示されたプロセスに続く処理を示すフロー図である。 クライアント側ビューアに対してページをフォーマットするプロセスを示すフロー図である。 クライアント側ビューアに提供されるコンテンツのユーザ選択に応答するプロセスを示すフロー図である。 追加のユーザ命令に応答するプロセスを示すフロー図である。 クライアント側ビューアにより、クライアントシステムが、クライアントシステムから離れて配置されているコンテンツ内を検索することを可能とするプロセスを示すフロー図である。
以下の詳細な説明は、ビューアクライアントにおける文書の高忠実度のレンダリングのための技術に関している。本明細書に記載されている本発明は、コンピュータシステムにおいてオペレーティングシステム及びアプリケーションプログラムの実行とともに実行するプログラムモジュールの一般的な状況において示されているが、当業者は、他のタイプのプログラムモジュールとともに実行され得る他の実施例を理解するだろう。一般的に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び他のタイプの構造であって、特定のタスクを実行するかまたは特定の抽象データ型を実装するものを含む。さらに、当業者には、本明細書に記載されている本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース家電、プログラム可能家電、マイクロコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成を用いて実現されてもよいことが理解されるだろう。
以下の詳細な説明において、参照符号は、本明細書の一部を形成する添付図面に対して付され、これらは、特定の実施形態または実施例を説明するために示される。同様の参照符号により同様の要素を表す図面を参照して、ビューアクライアントにおけるドキュメントの高忠実度のレンダリングのためのツール及び技術特徴が説明されるだろう。
図1は、全体として100で示される、ビューアクライアントにおける文書の高忠実度レンダリングを可能とするシステムまたは動作環境を示している。これらのシステム100は、適切な命令106を発行して、1または複数のサーバシステム108に文書をアップロードすることを1または複数のユーザ104に可能とさせる1または複数のクライアントシステム102を含み得る。図1は、明確さ及び例示のためだけに、1人のユーザ、1つのクライアントシステム及び1つのサーバシステムを含む例を示す。しかし、本明細書の詳細な説明の実施例は、任意の数のユーザ、クライアントシステム及びサーバシステムを含む。
クライアントシステム102及びそのサーバシステム108は、1または複数の中間通信ネットワーク110を介して通信し得る。これらのネットワークは、地球規模、地域的、局所的、または個人的な性質を有していてもよく、様々な実装例において適切な様々なプロトコルを用い得る。
図1で用いられているクライアントシステム及びサーバシステムを示すための図形要素は、単に説明を容易にするために選択されており、本明細書内の説明の可能な実施例を限定するものではない。さらに具体的には、図1は、サーバシステム108が集中型コンピュータシステムであり、2以上のクライアントシステムによって共有され得る例を示している。クライアントシステム102は、相対的に固定されているデスクトップシステムであり得、携帯コンピュータシステム(ラップトップ、ノートブック、または他のタイプの携帯コンピュータシステム)でもあり得る。さらに、クライアントシステム102は、ワイヤレス通信機能を有しかつ本明細書に記載されている様々なツール及び技術を実行するためにインストールされているソフトウェアコンポーネントを有するPDA(personal digital assistant)であってもよい。しかし、本明細書内の説明は、クライアントシステム及びサーバシステムの他の形態も意図しており、図1に示されているクライアントシステム及びサーバシステムの形態を含むがこれに限定されない。
クライアントシステム102を詳細にみると、このクライアントシステムは、1または複数のプロセッサ112を含み、これらは特定のタイプまたはアーキテクチャを有し得、特定の実施例に対して適切に選択される。プロセッサ112は、プロセッサ112との互換性に関して選択される1または複数のバスシステム114に結合され得る。
クライアントシステム102は、バスシステム114に結合されているコンピュータ可読記憶媒体116の1または複数のインスタンスも含み得る。このバスシステムは、プロセッサ112がコード及び/またはデータをコンピュータ可読記憶媒体116へ書き込む/から読み出すことを可能にし得る。媒体116は、任意の適切な技術を用いて実装される記憶要素を表していてもよく、当該記憶要素には、限定するわけではないが、半導体、磁気材料、光学媒体等を含む。媒体116は、RAM、ROM、フラッシュ、または他のタイプとして分類されるメモリコンポーネントを含み得、ハードディスクドライブを示していてもよい。
記憶媒体116は、プロセッサ112に読み込まれて実行された際、クライアントシステム102に、本説明においてクライアントシステム102に配置されているビューアクライアントにおける文書の高忠実度レンダリングのための様々な技術を実行させる命令の1または複数のモジュールを含み得る。この発明説明全体で詳述されているように、クライアントシステム102及びサーバシステム108は、協同して本明細書に記載されている様々なサービスを提供し得る。
コンピュータ可読媒体116は、クライアント側ビューア118を提供する1または複数のモジュールを含み得る。クライアント側ビューア118は、本明細書に記載されているような機能を用いて強化されたブラウザソフトウェアを含んで、クライアントシステムにおいて文書コンテンツをレンダリングする際に複数の高忠実度フォーマットをサポートする。いくつかの例において、クライアントシステムは、所定のレンダリングフォーマットを使用してクライアントにおいて高忠実度でコンテンツをレンダリングすることをビューアに可能とさせるプラグインソフトウェアを含み得る。このようなプラグインソフトウェアの例には、アドビシステムから入手可能なFLASH(登録商標)マルチメディア技術、本件出願人から入手可能なSILVERLIGHT(登録商標)ブラウザプラグイン、または同様の機能を提供する他のブラウザプラグインが含まれ得る。
他の例において、クライアントシステムは、このようなプラグインを含まなくともよい。それにもかかわらず、この発明を実施するための形態において提供されているツール及び技術は、クライアントシステムに当該プラグインをインストールせずに、クライアントシステムにおいて高忠実度で文書コンテンツをレンダリング可能である。この後者の状況において、クライアントシステムは、ビットマップ画像フォーマット(例えば、ポータブルネットワークグラフィクスすなわちPNG、または利用可能なブラウザクライアントによってサポート可能な他の適切な画像フォーマット)を使用してもよい。
最初に、クライアント側ビューアは、1または複数の文書をネットワーク110を介してサーバシステム108にアップロードするための命令106を受信し得る。図1は、クライアントシステムからサーバシステムへ転送される際のアップロード文書を全体として120で示す。
サーバシステム108をさらに詳しくみると、サーバシステムは、特定のタイプまたはアーキテクチャを有し得、特定の実施例に対して適切に選択される1または複数のプロセッサ122を含み得る。プロセッサ122は、プロセッサ112と同一のタイプまたはアーキテクチャを有していても有していなくともよい。プロセッサ122は、プロセッサ122との互換性に関して選択される1または複数のバスシステム124と結合され得、バスシステム114と同一のタイプまたはアーキテクチャを有していても有していなくともよい。
サーバシステム108は、バスシステム124と結合されているコンピュータ可読記憶媒体126の1または複数のインスタンスを含んでいてもよい。このバスシステムは、プロセッサ122が、コード及び/またはデータをコンピュータ可読記憶媒体126へ書き込む/から読み出すことを可能とし得る。この媒体126は、限定するわけではないが、半導体、磁気材料、光学媒体等を含み、任意の適切な技術を用いて実装される記憶媒体を表し得る。媒体126は、RAM、ROM、フラッシュ、または他のタイプとして分類されるメモリコンポーネントを含み得、ハードディスクドライブを示していてもよい。
記憶媒体126は、プロセッサ122に読み込まれて実行された際に、本説明においてサーバシステム108に配置されているビューアクライアントにおける文書の高忠実度レンダリングのための様々な技術をサーバシステム108に実行させる命令の1または複数のモジュールを含み得る。本説明全体で詳述されているように、クライアントシステム102及びサーバシステム108は、協同して本明細書に記載されている様々なサービスを提供し得る。
コンピュータ可読媒体126は、全体として128で示されている文書プレビューサービス及び文書検索サービスを提供する1または複数のサーバ側モジュールを含み得る。最初に、これらのサービス128は、後にユーザ104または他のユーザ(図示せず)に参照されるためにアップロード文書120を文書ストア130に保存し得る。図1は、文書ストアにアップロードされる際の文書を132で示す。文書ストア130は、様々な異なるユーザ104及びクライアントシステム102のために複数の文書134を保存し得る。
文書134は、文書処理、表演算解析、データベース支援、メールもしくは通信、またはスケジューリング等を実行するアプリケーションであるかどうかに関係なく、様々な異なる各々のアプリケーションによって読み込み可能な文書を示す。いくつかの場合において、これらのアプリケーションのいくつかまたは全ては、グループにされてまとめて販売され得る。例えば、本件出願人は、OFFICE(商標)でこのようなアプリケーションの一揃いを提供するが、他のソフトウェアメーカーは、本説明の全てまたは一部を実施し得る他の一揃いのアプリケーションを提供し得る。
本説明全体を通してさらに詳しく説明されているように、本明細書において提供されているツール及び技術は、文書134を開いて編集するために通常使用されるアプリケーションを起動することなく、クライアントシステムが文書134の少なくとも一部を高忠実度でレンダリングすることを可能とする。用語「高忠実度」は、本明細書において用語「完全な忠実度」と区別するために使用されている。後者の用語は、ビューア118において表示された場合と比べて完全な、適切なアプリケーションで開かれた際に表示される文書の間の100%の忠実度を意味する。
説明及び図の簡潔さのみのために、図1は、1つのサーバがアップロードされた文書120を受信し、クライアントシステムにおいて当該文書をレンダリングするのに適切なように当該文書を変換する例を提供している。しかし、本説明の実施例は、各々割り当てられた機能を実行する多数の異なるサーバを含み得る。例えば、1または複数のサーバの第1のグループが、様々なクライアントシステムのために、アップロードされた文書を受信して保存し得る。1または複数のサーバの他のグループは、クライアントシステムにおいてこれらの文書をレンダリングするのに適切な任意の変換を実行し得る。換言すれば、アップロードされた文書を受信するサーバは、クライアントシステムにおいて当該文書のレンダリングをサポートするサーバと同一でなくともよい。
図1においてシステムまたは動作環境100を説明してきたが、クライアントシステムが当該クライアントシステムにおける高忠実度表示のために特定の文書を要求し得るプロセスフローの説明に移る。本説明は、図2を用いて行われる。
図2は、全体として200で示されているプロセスフローを図示しており、当該プロセスフローによってクライアントシステムが当該デバイスにおける高忠実度表示のために特定の文書を要求し得る。参照及び説明の容易化のために、可能な実装例を制限するわけではないが、図2は前図からのいくつかの要素を持ち越し、それらを同一の参照符号で表している。例えば、プロセスフロー200は、クライアントビューア118並びにサーバ側文書プレビュー及び検索サービス128と関連付けて記載されている。しかし、本説明の実施例は、本発明の範囲及び精神を逸脱することなく、他のコンポーネントにおいてプロセスフロー200を実行してもよい。
プロセスフロー200をさらに詳しくみると、ブロック202が全体として検索及び表示のためにサーバシステムにおいて利用可能な文書のリストの要求を示している。例えば、クライアントシステム102は、ユーザ104からの命令に応答してブロック202を実行する。図2は、文書リスト要求を204で示している。
サーバにおいて、ブロック206が全体として文書リスト要求の受信を示している。次に、検索サービス128が文書ストア130を参照してどの文書134がユーザ104へのアクセスに使用可能かを判定する。
ブロック208は、全体としてクライアント側ビューア118における表示のためにクライアントシステムに利用可能な文書の表示の送信を示している。図2は、これらの利用可能文書の表示を全体として210で示している。
クライアントシステムにおいて、ブロック212は、要求したユーザに利用可能であってサーバシステム上に保存されている文書の表示を受信することを全体として示している。次に、クライアント側ビューア118は、全体としてブロック214で表されているように、利用可能文書のリストをユーザに示し得る。ユーザは、全体としてブロック216に示されているように利用可能文書のリストを見てクライアントシステムにおける表示のために所与の文書を選択してもよい。
説明の明確さのため、可能な実施例を限定するわけではないが、ページ外参照符号218で示されているようにプロセスフロー200は図3に続いている。説明は図3に続く。
図3は、全体として300で示されているプロセスフローを示していて、このフローは、ページ外参照符号302に示されているように、図2に示されているプロセスフロー200を引き継いでいる。クライアント側ビューア118並びに文書プレビューサービス及び文書検索サービス128は、図3内に引き継がれている。
判定ブロック304は、所定のクライアントシステムに所定の高忠実度レンダリングフォーマットに関するプラグインコンポーネントがインストールされているかどうか評価することを全体として示している。上述したように、これらのプラグインの例には、FLASH、SILVERLIGHTで提供されているソフトウェアコンポーネントまたは同様の機能を有する他のコンポーネントを含み得る。
ブロック304から、所定のクライアントシステムに当該プラグインコンポーネントがインストールされている場合、プロセスフロー300は、「はい」の分岐を選んでブロック308に進み得る。ブロック308は、クライアントビューア118によって表示されるクライアントシステム上のレンダリングコンテンツのためのプラグインによってサポートされているフォーマットの選択を示している。
判定ブロック304を見ると、所定のクライアントシステムにプラグインコンポーネントがインストールされていない場合、プロセスフロー400は「いいえ」の分岐を選んでブロック312へ進み得る。ブロック312は、クライアントシステムにおける高忠実度の文書コンテンツレンダリングのための画像フォーマットを選択することを全体として示している。上述の説明は、PNG画像フォーマットを使用する例を示しているが、他の画像フォーマットも他の実施例において適切であり得る。例えば、所定のページのコンテンツの大部分が画像である場合、その所定のページはJPG画像としてレンダリングされてさらに高い画像品質及びさらに高い圧縮率をもたらすだろう。
ブロック314は、ブロック216において選択された文書のプレビューを要求することを全体として示している。ブロック314において、文書プレビューを判定ブロック304によって決定されたフォーマットで表示することを要求してもよい。図3は、クライアントシステムによってサポートされているフォーマットの指示に従って選択された文書に対する要求を全体として316で示す。
サーバシステムにおいて、ブロック318は、選択された文書に対する要求316を受信することを全体として示している。ブロック318は、クライアントシステムによってサポートされているフォーマットの指示の受信することを含んでいてもよい。
ブロック320は、要求316への応答における選択された文書を取得することを全体として示している。ブロック320は、要求された文書を文書ストア(例えば図1の130)からの取得することを含んでいてもよい。
ブロック322は、選択された文書内のページをクライアントビューアに適切とするようにフォーマットすることを全体として示している。例えば、ブロック322は、ページを画像表示またはXAML表示に変換すること、またはレンダリングすることを含んでもよい。例えば、この変換プロセスは、クライアントアプリケーションと共有されている.dllファイルを使用して、文書のページを書き込み及び/または読み出し、文書のコンテンツをページ、スライドまたは他の便利な表示内にレイアウトすることを含んでもよい。この変換は、拡張メタファイルフォーマット(例えばEMF、以下でさらに詳細に説明される)に対するエミュレートされた(emulated)印刷プロセスを実行すること、及びページにEMFを使用して当該所定のページに関する画像表示またはXAML表示のいずれかを得ることを含んでもよい。以下でさらに詳細に説明されるように、この変換プロセスは、本説明において提供される選択/発見動作において用いられる位置ベースのメタデータを生成してもよい。
ブロック322が要求された文書内のページのいくつかのサブセットをフォーマットすると、ブロック324は、要求するクライアントシステムにフォーマットされたページのサブセットを送信する。図3は、フォーマットされたページのサブセットを全体として326で示す。
クライアントシステムにページのサブセットを送信するブロック324と並行して、ブロック322は、矢印328によって全体として示されている様に、文書の追加ページをフォーマットし続けてもよい。この態様において、以下でさらに詳細に説明されるように、プレビュー及び検索サービス128は、サーバが残りの文書を適切なフォーマットに変換し続けている一方で、クライアント側ビューア118がページの先行のセットの表示を開始することを許容してもよい。従って、クライアントシステムは、文書内のコンテンツの少なくともいくつかを見るのに、サーバが全ての文書をフォーマットするまでは待たない。換言すれば、本明細書内の要因により、クライアントシステム及びサーバが文書コンテンツの増分表示(incremental view)を提供することを可能とする。
クライアントビューア118を見ると、ブロック330が、フォーマットされたページのサブセット326を受信することを全体として示している。続いて、ブロック332がビューア118を介したこのサブセットの表示を示している。この態様にて、ブロック332は、ユーザ(例えば104)が、サーバが所定の文書全体をフォーマットまたは変換するのを待つことなく、例えば所定の文書内の最初に数ページを、選択された高忠実度フォーマットでプレビューすることを可能とする。
例示及び説明の明確さのために、可能な実施例を限定するわけではないが、例示のプロセスフロー300に説明は、ページ外参照符号334によって示されている様に、図4に続く。これらのプロセスフローの説明は図4と共に進められる。
図4は、図2及び図3から引き継いでいるプロセスフローの続きの状況を全体として400で示して図示している。図4は、ページ外参照符号402を含んで、プロセスフロー400と図3のプロセスフロー300とを関連付けている。参照及び説明の簡易化のため、可能な実施例を限定するわけではないが、図4は、前の図面からいくつかの要素を引き継いでおり、それらを同一の参照符号で示している。例えば、図4は、クライアント側ビューア並びにサーバ側文書プレビュー及び検索サービス128を引き継いでいる。
プロセスフロー400をさらに詳細にみると、ブロック404が、ブロック332においてすでに表示されたページに関するユーザ命令に応答することを全体として示している。これらの命令は、例えば、ナビゲーションまたはスクロール命令を含んでいてもよく、これらの命令によってユーザは所定の文書に関して送信されたページの最初のサブセットを見ることができる。
判定ブロック406は、ユーによって発せられた命令がクライアント側ビューアに現時点で利用可能でないページを要求するかどうかの判定を示す。換言すれば、ブロック406は、ユーザが、図3の326において示されている送信されかつフォーマットされたページの最初のサブセットに含まれていない文書コンテンツのページを要求しているかを判定してもよい。判定ブロック406が、ユーザの要求がクライアント側ビューアに現時点で利用可能であるページで満足していると判定した場合、プロセスフロー400は、「いいえ」の分岐408を選択して上述のブロック404に戻る。
判定ブロック406を再度みると、ユーザによって発せられた命令がページの最初のサブセット326に含まれていないページを要求する場合、プロセスフロー400は、「はい」の分岐410を選択してブロック412に進む。ブロック412は、全体として414で示されている要求を用いた、サーバにある文書の追加ページの要求を示している。要求414は、要求しているクライアントのレンダリングフォーマットを示してもよく、文書内の残りの未送信のページを送信するかどうか、または残りの未送信のページのいくつかのサブセットを送信するかどうかを示してもよい。
サーバにおいて、ブロック416は、所定の文書の追加ページに関する要求414の受信することを全体として示している。図3の328に示されているように、クライアントビューアが、フォーマットされて送信された先行するページのサブセット326を表示している一方で、サーバシステムは、結果として起こるクライアントビューアへの送信及び表示のための追加ページのフォーマットを同時に行う。従って、追加ページに対する要求414がクライアントビューアから到達する場合、サーバシステムは、418で全体として示されているようにクライアントビューアへ追加のページを送信することができる。ブロック418は、文書内の残りの未送信ページの全てを送信すること含んでいてもよいし、これらの残りのページのうちの別のサブセットを送信することを含んでいてもよい。図4は、これらの追加ページを全体として420で示している。
クライアントシステムを再度みると、ブロック422が、要求414に応答した追加ページ420を受信することを全体として示している。次に、ブロック424がクライアント側ビューア118における追加ページを表示することを示している。ブロック424とブロック404を接続している矢印によって示されているように、プロセスフロー400は、ブロック404に戻って待機してブロック424において表示された追加のページに関するユーザ命令に応答してもよい。
図2、図3及び図4に示されるプロセスフローを説明してきたが、ここで説明は、クライアントビューアのためのページフォーマットに関する追加の詳細説明に移る。本説明は、図5と共に行われる。
図5は全体として500で示されているプロセスフローを示しており、当該プロセスフローはクライアントビューアのためのページフォーマットに関する追加の詳細説明を提供する。参照及び説明の簡易化のために、可能な実施例を限定するわけではないが、図5は、前の図から要素を引き継いで、それらを同一の参照符号で示している。例えば、図5は、サーバ側文書プレビュー及び検索サービス128を引き継いでいる。特に、プロセスフロー500は、図3に示されているプロセスブロック322を詳しく説明している。
プロセスフロー500をさらに詳細にみると、ブロック502が所定の文書内の様々なページのコンテンツに関する位置ベースのメタデータを生成することを示している。ブロック502は、コンテンツを高い忠実度でレンダリングするプラグインコンポーネントがクライアントシステムにインストールされているかにかかわらず、一定の態様でメタデータを生成することを含んでいてもよい。以下でさらに詳しく説明されるように、クライアントビューアは、このメタデータを使用して、限定するわけではないが、コンテンツの選択、コンテンツのコピー、所定の文書内の特定のコンテンツの検索、文書内に存在するハイパーリングの保存等を含む機能を実装する。
いくつかの実施例において、位置メタデータは、XMLフォーマットで生成され得る。さらに、この位置メタデータは、クライアントビューアのための文書のページのフォーマットまたは変換における中間ステップとしてサーバシステムによって生成される拡張メタファイル(EMF)表示から得られてもよい。EMF表示が例として挙げられているが、この発明を実施するための形態の実施例は、EMFと同様の特徴または機能をもたらす他の同等な表示も用い得る。例えば、これらの表示に関連付けられているコメント記録は、文書構造を指定し得、テキストがどこから始まってどこで終了するかを示す意味情報(semantic information)をもたらす。この意味情報は、文書のページ内に存在する内部ハイパーリンク及び外部ハイパーリングも識別し得る。EMF表示は、文書の内のどこに図または画像が存在するかも示し得る。
上述の構造情報及び意味情報を図または画像情報と組み合わせることによって、ブロック502は、所定の文書に関連する異なるタイプの情報を構築することができ、この情報を文書内のページ対して生成されたメタデータ内に含めることができる。例えば、ブロック504は、所定の文書内の段落を順序づけることを示している。さらに具体的に言えば、ブロック504は、段落が文書内で他の段落、表、図、画像等に対して現れる順序を示す番号を文書内の様々な段落に対して指定することを含んでもよい。
ブロック506は、文書内に存在する表内の要素を順序づけることを示す。さらに具体的に言えば、ブロック508は、表が文書の中において他の段落、表、図、画像等に対して現れる順序を示す番号を所定の文書内の様々な表に対して指定することを示す。さらに、ブロック510は、所定の表内の様々な表の行を順序づけることを示し、ブロック512は、所定の表内の所定の行内の様々なセルを順序づけることを示している。
ブロック514は、文書内の行内に存在する所定のテキストラン(text run)の外接矩形を演算することを全体として示している。例えば、ブロック514は、外接矩形の長さ及び高さと共に当該矩形の左上角の座標を演算することを含んでもよい。いくつかの実施例において、ブロック514は、テキストラン内のグリフを表すユニコード文字列を定義することを含んでもよい。外接矩形は、ピクセルで表現されてもよく、テキストランが存在するページの左上に対して定義されてもよい。いくつかの実施例がこれらの外接矩形を演算し得るが、他の実施例は、テキストラン内の特定のグリフまたは文字の位置を演算し、クライアント側ビューアにこれらの位置を伝えてもよい。これらの後者の実施例は、個々の文字のレベルにおいて選択を可能とし得る。
用語「テキストラン」は、共通の書式、共通のフォントまたは他の共通の特徴を共有する文字の並びをいう。テキストランは、上述の様々な特徴における変化を呈する文字によって破壊され得る。さらに、テキストランはテキストの所定の行内に存在し得るが、(いくつかの実施例において)段落内の2以上の行にわたることはない。
ブロック516は、文書内のページ内に存在するハイパーリンクのソースの各々の外接矩形を演算することを示す。ハイパーリンクが文書の外部の対象を参照する場合、ブロック516はメタデータ内に対象のURLを含み得る。ハイパーリンクが所定の文書内の内部対象を参照する場合、ブロック516はメタデータ内に対象ページ番号及び対象の座標を含み得る。
ブロック518は、テキストランにおける配置を行い段落内の行に関する情報を生成することを示している。さらに具体的には、ブロック518は、段落内に存在するテキストランの外接矩形を解析してどのテキストランが同一の行内にあるかを判定することを含んでいてもよい。ブロック518は、テキストランを行にまとめることを含んでいてもよい。なぜならば、通常のユーザは、文字のテキストランよりもテキストの行をさらに容易に理解するからである。
文書プレビュー及び検索サービス128は、クライアント側ビューア(例えば118)による使用のために位置ベースのメタデータをクライアントシステムに提供する。例えば、このメタデータは、図3及び図4に示されている様に、ページ326及び/または420の一部として各々含まれ得る。以下のXMLは位置メタデータの例を提供するが、当該例はここにおける説明のためだけに提供され、本説明の可能な実施例を限定するものではない。
Figure 0005385373
クライアントビューアに対するページのフォーマットに関する追加の詳細説明を提供するプロセスフロー500を説明してきたが、ここで説明は、クライアント側ビューアが応答する異なるタイプのユーザ命令のさらに詳細な説明に移る。本説明は、図6と共に行われる。
図6は、全体として600で示されるプロセスフローを示しており、このプロセスフローは、クライアントビューアに提供されるコンテンツのユーザ選択への応答に関する追加の詳細説明を提供する。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図6は前の図の要素を引き継ぎ、それらを同一の参照符号で示す。例えば、図6は、クライアント側ビューア118を引き継いでいる。さらに具体的には、プロセスフロー600は、図4に示されているプロセスブロック404を詳しく説明している。
プロセスフロー600をさらに詳しくみると、図5において説明されておりかつクライアント側ビューア118に提供される位置ベースのメタデータにより、ビューアが様々な異なるユーザ命令に応答することを可能とし得ることが、全体としてブロック404に示されている。例えば、ユーザはビューア内に表示されている特定のコンテンツを選択してもよく、このことは全体として602に示されている。このコンテンツは、ビューア内に示されるテキストの表示を含んでもよく、ビューア内に示される表、図、形状、画像その他のタイプのコンテンツの表示を含んでいてもよい。この選択動作602は、レンダリングされたコンテンツの所定のページ内のある位置においてユーザがクリック、またはポインタデバイスを動作させてコンテンツのある部分にわたってポイントをドラッグすることでこのようなコンテンツのブロックを選択することを含んでもよい。選択動作602は、ページ内のコンテンツ(所定の単語、段落、表、画像等)上におけるユーザの複数回のクリックを含んでいてもよい。
選択動作への応答において、ブロック604は、ページ内の選択動作が起きた位置を含むページ内のコンテンツを認識することを示す。この選択されたコンテンツの例には、上述のテキストラン、行、段落、形状、表、画像等を含み得る。例えば、所定のページ内のある位置おいてユーザがクリックした指示が受信されると、ブロック604は、このページに関する位置ベースのメタデータを検索して、ページ内の行及び/または段落内でこのクリックが行われたかどうかを判定し、クリックが行われていた場合、ユーザによってクリックされた行及び/または段落を識別することを含んでいてもよい。図5の説明を思い起こすと、ブロック514は、様々なテキストランの外接矩形を演算することを示しているので、ブロック604は、所定のクリックの座標を用いてこれらの外接矩形の表示を検索して、これらの座標がいずれかの外接矩形内に存在するどうかを判定することを含んでいてもよい。
ブロック606は、例えばクリック−ドラッグ動作を使用してユーザによって選択されたコンテンツの行の座標を演算または認識することを全体として示している。例えば、所定のクリック動作が、位置ベースのメタデータ内に示されるテキストの行の外接矩形内に存在すると仮定した場合、ブロック606は、この外接矩形を定義する座標を認識することを含んでもよい。
ブロック608は、ブロック606において演算された座標を有する選択矩形の視覚表示を形成することを全体として示している。例えば、ブロック608は、適切な透明性のある背景(青色の背景)を用いて、選択されたコンテンツを強調することを含んでもよい。さらに具体的には、ブロック608は、選択矩形範囲を有するHTML「div」を生成して、選択されたコンテンツに背景を重ね合わせることを含んでいてもよい。この強調は、当該コンテンツが現時点で選択されていることをユーザに示すことができる。
クライアントシステムに高忠実度コンテンツをレンダリングするためのプラグイン(例えば、SILVERLIGHT)がインストールされている実装例において、HTML「div」は、高忠実度レンダリングに関連付けられているコントロールに重ね合わせられてもよい。従って、ブロック604−608は、所定のクライアントシステムにプラグインがインストールされていてもされていなくとも、同様に動作し得る。
ブロック610は、ブロック608において生成された選択矩形内のコンテンツに向けられるべきユーザ命令を待つことを全体として示している。限定しない例として、ユーザは、全体として612で示されているようにコピー命令を発行してもよい。この例示のコピー命令に応答して、プロセスフロー600は、ブロック614に進み得る。ブロック614は、選択されたコンテンツの1または複数の行内の任意のコンテンツを結合することを全体として示している(ユーザがコンテンツの複数の行をブロック選択したとする)。次に、ブロック616は、選択されたコンテンツをシステムクリップボードまたは他の適切なデータ構造にコピーする。ここにおいて、コンテンツは所定のアプリケーション内で切り取られ及び/またはコピーされるか、または異なるアプリケーション間で切り取られ及び/またはコピーされてもよい。
図6のブロック404に戻ると、ブロック404は、全体として618で示されるコンテンツの所定のページ内のクリックまたは他の同等な動作を受信することも含む。このクリック動作618は、602で示されているクリック−ドラッグまたは他のブロック選択動作とは区別される。例えば、クリック動作618は、コンテンツのページ内でのシングルクリックを含んでもよい。
判定ブロック620は、コンテンツのページ内で定義されているハイパーリンク上でユーザがクリックしたか否かを判定することを全体として示している。上記の図5の説明を思い起こすと、ブロック516は、コンテンツの所定のページ内の任意のハイパーリンクの外接矩形を演算することを示している。従って、ブロック620は、クリックの座標とページ内に存在するハイパーリンクの外接矩形の座標とを比較して、クリックがハイパーリンクの任意の外接矩形内であるかどうかを判定することを含んでもよい。
コンテンツのあるブロックを選択するクリック−ドラッグ動作ではなくて、クリックがハイパーリンク上であった場合、プロセスフロー600は、ブロック608に示されている透明性のある背景を有する「強調」HTML divの生成をしなくともよい。別の例では、ユーザがハイパーリンク上をクリックしても、コンテンツのブロックを選択しても、選択過程全てが同様に動作する。いくつかの場合、ユーザはクリック−ドラッグを行って、ハイパーリンクのテキストを選択またはアクティブにする。
判定ブロック620から、クリックがハイパーリンク上で行われたならば、プロセスフローは「はい」の分岐を選択して、位置ベースのメタデータ内のハイパーリンクによって指定されている対象を識別することを示すブロック624に進み得る。上述のように、ハイパーリンクの対象は、所定の文書の外部であってもよい(例えば外部URL)。さらに、ハイパーリンクの対象は所定の文書の内部であってもよい(例えば、所定のページ内の別の行へのリンク、他のページへのリンク等)。次に、ブロック626は、ハイパーリンクの内部または外部対象へ移動することを示している。
判定ブロック620に戻ると、ユーザクリックがハイパーリンク上で行われなかった場合、プロセスフロー600は、「いいえ」の分岐628を選択してブロック630に進み得る。ブロック630は、ユーザがクリックしてポイントにコンテンツ内にテキストカーソルまたは他の同様のUI要素を置くことを含んでもよい。ブロック630から、プロセスフロー600は、ブロック610に進み、このシナリオにおいてキーボード操作または他の適切な過程によって入力される選択または移動動作であり得る次のユーザ命令またはユーザ動作を待ってもよい。
図6においてユーザのコンテンツ選択への応答の追加的な態様を説明してきたが、ここで説明はクライアント側ビューアが応答し得る追加の命令の説明に進む。本説明は図7を用いて提供される。
図7は、全体として700で示されるプロセスを示しており、このプロセスは、クライアント側ビューアが応答し得る追加の命令がある場合を示している。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図7は、以前の図から要素を引き継ぎ、これらは同様の参照符号で示されている。例えば、図7は、クライアント側ビューア118を引き継いでいる。さらに具体的には、プロセスフロー700は、図4に示されているプロセスブロック404をさらに詳しく説明している。
プロセスフロー700をさらに詳しくみると、図7は、702に示されるように、ユーザが発見または検索命令(以下、「発見」命令という)をクライアント側ビューアに発行し得る例示のシナリオを示している。なお、プロセスフロー700は、検索エンジンウェブページから発せられた検索命令に応答して開始し得る。これらのプロセスフローは、電子メールアプリケーションによって発せられた検索命令に応答して開始してもよい。例えば、所定のユーザは、所定の検索文字列について自分の電子メールを検索したいと思うだろう。他の例において、企業環境内において、プロセスフロー700は、文書共有または文書提携環境内で発せられる検索または発見命令に応答して開始してもよい。
発見命令は、全体として704で示される1または複数の検索語を参照することができる。発見命令に応答して、ブロック706は、入力検索語をクライアント側ビューアによってレンダリングされた所定のページ内のコンテンツと比較してもよい。例えば。ブロック706は、ページ内の異なる行について、ユニコードテキストに対する検索語の文字列比較を実行することを含んでいてもよい。次に、判定ブロック708が、入力した検索語がページコンテンツ内に存在するかを判定し得る。入力検索語がページコンテンツ内に存在しない場合、プロセスフロー700は、「いいえ」の分岐710を選択して、検索語が発見されなかったことを報告することを示しているブロック712に進み得る。
判定ブロック708に戻ると、入力検索語がページコンテンツ内で少なくとも1つ存在した場合、プロセスフロー700は、「はい」の分岐714を選択して、マッチングしたページコンテンツの外接矩形を演算することを示しているブロック716に進む。図5の以前の説明を思い起こすと、ブロック514で演算された位置ベースのメタデータは、異なるテキストランの外接矩形を含み得る。これらのテキストラン内の文字が入力語とマッチングした場合において、ブロック716は、マッチングしたテキストに対応するメタデータから外接矩形を抽出することを含んでいてもよい。
ブロック718は、所定のページコンテンツ内に存在するマッチングしたコンテンツを強調することを全体として示している。ブロック718は、図6のブロック608を用いて上述した技術を使用して、ページコンテンツのマッチングした部分に重ね合わせられる選択矩形を生成してもよい。
クライアント側ビューアを対象とした様々なユーザ命令に応答することを示しているブロック404に戻ると、ユーザは、全体として720で示されている拡大命令を発行してもよい。拡大命令の受信に応答して、プロセスフロー700は、クライアント側ビューアを実行しているクライアントシステムに高忠実度コンテンツをレンダリングするプラグインがインストールされているかを判定することを示している判定ブロック722に進み得る。クライアント側ビューア118は、クライアントシステムに当該プラグインがインストールされていてもいなくとも、拡大機能を提供し得る。また、このビューアは、クライアントシステムにプラグインがインストールされているか否かに依存して、別の技術を使用して拡大機能を提供してもよい。
判定ブロック722から、クライアントシステムにプラグインがインストールされている場合、プロセスフロー700は、「はい」の分岐724を選択して、当該プラグインによってサポートされている変形操作を使用した拡大機能の適用を全体として示しているブロック726に進み得る。例えば、当該プラグインがSILVERLIGHTブラウザプラグインであるとするならば、ブロック726はレンダリング変形XAML要素を用いてページキャンバス(canvas)のコンテンツに拡大変形を適用することを含んでもよい。しかし、これらの例は、例示のためにのみ提供され、様々なプラグイン及び当該プラグインによってサポートされる様々な変形動作を含み得る可能な実施例を限定するものではない。通常、プロセスフロー700は、クライアントシステムとサーバとの間の往復メッセージを必要とせずに、クライアントシステムにおいてローカルにこの機能を有効にすることができる。
判定ブロック722に戻ると、クライアントシステムにプラグインがインストールされていない場合、プロセスフロー700は、「いいえ」の分岐728を選択して、ブラウザにサポートされている画像拡大縮小機能を使用して拡大操作を適用することを示すブロック730に進み得る。プラグインがインストールされているか否かにかかわらず、クライアント側ビューア118は、所定の範囲(例えば約33%から約400%)にわたる様々な異なるズームレベルを提供することができる。例示のシナリオにおいて、クライアント側ビューア118は、100%の拡大率でページコンテンツを表示してもよい。
図6及び図7において上述の異なる命令の実施例を提供してきたが、これらの実施例は、例示であって、本質を限定するものではないことに留意する。さらに具体的には、この発明を実施するための形態の実施例は、本発明の範囲及び精神から逸脱することなく、これらの例において提供された命令以外の命令を含むことができる。
図7のプロセスフロー700を説明してきたが、ここで説明は、クライアント側ビューアがクライアントシステムから離れて配置されているコンテンツ内の検索をクライアントシステムに可能とさせ得るプロセスフローの説明に移る。本説明は図8を用いて提供される。
図8は、全体として800で示されている例示のプロセスフローを示しており、クライアント側ビューアにより、クライアントシステムが当該クライアントシステムから離れて配置されているコンテンツ内を検索することを可能とし得るプロセスフローを提供している。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図8は、以前の図の要素を引き継ぎ、それらを同様の参照符号で示している。例えば、図8は、クライアント側ビューア118、並びに文書プレビュー及び検索サービス128を引き継いでいる。さらに、本説明のために、可能な実施例を限定するわけではないが、図8の構成は、クライアント側ビューア並びに文書プレビュー及び検索サービスによって実行されるプロセスフロー800の特定の部分を示している。しかし、本発明の他のコンポーネントも、本発明の範囲及び精神から逸脱することなくプロセスフロー800の一部を実行可能である。
プロセスフロー800をさらに詳しくみると、ブロック802は、クライアント側ビューアが1または複数の検索語を受信することを示している。ブロック802は、ユーザによって提供された検索語を受信することを含んでもよい(例えば、図1の104)。次に、ブロック804が、検索のために文書プレビュー及び検索サービス128に検索要求806を送信することを示している。この検索要求806は、1または複数の入力検索語808を含んでもよく、クライアントシステム上のレンダリングコンテンツ内で用いられる高忠実度フォーマット810を指定してもよい。
文書プレビュー及び検索サービス128において、ブロック812は、入力検索語及びレンダリングフォーマットを受信することを示している。次に、ブロック814は、文書プレビュー及び検索サービスにアクセス可能な少なくとも1つのデータストアにおいて入力語を検索することを示す。以前の図1の説明を思い起こすと、文書プレビュー及び検索サービス128は、複数の文書134を含む文書ストア130を保持していてもよく、ブロック814は、1または複数のこのような文書ストア内において入力語を検索することを含んでもよい。
ブロック816は、ブロック814において検索された1または複数の文書内に存在する入力検索語がどこにあるかを示す文書プレビューを生成することを全体として示している。ブロック816は、検索要求806内で指定されているレンダリングフォーマット810に基づいて文書プレビューを生成することを含んでいてもよい。以前の説明を思い起こすと、異なるシナリオにおいて、クライアント側ビューアを実行しているクライアントシステムに、当該ビューアにおけるコンテンツの高忠実度レンダリングをサポートするプラグインコンポーネントがインストールされていてもよく、インストールされていなくともよい。レンダリングフォーマット810は、クライアント側ビューアにプラグインがインストールされているか否かを示してもよい。
ブロック816は、検索結果のリストを生成することを含んでもよいし、1または複数の文書内に検索結果が存在した場合の検索結果のプレビューを生成することを含んでもよい。さらに具体的には、ブロック816は、クライアント側ビューアにおいて特定のフォーマットでレンダリングされるプレビューを生成することを含んでもよい。プレビューの生成の一部として、ブロック816は、ヒットが存在する文書対して演算された位置ベースのメタデータを参照することを含んでもよい。次に、ブロック818は、全体として820で示される検索結果及び関連する文書プレビューを、クライアント側ビューアに送信することを全体として示す。文書に関する位置ベースのメタデータが、クライアント側ビューアにまだ送信されていない場合、検索結果及びプレビュー820は、クライアント側ビューアが使用するためにこのメタデータを含んでもよい。
クライアント側ビューアにおいて、ブロック822は、検索結果及び文書プレビュー820を受信することを示している。クライアント側ビューアが、ヒットを含む文書の位置ベースのメタデータをまだ含んでいない場合、ブロック822は、検索結果及びプレビュー820をともなった当該メタデータを受信することを含んでいてもよい。
ブロック824は、クライアント側ビューア内で検索結果を提示することを示し、ブロック826は、特定の検索語808を含んでいる1または複数の文書内に存在する「ヒット」のプレビューをレンダリングすることを示す。実施例において、検索結果は、文書内のどこに検索語が存在していたかを表すプレビューのそばに各々提供され得る。ブロック826は、文書内に配置されている検索語を強調することを含み得る。さらに、ブロック826は、最初のヒットが存在するページに文書内でスクロールすることを含んでもよい。
ブロック828は、ブロック824及び826において示された検索結果及び/または文書プレビューに関するユーザからの命令を受信することを全体として示している。例えば、ユーザは、入力検索語の1または複数を含むと認識されている文書をクライアント側ビューア内で開くことを選択し得る。この例において、「ヒット」に適用される強調は、文書が開かれている際に維持されていてもよい。他の例の場合、ユーザは、検索結果及び/または文書プレビューにわたって移動またはスクロールしてもよい。これらの命令の例は、例示としてかつ本質を限定しないと理解され、本説明の実施例は他の命令を含んでもよい。
ブロック830は、ブロック828において受信された命令を実行または遂行することを示している。いくつかの場合、ブロック830は、これらの命令を実行する際に位置ベースのメタデータを参照することを含んでもよい。例えば、ブロック830は、このメタデータを参照して、図8に示されている検索環境内において、図6及び図7に示されている任意の他の機能を実行してもよい。
図8は、本説明のためにプロセスフロー800の1つの繰り返しを示しているが、このプロセスフローの実行は、異なる検索語に関して任意回数反復してもよいことに留意する。さらに、プロセスフロー800は、任意の数のクライアントシステム(例えば102)及び対応するクライアント側ビューア(例えば118)において実行されてもよい。
本明細書において、本発明は、コンピュータの構造特徴、方法論的動作及びコンピュータ可読媒体に関して説明してきたが、添付の特許請求の範囲において画定される本発明は、本明細書に記載されたこれらの特定の特徴、動作または媒体に必ずしも限定されないことが理解されるべきである。むしろ、これらの特定の特徴、動作及び媒体は、特許請求の範囲に記載の発明を実施する例として開示されている。
上述の説明は、様々なプロセスを示すために1または複数のフローチャートまたはフロー図と組み合わせて提供され得る。これらのプロセスは、本発明の説明を容易にするためのみに、提供された順序において進行する様に示されており、これは可能な実施例を限定するものではない。さらに具体的に言えば、これらのプロセス、またはこれらのプロセスの構成要素は、本発明の範囲及び精神から逸脱することなく、本明細書において示された順序以外の順序で進行してもよい。
上述の本発明は、例示のためのみに提供され、限定として解釈されるべきではない。様々な変形及び変更は、図示されて説明された例示の実施形態及び応用例に従うことなく、かつ添付の特許請求の範囲に記載される本発明の真の精神及び範囲から逸脱することなく、本明細書に記載された本発明になされ得る。

Claims (20)

  1. 書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記クライアントシステムの前記ビューアにおいて前記文書コンテンツの高忠実度レンダリングを提供する方法を前記クライアントシステムに実行させるコンピュータ実行可能命令を格納した少なくとも1つのコンピュータ可読記憶媒体であって、前記方法前記クライアントシステムが、
    前記クライアントシステムに前記レンダリングする前記プラグインが既にインストールされているかを検出するステップと、
    前記クライアントシステムに前記レンダリングする前記プラグインが既にインストールされているとの検出に応答して、前記コンテンツをレンダリングする前記プラグインと互換性のある第1の高忠実度フォーマットを選択するステップと、
    前記クライアントシステムに前記レンダリングする前記プラグインがインストールされていないとの検出に応答して、クライアントシステムに前記プラグインをインストールせずに、前記クライアントシステムにおける前記コンテンツのレンダリングのために第2の高忠実度フォーマットを選択するステップと、
    前記クライアントシステムにいて前記選択されたフォーマットでレンダリングするために、複数のページを有する少なくとも1つの文書のプレビューを要求するステップと、
    前記選択されたフォーマットで前記文書のページのサブセットを順次受信するステップと、
    順次受信した前記文書のページのサブセットをプレビュー表示するステップと
    を含むことを特徴とするコンピュータ可読記憶媒体。
  2. 前記第2の高忠実度フォーマットを選択するステップは、画像フォーマットを選択するステップを含むことを特徴とする請求項1に記載の記憶媒体。
  3. 前記第2の高忠実度フォーマットを選択するステップは、PNG(Portable Network Graphics)フォーマットを選択するステップを含むことを特徴とする請求項1に記載の記憶媒体。
  4. 前記方法は、前記クライアントシステムが、前記サブセットのうちの未だ受信していない前記文書の少なくとも1つの追加ページを要求するステップと、記少なくとも1つの追加ページを受信するステップとをさらに含むことを特徴とする請求項1に記載の記憶媒体。
  5. 前記方法は、前記クライアントシステムが、前記クライアントシステムとサーバとの間の往復のメッセージフローを必要とせずに、前記クライアントシステムにおいて拡大機能をローカルに提供するステップをさらに含むことを特徴とする請求項1に記載の記憶媒体。
  6. 前記拡大機能を提供するステップは前記ビューアにサポートされているスケーリングを使用して拡大変形を適用するステップを含むことを特徴とする請求項5に記載の記憶媒体。
  7. 前記拡大機能を提供するステップは、前記プラグインにサポートされている機能を使用して拡大変形を適用するステップを含むことを特徴とする請求項5に記載の記憶媒体。
  8. 前記方法は、前記クライアントシステムが、前記コンテンツに関して演算された位置ベースのメタデータを受信するステップをさらに含むことを特徴とする請求項1に記載の記憶媒体。
  9. 前記方法は、前記クライアントシステムが、前記位置ベースのメタデータを参照することによってユーザ命令に応答するステップをさらに含むことを特徴とする請求項8に記載の記憶媒体。
  10. 文書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記クライアントシステムの前記ビューアで前記文書コンテンツの高忠実度レンダリングを提供する方法をサーバシステムに実行させるコンピュータ実行可能命令を格納した少なくとも1つのコンピュータ可読記憶媒体であって、前記方法前記サーバシステムが、
    複数のページを有する少なくとも1つの選択された文書の要求であって前記クライアントシステムの前記ビューアによってサポートされている少なくとも2つの高忠実度レンダリングフォーマットのうちの1つを指定する要求を受信するステップと、
    前記指定されたレンダリングフォーマットで前記ページのサブセットを順次フォーマットするステップと、
    レンダリングのために前記クライアントシステムに、指定されたレンダリングフォーマットでフォーマットされた前記ページのサブセットを順次送信するステップと、
    前記ページのサブセットのうちの未だ送信していない少なくとも1つの追加のページを要求する第2の要求を受信するステップと、
    前記指定されたレンダリングフォーマットで前記少なくとも1つの追加のページをフォーマットするステップと、
    レンダリングのために前記クライアントシステムに前記指定されたレンダリングフォーマットでフォーマットされた前記少なくとも1つの追加ページを送信するステップと、
    を含み、
    前記レンダリングフォーマットのうちの第1のレンダリングフォーマットは前記ビューアの前記プラグインと互換性があり、前記レンダリングフォーマットのうちの第2のレンダリングフォーマットは前記クライアントシステムに前記ビューアの前記プラグインをインストールせずに前記クライアントシステムの前記ビューアで前記コンテンツをレンダリングするためのものであることを特徴とするコンピュータ可読記憶媒体。
  11. 前記方法は、前記サーバシステムが、前記文書内に含まれているコンテンツに関する位置ベースのメタデータを生成するステップをさらに含むことを特徴とする請求項10に記載の記憶媒体。
  12. 前記位置ベースのメタデータを生成するステップは、前記文書内の段落を順序づけるステップを含むことを特徴とする請求項11に記載の記憶媒体。
  13. 前記位置ベースのメタデータを生成するステップは、前記文書内の表要素を順序づけるステップを含むことを特徴とする請求項11に記載の記憶媒体。
  14. 前記位置ベースのメタデータを生成するステップは、前記文書内の少なくとも1つのテキストランの外接矩形を調べるステップを含むことを特徴とする請求項11に記載の記憶媒体。
  15. 前記位置ベースのメタデータを生成するステップは、前記文書内の少なくとも1つのハイパーリンクの外接矩形を調べるステップを含むことを特徴とする請求項11に記載の記憶媒体。
  16. 前記方法は、前記サーバシステムが、前記クライアントシステムに前記位置ベースのメタデータを送信するステップをさらに含むことを特徴とする請求項11に記載の記憶媒体。
  17. 前記方法は、前記サーバシステムが、前記文書内に存在する少なくとも1つのテキストランにおける配置を実行するステップをさらに含むことを特徴とする請求項10に記載の記憶媒体。
  18. 書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記ビューアで前記文書コンテンツの高忠実度レンダリングを提供する方法をサーバシステムに実行させるコンピュータ実行可能命令を格納した少なくとも1つのコンピュータ可読記憶媒体であって、前記方法前記サーバシステムが、
    前記サーバシステムにアップロードされた複数の文書内の少なくとも1つの語を検索する要求であって前記クライアントシステムの前記ビューアによってサポートされている少なくとも2つの高忠実度レンダリングフォーマットのうちの1つを指定する要求を前記クライアントシステムから受信するステップと、
    前記文書内の前記語を検索するステップと、
    前記文書の少なくとも1つ内における前記語の少なくとも1つの存在を発見することに応答して、
    前記指定されたレンダリングフォーマットで前記文書内の当該検索語の存在を少なくとも示す文書プレビューを生成するステップと、
    前記文書内のどこに前記検索語が存在するかを示す検索結果を生成するステップと、
    前記文書プレビュー及び前記検索結果を前記クライアントシステムに送信するステップと
    を含むステップと
    を含み、
    前記レンダリングフォーマットのうちの第1のレンダリングフォーマットは前記ビューアの前記プラグインと互換性があり、前記レンダリングフォーマットのうちの第2のレンダリングフォーマットは前記クライアントシステムに前記ビューアの前記プラグインをインストールせずに前記クライアントシステムの前記ビューアで前記コンテンツをレンダリングするためのものであることを特徴とするコンピュータ可読記憶媒体。
  19. 前記方法は、前記サーバシステムが、前記少なくとも1つの文書に関して演算された位置ベースのメタデータを前記クライアントシステムに送信するステップをさらに含むことを特徴とする請求項18に記載の記憶媒体。
  20. 前記方法は、前記サーバシステムが、前記文書プレビューに対する少なくとも1つのユーザ命令に応答して前記メタデータを参照するステップをさらに含むことを特徴とする請求項19に記載の記憶媒体。
JP2011507517A 2008-04-30 2009-04-03 ビューアクライアントにおける文書の高忠実度レンダリング Expired - Fee Related JP5385373B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/111,988 US20090276696A1 (en) 2008-04-30 2008-04-30 High-fidelity rendering of documents in viewer clients
US12/111,988 2008-04-30
PCT/US2009/039404 WO2009134586A2 (en) 2008-04-30 2009-04-03 High-fidelity rendering of documents in viewer clients

Publications (3)

Publication Number Publication Date
JP2011525001A JP2011525001A (ja) 2011-09-08
JP2011525001A5 JP2011525001A5 (ja) 2012-05-31
JP5385373B2 true JP5385373B2 (ja) 2014-01-08

Family

ID=41255664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011507517A Expired - Fee Related JP5385373B2 (ja) 2008-04-30 2009-04-03 ビューアクライアントにおける文書の高忠実度レンダリング

Country Status (15)

Country Link
US (1) US20090276696A1 (ja)
EP (1) EP2288999B1 (ja)
JP (1) JP5385373B2 (ja)
KR (1) KR20110018297A (ja)
CN (1) CN102016822B (ja)
AU (1) AU2009241484B2 (ja)
BR (1) BRPI0909245A2 (ja)
CA (1) CA2720084A1 (ja)
IL (1) IL208049A0 (ja)
MX (1) MX2010011406A (ja)
MY (1) MY156948A (ja)
RU (1) RU2487400C2 (ja)
SG (1) SG190606A1 (ja)
WO (1) WO2009134586A2 (ja)
ZA (1) ZA201006417B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347208B2 (en) * 2009-03-04 2013-01-01 Microsoft Corporation Content rendering on a computer
US9357269B2 (en) 2009-11-17 2016-05-31 Broadcom Corporation Method and system for providing secure handling of information for complete internet anywhere
US8448214B2 (en) 2009-11-17 2013-05-21 Broadcom Corporation Method and system for providing complete internet anywhere with partial server processing
US9569543B2 (en) 2010-01-15 2017-02-14 International Business Machines Corporation Sharing of documents with semantic adaptation across mobile devices
US8458586B2 (en) * 2010-03-15 2013-06-04 Jasim George Schluter X/HTML support for silverlight applications
US8954427B2 (en) * 2010-09-07 2015-02-10 Google Inc. Search result previews
WO2013025722A1 (en) * 2011-08-15 2013-02-21 Google Inc, Methods and systems for progressive enhancement
US9098938B2 (en) 2011-11-10 2015-08-04 The Directv Group, Inc. System and method for drawing anti-aliased lines in any direction
KR102220267B1 (ko) * 2013-07-11 2021-02-25 삼성전자주식회사 전자문서를 공유하는 방법 및 이를 위한 장치들
US8924850B1 (en) * 2013-11-21 2014-12-30 Google Inc. Speeding up document loading
US20150163326A1 (en) * 2013-12-06 2015-06-11 Dropbox, Inc. Approaches for remotely unzipping content
KR102063566B1 (ko) 2014-02-23 2020-01-09 삼성전자주식회사 메시지 운용 방법 및 이를 지원하는 전자 장치
US10372789B2 (en) * 2014-08-22 2019-08-06 Oracle International Corporation Creating high fidelity page layout documents
JP6379920B2 (ja) * 2014-09-19 2018-08-29 富士ゼロックス株式会社 端末装置、文書サーバコンピュータ、文書管理システム及びプログラム
KR101666131B1 (ko) 2015-05-29 2016-10-14 경북대학교 산학협력단 서브 픽셀의 패턴을 고려한 벡터 글꼴의 렌더링 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303361A (en) * 1989-01-18 1994-04-12 Lotus Development Corporation Search and retrieval system
US6026409A (en) * 1996-09-26 2000-02-15 Blumenthal; Joshua O. System and method for search and retrieval of digital information by making and scaled viewing
US6421726B1 (en) * 1997-03-14 2002-07-16 Akamai Technologies, Inc. System and method for selection and retrieval of diverse types of video data on a computer network
JP3873427B2 (ja) * 1998-01-30 2007-01-24 ブラザー工業株式会社 プリンタ制御システムにおける中間ファイルの加工装置及びその制御プログラムが記録された記録媒体
US6188385B1 (en) * 1998-10-07 2001-02-13 Microsoft Corporation Method and apparatus for displaying images such as text
US6697099B2 (en) * 1998-10-30 2004-02-24 Intel Corporation Method and apparatus for displaying a colored audio/visual program
US6421826B1 (en) * 1999-11-05 2002-07-16 Sun Microsystems, Inc. Method and apparatus for performing prefetching at the function level
US6795089B2 (en) * 2000-12-20 2004-09-21 Microsoft Corporation Dynamic, live surface and model elements for visualization and modeling
US6664974B2 (en) * 2000-12-26 2003-12-16 Sun Microsystems, Inc. Method for using multipurpose internet mail extension types for automatically detecting scalable vector graphics support in client browsers
US20020089689A1 (en) * 2001-01-11 2002-07-11 Sharp Laboratories Of America, Inc. Methods and systems for print system component-generated job separator pages
US7480068B2 (en) * 2001-01-11 2009-01-20 Sharp Laboratories Of America, Inc. Methods and systems for page-independent spool file sheet assembly
US20020191206A1 (en) * 2001-06-18 2002-12-19 Anderson Jeff M. Rendering broker service and method
US7363384B2 (en) * 2001-07-11 2008-04-22 Sony Computer Entertainment America Inc. Selection of content in response to communication environment
TWI235946B (en) * 2002-03-13 2005-07-11 Culture Com Technology Macau Ltd Method and system of displaying data
US6897879B2 (en) * 2002-03-14 2005-05-24 Microsoft Corporation Hardware-enhanced graphics acceleration of pixel sub-component-oriented images
US7146434B2 (en) * 2002-05-15 2006-12-05 Hewlett-Packard Development Company, L.P. Method for downloading data via the internet to a browser enabled computer
JP2004362278A (ja) * 2003-06-04 2004-12-24 Murata Mach Ltd コンテンツ提供装置およびその装置を実現するためのプログラム
JP2005108230A (ja) * 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US7620892B2 (en) * 2004-07-29 2009-11-17 Xerox Corporation Server based image processing for client display of documents
US8032482B2 (en) * 2004-09-30 2011-10-04 Microsoft Corporation Method, system, and apparatus for providing a document preview
US7243298B2 (en) * 2004-09-30 2007-07-10 Microsoft Corporation Method and computer-readable medium for previewing and performing actions on attachments to electronic mail messages
US20060242572A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Viewer for protected content as a programming platform component
AU2005201758B2 (en) * 2005-04-27 2008-12-18 Canon Kabushiki Kaisha Method of learning associations between documents and data sets
US20060271550A1 (en) * 2005-05-26 2006-11-30 Siemens Communications, Inc. Method and system for remote document editing using a wireless communication device
US20070168354A1 (en) * 2005-11-01 2007-07-19 Jorey Ramer Combined algorithmic and editorial-reviewed mobile content search results
US8108404B2 (en) * 2005-10-14 2012-01-31 Research In Motion Limited URL document viewing through a plug-in application for a mobile browser on a wireless device
US7779343B2 (en) * 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US7752237B2 (en) * 2006-03-15 2010-07-06 Microsoft Corporation User interface having a search preview

Also Published As

Publication number Publication date
KR20110018297A (ko) 2011-02-23
MX2010011406A (es) 2010-11-12
RU2487400C2 (ru) 2013-07-10
SG190606A1 (en) 2013-06-28
WO2009134586A3 (en) 2010-01-14
EP2288999A4 (en) 2013-05-22
AU2009241484B2 (en) 2014-06-05
WO2009134586A2 (en) 2009-11-05
CA2720084A1 (en) 2009-11-05
AU2009241484A1 (en) 2009-11-05
EP2288999A2 (en) 2011-03-02
EP2288999B1 (en) 2017-08-30
JP2011525001A (ja) 2011-09-08
CN102016822A (zh) 2011-04-13
BRPI0909245A2 (pt) 2015-08-18
IL208049A0 (en) 2010-12-30
RU2010144606A (ru) 2012-05-10
CN102016822B (zh) 2013-07-31
ZA201006417B (en) 2011-12-28
US20090276696A1 (en) 2009-11-05
MY156948A (en) 2016-04-15

Similar Documents

Publication Publication Date Title
JP5385373B2 (ja) ビューアクライアントにおける文書の高忠実度レンダリング
EP2742422B1 (en) Content preview
US8261209B2 (en) Updating content display based on cursor position
JP6043342B2 (ja) 電子通信のための拡張性機能
US7840650B2 (en) Sharing of digital media on a network
US20140047530A1 (en) System, method and apparatus for selecting content from web sources and posting content to web logs
US20120110453A1 (en) Display of Image Search Results
US9021352B2 (en) Methods and apparatus for predictive document rendering
US20150193108A1 (en) Drag and Drop Downloading of Content Referenced by Displayed Elements
US8706778B2 (en) Methods and systems for an action-based interface for files and other assets
US9940396B1 (en) Mining potential user actions from a web page
US20110126113A1 (en) Displaying content on multiple web pages
US20100192098A1 (en) Accelerators for capturing content
KR20090096698A (ko) 그래픽 이미지를 조작하기 위한 방법 및 장치
CN115701299A (zh) 组合的本地和服务器上下文菜单
US8719416B1 (en) Multiple subparts of a uniform resource locator
CN107533544B (zh) 元素标识符生成
KR20130126614A (ko) 애플리케이션 파일 시스템 액세스
US20100218122A1 (en) Asynchronously uploading and resizing content in web-based applications
US11163938B2 (en) Providing semantic based document editor
US20230306189A1 (en) Information processing apparatus, non-transitory computer readable medium storing program, and information processing method
AU2011308901B2 (en) Content preview
CN117093386A (zh) 页面截图方法、装置、计算机设备和存储介质
JP2021033513A (ja) プログラム、サーバ及び表示制御方法
US20140258835A1 (en) System and method to download images from a website

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130702

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130802

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131003

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees