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

Comience a usar IronBarcode en su proyecto hoy con una prueba gratuita.

Primer Paso:
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

Consejos 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.

Preguntas Frecuentes

¿Qué es el código de barras Código 39?

El Código 39 es un formato de código de barras popular en aplicaciones de inventario, logística e industriales. Puede codificar letras mayúsculas, dígitos y algunos caracteres especiales. También existe una versión extendida compatible con los 128 caracteres ASCII.

¿Cómo puedo leer códigos de barras Code 39 en C#?

Puede leer códigos de barras Code 39 en C# con la biblioteca IronBarcode. Inicialice BarcodeReaderOptions, especifique BarcodeEncoding.Code39 y use el método Read para extraer los datos del código de barras.

¿Qué necesito para empezar a leer códigos de barras Code 39 con IronBarcode?

Para comenzar, descargue la biblioteca IronBarcode de C# desde NuGet. Luego, inicialice un objeto BarcodeReaderOptions y especifique el tipo de código de barras como Code39.

¿Cuál es la diferencia entre el Código 39 Estándar y el Código Extendido?

El Código estándar 39 puede codificar letras mayúsculas, dígitos y algunos caracteres especiales, mientras que el Código extendido 39 admite el conjunto completo de 128 caracteres ASCII mediante el uso de pares de caracteres especiales.

¿Cómo leo un código de barras Code 39 extendido con IronBarcode?

Para leer un código de barras Code 39 extendido, configure la propiedad UseCode39ExtendedMode como verdadera en IronBarcode. Esto permite que la biblioteca decodifique el conjunto completo de caracteres ASCII.

¿Cuál es la función de BarcodeReaderOptions en IronBarcode?

BarcodeReaderOptions en IronBarcode le permite especificar el tipo de código de barras que desea leer, optimizando el proceso de lectura al centrarse en el formato especificado.

¿Puede IronBarcode leer códigos de barras Code 39 estándar y extendidos?

Sí, IronBarcode puede leer códigos de barras Code 39 estándar y extendidos. Para códigos de barras extendidos, asegúrese de que la propiedad UseCode39ExtendedMode esté establecida en verdadero.

¿IronBarcode admite caracteres especiales en los códigos de barras Code 39?

Sí, IronBarcode admite caracteres especiales en códigos de barras Code 39. La versión estándar admite algunos caracteres especiales, mientras que la versión extendida admite todos los caracteres ASCII.

¿Qué se necesita para decodificar el conjunto ASCII completo en los códigos de barras Código 39?

Para decodificar el conjunto ASCII completo en los códigos de barras Code 39, debe utilizar la versión extendida y establecer la propiedad UseCode39ExtendedMode en verdadero en IronBarcode.

¿IronBarcode puede trabajar con archivos de imagen para la lectura de códigos de barras?

Sí, IronBarcode puede leer códigos de barras de archivos de imagen. Se pasa la imagen del código de barras junto con las opciones BarcodeReaderOptions al método Read para extraer los datos.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,935,276 | Versión: 2025.11 recién lanzado