Gerar e exibir imagem de código de barras no ASP.NET MVC

Um código de barras representa visualmente os dados em um formato legível por máquina. Normalmente, contém dados ou informações sobre um produto ou empresa, codificados na forma de números e/ou um padrão de linhas paralelas. Na ASP.NET MVC, podemos gerar vários tipos de códigos de barras como Data Matrix, Aztec, Code 128, etc. Neste artigo, aprenderemos como gerar e exibir uma imagem de código de barras na aplicação ASP.NET MVC. Após seguir os passos mencionados, teremos nosso próprio Gerador de Código de Barras ASP.NET MVC. Então vamos começar.

O artigo deve abordar os seguintes tópicos:

Recursos do Gerador de Código de Barras ASP.NET MVC

Nosso gerador de código de barras ASP.NET terá os seguintes recursos.

  1. Gere os seguintes tipos de simbologias de código de barras:
    • Código 128
    • Código 11
    • Código 39
    • QR
    • Matriz de dados
    • EAN13
    • EAN8
    • ITF14
    • PDF417
  2. Salve a imagem de código de barras gerada nos seguintes formatos:
    • PNG
    • JPEG
    • BMP
    • EMF
    • SVG
  3. Visualize a imagem de código de barras gerada.
  4. Baixe a imagem do código de barras gerada para o seu disco local.

API .NET para gerar e exibir imagem de código de barras no ASP.NET MVC

Para gerar imagens de código de barras e exibi-las no aplicativo ASP.NET MVC, usaremos a API Aspose.BarCode para .NET. Ele nos permite gerar e reconhecer uma ampla gama de 1D e 2D tipos de código de barras. Por favor, baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.BarCode

Etapas para gerar e exibir imagem de código de barras no ASP.NET MVC

Podemos gerar e exibir uma imagem de código de barras no aplicativo ASP.NET MVC seguindo as etapas abaixo:

  • Em primeiro lugar, crie um novo projeto e selecione o modelo de projeto ASP.NET Web Application (.NET Framework).
Select the project template.

Select the project template.

  • Em seguida, na caixa de diálogo Criar um novo aplicativo da Web ASP.NET, escolha MVC e, em seguida, escolha criar.
Selecione MVC

Selecione MVC

Instale o Aspose.BarCode para .NET

Instale o Aspose.BarCode para .NET

  • Em seguida, crie uma nova pasta “Imagens” para salvar as imagens de código de barras geradas.
Crie a pasta Imagens.

Crie a pasta Imagens.

  • Agora, crie um modelo na pasta “Models” com o nome “Barcode” para armazenar as informações do código de barras.
// Informações básicas do código de barras
public class Barcode
{
    public string Text { get; set; }

    public BarcodeType BarcodeType { get; set; }

    public BarCodeImageFormat ImageType { get; set; }
}
  • Além disso, adicione enumeração para listar as simbologias de código de barras com suporte. Ele pode ser adicionado em uma classe separada na pasta “Models”, ou podemos adicioná-lo no arquivo de classe Barcode.cs.
// Simbologias de código de barras
public enum BarcodeType
{
    Code128,
    Code11,
    Code32,
    QR,
    Datamatrix,
    EAN13,
    EAN8,
    ITF14,
    PDF417
}
  • Da mesma forma, adicione enumeração para listar os formatos de imagem com suporte.
// Formatos de imagem
public enum ImageType
{
    Png,
    Jpeg,
    Bmp,
    Emf,
    Svg
}
  • Em seguida, abra Views/Home/index.cshtml e substitua seu conteúdo pelo script a seguir.
@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>
  • Em seguida, abra a classe “HomeController” e adicione um novo resultado de ação para lidar com a solicitação de postagem.
[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();
}
  • Depois disso, adicione um novo resultado de ação para lidar com a solicitação de download da imagem no “HomeController”.
public ActionResult Download(string ImagePath, string ImageName)
{
    string contentType = "application/img";
    return File(ImagePath, contentType, Path.GetFileName(ImageName));
}
  • Por fim, execute o aplicativo.

Gerador de código de barras ASP.NET MVC de demonstração

A seguir está a demonstração do aplicativo Gerador de Código de Barras ASP.NET MVC que acabamos de criar.

Gerador de código de barras ASP.NET MVC de demonstração

Gerador de código de barras ASP.NET MVC de demonstração

Baixar código fonte

Você pode baixar o código-fonte completo do aplicativo ASP.NET MVC Barcode Generator de GitHub.

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como gerar e exibir uma imagem de código de barras em um aplicativo ASP.NET MVC. Também vimos como baixar a imagem de código de barras gerada programaticamente. Além disso, você pode aprender mais sobre Aspose.BarCode for .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também