USO DE IRONPDF

Cómo leer una tabla PDF en C#

Actualizado 25 de marzo, 2023
Compartir:

Extraer datos de un archivo PDF es 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 librería IronPDF C# PDF Library es una gran 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 biblioteca C# .NET que ayuda a los desarrolladores a leer, crear y editar fácilmente documentos PDF 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. Descárguelo e instálelo desde la página Sitio web de Visual Studio.
  2. Crear Proyecto - Crear una aplicación de consola para extraer datos. Siga los pasos que se indican a continuación para crear un proyecto:

    • Abra Visual Studio 2022 y haga 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

           **Crear 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.

      Cómo leer una tabla PDF en C#, Figura 4: Seleccionar un .NET Framework

           **Seleccione un marco .NET
    • Haga clic en el botón Crear y se creará el proyecto de consola. Ahora, estamos listos para extraer datos de tablas de documentos PDF mediante programación.
  3. Instalar IronPDF - Existen 3 métodos diferentes para instalar la librería IronPDF. Son las siguientes:

    • Utilizando 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 gestión de 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 gestión de paquetes NuGet

                 **Herramientas y gestión de paquetes NuGet**
    • **Otra forma sencilla de descargar e instalar IronPDF es visitando su página en el sitio web de la Comisión Europea. NuGet Web site.
    • **También puede descargar IronPDF desde el sitio web de IronPDF. Haga clic en: Descarga de IronPDF DLL para descargarlo e instalarlo. 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 nada, es necesario añadir el espacio de nombres IronPDF en el archivo y establecer la clave de licencia para utilizar los métodos ExtractText de la librería IronPDF.

using IronPdf;

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

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

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY"
VB   C#

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>";
Dim HTML As String = "<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>"
VB   C#

A continuación, el Renderizador de PDF cromado se utiliza 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");
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(HTML)
pdfDocument.SaveAs("table_example.pdf")
VB   C#

En Guardar como guardará el método DocumentoPdf a un archivo PDF llamado "tabla_ejemplo.pdf ". A continuación se muestra el archivo guardado:

Cómo leer una tabla PDF en C#, Figura 7: Buscar IronPDF en la interfaz de usuario del gestor de paquetes NuGet

**Busque IronPDF en la interfaz de usuario del gestor de paquetes NuGet.

Extraer datos de tablas de documentos PDF con IronPDF

Para extraer datos de tablas PDF, abra el documento mediante el objeto PdfDocument y, a continuación, utilice la función ExtraerTodoTexto 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();
Dim pdfDocument As New PdfDocument("table_example.pdf")
Dim text As String = pdfDocument.ExtractAllText()
VB   C#

El código anterior analiza todo el documento PDF utilizando el método ExtractAllText y devuelve los datos extraídos, incluidos los datos tabulares, en una variable de 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);
Imports Microsoft.VisualBasic

Console.WriteLine("The extracted Text is:" & vbLf & text)
VB   C#

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

**El archivo PDF para extraer el 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 basándose en 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);
    }
}
Imports Microsoft.VisualBasic

Dim textList() As String = text.Split(vbLf)
For Each textItem As String In textList
	If textItem.Contains(".") Then
		Continue For
	Else
		Console.WriteLine(textItem)
	End If
Next textItem
VB   C#

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 los textos extraídos

La consola muestra los textos extraídos

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

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);
        }
    }
}
Imports Microsoft.VisualBasic

Using file As New StreamWriter("table_example.csv", False)
	Dim textList() As String = text.Split(vbLf)
	For Each textItem As String In textList
		If textItem.Contains(".") Then
			Continue For
		Else
			file.WriteLine(textItem)
		End If
	Next textItem
End Using
VB   C#

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 la ExtraerTextoDePágina que permite extraer datos de una página concreta. IronPDF también facilita la conversión de diferentes formatos a PDF, tales como archivos markdown o Archivos DOCX y de PDF a distintos 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 la funcionalidad completa de la biblioteca. Puede encontrar información más detallada en este enlace.

< ANTERIOR
Cómo convertir un código QR a PDF
SIGUIENTE >
Visor de PDF C# Aplicación Windows (Tutorial)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123