Làm thế nào để thu thập dữ liệu và bảng cấu trúc từ PDF trong .NET

Làm thế nào để thu thập dữ liệu và bảng cấu trúc từ PDF trong .NET

Thu thập bảng và dữ liệu cấu trúc từ PDF là một nhiệm vụ phổ biến cho các nhà phân tích, kế toán, và bất cứ ai làm việc với các báo cáo hoặc thông báo tài chính. Aspose.PDF.Plugin cho .NET cung cấp các tùy chọn lập trình để phát hiện, chia sẻ và xuất khẩu bảng như văn bản thẳng, CSV, hoặc JSON.

Xác định bảng trong PDF Text

  • Đơn giản PDF: Các bảng với ranh giới tế bào rõ ràng (tab, không gian, hoặc giới hạn đường) dễ dàng nhất để rút ra.
  • Visual Inspection: Tích xuất văn bản thô hoặc tinh khiết và kiểm tra cho các mô hình hàng / cột liên tục.
  • Heuristic Parsing: Sử dụng logic (ví dụ, biểu thức thường xuyên, giới hạn) để xác định các hàng có thể và cột từ văn bản được rút ra.

Ví dụ: Exporting tables as 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));
    }
}

Ví dụ: xuất khẩu bảng như 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));

Giới hạn & Advanced Tips

  • Merged/Spanned Cells: Hầu hết các chiết xuất lập trình không thể xác định đáng tin cậy các tế bào kết hợp hoặc nhiều sợi; đánh giá thủ công hoặc logic tùy chỉnh có thể cần thiết.
  • Bảng phức tạp: Bảng với hình ảnh, đồ họa, hoặc bố trí bất thường đòi hỏi một công cụ chiết xuất cổng tiên tiến hoặc bảng hình.
  • Độ chính xác: Chiết xuất là tốt nhất với các bảng đơn giản, được cấu trúc tốt; luôn luôn xem xét kết quả và điều chỉnh logic parsing cho dữ liệu của bạn.

Sử dụng Cases

  • Phân tích tài chính và kiểm toán (trích dẫn xuất, bảng chi phí)
  • Dữ liệu khảo sát và phản hồi (bảng đáp ứng đa số)
  • Chuyển đổi dữ liệu từ PDFs di sản sang Databases hoặc Excel

Những câu hỏi thường gặp

**Q: Các tế bào kết hợp có thể được phát hiện hoặc xử lý tự động không?**A: Không đáng tin cậy – các tế bào hỗn hợp/sửng thường yêu cầu điều chỉnh thủ công hoặc kiểm tra thị giác sau khi khai thác.

**Q: Việc thu thập dữ liệu luôn là 100% chính xác?**A: Không - kết quả phụ thuộc vào cấu trúc bảng, định dạng, và PDF Luôn xem xét các bảng được rút ra và, nếu cần thiết, làm sạch bằng cách sử dụng các quy tắc hoặc kịch bản tùy chỉnh.

**Q: chế độ nào tốt nhất cho việc khai thác bàn?**A: Bắt đầu với chế độ sạch cho bảng có cấu trúc. trạng thái nguyên có thể hữu ích cho khai thác dữ liệu hoặc heuristics tùy chỉnh.

Pro Mẹo: Để lặp lại các chiết xuất, tinh chỉnh logic của bạn cho mỗi mẫu báo cáo CSV JSON cho sự linh hoạt tối đa.

 Tiếng Việt