
Como gerar códigos QR em ASP.NET MVC
No panorama digital acelerado de hoje, a geração de QR codes tornou-se uma ferramenta essencial para o compartilhamento eficiente de informações. Esses códigos de barras bidimensionais compactos, capazes de armazenar uma ampla gama de dados, incluindo URLs, texto, informações de contato, detalhes de produtos e muito mais, desempenham um papel crucial na comunicação moderna. Incorporar capacidades de geração de QR code em seu aplicativo ASP.NET MVC permite que você empodere os usuários ao gerar QR codes perfeitamente e melhorar a experiência deles, otimizar interações e facilitar a troca de informações sem esforço.
Se você está desenvolvendo um aplicativo ASP.NET MVC e deseja incorporar capacidades de geração de QR code, IronBarcode é uma excelente biblioteca que simplifica o processo. Neste artigo, exploraremos como gerar códigos QR em ASP.NET MVC usando a biblioteca IronBarcode.
IronBarcode
IronBarcode é uma biblioteca poderosa e rica em recursos para geração e reconhecimento de QR Code para aplicações .NET. Com IronBarcode, os desenvolvedores podem facilmente integrar a funcionalidade de código de barras e QR Code em seus projetos ASP.NET MVC, incluindo a capacidade de gerar QR codes. A biblioteca fornece um conjunto abrangente de ferramentas e APIs que simplificam o processo de criação e personalização de QR codes, permitindo que os desenvolvedores os adaptem aos seus requisitos específicos.
IronBarcode oferece suporte extensivo para vários tipos de código de barras, incluindo QR codes, tornando-o uma escolha ideal para projetos que requerem capacidades de geração de QR codes. Ela fornece aos desenvolvedores a flexibilidade para especificar os dados a serem codificados, controlar o tamanho e a resolução dos QR codes gerados e até adicionar elementos de estilo visual como cores e logotipos. A biblioteca garante uma geração de código de barras de alta qualidade com controle preciso sobre cada aspecto da aparência do QR code.
Além da geração de QR code, IronBarcode também inclui recursos robustos para leitura e decodificação de códigos de barras. Ela suporta escaneamento e extração de dados de QR codes, permitindo que aplicativos processem as informações codificadas neles. Essa funcionalidade é benéfica para cenários onde é necessário escaneamento de código de barras e extração de dados, como gerenciamento de inventário, sistemas de bilhetagem e aplicativos móveis.
Agora, vamos criar um projeto para gerar um QR code no aplicativo Web ASP.NET Core MVC.
Configurando o projeto
Antes de entrarmos nos detalhes da implementação, vamos garantir que seu projeto ASP.NET MVC esteja configurado e pronto para começar. Seja iniciando um novo projeto ou trabalhando em um existente, os passos descritos abaixo irão guiá-lo durante o processo de integração da biblioteca IronBarcode em sua aplicação. No meu caso, criei um novo projeto.
As etapas para criar um novo projeto são as seguintes:
- Abra o Microsoft Visual Studio 2022.
- Na página inicial, clique em "Criar um novo projeto" ou vá para "Arquivo" > "Novo" > "Projeto" no menu superior.
- Na janela "Criar um novo projeto", você verá diferentes modelos de projeto para escolher. Escolha o modelo de projeto "Aplicativo web ASP.NET Core (Model-view-controller)" e clique em "Avançar".
- Insira um nome e local para o seu projeto. Escolha um local adequado no seu computador para salvar os arquivos do projeto.
- Selecione a versão do framework desejada. O Visual Studio normalmente sugere a versão estável mais recente, mas você pode escolher uma diferente, se necessário. Escolhi .NET 7.
- Personalize qualquer configuração adicional do projeto, como opções de autenticação ou pastas do projeto, de acordo com seus requisitos.
- Clique em "Criar" para criar o projeto.
O Visual Studio então gerará os arquivos do projeto e abrirá o explorador de soluções, onde você poderá ver a estrutura do projeto e começar a trabalhar no seu código.

Agora, precisamos instalar a Biblioteca IronBarcode em nossa aplicação.
Instale o IronBarcode
Para começar, abra o Console do Gerenciador de Pacotes no Visual Studio e execute o seguinte comando:
Este comando instalará a biblioteca IronBarcode e adicionará as referências necessárias ao seu projeto.

Agora, vamos escrever algum código para criar QR codes.
Criar QRCodeModel
Crie uma classe de modelo dentro da pasta Models e escreva o seguinte código:
using System.ComponentModel.DataAnnotations;
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}Imports System.ComponentModel.DataAnnotations
Public Class QRCodeModel
<Display(Name := "Enter QR Code Text")>
Public Property QRCodeText() As String
End ClassCriar Controlador de Código QR
No seu projeto ASP.NET MVC, crie um novo controlador chamado QrCodeController. Para fazer isso, clique com o botão direito na pasta Controllers na estrutura do seu projeto, selecione "Adicionar" e depois escolha "Controller". Nas opções disponíveis, selecione "MVC Controller - Vazio".
Escreva o seguinte código em QrCodeController:
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using System.IO;
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult CreateQRCode()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
// Creating QR Code
GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText);
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(path, "qrcode.png");
barcode.SaveAsPng(filePath);
string fileName = Path.GetFileName(filePath);
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/GeneratedQRCode/{fileName}";
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception ex)
{
// Handle exceptions
// Log the exception details here for troubleshooting and debugging.
throw;
}
return View();
}
}Imports Microsoft.AspNetCore.Mvc
Imports IronBarCode
Imports System.IO
Public Class QrCodeController
Inherits Controller
Private ReadOnly _environment As IWebHostEnvironment
Public Sub New(environment As IWebHostEnvironment)
_environment = environment
End Sub
Public Function CreateQRCode() As IActionResult
Return View()
End Function
<HttpPost>
Public Function CreateQRCode(generateQRCode As QRCodeModel) As IActionResult
Try
' Creating QR Code
Dim barcode As GeneratedBarcode = QRCodeWriter.CreateQrCode(generateQRCode.QRCodeText)
Dim path As String = Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = Path.Combine(path, "qrcode.png")
barcode.SaveAsPng(filePath)
Dim fileName As String = Path.GetFileName(filePath)
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}/GeneratedQRCode/{fileName}"
ViewBag.QrCodeUri = imageUrl
Catch ex As Exception
' Handle exceptions
' Log the exception details here for troubleshooting and debugging.
Throw
End Try
Return View()
End Function
End ClassEste código configura um controlador que pode gerar códigos QR. Quando a ação CreateQRCode é chamada, ela recebe o texto para o código QR, gera a imagem do código QR, salva e fornece o URL da imagem na exibição para exibição. Mais detalhes são os seguintes:
- O controlador tem um construtor que leva um parâmetro
IWebHostEnvironmentpara acessar o ambiente de hospedagem web. - A ação
CreateQRCoderetorna uma exibição. - A ação
CreateQRCodecom o atributo[HttpPost]recebe um parâmetroQRCodeModel, que contém o texto do código QR. - Dentro da ação, um código QR é gerado usando a classe
QRCodeWriterda biblioteca IronBarcode. - O código QR gerado é salvo como um arquivo de imagem PNG em uma pasta chamada
GeneratedQRCodeno caminho raiz da web. - Se a pasta
GeneratedQRCodenão existir, ela é criada. - O caminho do arquivo e a URL para a imagem do código QR salvo são gerados.
- O URL da imagem do código QR é armazenado na propriedade
ViewBag.QrCodeUripara ser usado na exibição. - Quaisquer exceções que ocorram durante o processo são capturadas e registradas.
Adicionar CreateQRCode Exibição
Agora, para adicionar uma nova exibição, clique com o botão direito sobre o método de ação CreateQRCode na classe QrCodeController. Selecione 'Adicionar Visão', então selecione 'Visão Razor' e clique no botão 'Adicionar'.

Uma nova janela será aberta, conforme mostrado abaixo.

Escreva o nome da exibição, selecione o template 'Create', e selecione nossa recém-criada classe de modelo QRCodeModel. Clique no Botão Adicionar. A visão será criada. Substitua sua visão pelo código abaixo.
@model QRCodeModel
@{
ViewData["Title"] = "CreateQRCode";
}
<h1>Create QRCode in ASP.NET MVC</h1>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
<div class="form-group">
@if (ViewBag.QrCodeUri != null)
{
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Generated QR Code" />
}
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
Agora, vamos mover para a classe Program.cs e alterar a Rota padrão do Controlador.
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=CreateQRCode}/{id?}"
);app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=CreateQRCode}/{id?}")Isso mudará a rota padrão de HomeController para nossa QrCodeController.
Agora, compile e execute o projeto.
Saída

Insira o texto na caixa de texto e clique no botão criar. Um código QR será criado e exibido na tela como mostrado abaixo.

Agora, vamos adicionar estilo visual ao nosso código de barras adicionando texto de anotação, valor do Código QR e alterando a cor do Código QR.
Adicionar Estilo Visual no Código QR
Adicione a seguinte linha de código dentro do método de Ação CreateQRCode.
barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ChangeBackgroundColor(System.Drawing.Color.White);
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed);barcode.AddAnnotationTextAboveBarcode("QR Code Generated by Iron PDF")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ChangeBackgroundColor(System.Drawing.Color.White)
barcode.ChangeBarCodeColor(System.Drawing.Color.MediumVioletRed)Agora, execute o projeto e gere o Código QR.

Conclusão
No ASP.NET MVC, integrar o IronBarcode é direto. Ele fornece uma interface amigável ao usuário, facilitando o trabalho com códigos QR. Ao aproveitar o IronBarcode, você pode aprimorar seu aplicativo adicionando a funcionalidade de código QR, permitindo que os usuários compartilhem e acessem informações convenientemente. IronBarcode é uma biblioteca valiosa que simplifica o processo de geração de códigos QR e leitura de códigos QR no ASP.NET MVC. Ele capacita os desenvolvedores a criar aplicativos dinâmicos que utilizam o poder dos códigos QR para compartilhamento e recuperação de dados eficientes.
IronBarcode é gratuito para uso pessoal. No entanto, para fins comerciais, você precisa comprar sua licença comercial, que vem com uma avaliação gratuita. Você também pode obter um desconto significativo se adquirir o Iron Suite completo. Iron Suite é uma coleção abrangente de componentes de software .NET projetados para simplificar tarefas de desenvolvimento e aprimorar a funcionalidade. Ele oferece cinco bibliotecas poderosas, incluindo IronBarcode, IronOCR, IronPDF, IronXL, e Iron Webscraper que permitem aos desenvolvedores trabalhar com códigos de barras, reconhecimento óptico de caracteres, processamento de PDF, Excel, e arquivos CSV de forma integrada. Você terá todos os cinco produtos pelo preço de dois se optar por comprar o Iron Suite completo.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


