Как извлечь текст из PDF в .NET

Как извлечь текст из PDF в .NET

Эта статья показывает, как извлечь текст из PDF-документов с помощью Aspose.PDF Text Extractor для .NET. Вы научитесь использовать все поддерживаемые режимы экстракции — Pure, Raw и Plain — и автоматизировать рабочие потоки для отдельных или множественных PDF.

Реальные мировые проблемы

Ручное копирование текста из PDF-файлов неэффективно и без ошибок. Для приложений в анализе данных, миграции документов или архивировании автоматизированная текстовая экстракция обеспечивает консистенцию, скорость и точность.

Решение обзор

Aspose.PDF Text Extractor для .NET обеспечивает чистый, программируемый интерфейс для экстракции текста в различных форматах. Выберите между чистим, сырым и плоским режимами, чтобы соответствовать вашему случае использования — нужен вам форматированный выход, суровые данные или плоский контент.

Предупреждения

  • Visual Studio 2019 или позднее
  • .NET 6.0 или более поздний
  • Aspose.PDF для .NET, установленный через NuGet
PM> Install-Package Aspose.PDF

Step-by-Step реализация

Шаг 1: Инсталляция и настройка Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

Шаг 2: Экстракт текста с использованием стандартного режима (Raw)

using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(); // Raw mode by default
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

Шаг 3: Экстракт текста в чистом или плоском режиме

  • **Чистый режим: ** Сохраняет относительные позиции и добавляет пространства для корректировки.
  • Планированный режим: Стрип форматирования, выходит текст с минимальными пространствами.
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

Использование случаев и приложений (с кодовыми вариациями)

1. Batch Экстракт текста из множества PDF

string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
    foreach (var file in files)
        options.AddInput(new FileDataSource(file));
    var resultContainer = extractor.Process(options);
    for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
    {
        string extracted = resultContainer.ResultCollection[i].ToString();
        // Save to disk, process, or analyze as needed
        File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
    }
}

2. Выберите режим экстракции на основе используемого случая

  • Используйте Pure для табличных размеров или пространственного форматирования.
  • Используйте Plain для чистого извлечения или анализа данных.
  • Используйте Raw для непереработанного текста.

3. Пост-процесс Извлеченный текст

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

4. Интегрировать экстракцию с трубами данных

Автоматическое извлечение в рамках более широкого рабочего потока ETL, отчетности или управления документами с использованием стандартных практик .NET.

Общие вызовы и решения

Проблема: Несовместимый выход из-за сложной структуры PDFРешение: Попробуйте различные режимы извлечения (чистые, плоские, сырые) и сравните результаты.

**Проблема: ** Скорость выделения батарей Решение: Используйте один TextExtractor Пример и обработка нескольких файлов в одном раунде для наилучшей производительности.

Проблемы: ** Особые персонажи или проблемы с кодированиемРешение:** Используйте плавный режим для минимального форматирования, затем используйте персонализированную обработку строка, как это необходимо.

Показания и лучшие практики

  • Проверьте все три режима экстракции, чтобы определить оптимальные результаты для вашего типа документа
  • Сохранить оригинальные PDF-файлы перед операциями на батареи
  • Торговля фамилиями и организацией продукции в батареях рабочих мест
  • Интегрированное обращение с ошибками и регистрация для прочности

Полный пример реализации

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (var extractor = new TextExtractor())
        {
            var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
            options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
            var resultContainer = extractor.Process(options);
            string textExtracted = resultContainer.ResultCollection[0].ToString();
            File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
        }
    }
}

Заключение

Aspose.PDF Text Extractor для .NET предоставляет вам мощные, гибкие инструменты для извлечения текста в нескольких форматах — подходит для обработки данных, архивирования или анализа. Выберите режим изъятия, наиболее подходящий для ваших потребностей, а также автоматизируйте экстракцию для высокой эффективности в приложениях .Net.

 Русский