Я работаю над проектом, в котором библиотеки Telerik для обработки документов доступны для меня, и я надеялся, что смогу использовать его для чтения PDF-файла и поиска конкретного текста, который я могу использовать для другой обработки. Но хотя код для этого кажется простым, я не получаю ожидаемых результатов. Это доказательство концепции, которую я бросил вместе:
var fs = new FileStream("..\\some.pdf", FileMode.Open);
RadFixedDocument doc = new PdfFormatProvider(fs).Import();
var pageCt = 0;
var elementCt = 0;
foreach (var page in doc.Pages) {
pageCt += 1;
Console.WriteLine($"Page {pageCt}, (Has content: {page.HasContent}, {page.Content.Count})");
foreach (var contentEl in page.Content) {
elementCt += 1;
Console.WriteLine($"Element {elementCt}");
if (contentEl is TextFragment) {
string text = (contentEl as TextFragment).Text;
Console.WriteLine(text);
// if (text.Contains("{{CustomTag}}")) {
// Console.WriteLine(text);
// } else {
// Console.Write(".");
// }
}
else {
Console.WriteLine($"Content Type: {contentEl.GetType().ToString()}");
}
}
}
Я проверил это на нескольких документах, но, хотя кажется, что выбрано правильное количество страниц, каждая страница сообщает, что HasContent
равно false
, а коллекция Content
пуста.
Не ошибаюсь ли я, думая, что смогу пройтись по элементам содержимого PDF таким образом?