How to Print Barcode in ASP.NET in C#
This article will demonstrate how to print barcode images in ASP.NET Web Applications using C#. The MVC Framework will be used for this example, but you can also use ASP.NET Web Forms, Windows Forms, or Web API as per your needs.
A basic knowledge of the ASP.NET MVC Framework will give you a better understanding of this article.
- Install C# library to print barcode file
- Configure Model and Controller
- Utilize
CreateBarcodemethod to create barcode in C# - Configure View to display the generated barcode
- Print the web page containing the barcode image using a printer or print-to-PDF software
Create an MVC Project
Open Microsoft Visual Studio. Click on Create New Project > Select ASP.NET Web Application from templates > Press Next > Name your Project > Press Next > Select MVC > Click the Create Button. The project will be created as shown below.
Create a new ASP.NET project
Add Model
Right-click on the Models folder > Add > Class....
Navigate to add Class Dialog
A new window will appear. Name your class as BarcodeModel.
Write the following code in the model class.
using System.ComponentModel.DataAnnotations;
public class BarcodeModel
{
[Display(Name ="Barcode File Name")]
public string FileName { get; set; }
[Display(Name = "Barcode Content")]
public string BarcodeContent { get; set; }
}using System.ComponentModel.DataAnnotations;
public class BarcodeModel
{
[Display(Name ="Barcode File Name")]
public string FileName { get; set; }
[Display(Name = "Barcode Content")]
public string BarcodeContent { get; set; }
}Imports System.ComponentModel.DataAnnotations
Public Class BarcodeModel
<Display(Name :="Barcode File Name")>
Public Property FileName() As String
<Display(Name := "Barcode Content")>
Public Property BarcodeContent() As String
End ClassThe FileName will be used to get the barcode image name from the user. The BarcodeContent is used to take the content for the barcode.
Add Controller
Next, a Controller is added to the project. It will communicate with a View and Model using the MVC model. The code for generating barcodes consists of just two or three lines. Therefore, there is no need for a separate class; instead, the code is added inside the Controller.
To add the Controller, right-click on the Controllers folder > Add > Controller. A new window will appear. Select MVC 5 Controller Empty. Click the Add button. A new box will appear.
Add Controller Dialog
Write your Controller name, for example, BarcodeController. Click the Add button. A new Controller will be generated.
The next step is to install the barcode library.
Install the Barcode Library
The IronBarcode library is recommended as a third-party library for generating barcodes. It is free for development and provides multiple features to customize barcodes, such as adding a logo to a barcode image, adding value below or above the barcode, adding annotations below or above the barcode, resizing the barcode, saving the barcode in multiple image formats, etc. For more details, please click here.
Go to the Package Manager Console. Type the following command and press Enter.
Install-Package BarCode
This command will install the IronBarcode library in the project.
Generate the Barcode
Next, add the following sample code to the controller.
using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;
public class BarcodeController : Controller
{
[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
try
{
// Create a barcode with the specified content and encoding
var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
// Define the path where the barcode image will be saved
string path = Server.MapPath("~/Files/");
string filepath = Path.Combine(path, model.FileName);
// Add the barcode value text above the barcode
MyBarCode.AddBarcodeValueTextAboveBarcode();
// Save the generated barcode as a JPEG file
MyBarCode.SaveAsJpeg(filepath);
// Retrieve the first file from the directory as a sample image
string image = Directory.GetFiles(path).FirstOrDefault();
// Pass the image path to the view
ViewBag.FileName = image;
return View();
}
catch
{
// Handle any exceptions that occur
return View();
}
}
}using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;
public class BarcodeController : Controller
{
[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
try
{
// Create a barcode with the specified content and encoding
var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
// Define the path where the barcode image will be saved
string path = Server.MapPath("~/Files/");
string filepath = Path.Combine(path, model.FileName);
// Add the barcode value text above the barcode
MyBarCode.AddBarcodeValueTextAboveBarcode();
// Save the generated barcode as a JPEG file
MyBarCode.SaveAsJpeg(filepath);
// Retrieve the first file from the directory as a sample image
string image = Directory.GetFiles(path).FirstOrDefault();
// Pass the image path to the view
ViewBag.FileName = image;
return View();
}
catch
{
// Handle any exceptions that occur
return View();
}
}
}Imports System.IO
Imports System.Linq
Imports System.Web.Mvc
Imports IronBarCode
Public Class BarcodeController
Inherits Controller
<HttpPost>
Public Function CreateBarcode(ByVal model As BarcodeModel) As ActionResult
Try
' Create a barcode with the specified content and encoding
Dim MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128)
' Define the path where the barcode image will be saved
Dim path As String = Server.MapPath("~/Files/")
Dim filepath As String = System.IO.Path.Combine(path, model.FileName)
' Add the barcode value text above the barcode
MyBarCode.AddBarcodeValueTextAboveBarcode()
' Save the generated barcode as a JPEG file
MyBarCode.SaveAsJpeg(filepath)
' Retrieve the first file from the directory as a sample image
Dim image As String = Directory.GetFiles(path).FirstOrDefault()
' Pass the image path to the view
ViewBag.FileName = image
Return View()
Catch
' Handle any exceptions that occur
Return View()
End Try
End Function
End Classtry-catchis used to catch any runtime exception.- The
CreateBarcodefunction provided by theBarcodeWriterclass takes two arguments: the barcode content, and the encoding scheme. Furthermore, it also accepts 11 other optional arguments that include maximum height, maximum width, and so on. - The
Server.MapPathfunction is used to map the path where the generated barcode images will be saved. ThePath.Combinemethod will combine the path and barcode image name. - The
AddBarcodeValueTextAboveBarcodefunction will add the barcode value. IronBarcode provides other barcode settings such asmax-height,max-width,barcode,color, and so on. You can explore and make use of the various parameters. - The
SaveAsJpegfunction takes the path as an argument and saves the generated barcodes in that particular path. - The
Directory.GetFilesmethod will get the newly generated barcode image. ViewBag.FileNameis used to send the barcode image's path to the view for displaying the generated barcode image.
QR codes can also be generated in the same way by changing the encoding scheme from Code128 to QRCode.
Add View
The next step is to provide the client-side for this ASP.NET Web Application by adding a new View. Right-click on the name of the Controller method and click the "Add View" button.
Navigate to add View Dialog
A new window will appear. Select MVC 5 View, and click the Add button.
A new prompt will appear as shown below.
Add View Dialog
Name your View and click the Add button. A new .cshtml file will be created.
Add the following code inside your newly generated view.
@model GenerateBarcodeMVC.Models.BarcodeModel
@{
ViewBag.DisplayBarcode = false;
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>GenerateBarcode</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}@model GenerateBarcodeMVC.Models.BarcodeModel
@{
ViewBag.DisplayBarcode = false;
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>GenerateBarcode</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}Next, right-click inside the View, and click the Run to Browser Button.
Output
Run Web Application to display Create form
Input your barcode image name, and barcode content as shown below:
Input your barcode content
Click the Create button. The barcode image will be generated and displayed on the screen as shown below.
Generate a barcode from a URL
Summary
This tutorial demonstrated how to generate barcodes using ASP.NET in C#, combined with the MVC Framework. Microsoft Visual Studio is used as the IDE. IronPDF is a third-party library that is free for development and compatible with all versions of the .NET Framework, including the newly released version. IronBarcode is fast and provides multiple features for working with barcodes. It can also generate QR codes by specifying different types.
There are other many useful libraries such as IronPDF for working with PDF documents, IronXL for working with Excel documents, and IronOCR for working with OCR. Currently, you can get all five libraries for the price of just two by purchasing the complete Iron Suite. Visit our licensing page for more details.
Frequently Asked Questions
How can I generate and print barcode images in ASP.NET MVC using C#?
You can use the IronBarcode library to generate and print barcode images in ASP.NET MVC applications. This involves creating an MVC project, installing IronBarcode via the Package Manager Console, and using the `BarcodeWriter.CreateBarcode` method to generate barcodes.
What steps are involved in creating a new MVC project for barcode printing?
To create a new MVC project for barcode printing, open Microsoft Visual Studio, select 'Create New Project', choose 'ASP.NET Web Application', and select 'MVC' from the available templates.
How do I install the IronBarcode library for barcode generation in C#?
Install the IronBarcode library by opening the Package Manager Console in Visual Studio and executing the command: Install-Package IronBarcode.
How do I save a generated barcode image in C#?
You can save a generated barcode image using the `SaveAsJpeg` method provided by IronBarcode, specifying the file path where the image should be saved.
Can I customize barcode images in ASP.NET applications?
Yes, IronBarcode allows customization of barcode images, including adding logos, annotations, and changing the size and dimensions to fit your needs.
How can I display a generated barcode in an MVC view?
To display a generated barcode in an MVC view, create a View in your project and pass the barcode image's path to the view using `ViewBag`. This enables the client-side display of the barcode.
What should I do if I encounter errors during barcode generation?
Use a try-catch block in your C# code to handle any runtime exceptions that may occur during the barcode generation process, ensuring robust error handling.
Is it possible to generate QR codes using the same method as barcodes?
Yes, by using IronBarcode, you can generate QR codes by setting the encoding scheme to `QRCode` in the `BarcodeWriter.CreateBarcode` method.
What other Iron software libraries are recommended for document management?
Besides IronBarcode, Iron Software offers other libraries such as IronPDF, IronXL, and IronOCR. These libraries provide comprehensive solutions for document management tasks.









