IRONSOFTWAREHOME
VIDEOLAR

BarcodeScanning.Native.Maui'den IronBarcode'a Geçiş

Curtis Chau
Curtis Chau
Updated: 3 Mayıs 2026

Bu kılavuz, BarcodeScanning.Native.Maui'den IronBarcode'a tam bir geçiş yolu sunar, kamera etkinlik deseninin yerine geçişi, ad alanı değişikliklerini, kod geçiş örneklerini ve BarcodeScanning.Native.Maui'nin ele alınamayacak senaryoların ele alınmasını kapsar — Windows MAUI, dosya ve PDF girişi, sunucu tarafı işleme ve barkod oluşturma.

BarcodeScanning.MAUI'den Neden Geçilmeli?

BarcodeScanning.Native.Maui'den geçen ekipler bu tetikleyicileri bildiriyor:

Windows MAUI Hedefi Gerekiyor: BarcodeScanning.Native.Maui iOS ve Android yerel API'lerini sarar. Windows için bir uygulaması yoktur ve planlanmamıştır. MAUI uygulamanız, iOS ve Android'in yanı sıra Windows'u hedefliyorsa, platforma özgü dallama olmadan tüm üç hedefte çalışan bir kütüphaneye ihtiyacınız var.

Dosya veya PDF Girişi Gereksinimlere Eklendi: BarcodeScanning.Native.Maui yalnızca canlı kamera karelerini kabul eder. Kullanıcılar galerilerinden bir resim yüklemek istediklerinde veya bir sunucu tarafı uç noktasından PDF'lerden barkod çıkarmak istediklerinde, kütüphane sunacak hiçbir kod yolu sunmaz. Herhangi bir dosya veya PDF barkod senaryosu farklı bir araç gerektirir.

iOS UPC-A Verileri Üretimde Yanlış Oldu: Apple'ın Vision çerçevesi, UPC-A barkodları için 13 haneli döner (EAN-13 kodlaması). BarcodeScanning.Native.Maui bunu düzeltmeden geçirir. UPC-A kodları başında sıfırla saklanıyorsa, envanter kayıtları, satış noktası sorgulamaları veya tedarik zinciri entegrasyonları sessizce bozulmuş olabilir. IronBarcode, manuel normalizasyon olmaksızın doğru 12 basamaklı UPC-A değerini döndürür.

PDF417 Tarama Güvenilir Olmadı: Kütüphanenin kendi GitHub sorunları PDF417'yi "çok sorunlu - çoğu tarama hiç oluşmuyor" olarak belgeler. Gönderi etiketleri, ehliyetler ve biniş kartları için bu doğrudan bir engelleyici.

Oluşturma Gerekiyordu: BarcodeScanning.Native.Maui barkod oluşturmuyor.IronBarcode Code128, QR, DataMatrix ve diğer formatları görüntü dosyaları veya bayt dizileri olarak oluşturur.

Sunucu Tarafı İşleme Getirildi: BarcodeScanning.Native.Maui bir kamera UI kontrolüdür — bir sunucu işlemi içinde çalışamaz. Mobil taramanın yanı sıra sunucu tarafı barkod okuma gerektiğinde,IronBarcode aynı paket ve aynı API ile her iki tarafı da kapsar.

Temel Sorun

BarcodeScanning.Native.Maui, barkod okumayı tamamen canlı kamera etkinlik modeline bağlı kılar. Herhangi bir gereksinim bu modelin dışına çıktığında, kütüphane hiç birşey sunmaz:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        ResultLabel.Text = barcode.DisplayValue;
}

IronBarcode herhangi bir veri girişini kabul eder — kamera yakalama, dosya, PDF, bayt dizisi — ve her platformda çalışır:

using IronBarCode;

private async void ScanBarcodeButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    ResultLabel.Text = results.FirstOrDefault()?.Value ?? "No barcode found";
}

##IronBarcode ve BarcodeScanning.MAUI: Özellik Karşılaştırması

ÖzellikBarcodeScanning.MAUIIronBarcode
Canlı kamera kare okumaEvet — CameraView kontrolüHayır (Medya Seçici'yi kullanarak yakalayın, sonra okuyun)
Uygulama içi kamera nişangahıEvet — gerçek zamanlı sürekliHayır — Medya Seçici aracılığıyla sistem kamera UI'yi kullanır
Görüntü dosyasından okumaHayırEvet — BarcodeReader.Read(path)
Bayt dizisinden okumaHayırEvet — BarcodeReader.Read(bytes)
Akıştan okumaHayırEvet — BarcodeReader.Read(stream)
PDF'den okumaHayırEvet — BarcodeReader.Read(pdf)
Barkod oluşturmaHayırEvet — BarcodeWriter + QRCodeWriter
Windows MAUI desteğiHayırEvet
iOS MAUI desteğiEvetEvet
Android MAUI desteğiEvetEvet
macOS MAUI desteğiBelgelenmemişEvet
Sunucu tarafı / ASP.NETHayırEvet
Docker / Azure / AWS LambdaHayırEvet
iOS UPC-A doğruluğu13 basamak döndürür (hata), manuel normalizasyon gerektirirDoğru 12 basamaklı UPC-A döndürür
PDF417 güvenilirliği"Çoğu tarama asla gerçekleşmez" (GitHub sorunları)Desteklenen
Çoklu barkod algılamaEvet (bir kare başına birden fazla e.BarcodeResults ile)Evet (ExpectMultipleBarcodes seçeneği)
Okuma hızı kontrolüNoneReadingSpeed.Faster / Balanced / Detailed / ExtremeDetail
LisansMIT (açık kaynak, ücretsiz)Ticari — Lite $999, Plus $1.499, Professional $2.999, Unlimited $5.999
.NET Framework desteğiHayır (sadece MAUI)Evet — .NET Framework 4.6.2+

Hızlı Başlangıç: BarcodeScanning.MAUI'den IronBarcode'a Geçiş

Adım 1: NuGet Paketini Değiştirin

BarcodeScanning.Native.Maui'i kaldırın:

dotnet remove package BarcodeScanning.Native.Maui
SHELL

IronBarcode'u kurun:

dotnet add package IronBarcode
SHELL

Adım 2: Ad Alanlarını Güncelleyin

Tüm dosyalardan BarcodeScanning ad alanını kaldırın:

// Remove
using BarcodeScanning;

IronBarCode ad alanını ekleyin:

// Add
using IronBarCode;

XAML dosyalarında, scanner: XML ad alanı bildirimini kaldırın:

<!-- Remove this line from ContentPage attributes -->
xmlns:scanner="clr-namespace:BarcodeScanning;assembly=BarcodeScanning.Native.Maui"
XML

Adım 3: Lisansa İzin Verin

Lisans başlatmayı uygulama başlangıcında ekleyin — MauiProgram.cs veya App.xaml.cs'da:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Kod Göç Örnekleri

Kamera Tarama: CameraView'den MediaPicker'a

CameraView kontrolü, sürekli kare algılama ile gerçek zamanlı bir vizör sağladı.IronBarcode alternatifi, sistem kamerasını açmak, bir fotoğraf çekmek ve sonucu işlemek için MAUI'nin MediaPicker'sini kullanır.

BarcodeScanning.MAUI Yaklaşımı — XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:scanner="clr-namespace:BarcodeScanning;assembly=BarcodeScanning.Native.Maui">
    <StackLayout>
        <scanner:CameraView x:Name="CameraView"
                            OnDetectionFinished="OnBarcodeDetected"
                            CameraEnabled="True"
                            BarcodeFormats="All"
                            VerticalOptions="FillAndExpand" />
        <Label x:Name="ResultLabel" Text="Waiting for scan..." />
    </StackLayout>
</ContentPage>
XML

BarcodeScanning.MAUI Yaklaşımı — arka plan kodu:

using BarcodeScanning;

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode != null)
        MainThread.BeginInvokeOnMainThread(() =>
            ResultLabel.Text = barcode.DisplayValue);
}

IronBarcode Yaklaşımı — XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui">
    <StackLayout>
        <Button Text="Scan Barcode" Clicked="ScanButton_Clicked" />
        <Label x:Name="ResultLabel" Text="Tap to scan..." />
    </StackLayout>
</ContentPage>
XML

IronBarcode Yaklaşımı — arka plan kodu:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var first = results.FirstOrDefault();
    ResultLabel.Text = first?.Value ?? "No barcode found";
}

Bu kod, iOS, Android ve Windows MAUI üzerinde herhangi bir platforma özgü dallama yapmadan çalışır. Kullanıcı deneyimi canlı uygulama içi nişangâhtan platformun yerel kamera ekranına değişir — çoğu iş uygulaması için uygundur. IronBarcode MAUI okuma kılavuzu ek yapılandırma seçeneklerini kapsar.

Her Tarama İçin Birden Fazla Barkod İşleme

BarcodeScanning.MAUI Yaklaşımı:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    foreach (var barcode in e.BarcodeResults)
    {
        MainThread.BeginInvokeOnMainThread(() =>
            Console.WriteLine($"Found: {barcode.DisplayValue}"));
    }
}

IronBarcode Yaklaşımı:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var options = new BarcodeReaderOptions
    {
        Speed = ReadingSpeed.Balanced,
        ExpectMultipleBarcodes = true
    };

    var results = BarcodeReader.Read(ms.ToArray(), options);
    foreach (var result in results)
        Console.WriteLine($"{result.Format}: {result.Value}");
}

ExpectMultipleBarcodes = true, okuyucuya ilk barkodu bulduktan sonra taramaya devam etmesini söyler. Bu seçenek olmadan, çağrı ilk eşleşmede döner, bu, tek barkod senaryoları için daha hızlıdır.

iOS UPC-A Düzeltmesi: Normalizasyon Geçici Çözümünü Kaldırın

Kod tabanınızda bir UPC-A ön sıfır geçici çözümü varsa, bunu tamamen çıkarın. IronBarcode, manuel müdahale gerektirmeden doğru 12 haneli değeri döndürür.

BarcodeScanning.MAUI Yaklaşımı — geçici çözüm mevcut:

private void OnBarcodeDetected(object sender, OnDetectionFinishedEventArg e)
{
    var barcode = e.BarcodeResults.FirstOrDefault();
    if (barcode == null) return;

    var value = barcode.DisplayValue;

    // Workaround: Apple Vision returns 13 digits for UPC-A
    if (barcode.BarcodeFormat == BarcodeFormats.Upca && value.Length == 13)
        value = value.Substring(1);

    ProcessBarcode(value, barcode.BarcodeFormat.ToString());
}

IronBarcode Yaklaşımı — geçici çözüm gerekli değil:

using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var first = results.FirstOrDefault();
    if (first == null) return;

    // result.Value is the correct 12-digit UPC-A — no normalization needed
    ProcessBarcode(first.Value, first.Format.ToString());
}

BarcodeFormats.Upca ve Substring(1) ile eşleşenleri silin — bu kod, taşıma sonrası işlevsizdir.

Dosya ve PDF Desteği Eklemek

BarcodeScanning.Native.Maui, dosya veya PDF girişi için bir eşdeğere sahip değildir. Bu, geçiş sırasında yerine getirilecek yeni bir gereksinimse:

BarcodeScanning.MAUI Yaklaşımı:

//Hayırequivalent exists — BarcodeScanning.Native.Maui cannot read from files or PDFs
C#

IronBarcode Yaklaşımı:

using IronBarCode;

// Read from a file the user picked with FilePicker
private async void ReadFileButton_Clicked(object sender, EventArgs e)
{
    var file = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select image or PDF"
    });
    if (file == null) return;

    var results = BarcodeReader.Read(file.FullPath);
    foreach (var result in results)
        ResultLabel.Text += $"\n{result.Format}: {result.Value}";
}

// Read barcodes from a PDF directly — no intermediate image step
private void ReadPdfBarcodes()
{
    var results = BarcodeReader.Read("shipment-manifest.pdf");
    foreach (var result in results)
        Console.WriteLine($"{result.Format}: {result.Value}");
}

IronBarcode PDF okuma belgesi, çok sayfalı PDF desteğini ve sayfa aralığı seçimini kapsar.

Sunucu Tarafı Barkod İşleme

Uygulamanızın API'si ASP.NET backend'i varsa ve o da barkod işlemesine ihtiyaç duyuyorsa, aynı BarcodeReader.Read() çağrısı orada değişiklik yapılmadan çalışır. BarcodeScanning.Native.Maui'nin sunucu tarafı eşdeğeri yoktur.

BarcodeScanning.MAUI Yaklaşımı:

//Hayırequivalent exists — BarcodeScanning.Native.Maui is a camera UI control
// and cannot run in a server process
C#

IronBarcode Yaklaşımı:

using IronBarCode;

// ASP.NET endpoint — reads barcodes from an uploaded file
[HttpPost("scan")]
public async Task<IActionResult> ScanBarcode(IFormFile file)
{
    using var ms = new MemoryStream();
    await file.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    var values = results.Select(r => new { r.Value, Format = r.Format.ToString() });
    return Ok(values);
}

Aynı paket, aynı API, aynı davranış — mobil ve sunucuda.

Barkod Oluşturma

BarcodeScanning.Native.Maui'nin bir oluşturma API'si yoktur. IronBarcode, birden çok format oluşturur.

BarcodeScanning.MAUI Yaklaşımı:

//Hayırequivalent exists — BarcodeScanning.Native.Maui cannot generate barcodes
C#

IronBarcode Yaklaşımı:

using IronBarCode;

// QR code
QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500)
    .SaveAsPng("qr.png");

// Code128 barcode sized to specific dimensions
BarcodeWriter.CreateBarcode("ITEM-98765", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)
    .SaveAsPng("label.png");

// Get bytes for returning from an API or storing in a database
byte[] barcodeBytes = BarcodeWriter.CreateBarcode("ITEM-98765", BarcodeEncoding.Code128)
    .ToPngBinaryData();

IronBarcode oluşturma belgesi, desteklenen tüm formatları ve stil seçeneklerini kapsar.

BarcodeScanning.MAUI API to IronBarcode Eşleme Referans

BarcodeScanning.Native.MauiIronBarcode
CameraView XAML kontrolüKaldırın — Button + MediaPicker.CapturePhotoAsync() kullanın
OnDetectionFinished olayıBarcodeReader.Read(imageBytes) dönüş değeri
OnDetectionFinishedEventArg eBarcodeReader.Read()'dan IEnumerable sonucu
e.BarcodeResultsBarcodeReader.Read() dönüş değeri
e.BarcodeResults.FirstOrDefault()results.FirstOrDefault()
barcode.DisplayValueresult.Value
barcode.BarcodeFormatresult.Format
BarcodeFormats="All"Otomatik algılandı — yapılandırma gerekli değil
CameraEnabled="True"await MediaPicker.CapturePhotoAsync()
Sadece iOS + AndroidiOS, Android, Windows, macOS MAUI
Dosya girişi yokBarcodeReader.Read(filePath)
PDF girişi yokBarcodeReader.Read("document.pdf")
Oluşturma yokBarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
iOS UPC-A 13 hane döndürürDoğru 12 hane döndürür — normalizasyon gerekmez
PDF417 güvenilmezDesteklenen

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: Canlı Nişangâh Deneyimi Kaybedildi

BarcodeScanning.MAUI: CameraView kontrolü, MAUI sayfasına doğrudan gömülü bir gerçek zamanlı kamera önizlemesi sağladı. Kullanıcılar kamera görüntüsünü görebilir ve bir barcode'a nişan alabilir — algılama, butona basmaya gerek kalmadan otomatik olarak gerçekleşir.

Çözüm: Bunun yerine platform kamer ekranını gösterir MediaPicker.CapturePhotoAsync(). Çoğu iş akışı için bu kabul edilebilir. Sürekli canlı önizlemeye ihtiyaç duyan tüketici uygulamaları için kamera kareleri doğrudan BarcodeReader.Read()'ye iletilebilir:

using IronBarCode;

// Continuous scanning: pass camera frame bytes to BarcodeReader.Read()
// (frame capture depends on your MAUI camera frame source)
private void ProcessCameraFrame(byte[] frameBytes)
{
    var results = BarcodeReader.Read(frameBytes);
    if (results.Any())
    {
        var first = results.First();
        MainThread.BeginInvokeOnMainThread(() =>
            ResultLabel.Text = first.Value);
    }
}

Bu, IronBarcode'dan ayrı olarak bir kamera kare kaynağını bağlamayı gerektirir. Bu yola başvurmadan önce canlı bir ön izlemenin gerçekten gerekli olup olmadığını veya sistem kamera arayüzünün yeterli olup olmadığını değerlendirin.

Sorun 2: e.BarcodeResults Özellik Adı ve Enum Değişiklikleri

BarcodeScanning.MAUI: barcode.DisplayValue, çözülen dizeyi döndürür; barcode.BarcodeFormat, bir BarcodeScanning kütüphane enum değeri döndürür.

Çözüm: DisplayValue'yı result.Value ile ve barcode.BarcodeFormat'yı result.Format ile değiştirin. Yineleme deseninin aynısıdır:

// Before
foreach (var barcode in e.BarcodeResults)
    Console.WriteLine(barcode.DisplayValue);

// After
var results = BarcodeReader.Read(imageBytes);
foreach (var result in results)
    Console.WriteLine(result.Value);

Sorun 3: UI Güncellemeleri için Thread Marshaling

BarcodeScanning.MAUI: OnDetectionFinished arka planda bir iş parçacığında tetiklenir, bu nedenle tüm UI güncellemeleri MainThread.BeginInvokeOnMainThread() gerektirir.

Çözüm: MediaPicker + async düzeni ile, await sonrası devam eden süreç, çağrı bağlamına geri döner — genellikle ana iş parçacığıdır. Sonuç görüntüsü etrafındaki MainThread.BeginInvokeOnMainThread() sarmalayıcıları genel olarak kaldırılabilir, bu da işlemci kodunu basitleştirir.

Sorun 4: MAUI Kamera İzinleri

BarcodeScanning.MAUI: Paket, kurulumu sırasında otomatik olarak AndroidManifest.xml ve Info.plist kamera izinlerini ekler.

**Çözüm:**IronBarcode ile MediaPicker kullanılırken, standart MAUI kamera izinleri elle eklenmelidir. Bunlar, MediaPicker.CapturePhotoAsync() için herhangi bir MAUI uygulamasının ihtiyaç duyduğu izinlerle aynıdır ve genellikle zaten mevcuttur. Cihazda test etmeden önce android.permission.CAMERA'in AndroidManifest.xml'te beyan edildiğini ve NSCameraUsageDescription'in Info.plist'de ayarlandığını doğrulayın.

BarcodeScanning.MAUI Taşıma Kontrol Listesi

Geçiş Öncesi Görevler

Herhangi bir değişiklik yapmadan önce tüm BarcodeScanning.Native.Maui kullanımını bulmak için bu aramaları yapın:

grep -rn "using BarcodeScanning" --include="*.cs" .
grep -rn "using BarcodeScanning" --include="*.xaml" .
grep -rn "CameraView" --include="*.cs" .
grep -rn "CameraView" --include="*.xaml" .
grep -rn "OnDetectionFinished" --include="*.cs" .
grep -rn "OnDetectionFinishedEventArg" --include="*.cs" .
grep -rn "e\.BarcodeResults" --include="*.cs" .
grep -rn "DisplayValue" --include="*.cs" .
grep -rn "BarcodeFormats\.Upca" --include="*.cs" .
grep -rn "scanner:" --include="*.xaml" .
SHELL

Her isabeti belgeler. Hangi dosyaların CameraView XAML kullanımını içerdiğini (XAML değişiklikleri gerektirir) ve hangilerinin yalnızca kod arkasında değişiklikler içerdiğine dikkat edin. Taşıma işlemi sonrası silinmesi gereken herhangi bir UPC-A normalizasyon çözümü belirleyin.

Kod Güncelleme Görevleri

  1. BarcodeScanning.Native.Maui NuGet paketini kaldırın
  2. IronBarcode NuGet paketini kurun
  3. IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";'i MauiProgram.cs veya App.xaml.cs'e ekleyin
  4. Tüm .cs dosyalarında using BarcodeScanning;using IronBarCode; ile değiştirin
  5. Tüm XAML dosyalarından xmlns:scanner="..." ad alanı bildirimlerini kaldırın
  6. XAML'deki scanner:CameraView kontrollerini, MediaPicker.CapturePhotoAsync() tetikleyen bir Button ile değiştirin
  7. XAML'den OnDetectionFinished="..." etkinlik bağlantılarını kaldırın
  8. OnDetectionFinished olay işleyicilerini, BarcodeReader.Read() kullanan async buton tıklama işleyicileriyle değiştirin
  9. barcode.DisplayValue'i result.Value ile her yerde değiştirin
  10. barcode.BarcodeFormat'i result.Format ile her yerde değiştirin
  11. Tüm BarcodeFormats.Upca + Substring(1) normalize etme çözümlerini silin
  12. Çoklu barkod algılama daha önce e.BarcodeResults çoklu öğe döndürmeye dayanıyorsa, BarcodeReaderOptions'ye ExpectMultipleBarcodes = true ekleyin
  13. Asenkron düzen onları gereksiz kıldığında sonuç görüntüsü kodundan MainThread.BeginInvokeOnMainThread() sarmalayıcılarını kaldırın
  14. AndroidManifest.xml ve Info.plist kamera izinlerinin mevcut olduğunu doğrulayın

Geçiş Sonrası Testler

  • iOS barcode taramasının çalıştığını ve UPC-A değerlerinin başında sıfırlar olmadan 12 basamaklı dizeler olarak döndüğünü doğrulayın
  • Android barcode taramasının, uygulama tarafından kullanılan tüm formatlar için doğru değerleri ürettiğini doğrulayın
  • Windows'ın bir yapı hedefi olması durumunda Windows MAUI barcode taramasının çalıştığını doğrulayın
  • Gerçek gönderim etiketleri, ehliyetler veya biniş kartlarına karşı PDF417 taramasını test edin eğer bunlar kullanılıyorsa
  • ExpectMultipleBarcodes = true ile çoklu barkod senaryolarını test edin ve bir görüntüdeki tüm barkodların döndüğü onaylayın
  • Tüm MAUI hedeflerinde dosya seçici taramasının (BarcodeReader.Read(filePath)) çalıştığını doğrulayın
  • Bu, taşınma yanında eklenen yeni bir yetenek ise PDF barcode okumanın doğrulayın
  • Bir sunucu bileşeni eklendiyse, sunucu tarafı BarcodeReader.Read()'ın doğru sonuçlar ürettiğini doğrulayın
  • Herhangi bir mevcut otomatik testi çalıştırın ve taşınma öncesi taban çizgileri ile barcode değer çıktısını karşılaştırın

IronBarcode'a Geçmenin Temel Faydaları

Tam Windows MAUI Desteği: IronBarcode, dört MAUI hedefinde çalışır — iOS, Android, Windows ve macOS — aynı kod ve aynı paket kullanılarak. Windows için platforma özgü barkod uygulaması gerekmez ve uygulama kodunda #if WINDOWS blokları gerekmez.

Herhangi Bir Girdi Kaynağı: BarcodeReader.Read() dosya yollarını, byte dizilerini, akışları ve PDF belgelerini kabul eder. Herhangi bir barcode senaryosu — kamera yakalama, dosya yükleme, galeri resmi, sunucu tarafı PDF işleme — aynı statik yöntemi, aynı sonuç türüyle kullanır.

Doğru UPC-A Değerleri: IronBarcode, iOS'de doğru 12 haneli UPC-A değerini uygulamada herhangi bir normalizasyon kodu olmadan döndürür. BarcodeScanning.Native.Maui'nin davranışı nedeniyle bir başına sıfır ile saklanan geçmiş UPC-A verileri, göçten sonra okunan değerlerin doğruluğunu etkilemez.

Güvenilir PDF417: PDF417 tamamen desteklenir ve güvenilir bir şekilde okunur. Gönderim etiketleri, ehliyet ve biniş kartları BarcodeScanning.Native.Maui'nin GitHub sorunlarında belgelenmiş olan "çoğu tarama gerçekleşmez" kısıtlaması olmaksızın tarar.

Barkod Oluşturma: BarcodeWriter.CreateBarcode() ve QRCodeWriter.CreateQrCode() Code128, QR, DataMatrix ve diğer formatları PNG dosyaları veya byte dizileri olarak üretir. Üretim ve okuma, aynı paketle sağlanır, ek bir bağımlılık gerektirmez.

Sunucu Tarafı Dağıtım: Aynı BarcodeReader.Read() çağrısı ASP.NET, Azure Functions, Docker konteynerlerinde ve AWS Lambda üzerinde çalışır. Mobil ve sunucu barcode mantığı, aynı API'yi, aynı format desteğini ve aynı sonuç tipini paylaşabilir, iki ayrı barcode uygulaması tutmaya gerek yoktur.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez