Zum Fußzeileninhalt springen
IRONBARCODE VERWENDEN

Wie erstellt man ein Barcode-Reader-SDK in .NET?

IronBarcode ermöglicht es .NET-Entwicklern, ihren Anwendungen mit minimalem Code Barcode-Lesefunktionen hinzuzufügen. Es unterstützt mehrere Formate, darunter 1D- und 2D-Barcodes, verschiedene Bildquellen und bietet eine hohe Genauigkeit durch maschinelles Lernen bei der Erkennung in Produktionsumgebungen.

Das Scannen von Barcodes ist für viele Anwendungen unerlässlich, von der Bestandsverwaltung über den Einzelhandel bis hin zur Logistik. Durch die Integration der Barcode-Lesung in Ihre .NET-Anwendungen können Sie die Datenerfassung vereinfachen, Arbeitsabläufe automatisieren und die Effizienz steigern. Bei der Bewertung von Barcode-Lesegeräten sollten Faktoren wie unterstützte Formate, Verarbeitungsgeschwindigkeit und Integrationskomplexität berücksichtigt werden. Die IronBarcode-Bibliothek bietet volle plattformübergreifende Kompatibilität mit außergewöhnlichen Fehlertoleranzfunktionen .

IronBarcode ist eine effiziente .NET-Bibliothek, die die Arbeit mit Barcodes vereinfacht. Mit diesem Tool können Sie Barcodes aus Bildern , Streams und PDF-Dateien lesen sowie QR-Codes mithilfe des C# QR Code Generators generieren. Dieser Artikel zeigt Ihnen, wie Sie das Scannen von Barcodes in Ihre .NET-Anwendung integrieren, wobei der Schwerpunkt auf der Erstellung einer API- oder Web-App-Integration liegt, um die Funktionalität des Barcode-Scannens bereitzustellen. Die Bibliothek unterstützt verschiedene Barcode-Formate, darunter 1D- und 2D-Barcodes, mit erweiterten Generierungsfunktionen und Gestaltungsoptionen .

Was sind die besten Anwendungsfälle für die IronBarcode-Integration?

IronBarcode zeichnet sich in folgenden Szenarien aus:

Wie erstelle ich ein Barcode-Reader-SDK in .NET?

Um einen Barcode-Leser zu erstellen, der als Dienst in Ihrer Anwendung bereitgestellt werden kann, integrieren Sie IronBarcode in eine REST-API oder Webanwendung. Die Wahl der Architektur hängt von Ihren Verarbeitungsanforderungen ab: Einzelbildverarbeitung für gelegentliche Scans, Stapelverarbeitung für Dokumentenworkflows oder Stream-Verarbeitung für Anwendungen mit kontinuierlichem Scannen. Hier ist ein Beispiel mit ASP.NET Core unter Berücksichtigung der Thread-Sicherheit . Die Lesefunktionen der Bibliothek umfassen fortschrittliche Bildbearbeitungsfilter für optimale Genauigkeit.

  1. Installieren Sie die .NET-Bibliothek zum Lesen von Barcodes in C# mithilfe von NuGet-Paketen.
  2. Erstellen Sie eine wiederverwendbare Barcode-Scan-Klasse mit geeigneter Fehlerbehandlung.
  3. Methoden zum Lesen von Barcodes aus verschiedenen Quellen entwickeln
  4. Integrieren Sie die Barcode-Bildlesung mithilfe verbesserter Einstellungen in Ihre Anwendung.
  5. Leistung mit verschiedenen Lesegeschwindigkeitsoptionen testen und verbessern.

Was benötige ich vor dem Start?

Falls Sie IronBarcode noch nicht heruntergeladen haben, tun Sie dies bitte jetzt für Ihr Projekt. Stellen Sie sicher, dass Sie den richtigen Lizenzschlüssel für Ihren Verwendungszweck besitzen. Beachten Sie, dass für die Bereitstellung der Funktionalität von IronBarcode über eine öffentliche API oder den Weiterverkauf als eigenständiger Dienst zusätzliche Lizenzen (SDK, OEM oder SaaS) erforderlich sind. Bitte informieren Sie sich über die Lizenzoptionen, bevor Sie fortfahren. Für Entwicklungsumgebungen können Sie mit der kostenlosen Testversion beginnen und Ihren Lizenzschlüssel anwenden , wenn Sie bereit für die Produktion sind. Im Änderungsprotokoll finden Sie die neuesten Updates und Meilensteine .

Für eine optimale Leistung sollten Sie Ihre Einsatzumgebung berücksichtigen. IronBarcode unterstützt plattformübergreifende Kompatibilität, einschließlich Windows , Linux , macOS , Docker und Cloud-Plattformen wie Azure und AWS Lambda . Mobile-Entwickler können die Unterstützung für Android und iOS durch die Blazor-Integration nutzen. Für .NET MAUI-Anwendungen folgen Sie dem Tutorial für Barcode-Scanner .

Wie erstelle ich eine Barcode-Scanner-Klasse?

Sobald Sie IronBarcode eingerichtet und in Ihr Projekt installiert haben, können Sie eine wiederverwendbare Barcode-Scanner-Klasse erstellen, die die Funktionalität von IronBarcode integriert und als API-Endpunkt bereitstellt. Die Implementierung umfasst Leistungsoptimierungen und Bildkorrekturen für anspruchsvolle Szenarien mit Orientierungskorrektur . Erwägen Sie die Implementierung von Erntebereichen zur schnelleren Verarbeitung, wenn die Barcode-Positionen vorhersehbar sind:

using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

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

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                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 async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

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

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                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 async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
$vbLabelText   $csharpLabel

Diese verbesserte BarcodeScanner Klasse beinhaltet Leistungsoptimierungen durch Options-Caching, asynchrone Verarbeitung für bessere Skalierbarkeit und Bildfilter für höhere Genauigkeit. Die Implementierung folgt den SOLID-Prinzipien und bietet eine produktionsreife Fehlerbehandlung. Für zusätzliche Funktionalität sollten Sie die System.Drawing-Integration oder den Export als Streams in Betracht ziehen. Sie können auch Barcode-Bilder mit benutzerdefinierten Barcode-Stilen und QR-Code-Styling erstellen .

Welche Methoden sollte ich verwenden, um verschiedene Barcode-Quellen zu lesen?

Jede Methode wird für spezifische Anwendungsfälle und Verarbeitungsanforderungen optimiert:

  • ReadBarcodeFromImage(string imagePath) : Liest einen Barcode aus einer Bilddatei.
  • ReadBarcodeFromStream(Stream inputStream) : Liest einen Barcode aus einem Eingabestream (z. B. Datei-Upload oder Speicherstream).
  • ReadBarcodeFromPdf(string filePath) : Liest einen Barcode aus einer PDF-Datei.

Bei hohem Durchsatz empfiehlt sich die Verwendung von Zuschnittbereichen , um die Verarbeitungsgeschwindigkeit um bis zu 5x zu steigern, sofern die Barcode-Positionen vorhersehbar sind. Sie können auch Barcode-Bilder erstellen oder Barcodes in verschiedenen Formaten speichern . Die Bibliothek unterstützt das Lesen von System.Drawing -Objekten und kann Barcodes als HTML- oder PDF-Dokumente exportieren.

Wie kann ich das Einlesen von Barcodes über eine REST-API ermöglichen?

Um externen Anwendungen die Nutzung Ihrer Barcode-Scanfunktionalität zu ermöglichen, stellen Sie diese als REST-API mit ASP.NET Core bereit. Die Implementierung umfasst eine angemessene Fehlerbehandlung, Validierung und Unterstützung für mehrere Eingabeformate. Sie können Barcodes auch mit dem C# Barcode Image Generator erzeugen oder Beispiele für den Barcode-Schnellstart erkunden. Bei der Verarbeitung von PDFs empfiehlt es sich, Barcodes auf bestehende PDFs aufzubringen, um die Dokumentenverfolgung zu ermöglichen:

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;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
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;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
$vbLabelText   $csharpLabel

Wie sieht die API in Swagger UI aus?

Die Swagger-UI zeigt die BarcoderScannerSDK-API mit zwei POST-Endpunkten zum Lesen von Barcodes aus Bildern und PDFs, inklusive Datei-Upload-Schnittstelle und Konfigurationsoptionen für Anfragen.

Wie sieht die API-Antwort aus?

Die API-Dokumentation zeigt eine erfolgreiche POST-Anfrage an einen Barcode-Lese-Endpunkt, der "Hello World!" mit dem Antwortstatus 200 OK zurückgibt.

Diese API stellt POST-Endpunkte bereit, über die Sie Barcode-Bilder hochladen können, und die API gibt die Barcode-Daten zurück. Die Implementierung umfasst ordnungsgemäße Validierung, Fehlerbehandlung und Protokollierung für den Produktionseinsatz. Für mobile Anwendungen sollten Sie die Hinzufügung von Endpunkten in Betracht ziehen, die für kleinere Bildgrößen und schnellere Reaktionszeiten optimiert sind. Sie können auch Barcodes aus Daten erstellen oder diese als HTML oder PDF exportieren. Für hohe Kontrastanforderungen 1-BPP-Barcodebilder generieren. ## Welche erweiterten Funktionen kann ich hinzufügen?

Um Ihr SDK weiter zu verbessern, sollten Sie die Implementierung dieser produktionsreifen Funktionen mithilfe der vollständigen API-Referenz von IronBarcode in Betracht ziehen. Entdecken Sie die Funktionsübersicht und sehen Sie sich Demos für praktische Anwendungen an:

Wie kann ich mehrere Barcode-Typen unterstützen?

IronBarcode unterstützt das gleichzeitige Lesen mehrerer Barcodes . Sie können Ihr SDK so konfigurieren, dass es mehrere Barcodes gleichzeitig mit spezifischer Formatfilterung akzeptiert. Die Bibliothek unterstützt das Schreiben von Unicode-Barcodes einschließlich chinesischer und arabischer Zeichen. Für spezielle Anwendungen sollten Sie das Lesen von Code 39 und das Erstellen von QR-Codes mit benutzerdefiniertem Styling erkunden:

public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
$vbLabelText   $csharpLabel

Welche weiteren Verbesserungen sollte ich in Betracht ziehen?

Bei Produktionsumgebungen empfiehlt sich die Implementierung von Konfidenzschwellenwerten , um Fehlalarme zu reduzieren und die Datengenauigkeit zu gewährleisten. Die auf maschinellem Lernen basierende Erkennung kann für Ihren spezifischen Anwendungsfall feinabgestimmt werden. Befolgen Sie beim Erstellen von Bereitstellungspaketen die Anleitung des MSI-Installationsprogramms und beheben Sie etwaige Probleme mit fehlenden DLL-Dateien . Bei AWS-Bereitstellungen sollten Sie mögliche Laufzeitprobleme beachten. Erwägen Sie die Erstellung von Barcodes mit verschiedenen Ausgabedatenformaten und informieren Sie sich über Tutorials zum Lesen von Barcodes .

Welche lizenzrechtlichen Aspekte sollte ich beachten?

Wie bereits erwähnt, ist das IronBarcode SDK für die Integration in interne Anwendungen gedacht, und die Bereitstellung über eine API erfordert zusätzliche Lizenzen. Bevor Sie IronBarcode als Teil eines Dienstes, wie z. B. einer öffentlichen API, anbieten, müssen Sie die erforderlichen Lizenzen (SDK, OEM oder SaaS) erwerben. Bei Unternehmenseinsätzen sollten Sie die verfügbaren Lizenzerweiterungen für zusätzliche Lizenzen oder verbesserten Support in Betracht ziehen. Prüfen Sie die Upgrade-Optionen zur Skalierung Ihrer Bereitstellung.

IronBarcode darf nicht als eigenständiges SDK weiterverkauft oder über eine öffentlich zugängliche API bereitgestellt werden, ohne sicherzustellen, dass Ihre Lizenz diese Nutzung abdeckt. Bei Webanwendungen müssen Sie möglicherweise den Lizenzschlüssel in der web.config-Datei konfigurieren, um eine ordnungsgemäße Aktivierung zu gewährleisten. Bleiben Sie über Sicherheits-CVE-Updates informiert und befolgen Sie die Best Practices für Laufzeitkopierausnahmen . Bei technischen Problemen sollten Sie eine technische Anfrage einreichen. Informieren Sie sich über Ressourcen zum Schreiben von Unicode-Barcodes und erkunden Sie das Tutorial zum Lesen von Barcodes .

Warum sollte ich IronBarcode heute ausprobieren?

Erleben Sie die neuen Funktionen von IronBarcode. Testen Sie unsere kostenlose Testversion und entdecken Sie die reibungslose Generierung, das Lesen und Bearbeiten von Barcodes für Ihre .NET-Anwendungen. Mit fortschrittlichen Funktionen, außergewöhnlicher Leistung und einer benutzerfreundlichen Oberfläche ist IronBarcode die ultimative Lösung für all Ihre Barcode-Bedürfnisse. Entdecken Sie unsere vollständige Dokumentation , sehen Sie sich Codebeispiele an und schauen Sie sich Live-Demos an, um den vollen Funktionsumfang zu verstehen. Schauen Sie sich Anleitungen zum Lesen von Barcodes an und erkunden Sie die Unterstützung für MicroQR und rMQR . Informieren Sie sich über die NuGet-Paketoptionen für verschiedene Bereitstellungsszenarien. Weitere Informationen zu unserer kompletten Barcode-Lösung finden Sie in der IronBarcode-Dokumentation . Starten Sie noch heute Ihre kostenlose Testphase und verbessern Sie Ihre Projekte.

Häufig gestellte Fragen

Wie kann ich einen Barcode-Leser in eine .NET-Anwendung integrieren?

Sie können einen Barcode-Leser in eine .NET-Anwendung integrieren, indem Sie die IronBarcode-Bibliothek verwenden. Installieren Sie zuerst IronBarcode, erstellen Sie dann eine Klasse für das Barcode-Scannen und implementieren Sie Methoden, um Barcodes aus Bildern, Streams und PDFs zu lesen. Testen und optimieren Sie abschließend Ihre Einrichtung.

Wie kann ich die Barcode-Lesefunktionalität als REST-API bereitstellen?

Um die Barcode-Lesefunktionalität als REST-API bereitzustellen, verwenden Sie ASP.NET Core, um eine Webanwendung zu erstellen. Integrieren Sie die IronBarcode-Bibliothek, entwickeln Sie eine BarcodeScanner-Klasse und definieren Sie API-Endpunkte, die Barcodes mit Methoden wie ReadBarcodeFromImage und ReadBarcodeFromStream lesen.

Welche Barcode-Typen können mit einer .NET-Bibliothek gelesen werden?

Eine .NET-Bibliothek wie IronBarcode kann verschiedene Barcode-Typen lesen, einschließlich QR-Codes, Code 128, UPC und EAN. Sie können die Bibliothek so konfigurieren, dass sie mehrere Barcode-Typen gleichzeitig erkennt, indem Sie die Erkennungsparameter einstellen.

Wie kann ich Fehler beim Lesen von Barcodes in .NET behandeln?

Die Behandlung von Fehlern beim Barcode-Lesen kann durch die Implementierung robuster Fehlerbehandlung innerhalb Ihrer Barcode-Scan-Methoden mit IronBarcode erreicht werden. Stellen Sie sicher, dass Sie Ausnahmen abfangen und sinnvolle Rückmeldungen oder Wiederholungsmechanismen bereitstellen, um die Zuverlässigkeit des Barcode-Leseprozesses zu verbessern.

Was sind die Lizenzanforderungen für die Verwendung einer .NET-Barcode-Bibliothek in einer öffentlichen API?

Bei der Verwendung von IronBarcode in einer öffentlichen API müssen Sie sicherstellen, dass die richtigen Lizenzen vorliegen. Dazu gehört der Erwerb von SDK-, OEM- oder SaaS-Lizenzen, da die Bereitstellung der Bibliotheksfunktionalität als eigenständiger Dienst oder öffentliche API zusätzliche Genehmigungen erfordert.

Kann ich mehrere Barcode-Scans im Stapelverarbeitungsmodus mit einer .NET-Bibliothek ausführen?

Ja, Sie können mehrere Barcode-Scans im Stapelverarbeitungsmodus mit IronBarcode ausführen. Die Bibliothek ermöglicht das Lesen mehrerer Barcodes in einem einzigen Vorgang, was besonders nützlich sein kann, um große Mengen an Bildern oder Dokumenten effizient zu verarbeiten.

Gibt es eine Testversion für eine .NET-Barcode-Bibliothek?

Ja, IronBarcode bietet eine kostenlose Testversion, mit der Sie seine Fähigkeiten in Bezug auf Barcode-Erzeugung, -Lesen und -Bearbeitung innerhalb von .NET-Anwendungen erkunden können. Diese Testversion kann Ihnen helfen, die Bibliothek zu bewerten, bevor Sie eine Kaufentscheidung treffen.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen