UTILISATION DE L'IRONOCR

Traitement des factures par OCR en C# (Tutoriel pour développeur)

Kannaopat Udonpant
Kannapat Udonpant
janvier 14, 2025
Partager:

Introduction

Le traitement des données de facturation fait référence à la réception, la gestion et la validation des factures des fournisseurs ou des vendeurs, en veillant à ce que les paiements soient effectués correctement et à temps. Il implique des étapes conçues pour garantir l'exactitude, la conformité et l'efficacité dans la gestion des transactions commerciales afin d'éviter les factures papier. Le traitement automatisé des factures peut réduire considérablement les erreurs de saisie manuelle de données et améliorer l'efficacité. IronOCR est une bibliothèque logicielle puissante de reconnaissance optique de caractères (OCR) qui peut être utilisée pour extraire des données ou du texte à partir de factures d'un fichier numérique, ce qui en fait un excellent outil pour automatiser le traitement OCR des factures dans les applications C#.

Comment traiter les données de factures en utilisant un logiciel OCR comme IronOCR

  1. Créez un projet Visual Studio.

  2. Installez la bibliothèque IronOCR C#.

  3. Image d'exemple de facture.

  4. Utilisez Tesseract et extrayez les données de l'image du reçu.

  5. Lire uniquement une région d'une image.

Reconnaissance optique de caractères (OCR)

Reconnaissance optique de caractères est une technologie qui permet de reconnaître et de convertir différents types de documents, PDF ou images de texte—en données modifiables et consultables. La technologie OCR traite les images de texte et extrait les caractères, les rendant lisibles par machine. Les systèmes avancés de logiciels de reconnaissance optique de caractères (OCR) pour les factures aident dans les outils de gestion financière et l'automatisation des factures.

Points clés sur l'OCR

  • Fonctionnalité : Le logiciel OCR scanne des images ou du texte (par exemple, des photos ou des documents numérisés) et convertit les caractères en texte numérique qui peut être édité, recherché et stocké.
  • Applications : L'OCR est largement utilisé dans diverses industries pour des tâches telles que la numérisation de documents imprimés, le traitement des factures, l'extraction de données de formulaires, la reconnaissance automatique des plaques d'immatriculation (ANPR), le flux de travail des comptes fournisseurs et la numérisation de livres.
  • Technologie : L'OCR utilise des algorithmes pour identifier les motifs de lumière et d'obscurité afin d'interpréter les caractères. Les systèmes OCR modernes utilisent également l'apprentissage automatique et l'intelligence artificielle pour améliorer la précision.
  • Avantages : L'OCR améliore la productivité en automatisant la saisie des données, en réduisant les erreurs et en permettant une recherche et une récupération des données plus faciles. Il prend également en charge l'archivage de documents et aide les entreprises à gérer des flux de travail sans papier.

    La technologie OCR a considérablement évolué, la rendant très précise et utile pour le traitement des documents et l'extraction de données de factures à travers de nombreux formats de facture différents afin de réduire la saisie manuelle des données, éliminer le traitement manuel des factures et améliorer la sécurité des données.

IronOCR

IronOCR est une puissante bibliothèque de reconnaissance optique de caractères (OCR) pour .NET (C#) qui permet aux développeurs d'extraire du texte à partir d'images, de PDF et d'autres formats de documents, de développer un logiciel de facturation OCR, et de mettre en œuvre un flux de travail de comptes fournisseurs. Il offre une API facile à utiliser pour intégrer des fonctionnalités OCR dans le système de comptes fournisseurs ou le système comptable.

Principales caractéristiques de l'IronOCR

  • Extraction de texte : Il peut extraire du texte à partir de divers formats d'image (PNG, JPG, TIFF, etc.) et de PDF, y compris des PDF multipages pour les logiciels de comptabilité.
  • Précision : IronOCR utilise des algorithmes avancés et des techniques d'apprentissage automatique pour offrir une haute précision dans la reconnaissance de texte, même pour des images bruyantes ou de faible qualité dans les processus de comptes fournisseurs et les escomptes de paiement anticipé.
  • Prise en charge des langues : La bibliothèque prend en charge plusieurs langues, y compris l'anglais, l'espagnol, le français, et d'autres, ce qui aide à reconnaître le texte dans différentes langues.
  • Facilité d'utilisation : IronOCR offre une API simple qui permet aux développeurs d'intégrer rapidement la fonctionnalité OCR dans leurs applications sans nécessiter une connaissance technique approfondie des techniques OCR.
  • Reconnaissance de codes-barres et de codes QR : En plus de la reconnaissance de texte standard, IronOCR peut également détecter et extraire des codes-barres et des codes QR à partir d'images.
  • Support PDF : Il peut lire et extraire du texte à partir de PDF scannés, ce qui le rend utile pour le traitement des factures, reçus et autres documents d'entreprise.
  • Personnalisation : La bibliothèque permet la personnalisation des paramètres d'OCR pour des besoins spécifiques, tels que l'ajustement de la précision ou la gestion de différentes résolutions d'image.

Conditions préalables

Avant de commencer, assurez-vous d'avoir les éléments suivants :

  • Visual Studio est installé sur votre machine.
  • Compréhension de base de la programmation en C#.
  • Le package NuGet IronOCR installé dans votre projet.

Étape 1 : Créer un projet Visual Studio

Ouvrez Visual Studio et cliquez sur Créer un nouveau projet.

Traitement des factures par OCR en C# (Tutoriel pour développeurs) : Figure 1 - Nouveau Projet

Sélectionnez Application Console dans les options.

Traitement des factures OCR en C# (Tutoriel pour développeurs) : Figure 2 - Application console

Fournissez le nom et le chemin du projet.

Traitement des factures par OCR en C# (Tutoriel Développeur) : Figure 3 - Configuration du Projet

Sélectionnez le type de version .NET.

Traitement des factures par OCR en C# (Tutoriel pour développeurs) : Figure 4 - Framework cible

Étape 2 : Installer la bibliothèque IronOCR C

Dans votre projet dans Visual Studio, allez dans Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution. Cliquez sur l'onglet Parcourir et recherchez IronOCR. Sélectionnez IronOCR et cliquez sur Installer.

Traitement des Factures OCR en C# (Tutoriel Développeur) : Figure 5 - IronOCR

Une autre option consiste à utiliser la console et la commande ci-dessous.

dotnet add package IronOcr --version 2024.12.2
dotnet add package IronOcr --version 2024.12.2
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronOcr --version 2024.12.2
$vbLabelText   $csharpLabel

Étape 3 : Exemple d'image de facture d'entrée

Image d'une facture numérique d'exemple avec le numéro de facture.

Traitement de Facture OCR en C# (Tutoriel Développeur) : Figure 6 - Exemple d'entrée

Étape 4 : Utilisez Tesseract et extrayez les données de l'image du reçu

Utilisez maintenant le code ci-dessous pour extraire les données d'une facture pour le traitement des factures par OCR.

using IronOcr;
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // image for invoice OCR
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(filePath);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
    // next steps are to process data and use the extracted and validated data with invoice date
}
using IronOcr;
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // image for invoice OCR
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(filePath);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
    // next steps are to process data and use the extracted and validated data with invoice date
}
Imports IronOcr
License.LicenseKey = "Your License"
Dim filePath As String = "sample1.jpg" ' image for invoice OCR
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image or PDF file
Using ocrInput As New OcrInput()
	ocrInput.LoadImage(filePath)
	' Optionally apply filters if needed 
	ocrInput.Deskew()
	' ocrInput.DeNoise(); 
	' Read the text from the image or PDF
	Dim ocrResult = ocr.Read(ocrInput)
	' Output the extracted text
	Console.WriteLine("Extracted Text:")
	Console.WriteLine(ocrResult.Text)
	' next steps are to process data and use the extracted and validated data with invoice date
End Using
$vbLabelText   $csharpLabel

Explication du code

Le code fourni montre comment utiliser la bibliothèque IronOCR en C# pour extraire du texte à partir d'une image (par exemple, une facture) en utilisant la ROC (Reconnaissance Optique de Caractères). Voici une explication de chaque partie du code sans le code réel :

  1. Configuration de la clé de licence :

    Le code commence par définir la clé de licence pour IronOCR. Cette clé est nécessaire pour utiliser toutes les fonctionnalités de la bibliothèque. Si vous avez une licence valide, remplacez "Your License" par votre clé de licence réelle.

  2. Spécifier le fichier d'entrée :

    La variable filePath contient l'emplacement de l'image qui contient la facture (dans ce cas, "sample1.jpg"). Voici le fichier qui sera traité pour l'extraction de texte.

  3. Créer une instance OCR :

    Une instance de IronTesseract est créée. IronTesseract est la classe responsable de l'exécution de l'opération OCR sur les données d'entrée (image ou PDF).

  4. Chargement de l'Image :

    Le code crée ensuite un objet OcrInput, qui est utilisé pour charger l'image (dans ce cas, un fichier JPG spécifié par filePath). La méthode LoadImage est utilisée pour lire le fichier image et le préparer pour l'OCR.

  5. Application de filtres d'image :

    Le code contient une étape de filtrage où des méthodes optionnelles de traitement d'image, telles que Deskew (corriger les images inclinées) et DeNoise (supprimer le bruit de l'image), peuvent être appliquées pour améliorer la précision de l'OCR. Dans ce cas, seule la méthode Deskew est active.

  6. Effectuer une ROC :

    • La méthode ocr.Read() est utilisée pour extraire du texte à partir de l'image chargée. L'objet ocrInput, qui contient l'image, est passé à cette méthode, et elle renvoie un objet OcrResult contenant le texte extrait.
  7. Affichage du texte extrait :

    • Le texte extrait est ensuite affiché sur la console. Ce texte est ce qu'IronOCR a reconnu à partir de l'image et peut être utilisé pour un traitement ultérieur.

Sortie

Traitement des factures OCR en C# (Tutoriel pour développeur) : Figure 7 - Résultat OCR avec numéro de facture

Étape 5 : Lire uniquement une région d'une image

Pour améliorer l'efficacité, seule une partie de l'image peut être utilisée pour l'extraction.

using IronOcr;
using IronSoftware.Drawing;
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; 
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
    ocrInput.LoadImage(filePath, ContentArea);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
}
using IronOcr;
using IronSoftware.Drawing;
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; 
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
    ocrInput.LoadImage(filePath, ContentArea);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
License.LicenseKey = "Your Key"
Dim filePath As String = "sample1.jpg"
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image or PDF file
Using ocrInput As New OcrInput()
	Dim ContentArea = New Rectangle(x:= 0, y:= 0, width:= 1000, height:= 250)
	ocrInput.LoadImage(filePath, ContentArea)
	' Optionally apply filters if needed 
	ocrInput.Deskew()
	' ocrInput.DeNoise(); 
	' Read the text from the image or PDF
	Dim ocrResult = ocr.Read(ocrInput)
	' Output the extracted text
	Console.WriteLine("Extracted Text:")
	Console.WriteLine(ocrResult.Text)
End Using
$vbLabelText   $csharpLabel

Explication du code

Ce code extrait du texte d'une région spécifique d'une image à l'aide de IronOCR et applique éventuellement des filtres comme le désinclinaison pour améliorer la précision. Le texte extrait est ensuite affiché et prêt pour une utilisation ultérieure.

Configuration de la licence :

La première partie du code consiste à définir la clé de licence pour IronOCR. Ceci est nécessaire pour utiliser la fonctionnalité OCR dans la bibliothèque. La clé de licence doit être remplacée par la clé réelle que vous obtenez d'IronOCR, vous permettant d'accéder à toutes les fonctionnalités de la bibliothèque.

2. Définir le chemin du fichier image :

Le chemin du fichier de l'image que vous souhaitez traiter est spécifié. Cette image (dans ce cas, un fichier JPG) contient le document ou le contenu à partir duquel l'OCR extraira du texte. Le chemin peut pointer vers un fichier image sur le système local ou un autre stockage accessible.

Création d'une instance OCR :

Une instance de la classe IronTesseract est créée. Cet objet est le moteur principal qui effectuera la reconnaissance optique de caractères sur l'image.

4. Définir la zone à traiter :

Un rectangle (zone d'intérêt) est défini dans l'image. Ce rectangle spécifie la partie de l'image sur laquelle le moteur OCR se concentrera. Dans cet exemple, le rectangle commence dans le coin supérieur gauche (x=0, y=0) et a une largeur de 1000 pixels et une hauteur de 250 pixels. Cette étape aide le processus OCR à ne traiter que la section pertinente de l'image, améliorant ainsi la précision et la vitesse.

5. Chargement de l'image :

L'image est chargée dans le moteur OCR, mais seule le rectangle défini (la zone de contenu) est traité. Cela vous permet de restreindre la portée de l'OCR à une partie spécifique de l'image, ce qui est particulièrement utile lorsque l'image contient des zones non pertinentes, telles que des arrière-plans ou des logos, que vous ne souhaitez pas traiter.

6. Application de filtres :

Le code applique optionnellement un filtre de redressement à l'image. Le deskewing est le processus de redressement d'une image si elle présente une inclinaison ou une rotation, améliorant ainsi la précision de l'OCR. Un autre filtre, denoise, est disponible mais commenté. Si activé, cela supprimerait le bruit (marques indésirables) de l'image, ce qui pourrait améliorer davantage la précision de l'OCR.

7. Extraction du texte :

Le moteur OCR lit l'image (ou la zone spécifiée de celle-ci) et extrait tout texte qu'il reconnaît. Le résultat est stocké dans un objet qui contient le texte reconnu.

8. Afficher le texte extrait :

Enfin, le texte extrait est imprimé sur la console. Ce texte est le résultat du processus OCR, et il peut être traité, validé ou utilisé dans des applications telles que la saisie de données ou la gestion de documents.

Sortie

Traitement de Factures OCR en C# (Tutoriel Développeur) : Figure 8 - Résultat Extrait

Licence (version d'essai disponible)

IronOCR nécessite une clé pour extraire les données des factures, obtenez votre clé d'essai développeur depuis la page de licence.

using IronOcr;
License.LicenseKey = "Your Key";
using IronOcr;
License.LicenseKey = "Your Key";
Imports IronOcr
License.LicenseKey = "Your Key"
$vbLabelText   $csharpLabel

Conclusion

Cet article a fourni un exemple de base pour commencer avec IronOCR pour le traitement des factures. Vous pouvez personnaliser et étendre ce code davantage pour répondre à vos besoins spécifiques.

IronOCR offre une solution efficace et facile à intégrer pour l'extraction de texte à partir d'images et de PDFs, ce qui la rend idéale pour le traitement des factures. En utilisant IronOCR en combinaison avec la manipulation de chaînes C# ou des expressions régulières, vous pouvez rapidement traiter et extraire des données importantes des factures.

Il s'agit d'un exemple basique de traitement de factures, et avec des configurations plus avancées (comme la reconnaissance de langue, le traitement de PDF multi-pages, etc.), vous pouvez affiner les résultats de l'OCR pour améliorer la précision pour votre cas d'utilisation spécifique.

L'API d'IronOCR est flexible et peut être utilisée pour une grande variété de tâches OCR au-delà du traitement des factures, notamment la numérisation de reçus, la conversion de documents et l'automatisation de la saisie de données.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT
Performance optimisée pour un traitement OCR plus rapide et plus efficace
SUIVANT >
OCR des reçus de supermarché en C# (Tutoriel pour développeurs)