Cómo extraer texto de PDFs en .NET
Cómo extraer texto de PDFs en .NET
Esta guía cubre la extracción de texto de páginas PDF usando la API absorber.
Requisitos previos
| Requisito | Detalle |
|---|---|
| Entorno de ejecución | .NET 8.0 o posterior |
| Paquete | dotnet add package Aspose.Pdf.Foss |
Extraer todo el texto de una página
TextAbsorber recopila todo el texto de una página en una sola cadena. Crea una
instancia, pásala a Page.Accept y lee el resultado de la propiedad Text.
Este es el enfoque más sencillo cuando necesitas una salida de texto sin formato sin información posicional.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Extraer fragmentos de texto estructurado
Cuando necesites metadatos de posición, fuente y tamaño junto con el texto, usa TextFragmentAbsorber en su lugar. Cada TextFragment expone sus coordenadas de contorno a través de la propiedad Position.
var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"{fragment.Text} at ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
}Buscar con una expresión regular
Pase un patrón regex a TextFragmentAbsorber para encontrar texto coincidente en todas las páginas.
Esto es útil para localizar números de teléfono, fechas u otros
patrones de datos estructurados dentro de un documento.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Clases clave
| Clase | Propósito |
|---|---|
TextAbsorber | Extraer todo el texto como una cadena |
TextFragmentAbsorber | Extracción de texto estructurado |
TextFragment | Texto con posición y fuente |
FontRepository | Búsqueda de fuentes |