IRONSOFTWAREHOME
UTILISATION D'IRONOCR

Tutoriel OCR en C# CodeProject : Extraire du texte à partir d'images avec IronOCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 28 juin 2026

La reconnaissance optique de caractères (OCR) en C# vous permet d'extraire du texte lisible par machine à partir de documents numérisés, de fichiers image et de fichiers TIFF dans des applications .NET . Avec IronOCR , une bibliothèque OCR native .NET, vous installez un package NuGet et commencez à lire du texte à partir d'images en quelques lignes de code – sans service externe, sans dépendance d'exécution, sans frais d'API par appel.

Démarrez votre essai gratuit d' IronOCR pour suivre les exemples de code ci-dessous.

Comment installer IronOCR dans un projet .NET ?

La méthode la plus rapide pour ajouter la reconnaissance optique de caractères (OCR) à un projet .NET 10 consiste à utiliser le gestionnaire de packages NuGet . Ouvrez un terminal dans le répertoire de votre projet et exécutez la commande CLI .NET, ou utilisez la Console du gestionnaire de packages dans Visual Studio :

PM > Install-Package IronOcr

Après l'installation, le gestionnaire de packages NuGet télécharge tous les assemblys nécessaires et configure automatiquement les références. IronOCR cible .NET Framework 4.6.2+, .NET Core 3.1+ et .NET 5 à .NET 10, il fonctionne donc avec les applications console, les services ASP.NET Core , les applications WPF et les Azure Functions.

Vous n'avez pas besoin d'enregistrer de clé de licence pour effectuer des tests en local : un filigrane d'essai apparaît sur le résultat jusqu'à ce qu'une licence soit appliquée. Ajoutez la directive using et, lorsque vous serez prêt pour la production, transmettez votre clé une seule fois au démarrage :

using IronOcr;

// Apply license key before any OCR calls (production only)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

Consultez la page de licence IronOCR pour obtenir des informations sur les prix et l'activation.

Comment extraire du texte d'un fichier image ?

Le flux de travail principal de l'OCR implique trois objets : IronTesseract (le moteur), OcrInput (le conteneur d'entrée), et OcrResult (la sortie). L'exemple ci-dessous lit un PNG et imprime le texte reconnu sur la console.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("sample-document.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Sortie de reconnaissance optique de caractères

OCR dans C# Tutoriel CodeProject : Extraire du texte à partir d'images avec IronOCR : Image 1 - Capture d'écran de la sortie OCR

IronTesseract encapsule le moteur Tesseract 5 avec des paramètres par défaut adaptés à .NET et une gestion automatique du modèle. OcrInput.LoadImage accepte les fichiers PNG, JPEG, BMP, GIF, TIFF et WebP, vous n'avez donc rarement besoin de convertir des formats avant de passer une image au moteur.

La propriété OcrResult.Text renvoie une chaîne simple de tous les caractères reconnus joints par des nouvelles lignes. Pour un accès plus riche -- boîtes englobantes de mots, scores de confiance, texte par paragraphe -- naviguez dans les collections result.Pages, result.Paragraphs, result.Words, et result.Characters.

Principales caractéristiques à connaître :

  • result.Pages[0].Text -- texte provenant d'une seule page
  • result.Words[n].Text et result.Words[n].Confidence -- précision par mot (0,0 -- 1,0)
  • result.Pages[0].Paragraphs -- segmentation des paragraphes pour une extraction structurée

Vous pouvez également appeler ocr.ReadAsync(input) pour garder le fil d'exécution de l'interface utilisateur libre dans les applications de bureau ou web.

Comment traitez-vous les documents numérisés et les fichiers TIFF ?

Les fichiers TIFF multipages sont courants dans les flux de travail de numérisation de documents. IronOCR les traite avec LoadImageFrames, qui vous permet de choisir exactement quels cadres (pages) traiter -- utile lorsque vous n'avez besoin que d'un sous-ensemble d'une grande archive.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
int[] pageIndices = { 0, 1, 2 };
input.LoadImageFrames("scanned-documents.tiff", pageIndices);

// Correct skew and remove noise before reading
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    Console.WriteLine(page.Text);
}

Sortie ROC d'un fichier TIFF multi-pages

OCR dans C# Tutoriel CodeProject : Extraire du texte à partir d'images avec IronOCR : Image 2 - Sortie OCR TIFF multi-page

Deskew fait pivoter l'image pour corriger toute inclinaison introduite par les scanners à plat. DeNoise élimine les taches et les artefacts JPEG qui confondent le moteur Tesseract. Ensemble, ces deux filtres de prétraitement améliorent considérablement la précision de reconnaissance sur les numérisations de faible qualité.

Filtres OcrInput supplémentaires disponibles pour des matériaux sources difficiles :

  • input.Sharpen() -- augmente le contraste des bords pour les images floues
  • input.Binarize() -- convertit en noir et blanc pour les documents de qualité fax
  • input.Scale(200) -- augmente la taille des petites images pour une meilleure séparation des caractères
  • input.Rotate(90) -- corrige les orientations de document tournées

Consultez le guide des filtres d'image IronOCR pour obtenir la liste complète des options de prétraitement et savoir quand les appliquer.

Comment configurer la prise en charge linguistique pour la reconnaissance optique de caractères (OCR) ?

Par défaut, IronOCR lit le texte en anglais. Pour traiter des documents dans d'autres langues, installez le package NuGet de langue correspondant et définissez la propriété Language sur l'instance IronTesseract.

dotnet add package IronOcr.Languages.German, IronOcr.Languages.French, IronOcr.Languages.Japanese

Configurez ensuite le moteur et, pour les documents bilingues, ajoutez une langue secondaire :

using IronOcr;
using IronOcr.Languages;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

// For bilingual documents (e.g. Canadian forms, EU directives)
ocr.AddSecondaryLanguage(OcrLanguage.French);

using var input = new OcrInput();
input.LoadImage("german-invoice.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

IronOCR prend en charge plus de 125 langues , chacune distribuée sous forme de package NuGet léger distinct. Cela permet de limiter la taille de votre fichier binaire de production : seules les données linguistiques dont votre application a réellement besoin sont incluses. Le moteur mélange les modèles de langue primaire et secondaire pendant la reconnaissance lorsque vous appelez AddSecondaryLanguage.

Comment gérer les erreurs de reconnaissance optique de caractères (OCR) et améliorer les résultats de reconnaissance ?

Les applications de production nécessitent une gestion des erreurs au niveau du pipeline OCR. Les problèmes de qualité d'image, les fichiers manquants ou les formats non pris en charge peuvent provoquer des exceptions. Encadrer l'appel dans un bloc try/catch vous offre une voie de récupération propre.

using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

try
{
    using var input = new OcrInput();
    input.LoadImage("document.png");
    input.DeNoise();
    input.Deskew();

    OcrResult result = ocr.Read(input);

    if (result.Text.Length > 0)
    {
        Console.WriteLine("Recognised text:");
        Console.WriteLine(result.Text);
    }
    else
    {
        Console.WriteLine("No text was detected in the image.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR error: {ex.Message}");
}

Voici quelques paramètres supplémentaires qui peuvent s'avérer utiles lorsque la précision est inférieure aux attentes :

  • ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto -- permet à Tesseract de choisir automatiquement entre les mises en page à une seule colonne, multi-colonnes, et à un seul mot
  • ocr.Configuration.ReadBarCodes = false -- désactive la détection de code-barres si vous traitez des documents uniquement textuels et souhaitez une mise en œuvre plus rapide
  • ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5 -- garantit que vous utilisez le moteur le plus rapide disponible

Pour les formulaires structurés où les champs apparaissent à des positions prévisibles, utilisez la reconnaissance optique de caractères (OCR) basée sur les régions pour ne lire que les zones pertinentes :

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
var region = new CropRectangle(x: 50, y: 200, width: 600, height: 100);
input.LoadImage("form.png", region);

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

Limiter la reconnaissance à un rectangle de recadrage réduit le temps de traitement jusqu'à 90 % sur les grandes images. Cette technique est parfaitement adaptée à l'extraction des numéros de factures, à la lecture des champs de formulaires et à la numérisation des documents d'identité. Vous trouverez plus de détails dans le guide pratique OCR de la région .

Comment créer un PDF consultable à partir de texte reconnu ?

La conversion d'archives d'images numérisées en fichiers PDF consultables est l'un des cas d'utilisation de la reconnaissance optique de caractères (OCR) les plus intéressants. Le fichier résultant préserve l'apparence visuelle originale tout en intégrant une couche de texte invisible que les visionneuses PDF, les moteurs de recherche et les lecteurs d'écran peuvent indexer.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.Title = "Quarterly Report Q1 2026";
input.LoadImage("page1.png");
input.LoadImage("page2.png");
input.LoadImage("page3.png");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Console.WriteLine("Searchable PDF created.");
Console.WriteLine($"Pages processed: {result.Pages.Count}");

Sortie d'un document PDF consultable

OCR dans C# Tutoriel CodeProject : Extraire du texte à partir d'images avec IronOCR : Image 3 - PDF indexé créé à partir d'images d'entrée

SaveAsSearchablePdf écrit un fichier compatible PDF/A où chaque mot reconnu est placé aux coordonnées exactes en pixels de l'image originale. Adobe Acrobat, Aperçu sur macOS et Foxit Reader prennent tous en charge la recherche en texte intégral dans ces fichiers immédiatement après leur génération.

Pour les visionneuses de documents basées sur le web ou les pipelines NLP en aval, utilisez result.SaveAsHocrFile("output.hocr") à la place. Le format hOCR est une norme XML ouverte qui encode des cadres de délimitation par mot à côté du texte, permettant la mise en surbrillance côté client lors de la recherche et les annotations d'accessibilité au niveau des mots.

Formats de sortie supplémentaires disponibles à partir de OcrResult :

  • result.SaveAsHocrFile("output.hocr") -- XML hOCR avec des données positionnelles
  • result.ToXDocument() -- XDocument interrogeable par LINQ pour un traitement programmatique
  • result.Pages[0].Text -- texte brut par page pour les pipelines de streaming

Pour les applications qui fonctionnent déjà avec IronPDF, vous pouvez canaliser OcrResult directement dans les flux de travail de génération de PDF, combinant l'extraction OCR avec l'édition de PDF dans un seul processus .NET.

Comment lire les codes-barres en même temps que du texte ?

IronOCR peut lire les codes-barres et les codes QR intégrés dans la même image que le texte imprimé, éliminant ainsi le besoin d'exécuter une bibliothèque de codes-barres séparée. Activez cette fonctionnalité à l'aide d'une seule propriété de configuration :

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;

using var input = new OcrInput();
input.LoadImage("shipping-label.png");

OcrResult result = ocr.Read(input);

Console.WriteLine("Text:");
Console.WriteLine(result.Text);

Console.WriteLine("Barcodes:");
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"  {barcode.Format}: {barcode.Value}");
}

Les formats de codes-barres pris en charge incluent Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, PDF417, Data Matrix et QR Code. Vous trouverez tous les détails dans le guide de lecture des codes-barres IronOCR .

Cette fonctionnalité est particulièrement utile dans les applications logistiques, de santé et de vente au détail où les étiquettes d'expédition, les bracelets d'identification des patients et les étiquettes de produits comportent à la fois du texte lisible par l'homme et des codes-barres lisibles par machine.

Comment comparer IronOCR avec d'autres solutions OCR .NET ?

Les développeurs qui évaluent les bibliothèques OCR for .NET prennent généralement en compte IronOCR, Tesseract .NET et les services cloud tels que Google Cloud Vision ou Vision par ordinateur Azure. Le tableau ci-dessous résume les principales différences :

Comparaison des options OCR .NET selon les principaux critères des développeurs
CritèreIronOCRTesseract.NETVision par ordinateur Azure
DéploiementSur site ou dans le cloud, sans appels externesSur placeService exclusivement en nuage, nécessite une connexion internet.
InstallationPackage NuGet uniquePlusieurs paquets + binaires natifsKit de développement logiciel (SDK) + abonnement Azure
Packs linguistiquesPlus de 125 packages NuGetTéléchargement manuel de tessdataGéré par Azure
Sortie PDF consultableAppel de méthode intégréNon inclusNon inclus
prétraitement des imagesPlus de 12 filtres intégrésPrétraitement manuel requisAutomatique (côté serveur)
Modèle de tarificationLicence perpétuelle uniqueLogiciel libre (Apache 2.0)Facturation à l'appel

Tesseract , maintenu par Google en tant que projet open-source, alimente en interne IronOCR et Tesseract .NET . IronOCR ajoute un packaging idiomatique .NET, une gestion automatique des modèles et les fonctionnalités de sortie de production (PDF consultable, exportation hOCR) qui font défaut aux liaisons Tesseract brutes. Vision par ordinateur Azure offre une précision cloud de pointe, mais introduit une latence réseau et des coûts par appel qui ne conviennent pas aux flux de travail à volume élevé ou hors ligne.

Dans les cas où la réglementation sur la protection des données interdit l'envoi de documents à des services externes (dossiers médicaux, documents juridiques, états financiers), une bibliothèque sur site comme IronOCR est le choix approprié.

Quelles sont vos prochaines étapes ?

Vous disposez désormais des éléments de base pour ajouter la reconnaissance optique de caractères (OCR) à n'importe quelle application .NET 10 : installation via NuGet, extraction de texte de base à partir d'images, traitement TIFF multipages, configuration de la langue, gestion des erreurs, lecture basée sur les régions, détection des codes-barres et génération de PDF consultables.

Pour aller plus loin, explorez ces ressources IronOCR :

Pour toute question relative aux licences ou pour déployer IronOCR dans un environnement de production, veuillez consulter la page de licences IronOCR . Une licence d'essai gratuite supprime les filigranes des fichiers de sortie pendant votre période d'évaluation, et l'équipe d'assistance d'Iron Software est disponible pour répondre à vos questions techniques, quel que soit votre niveau d'abonnement.

Première étape :
arrow pointer

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise