2013-07-05 39 views
8

これはStackOverflowの最初の投稿です。Itextsharpを使用してPDFで特定の単語を検索する

システムドライブに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

私はあなたのテキストパラメータは、リスプを持っていると思う。 ;) –

関連する問題