Estrarre la tabella dal PDF in C#

L’estrazione di tabelle da file PDF può essere un’attività comune quando si ha a che fare con l’estrazione o l’analisi dei dati. Sia che tu stia cercando di recuperare tabelle per l’elaborazione o esportarle per un ulteriore utilizzo, automatizzare questo processo può farti risparmiare tempo e fatica. In questo post del blog, ti mostreremo come estrarre tabelle da un PDF in C# o esportare i dati estratti in un file CSV.

In questo articolo tratteremo le seguenti sezioni:

Perché estrarre tabelle da PDF?

I file PDF sono ampiamente utilizzati per condividere informazioni in un formato portabile. Tuttavia, estrarre dati strutturati come le tabelle può essere impegnativo perché i file PDF non sono progettati per una facile modifica o manipolazione. Estraendo i dati delle tabelle a livello di programmazione in C#, puoi rendere i dati più accessibili, consentendoti di analizzare, modificare o archiviare i dati in diversi formati come CSV, che è ampiamente utilizzato per lo scambio di dati tra diverse applicazioni.

Estrazione tabella PDF - Configurazione API C#

È possibile estrarre dati dalle tabelle PDF configurando Conholdate.Total per .NET con il comando di installazione NuGet riportato di seguito:

PM> NuGet\Install-Package Conholdate.Total

Estrarre la tabella dal PDF in C#

In questa sezione illustreremo come estrarre tabelle da un documento PDF utilizzando C#.

  • Caricamento del documento PDF: il codice inizia caricando il file PDF in un oggetto della classe Document.
  • Table Absorber: la classe TableAbsorber viene utilizzata per rilevare e assorbire le tabelle su ogni pagina del PDF.
  • Estrazione dei dati della tabella: il codice scorre ogni tabella trovata, estraendo il contenuto di ogni cella della tabella e stampandolo in un formato strutturato.

Questo metodo fornisce un modo efficace per accedere ai dati tabulari dai documenti PDF, consentendo di lavorare con le informazioni a livello di programmazione. Il frammento di codice seguente illustra l’estrazione della tabella in C#:

// Carica il documento PDF di origine
var filePath = "input.pdf";
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(filePath);
foreach (var page in pdfDocument.Pages)
{
    Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
    absorber.Visit(page);
    foreach (AbsorbedTable table in absorber.TableList)
    {
        Console.WriteLine("Table");
        foreach (AbsorbedRow row in table.RowList)
        {
            foreach (AbsorbedCell cell in row.CellList)
            {
                foreach (TextFragment fragment in cell.TextFragments)
                {
                    var sb = new StringBuilder();
                    foreach (TextSegment seg in fragment.Segments)
                        sb.Append(seg.Text);
                    Console.Write("{sb.ToString()}|");
                }
            }
            Console.WriteLine();
        }
    }
}

Convertire i dati della tabella PDF in CSV in C#

Una volta estratti i dati della tabella da un PDF, potresti volerli salvare in un formato più accessibile come CSV. CSV (Comma Separated Values) è ampiamente supportato da applicazioni come Microsoft Excel, Google Sheets e molti sistemi di elaborazione dati. In questa sezione, convertiremo i dati della tabella PDF in CSV in C#:

I passaggi seguenti mostrano come esportare i dati dalle tabelle PDF al formato CSV in C#:

  • Caricamento del documento PDF: il documento PDF viene caricato nell’oggetto Documento come in precedenza.
  • ExcelSaveOptions: viene creata un’istanza di ExcelSaveOptions con il formato impostato su CSV. Ciò garantisce che i dati della tabella dal PDF vengano esportati direttamente come file CSV.
  • Salvataggio del file CSV: il metodo Save viene chiamato per esportare i dati della tabella PDF in un file .csv.

L’esempio di codice seguente mostra come convertire una tabella PDF in formato CSV in C#:

// Carica documento PDF
Document pdfDocument = new Document("input.pdf");

// Crea un'istanza dell'oggetto Opzione ExcelSave
ExcelSaveOptions excelSave = new ExcelSaveOptions { Format = ExcelSaveOptions.ExcelFormat.CSV };

// Salva l'output in formato XLS
pdfDocument.Save("PDFToXLS_out.xlsx", excelSave);

Ottieni una licenza gratuita

È possibile ottenere una licenza temporanea gratuita per testare diverse funzionalità dell’API senza alcuna limitazione di valutazione.

Riassumendo

L’estrazione di tabelle da un PDF e l’esportazione dei dati in un formato CSV in C# possono essere semplificate ed efficienti in C#. La possibilità di automatizzare l’estrazione di tabelle è utile in scenari in cui è necessario analizzare o condividere dati tabulari da PDF in un formato più flessibile come CSV. Seguendo i passaggi in questo post del blog, è possibile recuperare e archiviare facilmente i dati delle tabelle dai file PDF. Questo processo è particolarmente utile nell’analisi dei dati, nella creazione di report o in qualsiasi attività che richieda dati strutturati da documenti PDF altrimenti rigidi. In caso di domande, contattaci al forum.

Vedi anche