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

.NET MAUI BarCode Scanner SDK:クロスプラットフォームのスキャナを数分で構築

私たちは皆、.NET MAUIの約束を知っています:コードを一度書けば、どこにでもデプロイできます。 しかし、ハードウェアの機能、特に BarCode スキャンを統合する必要がある場合、この"シームレスな"体験はしばしばスピードバンプにぶつかります。

カメラのネイティブAPIを手作業でブリッジしようとしたことがあれば、すぐにプラットフォーム固有の設定のウサギの穴になることを知っています。 それほど難しいことではありません。 このチュートリアルでは、セットアップにかかる時間を省き、IronBarcodeライブラリを使用して、わずか数分で動作するクロスプラットフォームスキャナを構築します。

始める準備はできましたか? 無料トライアルを入手して、コーディングしましょう。

NuGet 購入の準備ができていませんか?

PM >  Install-Package BarCode

IronBarcodeNuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 また、DLLをダウンロードできます。

どのように.NET MAUIでBarCodeスキャナーSDKをセットアップしますか?

.NET MAUI BarCodeスキャナSDKのセットアップには、新規プロジェクトの作成、NuGetパッケージのインストール、プラットフォーム権限の設定が必要です。 すべての設定プロセスは、Visual Studioで数分しかかかりません。

.NETのMAUIプロジェクトを作成する。

Visual Studioを開き、新しい.NET MAUI Appプロジェクトを作成します。 MAUIプロジェクトに"BarcodeScanner"のような分かりやすい名前を付け、ターゲットフレームワークとして.NET 8以降を選択してください。 Visual Studioは、AndroidとiOSのプラットフォーム固有のフォルダを含むデフォルトのプロジェクト構造を生成します。

IronBarcodeをインストールする

パッケージマネージャーコンソールを使用してIronBarcode NuGetパッケージをインストールしてください:

Install-Package BarCode

このコマンドは、.NET MAUIアプリケーションに必要なすべての依存関係とともに、BarCodeスキャナーSDKをダウンロードしてインストールします。

プラットフォーム権限の設定

ライブカメラではなく画像ファイルからスキャンする場合でも、.NET MAUIバーコードスキャナアプリに以下の権限を設定することは良い習慣です。

Androidの場合は、Platforms/Android/AndroidManifest.xmlに以下を追加してください:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
XML

iOSの場合は、Platforms/iOS/Info.plistにこれらのエントリを追加してください:

<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
XML

SDKを初期化します。

MauiProgram.csファイルにIronBarcodeを設定してください:

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
$vbLabelText   $csharpLabel

アプリの初期化コードにライセンスキーを設定することで、すべての機能を使用できるようになります。 IronBarcodeは開発とテスト用に無料トライアルライセンスを提供しています。

画像ファイルから BarCode を読み取るには?

MAUIバーコードスキャナの中核機能は、選択した画像からバーコードを読み取る機能です。 IronBarcodeはそのBarcodeReaderクラスでこれを驚くほど簡単にします。

ユーザーインターフェイスのデザイン

ユーザーが画像ファイルを選択し、スキャンした BarCode データを表示できるように、MainPage.xaml でクリーンなインターフェイスを作成すること:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
XML

バーコード スキャンを実装する。

スキャン・ロジックをMainPage.xaml.csに追加する。 このコードは、画像選択とバーコード検出を処理します:

using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
$vbLabelText   $csharpLabel

出力

.NET MAUIバーコードスキャナSDK:クロスプラットフォームスキャナを数分で構築:画像1 - スキャンされたバーコード出力

BarCodeReader.Read()メソッドは、選択された画像を分析し、検出されたすべてのバーコードを返します。 IronBarcodeはQRコード、Code 128、Code 39、EAN-13、他の多くのフォーマットを含む複数のバーコードシンボロジーを自動的に認識します。

どのように PDF ドキュメントから BarCode をスキャンしますか?

IronBarcodeを際立たせる強力な機能の一つは、PDFファイルから直接バーコードを読み取ることです。 これは、ドキュメントワークフローを扱う.NET MAUIアプリにとって不可欠です。

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
$vbLabelText   $csharpLabel

出力

.NET MAUIバーコードスキャナSDK:クロスプラットフォームスキャナを数分で構築:画像2 - QRコードを含むPDFをスキャンするための出力

ReadPdf()メソッドは、PDFのすべてのページをスキャンし、ページ番号とともにバーコードデータを返すので、複数のバーコードを含む文書を簡単に処理できます。

複数の BarCode や QR コードをどのように扱いますか?

1回のスキャンから複数のバーコードを検出したり、特定のバーコード形式のフィルタリングを必要とするシナリオでは、BarCodeReaderOptionsクラスを構成します:

var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
$vbLabelText   $csharpLabel

この構成により、パフォーマンスを向上させるために特定のバーコードシンボロジーに検出を制限しながら、複数のバーコードのスキャンが可能になります。 Speedプロパティでは、アプリケーションの要件に基づいて、スキャン速度と精度のバランスをとることができます。

この BarCode Scanner SDK の主な利点は何ですか?

IronBarcodeは.NET MAUIバーコードスキャニングプロジェクトにいくつかの利点を提供します:

  • クロスプラットフォームのサポート:単一のコードベースからAndroid、iOSプラットフォーム、Windowsにデプロイできます。
  • 複数の入力ソース:画像、メモリストリーム、PDF ファイルから BarCode をスキャンします。
  • 幅広いフォーマットをサポート:数十の1次元および2次元バーコードシンボロジーのバーコードをデコードします。
  • シンプルなAPI:わずか数行のコードで高速バーコードスキャニングを統合
  • 外部依存なし:.NETライブラリは、追加のネイティブSDKを必要とせずに独立して動作します。

結論

IronBarcodeを使った.NET MAUIバーコードスキャナの構築は、クロスプラットフォームのアプリケーションにバーコードスキャン機能を統合することがいかに簡単であるかを示しています。 NuGetパッケージのインストールから、画像やPDFからのBarCodeの読み取りまで、すべてのプロセスで最小限の設定とコードが必要です。

.NET MAUIのクロスプラットフォームフレームワーク機能とIronBarcodeの堅牢なスキャニングSDKの組み合わせにより、開発者はモバイルとデスクトップでシームレスに動作する強力なバーコードスキャンアプリを構築することができます。

.NET MAUIプロジェクトにBarCodeスキャンを追加する準備はできましたか? 無料トライアルを開始するか、本番導入のためのライセンスオプションを検討する

よくある質問

.NET MAUIとは何ですか?また、バーコードスキャニングとどのように関係しますか?

.NET MAUIは、開発者が単一のコードベースでクロスプラットフォームのアプリケーションを作成できるフレームワークです。.NETのMAUIアプリにバーコードスキャニングを統合するのは難しいことですが、IronBarcodeは、異なるプラットフォーム間でバーコードをスキャンして読み取るための堅牢なツールを提供することで、このプロセスを簡素化します。

IronBarcode は.NET MAUIアプリのバーコードスキャナ開発をどのようにサポートできますか?

IronBarcodeはバーコードのスキャンと生成をサポートする包括的なライブラリを提供します。画像やPDFからバーコードを読み取るための使いやすいメソッドや関数を提供することで、.NET MAUIアプリ用のバーコードスキャナの作成プロセスを合理化します。

IronBarcode は.NET MAUIでのクロスプラットフォーム開発と互換性がありますか?

IronBarcodeは.NET MAUIと完全に互換性があり、開発者は単一のコードベースから複数のプラットフォームで動作するアプリケーションにバーコードスキャン機能を統合することができます。

.NET MAUIアプリケーションでIronBarcodeを使ってスキャンできるバーコードの種類は?

IronBarcodeはQRコード、Code 128、UPC、EANなど幅広いバーコードフォーマットをサポートし、.NET MAUIでの様々なアプリケーションに対応します。

IronBarcode は.NET MAUIでのバーコードスキャニングをどのように簡素化しますか?

IronBarcodeは、最小限のコードでバーコードの検出と読み取りを処理する統一APIを提供することで、バーコードスキャニングを簡素化し、.NET MAUIプロジェクトへのスムーズな統合を保証します。

MAUIアプリでPDFバーコード読み取り用にIronBarcodeを使用する利点は何ですか?

IronBarcodeは、PDFドキュメントからバーコードを抽出するための高度な機能を提供し、.NET MAUI開発者がクロスプラットフォームアプリにPDFバーコード読み取り機能を簡単に追加できるようにします。

.NET MAUIプロジェクトでIronBarcodeを設定するにはどのような手順がありますか?

.NETのMAUIプロジェクトでIronBarcodeをセットアップするには、IronBarcode NuGetパッケージをインストールし、必要な名前空間をインポートし、提供されているメソッドを利用してバーコードのスキャンと読み取り機能を実装します。

IronBarcode は.NET MAUIで画像ベースのバーコードスキャニングを処理できますか?

IronBarcodeは画像から効果的にバーコードをスキャンして読み取ることができ、.NET MAUIアプリケーションに画像ベースのバーコードスキャニングを実装しようとしている開発者にとって強力なツールとなります。

IronBarcodeはモバイルアプリケーションのリアルタイムバーコードスキャンに適していますか?

IronBarcodeはリアルタイムのバーコードスキャニングを効率的に処理するように設計されており、.NET MAUIで開発された迅速で正確なバーコードデータ処理を必要とするモバイルアプリケーションに適しています。

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