C# - PdfDocument.GetTextWithFormatting() не принимает все страницы

Я пытаюсь открыть большой файл PDF, но с этим кодом

using BitMiracle.Docotic.Pdf;

PdfDocument pdf = new PdfDocument("document.pdf")
string document = pdf.GetTextWithFormatting();

строка document возьмите первые 87 страниц (из 174). Почему требуется только первая половина документа?

РЕДАКТИРОВАТЬ: Это ограничения режима оценки библиотеки. Есть несколько альтернатив?

2 ответа

Решение

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

  • Документы, созданные с помощью библиотеки, содержат оценочное уведомление, напечатанное на каждой странице.
  • Для всех существующих документов библиотека читает только половину страниц.

Чтобы оценить библиотеку без ограничений режима оценки, вы можете получить бесплатную ограниченную по времени лицензию на нашем сайте.

Вы можете попробовать прочитать текст с каждой страницы:

StringBuilder sb = new StringBuilder();
var options = new PdfTextExtractionOptions
                {
                    WithFormatting = false,
                    SkipInvisibleText = true
                };
using (PdfDocument pdf = new PdfDocument("document.pdf"))
{
    int pageIndex = 1;
    foreach(var page in pdf.Pages)
    {
        Console.WriteLine("Page {0}", pageIndex++);
        sb.AppendLine(page.GetText(options));
    }
}
string allText = sb.ToString();

После этого вы должны увидеть строку в вашей консоли для каждой страницы в PDF.

Я мог бы быть, что страницы после 87 не имеют текста на них. Например, это могут быть изображения отсканированных страниц.

Вы можете проверить это, пытаясь выбрать, скопировать и вставить текст из PDF-файла после стр. 87. Если есть возможность, то, скорее всего, это ошибка в DLL-библиотеке BitMiracle.

Другие вопросы по тегам