Skip to main content
All docs
V26.1
  • Migrate from Legacy Barcode Generation API

    • 3 minutes to read

    The Barcode Generation API contains the new DevExpress.Docs.Barcode and legacy DevExpress.BarCodes namespaces.

    This topic helps you migrate existing barcode generation code from legacy types to the new API. Use the new API for new projects and for long-term maintenance.

    To migrate from the DevExpress.BarCodes namespace to DevExpress.Docs.Barcode, follow the steps below:

    1. Reference the DevExpress.Docs.Barcode NuGet package. To do this, you can call the following command:

      dotnet add package DevExpress.Docs.Barcode
      
    2. If you do not use any Office & PDF File API libraries other than barcodes, remove the DevExpress.Document.Processor NuGet package reference.

    3. Replace using DevExpress.BarCodes; with using DevExpress.Docs.Barcode; or add the new namespace and update type names:

      // using DevExpress.BarCodes;
      using DevExpress.Docs.Barcode;
      
    4. Replace legacy types with the new counterparts listed in the table below.

    5. Verify barcode output in a sample set (scan results, module size, quiet zones, and checksum behavior).

    Basic Migration Example

    Legacy

    using DevExpress.Docs.Barcode;
    using DevExpress.Drawing;
    
    // Create an Aztec Code.
    BarCode barCode = new BarCode();
    barCode.Symbology = Symbology.AztecCode;
    barCode.CodeText = "0123-456789";
    barCode.Options.AztecCode.ErrorLevel = AztecCodeErrorLevel.Level1;
    barCode.Options.AztecCode.Version = AztecCodeVersion.Version45x45;
    // Save the barcode as an image.
    barCode.Save("BarCodeImage.png", DXImageFormat.Png);
    

    New API

    using DevExpress.Docs.Barcode;
    using DevExpress.Drawing;
    
    // Create an Aztec Code.
    var aztecOptions = new AztecCodeOptions();
    aztecOptions.CompactionMode = AztecCodeCompactionMode.Text;
    aztecOptions.ErrorCorrectionLevel = AztecCodeErrorCorrectionLevel.Level1;
    aztecOptions.Version = AztecCodeVersion.Version45x45;
    
    using var aztecOptionsStream = new FileStream(Path.Combine(outDir,
       "BarCodeImage.png"), FileMode.Create, FileAccess.Write);
    using var aztecOptionsGenerator = new BarcodeGenerator(aztecOptions);
    aztecOptionsGenerator.Export("0123-456789", aztecOptionsStream, DXImageFormat.Png);
    

    Fluent API Example (New API Only)

    Legacy API does not include Fluent API builders. Use them only with the new namespace:

    using DevExpress.Docs.Barcode;
    using DevExpress.Drawing;
    using System.Drawing;
    
    var aztekOptions = AztecCodeOptionsBuilder.Create()
        .WithCompactionMode(AztecCodeCompactionMode.Text)
        .WithErrorCorrectionLevel(AztecCodeErrorCorrectionLevel.Level1)
        .WithVersion(AztecCodeVersion.Version45x45)
        .Build();
    
    var filePath = Path.GetFullPath("aztec_barcode.png");
    
    using var stream = new FileStream(filePath, FileMode.Create);
    using var generator = new BarcodeGenerator(aztekOptions);
    
    generator.Export("0123-456789", stream, DXImageFormat.Png);
    

    Symbology Type Renames

    The table below lists types available in the DevExpress.BarCodes namespace and their DevExpress.Docs.Barcode counterparts.

    Legacy Member New Member / Fluent API Member
    DevExpress.BarCodes.AztecCodeOptions DevExpress.Docs.Barcode.AztecCodeOptions / DevExpress.Docs.Barcode.AztecCodeOptionsBuilder
    DevExpress.BarCodes.CodabarOptions DevExpress.Docs.Barcode.CodabarOptions / DevExpress.Docs.Barcode.CodabarOptionsBuilder
    DevExpress.BarCodes.Code11Options DevExpress.Docs.Barcode.Code11Options / DevExpress.Docs.Barcode.Code11OptionsBuilder
    DevExpress.BarCodes.Code39ExtendedOptions DevExpress.Docs.Barcode.Code39ExtendedOptions / DevExpress.Docs.Barcode.Code39ExtendedOptionsBuilder
    DevExpress.BarCodes.Code39Options DevExpress.Docs.Barcode.Code39Options / DevExpress.Docs.Barcode.Code39OptionsBuilder
    DevExpress.BarCodes.Code93ExtendedOptions DevExpress.Docs.Barcode.Code93ExtendedOptions / DevExpress.Docs.Barcode.Code93ExtendedOptionsBuilder
    DevExpress.BarCodes.Code93Options DevExpress.Docs.Barcode.Code93Options / DevExpress.Docs.Barcode.Code93OptionsBuilder
    DevExpress.BarCodes.Code128Options DevExpress.Docs.Barcode.Code128Options / DevExpress.Docs.Barcode.Code128OptionsBuilder
    DevExpress.BarCodes.CodeMSIOptions DevExpress.Docs.Barcode.CodeMSIOptions / DevExpress.Docs.Barcode.CodeMSIOptionsBuilder
    DevExpress.BarCodes.DataBarOptions DevExpress.Docs.Barcode.DataBarOptions / DevExpress.Docs.Barcode.DataBarOptionsBuilder
    DevExpress.BarCodes.DataMatrixGS1Options DevExpress.Docs.Barcode.DataMatrixGS1Options / DevExpress.Docs.Barcode.DataMatrixGS1OptionsBuilder
    DevExpress.BarCodes.DataMatrixOptions DevExpress.Docs.Barcode.DataMatrixOptions / DevExpress.Docs.Barcode.DataMatrixOptionsBuilder
    DevExpress.BarCodes.EAN8Options DevExpress.Docs.Barcode.EAN8Options / DevExpress.Docs.Barcode.EAN8OptionsBuilder
    DevExpress.BarCodes.EAN13Options DevExpress.Docs.Barcode.EAN13Options / DevExpress.Docs.Barcode.EAN13OptionsBuilder
    DevExpress.BarCodes.EAN128Options DevExpress.Docs.Barcode.EAN128Options / DevExpress.Docs.Barcode.EAN128OptionsBuilder
    DevExpress.BarCodes.Industrial2of5Options DevExpress.Docs.Barcode.Industrial2of5Options / DevExpress.Docs.Barcode.Industrial2of5OptionsBuilder
    DevExpress.BarCodes.IntelligentMailOptions DevExpress.Docs.Barcode.IntelligentMailOptions / DevExpress.Docs.Barcode.IntelligentMailOptionsBuilder
    DevExpress.BarCodes.Interleaved2of5Options DevExpress.Docs.Barcode.Interleaved2of5Options / DevExpress.Docs.Barcode.Interleaved2of5OptionsBuilder
    DevExpress.BarCodes.Matrix2of5Options DevExpress.Docs.Barcode.Matrix2of5Options / DevExpress.Docs.Barcode.Matrix2of5OptionsBuilder
    DevExpress.BarCodes.MicroQRCodeOptions DevExpress.Docs.Barcode.MicroQRCodeOptions / DevExpress.Docs.Barcode.MicroQRCodeOptionsBuilder
    DevExpress.BarCodes.PDF417Options DevExpress.Docs.Barcode.PDF417Options / DevExpress.Docs.Barcode.PDF417OptionsBuilder
    DevExpress.BarCodes.PostNetOptions DevExpress.Docs.Barcode.PostNetOptions / DevExpress.Docs.Barcode.PostNetOptionsBuilder
    DevExpress.BarCodes.QRCodeEPCOptions DevExpress.Docs.Barcode.QRCodeEPCOptions / DevExpress.Docs.Barcode.QRCodeEPCOptionsBuilder
    DevExpress.BarCodes.QRCodeGS1Options DevExpress.Docs.Barcode.QRCodeGS1Options / DevExpress.Docs.Barcode.QRCodeGS1OptionsBuilder
    DevExpress.BarCodes.QRCodeOptions DevExpress.Docs.Barcode.QRCodeOptions / DevExpress.Docs.Barcode.QRCodeOptionsBuilder
    DevExpress.BarCodes.SSCCOptions DevExpress.Docs.Barcode.SSCCOptions / DevExpress.Docs.Barcode.SSCCOptionsBuilder
    DevExpress.BarCodes.UPCAOptions DevExpress.Docs.Barcode.UPCAOptions / DevExpress.Docs.Barcode.UPCAOptionsBuilder
    DevExpress.BarCodes.UPCE0Options DevExpress.Docs.Barcode.UPCE0Options / DevExpress.Docs.Barcode.UPCE0OptionsBuilder
    DevExpress.BarCodes.UPCE1Options DevExpress.Docs.Barcode.UPCE1Options / DevExpress.Docs.Barcode.UPCE1OptionsBuilder
    DevExpress.BarCodes.UPCSupplemental2Options DevExpress.Docs.Barcode.UPCSupplemental2Options / DevExpress.Docs.Barcode.UPCSupplemental2OptionsBuilder
    DevExpress.BarCodes.UPCSupplemental5Options DevExpress.Docs.Barcode.UPCSupplemental5Options / DevExpress.Docs.Barcode.UPCSupplemental5OptionsBuilder

    Common Property Renames

    Legacy New
    CalcCheckSum CalculateChecksum
    ErrorLevel ErrorCorrectionLevel
    Margins Margin
    Module ModuleSize
    Paddings Padding