Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Comment générer des codes QR en C# avec IronBarcode

IronBarcode permet aux développeurs .NET de créer efficacement des codes QR grâce à sa classe QRCodeWriter. Il prend en charge les logos personnalisés, les couleurs, plusieurs formats de sortie et le déploiement multiplateforme, notamment Windows, Linux, macOS et les appareils mobiles.

Ce guide explique comment utiliser IronBarcode pour générer des codes QR pour les systèmes de production. L'API d'IronBarcode respecte les conventions .NET tout en offrant les performances et la fiabilité nécessaires aux applications d'entreprise. La bibliothèque offre une documentation complète et prend en charge le déploiement sur les plateformes Windows, Linux, macOS et mobiles. Pour un aperçu complet de toutes les fonctionnalités, consultez la page des fonctionnalités . Le guide de démarrage rapide des codes-barres propose des exemples pratiques immédiats pour vous aider à démarrer.

Quels sont les avantages de l'utilisation d'IronBarcode pour la génération de codes QR ?

Pourquoi choisir IronBarcode plutôt que d'autres bibliothèques ?

Comment générer des codes QR avec IronBarcode ?

Les sections suivantes présentent un code prêt pour la production, conforme aux principes SOLID. Vous apprendrez à créer différents types de codes QR, à implémenter un style personnalisé et à garantir des performances de numérisation fiables. La bibliothèque offre notamment la prise en charge des codes-barres 1D et 2D , en plus des codes QR. Pour les scénarios avancés, consultez la documentation de l'API pour obtenir les signatures complètes des méthodes. Explorez les démonstrations pour découvrir les fonctionnalités d'IronBarcode en action.

Comment créer un nouveau projet ?

Ouvrez Visual Studio et sélectionnez Nouveau projet dans le menu Fichier. Pour les déploiements en entreprise, il est conseillé de consulter le guide d'installation MSI pour les installations automatisées. La section " Premiers pas " fournit des instructions d'installation complètes.

Choisissez le modèle d'application console et cliquez sur Suivant.

Saisissez le nom de projet de votre choix (par exemple, Générateur de code QR ) et précisez l'emplacement. Cliquez sur Suivant .

Sélectionnez un framework .NET dans la liste déroulante ( .NET 6.0 (support à long terme) ) et cliquez sur Créer. IronBarcode prend en charge toutes les versions modernes de .NET, comme indiqué dans la documentation de compatibilité . Pour connaître les exigences spécifiques de la plateforme, consultez le guide d'intégration Blazor .

Quelles sont les méthodes d'installation disponibles ?

Installez IronBarcode en utilisant l'une des quatre méthodes adaptées aux différents flux de travail. Les démonstrations en direct de la bibliothèque illustrent les capacités de reconnaissance de codes-barres en temps réel. Pour un test rapide, explorez l' exemple de démarrage rapide des codes-barres .

Comment installer un package à l'aide de l'interface utilisateur du gestionnaire de packages de Visual Studio ?

Accédez à Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution...

Vous pouvez également cliquer avec le bouton droit sur votre projet dans l'Explorateur de solutions et sélectionner Gérer les packages NuGet...

Cliquez sur Parcourir , recherchez Code-barres , sélectionnez IronBarcode , choisissez votre projet et cliquez sur Installer. Pour les installations spécifiques à une plateforme, consultez le guide des packages NuGet . Si vous rencontrez des problèmes, consultez le guide de dépannage NuGet . La bibliothèque prend en charge différents scénarios de déploiement, notamment AWS Lambda et Azure Functions .

Comment installer un package à l'aide de la console du gestionnaire de packages ?

Ouvrez Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages et exécutez :

Install-Package BarCode

Cela installe la bibliothèque dans votre projet actuel. Pour les déploiements conteneurisés, suivez le guide d'installation de Docker . Lors de l'utilisation de clés de licence , assurez-vous d'une configuration appropriée pour votre environnement de déploiement.

Comment télécharger un fichier depuis le site web NuGet ou IronBarcode ?

Téléchargez le fichier depuis le site web de la galerie NuGet ou visitez la page d'accueil d'IronBarcode pour obtenir la dernière DLL de code-barres .NET. Ajoutez la DLL à votre projet via Ajouter > Référence dans l'Explorateur de solutions. Pour résoudre les problèmes liés aux DLL, consultez le guide sur les DLL manquantes . En cas de problèmes d'exécution, consultez le guide des exceptions de copie d'exécution .

Comment créer et personnaliser des images de code QR ?

Comment générer un code QR basique ?

Créez des codes QR à l'aide de la méthode CreateQrCode de la classe QRCodeWriter . Pour un exemple complet, consultez le tutoriel sur le générateur de code QR en C# . La bibliothèque permet de créer des images de codes-barres dans différents formats :

using IronBarCode;

// Basic QR code generation with medium error correction
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0);
qrCode.SaveAsPng("MyQR.png");

// Generate QR code with automatic sizing and highest error correction
var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example");
autoQr.SaveAsJpeg("AutoQR.jpg");

// Production-ready QR code with validation
public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600)
{
    if (string.IsNullOrWhiteSpace(data))
        throw new ArgumentException("Data cannot be empty");

    if (data.Length > 2953) // QR Code capacity at highest error correction
        throw new ArgumentException("Data exceeds QR code capacity");

    var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.VerifyQrCode(); // Verify the generated code is valid
    return qr;
}
using IronBarCode;

// Basic QR code generation with medium error correction
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0);
qrCode.SaveAsPng("MyQR.png");

// Generate QR code with automatic sizing and highest error correction
var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example");
autoQr.SaveAsJpeg("AutoQR.jpg");

// Production-ready QR code with validation
public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600)
{
    if (string.IsNullOrWhiteSpace(data))
        throw new ArgumentException("Data cannot be empty");

    if (data.Length > 2953) // QR Code capacity at highest error correction
        throw new ArgumentException("Data exceeds QR code capacity");

    var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.VerifyQrCode(); // Verify the generated code is valid
    return qr;
}
Imports IronBarCode

' Basic QR code generation with medium error correction
Dim qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0)
qrCode.SaveAsPng("MyQR.png")

' Generate QR code with automatic sizing and highest error correction
Dim autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example")
autoQr.SaveAsJpeg("AutoQR.jpg")

' Production-ready QR code with validation
Public Function CreateValidatedQrCode(data As String, Optional size As Integer = 600) As GeneratedBarcode
    If String.IsNullOrWhiteSpace(data) Then
        Throw New ArgumentException("Data cannot be empty")
    End If

    If data.Length > 2953 Then ' QR Code capacity at highest error correction
        Throw New ArgumentException("Data exceeds QR code capacity")
    End If

    Dim qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High)
    qr.VerifyQrCode() ' Verify the generated code is valid
    Return qr
End Function
$vbLabelText   $csharpLabel

La méthode CreateQrCode accepte :

  • Obligatoire : données à encoder (chaîne de caractères ou flux)
  • Facultatif : dimensions graphiques (par défaut 500x500px)
  • Optionnel : niveau de correction d'erreur (Faible 7 %, Moyen 15 %, Élevé 25 %, Très élevé 30 %)
  • Facultatif : numéro de version du QR (0 pour automatique)

Pour un traitement par lots haute performance, utilisez des opérations asynchrones et un style personnalisé . Lorsque vous travaillez dans des conditions imparfaites, utilisez les fonctions de tolérance aux pannes . Le tutoriel sur la lecture des codes-barres explique comment vérifier les codes générés.

Quels types de données puis-je encoder dans les codes QR ?

Les types de données de codes QR courants pour les applications de production incluent la création de codes-barres à partir de diverses sources . Pour des exemples détaillés, consultez l' exemple de création de code QR . IronBarcode prend en charge les codes-barres Unicode pour l'encodage international des caractères :

Codes QR URL :

// Generate QR code for website URL
var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800);
urlQr.SetMargins(10); // Add quiet zone
urlQr.SaveAsPng("campaign-qr.png");

// Advanced URL QR code with tracking
public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams)
{
    var uriBuilder = new UriBuilder(baseUrl);
    var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);

    foreach (var param in utmParams)
        query[param.Key] = param.Value;

    uriBuilder.Query = query.ToString();
    var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000);
    return qr;
}
// Generate QR code for website URL
var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800);
urlQr.SetMargins(10); // Add quiet zone
urlQr.SaveAsPng("campaign-qr.png");

// Advanced URL QR code with tracking
public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams)
{
    var uriBuilder = new UriBuilder(baseUrl);
    var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);

    foreach (var param in utmParams)
        query[param.Key] = param.Value;

    uriBuilder.Query = query.ToString();
    var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000);
    return qr;
}
Imports System
Imports System.Collections.Generic
Imports System.Web

' Generate QR code for website URL
Dim urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800)
urlQr.SetMargins(10) ' Add quiet zone
urlQr.SaveAsPng("campaign-qr.png")

' Advanced URL QR code with tracking
Public Function CreateTrackableUrlQr(baseUrl As String, utmParams As Dictionary(Of String, String)) As GeneratedBarcode
    Dim uriBuilder = New UriBuilder(baseUrl)
    Dim query = HttpUtility.ParseQueryString(uriBuilder.Query)

    For Each param In utmParams
        query(param.Key) = param.Value
    Next

    uriBuilder.Query = query.ToString()
    Dim qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000)
    Return qr
End Function
$vbLabelText   $csharpLabel

Informations de contact vCard :

string vCard = @"BEGIN:VCARD
VERSION:3.0
FN:John Smith
ORG:Tech Corp
TEL:+1-555-0123
EMAIL:john@example.com
END:VCARD";

var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium);
contactQr.SaveAsPng("contact-card.png");
string vCard = @"BEGIN:VCARD
VERSION:3.0
FN:John Smith
ORG:Tech Corp
TEL:+1-555-0123
EMAIL:john@example.com
END:VCARD";

var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium);
contactQr.SaveAsPng("contact-card.png");
Dim vCard As String = "BEGIN:VCARD" & vbCrLf & _
                      "VERSION:3.0" & vbCrLf & _
                      "FN:John Smith" & vbCrLf & _
                      "ORG:Tech Corp" & vbCrLf & _
                      "TEL:+1-555-0123" & vbCrLf & _
                      "EMAIL:john@example.com" & vbCrLf & _
                      "END:VCARD"

Dim contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium)
contactQr.SaveAsPng("contact-card.png")
$vbLabelText   $csharpLabel

Configuration WiFi :

string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");
string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");
Dim wifiConfig As String = "WIFI:T:WPA;S:NetworkName;P:Password123;;"
Dim wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500)
wifiQr.SaveAsPng("wifi-config.png")
$vbLabelText   $csharpLabel

IronBarcode gère la prise en charge Unicode pour les caractères internationaux et prend en charge des formats comme Micro QR et rMQR pour les applications à espace limité. Pour les formats spécialisés, consultez la nouvelle étape importante concernant les formats . Lors de l'utilisation de formats de données spécialisés, la bibliothèque peut lire à partir de flux et exporter sous forme de flux pour une utilisation efficace de la mémoire.

Comment ajouter des logos et un style personnalisé ?

Utilisez CreateQrCodeWithLogo pour ajouter des logos d'entreprise aux codes QR. Pour connaître toutes les options de style, consultez l' exemple de code QR personnalisé et le guide de style des codes QR . La bibliothèque prend également en charge le style général des codes-barres pour tous les types de codes-barres :

// Create QR code with embedded logo
var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500);
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed);
qrWithLogo.SaveAsPng("Logo_QR_Code.png");

// Advanced logo customization
var logo = new QRCodeLogo("company-logo.png")
{
    Width = 100,
    Height = 100,
    CornerRadius = 5
};
var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600);

// Production-ready branded QR code
public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor)
{
    var logo = new QRCodeLogo(logoPath)
    {
        Width = 80,
        Height = 80,
        CornerRadius = 10
    };

    var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor));
    qr.SetMargins(15);
    return qr;
}
// Create QR code with embedded logo
var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500);
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed);
qrWithLogo.SaveAsPng("Logo_QR_Code.png");

// Advanced logo customization
var logo = new QRCodeLogo("company-logo.png")
{
    Width = 100,
    Height = 100,
    CornerRadius = 5
};
var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600);

// Production-ready branded QR code
public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor)
{
    var logo = new QRCodeLogo(logoPath)
    {
        Width = 80,
        Height = 80,
        CornerRadius = 10
    };

    var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor));
    qr.SetMargins(15);
    return qr;
}
Imports System.Drawing

' Create QR code with embedded logo
Dim qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500)
qrWithLogo.ChangeBarCodeColor(Color.DarkRed)
qrWithLogo.SaveAsPng("Logo_QR_Code.png")

' Advanced logo customization
Dim logo As New QRCodeLogo("company-logo.png") With {
    .Width = 100,
    .Height = 100,
    .CornerRadius = 5
}
Dim advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600)

' Production-ready branded QR code
Public Function CreateBrandedQrCode(data As String, logoPath As String, brandColor As String) As GeneratedBarcode
    Dim logo As New QRCodeLogo(logoPath) With {
        .Width = 80,
        .Height = 80,
        .CornerRadius = 10
    }

    Dim qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800)
    qr.ChangeBarCodeColor(ColorTranslator.FromHtml(brandColor))
    qr.SetMargins(15)
    Return qr
End Function
$vbLabelText   $csharpLabel

Appliquez un style supplémentaire grâce aux fonctionnalités de personnalisation des codes-barres . La fonctionnalité de stylisation des codes-barres offre des options de personnalisation complètes :

// Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"));
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray);
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME");
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name");
// Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"));
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray);
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME");
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name");
' Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"))
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray)
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME")
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name")
$vbLabelText   $csharpLabel

Quels sont les formats d'exportation disponibles ?

Enregistrez les codes QR dans différents formats pour différents cas d'utilisation. Pour en savoir plus, consultez l' exemple d'enregistrement de code-barres et le tutoriel sur le générateur d'images de code-barres . Pour les exigences spécifiques, consultez le guide sur la création d'images de codes-barres 1-BPP :

// Image formats
qrWithLogo.SaveAsJpeg("qr.jpg");
qrWithLogo.SaveAsPng("qr.png");
qrWithLogo.SaveAsGif("qr.gif");
qrWithLogo.SaveAsTiff("qr.tiff");

// Web formats
qrWithLogo.SaveAsHtmlFile("qr.html");
string dataUrl = qrWithLogo.ToDataUrl();

// Print formats
qrWithLogo.SaveAsPdf("qr.pdf");
qrWithLogo.ChangeBarcodeDpi(300);

// API formats
byte[] qrBytes = qrWithLogo.ToPngBinaryData();
var stream = qrWithLogo.ToStream();

// High-quality print export
public void ExportForPrint(GeneratedBarcode qr, string filename)
{
    qr.ChangeBarcodeDpi(600); // Haut DPI for print
    qr.ResizeTo(2000, 2000); // Large size
    qr.SaveAsTiff(filename); // Lossless format
}
// Image formats
qrWithLogo.SaveAsJpeg("qr.jpg");
qrWithLogo.SaveAsPng("qr.png");
qrWithLogo.SaveAsGif("qr.gif");
qrWithLogo.SaveAsTiff("qr.tiff");

// Web formats
qrWithLogo.SaveAsHtmlFile("qr.html");
string dataUrl = qrWithLogo.ToDataUrl();

// Print formats
qrWithLogo.SaveAsPdf("qr.pdf");
qrWithLogo.ChangeBarcodeDpi(300);

// API formats
byte[] qrBytes = qrWithLogo.ToPngBinaryData();
var stream = qrWithLogo.ToStream();

// High-quality print export
public void ExportForPrint(GeneratedBarcode qr, string filename)
{
    qr.ChangeBarcodeDpi(600); // Haut DPI for print
    qr.ResizeTo(2000, 2000); // Large size
    qr.SaveAsTiff(filename); // Lossless format
}
' Image formats
qrWithLogo.SaveAsJpeg("qr.jpg")
qrWithLogo.SaveAsPng("qr.png")
qrWithLogo.SaveAsGif("qr.gif")
qrWithLogo.SaveAsTiff("qr.tiff")

' Web formats
qrWithLogo.SaveAsHtmlFile("qr.html")
Dim dataUrl As String = qrWithLogo.ToDataUrl()

' Print formats
qrWithLogo.SaveAsPdf("qr.pdf")
qrWithLogo.ChangeBarcodeDpi(300)

' API formats
Dim qrBytes As Byte() = qrWithLogo.ToPngBinaryData()
Dim stream = qrWithLogo.ToStream()

' High-quality print export
Public Sub ExportForPrint(qr As GeneratedBarcode, filename As String)
    qr.ChangeBarcodeDpi(600) ' Haut DPI for print
    qr.ResizeTo(2000, 2000) ' Large size
    qr.SaveAsTiff(filename) ' Lossless format
End Sub
$vbLabelText   $csharpLabel

Pour les opérations spécifiques aux fichiers PDF, consultez les guides sur la création de codes-barres au format PDF et l'ajout de codes-barres sur des fichiers PDF existants . Lors de la lecture de codes-barres à partir de fichiers PDF, utilisez les paramètres du lecteur de codes-barres PDF pour des résultats optimaux.

Comment intégrer les codes QR dans les applications web ?

Pour les applications ASP.NET MVC, implémentez le streaming sans E/S de fichiers . La bibliothèque permet de créer des codes-barres au format HTML pour une intégration web directe :

public IActionResult GetQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    byte[] qrBytes = qr.ToPngBinaryData();
    return File(qrBytes, "image/png", "qrcode.png");
}

// Stream directly without disk I/O
public IActionResult StreamQrCode(string content)
{
    var qr = QRCodeWriter.CreateQrCode(content, 500);
    var stream = qr.ToStream();
    return File(stream, "image/png");
}

// Generate HTML-embedded QR codes
public IActionResult GetHtmlQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    var htmlString = qr.ToHtmlTag();
    return Content(htmlString, "text/html");
}
public IActionResult GetQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    byte[] qrBytes = qr.ToPngBinaryData();
    return File(qrBytes, "image/png", "qrcode.png");
}

// Stream directly without disk I/O
public IActionResult StreamQrCode(string content)
{
    var qr = QRCodeWriter.CreateQrCode(content, 500);
    var stream = qr.ToStream();
    return File(stream, "image/png");
}

// Generate HTML-embedded QR codes
public IActionResult GetHtmlQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    var htmlString = qr.ToHtmlTag();
    return Content(htmlString, "text/html");
}
Public Function GetQrCode(data As String) As IActionResult
    Dim qr = QRCodeWriter.CreateQrCode(data, 400)
    Dim qrBytes As Byte() = qr.ToPngBinaryData()
    Return File(qrBytes, "image/png", "qrcode.png")
End Function

' Stream directly without disk I/O
Public Function StreamQrCode(content As String) As IActionResult
    Dim qr = QRCodeWriter.CreateQrCode(content, 500)
    Dim stream = qr.ToStream()
    Return File(stream, "image/png")
End Function

' Generate HTML-embedded QR codes
Public Function GetHtmlQrCode(data As String) As IActionResult
    Dim qr = QRCodeWriter.CreateQrCode(data, 400)
    Dim htmlString As String = qr.ToHtmlTag()
    Return Content(htmlString, "text/html")
End Function
$vbLabelText   $csharpLabel

Pour les applications Blazor , implémentez la génération réactive de codes QR :

@page "/qrcode"
@using IronBarCode

<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>

@if (!string.IsNullOrEmpty(QrCodeDataUrl))
{
    <img src="@QrCodeDataUrl" alt="QR Code" />
}

@code {
    private string qrText = "";
    private string QrCodeDataUrl = "";

    private void GenerateQr()
    {
        if (!string.IsNullOrEmpty(qrText))
        {
            var qr = QRCodeWriter.CreateQrCode(qrText, 400);
            QrCodeDataUrl = qr.ToDataUrl();
        }
    }
}
@page "/qrcode"
@using IronBarCode

<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>

@if (!string.IsNullOrEmpty(QrCodeDataUrl))
{
    <img src="@QrCodeDataUrl" alt="QR Code" />
}

@code {
    private string qrText = "";
    private string QrCodeDataUrl = "";

    private void GenerateQr()
    {
        if (!string.IsNullOrEmpty(qrText))
        {
            var qr = QRCodeWriter.CreateQrCode(qrText, 400);
            QrCodeDataUrl = qr.ToDataUrl();
        }
    }
}
@page "/qrcode"
@Imports IronBarCode

<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>

@if Not String.IsNullOrEmpty(QrCodeDataUrl) Then
    <img src="@QrCodeDataUrl" alt="QR Code" />
End If

@Code
    Private qrText As String = ""
    Private QrCodeDataUrl As String = ""

    Private Sub GenerateQr()
        If Not String.IsNullOrEmpty(qrText) Then
            Dim qr = QRCodeWriter.CreateQrCode(qrText, 400)
            QrCodeDataUrl = qr.ToDataUrl()
        End If
    End Sub
End Code
$vbLabelText   $csharpLabel

Pour exporter des codes-barres au format HTML, consultez le guide " Créer un code-barres au format HTML " . Lors de l'application de licences dans les applications Web, consultez le guide des clés de licence web.config .

Quelles sont les meilleures pratiques pour la mise en œuvre des codes QR ?

Quel niveau de correction d'erreurs dois-je choisir ?

La correction des erreurs influe sur la résilience et la capacité. Pour plus d'informations, consultez le guide de correction des erreurs . La bibliothèque inclut des seuils de confiance pour l'apprentissage automatique afin d'améliorer la précision :

Niveau Récupération Cas d'utilisation
Faible 7% Environnements numériques propres
Moyen 15% Documents imprimés, cartes de visite
Haut 25% Signalétique extérieure, articles manipulés
Le plus haut 30% Usage industriel, logos ajoutés

Quelle taille doivent avoir mes codes QR ?

Calculer la taille optimale en fonction de la distance de balayage. Découvrez comment paramétrer les marges pour une numérisation améliorée. L' exemple de paramétrage des marges illustre les bonnes pratiques :

// 1:10 ratio - 1cm QR per 10cm distance
int CalculateQrSize(double scanDistanceMeters)
{
    int sizeInCm = (int)(scanDistanceMeters * 10);
    return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI
}

// Set appropriate margins for reliable scanning
public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance)
{
    int size = CalculateQrSize(scanDistance);
    var qr = QRCodeWriter.CreateQrCode(data, size);
    qr.SetMargins(size / 20); // 5% margin
    return qr;
}
// 1:10 ratio - 1cm QR per 10cm distance
int CalculateQrSize(double scanDistanceMeters)
{
    int sizeInCm = (int)(scanDistanceMeters * 10);
    return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI
}

// Set appropriate margins for reliable scanning
public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance)
{
    int size = CalculateQrSize(scanDistance);
    var qr = QRCodeWriter.CreateQrCode(data, size);
    qr.SetMargins(size / 20); // 5% margin
    return qr;
}
' 1:10 ratio - 1cm QR per 10cm distance
Private Function CalculateQrSize(scanDistanceMeters As Double) As Integer
    Dim sizeInCm As Integer = CInt(scanDistanceMeters * 10)
    Return CInt(sizeInCm * 37.8) ' Convert to pixels at 96 DPI
End Function

' Set appropriate margins for reliable scanning
Public Function CreateScanOptimizedQr(data As String, scanDistance As Integer) As GeneratedBarcode
    Dim size As Integer = CalculateQrSize(scanDistance)
    Dim qr = QRCodeWriter.CreateQrCode(data, size)
    qr.SetMargins(size / 20) ' 5% margin
    Return qr
End Function
$vbLabelText   $csharpLabel

Comment garantir la compatibilité mobile ?

Amélioration des paramètres de lecture de codes-barres pour les appareils mobiles. En cas de problème de reconnaissance, consultez le guide de dépannage " Code-barres non reconnu " :

public GeneratedBarcode CreateMobileOptimizedQr(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium);
    qr.SetMargins(20); // Adequate quiet zone
    qr.ChangeBarCodeColor(System.Drawing.Color.Black);
    qr.ChangeBackgroundColor(System.Drawing.Color.White);
    return qr;
}
public GeneratedBarcode CreateMobileOptimizedQr(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium);
    qr.SetMargins(20); // Adequate quiet zone
    qr.ChangeBarCodeColor(System.Drawing.Color.Black);
    qr.ChangeBackgroundColor(System.Drawing.Color.White);
    return qr;
}
Public Function CreateMobileOptimizedQr(ByVal data As String) As GeneratedBarcode
    Dim qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium)
    qr.SetMargins(20) ' Adequate quiet zone
    qr.ChangeBarCodeColor(System.Drawing.Color.Black)
    qr.ChangeBackgroundColor(System.Drawing.Color.White)
    Return qr
End Function
$vbLabelText   $csharpLabel

Pour le développement mobile multiplateforme, consultez le tutoriel sur le lecteur de codes-barres .NET MAUI . La bibliothèque prend en charge nativement les plateformes iOS et Android .## Scénarios d'intégration courants

Création de codes QR pour campagnes marketing

Pour mettre en œuvre des codes QR marketing traçables avec une marque personnalisée, reportez-vous au guide des vitesses de lecture pour la gestion de la vitesse de lecture des codes-barres :

public GeneratedBarcode CreateCampaignQr(string campaignId, string userId)
{
    string trackingUrl = "___PROTECTED_URL_79___";
    var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"));
    qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}");
    return qr;
}

// Batch generate campaign materials
public async Task GenerateCampaignBatch(List<string> userIds, string campaignId)
{
    var tasks = userIds.Select(async userId =>
    {
        var qr = CreateCampaignQr(campaignId, userId);
        await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"));
    });

    await Task.WhenAll(tasks);
}
public GeneratedBarcode CreateCampaignQr(string campaignId, string userId)
{
    string trackingUrl = "___PROTECTED_URL_79___";
    var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"));
    qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}");
    return qr;
}

// Batch generate campaign materials
public async Task GenerateCampaignBatch(List<string> userIds, string campaignId)
{
    var tasks = userIds.Select(async userId =>
    {
        var qr = CreateCampaignQr(campaignId, userId);
        await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"));
    });

    await Task.WhenAll(tasks);
}
Imports System.Drawing
Imports System.Threading.Tasks

Public Class BarcodeGenerator
    Public Function CreateCampaignQr(campaignId As String, userId As String) As GeneratedBarcode
        Dim trackingUrl As String = "___PROTECTED_URL_79___"
        Dim qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000)
        qr.ChangeBarCodeColor(ColorTranslator.FromHtml("#1E3A8A"))
        qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}")
        Return qr
    End Function

    ' Batch generate campaign materials
    Public Async Function GenerateCampaignBatch(userIds As List(Of String), campaignId As String) As Task
        Dim tasks = userIds.Select(Async Function(userId)
                                       Dim qr = CreateCampaignQr(campaignId, userId)
                                       Await Task.Run(Sub() qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"))
                                   End Function)

        Await Task.WhenAll(tasks)
    End Function
End Class
$vbLabelText   $csharpLabel

Générer des codes QR pour les étiquettes de produits

Créez des codes QR pour la gestion des stocks. Pour la gestion des formats spéciaux, consultez le guide de dépannage GS1-128 . Lorsque vous travaillez avec des types de codes-barres spécifiques comme les codes-barres Code 39 ou MSI , consultez les guides spécifiques au format :

public void GenerateProductLabel(Product product)
{
    var productData = new
    {
        sku = product.SKU,
        batch = product.BatchNumber,
        expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
    };

    string json = System.Text.Json.JsonSerializer.Serialize(productData);
    var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.AddAnnotationTextAboveBarcode(product.Name);
    qr.SaveAsPng($"labels/product-{product.SKU}.png");
}

// Generate 1-BPP labels for thermal printers
public void GenerateThermalLabel(Product product)
{
    var qr = CreateProductQr(product);
    qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png");
}
public void GenerateProductLabel(Product product)
{
    var productData = new
    {
        sku = product.SKU,
        batch = product.BatchNumber,
        expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
    };

    string json = System.Text.Json.JsonSerializer.Serialize(productData);
    var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.AddAnnotationTextAboveBarcode(product.Name);
    qr.SaveAsPng($"labels/product-{product.SKU}.png");
}

// Generate 1-BPP labels for thermal printers
public void GenerateThermalLabel(Product product)
{
    var qr = CreateProductQr(product);
    qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png");
}
Public Sub GenerateProductLabel(product As Product)
    Dim productData = New With {
        .sku = product.SKU,
        .batch = product.BatchNumber,
        .expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
    }

    Dim json As String = System.Text.Json.JsonSerializer.Serialize(productData)
    Dim qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High)
    qr.AddAnnotationTextAboveBarcode(product.Name)
    qr.SaveAsPng($"labels/product-{product.SKU}.png")
End Sub

' Generate 1-BPP labels for thermal printers
Public Sub GenerateThermalLabel(product As Product)
    Dim qr = CreateProductQr(product)
    qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png")
End Sub
$vbLabelText   $csharpLabel

Pour l'impression d'étiquettes spécialisées, consultez le guide des images de codes-barres 1-BPP . Lors de la lecture de documents multipages, consultez le guide sur les GIF et TIFF multipages .

Amélioration des performances de lecture des codes-barres

Pour les applications de numérisation à haut volume, utilisez des zones de recadrage pour limiter les zones de numérisation et améliorer les performances. Les options de vitesse de lecture permettent un contrôle précis du compromis entre précision et vitesse :

// Define crop region for faster scanning
var cropRegion = new Rectangle(100, 100, 300, 300);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode,
    CropArea = cropRegion
};

var results = BarcodeReader.Read("image.png", options);
// Define crop region for faster scanning
var cropRegion = new Rectangle(100, 100, 300, 300);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode,
    CropArea = cropRegion
};

var results = BarcodeReader.Read("image.png", options);
' Define crop region for faster scanning
Dim cropRegion As New Rectangle(100, 100, 300, 300)
Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Faster,
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode,
    .CropArea = cropRegion
}

Dim results = BarcodeReader.Read("image.png", options)
$vbLabelText   $csharpLabel

Lors de l'utilisation d'objets System.Drawing , la bibliothèque assure une compatibilité multiplateforme grâce à IronDrawing .

Points clés à retenir

IronBarcode offre une solution complète pour la génération de codes QR dans les applications .NET. La bibliothèque fournit des API intuitives, une documentation exhaustive et des fonctionnalités prêtes pour la production, notamment la tolérance aux pannes , la prise en charge multiplateforme et l'optimisation des performances . Restez informé des dernières fonctionnalités grâce au journal des modifications . Pour les déploiements soucieux de la sécurité, consultez les divulgations CVE de sécurité .

Vous trouverez des informations sur les licences sur la page dédiée . IronBarcode propose une licence développeur gratuite avec des options premium incluant le support et les mises à jour. Pour les clients existants, découvrez les extensions de licence et les options de mise à niveau . Si vous avez besoin d'aide concernant les licences, consultez le guide d'application des clés de licence et la configuration des licences dans le fichier web.config .

Pour les déploiements en production, consultez les guides relatifs à AWS Lambda , Azure Functions et aux conteneurs Docker . Pour résoudre les problèmes de déploiement spécifiques, consultez le guide d'exécution AWS Lambda et les solutions aux exceptions de copie d'exécution . En cas de faux positifs , consultez le guide de dépannage détaillé.

Pour obtenir une assistance technique, veuillez soumettre une demande d'ingénierie . La bibliothèque fait l'objet de mises à jour régulières, comme indiqué dans la section " Mises à jour du produit " , garantissant ainsi une compatibilité continue et de nouvelles fonctionnalités.

Premiers pas avec un exemple de code QR

Générez un code QR avec un style personnalisé en quelques lignes de code seulement. Pour plus d'exemples, consultez l' exemple de création de code-barres et explorez le tutoriel sur la lecture des codes-barres pour des solutions complètes. D'autres exemples incluent la lecture de codes-barres à partir de fichiers PDF et la création de codes-barres à partir de données :

using IronBarCode;

// Create QR code with custom size and error correction
var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy);
qrCode.AddBarcodeValueTextBelowBarcode();

// Save as image
qrCode.SaveAsPng("quickstart-qr.png");

// Export for API
byte[] pngBytes = qrCode.ToPngBinaryData();
using IronBarCode;

// Create QR code with custom size and error correction
var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy);
qrCode.AddBarcodeValueTextBelowBarcode();

// Save as image
qrCode.SaveAsPng("quickstart-qr.png");

// Export for API
byte[] pngBytes = qrCode.ToPngBinaryData();
Imports IronBarCode

' Create QR code with custom size and error correction
Dim qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High)

' Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy)
qrCode.AddBarcodeValueTextBelowBarcode()

' Save as image
qrCode.SaveAsPng("quickstart-qr.png")

' Export for API
Dim pngBytes As Byte() = qrCode.ToPngBinaryData()
$vbLabelText   $csharpLabel

IronBarcode prend en charge le déploiement sur AWS Lambda , Azure , Docker et les plateformes mobiles via .NET MAUI . Pour obtenir une assistance technique, veuillez soumettre une demande d'ingénierie . Consultez les informations relatives aux vulnérabilités CVE en matière de sécurité pour répondre aux exigences de sécurité des entreprises.

Explorez les fonctionnalités de lecture des codes-barres pour comprendre toutes les capacités de la reconnaissance des codes-barres, y compris la prise en charge de la lecture des codes-barres Code 39 et d'autres formats spécialisés. L'ensemble complet des fonctionnalités de cette bibliothèque la rend adaptée aux applications d'entreprise nécessitant des capacités fiables de génération et de lecture de codes-barres.

Questions Fréquemment Posées

Comment générer un code QR dans une application .NET ?

Vous pouvez générer un code QR dans une application .NET en utilisant la méthode QRCodeWriter.CreateQrCode dans IronBarcode. Cette méthode vous permet de spécifier les données du code QR, la taille et le niveau de correction d'erreur.

Quelles sont les options de personnalisation disponibles pour les codes QR ?

IronBarcode permet la personnalisation des codes QR, y compris le changement de couleurs et l'intégration d'images telles que des logos d'entreprise. Ces fonctionnalités améliorent l'attrait visuel et l'intégration de la marque des codes QR.

Comment puis-je installer la bibliothèque IronBarcode dans mon projet ?

Vous pouvez installer IronBarcode dans votre projet via l'interface utilisateur du gestionnaire de packages NuGet de Visual Studio, la console du gestionnaire de packages, ou en le téléchargeant depuis le site web NuGet.

IronBarcode peut-il être utilisé pour lire des codes-barres à partir de cadres vidéo ?

Oui, IronBarcode peut traiter des cadres vidéo, lui permettant de lire des codes-barres en temps réel en corrigeant la rotation et le bruit, améliorant ainsi l'efficacité de la lecture des codes-barres.

Quels formats de fichiers peuvent être utilisés pour enregistrer les codes QR générés avec IronBarcode ?

Les codes QR générés avec IronBarcode peuvent être enregistrés dans plusieurs formats, y compris PNG et HTML, offrant ainsi une flexibilité pour différents besoins d'application.

IronBarcode est-il adapté aux applications console et web ?

Oui, IronBarcode est polyvalent et peut être utilisé dans les applications console et les applications web .NET MVC, ce qui en fait un choix robuste pour divers environnements de développement.

Quels sont les niveaux de correction d'erreurs disponibles pour les codes QR dans IronBarcode ?

IronBarcode prend en charge quatre niveaux de correction d'erreurs pour les codes QR : Faible, Moyen, Élevé, et Très Élevé, garantissant l'intégrité des données même si le code QR est endommagé.

Quelles sont les options de licence pour IronBarcode ?

IronBarcode offre une licence développeur gratuite et une version premium qui inclut un support supplémentaire et des mises à jour, répondant à différents besoins de développement et d'entreprise.

IronBarcode est-il compatible avec .NET Core et .NET Framework ?

Oui, IronBarcode est compatible avec .NET Core et .NET Framework, prenant en charge différentes architectures, y compris les systèmes 32 et 64 bits.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite