IRONBARCODEの使用

ASP.NET MVCでバーコードを動的に生成して表示する方法

ジョルディ・バルディア
ジョルディ・バルディア
2023年5月16日
共有:

ASP.NET MVCは、開発者が堅牢で動的なWebアプリケーションを構築することを可能にする人気のWeb開発フレームワークです。 ウェブアプリケーションにおいて一般的な要件のひとつに、バーコード画像を生成し表示する機能があります。 バーコード画像はデータを機械読み取り可能な形式で表し、バーコードスキャナーによって読み取ることができます。

ASP.NET MVCでバーコード画像を動的に生成および表示することは、市場をリードするC#ライブラリ、IronBarcodeを使用して実現できます。 このライブラリは、開発者がCode 39、Code 128、およびQRコードなど、さまざまなフォーマットでバコード画像をクロスプラットフォームで簡単に生成できるAPIを提供します。 System.Drawing.Commonと.NET Graphics APIに依存せず、.NET 6からWindows専用であるSystem.Drawing.Commonを使用しないため、IronBarcodeはクロスプラットフォーム機能を可能にし、より多くのソース互換性を提供します。

IronBarcode

IronBarcode は、.NET アプリケーションでバーコード画像の作成、読み取り、操作のための幅広い機能を提供する人気の .NET バーコードライブラリです。 このライブラリは、.NET コンポーネントとライブラリを専門とするソフトウェア開発会社であるIron Softwareによって開発およびメンテナンスされています。 IronBarcodeは、Code 128、Code 39、QRコード、Data Matrix、PDF417を含む広範なバーコード形式をサポートしています。このライブラリは、カスタムの寸法、色、フォントを使用してバーコードを生成する機能や、バーコード画像にテキストやロゴを追加する機能も提供しています。

バコード生成に加えて、IronBarcodeにはバーコード画像の読み取りおよびデコード機能も含まれています。 このライブラリは、画像、PDFドキュメント、およびライブカメラフィードからバーコードを読み取り、デコードすることができます。 それは1次元および2次元のバーコード形式の両方をサポートしており、部分的に隠されたり損傷したバーコードも認識することができます。

前提条件

.NETアプリケーションでIronBarcodeを使用する前に、いくつかの前提条件を満たす必要があります。

  1. .NET Framework または .NET Core: IronBarcode は .NET Framework と .NET Core の両方で動作するように設計されています。 開発環境に適切な.NETバージョンがインストールされていることを確認してください。

  2. Visual Studio: IronBarcodeは、簡単な開発とテストのためにVisual Studioと統合できます。 Visual Studio の Community、Professional、または Enterprise エディションを使用できます。 Visual Studioのウェブサイトからダウンロードできます。

  3. IronBarcodeライブラリ: Iron SoftwareのウェブサイトまたはNuGetパッケージマネージャーからIronBarcodeライブラリをダウンロードしてインストールしてください。 ライブラリは、NuGet パッケージ マネージャー コンソールを使用して次のコマンドを実行することでインストールできます: Install-Package BarCode.

    IronBarcodeは開発には無料ですが、商業目的および展開にはライセンスが必要です。 すべての機能をテストするために、無料試用版をお試しください。

ASP.NET MVCプロジェクトの新規作成

Visual Studioを開き、「新しいプロジェクトの作成」をクリックしてください。

ASP.NET MVCでバーコードを動的に生成し表示する方法: 図1

新しいウィンドウで「ASP.NET MVC (Web App) Model View Controller」を見つけて選択し、[次へ] ボタンをクリックします。

ASP.NET MVC でバーコードを動的に生成および表示する方法: 図 2

新しいプロジェクトの名前とその場所を入力し、「次へ」をクリックしてください。

ASP.NET MVCでバーコードを動的に生成して表示する方法:図3

使用したい.NETバージョンを選択し、その他のオプションはそのままにして、「作成」をクリックしてください。

ASP.NET MVCでバーコードを動的に生成して表示する方法: 図4

.NETプロジェクトが作成されました。

ASP.NET MVCでバーコードを動的に生成して表示する方法: 図5

IronBarcode のインストール

1. NuGetパッケージマネージャーの使用

このオプションはVisual Studio内で利用可能であり、IronBarcodeパッケージを直接ソリューションにインストールします。 ツールに移動し、表示されるようにNuGetパッケージマネージャーをクリックしてください。

ASP.NET MVCでバーコードを動的に生成して表示する方法: 図6

NuGetパッケージマネージャーの検索ボックスを使用してIronBarcodeライブラリを検索します。 利用可能なパッケージのリストからIronBarcodeオプションを選択します。

ASP.NET MVCでバコードを動的に生成して表示する方法: 図7

2.Visual Studio コマンド ラインの使用

Visual Studio のメニューで、[ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] に進みます。

ASP.NET MVCでバーコードを動的に生成して表示する方法: 図8

パッケージ マネージャー コンソール タブに次の行を入力してください: Install-Package BarCode.

このパッケージは現在のプロジェクトにダウンロード/インストールされ、使用の準備が整います。

ASP.NET MVCでバーコードを動的に生成して表示する方法: 図9

IronBarcodeを使用してバーコード画像を生成および表示する

環境の設定が完了したので、ASP.NET MVCでバーコード画像を動的に生成するコードの書き方を始めましょう。

まず、モデルフォルダの下にGenerateBarcodeModel.csという名前のクラスを作成します。


    using System.ComponentModel.DataAnnotations;

    namespace GenerateBarcodeMVCCore6_Demo.Models
    {
        public class GenerateBarcodeModel
        {
            [Display(Name = "Enter Barcode Text")]
            public string Barcode
            {
                get;
                set;
            }
        }
    }

    using System.ComponentModel.DataAnnotations;

    namespace GenerateBarcodeMVCCore6_Demo.Models
    {
        public class GenerateBarcodeModel
        {
            [Display(Name = "Enter Barcode Text")]
            public string Barcode
            {
                get;
                set;
            }
        }
    }
Imports System.ComponentModel.DataAnnotations

	Namespace GenerateBarcodeMVCCore6_Demo.Models
		Public Class GenerateBarcodeModel
			<Display(Name := "Enter Barcode Text")>
			Public Property Barcode() As String
		End Class
	End Namespace
$vbLabelText   $csharpLabel

wwwrootフォルダーの下に生成されたバーコード画像を保存するため、「GeneratedBarcode」という名前のフォルダーを作成します。

ASP.NET MVCでバーコードを動的に生成し表示する方法: 図10

「controllers」フォルダーにある「HomeController.cs」クラスに次のアクション メソッドを追加します。


    public IActionResult CreateBarcode()
            {
                return View();
            }

            //  handling POST operation Inside this Action method
            [HttpPost]
            public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
            {
                try
                {
                    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

            // Adding annotation text to barcode
                    barcode.AddBarcodeValueTextBelowBarcode();

                    // Styling the Barcode
            barcode.ResizeTo(400, 120);
                    barcode.ChangeBarCodeColor(Color.Red);
                    barcode.SetMargins(10);

                    string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");

            // The generated barcode object can be manipulated, annotated, and exported as an image file, a bitmap image, a PDF file, or a data stream.
            // Here, we save the generated barcode as an image to the GeneratedBarcode folder we had created
                    barcode.SaveAsPng(filePath);
                    string fileName = Path.GetFileName(filePath);
                    string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedBarcode/" + fileName;
                    ViewBag.QrCodeUri = imageUrl;
                }
                catch (Exception)
                {
                    throw;
                }
                return View();
            }

    public IActionResult CreateBarcode()
            {
                return View();
            }

            //  handling POST operation Inside this Action method
            [HttpPost]
            public IActionResult CreateBarcode(GenerateBarcodeModel generateBarcode)
            {
                try
                {
                    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128);

            // Adding annotation text to barcode
                    barcode.AddBarcodeValueTextBelowBarcode();

                    // Styling the Barcode
            barcode.ResizeTo(400, 120);
                    barcode.ChangeBarCodeColor(Color.Red);
                    barcode.SetMargins(10);

                    string path = Path.Combine(_environment.WebRootPath, "GeneratedBarcode");
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    string filePath = Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png");

            // The generated barcode object can be manipulated, annotated, and exported as an image file, a bitmap image, a PDF file, or a data stream.
            // Here, we save the generated barcode as an image to the GeneratedBarcode folder we had created
                    barcode.SaveAsPng(filePath);
                    string fileName = Path.GetFileName(filePath);
                    string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedBarcode/" + fileName;
                    ViewBag.QrCodeUri = imageUrl;
                }
                catch (Exception)
                {
                    throw;
                }
                return View();
            }
Public Function CreateBarcode() As IActionResult
				Return View()
End Function

			'  handling POST operation Inside this Action method
			<HttpPost>
			Public Function CreateBarcode(ByVal generateBarcode As GenerateBarcodeModel) As IActionResult
				Try
					Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(generateBarcode.Barcode, BarcodeWriterEncoding.Code128)

			' Adding annotation text to barcode
					barcode.AddBarcodeValueTextBelowBarcode()

					' Styling the Barcode
			barcode.ResizeTo(400, 120)
					barcode.ChangeBarCodeColor(Color.Red)
					barcode.SetMargins(10)

					Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode")
					If Not Directory.Exists(path) Then
						Directory.CreateDirectory(path)
					End If
					Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedBarcode/barcode.png")

			' The generated barcode object can be manipulated, annotated, and exported as an image file, a bitmap image, a PDF file, or a data stream.
			' Here, we save the generated barcode as an image to the GeneratedBarcode folder we had created
					barcode.SaveAsPng(filePath)
					Dim fileName As String = System.IO.Path.GetFileName(filePath)
					Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedBarcode/" & fileName
					ViewBag.QrCodeUri = imageUrl
				Catch e1 As Exception
					Throw
				End Try
				Return View()
			End Function
$vbLabelText   $csharpLabel

上記のコード内のアクションメソッドは、後で作成するViewから生成される送信リクエストを処理します。 IronBarcodeを使用すると、バーコードフォーマット、画像要素、バーコードフォント、およびHTML画像要素をカスタマイズできます。 さらにカスタマイズするために追加ライブラリが必要になることがあります。例えば、バーコードフォントをインストールするためのIron Drawing などです。 詳細なAPIドキュメントはこちらで確認できます。

これで、バーコード生成メソッドのビューを作成できます。

"HomeController.cs" ファイル内で、createBarcode メソッドを右クリックし、[ビューの追加] をクリックします。

ASP.NET MVCでバーコードを動的に生成および表示する方法: 図11

Razorビューを選択し、追加をクリックします。

ASP.NET MVCでバーコードを動的に生成して表示する方法:図12

以下の画像に示されているパラメータを選択し、追加をクリックすると、そのメソッドに対するビューが自動的に追加されます。

ASP.NET MVCでバーコードを動的に生成および表示する方法: 図13

生成されたコードを変更して、インターフェースをお好みに合わせて変更できます。


    @model GenerateBarcodeMVCCore6_Demo.Models.GenerateBarcodeModel

    @{
        ViewData ["Title"] = "CreateBarcode";
    }

    CreateBarcode

    GenerateBarcodeModel

        Back to List

    @section Scripts {
        @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
    }

    @model GenerateBarcodeMVCCore6_Demo.Models.GenerateBarcodeModel

    @{
        ViewData ["Title"] = "CreateBarcode";
    }

    CreateBarcode

    GenerateBarcodeModel

        Back to List

    @section Scripts {
        @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
    }
model ReadOnly Property () As GenerateBarcodeMVCCore6_Demo.Models.GenerateBarcodeModel
		ViewData ("Title") = "CreateBarcode"
End Property

	CreateBarcode GenerateBarcodeModel Back [to] List ReadOnly Property Scripts() As section
		@
		If True Then
			Await Html.RenderPartialAsync("_ValidationScriptsPartial")
		End If
	End Property
$vbLabelText   $csharpLabel

これで全ての設定が完了しました。_Layout.cshtml ファイルを開き、navbarCreateBarcode オプションを追加するコードを追加してください。

CreateBarcode
CreateBarcode
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'CreateBarcode
$vbLabelText   $csharpLabel

アプリケーションを実行し、テキストフィールドにテキストを書き込み、「Generate barcode」ボタンをクリックすると、バーコード画像が動的に作成され表示されます。

5.1. 出力

ASP.NET MVCでバーコードを動的に生成および表示する方法: フィギュア14

結論

ASP.NET MVCアプリケーションでバーコード画像を動的に生成および表示することは、IronBarcodeライブラリを使用することで実現できます。IronBarcodeは強力な.NETバーコードライブラリで、.NETアプリケーション内でバーコード画像の生成、読み取り、および操作のための幅広い機能を提供します。 .NET Framework、Visual Studio、IronBarcodeライブラリなどの前提条件を満たすことで、開発者はASP.NET MVCプロジェクトを簡単に作成し、Code 39、Code 128、QRコードなどのさまざまなフォーマットでバーコード画像を生成および表示することができます。 IronBarcode ライブラリは、開発者にカスタム寸法、色、フォントを使用してバーコードを生成する機能を提供し、バーコード画像にテキストやロゴを追加することができます。 バコード生成に加えて、IronBarcodeにはバーコード画像の読み取りおよびデコード機能も含まれています。 IronBarcodeを使用すると、開発者はビジネスニーズに対応する強力で動的なウェブアプリケーションを簡単に作成することができます。 このトピックに関連するチュートリアルについては、次のリンクをご覧ください。 バーコードとQRコードの生成に関するステップバイステップのチュートリアルについては、次のリンクをご参照ください。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
C# Windowsアプリケーションでバーコードを印刷する方法
次へ >
リンクのQRコードを作成する方法 (C#チュートリアル)