Есть ли способ прочитать и подтвердить указанный текст PDF с помощью iTextSharp?

#c# #itext

#c# #itext

Вопрос:

Я пытаюсь создать концептуальную программу, в которой я могу читать PDF и проверять, существует ли определенная строка или предложение с использованием iTextSharp. Следующий фрагмент кода — это то, что у меня есть на данный момент:

 using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System;
using System.Text;


namespace PDFReader
{
    internal class Class1
    {
        private static void Main(string[] args)
        {

            try
            {
                StringBuilder text = new StringBuilder();
                using (PdfReader reader = new PdfReader(@"C:UsersMeDownloadsTestPDF.pdf"))

                {
                    for (int i = 1; i <= reader.NumberOfPages; i  )
                    {
                        text.Append(PdfTextExtractor.GetTextFromPage(reader, i));

                    }
                }
                Console.WriteLine(text.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }

            Console.Read();
        }

    }
}
  

Пока это прекрасно работает для чтения всего содержимого PDF, но мне нужно, чтобы оно возвращало указанную строку, если она существует. Я думал о чем-то вроде этого:

 .Where(p => p.Text.Contains("SpecifiedStringHere")).OrderBy(p => p.Y).Reverse().ToList();
  

Любая помощь была бы высоко оценена!

Комментарии:

1.Пожалуйста, укажите более четко, что вы ищете. Вы говорите, что вам это нужно для возврата указанной строки, но в вашем чем-то вроде этого фрагмента кода вы не возвращаете указанную строку, а вместо этого возвращаете список какого-то неизвестного типа объектов с Text и Y свойством, где Text значение свойства содержит указанную строку. Какой тип объекта это должен быть? Что он должен содержать?

2. Привет, второй фрагмент кода был просто примером того, что я ищу, я понимаю, что это, вероятно, неверно. Я хотел бы иметь возможность вводить строку во что-то вроде ‘Text.Contains’, затем программа считывает файл PDF и выводит соответствующий текст на консоль, если находит его в PDF.

3. «Я хотел бы иметь возможность вводить строку во что-то вроде ‘Text.Contains'» — ну, а что насчет StringBuilder text в вашем коде, вы можете сделать text.ToString().Contains .