A Comparison between IronBarcode and BarcodeLib

A barcode is a type of label that encodes information about the item to which it is attached. It starts with a pattern of black bars and spaces, typically quite wide, which represent numbers. Barcodes simplify the process of data collection and analysis that is usually time-consuming and difficult. They can be scanned quickly and easily by a machine, which reduces errors and lowers costs. Some of their applications include inventory management, quality control, and supply chain management. For these cases, they have shown to be effective tools in differentiating product levels or tracking products over long distances until their final destination.

There are two coding systems that are used in conjunction with barcodes. These are called the Uniform Code Council (UPC) and the International Standards Organization (ISO). The UPC codes were designed to provide a representation of articles or products sold in retail outlets. The UPC is a 12-digit code that is broken down into 6, 10, or 13 digits. There are also 2 trailing check digits that are used for error correction purposes. When scanned, the first five digits represent the company for which it was manufactured and the product within that company's line. The last number identifies the specific product or article being scanned by its machine-readable barcode. The ISO code was originally developed by companies who trade internationally, and primarily as a representation of an article number instead of an article itself.

In this article, we are going to compare two popular barcode libraries:

  • BarcodeLib
  • IronBarcode

Both libraries can be used for the generation and recognition of barcodes. They offer support for all dot net frameworks, and allow you to save the barcode images.

BarcodeLib Overview

Barcodelib for .NET is a suite of .NET barcode generator components designed for barcode generation in ASP.NET, .NET class, Console applications, Windows Forms applications, Microsoft Reporting Service, Crystal Reports for .NET, and Client RDlC Reports.

  • Easy to use — Drag and drop with ASP.NET Web Form & .NET Windows Form barcode generator control DLLs
  • Easy to redistribute — All barcodes and functions are built into individual DLL assemblies. No activation key, no registration code required
  • Fully managed C# code — All .NET barcode generation components are compiled with Visual C#.NET managed code.
  • Compatible with ASP.NET Barcode Application — You can easily embed barcode images into tag in your aspx or html pages.
  • Compatible with the latest barcodes standards — All linear and 2d barcode generation parameters comply with corresponding barcode specifications.
  • .NET barcode component with high prestige — It has been used and appreciated by more than 1000 customers since its release in 2003.
  • Royal-free Developer License — You can redistribute .NET package components to an unlimited number of computers and servers.
  • Support Checksum for barcodes — You have the capacity to control the checksum digit in some linear barcodes, adding or removing.
  • Customize barcode text — You can show or hide readable text under or above barcode bars in linear barcodes.
  • Adjust image resolution and size — You can control barcode image size through image resolution, image width and image height.
  • Barcode module size setting — Feel free to set the generated barcode image size by setting the barcode module size.
  • Barcode image orientation — You can display the barcode image in 0, 90, 180, & 270 degrees.
  • Barcode encoding and saving — You can encode barcode to GIF, JPEG, PNG, & Bitmap image formats or you can output barcode to Graphics, Bitmap, HttpResponse, and Stream .NET objects.

IronBarcode

IronBarcode for .NET allows programmers to read and write barcodes and QR codes from within .NET apps and websites. IronBarcode simply requires a single line of code to read or write barcodes. Most barcode and QR standards can be read and written using the.NET barcode library. Code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS, and QR are some of the most common. Type, text, binary data, page, and picture files are all included in the barcode result data. The Barcode API features are below:

  • IronBarcode reads and writes most barcode types and QR standards, including UPC A/E, EAN 8/13, Code 39/93/128, ITF, MSI, RSS 14/Expanded, Databar, CodaB.

  • ar, QR, Styled QR, Data Matrix, MaxiCode, PDF417, Plessey, and Aztec. The barcode data, type, page, text, and barcode picture provided by the results are perfect for archiving or indexing systems.

  • Image pre-processing improves reading speed and accuracy — IronBarcode automatically pre-processes barcode pictures to increase reading speed and accuracy. It can read scans or live video frames, correct rotation, noise, distortion, and skewing. Batch-processing server applications can take advantage of several cores and threads, and find one or more barcodes in single and multi-page documents automatically. Without the use of complicated APIs, you can search for certain barcode kinds or document locations.

  • Designed for use with .NET projects — get up and running in minutes with just a few lines of code. Built for the .NET Framework as a single DLL with no dependencies; supports 32 and 64-bit, may be used in any .NET and dot net core language. Supports mobile and desktop devices in web, cloud, desktop, and console applications. It is also used to create rotated barcodes and common usage scenarios in .NET applications and also provides .NET supports all these and other common usage scenarios.

  • Create barcodes and QR codes for a variety of document formats — save and print to a file or stream in a variety of file and stream formats, including PDF, JPG, TIFF, GIF, BMP, PNG, and HTML. Color, quality, rotation, size, and text can all be changed.

You can download the software product from this link.

2.0 Creating a New Project

Open Visual Studio and then go to the file menu. Select new project, and then select Console Application/Windows Forms/WPF Application. IronBarcode can be used on all types of applications. Also, you can use apps such as Webform/MVC/MVC Core.

Enter the project name and select the file path in the appropriate text box. Then, click the create button and select the required .NET Framework. The project will now be generated with the structure for the selected application, and, if you have selected the console application, it will open the program.cs file where you can enter the code and build/run the application.

3.0 Install the IronBarcode Library

3.1 Using IronBarcode

The IronBarcode Library can be downloaded and installed in four ways:

These are:

  • Using Visual Studio
  • Using the Visual Studio Command-Line.
  • Direct download from the NuGet website.
  • Direct download from the IronBarcode website.

3.1.1 Using Visual Studio

The Visual Studio software provides the NuGet Package manager option to install the package directly to the solution. The below screenshot shows how to open the NuGet Package Manager.

It provides the search box to show the list of the packages from the NuGet website. In the package manager, we need to search for the keyword "Barcode", as in the screenshot below:

From the above image, we will get the list of the related search results. We need to select the required option to install the package to the solution.

3.1.2 Using the Visual Studio Command-Line

In Visual Studio tools, go to Tools-> NuGet Package manager -> Package manager console

Enter the following line in the console tab:

Install-Package BarCode

Now the package will download/install to the current project and be ready to use.

3.1.3 Direct Download from the NuGet Website

The third way is to download the package directly from the website.

  • Navigate to the Link.
  • Select the download package option from the right-hand side menu.
  • Double-click the downloaded package. It will be installed automatically.
  • Now reload the solution and start using it in the project.

3.1.4 Direct Download from the IronBarcode Website

Click the link to download the latest package from the website. After the download, follow the steps below to add the package to the project.

  • Right-click the project from the solution window.
  • Then, select the option reference and browse the location of the downloaded reference.
  • Then, click OK to add the reference.

The first thing we need to do is install the Iron Barcode library, adding barcode functionality to the .NET framework. We can do this using our NuGet package or by downloading the .Net Barcode DLL.

 PM > Install-Package Barcode

3.2 Using BarcodeLib

The BarcodeLib library can be downloaded and installed in four different ways.

These are:

  • Using Visual Studio
  • Using the Visual Studio Command-Line.
  • Direct download from the NuGet website.
  • Direct download from the IronBarcode website.

3.2.1 Using Visual Studio

This method is similar to that used above for IronBarcode. The only thing we need to change is the search criteria, as in the image below.

Select the first option, which will then download the BarcodeLib barcode library.

3.2.2 Using the Visual Studio Command-Line

In Visual Studio Tools, Go to Tools-> NuGet Package manager -> Package manager console

Enter the following line in the package manager console tab.

Install-Package BarcodeLib

The package will now download/install in the current project and be ready to use.

3.2.3 Direct Download from the Barcodelib Website

The third way is to download the package directly from the website.

Just click here to be redirected to the NuGet website where you can download the package.

4.0 Barcode Generation

Barcode generation can easily be done using IronBarcode and BarcodeLib. Let's take a look at that using an example.

4.1 Using IronBarcode

IronBarcode can be used to create a barcode label and then saved into different types of image formats. Also, we can pass the barcode type which we need to generate. The following snippet is for barcode generation.

var MyBarCode = BarcodeWriter.CreateBarcode("123456", BarcodeEncoding.Code128);
MyBarCode.AddAnnotationTextBelowBarcode("123456");
MyBarCode.SaveAsImage("MyBarCode.jpeg");
var MyBarCode = BarcodeWriter.CreateBarcode("123456", BarcodeEncoding.Code128);
MyBarCode.AddAnnotationTextBelowBarcode("123456");
MyBarCode.SaveAsImage("MyBarCode.jpeg");
Dim MyBarCode = BarcodeWriter.CreateBarcode("123456", BarcodeEncoding.Code128)
MyBarCode.AddAnnotationTextBelowBarcode("123456")
MyBarCode.SaveAsImage("MyBarCode.jpeg")
VB   C#

Barcodewriter.Createbarcode is a static class that is available in the IronBarcode namespace. It takes two parameters to create a barcode. We are also able to specify height and width options using the CreateBarcode function.

After sending the parameter, it will return the barcode object, which will in turn return different barcode properties, and with those we are able to add properties like the above sample code. AddAnnotationTextBelowBarcode is one of the properties which allows us to add the text below or above the barcode labels. If we need to, we can also hide the barcode text. In the above code, the jpeg generator helps barcodes save to the jpeg image format.

This is not only for the use of image formats — we are also able to export the barcodes in HTML format. We have different types of images generated and saved in different image formats. Also, we are able to read more than one barcode from the given barcode image.

var QRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World",         
        "logo.png", 500);
QRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);
QRWithLogo.SaveAsJpeg("Logoqr.jpeg");
var QRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World",         
        "logo.png", 500);
QRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);
QRWithLogo.SaveAsJpeg("Logoqr.jpeg");
Dim QRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500)
QRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen)
QRWithLogo.SaveAsJpeg("Logoqr.jpeg")
VB   C#

The above example shows that we are able to generate a barcode with the image inside the QR code. The CreateQrCodeWithLogo is a function that allows us to do this job. We are also using the function ChangeBarCodeColor which will help us to change the color of the barcode/QR code. These functions in IronBarcode create custom barcodes for business purposes.

4.2 Using BarcodeLib

BarcodeLib can be used for barcode generation. We can generate different barcode types. The following snippet can be used to create the barcode.

BarcodeLib.Barcode.Linear barcode = new BarcodeLib.Barcode.Linear();
barcode.Type = BarcodeType.CODE39;
barcode.Data = "CODE39";
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.BarWidth = 1;
barcode.BarHeight = 80;
barcode.LeftMargin = 5;
barcode.RightMargin = 5;
barcode.TopMargin = 5;
barcode.BottomMargin = 5;
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;   
// save barcode image into your file system
barcode.drawBarcode("C://barcode.png");   
// generate barcode & output to byte array
byte[] barcodeInBytes = barcode.drawBarcodeAsBytes();   
// generate barcode to Graphics object
Graphics graphics = ...
barcode.drawBarcode(graphics);
// generate barcode and output to Bitmap object
Bitmap barcodeInBitmap = barcode.drawBarcode();
// generate barcode and output to HttpResponse object
HttpResponse response = ...;
barcode.drawBarcode(response);

// generate barcode and output to Stream object
Stream stream = ...;
barcode.drawBarcode(stream); 
BarcodeLib.Barcode.Linear barcode = new BarcodeLib.Barcode.Linear();
barcode.Type = BarcodeType.CODE39;
barcode.Data = "CODE39";
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.BarWidth = 1;
barcode.BarHeight = 80;
barcode.LeftMargin = 5;
barcode.RightMargin = 5;
barcode.TopMargin = 5;
barcode.BottomMargin = 5;
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;   
// save barcode image into your file system
barcode.drawBarcode("C://barcode.png");   
// generate barcode & output to byte array
byte[] barcodeInBytes = barcode.drawBarcodeAsBytes();   
// generate barcode to Graphics object
Graphics graphics = ...
barcode.drawBarcode(graphics);
// generate barcode and output to Bitmap object
Bitmap barcodeInBitmap = barcode.drawBarcode();
// generate barcode and output to HttpResponse object
HttpResponse response = ...;
barcode.drawBarcode(response);

// generate barcode and output to Stream object
Stream stream = ...;
barcode.drawBarcode(stream); 
Dim barcode As New BarcodeLib.Barcode.Linear()
barcode.Type = BarcodeType.CODE39
barcode.Data = "CODE39"
barcode.UOM = UnitOfMeasure.PIXEL
barcode.BarWidth = 1
barcode.BarHeight = 80
barcode.LeftMargin = 5
barcode.RightMargin = 5
barcode.TopMargin = 5
barcode.BottomMargin = 5
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png
' save barcode image into your file system
barcode.drawBarcode("C://barcode.png")
' generate barcode & output to byte array
Dim barcodeInBytes() As Byte = barcode.drawBarcodeAsBytes()
' generate barcode to Graphics object
Dim graphics As Graphics = ... barcode.drawBarcode(graphics)
' generate barcode and output to Bitmap object
Dim barcodeInBitmap As Bitmap = barcode.drawBarcode()
' generate barcode and output to HttpResponse object
Dim response As HttpResponse = ...
barcode.drawBarcode(response)

' generate barcode and output to Stream object
Dim stream As Stream = ...
barcode.drawBarcode(stream)
VB   C#

The above code shows that BarcodeGenerator is a class called BarcodeLib with which we can generate the barcode by creating an object, and that we need to pass two parameters: one is the barcode type, and the other parameter is the barcode string which we need to create a barcode. This will be then converted into a BarcodeGenerator object.

The Barcode generation object provides a function called save which allows us to save the created barcode into an image format. We are not limited to the jpeg format, as we are able to save in different barcode properties such as Tiff, etc.

Bar height and width can be resized using a separate function Barcode Generator object that has the value to set this: "Parameters.Barcode.dimension.Millimeters". This allows us to specify the line height and width.

5.0 Recognize Barcodes

IronBarcode and BarcodeLib allow us to recognize barcodes from different image formats and the types to which they belong. Let's take a more detailed look.

5.1 Using IronBarcode

IronBarcode helps in reading the barcode from different image formats and can be defined in three ways: as string, stream, and images such as Jpeg, Tiff, Bitmap, etc. The following example is for reading the barcode from the image using the string method.

BarcodeResult QRResult = BarcodeReader.QuicklyReadOneBarcode("MyBarCode.jpg");
if (QRResult != null)
{
    Console.WriteLine(QRResult.Value);
    Console.WriteLine(QRResult.BarcodeType);
}
BarcodeResult QRResult = BarcodeReader.QuicklyReadOneBarcode("MyBarCode.jpg");
if (QRResult != null)
{
    Console.WriteLine(QRResult.Value);
    Console.WriteLine(QRResult.BarcodeType);
}
Dim QRResult As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("MyBarCode.jpg")
If QRResult IsNot Nothing Then
	Console.WriteLine(QRResult.Value)
	Console.WriteLine(QRResult.BarcodeType)
End If
VB   C#

The above describes that we are using a class BarcodeReader which has different properties. One of the properties is QuicklyReadOneBarcode, which helps us to read the barcode from the image formats.

QuicklyReadOneBarcode helps us to read the barcode from different types of image formats. It also helps us to convert them into BarcodeResult objects. Through the object, we are able to get the barcode value and the type of barcode we are reading from the image.

The BarcodeResult has the following values:

  • Barcode type
  • Value
  • Text
  • Binary value

The type of the barcode in the supplied input image is returned by BarcodeType, which is an enum data type. IronBarcode supports a total of twenty-two barcode formats. The type of barcode that is applied to the provided input image will be returned.

The object type values available on the BarcodeResult are also value and text. String data types include value and text. This returns the barcode's string value. QuicklyReadOneBarcode reads a QR code/barcode and converts the string value of the image into value/text. The binary value is of the byte data type, and it returns the image's byte. The quick answer code is shown below and may be pasted into any net Windows Forms or net standard application.

5.2 Using BarcodeLib

The source for barcode recognition in BarCode for .NET can be defined in three ways: as an image file, a stream, or a bitmap. BMP, PNG, JPEG, GIF, and TIFF are the five picture formats that can be used to read a barcode from files. The implementation details for three different modes are also supplied. Below is the following example for using the string method.

OptimizeSetting setting = new OptimizeSetting();  
setting.setMaxOneBarcodePerPage(true);
ScanArea top20 = new ScanArea(new PointF(0.0F, 0.0F), new PointF(100.0F, 20.0F));
ScanArea bottom20 = new ScanArea(new PointF(0.0F, 80.0F), new PointF(100.0F, 100.0F));    
List<ScanArea> areas = new List<ScanArea>();
areas.Add(top20);
areas.Add(bottom20);    
setting.setAreas(areas);    
string[] results = BarcodeReader.read("c:/code39-barcode.gif", BarcodeReader.CODE39, setting);
OptimizeSetting setting = new OptimizeSetting();  
setting.setMaxOneBarcodePerPage(true);
ScanArea top20 = new ScanArea(new PointF(0.0F, 0.0F), new PointF(100.0F, 20.0F));
ScanArea bottom20 = new ScanArea(new PointF(0.0F, 80.0F), new PointF(100.0F, 100.0F));    
List<ScanArea> areas = new List<ScanArea>();
areas.Add(top20);
areas.Add(bottom20);    
setting.setAreas(areas);    
string[] results = BarcodeReader.read("c:/code39-barcode.gif", BarcodeReader.CODE39, setting);
Dim setting As New OptimizeSetting()
setting.setMaxOneBarcodePerPage(True)
Dim top20 As New ScanArea(New PointF(0.0F, 0.0F), New PointF(100.0F, 20.0F))
Dim bottom20 As New ScanArea(New PointF(0.0F, 80.0F), New PointF(100.0F, 100.0F))
Dim areas As New List(Of ScanArea)()
areas.Add(top20)
areas.Add(bottom20)
setting.setAreas(areas)
Dim results() As String = BarcodeReader.read("c:/code39-barcode.gif", BarcodeReader.CODE39, setting)
VB   C#

The above code shows that we are reading the barcode from the jpeg format. BarcodeReader is a class that helps us read the barcode image using the image path as a parameter. Once we pass the image path it will convert the image into a BarcodeReader object. Then we can use the object to get the value from the image.

BarcodeReader objects have a function called ReadBarCodes() which will help us to get all the available codes in the images. Using the for loop we can get the images one-by-one and hold them in the BarCodeResult object. Through the object, we can read the value and type of the barcode. Using this we are able to read multiple barcodes at once.

6.0 IronBarcode & BarcodeLib License Models and Price

IronBarcode License Model and Price

The 30-day money-back guarantee: when a license is purchased you will get 30 days of money back up if the license does not work.

Easy integration: the integration of IronBarcode with your project and environment is so easy that we can achieve it by writing just a single line of code by adding from Nuget Package, or we can download it from the web and integrate it with our environment that way.

Perpetual Licensing: Each license is purchased once and does not require renewal.

Free Support and Product Updates: every license comes with a year of free product updates and support from the team behind the product. It is possible to purchase extensions at any moment. Extensions can be viewed.

Immediate Licenses: registered license keys are sent out as soon as payment is received.

All licenses are perpetual and apply to development, staging, and production.

The Lite License

  • 1 developer
  • 1 location
  • 1 project
  • Perpetual license

This license allows a single software developer in an organization to utilize the Iron Software in a single place. Iron Software can be used in a single web application, intranet application, or desktop software program. Licenses are non-transferable, and they cannot be shared outside of an organization or an agency/client relationship. This license type, like all other license types, expressly excludes all rights not expressly granted under the Agreement, without OEM redistribution and utilizing the Iron Software as a SaaS if additional coverage is not purchased.

Pricing: Starts from $499 per year.

Professional License:

  • 10 developers
  • 10 locations
  • 10 projects
  • Perpetual license

This allows a predetermined number of software developers in an organization to utilize Iron Software in single locations, up to a maximum of ten. The Iron Software can be used in as many websites, intranet applications, or desktop software applications as you like. Licenses are non-transferable, and they cannot be shared outside of an organization or an agency/client relationship. This license type, like all other license types, expressly excludes all rights not expressly granted under the Agreement, including OEM redistribution and utilizing the Iron Software as a SaaS without purchasing additional coverage. This license can be integrated with a single project up to a maximum of 10.

Pricing: Starts from $999 per year.

Unlimited License

  • Unlimited developers
  • Unlimited locations
  • Unlimited projects
  • Perpetual license

This allows an unlimited number of software developers in an organization to utilize Iron Software in an unlimited number of locations. The Iron Software can be used in as many websites, intranet applications, or desktop software applications as you like. Licenses are non-transferable, and they cannot be shared outside of an organization or an agency/client relationship. This license type, like all other license types, expressly excludes all rights not expressly granted under the Agreement, including OEM redistribution and utilizing the Iron Software as a SaaS if additional coverage is not purchased.

Pricing: Starts from $2999 per year.

Royalty-Free Redistribution: This allows you to distribute the Iron Software as part of a number of differently packaged commercial products (without having to pay royalties) based on the number of projects covered by the base license. It allows for the deployment of Iron Software within SaaS software services, based on the number of projects covered by the base license.

Pricing: Starts from $1599 per year.

BarocdeLib License Model and Price

  • Once your payment is approved, you will get an email with the product immediately.
  • All licenses come with free six months of premium support and free updates for one year.
  • If you have any requests or questions, please send an email to support.

Single Developer License: The Single Developer License allows one developer royalty-free distribution of unlimited user licenses and installation software on unlimited servers, which can be placed in more than one location.

Pricing: Starts from $999 per year.

5-Developer License: This allows five developers royalty-free distribution of unlimited user licenses and installation software on unlimited servers, which can be placed in more than one location.

Pricing: Starts from $1999 per year.

Unlimited Developers License: This allows unlimited developers royalty-free distribution, unlimited user licenses, and installation software on unlimited servers, which can be placed in more than one location.

Pricing: Starts from $2999 per year.

IronBarcode Lite includes a one-developer package with one year of support, and costs around $499, while the BarcodeLib one-developer package cost $999. The IronPDF Professional license, a 10-developer package with one year of support costs $999, while the BarcodeLib 10-developer package costs $2999 per year. Both these licenses come with regular updates, major releases, and technical support for 1 year.

The IronPDF Lite and Professional packages have SaaS or OEM service along with a 5-year support option. The Lite package for one developer with 5-year support and Saas and OEM service costs $2897 USD. BarcodeLib provides SaaS or OEM service and customized support options. The Iron Professional license provides a 10-developer package with 5-year support and Saas and OEM service for $3397. BarcodeLib includes a 10-developer package with 1-year support and Saas and OEM service, all costing $2999.00

7.0 Conclusion

IronBarcode is one of the most powerful libraries for helping generate and recognize barcodes. It is also one of the fastest libraries in terms of barcode generation and recognition. This library is supported by various operating systems. It supports a wide variety of barcode formats and is easy to create We can change the image format to jpeg and others, and change the color, line height, width, barcode text, etc.

BarcodeLib.Barcode is also a powerful library that can help us generate and recognize barcodes with different image formats. We can use various image formats to read and create barcodes. BarcodeLib also provides options to change a barcode's appearance, such as height, width, barcode text, etc.

IronBarcode packages provide better licensing and support than BarcodeLib. BarcodeLib is also more expensive, starting at $999 per year, while IronBarcode is clearly cheaper at the starting price of $499. Not only is IronBarcode more cost-effective, it also provides more features than BarcodeLib. Further, IronBarcode has the advantage of being faster than BarcodeLib. IronBarcode also has various properties which allow us to not only read barcodes from different image formats but also to read barcodes from PDF documents. It also allows us to add images inside the barcode or QR code, a feature that is not available in any other library.

So, what are you waiting for? The 30-day free trial is open to all. You can obtain the License here and begin straightaway