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.20.2: 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.


The complete sample project is available in the following repository:

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 bar code control.
    XRBarCode barCode = new XRBarCode();

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

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

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

    return barCode;

To add the XRBarCode to a report band, handle the report's BeforePrint event.

using System.Drawing.Printing;
// ...

private void XtraReport1_BeforePrint(object sender, PrintEventArgs e) {