Πώς να εξαγάγετε δομημένα δεδομένα και πίνακες από το PDF στο .NET
Η εξαγωγή πίνακων και δομημένων δεδομένων από τα PDFs είναι ένα κοινό καθήκον για τους αναλυτές, τους λογιστές και όποιον εργάζεται με εκθέσεις ή οικονομικές καταστάσεις. Το Aspose.PDF.Plugin για το .NET προσφέρει προγραμματικές επιλογές για την ανίχνευση, τη διαίρεση και την εξάπλωση των τραπεζών όπως το κείμενο, το CSV ή το JSON.
Αναγνώριση πίνακων σε PDF κείμενο
- Ένα απλό PDF: Τα τραπέζια με σαφή κυτταρικά όρια (tab, space ή line delimiters) είναι πιο εύκολο να αφαιρεθούν.
- Visual Inspection: Εξαγωγή πρώτου ή καθαρού κειμένου και επιθεώρηση για συνεπή γραμμή / στήλη πρότυπα.
- Heuristic Parsing: Χρησιμοποιήστε τη λογική (π.χ. τακτικές εκφράσεις, οριοθέτες) για να εντοπίσετε πιθανές γραμμές και στήλες από το κείμενο που εξάγεται.
Παράδειγμα: Εξαγωγή πίνακων ως 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));
}
}Παράδειγμα: Εξαγωγή πίνακων ως 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));Περιορισμοί και προηγμένες συμβουλές
- Μετασυνδεδεμένα κύτταρα: Οι περισσότερες προγραμματικές εκχυλίσσεις δεν μπορούν να ανιχνεύσουν αξιόπιστα συγχωνευμένα ή πολλαπλά κελιά· μπορεί να απαιτηθεί χειροκίνητη αναθεώρηση ή προσαρμοσμένη λογική.
- Σύνθετα τραπέζια: Τα τραπεζογραμμάτια με εικόνες, γραφικά ή ακανόνιστες διατάξεις απαιτούν προηγμένο parsing ή ένα εργαλείο εκχύλισης οπτικού τραπεζίτη.
- Αξιολόγηση: Η εξόρυξη είναι καλύτερη με απλούς, καλά δομημένους πίνακες. πάντα να αναθεωρήσετε την παραγωγή και να προσαρμόσετε τη λογική του διαχωρισμού για τα δεδομένα σας.
מקרים בשימוש
- Χρηματοοικονομική ανάλυση και ελέγχους (εξαγωγικά αποθέματα, πίνακες δαπανών)
- Πληροφορίες έρευνας και ανατροφοδότησης (μαζικές πίνακες ανταπόκρισης)
- Μετανάστευση δεδομένων από κληρονομικά PDF σε βάσεις δεδομένα ή Excel
Συχνές ερωτήσεις
**Q: Μπορούν τα συγχωνευμένα κύτταρα να ανιχνευθούν ή να χειριστούν αυτόματα?**Α: Δεν είναι αξιόπιστο - τα συγκολλημένα / σπασμένα κύτταρα συνήθως απαιτούν χειροκίνητη διόρθωση ή οπτική εξέταση μετά την εκχύλιση.
**Q: Είναι η εξόρυξη δεδομένων πάντα 100% ακριβής?**Α: Όχι – τα αποτελέσματα εξαρτώνται από τη δομή του πίνακα, τη μορφοποίηση και PDF Πάντα αναθεωρήστε τα αποσυνδεδεμένα τραπέζια και, εάν είναι απαραίτητο, καθαρίστε το χρησιμοποιώντας προσαρμοσμένους κανόνες ή σενάρια.
**Q: Ποιος είναι ο καλύτερος τρόπος για την εξόρυξη τραπεζιού?**Α: Ξεκινήστε με τη λειτουργία Pure για δομημένα τραπέζια. η λειτουργία Raw μπορεί να είναι χρήσιμη για την εξόρυξη δεδομένων ή την προσαρμοσμένη υουριστική.
Pro Συμβουλή: Για επαναλαμβανόμενες εκχυλίσσεις, καθαρίστε τη λογική σας για κάθε πρότυπο έκθεσης ΚΣΒ και JSON Για μέγιστη ευελιξία.