IRONBARCODE VERWENDEN

Wie drucke ich einen Barcode in ASP.NET in C#

Jordi Bardia
Jordi Bardia
25. Juni 2022
Aktualisiert 20. Januar 2024
Teilen Sie:

In diesem Artikel wird gezeigt, wie man Barcode-Bilder in ASP.NET-Webanwendungen mit C# drucken kann. Für dieses Beispiel wird das MVC-Framework verwendet, aber Sie können auch ASP.NET Web Forms, Windows Forms oder Web API je nach Ihren Bedürfnissen verwenden.

Grundlegende Kenntnisse über das ASP.NET MVC-Framework helfen Ihnen, diesen Artikel besser zu verstehen.


Ein MVC-Projekt erstellen

Öffnen Sie Microsoft Visual Studio. Klicken Sie auf Neues Projekt erstellen > Wählen Sie ASP.NET-Webanwendung aus den Vorlagen aus > Drücken Sie Weiter > Benennen Sie Ihr Projekt > Drücken Sie Weiter > Wählen Sie MVC > Klicken Sie auf die Schaltfläche Erstellen. Das Projekt wird wie unten dargestellt erstellt.

Wie man einen Barcode in ASP.NET mit C# druckt, Abbildung 1: Erstellen Sie ein neues ASP.NET-Projekt

Erstellen Sie ein neues ASP.NET-Projekt

Modell hinzufügen

Klicken Sie mit der rechten Maustaste auf den Ordner Models > Hinzufügen > Klasse....

Wie man Barcodes in ASP.NET in C# druckt, Abbildung 2: Zum Dialogfeld „Klasse hinzufügen“ navigieren

Zum Klassendialog hinzufügen navigieren

Es erscheint ein neues Fenster. Nennen Sie Ihre Klasse BarcodeModel.

Schreiben Sie den folgenden Code in die Modellklasse.

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

Der FileName wird verwendet, um den Namen des Barcode-Bildes vom Benutzer zu erhalten. Der BarcodeContent wird verwendet, um den Inhalt für den Barcode zu übernehmen.

Controller hinzufügen

Als Nächstes wird dem Projekt ein Controller hinzugefügt. Es wird mit einer View und einem Model unter Verwendung des MVC-Modells kommunizieren. Der Code zur Erzeugung von Strichcodes besteht aus nur zwei oder drei Zeilen. Daher ist eine separate Klasse nicht erforderlich; stattdessen wird der Code innerhalb des Controllers hinzugefügt.

Um den Controller hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Ordner Controllers > Hinzufügen > Controller. Es erscheint ein neues Fenster. Wählen Sie MVC 5 Controller Empty. Klicken Sie auf die Schaltfläche Hinzufügen. Es erscheint ein neues Feld.

Wie man Barcode in ASP.NET in C# druckt, Abbildung 3: Controller-Dialog hinzufügen

Controller hinzufügen Dialog

Geben Sie den Namen Ihres Controllers ein, zum Beispiel BarcodeController. Klicken Sie auf die Schaltfläche Hinzufügen. Es wird ein neuer Controller erstellt.

Der nächste Schritt ist die Installation der Barcode-Bibliothek.

Installieren Sie die Barcode-Bibliothek

Die IronBarcode-Bibliothek wird als Bibliothek eines Drittanbieters für die Erzeugung von Strichcodes empfohlen. Es ist kostenlos für die Entwicklung und bietet mehrere Funktionen zur Anpassung von Barcodes, wie zum Beispiel das Hinzufügen eines Logos zu einem Barcode-Bild, das Hinzufügen von Werten unterhalb oder oberhalb des Barcodes, das Hinzufügen von Anmerkungen unterhalb oder oberhalb des Barcodes, das Ändern der Größe des Barcodes, das Speichern des Barcodes in mehreren Bildformaten usw. Für weitere Details klicken Sie bitte hier.

Gehen Sie zur Paket-Manager-Konsole. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste.

Install-Package BarCode

Mit diesem Befehl wird die IronBarcode-Bibliothek im Projekt installiert.

Erzeugen Sie den Barcode

Fügen Sie anschließend den folgenden Beispielcode zum Controller hinzu.

[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 wird verwendet, um jede Laufzeitausnahme abzufangen.

Die CreateBarcode-Funktion, die von der BarcodeWriter-Klasse bereitgestellt wird, benötigt zwei Argumente: den Barcode-Inhalt und das Kodierungsschema. Darüber hinaus werden 11 weitere optionale Argumente akzeptiert, darunter maximale Höhe, maximale Breite usw.

Die Funktion Server.MapPath wird verwendet, um den Pfad zuzuordnen, an dem die generierten Barcode-Bilder gespeichert werden. Die Methode Path.Combine wird den Pfad und den Barcode-Bildnamen kombinieren.

Die Funktion AddBarcodeValueTextAboveBarcode wird den Barcode-Wert hinzufügen. IronBarcode bietet weitere Barcode-Einstellungen wie max-height, max-width, barcode, color usw. Sie können die verschiedenen Parameter erkunden und nutzen.

Die SaveAsJpeg-Funktion nimmt den Pfad als Argument und speichert die generierten Barcodes an diesem bestimmten Pfad.

Die Methode Directory.GetFile wird das neu generierte Barcode-Bild erhalten.

ViewBag.FileName wird verwendet, um den Pfad des Barcode-Bildes an die Ansicht zu übermitteln, um das generierte Barcode-Bild anzuzeigen.

QR-Codes können auch auf die gleiche Weise generiert werden, indem das Kodierungsschema von Code128 zu QRCode geändert wird.

Ansicht hinzufügen

Der nächste Schritt besteht darin, die Client-Seite für diese ASP.NET-Webanwendung bereitzustellen, indem eine neue Ansicht hinzugefügt wird. Klicken Sie mit der rechten Maustaste auf den Namen der Controller-Methode und klicken Sie auf die Schaltfläche "Ansicht hinzufügen".

So drucken Sie Barcodes in ASP.NET in C#, Abbildung 4: Navigieren Sie zum Dialog Ansicht hinzufügen

Navigieren Sie zu Ansicht-Dialog hinzufügen

Es erscheint ein neues Fenster. Wählen Sie die MVC 5-Ansicht aus, und klicken Sie auf die Schaltfläche Hinzufügen.

Es erscheint eine neue Eingabeaufforderung wie unten dargestellt.

Wie man in ASP.NET in C# Barcode druckt, Abbildung 5: Ansichts-Dialog hinzufügen

Ansicht hinzufügen Dialog

Benenne deine Ansicht und klicke auf die Schaltfläche Hinzufügen. Eine neue .cshtml-Datei wird erstellt.

Fügen Sie den folgenden Code in Ihre neu erstellte Ansicht ein.

@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

Klicken Sie dann mit der rechten Maustaste in die Ansicht und klicken Sie auf die Schaltfläche In Browser ausführen.

Ausgabe

Wie man Barcode in ASP.NET in C# druckt, Abbildung 6: Webanwendung ausführen, um Erstellungsformular anzuzeigen

Führen Sie die Webanwendung aus, um das Erstellungsformular anzuzeigen

Geben Sie den Namen des Barcode-Bildes und den Barcode-Inhalt wie unten gezeigt ein:

Wie man einen Barcode in ASP.NET in C# druckt, Abbildung 7: Geben Sie Ihren Barcode-Inhalt ein

Geben Sie Ihren Barcode-Inhalt ein

Klicken Sie auf die Schaltfläche Erstellen. Das Barcode-Bild wird generiert und auf dem Bildschirm angezeigt, wie unten dargestellt.

Wie man einen Barcode in ASP.NET in C# druckt, Abbildung 8: Einen Barcode aus einer URL generieren

Generieren Sie einen Barcode aus einer URL

Zusammenfassung

In diesem Tutorial wurde gezeigt, wie man Barcodes mit ASP.NET in C# in Kombination mit dem MVC-Framework generiert. Als IDE wird Microsoft Visual Studio verwendet. IronPDF ist eine Bibliothek eines Drittanbieters, die für die Entwicklung kostenlos ist und mit allen Versionen des .NET-Frameworks, einschließlich der neu veröffentlichten Version, kompatibel ist. IronBarcode ist schnell und bietet zahlreiche Funktionen für die Arbeit mit Barcodes. Es kann auch QR-Codes generieren, indem verschiedene Typen angegeben werden.

Es gibt noch viele andere nützliche Bibliotheken wie IronPDF für die Arbeit mit PDF-Dokumenten, IronXL für die Arbeit mit Excel-Dokumenten und IronOCR für die Arbeit mit OCR. Derzeit können Sie alle fünf Bibliotheken zum Preis von nur zwei erwerben, indem Sie die komplette Iron Suite kaufen. Besuchen Sie unsere Lizenzierungsseite für weitere Details.

Jordi Bardia
Software-Ingenieur
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS
QR-Code in C# Windows-Anwendungen generieren
NÄCHSTES >
Barcode Generator .NET Tutorial