2011-02-04 24 views
5

私は、pdfファイルを読んでテキストを検索する必要があります。 そのテキストが存在するページと出現回数を表示する必要があります。 pdfをテキストに読み込むことはできますが、ページ番号を知る必要があります。PDFテキスト検索C#

ありがとうございました

答えて

4

これにはDocotic.Pdfを使用できます(私はBit Miracleで働いています)。ここで

は、PDF内のテキストを検索する方法のサンプルです:

PdfDocument doc = new PdfDocument("file.pdf"); 
string textToSearch = "some text"; 
for (int i = 0; i < doc.Pages.Count; i++) 
{ 
    string pageText = doc.Pages[i].GetText(); 
    int count = 0; 
    int lastStartIndex = pageText.IndexOf(textToSearch, 0, StringComparison.CurrentCultureIgnoreCase); 
    while (lastStartIndex != -1) 
    { 
     count++; 
     lastStartIndex = pageText.IndexOf(textToSearch, lastStartIndex + 1, StringComparison.CurrentCultureIgnoreCase); 
    } 

    if (count != 0) 
     Console.WriteLine("Page {0}: '{1}' found {2} times", i, textToSearch, count); 
} 

大文字と小文字を区別する検索を実行したい場合は、IndexOfメソッドの第三引数を削除することもできます。

+0

ありがとうBobrovsky私はこれを試します.. – dps123

+1

今後の読者のためのFYIとして、Docotic。 Pdfはもはや無料です。 http://bitmiracle.com/pdf-library/free-pdf-library.aspx 私はApache PDFBoxを試してみることをお勧めします(これは完全に無料で、リリース後に公開されています) – Keplah

+0

私は自分の答えを更新しました。 – Bobrovsky

3

itextsharpを確認しましたか? http://itextsharp.sourceforge.net/

EDIT:PdfReaderContentParser PdfReaderContentParserとPdfTextExtractor

で抽出したテキスト

以下:: 15.3.3: は詳述すると、TOCに、私は上のセクションを見て処理するためのオプションがあるhttp://api.itextpdf.com/com/itextpdf/text/pdf/parser/PdfReaderContentParser.html ページあたりのpdfコンテンツ

これはラウンドに近いようですが、各ページを繰り返して、必要な単語のコンテンツを検索し、見つかったページを返すことができます。

+0

検索オプションitextsharpのマニュアルは表示されません。 – Shoban

+0

@Shobanが回答を編集しました。私は自分自身でそれを試していない、ちょうどOPを開始するための提案。 – Joe

+0

ありがとうジョー... :) +1 – Shoban