Створення та відображення зображення штрих-коду в ASP.NET MVC

Штрих-код візуально представляє дані в машиночитаній формі. Зазвичай він містить дані чи інформацію про продукт або компанію, закодовані у вигляді чисел та/або візерунка паралельних ліній. У ASP.NET MVC ми можемо генерувати різні типи штрих-кодів, наприклад Data Matrix, Aztec, Code 128 тощо. У цій статті ми навчимося динамічно генерувати та відображати зображення штрих-кодів у програмі ASP .NET MVC. Після виконання згаданих кроків у нас буде власний генератор штрих-кодів ASP.NET MVC. Тож почнемо.

Стаття повинна охоплювати такі теми:

  1. Функції генератора штрих-кодів ASP.NET MVC
  2. API C# для створення штрих-коду в ASP.NET MVC
  3. Кроки для створення та відображення зображення штрих-коду
  4. Демонстраційний генератор штрих-кодів ASP.NET MVC
  5. Завантажити вихідний код генератора штрих-кодів ASP.NET MVC

Особливості генератора штрих-кодів ASP.NET MVC

Наш генератор штрих-кодів ASP.NET MVC матиме такі функції.

  1. Створіть наступні типи символів штрих-кодів:
    • Код128
    • Код11
    • Код39
    • QR
    • Datamatrix
    • EAN13
    • EAN8
    • ITF14
    • PDF417
  2. Збережіть згенероване зображення штрих-коду в таких форматах:
    • PNG
    • JPEG
    • БМП
    • ЕМП
    • SVG
  3. Перегляньте згенероване зображення штрих-коду.
  4. Завантажте згенероване зображення штрих-коду на локальний диск.

C# API для генерації штрих-коду в ASP.NET MVC

Для створення зображень штрих-кодів і їх відображення в програмі ASP.NET MVC ми будемо використовувати API Aspose.BarCode for .NET. Це дозволяє нам генерувати та розпізнавати широкий діапазон 1D та 2D типів штрих-кодів. Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.BarCode

Як динамічно генерувати та відображати зображення штрих-коду в ASP.NET MVC

Ми можемо створити та відобразити зображення штрих-коду в програмі ASP.NET MVC, виконавши наведені нижче кроки:

  • По-перше, створіть новий проект і виберіть шаблон проекту ASP.NET Web Application (.NET Framework).
Виберіть шаблон проекту.

Виберіть шаблон проекту.

  • Далі в діалоговому вікні «Створити нову веб-програму ASP.NET» виберіть «MVC», а потім виберіть «Створити».
Виберіть MVC

Виберіть MVC

  • Потім відкрийте диспетчер пакетів NuGet і встановіть пакет Aspose.BarCode for .NET.
Встановіть Aspose.BarCode for .NET

Встановіть Aspose.BarCode for .NET

  • Далі створіть нову папку «Зображення», щоб зберегти згенеровані зображення штрих-кодів.
Створіть папку Images.

Створіть папку Images.

  • Тепер створіть модель у папці «Моделі» з назвою «Штрих-код», щоб зберігати інформацію про штрих-код.
// Основна інформація про штрих-код
public class Barcode
{
    public string Text { get; set; }

    public BarcodeType BarcodeType { get; set; }

    public BarCodeImageFormat ImageType { get; set; }
}
  • Крім того, додайте перелік для списку підтримуваних символів штрих-кодів. Його можна додати в окремий клас у папці «Models» або ми можемо додати його у файл класу Barcode.cs.
// Символіка штрих-коду
public enum BarcodeType
{
    Code128,
    Code11,
    Code32,
    QR,
    Datamatrix,
    EAN13,
    EAN8,
    ITF14,
    PDF417
}
  • Подібним чином додайте перелік для списку підтримуваних форматів зображень.
// Формати зображень
public enum ImageType
{
    Png,
    Jpeg,
    Bmp,
    Emf,
    Svg
}
  • Далі відкрийте Views/Home/index.cshtml і замініть його вміст наступним сценарієм.
@using BarcodeGeneratorMVC.Models

@model Barcode

@{
    ViewBag.Title = "Home Page";
}

<div class="row">
    <div class="col-lg-6">
        <h2>Generate Barcode</h2>
        @using (Html.BeginForm())
        {
            <div class="form-group">
                @Html.Label("Select Barcode Type:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.DropDownListFor(model => model.BarcodeType,
         new SelectList(Enum.GetValues(typeof(BarcodeType))),
         "Select Barcode", new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.Label("Enter Your Text:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.EditorFor(m => m.Text, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.Label("Select Image Format:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Png) @Html.Label("PNG")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Jpeg) @Html.Label("JPG")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Bmp) @Html.Label("BMP")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Emf) @Html.Label("EMF")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Svg) @Html.Label("SVG")
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-12">
                    <input type="submit" class="btn btn-default" value="Generate Barcode" />
                </div>
            </div>
        }
    </div>
    <div class="col-lg-6">
        <h2>View Barcode Image</h2>
        @{
            if (!string.IsNullOrEmpty(@ViewBag.ImagePath))
            {
                <div class="form-group">
                    <div class="col-md-12">
                        <img src=@Url.Content(@ViewBag.ImagePath) alt="Barcode Image" />
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-md-12">
                        @Html.ActionLink("Download Image", "Download", "Home", new
                           {                                                     // routeValues
                               ImagePath = @ViewBag.ImagePath,
                               ImageName = @ViewBag.ImageName
                           },
                           null)
                    </div>
                </div>
            }
        }
    </div>
    <hr />
</div>
  • Потім відкрийте клас «HomeController» і додайте новий результат дії для обробки запиту публікації.
[HttpPost]
public ActionResult Index(Barcode barcode)
{
    string codeText = barcode.Text;
    string imageName = barcode.Text + "." + barcode.ImageType;
    string imagePath = "/Images/" + imageName;
    string imageServerPath = Server.MapPath("~" + imagePath);

    var encodeType = EncodeTypes.Code128;

    switch (barcode.BarcodeType)
    {
        case BarcodeType.Code128:
            encodeType = EncodeTypes.Code128;
            break;

        case BarcodeType.ITF14:
            encodeType = EncodeTypes.ITF14;
            break;

        case BarcodeType.EAN13:
            encodeType = EncodeTypes.EAN13;
            break;

        case BarcodeType.Datamatrix:
            encodeType = EncodeTypes.DataMatrix;
            break;

        case BarcodeType.Code32:
            encodeType = EncodeTypes.Code32;
            break;

        case BarcodeType.Code11:
            encodeType = EncodeTypes.Code11;
            break;

        case BarcodeType.PDF417:
            encodeType = EncodeTypes.Pdf417;
            break;

        case BarcodeType.EAN8:
            encodeType = EncodeTypes.EAN8;
            break;

        case BarcodeType.QR:
            encodeType = EncodeTypes.QR;
            break;
    }

    using (Stream str = new FileStream(imageServerPath, FileMode.Create, FileAccess.Write))
    {
        BarcodeGenerator gen = new BarcodeGenerator(encodeType, codeText);
        gen.Save(str, barcode.ImageType);
    }

    ViewBag.ImagePath = imagePath;
    ViewBag.ImageName = imageName;

    return View();
}
  • Після цього додайте новий результат дії для обробки запиту на завантаження зображення в «HomeController».
public ActionResult Download(string ImagePath, string ImageName)
{
    string contentType = "application/img";
    return File(ImagePath, contentType, Path.GetFileName(ImageName));
}
  • Нарешті, запустіть програму.

Демо Генератор штрих-кодів ASP.NET MVC

Нижче наведено демонстрацію програми ASP.NET MVC Barcode Generator, яку ми щойно створили.

Демо Генератор штрих-кодів ASP.NET MVC

Демо Генератор штрих-кодів ASP.NET MVC

Завантажте вихідний код генератора штрих-кодів ASP.NET MVC

Ви можете завантажити повний вихідний код програми ASP.NET MVC Barcode Generator з GitHub.

Отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати бібліотеку без оціночних обмежень.

Висновок

У цій статті ми дізналися, як створити та відобразити зображення штрих-коду в програмі ASP.NET MVC. Ми також бачили, як програмно завантажити згенероване зображення штрих-коду. Крім того, ви можете дізнатися більше про Aspose.BarCode for .NET API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також