Comment générer des codes QR et des codes-barres en C#

Générer des codes QR en C# - Tutoriel complet pour les développeurs .NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

Besoin de générer des codes QR dans votre application C# ? Ce tutoriel vous montre précisément comment créer, personnaliser et vérifier des codes QR à l'aide d'IronBarcode, depuis les implémentations simples sur une seule ligne jusqu'aux fonctionnalités avancées telles que l'intégration de logos et l'encodage de données binaires.

Que vous développiez des systèmes de gestion des stocks, des plateformes de billetterie événementielle ou des solutions de paiement sans contact, vous apprendrez à implémenter des fonctionnalités de code QR de qualité professionnelle dans vos applications .NET.

Démarrage rapide : Création d'un code QR sur une seule ligne avec IronBarcode

Envie de générer rapidement un code QR ? Voici comment utiliser l'API QRCodeWriter d'IronBarcode pour produire un code QR en une seule ligne de code ; la personnalisation est optionnelle mais très puissante.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronBarcode avec le gestionnaire de packages NuGet

    PM > Install-Package BarCode

  2. Copiez et exécutez cet extrait de code.

    var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment installer une bibliothèque de codes QR en C# ?

Commencez à utiliser IronBarcode dans votre projet aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Installez IronBarcode à l'aide du gestionnaire de packages NuGet avec cette simple commande :

Install-Package BarCode

Installation via NuGet

Vous pouvez également télécharger directement la DLL IronBarcode et l'ajouter comme référence à votre projet.

Espaces de noms requis à importer

Ajoutez ces espaces de noms pour accéder aux fonctionnalités de génération de codes QR d'IronBarcode :

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.Linq
$vbLabelText   $csharpLabel

Comment créer un code QR simple en C# ?

Générez un code QR avec une seule ligne de code grâce à la méthode CreateQrCode d'IronBarcode :

using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
Imports IronBarCode

' Generate a QR code with text content
Private qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium)
qrCode.SaveAsPng("MyQR.png")
$vbLabelText   $csharpLabel

La méthode CreateQrCode accepte trois paramètres :

  • Contenu textuel : Les données à encoder (prend en charge les URL, le texte ou toute chaîne de caractères)
  • Taille : Dimensions en pixels du code QR carré (500x500 dans cet exemple)
  • Correction d'erreurs : Détermine la lisibilité dans des conditions sous-optimales (faible, moyenne, quartile ou élevée)

Des niveaux de correction d'erreurs plus élevés permettent aux codes QR de rester lisibles même lorsqu'ils sont partiellement endommagés ou masqués, bien qu'ils entraînent des motifs plus denses avec davantage de modules de données.

! Code QR standard généré avec IronBarcode en C# Un code QR basique contenant le texte " hello world ", généré à 500x500 pixels avec une correction d'erreur moyenne

Comment ajouter un logo à mon code QR ?

L'intégration de logos dans les codes QR améliore la reconnaissance de la marque tout en préservant la facilité de lecture. IronBarcode positionne et dimensionne automatiquement les logos afin de préserver l'intégrité du code QR :

using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
Imports IronBarCode
Imports IronSoftware.Drawing

' Load logo image
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")

' Create QR code with embedded logo
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

' Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen)

' Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png")
$vbLabelText   $csharpLabel

La méthode CreateQrCodeWithLogo gère intelligemment le placement du logo en :

  • Adaptation automatique de la taille du logo pour garantir la lisibilité du code QR
  • Le positionner dans une zone silencieuse afin d'éviter toute corruption de données
  • Préserver les couleurs originales du logo lors du changement des couleurs du code QR

Cette approche garantit que vos codes QR de marque restent pleinement fonctionnels sur tous les appareils et applications de lecture.

! Code QR avec logo Visual Studio intégré Code QR affichant le logo de Visual Studio, illustrant le dimensionnement et le positionnement automatiques du logo par IronBarcode

Comment exporter des codes QR vers différents formats ?

IronBarcode prend en charge plusieurs formats d'exportation pour différents cas d'utilisation. Exportez vos codes QR sous forme d'images, de fichiers PDF ou HTML :

using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
Imports IronBarCode
Imports System.Drawing

' Create QR code with logo
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

' Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen)

' Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf") ' PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html") ' Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png") ' PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg") ' JPEG image
$vbLabelText   $csharpLabel

Chaque format répond à des objectifs spécifiques :

  • PDF : Idéal pour les documents et rapports imprimables
  • HTML : Idéal pour l'intégration web sans dépendances externes
  • PNG/JPEG : Formats d'image standard pour une utilisation polyvalente

Comment vérifier la lisibilité du code QR après personnalisation ?

Les modifications de couleur et l'ajout de logos peuvent avoir un impact sur la capacité de lecture des codes QR. Utilisez la méthode Verify() pour garantir la lisibilité de vos codes QR personnalisés :

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");

// Open in default browser
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
    FileName = "MyVerifiedQR.html",
    UseShellExecute = true
});
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");

// Open in default browser
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
    FileName = "MyVerifiedQR.html",
    UseShellExecute = true
});
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Drawing

' Generate QR code with logo
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myVerifiedQR As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

' Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue)

' Verify the QR code can still be scanned
If Not myVerifiedQR.Verify() Then
	Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue")
	myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)
End If

' Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")

' Open in default browser
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo With {
	.FileName = "MyVerifiedQR.html",
	.UseShellExecute = True
})
$vbLabelText   $csharpLabel

La méthode Verify() effectue un test de numérisation complet sur votre code QR. Cela garantit la compatibilité entre différents appareils de numérisation et conditions d'éclairage avant le déploiement.

! Code QR vérifié de couleur bleu foncé et logo Visual Studio Un code QR vérifié avec succès, de couleur bleu foncé, présentant un contraste adéquat pour une lecture fiable.

Comment encoder des données binaires dans des codes QR ?

Les codes QR excellent dans le stockage efficace des données binaires. Cette fonctionnalité permet des applications avancées telles que le transfert de données chiffrées, le partage de fichiers et la configuration des appareils IoT :

using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
Imports IronBarCode
Imports System
Imports System.Linq

' Convert string to binary data
Private binaryData() As Byte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")

' Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png")

' Read and verify binary data integrity
Dim myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()

' Confirm data matches original
If binaryData.SequenceEqual(myReturnedData.BinaryValue) Then
	Console.WriteLine("Binary Data Read and Written Perfectly")
Else
	Throw New Exception("Data integrity check failed")
End If
$vbLabelText   $csharpLabel

L'encodage binaire dans les codes QR offre plusieurs avantages :

  • Efficacité : Stocke les données au format binaire compact
  • Polyvalence : Gère tout type de données (fichiers, contenu chiffré, objets sérialisés)
  • Intégrité : Préserve les séquences d'octets exactes sans problème d'encodage

Cette fonctionnalité distingue IronBarcode des bibliothèques de codes QR de base, permettant des scénarios d'échange de données sophistiqués dans vos applications.

! Code QR contenant des données encodées en binaire Code QR stockant des données binaires, illustrant les capacités d'encodage avancées d'IronBarcode

Comment lire les codes QR en C# ?

IronBarcode offre des capacités de lecture de codes QR flexibles. Voici l'approche la plus simple :

using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
Imports IronBarCode
Imports System
Imports System.Linq

' Read QR code with optimized settings
Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})

' Extract and display the decoded value
If result IsNot Nothing AndAlso result.Any() Then
	Console.WriteLine(result.First().Value)
Else
	Console.WriteLine("No QR codes found in the image.")
End If
$vbLabelText   $csharpLabel

Pour des scénarios plus complexes nécessitant un contrôle précis :

using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
Imports IronBarCode
Imports System
Imports System.Linq

' Configure advanced reading options
Private options As New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Faster,
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode,
	.Multithreaded = True,
	.MaxParallelThreads = 4,
	.RemoveFalsePositive = True,
	.ImageFilters = New ImageFilterCollection() From {
		New AdaptiveThresholdFilter(),
		New ContrastFilter(),
		New SharpenFilter()
	}
}

' Read with advanced configuration
Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)
$vbLabelText   $csharpLabel

Ces options de lecture avancées permettent une détection fiable des codes QR même dans des conditions difficiles, comme un éclairage insuffisant, une distorsion de l'image ou des impressions de mauvaise qualité.

Quelles sont les prochaines étapes du développement des codes QR ?

Maintenant que vous maîtrisez la génération de codes QR avec IronBarcode, explorez ces sujets avancés :

Ressources à télécharger

Accédez au code source complet et aux exemples :

Documentation de l'API

Explorez l'ensemble des fonctionnalités dans la documentation de l'API :

Alternative : IronQR pour les applications QR avancées

Pour les projets nécessitant des fonctionnalités de pointe en matière de codes QR, considérez IronQR, la bibliothèque de codes QR spécialisée d'Iron Software, dotée d'une lecture basée sur l'apprentissage automatique avec une précision de 99,99 % et des options de génération avancées.

Prêt à intégrer les codes QR dans votre application .NET ? Démarrez votre essai gratuit ou téléchargez IronBarcode dès aujourd'hui.

Questions Fréquemment Posées

Comment générer un code QR en C# ?

Vous pouvez générer un code QR en C# en utilisant la méthode IronBarcode's QRCodeWriter.CreateQrCode(). Cette méthode vous permet de passer votre contenu, taille, et niveau de correction d'erreur pour créer efficacement un code QR.

Quels formats d'image les codes QR peuvent-ils être exportés ?

Avec IronBarcode, vous pouvez exporter des codes QR vers divers formats, y compris PNG, JPEG, PDF et HTML. Des méthodes comme SaveAsPng(), SaveAsJpeg(), SaveAsPdf(), et SaveAsHtmlFile() sont disponibles à cet effet.

Comment puis-je ajouter un logo d'entreprise à un code QR ?

IronBarcode fournit la méthode CreateQrCodeWithLogo(), où vous pouvez passer un objet QRCodeLogo contenant l'image de votre logo. La bibliothèque garantit que le logo est correctement dimensionné et positionné pour que le code QR reste lisible.

Qu'est-ce que la correction d'erreur de code QR et quel niveau choisir ?

La correction d'erreur dans les codes QR leur permet de rester scannables même s'ils sont partiellement endommagés. IronBarcode offre quatre niveaux : Faible (7%), Moyen (15%), Quartile (25%) et Élevé (30%). Moyen est adapté pour la plupart des usages, tandis qu'Élevé est idéal pour les environnements difficiles.

Comment vérifier la lisibilité d'un code QR personnalisé ?

Vous pouvez utiliser la méthode Verify() sur un objet GeneratedBarcode pour vous assurer que votre code QR personnalisé reste scannable après des modifications telles que des changements de couleur ou des ajouts de logo.

Les données binaires peuvent-elles être encodées dans les codes QR ?

Oui, la méthode CreateQrCode() d'IronBarcode prend en charge l'encodage de tableaux d'octets, vous permettant de stocker des données binaires telles que des fichiers ou du contenu crypté au sein des codes QR.

Comment lire des codes QR à partir d'images en C# ?

Pour lire des codes QR à partir d'images en C#, utilisez la méthode BarcodeReader.Read() d'IronBarcode. Pour une performance optimisée, spécifiez BarcodeEncoding.QRCode dans le BarcodeReaderOptions.

Quelle est la capacité de données maximale d'un code QR ?

Les codes QR générés par IronBarcode peuvent contenir jusqu'à 2 953 octets, 4 296 caractères alphanumériques ou 7 089 chiffres, selon le niveau de correction d'erreur sélectionné.

Comment puis-je changer la couleur d'un code QR tout en assurant qu'il reste scannable ?

La méthode ChangeBarCodeColor() dans IronBarcode vous permet de changer la couleur d'un code QR. Utilisez toujours la méthode Verify() par la suite pour confirmer que la lisibilité du code QR n'est pas affectée par le changement de couleur.

Quelles fonctionnalités offre une bibliothèque spécialisée de code QR ?

IronQR, une bibliothèque spécialisée d'Iron Software, inclut des fonctionnalités avancées telles que la lecture de code QR alimentée par l'apprentissage automatique avec une précision de 99,99%, et des capacités de génération robuste adaptées aux applications complexes.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur technique chez Iron Software et un ingénieur visionnaire pionnier dans la technologie des PDF en C#. En tant que développeur original derrière la base de code principale d'Iron Software, il a façonné l'architecture du produit de l'entreprise depuis sa création, ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,979,979 | Version: 2025.11 vient de sortir