Come estrarre testo da PDF in .NET
Come estrarre testo da PDF in .NET
Questa guida copre l’estrazione di testo dalle pagine PDF utilizzando l’API absorber.
Prerequisiti
| Requisito | Dettaglio |
|---|---|
| Ambiente di esecuzione | .NET 8.0 o successivo |
| Pacchetto | dotnet add package Aspose.Pdf.Foss |
Estrai tutto il testo da una pagina
TextAbsorber raccoglie tutto il testo di una pagina in una singola stringa. Crea un
istanza, passala a Page.Accept e leggi il risultato dalla proprietà Text.
Questo è l’approccio più semplice quando hai bisogno di output di testo semplice senza informazioni posizionali.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Estrai frammenti di testo strutturato
Quando hai bisogno di metadati di posizione, carattere e dimensione insieme al testo, usa TextFragmentAbsorber invece. Ogni TextFragment espone le sue coordinate di delimitazione tramite la proprietà 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})");
}Cerca con un’espressione regolare
Passa un modello regex a TextFragmentAbsorber per trovare il testo corrispondente su
tutte le pagine. Questo è utile per individuare numeri di telefono, date o altri
modelli di dati strutturati all’interno di 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);Classi chiave
| Classe | Scopo |
|---|---|
TextAbsorber | Estrai tutto il testo come stringa |
TextFragmentAbsorber | Estrazione di testo strutturato |
TextFragment | Testo con posizione e carattere |
FontRepository | Ricerca del carattere |