USING IRONBARCODE

How to Create a Code 39 Barcode Generator in C#

Barcodes have become an integral part of modern business operations, facilitating efficient inventory management, point-of-sale transactions, and data tracking. Among the various barcode symbologies, Code 39 stands out as one of the most widely used and versatile options.

A checksum digit, also known as a check digit or validation digit, is a digit added to a sequence of numbers (or alphanumeric characters) to help detect errors in the data. The purpose of the checksum digit is to ensure the integrity of the data by providing a simple method of error detection during data transmission or processing. One common application of a checksum digit is in barcodes, where it is often used to verify the accuracy of the scanned data. One of the barcode symbologies that uses a checksum digit is Code 39.

Code 39 encodes alphanumeric characters, including uppercase letters, numeric digits, and a few special characters. It includes a start character, an optional checksum character, and a stop character, making it self-checking to ensure accurate data capture. Also, human-readable text can be displayed below the generated barcode image.

IronBarcode (produced by Iron Software) is the leading .NET C# Barcode library for reading and creating barcodes. The User-friendly API allows developers to add barcode functionality to .NET applications in minutes. Developers can generate a Code 39 barcoding project and barcoding test in minutes using this library.

In this article, we'll explore the process of building a Code 39 barcode generator using IronBarcode.

How to Create a Code 39 Barcode Generator in C#

  1. Create a new C# project in Visual Studio
  2. Install the IronBarcode library and add it to your project.
  3. Generate Code 39 Barcode using the IronBarcode class library
  4. Add annotation text to the Code 39 Barcode images
  5. Add styling to the Code 39 Barcode images

Prerequisites

  1. Visual Studio: Ensure you have Visual Studio or any other C# development environment installed.
  2. NuGet Package Manager: Make sure you can use NuGet to manage packages in your project.

Step 1: Create a New C# Project in Visual Studio

Create a new C# console application or use an existing project where you want to generate new barcode images. This library can also be used on a .NET Windows forms application. For the sake of this tutorial, let's consider a console application.

Select the console application template and click next.

How to Create a Code 39 Barcode Generator in C#: Figure 1 - Selecting the console application template

In the next step, you can provide the solution and project names.

How to Create a Code 39 Barcode Generator in C#: Figure 2 - Configuring the project name and solution

Select the .NET Version and click "Create".

How to Create a Code 39 Barcode Generator in C#: Figure 3 - Creating the project with the correct .NET version

Step 2: Install the IronBarcode library

IronBarcode can be installed from the NuGet Package Manager.

How to Create a Code 39 Barcode Generator in C#: Figure 4 - IronBarcode on the NuGet package manager

It can also be installed from the Visual Studio package manager. Search for IronBarcode in Package Manager and click install.

How to Create a Code 39 Barcode Generator in C#: Figure 5 - Installing IronBarcode from the Visual Studio Package manager

Step 3: Generate Code 39 Barcode using the IronBarcode Library

Now, let's write the code to generate Code 39 barcodes using the IronBarcode library. Below is a simple example:

using IronBarCode;

Console.WriteLine("Code 39 Barcode Generator");

// Generate a Code 39 Barcode using the BarcodeWriter class
GeneratedBarcode code39Barcode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeEncoding.Code39
);

// Save the generated barcode image as a PNG file
code39Barcode.SaveAsImage("ironSoftwareBarcode.png");
using IronBarCode;

Console.WriteLine("Code 39 Barcode Generator");

// Generate a Code 39 Barcode using the BarcodeWriter class
GeneratedBarcode code39Barcode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeEncoding.Code39
);

// Save the generated barcode image as a PNG file
code39Barcode.SaveAsImage("ironSoftwareBarcode.png");
Imports IronBarCode

Console.WriteLine("Code 39 Barcode Generator")

' Generate a Code 39 Barcode using the BarcodeWriter class
Dim code39Barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code39)

' Save the generated barcode image as a PNG file
code39Barcode.SaveAsImage("ironSoftwareBarcode.png")
$vbLabelText   $csharpLabel

This simple program initializes a BarcodeWriter C# class, sets the encoding format to Code39, and generates a barcode PNG using the provided data. The barcode image is then saved as ironSoftwareBarcode.png.

Output:

How to Create a Code 39 Barcode Generator in C#: Figure 6 - Outputted barcode image encoded in Code 39

Here we are using the BarcodeWriter class from the IronBarcode library to create Code 39 barcodes with the URL data provided. Every time the code is run, a new barcode image is generated.

Add Annotation Text to Code 39 Barcode images

Annotation text can be added to barcodes easily with IronBarcode. The BarcodeWriter object generates a barcode object which has a Fluent API, allowing barcode text to be set in a single line of code.

using IronBarCode;

Console.WriteLine("Code 39 Barcode Generator");

// Generate a Code 39 Barcode
GeneratedBarcode code39Barcode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeEncoding.Code39
);

// Add annotation text above and the barcode value text below the barcode
code39Barcode.AddAnnotationTextAboveBarcode("Product URL:");
code39Barcode.AddBarcodeValueTextBelowBarcode();

// Save the barcode image with annotation text
code39Barcode.SaveAsImage("ironSoftwareBarcodeWithText.png");
using IronBarCode;

Console.WriteLine("Code 39 Barcode Generator");

// Generate a Code 39 Barcode
GeneratedBarcode code39Barcode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeEncoding.Code39
);

// Add annotation text above and the barcode value text below the barcode
code39Barcode.AddAnnotationTextAboveBarcode("Product URL:");
code39Barcode.AddBarcodeValueTextBelowBarcode();

// Save the barcode image with annotation text
code39Barcode.SaveAsImage("ironSoftwareBarcodeWithText.png");
Imports IronBarCode

Console.WriteLine("Code 39 Barcode Generator")

' Generate a Code 39 Barcode
Dim code39Barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code39)

' Add annotation text above and the barcode value text below the barcode
code39Barcode.AddAnnotationTextAboveBarcode("Product URL:")
code39Barcode.AddBarcodeValueTextBelowBarcode()

' Save the barcode image with annotation text
code39Barcode.SaveAsImage("ironSoftwareBarcodeWithText.png")
$vbLabelText   $csharpLabel

Output:

How to Create a Code 39 Barcode Generator in C#: Figure 7 - Outputted annotated barcode image from the previous code

Here you can see the product URL human-readable text is added above the barcode, and the value of the barcode in human-readable text is added below the barcode image.

Add Styling to Code 39 Barcode images

IronBarcode allows the barcode and the human-readable text to be styled. Usually, styling barcodes include resizing, setting margins, changing background colors, changing barcode colors, fonts, and verifying that the output barcode is still readable. All these methods are available on the BarcodeWriter object. The width and height are set in pixels.

How to Create a Code 39 Barcode Generator in C#: Figure 8 - How to simply add styling to a BarcodeWriter object

Generate with a Stream Object

The BarcodeWriter object can also work with a Stream object as shown below. This is particularly helpful in web API applications to save memory. A graphics object can also take advantage of this.

How to Create a Code 39 Barcode Generator in C#: Figure 9 - Generating a barcode with a Stream type object

Licensing (Free Trial Available)

IronBarcode requires a license key. The key needs to be placed in appsettings.json.

{
    "IronBarcode.LicenseKey": "MYLICENSE.KEY.TRIAL"
}

Provide your email to get a trial license. After submitting your email ID, the key will be delivered via email.

How to Create a Code 39 Barcode Generator in C#: Figure 10 - Popup showing a successful trial license application

Conclusion

In this comprehensive guide, we have explored the process of building a Code 39 barcode generator using the C# programming language. Code 39 is versatile and widely used in barcode symbology, known for its simplicity and ability to encode alphanumeric characters. By leveraging the capabilities of the IronBarcode library, we have demonstrated a step-by-step approach to create a C# application capable of generating Code 39 barcodes with optional checksum digits.

As technology continues to advance, the importance of accurate and efficient data encoding and decoding becomes increasingly critical. Building a Code 39 barcode generator in C# not only provides a practical tool for businesses and developers but also serves as an educational exercise in understanding barcode symbologies, checksum algorithms, and the integration of third-party libraries in C# applications.

In conclusion, this guide equips developers with the knowledge and tools needed to create a robust Code 39 barcode generator, fostering the integration of reliable barcode solutions into their projects. Whether you are a seasoned developer or a newcomer to barcode generation, this article provides a solid foundation for further exploration and customization based on the specific requirements of your applications.

Frequently Asked Questions

What is Code 39 barcode?

Code 39 is a widely used barcode symbology that encodes alphanumeric characters, including uppercase letters, numeric digits, and a few special characters. It is known for its simplicity and versatility in various applications.

What are the prerequisites for creating a Code 39 barcode generator in C#?

To create a Code 39 barcode generator in C#, you need Visual Studio or another C# development environment and the NuGet Package Manager to manage project packages.

How can I install the IronBarcode library for my C# project?

You can install IronBarcode from the NuGet Package Manager or from the Visual Studio package manager by searching for IronBarcode and clicking install.

How do I generate a Code 39 barcode using the IronBarcode library?

To generate a Code 39 barcode, use the BarcodeWriter class from IronBarcode to create a barcode object with the desired encoding format and save it as an image file.

Can I add annotation text to Code 39 barcode images?

Yes, using IronBarcode, you can add annotation text to Code 39 barcodes above and below the barcode image using methods like AddAnnotationTextAboveBarcode and AddBarcodeValueTextBelowBarcode.

What styling options are available for Code 39 barcodes using IronBarcode?

IronBarcode allows styling options such as resizing, setting margins, changing background and barcode colors, and modifying fonts to ensure the barcode is readable.

How can I generate a barcode using a Stream object in IronBarcode?

The BarcodeWriter object in IronBarcode can work with a Stream object, which is useful for web API applications to save memory and integrate with graphics objects.

Is a license required for using IronBarcode, and how can I get one?

Yes, IronBarcode requires a license key. You can obtain a trial license by providing your email, after which the key will be sent to you via email.

What makes Code 39 a versatile barcode symbology?

Code 39 is considered versatile because it supports encoding of both alphanumeric characters and certain special characters, making it suitable for a wide range of applications.

Why is a checksum digit important in barcodes?

A checksum digit helps ensure data integrity by detecting errors during data transmission or processing, verifying the accuracy of scanned data.

Jordi Bardia
Software Engineer
Jordi is most proficient in Python, C# and C++, when he isn’t leveraging his skills at Iron Software; he’s game programming. Sharing responsibilities for product testing, product development and research, Jordi adds immense value to continual product improvement. The varied experience keeps him challenged and engaged, and he says it’s one of his favorite aspects of working with Iron Software. Jordi grew up in Miami, Florida and studied Computer Science and Statistics at University of Florida.
< PREVIOUS
How to Generate Code 128 barcode in C#
NEXT >
How to Generate Barcode in Blazor