Przejdź do treści stopki
KORZYSTANIE Z IRONBARCODE
Jak wydrukować BarCode w ASP.NET

Jak drukować kod kreskowy w ASP.NET w C#

W tym artykułe pokażemy, jak drukować obrazy kodów kreskowych w aplikacjach internetowych ASP.NET przy użyciu języka C#. W tym przykładzie zostanie wykorzystany framework MVC, ale w zależności od potrzeb można również użyć ASP.NET Web Forms, Windows Forms lub Web API.

Podstawowa znajomość frameworka ASP.NET MVC pozwoli lepiej zrozumieć ten artykuł.


Utwórz projekt MVC

Otwórz program Microsoft Visual Studio. Kliknij Utwórz nowy projekt > Wybierz Aplikacja internetowa ASP.NET z szablonów > Naciśnij Dalej > Nadaj nazwę projektowi > Naciśnij Dalej > Wybierz MVC > Kliknij przycisk Utwórz. Projekt zostanie utworzony zgodnie z poniższym opisem.

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 1: Utwórz nowy projekt ASP.NET Utwórz nowy projekt ASP.NET

Dodaj model

Kliknij prawym przyciskiem myszy folder Models > Dodaj > Klasa....

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 2: Przejdź do dodania okna dialogowego klasy Przejdź do okna dialogowego dodawania klasy

Pojawi się nowe okno. Nazwij swoją klasę jako BarcodeModel.

Wpisz poniższy kod w klasie modelu.

using System.ComponentModel.DataAnnotations;

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

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
using System.ComponentModel.DataAnnotations;

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

    [Display(Name = "Barcode Content")]
    public string BarcodeContent { get; set; }
}
Imports System.ComponentModel.DataAnnotations

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

FileName będzie używane do uzyskania nazwy obrazu kodu kreskowego od użytkownika. BarcodeContent jest używane do przyjmowania zawartości dla kodu kreskowego.

Dodaj kontroler

Następnie, dodano Controller do projektu. Będzie komunikować się z View i Model używając modelu MVC. Kod służący do generowania BARCODE składa się zaledwie z dwóch lub trzech wierszy. Dlatego nie ma potrzeby tworzenia oddzielnej klasy; zamiast tego kod jest dodawany wewnątrz kontrolera.

Aby dodać kontroler, kliknij prawym przyciskiem myszy folder Controllers > Dodaj > Kontroler. Pojawi się nowe okno. Wybierz MVC 5 Controller Empty. Kliknij przycisk Dodaj. Pojawi się nowe okienko.

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 3: Dodanie okna dialogowego kontrolera Dodaj okno dialogowe kontrolera

Napisz nazwę kontrolera, na przykład, BarcodeController. Kliknij przycisk Dodaj. Zostanie wygenerowany nowy kontroler.

Kolejnym krokiem jest zainstalowanie biblioteki BarCode.

Zainstaluj bibliotekę BarCode

Jako bibliotekę zewnętrzną do generowania kodów kreskowych zaleca się bibliotekę IronBarcode. Jest bezpłatny do celów programistycznych i oferuje wiele funkcji dostosowywania kodów kreskowych, takich jak dodawanie logo do obrazu BarCode, dodawanie wartości poniżej lub powyżej BarCode, dodawanie adnotacji poniżej lub powyżej BarCode, zmiana rozmiaru BarCode, zapisywanie BarCode w wielu formatach obrazu itp. Aby uzyskać więcej informacji, kliknij tutaj.

Przejdź do konsoli menedżera pakietów. Wpisz następujące polecenie i naciśnij Enter.

Install-Package BarCode

To polecenie zainstaluje bibliotekę IronBarcode w projekcie.

Wygeneruj BarCode

Następnie dodaj poniższy przykładowy kod do kontrolera.

using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;

public class BarcodeController : Controller
{
    [HttpPost]
    public ActionResult CreateBarcode(BarcodeModel model)
    {
        try
        {
            // Create a barcode with the specified content and encoding
            var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);

            // Define the path where the barcode image will be saved
            string path = Server.MapPath("~/Files/");
            string filepath = Path.Combine(path, model.FileName);

            // Add the barcode value text above the barcode
            MyBarCode.AddBarcodeValueTextAboveBarcode();

            // Save the generated barcode as a JPEG file
            MyBarCode.SaveAsJpeg(filepath);

            // Retrieve the first file from the directory as a sample image
            string image = Directory.GetFiles(path).FirstOrDefault();

            // Pass the image path to the view
            ViewBag.FileName = image;
            return View();
        }
        catch
        {
            // Handle any exceptions that occur
            return View();
        }
    }
}
using System.IO;
using System.Linq;
using System.Web.Mvc;
using IronBarCode;

public class BarcodeController : Controller
{
    [HttpPost]
    public ActionResult CreateBarcode(BarcodeModel model)
    {
        try
        {
            // Create a barcode with the specified content and encoding
            var MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128);

            // Define the path where the barcode image will be saved
            string path = Server.MapPath("~/Files/");
            string filepath = Path.Combine(path, model.FileName);

            // Add the barcode value text above the barcode
            MyBarCode.AddBarcodeValueTextAboveBarcode();

            // Save the generated barcode as a JPEG file
            MyBarCode.SaveAsJpeg(filepath);

            // Retrieve the first file from the directory as a sample image
            string image = Directory.GetFiles(path).FirstOrDefault();

            // Pass the image path to the view
            ViewBag.FileName = image;
            return View();
        }
        catch
        {
            // Handle any exceptions that occur
            return View();
        }
    }
}
Imports System.IO
Imports System.Linq
Imports System.Web.Mvc
Imports IronBarCode

Public Class BarcodeController
	Inherits Controller

	<HttpPost>
	Public Function CreateBarcode(ByVal model As BarcodeModel) As ActionResult
		Try
			' Create a barcode with the specified content and encoding
			Dim MyBarCode = BarcodeWriter.CreateBarcode(model.BarcodeContent, BarcodeEncoding.Code128)

			' Define the path where the barcode image will be saved
			Dim path As String = Server.MapPath("~/Files/")
			Dim filepath As String = System.IO.Path.Combine(path, model.FileName)

			' Add the barcode value text above the barcode
			MyBarCode.AddBarcodeValueTextAboveBarcode()

			' Save the generated barcode as a JPEG file
			MyBarCode.SaveAsJpeg(filepath)

			' Retrieve the first file from the directory as a sample image
			Dim image As String = Directory.GetFiles(path).FirstOrDefault()

			' Pass the image path to the view
			ViewBag.FileName = image
			Return View()
		Catch
			' Handle any exceptions that occur
			Return View()
		End Try
	End Function
End Class
$vbLabelText   $csharpLabel
  • try-catch jest używane do przechwytywania wyjątków czasu wykonania.
  • Funkcja CreateBarcode dostarczona przez klasę BarcodeWriter przyjmuje dwa argumenty: zawartość kodu kreskowego oraz schemat kodowania. Ponadto akceptuje również 11 innych opcjonalnych argumentów, w tym maksymalną wysokość, maksymalną szerokość i tak dalej.
  • Funkcja Server.MapPath jest używana do mapowania ścieżki, gdzie będą zapisywane wygenerowane obrazy kodów kreskowych. Metoda Path.Combine połączy ścieżkę i nazwę obrazu kodu kreskowego.
  • Funkcja AddBarcodeValueTextAboveBarcode doda wartość kodu kreskowego. IronBarcode dostarcza innych ustawień kodu kreskowego, takich jak max-height, max-width, barcode, color i tak dalej. Możesz zapoznać się z różnymi parametrami i z nich korzystać.
  • Funkcja SaveAsJpeg przyjmuje ścieżkę jako argument i zapisuje wygenerowane kody kreskowe w tej konkretnej ścieżce.
  • Metoda Directory.GetFiles pobierze nowo wygenerowany obraz kodu kreskowego.
  • ViewBag.FileName jest używane do wysłania ścieżki obrazu kodu kreskowego do widoku w celu wyświetlenia wygenerowanego obrazu kodu kreskowego.

Kody QR mogą być również generowane w ten sam sposób poprzez zmianę schematu kodowania z Code128 na QRCode.

Dodaj Wyświetl

Kolejnym krokiem jest zapewnienie strony klienckiej dla tej aplikacji internetowej ASP.NET poprzez dodanie nowego widoku. Kliknij prawym przyciskiem myszy nazwę metody kontrolera i kliknij przycisk "Dodaj widok".

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 4: Przejdź do dodania okna dialogowego widoku Przejdź do dodawania okna dialogowego

Pojawi się nowe okno. Wybierz widok MVC 5 i kliknij przycisk Dodaj.

Pojawi się nowe pole tekstowe, jak pokazano poniżej.

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 5: Dodanie okna dialogowego widoku Dodaj okno dialogowe

Nadaj nazwę widokowi i kliknij przycisk Dodaj. Zostanie utworzony nowy plik .cshtml.

Dodaj poniższy kod do nowo wygenerowanego widoku.

@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")
}
HTML

Następnie kliknij prawym przyciskiem myszy wewnątrz okna podglądu i kliknij przycisk "Uruchom w przeglądarce".

Wynik

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 6: Uruchom aplikację webową, aby wyświetlić formularz tworzenia Uruchom aplikację internetową, aby wyświetlić formularz tworzenia

Wprowadź nazwę obrazu BARCODE oraz zawartość BARCODE, jak pokazano poniżej:

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 7: Wprowadź zawartość swojego kodu kreskowego Wprowadź treść kodu kreskowego BARCODE

Kliknij przycisk Utwórz. Obraz BarCode zostanie wygenerowany i wyświetlony na ekranie, jak pokazano poniżej.

Jak drukować kod kreskowy w ASP.NET w C#, Rysunek 8: Wygeneruj kod kreskowy z URL Wygeneruj BARCODE z adresu URL

Podsumowanie

W tym samouczku pokazano, jak generować kody kreskowe przy użyciu ASP.NET w języku C# w połączeniu z frameworkiem MVC. Jako środowisko IDE używane jest Microsoft Visual Studio. IronPDF to biblioteka innej firmy, która jest bezpłatna do celów programistycznych i kompatybilna ze wszystkimi wersjami .NET Framework, w tym z nowo wydaną wersją. IronBarcode działa szybko i oferuje wiele funkcji do pracy z kodami kreskowymi. Może również generować kody QR poprzez określenie różnych typów.

Istnieje wiele innych przydatnych bibliotek, takich jak IronPDF do pracy z dokumentami PDF, IronXL do pracy z dokumentami Excel oraz IronOCR do pracy z OCR. Obecnie można nabyć wszystkie pięć bibliotek w cenie zaledwie dwóch, kupując kompletny pakiet Iron Suite. Więcej szczegółów można znaleźć na naszej stronie poświęconej licencjom.

Często Zadawane Pytania

Jak mogę generować i drukować obrazy kodów kreskowych w ASP.NET MVC przy użyciu języka C#?

Możesz użyć biblioteki IronBarcode do generowania i drukowania obrazów kodów kreskowych w aplikacjach ASP.NET MVC. Wymaga to utworzenia projektu MVC, zainstalowania IronBarcode za pomocą konsoli Package Manager Console oraz użycia metody `BarcodeWriter.CreateBarcode` do generowania kodów kreskowych.

Jakie kroki należy wykonać, aby utworzyć nowy projekt MVC do drukowania kodów kreskowych?

Aby utworzyć nowy projekt MVC do drukowania kodów kreskowych, otwórz program Microsoft Visual Studio, wybierz opcję „Utwórz nowy projekt”, wybierz „Aplikacja internetowa ASP.NET”, a następnie wybierz „MVC” spośród dostępnych szablonów.

Jak zainstalować bibliotekę IronBarcode do generowania kodów kreskowych w języku C#?

Zainstaluj bibliotekę IronBarcode, otwierając konsolę menedżera pakietów w Visual Studio i wykonując polecenie: Install-Package IronBarcode.

Jak zapisać wygenerowany obraz kodu kreskowego w języku C#?

Wygenerowany obraz BARCODE można zapisać za pomocą metody `SaveAsJpeg` udostępnianej przez IronBarcode, określając ścieżkę do pliku, w którym obraz ma zostać zapisany.

Czy mogę dostosować obrazy BarCode w aplikacjach ASP.NET?

Tak, IronBarcode umożliwia dostosowywanie obrazów kodów kreskowych, w tym dodawanie logo, adnotacji oraz zmianę rozmiaru i wymiarów w celu dostosowania do potrzeb użytkownika.

Jak wyświetlić wygenerowany kod kreskowy w widoku MVC?

Aby wyświetlić wygenerowany kod kreskowy w widoku MVC, utwórz widok w swoim projekcie i przekaż ścieżkę do obrazu kodu kreskowego do widoku za pomocą `ViewBag`. Umożliwi to wyświetlenie kodu kreskowego po stronie klienta.

Co należy zrobić, jeśli podczas generowania kodu kreskowego pojawią się błędy?

Użyj bloku try-catch w kodzie C#, aby obsłużyć wszelkie wyjątki wykonawcze, które mogą wystąpić podczas procesu generowania kodów barcode, zapewniając solidną obsługę błędów.

Czy możliwe jest generowanie kodów QR przy użyciu tej samej metody, co w przypadku kodów BARCODE?

Tak, korzystając z IronBarcode, można generować kody QR, ustawiając schemat kodowania na `QRCode` w metodzie `BarcodeWriter.CreateBarcode`.

Jakie inne biblioteki oprogramowania Iron Software są zalecane do zarządzania dokumentami?

Oprócz biblioteki IronBarcode firma Iron Software oferuje inne biblioteki, takie jak IronPDF, IronXL i IronOCR. Biblioteki te zapewniają kompleksowe rozwiązania do zadań związanych z zarządzaniem dokumentami.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie