Skip to main content

Code 39 Extended

  • 3 minutes to read

Code 39 Extended is an extended version of the Code 39 (USD-3) barcode that supports the ASCII character set.

Barcode - Code 39 Extended

Refer to the following article for more information: Code 39 Extended.

Add the Bar Code to a Report

  1. Drag the XRBarCode item from the DX.23.1: Report Controls tab and drop it onto the report.

  2. Set the XRBarCode control’s Symbology property to Code39Extended (an object of the Code39ExtendedGenerator type).

  3. Specify common barcode properties and properties specific to Code39Extended.

Specific Properties

  • CalcCheckSum

    Gets or sets whether to calculate a checksum for the bar code.

  • WideNarrowRatio

    Gets or sets the density of a bar code’s bars.

Additional Notes

The Code 39 Extended barcode automatically replaces each character that cannot be encoded by the Code 39 barcode with a pair of characters that can be encoded by the Code 39 barcode. For example, the ‘\t’ character is replaced by ‘$I’. When the barcode is scanned, the pair is replaced with [TAB]:

Property Value
XRBarCode.Text: “12345\t678”
Coded text: “12345$I678”
Scanned text: “12345[TAB]678”

The checksum is not considered part of a barcode’s text and checksum characters are never replaced. When the XRBarCode.ShowText and BarCodeGeneratorBase.CalcCheckSum properties are enabled, the barcode does not display a checksum character to avoid mistakenly treating a checksum as part of barcode text.

Runtime Example

The following code creates the Code 39 Extended barcode and specifies its properties.

View Example: How to add a bar code to a report

using System;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Windows.Forms;
using DevExpress.XtraPrinting.BarCode;
using DevExpress.XtraReports.UI;
// ...
public XRBarCode CreateCode39ExBarCode(string BarCodeText) {
    // Create a barcode control.
    XRBarCode barCode = new XRBarCode();

    // Set the barcode's type to Code 39 Extended.
    barCode.Symbology = new Code39ExtendedGenerator();

    // Adjust the barcode's main properties.
    barCode.Text = BarCodeText;
    barCode.Width = 400;
    barCode.Height = 100;

    // Adjust the properties specific to the barcode type.
    ((Code39ExtendedGenerator)barCode.Symbology).CalcCheckSum = false;
    ((Code39ExtendedGenerator)barCode.Symbology).WideNarrowRatio = 2.5F;

    return barCode;

The code example below shows how to create a report with the Code 39 Extended barcode:

using DevExpress.XtraPrinting.BarCode;
using DevExpress.XtraReports.UI;

var barCode = CreateCode39ExBarCode("012345678");

var report = new XtraReport() {
    Bands = {
        new DetailBand() {
            Controls = { barCode }