GcPdfSearcher クラス

PDFドキュメントのサーチャー。 非同期検索結果を生成します(search メソッドを参照します)。GcPdfSearcher APIは、検索パネルUIで内部的に使用されるように設計されます。

階層

  • GcPdfSearcher

実装

  • IPdfSearcher

メソッド

  • PDFドキュメントからすべてのテキストを一度抽出します。

    戻り値 void

  • 最初/最後の入力文字を前後の文字と比較して、検索クエリが「単語単位で検索」を構成しているかどうかを判断します。

    パラメータ

    • content: any
    • lineEndings: { [x: number]: boolean }
      • [x: number]: boolean
    • startIdx: any
    • length: any

    戻り値 boolean

  • matchesWithLength 配列を埋め、1つの検索語に別の検索語が含まれる場合を処理する複数語検索のヘルパー(たとえば、「tamed tame」または「this is」)。matches で交差する用語を検索し、一致する長さが長い要素を保持します。

    パラメータ

    • matchesWithLength: any
    • matches: any
    • matchesLength: any

    戻り値 void

  • 現在の検索結果のハイライトを描画します。

    戻り値 void

  • 検索タスクをキャンセルします。

    サンプル

    // ドキュメントを開き、「wildlife」というテキストを見つけて、最初の結果を強調表示します。
    async function loadPdfViewer(selector) {
    var viewer = new GcPdfViewer(selector, { restoreViewStateOnLoad: false });
    viewer.addDefaultPanels();
    var afterOpenPromise = new Promise((resolve)=>{ viewer.onAfterOpen.register(()=>{ resolve(); }); });
    await viewer.open('wetlands.pdf');
    await afterOpenPromise;
    var findOptions = { Text: 'wildlife' };
    var searchIterator = await viewer.searcher.search(findOptions);
    var searchResult = await searchIterator.next();
    viewer.searcher.cancel();
    viewer.searcher.highlight(searchResult.value);
    }
    loadPdfViewer('#root');

    戻り値 void

  • 結果を含むページに移動し、見つかったテキストをハイライト表示します。

    サンプル

    // ドキュメントを開き、「wildlife」というテキストを見つけて、最初の結果を強調表示します。
    async function loadPdfViewer(selector) {
    var viewer = new GcPdfViewer(selector, { restoreViewStateOnLoad: false });
    viewer.addDefaultPanels();
    var afterOpenPromise = new Promise((resolve)=>{ viewer.onAfterOpen.register(()=>{ resolve(); }); });
    await viewer.open('wetlands.pdf');
    await afterOpenPromise;
    var findOptions = { Text: 'wildlife' };
    var searchIterator = await viewer.searcher.search(findOptions);
    var searchResult = await searchIterator.next();
    viewer.searcher.cancel();
    viewer.searcher.highlight(searchResult.value);
    }
    loadPdfViewer('#root');

    パラメータ

    • searchResult: null | SearchResult
    • オプション pageIndex: number

    戻り値 Promise<void>

  • 特定の検索結果が選択されているかどうかを確認します。

    戻り値

    検索結果が選択されているかどうかを示すブール値。

    パラメータ

    • result: SearchResult

      選択のために確認する検索結果。

    戻り値 boolean

  • 次の検索結果を発行します。主に PDF Searcher によって内部的に使用されます。

    戻り値

    処理された検索結果で解決される Promise。

    パラメータ

    • result: SearchResult

      処理される検索結果。

    • cancellation: any

      キャンセルを処理するキャンセルトークン。

    戻り値 Promise<SearchResult>

  • 検索結果をクリアします。このメソッドは、SearchPanelを閉じるときに呼び出す必要があります。

    戻り値 void

  • 提供された検索オプションに基づいて、検索結果を非同期に生成します。

    サンプル

    // SearchPanel を開かずにすべての検索結果を強調表示します。
    const searchIterator = viewer.searcher.search({ Text: "test", MatchCase: true, HighlightAll: true });
    searchIterator.next();
    searcher.applyHighlight();

    サンプル

    // すべての検索結果を繰り返します。
    const searcher = viewer.searcher;
    var searchResults = [];
    const searchIterator = searcher.search({ Text: textToSearch, MatchCase: true });
    var searchResult = await searchIterator.next();
    if (searchResult.value)
    searcher.highlight(searchResult.value)
    while (searchResult.value && !searchResult.done) {
    const searchResultValue = searchResult.value;
    searchResults.push(`index: ${searchResultValue.ItemIndex}, text: ${searchResultValue.DisplayText}, pageIndex: ${searchResultValue.PageIndex}`);
    searchResult = await searchIterator.next();
    }
    console.log("Search results: " + (searchResults.length ? searchResults.join("; ") : "No search results"));

    サンプル

    // ドキュメントを開き、「wildlife」というテキストを見つけて、最初の結果を強調表示します。
    async function loadPdfViewer(selector) {
    var viewer = new DsPdfViewer(selector, { restoreViewStateOnLoad: false });
    viewer.addDefaultPanels();
    var afterOpenPromise = new Promise((resolve)=>{ viewer.onAfterOpen.register(()=>{ resolve(); }); });
    await viewer.open('wetlands.pdf');
    await afterOpenPromise;
    var findOptions = { Text: 'wildlife' };
    var searchIterator = await viewer.searcher.search(findOptions);
    var searchResult = await searchIterator.next();
    viewer.searcher.cancel();
    viewer.searcher.highlight(searchResult.value);
    }
    loadPdfViewer('#root');

    サンプル

    // ドキュメントを開き、「wildlife」というテキストを見つけて、検索結果をコンソールに出力します。

     async function loadPdfViewer(selector) {
    var viewer = new DsPdfViewer(selector);
    viewer.addDefaultPanels();
    await viewer.open('wetlands.pdf');
    await (new Promise((resolve)=>{
    viewer.onAfterOpen.register(()=>{
    resolve();
    });
    }));
    var findOptions = {
    Text: 'wildlife',
    MatchCase: true,
    WholeWord: true,
    StartsWith: false,
    EndsWith: false,
    Wildcards: false,
    Proximity: false,
    SearchBackward: false,
    HighlightAll: true
    };
    var searcher = viewer.searcher;
    var searchIterator = await searcher.search(findOptions);
    var resultsCount = 0;
    var searchResult;
    do {
    searchResult = await searchIterator.next();
    if (searchResult.value) {
    // this could be either result or progress message (ItemIndex < 0)
    if(searchResult.value.ItemIndex >= 0) {
    console.log('next search result:');
    console.log(searchResult.value);
    resultsCount++;
    } else {
    const pageCount = _doc.pageCount.totalPageCount || _doc.pageCount.renderedSoFar;
    console.log('search progress, page index is ' + searchResult.value.PageIndex);
    }
    }
    else {
    console.log("Search completed");
    break;
    }
    }
    while(!searchResult.done);
    console.log('Total results count is ' + resultsCount);
    }

    戻り値

    検索結果を生成する非同期反復可能イテレータ。

    パラメータ

    • options: FindOptions

      検索をカスタマイズする検索オプション。

    戻り値 AsyncIterableIterator<SearchResult>

  • 検索 UI の表示を切り替えます。

    パラメータ

    • オプション forceExpand: boolean = true

      検索 UI を強制的に展開するかどうかを示します。デフォルトは true です。

    戻り値 void

  • 表示されているページのハイライトを再描画します。

    戻り値 void

アクセサー

  • get _query(): string
  • 戻り値

    (現在)正規化された検索クエリ。

    戻り値 string

  • get highlightAll(): boolean
  • 全てをハイライト表示オプションを取得します。

    戻り値 boolean

  • set highlightAll(checked: boolean): void
  • 全てをハイライト表示オプションを設定します。

    パラメータ

    • checked: boolean

    戻り値 void

  • get selectedSearchResult(): undefined | SearchResult
  • 選択した検索結果を取得します。

    戻り値 undefined | SearchResult

  • get selectedSearchResultIndex(): number
  • 選択した検索結果のインデックスを取得します。何も選択される場合は -1 を返します。

    戻り値 number

  • get state(): PdfSearcherOptions
  • 空以外のサーチャーオプションを取得します。

    戻り値

    PDF サーチャーオプションの現在の状態。有効なオブジェクトであることを確認します。

    戻り値 PdfSearcherOptions

  • get totalResultsCount(): number
  • 検索結果の合計数を取得します。

    戻り値 number

  • get totalResultsCountPromise(): null | Promise<number>
  • 検索結果Promiseの合計数を取得します。

    戻り値 null | Promise<number>