ASP.NET MVC에서 바코드 이미지 생성 및 표시

바코드는 기계가 읽을 수 있는 형태로 데이터를 시각적으로 나타냅니다. 일반적으로 숫자 및/또는 평행선 패턴의 형태로 인코딩된 제품 또는 회사에 대한 데이터 또는 정보를 포함합니다. ASP.NET MVC에서는 Data Matrix, Aztec, Code 128 등과 같은 다양한 유형의 바코드를 생성할 수 있습니다. 이 기사에서는 ASP.NET MVC 애플리케이션에서 바코드 이미지를 생성하고 표시하는 방법을 배웁니다. 언급된 단계를 수행하면 자체 ASP.NET MVC 바코드 생성기가 생성됩니다. 시작하겠습니다.

이 기사에서는 다음 주제를 다룹니다.

ASP.NET MVC 바코드 생성기의 기능

ASP.NET 바코드 생성기에는 다음과 같은 기능이 있습니다.

  1. 다음 유형의 바코드 기호를 생성합니다.
    • 코드128
    • 코드11
    • 코드39
    • QR
    • 데이터 매트릭스
    • EAN13
    • EAN8
    • ITF14
    • PDF417
  2. 생성된 바코드 이미지를 다음 형식으로 저장합니다.
    • PNG
    • JPEG
    • BMP
    • EMF
    • SVG
  3. 생성된 바코드 이미지를 미리 봅니다.
  4. 생성된 바코드 이미지를 로컬 디스크에 다운로드합니다.

ASP.NET MVC에서 바코드 이미지를 생성하고 표시하는 .NET API

바코드 이미지를 생성하고 ASP.NET MVC 애플리케이션에 표시하기 위해 .NET API용 Aspose.BarCode를 사용할 것입니다. 이를 통해 광범위한 1D 및 2D바코드 유형를 생성하고 인식할 수 있습니다. API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하십시오.

PM> Install-Package Aspose.BarCode

ASP.NET MVC에서 바코드 이미지를 생성하고 표시하는 단계

다음 단계에 따라 ASP.NET MVC 애플리케이션에서 바코드 이미지를 생성하고 표시할 수 있습니다.

  • 먼저 새 프로젝트를 만들고 ASP.NET 웹 응용 프로그램(.NET Framework) 프로젝트 템플릿을 선택합니다.
Select the project template.

Select the project template.

  • 그런 다음 새 ASP.NET 웹 응용 프로그램 만들기 대화 상자에서 MVC를 선택한 다음 만들기를 선택합니다.
MVC 선택

MVC 선택

.NET용 Aspose.BarCode 설치

.NET용 Aspose.BarCode 설치

  • 다음으로 생성된 바코드 이미지를 저장할 새 폴더 “이미지"를 만듭니다.
이미지 폴더를 만듭니다.

이미지 폴더를 만듭니다.

  • 이제 “Models” 폴더에 “Barcode"라는 이름으로 모델을 생성하여 바코드 정보를 저장합니다.
// 바코드 기본 정보
public class Barcode
{
    public string Text { get; set; }

    public BarcodeType BarcodeType { get; set; }

    public BarCodeImageFormat ImageType { get; set; }
}
  • 또한 지원되는 바코드 기호를 나열하려면 열거형을 추가하십시오. “Models” 폴더 아래 별도의 클래스에 추가하거나 Barcode.cs 클래스 파일에 추가할 수 있습니다.
// 바코드 기호
public enum BarcodeType
{
    Code128,
    Code11,
    Code32,
    QR,
    Datamatrix,
    EAN13,
    EAN8,
    ITF14,
    PDF417
}
  • 마찬가지로 지원되는 이미지 형식을 나열하려면 열거형을 추가하십시오.
// 이미지 형식
public enum ImageType
{
    Png,
    Jpeg,
    Bmp,
    Emf,
    Svg
}
  • 그런 다음 Views/Home/index.cshtml을 열고 해당 내용을 다음 스크립트로 바꿉니다.
@using BarcodeGeneratorMVC.Models

@model Barcode

@{
    ViewBag.Title = "Home Page";
}

<div class="row">
    <div class="col-lg-6">
        <h2>Generate Barcode</h2>
        @using (Html.BeginForm())
        {
            <div class="form-group">
                @Html.Label("Select Barcode Type:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.DropDownListFor(model => model.BarcodeType,
         new SelectList(Enum.GetValues(typeof(BarcodeType))),
         "Select Barcode", new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.Label("Enter Your Text:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.EditorFor(m => m.Text, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.Label("Select Image Format:", new { @class = "col-md-12 control-label" })
                <div class="col-md-12">
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Png) @Html.Label("PNG")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Jpeg) @Html.Label("JPG")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Bmp) @Html.Label("BMP")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Emf) @Html.Label("EMF")
                    @Html.RadioButtonFor(model => model.ImageType, ImageType.Svg) @Html.Label("SVG")
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-12">
                    <input type="submit" class="btn btn-default" value="Generate Barcode" />
                </div>
            </div>
        }
    </div>
    <div class="col-lg-6">
        <h2>View Barcode Image</h2>
        @{
            if (!string.IsNullOrEmpty(@ViewBag.ImagePath))
            {
                <div class="form-group">
                    <div class="col-md-12">
                        <img src=@Url.Content(@ViewBag.ImagePath) alt="Barcode Image" />
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-md-12">
                        @Html.ActionLink("Download Image", "Download", "Home", new
                           {                                                     // routeValues
                               ImagePath = @ViewBag.ImagePath,
                               ImageName = @ViewBag.ImageName
                           },
                           null)
                    </div>
                </div>
            }
        }
    </div>
    <hr />
</div>
  • 그런 다음 “HomeController” 클래스를 열고 게시 요청을 처리할 새 작업 결과를 추가합니다.
[HttpPost]
public ActionResult Index(Barcode barcode)
{
    string codeText = barcode.Text;
    string imageName = barcode.Text + "." + barcode.ImageType;
    string imagePath = "/Images/" + imageName;
    string imageServerPath = Server.MapPath("~" + imagePath);

    var encodeType = EncodeTypes.Code128;

    switch (barcode.BarcodeType)
    {
        case BarcodeType.Code128:
            encodeType = EncodeTypes.Code128;
            break;

        case BarcodeType.ITF14:
            encodeType = EncodeTypes.ITF14;
            break;

        case BarcodeType.EAN13:
            encodeType = EncodeTypes.EAN13;
            break;

        case BarcodeType.Datamatrix:
            encodeType = EncodeTypes.DataMatrix;
            break;

        case BarcodeType.Code32:
            encodeType = EncodeTypes.Code32;
            break;

        case BarcodeType.Code11:
            encodeType = EncodeTypes.Code11;
            break;

        case BarcodeType.PDF417:
            encodeType = EncodeTypes.Pdf417;
            break;

        case BarcodeType.EAN8:
            encodeType = EncodeTypes.EAN8;
            break;

        case BarcodeType.QR:
            encodeType = EncodeTypes.QR;
            break;
    }

    using (Stream str = new FileStream(imageServerPath, FileMode.Create, FileAccess.Write))
    {
        BarcodeGenerator gen = new BarcodeGenerator(encodeType, codeText);
        gen.Save(str, barcode.ImageType);
    }

    ViewBag.ImagePath = imagePath;
    ViewBag.ImageName = imageName;

    return View();
}
  • 그런 다음 “HomeController"에서 이미지 다운로드 요청을 처리할 새 작업 결과를 추가합니다.
public ActionResult Download(string ImagePath, string ImageName)
{
    string contentType = "application/img";
    return File(ImagePath, contentType, Path.GetFileName(ImageName));
}
  • 마지막으로 애플리케이션을 실행합니다.

데모 ASP.NET MVC 바코드 생성기

다음은 방금 만든 ASP.NET MVC 바코드 생성기 응용 프로그램의 데모입니다.

데모 ASP.NET MVC 바코드 생성기

데모 ASP.NET MVC 바코드 생성기

소스 코드 다운로드

GitHub에서 ASP.NET MVC 바코드 생성기 애플리케이션의 전체 소스 코드를 다운로드할 수 있습니다.

무료 라이선스 받기

평가 제한 없이 라이브러리를 사용해 보려면 무료 임시 라이센스를 얻으십시오.

결론

이 기사에서는 ASP.NET MVC 애플리케이션에서 바코드 이미지를 생성하고 표시하는 방법을 배웠습니다. 생성된 바코드 이미지를 프로그래밍 방식으로 다운로드하는 방법도 살펴보았습니다. 또한 문서를 사용하여 .NET API용 Aspose.BarCode에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오