2017-05-11 6 views
1

私はPDFファイルがあり、そのファイル内の特定のテキストを検索するソリューションを探していました。その検索テキストの結果はリスト形式で表示されますそのページ番号が付いています。私はオンラインソリューションを探しましたが、それに完璧かつ適切な解決策を見つけることができませんでした...表示ページ番号とともにPDFの検索テキストを表示

アドビリーダーで利用できる同じタイプの機能がありますが、ユーザーはすべての検索項目を見ることができる「コメント」と呼ばれますページ番号とともにリスト形式で表示されます。

は、事前にありがとう...

あなたの答えは私にとって本当に役立つだろうし、可能な場合は、あまりにも例を提供してください。

+0

あなたはタグでPDF.jsを述べたが、なぜ説明しませんでした。各ページ(https://github.com/mozilla/pdf.js/blob/master/examples/node/getinfo.js)のテキストを印刷する例があります。これは、あなたが今質問したことを行うために適合させることができます。 – async5

+0

ありがとうございます@ async5、よく私はデフォルトでPDF.jsライブラリを使用しており、彼は検索されたすべてのテキストを表示したいクライアントの要件があります。だから私は同じものを探していたし、よくこのPDF.jsを使い慣れているので、今話題の例を参考にして助けてもらえますか、他の例が良いかもしれません、本当に私のために役立つ。前もって感謝します。 –

答えて

0

ここでは、PDF.jsを使用してページごとにグループ化された検索済みテキストを表示するのに役立つ例を示します。

var searchText = "JavaScript"; 
 
function searchPage(doc, pageNumber) { 
 
    return doc.getPage(pageNumber).then(function (page) { 
 
    return page.getTextContent(); 
 
    }).then(function (content) { 
 
    // Search combined text content using regular expression 
 
    var text = content.items.map(function (i) { return i.str; }).join(''); 
 
    var re = new RegExp("(.{0,20})" + searchText + "(.{0,20})", "gi"), m; 
 
    var lines = []; 
 
    while (m = re.exec(text)) { 
 
     var line = (m[1] ? "..." : "") + m[0] + (m[2] ? "..." : ""); 
 
     lines.push(line); 
 
    } 
 
    return {page: pageNumber, items: lines}; 
 
    }); 
 
} 
 

 
var loading = PDFJS.getDocument("//cdn.mozilla.net/pdfjs/tracemonkey.pdf"); 
 
loading.promise.then(function (doc) { 
 
    var results = []; 
 
    for (var i = 1; i <= doc.numPages; i++) 
 
    results.push(searchPage(doc, i)); 
 
    return Promise.all(results); 
 
}).then(function (searchResults) { 
 
    // Display results using divs 
 
    searchResults.forEach(function (result) { 
 
    var div = document.createElement('div'); div.className="pr"; document.body.appendChild(div); 
 
    div.textContent = 'Page ' + result.page + ':'; 
 
    result.items.forEach(function (s) { 
 
     var div2 = document.createElement('div'); div2.className="prl"; div.appendChild(div2); 
 
     div2.textContent = s; 
 
    }); 
 
    }); 
 
}).catch(console.error);
.pr { font-family: sans-serif; font-weight: bold; } 
 
.prl { font-style: italic; font-weight: normal; }
<script src="//npmcdn.com/pdfjs-dist/build/pdf.js"></script>

+0

あなたの答えはありがとうございます。それは働いていますが、私は何か探していましたが、それ以外のものは私が探していたものではありません。私が理論的に最初に必要としたものの例を挙げてみましょう。ユーザーは単語を検索します。単語を検索した後、PDFファイル内のすべての単語 "hello"のリストを索引番号と共に取得しますそしてそれがあるページ番号。特定の文書に合計4つの "hello"があるとすると、4つの "hello"のリストを表示したいのですが、3回目をクリックすると、それが存在するページの3番目の "hello"にリダイレクトする必要があります。 –

関連する問題