Click here to Skip to main content
15,880,725 members
Articles / Web Development / ASP.NET
Article

Barcodes in ASP.NET applications

Rate me:
Please Sign up or sign in to vote.
4.27/5 (35 votes)
21 Oct 2008CPOL1 min read 266K   128   60
Easy and cheap barcodes in ASP.NET.

Introduction

In one of my projects, I needed to implement barcodes into an ASP.NET page. Unfortunately, the only way that I found was using a third party component. So, I decided to find a way to do it without using external components.

Using the code

First, you have to download a free barcode font. For this example, I used "IDAutomationHC39M" from IdAutomation. In this example, I used Barcode 39.

In WinForms applications, it is really easy to use Barcode fonts; just place a Label, and apply the free barcode font, and assign a value, and everything is ready.

In Webforms, things are different, because the application runs on the server. The barcode font must reside on the server. If we use a Label, the barcode font is located on the server, not on the client, so you will just see the value, not the barcode.

Well, let's start:

Just copy the barcode font into the windows\fonts folder of the server. The whole idea is to create a text with the font (a barcode), then create an image of it, and send it back to the client.

Here is a simple page with it:

C#
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Barcodes
{

/// <summary />
/// Summary description for BarCode.
/// </summary />

public class BarCode : System.Web.UI.Page
{
    private void Page_Load(object sender, System.EventArgs e)
    {
         // Get the Requested code to be created.
         string Code = Request["code"].ToString();

         // Multiply the lenght of the code by 40 (just to have enough width)
         int w = Code.Length * 40;
    
        // Create a bitmap object of the width that we calculated and height of 100
         Bitmap oBitmap = new Bitmap(w,100);
    
        // then create a Graphic object for the bitmap we just created.
         Graphics oGraphics = Graphics.FromImage(oBitmap);
        
        // Now create a Font object for the Barcode Font
        // (in this case the IDAutomationHC39M) of 18 point size
        Font oFont = new Font("IDAutomationHC39M", 18);
        
        // Let's create the Point and Brushes for the barcode
        PointF oPoint = new PointF(2f, 2f);
         SolidBrush oBrushWrite = new SolidBrush(Color.Black);
         SolidBrush oBrush = new SolidBrush(Color.White);
            
        // Now lets create the actual barcode image
        // with a rectangle filled with white color
        oGraphics.FillRectangle(oBrush, 0, 0, w, 100);
            
        // We have to put prefix and sufix of an asterisk (*),
        // in order to be a valid barcode
        oGraphics.DrawString("*" + Code + "*", oFont, oBrushWrite, oPoint);
        
        // Then we send the Graphics with the actual barcode
        Response.ContentType = "image/jpeg" ;
         oBitmap.Save (Response.OutputStream, ImageFormat.Jpeg);
    }
}
}

Let's test our page. Just call http://localhost/BarCodes/BarCode.aspx?Code=1234.

Pic1.png

As you can see, there is a barcode with the value of 1234.

Now, let’s create a page that has an asp:Image on it:

ASP.NET
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" 
   AutoEventWireup="false" Inherits="BarCodes.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>WebForm1</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" 
        content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <asp:Image id="myBarCode"  runat="server"></asp:Image>
  </form>
 </body>
</HTML>

Add this to the code behind:

C#
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace BarCodes
{
    /// <summary />
    /// Summary description for WebForm1.
    /// </summary />
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Image myBarCode;
    
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            myBarCode.ImageUrl = "BarCode.aspx?code=31231";
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /// <summary />
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary />
        private void InitializeComponent()
        {    
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}

Now, let’s see the result:

Pic2.png

Well friends, that is all! An easy and cheap way to have barcodes in your ASP.NET applications.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) INTERlink Software
Guatemala Guatemala
I have been developing software for a while, using ASP.NET (since version 1.0) and C#.

Comments and Discussions

 
GeneralMessage Closed Pin
24-Nov-11 19:48
Ivy Shirley24-Nov-11 19:48 
Questionbarcode generated fine, now how do i read it back thru the app? Pin
gvozdik201119-Apr-11 4:33
gvozdik201119-Apr-11 4:33 
GeneralMy vote of 3 Pin
Rasha_200818-Apr-11 22:57
Rasha_200818-Apr-11 22:57 
GeneralThe barcode doesn't scan Pin
An Suri26-Jan-11 13:29
An Suri26-Jan-11 13:29 
GeneralThis is not free Pin
Amin J. Ismaili1-Nov-10 4:46
Amin J. Ismaili1-Nov-10 4:46 
Questionwhy my picture is not shown ? Pin
arya0128-Oct-10 19:37
arya0128-Oct-10 19:37 
GeneralMy vote of 5 Pin
Member 164379217-Sep-10 4:40
professionalMember 164379217-Sep-10 4:40 
QuestionHas anyone been able to get around the huge whitespace to the right of the generated barcode image? Pin
mbcrump23-Jul-10 4:23
mentormbcrump23-Jul-10 4:23 
After the barcode is generated, a huge whitespace exist to the right of the barcode. I've been playing with this and am unable to resolve it.
GeneralBarCode Image Works Pin
roopeshcb21-Jul-10 13:15
roopeshcb21-Jul-10 13:15 
GeneralMy vote of 5 Pin
Sunasara Imdadhusen8-Jul-10 0:17
professionalSunasara Imdadhusen8-Jul-10 0:17 
GeneralResolved : Could not create font object of "IDAutomationHC39M" Pin
pravin dingore23-May-10 7:00
pravin dingore23-May-10 7:00 
GeneralRe: Resolved : Could not create font object of "IDAutomationHC39M" Pin
silvia.stanila5-Feb-11 8:54
silvia.stanila5-Feb-11 8:54 
Questionhow can use barcode code in my web application [modified] Pin
kajal patoliya22-Mar-10 1:15
kajal patoliya22-Mar-10 1:15 
AnswerRe: how can use barcode code in my web application Pin
saranya rengarajan27-Mar-11 19:04
saranya rengarajan27-Mar-11 19:04 
GeneralMessage Closed Pin
24-Nov-11 19:18
Ivy Shirley24-Nov-11 19:18 
AnswerMessage Closed Pin
24-Nov-11 18:55
Ivy Shirley24-Nov-11 18:55 
AnswerMessage Closed Pin
24-Nov-11 19:03
Ivy Shirley24-Nov-11 19:03 
Generalbarcode is not showing the image Pin
gulam husain ansari14-Sep-09 21:17
gulam husain ansari14-Sep-09 21:17 
AnswerRe: barcode is not showing the image Pin
Erick Cuellar25-Oct-09 13:27
Erick Cuellar25-Oct-09 13:27 
QuestionSolid black bar Pin
holderag10-Jun-09 2:23
holderag10-Jun-09 2:23 
General"Real" Free Barcode Font Pin
Mad-Halfling21-Apr-09 6:13
Mad-Halfling21-Apr-09 6:13 
QuestionI'm getting only the label (*1234*) not the bar code lines. What is the issue?. Please help me Pin
arunkumarsp13-Apr-09 0:34
arunkumarsp13-Apr-09 0:34 
AnswerRe: I'm getting only the label (*1234*) not the bar code lines. What is the issue?. Please help me Pin
roopeshcb21-Jul-10 13:12
roopeshcb21-Jul-10 13:12 
GeneralRe: I'm getting only the label (*1234*) not the bar code lines. What is the issue?. Please help me Pin
adeelghaffar78620-Apr-11 0:41
adeelghaffar78620-Apr-11 0:41 
GeneralRe: I'm getting only the label (*1234*) not the bar code lines. What is the issue?. Please help me Pin
cruzagr3 networks23-Nov-11 17:03
cruzagr3 networks23-Nov-11 17:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.