#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
.