Extraire du texte d'un PDF avec l'OCR en C#

Aperçu

L’extraction de texte classique lit la couche de texte d’un document PDF. Lorsqu’une page est une image numérisée ou ne contient pas de texte sélectionnable, des classes comme TextFragmentAbsorber ne renvoient rien, car il n’y a pas de texte à lire.

Pour ces cas, Aspose.PDF for .NET fournit la classe OcrTextAbsorber (espace de noms Aspose.Pdf.Ocr). Elle reconnaît le texte brut sur les pages de n’importe quel document PDF à l’aide de l’OCR (reconnaissance optique de caractères) et le renvoie sous forme de chaîne. Elle suit le modèle standard d’Aspose.PDF absorber/visitor, elle se connecte donc aux mêmes points d’entrée Accept que les autres absorbers.

Reconnaître le texte sur une seule page PDF

Créez un OcrTextAbsorber, appelez la méthode Accept de la page et lisez le résultat dans la propriété Text. L’appel absorber.Visit(page) est un équivalent direct de page.Accept(absorber).

Reconnaître le texte dans tout le document PDF

Appelez la méthode Accept de la collection Pages pour reconnaître toutes les pages. Le texte reconnu de chaque page est joint à l’aide du séparateur de pages défini dans les options.

Configurer les options de reconnaissance

La reconnaissance est configurée à l’aide d’un objet OcrTextRecognitionOptions passé au constructeur. Ces mêmes options sont également disponibles après la construction via la propriété Options de l’absorber, et les modifier affecte le prochain appel de reconnaissance.

Membre Par défaut Signification Validation
Language OcrLanguage.English Langue de reconnaissance.
Resolution 300 Résolution de reconnaissance, en DPI. Plage pratique ~200–600. Des valeurs plus élevées consomment plus de mémoire/CPU pour un faible gain de précision. Lève ArgumentOutOfRangeException si <= 0.
PageSeparator "\n\n" Inséré entre le texte reconnu de pages consécutives (pas avant la première page). string.Empty concatène les pages sans séparation. Lève ArgumentNullException s’il est défini sur null.

Détection automatique de la langue

Lorsque la langue du document est inconnue, attribuez à Language la valeur OcrLanguage.Auto pour la détecter automatiquement. La langue de reconnaissance est sélectionnée à l’aide de l’énumération OcrLanguage, qui prend en charge l’anglais (par défaut), l’arabe, le chinois, le français, l’allemand, l’indonésien, l’italien, le japonais, le kazakh, le coréen, le polonais, le portugais, le russe, l’espagnol, l’ukrainien et Auto.

Comment les résultats de reconnaissance sont renvoyés

  • Text est remplacé, pas accumulé. Chaque appel Accept/Visit écrase Text avec le résultat de cet appel ; lisez-le après chaque appel pour conserver plusieurs résultats. Il vaut string.Empty avant le premier appel et pour un document sans pages.
  • Jointure de plusieurs pages. Le texte de chaque page est concaténé à l’aide de Options.PageSeparator (par défaut "\n\n") ; aucun séparateur n’est ajouté avant la première page. string.Empty joint les pages sans séparation.
  • Résolution. 300 DPI est la valeur par défaut et le point optimal pratique ; ~200–600 est la plage utile.