Kaip ištraukti struktūrizuotus duomenis ir lenteles iš PDF .NET

Kaip ištraukti struktūrizuotus duomenis ir lenteles iš PDF .NET

Tabelių ir struktūrizuotų duomenų ištraukimas iš PDF yra bendra užduotis analitikai, buhalteriai ir visi, kurie dirba su ataskaitomis ar finansiniais pranešimais. Aspose.PDF.Plugin .NET siūlo programinę galimybę aptikti, parsinti ir eksportuoti lenteles, tokias kaip plokščias tekstas, CSV arba JSON.

Identifikuoti lenteles PDF tekste

  • ** Paprastas PDF:** lentelės su aiškiomis ląstelių ribomis (tab, erdvė arba linijos apribojimai) yra lengviau išimti.
  • Vizualinis patikrinimas: Išgauti žalią ar gryną tekstą ir patikrinti nuoseklų eilutės / stulpelių modelius.
  • Heurist Parsing: Naudokite logiką (pavyzdžiui, reguliarius išraiškas, apribojimus), kad nustatytumėte tikėtinas eilutes ir stulpelius iš išimto teksto.

Pavyzdys: eksportuojant lenteles kaip 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));
    }
}

Pavyzdys: eksportuojant lenteles kaip 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));

Apribojimai ir pažangios idėjos

  • Merged/Spanned Cells: Dauguma programinės ekstrakcijos negali patikimai aptikti mišrių arba daugiakūnių ląstelių; gali prireikti rankinio peržiūros ar pritaikyto logikos.
  • Kompleksiniai lentelės: lentelėms su vaizdais, grafikais ar netaisyklingais išdėstymais reikalingas pažangi parsinga arba vizualus stalų ekstrakcijos įrankis.
  • Tikrumas: Ekstrakcija yra geriausia su paprastomis, gerai struktūrizuotomis lentelėmis; visada peržiūrėkite gamybą ir pritaikykite parsino logiką jūsų duomenims.

Naudokite atvejus

  • Finansinės analizės ir auditai (ekstrakcijos ledgeriai, sąnaudų lentelės)
  • Apklausos ir grįžtamojo ryšio duomenys (parse bulk response tables)
  • Duomenų migracija iš paveldėjimo PDF į duomenų bazes arba Excel

Dažnai užduodami klausimai

**Q: Ar susijungusios ląstelės gali būti aptiktos arba tvarkomos automatiškai?**Atsakymas: Nėra patikimas - sumaišytos / išsiplėtusios ląstelės paprastai reikalauja rankinio korekcijos ar vizualinio peržiūros po ekstrakcijos.

**Q: ar duomenų ištraukimas visada yra 100% tikslus?**A: Ne – rezultatai priklauso nuo lentelės struktūros, formatavimo ir PDF kokybės. Visada peržiūrėti ištrauktas lenteles ir, jei reikia, išvalyti naudojant pritaikytas taisykles ar scenarijus.

**Q: Koks yra geriausias stalo ekstrakcijos režimas?**Atsakymas: Pradėkite nuo Švarus režimas struktūrizuotiems lentelėms. žalia režimo gali būti naudinga duomenų šalinimui ar pritaikytoms heuristikoms.

Pro patarimas: Jei norite pakartoti ekstrakcijas, kiekvieno ataskaitos šablono parsisiųsti logiką. apsvarstykite eksportavimą į tiek CSV, tiek JSON maksimaliai lanksčiai.

 Lietuvių