フッターコンテンツにスキップ
IRONBARCODEの使用

.NETのバーコードリーダーSDKを使用する

バーコードスキャンは、在庫管理から小売や物流まで、多くのアプリケーションで不可欠な機能です。 .NETアプリケーションにバーコード読み取りを統合することで、データキャプチャを効率化し、ワークフローを自動化し、効率を向上させることができます。

IronBarcodeは、バーコードの操作を簡単にする強力な.NETライブラリです。 このツールを使用すると、画像、ストリーム、PDFファイルからバーコードを読み取ることができ、QRコードを生成することもできます。 この記事では、バーコードスキャン機能を公開するAPIまたはWebアプリ統合を作成することに焦点を当てて、.NETアプリケーションにバーコードスキャンを統合する方法を紹介します。

IronBarcode統合のベストユースケース

IronBarcodeは以下に最適です:

  • 在庫管理システム - バーコードスキャンを自動化して製品と在庫レベルを追跡します。
  • 物流アプリケーション - スキャンされたバーコード画像を処理して出荷、受領、パッケージ追跡を行います。
  • 小売POSシステム - 売上取引や価格の確認のためにバーコードスキャンを検証します。
  • 文書処理 - PDF請求書、レシート、IDカードからバーコードデータを抽出します。

バーコードリーダーSDKの作成方法

アプリケーションでサービスとして公開できるバーコードリーダーを作成するには、IronBarcodeをREST APIまたはWebアプリに統合します。以下にASP.NET Coreを使用した例を示します。

  1. C#でバーコードを読むための.NETライブラリをインストールする
  2. 再利用可能なバーコードスキャンクラスを作成します。
  3. さまざまなソースからバーコードを読むためのメソッドを開発します。
  4. アプリケーションにバーコード画像の読み取りを統合します。
  5. パフォーマンスをテストし最適化します。

始める前に

まだであれば、IronBarcodeをダウンロードしてください。 お使いになる予定のライセンスキーを必ず持っていることを確認してください。 IronBarcodeの機能を公開API経由で提供したり、独立したサービスとして再販するには追加のライセンスが必要です(SDK、OEM、またはSaaS)。 ライセンスに関する重要事項を理解した上で進めてください。

バーコードスキャナークラスの作成

IronBarcodeをセットアップしてプロジェクトにインストールしたら、IronBarcodeの機能を統合し、APIエンドポイントとして公開する再利用可能なバーコードスキャナークラスを作成できます。

using IronBarCode;
using System.IO;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                // Try to read the barcode from the given stream
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                // Try to read the barcode from the given PDF file path
                var barcode = BarcodeReader.ReadPdf(filePath);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
    }
}
using IronBarCode;
using System.IO;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                // Try to read the barcode from the given stream
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                // Try to read the barcode from the given PDF file path
                var barcode = BarcodeReader.ReadPdf(filePath);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
    }
}
Imports IronBarCode
Imports System.IO

Namespace BarcodeIntegration
	Public Class BarcodeScanner
		Shared Sub New()
			' Set the license key
			IronBarCode.License.LicenseKey = "Your-License-Key"
		End Sub

		' Method to read a barcode from an image file
		Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
			Try
				' Try to read the barcode from the given image path
				Dim barcode = BarcodeReader.Read(imagePath)
				Return If(barcode?.ToString(), "No Barcode Found") ' Return the barcode string or indicate no barcode was found
			Catch ex As Exception
				' Return an error message if an exception occurs
				Return $"Error reading barcode: {ex.Message}"
			End Try
		End Function

		' Method to read a barcode from a stream (e.g., file upload or memory stream)
		Public Function ReadBarcodeFromStream(ByVal inputStream As Stream) As String
			Try
				' Try to read the barcode from the given stream
				Dim barcode = BarcodeReader.Read(inputStream)
				Return If(barcode?.ToString(), "No barcode found")
			Catch ex As Exception
				Return $"Error reading barcode: {ex.Message}"
			End Try
		End Function

		' Method to read a barcode from a PDF file
		Public Function ReadBarcodeFromPdf(ByVal filePath As String) As String
			Try
				' Try to read the barcode from the given PDF file path
				Dim barcode = BarcodeReader.ReadPdf(filePath)
				Return If(barcode?.ToString(), "No barcode found")
			Catch ex As Exception
				Return $"Error reading barcode: {ex.Message}"
			End Try
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

このBarcodeScannerクラスはIronBarcodeの機能を抽象化し、任意の.NETアプリケーションに簡単に統合できるようにします。 ここで含まれているさまざまなメソッドの内訳を見てみましょう:

バーコードを読むためのメソッド

次の各メソッドは、異なるタイプの入力からバーコードを読むことを試みます:

  • ReadBarcodeFromImage(string imagePath): 画像ファイルからバーコードを読み取ります。
  • ReadBarcodeFromStream(Stream inputStream): 入力ストリーム(例: ファイルアップロードまたはメモリーストリーム)からバーコードを読み取ります。
  • ReadBarcodeFromPdf(string filePath): PDFファイルからバーコードを読み取ります。

各メソッドはバーコードデータを読み取り、バーコードの文字列を返します。バーコードが見つからなかったり例外が発生した場合はエラーメッセージが返されます。

REST APIを介したバーコード読み取りの公開

外部アプリケーションがバーコードスキャン機能を利用できるようにするために、これをASP.NET Coreを使用してREST APIとして公開できます。 以下にその方法の例を示します:

using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;

    public BarcodeController()
    {
        // Initialize the BarcodeScanner class
        _barcodeScanner = new BarcodeScanner();
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result }); // Return the barcode reading result
    }
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;

    public BarcodeController()
    {
        // Initialize the BarcodeScanner class
        _barcodeScanner = new BarcodeScanner();
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result }); // Return the barcode reading result
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcodeIntegration

<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
	Inherits ControllerBase

	Private ReadOnly _barcodeScanner As BarcodeScanner

	Public Sub New()
		' Initialize the BarcodeScanner class
		_barcodeScanner = New BarcodeScanner()
	End Sub

	' POST endpoint to read barcode from an uploaded image
	<HttpPost("read-from-image")>
	Public Function ReadFromImage(ByVal file As IFormFile) As IActionResult
		Dim stream = file.OpenReadStream()
		Dim result = _barcodeScanner.ReadBarcodeFromStream(stream)
		Return Ok(New With {Key .Barcode = result}) ' Return the barcode reading result
	End Function
End Class
$vbLabelText   $csharpLabel

Swagger UI

Using a Barcode Reader SDK for .NET: Figure 1

出力

Using a Barcode Reader SDK for .NET: Figure 2

このAPIはPOSTエンドポイントを公開しており、バーコード画像をアップロードすることができ、APIがバーコードデータを返します。 これにより、他のシステムやフロントエンドアプリケーションがサービスとしてのバーコードスキャナーと対話することができます。

高度な機能

SDKをさらに強化するために、以下を追加することを検討してください:

  1. 複数のバーコードタイプへの対応: IronBarcodeは複数のバーコードを読むことができます。 SDKを複数のバーコードを一度に受け入れるように構成するオプションを追加できます。 例えば:

    public string ReadBarcodeFromImage(string imagePath)
    {
        try
        {
            BarcodeReaderOptions options = new BarcodeReaderOptions()
            {
                ExpectMultipleBarcodes = true,
                ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
            };
            foreach (var barcode in BarcodeReader.Read(imagePath, options))
            {
                return barcode.ToString();
            }
            return "No barcode found";
        }
        catch (Exception ex)
        {
            return $"Error reading barcode: {ex.Message}";
        }
    }
    public string ReadBarcodeFromImage(string imagePath)
    {
        try
        {
            BarcodeReaderOptions options = new BarcodeReaderOptions()
            {
                ExpectMultipleBarcodes = true,
                ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
            };
            foreach (var barcode in BarcodeReader.Read(imagePath, options))
            {
                return barcode.ToString();
            }
            return "No barcode found";
        }
        catch (Exception ex)
        {
            return $"Error reading barcode: {ex.Message}";
        }
    }
    Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
    	Try
    		Dim options As New BarcodeReaderOptions() With {
    			.ExpectMultipleBarcodes = True,
    			.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
    		}
    		For Each barcode In BarcodeReader.Read(imagePath, options)
    			Return barcode.ToString()
    		Next barcode
    		Return "No barcode found"
    	Catch ex As Exception
    		Return $"Error reading barcode: {ex.Message}"
    	End Try
    End Function
    $vbLabelText   $csharpLabel
  2. エラーハンドリング: エラーハンドリングとログ記録を拡張して、SDKユーザーに対しより良い診断を提供します。
  3. バッチ処理: 画像のコレクションから複数のバーコードを処理したい場合、画像やストリームの配列を受け取るメソッドを作成できます。
  4. カスタマイズ: バーコード検出パラメータの構成オプションを提供し、精度、速度、および対応するバーコードタイプを調整します。

ライセンスに関する重要事項

前述の通り、IronBarcode SDKは内部アプリケーションへの統合を目的としており、APIを介した公開には追加のライセンスが必要です。 サービスの一部としてIronBarcodeを公開する前に(例:公共API)、必要なライセンス(SDK、OEM、またはSaaS)を取得しなければなりません。

IronBarcodeを独立したSDKとして再販したり、公開APIを介して公開することはできません。その使用をカバーするライセンスを確保せずに行うことはできません。

IronBarcodeを今日無料で試してみましょう

IronBarcodeの革新的な力を体験してください。 無料トライアルを試すし、.NETアプリケーション向けにシームレスなバーコード生成、読み取り、編集を発見してください。 高度な機能、卓越したパフォーマンス、使いやすいインターフェースを備えたIronBarcodeは、すべてのバーコードニーズに対する究極の解決策です。 今日、無料トライアルを始めて、プロジェクトを向上させましょう。

よくある質問

どのようにして.NETアプリケーションにバーコードリーダーを統合できますか?

IronBarcodeライブラリを使用して、.NETアプリケーションにバーコードリーダーを統合できます。まずIronBarcodeをインストールし、次にバーコードスキャン用のクラスを作成し、画像、ストリーム、PDFからバーコードを読み取るメソッドを実装します。最後に、設定をテストし最適化してください。

バーコードの読み取り機能をREST APIとして公開するにはどうすればいいですか?

バーコードの読み取り機能をREST APIとして公開するには、ASP.NET Coreを使用してウェブアプリケーションを作成します。IronBarcodeライブラリを組み込み、BarcodeScannerクラスを開発し、ReadBarcodeFromImageReadBarcodeFromStreamといったメソッドを使用してバーコードを読み取るAPIエンドポイントを定義します。

どのバーコードタイプが.NETバーコードライブラリで読み取れますか?

IronBarcodeのような.NETバーコードライブラリは、QRコード、Code 128、UPC、EANなどのさまざまなバーコードタイプを読み取ることができます。検出パラメーターを設定することで、複数のバーコードタイプを同時に検出できるようライブラリを構成できます。

良くないバーコードを.NETで読み取る際のエラー処理はどうすればいいですか?

IronBarcodeを使用したバーコードスキャンメソッドにおいて、堅牢なエラー処理を実装することで、バーコード読み取りの際のエラーを処理できます。例外をキャッチし、有意義なフィードバックを提供したり、再試行機構を組み込むことで、バーコード読み取りプロセスの信頼性を向上させます。

.NETバーコードライブラリをパブリックAPIで使用する際のライセンス要件は何ですか?

IronBarcodeをパブリックAPIで使用する際は、適切なライセンスを確保する必要があります。これは、ライブラリの機能を単独サービスやパブリックAPIとして公開する場合に追加の許可が必要となる、SDK、OEM、SaaSライセンスの取得を含みます。

複数のバーコードスキャンを.NETライブラリでバッチ処理できますか?

はい、IronBarcodeを使用して複数のバーコードスキャンをバッチ処理することが可能です。このライブラリは、一度の操作で複数のバーコードを読み取ることができ、大量の画像やドキュメントを効率的に処理するのに特に便利です。

.NETバーコードライブラリの試用版はありますか?

はい、IronBarcodeでは、バーコード生成、読み取り、編集機能を.NETアプリケーション内で探索できる無料の試用版を提供しています。この試用版は、ライブラリを購入する前に評価する手助けをします。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。