Jak wyodrębnić strukturowane dane i tabele z PDF w .NET

Jak wyodrębnić strukturowane dane i tabele z PDF w .NET

Ekstrakcja tabel i strukturowanych danych z plików PDF jest powszechnym zadaniem dla analityków, księgowych i każdego, kto pracuje z raportami lub sprawozdawczością finansową. Aspose.PDF.Plugin dla .NET oferuje opcje programistyczne do wykrywania, parowania i eksportowania tabel, takich jak płaski tekst, CSV lub JSON.

Identyfikacja tabeli w tekście PDF

  • Proste pliki PDF: Tabele z jasnymi granicami komórkowymi (tab, przestrzeń lub linii) są najłatwiejsze do ekstrakcji.
  • Inspekcja wizualna: Wyciągnij surowy lub czysty tekst i sprawdź konsekwentne wzorce rzędu / kolumny.
  • Heuristic Parsing: Użyj logiki (np. regularnych wyrażeń, delimiters), aby zidentyfikować prawdopodobne rzędy i kolumny z wyciągniętego tekstu.

Przykład: Eksportowanie tabel jako CSV

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

string input = @"C:\Docs\financial-report.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
options.AddInput(new FileDataSource(input));
string extracted = extractor.Process(options).ResultCollection[0].ToString();

// Simple parsing: Assume rows separated by '\n', columns by tabs or spaces
var rows = extracted.Split('\n');
using (var writer = new StreamWriter(@"C:\Docs\extracted-table.csv"))
{
    foreach (var row in rows)
    {
        var columns = row.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries);
        writer.WriteLine(string.Join(",", columns));
    }
}

Przykład: Eksportowanie tabel jako JSON

using System.Text.Json;
var table = rows
    .Where(r => r.Trim().Length > 0)
    .Select(r => r.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries))
    .ToList();

File.WriteAllText(@"C:\Docs\extracted-table.json", JsonSerializer.Serialize(table));

Ograniczenia i zaawansowane wskazówki

  • Merged/Spanned Cells: Większość ekstrakcji programistycznych nie może z wiarygodnością wykryć połączonych lub wielokrotnych komórek; może być wymagany przegląd ręczny lub indywidualna logika.
  • Kompleksowe tabele: Tabele z obrazami, grafikami lub nieregularnymi układami wymagają zaawansowanego parowania lub narzędzia do ekstrakcji tabeli wizualnej.
  • Prawidłowość: Ekstrakcja jest najlepsza z prostymi, dobrze skonstruowanymi tabelami; zawsze przeglądać wyniki i dostosować logikę parowania dla Twoich danych.

Przykłady użycia

  • Analiza finansowa i audyty (ekstrakty, tabele wydatków)
  • Dane dotyczące ankiety i informacji zwrotnych (tabuły odpowiedzi masowej)
  • Migracja danych z dziedzictwa PDF do baz danych lub Excel

Często zadawane pytania

**Q: Czy połączone komórki mogą być wykryte lub przetwarzane automatycznie?**Odpowiedź: Nie jest wiarygodna – rozmieszczone / rozcieńczone komórki zazwyczaj wymagają ręcznej korekty lub przeglądu wizualnego po ekstrakcji.

**Q: Czy ekstrakcja danych jest zawsze 100% dokładna?**A: Nie – wyniki zależą od struktury tabeli, formatowania i PDF Zawsze przeglądać wyciągnięte tabele i, jeśli to konieczne, sprzątać za pomocą przyzwoitych zasad lub skryptów.

**Q: Jaki jest najlepszy tryb ekstrakcji stołowej?**Odpowiedź: Zacznij od trybu Pure dla zorganizowanych tabel. tryb surowy może być przydatny do wydobywania danych lub dostosowanej heuristyki.

Pro Porada: Aby powtórzyć ekstrakcje, wypełnij logikę parsing dla każdego szablonu sprawozdania CSV i JSON Maksymalna elastyczność.

 Polski