Web Demos

BARCODE READER SDK DEMO

Explore the flexibe barcode reading settings to optimize for your specific usage scenario.

WEB TWAIN SDK DEMO

Try the most popular web scanner features: scan images, import local images and PDF files, edit, save to local, upload to database, and etc.

BARCODE READER JAVASCRIPT DEMO

Transform any camera-equipped devices into real-time, browser-based barcode and QR code scanners.

MRZ SCANNER WEB DEMO

Detects the machine-readable zone of a passport, scans the text, and parses into human-readable data.

APP STORE DEMOS

BARCODE READER SDK FOR IOS

BARCODE READER SDK FOR ANDROID

VIEW MORE DEMOS >
Dev Center
Table of contents

Thanks for downloading Dynamsoft Barcode Reader Package!

Your download will start shortly. If your download does not begin, click here to retry.

Read Incomplete Barcodes

In some cases, barcodes may have incomplete sections due to typographical errors as shown below.

incomplete-barcodes

Incomplete Barcodes

In this case, you can enable the barcode completion logic in DBR using BarcodeComplementModes. After that, DBR will attempt to complete and correct the barcode according to the structural characteristics of the corresponding barcode type.

Check out the following code snippet on how to configure BarcodeComplementModes.

  • JavaScript
  • Android
  • Objective-C
  • Swift
  • C
  • C++
  • C#
  • Java
  • Python
// Obtains the current runtime settings of DBT.
let settings = await scanner.getRuntimeSettings();
// Adds BCM_GENERAL to barcodeComplementModes.
settings.furtherModes.barcodeComplementModes = [Dynamsoft.DBR.EnumBarcodeComplementMode.BCM_GENERAL];
// Updates the settings.
await scanner.updateRuntimeSettings(settings);
// Obtain current runtime settings of `reader` instance.
PublicRuntimeSettings settings = reader.getRuntimeSettings();
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.furtherModes.barcodeComplementModes = new int[]{EnumBarcodeComplementMode.BCM_GENERAL};
// Update the settings.
reader.updateRuntimeSettings(settings);
NSError* err = nil;
// Obtain current runtime settings of `reader` instance.
iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.furtherModes.barcodeComplementModes = @[@(EnumBarcodeComplementModeGeneral)];
// Update the settings.
[reader updateRuntimeSettings:settings error:&err];
// Obtain current runtime settings of `barcodeReader` instance.
let settings = try? barcodeReader.getRuntimeSettings()
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings?.furtherModes.barcodeComplementModes = [EnumBarcodeComplementMode.general]
// Update the settings.
try? barcodeReader.updateRuntimeSettings(settings!)
PublicRuntimeSettings settings;
char szErrorMsg[256] = {0};
// Obtain current runtime settings of `reader` instance.
DBR_GetRuntimeSettings(reader, &settings);
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.furtherModes.barcodeComplementModes[0] = BCM_GENERAL;
// Update the settings.
DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
PublicRuntimeSettings settings;
char szErrorMsg[256] = {0};
// Obtain current runtime settings of `reader` instance.
reader.GetRuntimeSettings(&settings);
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.furtherModes.barcodeComplementModes[0] = BCM_GENERAL;
// Update the settings.
reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
// Obtain current runtime settings of `reader` instance.
PublicRuntimeSettings settings = reader.GetRuntimeSettings();
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.FurtherModes.BarcodeComplementModes[0] = BCM_GENERAL;
// Update the settings.
reader.UpdateRuntimeSettings(settings);
// Obtain current runtime settings of `reader` instance.
PublicRuntimeSettings settings = reader.getRuntimeSettings();
// Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.furtherModes.barcodeComplementModes = new int[]{EnumBarcodeComplementMode.BCM_GENERAL};
// Update the settings.
reader.updateRuntimeSettings(settings);
# Obtain current runtime settings of `reader` instance.
settings = reader.get_runtime_settings()
# Add BCM_GENERAL to the barcodeComplementModes to decode incomplete barcodes.
settings.barcode_complement_modes[0] = EnumBarcodeComplementMode.BCM_GENERAL
# Update the settings.
reader.update_runtime_settings(settings)

NOTE:

The barcode completion logic only supports QR code and Data Matrix at present.

This page is compatible for:

Version 7.5.0

Is this page helpful?

YesYes NoNo

In this article:

latest version

    • Latest version
    • Version 9.x
      • Version 9.6.0
      • Version 9.4.0
      • Version 9.2.0
      • Version 9.0.0
    • Version 8.x
      • Version 8.8.0
      • Version 8.6.0
      • Version 8.4.0
      • Version 8.2.0
      • Version 8.1.2
      • Version 8.1.0
      • Version 8.0.0
    • Version 7.x
      • Version 7.6.0
      • Version 7.5.0
    Change +