使用Itextsharp搜索PDF格式的特定单词
这是我在StackOverflow中的第一篇文章。
我的系统驱动器中有一个PDF文件…我想在C#中编写一个程序,使用Itextsharp.dll引用来搜索该PDF中的特定单词…说我要搜索“StackOverFlow”…如果PDF包含Word“StackOverFlow”,它应该返回true。
否则它应该返回false。
我已经看了很多文章,但直到现在才得到解决方案.. 🙁
我到现在为止尝试的是:
public string ReadPdfFile(string fileName) { StringBuilder text = new StringBuilder(); if (File.Exists(fileName)) { PdfReader pdfReader = new PdfReader(fileName); for (int page = 1; page <= pdfReader.NumberOfPages; page++) { ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); string currentText = "2154/MUM/2012 A";// PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText))); text.Append(currentText); } pdfReader.Close(); } return text.ToString(); }
在此先感谢,Sabya Dev
以下方法工作正常。 它给出了找到文本的页面列表。
public List ReadPdfFile(string fileName, String searthText) { List pages = new List (); if (File.Exists(fileName)) { PdfReader pdfReader = new PdfReader(fileName); for (int page = 1; page <= pdfReader.NumberOfPages; page++) { ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); string currentPageText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); if (currentPageText.Contains(searthText)) { pages.Add(page); } } pdfReader.Close(); } return pages; }