Label Capture Settings

Defined in package com.scandit.datacapture.label.capture

LabelCaptureSettings
class LabelCaptureSettings

Added in version 6.0.0

Configures label capture parameters and defines the structure of labels to be captured. This settings object is central to the Smart Label Capture workflow, specifying which label definitions to use, recognition parameters, and capture behavior.

Key configuration aspects:

  • Label definitions - Defines field types (barcodes, dates, text) and their validation rules

  • Recognition parameters - Controls scanning behavior and accuracy

  • Location selection - Specifies scanning areas and constraints

  • Symbology settings - Configures which barcode types are enabled

The settings follow a fluent builder pattern for convenient configuration and support multiple label definitions to handle different types of labels in the same scanning session. For the settings to take effect, they must be applied to a label capture instance using the appropriate apply settings method. The same holds for settings already applied: changes made to them afterwards take effect only once the settings are applied again.

builder()
fun LabelCaptureSettings.builder(): LabelCaptureSettingsBuilder

Added in version 6.21.0

Creates a Label Capture Settings Builder that allows you to fluently configure label definitions and capture settings.

val settings = LabelCaptureSettings.Builder()
    .addLabel(retailLabel)
    .addLabel(smartDeviceLabel)
    .build()
locationSelection
var locationSelection: LocationSelection?

Added in version 6.9.0

Defines the strategy with which to select one out of many visible labels. By default, this property is null and label selection is disabled.

Currently only RectangularLocationSelection is supported.

languages
var languages: List<LabelCaptureLanguage>

Added in version 8.7.0

The languages the prebuilt field definitions, such as ExpiryDateText or WeightText, recognize: the month names of their dates and the keywords that locate them on the label. Value or anchor regexes you set on a field replace the prebuilt ones and are used as given.

By default, this list is empty and the prebuilt field definitions keep their default recognition. A non-empty list restricts their language-specific patterns to the listed languages. List only the languages your labels use: every additional language widens the patterns and raises the chance of false positives.

Changing the languages doesn’t automatically apply them to LabelCapture. To change the languages of a running LabelCapture, call LabelCapture.applySettings() with these LabelCaptureSettings again.

Setting the languages throws a RuntimeException and leaves the settings unchanged if the languages cannot be applied.

setProperty(key, value)
fun setProperty(key: String,
        value: Any)

Added in version 6.3.0

Sets a property to the provided value. Use this method to set properties that are not yet part of a stable API. Properties set through this method may change in a future release.

getProperty(key)
fun getProperty(key: String): Any?

Added in version 6.3.0

Retrieves the value of a previously set property. In case the property does not exist, null is returned. Use this method to get properties that are not yet part of a stable API. These properties may change in a future release.

getSymbologySettings(symbology)
fun getSymbologySettings(symbology: Symbology): SymbologySettings

Added in version 7.4.0

Gets SymbologySettings specific for the given Symbology.

Note that modifying the returned object doesn’t automatically apply the changes to LabelCapture. After you made changes to the symbology settings, call LabelCapture.applySettings() with these LabelCaptureSettings to apply them.