2011-02-04 129 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方法。

3

你檢查過itextsharp了嗎? http://itextsharp.sourceforge.net/

編輯: 爲了闡述,在TOC中,我看到了一個部分上: 15.3.3:與PdfReaderContentParser和PdfTextExtractor

提取文本

而下PdfReaderContentParser: http://api.itextpdf.com/com/itextpdf/text/pdf/parser/PdfReaderContentParser.html 有一個選項來處理每頁的pdf內容。

因此,它似乎是一個關於方式的過程,但是您可以遍歷每個頁面,在內容中搜索所需的單詞,然後返回您找到的單詞。

+0

我沒有看到搜索選項itextsharp文檔。 – Shoban 2011-02-04 02:24:44

+0

@Shoban編輯答案是更多的信息。我沒有嘗試過自己,只是建議讓OP開始。 – Joe 2011-02-04 02:32:01