Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
RenderHtmlAsPdf
para renderizar un documento PDF desde una cadena HTMLExtractAllText
para leer los datos de la tabla desde PDFIronPDF 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.
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. Por favor, descárguelo e instálelo desde el sitio web de Visual Studio.
Crear Proyecto - Cree una aplicación de consola para extraer datos. Siga los pasos que se indican a continuación para crear un proyecto:
Pantalla de inicio de Visual Studio
Cree una nueva aplicación de consola en Visual Studio
Configurar la aplicación recién creada
Elija ".NET Framework 6 soporte a largo plazo" para su proyecto.
Seleccione un .NET Framework
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
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
Descargar el paquete NuGet directamente. Otra forma sencilla de descargar e instalar IronPDF es visitando su página de paquetes NuGet.
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:
Buscar IronPDF en el Administrador de Paquetes NuGet UI
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);
El archivo PDF para extraer texto
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:
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.
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.