2011-02-04 75 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