IRONBARCODEの使用

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

ジョルディ・バルディア
ジョルディ・バルディア
2025年4月3日
共有:

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

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

IronBarcode 統合の最適なユースケース

IronBarcode は次に最適です:

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

.NETでバーコードリーダー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";
        }
        // Read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                var barcode = BarcodeReader.Read(imagePath);
                return barcode?.ToString() ?? "No Barcode Found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
        // Read a barcode from a stream (e.g., file upload or memory stream)
        public string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
        // Read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                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";
        }
        // Read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                var barcode = BarcodeReader.Read(imagePath);
                return barcode?.ToString() ?? "No Barcode Found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
        // Read a barcode from a stream (e.g., file upload or memory stream)
        public string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }
        // Read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                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
		' Read a barcode from an image file
		Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
			Try
				Dim barcode = BarcodeReader.Read(imagePath)
				Return If(barcode?.ToString(), "No Barcode Found")
			Catch ex As Exception
				Return $"Error reading barcode: {ex.Message}"
			End Try
		End Function
		' Read a barcode from a stream (e.g., file upload or memory stream)
		Public Function ReadBarcodeFromStream(ByVal inputStream As Stream) As String
			Try
				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
		' Read a barcode from a PDF file
		Public Function ReadBarcodeFromPdf(ByVal filePath As String) As String
			Try
				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 BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    public BarcodeController()
    {
        _barcodeScanner = new BarcodeScanner();
    }
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result });
    }
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    public BarcodeController()
    {
        _barcodeScanner = new BarcodeScanner();
    }
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result });
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcoderReader
<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
	Inherits ControllerBase

	Private ReadOnly _barcodeScanner As BarcodeScanner
	Public Sub New()
		_barcodeScanner = New BarcodeScanner()
	End Sub
	<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})
	End Function
End Class
$vbLabelText   $csharpLabel

Swagger UI

Barcode Reader SDK for .NETの使用: 図1

Pixabay から追加アップロード

またはここに画像をドラッグアンドドロップします

画像の代替テキストを追加

出力

バーコードリーダーSDK for .NETの使用: 図2

Pixabay から追加アップロード

またはここに画像をドラッグアンドドロップします

画像の代替テキストを追加

この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
  1. エラーハンドリング: SDKユーザーにより良い診断を提供するために、エラーハンドリングとログ記録を拡張します。

  2. バッチ処理: 画像のコレクションから複数のバーコードを処理したい場合、画像やストリームの配列を入力として受け取るメソッドを作成できます。

  3. カスタマイズ: 精度、速度、対応するバーコードの種類など、バーコード検出パラメーターの設定オプションを提供します。

ライセンスの考慮事項

先に述べたように、IronBarcode SDKは内部アプリケーションへの統合を目的としており、APIを通じて公開するには追加のライセンスが必要です。 サービスの一部として、例えばパブリックAPIなどでIronBarcodeを公開する前に、必要なライセンス(SDK、OEM、またはSaaS)を確保しなければなりません。

IronBarcodeをスタンドアロンのSDKとして再販しないでください、またはパブリック向けのAPIを介して公開しないでください。この使用法をカバーするライセンスが確保されていることを確認せずに。

今日、IronBarcodeを無料で試してみてください

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

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