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:

version 9.6.40

  • Latest version
  • Version 10.x
    • Version 10.2.0
    • Version 10.0.21
    • Version 10.0.20
    • Version 10.0.10
    • Version 10.0.0
  • Version 9.x
    • Version 9.6.40
    • Version 9.6.33
    • Version 9.6.32
    • Version 9.6.31
    • Version 9.6.30
    • Version 9.6.20
    • Version 9.6.10
    • 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 +