Comment extraire du texte des PDF en .NET
Comment extraire du texte à partir de PDF en .NET
Ce guide couvre l’extraction de texte à partir des pages PDF en utilisant l’API absorber.
Prérequis
| Exigence | Détail |
|---|---|
| Environnement d’exécution | .NET 8.0 ou version ultérieure |
| Package | dotnet add package Aspose.Pdf.Foss |
Extraire tout le texte d’une page
TextAbsorber collecte tout le texte d’une page en une seule chaîne. Créez une instance, transmettez‑la à Page.Accept, et lisez le résultat à partir de la propriété Text. C’est l’approche la plus simple lorsque vous avez besoin d’une sortie texte brut sans informations de position.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);Extraire des fragments de texte structurés
Lorsque vous avez besoin de métadonnées de position, de police et de taille en plus du texte, utilisez TextFragmentAbsorber à la place. Chaque TextFragment expose ses coordonnées de délimitation via la propriété 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})");
}Rechercher avec une expression régulière
Passez un motif regex à TextFragmentAbsorber pour trouver le texte correspondant sur
toutes les pages. Cela est utile pour localiser des numéros de téléphone, des dates ou d’autres
modèles de données structurées dans un document.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);Classes clés
| Classe | Objectif |
|---|---|
TextAbsorber | Extraire tout le texte sous forme de chaîne |
TextFragmentAbsorber | Extraction de texte structuré |
TextFragment | Texte avec position et police |
FontRepository | Recherche de police |