Часть кода, которую вы нашли, предназначена для iText 5.5.x. iText 7 имеет принципиально измененный API, поэтому ваша проблема NumberOfPages
- не единственная проблема, с которой вам придется столкнуться.
Тем не менее: чтобы получить количество страниц в iText 7, вы теперь используете PdfDocument
метод GetNumberOfPages
вместо прежнего PdfReader
свойства NumberOfPages
.
И вообще, порт вашего метода для iText 7 может выглядеть так:
public List<int> ReadPdfFile(string fileName, String searthText)
{
List<int> pages = new List<int>();
if (File.Exists(fileName))
{
using (PdfReader pdfReader = new PdfReader(fileName))
using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
{
for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentPageText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page), strategy);
if (currentPageText.Contains(searthText))
{
pages.Add(page);
}
}
}
}
return pages;
}