ASP .NET MVC 5 - Gerando Código de Barras
Neste artigo veremos como gerar código de barras dinamicamente em aplicações ASP .NET MVC 5 usando a API .NET Graphics e BarCode Font. |
Para poder gerar código de barras de forma dinâmica em uma aplicação ASP .NET MVC 5 vamos precisar do BarCode Font.
Baixe e instale o pacote BarCode Font neste link : Download Barcode Font
Após fazer o download, instale no seu computador local as fontes que iremos usar no código de barras
Após isso podemos iniciar o desenvolvimento da aplicação ASP .NET MVC 5.
Recursos usados :
Criando o projeto ASP .NET MVC
Abra o VS 2017 Community e clique em New Project;
A seguir selecione Visual C# -> Web -> ASP .NET Web Application (.NET Framework) e Informe o nome Mvc_BarCode e clique no botão OK;
A seguir selecione o template MVC e clique no botão OK;
Será criado um projeto contendo toda a estrutura de pastas criadas pelo framework ASP .NET MVC.
Definindo o código do método Index(POST) no Controlador HomeController
Vamos aproveitar o controlador HomeController criado por padrão na pasta Controllers e definir um novo método Action Index para tratar o POST.
Neste método Action o valor do código de barras informado em um TextBox será capturado como um parâmetro, o tamanho do texto será determinado e uma imagem Bitmap será desenhada.
Neste desenho um retângulo branco será desenhado sobre a imagem Bitmap usando um objeto Brush de cor White e o código de barraas será desenhado usando um objeto Brush Black.
A imagem será salva em um MemoryStream e então convertida para uma string Base64 que depois será atribuida a um objeto ViewBag.
[HttpPost]
public ActionResult Index(string barcode)
{
using (MemoryStream ms = new MemoryStream())
{
//A imagem é desenhada baseada no tamanho do texto
using (Bitmap bitMap = new Bitmap(barcode.Length * 40, 80))
{
//O objeto Graphics é gerado para a imagem
using (Graphics graphics = Graphics.FromImage(bitMap))
{
//Usamos a fonte Barcode
Font oFont = new Font("IDAutomationHC39M", 16);
PointF point = new PointF(2f, 2f);
//Um objeto White Brush é usado para preencher a imagem com a cor branca
SolidBrush whiteBrush = new SolidBrush(Color.White);
graphics.FillRectangle(whiteBrush, 0, 0, bitMap.Width, bitMap.Height);
//Um objeto Black Brush é usado para desenhar o codigo de barras
SolidBrush blackBrush = new SolidBrush(Color.Black);
graphics.DrawString("*" + barcode + "*", oFont, blackBrush, point);
}
//O Bitmap é salvo na Memory Stream.
bitMap.Save(ms, ImageFormat.Png);
//A imagem é convertida para uma string Base64
ViewBag.BarcodeImage = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
}
}
return View();
}
|
Criando a View
Vamos agora ajustar a View Index do controlador HomeController.
Nossa View vai possuir um formulário HTML que será criado usando o método Html.BeginForm com os seguintes parâmetros:
ActionName - O nome da Action Index
ControllerName - O nome do Controller Home
FormMethod - Neste exemplo usamos o método POST
Além disso temos um TextBox HTML e um botão Submit e uma elemento Image.
Quando o botão Submit for clicado, o formulário será submetido e a imagem do código de barras será gerada e exibida no elemento Image usando objeto ViewBag.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<input type="text" name="barcode" />
<input type="submit" value="Gerar Código de Barras" />
}
<hr />
@if (ViewBag.BarcodeImage != null)
{
<img src="@ViewBag.BarcodeImage" alt="" />
}
</body>
</html>
|
Executando o projeto iremos obter o seguinte resultado :
Pegue o projeto completo aqui: Mvc_BarCode.zip (sem as referências)
"(Disse Jesus) - Quem ama a sua vida perdê-la-á, e quem neste mundo odeia a sua
vida, guardá-la-á para a vida eterna."
João 12:25
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET MVC 5 - Criando gráficos com o Helper Chart - Macoratti.net
ASP .NET - Criando gráficos dinâmicos com Google ... - Macoratti.net
Gerando Código de Barras com Fontes True Type - Macoratti.net