UTILISATION D'IRONBARCODE

Comment imprimer un code-barres en ASP.NET en C#

Jordi Bardia
Jordi Bardia
juin 25, 2022
Mise à jour janvier 20, 2024
Partager:

Cet article explique comment imprimer des images de codes-barres dans les applications Web ASP.NET à l'aide de C#. Le Framework MVC sera utilisé pour cet exemple, mais vous pouvez également utiliser ASP.NET Web Forms, Windows Forms ou Web API selon vos besoins.

Une connaissance de base du Framework .NET MVC vous permettra de mieux comprendre cet article.


Créer un projet MVC

Ouvrez Microsoft Visual Studio. Cliquez sur Créer un nouveau projet > Sélectionnez Application Web ASP.NET à partir des modèles > Appuyez sur Suivant > Nommez votre projet > Appuyez sur Suivant > Sélectionnez MVC > Cliquez sur le bouton Créer. Le projet sera créé comme indiqué ci-dessous.

Comment imprimer un code-barres dans ASP.NET en C#, Figure 1 : Créer un nouveau projet ASP.NET

Créer un nouveau projet ASP.NET

Ajouter un modèle

Cliquez avec le bouton droit sur le dossier Models > Ajouter > Classe....

Comment imprimer un code-barres dans ASP.NET en C#, Figure 2 : Naviguer vers le dialogue d'ajout de classe

Accéder à la boîte de dialogue pour ajouter une classe

Une nouvelle fenêtre apparaît. Nommez votre classe BarcodeModel.

Ecrivez le code suivant dans la classe de modèle.

public class BarcodeModel
{
    [Display(Name ="Barcode File Name")]
    public string FileName { get; set; }

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
public class BarcodeModel
{
    [Display(Name ="Barcode File Name")]
    public string FileName { get; set; }

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
Public Class BarcodeModel
	<Display(Name :="Barcode File Name")>
	Public Property FileName() As String

	<Display(Name := "Barcode Content")>
	Public Property BarcodeContent() As String
End Class
$vbLabelText   $csharpLabel

Le FileName sera utilisé pour obtenir le nom de l'image du code-barres de l'utilisateur. Le BarcodeContent est utilisé pour prendre le contenu du code-barres.

Ajouter un contrôleur

Ensuite, un Controller est ajouté au projet. Il communiquera avec une View et un Model en utilisant le modèle MVC. Le code permettant de générer des codes-barres ne comporte que deux ou trois lignes. Il n'est donc pas nécessaire de créer une classe distincte ; au lieu de cela, le code est ajouté à l'intérieur du contrôleur.

Pour ajouter le contrôleur, faites un clic droit sur le dossier Controllers > Ajouter > Contrôleur. Une nouvelle fenêtre apparaît. Sélectionnez MVC 5 Controller Empty. Cliquez sur le bouton Ajouter. Une nouvelle boîte apparaît.

Comment imprimer un code-barres dans ASP.NET en C#, Figure 3 : Boîte de dialogue d'ajout de contrôleur

Ajouter une boîte de dialogue de contrôleur

Écrivez le nom de votre contrôleur, par exemple BarcodeController. Cliquez sur le bouton Ajouter. Un nouveau contrôleur sera généré.

L'étape suivante consiste à installer la bibliothèque de codes-barres.

Installer la bibliothèque de codes-barres

La bibliothèque IronBarcode est recommandée comme bibliothèque tierce pour générer des codes-barres. C'est gratuit pour le développement et offre de nombreuses fonctionnalités pour personnaliser les codes-barres, telles que l'ajout d'un logo à une image de code-barres, l'ajout de valeur en dessous ou au-dessus du code-barres, l'ajout d'annotations en dessous ou au-dessus du code-barres, le redimensionnement du code-barres, la sauvegarde du code-barres dans de multiples formats d'image, etc. Pour plus de détails, veuillez cliquer ici.

Allez dans la console du gestionnaire de packages. Tapez la commande suivante et appuyez sur Entrée.

Install-Package BarCode

Cette commande installera la bibliothèque IronBarcode dans le projet.

Générer le code-barres

Ensuite, ajoutez l'exemple de code suivant au contrôleur.

[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
    try
    {
        var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
        string path = Server.MapPath("~/Files/");
        string filepath = Path.Combine(path, model.FileName);
        MyBarCode.AddBarcodeValueTextAboveBarcode();
        MyBarCode.SaveAsJpeg(filepath);
        string image = Directory.GetFiles(path).FirstOrDefault();
        ViewBag.fileName = image;
        return View();
    }
    catch
    {
        return View();
    }
}
[HttpPost]
public ActionResult CreateBarcode(BarcodeModel model)
{
    try
    {
        var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);
        string path = Server.MapPath("~/Files/");
        string filepath = Path.Combine(path, model.FileName);
        MyBarCode.AddBarcodeValueTextAboveBarcode();
        MyBarCode.SaveAsJpeg(filepath);
        string image = Directory.GetFiles(path).FirstOrDefault();
        ViewBag.fileName = image;
        return View();
    }
    catch
    {
        return View();
    }
}
<HttpPost>
Public Function CreateBarcode(ByVal model As BarcodeModel) As ActionResult
	Try
		Dim MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128)
		Dim path As String = Server.MapPath("~/Files/")
		Dim filepath As String = System.IO.Path.Combine(path, model.FileName)
		MyBarCode.AddBarcodeValueTextAboveBarcode()
		MyBarCode.SaveAsJpeg(filepath)
		Dim image As String = Directory.GetFiles(path).FirstOrDefault()
		ViewBag.fileName = image
		Return View()
	Catch
		Return View()
	End Try
End Function
$vbLabelText   $csharpLabel

try-catch est utilisé pour intercepter toute exception d'exécution.

La fonction CreateBarcode fournie par la classe BarcodeWriter prend deux arguments : le contenu du code-barres et le schéma d'encodage. En outre, il accepte également 11 autres arguments facultatifs, dont la hauteur maximale, la largeur maximale, etc.

La fonction Server.MapPath est utilisée pour mapper le chemin où les images de codes-barres générées seront enregistrées. La méthode Path.Combine combinera le chemin et le nom de l'image du code-barres.

La fonction AddBarcodeValueTextAboveBarcode ajoutera la valeur du code-barres. IronBarcode propose d'autres paramètres de code-barres tels que max-height, max-width, barcode, color, etc. Vous pouvez explorer et utiliser les différents paramètres.

La fonction SaveAsJpeg prend le chemin comme argument et enregistre les codes-barres générés dans ce chemin spécifique.

La méthode Directory.GetFile récupérera la nouvelle image de code-barres générée.

ViewBag.FileName est utilisé pour envoyer le chemin de l'image du code-barres à la vue afin d'afficher l'image du code-barres générée.

Les codes QR peuvent également être générés de la même manière en changeant le schéma d'encodage de Code128 à QRCode.

Ajouter un point de vue

L'étape suivante consiste à fournir le côté client de cette application Web ASP.NET en ajoutant une nouvelle vue. Cliquez avec le bouton droit de la souris sur le nom de la méthode du contrôleur et cliquez sur le bouton "Ajouter une vue".

Comment imprimer un code-barres en ASP.NET en C#, Figure 4 : Accéder à la boîte de dialogue pour ajouter une vue

Accéder à la boîte de dialogue Ajouter une vue

Une nouvelle fenêtre apparaît. Sélectionnez MVC 5 View et cliquez sur le bouton Add.

Une nouvelle invite apparaît, comme indiqué ci-dessous.

Comment imprimer un code-barres dans ASP.NET en C#, Figure 5 : Boîte de dialogue Ajouter une vue

Ajouter la boîte de dialogue de vue

Donnez un nom à votre vue et cliquez sur le bouton Ajouter. Un nouveau fichier .cshtml sera créé.

Ajoutez le code suivant dans la vue nouvellement générée.

@model GenerateBarcodeMVC.Models.BarcodeModel

@{
ViewBag.DisplayBarcode = false;
}

<h2>Create</h2>

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>GenerateBarcode</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode"  />
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
@model GenerateBarcodeMVC.Models.BarcodeModel

@{
ViewBag.DisplayBarcode = false;
}

<h2>Create</h2>

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>GenerateBarcode</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.BarcodeContent, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.BarcodeContent, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.BarcodeContent, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode"  />
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
model ReadOnly Property () As GenerateBarcodeMVC.Models.BarcodeModel
ViewBag.DisplayBarcode = False
End Property

'INSTANT VB TODO TASK: The following line could not be converted:
(Of h2) Create</h2> [using](Html.BeginForm())
If True Then
'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:
Html.AntiForgeryToken() <div class="form-horizontal"> (Of h4) GenerateBarcode</h4> <hr /> Html.ValidationSummary(True, "", New With {Key .class = "text-danger"}) <div class="form-group"> Html.LabelFor(Function(model) model.FileName, htmlAttributes:= New With {Key .class = "control-label col-md-2"}) <div class="col-md-10"> Html.EditorFor(Function(model) model.FileName, New With {
	Key .htmlAttributes = New With {Key .class = "form-control"}
}) Html.ValidationMessageFor(Function(model) model.FileName, "", New With {Key .class = "text-danger"}) </div> </div> <div class="form-group"> Html.LabelFor(Function(model) model.BarcodeContent, htmlAttributes:= New With {Key .class = "control-label col-md-2"}) <div class="col-md-10"> Html.EditorFor(Function(model) model.BarcodeContent, New With {
	Key .htmlAttributes = New With {Key .class = "form-control"}
}) Html.ValidationMessageFor(Function(model) model.BarcodeContent, "", New With {Key .class = "text-danger"}) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <img src="~/Files/@Path.GetFileName(ViewBag.FileName)" alt="Barcode" /> </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Create" class="btn btn-default" /> </div> </div> </div>
End If
Dim Scripts As section
If True Then
Scripts.Render("~/bundles/jqueryval")
End If
$vbLabelText   $csharpLabel

Ensuite, cliquez avec le bouton droit de la souris dans la vue et cliquez sur le bouton Exécuter dans le navigateur.

Sortie

Comment imprimer un code-barres dans ASP.NET en C#, Figure 6 : Exécuter l'application Web pour afficher le formulaire de création

Exécuter une application web pour afficher le formulaire de création

Saisissez le nom de l'image du code-barres et le contenu du code-barres comme indiqué ci-dessous :

Comment imprimer un code-barres dans ASP.NET en C#, Figure 7 : Saisissez le contenu de votre code-barres

Saisissez le contenu de votre code-barres

Cliquez sur le bouton Create. L'image du code-barres sera générée et affichée à l'écran comme indiqué ci-dessous.

Comment imprimer un code-barres dans ASP.NET en C#, Figure 8 : Générer un code-barres à partir d'une URL

Générer un code-barres à partir d'une URL

Résumé

Ce tutoriel a démontré comment générer des codes-barres en utilisant ASP.NET en C#, combiné avec le Framework MVC. Microsoft Visual Studio est utilisé comme IDE. IronPDF est une bibliothèque tierce, gratuite pour le développement et compatible avec toutes les versions du Framework .NET, y compris la nouvelle version. IronBarcode est rapide et offre de nombreuses fonctionnalités pour travailler avec des codes-barres. Il peut également générer des codes QR en spécifiant différents types.

Il existe d'autres bibliothèques utiles telles que IronPDF pour travailler avec des documents PDF, IronXL pour travailler avec des documents Excel et IronOCR pour travailler avec l'OCR. Actuellement, vous pouvez obtenir les cinq bibliothèques pour le prix de seulement deux en achetant l'ensemble complet Iron Suite. Visitez notre page de licences pour plus de détails.

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