Extraer tabla de un PDF en C#

Extraer tablas de archivos PDF puede ser una tarea común cuando se trata de extracción o análisis de datos. Ya sea que intente recuperar tablas para procesarlas o exportarlas para su uso posterior, automatizar este proceso puede ahorrar tiempo y esfuerzo. En esta publicación de blog, le mostraremos cómo extraer tablas de un PDF en C# o exportar los datos extraídos a un archivo CSV.

Cubriremos las siguientes secciones en este artículo:

¿Por qué extraer tablas de un PDF?

Los archivos PDF se utilizan ampliamente para compartir información en un formato portátil. Sin embargo, extraer datos estructurados como tablas puede ser un desafío porque los archivos PDF no están diseñados para una fácil edición o manipulación. Al extraer datos de tablas mediante programación en C#, puede hacer que los datos sean más accesibles, lo que le permitirá analizarlos, modificarlos o almacenarlos en diferentes formatos como CSV, que se usa ampliamente para el intercambio de datos entre diferentes aplicaciones.

Extracción de tablas PDF: configuración de la API de C#

Puede extraer datos de tablas PDF configurando Conholdate.Total para .NET con el siguiente comando de instalación de NuGet:

PM> NuGet\Install-Package Conholdate.Total

Extraer tabla de un PDF en C#

En esta sección, veremos cómo extraer tablas de un documento PDF usando C#.

  • Carga del documento PDF: el código comienza cargando el archivo PDF en un objeto de clase Document.
  • Absorbedor de tablas: la clase TableAbsorber se utiliza para detectar y absorber tablas en cada página del PDF.
  • Extracción de datos de la tabla: el código itera a través de cada tabla encontrada, extrayendo el contenido de cada celda de la tabla y lo imprime en un formato estructurado.

Este método proporciona una forma eficaz de acceder a datos tabulares de documentos PDF, lo que le permite trabajar con la información de forma programática. El fragmento de código siguiente demuestra la extracción de tablas en C#:

// Cargar documento PDF de origen
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();
        }
    }
}

Convertir datos de tablas PDF a CSV en C#

Una vez que haya extraído los datos de la tabla de un PDF, es posible que desee guardarlos en un formato más accesible como CSV. CSV (valores separados por comas) es ampliamente compatible con aplicaciones como Microsoft Excel, Google Sheets y muchos sistemas de procesamiento de datos. En esta sección, convertiremos los datos de la tabla PDF a CSV en C#:

Los siguientes pasos muestran cómo exportar datos de tablas PDF al formato CSV en C#:

  • Carga del documento PDF: El documento PDF se carga en el objeto Documento como antes.
  • ExcelSaveOptions: se crea una instancia de ExcelSaveOptions con el formato establecido en CSV. Esto garantiza que los datos de la tabla del PDF se exporten directamente como un archivo CSV.
  • Guardar el archivo CSV: se llama al método Guardar para exportar los datos de la tabla PDF a un archivo .csv.

El siguiente ejemplo de código muestra cómo convertir una tabla PDF al formato CSV en C#:

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

// Crear una instancia del objeto Opción de guardado de Excel
ExcelSaveOptions excelSave = new ExcelSaveOptions { Format = ExcelSaveOptions.ExcelFormat.CSV };

// Guardar la salida en formato XLS
pdfDocument.Save("PDFToXLS_out.xlsx", excelSave);

Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar diferentes funciones de la API sin ninguna limitación de evaluación.

Resumiendo

Extraer tablas de un PDF y exportar los datos a un formato CSV en C# puede resultar sencillo y eficiente en C#. La capacidad de automatizar la extracción de tablas resulta de ayuda en situaciones en las que se necesita analizar o compartir datos tabulares de archivos PDF en un formato más flexible como CSV. Si sigue los pasos de esta publicación del blog, podrá recuperar y almacenar fácilmente datos de tablas de sus archivos PDF. Este proceso es especialmente útil en el análisis de datos, la elaboración de informes o cualquier tarea que requiera datos estructurados de documentos PDF que, de otro modo, serían rígidos. Si tiene alguna consulta, póngase en contacto con nosotros en el foro.

Ver también