跳過到頁腳內容
使用IRONBARCODE

如何在ASP.NET MVC中動態生成和顯示條碼

ASP.NET MVC 是一種流行的 Web 開發框架,允許開發人員構建穩健且動態的 Web 應用程式。 Web 應用程式中的常見需求是能夠生成和顯示條碼圖像。 條碼圖像用於以機器可讀格式表示數據,可以通過條碼掃描器讀取。

在 ASP.NET MVC 中動態生成和顯示條碼圖像可以使用市場領先的 C# 庫 IronBarcode 實現。 該庫提供 API,使開發人員能夠輕鬆在各平台生成各種格式的條碼圖像,例如 Code 39、Code 128 和 QR Code。 不依賴於從 .NET 6 開始 Windows 特定的 System.Drawing.Common 和 .NET Graphics API,IronBarcode 允許跨平台功能,並允許更多的源代碼兼容性。

IronBarcode

IronBarcode 是一個流行的 .NET 條碼庫,為在 .NET 應用程式中創建、讀取和操作條碼圖像提供了廣泛的功能。 該庫由 Iron Software 開發和維護,Iron Software 是一家專門從事 .NET 元件和庫的軟體開發公司。 IronBarcode 支援範圍廣泛的條碼格式,包括 Code 128、Code 39、QR Code、Data Matrix 和 PDF417。該庫還具有根據自定義尺寸、顏色和字體生成條碼,以及在條碼圖像中添加文字和徽標的功能。

除了條碼生成外,IronBarcode 還包括讀取和解碼條碼圖像的功能。 該庫可以從圖像、PDF 文件和實時相機源中讀取和解碼條碼。 它支持 1D 和 2D 條碼格式,甚至可以識別部分遮蔽或損壞的條碼。

必要條件

在 .NET 應用程式中使用 IronBarcode 之前,需要滿足一些前提條件。

  1. .NET Framework 或 .NET Core: IronBarcode 設計用於與 .NET Framework 和 .NET Core 一起工作。 確保您的開發環境安裝了合適的 .NET 版本。
  2. Visual Studio: IronBarcode 可以與 Visual Studio 集成,以便於開發和測試。 可以使用 Visual Studio Community、Professional 或 Enterprise 版本。 可以從 Visual Studio 網站下載。
  3. IronBarcode 庫:Iron Software 網站或通過 NuGet 包管理器下載並安裝 IronBarcode 庫。 可以使用 NuGet 包管理器控制台通過運行以下命令來安裝該庫:Install-Package BarCode

    IronBarcode 為開發免費使用,但必須許可 用於商業和部署目的。 您可以嘗試免費試用以測試所有功能。

創建新的 ASP.NET MVC 專案

打開 Visual Studio 並單擊創建新專案。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 1

在新窗口中,找到並選擇“ASP.NET MVC (Web App) Model View Controller”,然後單擊下一步按鈕。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 2

輸入新專案的名稱及其位置,然後單擊下一步。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 3

選擇您要使用的 .NET 版本,然後保持其他選項不變,然後單擊創建。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 4

創建了一個 .NET 專案。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 5

安裝 IronBarcode

1. 使用 NuGet 包管理器

此選項可在 Visual Studio 中使用,將直接將 IronBarcode 包安裝到您的解決方案中。 轉到工具並單擊 NuGet 包管理器,如圖所示。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 6

使用 NuGet 包管理器中的搜索框搜索 IronBarcode 庫。 從可用包列表中選擇 IronBarcode 選項。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 7

2. 使用 Visual Studio 命令行

在 Visual Studio 菜單中,轉到工具 > NuGet 包管理器 > 包管理器控制台。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 8

在包管理器控制台標籤中輸入以下行:Install-Package BarCode

包將下載/安裝到當前專案中,並準備使用。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 9

使用 IronBarcode 生成和顯示條碼圖像

現在我們的環境已設置好,我們可以開始撰寫代碼以在 ASP.NET MVC 中動態生成條碼圖像。

首先,在 model 文件夾下創建一個名為 GenerateBarcodeModel.cs 的類。

using System.ComponentModel.DataAnnotations;

namespace GenerateBarcodeMVCCore6_Demo.Models
{
    public class GenerateBarcodeModel
    {
        [Display(Name = "Enter Barcode Text")]
        public string Barcode { get; set; }
    }
}
using System.ComponentModel.DataAnnotations;

namespace GenerateBarcodeMVCCore6_Demo.Models
{
    public class GenerateBarcodeModel
    {
        [Display(Name = "Enter Barcode Text")]
        public string Barcode { get; set; }
    }
}
Imports System.ComponentModel.DataAnnotations

Namespace GenerateBarcodeMVCCore6_Demo.Models
	Public Class GenerateBarcodeModel
		<Display(Name := "Enter Barcode Text")>
		Public Property Barcode() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

wwwroot 文件夾下創建一個名為“GeneratedBarcode”的文件夾以存儲生成的條碼圖像。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 10

在“controllers”文件夾的 HomeController.cs 類中添加以下操作方法。

using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System;
using System.Drawing;
using System.IO;

namespace YourNamespace.Controllers
{
    public class HomeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public HomeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult CreateBarcode()
        {
            return View();
        }

        // Handling POST operation inside this Action method
        [HttpPost]
        public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
        {
            try
            {
                // Create a barcode using the input text
                GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

                // Adding annotation text to barcode
                barcode.AddBarcodeValueTextBelowBarcode();

                // Styling the Barcode
                barcode.ResizeTo(400, 120);
                barcode.ChangeBarCodeColor(Color.Red);
                barcode.SetMargins(10);

                // Define path to save the barcode image
                string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                // Save the generated barcode as a PNG file
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");
                barcode.SaveAsPng(filePath);

                // Get the file name and URL for the generated barcode image
                string fileName = Path.GetFileName(filePath);
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedBarcode/{fileName}";
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System;
using System.Drawing;
using System.IO;

namespace YourNamespace.Controllers
{
    public class HomeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public HomeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult CreateBarcode()
        {
            return View();
        }

        // Handling POST operation inside this Action method
        [HttpPost]
        public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
        {
            try
            {
                // Create a barcode using the input text
                GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

                // Adding annotation text to barcode
                barcode.AddBarcodeValueTextBelowBarcode();

                // Styling the Barcode
                barcode.ResizeTo(400, 120);
                barcode.ChangeBarCodeColor(Color.Red);
                barcode.SetMargins(10);

                // Define path to save the barcode image
                string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                // Save the generated barcode as a PNG file
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");
                barcode.SaveAsPng(filePath);

                // Get the file name and URL for the generated barcode image
                string fileName = Path.GetFileName(filePath);
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedBarcode/{fileName}";
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.IO

Namespace YourNamespace.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment

		Public Sub New(ByVal environment As IWebHostEnvironment)
			_environment = environment
		End Sub

		Public Function CreateBarcode() As IActionResult
			Return View()
		End Function

		' Handling POST operation inside this Action method
		<HttpPost>
		Public Function CreateBarcode(ByVal generateBarcode As GenerateBarcodeModel) As IActionResult
			Try
				' Create a barcode using the input text
				Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128)

				' Adding annotation text to barcode
				barcode.AddBarcodeValueTextBelowBarcode()

				' Styling the Barcode
				barcode.ResizeTo(400, 120)
				barcode.ChangeBarCodeColor(Color.Red)
				barcode.SetMargins(10)

				' Define path to save the barcode image
				Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode")
				If Not Directory.Exists(path) Then
					Directory.CreateDirectory(path)
				End If

				' Save the generated barcode as a PNG file
				Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png")
				barcode.SaveAsPng(filePath)

				' Get the file name and URL for the generated barcode image
				Dim fileName As String = System.IO.Path.GetFileName(filePath)
				Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}/GeneratedBarcode/{fileName}"
				ViewBag.QrCodeUri = imageUrl
			Catch e1 As Exception
				Throw
			End Try
			Return View()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

上面代碼中的操作方法將處理我們稍後創建的視圖生成的提交請求。 使用 IronBarcode,您可以自定義條碼格式、圖像元素、條碼字體和 HTML 圖像元素。 可能需要額外的庫來進行更多自定義,例如 Iron Drawing 用於安裝條碼字體。 更多詳細的 API 文檔可以在這裡找到。

現在我們可以為條碼生成器方法創建一個視圖。

HomeController.cs 文件中,右鍵單擊 CreateBarcode 方法並單擊添加視圖。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 11

選擇 Razor 視圖並單擊添加。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 12

選擇如下圖所示的參數並單擊添加。 它將自動為該方法添加視圖。

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 13

您可以修改生成的代碼來更改界面。

@model GenerateBarcodeMVCCore6_Demo.Models.GenerateBarcodeModel

@{
    ViewData["Title"] = "CreateBarcode";
}

<h1>CreateBarcode</h1>

<form asp-action="CreateBarcode" method="post">
    <div>
        <label asp-for="Barcode"></label>
        <input asp-for="Barcode" />
        <span asp-validation-for="Barcode"></span>
    </div>
    <button type="submit">Generate Barcode</button>
</form>

@if (ViewBag.QrCodeUri != null)
{
    <div>
        <img src="@ViewBag.QrCodeUri" alt="Barcode Image" />
    </div>
}

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

現在一切設置完成,只需打開 _Layout.cshtml 文件並添加代碼以在 navbar 中添加 CreateBarcode 選項。

<li class="nav-item">
    <a class="nav-link text-dark" asp-controller="Home" asp-action="CreateBarcode">CreateBarcode</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-controller="Home" asp-action="CreateBarcode">CreateBarcode</a>
</li>
HTML

現在運行應用程式,在文本字段中寫入文本,然後單擊生成條碼按鈕,它將動態創建並顯示條碼圖像。

5.1. 輸出

如何在 ASP.NET MVC 中動態生成和顯示條碼:圖 14

6. 結論

在 ASP.NET MVC 應用程式中動態生成和顯示條碼圖像可以通過 IronBarcode 庫實現 - 一個強大的 .NET 條碼庫,為在 .NET 應用程式中創建、讀取和操作條碼圖像提供了廣泛的功能。 通過滿足安裝 .NET framework、Visual Studio 和 IronBarcode 庫的必要條件,開發人員可以輕鬆地創建 ASP.NET MVC 專案,並生成和顯示各種格式的條碼圖像,例如 Code 39、Code 128 和 QR Code。 IronBarcode 庫為開發人員提供了生成自定義尺寸、顏色和字體的條碼,以及在條碼圖像中添加文字和徽標的功能。 除了條碼生成外,IronBarcode 還包括讀取和解碼條碼圖像的功能。 使用 IronBarcode,開發人員可以輕鬆創建滿足其業務需求的強大且動態的 Web 應用程式。 有關此主題的相關教程,請訪問以下鏈接。 關於條碼和 QR 碼生成的分步教程,請參閱以下鏈接

常見問題解答

如何在 ASP.NET MVC 中動態生成條碼圖像?

您可以使用 IronBarcode 庫在 ASP.NET MVC 中動態生成條碼圖像,通過將其 API 集成到您的專案中。這個 C# 庫支持多種條碼格式,並允許在尺寸、顏色和文字方面進行自定義。

在 ASP.NET MVC 應用程序中使用 IronBarcode 的好處是什麼?

IronBarcode 提供跨平台功能,無需依賴於 Windows 特定的 .NET Graphics API。它支持多種條碼格式,提供自定義選項,並可以從圖像、PDF 和實時攝像頭饋送中讀取和解碼條碼。

如何在 ASP.NET MVC 專案中集成 IronBarcode?

要在 ASP.NET MVC 專案中集成 IronBarcode,您需要使用 Visual Studio 中的 NuGet 套件管理器安裝庫,為條碼數據設置模型,創建控制器以處理條碼生成,並設計一個視圖來進行用戶交互和條碼顯示。

在 ASP.NET MVC 中使用 IronBarcode 生成支持哪些條碼格式?

IronBarcode 支持在 ASP.NET MVC 中生成多種條碼格式,包括 Code 39、Code 128、QR Code、Data Matrix 和 PDF417。

我可以自定義使用 IronBarcode 生成的條碼圖像的外觀嗎?

可以,IronBarcode 允許自定義條碼圖像,包括調整條碼格式、顏色、尺寸、字體,並添加文字或標誌到條碼中。

在 ASP.NET MVC 中生成條碼時如何排除故障?

如果在 ASP.NET MVC 中生成條碼時遇到問題,請確保正確安裝了 IronBarcode 庫,滿足所有依賴項,並正確實施條碼數據模型和控制器設置。請參考 IronBarcode 的文檔以獲取更多指導。

是否可以使用 IronBarcode 在 ASP.NET MVC 應用程序中解碼條碼?

可以,IronBarcode 包含從多個來源(如圖像、PDF 文檔和實時攝像頭饋送)解碼條碼的功能,即使它們部分損壞。

使用 IronBarcode 設置 ASP.NET MVC 專案的先決條件是什麼?

您需要安裝 .NET Framework 或 .NET Core、Visual Studio 以及可以從 Iron Software 網站下載或通過 NuGet 套件管理器安裝的 IronBarcode 庫。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。