Como gerar e exibir códigos de barras dinamicamente em ASP.NET MVC
ASP.NET MVC é um framework de desenvolvimento web popular que permite aos desenvolvedores criar aplicativos web robustos e dinâmicos. Um requisito comum nos aplicativos web é a capacidade de gerar e exibir imagens de código de barras. Imagens de código de barras são usadas para representar dados em um formato legível por máquinas e podem ser lidas por um scanner de código de barras.
A geração e exibição dinâmica de imagens de código de barras em ASP.NET MVC pode ser realizada utilizando a biblioteca C# líder de mercado, IronBarcode. Esta biblioteca fornece APIs que permitem aos desenvolvedores gerar facilmente imagens de código de barras em várias plataformas em vários formatos, como Code 39, Code 128 e QR Code. Sem depender de System.Drawing.Common e da API Gráfica do .NET, que são específicos do Windows a partir do .NET 6, o IronBarcode permite funcionalidades multiplataforma e permite mais compatibilidade de origem.
IronBarcode
IronBarcode é uma biblioteca de código de barras .NET popular que fornece uma ampla gama de recursos para criar, ler e manipular imagens de código de barras em aplicativos .NET. A biblioteca é desenvolvida e mantida pela Iron Software, uma empresa de desenvolvimento de software especializada em componentes e bibliotecas .NET. IronBarcode oferece suporte para uma ampla gama de formatos de código de barras, incluindo Code 128, Code 39, QR Code, Data Matrix e PDF417. A biblioteca também fornece recursos para gerar códigos de barras com dimensões, cores e fontes personalizadas, além de adicionar texto e logotipos às imagens de código de barras.
Além da geração de códigos de barras, o IronBarcode também inclui recursos para ler e decodificar imagens de códigos de barras. A biblioteca pode ler e decodificar códigos de barras de imagens, documentos PDF e transmissões de câmera ao vivo. Ela suporta formatos de código de barras 1D e 2D e consegue até reconhecer códigos de barras que estão parcialmente obscurecidos ou danificados.
Pré-requisitos
Antes de trabalhar com IronBarcode em um aplicativo .NET, existem alguns pré-requisitos que precisam ser atendidos.
- .NET Framework ou .NET Core: IronBarcode é projetado para funcionar tanto com .NET Framework quanto com .NET Core. Certifique-se de que seu ambiente de desenvolvimento tenha a versão adequada do .NET instalada.
- Visual Studio: IronBarcode pode ser integrado com o Visual Studio para desenvolvimento e testes fáceis. As edições Visual Studio Community, Professional ou Enterprise podem ser usadas. Pode ser baixado do site do Visual Studio.
- Biblioteca IronBarcode: Baixe e instale a biblioteca IronBarcode do site da Iron Software ou através do gerenciador de pacotes NuGet. A biblioteca pode ser instalada usando o Console do Gerenciador de Pacotes NuGet, executando o seguinte comando:
Install-Package BarCode.
IronBarcode é gratuito para desenvolvimento, mas deve ser licenciado para fins comerciais e de implantação. Você pode experimentar a versão de teste gratuita para testar todas as suas funcionalidades.
Criando um Novo Projeto ASP.NET MVC
Abra o Visual Studio e clique em Criar um novo projeto.

Na nova janela, encontre e selecione "ASP.NET MVC (Web App) Model View Controller" e clique no botão Avançar.

Digite o nome do novo projeto e sua localização e clique em Avançar.

Selecione a versão do .NET que deseja usar e deixe todas as outras opções como estão e clique em Criar.

Um projeto .NET é criado.

Instalar IronBarcode
1. Usando o Gerenciador de Pacotes NuGet
Esta opção está disponível no Visual Studio e instalará o pacote do IronBarcode diretamente na sua solução. Vá para ferramentas e clique em Gerenciador de Pacotes NuGet como mostrado.

Procure a biblioteca IronBarcode usando a caixa de pesquisa no Gerenciador de Pacotes NuGet. Selecione a opção IronBarcode da lista de pacotes disponíveis.

2. Usando a Linha de Comando do Visual Studio
No menu do Visual Studio, vá para Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes.

Digite a seguinte linha na guia do console do gerenciador de pacotes: Install-Package BarCode.
O pacote será baixado/instalado no projeto atual e estará pronto para uso.

Gerando e Exibindo Imagens de Código de Barras Usando IronBarcode
Agora que nosso ambiente está configurado, podemos começar a escrever o código para gerar dinamicamente uma imagem de código de barras no ASP.NET MVC.
Primeiro, crie uma classe na pasta de modelos chamada 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
Crie uma pasta chamada "GeneratedBarcode" na pasta wwwroot para armazenar as imagens de código de barras geradas.

Adicione o seguinte método de ação na sua classe HomeController.cs na pasta "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
O método de ação no código acima irá lidar com a solicitação de envio gerada pela Visualização que criaremos posteriormente. Com IronBarcode, você pode personalizar o formato do código de barras, elemento da imagem, fonte do código de barras e elemento de imagem HTML. Bibliotecas adicionais podem ser necessárias para mais personalizações, como Iron Drawing para instalação da fonte do código de barras. Documentação API mais detalhada pode ser encontrada aqui.
Agora podemos criar uma visualização para nosso método gerador de código de barras.
No arquivo HomeController.cs, clique com o botão direito no método CreateBarcode e clique em Adicionar Visualização.

Selecione Visualização Razor e clique em adicionar.

Selecione os parâmetros conforme mostrado na imagem abaixo e clique em Adicionar. Ele adicionará automaticamente uma visualização para aquele método.

Você pode modificar o código gerado para alterar a interface como desejar.
@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");}
}
Agora tudo está configurado, basta abrir o arquivo _Layout.cshtml e adicionar o código para adicionar a opção CreateBarcode em 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>
Agora execute o aplicativo, escreva texto no campo de texto e clique no botão Gerar código de barras, e ele irá criar e exibir dinamicamente a imagem do código de barras.
5.1. Saída

6. Conclusão
Gerar e exibir imagens de código de barras dinamicamente em aplicativos ASP.NET MVC pode ser alcançado usando a biblioteca IronBarcode, uma poderosa biblioteca .NET para códigos de barras que fornece uma ampla gama de recursos para criar, ler e manipular imagens de código de barras em aplicativos .NET. Ao satisfazer pré-requisitos como instalar o .NET framework, Visual Studio e a biblioteca IronBarcode, os desenvolvedores podem facilmente criar projetos ASP.NET MVC e gerar e exibir imagens de código de barras em vários formatos como Code 39, Code 128 e QR Code. A biblioteca IronBarcode fornece aos desenvolvedores recursos para gerar códigos de barras com dimensões, cores e fontes personalizadas e para adicionar texto e logotipos às imagens de código de barras. Além da geração de códigos de barras, o IronBarcode também inclui recursos para ler e decodificar imagens de códigos de barras. Com o IronBarcode, os desenvolvedores podem facilmente criar aplicativos web poderosos e dinâmicos que atendem às suas necessidades de negócios. Para um tutorial relacionado a este tópico, visite o seguinte link. Para um tutorial passo a passo sobre geração de código de barras e QR Code, consulte o seguinte link.
Perguntas frequentes
Como posso gerar imagens de código de barras dinamicamente em ASP.NET MVC?
Você pode usar a biblioteca IronBarcode para gerar imagens de código de barras dinamicamente em ASP.NET MVC, integrando sua API ao seu projeto. Essa biblioteca C# suporta diversos formatos de código de barras e permite personalização em termos de dimensões, cores e texto.
Quais são os benefícios de usar o IronBarcode em aplicações ASP.NET MVC?
O IronBarcode oferece funcionalidade multiplataforma sem depender das APIs gráficas .NET específicas do Windows. Ele suporta diversos formatos de código de barras, oferece opções de personalização e pode ler e decodificar códigos de barras a partir de imagens, PDFs e transmissões ao vivo de câmeras.
Como faço para integrar o IronBarcode em um projeto ASP.NET MVC?
Para integrar o IronBarcode em um projeto ASP.NET MVC, você precisa instalar a biblioteca através do Gerenciador de Pacotes NuGet no Visual Studio, configurar um modelo para os dados do código de barras, criar um controlador para lidar com a geração do código de barras e projetar uma visualização para interação do usuário e exibição do código de barras.
Quais formatos de código de barras são suportados para geração em ASP.NET MVC usando o IronBarcode?
O IronBarcode suporta a geração de uma ampla variedade de formatos de código de barras em ASP.NET MVC, incluindo Code 39, Code 128, QR Code, Data Matrix e PDF417.
Posso personalizar a aparência das imagens de código de barras geradas com o IronBarcode?
Sim, o IronBarcode permite a personalização de imagens de código de barras, incluindo o ajuste do formato, cores, dimensões, fontes e a adição de texto ou logotipos ao código de barras.
Como posso solucionar problemas ao gerar códigos de barras em ASP.NET MVC?
Se você encontrar problemas ao gerar códigos de barras no ASP.NET MVC, verifique se a biblioteca IronBarcode está instalada corretamente, se todas as dependências foram atendidas e se o modelo de dados do código de barras e a configuração do controlador estão implementados corretamente. Consulte a documentação do IronBarcode para obter mais orientações.
É possível decodificar códigos de barras em uma aplicação ASP.NET MVC usando o IronBarcode?
Sim, o IronBarcode inclui funcionalidades para decodificar códigos de barras de diversas fontes, como imagens, documentos PDF e transmissões de câmeras ao vivo, mesmo que estejam parcialmente danificados.
Quais são os pré-requisitos para configurar um projeto ASP.NET MVC com o IronBarcode?
Você precisa ter o .NET Framework ou .NET Core instalado, o Visual Studio e a biblioteca IronBarcode, que pode ser baixada do site da Iron Software ou instalada através do Gerenciador de Pacotes NuGet.



