USO DE IRONPDF

Cómo leer una tabla PDF en C#

Kannaopat Udonpant
Kannapat Udonpant
25 de marzo, 2023
Actualizado 3 de marzo, 2024
Compartir:

Extraer datos de un archivo PDF puede ser todo un reto en C#. Los datos pueden estar en forma de texto, imágenes, cuadros, gráficos, tablas, etc. A veces, los analistas de negocio necesitan extraer datos para realizar análisis de datos y tomar decisiones basadas en esos resultados. La IronPDF C# PDF Library es una excelente solución para extraer datos de archivos PDF.

Este artículo demostrará cómo extraer datos de tablas de documentos PDF en C# utilizando la librería IronPDF.

IronPDF - C# Biblioteca PDF

IronPDF es una solución de biblioteca C# .NET para la generación de PDFs en .NET, que ayuda a los desarrolladores a leer, crear y editar documentos PDF fácilmente en sus aplicaciones de software. Su motor Chromium renderiza documentos PDF con precisión y rapidez. Permite a los desarrolladores convertir de distintos formatos a PDF y viceversa sin problemas. Es compatible con el último Framework .NET 7, así como con .NET Framework 6, 5, 4, .NET Core y Standard.

Además, la API .NET de IronPDF también permite a los desarrolladores manipular y editar PDF, añadir encabezados y pies de página y extraer texto, imágenes y tablas de PDF con facilidad.

Algunas características importantes

Pasos para extraer datos de tabla en C# utilizando la biblioteca IronPDF

Para extraer datos de tablas de documentos PDF, necesitamos los siguientes componentes instalados en el sistema informático local:

  1. Visual Studio - Visual Studio 2022 es el IDE oficial para el desarrollo en C# y debe estar instalado en el ordenador. Por favor, descárguelo e instálelo desde el sitio web de Visual Studio.

  2. Crear Proyecto - Cree una aplicación de consola para extraer datos. Siga los pasos que se indican a continuación para crear un proyecto:

    • Abre Visual Studio 2022 y luego haz clic en el botón Crear un nuevo proyecto

    Cómo leer una tabla PDF en C#, Figura 1: Pantalla de inicio de Visual Studio

    Pantalla de inicio de Visual Studio

    • A continuación, seleccione Aplicación de consola C# y haga clic en siguiente

    Cómo Leer una Tabla PDF en C#, Figura 2: Crear una nueva Aplicación de Consola en Visual Studio

    Cree una nueva aplicación de consola en Visual Studio

    • A continuación, escriba el nombre de su proyecto "ReadPDFTable" y haga clic en siguiente.

    Cómo leer una tabla PDF en C#, Figura 3: Configurar la aplicación recién creada

    Configurar la aplicación recién creada

    • Elija ".NET Framework 6 soporte a largo plazo" para su proyecto.

      How to Read PDF Table in C#, Figure 4: Select a .NET Framework

    Seleccione un .NET Framework

    • Haz clic en el botón Create, y se creará el proyecto de consola. Ahora, estamos listos para extraer datos de tablas de documentos PDF mediante programación.
  3. Instalar IronPDF - Hay 3 métodos diferentes para instalar la biblioteca IronPDF. Son las siguientes:

    • Usando Visual Studio. Visual Studio contiene el gestor de paquetes NuGet que ayuda a instalar todos los paquetes NuGet en las aplicaciones C#.

      • Haga clic en Herramientas en el menú superior, o

      • Haga clic con el botón derecho en el proyecto en el Explorador de soluciones

    Cómo Leer una Tabla PDF en C#, Figura 5: Herramientas y Administrar Paquetes NuGet

    Herramientas y gestión de paquetes NuGet

    - Una vez abierto NuGet Package Manager, busque IronPDF y haga clic en instalar, como se muestra a continuación:

    Cómo Leer una Tabla PDF en C#, Figura 6: Herramientas y Administrar Paquetes NuGet

    Herramientas y gestión de paquetes NuGet

    • Descargar el paquete NuGet directamente. Otra forma sencilla de descargar e instalar IronPDF es visitando su página de paquetes NuGet.

    • Descargar Biblioteca IronPDF .DLL. IronPDF también se puede descargar desde el sitio web oficial de IronPDF. Recuerde que tendrá que hacer referencia a la DLL en su proyecto para utilizarla.

Crear un documento PDF con una tabla de datos

Antes de crear cualquier cosa, es necesario añadir el espacio de nombres de IronPDF al archivo y establecer la clave de licencia para usar los métodos ExtractText de la biblioteca de IronPDF.

using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";
using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";

Aquí, se creará un documento PDF a partir de una cadena HTML que contenga una tabla y luego se extraerán esos datos utilizando IronPDF. El HTML se almacena en una variable de cadena, y el código es el siguiente:

string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";
string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";

A continuación, se utiliza el ChromePdfRenderer para crear un PDF a partir de una cadena HTML. El código es el siguiente:

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");

El método SaveAs guardará el objeto PdfDocument en un archivo PDF llamado "table_example.pdf". A continuación se muestra el archivo guardado:

Cómo Leer una Tabla PDF en C#, Figura 7: Buscar IronPDF en el Administrador de Paquetes NuGet UI

Buscar IronPDF en el Administrador de Paquetes NuGet UI

Extraer datos de tablas de documentos PDF con IronPDF

Para extraer datos de tablas en PDF, abra el documento utilizando el objeto PdfDocument y luego use el método ExtractAllText para recuperar los datos para su posterior análisis. El siguiente código muestra cómo realizar esta tarea:

PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();
PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();

El código anterior analiza todo el documento PDF utilizando el método ExtractAllText y devuelve los datos extraídos, incluyendo los datos tabulares, en una variable de tipo cadena. El valor de la variable puede visualizarse o almacenarse en un archivo para su uso posterior. El siguiente código lo muestra en pantalla:

Console.WriteLine("The extracted Text is:\n" + text);
Console.WriteLine("The extracted Text is:\n" + text);

Cómo leer una tabla PDF en C#, Figura 8: El archivo PDF para extraer texto

El archivo PDF para extraer texto

Extracción de datos tabulares a partir de contenido de texto extraído

C# proporciona un método String.Split que ayuda a dividir la cadena en función de un delimitador. El siguiente código le ayudará a limitar la salida sólo a los datos de la tabla.

string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}
string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}

Este sencillo ejemplo de código ayuda a extraer sólo los datos de las celdas de la tabla del texto extraído. En primer lugar, se dividen las líneas de texto y se guardan en una matriz de cadenas. A continuación, se recorre cada elemento de la matriz y se saltan los que tienen un punto "." al final. En la mayoría de los casos, sólo se recuperan los datos tabulares de los datos extraídos, aunque también puede recuperar otras líneas. El resultado es el siguiente:

Cómo leer una tabla PDF en C#, Figura 9: La consola muestra textos extraídos

La consola muestra los textos extraídos

A partir de la captura de pantalla anterior, se puede ver que el formato de los datos de la tabla y la estructura lógica se preservan en la salida del método Console.WriteLine. Puedes encontrar más detalles sobre cómo extraer datos de documentos PDF utilizando IronPDF en este ejemplo de código para extraer datos de PDF en C#.

La salida también puede guardarse en un archivo CSV que puede formatearse y editarse posteriormente para realizar más análisis de datos. El código es el siguiente:

using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}
using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}

La salida se guardará en un archivo CSV donde cada textItem será una columna.

Resumen

Este artículo muestra cómo extraer datos y tablas de un documento PDF utilizando IronPDF. IronPDF ofrece varias opciones útiles para extraer texto de archivos PDF. Proporciona el método ExtractTextFromPage, que permite la extracción de datos de una página específica. IronPDF también facilita la conversión de diferentes formatos a PDF, como archivos markdown o archivos DOCX y de PDF a diferentes formatos. Esto facilita a los desarrolladores la integración de la funcionalidad PDF en el proceso de desarrollo de aplicaciones. Además, no necesita Adobe Acrobat Reader para ver y editar documentos PDF.

IronPDF es gratuito para el desarrollo y puede adquirirse bajo licencia para uso comercial. Proporciona una licencia de prueba gratuita para probar IronPDF y así testar la funcionalidad completa de la biblioteca. Puede encontrar información más detallada en este enlace.

Kannaopat Udonpant
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.
< ANTERIOR
Cómo convertir un código QR a PDF
SIGUIENTE >
Visor de PDF C# Aplicación Windows (Tutorial)