How to Read Code 39 Barcodes in C#

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

When it comes to inventory, logistics, and industrial applications, you need a reliable and widely compatible barcode. One of the most popular and versatile options is Code 39. A Code 39 barcode is a popular barcode format that can vary in length.

The original Standard Code 39 is capable of encoding uppercase letters (A-Z), digits (0-9), and a handful of special characters (like space, -, $, +, %, and .). This was great for basic IDs, but modern needs often require encoding all 128 ASCII characters. For this, the Code 39 Extended specification was created.

In this how-to, we'll show you how to easily read both the standard and extended variations of Code 39 with IronBarcode.

Get started with IronBarcode

Commencez à utiliser IronBarcode dans votre projet aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer



Reading Standard Code 39 Barcode

Reading a Code 39 barcode is straightforward with IronBarcode. We first initialize a new BarcodeReaderOptions and specify the barcode type, which is BarcodeEncoding.Code39. This step optimizes the reader by telling it exactly what kind of barcode to look for.

Afterwards, we read the barcodes using the Read method, passing the barcode image and the options variable as parameters. We then iterate over the results collection and print the string value of each barcode to the console.

Input Barcode Image

This image contains a standard Code 39 barcode.

Standard Code 39 barcode

Code

:path=/static-assets/barcode/content-code-examples/how-to/read-code39-barcode.cs
using IronBarCode;
using System;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Tell the reader to only look for Code 39.
    ExpectBarcodeTypes = BarcodeEncoding.Code39
};

// Read barcode(s) from the image file using the specified options
var results = BarcodeReader.Read("code39.png", options);

// Loop through each BarcodeResult found in the image
foreach (var result in results)
{
    // Print the decoded string value of the standard Code 39 barcode
    Console.WriteLine(result.ToString());
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Output

Standard Code39 Output

Reading Extended Code 39 Barcode

Reading an extended Code 39 barcode is quite similar to its standard counterpart. The main difference is that we must set the UseCode39ExtendedMode property to true.

This setting instructs IronBarcode to interpret the special character pairs (e.g., +T, %O) and decode them into their proper full-ASCII equivalents (e.g., t, !).

Input Barcode Image

This image contains an extended Code 39 barcode. The value Test-Data! contains lowercase characters and an exclamation mark, which are only available in the full ASCII set and require extended mode.

Extended Code39

Code

:path=/static-assets/barcode/content-code-examples/how-to/read-extended-code39-barcode.cs
using IronBarCode;
using System;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Enable extended Code 39 mode
    UseCode39ExtendedMode = true,

    // Specify that we are expecting Code 39 barcodes
    ExpectBarcodeTypes = BarcodeEncoding.Code39
};

// Read barcode(s) from the extended code 39 image
var results = BarcodeReader.Read("code39extended.png", options);

// Loop through each BarcodeResult found in the image
foreach (var result in results)
{
    // Print the fully decoded ASCII string (e.g., "Test-Data!")
    Console.WriteLine(result.ToString());
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Output

Extended Code39 Output

Conseils The console output may not properly display all ASCII characters. In those scenarios, please pipe the output to a .txt file to verify the extracted result.

Questions Fréquemment Posées

Qu'est-ce qu'un code-barres Code 39 ?

Le Code 39 est un format de code-barres répandu, utilisé dans la gestion des stocks, la logistique et les applications industrielles. Il peut encoder des lettres majuscules, des chiffres et certains caractères spéciaux. Il existe également une version étendue prenant en charge les 128 caractères ASCII.

Comment puis-je lire les codes-barres Code 39 en C# ?

Vous pouvez lire les codes-barres Code 39 en C# à l'aide de la bibliothèque IronBarcode. Initialisez un objet BarcodeReaderOptions, spécifiez BarcodeEncoding.Code39 et utilisez la méthode Read pour extraire les données du code-barres.

De quoi ai-je besoin pour commencer à lire les codes-barres Code 39 avec IronBarcode ?

Pour commencer, téléchargez la bibliothèque IronBarcode C# depuis NuGet. Ensuite, initialisez un objet BarcodeReaderOptions et spécifiez le type de code-barres comme Code39.

Quelle est la différence entre le code 39 standard et le code 39 étendu ?

Le code standard 39 peut encoder des lettres majuscules, des chiffres et quelques caractères spéciaux, tandis que le code étendu 39 prend en charge l'ensemble complet des 128 caractères ASCII en utilisant des paires de caractères spéciaux.

Comment lire un code-barres Code 39 étendu avec IronBarcode ?

Pour lire un code-barres Code 39 étendu, définissez la propriété UseCode39ExtendedMode sur true dans IronBarcode. Cela permet à la bibliothèque de décoder l'ensemble des caractères ASCII.

Quel est le rôle de BarcodeReaderOptions dans IronBarcode ?

L'option BarcodeReaderOptions d'IronBarcode vous permet de spécifier le type de code-barres que vous souhaitez lire, optimisant ainsi le processus de lecture en se concentrant sur le format spécifié.

IronBarcode peut-il lire les codes-barres Code 39 standard et étendus ?

Oui, IronBarcode peut lire les codes-barres Code 39 standard et étendus. Pour les codes-barres étendus, assurez-vous que la propriété UseCode39ExtendedMode est définie sur true.

IronBarcode prend-il en charge les caractères spéciaux dans les codes-barres Code 39 ?

Oui, IronBarcode prend en charge les caractères spéciaux dans les codes-barres Code 39. La version standard prend en charge quelques caractères spéciaux, tandis que la version étendue prend en charge tous les caractères ASCII.

Que faut-il pour décoder l'ensemble complet des caractères ASCII contenus dans les codes-barres Code 39 ?

Pour décoder l'ensemble complet ASCII des codes-barres Code 39, vous devez utiliser la version étendue et définir la propriété UseCode39ExtendedMode sur true dans IronBarcode.

IronBarcode est-il capable de traiter des fichiers image pour la lecture des codes-barres ?

Oui, IronBarcode peut lire les codes-barres à partir de fichiers image. Il suffit de transmettre l'image du code-barres ainsi que les options de lecture (BarcodeReaderOptions) à la méthode Read pour extraire les données.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,935,276 | Version : 2025.11 vient de sortir