Hur man extraherar strukturerade data och tabeller från PDF i .NET

Hur man extraherar strukturerade data och tabeller från PDF i .NET

Att extrahera tabeller och strukturerade data från PDF-filer är en vanlig uppgift för analytiker, redovisare och vem som helst som arbetar med rapporter eller finansiella rapporter. Aspose.PDF.Plugin för .NET erbjuder programmeringsalternativ för att upptäcka, parsa och exportera tablar som platt text, CSV eller JSON.

Identifiera tabeller i PDF Text

  • Enkel PDF: Tabeller med tydliga cellgränser (tab, utrymme eller linjedelimenter) är enklast att extrahera.
  • Visual Inspection: Extract rå eller ren text och inspektion för konsekventa rad/kolumn mönster.
  • Heuristic Parsing: Använd logik (t.ex. vanliga uttryck, delimeter) för att identifiera sannolika rader och kolumner från extraherad text.

Exempel: Exportera tabeller som 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));
    }
}

Exempel: Exportera tabeller som 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));

Begränsningar och avancerade tips

  • Merged/Spanned Cells: De flesta programmerade extraktioner kan inte på ett tillförlitligt sätt upptäcka blandade eller multi-rots celler; manuell granskning eller anpassad logik kan krävas.
  • Komplexa tabeller: Tabeller med bilder, grafik eller oregelbunden layout kräver avancerad parsing eller ett visuellt tabellutvinning verktyg.
  • Accuracy: Extraction är bäst med enkla, välstrukturerade tabeller; alltid granska utgången och justera parsing logik för dina data.

Användningsfall

  • Finansiell analys och revisioner (ekstrakt ledger, utgifter tabeller)
  • Undersöknings- och återkopplingsdata (parse bulk responstabeller)
  • Migrering av data från arv PDF till databaser eller Excel

Ofta ställda frågor

**Q: Kan blandade celler upptäckas eller hanteras automatiskt?**A: Inte tillförlitligt – blandade/spända celler kräver vanligtvis manuell korrigering eller visuell granskning efter extraktion.

**Q: Är datautvinning alltid 100% korrekt?**A: Nej – resultat beror på tabellstruktur, formatering och PDF Alltid granska extraherade tabeller och, om nödvändigt, rengöra med anpassade regler eller skript.

**Q: Vad är det bästa läget för bordsutvinning?**A: Börja med ren läge för strukturerade tabeller. råläge kan vara användbart för data mining eller anpassad heuristik.

Pro Tips: För att upprepa extraktioner, finjustera din parsing logik för varje rapportmall CSV och JSON För maximal flexibilitet.

 Svenska