Jak extrahovat strukturované údaje a tabulky z PDF v .NET

Jak extrahovat strukturované údaje a tabulky z PDF v .NET

Odstraňování tabulek a strukturovaných dat z PDF je běžným úkolem pro analytiky, účetní a každého, kdo pracuje s zprávami nebo finančními prohlášeními. Aspose.PDF.Plugin pro .NET nabízí programové možnosti pro detekci, parsing a export tabule, jako je plochý text, CSV nebo JSON.

Identifikace tabulek v PDF textu

  • Jednoduchý PDF: Tabely s jasnými buněčnými hranicemi (tab, prostor nebo rozměry čáry) jsou nejjednodušší k extrahování.
  • Vizuální inspekce: Vyjmete surový nebo čistý text a zkontrolujte konzistentní řádkové/kolumnové vzory.
  • Heuristické Parsing: Použijte logiku (např. pravidelné vyjádření, delimitéry) k identifikaci pravděpodobných řádků a sloupců z extrahovaného textu.

Příklad: Vývoz tabulek 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));
    }
}

Příklad: Vývoz tabulek 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));

Omezení a pokročilé tipy

  • Merged/Spanned Cells: Většina programových extrakcí nemůže spolehlivě detekovat fúzované nebo multi-roubové buňky; může být vyžadována manuální recenze nebo přizpůsobená logika.
  • Komplexní tabulky: Tabely s obrázky, grafiky nebo nepravidelné uspořádání vyžadují pokročilý parsing nebo vizuální nástroj pro extrahování stolů.
  • Přesnost: Extrakce je nejlepší s jednoduchými, dobře strukturovanými tabulkami; vždy přezkoumávat výstup a upravovat logiku parsingu pro vaše data.

Případové studie

  • Finanční analýza a audity (extraktní ledgery, tabulky výdajů)
  • Informace o průzkumu a zpětných vazbách (parse bulk response tabulky)
  • Migrace dat z dědictví PDF do databází nebo Excel

Často kladené otázky

**Q: Může být smíšené buňky detekovány nebo zpracovávány automaticky?**Odpověď: Není spolehlivá – smíšené / rozptýlené buňky obvykle vyžadují ruční opravu nebo vizuální prohlídku po extrakci.

**Q: Je data extrakce vždy 100% přesná?**A: Ne – výsledky závisí na struktuře tabulky, formátování a PDF Vždy zkontrolujte extrahované tabulky a v případě potřeby vyčistěte pomocí vlastních pravidel nebo skriptů.

**Q: Jaký je nejlepší režim pro stolní extrakci?**Odpověď: Začněte s režimem Čistý pro strukturované tabulky. Raw Mode může být užitečné pro data mining nebo přizpůsobenou heuristiku.

Pro Tip: Pro opakování extrakcí, vylepšujte logiku pro každý šablónu zprávy CSV a JSON pro maximální flexibilitu.

 Čeština