UTILISATION D'IRONQR

Comment générer des codes QR en ASP .NET Core ?

Jordi Bardia
Jordi Bardia
juin 6, 2024
Partager:

Introduction

Les codes QR font désormais partie intégrante de la technologie moderne et offrent un moyen pratique de stocker et de transmettre des informations. Dans le domaine du développement web, les générateurs de codes QR, comme celui que nous allons mettre en œuvre à l'aide d'IronQR dans ASP.NET Core, offrent des capacités robustes pour la création dynamique de codes QR. Les générateurs de codes QR sont très utiles pour diverses applications telles que les systèmes de billetterie, l'authentification, la gestion des stocks, etc. Cet article se penche sur le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR .NET, une puissante bibliothèque conçue à cet effet. ASP.NET Core, étant un framework polyvalent pour la création d'applications web, offre de solides capacités de génération de codes QR. Dans cet article, nous allons explorer le processus de création de codes QR dans ASP.NET Core en utilisant IronQR, une bibliothèque puissante pour la génération de codes QR de Iron Software.

Comment générer des codes QR dans ASP.NET Core ?

  1. Créer un projet ASP.NET à l'aide de Visual Studio

  2. Installez la bibliothèque IronQR depuis le Gestionnaire de Paquets

  3. Générer un code QR

  4. Générer un code QR avec formatage

Comprendre IronQR

IronQR est une bibliothèque de génération de codes QR haute performance pour les applications .NET. Il fournit une API simple et intuitive pour générer des codes QR avec diverses options de personnalisation. IronQR prend en charge le Standard .NET, ce qui le rend compatible avec un large éventail de plateformes, notamment ASP.NET Core. Avec IronQR, les développeurs peuvent générer sans effort des codes QR avec différents types de données, niveaux de correction d'erreur, tailles et formats.

Caractéristiques principales

1. Lire et créer des codes QR

IronQR vous permet de générer et de lire des codes QR en toute simplicité. Que vous ayez besoin de créer des codes QR de manière dynamique ou d'extraire des informations de codes existants, cette bibliothèque vous couvre.

2. API conviviale

La bibliothèque fournit une API conviviale qui permet aux développeurs d'intégrer rapidement la fonctionnalité des codes-barres dans leurs projets .NET. Vous pouvez commencer à travailler avec les codes QR en quelques minutes seulement.

3. Compatibilité

IronQR prend en charge diverses versions de .NET, y compris :

  1. C#, VB.NET, F#

  2. .NET Core (8, 7, 6, 5 et 3.1+)

  3. .NET Standard (2.0+)

  4. .NET Framework (4.6.2+)

    Il couvre une large gamme de types de projets, y compris les applications web (Blazor & WebForms), mobiles (Xamarin & MAUI), de bureau (WPF & MAUI) et console.

4. Modèle d'apprentissage automatique pour la détection de QR

IronQR utilise un modèle avancé d'apprentissage automatique personnalisé pour détecter les codes QR. Cela garantit une reconnaissance précise et fiable du code. De plus, il existe une option Slim Mode (non-ML) disponible pour ceux qui préfèrent une approche légère.

5. Lire les codes QR

Vous pouvez lire les codes QR à partir de différents formats d'image, notamment :

  1. Images (jpg, png, svg, bmp)

  2. Images multipages (gif, tif, tiff)

  3. System.Drawing Bitmaps

  4. Images IronDrawing (AnyBitmap)

6. Écrire des codes QR

IronQR vous permet d'écrire des codes QR pour différents types de documents, tels que :

  1. Images (jpg, png, gif, tiff, bmp)

  2. System.Drawing Images

  3. Flux (MemoryStream, byte[])

  4. PDF (Tamponner sur un PDF existant)

7. Styliser les codes QR

Personnaliser les codes QR en les redimensionnant, en ajustant les marges et les bordures, en les recolorant, en ajoutant des logos

8. Traitement et correction des erreurs

IronQR fournit des messages d'erreur détaillés et prend en charge des niveaux de correction d'erreur QR personnalisés.

Fort de ces connaissances, démarrons l'application pour générer un code QR en ASP.NET Core.

Étape 1 : Créer un nouveau projet ASP.NET à l'aide de Visual Studio

Avant de nous plonger dans la génération de codes QR, configurons un nouveau projet ASP.NET Core. Voici les étapes à suivre pour lancer un nouveau projet :

Commencez par créer un nouveau projet dans Visual Studio et sélectionnez le modèle d'application ASP.NET Core Web App

Comment générer des codes QR dans ASP .NET Core : Figure 1 - Sélectionnez le modèle d'application web ASP.NET CORE

Indiquer le nom et l'emplacement du projet

Comment générer des codes QR dans ASP .NET Core: Figure 2 - Nommez le projet et l'endroit où vous souhaitez l'enregistrer

Sélectionnez la version .NET requise.

Comment générer des QR Codes dans ASP .NET Core : Figure 3 - Sélectionnez la version .NET correcte.

Cliquez sur le bouton "créer" pour générer le code de l'application à partir du modèle

Comment générer des QR Codes dans ASP .NET Core : Figure 4 - Cliquez sur le bouton "créer" pour générer le code modèle

Étape 2 : Installer la bibliothèque IronQR à partir du gestionnaire de paquets

Installez la bibliothèque IronQR depuis le gestionnaire de packages de Visual Studio comme indiqué ci-dessous.

Comment générer des codes QR dans ASP .NET Core : Figure 5 - Recherchez IronOCR en utilisant le gestionnaire de packages de Visual Studio et installez-le

IronQR peut également être installé en utilisant le gestionnaire de packages NuGet.

Comment générer des codes QR dans ASP .NET Core : Figure 6 - Rechercher IronOCR en utilisant le gestionnaire de packages NuGet

Étape 3 : Générer un code QR

Créons maintenant une application de code QR.

Créer un modèle QRCode

using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText
        {
            get;
            set;
        }
    }
}
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText
        {
            get;
            set;
        }
    }
}
Imports System.ComponentModel.DataAnnotations
Namespace GenerateQRCode.Models
	Public Class QRCodeModel
		<Display(Name := "Enter QR Code Text")>
		Public Property QRCodeText() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Créer un contrôleur de code QR

Pour ajouter un nouveau contrôleur, cliquez avec le bouton droit de la souris sur le dossier du contrôleur et donnez-lui un nom comme indiqué ci-dessous.

Comment générer des codes QR dans ASP .NET Core : Figure 7 - Ajouter un nouveau contrôleur en cliquant sur le dossier et en lui donnant un nom

Sélectionnez le contrôleur vide.

Comment générer des codes QR dans ASP .NET Core : Figure 8 - Cliquez sur Empty Controller à l'invite

Fournir un nom.

Comment générer des codes QR dans ASP .NET Core : Figure 9 - Nommer le contrôleur

Ensuite, intégrez le code suivant dans le contrôleur.

using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
Imports GenerateQRCode.Models
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace GenerateQRCode.Controllers
	Public Class QrCodeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment
		Public Sub New(ByVal environment As IWebHostEnvironment)
			_environment = environment
		End Sub
		Public Function Index() As IActionResult
			Return View()
		End Function
		<HttpPost>
		Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
			Try
				Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
				If Not Directory.Exists(path) Then
					Directory.CreateDirectory(path)
				End If
				Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
				' Create a QR Code object
				Dim myQr As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
				' Save QR Code as a Bitmap
				Dim qrImage As AnyBitmap = myQr.Save()
				' Save QR Code Bitmap as File
				qrImage.SaveAs(filePath)
				Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
				Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
				ViewBag.QrCodeUri = imageUrl
			Catch e1 As Exception
				Throw
			End Try
			Return View()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Explication du code

Définition de l'espace de noms et des classes

Le code commence par des instructions d'utilisation, qui importent les espaces de noms nécessaires. Le namespace GenerateQRCode.Controllers contient la classe QrCodeController.

Constructeur de contrôleur

La classe QrCodeController a un constructeur qui prend un paramètre IWebHostEnvironment. Ce paramètre est injecté par ASP.NET Core pour gérer les tâches liées à l'hébergement web.

Méthodes d'action

Index() : Cette méthode retourne une vue (présumée être une page HTML) lorsqu'elle est accédée. Il ne semble pas être directement lié à la génération de codes QR. CreateQRCode(QRCodeModel generateQRCode) : Cette méthode est le cœur de la logique de génération de code QR. Il reçoit un objet QRCodeModel (présumément contenant le texte du code QR) en tant que paramètre.

Dans la méthode

Il construit un chemin d'accès pour l'enregistrement de l'image du code QR généré. Crée un objet de code QR en utilisant QrWriter.Write(generateQRCode.QRCodeText). Enregistre le code QR sous forme d'image bitmap. Construit une URL d'image basée sur les détails de la demande web. Définit la propriété ViewBag.QrCodeUri avec l'URL de l'image. Si des exceptions surviennent au cours de ce processus, elles sont levées.

Génération de codes QR

La génération réelle du code QR se fait dans la méthode CreateQRCode. L'appel QrWriter.Write(generateQRCode.QRCodeText) crée un objet code QR basé sur le texte fourni.

Sauvegarde des images

Le code QR généré est enregistré en tant qu'image bitmap en utilisant qrImage.SaveAs(filePath). Le chemin d'accès au fichier image est construit sur la base du chemin d'accès à la racine du site web et du nom de fichier souhaité.

URL de l'image

L'imageUrl est construit en utilisant le schéma, l'hôte et la base de chemin de la requête web. Cette URL pointe vers l'endroit où l'on peut accéder à l'image du code QR généré. Globalement, ce contrôleur gère la génération du code QR, l'enregistrement de l'image et la fourniture d'une URL de l'image pour une utilisation ultérieure

Ajouter une vue au contrôleur

Pour ajouter une nouvelle vue, cliquez avec le bouton droit sur la méthode d'action CreateQRCode dans la classe QrCodeController.

Comment générer des codes QR dans ASP .NET Core : Figure 10 - Ajouter une nouvelle vue dans la classe `QrCodeController`

Sélectionnez "Ajouter une vue", puis "Vue rasoir". Cliquez sur le bouton "Ajouter".

Comment générer des codes QR dans ASP .NET Core : Figure 11 - Sélectionnez l'option Ajouter une vue, puis Razor View, puis Ajouter

Sélectionnez ensuite le modèle "Créer" et la classe de modèle générée précédemment.

Comment générer des codes QR dans ASP .NET Core : Figure 12 - Sélectionnez le modèle `Create` généré précédemment

Remplacez maintenant le code ci-dessous dans la vue

@model GenerateQRCode.Models.QRCodeModel
@{
    ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@model GenerateQRCode.Models.QRCodeModel
@{
    ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
model ReadOnly Property () As GenerateQRCode.Models.QRCodeModel
	ViewData("Title") = "Generate QR Code"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action
"@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class
"form-group"> <img src="@ViewBag.QrCodeUri" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src
"form-group"> </div> <div class="form-group"> <img src
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class
"text-danger"></span> </div> <div class="form-group"> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class
"QRCodeText" class="text-danger"></span> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for="QRCodeText" class
"control-label"></label> <span asp-validation-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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> <span asp-validation-for
"QRCodeText" class="control-label"></label> <span asp-validation-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"form-group"> <label asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <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
"text-danger"></div> <div class="form-group"> <label asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class
"CreateQRCode"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
"col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action
"row"> <div class="col-md-4"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend (Of h1) Generate QR Code</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
	@
	If True Then
		Await Html.RenderPartialAsync("_ValidationScriptsPartial")
	End If
End Class
$vbLabelText   $csharpLabel

Faites de même pour la méthode d'action index, de sorte que lorsque l'application sera lancée, elle n'affichera pas d'erreur pour la requête POST.

Dans le fichier program.cs, modifiez le code suivant pour que la vue ci-dessus devienne la route par défaut.

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")
$vbLabelText   $csharpLabel

Cette action modifiera la route par défaut de HomeController à notre contrôleur QrCode.

Maintenant, compilez et exécutez le projet.

Comment générer des codes QR dans ASP .NET Core : Figure 13 - Exemple de page d'accueil du projet

Saisissez le texte de votre choix dans la zone de texte et cliquez sur "Créer" Un nouveau code QR est alors créé, comme illustré ci-dessous.

Comment générer des codes QR dans ASP .NET Core : Figure 14 - Entrez n'importe quel texte et cliquez sur créer pour générer un nouveau code QR en utilisant IronOCR

Ajouter un style au code QR

Les QrStyleOptions sont utilisées pour styliser la génération de code QR.

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
        // Create a QR Code obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);
        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
        // Create a QR Code obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);
        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
	Try
		Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
		If Not Directory.Exists(path) Then
			Directory.CreateDirectory(path)
		End If
		Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
		' Create a QR Code obj
		Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
		Dim style As New QrStyleOptions With {
			.Dimensions = 300,
			.Margins = 10,
			.Color = Color.YellowGreen
		}
		' Save QR Code as a any bitmap
		Dim qrImage As AnyBitmap = qrCode.Save(style)
		' Save QR Code Bitmap to File
		qrImage.SaveAs(filePath)
		Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
		Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
		ViewBag.QrCodeUri = imageUrl
	Catch e1 As Exception
		Throw
	End Try
	Return View()
End Function
$vbLabelText   $csharpLabel

Sortie

Comment générer des codes QR dans ASP .NET Core : Figure 15 - Modifier la couleur du code QR par programmation

Licence (version d'essai disponible)

Pour les développeurs qui souhaitent tester IronQR, une licence d'essai est disponible ici. Cette clé de licence doit être placée dans le fichier appSettings.json. Cela supprimera le filigrane affiché dans les images ci-dessus. Cette opération permet de supprimer le filigrane qui apparaît dans les images ci-dessus.

{
"IronQR.License.LicenseKey" : "My key"
}

Conclusion

Dans cet article, nous avons exploré comment générer des codes QR dans ASP.NET Core à l'aide d'IronQR. En tirant parti de la puissance d'IronQR, les développeurs peuvent facilement intégrer la fonctionnalité de génération de codes QR dans leurs applications web. Qu'il s'agisse de billetterie, d'authentification ou de partage d'informations, les codes QR offrent une solution polyvalente pour transmettre efficacement des données. Avec IronQR, la création et la personnalisation de codes QR dans ASP.NET Core n'ont jamais été aussi simples. Commencez à intégrer la génération de codes QR dans vos projets ASP.NET Core et débloquez un monde de possibilités pour l'encodage et le partage dynamiques de données.

Jordi Bardia
Ingénieur logiciel
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT
Comment utiliser .NET MAUI pour le scanner de codes QR ?
SUIVANT >
Comment scanner un code QR en ASP .NET