Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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 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.
RenderHtmlAsPdf
para generar un documento PDF a partir de una cadena HTMLExtraerTodoTexto
para leer los datos de la tabla desde el PDFIronPDF es una solución de biblioteca C# .NET para la generación de PDF en .NETque 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.
Guardar yImprimir archivos PDF
-Fusión y Dividir archivos PDF
-Extraer datos (Texto, imágenes, tabla) desde un archivo PDF
Para extraer datos de tablas de documentos PDF, necesitamos los siguientes componentes instalados en el sistema informático local:
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áginaSitio web de Visual Studio.
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.
Pantalla de inicio de Visual Studio
A continuación, seleccione Aplicación de consola C# y haga clic en siguiente
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
Configurar la aplicación recién creada
Elija ".NET Framework 6 soporte a largo plazo" para su proyecto.
**Seleccione un .NET Framework
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
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:
Herramientas y gestión de paquetes NuGet
**Otra forma sencilla de descargar e instalar IronPDF es visitando su sitio webPágina del paquete NuGet.
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"
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>"
A continuación, elRenderizador 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")
EnGuardar como guardará el métodoDocumentoPdf a un archivo PDF llamado "tabla_ejemplo.pdf ". A continuación se muestra el archivo guardado:
**Busque IronPDF en la interfaz de usuario del gestor de paquetes NuGet.
Para extraer datos de tablas PDF, abra el documento mediante el objeto PdfDocument
y, a continuación, utilice la funciónExtraerTodoTexto 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()
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)
**El archivo PDF para extraer el texto
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
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:
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 esteejemplo 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);
}
}
}
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
La salida se guardará en un archivo CSV donde cada textItem
será una columna.
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 laExtraerTextoDePágina que permite extraer datos de una página concreta. IronPDF también facilita la conversión de diferentes formatos a PDF, tales comoarchivos markdown oArchivos 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 unalicencia de prueba gratuita para probar IronPDF para probar la funcionalidad completa de la biblioteca. Puede encontrar información más detallada en este enlace.
9 productos API .NET para sus documentos de oficina