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 wydrukować BarCode w ASP.NET w języku 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 wydrukować BARCODE w ASP.NET w języku C#, rysunek 2: Przejdź do okna dialogowego dodawania 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 zostanie użyte do uzyskania nazwy obrazu BARCODE od użytkownika. Symbol BarcodeContent służy do pobrania treści BARCODE.

Dodaj kontroler

Następnie do projektu dodaje się Controller. Będzie komunikować się z View i Model przy użyciu 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 wydrukować BarCode w ASP.NET w języku C#, rysunek 3: Okno dialogowe Dodaj kontroler Dodaj okno dialogowe kontrolera

Wpisz 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 służy do przechwytywania wszelkich wyjątków wykonawczych.
  • Funkcja CreateBarcode udostępniana przez klasę BarcodeWriter przyjmuje dwa argumenty: zawartość kodu BarCode oraz schemat kodowania. Ponadto akceptuje również 11 innych opcjonalnych argumentów, w tym maksymalną wysokość, maksymalną szerokość i tak dalej.
  • Funkcja Server.MapPath służy do określenia ścieżki, w której będą zapisywane wygenerowane obrazy BARCODE. Metoda Path.Combine połączy ścieżkę i nazwę obrazu BarCode.
  • Funkcja AddBarcodeValueTextAboveBarcode doda wartość kodu BarCode. IronBarcode oferuje inne ustawienia kodów kreskowych, takie 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 BarCodes w tej konkretnej ścieżce.
  • Metoda Directory.GetFiles pobierze nowo wygenerowany obraz BARCODE.
  • ViewBag.FileName służy do wysłania ścieżki obrazu BarCode do widoku w celu wyświetlenia wygenerowanego obrazu BarCode.

Kody QR można również generować w ten sam sposób, zmieniając schemat 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 wydrukować BarCode w ASP.NET w języku C#, rysunek 4: Przejdź do okna dialogowego dodawania 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 wydrukować BarCode w ASP.NET w języku C#, rysunek 5: Okno dialogowe Dodaj widok 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 wydrukować BARCODE w ASP.NET w języku C#, rysunek 6: Uruchom aplikację internetową, 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 wydrukować BarCode w ASP.NET w języku C#, rysunek 7: Wprowadź treść BarCode-a Wprowadź treść kodu kreskowego BARCODE

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

Jak wydrukować BARCODE w ASP.NET w języku C#, rysunek 8: Generowanie BARCODE z adresu 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.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie