2013-07-05 3 views
8

Это мой первый пост в StackOverflow.Поиск Особое Word в PDF с использованием Itextsharp

У меня есть файл PDF на моем системном диске ... Я хочу написать программу на C#, используя ссылку Itextsharp.dll для поиска конкретного слова в этом PDF-файле ... скажем, я хочу искать «StackOverFlow». .. Если PDF содержит слово «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

+2

У вас есть PdfTextExtractor.GetTextFromPage (pdfReader, page, strategy). 'И у вас есть строка, которую вы ищете. Проверяли ли вы, что ваша строка поиска находится в результате метода GetTextFromPage? Если это не так, проверили, как выглядит возврат этого метода (в конце концов, это строка)? – mkl

ответ

15

следующий метод работает отлично. Это дает список страниц, в котором найден текст.

 public List<int> ReadPdfFile(string fileName, String searthText) 
      { 
       List<int> pages = new List<int>(); 
       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; 
      } 
+0

Спасибо за ответ ... Могу ли я получить номер страницы? – user2553159

+0

да, вы получаете номера страниц в списке. страницы возврата; дает номера страниц .. – Lalitya

+1

Я думаю, что ваш текстовый параметр имеет lisp. ;) –

Смежные вопросы