Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

ZXing.Net doesn't seem to be able scan more complicated PDF417 barcodes

Aperta
#557 15 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
12/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
csharp

Direzione di ricerca

The report concerns PDF417 decoding through CameraBarcodeReaderView with BarcodeReaderOptions (TryHarder, AutoRotate, Multiple, and Formats set to TwoDimensional), and the reporter says the older Xamarin ZXing build reads the same license. Start by getting a sample image of the California license back and decoding it with the core ZXing.Net PDF417 reader using TryHarder on, outside MAUI, to see whether the failure is in the library or the wrapper. Done means that image decodes through the chosen path, which needs a reproduction the issue does not yet include.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Using ZXing.Net.Maui.Controls v0.4.0, which is based on ZXing.Net library, and the basic ZXing page and configuration, it can detect simple PDF417, but it fails to detect more complex ones, like the one on the back of a California drivers license. It also doesn't keep the torch on either, but flashes once when the page initializes. I've tried the barcode images samples on the internet by searching for "PDF417 images", only the simple ones are read....

I've tried two other packages, both based on ZXing.Net, BarcodeScanning.Native.Maui and Camera.MAUI/Camera.MAUI.ZXing. Neither works either for complex PDF417.

The Xamarin version of ZXing is able to read the CA drivers license barcode, fyi..

I'm using Visual Studio v17.9.2, XCode 15.3 and .net8.

Any insight will be appreciated.
This PDF417 scanning is for an app the County of Santa Cruz, CA is creating for our local law enforcement, so any help will be appreciated!!

Thanks!

Page:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:zxing="clr-namespace:ZXing.Net.Maui.Controls;assembly=ZXing.Net.MAUI.Controls"
             x:Class="MyProject.Views.ScanPage"
             Title="ScanPage">   
        <zxing:CameraBarcodeReaderView
			x:Name="barcodeView"
                        IsTorchOn="True"
			BarcodesDetected="BarcodesDetected" />        
</ContentPage>

Code behind:

public partial class ScanPage : ContentPage
{
	public ScanPage()
	{
		InitializeComponent();
        BindingContext = this;

        barcodeView.Options = new ZXing.Net.Maui.BarcodeReaderOptions()
        {
            TryHarder = true,
            AutoRotate = true,
            Multiple = true,
            Formats = BarcodeFormats.TwoDimensional // | ZXing.Net.Maui.BarcodeFormat.QrCode | BarcodeFormat.Pdf417 
        };
        barcodeView.IsTorchOn = true;
	}

    protected void BarcodesDetected(object sender, BarcodeDetectionEventArgs e)
    {
        foreach (var barcode in e.Results)
        { // dumps to Debug.WriteLine()...
            App.Log($"Barcode: {barcode.Format} -> {barcode.Value}");
        }

        var first = e.Results?.FirstOrDefault();
        if (first != null)
        {
            Dispatcher.DispatchAsync(async () =>
            {
                await DisplayAlert("Barcode detected", first.Value, "OK");
            });
        }
    }
}

MauiProgram.cs:

public static class MauiProgram
  {
      public static MauiApp CreateMauiApp()
      {
          var builder = MauiApp.CreateBuilder();
          builder
              .UseMauiApp<App>()
              .UseMauiCommunityToolkit()
              .UseBarcodeReader()
              .ConfigureFonts(fonts =>
              {
                  fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                  fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
              })
              .ConfigureMauiHandlers(handlers =>
              {
                  handlers.AddHandler(typeof(PillCheckbox), typeof(PillCheckboxRenderer));
              });

          builder.Services.AddSingleton<IImageInfo, ImageInfo>();

#if DEBUG
          builder.Logging.AddDebug();
#endif

          var app = builder.Build();

          //ServiceProviderHelper.Initialize(app.Services);
          return app;
      }
  }
Lingua principale
C#
Stelle
3.1k
Fork
704
Merge medio
13g 17h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di micjahn/ZXing.Net

Tutte le issue di micjahn/ZXing.Net

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.