Skip to footer content
USING IRONBARCODE

Creating a Razor Barcode Generator Web App

Razor Barcode Generator Tutorial

Razor Barcode Generator is a handy tool that simplifies the creation of barcodes for developers and businesses alike. Integrating barcode generation into web applications enhances the functionality and user experience, making it straightforward to produce a variety of barcode types. Whether you're managing inventory, tracking assets, or streamlining checkout processes, utilizing a Razor Barcode Generator can significantly improve efficiency and accuracy. We'll use IronBarcode in this tutorial for creating a barcode generator.

Introduction to IronBarcode

IronBarcode is an essential tool for developers working with .NET Core, offering an easy-to-use library for barcode generation and reading. It stands out because of its simplicity in integrating into your projects, requiring minimal code to produce or decipher barcodes and QR codes. This makes IronBarcode a versatile choice for enhancing applications with both barcode generation and barcode reading functionality, from web applications using Razor pages to desktop and mobile applications. Its broad range of supported barcode formats ensures that it can meet diverse project requirements, including those for .NET MVC, Blazor WebAssembly app, and Blazor App, making it a reliable choice for developers.

Steps to Create a Barcode Generator

Step 1: Create ASP.NET Core Web App (Razor Pages)

Creating an ASP.NET Core Web App with Razor Pages in Visual Studio is straightforward. This guide will help you set up your project from scratch:

  1. Open Visual Studio: Start Visual Studio. On the start window, select "Create a new project" to begin the process of setting up your new web application.
  2. Choose Project Type: In the "Create a new project" window, select "ASP.NET Core Web App" from the list of project templates. Then, click "Next" to proceed.

Creating a new Razor project

  1. Configure Your Project: You'll now be prompted to configure your new project.
    • Enter a "Project Name" for your web application.
    • Choose a suitable "Location" on your computer where the project files will be stored.
    • Optionally, adjust the "Solution name".
    • Click "Next" to continue.

Configuring the project name, solution name, and file path

  1. Set Up Project Details: In the "Additional Information" window, make sure to:
    • Select the appropriate version of .NET.
    • Verify that "Configure for HTTPS" is checked.
    • Click "Create" to initiate the creation of your new Razor Pages web application.

Setting additional information

Step 2: Install the IronBarcode Library

To install IronBarcode using the NuGet Package Manager in Visual Studio:

  1. Access the NuGet Package Manager: Right-click on your project name in the Solution Explorer pane. Select "Manage NuGet Packages…" to open the NuGet Package Manager tab.
  2. Search for IronBarcode: In the "Browse" tab, type "IronBarcode" to find the library.
  3. Install IronBarcode: Select "IronBarCode" and click "Install". Review any dependencies and license agreements, then accept to proceed.

Installing IronBarcode through the NuGet package manager

Step 3: Design the UI

Enhance the Index page by editing the index.cshtml file. Apply custom styling:

<style>
    body {
        font-family: 'Poppins', sans-serif;
    }
    /* More CSS styles omitted for brevity */
</style>
<style>
    body {
        font-family: 'Poppins', sans-serif;
    }
    /* More CSS styles omitted for brevity */
</style>
HTML

Adding a Welcome Message:

<h1 class="text-center mb-4" style="color:#004b9b">Welcome to Barcode Generator</h1>
<div class="svg-container text-center">
    <img src="~/images/logo.svg" class="barcode-logo" alt="Barcode" />
</div>
<h1 class="text-center mb-4" style="color:#004b9b">Welcome to Barcode Generator</h1>
<div class="svg-container text-center">
    <img src="~/images/logo.svg" class="barcode-logo" alt="Barcode" />
</div>
HTML

Structuring the Main Content:

<div class="container">
    <div class="row justify-content-center">
        <!-- Form and Image Column will go here -->
    </div>
</div>
<div class="container">
    <div class="row justify-content-center">
        <!-- Form and Image Column will go here -->
    </div>
</div>
HTML

Design Input Form:

Include the form to collect user input for barcode generation:

<div class="col-md-6 divider col-padding">
    <form method="post" enctype="multipart/form-data">
        <!-- Form elements omitted for brevity -->
        <button type="submit" asp-page-handler="Upload" class="btn btn-primary btn-block">Generate Barcode</button>
    </form>
    <div id="messageContainer">
        <span id="message" style="color:green;">@Html.Raw(Model.Message)</span>
    </div>
</div>
<div class="col-md-6 divider col-padding">
    <form method="post" enctype="multipart/form-data">
        <!-- Form elements omitted for brevity -->
        <button type="submit" asp-page-handler="Upload" class="btn btn-primary btn-block">Generate Barcode</button>
    </form>
    <div id="messageContainer">
        <span id="message" style="color:green;">@Html.Raw(Model.Message)</span>
    </div>
</div>
HTML

Image Column:

For displaying and downloading the generated barcode:

<div class="col-md-6 image-padding">
    <div id="imageContainer">
        <!-- Image and download button elements omitted for brevity -->
    </div>
</div>
<div class="col-md-6 image-padding">
    <div id="imageContainer">
        <!-- Image and download button elements omitted for brevity -->
    </div>
</div>
HTML

Scripts:

Add functionality to handle input and download actions using jQuery:

@section Scripts {
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script>
        $(document).ready(function () {
            // jQuery code omitted for brevity
        });
    </script>
}
@section Scripts {
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script>
        $(document).ready(function () {
            // jQuery code omitted for brevity
        });
    </script>
}
JAVASCRIPT

Step 4: Writing Functional Code

Define Color:

At the top of your index.cshtml file, add:

using Color = IronSoftware.Drawing.Color;
using Color = IronSoftware.Drawing.Color;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Barcode Colors Enum:

Define available colors for barcodes:

public enum BarcodeColors
{
    AliceBlue,
    AntiqueWhite,
    Aqua,
    Aquamarine,
    Azure,
    Beige,
    Bisque
    // And others...
}
public enum BarcodeColors
{
    AliceBlue,
    AntiqueWhite,
    Aqua,
    Aquamarine,
    Azure,
    Beige,
    Bisque
    // And others...
}
Public Enum BarcodeColors
	AliceBlue
	AntiqueWhite
	Aqua
	Aquamarine
	Azure
	Beige
	Bisque
	' And others...
End Enum
$vbLabelText   $csharpLabel

Barcode Types Enum:

Define available types of barcodes:

public enum BarcodeTypes
{
    Aztec,
    Codabar,
    // Other barcode types...
}
public enum BarcodeTypes
{
    Aztec,
    Codabar,
    // Other barcode types...
}
Public Enum BarcodeTypes
	Aztec
	Codabar
	' Other barcode types...
End Enum
$vbLabelText   $csharpLabel

Helper Functions:

Convert enums to color and barcode encoding:

private Color EnumToColor(BarcodeColors colorEnum) { /* Conversion logic */ }
private BarcodeWriterEncoding GetBarcodeEncoding(BarcodeTypes barcodeType) { /* Encoding logic */ }
private Color EnumToColor(BarcodeColors colorEnum) { /* Conversion logic */ }
private BarcodeWriterEncoding GetBarcodeEncoding(BarcodeTypes barcodeType) { /* Encoding logic */ }
Private Function EnumToColor(ByVal colorEnum As BarcodeColors) As Color
End Function
Private Function GetBarcodeEncoding(ByVal barcodeType As BarcodeTypes) As BarcodeWriterEncoding
End Function
$vbLabelText   $csharpLabel

OnPostUpload Function:

Handle form submission for barcode generation:

public JsonResult OnPostUpload(string barcodeText, string barcodeType, int? maxWidth, int? maxHeight, string barcodeColor)
{
    // Function logic...
}
public JsonResult OnPostUpload(string barcodeText, string barcodeType, int? maxWidth, int? maxHeight, string barcodeColor)
{
    // Function logic...
}
Public Function OnPostUpload(ByVal barcodeText As String, ByVal barcodeType As String, ByVal maxWidth? As Integer, ByVal maxHeight? As Integer, ByVal barcodeColor As String) As JsonResult
	' Function logic...
End Function
$vbLabelText   $csharpLabel

Layout Editing:

Edit \_Layout.cshtml for a minimalist design:

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Head contents omitted for brevity -->
</head>
<body>
    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>
    <!-- Scripts inclusion omitted for brevity -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Head contents omitted for brevity -->
</head>
<body>
    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>
    <!-- Scripts inclusion omitted for brevity -->
</body>
</html>
HTML

Run Application

Run your application by pressing F5 or Ctrl + F5. Follow the instructions onscreen to input data, choose a barcode type, set dimensions, and generate a barcode.

Outputted web application

Conclusion

The barcode generator web application offers an easy way to create custom barcodes. You can input data, select a barcode type, set dimensions, and choose a color before generating a barcode. IronBarcode powers this application with a free trial, and licenses start at $749.

For generating QR Code images, consider using IronQR.

Frequently Asked Questions

How can I integrate barcode generation into an ASP.NET Core Web App?

You can integrate barcode generation by using IronBarcode in your ASP.NET Core Web App. Install the IronBarcode library via the NuGet Package Manager and then utilize its methods to generate and read barcodes and QR codes within your application.

What steps are involved in setting up a Razor Pages project for barcode generation?

To set up a Razor Pages project for barcode generation, start by creating a new ASP.NET Core Web App in Visual Studio, install IronBarcode through the NuGet Package Manager, customize your user interface using HTML, CSS, and jQuery, and implement the necessary C# code for barcode functionality.

How do I install IronBarcode using NuGet Package Manager?

To install IronBarcode, right-click on your project in Visual Studio's Solution Explorer, select 'Manage NuGet Packages...', search for 'IronBarcode', and click 'Install'. This will add the library to your project, allowing you to use its barcode generation features.

What are the benefits of using IronBarcode for barcode generation?

IronBarcode offers a robust solution for generating and reading a wide range of barcode formats. It simplifies the process for .NET developers by providing easy-to-use methods and supports integration in various project types like .NET MVC, Blazor WebAssembly, and Blazor App projects.

How can I customize barcode appearance using IronBarcode?

You can customize barcode appearance using IronBarcode by defining enums for barcode colors and types. This allows you to select different colors and barcode formats, tailoring the generated barcodes to meet specific design requirements.

What is the purpose of the OnPostUpload function in the barcode generation process?

The OnPostUpload function processes the user's input for barcode generation. It captures details such as the barcode text, type, dimensions, and color, and utilizes IronBarcode's methods to create the barcode based on these parameters.

Can I use IronBarcode in Blazor applications?

Yes, IronBarcode can be used in Blazor applications. It supports integration with Blazor WebAssembly and Blazor Server projects, offering flexibility for developers working on modern web applications.

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 ...Read More