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
- API .NET para gerar e exibir imagem de código de barras
- Etapas para gerar e exibir imagem de código de barras
- Gerador de código de barras ASP.NET MVC de demonstração
- Baixar código fonte
Recursos do Gerador de Código de Barras ASP.NET MVC
Nosso gerador de código de barras ASP.NET terá os seguintes recursos.
- 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
- Salve a imagem de código de barras gerada nos seguintes formatos:
- PNG
- JPEG
- BMP
- EMF
- SVG
- Visualize a imagem de código de barras gerada.
- 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).
- Em seguida, na caixa de diálogo Criar um novo aplicativo da Web ASP.NET, escolha MVC e, em seguida, escolha criar.
- Em seguida, abra o Gerenciador de Pacotes NuGet e instale o pacote Aspose.BarCode for .NET.
- Em seguida, crie uma nova pasta “Imagens” para salvar as imagens de código de barras geradas.
- 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.
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.