Jak wydobyć tekst z plików PDF w .NET

Jak wydobyć tekst z plików PDF w .NET

Ten artykuł pokazuje, jak wyciągać tekst z dokumentów PDF za pomocą Aspose.PDF Text Extractor dla .NET. Nauczysz się używać wszystkich obsługiwanych trybów ekstrakcji - Pure, Raw i Plain - i automatyzować przepływy robocze dla pojedynczych lub wielokrotnych PDF.

Problem świata rzeczywistego

Ręczne kopiowanie tekstu z plików PDF jest nieefektywne i bez błędów. Dla aplikacji w analizie danych, migracji dokumentów lub archiwizacji, automatyczna ekstrakcja tekstu zapewnia spójność, szybkość i dokładność.

Przegląd rozwiązania

Aspose.PDF Text Extractor for .NET zapewnia czysty, programowalny interfejs do ekstrakcji tekstu w różnych formach. Wybierz między Pure, Raw i Plain trybów, aby dopasować się do twojego przypadku użytkowania – czy potrzebujesz formatowanego wyjścia, surowych danych, czy płaskich treści.

Warunki

  • Visual Studio 2019 lub później
  • .NET 6.0 lub nowszy
  • Aspose.PDF dla .NET zainstalowany za pośrednictwem NuGet
PM> Install-Package Aspose.PDF

Wdrażanie krok po kroku

Krok 1: Instaluj i skonfiguruj Aspose.PDF

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

Krok 2: Wyciągnij tekst za pomocą trybu standardowego (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);
}

Krok 3: Wyciągnij tekst w czystym lub płaskim trybie

  • **Pure Mode: ** Utrzymuje relatywne pozycje i dodaje miejsca do dostosowania.
  • **W trybie planowania: ** Strumień formatowania, tekst wyjściowy z minimalnymi przestrzeniami.
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);
}

Używanie przypadków i aplikacji (z odmianami kodu)

1. Batch Ekstrakt tekstu z wielu plików 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. Wybierz tryb ekstrakcji w oparciu o przypadek użycia

  • Użyj Pure do aranżacji tabeli lub formatowania przestrzennego.
  • Użyj Plain do czystej ekstrakcji lub analizy danych.
  • Użyj Raw dla nieprzetworzonego tekstu.

3. Post-proces wyciągnięty tekst

Po ekstrakcji, zastosować regex, czyszczenie tekstu, lub wysłać wyniki do innych usług (w poszukiwaniu, rurociągów ML, itp.).

4. Integracja ekstrakcji z rurami danych

Automatyczna ekstrakcja jako część szerszego przepływu pracy ETL, sprawozdawczości lub zarządzania dokumentami przy użyciu standardowych praktyk .NET.

Wspólne wyzwania i rozwiązania

Wyzwanie: Wydajność nierównomierna ze względu na złożoną strukturę PDFRozwiązanie: Spróbuj różnych trybów ekstrakcji (Pure, Plain, Raw) i porównaj wyniki.

Wyzwanie: ** Prędkość ekstrakcji batchRozwiązanie: ** Użyj jednego TextExtractor Przykład i przetwarzanie wielu plików w jednym rzędzie dla najlepszej wydajności.

Wyzwanie: Specjalne postacie lub problemy z kodowaniemRozwiązanie: Użyj trybu płaskiego do minimalnego formatowania, a następnie zastosować przyzwoite przetwarzanie pasków w razie potrzeby.

Wydajność i najlepsze praktyki

  • Wypróbuj wszystkie trzy tryby ekstrakcji, aby określić optymalne wyniki dla typu dokumentu
  • Zapisz oryginalne pliki PDF przed operacjami batch
  • Zarządzanie nazwami i organizacjami produkcji w pracy batch
  • Zintegrowane zarządzanie błędami i logowanie dla wytrzymałości

Pełny przykład wdrażania

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);
        }
    }
}

konkluzja

Aspose.PDF Text Extractor for .NET oferuje potężne, elastyczne narzędzia do ekstrakcji tekstu w wielu formach – odpowiednie do przetwarzania danych, archiwizacji lub analizy. Wybierz tryb ekstraktowania najlepiej nadaje się do Twoich potrzeb i automatyzuj extrakcję dla wysokiej wydajności w aplikacjach .Net.

 Polski