UTILISATION D'IRONQR

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

Publié 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 nous plonger dans le processus de création de codes QR dans ASP.NET Core à l'aide deIronQRune bibliothèque puissante pour la génération de codes QR à partir deIron 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. InstallerIronQR bibliothèque à partir du 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 très performante 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 différentes versions de .NET, notamment :

  1. C#, VB.NET, F#

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

  3. standard .NET(2.0+)

  4. framework .NET(4.6.2+)

    Il couvre un large éventail de types de projets, y compris les projets web(Blazor et WebForms), mobile(Xamarin et MAUI), bureau(WPF ET MAUI)et les applications sur 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. En outre, il existe une option "Slim Mode"(non-ML) pour ceux qui préfèrent une approche plus 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. bitmaps System.Drawing (Système.Dessin)

  4. Images d'IronDrawing(AnyBitmap (n'importe quelle image))

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. Cours d'eau(MemoryStream, byte[])

  4. PDF (EN ANGLAIS)(EN ANGLAIS)(Tampon 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 en ASP .NET Core : Figure 2 - Nommez le projet et l'emplacement dans lequel vous souhaitez l'enregistrer

Sélectionnez la version .NET requise.

Comment générer des codes QR en ASP .NET Core : Figure 3 - Sélectionnez la bonne version de .NET.

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

Comment générer des codes QR en ASP .NET Core : Figure 4 - Cliquez sur le bouton "create" ; pour générer le modèle de code

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

InstallerIronQR à partir du gestionnaire de paquets de Visual Studio, comme indiqué ci-dessous.

Comment générer des codes QR en ASP .NET Core : Figure 5 - Rechercher IronOCR à l'aide du gestionnaire de paquets de Visual Studio et l'installer

IronQR peut également être installé à l'aide du gestionnaire de paquets NuGet.

Comment générer des codes QR en ASP .NET Core : Figure 6 - Recherche d'IronOCR à l'aide du gestionnaire de paquets 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
VB   C#

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 en ASP .NET Core : Figure 7 - Ajoutez un nouveau contrôleur en cliquant sur le dossier et donnez-lui un nom

Sélectionnez le contrôleur vide.

Comment générer des codes QR en ASP .NET Core : Figure 8 - Cliquez sur Empty Controller (contrôleur vide) dans l'invite

Fournir un nom.

Comment générer des codes QR en ASP .NET Core : Figure 9 - Nom du 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
VB   C#

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. L'espace de nom 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 renvoie une vue(vraisemblablement une page HTML) en cas d'accès. Il ne semble pas être directement lié à la génération de codes QR. CreateQRCode(QRCodeModel generateQRCode) : Cette méthode est au cœur de la logique de génération du code QR. Il reçoit un objet QRCodeModel(contenant vraisemblablement le texte du code QR) comme 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 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 du code QR s'effectue dans la méthode CreateQRCode. La fonction QrWriter.Write(generateQRCode.QRCodeText)l'appel crée un objet code QR sur la base du texte fourni.

Sauvegarde des images

Le code QR généré est enregistré sous forme d'image bitmap à l'aide de qrImage.SaveAs(chemindefichier). 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

Le imageUrl est construit en utilisant la base du schéma, de l'hôte et du 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, faites un clic droit sur la méthode d'action CreateQRCode de la classe QrCodeController.

Comment générer des codes QR en 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 en ASP .NET Core : Figure 11 - Sélectionnez l'option Ajouter une vue, puis Razor View, puis Ajouter une vue

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 en 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
VB   C#

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}")
VB   C#

Cette action va modifier la route par défaut de HomeController vers notre contrôleur QrCode.

Maintenant, compilez et exécutez le projet.

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

Ajouter un style au code QR

les QrStyleOptions sont utilisées pour styliser la génération du 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
VB   C#

Sortie

Comment générer des codes QR en ASP .NET Core : Figure 15 - Modification programmatique de la couleur du code QR

Licence (version d'essai disponible)

Pour les développeurs qui souhaitent tester IronQR, une licence d'essai est disponibleici. 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.

< PRÉCÉDENT
Comment utiliser .NET MAUI pour le scanner de codes QR ?
SUIVANT >
Comment scanner un code QR en ASP .NET