From 6737f7cbcaa922e646278261739bd836e37e8824 Mon Sep 17 00:00:00 2001
From: James <158135022+yqz562@users.noreply.github.com>
Date: Tue, 2 Sep 2025 14:44:51 +0800
Subject: [PATCH 1/5] Update offline-registration-license.md
---
license/offline-registration-license.md | 167 +++++++++++-------------
1 file changed, 78 insertions(+), 89 deletions(-)
diff --git a/license/offline-registration-license.md b/license/offline-registration-license.md
index 9eb5b9c..7032027 100644
--- a/license/offline-registration-license.md
+++ b/license/offline-registration-license.md
@@ -4,139 +4,128 @@ title: How to use offline registration license type?
keywords: Dynamsoft Barcode Reader, FAQ, offline, license type
description: How to use offline registration license type?
needAutoGenerateSidebar: false
+permalink: /faq/general/offline-registration-license.html
---
## How to use offline registration license type?
[<< Back to FAQ index](index.md)
+
You can follow the steps below to manually register the device and get the license key for each device:
1. Log in [Customer Portal](https://www.dynamsoft.com/customer/license/fullLicense) -> Click the Activate button to activate the license
- 
+
+
2. Select the 3rd option "No License Server. Register Offline Device(s) Manually" and click Activate.
- 
+
3. Click the Add Device button then it will pop up a dialog. Download the tool from the pop up.
- 
+
4. Unzip the file and run the GenerateUUID tool on the device to be registered and get the UUID.
-For Windows:
--Open Command Prompt (cmd.exe)
--Change the working directory to the one where GenerateUUID.exe is
--Run the command `GenerateUUID.exe`
-The returned string, e.g. 8ECCA3B6-66F9-4fd6-B6B6-308C874140C6, is the machine ID.
-
-
-For Linux:
--Open Terminal
--Change the working directory to the one where GenerateUUID.exe is
--Run the command ` sudo chmod 777 GenerateUUID`
--After inputting the password, run `./GenerateUUID`
-
-You will see the generated UUID like this (the ID should be different)
-SoftbindUUID:230e089a-7dc3-4caa-9c77-f7cc6d567f9b
-"230e089a-7dc3-4caa-9c77-f7cc6d567f9b" is the generated UUID. You can now use it to register the device and get an Authorization String for it.
-
-> Note: If your device is an arm based architecture, please use get device uuid API to generate the uuid:
->
-> ```python
-> # sample code in python
-> print(BarcodeReader.get_device_uuid(1))
-> ```
-
-> Note: If you want multiple users in operating system to use the license, you will need to move the .Dynamsoft folder to a path where all the users can access. Let us say `/Home/shared/.Dynamsoft`.
-> For all the programs in the devices, you will need to set the license cache path to `/Home/shared` before initialize the license
->
-> ```python
-> # set license cache path before initialize the license
-> BarcodeReader.set_license_cache_path("/Home/shared")
-> ```
+## For Windows:
+
+1. Open Command Prompt (cmd.exe)
+2. Change the working directory to the one where `GenerateUUID.exe` is located
+3. Run the command: `GenerateUUID.exe`
+
+The returned string, e.g. `8ECCA3B6-66F9-4fd6-B6B6-308C874140C6`, is the machine ID.
+
+
+
+## For Linux:
+
+1. Open Terminal
+2. Change the working directory to the one where `GenerateUUID` is located
+3. Run the command: `sudo chmod 777 GenerateUUID`
+4. After inputting the password, run: `./GenerateUUID`
+
+ You will see the generated UUID like this (the ID should be different):
+
+ ```
+ SoftbindUUID: 230e089a-7dc3-4caa-9c77-f7cc6d567f9b
+ ```
+
+ `230e089a-7dc3-4caa-9c77-f7cc6d567f9b` is the generated UUID. You can now use it to register the device and get an Authorization String for it.
+
+ > Note: If your device is an ARM-based architecture, please use get device uuid API to generate the uuid:
+ > ```python
+ > # sample code in python
+ > print(BarcodeReader.get_device_uuid(1))
+ > ```
+
+ > Note: If you want multiple users in operating system to use the license, you will need to move the Dynamsoft folder to a path where all the users can access. Let us say `/Home/shared/.Dynamsoft`.
+ > For all the programs in the devices, you will need to set the license cache path to `/Home/shared` before initializing the license
+ > ```python
+ > # set license cache path before initialize the license
+ > BarcodeReader.set_license_cache_path("/Home/shared")
+ > ```
+
5. Input the generated UUID and device name and click Submit.
- 
+
6. Then an authorization string will be generated. This string is the license for this device. Copy the license and set it in the code
- 
+
Code snippet in JavaScript:
-
```javascript
Dynamsoft.DBR.BarcodeScanner.license = "DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…";
let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
```
Code snippet in C:
-
```C
char errorBuf[512];
DBR_InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", errorBuf, 512);
void* barcodeReader = DBR_CreateInstance();
// add further process
```
-
Code snippet in C++
-
```C++
- char errorBuf[512];
- dynamsoft::dbr::CBarcodeReader::InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL …", errorBuf, 512);
- CBarcodeReader* reader = new CBarcodeReader();
+errorCode = CLicenseManager::InitLicense("YOUR-LICENSE-KEY", szErrorMsg, 256);
+if (errorCode != ErrorCode::EC_OK && errorCode != ErrorCode::EC_LICENSE_CACHE_USED)
+{
+ cout << "License initialization failed: ErrorCode: " << errorCode << ", ErrorString: " << szErrorMsg << endl;
+}
+else
+{
+ // other codes...
+}
// add further process
```
-
Code snippet in C#:
-
```C#
-string errorMsg;
- BarcodeReader.InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", out errorMsg);
- BarcodeReader reader = new BarcodeReader();
- // add further process
+errorCode = LicenseManager.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
+if (errorCode != (int)EnumErrorCode.EC_OK && errorCode != (int)EnumErrorCode.EC_LICENSE_CACHE_USED)
+{
+ Console.WriteLine("License initialization error: " + errorMsg);
+}
+else
+{
+ CaptureVisionRouter cvr = new CaptureVisionRouter();
+ // add code for further process
+}
```
-
Code snippet in Java:
-
```Java
- BarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…");
- BarcodeReader reader = new BarcodeReader();
- // add further process
+ LicenseError licenseError = LicenseManager.initLicense("YOUR-LICENSE-KEY");
+ if (licenseError.getErrorCode() != EnumErrorCode.EC_OK &&
+ licenseError.getErrorCode() != EnumErrorCode.EC_LICENSE_CACHE_USED) {
+ System.out.println("License initialization error: " + licenseError.getErrorString());
+ } else {
+ CaptureVisionRouter cvrInstance = new CaptureVisionRouter();
+ // add code for further process
+ }
```
-
Code snippet in Python:
-
```Python
-error = BarcodeReader.init_license("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…")
-dbr = BarcodeReader()
-```
-
-Code snippet in Android SDK:
-
-```java
-BarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", new DBRLicenseVerificationListener() {
- @Override
- public void DBRLicenseVerificationCallback(boolean isSuccessful, Exception e) {
-// Add your code for license verification.
- }
-});
-```
-
-Code snippet in Objective-C:
-
-```Objective-C
-[DynamsoftBarcodeReader initLicense:@" DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…" verificationDelegate:self];
-- (void)DBRLicenseVerificationCallback:(bool)isSuccess error:(NSError *)error
-{
- // Add your code for license verification.
-}
-```
-
-Code snippet in Swift:
-
-```Swift
-DynamsoftBarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", verificationDelegate: self)
-func dbrLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- // Add your code for license verification.
-}
+error_code, error_msg = LicenseManager.init_license("YOUR-LICENSE-KEY")
+if error_code != EnumErrorCode.EC_OK.value and error_code != EnumErrorCode.EC_LICENSE_CACHE_USED.value:
+ print("License initialization error: " + error_msg)
+else:
+ cvr_instance = CaptureVisionRouter()
```
From 3a916412d3007e977f7c4757f572d9b3e13efb52 Mon Sep 17 00:00:00 2001
From: yqz5625 <124620364+yqz5625@users.noreply.github.com>
Date: Thu, 25 Sep 2025 11:29:15 +0800
Subject: [PATCH 2/5] Update supported-barcode-formats.md
---
general/supported-barcode-formats.md | 94 +++++++++++++++++++++++++++-
1 file changed, 93 insertions(+), 1 deletion(-)
diff --git a/general/supported-barcode-formats.md b/general/supported-barcode-formats.md
index 27d8e95..502eb65 100644
--- a/general/supported-barcode-formats.md
+++ b/general/supported-barcode-formats.md
@@ -10,4 +10,96 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-The full list of supported barcode formats can be found [here](https://www.dynamsoft.com/barcode-reader/docs/core/introduction/?ver=latest#supported-barcode-formats).
+
+Most common barcode formats are enabled by default. The full list of supported barcode formats can be found [here](https://www.dynamsoft.com/barcode-reader/docs/core/introduction/?ver=latest#supported-barcode-formats).
+
+However, please note that the following formats require **manual configuration** before they can be decoded:
+- **Code 32**
+- **Matrix 2 of 5**
+- **Telepen**
+
+### Step-by-Step Guide
+
+#### Step 1. Configure Barcode Formats
+Update your code to explicitly enable **only the licensed formats**. Here are examples for enabling **Multiple Formats**(Use bitwise OR (|) to combine formats):
+
+
+ >- Javascript
+ >- Objective-C
+ >- Swift
+ >- Android
+ >- Python
+ >- C++
+ >- C#
+ >
+>
+```javascript
+let settings = await router.getSimplifiedSettings("ReadSingleBarcode");
+// Enable QR Code and OneD
+settings.barcodeSettings.barcodeFormatIds =
+ Dynamsoft.DBR.EnumBarcodeFormat.BF_MATRIX_25 | Dynamsoft.DBR.EnumBarcodeFormat.BF_CODE_32 | Dynamsoft.DBR.EnumBarcodeFormat.TELEPEN;
+await router.updateSettings("ReadSingleBarcode", settings);
+await router.startCapturing("ReadSingleBarcode");
+```
+>
+```objc
+DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init];
+config.barcodeFormats = DSBarcodeFormatQRCode | DSBarcodeFormatOned; ;
+```
+>
+```swift
+let config = BarcodeScannerConfig()
+config.barcodeFormats = [.oneD, .qrCode]
+```
+>
+```java
+try {
+ // Obtain current runtime settings. `cvr` is an instance of `CaptureVisionRouter`.
+ // Here we use `EnumPresetTemplate.PT_READ_BARCODES` as an example. You can change it to your own template name or the name of other preset template.
+ SimplifiedCaptureVisionSettings captureVisionSettings = cvr.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
+ captureVisionSettings.barcodeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_MATRIX_25 | EnumBarcodeFormat.BF_CODE_32 | EnumBarcodeFormat.TELEPEN;
+ // Update the settings. Remember to specify the same template name you used when getting the settings.
+ cvr.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, captureVisionSettings);
+} catch (CaptureVisionRouterException e) {
+ e.printStackTrace();
+}
+```
+>
+```python
+cvr_instance = CaptureVisionRouter()
+# Obtain current runtime settings of `CCaptureVisionRouter` instance.
+err_code, err_str, settings = cvr_instance.get_simplified_settings(EnumPresetTemplate.PT_READ_BARCODES.value)
+# Specify the barcode formats by enumeration values.
+# Use "|" to enable multiple barcode formats at one time.
+settings.barcode_settings.barcode_format_ids = EnumBarcodeFormat.BF_MATRIX_25.value | EnumBarcodeFormat.BF_CODE_32.value | EnumBarcodeFormat.TELEPEN.value
+# Update the settings.
+err_code, err_str = cvr_instance.update_settings(EnumPresetTemplate.PT_READ_BARCODES.value, settings)
+```
+>
+```c++
+char szErrorMsg[256] = {0};
+// Obtain current runtime settings of `CCaptureVisionRouter` instance.
+CCaptureVisionRouter* cvr = new CCaptureVisionRouter;
+SimplifiedCaptureVisionSettings settings;
+cvr->GetSimplifiedSettings(CPresetTemplate::PT_READ_BARCODES, &settings);
+// Specify the barcode formats by enumeration values.
+// Use "|" to enable multiple barcode formats at one time.
+settings.barcodeSettings.barcodeFormatIds = BF_MATRIX_25 | BF_CODE_32 | TELEPEN;
+// Update the settings.
+cvr->UpdateSettings(CPresetTemplate::PT_READ_BARCODES, &settings, szErrorMsg, 256);
+```
+>
+```csharp
+using (CaptureVisionRouter cvr = new CaptureVisionRouter())
+{
+ SimplifiedCaptureVisionSettings settings;
+ string errorMsg;
+ // Obtain current runtime settings of `CCaptureVisionRouter` instance.
+ cvr.GetSimplifiedSettings(PresetTemplate.PT_READ_BARCODES, out settings);
+ // Specify the barcode formats by enumeration values.
+ // Use "|" to enable multiple barcode formats at one time.
+ settings.barcodeSettings.barcodeFormatIds = (ulong)(EnumBarcodeFormat.BF_MATRIX_25 | EnumBarcodeFormat.BF_CODE_32 | EnumBarcodeFormat.TELEPEN;
+ // Update the settings.
+ cvr.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg);
+}
+```
From 87e0e0b93bc666662ce1af6bf04ff0108e06e56c Mon Sep 17 00:00:00 2001
From: James <158135022+yqz562@users.noreply.github.com>
Date: Mon, 29 Sep 2025 14:33:42 +0800
Subject: [PATCH 3/5] Update avoid-incorrect-results.md
---
general/avoid-incorrect-results.md | 38 ++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/general/avoid-incorrect-results.md b/general/avoid-incorrect-results.md
index a9979e0..d879f46 100644
--- a/general/avoid-incorrect-results.md
+++ b/general/avoid-incorrect-results.md
@@ -12,3 +12,41 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
One way to avoid this is to set the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/api-reference/simplified-barcode-reader-settings.html#:~:text=int%20minResultConfidence%3B-,int%20minBarcodeTextLength%3B,-char%20barcodeTextRegExPattern%5B) in [SimplifiedBarcodeReaderSettings](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/api-reference/simplified-barcode-reader-settings.html#:~:text=SimplifiedBarcodeReaderSettings-,SimplifiedBarcodeReaderSettings,-The%20SimplifiedBarcodeReaderSettings%20struct) of [SimplifiedCaptureVisionSettings](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/structs/simplified-capture-vision-settings.html?product=dbr&repoType=server) to the correct length that the barcode results should be. Say that the barcode results should at least be 10 characters long, and the results are sometimes coming out with just 6 or 7 characters. By setting the minBarcodeTextLength to 10, the SDK will ignore results that are shorter than 10 characters.
+
+---
+
+> **Notice (Temporary Issue)**
+> This is a known issue in the current release and will be fixed in the next version.
+>
+> As a temporary solution, please set `IncludeTrailingCheckDigit` to `0` in the `BarcodeFormatSpecification` for Code128.
+> This will prevent the SDK from returning the trailing check digit.
+
+### CODE_128 decoding returns an extra byte?
+
+When using DBR v11, you may notice that decoding a **CODE_128** barcode returns one extra byte at the end if you call `item.get_bytes()`.
+
+**Cause**
+By default, DBR includes the trailing check digit for CODE_128 in the decoded byte results.
+
+**Solution**
+Set `IncludeTrailingCheckDigit` to `0` in the `BarcodeFormatSpecification` for Code128.
+
+**Example JSON Configuration**
+
+```json
+{
+ "BarcodeFormatSpecificationOptions": [
+ {
+ "Name": "bfs1",
+ "BarcodeFormatIds": [
+ "BF_CODE_128"
+ ],
+ "MinResultConfidence": 30,
+ "RequireStartStopChars": 1,
+ "ReturnPartialBarcodeValue": 1,
+ "VerifyCheckDigit": 0,
+ "IncludeTrailingCheckDigit": 0
+ }
+ ],
+ #...Other Settings
+}
From 1ce5030f694b7367b2c37d2409f1787d5c415969 Mon Sep 17 00:00:00 2001
From: James <158135022+yqz562@users.noreply.github.com>
Date: Mon, 29 Sep 2025 14:53:17 +0800
Subject: [PATCH 4/5] Update avoid-incorrect-barcode-results.md
---
general/avoid-incorrect-barcode-results.md | 37 ++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/general/avoid-incorrect-barcode-results.md b/general/avoid-incorrect-barcode-results.md
index 139cd1b..7019595 100644
--- a/general/avoid-incorrect-barcode-results.md
+++ b/general/avoid-incorrect-barcode-results.md
@@ -12,3 +12,40 @@ needAutoGenerateSidebar: false
- One method is to raise the value of [minResultConfidence](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/RuntimeSettings.html#minresultconfidence) of the `RuntimeSettings` to a value of 50 or higher. It is set to 30 by default.
- If the issue has to do with the length of the text result, you can try setting a minimum length for the barcode text(s) that are returned by the SDK. By setting the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/RuntimeSettings.html#minbarcodetextlength) property of the `RuntimeSettings`, the SDK can ignore results that are consistently coming out shorter than expected.
+---
+
+> **Notice (Temporary Issue)**
+> This is a known issue in the current release and will be fixed in the next version.
+>
+> As a temporary solution, please set `IncludeTrailingCheckDigit` to `0` in the `BarcodeFormatSpecification` for Code128.
+> This will prevent the SDK from returning the trailing check digit.
+
+### CODE_128 decoding returns an extra byte?
+
+When using DBR v11, you may notice that decoding a **CODE_128** barcode returns one extra byte at the end if you call `item.get_bytes()`.
+
+**Cause**
+By default, DBR includes the trailing check digit for CODE_128 in the decoded byte results.
+
+**Solution**
+Set `IncludeTrailingCheckDigit` to `0` in the `BarcodeFormatSpecification` for Code128.
+
+**Example JSON Configuration**
+
+```json
+{
+ "BarcodeFormatSpecificationOptions": [
+ {
+ "Name": "bfs1",
+ "BarcodeFormatIds": [
+ "BF_CODE_128"
+ ],
+ "MinResultConfidence": 30,
+ "RequireStartStopChars": 1,
+ "ReturnPartialBarcodeValue": 1,
+ "VerifyCheckDigit": 0,
+ "IncludeTrailingCheckDigit": 0
+ }
+ ],
+ #...Other Settings
+}
From 5e92ed94bcac152204c3ac7d927b87e6132914b2 Mon Sep 17 00:00:00 2001
From: yqz562
Date: Thu, 30 Oct 2025 15:57:15 +0800
Subject: [PATCH 5/5] fix faq
---
.../mobile/{debug => archive/android}/debug-mode.md | 0
barcode-reader/mobile/debug/troubleshooting-failed-image.md | 6 +++---
.../mobile/scan-setting/how-to-enable-qr-model-one.md | 2 +-
.../{configuration => archive}/unable-to-scan-aztec-code.md | 0
.../server/configuration/custom-settings-template.md | 2 +-
.../difference-between-barcodeReader-and-barcodeScanner.md | 0
.../web/{configuration => archive}/nodejs-implementation.md | 0
.../use-of-onFrameRead-and-onUnduplicateRead.md | 0
barcode-reader/web/camera/check-camera.md | 2 +-
barcode-reader/web/camera/delay-when-open-camera.md | 2 +-
barcode-reader/web/camera/stop-camera-to-open-right-away.md | 2 +-
.../web/camera/when-singleFrameMode-is-enabled.md | 2 +-
.../web/configuration/avoid-incorrect-barcode-results.md | 4 ++--
.../web/configuration/call-loadWasm-proactively.md | 2 +-
.../web/configuration/get-intermediate-result-images.md | 2 +-
.../web/configuration/read-from-existing-files.md | 2 +-
barcode-reader/web/configuration/scan-US-drivers-license.md | 2 +-
barcode-reader/web/configuration/upgrade-old-to-new.md | 4 ++--
.../configuration/ways-to-copy-dbr-js-deployable-files.md | 2 +-
barcode-reader/web/debug/check-current-version.md | 2 +-
barcode-reader/web/debug/get-sdk-logs.md | 2 +-
...ettings-updateVideoSettings-and-updateRuntimeSettings.md | 2 +-
barcode-reader/web/scan-setting/remove-duplicates.md | 2 +-
.../web/scan-setting/unable-to-scan-aztec-code.md | 2 +-
24 files changed, 23 insertions(+), 23 deletions(-)
rename barcode-reader/mobile/{debug => archive/android}/debug-mode.md (100%)
rename barcode-reader/server/{configuration => archive}/unable-to-scan-aztec-code.md (100%)
rename barcode-reader/web/{scan-setting => archive}/difference-between-barcodeReader-and-barcodeScanner.md (100%)
rename barcode-reader/web/{configuration => archive}/nodejs-implementation.md (100%)
rename barcode-reader/web/{configuration => archive}/use-of-onFrameRead-and-onUnduplicateRead.md (100%)
diff --git a/barcode-reader/mobile/debug/debug-mode.md b/barcode-reader/mobile/archive/android/debug-mode.md
similarity index 100%
rename from barcode-reader/mobile/debug/debug-mode.md
rename to barcode-reader/mobile/archive/android/debug-mode.md
diff --git a/barcode-reader/mobile/debug/troubleshooting-failed-image.md b/barcode-reader/mobile/debug/troubleshooting-failed-image.md
index 0a131eb..abac781 100644
--- a/barcode-reader/mobile/debug/troubleshooting-failed-image.md
+++ b/barcode-reader/mobile/debug/troubleshooting-failed-image.md
@@ -15,6 +15,6 @@ If the barcode is not recognized by Dynamsoft Barcode Reader, please do not hesi
Alternatively, here is the general troubleshooting steps:
1. Please ensure the lighting is not very bright or very dim.
-2. Please ensure the aiming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats)
-3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10)
-4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel)
+2. Please ensure the aiming barcode format has been checked on.(Any Codes -> settings -> Barcode Format -> check the barcode formats)
+3. We can decrease the Confidence level to increase the read rate.(Any Codes -> settings -> Result Settings -> Set Confidence Level to 10)
+4. We can increase the deblur level to increase the read rate.(Any Codes -> settings -> Additional Settings -> increase DeblurLevel)
diff --git a/barcode-reader/mobile/scan-setting/how-to-enable-qr-model-one.md b/barcode-reader/mobile/scan-setting/how-to-enable-qr-model-one.md
index d4b8ae0..5079552 100644
--- a/barcode-reader/mobile/scan-setting/how-to-enable-qr-model-one.md
+++ b/barcode-reader/mobile/scan-setting/how-to-enable-qr-model-one.md
@@ -32,7 +32,7 @@ Most QR codes today follow the **QR Code Model 2** standard. By default, **Barco
5. Send your saved template to the [Dynamsoft Support Team](https://www.dynamsoft.com/contact/?ver=latest){:target="_blank"}.
6. Our team will generate and send you a unique link for the configuration.
-7. In the **Advanced Scan Settings** of BarcodeScannerX (on Android or iOS), tap **Import Template** and paste the link.
+7. In the **Any Codes** of BarcodeScannerX (on Android or iOS), tap **Import Template** and paste the link.
8. You’re now ready to scan **QR Code Model 1**!
---
diff --git a/barcode-reader/server/configuration/unable-to-scan-aztec-code.md b/barcode-reader/server/archive/unable-to-scan-aztec-code.md
similarity index 100%
rename from barcode-reader/server/configuration/unable-to-scan-aztec-code.md
rename to barcode-reader/server/archive/unable-to-scan-aztec-code.md
diff --git a/barcode-reader/server/configuration/custom-settings-template.md b/barcode-reader/server/configuration/custom-settings-template.md
index abb0b18..24f8732 100644
--- a/barcode-reader/server/configuration/custom-settings-template.md
+++ b/barcode-reader/server/configuration/custom-settings-template.md
@@ -22,6 +22,6 @@ If you are looking to create your own custom template of settings to use with th
5. Copy the JSON code under _Template_ and paste it into your own JSON file, or you can download the template JSON file straight from the demo.
-6. The template you downloaded is currently Barcode Reader version 9 template and the latest version is version 10. Use the [TemplateConverter Tool](https://download2.dynamsoft.com/dcv/TemplateConverter.zip) to convert the template to Barcode Reader version 10 compatible template.
+6. The template you downloaded is currently Barcode Reader version 9/version 10 template and the latest version is version 11. Use the [TemplateConverter Tool](https://www.dynamsoft.com/tools/template-upgrade/) to convert the template to Barcode Reader version 11 compatible template.
And with that, you have your own template to use with the `InitSettingsFromFile` method!
diff --git a/barcode-reader/web/scan-setting/difference-between-barcodeReader-and-barcodeScanner.md b/barcode-reader/web/archive/difference-between-barcodeReader-and-barcodeScanner.md
similarity index 100%
rename from barcode-reader/web/scan-setting/difference-between-barcodeReader-and-barcodeScanner.md
rename to barcode-reader/web/archive/difference-between-barcodeReader-and-barcodeScanner.md
diff --git a/barcode-reader/web/configuration/nodejs-implementation.md b/barcode-reader/web/archive/nodejs-implementation.md
similarity index 100%
rename from barcode-reader/web/configuration/nodejs-implementation.md
rename to barcode-reader/web/archive/nodejs-implementation.md
diff --git a/barcode-reader/web/configuration/use-of-onFrameRead-and-onUnduplicateRead.md b/barcode-reader/web/archive/use-of-onFrameRead-and-onUnduplicateRead.md
similarity index 100%
rename from barcode-reader/web/configuration/use-of-onFrameRead-and-onUnduplicateRead.md
rename to barcode-reader/web/archive/use-of-onFrameRead-and-onUnduplicateRead.md
diff --git a/barcode-reader/web/camera/check-camera.md b/barcode-reader/web/camera/check-camera.md
index 4ff2bb0..c1657a4 100644
--- a/barcode-reader/web/camera/check-camera.md
+++ b/barcode-reader/web/camera/check-camera.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## version 10 or recent
+## version 10 or Latest Version
In version 10, use the `dynamsoft camera enhancer` to utilize the [testCameraAccess](https://www.dynamsoft.com/camera-enhancer/docs/web/programming/javascript/api-reference/camera-control.html#testCameraAccess) method to check the camera status programmatically.
diff --git a/barcode-reader/web/camera/delay-when-open-camera.md b/barcode-reader/web/camera/delay-when-open-camera.md
index f5ea0bd..54490e5 100644
--- a/barcode-reader/web/camera/delay-when-open-camera.md
+++ b/barcode-reader/web/camera/delay-when-open-camera.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
### 1. Invoke loadWasm
Preload `BarcodeReader` or other specified module proactively to save time on the initial decoding by skipping the module loading at the time of instance creation.
diff --git a/barcode-reader/web/camera/stop-camera-to-open-right-away.md b/barcode-reader/web/camera/stop-camera-to-open-right-away.md
index 89a5e15..d570675 100644
--- a/barcode-reader/web/camera/stop-camera-to-open-right-away.md
+++ b/barcode-reader/web/camera/stop-camera-to-open-right-away.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
```javascript
let startScanBtn = document.getElementById("StartScanning"); // double check the ID of the button
```
diff --git a/barcode-reader/web/camera/when-singleFrameMode-is-enabled.md b/barcode-reader/web/camera/when-singleFrameMode-is-enabled.md
index ded6eea..01a95bd 100644
--- a/barcode-reader/web/camera/when-singleFrameMode-is-enabled.md
+++ b/barcode-reader/web/camera/when-singleFrameMode-is-enabled.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Verson 10
+## Version 10 or Latest Version
SingleFrameMode can be enabled by calling the api from the camera enhancer module. check
[singleFrameMode](https://www.dynamsoft.com/camera-enhancer/docs/web/programming/javascript/api-reference/acquisition.html#singleframemode) for detailed information.
diff --git a/barcode-reader/web/configuration/avoid-incorrect-barcode-results.md b/barcode-reader/web/configuration/avoid-incorrect-barcode-results.md
index 7776787..ada799f 100644
--- a/barcode-reader/web/configuration/avoid-incorrect-barcode-results.md
+++ b/barcode-reader/web/configuration/avoid-incorrect-barcode-results.md
@@ -10,8 +10,8 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
-- One method is to raise the value of [minResultConfidence](../api-reference/interfaces/simplified-barcode-reader-settings.md) of the `SimplifiedCaptureVisionSettings` interface of the capture vision router module. It is set to `30` by default.
+## Version 10 or Latest Version
+- One method is to raise the value of [minResultConfidence](https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/capture-vision-router/interfaces/simplified-capture-vision-settings.html?product=dbr&lang=javascript#minresultconfidence) of the `SimplifiedCaptureVisionSettings` interface of the capture vision router module. It is set to `30` by default.
- If the issue has to do with the length of the text result, you can try setting a minimum length for the barcode text(s) that are returned by the SDK. By setting the [minBarcodeTextLength](../api-reference/interfaces/simplified-barcode-reader-settings.md) property of the `SimplifiedCaptureVisionSettings` interface of the capture vision router module, the SDK can ignore results that are consistently coming out shorter than expected. It is set to `0` by default.
diff --git a/barcode-reader/web/configuration/call-loadWasm-proactively.md b/barcode-reader/web/configuration/call-loadWasm-proactively.md
index 9474c56..293c113 100644
--- a/barcode-reader/web/configuration/call-loadWasm-proactively.md
+++ b/barcode-reader/web/configuration/call-loadWasm-proactively.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
Preload `BarcodeReader` or other specified module proactively to save time on the initial decoding by skipping the module loading at the time of instance creation.
```javascript
diff --git a/barcode-reader/web/configuration/get-intermediate-result-images.md b/barcode-reader/web/configuration/get-intermediate-result-images.md
index 5a03782..ecbd014 100644
--- a/barcode-reader/web/configuration/get-intermediate-result-images.md
+++ b/barcode-reader/web/configuration/get-intermediate-result-images.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
The intermeddiate results can be retrieved using the [IntermediateResultManager]({{ site.dcvb_js_api }}capture-vision-router/intermediate-result-manager.html)
diff --git a/barcode-reader/web/configuration/read-from-existing-files.md b/barcode-reader/web/configuration/read-from-existing-files.md
index 687a789..5f562bd 100644
--- a/barcode-reader/web/configuration/read-from-existing-files.md
+++ b/barcode-reader/web/configuration/read-from-existing-files.md
@@ -12,7 +12,7 @@ needAutoGenerateSidebar: false
Yes, the JavaScript SDK supports reading from a file in local memory.
-## Version 10.x
+## Version 10 or Latest Version
```javascript
let router = await Dynamsoft.CVR.CaptureVisionRouter.createInstance();
// Use the router to perform a job.
diff --git a/barcode-reader/web/configuration/scan-US-drivers-license.md b/barcode-reader/web/configuration/scan-US-drivers-license.md
index dbbf76c..f67b317 100644
--- a/barcode-reader/web/configuration/scan-US-drivers-license.md
+++ b/barcode-reader/web/configuration/scan-US-drivers-license.md
@@ -10,4 +10,4 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-You can scan a US driver's license to get all of these details using our SDK. The best way to do so is to follow our pre-built driver license sample for the JavaScript edition, which can be found in the [code gallery](https://github.com/Dynamsoft/barcode-reader-javascript-demo). This sample can also be found in the `samples\4.use-case` folder of the JavaScript package download (via the Dynamsoft [free trial download](https://www.dynamsoft.com/barcode-reader/downloads)).
+You can scan a US driver's license to get all of these details using our SDK. The best way to do so is to follow our pre-built driver license sample for the JavaScript edition, which can be found in the [code gallery](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/foundational-api-samples/use-case/read-a-drivers-license).
diff --git a/barcode-reader/web/configuration/upgrade-old-to-new.md b/barcode-reader/web/configuration/upgrade-old-to-new.md
index 49cf4f1..df9670b 100644
--- a/barcode-reader/web/configuration/upgrade-old-to-new.md
+++ b/barcode-reader/web/configuration/upgrade-old-to-new.md
@@ -10,8 +10,8 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-- If you are performing a **major upgrade** by upgrading from one major version to another (7.x -> 8.x), the primary contact of the license must get in touch with Dynamsoft Support by sending an email to [support@dynamsoft.com](mailto:support@dynamsoft.com) and request to upgrade their valid annual license. If you own several licenses, please specify if all or a specific subset needs to be upgraded. Once the request is received, the upgrade is processed within one business day.
+- If you are performing a **major upgrade** by upgrading from one major version to another (10.x -> 11.x), the primary contact of the license must get in touch with Dynamsoft Support by sending an email to [support@dynamsoft.com](mailto:support@dynamsoft.com) and request to upgrade their valid annual license. If you own several licenses, please specify if all or a specific subset needs to be upgraded. Once the request is received, the upgrade is processed within one business day.
-- If you would like to do a **minor upgrade** (8.0 -> 8.1.1) then there is no need to send an email for an upgrade as the license doesn't need to be upgraded between minor versions. All you need to do is simply reference the newer version or download a copy of the new version.
+- If you would like to do a **minor upgrade** (11.0 -> 11.1) then there is no need to send an email for an upgrade as the license doesn't need to be upgraded between minor versions. All you need to do is simply reference the newer version or download a copy of the new version.
> Please also make sure to note these [changes](https://www.dynamsoft.com/barcode-reader/programming/javascript/upgrade-guide/?ver=latest) between the versions.
diff --git a/barcode-reader/web/configuration/ways-to-copy-dbr-js-deployable-files.md b/barcode-reader/web/configuration/ways-to-copy-dbr-js-deployable-files.md
index bf4495b..f5750cb 100644
--- a/barcode-reader/web/configuration/ways-to-copy-dbr-js-deployable-files.md
+++ b/barcode-reader/web/configuration/ways-to-copy-dbr-js-deployable-files.md
@@ -14,7 +14,7 @@ A copy of Dbr JS deployable files can be obtained using any of the methods menti
1. Download the DBR-JS package from the [Dynamsoft website](https://www.dynamsoft.com/barcode-reader/downloads) or from the [Dynamsoft Customer Portal](https://www.dynamsoft.com/customer/download) (Download Products tab on the left hand side)
2. Install the library via `npm`
-### version 10
+### version 10 or Latest Version
you will need to install dependencies along with the barcode reader sdk
dynamsoft-barcode-reader,
dynamsoft-camera-enhancer
diff --git a/barcode-reader/web/debug/check-current-version.md b/barcode-reader/web/debug/check-current-version.md
index a58be7a..e6edd80 100644
--- a/barcode-reader/web/debug/check-current-version.md
+++ b/barcode-reader/web/debug/check-current-version.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## For version 10
+## For version 10 or Latest Version
- Check the version of Barcode Reader module
```javascript
Dynamsoft.DBR.BarcodeReaderModule.getVersion()
diff --git a/barcode-reader/web/debug/get-sdk-logs.md b/barcode-reader/web/debug/get-sdk-logs.md
index 919cd8b..02a15e4 100644
--- a/barcode-reader/web/debug/get-sdk-logs.md
+++ b/barcode-reader/web/debug/get-sdk-logs.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
The SDK can provide logs via the `Core` module.
```javascript
Dynamsoft.Core.CoreModule.onLog = console.log;
diff --git a/barcode-reader/web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md b/barcode-reader/web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md
index c68c087..5220858 100644
--- a/barcode-reader/web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md
+++ b/barcode-reader/web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
`updateVideoSettings` is used to update the [MediaStreamConstraints](https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API/Constraints) that define most of the video information such as width, height, and the camera facingMode (i.e. front or rear camera).
`updateSettings` is used to update the [SimplifiedSettings](https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/capture-vision-router/interfaces/simplified-capture-vision-settings.html?product=dbr&lang=javascript) interface. It updates the runtime settings with a given template object.
diff --git a/barcode-reader/web/scan-setting/remove-duplicates.md b/barcode-reader/web/scan-setting/remove-duplicates.md
index af38259..4451d84 100644
--- a/barcode-reader/web/scan-setting/remove-duplicates.md
+++ b/barcode-reader/web/scan-setting/remove-duplicates.md
@@ -10,7 +10,7 @@ needAutoGenerateSidebar: false
[<< Back to FAQ index](index.md)
-## Version 10
+## Version 10 or Latest Version
If you're experiencing more scans usage than expected with the barcode reading SDK, use the below strategies to address this issue effectively:
### 1. Donot count identical Result
diff --git a/barcode-reader/web/scan-setting/unable-to-scan-aztec-code.md b/barcode-reader/web/scan-setting/unable-to-scan-aztec-code.md
index ee50cfd..5a29c70 100644
--- a/barcode-reader/web/scan-setting/unable-to-scan-aztec-code.md
+++ b/barcode-reader/web/scan-setting/unable-to-scan-aztec-code.md
@@ -9,7 +9,7 @@ needAutoGenerateSidebar: false
# Why am I unable to scan an Aztec code in the helloworld sample?
[<< Back to FAQ index](index.md)
-# Version 10
+## Version 10 or Latest Version
```javascript
let settings = await router.getSimplifiedSettings("ReadSingleBarcode");
settings.barcodeSettings.barcodeFormatIds =