UTILISATION D'IRONBARCODE

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

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 ASP.NET Web Application dans les 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 en 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 de la souris sur le dossier Models > Add > Class....

How to Print Barcode in ASP.NET in C#, Figure 2 : Naviguer vers la boîte de dialogue d'ajout de classe

Naviguer vers la boîte de dialogue d'ajout de 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
VB   C#

Le FileName sera utilisé pour obtenir le nom de l'image du code-barres de la part 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 Vue et un Modèle 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, cliquez avec le bouton droit de la souris sur le dossier Controllers > Add > Controller. 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 en ASP.NET en C#, Figure 3 : Boîte de dialogue Ajouter un contrôleur

Dialogue d'ajout de contrôleur

Inscrivez 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. Il est gratuit pour le développement et offre de nombreuses fonctionnalités pour personnaliser les codes-barres, telles que l'ajout deun logo sur une image de code-barresen ajoutant une valeur au-dessous ou au-dessus du code-barres,ajouter des annotations au-dessous ou au-dessus du code-barresle code-barres peut être modifié, redimensionné, sauvegardé enplusieurs formats d'imageetc. Pour plus de détails, cliquez ici.

Allez dans la console du gestionnaire de paquets. 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
VB   C#

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

La fonction CreateBarcode fournie par le programmeBarcodeWriter 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 définir le chemin où les images de codes-barres générées seront sauvegardées. La méthode Path.Combine combine le chemin et le nom de l'image du code-barres.

LesAddBarcodeValueTextAboveBarcode ajoutera la valeur du code-barres. IronBarcode fournit d'autres paramètres de code-barres tels que max-height, max-width, barcode, color, et ainsi de suite. Vous pouvez explorer et utiliser les différents paramètres.

LesSaveAsJpeg (enregistrer sous forme de Jpeg) prend le chemin comme argument et enregistre les codes-barres générés dans ce chemin particulier.

La méthode Directory.GetFile récupère l'image du code-barres nouvellement générée.

ViewBag.FileName est utilisé pour envoyer le chemin de l'image du code-barres à la vue pour 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".

How to Print Barcode in ASP.NET in C#, Figure 4 : Naviguer vers la boîte de dialogue d'ajout de vue

Naviguer vers l'ajout d'un dialogue de visualisation

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 en ASP.NET en C#, Figure 5 : Boîte de dialogue Ajouter une vue

Ajouter un dialogue de vue

Nommez votre vue et cliquez sur le bouton Add. 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
VB   C#

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 en ASP.NET en C#, Figure 6 : Exécuter l'application Web pour afficher le formulaire Create

Exécuter l'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 en ASP.NET en C#, Figure 7 : Saisissez le contenu de votre code-barres

Insérez le contenu de votre code-barres

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

Comment imprimer un code-barres en 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 égalementgé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 deux seulement en achetant la Suite Iron complète. Visitez le sitenotre page sur les licences pour plus de détails.

< PRÉCÉDENT
Comment générer un code QR dans les applications Windows C#
SUIVANT >
Générateur de code-barres .NET Tutoriel