IRONSOFTWAREHOME
IRONBARCODE VERWENDEN

Wie man eine .NET MAUI Barcode-Scanner-SDK-App erstellt

Curtis Chau
Curtis Chau
Updated: 28. Juni 2026

.NET MAUI erfüllt das Versprechen einer einzigen Codebasis, die auf Android, iOS und Windows abzielt. Die Herausforderung besteht darin, native Hardwarefunktionen wie das Scannen von Barcodes zu integrieren. Die manuelle Anbindung von Kamera-APIs erfordert plattformspezifische Konfigurationen, bedingte Kompilierungsanweisungen und stundenlanges Debuggen. Es gibt einen schnelleren Weg.

Dieses Tutorial zeigt Ihnen, wie Sie mit IronBarcode einen funktionierenden plattformübergreifenden Barcode-Scanner in .NET MAUI erstellen. Sie richten das Projekt ein, konfigurieren Plattformberechtigungen, scannen Barcodes aus Bilddateien, lesen Barcodes aus PDF-Dokumenten und verarbeiten mehrere Symbologien mit Scanoptionen – alles mit Code, den Sie auf jedem unterstützten Zielsystem ausführen können.

Starten Sie Ihre kostenlose Testphase und folgen Sie den unten stehenden Schritten.

NuGetMit NuGet installieren

PM > Install-Package BarCode

Install IronBarcode by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.

Wie richtet man ein Barcode Scanner SDK in .NET MAUI ein?

Die Einrichtung eines .NET MAUI Barcode-Scanner-SDK erfordert die Erstellung eines neuen Projekts, die Installation des NuGet-Pakets und die Konfiguration von Plattformberechtigungen. Der gesamte Konfigurationsprozess dauert in Visual Studio einige Minuten.

Erstellen Sie das .NET MAUI-Projekt

Öffnen Sie Visual Studio und erstellen Sie ein neues .NET MAUI App-Projekt. Geben Sie dem Projekt einen aussagekräftigen Namen wie "BarcodeScanner" und wählen Sie .NET 8 oder höher als Zielframework aus. Visual Studio generiert die Standardprojektstruktur mit plattformspezifischen Ordnern für Android und iOS.

Wenn Sie .NET 10 als Zielplattform verwenden, gilt die gleiche Projektvorlage. Aktualisieren Sie die <TargetFrameworks>-Eigenschaft in Ihrer .csproj-Datei, um net10.0-android, net10.0-ios und net10.0-windows10.0.19041.0 bei Bedarf einzuschließen. Die vollständige Liste der Zielframework-Moniker und der Mindestanforderungen an die Betriebssystemversion finden Sie in der Dokumentation zu den von .NET MAUI unterstützten Plattformen .

IronBarcode installieren

Installieren Sie das IronBarcode NuGet Paket mithilfe der Paket-Manager-Konsole:

PM > Install-Package BarCode

Dieser Befehl lädt das Barcode-Scanner-SDK sowie alle erforderlichen Abhängigkeiten für die .NET MAUI Anwendung herunter und installiert sie.

Plattform-Berechtigungen konfigurieren

Auch wenn beim Scannen von Bilddateien anstatt von einem Live-Kamerabild, ist es ratsam, die folgenden Berechtigungen für die .NET MAUI Barcode-Scanner-App zu konfigurieren.

Für Android fügen Sie Folgendes zu Platforms/Android/AndroidManifest.xml hinzu:

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

Für iOS fügen Sie diese Einträge zu Platforms/iOS/Info.plist hinzu:

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

Initialisierung des SDK

Legen Sie Ihren Lizenzschlüssel frühzeitig im Anwendungslebenszyklus fest, um sicherzustellen, dass IronBarcode vollständig aktiviert ist, bevor Scanvorgänge durchgeführt werden. Platzieren Sie die Aktivierung in MauiProgram.cs:

using IronBarCode;

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";

return builder.Build();

IronBarcode stellt eine kostenlose Testlizenz für Entwicklung und Tests zur Verfügung. Setzen Sie den Schlüssel einmal beim Start; alle nachfolgenden Aufrufe von BarcodeReader und BarcodeWriter innerhalb desselben Prozesses verwenden die aktivierte Lizenz.

Wie liest man Barcodes aus Bilddateien?

Die Kernfunktion eines jeden MAUI-Barcodescanners besteht im Einlesen von Barcodes aus ausgewählten Bildern. Die BarcodeReader.Read()-Methode akzeptiert einen Dateipfad und gibt eine Sammlung von BarcodeResult-Objekten zurück, eines pro erkanntem Barcode.

Gestaltung der Benutzeroberfläche

Erstellen Sie eine saubere Schnittstelle in MainPage.xaml, die es Benutzern ermöglicht, eine Bilddatei auszuwählen und die gescannten Barcode-Daten anzuzeigen:

<?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

Einführung von BarCode-Scanning

Fügen Sie die Scanlogik zu MainPage.xaml.cs hinzu. Dieser Code behandelt die Bildauswahl über die MAUI-FilePicker-API und übergibt den ausgewählten Dateipfad an IronBarcode:

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);

            ResultLabel.Text = barcodes.Any()
                ? $"Found: {barcodes.First().Value}"
                : "No barcodes detected in selected image.";
        }
    }
}

Ausgabe

.NET MAUI Barcode Scanner SDK: Erstellen Sie einen plattformübergreifenden Scanner in Minuten: Bild 1 - Ausgabe des gescannten Barcodes

Die BarcodeReader.Read()-Methode analysiert das ausgewählte Bild und gibt alle erkannten Barcodes zurück. IronBarcode erkennt automatisch mehrere Barcode-Symbologien, darunter QR-Codes, Code 128, Code 39, EAN-13 und viele andere unterstützte Formate . Die Ergebnissammlung bietet Eigenschaften wie BarcodeType, Value, PageNumber und Koordinaten des Begrenzungsrahmens für jeden erkannten Code.

Wie scannt man BarCodes aus PDF-Dokumenten?

Eine Fähigkeit, die IronBarcode von vielen Alternativen unterscheidet, ist das direkte Auslesen von Barcodes aus PDF-Dateien. Dies ist unerlässlich für .NET MAUI Anwendungen, die Dokumenten-Workflows verarbeiten – Versandmanifeste, Bestellungen, Krankenakten und ähnliche Anwendungsfälle basieren alle auf in PDFs eingebetteten Barcodes.

Die BarcodeReader.ReadPdf()-Methode akzeptiert einen Dateipfad und gibt dieselbe BarcodeResult-Sammlung wie der Bildleser zurück, mit einer zusätzlichen PageNumber-Eigenschaft, die angibt, von welcher PDF-Seite jeder Barcode stammt:

using IronBarCode;

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 every page of the PDF
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);

        var output = string.Join("\n", barcodes.Select(b =>
            $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));

        await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
    }
}

Ausgabe

.NET MAUI Barcode Scanner SDK: Erstellen Sie einen plattformübergreifenden Scanner in Minuten: Bild 2 - Ausgabe zum Scannen eines PDFs mit QR-Codes darin

Die ReadPdf()-Methode scannt alle Seiten eines PDFs und gibt Barcode-Daten zusammen mit Seitennummern zurück, was es einfach macht, Dokumente mit mehreren Barcodes zu verarbeiten. Wenn das PDF Dutzende von Seiten umfasst, sollten Sie erwägen, ein BarcodeReaderOptions-Objekt mit PageNumbers auf einen bestimmten Bereich festzulegen, um den Scan auf relevante Seiten zu beschränken und die Verarbeitungszeit zu verkürzen.

Wie gehen Sie mit mehreren BarCodes und QR-Codes um?

In Produktionsanwendungen müssen häufig mehrere Barcodes aus einem einzigen Bild erkennen oder die Ergebnisse nach Barcode-Typ filtern. Die BarcodeReaderOptions-Klasse bietet die Konfigurationseigenschaften, die das Erkennungsverhalten steuern. Das Setzen von ExpectMultipleBarcodes auf true teilt dem Leser mit, nach dem ersten Fund weiter zu scannen, anstatt frühzeitig zu stoppen:

using IronBarCode;

// Configure the reader for multi-barcode detection with type filtering
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}");
}

Die Speed-Eigenschaft steuert den Kompromiss zwischen Scanzeit und Genauigkeit. ReadingSpeed.Faster priorisiert den Durchsatz, was sich für Apps eignet, die hochqualitative Bilder in großen Mengen scannen. ReadingSpeed.ExtraSlow wendet aggressivere Bildkorrekturvorgänge für anspruchsvolle Eingaben an -- geringer Kontrast, schiefe Winkel oder teilweise verdeckte Codes. ReadingSpeed.Balanced ist der richtige Ausgangspunkt für die meisten Anwendungen.

Die BarcodeEncoding-Aufzählung unterstützt bitweise Kombinationen, sodass Sie das Scannen genau auf die Symbologien beschränken können, die für den Anwendungsfall relevant sind, ohne die Leistung durch unnötige Überprüfungen zu beeinträchtigen.

Wie liest man Barcodes aus Speicherströmen?

Dateipfade funktionieren in den meisten Fällen gut, aber einige .NET MAUI -Workflows leiten Bilddaten über den Speicher weiter – aufgenommene Frames aus einer Kameravorschau, Bytes, die von einer REST-API heruntergeladen wurden, oder Bilddaten, die im Prozess generiert wurden. IronBarcode unterstützt System.IO.Stream-Eingaben direkt auf der BarcodeReader.Read()-Überladung:

using IronBarCode;
using System.IO;

// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
    return BarcodeReader.Read(imageStream);
}

// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
    using var httpClient = new HttpClient();
    using var stream = await httpClient.GetStreamAsync(imageUrl);
    using var memoryStream = new MemoryStream();

    await stream.CopyToAsync(memoryStream);
    memoryStream.Position = 0;

    var barcodes = BarcodeReader.Read(memoryStream);
    return barcodes.Any() ? barcodes.First().Value : string.Empty;
}

Die Stream-Überladung akzeptiert jede Stream-Unterklasse, einschließlich MemoryStream, FileStream und Netzwerksstreams. Die Bibliothek behandelt die Format-Erkennung intern, sodass Sie den Bildtyp nicht angeben müssen, bevor Sie Read() aufrufen.

Wie generiert man Barcodes in einer MAUI-App?

IronBarcode übernimmt sowohl die Barcode-Generierung als auch das Lesen. Die BarcodeWriter-Klasse produziert Barcodes als Bilddateien, Bitmap-Objekte oder Stream-Instanzen, die Sie inline in einer MAUI-Ansicht anzeigen können. Dies ist nützlich für Inventarisierungs-Apps, die neben der Scanfunktion auch Barcodes drucken oder teilen müssen:

using IronBarCode;

// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
    // Create a QR code barcode
    var qrCode = QRCodeWriter.CreateQrCode(
        value: "https://ironsoftware.com/csharp/barcode/",
        qrCodeSize: 500,
        errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
    );

    // Save to a temporary file and display
    var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
    qrCode.SaveAsPng(tempPath);

    GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}

Die QRCodeWriter-Klasse unterstützt alle vier QR-Fehlerkorrekturstufen (Niedrig, Mittel, Quartil, Hoch), benutzerdefinierte Größen und Stiloptionen einschließlich Vor-/Hintergrundfarbsteuerung. Für nicht-QR-Symbologien verwenden Sie BarcodeWriter.CreateBarcode() mit dem entsprechenden BarcodeEncoding-Wert. Die Referenzdokumentation der Barcode-Generierungs-API umfasst alle unterstützten Ausgabeformate.

Was sind die wichtigsten Funktionen dieser Barcode-Scanner-Bibliothek?

IronBarcode bietet für .NET MAUI -Barcode-Scanning-Projekte mehrere Vorteile, die es von Open-Source-Alternativen wie ZXing .NET.MAUI unterscheiden:

IronBarcode -Funktionen für die .NET MAUI Entwicklung
FähigkeitDetail
Plattformübergreifende UnterstützungUnterstützt Android, iOS und Windows mit einem einzigen NuGet Paket
Mehrere EingangsquellenScannen aus Dateipfaden, Speicherströmen und PDF-Dokumenten
FormatabdeckungDekodiert über 30 1D- und 2D-Symbologien, darunter QR, Data Matrix und PDF417
Barcode-ErzeugungErzeugt QR-Codes und 1D-Barcodes als PNG-, Bitmap- oder Stream-Ausgabe.
BildkorrekturAutomatische Verarbeitung von gedrehten, schrägen und kontrastarmen Eingangssignalen
Keine native SDK-AbhängigkeitReine .NET Bibliothek, die keine plattformspezifischen nativen Bindungen erfordert

Der Punkt "keine Abhängigkeit vom nativen SDK" ist in .NET MAUI Projekten wichtig, da plattformspezifische native Bibliotheken für jedes Ziel separate Verknüpfungsschritte erfordern. IronBarcode umgeht diese Komplexität vollständig, was bedeutet, dass dieselbe NuGet Referenz ohne zusätzliche Konfiguration funktionierende Binärdateien für alle drei unterstützten Plattformen erzeugt.

Eine vollständige Liste der unterstützten Barcode-Formate finden Sie in der IronBarcode Dokumentation zu den unterstützten Formaten . Informationen zu Preisen und Lizenzbedingungen für den Produktionseinsatz finden Sie auf derIronBarcode -Lizenzseite .

Was sind die besten Vorgehensweisen für das Barcode-Scannen in der Produktion?

Der Einsatz eines Barcode-Scanners in der Produktion erfordert die Berücksichtigung einiger Bereiche, die über den grundlegenden Lesevorgang hinausgehen. Die folgenden Richtlinien behandeln die häufigsten Fehlerquellen in .NET MAUI Barcode-Anwendungen.

Wählen Sie die richtige Lesegeschwindigkeit. ReadingSpeed.Balanced verarbeitet die meisten Bilder aus der echten Welt korrekt. Reservieren Sie ReadingSpeed.ExtraSlow für Scans von gedruckten Dokumenten oder Bildern, die Benutzer nicht erneut erfassen können. Vermeiden Sie ReadingSpeed.ExtraSlow für Großmengen-Workflows, da jeder Scan erheblich länger dauert.

Filtern Sie nach erwarteten Typen. Wenn die App nur QR-Codes verarbeitet, setzen Sie ExpectBarcodeTypes = BarcodeEncoding.QRCode. Durch die Einschränkung des Suchraums wird die Verarbeitungszeit verkürzt und Fehlalarme durch andere in Hintergrundgrafiken vorhandene Symboliken werden vermieden.

Verwenden Sie ExpectMultipleBarcodes nur bei Bedarf. Das Setzen auf true führt immer dazu, dass der Leser zusätzliche Durchgänge macht. Bei Eingaben mit einem Barcode lassen Sie die Standardeinstellung (false), sodass der Scan zurückgegeben wird, sobald der erste gültige Code gefunden wird.

Behandeln Sie leere Ergebnisse elegant. BarcodeReader.Read() gibt ein leeres Array zurück, anstatt eine Ausnahme zu werfen, wenn keine Barcodes erkannt werden. Überprüfen Sie .Any(), bevor Sie auf First() zugreifen und präsentieren Sie dem Benutzer eine klare Nachricht. Eine Aufforderung zum erneuten Versuch mit Hinweisen wie "Stellen Sie sicher, dass der Barcode gut beleuchtet und zentriert ist" verbessert das Benutzererlebnis mehr als eine allgemeine Fehlermeldung.

Zwischenspeichern Sie das Optionen-Objekt. Das Erstellen einer BarcodeReaderOptions-Instanz bei jedem Scan fügt Zuweisungen hinzu. Die Optionen werden einmalig auf Klassenebene erstellt und können dann bei mehreren Aufrufen wiederverwendet werden.

Weitere Hinweise zur Diagnose von Scanfehlern und zur Leistungsoptimierung finden Sie im IronBarcode Leitfaden zur Fehlerbehebung und im Tutorial zum Barcode-Lesegerät .

Was sind Ihre nächsten Schritte?

Der Bau eines .NET MAUI Barcode Scanners mit IronBarcode erfordert die Installation eines einzigen NuGet-Pakets, das Konfigurieren von Plattformberechtigungen und das Aufrufen von BarcodeReader.Read() mit einem Dateipfad oder Stream. Dieselbe API zielt auf Android, iOS und Windows ab, ohne dass plattformspezifische Codezweige erforderlich sind.

Um die App weiter auszubauen, sollten Sie folgende Ressourcen in Betracht ziehen:

Starten Sie Ihre kostenlose Testphase , um einen Entwicklungslizenzschlüssel zu erhalten, oder informieren Sie sich über Lizenzoptionen für den Produktionseinsatz.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.