Skip to main content

Get Up and Running Faster with Barcode Xpress

Barcodes remain the basis for product identification and tracking, improving both operational insight and the end-user experience. From common applications in grocery stores to more advanced deployments in warehouses, legal firms, and even post-secondary schools, barcodes are the ubiquitous bridge between digital and physical environments. 

As noted by Forbes, emerging pandemic pressures have precipitated the return of a familiar code framework, the QR code. Now used by retail stores and restaurants to enable touchless product identification and payment, this rapid code renaissance is a stark reminder that codes remain a key driver of long-term operational success. However, not all barcode reader tools are created equal. Some struggle to handle damaged or deformed barcodes, others limit the type and nature of the codes they scan, and many full-featured solutions come with significant complexity around installation, integration, and ease-of-use.

Barcode Xpress offers the best of both worlds. Here’s what developers need to know.


What is Barcode Xpress?

Accusoft’s Barcode Xpress makes it easy for users to read, write, and detect over 30 different barcodes with a single software development kit (SDK). Barcode Xpress supports:

  • 1D Barcodes Including Add-2, Add-5, Code 39, GS1 and UCC
  • 2D BarcodesSuch as Aztec, Data Matrix, PDF417 and QR codes
  • Postal CodesFrom PLANET and PostNet to Royal Mail and the Australia Post 4-State Code
  • Patch Codes Including Patch 1, 2, 3, 4 (Toggle), 6 and Transfer

Barcode Xpress also reports confidence values for detected codes, reads supported barcodes in any orientation in milliseconds, and can intelligently handle poorly-printed, damaged, or badly-scanned barcode images. This SDK is also available in six development environments, including:

  • .NET
  • .NET Core
  • ActiveX
  • Java
  • Linux
  • Node.js

 Basic Barcode Requirements

Deployment environments for Barcode Xpress must leverage one of the following x64 Windows versions:

  • Windows 8.1
  • Windows 10 Version 1607 and later
  • Windows Server 2008 R2 SP1 and later
  • Windows Server 2012, 2016 or 2019

The SDK can also be deployed on x64 Linux operating systems including:

  • Ubuntu 18.04 or 16.04
  • CentOS 8 or 7
  • Debian 9 or 10

When it comes to Barcode Xpress development environments, requirements include Microsoft .NET Core 2.1 or later along with Java Runtime Environment 1.8 or later for License Manager and Server Licensing Utilities, along with Visual Studio 2017 or later (optional).


Ease of Installation

To streamline installation, Barcode Xpress .NET Core can be deployed via NuGet package or using a zip file provided by Accusoft. In both cases, developers require a valid license to use the SDK. Explore the different license types here.

Evaluation licenses allow your team to explore Barcode Xpress features bounded by timeouts and watermarks. Toolkit licenses remove pop-ups, time outs, and watermarks to enable in-depth development, while Runtime licenses are required to distribute your application.


Navigating NuGet

The simplest way to deploy Barcode Xpress is using the NuGet package manager for Microsoft development platform in Visual Studio. All of Accusoft’s NuGet packages can be found at nuget.org. Find the NuGet Barcode Express .NET package here.

To install the NuGet package, follow these steps:

  1. Open the NuGet Package Manager in Visual Studio.
  2. In the newly-opened window, ensure the Package Source is set to nuget.org and select the Barcode Xpress package.
  3. After selection and installation, look for the newly-added assemblies in your References folder.
  4. Add using [namespace] to any CS/VB file you’d like to reference these NuGet libraries.

Need more help? Check out the official NuGet tutorials


 Creating a Command Line

Ready to tackle your first project in Barcode Xpress? Here’s a step-by-step guide to building a complete C# application that analyzes 1D barcodes using Visual Studio.

1.Create a new Console App project in .NET core:

2. Add the Barcode Xpress SDK:

 

3. Add any required Microsoft dlls for the project. In this case, look for System.Drawing.Common at nuget.org, or add them locally if they’re already present as references in your development environment.

 

4. Add using statements to your generated Program.cs:Program.cs

 

using System;
using System.Drawing;
using Accusoft.BarcodeXpressSdk;
namespace MyProject
{
...

5. Create any necessary instances of Accusoft.BarcodeXpressSDK.BarcodeXpress and System.Drawing.BitmapProgram.cs

 


using System;
using System.Drawing;
using Accusoft.BarcodeXpressSdk;
namespace MyProject
{
    class Program
    {
        static void Main(string[] args)
        {
            BarcodeXpress barcodeXpress = new BarcodeXpress();
            System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
        }
    }
}

6. Pass this bitmap to Barcode Xpress and access the returned resultsProgram.cs

 


…
namespace MyProject
{
     class Program
     {
         static void Main(string[] args)
         {
             BarcodeXpress barcodeXpress = new BarcodeXpress();

             System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
          
             Accusoft.BarcodeXpressSdk.Result[] results = barcodeXpress.reader.Analyze(bitmap);
          
             if (results.Length > 0)
             {
                 foreach (Accusoft.BarcodeXpressSdk.Result result in results)
                 {
                     Console.WriteLine("{0} : {1}", result.BarcodeType.ToString(), result.BarcodeValue);
                 }
             }
             else
             {
                 Console.WriteLine("No Barcodes Found.");
             }
         }
     }

7. Finally, clean up your code by using the Dispose() methodProgram.cs


…
namespace MyProject
{
    class Program
    {
         static void Main(string[] args)
         {
             BarcodeXpress barcodeXpress = new BarcodeXpress();

             System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
          
             Accusoft.BarcodeXpressSdk.Result[] results = barcodeXpress.reader.Analyze(bitmap);
          
             if (results.Length > 0)
             {
                 foreach (Accusoft.BarcodeXpressSdk.Result result in results)
                 {
                     Console.WriteLine("{0} : {1}", result.BarcodeType.ToString(), result.BarcodeValue);
                 }
             }
             else
             {
                 Console.WriteLine("No Barcodes Found.");
             }
             barcodeXpress.Dispose();
         }
     }

Ongoing Improvements

Barcode Xpress isn’t a new offering — it’s been part of the Accusoft SDK lineup for more than 15 years. However, John Reynolds, Principal Engineer for Barcode Xpress, recently took a look at the code to improve its functionality. In his whitepaper, Refactoring Legacy Code for Speed in Barcode Xpress, he found that when repeatedly scanning a barcode in a particular direction, the count length of black/white runs in the same direction. 

As a result, continually calculating the mask and data pointers for each coordinate is cumbersome, but also allows for potential shortcuts, such as keeping a running tally of the mask across the image. Applied in depth, this and other code legacy code changes have helped improve 1D barcode analysis times from 5% to 60%, depending on the image.

Barcode Xpress offers comprehensive code recognition that’s easy to implement and customize, while ongoing improvements help streamline SDK deployment, enhance operational speed, and empower software engineers in various markets. Discover the benefits of Barcode Xpress. Download a free trial or try an online demo today.