Comment lire les codes-barres et les codes QR en utilisant l'OCR en C#

Comment lire les BarCodes et les QR Codes en C# ; avec IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOcr lit les codes-barres et les codes QR en C# en définissant ReadBarCodes = true dans la configuration. Ce paramètre unique permet l'extraction automatique des valeurs de codes-barres à partir de PDF et d'images, parallèlement à la reconnaissance de texte ordinaire, prenant en charge plus de 20 formats de codes-barres, notamment les codes QR, le Code 128 et Data Matrix.

Démarrage rapide : Lire instantanément les codes-barres d'un PDF

Activez la détection des codes-barres à l'aide d'un seul paramètre et numérisez des PDF avec IronOcr. Le code ci-dessous montre comment activer la lecture des codes-barres, traiter un PDF et récupérer les valeurs décodées.

```cs:title=Try IronOCR's Barcode Reader Now var result = new IronOcr.IronTesseract() { Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = true } }.Read(new IronOcr.OcrPdfInput("document.pdf")) ; foreach(var bc in result.BarCodes) Console.WriteLine(bc.Value) ;


<div class="hsg-featured-snippet">
    <h3>Flux de travail minimal (5 étapes)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Téléchargez une bibliothèque C# pour lire les codes-barres et les codes QR.</a></li>
        <li>Importez l&#39;image cible et le document PDF.</li>
        <li>Activez la lecture des codes-barres en définissant la propriété <strong><code>ReadBarCodes</code></strong> sur true.</li>
        <li>Utilisez la méthode <code>Read</code> pour effectuer la reconnaissance optique de caractères (OCR) comme d&#39;habitude.</li>
        <li>Afficher le texte détecté et les valeurs du code-barres.</li>
    </ol>
</div>

<br class="clear">

## Comment lire des BarCodes à partir de documents PDF?

Créez un objet `IronTesseract` pour effectuer la lecture. Définissez la propriété **`ReadBarCodes`** sur true pour activer la détection des codes-barres. Importez le document PDF à l'aide du constructeur [`OcrPdfInput`](https://ironsoftware.com/csharp/ocr/how-to/input-pdfs/). Utilisez la méthode ``Lire`` pour effectuer l'OCR sur le PDF importé.

Voici un exemple utilisant ce document PDF :

<iframe loading="lazy" src="/static-assets/ocr/how-to/barcodes/pdfWithBarcodes.pdf#view=fit" width="100%" height="400px"></iframe>

```csharp
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.cs
Sortie de débogage d'IronOcr montrant le texte extrait et trois codes-barres (A,B,C) à partir d'un PDF avec des profils commerciaux

Les valeurs des codes-barres multiples apparaissent sous les codes-barres et sont incluses dans le texte extrait.

Pourquoi IronOcr extrait-il à la fois des valeurs de texte et de code-barres?

La double extraction d'IronOCR permet une analyse complète des documents. Lors du traitement de documents contenant à la fois du texte et des codes-barres, la bibliothèque effectue l'extraction de texte OCR standard tout en décodant simultanément les symbologies de codes-barres. Cette approche unifiée élimine le besoin de traitements multiples ou de bibliothèques séparées.

L'extraction de texte capture les éléments lisibles par l'homme, tandis que la détection des codes-barres identifie et décode les données lisibles par la machine. Cela profite aux documents tels que les factures, les étiquettes d'expédition ou les rapports d'inventaire où les valeurs des codes-barres sont en corrélation avec le texte imprimé. La classe OcrResult sépare ces sorties - le texte d'accès via la propriété Text et les données de code-barres via la collection Barcodes.

Quels sont les formats de BarCode pris en charge?

IronOCR prend en charge plus de 20 formats de codes-barres :

BarCodes 1D:

  • Code 128, Code 39, Code 93
  • EAN-13, EAN-8
  • UPC-A, UPC-E
  • Codabar
  • ITF (entrelacé 2 sur 5)
  • MSI
  • Plessey

BarCodes 2D:

  • Code QR
  • Matrice de données
  • PDF417
  • Code aztèque
  • MaxiCode

Pour les applications spécialisées telles que la lecture de chèques MICR ou le traitement de documents d'identité, les fonctionnalités de code-barres d'IronOCR complètent ses fonctions d'extraction de texte.

Quand devrais-je utiliser l'OCR pour la lecture des codes-barres plutôt que des bibliothèques dédiées aux codes-barres?

Choisissez la lecture de codes-barres intégrée d'IronOCR quand :

  1. Traitement de contenu mixte : Les documents contiennent à la fois du texte et des BarCodes (étiquettes d'expédition, factures ou documents scannés)
  2. Préférence pour une bibliothèque unique : Vous souhaitez minimiser les dépendances et utiliser une solution unique
  3. Traitement des PDF : vous utilisez déjà IronOCR pour l'extraction de texte OCR de PDF
  4. Mise en page de documents complexes : Les documents comportent des BarCodes intégrés dans des régions de texte ou des tables

Utilisez des bibliothèques de codes-barres dédiées lorsque :

  • Traitement d'images de codes-barres en grand volume
  • Nécessitant une lecture de codes-barres en temps réel (< 50ms de temps de réponse)
  • Travailler avec des BarCodes endommagés ou de mauvaise qualité nécessitant des algorithmes spécialisés
  • Mise en œuvre de la lecture mobile de codes-barres avec optimisation de la caméra

Comment lire les codes QR dans les documents?

<TODO : Ajouter une image ici -->

<Description : Capture d'écran montrant le processus étape par étape -->

Comme pour la lecture des codes-barres, définissez la propriété ReadBarCodes sur true. Aucune autre modification du code n'est nécessaire en dehors du chemin d'accès au fichier. Traitez ce document PDF avec des codes QR :

:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-qr-codes.cs
using IronOcr;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;

// Add PDF
using var imageInput = new OcrPdfInput("pdfWithQrCodes.pdf");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output detected barcodes and text values
Console.WriteLine("Extracted text:");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("Extracted barcodes:");
foreach (var barcode in ocrResult.Barcodes)
{
    Console.WriteLine(barcode.Value);
}
Imports IronOcr
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True

' Add PDF
Dim imageInput = New OcrPdfInput("pdfWithQrCodes.pdf")

' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output detected barcodes and text values
Console.WriteLine("Extracted text:")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("Extracted barcodes:")
For Each barcode In ocrResult.Barcodes
	Console.WriteLine(barcode.Value)
Next barcode
$vbLabelText   $csharpLabel
Sortie IronOCR dans Visual Studio montrant le texte extrait et les codes QR A, B et C décodés avec succès du document

Pourquoi la même configuration fonctionne-t-elle pour les BarCodes et les QR Codes?

Le moteur unifié de détection des codes-barres d'IronOcr traite tous les codes lisibles par machine de la même manière. The ReadBarCodes configuration activates a comprehensive symbology detector that recognizes both 1D (linear barcodes) and 2D (QR codes, Data Matrix) formats without requiring format-specific settings. Cette conception simplifie la mise en œuvre et réduit la complexité de la configuration.

L'algorithme de détection est automatique :

  • Identifie le type de symbologie sur la base de la reconnaissance des formes
  • Appliquer les algorithmes de décodage appropriés
  • Prise en charge des variations d'orientation et de taille
  • Renvoie les résultats dans un format cohérent, quel que soit le type de code-barres

Cette approche reflète la manière dont fonctionnent les modèles de vision par ordinateur (Computer Vision models), c'est-à-dire la formation à de multiples formats afin de fournir des capacités de détection universelles.

Quels sont les problèmes courants lors de la lecture de codes QR avec l'OCR?

Les défis courants lors du traitement des codes QR sont les suivants :

  1. Résolution des problèmes : Les codes QR dans les PDF peuvent être sous-échantillonnés en dessous de la taille minimale du module. Utilisez les paramètres DPI pour garantir une résolution adéquate (300 DPI minimum recommandé).

  2. Qualité de l'image : les codes QR scannés sont souvent flous, bruités ou déformés. Appliquez des filtres de correction d'image pour améliorer la clarté :
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();

var result = ocrTesseract.Read(input);
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();

var result = ocrTesseract.Read(input);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Problèmes d'orientation : Les codes QR inclinés peuvent ne pas se décoder correctement. Activez la détection de la rotation des pages pour gérer les documents mal alignés.

  2. Interférence de contenu mixte : le texte ou les graphiques qui se superposent aux codes QR peuvent empêcher leur détection. Utilisez crop regions pour isoler les zones du code QR si nécessaire.

Comment améliorer la précision de la reconnaissance des codes QR?

Optimisez la reconnaissance des codes QR grâce à ces techniques :

  1. Prétraiter les images : Utilisez l'Assistant de filtrage pour déterminer les paramètres d'amélioration optimaux :
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;

// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts

var result = ocrTesseract.Read(input);
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;

// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts

var result = ocrTesseract.Read(input);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Gérer plusieurs pages : Pour les documents multipages comportant des codes QR sur plusieurs pages :
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;

var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    foreach (var barcode in page.Barcodes)
    {
        Console.WriteLine($"  QR Code: {barcode.Value}");
        Console.WriteLine($"  Location: X={barcode.X}, Y={barcode.Y}");
    }
}
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;

var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    foreach (var barcode in page.Barcodes)
    {
        Console.WriteLine($"  QR Code: {barcode.Value}");
        Console.WriteLine($"  Location: X={barcode.X}, Y={barcode.Y}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Traitement asynchrone : Pour de meilleures performances avec plusieurs documents, utilisez les méthodes async :
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Problèmes de reconnaissance de débogage : Activez la mise en évidence des résultats pour visualiser ce qu'IronOCR détecte :
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Optimisation des performances pour le traitement des BarCodes à grande échelle

Lorsque vous traitez des milliers de documents avec des BarCodes et des codes QR, mettez en œuvre ces stratégies d'optimisation :

  1. Multithreading : Tirez parti de traitement multithread pour traiter plusieurs documents simultanément :
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
    var tesseract = new IronTesseract();
    tesseract.Configuration.ReadBarCodes = true;
    return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
    var tesseract = new IronTesseract();
    tesseract.Configuration.ReadBarCodes = true;
    return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Gestion de la mémoire : Utilisez les jetons abort tokens pour les opérations de longue durée :
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;

// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;

// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Exportation des résultats : enregistrez les résultats sous forme de PDF consultables pour conserver à la fois le texte et les données des codes-barres :
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Intégration avec les applications d'entreprise

Les fonctionnalités d'IronOCR pour les codes-barres s'intègrent parfaitement aux applications .NET existantes. Les scénarios d'intégration les plus courants sont les suivants :

  • Gestion des stocks : Extraire les codes produits des manifestes d'expédition
  • Archivage de documents : Indexer des documents numérisés par des identifiants de codes-barres intégrés
  • Traitement des factures : Faire correspondre les UGS des codes-barres avec les postes dans les documents financiers
  • Dossiers de santé : Traiter les codes-barres des bracelets des patients parallèlement aux formulaires médicaux

Pour les applications de production traitant de gros volumes de codes-barres et de codes QR, envisagez de mettre en œuvre le suivi de progression pour surveiller l'état du traitement et optimiser les performances en fonction de mesures réelles.

Questions Fréquemment Posées

Comment activer la lecture de codes-barres dans mon application C# ?

Avec IronOcr, activez la lecture des codes-barres en définissant ReadBarCodes = true dans la TesseractConfiguration. Ce simple paramètre active l'extraction automatique des valeurs des codes-barres dans les PDF et les images, parallèlement à la reconnaissance du texte normal, en prenant en charge plus de 20 formats de codes-barres.

Puis-je lire à la fois du texte et des codes-barres dans le même document ?

Oui, IronOcr effectue une double extraction - il capture le texte lisible par l'homme grâce à l'OCR standard tout en décodant simultanément les codes-barres lisibles par la machine. La classe OcrResult sépare ces sorties, le texte étant accessible via la propriété Text et les données des codes-barres via la collection Barcodes.

Quels sont les formats de codes-barres qui peuvent être détectés ?

IronOcr prend en charge plus de 20 formats de codes-barres, notamment les codes-barres 1D (Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Codabar, ITF, MSI, Plessey) et les codes-barres 2D (QR Code, Data Matrix, etc.).

Comment extraire des codes-barres de documents PDF ?

Créez un objet IronTesseract, attribuez la valeur true à ReadBarCodes, importez votre PDF à l'aide du constructeur OcrPdfInput, puis utilisez la méthode Read. IronOcr effectuera l'OCR et extraira toutes les valeurs de code-barres détectées, auxquelles vous pourrez accéder par le biais de la collection result.Barcodes.

Ai-je besoin de bibliothèques distinctes pour l'OCR de texte et la lecture de codes-barres ?

Non, l'approche unifiée d'IronOCR élimine le besoin de plusieurs passes de traitement ou de bibliothèques distinctes. Elle effectue l'extraction de texte OCR standard tout en décodant simultanément les symbologies de codes-barres en une seule opération.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il a une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, documentation et expérience globale.
Prêt à commencer?
Nuget Téléchargements 5,246,844 | Version : 2025.12 vient de sortir