Jak dynamicznie generować i wyświetlać kod kreskowy w ASP.NET MVC
ASP.NET MVC to popularny framework do tworzenia stron internetowych, który pozwala programistom budować solidne i dynamiczne aplikacje internetowe. Częstym wymaganiem w aplikacjach internetowych jest możliwość generowania i wyświetlania obrazów BarCode. Obrazy BarCode służą do przedstawiania danych w formacie nadającym się do odczytu maszynowego i mogą być odczytywane przez skaner BarCode.
Dynamiczne generowanie i wyświetlanie obrazów kodów kreskowych w ASP.NET MVC można osiągnąć za pomocą wiodącej na rynku biblioteki C#, IronBarcode. Biblioteka ta udostępnia interfejsy API, które umożliwiają programistom łatwe generowanie obrazów BARCODE na różnych platformach w różnych formatach, takich jak Code 39, Code 128 i QR Code. Nie opierając się na System.Drawing.Common i .NET Graphics API, które od wersji .NET 6 są specyficzne dla systemu Windows, IronBarcode umożliwia funkcjonalność międzyplatformową i zapewnia większą kompatybilność źródłową.
IronBarcode
Biblioteka IronBarcode to popularna biblioteka kodów kreskowych .NET, która zapewnia szeroki zakres funkcji do tworzenia, odczytu i manipulowania obrazami kodów kreskowych w aplikacjach .NET. Biblioteka jest tworzona i utrzymywana przez Iron Software, firmę zajmującą się tworzeniem oprogramowania, która specjalizuje się w komponentach i bibliotekach .NET. IronBarcode obsługuje szeroki zakres formatów kodów kreskowych, w tym Code 128, Code 39, QR Code, Data Matrix i PDF417. Biblioteka IronBarcode oferuje również funkcje generowania kodów kreskowych o niestandardowych wymiarach, kolorach i czcionkach oraz dodawania tekstu i logo do obrazów kodów kreskowych.
Oprócz generowania kodów kreskowych, IronBarcode zawiera również funkcje odczytu i dekodowania obrazów kodów kreskowych. Biblioteka może odczytywać i dekodować BARCODES z obrazów, dokumentów PDF oraz obrazów z kamer na żywo. Obsługuje zarówno formaty kodów kreskowych 1D, jak i 2D, a nawet potrafi rozpoznać kody kreskowe, które są częściowo zasłonięte lub uszkodzone.
Wymagania wstępne
Przed rozpoczęciem pracy z IronBarcode w aplikacji .NET należy spełnić kilka warunków wstępnych.
- .NET Framework lub .NET Core: IronBarcode jest zaprojektowany do pracy zarówno z .NET Framework, jak i .NET Core. Upewnij się, że w Twoim środowisku programistycznym zainstalowana jest odpowiednia wersja .NET.
- Visual Studio: IronBarcode można zintegrować z Visual Studio w celu ułatwienia tworzenia oprogramowania i testowania. Można korzystać z wersji Visual Studio Community, Professional lub Enterprise. Można je pobrać ze strony internetowej Visual Studio.
-
Biblioteka IronBarcode: Pobierz i zainstaluj bibliotekę IronBarcode ze strony internetowej Iron Software lub za pośrednictwem menedżera pakietów NuGet. Bibliotekę można zainstalować za pomocą konsoli NuGet Package Manager Console, uruchamiając następujące polecenie:
Install-Package BarCode.IronBarcode jest bezpłatny do celów programistycznych, ale wymaga licencji do użytku komercyjnego i wdrożeniowego. Możesz skorzystać z bezpłatnej wersji próbnej, aby przetestować wszystkie jej funkcje.
Tworzenie nowego projektu ASP.NET MVC
Otwórz program Visual Studio i kliknij opcję Utwórz nowy projekt.

W nowym oknie znajdź i wybierz "ASP.NET MVC (Web App) Model View Controller", a następnie kliknij przycisk Dalej.

Wpisz nazwę nowego projektu i jego lokalizację, a następnie kliknij Dalej.

Wybierz wersję .NET, której chcesz użyć, pozostaw pozostałe opcje bez zmian i kliknij Utwórz.

Tworzony jest projekt .NET.

Zainstaluj IronBarcode
1. Korzystanie z menedżera pakietów NuGet
Ta opcja jest dostępna w programie Visual Studio i spowoduje zainstalowanie pakietu IronBarcode bezpośrednio w Twoim rozwiązaniu. Przejdź do narzędzi i kliknij NuGet Package Manager, jak pokazano na ilustracji.

Wyszukaj bibliotekę IronBarcode, korzystając z pola wyszukiwania w menedżerze pakietów NuGet. Wybierz opcję IronBarcode z listy dostępnych pakietów.

2. Korzystanie z wiersza poleceń programu Visual Studio
W menu Visual Studio przejdź do Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.

Wprowadź następujący wiersz w zakładce konsoli menedżera pakietów: Install-Package BarCode.
Pakiet zostanie pobrany/zainstalowany w bieżącym projekcie i będzie gotowy do użycia.

Generowanie i wyświetlanie obrazów kodów kreskowych za pomocą IronBarcode
Teraz, gdy nasze środowisko jest już skonfigurowane, możemy przejść do pisania kodu, który pozwoli nam dynamicznie generować obraz BARCODE w ASP.NET MVC.
Najpierw utwórz klasę w folderze model o nazwie 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
Utwórz folder o nazwie "GeneratedBARCODE" w folderze wwwroot, aby przechowywać wygenerowane obrazy BARCODE.

Dodaj następującą metodę akcji w klasie HomeController.cs w folderze "controllers".
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
Metoda akcji w powyższym kodzie będzie obsługiwać żądanie wysłania wygenerowane z widoku, który stworzymy później. Dzięki IronBarcode można dostosować format BarCode, element obrazu, czcionkę BarCode oraz element obrazu HTML. W celu większej personalizacji mogą być wymagańe dodatkowe biblioteki, takie jak Iron Drawing do instalacji czcionki BarCode. Bardziej szczegółową dokumentację API można znaleźć tutaj.
Teraz możemy utworzyć widok dla naszej metody generatora kodów kreskowych BarCode.
W pliku HomeController.cs kliknij prawym przyciskiem myszy metodę CreateBarcode i wybierz opcję Dodaj widok.

Wybierz Razor View i kliknij Dodaj.

Wybierz parametry zgodnie z poniższym obrazkiem i kliknij Dodaj. Automatycznie doda widok dla tej metody.

Możesz zmodyfikować wygenerowany kod, aby dostosować interfejs do swoich potrzeb.
@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");}
}
Teraz wszystko jest gotowe, wystarczy otworzyć plik _Layout.cshtml i dodać kod, aby dodać opcję CreateBarcode w navbar.
<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>
Teraz uruchom aplikację, wpisz tekst w polu tekstowym i kliknij przycisk Generuj BARCODE, a aplikacja dynamicznie utworzy i wyświetli obraz BARCODE.
5.1. Wynik

6. Podsumowanie
Dynamiczne generowanie i wyświetlanie obrazów kodów kreskowych w aplikacjach ASP.NET MVC można osiągnąć za pomocą biblioteki IronBarcode — potężnej biblioteki kodów kreskowych .NET, która zapewnia szeroki zakres funkcji do tworzenia, odczytu i manipulowania obrazami kodów kreskowych w aplikacjach .NET. Spełniając wymagania wstępne, takie jak instalacja .NET Framework, programu Visual Studio oraz biblioteki IronBarcode, programiści mogą z łatwością tworzyć projekty ASP.NET MVC oraz generować i wyświetlać obrazy kodów kreskowych w różnych formatach, takich jak Code 39, Code 128 i QR Code. Biblioteka IronBarcode zapewnia programistom funkcje generowania kodów kreskowych o niestandardowych wymiarach, kolorach i czcionkach oraz dodawania tekstu i logo do obrazów kodów kreskowych. Oprócz generowania kodów kreskowych, IronBarcode zawiera również funkcje odczytu i dekodowania obrazów kodów kreskowych. Dzięki IronBarcode programiści mogą z łatwością tworzyć wydajne i dynamiczne aplikacje internetowe, które spełniają ich potrzeby biznesowe. Aby zapoznać się z powiązanym samouczkiem na ten temat, odwiedź poniższy link. Aby zapoznać się z samouczkiem krok po kroku dotyczącym generowania kodów BARCODE i kodów QR, proszę przejść do poniższego linku.
Często Zadawane Pytania
Jak dynamicznie generować obrazy BARCODE w ASP.NET MVC?
Możesz użyć biblioteki IronBarcode do dynamicznego generowania obrazów kodów kreskowych w ASP.NET MVC poprzez zintegrowanie jej API z Twoim projektem. Ta biblioteka C# obsługuje różne formaty kodów kreskowych i pozwala na dostosowanie wymiarów, kolorów i tekstu.
Jakie są zalety korzystania z IronBarcode w aplikacjach ASP.NET MVC?
IronBarcode zapewnia funkcjonalność wieloplatformową bez konieczności korzystania z interfejsów API .NET Graphics specyficznych dla systemu Windows. Obsługuje wiele formatów kodów kreskowych, oferuje opcje dostosowywania oraz umożliwia odczytywanie i dekodowanie kodów kreskowych z obrazów, plików PDF i obrazu na żywo z kamery.
Jak zintegrować IronBarcode z projektem ASP.NET MVC?
Aby zintegrować IronBarcode z projektem ASP.NET MVC, należy zainstalować bibliotekę IronBarcode za pomocą menedżera pakietów NuGet w Visual Studio, skonfigurować model danych kodów kreskowych, utworzyć kontroler do obsługi generowania kodów kreskowych oraz zaprojektować widok do interakcji z użytkownikiem i wyświetlania kodów kreskowych.
Jakie formaty kodów kreskowych są obsługiwane podczas generowania w ASP.NET MVC przy użyciu IronBarcode?
IronBarcode obsługuje generowanie szerokiej gamy formatów kodów kreskowych w ASP.NET MVC, w tym Code 39, Code 128, QR Code, Data Matrix i PDF417.
Czy mogę dostosować wygląd obrazów kodów kreskowych generowanych za pomocą IronBarcode?
Tak, IronBarcode umożliwia dostosowywanie obrazów kodów kreskowych, w tym zmianę formatu, kolorów, wymiarów i czcionek, a także dodawanie tekstu lub logo do kodu kreskowego.
Jak rozwiązywać problemy związane z generowaniem kodów kreskowych w ASP.NET MVC?
Jeśli napotkasz problemy podczas generowania kodów kreskowych w ASP.NET MVC, upewnij się, że biblioteka IronBarcode jest poprawnie zainstalowana, wszystkie zależności są spełnione, a model danych kodów kreskowych i konfiguracja kontrolera są poprawnie zaimplementowane. Dodatkowe wskazówki znajdziesz w dokumentacji IronBarcode.
Czy możliwe jest dekodowanie kodów kreskowych w aplikacji ASP.NET MVC przy użyciu IronBarcode?
Tak, IronBarcode zawiera funkcję dekodowania kodów kreskowych z różnych źródeł, takich jak obrazy, dokumenty PDF i obraz na żywo z kamery, nawet jeśli są one częściowo uszkodzone.
Jakie są wymagania wstępne dotyczące konfiguracji projektu ASP.NET MVC z wykorzystaniem IronBarcode?
Konieczne jest zainstalowanie platformy .NET Framework lub .NET Core, programu Visual Studio oraz biblioteki IronBarcode, którą można pobrać ze strony internetowej Iron Software lub zainstalować za pomocą menedżera pakietów NuGet.




